{"_id":"yarnlang","_rev":"824-eb3aa6157a7389c55a966c36b5cb3ab4","name":"yarnlang","description":"the more you know, the less you need","dist-tags":{"latest":"0.1.0-176"},"versions":{"0.0.0":{"name":"yarnlang","version":"0.0.0","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","readme":"yarnlang\n========\n\nAn interpreted language for powerful data manipulation, inspired by neuron-style functions.\n\nEach yarn is made up of an ordered list of commands which are evaluated as a hashmap.\n\nEach command in a yarn may take any combination of none or many inputs, represented \nby literal values and/or existing fields (copied as literal values) from the hashmap \nby glob style matching a fields key. \n\nThe inputs (if any) are linearly processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA yarn may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern 'return*'.\n\nSimple Command Syntax:\n\tinput~command~output\n\nMultiple Command Syntax:\n\tinput~command0~output,input~command1~output\n\nLiteral Input Syntax:\n(@ - at symbol, followed by the value url encoded as a string)\n@%20hello%20world~command~output\n\nMulti Input Command Syntax:\n\tinput0 input1 inputN~command~output\n\nMulti Output Command Syntax:\n\tinput~command~output0 output1 output2\n\nMulti Input Multi Output Command Syntax\n\tinput0 input1 inputN~command~output0 output1 outputN\n\nSingle Character Glob Style Input Command Syntax:\n\t(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)\n\tinput?~command~output\n\t\n\twhich becomes logically equivalent to:\n\tinput0 input1 inputN~command~output\n\nMulti Character Glob Style Input Command Syntax:\n\t(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)\n\t*put*~command~output\n\t\n\twhich becomes logically equivalent to:\n\tinput0 input1 inputN~command~output\n\nMixed Input Command Syntax:\n\t(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)\n\tinputBefore special* inputAfter~command~output\n\t\n\twhich becomes logically equivalent to:\n\tinputBefore special0 special1 specialN inputAfter~command~output","_id":"yarnlang@0.0.0","dist":{"shasum":"c443f1f6f858cc52eb1005e183df45dabcfb025d","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0.tgz","integrity":"sha512-3e8mjcF0A47EQmuHAjL96rlHakl7I7icqhJw31fg34Hpw5G1RmzM2ODG5sNS9ua2TxmTsgGCigKmQPheqARqDg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC6WDjhrWgta04M/0moku7EjHIzU0cjBteJXIN2q8hZAQIhAKqSSeS77zkKj59JPtJLX7VNqVeNaUZ9TA9fSJvLTw7l"}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-1":{"name":"yarnlang","version":"0.0.0-1","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\nEach yarn is made up of an ordered list of commands which are evaluated as a hashmap.\n\nEach command in a yarn may take any combination of none or many inputs, represented \nby literal values and/or existing fields (copied as literal values) from the hashmap \nby glob style matching a fields key. \n\nThe inputs (if any) are linearly processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA yarn may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern 'return*'.\n\nSimple Command Syntax:\n\tinput~command~output\n\nMultiple Command Syntax:\n\tinput~command0~output,input~command1~output\n\nLiteral Input Syntax:\n(@ - at symbol, followed by the value url encoded as a string)\n@%20hello%20world~command~output\n\nMulti Input Command Syntax:\n\tinput0 input1 inputN~command~output\n\nMulti Output Command Syntax:\n\tinput~command~output0 output1 output2\n\nMulti Input Multi Output Command Syntax\n\tinput0 input1 inputN~command~output0 output1 outputN\n\nSingle Character Glob Style Input Command Syntax:\n\t(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)\n\tinput?~command~output\n\t\n\twhich becomes logically equivalent to:\n\tinput0 input1 inputN~command~output\n\nMulti Character Glob Style Input Command Syntax:\n\t(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)\n\t*put*~command~output\n\t\n\twhich becomes logically equivalent to:\n\tinput0 input1 inputN~command~output\n\nMixed Input Command Syntax:\n\t(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)\n\tinputBefore special* inputAfter~command~output\n\t\n\twhich becomes logically equivalent to:\n\tinputBefore special0 special1 specialN inputAfter~command~output","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-1","dist":{"shasum":"d03183a517bd18eceafdc431e5231ef0c26e3558","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-1.tgz","integrity":"sha512-r/wWrbBZGQKnSQO5WHv+hEzBGjhAcyXnYz26IvrPJI9G1y0EpNO3Bn9kJeMRtSXbRLl5jU+pnXJDgiJlwFewQw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDE/3nF7GwUyyYP9eZgyijmciPdVBL3lSBZ0oVO8Hn6tAiEA5cMO5jc7EnyB6GU2qh19Xrz3MHqYhiAmDQnh8v+vy84="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-2":{"name":"yarnlang","version":"0.0.0-2","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\nEach yarn is made up of an ordered list of commands which are evaluated as a hashmap.\n\nEach command in a yarn may take any combination of none or many inputs, represented \nby literal values and/or existing fields (copied as literal values) from the hashmap \nby glob style matching a fields key. \n\nThe inputs (if any) are linearly processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA yarn may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern 'return*'.\n\nSimple Command Syntax:\n\tinput~command~output\n\nMultiple Command Syntax:\n\tinput~command0~output,input~command1~output\n\nLiteral Input Syntax:\n(@ - at symbol, followed by the value url encoded as a string)\n@%20hello%20world~command~output\n\nMulti Input Command Syntax:\n\tinput0 input1 inputN~command~output\n\nMulti Output Command Syntax:\n\tinput~command~output0 output1 output2\n\nMulti Input Multi Output Command Syntax\n\tinput0 input1 inputN~command~output0 output1 outputN\n\nSingle Character Glob Style Input Command Syntax:\n\t(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)\n\tinput?~command~output\n\t\n\twhich becomes logically equivalent to:\n\tinput0 input1 inputN~command~output\n\nMulti Character Glob Style Input Command Syntax:\n\t(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)\n\t*put*~command~output\n\t\n\twhich becomes logically equivalent to:\n\tinput0 input1 inputN~command~output\n\nMixed Input Command Syntax:\n\t(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)\n\tinputBefore special* inputAfter~command~output\n\t\n\twhich becomes logically equivalent to:\n\tinputBefore special0 special1 specialN inputAfter~command~output","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-2","dist":{"shasum":"8d074c38945e763d4e9275bf5a84bc1e6c362e9f","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-2.tgz","integrity":"sha512-ZtnD3IxxXyLCNrH8DiifdUJKpUhrKXfv2BuDQiqxHQdjh2Ww7jnX++XugA21ipgJjNNgL0eNzTbsDRQpG5WiJQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCiXD54vDkA7i8NTO5sh9+eXW0iDO7gcUCxpe3Vh4gl0AIgQ1Xn2aK4ktw7e2O7Gno7yHpRz1UJSsBBguGV5IaxP2c="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-3":{"name":"yarnlang","version":"0.0.0-3","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\nEach yarn is made up of an ordered list of commands which are evaluated as a hashmap.\n\nEach command in a yarn may take any combination of none or many inputs, represented \nby literal values and/or existing fields (copied as literal values) from the hashmap \nby glob style matching a fields key. \n\nThe inputs (if any) are linearly processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA yarn may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern 'return*'.\n\nSimple Command Syntax:\n\tinput~command~output\n\nMultiple Command Syntax:\n\tinput~command0~output,input~command1~output\n\nLiteral Input Syntax:\n(@ - at symbol, followed by the value url encoded as a string)\n@%20hello%20world~command~output\n\nMulti Input Command Syntax:\n\tinput0 input1 inputN~command~output\n\nMulti Output Command Syntax:\n\tinput~command~output0 output1 output2\n\nMulti Input Multi Output Command Syntax\n\tinput0 input1 inputN~command~output0 output1 outputN\n\nSingle Character Glob Style Input Command Syntax:\n\t(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)\n\tinput?~command~output\n\t\n\twhich becomes logically equivalent to:\n\tinput0 input1 inputN~command~output\n\nMulti Character Glob Style Input Command Syntax:\n\t(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)\n\t*put*~command~output\n\t\n\twhich becomes logically equivalent to:\n\tinput0 input1 inputN~command~output\n\nMixed Input Command Syntax:\n\t(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)\n\tinputBefore special* inputAfter~command~output\n\t\n\twhich becomes logically equivalent to:\n\tinputBefore special0 special1 specialN inputAfter~command~output","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-3","dist":{"shasum":"d2622e0fd01c6bd645a46c01a1190e78e18fe82d","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-3.tgz","integrity":"sha512-M0qZ5oIQaVAGfdaSApvHZMlyqFud87Qjx4FfBXI2ze4TQtUgHiopuNNs3kljEBN6DzQkEiJ6+By/ppFKncyywg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH7pCsoBe6OyjaFVWVlGN0plkCQJEok05TiBkfjgWp6jAiBBp0ZNEnLStbyZwL8MIP6ib9NaLE23w99jyCTiNP7Afw=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-5":{"name":"yarnlang","version":"0.0.0-5","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\nEach yarn is made up of an ordered list of commands which are evaluated as a hashmap.\n\nEach command in a yarn may take any combination of none or many inputs, represented \nby literal values and/or existing fields (copied as literal values) from the hashmap \nby glob style matching a fields key. \n\nThe inputs (if any) are linearly processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA yarn may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern 'return*'.\n\nSimple Command Syntax:\n\tinput~command~output\n\nMultiple Command Syntax:\n\tinput~command0~output,input~command1~output\n\nLiteral Input Syntax:\n(@ - at symbol, followed by the value url encoded as a string)\n@%20hello%20world~command~output\n\nMulti Input Command Syntax:\n\tinput0 input1 inputN~command~output\n\nMulti Output Command Syntax:\n\tinput~command~output0 output1 output2\n\nMulti Input Multi Output Command Syntax\n\tinput0 input1 inputN~command~output0 output1 outputN\n\nSingle Character Glob Style Input Command Syntax:\n\t(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)\n\tinput?~command~output\n\t\n\twhich becomes logically equivalent to:\n\tinput0 input1 inputN~command~output\n\nMulti Character Glob Style Input Command Syntax:\n\t(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)\n\t*put*~command~output\n\t\n\twhich becomes logically equivalent to:\n\tinput0 input1 inputN~command~output\n\nMixed Input Command Syntax:\n\t(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)\n\tinputBefore special* inputAfter~command~output\n\t\n\twhich becomes logically equivalent to:\n\tinputBefore special0 special1 specialN inputAfter~command~output","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-5","dist":{"shasum":"72a3ee8a5e6a15b6ac3bec1fb8ded80acb07c9f1","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-5.tgz","integrity":"sha512-2tseCUQPrgFxkDepZi78YQJh7vSQHVnenlJBIMUv7VdkeiQKJe8WGmkl5SKZT47NYdXmJps474P/qVWmOVzqYQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAYJJC2IO8EH/oQcp3NOVnLTs3Io2sUKxwRDe4Kk1xasAiEAiEE0dz7WCShZ/X67Mumbzutt30j73eVFpDkGm6apPKM="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-6":{"name":"yarnlang","version":"0.0.0-6","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\nEach yarn is made up of an ordered list of commands which are evaluated as a hashmap.\n\nEach command in a yarn may take any combination of none or many inputs, represented \nby literal values and/or existing fields (copied as literal values) from the hashmap \nby glob style matching a fields key. \n\nThe inputs (if any) are linearly processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA yarn may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern 'return*'.\n\nSimple Command Syntax:\n\tinput~command~output\n\nMultiple Command Syntax:\n\tinput~command0~output,input~command1~output\n\nLiteral Input Syntax:\n(@ - at symbol, followed by the value url encoded as a string)\n@%20hello%20world~command~output\n\nMulti Input Command Syntax:\n\tinput0 input1 inputN~command~output\n\nMulti Output Command Syntax:\n\tinput~command~output0 output1 output2\n\nMulti Input Multi Output Command Syntax\n\tinput0 input1 inputN~command~output0 output1 outputN\n\nSingle Character Glob Style Input Command Syntax:\n\t(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)\n\tinput?~command~output\n\t\n\twhich becomes logically equivalent to:\n\tinput0 input1 inputN~command~output\n\nMulti Character Glob Style Input Command Syntax:\n\t(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)\n\t*put*~command~output\n\t\n\twhich becomes logically equivalent to:\n\tinput0 input1 inputN~command~output\n\nMixed Input Command Syntax:\n\t(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)\n\tinputBefore special* inputAfter~command~output\n\t\n\twhich becomes logically equivalent to:\n\tinputBefore special0 special1 specialN inputAfter~command~output","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-6","dist":{"shasum":"e81a13780365ee8bef2d85e532e5c525f2ea96ca","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-6.tgz","integrity":"sha512-xa6GZiw5Zzq18vAhEFOV2S044WsB8i5snG67kBpgkBPqTTtwU+mH4sJ76ZRPLBAlQuBJJTmKtnHqa55CVXzUMA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCXhR9RBTD1/wQbGOZdtWIVi3xSGQdS35S4wf0fsYDWLgIgNHQ+2/Uz0Ie02Zg1a0/h9FjsYmwujB7rnGkWeIrMWXw="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-7":{"name":"yarnlang","version":"0.0.0-7","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\nEach yarn is made up of an ordered list of commands which are evaluated as a hashmap.\n\nEach command in a yarn may take any combination of none or many inputs, represented \nby literal values and/or existing fields (copied as literal values) from the hashmap \nby glob style matching a fields key. \n\nThe inputs (if any) are linearly processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA yarn may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern 'return*'.\n\nSimple Command Syntax:\n\tinput~command~output\n\nMultiple Command Syntax:\n\tinput~command0~output,input~command1~output\n\nLiteral Input Syntax:\n(@ - at symbol, followed by the value url encoded as a string)\n@%20hello%20world~command~output\n\nMulti Input Command Syntax:\n\tinput0 input1 inputN~command~output\n\nMulti Output Command Syntax:\n\tinput~command~output0 output1 output2\n\nMulti Input Multi Output Command Syntax\n\tinput0 input1 inputN~command~output0 output1 outputN\n\nSingle Character Glob Style Input Command Syntax:\n\t(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)\n\tinput?~command~output\n\t\n\twhich becomes logically equivalent to:\n\tinput0 input1 inputN~command~output\n\nMulti Character Glob Style Input Command Syntax:\n\t(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)\n\t*put*~command~output\n\t\n\twhich becomes logically equivalent to:\n\tinput0 input1 inputN~command~output\n\nMixed Input Command Syntax:\n\t(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)\n\tinputBefore special* inputAfter~command~output\n\t\n\twhich becomes logically equivalent to:\n\tinputBefore special0 special1 specialN inputAfter~command~output","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-7","dist":{"shasum":"862aaa5f3405280258d7a5d448731a8f4aaf2b6d","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-7.tgz","integrity":"sha512-6vXQNL2bYpZG/KppYAJgYnNEB30SmMai6qhIT8MZqjBrSfAoDXJrYYCsYAbEavbH3XK9optEvnNT2u6vChKjjw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBuLpJ1zVBwfDhpJKeFJz78c2LMDU4DcN69tcuGhiK1PAiAwYjihUqPL6ri6aX7KWjOmAmgkduYF8zyJfdukv9pNtQ=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-8":{"name":"yarnlang","version":"0.0.0-8","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`>npm install yarnlang`\n\n### Test\n\n`>npm test yarnlang`\n\n### Use\n\n```\nvar y = require('yarnlang');\ny('@hello @%20 @world concat return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { \"return\": \"hello world\" }\n\t}\n});\n```\n\nEach yarn is made up of an ordered list of commands which are evaluated as a hashmap.\n\nEach command in a yarn may take any combination of none or many inputs, represented \nby literal values and/or existing fields (copied as literal values) from the hashmap \nby glob style matching a fields key. \n\nThe inputs (if any) are linearly processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA yarn may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern 'return*'.\n\nSimple Command Syntax:\n\tinput~command~output\n\nMultiple Command Syntax:\n\tinput~command0~output,input~command1~output\n\nLiteral Input Syntax:\n(@ - at symbol, followed by the value url encoded as a string)\n@%20hello%20world~command~output\n\nMulti Input Command Syntax:\n\tinput0 input1 inputN~command~output\n\nMulti Output Command Syntax:\n\tinput~command~output0 output1 output2\n\nMulti Input Multi Output Command Syntax\n\tinput0 input1 inputN~command~output0 output1 outputN\n\nSingle Character Glob Style Input Command Syntax:\n\t(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)\n\tinput?~command~output\n\t\n\twhich becomes logically equivalent to:\n\tinput0 input1 inputN~command~output\n\nMulti Character Glob Style Input Command Syntax:\n\t(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)\n\t*put*~command~output\n\t\n\twhich becomes logically equivalent to:\n\tinput0 input1 inputN~command~output\n\nMixed Input Command Syntax:\n\t(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)\n\tinputBefore special* inputAfter~command~output\n\t\n\twhich becomes logically equivalent to:\n\tinputBefore special0 special1 specialN inputAfter~command~output","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-8","dist":{"shasum":"93e8b2e7944add4c760518340bed774ea447ae34","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-8.tgz","integrity":"sha512-6zqJ5mj3FcrxCod9H443vDjh+nsTKfq5pEiZC7CyyDQTd20dWOdYbIfO51ryGS5pzRzZ7Abtp7rKc2SYtSZ2qw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCXn65efLWWAvrCivHzsFdT3bBv7bNhERVQLyWx4aXeEQIgCVj9j5wEnEnXk96IxrGFE6o67mHTe0Abg+CEN/psaaE="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-9":{"name":"yarnlang","version":"0.0.0-9","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world concat return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { \"return\": \"hello world\" }\n\t}\n});\n```\n\nEach yarn is made up of an ordered list of commands which are evaluated as a hashmap.\n\nEach command in a yarn may take any combination of none or many inputs, represented \nby literal values and/or existing fields (copied as literal values) from the hashmap \nby glob style matching a fields key. \n\nThe inputs (if any) are linearly processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA yarn may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern 'return*'.\n\nSimple Command Syntax:\n\tinput~command~output\n\nMultiple Command Syntax:\n\tinput~command0~output,input~command1~output\n\nLiteral Input Syntax:\n(@ - at symbol, followed by the value url encoded as a string)\n@%20hello%20world~command~output\n\nMulti Input Command Syntax:\n\tinput0 input1 inputN~command~output\n\nMulti Output Command Syntax:\n\tinput~command~output0 output1 output2\n\nMulti Input Multi Output Command Syntax\n\tinput0 input1 inputN~command~output0 output1 outputN\n\nSingle Character Glob Style Input Command Syntax:\n\t(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)\n\tinput?~command~output\n\t\n\twhich becomes logically equivalent to:\n\tinput0 input1 inputN~command~output\n\nMulti Character Glob Style Input Command Syntax:\n\t(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)\n\t*put*~command~output\n\t\n\twhich becomes logically equivalent to:\n\tinput0 input1 inputN~command~output\n\nMixed Input Command Syntax:\n\t(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)\n\tinputBefore special* inputAfter~command~output\n\t\n\twhich becomes logically equivalent to:\n\tinputBefore special0 special1 specialN inputAfter~command~output","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-9","dist":{"shasum":"b128aec747c51087e572c9d9d22360b561216bad","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-9.tgz","integrity":"sha512-zdo8WpVFYDOGt63O85oQ7qy9gD5GnmHVx1E2NNgCI7DDiViU5+4l2rwV/bY93PwwYmutTP6TC8g2KBFuG3QHyw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEtT0b48jx01G56i/8bexapZ3THSSnaXeIyg9AH1okllAiBkUDWRNcxqhRR1YwT7fp0UMLSROjFWc2IfhlJm30WYSQ=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-10":{"name":"yarnlang","version":"0.0.0-10","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world concat return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { \"return\": \"hello world\" }\n\t}\n});\n```\n\nEach yarn is made up of an ordered list of commands which are evaluated as a hashmap.\n\nEach command in a yarn may take any combination of none or many inputs, represented \nby literal values and/or existing fields (copied as literal values) from the hashmap \nby glob style matching a fields key. \n\nThe inputs (if any) are linearly processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA yarn may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern 'return*'.\n\nSimple Command Syntax:\n\tinput~command~output\n\nMultiple Command Syntax:\n\tinput~command0~output,input~command1~output\n\nLiteral Input Syntax:\n(@ - at symbol, followed by the value url encoded as a string)\n@%20hello%20world~command~output\n\nMulti Input Command Syntax:\n\tinput0 input1 inputN~command~output\n\nMulti Output Command Syntax:\n\tinput~command~output0 output1 output2\n\nMulti Input Multi Output Command Syntax\n\tinput0 input1 inputN~command~output0 output1 outputN\n\nSingle Character Glob Style Input Command Syntax:\n\t(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)\n\tinput?~command~output\n\t\n\twhich becomes logically equivalent to:\n\tinput0 input1 inputN~command~output\n\nMulti Character Glob Style Input Command Syntax:\n\t(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)\n\t*put*~command~output\n\t\n\twhich becomes logically equivalent to:\n\tinput0 input1 inputN~command~output\n\nMixed Input Command Syntax:\n\t(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)\n\tinputBefore special* inputAfter~command~output\n\t\n\twhich becomes logically equivalent to:\n\tinputBefore special0 special1 specialN inputAfter~command~output","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-10","dist":{"shasum":"9e01aad88ef9ea5887d95e38374264a2135f7ba2","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-10.tgz","integrity":"sha512-Qs31lezzkWyKziAwWaSE7EPPZnrR7G/eAQauaCl6wJVXCA3m6TxIiM0hNtCR4de/2/ErC8QH08gcd/97TQE+cg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICkY16U61c8ttd+Fe3FMBK6vmbSqVRqSbj3x93k4Y14WAiEAjDnpMvxClmMtFX96nfs9Qb2SVzDiS/A6edH4niehXpQ="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-11":{"name":"yarnlang","version":"0.0.0-11","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world~concat~return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { \"return\": \"hello world\" }\n\t}\n});\n```\n\nEach yarn is made up of an ordered list of commands which are evaluated as a hashmap.\n\nEach command in a yarn may take any combination of none or many inputs, represented \nby literal values and/or existing fields (copied as literal values) from the hashmap \nby glob style matching a fields key. \n\nThe inputs (if any) are linearly processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA yarn may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern 'return*'.\n\nSimple Command Syntax:\n\tinput~command~output\n\nMultiple Command Syntax:\n\tinput~command0~output,input~command1~output\n\nLiteral Input Syntax:\n(@ - at symbol, followed by the value url encoded as a string)\n@%20hello%20world~command~output\n\nMulti Input Command Syntax:\n\tinput0 input1 inputN~command~output\n\nMulti Output Command Syntax:\n\tinput~command~output0 output1 output2\n\nMulti Input Multi Output Command Syntax\n\tinput0 input1 inputN~command~output0 output1 outputN\n\nSingle Character Glob Style Input Command Syntax:\n\t(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)\n\tinput?~command~output\n\t\n\twhich becomes logically equivalent to:\n\tinput0 input1 inputN~command~output\n\nMulti Character Glob Style Input Command Syntax:\n\t(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)\n\t*put*~command~output\n\t\n\twhich becomes logically equivalent to:\n\tinput0 input1 inputN~command~output\n\nMixed Input Command Syntax:\n\t(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)\n\tinputBefore special* inputAfter~command~output\n\t\n\twhich becomes logically equivalent to:\n\tinputBefore special0 special1 specialN inputAfter~command~output","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-11","dist":{"shasum":"dd5a8b7cf7a859a97ec3c8a6c9fdac3a3537714c","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-11.tgz","integrity":"sha512-7fij/UzSOxhPelANGC35pgsv5i0KwEHkM3Q9FyiSTVeMZoPTLuxQs7j+tMpVRC9oevsXo6cJuJfkz8EmSfOu5w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDNQKFJFOr+80NZ19nIXS/VDOw/tX15B3Pnh4h7RtEVugIhAJhpFBrMM1FgTbhTzvLDUjqxI15oTr7kdu+55gkeHVdE"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-12":{"name":"yarnlang","version":"0.0.0-12","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world~concat~return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { \"return\": \"hello world\" }\n\t}\n});\n```\n\nEach yarn is made up of an ordered list of commands which are evaluated as a hashmap.\n\nEach command in a yarn may take any combination of none or many inputs, represented \nby literal values and/or existing fields (copied as literal values) from the hashmap \nby glob style matching a fields key. \n\nThe inputs (if any) are linearly processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA yarn may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern 'return*'.\n\nSimple Command Syntax:\n\tinput~command~output\n\nMultiple Command Syntax:\n\tinput~command0~output,input~command1~output\n\nLiteral Input Syntax:\n(@ - at symbol, followed by the value url encoded as a string)\n@%20hello%20world~command~output\n\nMulti Input Command Syntax:\n\tinput0 input1 inputN~command~output\n\nMulti Output Command Syntax:\n\tinput~command~output0 output1 output2\n\nMulti Input Multi Output Command Syntax\n\tinput0 input1 inputN~command~output0 output1 outputN\n\nSingle Character Glob Style Input Command Syntax:\n\t(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)\n\tinput?~command~output\n\t\n\twhich becomes logically equivalent to:\n\tinput0 input1 inputN~command~output\n\nMulti Character Glob Style Input Command Syntax:\n\t(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)\n\t*put*~command~output\n\t\n\twhich becomes logically equivalent to:\n\tinput0 input1 inputN~command~output\n\nMixed Input Command Syntax:\n\t(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)\n\tinputBefore special* inputAfter~command~output\n\t\n\twhich becomes logically equivalent to:\n\tinputBefore special0 special1 specialN inputAfter~command~output","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-12","dist":{"shasum":"b52e8522024c2915b2873bffe090851249c9e4bb","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-12.tgz","integrity":"sha512-9G1JAE9qQPphwZsCdevQKQXKX7LbMxNEMmBUx31k2R0vLSl43kgt/4sgRlzxWD4cQ3tTp/8RwIHmlf3r8c6eSA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCJKzrUKJjWrIQAeV7fyt+lXCbBM2xKJEmDyDqdVOp++QIhAJOnEsnU4RwOBC1uZWzYzbaVnhcyQDxA3T3VD2epeqA0"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-13":{"name":"yarnlang","version":"0.0.0-13","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n```\n~testing yarnlang...\n~requiring yarnlang...\n~attempting yarn evaluation...\n~{ return: 'hello world' }\n~yarn evaluation success, passing...\n```\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world~concat~return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { return: 'hello world' }\n\t}\n});\n```\n\nEach yarn is made up of an ordered list of commands which are evaluated as a hashmap.\n\nEach command in a yarn may take any combination of none or many inputs, represented \nby literal values and/or existing fields (copied as literal values) from the hashmap \nby glob style matching a fields key. \n\nThe inputs (if any) are linearly processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA yarn may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern 'return*'.\n\nSimple Command Syntax:\n\tinput~command~output\n\nMultiple Command Syntax:\n\tinput~command0~output,input~command1~output\n\nLiteral Input Syntax:\n(@ - at symbol, followed by the value url encoded as a string)\n@%20hello%20world~command~output\n\nMulti Input Command Syntax:\n\tinput0 input1 inputN~command~output\n\nMulti Output Command Syntax:\n\tinput~command~output0 output1 output2\n\nMulti Input Multi Output Command Syntax\n\tinput0 input1 inputN~command~output0 output1 outputN\n\nSingle Character Glob Style Input Command Syntax:\n\t(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)\n\tinput?~command~output\n\t\n\twhich becomes logically equivalent to:\n\tinput0 input1 inputN~command~output\n\nMulti Character Glob Style Input Command Syntax:\n\t(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)\n\t*put*~command~output\n\t\n\twhich becomes logically equivalent to:\n\tinput0 input1 inputN~command~output\n\nMixed Input Command Syntax:\n\t(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)\n\tinputBefore special* inputAfter~command~output\n\t\n\twhich becomes logically equivalent to:\n\tinputBefore special0 special1 specialN inputAfter~command~output","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-13","dist":{"shasum":"049b5fb397ed3f1fd386f4b27daf150b43bc009c","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-13.tgz","integrity":"sha512-+RQ/kY+beb3DnduBie5oxcdDjG7PLpT6E9T268egZGAkv2B9WgM3DkIg9CjLmaw+YjAcWeoFjCePzhF0TUD6eQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD2aowSE+azU4R9CNBLoI3q70Uqxtepa/bR8qmGuQsvTwIgJ+9U6OpN/c5TRBS/mqXAqiA4oxIWt50K8HwE2/o8fI0="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-14":{"name":"yarnlang","version":"0.0.0-14","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n```\n~testing yarnlang...\n~requiring yarnlang...\n~attempting yarn evaluation...\n~{ return: 'hello world' }\n~yarn evaluation success, passing...\n```\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world~concat~return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { return: 'hello world' }\n\t}\n});\n```\n\n## Syntax and Evaluations\n\nEach *yarn* is made up of an ordered list of commands, which are evaluated in a hashmap.\n\nEach command in a *yarn* may take any combination of none or many inputs, represented \nby literal values and/or existing fields (copied as literal values) from the hashmap \nby glob style matching a fields key. \n\nThe inputs (if any) are linearly processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA yarn may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern 'return*'.\n\nSimple Command Syntax:\n\tinput~command~output\n\nMultiple Command Syntax:\n\tinput~command0~output,input~command1~output\n\nLiteral Input Syntax:\n(@ - at symbol, followed by the value url encoded as a string)\n@%20hello%20world~command~output\n\nMulti Input Command Syntax:\n\tinput0 input1 inputN~command~output\n\nMulti Output Command Syntax:\n\tinput~command~output0 output1 output2\n\nMulti Input Multi Output Command Syntax\n\tinput0 input1 inputN~command~output0 output1 outputN\n\nSingle Character Glob Style Input Command Syntax:\n\t(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)\n\tinput?~command~output\n\t\n\twhich becomes logically equivalent to:\n\tinput0 input1 inputN~command~output\n\nMulti Character Glob Style Input Command Syntax:\n\t(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)\n\t*put*~command~output\n\t\n\twhich becomes logically equivalent to:\n\tinput0 input1 inputN~command~output\n\nMixed Input Command Syntax:\n\t(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)\n\tinputBefore special* inputAfter~command~output\n\t\n\twhich becomes logically equivalent to:\n\tinputBefore special0 special1 specialN inputAfter~command~output","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-14","dist":{"shasum":"899481fec1b480c09d646241a0985e9ed498c894","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-14.tgz","integrity":"sha512-PsjcPew0LqaYCWLy3j7wPq/ZmI3XYCx6b8TY2X+E4T8n6jjkxP6y6h64JXqkbV6/liXIzmzI1/iynalr2w0PZA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDk5kuPCsu1QQ8wPXqkEH3K4CJrmmxYj/20yB4sscCylQIgNrW4p0oqVwnui6W8tN+MTPd4qGwQnKOziyYyK7IQHCo="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-15":{"name":"yarnlang","version":"0.0.0-15","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n```\n~testing yarnlang...\n~requiring yarnlang...\n~attempting yarn evaluation...\n~{ return: 'hello world' }\n~yarn evaluation success, passing...\n```\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world~concat~return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { return: 'hello world' }\n\t}\n});\n```\n\n## Syntax and Evaluations\n\nEach **yarn** is made up of an ordered list of commands, which are evaluated in a hashmap.\n\nEach command in a **yarn** may take any combination of none or many inputs, represented \nby literal values and/or existing fields (copied as literal values) from the hashmap \nby glob style matching a fields key. \n\nThe inputs (if any) are linearly processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA yarn may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern 'return*'.\n\nSimple Command Syntax:\n\tinput~command~output\n\nMultiple Command Syntax:\n\tinput~command0~output,input~command1~output\n\nLiteral Input Syntax:\n(@ - at symbol, followed by the value url encoded as a string)\n@%20hello%20world~command~output\n\nMulti Input Command Syntax:\n\tinput0 input1 inputN~command~output\n\nMulti Output Command Syntax:\n\tinput~command~output0 output1 output2\n\nMulti Input Multi Output Command Syntax\n\tinput0 input1 inputN~command~output0 output1 outputN\n\nSingle Character Glob Style Input Command Syntax:\n\t(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)\n\tinput?~command~output\n\t\n\twhich becomes logically equivalent to:\n\tinput0 input1 inputN~command~output\n\nMulti Character Glob Style Input Command Syntax:\n\t(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)\n\t*put*~command~output\n\t\n\twhich becomes logically equivalent to:\n\tinput0 input1 inputN~command~output\n\nMixed Input Command Syntax:\n\t(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)\n\tinputBefore special* inputAfter~command~output\n\t\n\twhich becomes logically equivalent to:\n\tinputBefore special0 special1 specialN inputAfter~command~output","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-15","dist":{"shasum":"8e090d08b04e783c2f3b4029de43aae329d09a42","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-15.tgz","integrity":"sha512-ynsoYnD19nvK0xwhBe+WoIiacvzdYRDxsuYVJ6DUGvPH5fSmY07X7gWmaTRMdqlsRIz2xrV6Y8VY2EANQd2IcQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBqAboKF5GvOnT5w2PljIVoUvLomp9RYoLmTFthhw/t3AiEAuj7ZL8u1OFdUBa6PcXAr0ql/bhiO1wbxQeaWkty+2Zo="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-16":{"name":"yarnlang","version":"0.0.0-16","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n```\n~testing yarnlang...\n~requiring yarnlang...\n~attempting yarn evaluation...\n~{ return: 'hello world' }\n~yarn evaluation success, passing...\n```\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world~concat~return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { return: 'hello world' }\n\t}\n});\n```\n\n## Syntax and Evaluations\n\nEach **yarn** is made up of an ordered list of commands, which are evaluated in a hashmap.\n\nEach command in a **yarn** may take any combination of: none or many inputs, represented \nby literal values and/or existing hashmap fields matched by a glob style pattern. It is \nimportant to note that input values taken from the hashmap are passed to the function by\nvalue and not by reference, this allows a command to freely manipulate it's input values\nwithout fear of corroding the value already stored in the hashmap.\n\nThe inputs (if any) are linearly (synchronously) processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA **yarn** may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern 'return*'.\n\nSimple Command Syntax:\n`input~command~output`\n\nMultiple Command Syntax:\n`input~command0~output,input~command1~output`\n\nLiteral Input Syntax:\n(@ - at symbol, followed by the value url encoded as a string)\n`@%20hello%20world~command~output`\n\nMulti Input Command Syntax:\n`input0 input1 inputN~command~output0`\n\nMulti Output Command Syntax:\n`input~command~output0 output1 output2`\n\nMulti Input Multi Output Command Syntax\n`input0 input1 inputN~command~output0 output1 outputN`\n\nSingle Character Glob Style Input Command Syntax:\n(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)\n`input?~command~output`\n\t\nwhich becomes logically equivalent to:\n`input0 input1 inputN~command~output`\n\nMulti Character Glob Style Input Command Syntax:\n(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)\n`*put*~command~output`\n\t\nwhich becomes logically equivalent to:\n`input0 input1 inputN~command~output`\n\nMixed Input Command Syntax:\n(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)\n`inputBefore special* inputAfter~command~output`\n\t\nwhich becomes logically equivalent to:\n`inputBefore special0 special1 specialN inputAfter~command~output`","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-16","dist":{"shasum":"806c2a29a76fc8cf57c57e32308b14accd6f5906","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-16.tgz","integrity":"sha512-iHf8EY9B5xQcZ/ZqmETDMTyPkg1tTWyEC262H2bn3M6Zd1pOVhrEL3wQ7nkPmcmA4oQQz8obpkAkkM8VR/lA/g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCorUMqHw2YHewafpFQZMMkthyQbIrEfM9GPqTXuCM0DgIhAOpuaGiiw5FuHD6HHktvd0koy9/xaJoyo7lf4cglI3D7"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-17":{"name":"yarnlang","version":"0.0.0-17","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n```\n~testing yarnlang...\n~requiring yarnlang...\n~attempting yarn evaluation...\n~{ return: 'hello world' }\n~yarn evaluation success, passing...\n```\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world~concat~return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { return: 'hello world' }\n\t}\n});\n```\n\n## Syntax and Evaluations\n\nEach **yarn** is made up of an ordered list of commands, which are evaluated in a hashmap.\n\nEach command in a **yarn** may take any combination of: none or many inputs, represented \nby literal values and/or existing hashmap fields matched by a glob style pattern. It is \nimportant to note that input values taken from the hashmap are passed to the function by\nvalue and not by reference, this allows a command to freely manipulate it's input values\nwithout fear of corroding the value already stored in the hashmap.\n\nThe inputs (if any) are linearly (synchronously) processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA **yarn** may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern 'return*'.\n\nSimple Command Syntax:\n`input~command~output`\n\nMultiple Command Syntax:\n`input~command0~output,input~command1~output`\n\nLiteral Input Syntax:\n(@ - at symbol, followed by the value url encoded as a string)\n`@%20hello%20world~command~output`\n\nMulti Input Command Syntax:\n\n`input0 input1 inputN~command~output0`\n\nMulti Output Command Syntax:\n\n`input~command~output0 output1 output2`\n\nMulti Input Multi Output Command Syntax\n\n`input0 input1 inputN~command~output0 output1 outputN`\n\nSingle Character Glob Style Input Command Syntax:<br>\n(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)\n\n`input?~command~output`\n\t\nwhich becomes logically equivalent to:\n\n`input0 input1 inputN~command~output`\n\nMulti Character Glob Style Input Command Syntax:<br>\n(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)\n\n`*put*~command~output`\n\t\nwhich becomes logically equivalent to:\n\n`input0 input1 inputN~command~output`\n\nMixed Input Command Syntax:<br>\n(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)\n\n`inputBefore special* inputAfter~command~output`\n\t\nwhich becomes logically equivalent to:\n\n`inputBefore special0 special1 specialN inputAfter~command~output`","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-17","dist":{"shasum":"d0956e110019267d0151a2c8a24b4dd0ea03e31c","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-17.tgz","integrity":"sha512-LadgAisXwjVIuqBCPwOxU7mt7hLTbOo+7lC5IMqk0QW3RuMo5fX6KUyYkCPeHNJXjKLIVjr2/2BGvGSDuUgrog==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEveI/rgffHO/DFvfm+MsFwiwIo7JYMFQUxo257IWJw5AiEAw6Ad+GVE7Og0T42cS3r/96M9ph7AJsIt4VWZx+x0MPc="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-18":{"name":"yarnlang","version":"0.0.0-18","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n```\n~testing yarnlang...\n~requiring yarnlang...\n~attempting yarn evaluation...\n~{ return: 'hello world' }\n~yarn evaluation success, passing...\n```\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world~concat~return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { return: 'hello world' }\n\t}\n});\n```\n\n## Syntax and Evaluations\n\nEach **yarn** is made up of an ordered list of commands, which are evaluated in a hashmap.\n\nEach command in a **yarn** may take any combination of: none or many inputs, represented \nby literal values and/or existing hashmap fields matched by a glob style pattern. It is \nimportant to note that input values taken from the hashmap are passed to the function by\nvalue and not by reference, this allows a command to freely manipulate it's input values\nwithout fear of corroding the value already stored in the hashmap.\n\nThe inputs (if any) are linearly (synchronously) processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA **yarn** may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern 'return*'.\n\nSimple Command Syntax:\n\n`input~command~output`\n\nMultiple Command Syntax:\n\n`input~command0~output,input~command1~output`\n\nLiteral Input Syntax:<br>\n(@ - at symbol, followed by the value url encoded as a string)\n\n`@%20hello%20world~command~output`\n\nMulti Input Command Syntax:\n\n`input0 input1 inputN~command~output0`\n\nMulti Output Command Syntax:\n\n`input~command~output0 output1 output2`\n\nMulti Input Multi Output Command Syntax\n\n`input0 input1 inputN~command~output0 output1 outputN`\n\nSingle Character Glob Style Input Command Syntax:<br>\n(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)\n\n`input?~command~output`\n\t\nwhich becomes logically equivalent to:\n\n`input0 input1 inputN~command~output`\n\nMulti Character Glob Style Input Command Syntax:<br>\n(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)\n\n`*put*~command~output`\n\t\nwhich becomes logically equivalent to:\n\n`input0 input1 inputN~command~output`\n\nMixed Input Command Syntax:<br>\n(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)\n\n`inputBefore special* inputAfter~command~output`\n\t\nwhich becomes logically equivalent to:\n\n`inputBefore special0 special1 specialN inputAfter~command~output`","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-18","dist":{"shasum":"f53a9632276b615bc4eb3a32e1b2cee8bfe8976e","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-18.tgz","integrity":"sha512-LJYvGXoQcEPOYDAsd96fqJBYlnQq+4p8wf/CWkmkfVwhHmC+qUgcihbbyfxfZ4gjU5dLVcJ0lqk1M/+FPOch7g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBd7pLu4bbkVQ3mmvJNhmtqtDswqaqBVGMVMgLRfZJvpAiEAmp36JDvBp2JNL/vP2Sbfj5wfsFSISV3hcGQfTnHXJj8="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-19":{"name":"yarnlang","version":"0.0.0-19","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n```\n~testing yarnlang...\n~requiring yarnlang...\n~attempting yarn evaluation...\n~{ return: 'hello world' }\n~yarn evaluation success, passing...\n```\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world~concat~return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { return: 'hello world' }\n\t}\n});\n```\n\n## Syntax and Evaluations\n\nEach **yarn** is made up of an ordered list of commands, which are evaluated in a hashmap.\n\nEach command in a **yarn** may take any combination of: none or many inputs, represented \nby literal values and/or existing hashmap fields matched by a glob style pattern. It is \nimportant to note that input values taken from the hashmap are passed to the function by\nvalue and not by reference, this allows a command to freely manipulate it's input values\nwithout fear of corroding the value already stored in the hashmap.\n\nThe inputs (if any) are linearly (synchronously) processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA **yarn** may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern 'return*'.\n\nSimple Command Syntax:\n\n`input~command~output`\n\nMultiple Command Syntax:\n\n`input~command0~output,input~command1~output`\n\nLiteral Input Syntax:<br>\n*(@ - at symbol, followed by the value url encoded as a string)*\n\n`@%20hello%20world~command~output`\n\nMulti Input Command Syntax:\n\n`input0 input1 inputN~command~output0`\n\nMulti Output Command Syntax:\n\n`input~command~output0 output1 output2`\n\nMulti Input Multi Output Command Syntax\n\n`input0 input1 inputN~command~output0 output1 outputN`\n\nSingle Character Glob Style Input Command Syntax:<br>\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*\n\n`input?~command~output`\n\t\nwhich becomes logically equivalent to:\n\n`input0 input1 inputN~command~output`\n\nMulti Character Glob Style Input Command Syntax:<br>\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*\n\n`*put*~command~output`\n\t\nwhich becomes logically equivalent to:\n\n`input0 input1 inputN~command~output`\n\nMixed Input Command Syntax:<br>\n*(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)*\n\n`inputBefore special* inputAfter~command~output`\n\t\nwhich becomes logically equivalent to:\n\n`inputBefore special0 special1 specialN inputAfter~command~output`","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-19","dist":{"shasum":"080f77383a37e0e00884f1102b558e8fb251584a","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-19.tgz","integrity":"sha512-EYwypDGWtNMEwGObBCjZGGAP5QpmPNPEoKoAqkTm6BT7+CaSjxLWTcgoXul46EXtvAqUjFOJYHNxcXIXsJR4gA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICQQwtl4M0eQuj8tOdahz0htOR+ZelqdUCLS6JnSYy8vAiANAqkezaEmxjr4FGP8gL3PsRTA2fXeOqW40wffZSzmEA=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-20":{"name":"yarnlang","version":"0.0.0-20","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n```\n~testing yarnlang...\n~requiring yarnlang...\n~attempting yarn evaluation...\n~{ return: 'hello world' }\n~yarn evaluation success, passing...\n```\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world~concat~return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { return: 'hello world' }\n\t}\n});\n```\n\n## Syntax and Evaluations\n\nEach **yarn** is made up of an ordered list of commands, which are evaluated in a hashmap.\n\nEach command in a **yarn** may take any combination of: none or many inputs, represented \nby literal values and/or existing hashmap fields matched by a glob style pattern. It is \nimportant to note that input values taken from the hashmap are passed to the function by\nvalue and not by reference, this allows a command to freely manipulate it's input values\nwithout fear of corroding the value already stored in the hashmap.\n\nThe inputs (if any) are linearly (synchronously) processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA **yarn** may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern 'return*'.\n\nSimple Command Syntax:<br>\n`input~command~output`\n\nMultiple Command Syntax:<br>\n`input~command0~output,input~command1~output`\n\nLiteral Input Syntax:<br>\n*(@ - at symbol, followed by the value url encoded as a string)*<br>\n`@%20hello%20world~command~output`\n\nMulti Input Command Syntax:<br>\n`input0 input1 inputN~command~output0`\n\nMulti Output Command Syntax:<br>\n`input~command~output0 output1 output2`\n\nMulti Input Multi Output Command Syntax:<br>\n`input0 input1 inputN~command~output0 output1 outputN`\n\nSingle Character Glob Style Input Command Syntax:<br>\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`input?~command~output`\n\t\nwhich becomes logically equivalent to:<br>\n`input0 input1 inputN~command~output`\n\nMulti Character Glob Style Input Command Syntax:<br>\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`*put*~command~output`\n\t\nwhich becomes logically equivalent to:<br>\n`input0 input1 inputN~command~output`\n\nMixed Input Command Syntax:<br>\n*(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)*<br>\n`inputBefore special* inputAfter~command~output`\n\t\nwhich becomes logically equivalent to:<br>\n`inputBefore special0 special1 specialN inputAfter~command~output`","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-20","dist":{"shasum":"fee8658b12d6568c8efe38b51f6b4055b13035fc","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-20.tgz","integrity":"sha512-YCKFdUE5FKS66HcnlTdLcsIH3JtOxWiLUE1EFuIMgUan9enY0H27nlT4uKQBwQSyfcXueme+PAmfXO/agLIwXg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC6L4vo7iFIFrVrA3vPLIuKUcxmVgcZhi+3Nr786JcrRwIgRIZNPEpM8lihy6e5EfX72N39TuUhomc5LrYhdVe27OM="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-21":{"name":"yarnlang","version":"0.0.0-21","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n```\n~testing yarnlang...\n~requiring yarnlang...\n~attempting yarn evaluation...\n~{ return: 'hello world' }\n~yarn evaluation success, passing...\n```\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world~concat~return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { return: 'hello world' }\n\t}\n});\n```\n\n## Syntax and Evaluations\n\nEach **yarn** is made up of an ordered list of commands, which are evaluated in a hashmap.\n\nEach command in a **yarn** may take any combination of: none or many inputs, represented \nby literal values and/or existing hashmap fields matched by a glob style pattern. It is \nimportant to note that input values taken from the hashmap are passed to the function by\nvalue and not by reference, this allows a command to freely manipulate it's input values\nwithout fear of corroding the value already stored in the hashmap.\n\nThe inputs (if any) are linearly (synchronously) processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA **yarn** may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern 'return*'.\n\n#### Simple Command Syntax:<br>\n`input~command~output`\n\nMultiple Command Syntax:<br>\n`input~command0~output,input~command1~output`\n\nLiteral Input Syntax:<br>\n*(@ - at symbol, followed by the value url encoded as a string)*<br>\n`@%20hello%20world~command~output`\n\nMulti Input Command Syntax:<br>\n`input0 input1 inputN~command~output0`\n\nMulti Output Command Syntax:<br>\n`input~command~output0 output1 output2`\n\nMulti Input Multi Output Command Syntax:<br>\n`input0 input1 inputN~command~output0 output1 outputN`\n\nSingle Character Glob Style Input Command Syntax:<br>\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`input?~command~output`\n\t\nwhich becomes logically equivalent to:<br>\n`input0 input1 inputN~command~output`\n\nMulti Character Glob Style Input Command Syntax:<br>\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`*put*~command~output`\n\t\nwhich becomes logically equivalent to:<br>\n`input0 input1 inputN~command~output`\n\nMixed Input Command Syntax:<br>\n*(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)*<br>\n`inputBefore special* inputAfter~command~output`\n\t\nwhich becomes logically equivalent to:<br>\n`inputBefore special0 special1 specialN inputAfter~command~output`","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-21","dist":{"shasum":"e4f3fb2d6275d4307ac46e2f130f549e94f9e8d3","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-21.tgz","integrity":"sha512-t0cwIlw3r74RC27yRQuNvQ5jiI8Wv2ng0bRpXtpP6Qyanr4xOCIMulWrMEZbxZsJLXm+VBX37TpTHiVcYH+szQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICbLmhEUUnqjWIjDpVt50tvXKKQlBuYrbOZzcHQauik7AiEA84lZOPzh6YmqEPW8sVElLgGxj7pr0CwiImGIkTzxKGk="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-22":{"name":"yarnlang","version":"0.0.0-22","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n```\n~testing yarnlang...\n~requiring yarnlang...\n~attempting yarn evaluation...\n~{ return: 'hello world' }\n~yarn evaluation success, passing...\n```\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world~concat~return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { return: 'hello world' }\n\t}\n});\n```\n\n## Syntax and Evaluations\n\nEach **yarn** is made up of an ordered list of commands, which are evaluated in a hashmap.\n\nEach command in a **yarn** may take any combination of: none or many inputs, represented \nby literal values and/or existing hashmap fields matched by a glob style pattern. It is \nimportant to note that input values taken from the hashmap are passed to the function by\nvalue and not by reference, this allows a command to freely manipulate it's input values\nwithout fear of corroding the value already stored in the hashmap.\n\nThe inputs (if any) are linearly (synchronously) processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA **yarn** may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern 'return*'.\n\n#### Simple Command Syntax:\n`input~command~output`\n\n#### Multiple Command Syntax:\n`input~command0~output,input~command1~output`\n\n#### Literal Input Syntax:\n*(@ - at symbol, followed by the value url encoded as a string)*<br>\n`@%20hello%20world~command~output`\n\n#### Multi Input Command Syntax:\n`input0 input1 inputN~command~output0`\n\n#### Multi Output Command Syntax:\n`input~command~output0 output1 output2`\n\n#### Multi Input Multi Output Command Syntax:\n`input0 input1 inputN~command~output0 output1 outputN`\n\n#### Single Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`input?~command~output`\n\t\nwhich becomes logically equivalent to:<br>\n`input0 input1 inputN~command~output`\n\n#### Multi Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`*put*~command~output`\n\t\nwhich becomes logically equivalent to:<br>\n`input0 input1 inputN~command~output`\n\n#### Mixed Input Command Syntax:\n*(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)*<br>\n`inputBefore special* inputAfter~command~output`\n\t\nwhich becomes logically equivalent to:<br>\n`inputBefore special0 special1 specialN inputAfter~command~output`","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-22","dist":{"shasum":"8e51f32738cdd13533af9f72d55ae4e94f0ac4d5","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-22.tgz","integrity":"sha512-CjVU8LH6UlhXI5edBXjeDLCrrK3We5mR7S91eyEimRRcuky+n/yCPGnZkLyT/WL+4FKjoz5kHxTYN3dcGQUJHg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFXkoRYBfQWI+sPPf63gQR7x4MFvwY1Z5b+i0kWYoul0AiAAvcHADAF/X3fAHUX2ye9Y9YqbRsWGLBk0DKgEmDdObg=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-23":{"name":"yarnlang","version":"0.0.0-23","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n```\n~testing yarnlang...\n~requiring yarnlang...\n~attempting yarn evaluation...\n~{ return: 'hello world' }\n~yarn evaluation success, passing...\n```\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world~concat~return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { return: 'hello world' }\n\t}\n});\n```\n\n## Syntax and Evaluations\n\nEach **yarn** is made up of an ordered list of commands, which are evaluated in a hashmap.\n\nEach command in a **yarn** may take any combination of: none or many inputs, represented \nby literal values and/or existing hashmap fields matched by a glob style pattern. It is \nimportant to note that input values taken from the hashmap are passed to the function by\nvalue and not by reference, this allows a command to freely manipulate it's input values\nwithout fear of corroding the value already stored in the hashmap.\n\nThe inputs (if any) are linearly (synchronously) processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA **yarn** may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern 'return*'.\n\n#### Simple Command Syntax:\n`input~command~output`\n\n#### Multiple Command Syntax:\n`input~command0~output,input~command1~output`\n\n#### Literal Input Syntax:\n*(@ - at symbol, followed by the value url encoded as a string)*<br>\n`@%20hello%20world~command~output`\n\n#### Multi Input Command Syntax:\n`input0 input1 inputN~command~output0`\n\n#### Multi Output Command Syntax:\n`input~command~output0 output1 output2`\n\n#### Multi Input Multi Output Command Syntax:\n`input0 input1 inputN~command~output0 output1 outputN`\n\n#### Single Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`input?~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Multi Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`*put*~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Mixed Input Command Syntax:\n*(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)*<br>\n`inputBefore special* inputAfter~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`inputBefore special0 special1 specialN inputAfter~command~output`","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-23","dist":{"shasum":"50555f79abbbda9e3722470c03fbcb3e3807f99f","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-23.tgz","integrity":"sha512-JiBeEyAVZ9UJOZVeZHdx3VQ5t3ulk5bPweAEK8mk2CtXhy1elWCRIiFXqRwEIWiAjO979xp2IrCDhrAwT6rbqQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBEbFwDFeh7J5uQSGHWz91qWWI6hS/JWX/Fr1rcd0oS+AiBc0leBc7Lx+qmzwBcjEi0PotlxW4GCzTr2v8YylWg5jg=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-24":{"name":"yarnlang","version":"0.0.0-24","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n```\n~testing yarnlang...\n~requiring yarnlang...\n~attempting yarn evaluation...\n~{ return: 'hello world' }\n~yarn evaluation success, passing...\n```\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world~concat~return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { return: 'hello world' }\n\t}\n});\n```\n\n## Syntax and Evaluations\n\nEach **yarn** is made up of an ordered list of commands, which are evaluated in a hashmap.\n\nEach command in a **yarn** may take any combination of: none or many inputs, represented \nby literal values and/or existing hashmap fields matched by a glob style pattern. It is \nimportant to note that input values taken from the hashmap are passed to the function by\nvalue and not by reference, this allows a command to freely manipulate it's input values\nwithout fear of corroding the value already stored in the hashmap.\n\nThe inputs (if any) are linearly (synchronously) processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA **yarn** may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern `return*`.\n\n#### Simple Command Syntax:\n`input~command~output`\n\n#### Multiple Command Syntax:\n`input~command0~output,input~command1~output`\n\n#### Literal Input Syntax:\n*(@ - at symbol, followed by the value url encoded as a string)*<br>\n`@%20hello%20world~command~output`\n\n#### Multi Input Command Syntax:\n`input0 input1 inputN~command~output0`\n\n#### Multi Output Command Syntax:\n`input~command~output0 output1 output2`\n\n#### Multi Input Multi Output Command Syntax:\n`input0 input1 inputN~command~output0 output1 outputN`\n\n#### Single Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`input?~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Multi Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`*put*~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Mixed Input Command Syntax:\n*(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)*<br>\n`inputBefore special* inputAfter~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`inputBefore special0 special1 specialN inputAfter~command~output`","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-24","dist":{"shasum":"533146065cb06a1636521e61fe1a7c8e1f8deccb","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-24.tgz","integrity":"sha512-c/X/gTbmXnc/qdNVEtbYaZ7+vCC6WVS2jFZPDXOaa5SbX05f0m+hLeRyzc7qrt9YYiNdTc6o+SlCooTAhVNj1g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGS+HY01+Vqt4toHqN8xVZ8YufGBNCKYAcHtlCnrDNYjAiBNy3Quex+QzMZU8Z/UU0cFzHBCtpWF06mp5q3JkLae4A=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-25":{"name":"yarnlang","version":"0.0.0-25","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0"},"readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n```\n~testing yarnlang...\n~requiring yarnlang...\n~attempting yarn evaluation...\n~{ return: 'hello world' }\n~yarn evaluation success, passing...\n```\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world~concat~return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { return: 'hello world' }\n\t}\n});\n```\n\n## Syntax and Evaluations\n\nEach **yarn** is made up of an ordered list of commands, which are evaluated in a hashmap.\n\nEach command in a **yarn** may take any combination of: none or many inputs, represented \nby literal values and/or existing hashmap fields matched by a glob style pattern. It is \nimportant to note that input values taken from the hashmap are passed to the function by\nvalue and not by reference, this allows a command to freely manipulate it's input values\nwithout fear of corroding the value already stored in the hashmap.\n\nThe inputs (if any) are linearly (synchronously) processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA **yarn** may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern `return*`.\n\n#### Simple Command Syntax:\n`input~command~output`\n\n#### Multiple Command Syntax:\n`input~command0~output,input~command1~output`\n\n#### Literal Input Syntax:\n*(@ - at symbol, followed by the value url encoded as a string)*<br>\n`@%20hello%20world~command~output`\n\n#### Multi Input Command Syntax:\n`input0 input1 inputN~command~output0`\n\n#### Multi Output Command Syntax:\n`input~command~output0 output1 output2`\n\n#### Multi Input Multi Output Command Syntax:\n`input0 input1 inputN~command~output0 output1 outputN`\n\n#### Single Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`input?~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Multi Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`*put*~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Mixed Input Command Syntax:\n*(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)*<br>\n`inputBefore special* inputAfter~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`inputBefore special0 special1 specialN inputAfter~command~output`","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-25","dist":{"shasum":"9599d17ca4a09774e4b4e67c5ab7ec5c8ed8faa6","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-25.tgz","integrity":"sha512-Fn2Z/mi6xb/tEYGYpgUItlh22hEVUzSCvHye1ED39YQrYjRknfWLk0EsqxwUQiWxZciyJ4u9bRnCElWdg5/TtQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAJGx/y/F7G71KVZzioy8ZlGQlZVxZTgkNoHS7ku8YNHAiEAqETxUYiJN1AvT8YGIKwBQRymvSANerGHttP9e9Ct/Wg="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-26":{"name":"yarnlang","version":"0.0.0-26","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0"},"readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n```\n~testing yarnlang...\n~requiring yarnlang...\n~attempting yarn evaluation...\n~{ return: 'hello world' }\n~yarn evaluation success, passing...\n```\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world~concat~return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { return: 'hello world' }\n\t}\n});\n```\n\n## Syntax and Evaluations\n\nEach **yarn** is made up of an ordered list of commands, which are evaluated in a hashmap.\n\nEach command in a **yarn** may take any combination of: none or many inputs, represented \nby literal values and/or existing hashmap fields matched by a glob style pattern. It is \nimportant to note that input values taken from the hashmap are passed to the function by\nvalue and not by reference, this allows a command to freely manipulate it's input values\nwithout fear of corroding the value already stored in the hashmap.\n\nThe inputs (if any) are linearly (synchronously) processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA **yarn** may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern `return*`.\n\n#### Simple Command Syntax:\n`input~command~output`\n\n#### Multiple Command Syntax:\n`input~command0~output,input~command1~output`\n\n#### Literal Input Syntax:\n*(@ - at symbol, followed by the value url encoded as a string)*<br>\n`@%20hello%20world~command~output`\n\n#### Multi Input Command Syntax:\n`input0 input1 inputN~command~output0`\n\n#### Multi Output Command Syntax:\n`input~command~output0 output1 output2`\n\n#### Multi Input Multi Output Command Syntax:\n`input0 input1 inputN~command~output0 output1 outputN`\n\n#### Single Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`input?~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Multi Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`*put*~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Mixed Input Command Syntax:\n*(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)*<br>\n`inputBefore special* inputAfter~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`inputBefore special0 special1 specialN inputAfter~command~output`","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-26","dist":{"shasum":"0459815936f97ea0aa1a704e1f7e52bad383a673","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-26.tgz","integrity":"sha512-BGCPHAcMQHP4Db7/zxB/cy2hzIC4Jw0EqMBET/AlnW4ITlp2WOy8CG6jRGDC32Ao+IcxHBcwIgyZbn1AVAcKgA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICbWot2lbhWDJCXliYmqvGYKe6P03Jc/Qte0KPtSsI3CAiEAtpSK6xVn6VtY26jwrZLNIVNFBk8ZMY+K3p+npGdoJrc="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-27":{"name":"yarnlang","version":"0.0.0-27","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0"},"readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n```\n~testing yarnlang...\n~requiring yarnlang...\n~attempting yarn evaluation...\n~{ return: 'hello world' }\n~yarn evaluation success, passing...\n```\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world~concat~return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { return: 'hello world' }\n\t}\n});\n```\n\n## Syntax and Evaluations\n\nEach **yarn** is made up of an ordered list of commands, which are evaluated in a hashmap.\n\nEach command in a **yarn** may take any combination of: none or many inputs, represented \nby literal values and/or existing hashmap fields matched by a glob style pattern. It is \nimportant to note that input values taken from the hashmap are passed to the function by\nvalue and not by reference, this allows a command to freely manipulate it's input values\nwithout fear of corroding the value already stored in the hashmap.\n\nThe inputs (if any) are linearly (synchronously) processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA **yarn** may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern `return*`.\n\n#### Simple Command Syntax:\n`input~command~output`\n\n#### Multiple Command Syntax:\n`input~command0~output,input~command1~output`\n\n#### Literal Input Syntax:\n*(@ - at symbol, followed by the value url encoded as a string)*<br>\n`@%20hello%20world~command~output`\n\n#### Multi Input Command Syntax:\n`input0 input1 inputN~command~output0`\n\n#### Multi Output Command Syntax:\n`input~command~output0 output1 output2`\n\n#### Multi Input Multi Output Command Syntax:\n`input0 input1 inputN~command~output0 output1 outputN`\n\n#### Single Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`input?~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Multi Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`*put*~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Mixed Input Command Syntax:\n*(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)*<br>\n`inputBefore special* inputAfter~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`inputBefore special0 special1 specialN inputAfter~command~output`","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-27","dist":{"shasum":"a2d5328f5e85d62e5c9da0f868780604f41033db","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-27.tgz","integrity":"sha512-Q3OMc6Of8uWM15XfVbrjAHiq38W23KezKqwmvOPITavJ7kE/S9Q0WO4k1aMl+q9a54fFZ6BswXqDubRPK/8fiQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGl/cR3Kn5GepAel3urFx3pNwqA8nyciHBsLDrccPaRLAiEAoPFYfaRWYhfEJH7nywQ5u/FcWd4H5hX9U0w40xYBbwg="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-28":{"name":"yarnlang","version":"0.0.0-28","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0"},"readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n```\n~testing yarnlang...\n~requiring yarnlang...\n~attempting yarn evaluation...\n~{ return: 'hello world' }\n~yarn evaluation success, passing...\n```\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world~concat~return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { return: 'hello world' }\n\t}\n});\n```\n\n## Syntax and Evaluations\n\nEach **yarn** is made up of an ordered list of commands, which are evaluated in a hashmap.\n\nEach command in a **yarn** may take any combination of: none or many inputs, represented \nby literal values and/or existing hashmap fields matched by a glob style pattern. It is \nimportant to note that input values taken from the hashmap are passed to the function by\nvalue and not by reference, this allows a command to freely manipulate it's input values\nwithout fear of corroding the value already stored in the hashmap.\n\nThe inputs (if any) are linearly (synchronously) processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA **yarn** may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern `return*`.\n\n#### Simple Command Syntax:\n`input~command~output`\n\n#### Multiple Command Syntax:\n`input~command0~output,input~command1~output`\n\n#### Literal Input Syntax:\n*(@ - at symbol, followed by the value url encoded as a string)*<br>\n`@%20hello%20world~command~output`\n\n#### Multi Input Command Syntax:\n`input0 input1 inputN~command~output0`\n\n#### Multi Output Command Syntax:\n`input~command~output0 output1 output2`\n\n#### Multi Input Multi Output Command Syntax:\n`input0 input1 inputN~command~output0 output1 outputN`\n\n#### Single Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`input?~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Multi Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`*put*~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Mixed Input Command Syntax:\n*(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)*<br>\n`inputBefore special* inputAfter~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`inputBefore special0 special1 specialN inputAfter~command~output`","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-28","dist":{"shasum":"c9c63930fbfadfdc51ffc6849e401815bf62984c","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-28.tgz","integrity":"sha512-Rg4YxBESARw0jfinLOuiqxhylGD+IqB8d1/Pvq7J3Qby2p0AiuBHo/HL7Q5YsarRw8iIH319O7Je597BPcluYA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHNIbdr2QPP0s8Z5uiIG3MtmwHkt9TAHZgFX0U1jnyfFAiEApCPtEWns2Ha4txRretCiLb71ACA0BGf0vvJqDzYesKI="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-29":{"name":"yarnlang","version":"0.0.0-29","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0"},"readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n```\n~testing yarnlang...\n~requiring yarnlang...\n~attempting yarn evaluation...\n~{ return: 'hello world' }\n~yarn evaluation success, passing...\n```\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world~concat~return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { return: 'hello world' }\n\t}\n});\n```\n\n## Syntax and Evaluations\n\nEach **yarn** is made up of an ordered list of commands, which are evaluated in a hashmap.\n\nEach command in a **yarn** may take any combination of: none or many inputs, represented \nby literal values and/or existing hashmap fields matched by a glob style pattern. It is \nimportant to note that input values taken from the hashmap are passed to the function by\nvalue and not by reference, this allows a command to freely manipulate it's input values\nwithout fear of corroding the value already stored in the hashmap.\n\nThe inputs (if any) are linearly (synchronously) processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA **yarn** may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern `return*`.\n\n#### Simple Command Syntax:\n`input~command~output`\n\n#### Multiple Command Syntax:\n`input~command0~output,input~command1~output`\n\n#### Literal Input Syntax:\n*(@ - at symbol, followed by the value url encoded as a string)*<br>\n`@%20hello%20world~command~output`\n\n#### Multi Input Command Syntax:\n`input0 input1 inputN~command~output0`\n\n#### Multi Output Command Syntax:\n`input~command~output0 output1 output2`\n\n#### Multi Input Multi Output Command Syntax:\n`input0 input1 inputN~command~output0 output1 outputN`\n\n#### Single Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`input?~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Multi Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`*put*~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Mixed Input Command Syntax:\n*(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)*<br>\n`inputBefore special* inputAfter~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`inputBefore special0 special1 specialN inputAfter~command~output`","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-29","dist":{"shasum":"c8811b2d35feff5d8574486158c89a0ec3c2003e","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-29.tgz","integrity":"sha512-VIVltEXicXpZJqR1z5cMgo/l+DGTwcCXlfXkYkUHHRHdffHy3jfpgnymSkvAkWJrZJV2PxuW86hXDppYUFhvzw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBjqpJm790XSA0og1nfhKBIN98gtijQ51SfMcnAt4lntAiEAiNkPMZdo3eRH6VZWR7CrUnwOVw7N66yHM//xOkmCsVc="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-30":{"name":"yarnlang","version":"0.0.0-30","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0"},"readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n```\n~testing yarnlang...\n~requiring yarnlang...\n~attempting yarn evaluation...\n~{ return: 'hello world' }\n~yarn evaluation success, passing...\n```\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world~concat~return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { return: 'hello world' }\n\t}\n});\n```\n\n## Syntax and Evaluations\n\nEach **yarn** is made up of an ordered list of commands, which are evaluated in a hashmap.\n\nEach command in a **yarn** may take any combination of: none or many inputs, represented \nby literal values and/or existing hashmap fields matched by a glob style pattern. It is \nimportant to note that input values taken from the hashmap are passed to the function by\nvalue and not by reference, this allows a command to freely manipulate it's input values\nwithout fear of corroding the value already stored in the hashmap.\n\nThe inputs (if any) are linearly (synchronously) processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA **yarn** may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern `return*`.\n\n#### Simple Command Syntax:\n`input~command~output`\n\n#### Multiple Command Syntax:\n`input~command0~output,input~command1~output`\n\n#### Literal Input Syntax:\n*(@ - at symbol, followed by the value url encoded as a string)*<br>\n`@%20hello%20world~command~output`\n\n#### Multi Input Command Syntax:\n`input0 input1 inputN~command~output0`\n\n#### Multi Output Command Syntax:\n`input~command~output0 output1 output2`\n\n#### Multi Input Multi Output Command Syntax:\n`input0 input1 inputN~command~output0 output1 outputN`\n\n#### Single Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`input?~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Multi Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`*put*~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Mixed Input Command Syntax:\n*(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)*<br>\n`inputBefore special* inputAfter~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`inputBefore special0 special1 specialN inputAfter~command~output`","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-30","dist":{"shasum":"8768eac6accb7c5482090146a7dcb89f00c989c0","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-30.tgz","integrity":"sha512-4BE6uqo/8dW7fl5XPDJeBy0dLlxrd/IPd1sJ4+mlCii8FsL6e+chxO3+2O+wLmpHyzNUjNfo/W3cMiT/0cd4kA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDdosKzcFROKPqEdTl199/cx34yTZ0fNuoY41WNtz6+vAIgVQbThs4+MNKEfIaTOtEfsaGMtS+cYGVCL5yitRdgHzw="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-31":{"name":"yarnlang","version":"0.0.0-31","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0"},"readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n```\n~testing yarnlang...\n~requiring yarnlang...\n~attempting yarn evaluation...\n~{ return: 'hello world' }\n~yarn evaluation success, passing...\n```\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world~concat~return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { return: 'hello world' }\n\t}\n});\n```\n\n## Syntax and Evaluations\n\nEach **yarn** is made up of an ordered list of commands, which are evaluated in a hashmap.\n\nEach command in a **yarn** may take any combination of: none or many inputs, represented \nby literal values and/or existing hashmap fields matched by a glob style pattern. It is \nimportant to note that input values taken from the hashmap are passed to the function by\nvalue and not by reference, this allows a command to freely manipulate it's input values\nwithout fear of corroding the value already stored in the hashmap.\n\nThe inputs (if any) are linearly (synchronously) processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA **yarn** may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern `return*`.\n\n#### Simple Command Syntax:\n`input~command~output`\n\n#### Multiple Command Syntax:\n`input~command0~output,input~command1~output`\n\n#### Literal Input Syntax:\n*(@ - at symbol, followed by the value url encoded as a string)*<br>\n`@%20hello%20world~command~output`\n\n#### Multi Input Command Syntax:\n`input0 input1 inputN~command~output0`\n\n#### Multi Output Command Syntax:\n`input~command~output0 output1 output2`\n\n#### Multi Input Multi Output Command Syntax:\n`input0 input1 inputN~command~output0 output1 outputN`\n\n#### Single Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`input?~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Multi Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`*put*~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Mixed Input Command Syntax:\n*(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)*<br>\n`inputBefore special* inputAfter~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`inputBefore special0 special1 specialN inputAfter~command~output`","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-31","dist":{"shasum":"1fb5b0f1b41b92e1c8f5cfd7478f763b38fe9e46","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-31.tgz","integrity":"sha512-NxbeU+l5i8+flErxy7rmdMNWD9408p7k6orGQCEFJ7Hb5X7PH4VLoP4x54Aw2RonFw+ViD6dTUmkfjhb/EfMnw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAZqCI9ZgT3Jndgk0rELFcDwg5wynwTOt99/a7ecmgrtAiEAig8r7/9VL8svFUSR64nMDkV2EEOc1UPmg4E3qb5qV8A="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-32":{"name":"yarnlang","version":"0.0.0-32","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6"},"readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n```\n~testing yarnlang...\n~requiring yarnlang...\n~attempting yarn evaluation...\n~{ return: 'hello world' }\n~yarn evaluation success, passing...\n```\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world~concat~return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { return: 'hello world' }\n\t}\n});\n```\n\n## Syntax and Evaluations\n\nEach **yarn** is made up of an ordered list of commands, which are evaluated in a hashmap.\n\nEach command in a **yarn** may take any combination of: none or many inputs, represented \nby literal values and/or existing hashmap fields matched by a glob style pattern. It is \nimportant to note that input values taken from the hashmap are passed to the function by\nvalue and not by reference, this allows a command to freely manipulate it's input values\nwithout fear of corroding the value already stored in the hashmap.\n\nThe inputs (if any) are linearly (synchronously) processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA **yarn** may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern `return*`.\n\n#### Simple Command Syntax:\n`input~command~output`\n\n#### Multiple Command Syntax:\n`input~command0~output,input~command1~output`\n\n#### Literal Input Syntax:\n*(@ - at symbol, followed by the value url encoded as a string)*<br>\n`@%20hello%20world~command~output`\n\n#### Multi Input Command Syntax:\n`input0 input1 inputN~command~output0`\n\n#### Multi Output Command Syntax:\n`input~command~output0 output1 output2`\n\n#### Multi Input Multi Output Command Syntax:\n`input0 input1 inputN~command~output0 output1 outputN`\n\n#### Single Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`input?~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Multi Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`*put*~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Mixed Input Command Syntax:\n*(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)*<br>\n`inputBefore special* inputAfter~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`inputBefore special0 special1 specialN inputAfter~command~output`","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-32","dist":{"shasum":"82d0d382e0cbd2a2754b7914facc7a445ccc2985","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-32.tgz","integrity":"sha512-TRfyjInCI3Mh2pHdFbftHnxJWTiAWHkml+H6b4lqoSZy8tdbvYgVzW5DPuxZ2kkQowTUNviTz9G8ilHtYJ3CGg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDQredj/kgsDWs/idi1ZlC8VwuN3c2fBLoegHZYOzyL9AIgG/NJUjHoF/25aMzUhU3/TUC0t3oMs48Cchp9mQ//7nE="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-33":{"name":"yarnlang","version":"0.0.0-33","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","ntwitter":"~0.5.0","pingdom":"~0.6.2","crc":"~0.2.0"},"readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n```\n~testing yarnlang...\n~requiring yarnlang...\n~attempting yarn evaluation...\n~{ return: 'hello world' }\n~yarn evaluation success, passing...\n```\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world~concat~return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { return: 'hello world' }\n\t}\n});\n```\n\n## Syntax and Evaluations\n\nEach **yarn** is made up of an ordered list of commands, which are evaluated in a hashmap.\n\nEach command in a **yarn** may take any combination of: none or many inputs, represented \nby literal values and/or existing hashmap fields matched by a glob style pattern. It is \nimportant to note that input values taken from the hashmap are passed to the function by\nvalue and not by reference, this allows a command to freely manipulate it's input values\nwithout fear of corroding the value already stored in the hashmap.\n\nThe inputs (if any) are linearly (synchronously) processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA **yarn** may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern `return*`.\n\n#### Simple Command Syntax:\n`input~command~output`\n\n#### Multiple Command Syntax:\n`input~command0~output,input~command1~output`\n\n#### Literal Input Syntax:\n*(@ - at symbol, followed by the value url encoded as a string)*<br>\n`@%20hello%20world~command~output`\n\n#### Multi Input Command Syntax:\n`input0 input1 inputN~command~output0`\n\n#### Multi Output Command Syntax:\n`input~command~output0 output1 output2`\n\n#### Multi Input Multi Output Command Syntax:\n`input0 input1 inputN~command~output0 output1 outputN`\n\n#### Single Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`input?~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Multi Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`*put*~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Mixed Input Command Syntax:\n*(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)*<br>\n`inputBefore special* inputAfter~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`inputBefore special0 special1 specialN inputAfter~command~output`","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-33","dist":{"shasum":"feb45ff80e757c4bcc402369cc9154dafec7cbb7","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-33.tgz","integrity":"sha512-0Tn1uFo5By8CsaSBXLRl5HQ5BW8LcaCQe+1f+ecnKR68t/F3P+M1srM55ftERmVM/zCeYH11l+6YfcI5IKtQwA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDX0KYEoAiddn0qmI6PIPPKuF5KTlmSj5vC/zkmy7EoQgIgFcbSYa6uDQ5h5cgkjrC4wOQZNi9Gtmd4wXXrOKGD5aE="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-34":{"name":"yarnlang","version":"0.0.0-34","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","ntwitter":"~0.5.0","pingdom":"~0.6.2","crc":"~0.2.0"},"readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n```\n~testing yarnlang...\n~requiring yarnlang...\n~attempting yarn evaluation...\n~{ return: 'hello world' }\n~yarn evaluation success, passing...\n```\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world~concat~return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { return: 'hello world' }\n\t}\n});\n```\n\n## Syntax and Evaluations\n\nEach **yarn** is made up of an ordered list of commands, which are evaluated in a hashmap.\n\nEach command in a **yarn** may take any combination of: none or many inputs, represented \nby literal values and/or existing hashmap fields matched by a glob style pattern. It is \nimportant to note that input values taken from the hashmap are passed to the function by\nvalue and not by reference, this allows a command to freely manipulate it's input values\nwithout fear of corroding the value already stored in the hashmap.\n\nThe inputs (if any) are linearly (synchronously) processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA **yarn** may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern `return*`.\n\n#### Simple Command Syntax:\n`input~command~output`\n\n#### Multiple Command Syntax:\n`input~command0~output,input~command1~output`\n\n#### Literal Input Syntax:\n*(@ - at symbol, followed by the value url encoded as a string)*<br>\n`@%20hello%20world~command~output`\n\n#### Multi Input Command Syntax:\n`input0 input1 inputN~command~output0`\n\n#### Multi Output Command Syntax:\n`input~command~output0 output1 output2`\n\n#### Multi Input Multi Output Command Syntax:\n`input0 input1 inputN~command~output0 output1 outputN`\n\n#### Single Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`input?~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Multi Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`*put*~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Mixed Input Command Syntax:\n*(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)*<br>\n`inputBefore special* inputAfter~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`inputBefore special0 special1 specialN inputAfter~command~output`","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-34","dist":{"shasum":"a234d2fe1a3344d1a0380f1f8956e4e7691cfe4b","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-34.tgz","integrity":"sha512-qS5ttwIHDPwiyfQuTr/tYpiKLTw5aWeXmB6ojzCZr09uS0doxjpd5k4Et35Od2KirggAdXac8fFoy9JuoWUdfQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHknMhgQzCNRhp+zJ3vIrh503tGf/BdzuXadOTu03Oi8AiEApkcSsp+kKDHRoCKSiHsAUROt+nU68PVtDAzQHMkx81c="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-35":{"name":"yarnlang","version":"0.0.0-35","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","ntwitter":"~0.5.0","pingdom":"~0.6.2","crc":"~0.2.0"},"readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n```\n~testing yarnlang...\n~requiring yarnlang...\n~attempting yarn evaluation...\n~{ return: 'hello world' }\n~yarn evaluation success, passing...\n```\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world~concat~return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { return: 'hello world' }\n\t}\n});\n```\n\n## Syntax and Evaluations\n\nEach **yarn** is made up of an ordered list of commands, which are evaluated in a hashmap.\n\nEach command in a **yarn** may take any combination of: none or many inputs, represented \nby literal values and/or existing hashmap fields matched by a glob style pattern. It is \nimportant to note that input values taken from the hashmap are passed to the function by\nvalue and not by reference, this allows a command to freely manipulate it's input values\nwithout fear of corroding the value already stored in the hashmap.\n\nThe inputs (if any) are linearly (synchronously) processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA **yarn** may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern `return*`.\n\n#### Simple Command Syntax:\n`input~command~output`\n\n#### Multiple Command Syntax:\n`input~command0~output,input~command1~output`\n\n#### Literal Input Syntax:\n*(@ - at symbol, followed by the value url encoded as a string)*<br>\n`@%20hello%20world~command~output`\n\n#### Multi Input Command Syntax:\n`input0 input1 inputN~command~output0`\n\n#### Multi Output Command Syntax:\n`input~command~output0 output1 output2`\n\n#### Multi Input Multi Output Command Syntax:\n`input0 input1 inputN~command~output0 output1 outputN`\n\n#### Single Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`input?~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Multi Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`*put*~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Mixed Input Command Syntax:\n*(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)*<br>\n`inputBefore special* inputAfter~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`inputBefore special0 special1 specialN inputAfter~command~output`","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-35","dist":{"shasum":"2cc76f4183a83c670d91d329bcbea6a4eaf6bb66","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-35.tgz","integrity":"sha512-26eCWW/8rwLLGKHQLPC6UEnUZwjbkJ8fsS+2VgXwh6LD16ZGskYKh0FKdxZSnLFxdeD1HydINLvF/QVPZTbNgA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICixnieGtph4+KOhw1lWZVDSPGsYuT84ld9vR8RTEOOiAiEAs2NEhzIJ6Y/y7+3xOO5ev2IkHqe4mpoGb7m3cOZiRdc="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-36":{"name":"yarnlang","version":"0.0.0-36","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","ntwitter":"~0.5.0","pingdom":"~0.6.2","crc":"~0.2.0"},"readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n```\n~testing yarnlang...\n~requiring yarnlang...\n~attempting yarn evaluation...\n~{ return: 'hello world' }\n~yarn evaluation success, passing...\n```\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world~concat~return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { return: 'hello world' }\n\t}\n});\n```\n\n## Syntax and Evaluations\n\nEach **yarn** is made up of an ordered list of commands, which are evaluated in a hashmap.\n\nEach command in a **yarn** may take any combination of: none or many inputs, represented \nby literal values and/or existing hashmap fields matched by a glob style pattern. It is \nimportant to note that input values taken from the hashmap are passed to the function by\nvalue and not by reference, this allows a command to freely manipulate it's input values\nwithout fear of corroding the value already stored in the hashmap.\n\nThe inputs (if any) are linearly (synchronously) processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA **yarn** may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern `return*`.\n\n#### Simple Command Syntax:\n`input~command~output`\n\n#### Multiple Command Syntax:\n`input~command0~output,input~command1~output`\n\n#### Literal Input Syntax:\n*(@ - at symbol, followed by the value url encoded as a string)*<br>\n`@%20hello%20world~command~output`\n\n#### Multi Input Command Syntax:\n`input0 input1 inputN~command~output0`\n\n#### Multi Output Command Syntax:\n`input~command~output0 output1 output2`\n\n#### Multi Input Multi Output Command Syntax:\n`input0 input1 inputN~command~output0 output1 outputN`\n\n#### Single Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`input?~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Multi Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`*put*~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Mixed Input Command Syntax:\n*(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)*<br>\n`inputBefore special* inputAfter~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`inputBefore special0 special1 specialN inputAfter~command~output`","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-36","dist":{"shasum":"e23f6cf26330e733ee8ffb5c8cb068dccf664824","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-36.tgz","integrity":"sha512-WHmxeGacPBi0TBCnU8ADtpMIWgL9fMA6g0ASuC8BOjyVKFjc55ckWL2JNLX+C3MrXYDmSnVyJUIGzihMEitxng==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBtOk6abqiSRXpsSjlAOx/inWzAgpGBpDDmS++Ex4by8AiEA1a2dqNAJUrTGRDogsTscK9DLh6aZvK5JSHkhQfCrn0k="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-37":{"name":"yarnlang","version":"0.0.0-37","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","ntwitter":"~0.5.0","pingdom":"~0.6.2","crc":"~0.2.0"},"readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n```\n~testing yarnlang...\n~requiring yarnlang...\n~attempting yarn evaluation...\n~{ return: 'hello world' }\n~yarn evaluation success, passing...\n```\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world~concat~return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { return: 'hello world' }\n\t}\n});\n```\n\n## Syntax and Evaluations\n\nEach **yarn** is made up of an ordered list of commands, which are evaluated in a hashmap.\n\nEach command in a **yarn** may take any combination of: none or many inputs, represented \nby literal values and/or existing hashmap fields matched by a glob style pattern. It is \nimportant to note that input values taken from the hashmap are passed to the function by\nvalue and not by reference, this allows a command to freely manipulate it's input values\nwithout fear of corroding the value already stored in the hashmap.\n\nThe inputs (if any) are linearly (synchronously) processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA **yarn** may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern `return*`.\n\n#### Simple Command Syntax:\n`input~command~output`\n\n#### Multiple Command Syntax:\n`input~command0~output,input~command1~output`\n\n#### Literal Input Syntax:\n*(@ - at symbol, followed by the value url encoded as a string)*<br>\n`@%20hello%20world~command~output`\n\n#### Multi Input Command Syntax:\n`input0 input1 inputN~command~output0`\n\n#### Multi Output Command Syntax:\n`input~command~output0 output1 output2`\n\n#### Multi Input Multi Output Command Syntax:\n`input0 input1 inputN~command~output0 output1 outputN`\n\n#### Single Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`input?~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Multi Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`*put*~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Mixed Input Command Syntax:\n*(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)*<br>\n`inputBefore special* inputAfter~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`inputBefore special0 special1 specialN inputAfter~command~output`","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-37","dist":{"shasum":"d028e3a68f36586868cd0bc3fa97fcf3c3919efe","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-37.tgz","integrity":"sha512-GIU5zQCwOOMuF6aTlLfrj4jdXkfy0YHwGNR1qoz5bCkGFLSP74TCWjfSe51+Wax3B5NfPxG1/qzpxUuSHCkvRw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG1Qh18lXul/7Bsnt6UF21hGg+Y8aEhavjR/b8pFbJAgAiAHhAoIUdAVfHXIb+WCbx4sTpL/8UKx2wNb/pTmbEA2lQ=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-38":{"name":"yarnlang","version":"0.0.0-38","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","ntwitter":"~0.5.0","pingdom":"~0.6.2","crc":"~0.2.0"},"readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n```\n~testing yarnlang...\n~requiring yarnlang...\n~attempting yarn evaluation...\n~{ return: 'hello world' }\n~yarn evaluation success, passing...\n```\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world~concat~return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { return: 'hello world' }\n\t}\n});\n```\n\n## Syntax and Evaluations\n\nEach **yarn** is made up of an ordered list of commands, which are evaluated in a hashmap.\n\nEach command in a **yarn** may take any combination of: none or many inputs, represented \nby literal values and/or existing hashmap fields matched by a glob style pattern. It is \nimportant to note that input values taken from the hashmap are passed to the function by\nvalue and not by reference, this allows a command to freely manipulate it's input values\nwithout fear of corroding the value already stored in the hashmap.\n\nThe inputs (if any) are linearly (synchronously) processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA **yarn** may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern `return*`.\n\n#### Simple Command Syntax:\n`input~command~output`\n\n#### Multiple Command Syntax:\n`input~command0~output,input~command1~output`\n\n#### Literal Input Syntax:\n*(@ - at symbol, followed by the value url encoded as a string)*<br>\n`@%20hello%20world~command~output`\n\n#### Multi Input Command Syntax:\n`input0 input1 inputN~command~output0`\n\n#### Multi Output Command Syntax:\n`input~command~output0 output1 output2`\n\n#### Multi Input Multi Output Command Syntax:\n`input0 input1 inputN~command~output0 output1 outputN`\n\n#### Single Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`input?~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Multi Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`*put*~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Mixed Input Command Syntax:\n*(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)*<br>\n`inputBefore special* inputAfter~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`inputBefore special0 special1 specialN inputAfter~command~output`","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-38","dist":{"shasum":"aba97ba08d6229836b6491ed6edbab64fcd55a21","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-38.tgz","integrity":"sha512-X9pXaaPjA0Oa9cudtdZY57rpp673MrBqvYKKWMafAQHZDDQ/4z+fcTaKpjRFQPBTGeqJc7T4yEVIbvgXPRPV7A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCpYW76nKz87j9fJYaly7T3gjtsrV4fND47HwMuPnq4zAIgX+oPFuIUA/YljJq5k/s5ds44SPPjy/OK3UB/p/usWhc="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-39":{"name":"yarnlang","version":"0.0.0-39","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","ntwitter":"~0.5.0","pingdom":"~0.6.2","crc":"~0.2.0"},"readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n```\n~testing yarnlang...\n~requiring yarnlang...\n~attempting yarn evaluation...\n~{ return: 'hello world' }\n~yarn evaluation success, passing...\n```\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world~concat~return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { return: 'hello world' }\n\t}\n});\n```\n\n## Syntax and Evaluations\n\nEach **yarn** is made up of an ordered list of commands, which are evaluated in a hashmap.\n\nEach command in a **yarn** may take any combination of: none or many inputs, represented \nby literal values and/or existing hashmap fields matched by a glob style pattern. It is \nimportant to note that input values taken from the hashmap are passed to the function by\nvalue and not by reference, this allows a command to freely manipulate it's input values\nwithout fear of corroding the value already stored in the hashmap.\n\nThe inputs (if any) are linearly (synchronously) processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA **yarn** may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern `return*`.\n\n#### Simple Command Syntax:\n`input~command~output`\n\n#### Multiple Command Syntax:\n`input~command0~output,input~command1~output`\n\n#### Literal Input Syntax:\n*(@ - at symbol, followed by the value url encoded as a string)*<br>\n`@%20hello%20world~command~output`\n\n#### Multi Input Command Syntax:\n`input0 input1 inputN~command~output0`\n\n#### Multi Output Command Syntax:\n`input~command~output0 output1 output2`\n\n#### Multi Input Multi Output Command Syntax:\n`input0 input1 inputN~command~output0 output1 outputN`\n\n#### Single Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`input?~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Multi Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`*put*~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Mixed Input Command Syntax:\n*(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)*<br>\n`inputBefore special* inputAfter~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`inputBefore special0 special1 specialN inputAfter~command~output`","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-39","dist":{"shasum":"4c62da7daa662638893eb672d6f94807f026abe8","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-39.tgz","integrity":"sha512-7Essy1BErg0wBckEaoRB5eb2G7y89GdQKWOt02gu9MWDnKwob7k7uXo8GXL3OcIiX3j+886PWInVeKgeUdvMNA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF6jt+X968dnI0XPWPiYRFeOQTYvSrd0jrRFBjCz2uanAiEAv4R3nQCPHYbjmL9sq+CWKT97BWoUBNdSGc280Y7K4v4="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-40":{"name":"yarnlang","version":"0.0.0-40","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","ntwitter":"~0.5.0","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0"},"readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n```\n~testing yarnlang...\n~requiring yarnlang...\n~attempting yarn evaluation...\n~{ return: 'hello world' }\n~yarn evaluation success, passing...\n```\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world~concat~return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { return: 'hello world' }\n\t}\n});\n```\n\n## Syntax and Evaluations\n\nEach **yarn** is made up of an ordered list of commands, which are evaluated in a hashmap.\n\nEach command in a **yarn** may take any combination of: none or many inputs, represented \nby literal values and/or existing hashmap fields matched by a glob style pattern. It is \nimportant to note that input values taken from the hashmap are passed to the function by\nvalue and not by reference, this allows a command to freely manipulate it's input values\nwithout fear of corroding the value already stored in the hashmap.\n\nThe inputs (if any) are linearly (synchronously) processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA **yarn** may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern `return*`.\n\n#### Simple Command Syntax:\n`input~command~output`\n\n#### Multiple Command Syntax:\n`input~command0~output,input~command1~output`\n\n#### Literal Input Syntax:\n*(@ - at symbol, followed by the value url encoded as a string)*<br>\n`@%20hello%20world~command~output`\n\n#### Multi Input Command Syntax:\n`input0 input1 inputN~command~output0`\n\n#### Multi Output Command Syntax:\n`input~command~output0 output1 output2`\n\n#### Multi Input Multi Output Command Syntax:\n`input0 input1 inputN~command~output0 output1 outputN`\n\n#### Single Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`input?~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Multi Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`*put*~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Mixed Input Command Syntax:\n*(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)*<br>\n`inputBefore special* inputAfter~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`inputBefore special0 special1 specialN inputAfter~command~output`","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-40","dist":{"shasum":"f89b9ac87706b4d5b9be9e23cfb586058ba1b906","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-40.tgz","integrity":"sha512-iNoOE2YuQQlaE4YniePXOlugx2ecXpl8iT4h9S2NOhF9g9LRmicqunq2QOJCUZlNNLP3ResWg6D3xN3P+aduSw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHNT5SZJU60e5wMBnrCos/U4yzz0PQRvgbt1SiqPoU08AiEAveYsgjWFtOKk2wox6WKcHGY/mvG/G1Q9IL+/l63ZP0I="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-41":{"name":"yarnlang","version":"0.0.0-41","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","ntwitter":"~0.5.0","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0"},"readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n```\n~testing yarnlang...\n~requiring yarnlang...\n~attempting yarn evaluation...\n~{ return: 'hello world' }\n~yarn evaluation success, passing...\n```\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world~concat~return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { return: 'hello world' }\n\t}\n});\n```\n\n## Syntax and Evaluations\n\nEach **yarn** is made up of an ordered list of commands, which are evaluated in a hashmap.\n\nEach command in a **yarn** may take any combination of: none or many inputs, represented \nby literal values and/or existing hashmap fields matched by a glob style pattern. It is \nimportant to note that input values taken from the hashmap are passed to the function by\nvalue and not by reference, this allows a command to freely manipulate it's input values\nwithout fear of corroding the value already stored in the hashmap.\n\nThe inputs (if any) are linearly (synchronously) processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA **yarn** may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern `return*`.\n\n#### Simple Command Syntax:\n`input~command~output`\n\n#### Multiple Command Syntax:\n`input~command0~output,input~command1~output`\n\n#### Literal Input Syntax:\n*(@ - at symbol, followed by the value url encoded as a string)*<br>\n`@%20hello%20world~command~output`\n\n#### Multi Input Command Syntax:\n`input0 input1 inputN~command~output0`\n\n#### Multi Output Command Syntax:\n`input~command~output0 output1 output2`\n\n#### Multi Input Multi Output Command Syntax:\n`input0 input1 inputN~command~output0 output1 outputN`\n\n#### Single Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`input?~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Multi Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`*put*~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Mixed Input Command Syntax:\n*(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)*<br>\n`inputBefore special* inputAfter~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`inputBefore special0 special1 specialN inputAfter~command~output`","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-41","dist":{"shasum":"4d6930310aa9053efd1935bb35602a34c416a741","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-41.tgz","integrity":"sha512-PYviBoKhCTWZqfZloPAbXdUh27eoDyvQhjRCR24L7j9kqBUEpASEBuwZluAlmmbNfK2KqfrL21xnSqF+i5MAyw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD206j8Ose9JIeRf/xZNm4CQDECtRnsZBUXOzFBOMqsbwIgY4+V1kWLlM/udPmUOdenTHsMpnm0yQhLRUasWLOEHcg="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-42":{"name":"yarnlang","version":"0.0.0-42","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","ntwitter":"~0.5.0","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0"},"readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n```\n~testing yarnlang...\n~requiring yarnlang...\n~attempting yarn evaluation...\n~{ return: 'hello world' }\n~yarn evaluation success, passing...\n```\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world~concat~return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { return: 'hello world' }\n\t}\n});\n```\n\n## Syntax and Evaluations\n\nEach **yarn** is made up of an ordered list of commands, which are evaluated in a hashmap.\n\nEach command in a **yarn** may take any combination of: none or many inputs, represented \nby literal values and/or existing hashmap fields matched by a glob style pattern. It is \nimportant to note that input values taken from the hashmap are passed to the function by\nvalue and not by reference, this allows a command to freely manipulate it's input values\nwithout fear of corroding the value already stored in the hashmap.\n\nThe inputs (if any) are linearly (synchronously) processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA **yarn** may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern `return*`.\n\n#### Simple Command Syntax:\n`input~command~output`\n\n#### Multiple Command Syntax:\n`input~command0~output,input~command1~output`\n\n#### Literal Input Syntax:\n*(@ - at symbol, followed by the value url encoded as a string)*<br>\n`@%20hello%20world~command~output`\n\n#### Multi Input Command Syntax:\n`input0 input1 inputN~command~output0`\n\n#### Multi Output Command Syntax:\n`input~command~output0 output1 output2`\n\n#### Multi Input Multi Output Command Syntax:\n`input0 input1 inputN~command~output0 output1 outputN`\n\n#### Single Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`input?~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Multi Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`*put*~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Mixed Input Command Syntax:\n*(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)*<br>\n`inputBefore special* inputAfter~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`inputBefore special0 special1 specialN inputAfter~command~output`","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-42","dist":{"shasum":"cdd99b4a79d51caeeb10eb1e556e1096aaae81ab","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-42.tgz","integrity":"sha512-2PiQH5wfSOiiqC6Cy5IdnlZ48Hu56ArwNaP5GfddFWSx5qypU7vPhflvOdFa1IuMic5bJBGonEMhBfv4XOP0FQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDQB5AN+5HOVgOAt+Qf9HnOpaxIMUZkMBWxTHcxHntQVgIhAKmHaY1VtvdLw7qmKyjeyO2DcmNFj6eakg9pnKHmbvlV"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-43":{"name":"yarnlang","version":"0.0.0-43","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","ntwitter":"~0.5.0","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0"},"readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n```\n~testing yarnlang...\n~requiring yarnlang...\n~attempting yarn evaluation...\n~{ return: 'hello world' }\n~yarn evaluation success, passing...\n```\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world~concat~return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { return: 'hello world' }\n\t}\n});\n```\n\n## Syntax and Evaluations\n\nEach **yarn** is made up of an ordered list of commands, which are evaluated in a hashmap.\n\nEach command in a **yarn** may take any combination of: none or many inputs, represented \nby literal values and/or existing hashmap fields matched by a glob style pattern. It is \nimportant to note that input values taken from the hashmap are passed to the function by\nvalue and not by reference, this allows a command to freely manipulate it's input values\nwithout fear of corroding the value already stored in the hashmap.\n\nThe inputs (if any) are linearly (synchronously) processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA **yarn** may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern `return*`.\n\n#### Simple Command Syntax:\n`input~command~output`\n\n#### Multiple Command Syntax:\n`input~command0~output,input~command1~output`\n\n#### Literal Input Syntax:\n*(@ - at symbol, followed by the value url encoded as a string)*<br>\n`@%20hello%20world~command~output`\n\n#### Multi Input Command Syntax:\n`input0 input1 inputN~command~output0`\n\n#### Multi Output Command Syntax:\n`input~command~output0 output1 output2`\n\n#### Multi Input Multi Output Command Syntax:\n`input0 input1 inputN~command~output0 output1 outputN`\n\n#### Single Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`input?~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Multi Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`*put*~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Mixed Input Command Syntax:\n*(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)*<br>\n`inputBefore special* inputAfter~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`inputBefore special0 special1 specialN inputAfter~command~output`","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-43","dist":{"shasum":"1e66117ff2586a9bd805e11270eef81521ff891a","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-43.tgz","integrity":"sha512-QSWFYd30SNDT5sFx6iRSE9mawxFgNRzmkST9a1X9g3ENtXAj1zPpBpH3raSNqYK7LPMAvIFJPrP/LqnbAJUMaA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC6dKghhur0pL6AUrOW8qc6ZYjnWQuCrQ5GxlCXBzbzSwIgPLjq3RuJphrITKREVQXH6SCDNeqeQJPD9j4UmP3RgXg="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-44":{"name":"yarnlang","version":"0.0.0-44","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","ntwitter":"~0.5.0","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0"},"readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n```\n~testing yarnlang...\n~requiring yarnlang...\n~attempting yarn evaluation...\n~{ return: 'hello world' }\n~yarn evaluation success, passing...\n```\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world~concat~return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { return: 'hello world' }\n\t}\n});\n```\n\n## Syntax and Evaluations\n\nEach **yarn** is made up of an ordered list of commands, which are evaluated in a hashmap.\n\nEach command in a **yarn** may take any combination of: none or many inputs, represented \nby literal values and/or existing hashmap fields matched by a glob style pattern. It is \nimportant to note that input values taken from the hashmap are passed to the function by\nvalue and not by reference, this allows a command to freely manipulate it's input values\nwithout fear of corroding the value already stored in the hashmap.\n\nThe inputs (if any) are linearly (synchronously) processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA **yarn** may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern `return*`.\n\n#### Simple Command Syntax:\n`input~command~output`\n\n#### Multiple Command Syntax:\n`input~command0~output,input~command1~output`\n\n#### Literal Input Syntax:\n*(@ - at symbol, followed by the value url encoded as a string)*<br>\n`@%20hello%20world~command~output`\n\n#### Multi Input Command Syntax:\n`input0 input1 inputN~command~output0`\n\n#### Multi Output Command Syntax:\n`input~command~output0 output1 output2`\n\n#### Multi Input Multi Output Command Syntax:\n`input0 input1 inputN~command~output0 output1 outputN`\n\n#### Single Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`input?~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Multi Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`*put*~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Mixed Input Command Syntax:\n*(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)*<br>\n`inputBefore special* inputAfter~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`inputBefore special0 special1 specialN inputAfter~command~output`","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-44","dist":{"shasum":"9d589f8cd26ffe11dde61810f8a3405afdcc845c","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-44.tgz","integrity":"sha512-acsVcqriBbRR7NLgEWIOLBEkf3xWRkbjhwlvkcHcYRt5OPcrYauvn2NerXGjK34QhY8PlrvzZNDQwCEtGrLuEw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC9g7bI7Qp7vhGtHyHC079ErOhI6u17ggdW6hCizuyZ9AiEAxubW0ABBL8ybwDjeiKWW/SrVqbmwFdyFYKHaRU9vbFo="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-46":{"name":"yarnlang","version":"0.0.0-46","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","ntwitter":"~0.5.0","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0"},"readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n```\n~testing yarnlang...\n~requiring yarnlang...\n~attempting yarn evaluation...\n~{ return: 'hello world' }\n~yarn evaluation success, passing...\n```\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world~concat~return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { return: 'hello world' }\n\t}\n});\n```\n\n## Syntax and Evaluations\n\nEach **yarn** is made up of an ordered list of commands, which are evaluated in a hashmap.\n\nEach command in a **yarn** may take any combination of: none or many inputs, represented \nby literal values and/or existing hashmap fields matched by a glob style pattern. It is \nimportant to note that input values taken from the hashmap are passed to the function by\nvalue and not by reference, this allows a command to freely manipulate it's input values\nwithout fear of corroding the value already stored in the hashmap.\n\nThe inputs (if any) are linearly (synchronously) processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA **yarn** may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern `return*`.\n\n#### Simple Command Syntax:\n`input~command~output`\n\n#### Multiple Command Syntax:\n`input~command0~output,input~command1~output`\n\n#### Literal Input Syntax:\n*(@ - at symbol, followed by the value url encoded as a string)*<br>\n`@%20hello%20world~command~output`\n\n#### Multi Input Command Syntax:\n`input0 input1 inputN~command~output0`\n\n#### Multi Output Command Syntax:\n`input~command~output0 output1 output2`\n\n#### Multi Input Multi Output Command Syntax:\n`input0 input1 inputN~command~output0 output1 outputN`\n\n#### Single Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`input?~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Multi Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`*put*~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Mixed Input Command Syntax:\n*(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)*<br>\n`inputBefore special* inputAfter~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`inputBefore special0 special1 specialN inputAfter~command~output`","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-46","dist":{"shasum":"604eb8633e2f8646d37a0e2b77f8da610df9b6c4","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-46.tgz","integrity":"sha512-gtMiIZoBHG5yv5HCAvQaExx8NzJOJ0f7Fra8te7Eam86scIOT/bO1QgbqfOfKEwTSgFcSOCn5jpoHEgmhnAHaA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDCAJUI/IDM085HNJfl0aUqi+uA9c51fVWhs50aMiUGrAiEA/AbSUwwCUDU6CtSeaG27HJCOjxG4M7rVXlFsBaljh6A="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-47":{"name":"yarnlang","version":"0.0.0-47","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","ntwitter":"~0.5.0","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0"},"readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n```\n~testing yarnlang...\n~requiring yarnlang...\n~attempting yarn evaluation...\n~{ return: 'hello world' }\n~yarn evaluation success, passing...\n```\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world~concat~return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { return: 'hello world' }\n\t}\n});\n```\n\n## Syntax and Evaluations\n\nEach **yarn** is made up of an ordered list of commands, which are evaluated in a hashmap.\n\nEach command in a **yarn** may take any combination of: none or many inputs, represented \nby literal values and/or existing hashmap fields matched by a glob style pattern. It is \nimportant to note that input values taken from the hashmap are passed to the function by\nvalue and not by reference, this allows a command to freely manipulate it's input values\nwithout fear of corroding the value already stored in the hashmap.\n\nThe inputs (if any) are linearly (synchronously) processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA **yarn** may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern `return*`.\n\n#### Simple Command Syntax:\n`input~command~output`\n\n#### Multiple Command Syntax:\n`input~command0~output,input~command1~output`\n\n#### Literal Input Syntax:\n*(@ - at symbol, followed by the value url encoded as a string)*<br>\n`@%20hello%20world~command~output`\n\n#### Multi Input Command Syntax:\n`input0 input1 inputN~command~output0`\n\n#### Multi Output Command Syntax:\n`input~command~output0 output1 output2`\n\n#### Multi Input Multi Output Command Syntax:\n`input0 input1 inputN~command~output0 output1 outputN`\n\n#### Single Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`input?~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Multi Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`*put*~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Mixed Input Command Syntax:\n*(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)*<br>\n`inputBefore special* inputAfter~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`inputBefore special0 special1 specialN inputAfter~command~output`","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-47","dist":{"shasum":"ab9c8b1474dfb5ad4c4d45f87fb1e330f3087a7f","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-47.tgz","integrity":"sha512-ILXpwN7gGhbAR32D7cffPZTUgBBID02WjyZRI4ZtBLmtHFodqLfNy92A5ab40X+55751XL+plfohNaTxqpVJ/Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB9tEtlyYY2CvDoBsB1H3Ulunah3ET4wKuM0RPNqpzHlAiEAsMpAA56Ca0liahMlLK44ei0M0fPbskeS2ERQjg1nLKQ="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-48":{"name":"yarnlang","version":"0.0.0-48","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","ntwitter":"~0.5.0","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0"},"readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n```\n~testing yarnlang...\n~requiring yarnlang...\n~attempting yarn evaluation...\n~{ return: 'hello world' }\n~yarn evaluation success, passing...\n```\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world~concat~return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { return: 'hello world' }\n\t}\n});\n```\n\n## Syntax and Evaluations\n\nEach **yarn** is made up of an ordered list of commands, which are evaluated in a hashmap.\n\nEach command in a **yarn** may take any combination of: none or many inputs, represented \nby literal values and/or existing hashmap fields matched by a glob style pattern. It is \nimportant to note that input values taken from the hashmap are passed to the function by\nvalue and not by reference, this allows a command to freely manipulate it's input values\nwithout fear of corroding the value already stored in the hashmap.\n\nThe inputs (if any) are linearly (synchronously) processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA **yarn** may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern `return*`.\n\n#### Simple Command Syntax:\n`input~command~output`\n\n#### Multiple Command Syntax:\n`input~command0~output,input~command1~output`\n\n#### Literal Input Syntax:\n*(@ - at symbol, followed by the value url encoded as a string)*<br>\n`@%20hello%20world~command~output`\n\n#### Multi Input Command Syntax:\n`input0 input1 inputN~command~output0`\n\n#### Multi Output Command Syntax:\n`input~command~output0 output1 output2`\n\n#### Multi Input Multi Output Command Syntax:\n`input0 input1 inputN~command~output0 output1 outputN`\n\n#### Single Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`input?~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Multi Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`*put*~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Mixed Input Command Syntax:\n*(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)*<br>\n`inputBefore special* inputAfter~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`inputBefore special0 special1 specialN inputAfter~command~output`","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-48","dist":{"shasum":"6c60149467f9411b54ed8128b52370f080f28b07","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-48.tgz","integrity":"sha512-kgYsgSQFQkB2YVRpGCJbsfsaqS+gHKxvUVDonPSceo6EuLKoVi4FNYxmKdBin9rL+teO9mMMqy8Z51WszPIVKQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHm3w4Wylc/NbsqcrL/yKXegz7WPVNKrhFbOYoFUctGqAiBslfsf+PvQiKaZnjTk8Q8LMIHReO0KZplJowx/0gsOjA=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-49":{"name":"yarnlang","version":"0.0.0-49","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","ntwitter":"~0.5.0","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0"},"readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n```\n~testing yarnlang...\n~requiring yarnlang...\n~attempting yarn evaluation...\n~{ return: 'hello world' }\n~yarn evaluation success, passing...\n```\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world~concat~return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { return: 'hello world' }\n\t}\n});\n```\n\n## Syntax and Evaluations\n\nEach **yarn** is made up of an ordered list of commands, which are evaluated in a hashmap.\n\nEach command in a **yarn** may take any combination of: none or many inputs, represented \nby literal values and/or existing hashmap fields matched by a glob style pattern. It is \nimportant to note that input values taken from the hashmap are passed to the function by\nvalue and not by reference, this allows a command to freely manipulate it's input values\nwithout fear of corroding the value already stored in the hashmap.\n\nThe inputs (if any) are linearly (synchronously) processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA **yarn** may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern `return*`.\n\n#### Simple Command Syntax:\n`input~command~output`\n\n#### Multiple Command Syntax:\n`input~command0~output,input~command1~output`\n\n#### Literal Input Syntax:\n*(@ - at symbol, followed by the value url encoded as a string)*<br>\n`@%20hello%20world~command~output`\n\n#### Multi Input Command Syntax:\n`input0 input1 inputN~command~output0`\n\n#### Multi Output Command Syntax:\n`input~command~output0 output1 output2`\n\n#### Multi Input Multi Output Command Syntax:\n`input0 input1 inputN~command~output0 output1 outputN`\n\n#### Single Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`input?~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Multi Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`*put*~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Mixed Input Command Syntax:\n*(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)*<br>\n`inputBefore special* inputAfter~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`inputBefore special0 special1 specialN inputAfter~command~output`","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-49","dist":{"shasum":"fef46140c7ab7e6efdaac9a7e36d493181e60b32","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-49.tgz","integrity":"sha512-OcvwvxQUfXyImgSwp4R5BB1/hK3po9G9hvP2v3UB8r15eaXXNRx0gI2q5PqFZcQ4TzqDcDjMoVteJGEC9cqVtw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDDAGd1BvgtFO1GXU6EEixLiR5zZtviscg2c0G2fz3FPwIgQvVdEeNUOLPld8tH0VKtd1vWCyj53U7D02W5dvUuYdM="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-50":{"name":"yarnlang","version":"0.0.0-50","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","ntwitter":"~0.5.0","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0"},"readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n```\n~testing yarnlang...\n~requiring yarnlang...\n~attempting yarn evaluation...\n~{ return: 'hello world' }\n~yarn evaluation success, passing...\n```\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world~concat~return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { return: 'hello world' }\n\t}\n});\n```\n\n## Syntax and Evaluations\n\nEach **yarn** is made up of an ordered list of commands, which are evaluated in a hashmap.\n\nEach command in a **yarn** may take any combination of: none or many inputs, represented \nby literal values and/or existing hashmap fields matched by a glob style pattern. It is \nimportant to note that input values taken from the hashmap are passed to the function by\nvalue and not by reference, this allows a command to freely manipulate it's input values\nwithout fear of corroding the value already stored in the hashmap.\n\nThe inputs (if any) are linearly (synchronously) processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA **yarn** may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern `return*`.\n\n#### Simple Command Syntax:\n`input~command~output`\n\n#### Multiple Command Syntax:\n`input~command0~output,input~command1~output`\n\n#### Literal Input Syntax:\n*(@ - at symbol, followed by the value url encoded as a string)*<br>\n`@%20hello%20world~command~output`\n\n#### Multi Input Command Syntax:\n`input0 input1 inputN~command~output0`\n\n#### Multi Output Command Syntax:\n`input~command~output0 output1 output2`\n\n#### Multi Input Multi Output Command Syntax:\n`input0 input1 inputN~command~output0 output1 outputN`\n\n#### Single Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`input?~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Multi Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`*put*~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Mixed Input Command Syntax:\n*(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)*<br>\n`inputBefore special* inputAfter~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`inputBefore special0 special1 specialN inputAfter~command~output`","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-50","dist":{"shasum":"2cf8b40bcb0a039ce604a24b6dc093cbe66a3010","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-50.tgz","integrity":"sha512-8PkLtee89lkHKOVJeIMEpqvo/hUCFuQ8mpCdq7DREwA+Aynnh0LtnmHl3rGcHnU6zFOZZX8VolC7ALX0duQISQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAP9OeK542DAnDFxoggZQVhaUXXBW3Otuj3thjgsWhsbAiEA/Ypk59DGvUNUzsP3H3uPwSGnS11MyX9wbcCnR2CmMA8="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-51":{"name":"yarnlang","version":"0.0.0-51","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","ntwitter":"~0.5.0","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0"},"readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n```\n~testing yarnlang...\n~requiring yarnlang...\n~attempting yarn evaluation...\n~{ return: 'hello world' }\n~yarn evaluation success, passing...\n```\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world~concat~return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { return: 'hello world' }\n\t}\n});\n```\n\n## Syntax and Evaluations\n\nEach **yarn** is made up of an ordered list of commands, which are evaluated in a hashmap.\n\nEach command in a **yarn** may take any combination of: none or many inputs, represented \nby literal values and/or existing hashmap fields matched by a glob style pattern. It is \nimportant to note that input values taken from the hashmap are passed to the function by\nvalue and not by reference, this allows a command to freely manipulate it's input values\nwithout fear of corroding the value already stored in the hashmap.\n\nThe inputs (if any) are linearly (synchronously) processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA **yarn** may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern `return*`.\n\n#### Simple Command Syntax:\n`input~command~output`\n\n#### Multiple Command Syntax:\n`input~command0~output,input~command1~output`\n\n#### Literal Input Syntax:\n*(@ - at symbol, followed by the value url encoded as a string)*<br>\n`@%20hello%20world~command~output`\n\n#### Multi Input Command Syntax:\n`input0 input1 inputN~command~output0`\n\n#### Multi Output Command Syntax:\n`input~command~output0 output1 output2`\n\n#### Multi Input Multi Output Command Syntax:\n`input0 input1 inputN~command~output0 output1 outputN`\n\n#### Single Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`input?~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Multi Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`*put*~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Mixed Input Command Syntax:\n*(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)*<br>\n`inputBefore special* inputAfter~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`inputBefore special0 special1 specialN inputAfter~command~output`","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-51","dist":{"shasum":"f45bfeae193db1c785030dc3eb053765bf8880c8","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-51.tgz","integrity":"sha512-WwmvKBAYtMlT1+WRB251yZXrCsgCaM9hxKhLcR3vdVnTmXy91afXsKD86gyETZIcgzIzozWNVoWBBEy1ncR6yA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFwDjbL3db5MGEbJPIJGNARf4OnsNAX/TeBFhEny8oj0AiEA0ZBSaembgWtfHRAofEVhMe+MQyN45LavULI9h4qb6TM="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-52":{"name":"yarnlang","version":"0.0.0-52","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","ntwitter":"~0.5.0","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0"},"readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n```\n~testing yarnlang...\n~requiring yarnlang...\n~attempting yarn evaluation...\n~{ return: 'hello world' }\n~yarn evaluation success, passing...\n```\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world~concat~return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { return: 'hello world' }\n\t}\n});\n```\n\n## Syntax and Evaluations\n\nEach **yarn** is made up of an ordered list of commands, which are evaluated in a hashmap.\n\nEach command in a **yarn** may take any combination of: none or many inputs, represented \nby literal values and/or existing hashmap fields matched by a glob style pattern. It is \nimportant to note that input values taken from the hashmap are passed to the function by\nvalue and not by reference, this allows a command to freely manipulate it's input values\nwithout fear of corroding the value already stored in the hashmap.\n\nThe inputs (if any) are linearly (synchronously) processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA **yarn** may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern `return*`.\n\n#### Simple Command Syntax:\n`input~command~output`\n\n#### Multiple Command Syntax:\n`input~command0~output,input~command1~output`\n\n#### Literal Input Syntax:\n*(@ - at symbol, followed by the value url encoded as a string)*<br>\n`@%20hello%20world~command~output`\n\n#### Multi Input Command Syntax:\n`input0 input1 inputN~command~output0`\n\n#### Multi Output Command Syntax:\n`input~command~output0 output1 output2`\n\n#### Multi Input Multi Output Command Syntax:\n`input0 input1 inputN~command~output0 output1 outputN`\n\n#### Single Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`input?~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Multi Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`*put*~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Mixed Input Command Syntax:\n*(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)*<br>\n`inputBefore special* inputAfter~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`inputBefore special0 special1 specialN inputAfter~command~output`","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-52","dist":{"shasum":"781a64743efb28aa16964a7ea0f3110e9f43ee98","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-52.tgz","integrity":"sha512-VKcGJlrBfDKTOedPLLXAclcH6Q9ty7aJZrYnT695kk9ujYw6PK9BTXfKOqnv7djOmSSy2C6n81A5MT/oGyS8sg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBxOm1CG8CGjuxBpdNt3nw7T0/fO4nipRON89wsob765AiAr5sSiCSKD1AaNtNOCo2WAfBqoFRuoH+N7EMPVfc38Qg=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-53":{"name":"yarnlang","version":"0.0.0-53","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","ntwitter":"~0.5.0","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0"},"readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n```\n~testing yarnlang...\n~requiring yarnlang...\n~attempting yarn evaluation...\n~{ return: 'hello world' }\n~yarn evaluation success, passing...\n```\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world~concat~return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { return: 'hello world' }\n\t}\n});\n```\n\n## Syntax and Evaluations\n\nEach **yarn** is made up of an ordered list of commands, which are evaluated in a hashmap.\n\nEach command in a **yarn** may take any combination of: none or many inputs, represented \nby literal values and/or existing hashmap fields matched by a glob style pattern. It is \nimportant to note that input values taken from the hashmap are passed to the function by\nvalue and not by reference, this allows a command to freely manipulate it's input values\nwithout fear of corroding the value already stored in the hashmap.\n\nThe inputs (if any) are linearly (synchronously) processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA **yarn** may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern `return*`.\n\n#### Simple Command Syntax:\n`input~command~output`\n\n#### Multiple Command Syntax:\n`input~command0~output,input~command1~output`\n\n#### Literal Input Syntax:\n*(@ - at symbol, followed by the value url encoded as a string)*<br>\n`@%20hello%20world~command~output`\n\n#### Multi Input Command Syntax:\n`input0 input1 inputN~command~output0`\n\n#### Multi Output Command Syntax:\n`input~command~output0 output1 output2`\n\n#### Multi Input Multi Output Command Syntax:\n`input0 input1 inputN~command~output0 output1 outputN`\n\n#### Single Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`input?~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Multi Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`*put*~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Mixed Input Command Syntax:\n*(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)*<br>\n`inputBefore special* inputAfter~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`inputBefore special0 special1 specialN inputAfter~command~output`","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-53","dist":{"shasum":"250c82fe8bef517d851af1dbc70240970c0a76b8","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-53.tgz","integrity":"sha512-7gLLOBMzZ0207HY0qtlysWAvpREIlScxOtyQt0fSWWRZ5mHW7F4UA3OX64CLrZ9nbmVtr0cuBlS8442+Za+9+w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD947Pjmcmg6Nzr5kqhQuh0eDb01Qx7WqtF4W3iOT4+VgIhAPF5C3+QjY/iYIv+EIclbhb07uWcDVkWX70o47lCv6BR"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-54":{"name":"yarnlang","version":"0.0.0-54","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","ntwitter":"~0.5.0","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0"},"readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n```\n~testing yarnlang...\n~requiring yarnlang...\n~attempting yarn evaluation...\n~{ return: 'hello world' }\n~yarn evaluation success, passing...\n```\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world~concat~return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { return: 'hello world' }\n\t}\n});\n```\n\n## Syntax and Evaluations\n\nEach **yarn** is made up of an ordered list of commands, which are evaluated in a hashmap.\n\nEach command in a **yarn** may take any combination of: none or many inputs, represented \nby literal values and/or existing hashmap fields matched by a glob style pattern. It is \nimportant to note that input values taken from the hashmap are passed to the function by\nvalue and not by reference, this allows a command to freely manipulate it's input values\nwithout fear of corroding the value already stored in the hashmap.\n\nThe inputs (if any) are linearly (synchronously) processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA **yarn** may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern `return*`.\n\n#### Simple Command Syntax:\n`input~command~output`\n\n#### Multiple Command Syntax:\n`input~command0~output,input~command1~output`\n\n#### Literal Input Syntax:\n*(@ - at symbol, followed by the value url encoded as a string)*<br>\n`@%20hello%20world~command~output`\n\n#### Multi Input Command Syntax:\n`input0 input1 inputN~command~output0`\n\n#### Multi Output Command Syntax:\n`input~command~output0 output1 output2`\n\n#### Multi Input Multi Output Command Syntax:\n`input0 input1 inputN~command~output0 output1 outputN`\n\n#### Single Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`input?~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Multi Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`*put*~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Mixed Input Command Syntax:\n*(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)*<br>\n`inputBefore special* inputAfter~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`inputBefore special0 special1 specialN inputAfter~command~output`","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-54","dist":{"shasum":"7e8debe21c257b0e3f7d7e67775c081aa7af4c7f","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-54.tgz","integrity":"sha512-yAnAR+jfxC+pub3+Z76eLpvF+uvlfC7/sg6a8Qb7JKzk8PbhRm1tKwTdCX4U5savrhkmL5tvOYcnwXdwkgElMg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCw7tnppFtacMl131zR8aZXR54cYl+5FqNANjsCf5Am0wIhAK97nmL2vD0RBZdbnD4D2xTyuBXdVylDvtDeupQ/ec84"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-55":{"name":"yarnlang","version":"0.0.0-55","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","ntwitter":"~0.5.0","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0"},"readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n```\n~testing yarnlang...\n~requiring yarnlang...\n~attempting yarn evaluation...\n~{ return: 'hello world' }\n~yarn evaluation success, passing...\n```\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world~concat~return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { return: 'hello world' }\n\t}\n});\n```\n\n## Syntax and Evaluations\n\nEach **yarn** is made up of an ordered list of commands, which are evaluated in a hashmap.\n\nEach command in a **yarn** may take any combination of: none or many inputs, represented \nby literal values and/or existing hashmap fields matched by a glob style pattern. It is \nimportant to note that input values taken from the hashmap are passed to the function by\nvalue and not by reference, this allows a command to freely manipulate it's input values\nwithout fear of corroding the value already stored in the hashmap.\n\nThe inputs (if any) are linearly (synchronously) processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA **yarn** may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern `return*`.\n\n#### Simple Command Syntax:\n`input~command~output`\n\n#### Multiple Command Syntax:\n`input~command0~output,input~command1~output`\n\n#### Literal Input Syntax:\n*(@ - at symbol, followed by the value url encoded as a string)*<br>\n`@%20hello%20world~command~output`\n\n#### Multi Input Command Syntax:\n`input0 input1 inputN~command~output0`\n\n#### Multi Output Command Syntax:\n`input~command~output0 output1 output2`\n\n#### Multi Input Multi Output Command Syntax:\n`input0 input1 inputN~command~output0 output1 outputN`\n\n#### Single Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`input?~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Multi Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`*put*~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Mixed Input Command Syntax:\n*(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)*<br>\n`inputBefore special* inputAfter~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`inputBefore special0 special1 specialN inputAfter~command~output`","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-55","dist":{"shasum":"6ff10784bf76442520b3b4e8414d715014da10f4","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-55.tgz","integrity":"sha512-QAlcilqYqluU3MCuZAMYQqvXkALHlPBQnxe+Eig/qLsmAf8KMdo1wSXp3PJfM1jvgaS48kXnom78MxDk9KCncQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFe9P4Wek2JW4LjF1+QXP/GVn4S+e90fnRqbehfe7UjuAiA4puvztne06USWpj36M8gi/K/degA6PNhNJjNETq8PUw=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-56":{"name":"yarnlang","version":"0.0.0-56","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","ntwitter":"~0.5.0","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0"},"readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n```\n~testing yarnlang...\n~requiring yarnlang...\n~attempting yarn evaluation...\n~{ return: 'hello world' }\n~yarn evaluation success, passing...\n```\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world~concat~return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { return: 'hello world' }\n\t}\n});\n```\n\n## Syntax and Evaluations\n\nEach **yarn** is made up of an ordered list of commands, which are evaluated in a hashmap.\n\nEach command in a **yarn** may take any combination of: none or many inputs, represented \nby literal values and/or existing hashmap fields matched by a glob style pattern. It is \nimportant to note that input values taken from the hashmap are passed to the function by\nvalue and not by reference, this allows a command to freely manipulate it's input values\nwithout fear of corroding the value already stored in the hashmap.\n\nThe inputs (if any) are linearly (synchronously) processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA **yarn** may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern `return*`.\n\n#### Simple Command Syntax:\n`input~command~output`\n\n#### Multiple Command Syntax:\n`input~command0~output,input~command1~output`\n\n#### Literal Input Syntax:\n*(@ - at symbol, followed by the value url encoded as a string)*<br>\n`@%20hello%20world~command~output`\n\n#### Multi Input Command Syntax:\n`input0 input1 inputN~command~output0`\n\n#### Multi Output Command Syntax:\n`input~command~output0 output1 output2`\n\n#### Multi Input Multi Output Command Syntax:\n`input0 input1 inputN~command~output0 output1 outputN`\n\n#### Single Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`input?~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Multi Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`*put*~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Mixed Input Command Syntax:\n*(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)*<br>\n`inputBefore special* inputAfter~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`inputBefore special0 special1 specialN inputAfter~command~output`","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-56","dist":{"shasum":"a62cb9fe227eb6a0de3ecf2fe48412b1e2bec9cf","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-56.tgz","integrity":"sha512-i27GMglWPtmKPg05KMs/DvbMyopbpbDHNlmQ/UAReh6u7xjS7bv9BwqGAdlfsjKo8vAj1PDIYcUCMrhXRWdh0w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCxMSiK5KXx2LTbyAnm5HiQl2aJEAs0ACbQwdT0Wv9gyQIgF0BW0iUlzdyOXEc7iXtmx4VrGg/SISIgbG02hDTzcks="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-57":{"name":"yarnlang","version":"0.0.0-57","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","ntwitter":"~0.5.0","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0"},"readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n```\n~testing yarnlang...\n~requiring yarnlang...\n~attempting yarn evaluation...\n~{ return: 'hello world' }\n~yarn evaluation success, passing...\n```\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world~concat~return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { return: 'hello world' }\n\t}\n});\n```\n\n## Syntax and Evaluations\n\nEach **yarn** is made up of an ordered list of commands, which are evaluated in a hashmap.\n\nEach command in a **yarn** may take any combination of: none or many inputs, represented \nby literal values and/or existing hashmap fields matched by a glob style pattern. It is \nimportant to note that input values taken from the hashmap are passed to the function by\nvalue and not by reference, this allows a command to freely manipulate it's input values\nwithout fear of corroding the value already stored in the hashmap.\n\nThe inputs (if any) are linearly (synchronously) processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA **yarn** may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern `return*`.\n\n#### Simple Command Syntax:\n`input~command~output`\n\n#### Multiple Command Syntax:\n`input~command0~output,input~command1~output`\n\n#### Literal Input Syntax:\n*(@ - at symbol, followed by the value url encoded as a string)*<br>\n`@%20hello%20world~command~output`\n\n#### Multi Input Command Syntax:\n`input0 input1 inputN~command~output0`\n\n#### Multi Output Command Syntax:\n`input~command~output0 output1 output2`\n\n#### Multi Input Multi Output Command Syntax:\n`input0 input1 inputN~command~output0 output1 outputN`\n\n#### Single Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`input?~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Multi Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`*put*~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Mixed Input Command Syntax:\n*(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)*<br>\n`inputBefore special* inputAfter~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`inputBefore special0 special1 specialN inputAfter~command~output`","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-57","dist":{"shasum":"a70dce2e344cfe7b7237ec75b3596c13de7e2962","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-57.tgz","integrity":"sha512-Ns3hKD9qNA40/iU+1msOpaiX7/tbq52cwgcjdRMTXfh+aXHpc2pmqX7lsuRvam6Niq8qPyvIs3SyGoGEGjAUsw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCztvxat1ndXqBgs6FfdiD3kVpuPof71oKuA7EbuPwYdQIhAPVwpSb4J65fgq3QcCefdlNTBoJP3SwEIStAtb1bhUHN"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-58":{"name":"yarnlang","version":"0.0.0-58","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","ntwitter":"~0.5.0","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0"},"readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n```\n~testing yarnlang...\n~requiring yarnlang...\n~attempting yarn evaluation...\n~{ return: 'hello world' }\n~yarn evaluation success, passing...\n```\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world~concat~return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { return: 'hello world' }\n\t}\n});\n```\n\n## Syntax and Evaluations\n\nEach **yarn** is made up of an ordered list of commands, which are evaluated in a hashmap.\n\nEach command in a **yarn** may take any combination of: none or many inputs, represented \nby literal values and/or existing hashmap fields matched by a glob style pattern. It is \nimportant to note that input values taken from the hashmap are passed to the function by\nvalue and not by reference, this allows a command to freely manipulate it's input values\nwithout fear of corroding the value already stored in the hashmap.\n\nThe inputs (if any) are linearly (synchronously) processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA **yarn** may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern `return*`.\n\n#### Simple Command Syntax:\n`input~command~output`\n\n#### Multiple Command Syntax:\n`input~command0~output,input~command1~output`\n\n#### Literal Input Syntax:\n*(@ - at symbol, followed by the value url encoded as a string)*<br>\n`@%20hello%20world~command~output`\n\n#### Multi Input Command Syntax:\n`input0 input1 inputN~command~output0`\n\n#### Multi Output Command Syntax:\n`input~command~output0 output1 output2`\n\n#### Multi Input Multi Output Command Syntax:\n`input0 input1 inputN~command~output0 output1 outputN`\n\n#### Single Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`input?~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Multi Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`*put*~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Mixed Input Command Syntax:\n*(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)*<br>\n`inputBefore special* inputAfter~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`inputBefore special0 special1 specialN inputAfter~command~output`","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-58","dist":{"shasum":"121bb017e55fca6c88095d0646e6cf9501e99da5","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-58.tgz","integrity":"sha512-i5LZSRsSBrtUsneN3bUP2JBW5XpBDng2uCHTNc6EGX+paKWQgg4cFP3cArthvVIxTsnt0CqmdyRJNBaZNnh22g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDvRE8gQiVeP0Y3zfSWz33vnOJEHDKq33CEzgNc84xQLwIgJVIeG1o1mpabXAZTNrTk5xRkX1y9NIOdiNLzt3YGqAM="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-59":{"name":"yarnlang","version":"0.0.0-59","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","ntwitter":"~0.5.0","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0"},"readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n```\n~testing yarnlang...\n~requiring yarnlang...\n~attempting yarn evaluation...\n~{ return: 'hello world' }\n~yarn evaluation success, passing...\n```\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world~concat~return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { return: 'hello world' }\n\t}\n});\n```\n\n## Syntax and Evaluations\n\nEach **yarn** is made up of an ordered list of commands, which are evaluated in a hashmap.\n\nEach command in a **yarn** may take any combination of: none or many inputs, represented \nby literal values and/or existing hashmap fields matched by a glob style pattern. It is \nimportant to note that input values taken from the hashmap are passed to the function by\nvalue and not by reference, this allows a command to freely manipulate it's input values\nwithout fear of corroding the value already stored in the hashmap.\n\nThe inputs (if any) are linearly (synchronously) processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA **yarn** may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern `return*`.\n\n#### Simple Command Syntax:\n`input~command~output`\n\n#### Multiple Command Syntax:\n`input~command0~output,input~command1~output`\n\n#### Literal Input Syntax:\n*(@ - at symbol, followed by the value url encoded as a string)*<br>\n`@%20hello%20world~command~output`\n\n#### Multi Input Command Syntax:\n`input0 input1 inputN~command~output0`\n\n#### Multi Output Command Syntax:\n`input~command~output0 output1 output2`\n\n#### Multi Input Multi Output Command Syntax:\n`input0 input1 inputN~command~output0 output1 outputN`\n\n#### Single Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`input?~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Multi Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`*put*~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Mixed Input Command Syntax:\n*(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)*<br>\n`inputBefore special* inputAfter~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`inputBefore special0 special1 specialN inputAfter~command~output`","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-59","dist":{"shasum":"29b6278a6a7507480bfa20a9933925c41fbb5e7a","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-59.tgz","integrity":"sha512-D/lcZs2BTjt13VxKcF14URUTBiugLMln0EK/TSLNA7UXBo1BphqeLtuPSjuMj0kY69bLpkJae9raZyPN4Lsjnw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICtl2WfDrN9ULmBPHsG3IJHCco6mbQ/y91qD+oC7R9cmAiEA1Y+LleECpVIKBlE5uRWQ3IVmTszEiojhSVH0CKUBed0="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-60":{"name":"yarnlang","version":"0.0.0-60","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8"},"readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n```\n~testing yarnlang...\n~requiring yarnlang...\n~attempting yarn evaluation...\n~{ return: 'hello world' }\n~yarn evaluation success, passing...\n```\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world~concat~return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { return: 'hello world' }\n\t}\n});\n```\n\n## Syntax and Evaluations\n\nEach **yarn** is made up of an ordered list of commands, which are evaluated in a hashmap.\n\nEach command in a **yarn** may take any combination of: none or many inputs, represented \nby literal values and/or existing hashmap fields matched by a glob style pattern. It is \nimportant to note that input values taken from the hashmap are passed to the function by\nvalue and not by reference, this allows a command to freely manipulate it's input values\nwithout fear of corroding the value already stored in the hashmap.\n\nThe inputs (if any) are linearly (synchronously) processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA **yarn** may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern `return*`.\n\n#### Simple Command Syntax:\n`input~command~output`\n\n#### Multiple Command Syntax:\n`input~command0~output,input~command1~output`\n\n#### Literal Input Syntax:\n*(@ - at symbol, followed by the value url encoded as a string)*<br>\n`@%20hello%20world~command~output`\n\n#### Multi Input Command Syntax:\n`input0 input1 inputN~command~output0`\n\n#### Multi Output Command Syntax:\n`input~command~output0 output1 output2`\n\n#### Multi Input Multi Output Command Syntax:\n`input0 input1 inputN~command~output0 output1 outputN`\n\n#### Single Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`input?~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Multi Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`*put*~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Mixed Input Command Syntax:\n*(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)*<br>\n`inputBefore special* inputAfter~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`inputBefore special0 special1 specialN inputAfter~command~output`","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-60","dist":{"shasum":"d55e795837e18c58c9e3565ec67492b9a3561f6b","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-60.tgz","integrity":"sha512-OZebKS+O/AXhoCKaLk5vfkKRAXw1Jo6gPBCEkGZ9FsYTXfg63iM9MGSXXS5+7hSNf1q+AORXFB/SMF9yzrOyug==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF/Ure1rAPo2N25Ig0pBW4w/DPOEyRRy9O3qe3sp9U/mAiEA0dTCaE5uIiW/vjrlfDQX9I8GbrkLuyc/jUsO0I7zUQQ="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-61":{"name":"yarnlang","version":"0.0.0-61","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8"},"readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n```\n~testing yarnlang...\n~requiring yarnlang...\n~attempting yarn evaluation...\n~{ return: 'hello world' }\n~yarn evaluation success, passing...\n```\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world~concat~return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { return: 'hello world' }\n\t}\n});\n```\n\n## Syntax and Evaluations\n\nEach **yarn** is made up of an ordered list of commands, which are evaluated in a hashmap.\n\nEach command in a **yarn** may take any combination of: none or many inputs, represented \nby literal values and/or existing hashmap fields matched by a glob style pattern. It is \nimportant to note that input values taken from the hashmap are passed to the function by\nvalue and not by reference, this allows a command to freely manipulate it's input values\nwithout fear of corroding the value already stored in the hashmap.\n\nThe inputs (if any) are linearly (synchronously) processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA **yarn** may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern `return*`.\n\n#### Simple Command Syntax:\n`input~command~output`\n\n#### Multiple Command Syntax:\n`input~command0~output,input~command1~output`\n\n#### Literal Input Syntax:\n*(@ - at symbol, followed by the value url encoded as a string)*<br>\n`@%20hello%20world~command~output`\n\n#### Multi Input Command Syntax:\n`input0 input1 inputN~command~output0`\n\n#### Multi Output Command Syntax:\n`input~command~output0 output1 output2`\n\n#### Multi Input Multi Output Command Syntax:\n`input0 input1 inputN~command~output0 output1 outputN`\n\n#### Single Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`input?~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Multi Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`*put*~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Mixed Input Command Syntax:\n*(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)*<br>\n`inputBefore special* inputAfter~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`inputBefore special0 special1 specialN inputAfter~command~output`","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-61","dist":{"shasum":"dd6eb3277bf805cad705e92546aa7c32f89e2579","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-61.tgz","integrity":"sha512-GwXv13qZR7yTSH2zyQfzkB+jdAtXkNexLoQluNxdGxRWTbcA454gWZgOTthryYMyTBSRLjAGZjvmckaKq2a7uA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDE8R/39G3BZVicWpR7jrHnnWl9mozcH6YijUkvwicURAiEAv85AAVBBvjrj7JwRjmyO93coUMar7Jhe1ouYl8UT8bM="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-62":{"name":"yarnlang","version":"0.0.0-62","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8"},"readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n```\n~testing yarnlang...\n~requiring yarnlang...\n~attempting yarn evaluation...\n~{ return: 'hello world' }\n~yarn evaluation success, passing...\n```\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world~concat~return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { return: 'hello world' }\n\t}\n});\n```\n\n## Syntax and Evaluations\n\nEach **yarn** is made up of an ordered list of commands, which are evaluated in a hashmap.\n\nEach command in a **yarn** may take any combination of: none or many inputs, represented \nby literal values and/or existing hashmap fields matched by a glob style pattern. It is \nimportant to note that input values taken from the hashmap are passed to the function by\nvalue and not by reference, this allows a command to freely manipulate it's input values\nwithout fear of corroding the value already stored in the hashmap.\n\nThe inputs (if any) are linearly (synchronously) processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA **yarn** may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern `return*`.\n\n#### Simple Command Syntax:\n`input~command~output`\n\n#### Multiple Command Syntax:\n`input~command0~output,input~command1~output`\n\n#### Literal Input Syntax:\n*(@ - at symbol, followed by the value url encoded as a string)*<br>\n`@%20hello%20world~command~output`\n\n#### Multi Input Command Syntax:\n`input0 input1 inputN~command~output0`\n\n#### Multi Output Command Syntax:\n`input~command~output0 output1 output2`\n\n#### Multi Input Multi Output Command Syntax:\n`input0 input1 inputN~command~output0 output1 outputN`\n\n#### Single Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`input?~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Multi Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`*put*~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Mixed Input Command Syntax:\n*(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)*<br>\n`inputBefore special* inputAfter~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`inputBefore special0 special1 specialN inputAfter~command~output`","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-62","dist":{"shasum":"f60f9ccbcab2d1185207a8ff5fa4f235e3ff80d2","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-62.tgz","integrity":"sha512-Al3xe7ayT/8Ye3YoXtq9A3c8FqHiUDcqNR9Fs9g25EV408ncV9cpsS2XKjjrzimsChNcWONXZ5o9Mmtg4AWk8g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCFMKxKom8IXsHdQh+7zMKpyuQXaSqMRctsS3aIlsNwtgIgEn9M0273UUPTcVcrscbZwuN8ivroerltNIpNxwN96eY="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-63":{"name":"yarnlang","version":"0.0.0-63","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8"},"readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n```\n~testing yarnlang...\n~requiring yarnlang...\n~attempting yarn evaluation...\n~{ return: 'hello world' }\n~yarn evaluation success, passing...\n```\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world~concat~return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { return: 'hello world' }\n\t}\n});\n```\n\n## Syntax and Evaluations\n\nEach **yarn** is made up of an ordered list of commands, which are evaluated in a hashmap.\n\nEach command in a **yarn** may take any combination of: none or many inputs, represented \nby literal values and/or existing hashmap fields matched by a glob style pattern. It is \nimportant to note that input values taken from the hashmap are passed to the function by\nvalue and not by reference, this allows a command to freely manipulate it's input values\nwithout fear of corroding the value already stored in the hashmap.\n\nThe inputs (if any) are linearly (synchronously) processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA **yarn** may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern `return*`.\n\n#### Simple Command Syntax:\n`input~command~output`\n\n#### Multiple Command Syntax:\n`input~command0~output,input~command1~output`\n\n#### Literal Input Syntax:\n*(@ - at symbol, followed by the value url encoded as a string)*<br>\n`@%20hello%20world~command~output`\n\n#### Multi Input Command Syntax:\n`input0 input1 inputN~command~output0`\n\n#### Multi Output Command Syntax:\n`input~command~output0 output1 output2`\n\n#### Multi Input Multi Output Command Syntax:\n`input0 input1 inputN~command~output0 output1 outputN`\n\n#### Single Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`input?~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Multi Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`*put*~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Mixed Input Command Syntax:\n*(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)*<br>\n`inputBefore special* inputAfter~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`inputBefore special0 special1 specialN inputAfter~command~output`","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-63","dist":{"shasum":"7e8304dd6e8cb07ec88d852095c3d0866b394b11","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-63.tgz","integrity":"sha512-KchSU8FTvV3HyGGsaPJ+TTCuTHBQiE66VTRz+y9eJGTQMuZYLIaGHyeXPC80rRtHjXbzD/f5O+igqcYTlwmoNw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDgkG1RueRRQa98JI51dmkwhj5ovOAwNCvS34wBbqlJtQIgRzEvj2ktxuxX1aeyz7ssR4FhJLS4CHz4xM5pxbL6lgM="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-64":{"name":"yarnlang","version":"0.0.0-64","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8"},"readme":"yarnlang\n========\n\n**An interpreted language for powerful data manipulation, inspired by neuron-style functions.**\n\n## Usage\n\n### Install\n\n`npm install yarnlang`\n\n### Test\n\n`npm test yarnlang`\n\n```\n~testing yarnlang...\n~requiring yarnlang...\n~attempting yarn evaluation...\n~{ return: 'hello world' }\n~yarn evaluation success, passing...\n```\n\n### Use\n\n```JavaScript\nvar y = require('yarnlang');\ny('@hello @%20 @world~concat~return', function (err, res) {\n\tif (err) {\n\t\tconsole.log('an error occured with your evaluation: ' + err);  // error will always be a string\n\t} else {\n\t\tconsole.log(res);  // should output: { return: 'hello world' }\n\t}\n});\n```\n\n## Syntax and Evaluations\n\nEach **yarn** is made up of an ordered list of commands, which are evaluated in a hashmap.\n\nEach command in a **yarn** may take any combination of: none or many inputs, represented \nby literal values and/or existing hashmap fields matched by a glob style pattern. It is \nimportant to note that input values taken from the hashmap are passed to the function by\nvalue and not by reference, this allows a command to freely manipulate it's input values\nwithout fear of corroding the value already stored in the hashmap.\n\nThe inputs (if any) are linearly (synchronously) processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA **yarn** may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern `return*`.\n\n#### Simple Command Syntax:\n`input~command~output`\n\n#### Multiple Command Syntax:\n`input~command0~output,input~command1~output`\n\n#### Literal Input Syntax:\n*(@ - at symbol, followed by the value url encoded as a string)*<br>\n`@%20hello%20world~command~output`\n\n#### Multi Input Command Syntax:\n`input0 input1 inputN~command~output0`\n\n#### Multi Output Command Syntax:\n`input~command~output0 output1 output2`\n\n#### Multi Input Multi Output Command Syntax:\n`input0 input1 inputN~command~output0 output1 outputN`\n\n#### Single Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`input?~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Multi Character Glob Style Input Command Syntax:\n*(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)*<br>\n`*put*~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`input0 input1 inputN~command~output`\n\n#### Mixed Input Command Syntax:\n*(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)*<br>\n`inputBefore special* inputAfter~command~output`\n\t\n*which becomes logically equivalent to:*<br>\n`inputBefore special0 special1 specialN inputAfter~command~output`","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-64","dist":{"shasum":"02023a987db99495536ebd0adee6ecb43aa8ca0a","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-64.tgz","integrity":"sha512-vA05AGWQrldjz5u8CJ5azns90ft7WJpbKxJEKMITUr14KJkdEMZseEsDhqPjVZncb1DE71xPsOgq4WkycjzuBg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFqeRJhuufWRE/tNcwtBURf19RjHiL3PZJ2LZunjWvStAiEA1J6MOp8/jlKRm+VZcyOS9Hz2ruQrdFqxTKUWs5DpAXY="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-65":{"name":"yarnlang","version":"0.0.0-65","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n```npm install yarnlang```\n\n```javascript\n\n// Require it...\nvar y = require('yarnlang');\n\n// Configure your app keys (can only be called once)...\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n\n// Use it!\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(JSON.stringify(res, null, '  '));\n\t/*\n\t\toutputs:\n\t\t> {\n            now: 1375889674261\n\t      }\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-65","dist":{"shasum":"ea06a13aab68d10e769598e26abf8f7703eb4684","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-65.tgz","integrity":"sha512-avTcPamomiDNXpbTdwgshNYPkXFQL9YzFkzoU1p/culbGeUdxA1ohvzsu+Tz2Jcx4Kki4s3vf9j/VDamwaxivA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFL5fjm8LgK2tHPqCz4vei/fzqiKhDX47D6j1lqU9N7rAiEApD1hkNwQteAcGhMgi96P6DNmfczK198PQVlEhb0SGsA="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-66":{"name":"yarnlang","version":"0.0.0-66","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Use\n```javascript\nvar y = require('yarnlang');\n\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-66","dist":{"shasum":"3df6723c8438c35996e32d8c8c9f9b5d925dd996","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-66.tgz","integrity":"sha512-Y5gYj3zvNIeikwtVFm2TKlIqFxl2PmzOIGJ5mmEm333hl7QDnx7noHd+JvLMlCtrlZI1zXcH9Z2l99ziug0DOQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCT+UzUplChFxd5Hsqeh4NqGySK5lU7YW4gx4X8ryTixQIhANAsVo64JXaP4fmirmNODLyinSrilWFsWLul6oXku1ne"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-67":{"name":"yarnlang","version":"0.0.0-67","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Use\n```javascript\nvar y = require('yarnlang');\n\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n\ny('twitter-search[dashbookapp]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-67","dist":{"shasum":"4a25851e83ce58989bfe6e790a997677887a431a","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-67.tgz","integrity":"sha512-ieaj//GcHovNYSyEZi+fqNFmL64NU4g/mIhjK3N0pBDQ0Db+okZ5CeeEgeLeYdGI5qzX8sPelnh3wqR/53lpXg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCCq4cP9BDbuRdM6H67zI6uOhAcRYaBkTruzroVM4v4MgIhAMg+knFzl++RtP9PEa911HIJrqhU7IJrvVB/ydBIH44L"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-68":{"name":"yarnlang","version":"0.0.0-68","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Use\n```javascript\nvar y = require('yarnlang');\n\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n\ny('twitter-search(search_term)]', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-68","dist":{"shasum":"020e7682ac0f1defdf41b2a966bf90f54f8d2bc1","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-68.tgz","integrity":"sha512-zlPklVGVe30jTUUQFROJqw5GE6Mh/BXzn3j9/WoDDg9hpywhkaIKByrOsF7z+feHx4JQZeQhs6yF4AoZlNcjMg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCrEJFoVkz9QyNwzT//yz1oi2BA/LEy8pcU/0B6aEsgGgIhANKgvUN8Tm5k13SdY7X/O0m2AUU+2YTS1eB0rfRlznUm"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-69":{"name":"yarnlang","version":"0.0.0-69","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Use\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n\n// 'yarn string', function (err, res)\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n\n// 'yarn string', {accountkeys}, function (err, res)\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n\n// 'yarn string', {inputs}, {accountkeys}, function (err, res)\ny('twitter-search(search_term)]', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-69","dist":{"shasum":"3bf9a4549e51b0f816c9734dcea3bc9bbd20b201","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-69.tgz","integrity":"sha512-GYj6lsKEqkK4r6QmITz89g85NeQmxfv1HMR1IKo524eT6Ci2Z4S4LoYqj8vr/PPscHlJngk/roFDw4ha8KZDLQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC2xKmkPCSx3mB25Ad6W37WCD3oYUNkLjjvrt2KirRmjQIhAOmaWhUQCXZID0sD3GmLnxlTWXfFgPWBqrMceTw36SiP"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-70":{"name":"yarnlang","version":"0.0.0-70","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Use\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n\n// 'yarn string', function (err, res)\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n\n// 'yarn string', {accountkeys}, function (err, res)\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n\n// 'yarn string', {inputs}, {accountkeys}, function (err, res)\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-70","dist":{"shasum":"13a62b189ad34f1bd253f8cca0530e517a75d01f","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-70.tgz","integrity":"sha512-0+nJyQ9uIhPilLpptIOa0dlZU3YJNfvgVus9GpIg4oBFoSKl2Jw07SkKmL723HUD4pHccBrifqvTG945en/NZQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDdxfj0pSe2OOgxUC5q5b8HGzdhip9tBRzQNAAqv9bfMAiAgeKuRf/GItPzR0ceFVAK9p4ZMFZ0qA7aSUqKaR5oJNw=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-71":{"name":"yarnlang","version":"0.0.0-71","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-71","dist":{"shasum":"cd3ac10ca619118a3a8523e6e648352949b1d80d","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-71.tgz","integrity":"sha512-rH1IBAHzluIK59PChqMtsR8QMsCNbb9zv1OUDcvvlJ+ZjqGv1uNy4e3uW4ZGSvZGmoxsEZMmzj4duxuqnjUf0Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDztMLGWKehB4PELqY25W+oJEZpG9lpXfyT5Gy1FmJQNAiByQLpPiEaF5GNaGm3qipcGRtOi7M8xf7Uzuq5K01JWFg=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-72":{"name":"yarnlang","version":"0.0.0-72","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-72","dist":{"shasum":"7ef0c91d0c35d38d38809befc9344d47b39f5082","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-72.tgz","integrity":"sha512-mfjGOu1K/Co3hlqyqztm/ht3a1bgYOXnaUlGiXW2Py9Ck8bS8abJeTZGF5xeiP+NGHVqeMsMWSWXMM6oF3z3IA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDPKD3l/l3HFNttDLCoyfrnVI655QhzsV6/+wcYa5AsOwIhAJnNgvd8HOZMbVl2x8vheiSzKqltPIi7uzbyAF64HnBf"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-73":{"name":"yarnlang","version":"0.0.0-73","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-73","dist":{"shasum":"ce05f35cac38ee911008e82e2911b6c2ae2c7c3a","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-73.tgz","integrity":"sha512-sODqyrVAOPSerFI5lfXjqFfzTat21fktZ7Iv9BTCI2JMsPYByYhmwSaTDJq2kzFtOnIcdWkVyu+1Npzf3WQsQw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFuPd9wHnoIjDlRj4CrY0F6jg3e/EKNfzYUulDv8yEnsAiAw9yosfZpNrcDUbq1KEVAMVU2lLD17B1PNSho6GCswow=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-74":{"name":"yarnlang","version":"0.0.0-74","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-74","dist":{"shasum":"7cbb9e1739739f22456bc752c33b8059c55916f2","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-74.tgz","integrity":"sha512-q318qzdeTsp4VVpb0nJQ44tYB5EjXf5kzeUEWzO+0BY7QyVa6xQ/IB43J2Az5MCDc7WB6IRYkjnabnzpKh/d1Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC4Z1wdwnm1IT3HPYt0xHUqlpw5ohz4Crj3x9SC8MHIrAIgfJApCE+XjxYSCYSRb7tJV//PF7UtERb6IyhVSl/1mQg="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-75":{"name":"yarnlang","version":"0.0.0-75","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-75","dist":{"shasum":"289aaa55ca81a06af5c20bfc1a4f7206c524c0f0","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-75.tgz","integrity":"sha512-/AEcloyOl27nVBwbSun/CjCEiEn0u8Zo0pN4T1KYYIQU++2OyAFb0P2ZuVS0JBBsW/L9Ggiwu/hQo+LIXh87Xw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDJ+l7bxWgPJkRpXuvxItnEaorfmUIgOt8s7/QMzEPN8gIhAKHGSVQywmGHINg5D2Q/GwnMA3Ct9HYpWjYNTsD9Xdoe"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-76":{"name":"yarnlang","version":"0.0.0-76","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-76","dist":{"shasum":"ca116e4115ebf63e41f2c5947dba68b9f8e807a5","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-76.tgz","integrity":"sha512-i5V0IUNeqgSuh2Q0jWIFG+fdSuC3Uqo3VJnQw2mqUzDO1KFmSD283EnxtNp0usmMOwCcq7wtBXA0EtnYp6PZoQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG50e+/K0d9WmV6RqA5VQ//u27Amo/uUD1Bvx+G04H7fAiB2HjjhRxGpyqSkRJX9bVllbYlNPvIIM++SWtWFmgO06g=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-77":{"name":"yarnlang","version":"0.0.0-77","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-77","dist":{"shasum":"e9035eeccb230068b69fba3e0e94e93e235d3171","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-77.tgz","integrity":"sha512-1OaV+rkXEg1hALEttNDVfasnWr/ciC2bWWuMx+Pe/JucHzzAP5ciW1CPKg31rS+oeQ/AkFqMdNYp/fOK68fCjQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGq4Qm+obVdReIqPuBQ0DxW3Ygb36AzaM7MTbV8bjaTcAiBYsUeDhX4SOGL4rnvyAa+expPS09Zt2yJtpRYwWjLMog=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-78":{"name":"yarnlang","version":"0.0.0-78","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-78","dist":{"shasum":"77e063db39c12ca673cb6fd4739bf78d9311596f","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-78.tgz","integrity":"sha512-Ogat+k6cQwFPs4wgMFsAcV+lSANw2nP5tO12vd0n9wlPgXck8AQDOcvA1N3Yp4rEJB8y2wlajPf4DwDhHf/PdQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCyfIkO8iG22KMqC/kgdguFcEEzGs5KOx5uLs/skI1xlwIgYHmn0k8185Qi/u6wL//XQtcJB4OQ85TubvgKSv96FkY="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-79":{"name":"yarnlang","version":"0.0.0-79","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-79","dist":{"shasum":"426cee0bfe14934b9dcf62603d3ab5e83f50e0ec","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-79.tgz","integrity":"sha512-uYHBuk9b30pnpN6qpG2cY8+WZ99l8DN4DKsYQnj/50oosA2awD7Xg1ZM529GQsAPjV6KFXrT045roT/6y7ZxqA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICbORk/Mah/jhDGLEW4yIzezwK1lAgg1KtlGoU/9BAL6AiEAwHr62TzOeHrQPiWHAFZlDj5CgfOEYPbegE5zAYoVtsY="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-80":{"name":"yarnlang","version":"0.0.0-80","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-80","dist":{"shasum":"ae061a685c80af2cdc97b427f98a798e32a868ea","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-80.tgz","integrity":"sha512-BpM7PcH7tupo2HIBPk5KLm7DKjb9lTaPesMeJ4l58DWl8+uf3fv9hy/MT2Osa0ySpu7BrE9rct5i+tqDuxmcxw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDSMKAvyiiUwObC2F2yNySu5ZPiYHynQdttRXL3+6vaXAiAnfm4rN2iOlEu04HRRKC2GysmUnZ/K0AJMo4+GEB1+HQ=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-81":{"name":"yarnlang","version":"0.0.0-81","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-81","dist":{"shasum":"a65315270b024a7f7b74db5653573fae0259ec8f","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-81.tgz","integrity":"sha512-xHgCYRtC/YmxG+NLu6ak/RnH58sx7UtXG2qBD9l9f4PZ9xLvmSW5ng9YKJHgiUhKKS0lUB3FK6fiPqEkzmgW1A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCH2Ug0VWqGI13olMYFhoPRMpoeh4yXF0jft3kcDPOEfQIgYnis1V2Igw8jVBL2lGiBfEsX853wI+Pk5laGnZ9CDrQ="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-82":{"name":"yarnlang","version":"0.0.0-82","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-82","dist":{"shasum":"b68284645abde37d1e9fa24fe1d92ed26759baf8","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-82.tgz","integrity":"sha512-d5VE1DzcwNFsyfKDezy9UvrP076h276X2pVaguWwHfhCYRkVBWiP0zJyL0Mc3jLZH6jAVPSHPxNscSMs6EGzLw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC11dJPEFZt+ZAGqJg73HaRTo4/Gt6bgxOq/J83/hiA/wIhAK7WnfJ9RJhqxXlHNuKMGC+ACqh+E6Og5EfAkH8xiOBR"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-83":{"name":"yarnlang","version":"0.0.0-83","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-83","dist":{"shasum":"ea619b8178133d35131a0bf37db44acc5a4ad663","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-83.tgz","integrity":"sha512-VSdHWB8bSc4guVBgZQc6guZaJiAb0MbwEIwWynnCvBwDD+c+56nJXZReYbqWiOGAFiMlQ+cVONRKHRtasmGLPg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFht8vWxyIu2pyqRgT0dNKvmqQlQJkj+gc84XhQfPmjpAiEAvtuKLsMbNb54qHaCnyh0PmK36v4Rpk1+etVnlqLGeEM="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-84":{"name":"yarnlang","version":"0.0.0-84","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-84","dist":{"shasum":"da405f85acdf8f015b1b983869843cc5d46b7fb9","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-84.tgz","integrity":"sha512-YNzxYukKddyyKL/SRbwH4YRSWKfS1w2sMHh5DGQxSOpnpzm2tWbvX98VE56ya5e0kHFxY+Wqd2JDez/0YZeMkA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID13HShAF1wov96/2uVTmWNmruTmc0FoHI61s+eiGbH0AiEA08MAGEfJZ6NPNRaNioPmzQmVCsLGLsBG88H0+SpFyCY="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-85":{"name":"yarnlang","version":"0.0.0-85","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-85","dist":{"shasum":"e640719832d7ddb40e3da80d795d3927921a36b8","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-85.tgz","integrity":"sha512-jEUh/pii2MCGAT7Bj+RuE9d378i7qXwpl1FYCSoLTSS20hYkbvq2CoZRUYJ7CJ47KxEwDUbNcui15e8Tn/J7yQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFejLVaQs5Mob0Dt2LVY0UZaaDE2pgNnfe3o52mhaBl3AiBmcWcD5E414aobR82bRz4SYD0IrFGQ7hlhMJjKrNQdnQ=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-86":{"name":"yarnlang","version":"0.0.0-86","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-86","dist":{"shasum":"641053d9063d87a186f1119b7bf803c6c83adeac","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-86.tgz","integrity":"sha512-xWU14uAV9Xwv0mS+t+S3y2FWjFL9BJmMnvZtqzxy0RSCyG72Ze9BsuOmbCcFehv7GPXn1v10ZlHqLDLnGdYcHA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC4orFSGycQjna5lCRUdh/AT9ZzT00P+9qUJ7t9W+Jp6QIgXr/i/o6rg2p5O+lOGApC3aH1mJ7vrfuVaAAxCAJxJSE="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-87":{"name":"yarnlang","version":"0.0.0-87","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-87","dist":{"shasum":"0e6943ff70dcd4befcbd78891922a8aef9f52ac6","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-87.tgz","integrity":"sha512-71kOFV8UMqh7GaQMFvwIHOlMmhTC/iw8K1t6yDNq4sSJRKnmxQjVSFDi/j2DxW1IdJVxNUfsWdcBqaKybH7RFQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD3CLs+EmOEviqgFKY6UR1dZiOlzGLGzafQNSNb6LJ4mgIhAMhannVM2HhV9+zFV6UtwtejMpjJZrVRp7VHoBXG0bbY"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-88":{"name":"yarnlang","version":"0.0.0-88","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-88","dist":{"shasum":"85b382e0fc2539b3ab9304bc96e442d17903ad89","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-88.tgz","integrity":"sha512-mRp2ld4DDPI0YvtlzWwJNj6z3SjeKCDJTD5BFCUUGRsfzRMGlePYtfUcyMj4t2Ujc+rf0bwSwA1I6Q7Dxtw1HQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGrkcN1LFfM8uOW6lWrU6yyioZ+leMmBq/tCtApnWE86AiAm1SfjCH5cwi6trn8zB2xF/QGHtGDUvXBjvJc8+T34qw=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-89":{"name":"yarnlang","version":"0.0.0-89","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-89","dist":{"shasum":"f8f8b3d9c7e72aa8fe7a30203c9ca7a30e5677da","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-89.tgz","integrity":"sha512-08z9iBJWY5ReJABQZ+Mj43jOaOa4EOpzzl+nqqUeoOKgZ0WjA0jg/Gx5NX1w33VBkCcTqRpKemz78+yrZ9jb6Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDlmEYjzM8G9rJugIDIzsdrV0Ed8lubF5l2NbLFJsNdCQIhAPSyrSIurQa0zm46rIMws2jNjhoKTEYbt2JMKO5yvh+E"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-90":{"name":"yarnlang","version":"0.0.0-90","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-90","dist":{"shasum":"391327b21b9670014054b8a255fcdf69ef5807b2","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-90.tgz","integrity":"sha512-DWT3XLY1mq/DoInA3TqaH59b3Qgk6TcimdWwBnFVINgClro+ODPDFr1u6a5h8M7hPoLo/Viar/fMb1G4gOE3Aw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCRmNTSqWnP9bEr/6DBOw8rSRuFbydQouoBCB9HSm/+GQIgM97RzWK3Ky2mBkb1ZePbij1LN4rejv3zdWBtTIgeXDM="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-91":{"name":"yarnlang","version":"0.0.0-91","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-91","dist":{"shasum":"db7f49b2f30f28bd89c8eff047e98366199e7c19","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-91.tgz","integrity":"sha512-37IFuejNVRQAjx/YI+Lei0o4dkNN08FdfW7nfM5WrucjbWHS2bdH8eCJkUC3zUl9HeHY6L3MrRb22Jk0YQHXgw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDM+mIAE1ZUPei3KRSwzw41qlwcZtjFi50azdazkMqxqgIhAI1JzM1aSRDcSUroo3+Fh4AZ5MoCVOk9IipJiUc9qVmA"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-92":{"name":"yarnlang","version":"0.0.0-92","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-92","dist":{"shasum":"5b138f4587f78cb9c7be40ae7d24ecedb51c4f85","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-92.tgz","integrity":"sha512-GEeK0ynOVG6AxZgbBvt99zJCEuqqMVT41/Gj446rZpIs3DIxxGgSVYyVwlZ4hh6LKvosC7RRvATSYSpwZoMMqA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG973Spswd75K/hChjmtBv9NSUkCcgxskns1pUXPoPQ2AiBGu3vIZieLiBFHLughqaXaPxmKwzzf+IVorSjAYye08w=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-93":{"name":"yarnlang","version":"0.0.0-93","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-93","dist":{"shasum":"de8fc3992a6a3db11d570e1d7d8d3fa078e1ecf1","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-93.tgz","integrity":"sha512-NVXKmQYxxU6olzhc1gugpOL2IPcuyquLn06Ka+zadiuw/4c+cq+dLeu6q1hUyPDthmE7bAPoirDZ3rK7zkM3Ag==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFJfcppnwrSUok8jWdcYsuhKrZmLo+NIyzhSIsHb9DXVAiA3zBQpxHwKVGiG7Z1AMQjan4G8Ql/P0nqxKEsN2XRu3A=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-94":{"name":"yarnlang","version":"0.0.0-94","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-94","dist":{"shasum":"2c635c4e14a9b83bd48a75f82d9436910c725ae2","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-94.tgz","integrity":"sha512-FWneczoZsQOAADvaLNCgooBIZKwtAv7dUZMiOSy4yNzabtmx0DePcSH2s/iJbLViiR4q9nErnYeoFXrKR+OO4w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDXKSBxVRrSz8/1usYf8H7yTLAWn+vb4/0t8+y/rly28QIgLYKhtov/PPE+zAEBtWMgZCDyVQESLmjfqYXAPUdsx4c="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-95":{"name":"yarnlang","version":"0.0.0-95","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-95","dist":{"shasum":"c6c92246f96d6246d94dbe496d0f812962d2df6b","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-95.tgz","integrity":"sha512-RSVhaG5upJ21ejRBasu/fnVL8n1bjZcktTj+Scs3v3OVaTXh4GRvnrjC/Kcla0vBL6gMCvZAbZkAzWR7Pb8Qtg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDLBwNVn2V9bZJiRDpIsqqc4KZ7cDPPwCU2JmBHxzMomgIgSmv2em3s3D3fMVbXra6Zs0fKdjug30hNNBNXTyDs9Ik="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-96":{"name":"yarnlang","version":"0.0.0-96","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-96","dist":{"shasum":"dfd66a6bdff9da6ab12939d7d3b1180fe82c418f","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-96.tgz","integrity":"sha512-7x1LQ4Gs3KK+3D3JcUzDWNqRj/sZmXTwnoZnYNSxJpOpXdgcooOG29Sla56VcbMU2ml6/IAezHBshMpIFjXnvw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCtUrJNprRYjqXs4bVHP9xHNXqyT7oxbB0o94uohd4crwIgQ2ruXlgZquXMjVwIjwmWH2CcIHlW+GQuA97ZZmfQwUE="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-97":{"name":"yarnlang","version":"0.0.0-97","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-97","dist":{"shasum":"e357c54c399ed0a8f3fefc19ed50811f5a22ba7e","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-97.tgz","integrity":"sha512-/e9qLsG3SHjjdv1P4fqlQzPEb0eohnRXkWxdNjjdsPftjoOywWbiYw8D7wVOBBxmMrmqDt9bhOK0aqUigAwAsg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCmHjzsHQvRPfbi5vws4Yck6d31UDEO5tIEXEm82mlaZQIgVTR33P/xGzJZqVcv1JJ5qXdmv+ZVTRPD1vXgjhdeWbo="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-98":{"name":"yarnlang","version":"0.0.0-98","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-98","dist":{"shasum":"66eb2d73d00e7ce5aca50b6f034264aa3135ac44","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-98.tgz","integrity":"sha512-PCpl7lqtCCfEYgMWvgak8RyynngnR2oB/mO/M2EyydYwaFhfRiHL44Kz6NtUbx0qVigJp0VuPwKWbboFGazDFQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDKulrqx1OsXKjsnA3OIEcBQWo4tuB5zRo/ZRYjdfB9yAIgfQD80xaaPyMxZy3airDnBnDxnoAqVNyzZHNZJaUDkfg="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-99":{"name":"yarnlang","version":"0.0.0-99","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-99","dist":{"shasum":"e6cf969debc93abcd73ca4f4420e1027699d8ef1","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-99.tgz","integrity":"sha512-XuS5qICMamhnfj+1u3HjLcGkfeaWw6YBQyMGlUIKyY7nHTYWL7lXpLxNndWBiqMpA3osg2t4s5/R7R33yWXJyQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHyLJz5vmyQT7pZeT1nUReKDjy9SW+Pw+Jkn0mpMxO56AiASwqneemHpNpu4lgMkPdQz/RIRs71bK5aYTvBXt7TA3w=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-100":{"name":"yarnlang","version":"0.0.0-100","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-100","dist":{"shasum":"6d2c03878503479e002069944f6499e00dc5d271","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-100.tgz","integrity":"sha512-VkrMFCpe43Z59SHRba7Mnsz26QWJbzPIPjq+lzv0uUfs2JnsbbkE0mCSl9Joa5RdM0q1HPzAXu48+le57jtz1A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDNnUe67u4fQwNNLdnbObEVdvA7fNXEdgXDJp3oUNGWmAiBvs76B+w7bzMGnFFMDU1HeSLaK4FiRRhg2PXaiRTQbmg=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-101":{"name":"yarnlang","version":"0.0.0-101","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-101","dist":{"shasum":"cdd4f26367dc00d3b93390814efb056b26dc1380","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-101.tgz","integrity":"sha512-yq27NWsjpIubsQvoeqTWnGHnECRYs3U1FwP0YmjhKNTfahrWjB8b3B8g9nYylzpIlmukJq0eWl1Kp7YtSehkFg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHZIU4UJG9qJyMoc9Vg/K7SQZo2+lsIaphhjOdTS8XDeAiAOhL/C1TmD7QSKZJBtiyGieDQIuYRJn/JgNzdZe9elrg=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-102":{"name":"yarnlang","version":"0.0.0-102","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-102","dist":{"shasum":"56155caed21a65f6aa3824845bc46c8e05eb6939","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-102.tgz","integrity":"sha512-olp63PfGM1mZRnTodxtUsPe8pw3XMs9x+XBdXWFY1UmAq1yk5wYKVo2jxIpLw0ynSPdriQa4tD1G+jID2eWylA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDrNRTnH7g3zXeEIqoTgJBt5kz2c5cTUr0ZcS4AVuAjfAiEAqbCVfFp6QUeoefLEMJBQgPFNJ9/BFU6rQzsjL2pIMAo="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-103":{"name":"yarnlang","version":"0.0.0-103","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-103","dist":{"shasum":"7f5fe1f078ef5598b3daff4b6770a4c5648b497f","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-103.tgz","integrity":"sha512-caJrmvKdrMgdDF062rTMC1mb6mgt60s5CX5vWKlHLQUCMAXrQbgqMho/n03BbP26JVF4GXRk0hqkfuOSgs98fA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD/ldKQ9Uxh2rfPAD7UFR2UUCJouiEDsGdq1RrLHTdfAQIhAIYZT93nPO/ObywiVgg/b8tpLrCzFWKEiOo9KGeVDx4H"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-104":{"name":"yarnlang","version":"0.0.0-104","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-104","dist":{"shasum":"e93971fa6aa0618bc8cd34535468bc5d19bd2c64","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-104.tgz","integrity":"sha512-Y6R2+U1gcb15/CABl9yrXaYbe0BHrulvI9ikpeoVKy6pQKl1r+oOONYf+rPVeSHveEnn5j8xPmwX0IrDassneQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFLHs/hC6VnQv97Ne/s8OjiCyVsP+5OlUb4gUIDvc8jAAiAcoyPrNSgTKWrTYA+v16fUfw1cn4Ai6RLax+3wuI5DKw=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-105":{"name":"yarnlang","version":"0.0.0-105","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-105","dist":{"shasum":"28c9fbdf0cb3fb501195dea681b2bca12c0001f0","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-105.tgz","integrity":"sha512-Zui++MxzH6nFROOXp4tvXaRrql6uy6x6dQ4KqvvjiEE3tzCoSxbrvJva4fboNDFUMVXwGJIzpuWq9qts//P0PA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG0SyAG6gZlvNFvCDtoRm1NQwI4eTdaNTZIDj0e9kOq7AiEAzsRoWv44nkgCeF770QHAa7ecQqaEEl1akNCS4FtZAq4="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-106":{"name":"yarnlang","version":"0.0.0-106","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-106","dist":{"shasum":"a8aaec0069b4b27506f193e569067efd8fc8f642","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-106.tgz","integrity":"sha512-qC8uql6vSXJN1OEmRMcxA5YQWhrwfZZQxcbuhzlbNMarYHgUR6+ko8ZzwVRBJo3byhcE3kDV86vw2flnmlz7LA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICY9r8oflP2GA5CFkapIOkAfBhYOhqyaBskeonBmqf8dAiEAqWasg6HdYU9mWWpZZq5FfTzlN6rXIVa6Zxy8VdbhzgA="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-107":{"name":"yarnlang","version":"0.0.0-107","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-107","dist":{"shasum":"6017ae02253869fdbf961bff8708cafa0f0d07b4","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-107.tgz","integrity":"sha512-GUSU3C8ItRCaY5eSfF9Rb29G3FbHXQbjqhKRaXTXrlBRACpfJlaJxfKnjjMrAgkAiz5HPBtiNdTp1NfGHBKtCg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD2p0fPHZN5SDKGNdz/JveC25maWUKfKxNt3P1dBKJYvQIhAMCsmfvY5mgzIO+vYFl2e9Y4upeHqEkZQPSPgAaRk1mS"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-108":{"name":"yarnlang","version":"0.0.0-108","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-108","dist":{"shasum":"046893c78ebfa781c0ccc88e21eb802d661646f7","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-108.tgz","integrity":"sha512-kYcsXHu7tG0QweOGc2u0C7U4xo2yeetfJ05GqumGGq7FxAAmHn9YDFo2BWRwiXyRBjIsMJU2Vz/jXWB+h6wYkQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIACM/asp6I3YkelHJ/Xg31ezLIPF/wpNboqLUurPcU+OAiBEClH8wO3yd0VZ4Wm3N+dM1hn2ihmjUNB7Q+4Sf5+rhQ=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-109":{"name":"yarnlang","version":"0.0.0-109","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-109","dist":{"shasum":"cf71ef31833406db955081e1b09cb641de71e8e6","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-109.tgz","integrity":"sha512-jR0RdUY/jZ1nB10z4Ar2ZK4stpGLq28lcVNLEJLvJttQWsGejpgyrL7IFX27XMVKSv9SR2LCsP1Mh8KjSplDpg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDMmmVOTzTmJneVmP5ClMsMRVDsWLQcHtgG+AupVGMgjgIhAKl6ll4udLUKiSPvXStej6s94qWH98Fdls5Wbo+a/ZxS"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-110":{"name":"yarnlang","version":"0.0.0-110","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-110","dist":{"shasum":"6d0e57ab7e572d8fe8d0276d356c7faf4cab0e58","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-110.tgz","integrity":"sha512-Jm9eD/uNEPbuJbk0b7udkOMdqT+JhXMCCXhlH3dVdncqHg+vBmW2maG9V6yWxafJ7AsZNBXyImmEBsC5tGeLKQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDCzAyR0eXWH2H+TNA2hC1wIVhA+vvg4LjoQIOR9eIWtgIhALP9bC6s+f8mlLdbZNaZ31DdC62PxZXRKANpBe4qFpcO"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-111":{"name":"yarnlang","version":"0.0.0-111","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-111","dist":{"shasum":"ee60a7a5f5b349d1674a40c5461b83680d09cec3","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-111.tgz","integrity":"sha512-Mz9OBbkUyo2Qh3Jn9yT/9wPVuZIwXocPBuPFb1IG5Q5gfQNpL73n5Hj8K0IXgNeYRGEmFKgpaDI/E57kccfX2w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCvAfwrpgu9zjfeADUYPBCnE3apAhtRXbs4ZybmjuMMkAIhAPVOMpq879tZ6b7PGWKKQsVrbvcnTwb4hOKp3kp6NHRM"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-112":{"name":"yarnlang","version":"0.0.0-112","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-112","dist":{"shasum":"f01905aab96f31916406d5abaa7e4e07a0976423","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-112.tgz","integrity":"sha512-LZVkDBsxTnEcTGKTe5jaYbvkHaaPyFENN84BkR0bzqZFkb8ezMBjAmnJF/5Ikuha4mzHxPKV5DhmzVZS35J2gg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBY+iyf3GVmRxCSQIVkvpiSii14lCoYJN2/j6qqmkH+OAiEA0OSplyDbNBW+4es12b0LSypbe0S0arpEU7KS5KaQ0Es="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-113":{"name":"yarnlang","version":"0.0.0-113","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-113","dist":{"shasum":"11d26c4d143f6c3c95a46e85b6b6daaeb3a1a0ef","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-113.tgz","integrity":"sha512-gy325t90pOzt5EYWnq5SlT3u+pjxrjyFyPoqv8JYHb9QI1LttOB81IPWIEDkILaBZhRBRqdSCNU4qLAI7Kuihw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEa2bRDEVHMlBO9gPWypn1CtVS7W3rqq5COzVVPeaWvbAiEAyJRLq2Za6o4wVKmJGlKOpLofefYNwX79uZPDeuMZ8Eg="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-114":{"name":"yarnlang","version":"0.0.0-114","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-114","dist":{"shasum":"2381a4f49027de8e49fdb883e600d441984a75b0","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-114.tgz","integrity":"sha512-gNJLbRJNTDUqtVcA0MiOQCGI4fujPLovvPsj/QE1FnsSVngJT9mIVfaLTgFeo04OPtZBfFyOn4bshGXfMVGlPw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHjbeMg2SzoxrBbwb7oyj3Jjhk3v+yWREwkcJoqe7i9rAiEAr/f1Vhvv24J2atsGGKjpE8NwyLUHw/UCRFD8mY4hWvc="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-115":{"name":"yarnlang","version":"0.0.0-115","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-115","dist":{"shasum":"74efedf78106437ea286326e65ac6e661e8e2e2f","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-115.tgz","integrity":"sha512-vUWrdfcXEdZtXEXHNDErOn0bM9+JIE/NCfgJ/POhqaFB7a/Zk4rjR2pc7TxRKhXAek9eY6g73yqRs1WGIO/KSw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAEGTvfmDBDESohUfphakcJ6uDoliIVQwYKmyNnOmnnqAiEA7IoYMwU6Hw4GulWhjvqVo3PwV8kMAiEYBHwpWuJmgfU="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-116":{"name":"yarnlang","version":"0.0.0-116","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-116","dist":{"shasum":"bae301c751f39979075bf60e02c3f983f2a0ecb7","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-116.tgz","integrity":"sha512-pLv/MxRnNMUu8xtHgjLxHyl2MIXTaqQRIxOlvj//Xq2y8d4iKSjMhfx8iN6DHbima9x56WBtWJweZH2LkTo+6g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD/it2ICt4ibIX9K7+1Sk/pxUxe0HPYLGpA5WB3ELwGrAIhAOIRMFQQfKbaloPaOlenBn/p8SRHD30RlLwRnqbHwmWd"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-117":{"name":"yarnlang","version":"0.0.0-117","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-117","dist":{"shasum":"8c30ee78293b790a65aad47cd029874c72d71403","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-117.tgz","integrity":"sha512-+bM2CHdpdnCO4Ewj/XUF5Et+8BT+VMZBJwg2r5yGl4VkNkZhdAPrnWTMW+aiI0UVY3vT8ROR5ud+Zt4uvQax7g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHTaje8smRI+CKuBQXHaiNZP88WifOxSfDR/WHnRgdewAiEAiabtqn2/2Fz9QT/I99xjONRhwpfuQl6kT8Th+LGPS5E="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-118":{"name":"yarnlang","version":"0.0.0-118","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-118","dist":{"shasum":"d5a15c2f45936726184fc1ae501c9188893516d3","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-118.tgz","integrity":"sha512-Ufji/OFS0x+nxa9QR0ofaYfOigl3JrGZ40Jv6BQyOTeuzk7nQQsN0k4dLBAOtlnmTacCeokhS7LG8UygvAEMhg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC2i5WpZ28FrWMw65n7b0b6XHNb8WHfB3+WRpZCsRXvugIgPI4N6WxYk1Y2NEIWa4EKVGPy1aWb4BKG5wQV/PUayKc="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-119":{"name":"yarnlang","version":"0.0.0-119","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-119","dist":{"shasum":"f2636c04f6bf028f5d5afdeff3b5328b4756e250","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-119.tgz","integrity":"sha512-ilTRgg36JtbPt2bMyVP/GyNerVKy1cEe+8gydJFvxm8jV1+Pspz+iMWAUwycfMv2/rdZDE6pKBPZk/17ZWhi4A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFHb6ShbJ8zewFmO4quqE6/ilEX7u+3I1r9WD1ABMyMiAiB3jUwWu1ywpHCsGn/iMrRek1TWKENIsfww4J8SjodqiQ=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-120":{"name":"yarnlang","version":"0.0.0-120","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-120","dist":{"shasum":"d62f2b679059d5636d45b8a9498a07fac787d838","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-120.tgz","integrity":"sha512-+lucWz9gHRlhQ3I3e6xHoVuIv+rE/VQCm+4vfb4ykZCbrdqE6l4ADzDRPQEfhKIu7X1SL78fJECrdCEi/5KccQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDOIRpq4L9Av1EOzjgl5iviBWJFEqiy9iGq28ks8BldoAIgSxkXk4RZQgfQaJ4yOARKEZGW+QypTTZWhhqd+3ohO/k="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-121":{"name":"yarnlang","version":"0.0.0-121","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-121","dist":{"shasum":"3b8c6602df6e953e0c807846e39f76cd52ff29db","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-121.tgz","integrity":"sha512-O6tqIcItLlFqksq+jC6zZ/UIOHwpZUSa3d/4BWG3Y3a275fRN89HqXy92H/cuk7IzN6Xkjmx0TUvor4XATbeTw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBHVeeq419iDTm/IDUbpbQUuf3Dnk2OTCROojinf4RfBAiEAuWjuNtkv/lF78nuyJAgnk/zO1tClCgQsQVOgXS+oaiw="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-122":{"name":"yarnlang","version":"0.0.0-122","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-122","dist":{"shasum":"4e23fc561162f4778fb467bdde5d97e41601dbca","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-122.tgz","integrity":"sha512-8rlCZcaNd9p+91ZAFtSg813myaXzEwZ772N8dcs3rbF7W1ZNGScQ9IvyU8pMs2Ifz27RHK10D7Yqsi+cRCoDcQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDH1RoMnJSyWnhhnB7EIBsskl3qyYfwYp0GNVVu4pfYaQIgfhO48HanfIIhrptYMQqBu+tfeoQz5UGetklLWTLT+y8="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-123":{"name":"yarnlang","version":"0.0.0-123","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-123","dist":{"shasum":"fcbc1a554b9ed427cd4c75753e454374fb875882","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-123.tgz","integrity":"sha512-TfQiTp13sYApYIZeyIVE5BasA06f3x3XmDUdfYu+wU9Ca4Q6sr0Xpz7+YyUQWa4KHT1ADUo3jWxqiA+1BbHUWQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICokt0t+F5CF3EHnRNEQkPIL4Euf65ZxzRoLCQWNWnv3AiEAgb5E7vV3PZeV/tW7KCT1uQCNqc/wv2ueKNyzd4Bh3cw="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-124":{"name":"yarnlang","version":"0.0.0-124","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-124","dist":{"shasum":"ddef22543d67647ccf18ad9d3ee4bdad518000eb","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-124.tgz","integrity":"sha512-yHwmcyRyFMselChIelilcdN7MXtJcDb4+EWUnIn/v8EmQKOxczgRZ+beoAUwV2H1Ca19A/ECUOlqFNwLshiwWw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDe1K150tKo6dsXtsMCdvcXdlCq2SCjAT/XV3qENQ8V+AIgRSm+yPzamr1oZhhbdGnTLysGlaTwbsMGIlejn5RZi9w="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-125":{"name":"yarnlang","version":"0.0.0-125","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-125","dist":{"shasum":"818609f9208bd26c11e1180cf3b5af57fd4081e1","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-125.tgz","integrity":"sha512-n7fDDuYjhz1+vzjb2a4Qtx3GESCLjkol+Ad8bcKPBX8P2jKGWXjD4ihqEbg21ROmCKfICv5JKR+ewDuPZOsHgA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHvxezUNm1EWQYNrfw8wS0zjI5WqW8i4jl5CPHlrv5DVAiEAv6EbXKz+TfZZ6YaomrO2ChOPDVRc88Chr/fYsai45sk="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-126":{"name":"yarnlang","version":"0.0.0-126","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-126","dist":{"shasum":"f1cbab743011a36d920118db38165bf40846eda9","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-126.tgz","integrity":"sha512-v6FxYefv/JkxEhvAfztwbx+PXhFGpCcdV13B1oLNOe2MPOZZmsf3pjRfkLf7S+CjQgZ85AZa348XhUAa1S66Vw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCEIR+Qon3xIngL+/MSO3k2l6E6H1TW0lgflvqZZu7WEgIgZCEP2UkqCP6ewTcl6zrnnrglwcWb9HO2OXAWqONyuX4="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-127":{"name":"yarnlang","version":"0.0.0-127","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-127","dist":{"shasum":"4037c8729b718327335eefa486b3eda0158d99d5","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-127.tgz","integrity":"sha512-FgnvQLxz6XeJdAdgSl+VTbdAhYjcgBAq0Y5DpizY21U0tjaldGlkNwux2ldWwomSKP8tcc0rD4QBcy8x2TJmtw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDpdi9B374dOv3fy6ZsZDrw+ryqBDAnYU1xUk6VjWDQ7AIhAIrOYNHjLVDoJY7XqmoYp536Hfcg6OWDUfGduIkGqAyd"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-128":{"name":"yarnlang","version":"0.0.0-128","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-128","dist":{"shasum":"386640620d53fceb428681aef450440efa82bef0","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-128.tgz","integrity":"sha512-twWfhpdgG8njEzeTVH3v3+FL+9i8WonE6GNfwkR6/1eRXwLGEER91NvDJo6RDKIVDocqdzMz6PsS2bYxpxKKAQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFsitS52lhuhICBKWuwkQiqAuaGHZ5D2cVimBnJC3/PvAiEA0k0GE9ME5I3Enqd06gvFKirtoa4LqBAXk+uVtbsIaLE="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-129":{"name":"yarnlang","version":"0.0.0-129","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-129","dist":{"shasum":"b96db7044c9ebb9a844e3b0141091565c0ce0ae1","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-129.tgz","integrity":"sha512-DtgQx6cy7igFf3irf1TmbaKaFmfhsvI7VbcRDtm51mLsHwXF3pvgvlS19ZItWxKWxrrdz6q1F4ItLF/Z7lGf6Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHCMdOhpWSQ6YkyKLW29N82509sChG/eqiEDlyiiv5F6AiEA4U2DuMcTeu3wktrqSDrE7OKfs5cGWcNeDYoWEkZfvZw="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-130":{"name":"yarnlang","version":"0.0.0-130","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-130","dist":{"shasum":"7276462b034370192d45aa2f6c7d113e2a71b62b","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-130.tgz","integrity":"sha512-lJeRyXvIbi8o56fpXh5Sx5st8uBfTUpP81iq+sU3AoyE3OXpwUcm+5YIVwsIJHieDVD9myjKLoU7hDR5zRadKQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAKPzpNV6ODgoX5/DlfRJkEANfGrDCI0tIrfkcH6n6n/AiEA5UT5htkRKWPokWaXYfIUMOTfqAWe6yIiSY7fZalR6TU="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-131":{"name":"yarnlang","version":"0.0.0-131","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-131","dist":{"shasum":"23a2bf40a7e1bd079822176a876a52192331aef2","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-131.tgz","integrity":"sha512-5FRs55fZm9oriVDYcjcrz5GQ6y8eFnvVK83MoiapNAhdJ/eI3pZf/jYUHUrbfx6Dlimj9RvvkjQMNdqm6lBfuw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFAxKaF2YXsplbwGRTkh01lpjCPrVCs50t/d7qZ0kOIKAiEA6ahuV9KjUZOf3Sjn/A5KolWERbJcSUH+wEHrW5kdu6Q="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-132":{"name":"yarnlang","version":"0.0.0-132","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-132","dist":{"shasum":"a9561b2193de5c69cdf7c9ed535de2f47ed562b9","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-132.tgz","integrity":"sha512-RWTH6XQ7MR/j2qj2SxENC0yapzpNVzZGpV1pBEt0p5QQmDq5q5GBWHw9KUimJek9GMUQgrEEBG+nCbbBJ/rK1g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBsAohza8LIhkbw1389nldOyXZWPFqZQL++zW65OthpNAiAeUdH9YBhNIWksTC6kDZOQe4BaRPQG+PhI+llF/hZxmw=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-133":{"name":"yarnlang","version":"0.0.0-133","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-133","dist":{"shasum":"b4d3890e3e29b07955a498fb15c49f22663f2fe5","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-133.tgz","integrity":"sha512-T5GKXZH38Est8Y5OO6HUki/kDF0x+vuEJsbjnt8Puph3nYhzphZKiQ/9SJyZj9EbwXw7d0l9S9AHnTntdFXJeg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHbt6bIFNzAfz4sWgNnuPGDKjGcjbXdWRhmwSIYVvmUCAiEAle6vE7LfgnhymjFb5OJk2ldFUdgdu3lA1b5uxvfTrjg="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-134":{"name":"yarnlang","version":"0.0.0-134","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-134","dist":{"shasum":"2c830775aa68ea780efed5cf71a53a966eb03540","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-134.tgz","integrity":"sha512-qBW7xz5JuQQFwTVJEZjVrOtWXwo2WPSqrGPmtHUqimrt5S0EhxJoOgwHpRTXfxI+Bo8cgr8L3USxXmwB9IWYng==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDj/JdIeousgMawcox7RnniE3VvrwJ4xeNdGd9gVw9hUQIgTa6/5jPDFvTMFqU0E7fFXIJKcAJ+PsCpWi0gYEJXzXY="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-135":{"name":"yarnlang","version":"0.0.0-135","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-135","dist":{"shasum":"ed750b18a4c17106cabc4216ee434559b1fc0a07","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-135.tgz","integrity":"sha512-D8k8NF4HmpcMAGUqDcI8OEe8HpmQ+ThINJDLnF7GHjc9ubm0xrFcn/u5RogWJnejbi6xzx2K+HuLWEvs/wY92Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGgrfyVP4fCkVFZJqYFer+zsr/cPtvN83ATCyev68V0qAiEA80IrTRMCWkDyj8TFf42DhRy1HbTNZfBCEOC4SrN6UEg="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-136":{"name":"yarnlang","version":"0.0.0-136","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-136","dist":{"shasum":"a462264896c3618966b3bd2069b1c335669421c4","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-136.tgz","integrity":"sha512-5aVNugTJQkis+275+/EwnLN7OeJgFZ/Df7vhnKlMpZcPHKZMaF7v9m3cabowR2vKVvKG6ZgMhc4laxYZMXzafw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDT6P2X3SJdUtJxTJB+6DjfCvNm7j6Lr7TbTV+qVBuQWwIhAItwetJciDL1cBGQIJEj10F2R7pwJsSAksgcFqKJO5WK"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-137":{"name":"yarnlang","version":"0.0.0-137","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-137","dist":{"shasum":"a5c4a094d51368eae898eb3dc5982d3e1181a161","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-137.tgz","integrity":"sha512-ZoBogUGK9cLLl9jgP0HjoXoA+S6Ri8dmjqiHSgdFdebeMIg75agwImFhwOM0XwEdMf87AUzTpiQ/G+fx0milxQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDL1yaJ9W/02D7Clt4jEXHs0K5fowovMxEgxSEETBRQygIgGkDKviJEyyD7VMwXJCXJhIblcoKIDKmnk0xZSOuJASM="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-138":{"name":"yarnlang","version":"0.0.0-138","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-138","dist":{"shasum":"af4bad53e4a773150c9969a96c23b2a3ef4259f0","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-138.tgz","integrity":"sha512-mftjyl7xaxAXKoO9Iky4Ya/FlBTCI2VI27HWYML4hpv2FW/yqk8SM+BbProFCtMu1T0yodfWh8OdwhoLt+1lIA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDXvEyZteFB+bvnFweGh/Xn++8oOV6W/3dn/++Pe/3xCwIgUNhpUQxJBBv18YuDTFt4Ry28aoaeSIJlhj8p//yLp4E="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-139":{"name":"yarnlang","version":"0.0.0-139","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-139","dist":{"shasum":"d1bc3b34e34bdbb1b12859789be56c6bb00b99bb","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-139.tgz","integrity":"sha512-yf7jsDIVC+tD/2Ll6zCnmf+ioLlXBa34ZJfGYTEhrSUiYOV8K8AD+nmQJiZBa4XI+SFEQbPoZIQCPsYkpKUIng==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG3eN3bMWX7/MVlrEIeusAb3DZjrdjWSd7LZD3EWifYCAiEApGa8zMDHLKNnstzkbbo00VgnQq+lllyij/DylpEC+sg="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-140":{"name":"yarnlang","version":"0.0.0-140","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-140","dist":{"shasum":"6b1ae2e2d8bb805f7400f669178f3a52cf8ef3ae","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-140.tgz","integrity":"sha512-7xcihfJhQ1/z82feeHf7i5PqQ39Y935rJOjcGoxrvNERMXzzTKijpL3W0Rv2b7tUsvF6C7eEfkbg2hJVGz35ow==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCJZWtGQbX1UafufIiV7fxNuVhdkUUellVWLd0F3Sqo5AIhAPlIpARrBKi3rOtdyhyJ1R3hminWpVNZvO4Fv6YebbVm"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-141":{"name":"yarnlang","version":"0.0.0-141","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-141","dist":{"shasum":"54449292b23fe9c160a42c38203c29a33bf4c39b","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-141.tgz","integrity":"sha512-YjhAL4y1s86kRkr9ju8nN8SguzfVaSp6f2xQ3LYnBg+dXti2FCpeeIAvNhpzVjvuTPLsO5NV7W5Nxj138C+wQg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEFIX0u++OIvKc2SlBZ7A7A9uAAgernrpSPUnLMhkthTAiBVl6/56hBkWW6yy9Quq3IJR5m8dGUU4u8MXLhLs1LLbw=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-142":{"name":"yarnlang","version":"0.0.0-142","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-142","dist":{"shasum":"944ce5bd375d3f1beee1e83d3ffbe84f1b3a7571","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-142.tgz","integrity":"sha512-Np1lqq1JK1KRX4O970C5atth57tyyMRqvgIYdEYtNcy0V6KeoIuQgu8m2ohISrN0UL0PLxlsW60FjkEUMzdbSQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDH36vH44g6+HphFOP2IE/1CMAd75Jv1VAg85hOYSo2HQIhANxpV2y3t0IOZ86IM9XsGgzMREjiaCdnxrQV+rdkgMgE"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-143":{"name":"yarnlang","version":"0.0.0-143","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-143","dist":{"shasum":"030d706e499a0ecca40a7c9467108984498af012","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-143.tgz","integrity":"sha512-i9kY25f9PU90kmF8g+YLjHScTjrJ77g6G3ZrYYAAcEy0rurkquF4foderj18KpjRavVE1eCPVokb2/wU5hgcVQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIQDoPHsOn4dz2xVsBHfGNJbQ6vJR8WkbOluvToZyhpBGRQIfM08tM9nZhyj1eFXzCEQdlYNz+gsSIhGXq8H//bPmJg=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-144":{"name":"yarnlang","version":"0.0.0-144","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-144","dist":{"shasum":"394061bb46490437b5b92e7c128d7490266ac0c3","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-144.tgz","integrity":"sha512-KkULMDdVjMAMPL15BhKx9ADDb6Lc/4RSsRqb3ZzB/XpRYD8nzbisBp95DV94oGYNXv5ZMb77cFPkxgO0LqScig==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBCgByAOG+K6MSv65DWh5dpFTrxxUfaO4wRmWeL+sU/kAiARuaNsGCJEU4xmJBacVI0q7EV30s5ScuB0q9auUVLjXw=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-145":{"name":"yarnlang","version":"0.0.0-145","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-145","dist":{"shasum":"30b657db58bead793c867ea09e467489719a9917","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-145.tgz","integrity":"sha512-+SOuo8/muGjaCDIIJp8iGMLNW3fF0l+sSA5/pm+KYjeRelPH4l5ysrdSQM8Flmnke9x6PeUvwGEbfTssRBem6g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFSa9b5b2Q5JcL0MZljn79EiMVuQN2c2cD0FzilbvrcGAiEAsZ3gAtIJQG91xrbHIV3fHwDLECtniBKfZqwieRfx6DU="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-146":{"name":"yarnlang","version":"0.0.0-146","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-146","dist":{"shasum":"ff01bd956f8594a1095369773953a6843b70c211","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-146.tgz","integrity":"sha512-syiJwxyT/bJpPam1D4t3sWhA+vZR8zQjfKVSdK4046/StQr55NvlASmLgfKMS1HgbUCViWU4AuNBJ1cf0cWY+A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC8wtonWiya/fa6LcmkbeT5BnMjDtgrSnlzVSrrvJpUzgIhANn7xfzkL/YGo0K59R0DOiM6mtJ+z1PDWv3NRxNX3Iuv"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-147":{"name":"yarnlang","version":"0.0.0-147","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-147","dist":{"shasum":"110e473fae838663a5e76504dd9b4720984ec45b","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-147.tgz","integrity":"sha512-sW354NYhpVruDgyT4VwW402emzCPJhNCeOu+gRgpMNnfdlyFLh2nTwIFQ9WI+D5/WwoMDm5KjRMW9AuN49ctKw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCkk6ci4xyALJMcLjUGKxJxcIem8bBIGkESUlqplwHCgQIhAIe41SD8MEbzaly41COCn/q1jz/29KOA/PuYk7lA4/Yo"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-148":{"name":"yarnlang","version":"0.0.0-148","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-148","dist":{"shasum":"b387b3a7f55ca88e7078ee55b051c73a403764a2","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-148.tgz","integrity":"sha512-ORjvTQbzY6G1VjeVGQxLnNQGU/bKZ82xprcqVukk/soN+xkZstBUSopdwuCuO8a1lJvsuD44/oAnpJ6qLXZCGg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDP2vP1/zdkd4EG3b9Guy76eGs5vaX0WGBQqA6BnbyUPAiA9PLftyDWf40cya6zdL4Ed+I70GtaDhkqE+sCiNGk3wQ=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-149":{"name":"yarnlang","version":"0.0.0-149","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-149","dist":{"shasum":"8f9c549a79cf1746a613579a078ab2ec02489c7a","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-149.tgz","integrity":"sha512-7pMhIK9CJTsFDBcTJHWMCdhqQRVvgTxmpTOYc0BLp3rlrEy6dNEWVXPv1oJNxREkmyAQ7AG9vZH8156s5WukAw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFs/HaG5Ju5JttQVf15b7FpuVXUU8+P7yQxpA2+IpvHOAiBPVcN8r+J0gFaQa6TR2f4g2A+IIqiDU743Lb0OyeFNFQ=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-150":{"name":"yarnlang","version":"0.0.0-150","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-150","dist":{"shasum":"0c53284cc15256200ac6fe70c67948243a7b04ff","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-150.tgz","integrity":"sha512-4mrP3clfCNOGWRbsFt2UDEt4L4ENCBF0wpcgDtyjkGZc6pzOCXwJQSQFwZBdXuSfZ4WnPW/zFDmH5/YaSyQddA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE59jzDQz2KhvhAJGqr1IV5+CSt/oOzBag9AU+iWGHLIAiEA+XcBPECAVtYYvYb3EsPSKJbRjNz80onWRjU/woSnqnc="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-151":{"name":"yarnlang","version":"0.0.0-151","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-151","dist":{"shasum":"bf481b3c8a20257764c8197e79019f7ea28d29d2","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-151.tgz","integrity":"sha512-mJpY6ceWb0m+K8ZRNf/8svEK7CQwxPUr9rICU1OrufWJpAFLJ2CtarMuHPZLRDPpyEqzTg963K823wXt110rog==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHJeQpIyXbWkfukf9wHG1yk7gAqM7HM3/x1hyPAD05evAiEApUbY0iD0VewZIf9nvhgcz86BCKf3j8jyuPDvzO3vl+g="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-152":{"name":"yarnlang","version":"0.0.0-152","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-152","dist":{"shasum":"e832f0769964dc78885ba396475917429e0246a4","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-152.tgz","integrity":"sha512-s0jv7HyQQ3snXXHfkKmEstyZhwX1nL2091vwFyPLm5EsETCD7LMkemtv684jHl5M9MqjDf0y+vwxl6YjkHBhxw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD1zdKWK70Ea4mJcAOFTOYGWEGQF7BdaSGbbnuWJbXeTAIgShtJGukEUQxKR89wg0DpAPH3E16U4NHTOU2X8IJKQNY="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-153":{"name":"yarnlang","version":"0.0.0-153","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-153","dist":{"shasum":"af9d772802ce757e98f7138650bec6b2d2144f34","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-153.tgz","integrity":"sha512-y9wG61E/y0/sNwYC5jEJ0JtHrNtztbxGN63WTB0/orMa4q5pPL8aA6cWqrZHp5tZyQNRKiNQ8AOcYH901DwxdA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID4TGMQDKleHShpSU29QMYppgVAEkpn44Gm0fyNPlUxJAiEA+msQbc5kBY4dcvoEgtnLuJjmd6fDErG0DKjW5f0RG2w="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-154":{"name":"yarnlang","version":"0.0.0-154","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-154","dist":{"shasum":"2f27e4b5f071cc33a3497c7982f1a644288f2334","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-154.tgz","integrity":"sha512-be8yo1VSUCWCZh7PN8kBapwf8uDHIHoJsU1BpLArEc60jA41P7xgFu3nFHV6G0VmKL07Eerm8uDQJjADT7fEWA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCflY6d+xDnYX5ZfdStGrJBxBwib6q5cqaw3AZzgkV8awIgSgWNsqRlU2On8WcbKoWBtug9cvPVQhHqOWDlBhKTq/A="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-155":{"name":"yarnlang","version":"0.0.0-155","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-155","dist":{"shasum":"1e76aee33c62f1f787ca7b161943f213b7f16d90","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-155.tgz","integrity":"sha512-zMO8+bS5QT731u5+1SBT3kMUv7wmH5ypuhR1Kt3Mjsm856JMhnPLPVC45yq+9mck3PcTaaU53iVzK3cLZvdvcQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHS6e+YMurn6g3umPjH0BAnsExf2aEV8X4vdpw1K2xHAAiEAj6OGeDyiuvxb3ZW/Ay6sgC96jqb9wdyXKcKr7vEaTI8="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-156":{"name":"yarnlang","version":"0.0.0-156","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-156","dist":{"shasum":"c8675ff5abc5d0955c3aa17afc2a4c573f5fc7cc","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-156.tgz","integrity":"sha512-QtrTMK77q9/GW1DRIN/7ayruLj8Mie0Myiex4ybQ/1hwPWWJdQ2p/tv9wyRS3Ss+05MW9vhd83pBni2GjYIGhw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFql6/3aMszT1dZFipzbVupGQ+fj98G66ZUxNjVyT2GSAiBQ5J0YBKa4juR1joumknwXOCLFRXg/bfvgB+P+0xCR7g=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-157":{"name":"yarnlang","version":"0.0.0-157","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-157","dist":{"shasum":"0614a14b40e0a545e5cc130361c0c8acede58758","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-157.tgz","integrity":"sha512-GAfuLPqOyyfQo7+y5P81wY0fDr/FbabdKrWOS/p7AQhLbaIh4KTT8DlN73ZwLiAnYxuzA2TaYqV4T9eoX+KepA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDAdqb8FRr/xIsLNLIxiLVVTeVmzFCaAEtHyp4JdZNZBgIhALIy8g3X1Ne/F3TX8jV5fxCTHpFsBZowN7VvfQAX+vBu"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-158":{"name":"yarnlang","version":"0.0.0-158","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-158","dist":{"shasum":"c02899787f1593fa7d71d3335e0f789a61c52c10","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-158.tgz","integrity":"sha512-e90wgrPGo7v9AI6zgWhhqtXiY8Kt1muxDcY8inmg9PNkYU9zm89gBM/hCEFg7MTyqfv1ZoqhrbYm3UEz0+MRmw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDCA1NlXBtN4sZ/11N4iUp+eDeyt9G6CzA0nJA7m845/gIgLETPqte/hNAssm5Ora77U8Wp86VTTQdswzFfS9Y5C+0="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-159":{"name":"yarnlang","version":"0.0.0-159","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-159","dist":{"shasum":"98843180f8860e9d58421fe289f99498b855fdda","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-159.tgz","integrity":"sha512-3Fcw96JuvbELIV9dNht5eKyvNygnA7+zUFByCwroWAt0Xi7B6WnTxfogF+zRqMvMaEqNnL+0+Q8iOCRibOOpzQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDwbUNzaNkuL+6MrzkPOgPa2vhk3uKJ7ZHdkipDsbFnhwIgZzLVllx/qNalgZ5Bn71EoJK3EojdU9bu3lgpa3dLiLg="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-160":{"name":"yarnlang","version":"0.0.0-160","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-160","dist":{"shasum":"05f3709e81d09ffb788b5f25678cf3bad30ce09d","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-160.tgz","integrity":"sha512-Wo9Cuk1KQ5VhesSQVN0rwqkqwiMr8k8x966uRzowEBs7s3Hx4Y79xF1jsXvwqI3JsGih0q54SAbPU7VZYD9lnQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDYf/GKi2bnFffSAi0mOQ7RqzA9zISRi7J9BriRgBzKlAIhAO74BsipO6cbjl96FUAkKtdHmaVXtwn+iODZ80q91Kny"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-161":{"name":"yarnlang","version":"0.0.0-161","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-161","dist":{"shasum":"670d13bf2489a30b9385f02e37246e8aff1ea889","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-161.tgz","integrity":"sha512-2UWvKziQpg3ovfu+qu3T4Q/7OLRI8OVY5vjwGmM+EiW0ztEGwyU1gqE6s13BEUVSPu+ZrAYkr317fc/P7J5FwQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDWP7kn/YbGZqr3zT/KtyIC91qLwtseun68TAnYFV7aqwIgNxQxMRjrAuDhGFS6aJEGaIUKxSHYbN6wRBIzJC+STaI="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-162":{"name":"yarnlang","version":"0.0.0-162","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-162","dist":{"shasum":"9596a0892020b8b8d525b563e78dcbe313384b6f","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-162.tgz","integrity":"sha512-WPnx0GR3L0RVsnV7xiLOkX0huVAjC7jdSLetlXPIkFQHrbS7vAEBYbTdVcwUs0MtxxY317uaiF3eTfCEWjPb2g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICrtxWRBsX7ZNOhmGbIK9iFFmQOE1qZmBukqA+XmxEwaAiBn52XHNsyDxc5TcRLyKVJs63wvDHtfKLo2byUGBiNrwA=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-163":{"name":"yarnlang","version":"0.0.0-163","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-163","dist":{"shasum":"d2e8d337b2159b66c640a558dfc88999554f4a90","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-163.tgz","integrity":"sha512-0jaz5jz6FSm1KId9oXDyv0+mg8FUcnn8/zcTJqFvZ2UaD+/MfW+Bmb9BUActu8Ja+EUQDjL/1bA3ogbTZYvUbQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFN7ecPvi3bU8qTm3xmuM5/t1YiVYfc+DcrC6U3iKulEAiBTh86ni4oB2J81flqooxaCR+Qvq0tlUbvEhiMfzAwrKg=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-164":{"name":"yarnlang","version":"0.0.0-164","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-164","dist":{"shasum":"1ecbd37ba7e3beaac50f52b638eea342fcd0b999","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-164.tgz","integrity":"sha512-M+NO+Jr3XSRdfw9B0BjAykT0YKTKYREu2aKectRVq8lDFAZZFQmUwKCEBdgXkOpgr5i4OlQoxZZAiDA1kR6AOQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGwyDN/5gjYR2NttxvQXA+aTf6ywmlRuMUeS3iYaoWx0AiBsxX4HWs1E5FZHLYbZVJmDiGVNF4E7m57DrcDBUBXXwA=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-165":{"name":"yarnlang","version":"0.0.0-165","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-165","dist":{"shasum":"c7e44defb2ecade8259876906480e32e7278e666","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-165.tgz","integrity":"sha512-FDc5zvygJSyRoeNF8gBpbg6J7iDM/dEVzON6NCtmeY8U2tnKsCqnFCcdL5P4HEUO7XV4PnhMK6UhtNubSLGHvg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFvwIH4d3wJtHlVj7//TkaRaCTmlX0TcdDbYBmvbyFmTAiAHNlJV8BkQLZvfClND9BtlBj+OtQttw1pzuh8WXR6kCg=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-166":{"name":"yarnlang","version":"0.0.0-166","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-166","dist":{"shasum":"940f1c86afe50547cd17b860d296c9aee7300d7c","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-166.tgz","integrity":"sha512-RZmJ01/CMO3oXKkbqSaL+bpRLhd6LYcJvWYYundT6kBvNG2IwVsZdrwEh/4P/M558Xg6SQ/7kbcPWWkZldvtyA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIATYh1s76mOEmqVbgj4OUFiWMc3t2F1hOjsiB6EGBhYdAiA5TwVwmYZjD1NINn8QrkypFScNutD2zxGKhW7+yGS2QQ=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-167":{"name":"yarnlang","version":"0.0.0-167","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-167","dist":{"shasum":"b1e904900e11f1c2ae2ac4ab133cc0b6db4bd763","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-167.tgz","integrity":"sha512-YfK8Hdu4O5aABkdiDEoEKl6wR7Y0Ts89teLME+RW37IST4rPulTEXP1JnXiSgIRtDkDRJN2xmfGYgbH1F7q1HA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCu62quzYblPnB/XcnImbamLezkm+MUhNM3LNtpW35WqwIgSfUKIBq8sr0g3Ci3FTG0rArgb3sgpPHKdZD2SX/jJHA="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-168":{"name":"yarnlang","version":"0.0.0-168","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-168","dist":{"shasum":"3b214d6c586bb26b394140951d3ca9d7e7d8163c","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-168.tgz","integrity":"sha512-reIk8PyXkzU564jp+Y2/0Cpj305UQM4Kma+R3pUO+d5YyfcQv+APeekBKUpQbqVGDNzYCDJgh2hC63s5UC97iw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDnz9jRFxALYI1kdpsbdg+F3G1TiVYQ5CwzUpVTNCWswAIgfkzCfT3LkaRD9Ew+gHJSeTYpBcxUDVEZnlK3SlpyA6I="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-169":{"name":"yarnlang","version":"0.0.0-169","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-169","dist":{"shasum":"71c6f072231b37b75b754cb237a1468424bc9eeb","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-169.tgz","integrity":"sha512-fvMDTKgiVUen+V4pa8brQgtQLr4xKaUxRed3rzbWn26DKztADhhpKPNqJsmOXgA8qMyLqDA92qH3s/JwU1ZAPA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDIJNZeMSx0pvA6zm1D1bkfn+I1+Wxlxv/807Dgdj7YfgIhAMjWi+/SBuCyQ91gqTuXI3NGHmKymZig6rxw0cJvzVsS"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-170":{"name":"yarnlang","version":"0.0.0-170","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-170","dist":{"shasum":"5940f5708f7932dd8d6ca664dd05483a34cb7b1a","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-170.tgz","integrity":"sha512-z3RSzR1RwpyURpM0vpnUm64Je9ktuTpUDsEHKQi6t0bLbHGqG7Ras5NROYmX/XumEmh5a5HUYU1XEmkvd5O/pg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFhKKTBClXy1bWL+KhesxGmKdqD/u7HbmmjomcRELV2PAiEAw0/J94xeZsskObzanwqkJe9bgRl8YT0ydgC4v2hCknw="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-171":{"name":"yarnlang","version":"0.0.0-171","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-171","dist":{"shasum":"515d0384852bf225143bd4dd9774287ad1e47fc8","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-171.tgz","integrity":"sha512-f1C6PVfKx7AEOitYv/PHW4H76aCdHNn2tvO8c4hon9MBOfaZl33HYw64qGb73jHC/jsBOCXT71ejCAmdOu2ZXw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCmAzWml4M+Cu3JDfWsi8yWuHZ07dmPVM2Tnxt/gl622QIgHablQgKYpIME5LRlXL1uJCTpkPoO/igpc6dQjT4J/JI="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-172":{"name":"yarnlang","version":"0.0.0-172","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-172","dist":{"shasum":"cc7441c642408f62441d309479b5a3fd68041f72","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-172.tgz","integrity":"sha512-SHJ41Qb05rxV/C4atitSXb4GKfezqSFzL7pLtUq9jd9GB7x0GT9kAfRWh+s6+NuR/2JAMQM6cO07ehTb5uZ8Kw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDEHEkQp51U11/L62gOZPuUV/DjHobkCNy6ERXSxUbnCQIgM1roRQXJpNtZ5WJxKkueNZE6yZ9He7LqcRKuuWRfyXs="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-173":{"name":"yarnlang","version":"0.0.0-173","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-173","dist":{"shasum":"aa28492ee2b586d821bc66e98e6ac5b19059dd14","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-173.tgz","integrity":"sha512-2CjS+DiVEoyelf5NAYgQxJk7gdmqyh3y5kVYsNYnnEennIfNhpgeGrEqtjYMutO1r5zumUykmMiwqIymh3p7+w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAUqWRlRimDN4SOMW5/3JNDi0wu9lCyaFMiC4HvD0nwZAiAXU7KkOLDnLoLFKVJrDpkEFXxNOGrYo5wnf/UTRELbDA=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-174":{"name":"yarnlang","version":"0.0.0-174","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-174","dist":{"shasum":"e49c90d69425d8ba3746218901435e58898350da","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-174.tgz","integrity":"sha512-/peM9POU0vhkceAeG11YSJ62JyMZgY9qQcN/TjhKr4N9JbytRgdV1KJPGKqv3Hz+CrMKfX4j/s/JjTLm8g8fQQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICGuYij1ONFatHYIiqewBOusGEjZyMBKnHhnukiD7x05AiEAkBqThWnEeLShPqwgmf1L3CgoACdRAbU1BkNCuC01FdU="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-175":{"name":"yarnlang","version":"0.0.0-175","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-175","dist":{"shasum":"95f1ee8b8c70938632cdf5ca25bbf2fc36549902","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-175.tgz","integrity":"sha512-QJj/M+AfwALk6eKx9ZlVpYgoucP+132i9cV1bIRe30+y9UHeWKmUbWFeaFloejfT7i0Sa7AZ6MFzZboTwslh+g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHzYFjVsPshXfJb/mGv/yJMQg140ixynJWYbJPRQ5UJQAiEAwJyRc5pk8gJTi0j4EWA3GfS9czkTh5QG/H9ScCAwkU4="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-176":{"name":"yarnlang","version":"0.0.0-176","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-176","dist":{"shasum":"52d77868adab30af9af3b74cd14e13fcf805c06f","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-176.tgz","integrity":"sha512-qb+RZWW9nSemzHhEv88L5KdBCGPh4l15vFpzITl2IuTJkxuwW3rGjniwYGL8WnzIh+zrviKNTINhRXJQY49sig==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDcOAp5DLvTLwnbOo6sSC36/olJJXtbWWdvDa83PHK/rAiEAni8GBZOEdHtjqofTR8ZKnkNJuUPK5h0SWNwq5lHamBA="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-177":{"name":"yarnlang","version":"0.0.0-177","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-177","dist":{"shasum":"6ee59d43c272bf67a136f4ed0058c8d46e801b7c","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-177.tgz","integrity":"sha512-AGrKyTXFLweJOjjaZKhdOpucNnCLiBBlGvz5kNCb6/xIzGq8QK5a55mvm43h2m9/SVqTAmLgtcLqF+StB56ESw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCDYc0STV8Be7hIZdiDB1DiniEdRStmmQf3gqzcH5NAlgIhAN9uW3Z/i5Ka9I5Bo0Sk0r2Ju/RCAeK3u8zFbumL3WuE"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-178":{"name":"yarnlang","version":"0.0.0-178","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-178","dist":{"shasum":"483d32f045e727a10d0d18be4fbfd61cfc220aaa","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-178.tgz","integrity":"sha512-gbEhixrtTAf5JAzDkWtLl1pLq40ocXSHJT3Jul1WMMN0C8Pk7fiDLR3NpqrYj0kQdVig94O/+a/Ru95phb7N3w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCunVb/3zMeS11ljOv4bHXhY1SYvN0EY2Auu/ldcuI7lAIhAL06HGqjuqumAiwJL0UZx8KX/aTNQEH3lj7eJH7flZ6M"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-179":{"name":"yarnlang","version":"0.0.0-179","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-179","dist":{"shasum":"769d76601227067197488ab0c197d65f92500c57","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-179.tgz","integrity":"sha512-j56mrODSEp0dmYcb8RhHlnbC408TbtiHPlQ/BLywwhGl/mz+7VULzbJzrXEsoLIJzJFOBuAp8nRYP931gOGzZA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHqRyTFg2SSglwZL0WrEP56YsIHVXY19uTYuoXmfyiyZAiEAkZ0/Gq+IMJVNlSGyIhgRbufWriKkqxlt20Uw4wdIEpQ="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-180":{"name":"yarnlang","version":"0.0.0-180","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-180","dist":{"shasum":"46d7de5e3d625c953257b0ef4e946a2fdcab33a2","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-180.tgz","integrity":"sha512-QoEQD9q/rCXHuXT9QTpdoiT0NGnubcyjEpSze65JkDVPeaELIbW40KbfESmeh94sntTod+0dHsOZZGySPcrEdg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDNY5TQcT72LbnNB4hhkdQXmVt/MVQoA8Rjsw0tCyHpUQIhAITmzQBsjEJJX+AskxFav4vhLkEE6i7Mm5sFgJYI/suD"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-181":{"name":"yarnlang","version":"0.0.0-181","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-181","dist":{"shasum":"f3b76244dc204f876b075f0aefab63066705da77","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-181.tgz","integrity":"sha512-taKtrheouSipRdmMUJYszFOMm4jhGkd4FFLdPTOZR9L7Fvfrwv5CptmzmOml51F267dDEyytw56Ph9Q87NE4TA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF1UbB7IGCb0XTxIbBd706s2v0gkSon+6RIqmRYG6eqZAiEApdzHRCsQ9FnJVYTBMCqHStBqRRs9CvShqdNHMUOvplc="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-182":{"name":"yarnlang","version":"0.0.0-182","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-182","dist":{"shasum":"6856a193411ae5f611d0ffc183107a58d2b11d1f","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-182.tgz","integrity":"sha512-dO5msgjmSpPVv8/E+v4mE5Hoc6kPIc61K5wiJYmHs9CBwTxtPVBV33Up6GcpAQxd0CsyEpNgKrAu/5UoPqMwUA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCg+aFu89co/1VxydTycyUAaZvUIaN5u9ufzFIWxQQCkwIgaL+X2zAhsmy7nHwWaiQvAo/isoHxg6bXYRGb5vDbw0U="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-183":{"name":"yarnlang","version":"0.0.0-183","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-183","dist":{"shasum":"bcceee941dad2b2e44e8ccb7d23aeeaaab2e9da1","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-183.tgz","integrity":"sha512-93uE2IEkO42cKoRxYFB2JqcG8TVzb3y7l5ilS0NbHLu5+eWgYAXGYDt8u+CoI5vHtxXdscFTnd/HD1jLMxCHzA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCEOTJCOCAzE7RZqWINSScKKMyDU0GtkQK7QC/eRFPAAwIgQkIf4999B7PVcEC1E5Y/PH3GSBaVi7MtyGm/lPtvvOM="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-184":{"name":"yarnlang","version":"0.0.0-184","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-184","dist":{"shasum":"8e3608d4a7bfd18beaeb5b9e446944ce623b5693","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-184.tgz","integrity":"sha512-PaGN/OACj0noMGtUjo33VkaGs5lCph9x3CXS/MuYfGMnKBNYkvpr3eMFrq9Had/bT93eX197oBVQ4tj0ijg+Vg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB/PL//hffSJYEax1ARZOtjLoqb2ps8xrOsGkagUdvuuAiEAsXeT15OWcW2W3IsKYv2Ct2zzQ29TUdGNg4VfJZN3jVY="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-185":{"name":"yarnlang","version":"0.0.0-185","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-185","dist":{"shasum":"cab2744d38364e2f4ef8fa68baf8c99948cebfcf","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-185.tgz","integrity":"sha512-l6QaZj330z9HFsqx3FnJFLFb9gr4ZaLkBwj29oJmdCGLHF/CDGPNFs9AbzfCkgyKJXdzMx+64sGEHp0vfT7JUw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD79sYMygoqmw/eMqOpwX23NOPkkNQrX7tb7Fk4zFdPLQIgJ9ogLETv97N7F7sumAUkd5LjBP4KsS2ra155RnaPjpQ="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-186":{"name":"yarnlang","version":"0.0.0-186","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-186","dist":{"shasum":"aa4ea459576c023d9c4836977d5dc9095831766b","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-186.tgz","integrity":"sha512-sXlGjsWif8mSOWnDPhMBercfgTSHbyK2eGJf1v0Pycga6soaM+ACAr4CjIWTwECQsu6XDKsq6p99S+2bQgqCtQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCAHqaMqI1WGDIzhw7pS6htcfPKVrOJQgTGpc0N8xYERgIhAI/E7qD44eW85bAIkjLLddOedrEVhvo4RlqZYjvHikhX"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-187":{"name":"yarnlang","version":"0.0.0-187","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-187","dist":{"shasum":"cb3c55dcfafd2984945317aa80a3f8adfdc6bee5","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-187.tgz","integrity":"sha512-xadd6mZKslamwbcqFibJZAimeNGxi2AviS8B2QgJ6xIOEG+uqb+S2NmGc+R+fteYxDFUlxs7v+mOlJRtJVnvHw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCuqvNd3SDwTYYY0oGLPqiqII/iXAc4IqrXksmqytdC5wIgds0/w3uoPs+rcJRI52U5MJUP6uspuBDooV9hewpL1OA="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-188":{"name":"yarnlang","version":"0.0.0-188","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-188","dist":{"shasum":"b679ca49934787af7a791f07089729ed560e109e","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-188.tgz","integrity":"sha512-ho093bUHhYjt1NoIouCUWdjRsbFk4Jo6N7RCGvB2bxs6D7kvpDje7X+9d7GoVgEsRXmt/dAJauEk7QlVuh1GJg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCL5CdMuHArl7Z6+1bkWKiZHIolrRXeVA+lqvIqXPn0pwIgQTopGktWDXoW6jV0EDUEzdTbsVKdoxFGJtLS8dNSsKs="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-189":{"name":"yarnlang","version":"0.0.0-189","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-189","dist":{"shasum":"223dcf38edcf26e7610a22a2a6549a1846d4d072","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-189.tgz","integrity":"sha512-mx6cI4rNRWO2jYgUDQHe9Wgph2vGK9PfQ4qjTvFcRBdVMgLV2RDFtzavLnar+UmLVQa1UMJaFzKm1rsRxnYwLA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHd41PXwNAT50eInzDb/Mpl1VZipLqoPSbCvFsZxYpNDAiAMP5vHrf6cbr9ezqSv1Os7oXBjkbtxEDPjbrccF/Rhmw=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-190":{"name":"yarnlang","version":"0.0.0-190","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-190","dist":{"shasum":"b1d215b137ff3bebb9f289823f5c6d87d983ad8b","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-190.tgz","integrity":"sha512-L59Kz8jsrZ8Td1SJ0mMIKmCD7/F6Yz1CXjEl4x5e0FGq/8tFnR/QkOFYKZbU0N6S+NKPA35LRcOsTdEjfEaXiQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFZmp0AgG/duAnFEvzwfYB9jc0CZV9WMxV9/ORTDxWQ4AiEAwUW5VoVqqK5VOzqdeYoxoCmSg0BPGrA0h9ZHMNLbXpM="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-191":{"name":"yarnlang","version":"0.0.0-191","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-191","dist":{"shasum":"c4473381e0cafe9e1a95a590d0b455ec909c54b6","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-191.tgz","integrity":"sha512-9wVllI8Ua+qZn+xjJ4Uzi/CF8A6jgJqQbgKRQ5OTZgnG13m85MkIBj8NjlhSclKrv99hBxQdTlxu0wrgPXRVxg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCEq+JxPMfh9lZrFTaWQEu1OojpqPK2mzAyOSTKrOo9LgIhANPg1iuoBb17vZpeDBELtXnGQUfqlyRDacwRMDkkXGv4"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-192":{"name":"yarnlang","version":"0.0.0-192","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-192","dist":{"shasum":"05a3972a7ca091e5d06f574d52dcc50fa8816a2b","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-192.tgz","integrity":"sha512-8X0xsDkZMVMXB/FCwMg3j21OtQH+fQrkCw/kDUXUlmPAAGD4HnQHF0BDPsufO/2mdfRqDR7+YjRG8nJ8HAyW/g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCowF60RxufOJaSJr0ZO4qKpVUlnotp/ZOnd6p97rHWOAIgPivDmblgzP/d60gvfvHljuSRsElA7fr0LvNo32WckEA="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-193":{"name":"yarnlang","version":"0.0.0-193","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-193","dist":{"shasum":"ab352a109fec8152edbfe740611fb3030873bca7","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-193.tgz","integrity":"sha512-0njUDlb3ADAgcngi0y9BLLIvEXCe1Qsk7/Lnw7aUK7DyO5yRfuesSOlMZv6D1+h68I4JAmstWyubuFDZ1TlIVQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCAYeBh4O4Hccwxel8Xk6QpFipei4sFXuqpgePwZslH1QIhAJ1nqqqDtWYhwYxZzu1kJw0ftI5Xi/Pd/rRZ+2AwaIox"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-194":{"name":"yarnlang","version":"0.0.0-194","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-194","dist":{"shasum":"7b6396cb9e079f187a54abf56374cda2c6129ed7","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-194.tgz","integrity":"sha512-etWWR9S0QfVYmmkthkK1D58BjqHagqIjjt04XOtLADtxkYXJJOuXEeK4ZG6x4UpvHroDdse3e398+lBUjgh46w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCVGEh5JGGfVNjwcoj+v10ZEet7RiUivlS+XvGYvYClggIhAIxhvx7QnGlLlH5lfik7AgjVMDizskk4KR307ff1IKNO"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-195":{"name":"yarnlang","version":"0.0.0-195","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-195","dist":{"shasum":"72d25e403566dd9fb2a77e777e37679ee6f09284","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-195.tgz","integrity":"sha512-KxNZkzXI7ewJ60j9oUXy0lNRWcpvklYnpqsXqTVY+SLrjXZiJmPYW5Z34prQ8stn8/lLPayiNHUHHjqqxMNANg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDw+kxWfcD/YguOCEAwvTcSUJVSE44VbiRypgh6krgQMAIhAO53ekIJFLWngP4rVajLZdZOrJ9YLHkTIvxWEb0M4cWJ"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-196":{"name":"yarnlang","version":"0.0.0-196","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-196","dist":{"shasum":"a0079c638a46715e4dc42dfc26cd55f8dbe5ef3f","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-196.tgz","integrity":"sha512-71ysUo57lRab1H0U6NXHXXcCbaO2ZiCTetr5O2afeToN5CrdFFcqllDkDjpdOBedO00u7ybHi7FaOt9FCByZjA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC69vKtC+htgFZpkc24ZdWG2wka3XiyftAqcU8+6P1anAiEAjd+GRWDXLqMChAuYcwjNxF+Yqx0r+Xuu/ABAoXBkgNw="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-197":{"name":"yarnlang","version":"0.0.0-197","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-197","dist":{"shasum":"ead0fba2505a1072abe41b013c8393eaf351cd39","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-197.tgz","integrity":"sha512-65yMzcCrQGUq4AqYvGjk/st7Pmr7pSLfIwAqysxiAVtyykFYBIlaQ93gxGsyBtb3RDeka9ZgK5J4qsX80BDxvg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFoRiUS/QJ0rdJ2b2Vv+Qe5VL5kVZ1psDIyQSno1j9HmAiAKy8zdvY5eNznNlQF5fGicAjs1HNVfN2sOPBtnGr2uSQ=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-198":{"name":"yarnlang","version":"0.0.0-198","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-198","dist":{"shasum":"a8a621558ac142150c3ca3f10a54872555c6d9e9","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-198.tgz","integrity":"sha512-y3aAl88aV/rOOXCwqGTLuLNcVCK9KNjIMFpNYbUtPm8rRwmkqIt81jC+H6YacU16AME6uc8lXO5/KazIRtXzMg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCBynLLcTN+GTOJkRlycLDk+irmn03jD7XQOlS178OkEAIhALqyWC3R0jY/jI17ZT7i4feteHXJK1jOpguoV6WSa+kK"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-199":{"name":"yarnlang","version":"0.0.0-199","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-199","dist":{"shasum":"6ccad5990ce011a3afce539d2bcae68f4a7893a2","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-199.tgz","integrity":"sha512-TMqRHRc+21FpmcOPgX1Xe9WVMAE/WbuMZNv5ODNc9eLdrSkjBpErO6eU+nTSWaIIMJjTQIhuRGCmideepKNgDg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGWtO+K/ii7oep0Vpt+97pXF/KyEnZj618okrf2yi1q9AiAgYENHzs4Dds3nE2Kjds2oRGgaN8RjUsqAOGwvn4uU/Q=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-200":{"name":"yarnlang","version":"0.0.0-200","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-200","dist":{"shasum":"a05ec6e52a985b58826a64d9315675875c65ee44","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-200.tgz","integrity":"sha512-97Oc1N7CTXs2UWLocLCe9Uigh5lvbKvc5HtCiVXkZyaxxFuw8BEd5+mZtk8xeoftLwbfiY5jN4uU48gDjtUAxA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDtVvIl3fgU6mxOfELzIPzftzFviAhuyCbibldmtX0KPgIhAMolHRikrykFS9ex/auQRg7lpQK/Cz8//u5meyoIAmIa"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-201":{"name":"yarnlang","version":"0.0.0-201","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-201","dist":{"shasum":"4071c26ed45c2128b4ae7768d02c91fa5a3269f1","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-201.tgz","integrity":"sha512-NoKMBItM4gnlHiKgCPneglXSIO9qajyCyH2QDNp23HlTRVti2t1CNKOeP8rH5xiCCCl6mgOK7UNy3acghGL0AQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDSjy4qivyh1KAeJe1CWBsb0+iyoZrItdlIFpfA3zHdbgIgYuo1Ce4/NeuRnrj75faBbOnY9OT6XkVA13R7woYO0mE="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-202":{"name":"yarnlang","version":"0.0.0-202","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-202","dist":{"shasum":"685e75bfc36ab8a2e7c6602d2889d708cde77d53","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-202.tgz","integrity":"sha512-88Yw0BOTDYVRwfjP8BJaR9/oF4xnVol1ISNOGr8efkLgsNjYeg2Z7koUle0jueW8vwAKNujtmKWDoFblXBC4Yg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDWKFsuxPGR8yALdn8bEHdYfMXMwaLOetRBj6eYIAbSwAIhANkF0QRSKAudxImeX5bjv55H29RbEKz+4aFiv/MxoYnA"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-203":{"name":"yarnlang","version":"0.0.0-203","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-203","dist":{"shasum":"8a94dd1d7fd96236f71480a98b446283264f6c45","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-203.tgz","integrity":"sha512-pZPdh01tJeL/oKA/DFS1bdsX4kCn1LIO4A4NUcubEWNdUIcAlEM7h6PGRpta7W/sqyqIImWFnE/gOvV2KDMfmg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICN3p4Qpg5X5uQ5dhhrbTCH2nMoueFn4I+Pg0beI3y+9AiEAsg1BBkTo9e4kabuH/BWk4W8pYYQ46fV5Rb69oTAbZ3g="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-204":{"name":"yarnlang","version":"0.0.0-204","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-204","dist":{"shasum":"9f0051967f4d34af8f8d00f7d26a30b537d016b8","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-204.tgz","integrity":"sha512-YL3o3FVMjN8IfXK2ExBid05zx5DK0jduJS0FWtjCDOGQT7G+TtUuTwP+EX+0sa/+wUUtJpgPuBuK03kku61ltA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD0n965Ylvenm/N/MNv+dbKazZkGN6fD6nJF/zWg1krHwIgRAoFifu7qIJcrLH9sLGWmSak8r/1YNkOb2ei+Wg2RzE="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-205":{"name":"yarnlang","version":"0.0.0-205","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-205","dist":{"shasum":"33813294be0155f81187702e9c1c80d4e2ce24a9","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-205.tgz","integrity":"sha512-s09jydG4HAmAwnGMtkkXE3ZcoQPxARK67zQs+lwYZUCpPsSHBQkViYLAJzOeTCmS4DqYs5tTBVrILhi8lnE6Mw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD3H9mr1SajgngRobzhQSENdAIPwdLgfLga/yj+5c5mTAIhAJfAx+d0pwVEW8SJnKL9NlGXU6htpyHvf4hDVvFD6zQr"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-206":{"name":"yarnlang","version":"0.0.0-206","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-206","dist":{"shasum":"fd7e5aea03eaf1e2632850d70a19b0c2c622a985","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-206.tgz","integrity":"sha512-1YSN/rTWkzbLL/JXB8ZMwQkNiyixvFm35Omj5m/dchKYzlHsuhkyH3cmzrJtTpMlsJWNvXMIAMc/Y/Z7mx0ezw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC4SzO9dsif5pTxzzdZdcS9wmg7Jt74l3x7qzDI1fqgpQIhAMxBXyXy6lZY6FU1HHnOVkW1mNYjFsWP1yVqDEj8HM3O"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-207":{"name":"yarnlang","version":"0.0.0-207","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-207","dist":{"shasum":"2d40c1ac25306da8045c330b03596d67e5de4c9b","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-207.tgz","integrity":"sha512-2tPMC+G3KaLQ0KcRu7iLrePy8Lhyt66RVcE+B+mgu2Ut2DSOPBOiDqPN4CTKdspPkIUmuN3tQbvLOUy25Ypr5A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCgAc5xeiXmrlvu9n96o6OsKKQb6k/biybZzUhXI1LjCwIhAMkDsrQ+yVdGT3BBo6W+0PaH5CvkMld/j04MuBE3bm0U"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-208":{"name":"yarnlang","version":"0.0.0-208","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-208","dist":{"shasum":"3ef86338f3ff53aa786d8844ac1629230b32faa5","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-208.tgz","integrity":"sha512-SxZyyk1hsWxDqQLdlSUM8w8o9IpwBJ/iY8gChyhUAPuXVgj14lpdKoWEJCsxMfcKXkDGssrxPcsFgA2SlulV4g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCkICr7r0MnDMKg44+zGlkK45Jor1vmphn30CU2NLBJeAIhAO0DFWLjjhndMRWmylvZDRyqgtnoDGUSwtKA30of1rQu"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-209":{"name":"yarnlang","version":"0.0.0-209","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-209","dist":{"shasum":"0ec3dd61355e01f4d6693e95ecdff04f3f530708","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-209.tgz","integrity":"sha512-rpceb08rlyUQkdYAjl0Dv+VX229ES3w0M5ryzq0C85roETiYuDAu2fJi/K3Q+HG8x1kIAfLjpeEn+q2jbXOnKw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEFOqUI9xliyvBFCUXmn08dXkQeInak03dw8uhQSfJgvAiBn5GsdogofuPgxpRcf66UG3+DYTC0yyc94v4qHSq7mBg=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-210":{"name":"yarnlang","version":"0.0.0-210","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-210","dist":{"shasum":"32614acfff8c6edde7ca4abbd7aa0316a922c4ae","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-210.tgz","integrity":"sha512-hR3fRvc41U69bkr3yZes+9Dahc8na9FNms6kpFlPv4WL1emZg1AiuY/4KeXe8SbvJBRkfpTVvlkk0DwB1vH6GA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICfMaUyKgbYaMkLwD/xVdvs8e74AKlG0r6G/lRhCcsysAiB341dxb3fcGXKSbearZM8oUmjezsrXdFf66mGAiDUuRg=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-211":{"name":"yarnlang","version":"0.0.0-211","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-211","dist":{"shasum":"20e5e382367ab14bf78e810d47fa33352ebed84c","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-211.tgz","integrity":"sha512-xt5McHJkcl1uCrErsSdEcduZBgoFmg8YZDJ/otTAs5Kttc57YfBO0wd2WpEn8XSq89Ej6cfzCJ4R9cW0Nl49Ng==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD+hsYVMcfHwfouT8Av15LAaInPPJIFyGShm5F2YQVJoAIhAO2i1uBtie/LFZMQkDyRfUE0lpOcFk0rlnqVFKnR8ezH"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-212":{"name":"yarnlang","version":"0.0.0-212","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-212","dist":{"shasum":"2a708a2663eac151df9cf07491664e848d2b558e","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-212.tgz","integrity":"sha512-ISMG5hHREn+T1RgtGaVvCCoKdaZZyMNCgi25ESp+5WRGheQsuF+Xr3rnhNtHmw+iaG3J/g62pjZzho6RuW2+Gw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGLUSvGPa0ypHnrGrEwQpA+YqyVzwXVFsBOgPnSOOo7HAiEA+kOzJnu2OAmmu1btWONeBMiuvZqflB/5VrBdh8yDb2M="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-213":{"name":"yarnlang","version":"0.0.0-213","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-213","dist":{"shasum":"56119e1dfc5a1abd43a009760df62de19b97514f","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-213.tgz","integrity":"sha512-cj3YrfOKthlXoLdvUu1qr+KduDvvsvtYOvSAh+0DnxTWpedUFFJsMoTJ2yRaYgfiCu2/4bAIyhZJWZtNmqXYjw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGY6apEl0nvq+9AMQ4PiPsmPIYHFD7/C0QPPt7gdIUk+AiEAnB5JpiPizVdSy9c6N86qgCouaJJ3rDCFShaAJZJpLrQ="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-214":{"name":"yarnlang","version":"0.0.0-214","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-214","dist":{"shasum":"7044eaaa8ec0ed61c5e695718f581868ede7ad55","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-214.tgz","integrity":"sha512-O1vobHZQq+QuwU9ib2HJJ2lIT/2L98BhRROYCyn5yfV47T1N7uFzXBzZQXzF7WdDjFEXNv3pZJfrBsaLHiVuGg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHwFehPf8lBXK+RRy12Ygd2UJBCgGdq7GRskEpmLvs8HAiBGH3w0or7O4fr03R91F9NwhyBXI5WsLF6lvaq5d8bQVg=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-215":{"name":"yarnlang","version":"0.0.0-215","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-215","dist":{"shasum":"0a7ccaa3e497068284b9b688662bddd7f1577b08","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-215.tgz","integrity":"sha512-LiCSDZBXFwXOzb4KXdMEuRJMg2eZA8YZrIj0b6MMLcjOYT/4/+DpV7WWx7om4BR0xCByf266ZJ71V2ZfG49i8g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHue28pKa6AuvF0PrNYOVinWqyKp7OzDQtD21xXh73oKAiEA9cB5/cYqFWrZSO/+2Vfi20UcztVvkChIG3CUUHBjk5s="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-216":{"name":"yarnlang","version":"0.0.0-216","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-216","dist":{"shasum":"804044c7b3e479490dc8dcc392922548edced4ee","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-216.tgz","integrity":"sha512-n5YBNjnE8mmqwtmdc1Hqj4pUOn3pf6Ed3EdN/MiK8qd/LGRW73LBf5n+8A3J7sN/d9e+0AB9WqK+POydaMrgTg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCt+FeP6Saog38CRW+/wwf7cNP3UrBXM7TEgjM1p3Ea3wIhAOu/q86Av8VBzY0lHqR3pBQQNK6NyOvlOHoec/pfjyem"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-217":{"name":"yarnlang","version":"0.0.0-217","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-217","dist":{"shasum":"68ff56fae0f1aa8907af47771a9c238fd6f67e4b","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-217.tgz","integrity":"sha512-E9YEzWiwPPrYrn4O2Wzm6PIF2cDvJLyBZql/HZ0st8w9Hw2OwMAYNDI9I8Y1xMFrov7enZAebNDobMpwM6v29Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC0Zet3/gDw+y6bWxFC+t3lw3G3DVAK2TlQcKCBSC9PZAIgUoNzGzHiAWKw77OB/jV7gsjokqt9HBRYN83v5159ljo="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-218":{"name":"yarnlang","version":"0.0.0-218","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-218","dist":{"shasum":"e3590b7572456fecd937507b8d7c32e4a1f87ec4","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-218.tgz","integrity":"sha512-SeIgq31RPwpPtRXndgiekiMCz3huiKuuhS+LTCPIAeE4YaNXp+YKRAiZt8QlZY1BkbwMUnB1ihelfPBRpuOasA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG9JP1BucSDiF6Q/XFkoZgAMfwUZqvdlpAdYfSr6CvAvAiA5WcUg8C/zx5DEBfSqpd4TNr1L0okHJoIeQXtq6s96KQ=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-219":{"name":"yarnlang","version":"0.0.0-219","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-219","dist":{"shasum":"dac181d25177ab69ccdd788271d19b5d53495719","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-219.tgz","integrity":"sha512-F2iig66suIOH4A+nORfFgKMdoja63uDfEkpEyJFd3FIEtXC/iZ+XXkx8vnrNZR0geD7m/TnuDvwVzoLnVjGzxA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC2etXnDWLG9t1I2cn7pQPoJyqF2hpGkS//mMTYz/vkPAIgZ5EvK0wMTpcBjjQ8D3yfHM/LQP9S25xx//irH524UfM="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-220":{"name":"yarnlang","version":"0.0.0-220","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-220","dist":{"shasum":"2c1fa28d7ef1f90d16abb9b7428bdc307757feff","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-220.tgz","integrity":"sha512-aHJ7DTt2FWajeRw6w0YVs6Yfvg/nsOfoprkuYcCFSHiuD9il4M2Gj/opK7mxsmNGSnW+Lx4nyenhtuX7yogPTg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA20TMih3ktfpy4P3A0mdKSbAn0SzNUY/GPJDZ0y47TmAiBmOPSxiK+b/BeHO47qgBjUzTXcAjjFZXI1n0SWZDf6bQ=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-222":{"name":"yarnlang","version":"0.0.0-222","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-222","dist":{"shasum":"8074b1154ab29dc9a8aa5d853c7521fc4430a5d4","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-222.tgz","integrity":"sha512-kY6NNftaM1MI1F9sf531R8LGxCqR2UcDWDbUmCsIqhuDCmVd/UI+Nm6QV5lhH+MNY+WZ4B2Hj+wfjAVSPtk5mA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD+z+nXukpbmltNVwE8UPdOuc6Br+SORMZERwzC6h3eFQIgK6mCjRRBzWmi0MJosl8+j0DsnpiL1CNMmJxo5HjH2+8="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-223":{"name":"yarnlang","version":"0.0.0-223","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-223","dist":{"shasum":"8444f8a5f9cec85fc4f52c23ce8f046f79c9b8ec","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-223.tgz","integrity":"sha512-59NseL4FKO77qG7JsVg/bc/kkjHdhRSMWztKzwhy3+X3DUWuEuUYHLUO2vf9Y3IbyqZYa7PmLo7a1YCV9gxqAw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBEOvNINEw1F+Ok96827AvBAp1thrh8LUUdkAZmUXoTXAiEApWdPvp7Avvdbfp1GPtV87jb3ePVPom9pccXM7qoCMOY="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-224":{"name":"yarnlang","version":"0.0.0-224","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-224","dist":{"shasum":"edb7ef10b163ea6182ae9d1a76114dfcd481028b","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-224.tgz","integrity":"sha512-/bSaNDVjqK5n2/fFiUA5A5ux2aqnTN31v0qmw4NeeKGkzad800VzS8Ji/5NaorRCGYWRdRuGNOowRhNMftUpCg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCdaJTx3ltMoqPZMhrVJSVBerh3C6WOtdcrKIG4MIvtvwIgbMfljqdx0MYuE1OH8cb+H3tF1AoeiVK3yhg4JKdx1IU="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-225":{"name":"yarnlang","version":"0.0.0-225","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-225","dist":{"shasum":"67cfa12207d6599ae8bacff8c0ec7a6cf9f053fb","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-225.tgz","integrity":"sha512-O515Yn3S9RsOU3inqbzviuKUYLqiCjj4QEMnDXMZA6skeyq+7aPaRz1ZoynU1n3l2i62GGym+sWlaBgCbMZaQw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAzFV2S/4L11bsK55RsbewP2vXNqGchMtj2o6shOsNz6AiEAxw3b455ZrOdnE5xbi9kxNo9qK5XdxLs43smGz9uAlzA="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-226":{"name":"yarnlang","version":"0.0.0-226","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-226","dist":{"shasum":"003cad5eb3e3a5dc9efaac7658ad0e608c573854","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-226.tgz","integrity":"sha512-8ZVPp+9A3g2sMm++F6TEZu55WdZFSPsfMK0RFloM2JW8JCMXnS3tuiXQlu10npGrv2KTo2VXQIzjKJwDUQaMWg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD7+HDt2+hxgo5GPJ8qTJeWsHFUhKd1C8EEwruFcGNzUQIgRbHe8t4qO/utsTLQrTj/oB4r+0iYzSSEjIj4zt8+XUg="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-227":{"name":"yarnlang","version":"0.0.0-227","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-227","dist":{"shasum":"74a561710faefb22aa30cb72951ba41415667502","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-227.tgz","integrity":"sha512-2+Ssfao7Vn4dffDhcoT+mlldvyvZx0OmyTImmVyrO+VPYHJaWKNAY8CRPOEZ1T014rnAxx/lMfmuAbRVSS00yg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCt4do6Mz6Ua/kkxAkkX2OgXdLAGrzzixL5Mbbl331ZKgIgNnPdPIbjfwg+0KCkFjFLL/ZkXozzet/LkimCDBcfPKw="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-228":{"name":"yarnlang","version":"0.0.0-228","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-228","dist":{"shasum":"9bac4857b687455324651154e424c6a12dc634b0","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-228.tgz","integrity":"sha512-XhfGrAGR47DN9om9KuQ8pxMTmPmT2wuKUBeo8aFbyep9Vb9CA3K8eYsYw/IQOQDveOWHb0hs1T8g2q9qorwgPg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCS9NvgAWc2gcTMS2szyjEyNBUiGMcAmJoCUuLkl8kLewIgRLBQlNtWc6PaG+TJTWPXC0OiXDw3zRRX35mlCa8AiKM="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-229":{"name":"yarnlang","version":"0.0.0-229","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-229","dist":{"shasum":"91d3e0c89a49803b0e073e719cd50e28851727a6","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-229.tgz","integrity":"sha512-GiHYbszwTrR5tbqT3qalp9Bfcq6oKHy5XlqfxGHUKmTblQoqCaN/rsgJoeJA+uMhPRPRI07Z6HLn2gNCD49hMw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDYy3/tCuhG0e91QnPdznwG17xN2sJrZYfWOfHjz+VCZAIgRjV0oRtCRB129iBBAwq0Txn1AsjkDiCWyT1pBS6FcoE="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-230":{"name":"yarnlang","version":"0.0.0-230","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-230","dist":{"shasum":"02f842d501ba5e3513782c64836e0c958fc9dcaa","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-230.tgz","integrity":"sha512-fxh5tZMiXj3+jpLVIJ1/k+PwMR5y9xjAFK/jvwYnZcxWcfyFSt1lD/SSqcEZjOkVCT9bvUF6Nn0HFBfVyscexg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDjSAyJjiLFRRwFCBFr0aYBGjdnCp4ZFZSWUdgaTNqjAgIhAJWaYVIGOr2zT51u3YOoHSuP0b0VgjEzpsIudwpSijZ+"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-231":{"name":"yarnlang","version":"0.0.0-231","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-231","dist":{"shasum":"de23c05574e1aa5a0ae1c3ba59d9704551285a1e","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-231.tgz","integrity":"sha512-4A0bdk838ozssfsRfyp2vsdwA3uaA460vGNGl4Du0AEjE36T3gKbOCniR2wdkLcohnqHIzuah4MT9Hilza7dJw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCYU47+pr4vBgNcWQu/l8nUuvonTpVqZdJ3wJXicxZv3wIgSvsNNBxrjk6FM5UZhF2uYsDbTHhJSA/Hlp44NZA2wQY="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-232":{"name":"yarnlang","version":"0.0.0-232","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-232","dist":{"shasum":"5c16f22fc7fef36b1e30c1108f4fe1d594be346e","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-232.tgz","integrity":"sha512-mDvgn2//tySqHQXStr1bq232CMSDEmu70Hufi/CMoBsXLUy/8B+X5iGMEduySxUK4MZu0ytx82wjHT+pn8hKCg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDtQINW4MINb5Xv87jxVqPh1bo0PKm5kOpPAPMwAvkSBQIhAPjZLkSacv5rWvFb1NecsVucibn3B8Gkhrkf/TeVdQlx"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-233":{"name":"yarnlang","version":"0.0.0-233","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-233","dist":{"shasum":"1122f392a87c4225b633c7e31c613ce799218d60","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-233.tgz","integrity":"sha512-hfbHpkWbp1jbnuZ4mVY8xHMlEoKAMNwi3yQjnyLyMlM+7GIplbHlaiNz8yMitoly0VfIwzWmfVLoCzYjA6TLzw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGc4KWLgPKU8tsd869Hnly3eJqHkLREgSx0jp5RRUN6eAiEA1Db+djQ7m2arytQktsSfoRmUR/XEXCZKNnrcEPV273I="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-234":{"name":"yarnlang","version":"0.0.0-234","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-234","dist":{"shasum":"77ee8dab6c6f8086c2ec6f618dce376da8e235b7","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-234.tgz","integrity":"sha512-oas18QjOEcq+JSosly+FqkTyod/6XMgNuNcMuNKHqUunSQmW521TQytnZCQQ6m34d4XDUWNNRN9vqS0yVNVN4w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCb95NKUVozEHb0JRm1sNODlVvahrj68txsCVxNT+7RPgIgTtJSgTrpGoxkkdAargB760Qn1/I5o9N+9H18TS62EqU="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.0.0-235":{"name":"yarnlang","version":"0.0.0-235","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.0.0-235","dist":{"shasum":"3ee9b576d10287d86f25d287016780b59cbf8b64","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.0.0-235.tgz","integrity":"sha512-AAOVTqcjciF+LSyi1CW0Dd3T9761z6QUa6MYHnRewqvhvcOAfky/rGGa1JYQT8g1mU95Dh0jxetSt1JN4EJc+w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCkmCw1xm2XXxkX1hTeSLQFZVoleM2ryIz5L/s4ma7SXgIgcy4M7gIaEYsE0PlxF9Gh4kBoGgx5TNpL/g3gZUS/NQg="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-0":{"name":"yarnlang","version":"0.1.0-0","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-0","dist":{"shasum":"704e5583bde5d93cd80449952566db151eaab70e","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-0.tgz","integrity":"sha512-XbCoAL1J0418gas+5cWKbLa589AhAVrt0nBNcuHMtlPNAfQ4EDzCIq3Tc6Ea18f4SI9qx0rhbEY/qgeuK/JVNA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDWyby/xmpqtS6lKnJwqrVb3POgQ1gjCzCgTVp9uHQ6qwIgdwXSGoky/kvmIyJDTqtEELz5Bw6ajLVP4cmp2EAKhTA="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-1":{"name":"yarnlang","version":"0.1.0-1","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-1","dist":{"shasum":"84106a9687b90ff36c6a86e44e94c23e04965be6","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-1.tgz","integrity":"sha512-rAQNc/3gWW2HDVM/S2TmvW0oQhtdM7BQIRvRHzfSMwoXCRByxyl74aTgBpdI2mr0tAGtQaudBVdPahap5UV3Eg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDP6V9Mf5JMM62IB/3jPmhkdUl8vpCFLs30hC0ydPVVpgIgbbvYQE+1B+FzPVWsAowP9xKLWdv94X5I4Dql0slFsG8="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-2":{"name":"yarnlang","version":"0.1.0-2","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-2","dist":{"shasum":"3a59e7759150f3a2e5c03c780e1bd2d5ab6b3300","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-2.tgz","integrity":"sha512-wmWkzw4iF0AgnQK7KPXQDrmMFoF4jPjTl76sze5NxQ41+pbjHL8AnNYT6SpZ0jptjmpojHF3wK61SvDCpvzN2Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBdg/hOIeFdktM2CEiFbZGPjAGVaPRJ+2q2DTU/rXDRtAiEAjHLMxvzV0TBYrolP1hP+Uz0SpoNT62HRYFGpB/ufGUw="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-3":{"name":"yarnlang","version":"0.1.0-3","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-3","dist":{"shasum":"38437192a21b76f2616b261ad22c58690a092da0","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-3.tgz","integrity":"sha512-TN+d1uvOjUegxW9oDu4kCwlv+qvVQrdOQBe4p/T4+jtr1qKurL+1eSeMIjj/mm58pSoxQvLw/iTdSQ3x7C2iHw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDmHam4xM7Juz1jMwNW918rMe6qM/BG2Lbu9aUXrmhQsAIhAKnH7tlbnMgm1UnVH9ZZdnnVeYLqZ5N5VjurXM3caf5o"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-4":{"name":"yarnlang","version":"0.1.0-4","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-4","dist":{"shasum":"b23969081bdd8c04c35e5970c765fa51450ea25b","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-4.tgz","integrity":"sha512-cRn9WlcMS7fxVZIJk3F8CqveyNwT7wWYgBYGmQgWt9EOm2QMf7r635J1c7UcmkOAiI8M0k7qgQclei/CftDadg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCV9W5DAwGv3VDGXTl0ku5vKogpkZhLh3OFc2RSnxpX3QIgR1awmTz7NZ7Gjh5mzplRQb0jp310pIap0ZFaB6SYgbs="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-5":{"name":"yarnlang","version":"0.1.0-5","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-5","dist":{"shasum":"f16f852f37be2eb32f084e004dc5cd7524395b2d","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-5.tgz","integrity":"sha512-EUWAlmHyOuWkqJmmzwQS1YkCOA0NTnM2+qtTzywDHyTkhHRANYZKCX287a0Y61OLTBm2rKWgLtuWAjCFtfToeg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCgv7i8ZtCmSmZuwiLnv2nUkk9NB6/xGU8jwD2jwhhhPAIgU5T/35zxdjfebGjqpvirQjSsrb320fMdLjl6920SN/4="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-6":{"name":"yarnlang","version":"0.1.0-6","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-6","dist":{"shasum":"6524ac02b20819be64e788bd07317c16ef2033c0","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-6.tgz","integrity":"sha512-RsQMW4BGXhla6iSB30F3zM8GTBcVkInxyMpjiUR3n8NO/QEN3raGsewfyJJnhosY1I1vMfaW/CEumVqDS+7qGA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDrymVhe8OD2x2H2re7gIaALWGiaB4Lv/Wptl2iclCjlwIgVw6v3LW+JzqUJnOmc8nY41UUdJ2wqjUyC4VtYamQtO0="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-7":{"name":"yarnlang","version":"0.1.0-7","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-7","dist":{"shasum":"f96843bad5a04b879fc936492efc02d0ddd0f4c6","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-7.tgz","integrity":"sha512-jFZnTZWQWCIkSFgINw9yBUV7VNAjgdLXnUZk8XW47x4iLJMwq88t8O1H3yszkz2DRCkXHz3qdrPzSnas8dcKaQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEWTZx1axbTgjTPrethPFHXsdOH0w+QeRESkEaMN3zRQAiEA79nb8dcsHe/4zRYF9Cxh3M5dIAWucndbXMswZP+mptY="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-8":{"name":"yarnlang","version":"0.1.0-8","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-8","dist":{"shasum":"fcbf7747190c0c19d48279b50c4476f8997641d8","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-8.tgz","integrity":"sha512-QkhlbnXVG5ADi+K08LzD25POdrH4cuB3M63lQaBYsU5YVbrjfyvbowM0ffmJCgKk9G+D/Ykbk6vZzxyKRSc/rQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID0VPxPyv0q0aDrqPNFtjwALHSCDXYd9ZIPLYdILnTtlAiEA5hk1Z5HAZf0HxSFQJCWsYHWLKLliAn3X1tuN3wtXOkA="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-9":{"name":"yarnlang","version":"0.1.0-9","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-9","dist":{"shasum":"d6c35d7b1daf28c8a3959b021a96e09d552069f0","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-9.tgz","integrity":"sha512-RmhV+IRssucVXF+6K1fUM2IWZeF09sTRs9VIB7zh6qe3YHc1+luAk1vNc7eJS/HoHptBFbSxcHk2pCTme6KWSQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE2d9wycaFt/YsbCw9zeV06VqL3/ed4yC1OWnOLKraWNAiEAtMH+nxfhiQ5UhZdTZIpSY5z00qg4fs84XVDyLnsuZzc="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-10":{"name":"yarnlang","version":"0.1.0-10","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-10","dist":{"shasum":"d7471d2cce1589fa68d47f34b387059bc1e0155a","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-10.tgz","integrity":"sha512-E71yaq+qzplgag+gG7JkGBLMYFB2v60KuHEy3jYhz+tEK6G74Js5shySAZeJcsHk3hYohH/0i32aYEHgWBux5A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCR7L8VDt20WEOY825kzAd679dtYHvBJdvWx3UhVyfo+QIgIFCLwE2B9BVBKqn29wAjrABeuPAEv9wOIgnI2UQOK5A="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-11":{"name":"yarnlang","version":"0.1.0-11","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-11","dist":{"shasum":"817ce36af021ab804d0fa8aa1494caeae36ee19d","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-11.tgz","integrity":"sha512-vqoplTOq3OQrLyq4xRJTXBPyf5NSTjWcbFjNAIKTGPRrg+nKMrOLk8wNuaRfD8xOAm8e1jEJ/mvKLt3FaqMTzg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCetSXtzkPxCRoX6hlVxX9NxTU5U425HM2SlJDxhhBHPAIhALauLorGubbYEKEoiN0JEUNfSl28s+oGcMx3sbxB5z0X"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-12":{"name":"yarnlang","version":"0.1.0-12","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-12","dist":{"shasum":"722e52b78bbce0eaabc0317d34ca4b91b991231d","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-12.tgz","integrity":"sha512-coUHwdwa3EFDBRb9tlz1JCl3xwP/EIuy6U//HX4fx4IuMpqtFu0mUcS3yh4OhBisJYY58yDW4HXrB05xWlv2mw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGqWpkUuuiC66XXb5XaQBiirVatqfqKTRZIxsmikw8+tAiB9hzD544BpCv8L0MDi37p0eZJI/Qfp1RjPjRYJFqJqDA=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-13":{"name":"yarnlang","version":"0.1.0-13","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-13","dist":{"shasum":"ef1c8a40e1238370260ebea8c0d06412a7bd8168","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-13.tgz","integrity":"sha512-yFlHhDURilJeI3y83u59zHamuIhEBwO0fWlVh81jQschzO3Ooe3fqsKZKTI8MYomn6eeqPcXPqALG1+2Bk8pfQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDVNbBUWbqFJ+VHhmYTmUKKrGIwocROp410mZ7FDlq5bwIgbaVPOPtnb5xotNy/aXB2xHe8rgLzDJdWYgkm0pfnVbM="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-14":{"name":"yarnlang","version":"0.1.0-14","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-14","dist":{"shasum":"a3de6ab0000bdd6831345d26a0147cd555a80838","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-14.tgz","integrity":"sha512-jsc0kXz0ONKJ3vdsFIycg3iJIOcj1LauMJ9QrKSsKimkEPTQWD4UWdnbTgWNqBXIA0FaUjtDAXlddm1KHjASog==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHY3be0YOREw8BOnPg5OK/wMUZOUynq3JwbZrRl7XZMAAiAyJQSdOvM5Vk/OHhnBHsoEb0mmT8NmEk8RBnyJv54q7g=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-15":{"name":"yarnlang","version":"0.1.0-15","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-15","dist":{"shasum":"3bb28f5fa9d8857ceb7618e6c199215627be2e39","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-15.tgz","integrity":"sha512-7A0UoK2NOMuNT5gSF3jhou+7lOHrS+hCcWepRymA8dMypZ/xJQijtehucvWWi8wdtO3qbbUtCBZ7NJaeb64oDw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGKn12q+zX7RyHRTA8veDr3d/Rsn/5Aj8WhskMl52/8GAiBTeqjO9g6uRtMeIfu1lOpEPpBLBGbtlEeyt+3woL+R2w=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-16":{"name":"yarnlang","version":"0.1.0-16","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-16","dist":{"shasum":"58aaf0b731fb0378234493ef8f44d9d2cb9be0c1","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-16.tgz","integrity":"sha512-mIEt02C1gm+LGT55ig9UYrYBxgjlD06P1/lELHYU7/3n+smnE2oHmJcFM1Va9yqvc24FPpaw+QtPgqcvPWXcIQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB2XGrXc2tB4NByY+UddnshAYTDAzIIhwPDuM8r4FYkcAiEA4O9FANyVmKaL3lwH7J8TPusyLzrqcUT27Mt3f38i3xo="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-17":{"name":"yarnlang","version":"0.1.0-17","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-17","dist":{"shasum":"3e8b755de038b3cebc4ad86ec49d479419ae76b9","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-17.tgz","integrity":"sha512-ImaaF7KYRPg4zk6OC4NrIE41u7XLaWTQIvsqI0Vpz4BkVFpr/3g6qxx8Z5L4VK+BMbVkyL+DB5jCo2iXwCC7ug==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQClB3dm0iIjD80V2sAFMIUnXSBzxu6AbQkWtKnPbims+QIgDXLE4uV2YYVZLVesj0elD+XIRKl1XPZ6jnl3QbNQim8="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-18":{"name":"yarnlang","version":"0.1.0-18","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-18","dist":{"shasum":"d8aaa4d88f7afaacef6931a89984427a1e6ce3d2","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-18.tgz","integrity":"sha512-u+BZYvB4dJo3VmUg3UAJPU8ORE7wgr/+WoF/wgjArjvWKArL0ethgqYEbLa1lk56TQUb0SyHVwVtQZo8aGSv/g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDmVAo/v5UPE+qEz/r+ef4AdrkvAKCUgiY1HPMlgIzJUAiBNoKU2Q0UHeawNbyOkVX5XQzf7LHsudiWceSg5xszYLw=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-19":{"name":"yarnlang","version":"0.1.0-19","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-19","dist":{"shasum":"41411c3b35974052ef8a17707912fde1425fd460","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-19.tgz","integrity":"sha512-MjVtB6R+quDKvLwd1jQV1xftpeBfKdTgjM61io5z4s4ysqauj2IGK0wndFEhpqmlZRumKqhLlQnuRaFOGC66iw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB1KU1G/hYe89CreHfVOVw3DUm3YVdyfxtZ1tp1ETGNlAiEA9RC1hQ3witwwE2EYSwLUUKUImq7rYgUPAUuYF1iBQ6Q="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-20":{"name":"yarnlang","version":"0.1.0-20","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-20","dist":{"shasum":"b34c98076b7fbce5af8f371cd4b0d6dc21d9d5a7","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-20.tgz","integrity":"sha512-YYqk1DxL/rBWglWTV3SSTE4WSfC2SF7NoYDxgDJjgCdXYunLR6Bk8XSMpbJvWLXk2+kNAYZ+sDwIk7vC7vNbSg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCcP4Yp5EcOj5zviVZc6I2sPtd7zf+YI4lLj0NUNjhD8QIgGK7MWoayu9E3HbfPpu5C1vv2Bh/Hq9vGP/y9v28Ie00="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-21":{"name":"yarnlang","version":"0.1.0-21","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-21","dist":{"shasum":"6cdb210b76ca8f602a7761620d020736e9ae5c39","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-21.tgz","integrity":"sha512-6jgZxXi1H/hkRt0bqEsHr2pTy10UQIvWzuFcW/uzaqbijhe8QU9QNrQjsKi840wjW2e3QVTAHQu6ngXWfovk3g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICvZ+vZqTLHBBK02l0/veHw4gQcBguyUz8kL84Xv9cfAAiAaNJ7ENH3squL6yyIkOxQwEdea5uCCYhN8oboSv+ucvw=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-22":{"name":"yarnlang","version":"0.1.0-22","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-22","dist":{"shasum":"26a651216b1f54a6da359c9166b06d388e5dd57d","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-22.tgz","integrity":"sha512-SPFnvG0KjRe6Bk+ZVJFI9ZXkONhOVDEIyczs8XoV5kGG1/QgjJZOLDhvYbHPbDCyJuh+PMqlDGV0W8SXA0y5Eg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDXow4+MU+F8mDNhiJ5RDlL6K02mNUuvz+iDqIsAeRCFAIhAKUJzPx7XCpPKGIkMq9uDESg2o5vHjVXP1n2DcJpiaRL"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-23":{"name":"yarnlang","version":"0.1.0-23","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-23","dist":{"shasum":"ceb4bda993ec1c3004864055f53d6b92d04a171b","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-23.tgz","integrity":"sha512-tuiQp2OK2mUgD44t6go+gUFU6HMMQo+tzLMoWR5GyOg3TuiP3PgjXMZoWwBzQd8tU/boSOtTvZWiBp7scgGXOQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC0EZZBe0bWFdwHI9MorjBWeVS7DY3iOGAmCXajR+UqGQIgfuQEIgT4DmgSpsFv6KZkF1HOCjEVbYwfylHB1QaqjYc="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-24":{"name":"yarnlang","version":"0.1.0-24","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-24","dist":{"shasum":"6dfd0633168e54b433ac734faedd4f1609266110","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-24.tgz","integrity":"sha512-ZxENTQ9HllB3axAJI3ilE7ef/ViwTWkYCX0iR6A7GJ2Gseh6+24f6hPkNoZHqVn9WPymkqz05AAk8ZN4hRKZkA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDjun97kxA9HccBRXLf/m09OWgwV+UiEDYQDrwkjfyLVAIgaMipxhxg4tx72MUc3u15SpOjg36/aa7g96A2kLhzKbc="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-25":{"name":"yarnlang","version":"0.1.0-25","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-25","dist":{"shasum":"ba4f3479c28986d0066ebcb9137fd80718580c56","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-25.tgz","integrity":"sha512-vWU8F8BoyqCRdNz3Dt2HVGFskN361GQUpfyOa5fU+TnGlDfs2HLb3K5bRZFP9/evKtvgC68zb9h1u2DXUD63cA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICYKD6MAq8qsTDi0O2YfQ4D6uxICBjsoGfz4AaTkghZ6AiEAvJMT7Pqh7rAqys9CZW+/XZR6cmz5xxSH1iqXMukTiXU="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-26":{"name":"yarnlang","version":"0.1.0-26","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-26","dist":{"shasum":"fbda837ae4fd8af7727fb042fd078dd1e4ea7cdf","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-26.tgz","integrity":"sha512-hVdtPuNBRzchGuHp6tKdzVhO2e9iDQPYSzUV+nlL9XI1a7PNLww/FoDypAxPXN5JkbI1Cm8+2y6JbWW5Mg6hvA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDogCbwLb6xPqJOmCcztL+vgahidfj3L3r27Hdngy0x0QIgMAhjTtUM5VK3+S1L4hRjz57UAfmqpNEWaFMNvt/4x0s="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-27":{"name":"yarnlang","version":"0.1.0-27","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-27","dist":{"shasum":"252cafe1e261f18bf5c2b835e5b56303341f415d","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-27.tgz","integrity":"sha512-QX4Axqz2wJfxxxAc/T5ORQiuKgcJ4iQgz1dykvqA6S3TWnA+4rwuBn8KRSKclznTsZ6+w31A/vNua6oSlWSfaw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGIDb4RHV56drdE4s9pelFIfkbVLrJs9xTpz/t6cxRItAiBSTbTliPRZMLyRbPPfB/54lyQCZhKiy6PS8K11y1uSlA=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-28":{"name":"yarnlang","version":"0.1.0-28","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-28","dist":{"shasum":"b54a54430313b06ede6466cef8cea505f8f2d5e8","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-28.tgz","integrity":"sha512-6DP6j+yl7u9V6Nwmi2nlKjS/7YCIQVdpIfW+iOl3Mg8d0IMjnf2GL7QuneHeRUcm/RkNH5hiz+O1YhFZE8xVXw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDyPGucorPGy3QdrxonNMDoHsAba9jPuo98MR68zT5LNwIgAtm72pYExu0dSdDteBscLyL/a8fhgj2E1AuMRVxcwYc="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-29":{"name":"yarnlang","version":"0.1.0-29","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-29","dist":{"shasum":"18307e9047b0852f1d3c744d64e40b67b569f94f","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-29.tgz","integrity":"sha512-1WZg/Esn8mXjmbtLUyFt7hUAmm9+UW29YPZVTPNUbGWGfpfD6C7uY5s6SmUyqlgAJONZDp1d3h8xXR0zYWEusg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCgxOY8JtdPHejKv2627PjjE/Vi1gTp0sTHSs5JveDJogIgRO7xqrrYK1HFSI408HFG6voKWx/m5xQk7jDmpPElbMo="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-30":{"name":"yarnlang","version":"0.1.0-30","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-30","dist":{"shasum":"12ee1a5c41530addc5ef68b2a7c3c898b49922d9","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-30.tgz","integrity":"sha512-OuG0H2THzvsuXFoaqe7df20Rjgw4RUAQ5TvKdqX0ZWY36OwKXTPctpAJEWXQJe2S4vaUnYwO/ujEFDDKl9CZCw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDRTJRY5txEH9y1/FUuAqE4E02WxZ+3jDT4F5vjRNKIfwIgRatsEcdRMD93PxehvNzFhCG2RyiPuUD0FXjWcHpBIqU="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-31":{"name":"yarnlang","version":"0.1.0-31","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-31","dist":{"shasum":"38a3bcdd5cede291a29484acb34e2a380988004d","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-31.tgz","integrity":"sha512-y+cZMfkKx7XcsYyDY5SuR8Ad7O7kwKn2LcVPL5mH7tSfUYFk6ZQ4nu8WOWWskaukWnGjLnGg7/b9kTLnzlX0Xg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBwTqLvO4MCaP9dhRHHG+8Dk+f2pCCai8VQ1isl6a7JaAiBNNWEBhU1np/d2xGKYbeCz2XYY0Rg74YHDxDTDtWRFkg=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-32":{"name":"yarnlang","version":"0.1.0-32","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-32","dist":{"shasum":"e4c3b8330ee9fb12b4a13df1fc754ba610336ccc","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-32.tgz","integrity":"sha512-GE0pS2qd+UKWc025QSwU7R1EY9tlJ7BULqmr+WjdsVdbQ3N0czqbt8Y4lrswoM+lUeg1fQ5QRuAMFRB1LfyVkw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBRfYWIflgBstoeaC6phbFNhnhuO3ElC8tlDkruDd0hSAiEA8WDHkVak1de3BC00ITZoC5nser84zOxBLyBUt239gIs="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-33":{"name":"yarnlang","version":"0.1.0-33","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-33","dist":{"shasum":"95f79bb4c3efc0444fee1424614eafa095c9ddfc","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-33.tgz","integrity":"sha512-ZwWRgNrQgSpy1WyPhZoHoBKC90H8MmheJrXhi4eVSSDpAcv/dJCiXqJ1lixkoHeezCe1PMooZ2UQFThXQ90E7A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEG9Y4jtQjBTU1lhrErfYaltQmLVzNZF8SLmW9xwwFhcAiEAvzT5ocHe2U+lJP9cFLN/UjHn8rLN1k/apzvMmtSue2s="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-34":{"name":"yarnlang","version":"0.1.0-34","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-34","dist":{"shasum":"fd9b57381ccd71440808e04a37728c9455e7999b","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-34.tgz","integrity":"sha512-2c8yNXFHOfNBLN2Deolkxcm0KNQ33GvnJW8j6LQPpQW7oinH7XdxmRZeIj5vHSPmvVn/pJgFGeNzkihPHMXliA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCfbKHA6J/T00u89FA6EFY2Ek3qyMYhbvJSVCV1exZKNwIhAMK33zJf6VI9bOPXJad+CPuTqO55DgPPdPu9RlQswJrL"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-35":{"name":"yarnlang","version":"0.1.0-35","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-35","dist":{"shasum":"2e81b1bb4b8d1e75c0b6d70cc5d71d8c33e4fc05","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-35.tgz","integrity":"sha512-9WxCReHpFeN7c1o5uwzIGC4d3hfiTYMkRWgLq1GyR1JaZNu2jkyjbA7x55ZVKcmxEcx1lHj6GZtqU+eY7RZUyA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDlYR8zJOiv3b6GK6IqBgDWj4VHPKuDzCjGbWTNYb3TFgIgK9fwh8Pib1OL13k3yPEFLv7RkNu3ZmzAinW50NLjlBg="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-36":{"name":"yarnlang","version":"0.1.0-36","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-36","dist":{"shasum":"8b74d83f6f87cbcc1432c8b461bd91d7f16c757a","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-36.tgz","integrity":"sha512-ezZWdqPPPHY24UUVNR9JN59FWG1td8ZsEMV4k48N+zv4ifiaAeSu0K3Ye3Pb6HOjgzS8Wwp0HsffTsJILzOhHQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICLYgVo1zIv4m7dUFNBFKIRQ2bhxaIgaEwVPGAHxn8XNAiEAqlQ8maBOUw3PJV4A9I9gRurR110R9T0qpwk7FUJA+5s="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-37":{"name":"yarnlang","version":"0.1.0-37","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-37","dist":{"shasum":"d36963b212b78875ff7ea28acb8a21b4ce22e5eb","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-37.tgz","integrity":"sha512-KYvJ1TuQw8ZfXoUF4ZRdXbefQ6+YnzYb1DBESNzjjkvIHg1YWcckFloksACPKncQ5lxpf5YkfxapEm28G4HD3A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDrcuIaXtfTXkxODdsPnKnEnLmv+LllVw12JoJWPTn0oAIhAOUMoM4FhGFKcIbzY82E3nAvO7aMDS01NH36Ocd2PcGN"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-38":{"name":"yarnlang","version":"0.1.0-38","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-38","dist":{"shasum":"ded2f5f17ed4ad92d371b4ad066e422743f5bea6","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-38.tgz","integrity":"sha512-kyu41I3LmN7ekrvg9FMTpc1rDsdw90UXh9Ut9TP9+LXp/2cBQOYXV7jF0PimCfC7tu40TvpWE82rVLkYBGv7lg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAqNpiF2RUSSwunVJ5XT12tmOydpjtxD8FNWGVWTqm/2AiEA7mV1D6e9aRvG/L0KQaurj1lDj5gXbVN3BLmuMzNj7LI="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-39":{"name":"yarnlang","version":"0.1.0-39","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-39","dist":{"shasum":"4d442ef91ef4a3dcb201b26109627169cfde72af","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-39.tgz","integrity":"sha512-OAezeUzcIDZ1ZhFcNlZcwXeZDpA1EodOH+RSAYmtsn+FM1I/CjSxnO6RtBJzg4SBIg1QTVDwmvPm+Bp/1DdP7w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCwaoC2cQPJghlzGgiVruWew2NmRH+LzKpPFFCB9vrlkQIhAPY4xkratdGra4cQVbFu8STud/67q6SZh8E8fM6VVyqk"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-40":{"name":"yarnlang","version":"0.1.0-40","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-40","dist":{"shasum":"00dc5414a183dd60c44b781b44fccd4a8ed5336b","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-40.tgz","integrity":"sha512-Q42KdYvgkvvowdcQNR1iVvMRwyS9w4mWSpNGWNzFAExyayN3G/j+teCzrwdscEXYsETfNJBuc99gjMmn4z4YRQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDqdyhyjGea0bja9AJn+ofz1dBvVJe9cNVgZMshsW2NRgIhAMvxkXN40rG0NAVFk8CsFnQLFOWIf0RUWzIiDR790D2L"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-41":{"name":"yarnlang","version":"0.1.0-41","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-41","dist":{"shasum":"cfd002cbcc5250e82716041e8c785924102f41c5","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-41.tgz","integrity":"sha512-pdFuQdI4KaXpkoNGZkcLSUdya6+UenqLI5QgjkUFccy/wRRoBRajTpWhABJrLvW5p5sx8HwQ8pY7sOzvXekyhw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHSa5fiLDurdlLTgRVR2u9gPTfYA1/+ua2Gcn01FWTuCAiBwtCrr1MPL4+vQik76IwpIRsz+0lSxinPibsPqjfwfIA=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-42":{"name":"yarnlang","version":"0.1.0-42","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-42","dist":{"shasum":"6cf0796c346f16b1f74f37738ce1955d7fe72209","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-42.tgz","integrity":"sha512-6iYtwxgU1L8YVEDBNenUz6Jg5JnhJIZANdMEv06FAL3dCSlVebr+UVVC4eBAxVt9vFzxdt4m7zDe3WA5IPuKXA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDUXKy4vEhaF49i3aZGyVuVaMUxnUUvkDXqjfT71U+EQAiAxnMf901jKbP0c0nUsDHA58FB4SOAZCmZSEeVYH7bfpQ=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-43":{"name":"yarnlang","version":"0.1.0-43","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-43","dist":{"shasum":"a633edb6c252f1405b938734004403ec365639a7","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-43.tgz","integrity":"sha512-OY/M2D0Q3nZ6orcGEeruNYdVl6vF1xNdpwkPk0RAOzZ4SzqJgoWFOmauv/31MaR4qozQWq0m27j5JFJLdVKrFw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAgEgPm5jk8T8DqW5LDNlOpcCl1eAOHeYurTQOmNGhUtAiBKQXmiI6grQwbvVRqQWVzj1YaX2OwgBjq7bvo3U85E/w=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-44":{"name":"yarnlang","version":"0.1.0-44","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-44","dist":{"shasum":"34d12e14c940fca8b4c355c82717d8530e2d75a5","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-44.tgz","integrity":"sha512-b5RTYFor5osb5le53TtMbTrAtqxKSa7nGcyzX4TxeWKU/UWC+93/zgoZMTNtg2FPsmuHLnKoZPkVcgVht7lc7g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDx+mCy1y94LIosSyQnpEgrHf8uyh97UuYTn3n1aldqWQIgR9kznTZCyccr2FyK/OwosuMehsaT0k11s1DG2nem5Cw="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-45":{"name":"yarnlang","version":"0.1.0-45","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-45","dist":{"shasum":"7f1e1be18c97d81002cc583c7cdbd1702403aaf5","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-45.tgz","integrity":"sha512-db7G+CEODEkfQB5+VEAij1TL9JCZoqryrclFS5suWAl2Jhn6D6e9Z0Eyvfo9tEAGzIRJo9Z0Jkq2jDm7Vu76jQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFAbB4bxLy8dDZlBrOhM/UJjgnwirdwo0OWHyGbSvWyWAiAdT241T900+5HGm/xzvDDfVA33WCgUFmnXqUp55ekKcw=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-46":{"name":"yarnlang","version":"0.1.0-46","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-46","dist":{"shasum":"de24961e1245fa8b90d05c684b7beaf8e0a0bd5d","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-46.tgz","integrity":"sha512-bTbHmxxbCrQb2iia2WdiUJabI8YeeQZXfc8Jd/vJjy6u4im4GwDPMK30f37IM2w4vENPUXBq0APmo2fWBkaB5g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFQjdkKW9M0EVY9BDtB9+P5OfZb3qasvEJ8xFGrhimIpAiByYPt2E6gIaJqKnSRfu79JqVRqgNgH8DvvMHYgo4cdbQ=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-47":{"name":"yarnlang","version":"0.1.0-47","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-47","dist":{"shasum":"2cf31f4a8cb5617533a2ae9967112e457ef1dfc1","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-47.tgz","integrity":"sha512-SqFk3orIpztyxtstNEtV+BKhwirbLme9IdV8an5zlR8+vbME8KJcstmGtEcu0vspgOCmoj4Ndggu5CNGHjGo4Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFQ2TVaADhPD7m1IqkyzidSYxtcsYjxeLKjje/+9zHFwAiEA+5f8XK2+AxZzKTySZfyp+fgP91Vo7EoF9QbeQmhWw2c="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-48":{"name":"yarnlang","version":"0.1.0-48","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-48","dist":{"shasum":"e2be3faf2d5c2a549e1023986701981429f1014f","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-48.tgz","integrity":"sha512-oVd6hfynl9zuU59gxAjvA1R1nNYy5WKhMn6VhXiKWxsTVSpvdnVUB1/qJJPPzptJ7lG3nuGaMWgOH7SyaKDHEQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG5ht4L4CkfoC0MDBsvSK+QDKNkz9tCdPQ8Nb6MoGqY5AiBgsnbtyEKxEA9s9KmRJzl2+7E2YTqbMnDbTSBLukWhXg=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-49":{"name":"yarnlang","version":"0.1.0-49","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-49","dist":{"shasum":"d4a3c646587f1a846e6a53ddb1e453bd465ee00a","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-49.tgz","integrity":"sha512-dVMs/Pjtijo2GSrW3uXrwICdXZCA7L8fuUMSMK0XVa2tfbBZOCQn/MHql6r+HcLzijSmoFE5c1v0hCvmuLpU2A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCsNwPhpsXOtFSoUX6ZirCtiFWigaQvl29OO+kUrDFBagIgXxN2LWYxSwxfgkVqHglzFoKGkX6Q4QGpKHPThak9J1E="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-50":{"name":"yarnlang","version":"0.1.0-50","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-50","dist":{"shasum":"122f078a7d01f1b6974373675f0ba191b11175f8","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-50.tgz","integrity":"sha512-7gE1blZt8+Y3Z1Hnqba4I+aqqPvPzADZrw3uD+qn85JRqdrdUJZ3BlXcsQxkQ6KQ3jNlmRrOVOoI47h9zeF/VQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAznNpoFCMJHB5szxJ1JBB+nl7iy/0a5zFIztmu9RsvMAiEAylxUcEN2O53Le1o3upfAd17JiQNcI491Og6SvPJfwok="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-51":{"name":"yarnlang","version":"0.1.0-51","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-51","dist":{"shasum":"fc255c2d45c9b63c44851791edf59005e190d786","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-51.tgz","integrity":"sha512-V6Vlt+S2NnexwmYALBHdojsBzy7mXEHO73bPV/nXWoeCEAIp0rzMHUk+gz8kXhifAURRPjkX9ViRqlGaDal2rA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICuLa44G8aeA1xrvjK7YTBSdGFfgjRh75FLZ9xtkL8suAiBYMHCfTEUJgSV36f81h9pSkmt8NopI4bdKCm9DotaQtw=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-52":{"name":"yarnlang","version":"0.1.0-52","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-52","dist":{"shasum":"182869180663e56389a95889ef784b667646eb97","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-52.tgz","integrity":"sha512-94Y7pN+zr6qsPRjrHFwcS6400dTs30sVxjyL/cgb1Kg4WMvXJyTLai/ukN5LPj5zAdOb1KHYQspS5EYkzh4BgQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG0qWip159ZJOiWYWwFxUE2rCcvLZNR+Kk++6F7RHw5kAiBueYu1mwC43yjnJ/e0Ghm5bUPG9CGi6BwLV3wnhZctMQ=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-53":{"name":"yarnlang","version":"0.1.0-53","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-53","dist":{"shasum":"9f8f366afe6c8db624c4d1182fc890546ac64c85","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-53.tgz","integrity":"sha512-JT87RQrBcs1nRyUFgYIqjYLpcWZDhHNhcFX/Tk+npOniuvoeM4jUNPuJm0TAcwzeodDA0pHpmMqZLmYxTKiSPQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD8E6V2aGyQAwAra8UdV18JacXbi0gcoa8IQjUd80KqzAIgZxRBplPSFogTcko6aCc4YZtXmdBpL9FaVWHeNmwF4Xk="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-54":{"name":"yarnlang","version":"0.1.0-54","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-54","dist":{"shasum":"ef2307477de298cc1a6e18bee29e47c3e33b45a1","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-54.tgz","integrity":"sha512-EnXJrFfealRlULL75WoeuqnD0ejQ/cG6uBkoOMQHwlKBTigBc5o1GLV8Qr/MAEPJqYV+oCpog+vP6BH4HE1uyA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDPvHjhyEmg+ATCILdnJSM+KGjoQh5XQTQHP9egxMeuwAIgWvKHq3QnfMrIhIz2amZ3ZfOC+L1Xx1unlXXk5XHXez8="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-55":{"name":"yarnlang","version":"0.1.0-55","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-55","dist":{"shasum":"5ddbfc7b9c58eb56dca4a451633c4d1a9375abd3","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-55.tgz","integrity":"sha512-zay5VRwNq25X72kJskO6FiDF+H9AJaMOqKewpx6uSRNlaUku8WfuSBNi6olMRpEc0C9dC8sDfRh5hHq1QcIGUw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDDzvX2Whq4nXKOTkrvb8XraW+K8ENYjPM9+ODkSr8AnAIhAIL+qR0O3k5izIcYQG+ytMy999gFcicChuxE98wOWAGb"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-56":{"name":"yarnlang","version":"0.1.0-56","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-56","dist":{"shasum":"8180d67e149f0728449f1a93c6dc8a5698bba13c","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-56.tgz","integrity":"sha512-bXunywvOq4Vfhf8aEvJuKJbwWkfQ3/pwt7SFIShgYJ6p9cfoZbSJVk0NV8kyv4JytsV1eed1n81WG65L6GYDeA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDfQoaD85ujOvTY0caVJbdoJgiW3Jn0veTGAkINNjiWeQIgAh4f03XmZEazX+Vkvk+/cfPxnScJiFlZAvSZKVMiRwI="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-57":{"name":"yarnlang","version":"0.1.0-57","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-57","dist":{"shasum":"0891295792e6e61cfeb87a8a54408d041b1df513","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-57.tgz","integrity":"sha512-AHlb5DRD3X5bWdXe7yNk8yFPTezSSxgioNbslenE0VkAcXLoef3dpigtdHGdr6dcWH4Er+AVluMy+Oz5cJ7tPQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDSQvqymHBTvrz0O7Ybef+oM98T93ZMClsbuwuWamXpdAiEAylt+5InL8c8g7Zw0ICejTjq4p9rh+ZWkq1lSdfsSJWU="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-58":{"name":"yarnlang","version":"0.1.0-58","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-58","dist":{"shasum":"583fdeada59079207cf2e21fb1e530a3968d7d45","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-58.tgz","integrity":"sha512-JSCsBgVETWCpTfMEKDj+CQt47ty/Obaj+jf4tY07IGN4fpqqlh2soy42IduqlRdAQT08zyH0/hC0Va/M0U74tA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCE93Z2te5dFBxZhbtZDltu/Vpb9mAVdDaKWeQBFQ0NTQIgKsLbApVGipiocLTdNLpg2di+u9N5BiWNH9kSjDcRagY="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-59":{"name":"yarnlang","version":"0.1.0-59","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"yarnlang\n========\n\n**Gracefully unifying the web with tiny strings.**\n\n## Install\n```npm install yarnlang```\n\n## Setup\n```javascript\nvar y = require('yarnlang');\n\n// 'config', {appkeys}\ny('config', {\n\tfacebook: ['902439083429050', '809erwjjww9023409320943825090953fj'],\n\ttumblr:   ['JOoedhiaifiafhiiIUHeiuhoWIUHIHAIUWHIUWHG09', 'IJOASODIJFOIDSAJFOIJ9320U5U02350UHBF'],\n\ttwitter:  ['IOSJOIOUNGUDOSG', 'JAOIDSJGIOIAJDGIOAFJGOIJIODGJAOFIGJIFO'],\n\tetc...\n});\n```\n\n## Use\n\n### 'yarn string', function (err, res)\n```javascript\ny('now', function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\t// { now: 1375889674261 }\n});\n```\n\n### 'yarn string', {accountkeys}, function (err, res)\n```javascript\ny('twitter-search[carrot]', {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```\n\n### 'yarn string', {inputs}, {accountkeys}, function (err, res)\n```javascript\ny('twitter-search(search_term)', {search_term: 'carrot'}, {twitter: ['JOsfoijdsofijoSFijfo', 'oiajoisdjafiodsaifjosifjoadfjo98ndsf']}, function (err, res) { if (err) throw new Error(err);\n\tconsole.log(res);\n\t/*\n\t{\n\t\t \"tweets.statuses.0.metadata.result_type\": \"recent\",\n\t\t \"tweets.statuses.0.metadata.iso_language_code\": \"en\",\n\t\t \"tweets.statuses.0.created_at\": \"Wed Aug 07 15:03:51 +0000 2013\",\n\t\t \"tweets.statuses.0.id\": 365126146565750800,\n\t\t \"tweets.statuses.0.id_str\": \"365126146565750785\",\n\t\t \"tweets.statuses.0.text\": \"\\\"BAD SERVICE! DIDNT GET MY CARROT SUSU! I HATE IT! ORDERED ROTI BO...\\\" @ Restoran Alfaa Maju Curry House: http://t.co/NotJM8oJFP #foursquare\",\n\t\t \"tweets.statuses.0.source\": \"foursquare\",\n\t\t \"tweets.statuses.0.truncated\": false,\n\t\t \"tweets.statuses.0.user.id\": 75081596,\n\t\t \"tweets.statuses.0.user.id_str\": \"75081596\",\n\t\t etc...\n\t}\n\t*/\n});\n```","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-59","dist":{"shasum":"7f66d01d707b56a09d4bb02f9d3bf1fcc1ffbd9d","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-59.tgz","integrity":"sha512-QyXAeFKOHyU47X98FPTOc2ECX3gvBLpI6rotfWs1pkguV7jIRBzzpIi40WQNfkKDqONBkMpsdz3ARmOeNu3ufQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEwEZnmBE9AzyIjHsUD34MBwPxsyQlKO+U01BNiPZIyzAiAQvJ8XO7aEnFv86fbM8weeQ2tvlYFTY9KOBPQ0Ja7s4g=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-60":{"name":"yarnlang","version":"0.1.0-60","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existance is counted as true, so bowlerderby is actually logically equivelent to true.\n\n## Functions\n\nfunctions can be\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-60","dist":{"shasum":"a218283b271652e0e9ae9482248758dde5bffac3","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-60.tgz","integrity":"sha512-LBob32m7gAMpSgmtHadkMBi19Sejuns34xJzlbOYS5jlOhP7hut5zu05fkkeeDlyMeoSqwcBnVnUxSc1Zm2VzQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCCYBZ94zLGsNcrwoeSPZwD4RDh9T9FCuBjOBtNRy2xugIgT3DfWd01gsYptmApBaWgT1mHYabydQ/mi/arlvqqyR0="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-61":{"name":"yarnlang","version":"0.1.0-61","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existance is counted as true, so bowlerderby is actually logically equivelent to true.\n\n## Functions\n\nfunctions can be\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-61","dist":{"shasum":"bf1c013c5164b0227b3beb1245de1fec63e322c2","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-61.tgz","integrity":"sha512-3mZlfoFjgn/WM1oO6YXO+SWv1gkB2uqd3Qg/dOq80S5zbUuFjLR3V1Egt5iz9OpEYuX9KGdVwYJaC3lZW/t0Mg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGKbyPPXaEdYJSFHecamDWn5JGkhoMFEKcFKnEkGKX7PAiBYDlvhDEQPETyFg7VAr4QlDvEIaOSzFC/7TjtNYT1QDQ=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-62":{"name":"yarnlang","version":"0.1.0-62","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existance is counted as true, so bowlerderby is actually logically equivelent to true.\n\n## Functions\n\nfunctions can be\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-62","dist":{"shasum":"f00526406b6724fa180a12361c73b32f968b0aef","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-62.tgz","integrity":"sha512-faanulnZT0vyqXkoqO0Vvc0+Nk0k5DiKBjuYNYdWdgZiDOLfQvJ2E+EZpeTM5En9/HvyQKCmNR3QHI0jlgxRYg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDeLwzMK5NmVZbZfONaevWckqWxCcvYzgLHRbBISPuIXwIgIBK3Njga0fjTKJ2Ldpihw1/ppMSf0V0rNylbC+dJldQ="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-63":{"name":"yarnlang","version":"0.1.0-63","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existance is counted as true, so bowlerderby is actually logically equivelent to true.\n\n## Functions\n\nfunctions can be\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-63","dist":{"shasum":"d0aafdd0a7221959d871aa68d6450ef5600ae6e7","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-63.tgz","integrity":"sha512-DLoq1z+4aoQduGlvrj0jnqyOYt+zEaf0wakyEhT3Dh3JmDbYNBV9gHlDf7tfA7lrbHr065re9gqelMQbpCdJxA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDwmf5caeUbg0DMXPYX3eUTfTT+SeL3hVj/gHmgtF4/xAIgAMrzNtCqKjsGMd0pCD1NuXc7oKyPSomf0BuAOfXq518="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-64":{"name":"yarnlang","version":"0.1.0-64","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existance is counted as true, so bowlerderby is actually logically equivelent to true.\n\n## Functions\n\nfunctions can be\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-64","dist":{"shasum":"606322eae06d5a3367bfffd99d3f503bfaa00678","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-64.tgz","integrity":"sha512-jg5tJMxPIgKnSSybquJVLDPI/6AATF1JBYnYMuTgp1LV02yBqLCda85QXb3U79F2D5A0P0y5rkx23d6wEc/2kA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE7XyjVwmS0FBWH6+9gl0sDH70Uvqya5W4nHZD7rGQxiAiEA6Aqp+jLYzx98S9uig4xEZeHvY0eIAhqij6kzibFkjA8="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-65":{"name":"yarnlang","version":"0.1.0-65","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existance is counted as true, so bowlerderby is actually logically equivelent to true.\n\n## Functions\n\nfunctions can be\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-65","dist":{"shasum":"146f6928cbb2009f571625eaa37654b5c290a747","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-65.tgz","integrity":"sha512-ycKwldiBtbdl05jOC68+Lb+RgB9lN1c9x2UgIxJzEzb4Oa0XhZuUQ3tqjXHvGbhGV3mYDT9LPTtJ4ScXc8PuHw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH0kjzmcEsCZVyfc9cqmtCnbk3ICdL2jJhjExBJhlovRAiAE/JMEFzmgSXU70BLOB5l750ypNuEyEy2R2QUbIYWcFw=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-66":{"name":"yarnlang","version":"0.1.0-66","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existance is counted as true, so bowlerderby is actually logically equivelent to true.\n\n## Functions\n\nfunctions can be\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-66","dist":{"shasum":"ddba4a8bb6116ec97a95619b2753a581a709f0d8","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-66.tgz","integrity":"sha512-67/LrpUlfHVHvp/5jHgvgxpIxpmfuu1+JAi6FSjMMMA1QaijSqHLJ67XtH5BEABDC3V6XJLsy82DwU+i70Sb6Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAdE0sQbmlzNcvkjm/C/knrMwWJK/P0Zw9Xrq/GR7WiuAiA+LqqR+W7bccz5J32BaYPghwnWE4c5Bn1Kub7cdOwgUw=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-67":{"name":"yarnlang","version":"0.1.0-67","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existance is counted as true, so bowlerderby is actually logically equivelent to true.\n\n## Functions\n\nfunctions can be\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-67","dist":{"shasum":"53577e89a5dd37e2c4199404713973bb8776dc9e","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-67.tgz","integrity":"sha512-U2sERby+xyjVgsc71k7MGG0oxTyRg7rZ11Qi147bI6bSW8w2fXtiqNfrqnGb3r0bvH70zDb+JwUpgZ7y5joEQw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAH1udgaz/zPPi68wacjjLP5MJwV08ATp535rv7DNn2OAiEAx9clslCWrS/N0NwfqRRPqbaL8iN45fayAOl9Q+8K2xY="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-68":{"name":"yarnlang","version":"0.1.0-68","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existance is counted as true, so bowlerderby is actually logically equivelent to true.\n\n## Functions\n\nfunctions can be\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-68","dist":{"shasum":"307491d7318f91c371a0af21aad327889c3f216d","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-68.tgz","integrity":"sha512-gGQELhP9GngizC3FtlmVcNr326Mz8r+wlXhSMWasm+enwfJkXu95UtxLPtkm/8OuyxIHGh8MXVjB6ackKhLXpw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBFal4LnZB2+JrvpDMSX9ddX7QfQxFQnizmpCx+NMkgIAiAap7reZnqY3wrqe9COrzIGIC+ob69pQHuF5/9i9H3WcA=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-69":{"name":"yarnlang","version":"0.1.0-69","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existance is counted as true, so bowlerderby is actually logically equivelent to true.\n\n## Functions\n\nfunctions can be\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-69","dist":{"shasum":"cb81b634133f7c13876397ac41297ae5899c5965","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-69.tgz","integrity":"sha512-S4tZkl+09fBkD0YOfGTZFu7TrQi7eXZcECoh5fXCOypyaWvGIC+/l0ik3vBtoXlDH2nwLtpxpfw+PEtcoP0wAw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDTxZD9GIbEFECrXNb6OIhDXunvWfC5VFY9B0OKFgQ+fQIgW4JR6U1G3mpwTPqtlIBUVL5FJpXpuy/7NRPVI6a8jBs="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-70":{"name":"yarnlang","version":"0.1.0-70","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existance is counted as true, so bowlerderby is actually logically equivelent to true.\n\n## Functions\n\nfunctions can be\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-70","dist":{"shasum":"e4abf901362786f9f42fb151afa5a653b71cf8e3","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-70.tgz","integrity":"sha512-0EUY17YsaugXMtjqHAEtF03FoXGadRhBFfkUzc4LR0SjBpiT6UtHt9qSL2ZillPK+Wrm6HgmLzAGIzgmuMqycQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDBkYpY11uWmErXMHXQjerioZEL+CbHK4ed/ERCl8j1pAIhAMAPN9DG0FE2OMBL91mbdK9kglZGisqBO4MPyi807uoq"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-71":{"name":"yarnlang","version":"0.1.0-71","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existance is counted as true, so bowlerderby is actually logically equivelent to true.\n\n## Functions\n\nfunctions can be\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-71","dist":{"shasum":"25e9cb5e03337805f2ed01ea1b7f1140913fd135","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-71.tgz","integrity":"sha512-qaMfwYXfSBjPgl3Tug35ptXg+mryshANq90L7T1IA9HRBoDdV5mxiACSj50yl3IQGTxG0Z9tNtQ+IOVialnuvw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCcchdplfCeWhxc8++kJZhYYd4MAVNzmXSjzqjbrZTHfAIgOe+pwuvvKihWCUHCwc1Kb0fDLf63OM2m1NrrZeP2RvQ="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-72":{"name":"yarnlang","version":"0.1.0-72","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existance is counted as true, so bowlerderby is actually logically equivelent to true.\n\n## Functions\n\nfunctions can be\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-72","dist":{"shasum":"d37501dc9c5b9d8249e1cc6c0d77e992dc757423","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-72.tgz","integrity":"sha512-D6Jb3egRTsvzjS7g7bq6qlISoaUtQDAM5CBV6w1y9GRXzrTgP2TAdGjzDE+Tzc/tmwoBhhU5lgAtBRZ/E402nA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBMBddnhZ2iWWyThCza3ZHZxJFyEFNWrMEk2jfF+tq4MAiBXq7zEKZ2Vy8VeEYTXm8H5Dbbe3zwZLxj1r8/SKlFncA=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-73":{"name":"yarnlang","version":"0.1.0-73","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existance is counted as true, so bowlerderby is actually logically equivelent to true.\n\n## Functions\n\nfunctions can be\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-73","dist":{"shasum":"fb8dd8c0a7d774566d6e27833ca7fd2eb943394f","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-73.tgz","integrity":"sha512-sCRqTTmz/vShJvTcmQE48IoC5I01dv5ONVpgQLqh1mdchJPbWcUELnsZ/LeoyxmGlZheFPhcM7XJIyytmqf+sg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAlFwWoIwCR2IfH1hlA/RMidNca7+s8+W1yoczJgejfXAiAeWSxir76U0QS0lwj3bnFWXoZdp8DryHs9DlS8tkL0Rg=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-74":{"name":"yarnlang","version":"0.1.0-74","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existance is counted as true, so bowlerderby is actually logically equivelent to true.\n\n## Functions\n\nfunctions can be\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-74","dist":{"shasum":"ae3f895e455f4bbbd3553bae40e0687d0e6ffb52","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-74.tgz","integrity":"sha512-/TEKn/acV2EgUgyxYDDdeKvSfl7iJoZ9c+EPzVwu4z0pyob2BuWHfKFt5drMndpbCO6bB8jHoqkfUpGxBBpKYQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC1/mRRk+Mud61W4kV+Ln/X5nVvPVlBbxfSsvSRoJi6lAiEAuKTwN4ueENUmZBPGGLDMJQRG7Iwrgkv00BJ2IlKDHzg="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-75":{"name":"yarnlang","version":"0.1.0-75","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existance is counted as true, so bowlerderby is actually logically equivelent to true.\n\n## Functions\n\nfunctions can be\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-75","dist":{"shasum":"865a6798abbc42b9de7b861d8ea1c0e2a222a92b","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-75.tgz","integrity":"sha512-8Bh1nDkYhlmonHFapUBSPcbPa20Cq7pXtElu8+1JAlfgGFvuC+mfbiBqbNz+3LzhC5buII07TnH+JJeVZcaOhA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC8Yqa//LVrB8rFx+/ikz5tq8GrnQ+b5poJTtThHkcKhgIhAIzwJcNhiUzmKGeLjJhqzSGIn2wfN+z7DZLjv6EiJ8oY"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-76":{"name":"yarnlang","version":"0.1.0-76","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existance is counted as true, so bowlerderby is actually logically equivelent to true.\n\n## Functions\n\nfunctions can be\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-76","dist":{"shasum":"b13797ae23d9a34deb4cc60cecf5fcd941fdf59c","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-76.tgz","integrity":"sha512-qv8+fqQmKFa35P1F5JWy3b2r8m3kV7ZoIG3HPjKBHLPKQN3+qApg5rz9pMnT81izRMwAToDIxL50SGILR55/Aw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAxRuiMHc5k7cCm704OndtEUIas+mwzc2fN3UvghhX+0AiB6Agf936zkmpycN9W68zWnjaF7iFPavZViF0E1JNJELw=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-77":{"name":"yarnlang","version":"0.1.0-77","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existance is counted as true, so bowlerderby is actually logically equivelent to true.\n\n## Functions\n\nfunctions can be\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-77","dist":{"shasum":"cc73f3f6b640eb7e84ba23a61444127cbad36b1f","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-77.tgz","integrity":"sha512-0zqDP3cyJgOb0vceEJ6TTNk+Va0cZPDIz2M4GG13tJsn8KZzB0zg8a1PedtuFj4zTyPD/QLzavSOuyI5YQ1I3g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEL4kjl2sAndnRiuXaylI45EyCprnIqzuRJA2vDALrllAiBafF2i7RU7LyGBnBtsC38W1VEnqcpSxUGmHDj700CNYg=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-78":{"name":"yarnlang","version":"0.1.0-78","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existance is counted as true, so bowlerderby is actually logically equivelent to true.\n\n## Functions\n\nfunctions can be\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-78","dist":{"shasum":"7bdf4688e17a4981735b9e6225786d7d4776a2d0","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-78.tgz","integrity":"sha512-+MUU1w/x1TwGU0mbfdUc8wpuPJFkWHKgg5aZ3l1jr9GSCIR84zds4a5nOIn0fs/mLcWQF4wpuRVSreAolEdAsw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC+73rxtvH4K9tOjXDlZtRNWWETHGYgiiajT16tvHoUEAiAnT7HidmvuJXG3bnnHRvO/mRz66fVOPMhw3zqrBIjN2w=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-79":{"name":"yarnlang","version":"0.1.0-79","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existance is counted as true, so bowlerderby is actually logically equivelent to true.\n\n## Functions\n\nfunctions can be\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-79","dist":{"shasum":"df1776cecedfc6b5c710b2145f6da93c88323742","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-79.tgz","integrity":"sha512-XRtxsUAfVw3jwGqA9/cv7ua8qstiuZ0K8RIGKAZYSy1j+cqJvoFbakBsITHAtRoGPfpnFBwQjr72O4GmKfCaPg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC3CLEl49x8hf8SV3QYDNPV4+DZyqh7DOMpK2nl/AZZhAiBPA0olVYsr0Lx28EBsZ03PXx+4JD4Ckj19KnYXQsmCiA=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-80":{"name":"yarnlang","version":"0.1.0-80","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n## N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)?\n\nWikipedia says:\n```\nA  nullary function takes no    arguments.\nA  unary   function takes one   argument.\nA  binary  function takes two   arguments.\nA  ternary function takes three arguments.\nAn n-ary   function takes n     arguments.\n```\n\nIn javascript that looks like:\n```javascript\nfunction nullary () { };\nfunction unary   (x) { };\nfunction binary  (x, y) { };\nfunction ternary (x, y, z) { };\nfunction real_life (a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea) { };\n\nfunction n_ary () {\n\t// java script has hidden n-arity through a functions 'arguments' paramter\n\tfor (var obj_key in arguments) {\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// which allows us to call an n-ary function with as \n// few or as many parameters as we please, and they\n// are all valid\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existance is counted as true, so bowlerderby is actually logically equivelent to true.\n\n## Functions\n\nfunctions can be\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-80","dist":{"shasum":"62a4abf87bfe224c3bcfa5f43f6d07a44e4fbcfe","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-80.tgz","integrity":"sha512-bxNC39XxEAhghRmUg11mr/xoV3Z5fW+W4DtqTerwlFyUp7JRcGuglvgFJPrfInOCsSJ34ne5YaAlH0AqSJXygw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCtAPvbUcTu6p/nqTr1FwMH4FycfEnH4APH7R0lmvBwhgIhAOpE9lGpcoqxXyYUX50viaquB/ukGbPOJMRABDb68P5b"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-81":{"name":"yarnlang","version":"0.1.0-81","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n## N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)?\n\nWikipedia says:\n```\nA  nullary function takes no    arguments.\nA  unary   function takes one   argument.\nA  binary  function takes two   arguments.\nA  ternary function takes three arguments.\nAn n-ary   function takes n     arguments.\n```\n\nIn javascript that looks like:\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nfunction unary   (x) {\n\tconsole.log(x);\n};\nfunction binary  (x, y) { \n\tconsole.log(x, y);\n};\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nfunction real_life (a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea) {\n\tconsole.log(a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea);\n};\n\nfunction n_ary () {\n\t// javascript has hidden n-arity through a functions 'arguments' paramter\n\tfor (var obj_key in arguments) {\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// which allows us to call an n-ary function with as \n// few or as many parameters as we please, and they\n// are all valid\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existance is counted as true, so bowlerderby is actually logically equivelent to true.\n\n## Functions\n\nfunctions can be\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-81","dist":{"shasum":"f360473c2bc855fedb0c77355d3299ae39523257","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-81.tgz","integrity":"sha512-ssrCXOTbhK6ZG2v2RKiqdDhIrmg/2xBcpZpT2IxJkgdL5lFvYS1TgKcxfV1W6NKbC/+XvStORD0AJN0uZ9azqg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHz4BnHFk0NgpR3yy55P3d/daiWUT/ge9G20XTbZyF9+AiEA1PBVpW1BCGAL5UEAmLBt6S+yMPg9ZDfGmiKia59GE78="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-82":{"name":"yarnlang","version":"0.1.0-82","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n## N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)?\n\nWikipedia says:\n```\nA  nullary function takes no    arguments.\nA  unary   function takes one   argument.\nA  binary  function takes two   arguments.\nA  ternary function takes three arguments.\nAn n-ary   function takes n     arguments.\n```\n\nIn javascript that looks like:\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nfunction unary   (x) {\n\tconsole.log(x);\n};\nfunction binary  (x, y) { \n\tconsole.log(x, y);\n};\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nfunction real_life (a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea) {\n\tconsole.log(a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea);\n};\n\nfunction n_ary () {\n\t// javascript has hidden n-arity through a functions 'arguments' paramter\n\tfor (var obj_key in arguments) {\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// which allows us to call an n-ary function with as \n// few or as many parameters as we please, and they\n// are all valid\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of paramters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurences `occurences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurences of car in many strings in yarn we can use:\n```\noccurences [car] [This is my string about cars, it's a quick sentance about cars.] [Another car string] [One More Car String.] [Lots of car strings!] [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any paramters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existance is counted as true, so bowlerderby is actually logically equivelent to true.\n\n## Functions\n\nfunctions can be\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-82","dist":{"shasum":"503b2977a740ab75c889ec79265c2ecf66e59075","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-82.tgz","integrity":"sha512-437l/IyBIUrp3Ceolid5J5s3tHAOVgqk1/cQ9XoCoT2j1zYimbwbGh4enV5fAoF9cpyl0A1B6pZikq3LG/KoLA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCFMhf0mFozmKHPRXYkE8UoQDYd0hQhrGDPFXhw9ORskAIhAL50H6MDaBb6jDxioMRSz8/MX/o2XFiEbFi2HhVo9N93"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-83":{"name":"yarnlang","version":"0.1.0-83","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n## N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)?\n\nWikipedia says:\n```\nA  nullary function takes no    arguments.\nA  unary   function takes one   argument.\nA  binary  function takes two   arguments.\nA  ternary function takes three arguments.\nAn n-ary   function takes n     arguments.\n```\n\nIn javascript that looks like:\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nfunction unary   (x) {\n\tconsole.log(x);\n};\nfunction binary  (x, y) { \n\tconsole.log(x, y);\n};\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nfunction real_life (a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea) {\n\tconsole.log(a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea);\n};\n\nfunction n_ary () {\n\t// javascript has hidden n-arity through a functions 'arguments' paramter\n\tfor (var obj_key in arguments) {\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// which allows us to call an n-ary function with as \n// few or as many parameters as we please, and they\n// are all valid\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of paramters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurences `occurences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurences of car in many strings in yarn we can use:\n```\noccurences [car]  [This is my string about cars, it's a quick sentance about cars.] \n                  [Another car string] \n                  [One More car String.] \n                  [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any paramters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existance is counted as true, so bowlerderby is actually logically equivelent to true.\n\n## Functions\n\nfunctions can be\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-83","dist":{"shasum":"24a0da6228ed8637ee3628429f65fa4a4116ebd9","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-83.tgz","integrity":"sha512-h6sZLmQoJAku+mvH1eC+Yhk6tSPy876fsCKx456haZflinrwym8lyjz2G/u/7hixWnOg+8KjOWxz225nggR++g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCNvUceK4Q2AvR2JkCShifG9cMgPEPkNRu7F6j/eHsoEwIhAIpFu2PmkJp7hDFeGynMn8ks5ce+rbjZUxAvjI2tI7Kb"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-84":{"name":"yarnlang","version":"0.1.0-84","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n## N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)?\n\nWikipedia says:\n```\nA  nullary function takes no    arguments.\nA  unary   function takes one   argument.\nA  binary  function takes two   arguments.\nA  ternary function takes three arguments.\nAn n-ary   function takes n     arguments.\n```\n\nIn javascript that looks like:\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nfunction unary   (x) {\n\tconsole.log(x);\n};\nfunction binary  (x, y) { \n\tconsole.log(x, y);\n};\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nfunction real_life (a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea) {\n\tconsole.log(a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea);\n};\n\nfunction n_ary () {\n\t// javascript has hidden n-arity through a functions 'arguments' paramter\n\tfor (var obj_key in arguments) {\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// which allows us to call an n-ary function with as \n// few or as many parameters as we please, and they\n// are all valid\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of paramters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurences `occurences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurences [car]  [This is my string about cars, it's a quick sentance about cars.] \n                  [Another car string] \n                  [One More car String.] \n                  [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any paramters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existance is counted as true, so bowlerderby is actually logically equivelent to true.\n\n## Functions\n\nfunctions can be\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-84","dist":{"shasum":"b4e6344fb46952b22e780b83a042d892dfc2db96","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-84.tgz","integrity":"sha512-XNF/aIsD/fvIt1k1nX9dkopbc5Hvnt7pdIKu4I+xb8OO85zzA6v4ugBVQp5qohTC3N39xizeKhd4vVeFVLSGFA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFwPVdE8/wuwDA2d3r3KeCRd6U+Y86/B4hHhYJwTJP78AiEAwtnCd2Nvv77k3hJfIBvPcs7o8+FSR+WgW4VfSTpVZ3Q="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-85":{"name":"yarnlang","version":"0.1.0-85","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n## N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)?\n\nWikipedia says:\n```\nA  nullary function takes no    arguments.\nA  unary   function takes one   argument.\nA  binary  function takes two   arguments.\nA  ternary function takes three arguments.\nAn n-ary   function takes n     arguments.\n```\n\nIn javascript that looks like:\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nfunction unary   (x) {\n\tconsole.log(x);\n};\nfunction binary  (x, y) { \n\tconsole.log(x, y);\n};\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nfunction real_life (a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea) {\n\tconsole.log(a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea);\n};\n\nfunction n_ary () {\n\t// javascript has hidden n-arity through a functions 'arguments' paramter\n\tfor (var obj_key in arguments) {\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// which allows us to call an n-ary function with as \n// few or as many parameters as we please, and they\n// are all valid\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of paramters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurences `occurences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurences [car]  [This is my string about cars, it's a quick sentance about cars.] \n                  [Another car string] \n                  [One More car String.] \n                  [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any paramters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existance is counted as true, so bowlerderby is actually logically equivelent to true.\n\n## Functions\n\nMost modern programming languages have some conceptualization of functions.  These functions are either provided to you by the language itself (also known as [**Intrinsic** Functions](http://en.wikipedia.org/wiki/Intrinsic_function), like the `console.log()` function, or the `Math.sqrt()` function.  In addition to **Intrinsic** Functions, most languages also allow you to create and use your own functions (also known as **Extrinsic** Functions)[http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties], these could be anything from `add_these_numbers()` to `kill_flanders()`.\n\n**Intrinsic** functions are the colors with which you paint code, and **Extrinsic** functions are your own color mixtures.  It is important to note that although **Extrinsic** functions may become massivly complex in nature, they are still purely 100% composed of **Intrinsic** functions.\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-85","dist":{"shasum":"c493f655d1226f3c37cdb835048fd39dd16bc237","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-85.tgz","integrity":"sha512-AEFOJiOu9WK0qHwifRTgAEX+uRVYD+ZjBRJIuARjRdyjc6LWYhc+RTw7GsTjjyqKtjXTkMbw5ZEIbTCN/PLHig==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC+CzUCbrfxf3JKRzcf/KMZsrwy+amQqLn781EninuBMgIgH3gPxcY2BhtPLI9FmmweKEx4DdAFVll1l3w2dFNLFcw="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-86":{"name":"yarnlang","version":"0.1.0-86","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n## N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)?\n\nWikipedia says:\n```\nA  nullary function takes no    arguments.\nA  unary   function takes one   argument.\nA  binary  function takes two   arguments.\nA  ternary function takes three arguments.\nAn n-ary   function takes n     arguments.\n```\n\nIn javascript that looks like:\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nfunction unary   (x) {\n\tconsole.log(x);\n};\nfunction binary  (x, y) { \n\tconsole.log(x, y);\n};\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nfunction real_life (a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea) {\n\tconsole.log(a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea);\n};\n\nfunction n_ary () {\n\t// javascript has hidden n-arity through a functions 'arguments' paramter\n\tfor (var obj_key in arguments) {\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// which allows us to call an n-ary function with as \n// few or as many parameters as we please, and they\n// are all valid\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of paramters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurences `occurences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurences [car]  [This is my string about cars, it's a quick sentance about cars.] \n                  [Another car string] \n                  [One More car String.] \n                  [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any paramters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existance is counted as true, so bowlerderby is actually logically equivelent to true.\n\n## Functions\n\nMost modern programming languages have some conceptualization of functions.  These functions are either provided to you by the language itself (also known as [**Intrinsic** Functions](http://en.wikipedia.org/wiki/Intrinsic_function), like the `console.log()` function, or the `Math.sqrt()` function.  In addition to **Intrinsic** Functions, most languages also allow you to create and use your own functions (also known as (**Extrinsic** Functions)[http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties]), these could be anything from `add_these_numbers()` to `kill_flanders()`.\n\n**Intrinsic** functions are the colors with which you paint code, and **Extrinsic** functions are your own color mixtures.  It is important to note that although **Extrinsic** functions may become massivly complex in nature, they are still purely 100% composed of **Intrinsic** functions.\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-86","dist":{"shasum":"08b2eb37a1f070ab4468df8af15a79b1ddde1b1a","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-86.tgz","integrity":"sha512-1vqFnHHFakjIlT3gLftBz6VE3krBkh5SiJZ1v5gG/NySTxtUBfG/qKN01Dtdvm9ycNUXRsu/vqYP/khqS4r+Gw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH+8vXYkx3KEv1NZD+69hNUUSYENF8RzMr2XCOGq+285AiEAltDYUwoX1lRRSn3lVCpdrUNFcMnvlsyJA+6BP6GPNZs="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-87":{"name":"yarnlang","version":"0.1.0-87","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n## N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)?\n\nWikipedia says:\n```\nA  nullary function takes no    arguments.\nA  unary   function takes one   argument.\nA  binary  function takes two   arguments.\nA  ternary function takes three arguments.\nAn n-ary   function takes n     arguments.\n```\n\nIn javascript that looks like:\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nfunction unary   (x) {\n\tconsole.log(x);\n};\nfunction binary  (x, y) { \n\tconsole.log(x, y);\n};\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nfunction real_life (a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea) {\n\tconsole.log(a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea);\n};\n\nfunction n_ary () {\n\t// javascript has hidden n-arity through a functions 'arguments' paramter\n\tfor (var obj_key in arguments) {\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// which allows us to call an n-ary function with as \n// few or as many parameters as we please, and they\n// are all valid\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of paramters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurences `occurences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurences [car]  [This is my string about cars, it's a quick sentance about cars.] \n                  [Another car string] \n                  [One More car String.] \n                  [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any paramters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existance is counted as true, so bowlerderby is actually logically equivelent to true.\n\n## Functions\n\nMost modern programming languages have some conceptualization of functions.  These functions are either provided to you by the language itself (also known as [**Intrinsic** Functions](http://en.wikipedia.org/wiki/Intrinsic_function), like the `console.log()` function, or the `Math.sqrt()` function.  In addition to **Intrinsic** Functions, most languages also allow you to create and use your own functions (also known as [**Extrinsic** Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties)), these could be anything from `add_these_numbers()` to `kill_flanders()`.\n\n**Intrinsic** functions are the colors with which you paint code, and **Extrinsic** functions are your own color mixtures.  It is important to note that although **Extrinsic** functions may become massivly complex in nature, they are still purely 100% composed of **Intrinsic** functions.\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-87","dist":{"shasum":"0a283f628db30442795744280f6235b51df859e4","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-87.tgz","integrity":"sha512-6sUgDBitUfrpyyTErIHJ6wLa+h8pHuQbht3USBbMb3NWs4/EHNWOWthRPgg5F1PNFKbl2rg49GWW0t9OXqYsjg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBFcFAA3+4sXehvyUp46X5kDCn8kRKtPLr+LFBbdmFGDAiAFB2R/KflnfcdpIr8OKxhi2tOpezms2P1XBsGok+oeeA=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-88":{"name":"yarnlang","version":"0.1.0-88","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n## N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)?\n\nWikipedia says:\n```\nA  nullary function takes no    arguments.\nA  unary   function takes one   argument.\nA  binary  function takes two   arguments.\nA  ternary function takes three arguments.\nAn n-ary   function takes n     arguments.\n```\n\nIn javascript that looks like:\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nfunction unary   (x) {\n\tconsole.log(x);\n};\nfunction binary  (x, y) { \n\tconsole.log(x, y);\n};\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nfunction real_life (a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea) {\n\tconsole.log(a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea);\n};\n\nfunction n_ary () {\n\t// javascript has hidden n-arity through a functions 'arguments' paramter\n\tfor (var obj_key in arguments) {\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// which allows us to call an n-ary function with as \n// few or as many parameters as we please, and they\n// are all valid\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of paramters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurences `occurences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurences [car]  [This is my string about cars, it's a quick sentance about cars.] \n                  [Another car string] \n                  [One More car String.] \n                  [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any paramters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existance is counted as true, so bowlerderby is actually logically equivelent to true.\n\n## Functions\n\nMost programming languages have some conceptualization of functions.\n\nThese functions are either provided to you by the language itself: known as [**Intrinsic** Functions](http://en.wikipedia.org/wiki/Intrinsic_function), like the `console.log()` or `Math.sqrt()` function.  \n\nIn addition to **Intrinsic** Functions, most languages also allow you to create and use your own functions: known as [**Extrinsic** Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties); These functions could be anything from `add_these_numbers()` to `kill_flanders()`, and are always defined by you - never the language itself.\n\nIt is important to note that no matter how complex and incomphrendable any **Extrinsic** function may seem, they will always be composed of nothing more than **Intrinsic** functions.\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-88","dist":{"shasum":"93b7a61cfc3f2f64ee92d272e589a0ffd5a19847","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-88.tgz","integrity":"sha512-43GiV93V1ejpohU+Kx80PO58Pw2R4GTAE5+xBNYznaT0lexDRKzuJ5Sg0pf9z2ppuMkfoALVh1QzsOTmQE13PA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID4qNvBftcPzyc9vcSqlGYdUq/wJUMeAGo3Hvh3vzZhvAiB6ixsxMurw5FDvD8WbtkMz16QIILVlJW2Cu4+KYQM/fw=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-89":{"name":"yarnlang","version":"0.1.0-89","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n## N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)?\n\nWikipedia says:\n```\nA  nullary function takes no    arguments.\nA  unary   function takes one   argument.\nA  binary  function takes two   arguments.\nA  ternary function takes three arguments.\nAn n-ary   function takes n     arguments.\n```\n\nIn javascript that looks like:\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nfunction unary   (x) {\n\tconsole.log(x);\n};\nfunction binary  (x, y) { \n\tconsole.log(x, y);\n};\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nfunction real_life (a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea) {\n\tconsole.log(a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea);\n};\n\nfunction n_ary () {\n\t// javascript has hidden n-arity through a functions 'arguments' paramter\n\tfor (var obj_key in arguments) {\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// which allows us to call an n-ary function with as \n// few or as many parameters as we please, and they\n// are all valid\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of paramters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurences `occurences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurences [car]  [This is my string about cars, it's a quick sentance about cars.] \n                  [Another car string] \n                  [One More car String.] \n                  [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any paramters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existance is counted as true, so bowlerderby is actually logically equivelent to true.\n\n## Functions\n\nMost programming languages have some conceptualization of functions.\n\nThese functions are either provided to you by the language itself: known as [Intrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_function), like the `console.log()` or `Math.sqrt()` function.  \n\nIn addition to **Intrinsic** Functions, most languages also allow you to create and use your own functions: known as [Extrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties); These functions could be anything from `add_these_numbers()` to `kill_flanders()`, and are always defined by you - never the language itself.\n\nIt is important to note that no matter how complex and incomphrendable any **Extrinsic** function may seem, they will always be composed of nothing more than **Intrinsic** functions.\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-89","dist":{"shasum":"5b9c25f26facdcf51c2b7684f752f0186526a56a","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-89.tgz","integrity":"sha512-M8YpS0vYTy633rA/m6tJyrOBAd0C/DxiA57ebRc1gTbeJFwmlGj9dik4Ag9JJNV59o+UHFdl4xyb2nOV240mtg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDlh00m0A01oLT8fC+VSiqO/I5YoznK5e3oa3EygR/HFwIhAKBm6L/3RDkIYlhRPlGJA86ypAEX77qM8JFPpMgcILMl"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-90":{"name":"yarnlang","version":"0.1.0-90","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n## N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)?\n\nWikipedia says:\n```\nA  nullary function takes no    arguments.\nA  unary   function takes one   argument.\nA  binary  function takes two   arguments.\nA  ternary function takes three arguments.\nAn n-ary   function takes n     arguments.\n```\n\nIn javascript that looks like:\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nfunction unary   (x) {\n\tconsole.log(x);\n};\nfunction binary  (x, y) { \n\tconsole.log(x, y);\n};\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nfunction real_life (a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea) {\n\tconsole.log(a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea);\n};\n\nfunction n_ary () {\n\t// javascript has hidden n-arity through a functions 'arguments' paramter\n\tfor (var obj_key in arguments) {\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// which allows us to call an n-ary function with as \n// few or as many parameters as we please, and they\n// are all valid\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of paramters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurences `occurences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurences [car]  [This is my string about cars, it's a quick sentance about cars.] \n                  [Another car string] \n                  [One More car String.] \n                  [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any paramters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existance is counted as true, so bowlerderby is actually logically equivelent to true.\n\n## Functions\n\nMost programming languages have some conceptualization of functions.\n\n#### Intrinsicity\n\nThese functions are either provided to you by the language itself: known as [Intrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_function), like the `console.log()` or `Math.sqrt()` function.  \n\n#### Extrincity\n\nIn addition to **Intrinsic** Functions, most languages also allow you to create and use your own functions: known as [Extrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties); These functions could be anything from `add_these_numbers()` to `kill_flanders()`, and are always defined by you - never the language itself.\n\nIt is important to note that no matter how complex and incomphrendable any **Extrinsic** function may seem, they will always be composed of nothing more than **Intrinsic** functions.\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-90","dist":{"shasum":"d7aca57e86cbd0d30394858423a9b1aadab13606","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-90.tgz","integrity":"sha512-OjMpy2U0+C15VpJUiLQ51cT3TbHYiqqzzKwWNs9GBFx0Wotd95JujBBvag44YV+6UR4WKNkcfOjmSEJ3l0yLsw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIClpYpofn7P154h+mQIU2EvAwikCJbZv+NnTd3Ij8kPsAiAR+H1ys4765pwxCVqv0uJFo484SmNniotTtRhjhb2j7g=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-91":{"name":"yarnlang","version":"0.1.0-91","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n## N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)?\n\nWikipedia says:\n```\nA  nullary function takes no    arguments.\nA  unary   function takes one   argument.\nA  binary  function takes two   arguments.\nA  ternary function takes three arguments.\nAn n-ary   function takes n     arguments.\n```\n\nIn javascript that looks like:\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nfunction unary   (x) {\n\tconsole.log(x);\n};\nfunction binary  (x, y) { \n\tconsole.log(x, y);\n};\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nfunction real_life (a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea) {\n\tconsole.log(a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea);\n};\n\nfunction n_ary () {\n\t// javascript has hidden n-arity through a functions 'arguments' paramter\n\tfor (var obj_key in arguments) {\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// which allows us to call an n-ary function with as \n// few or as many parameters as we please, and they\n// are all valid\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of paramters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurences `occurences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurences [car]  [This is my string about cars, it's a quick sentance about cars.] \n                  [Another car string] \n                  [One More car String.] \n                  [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any paramters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existance is counted as true, so bowlerderby is actually logically equivelent to true.\n\n## Functions\n\nMost programming languages have some conceptualization of functions.\n\n#### Intrinsicity\n\nFunctions are either provided to you by the language itself: known as [Intrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_function), like the `console.log()` or `Math.sqrt()` function.  \n\n#### Extrincity\n\nIn addition to **Intrinsic** Functions, most languages also allow you to create and use your own functions: known as [Extrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties); These functions could be anything from `add_these_numbers()` to `kill_flanders()`, and are always defined by you - never the language itself.\n\nIt is important to note that no matter how complex and incomphrendable any **Extrinsic** function may seem, they will always be composed of nothing more than **Intrinsic** functions.\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-91","dist":{"shasum":"39e966697d2786984ce67184e094128340cb3017","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-91.tgz","integrity":"sha512-9zUj41XtRrqGe/+DKSjQUjK59wUjXQpsmqYx4mv+XFEXpkNxXuBISRer6anFBFCSPMEbPhY3ItJ0AuLrOLrOoQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDHpyYL8bIQymALzASwCd0u/C77EGDFHD/UC+nDRS0JhQIgVbUJWYXOSWTc7ygPxXNFij3O5+0g10xsH7/k/oRzTXo="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-92":{"name":"yarnlang","version":"0.1.0-92","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n## N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)?\n\nWikipedia says:\n```\nA  nullary function takes no    arguments.\nA  unary   function takes one   argument.\nA  binary  function takes two   arguments.\nA  ternary function takes three arguments.\nAn n-ary   function takes n     arguments.\n```\n\nIn javascript that looks like:\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nfunction unary   (x) {\n\tconsole.log(x);\n};\nfunction binary  (x, y) { \n\tconsole.log(x, y);\n};\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nfunction real_life (a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea) {\n\tconsole.log(a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea);\n};\n\nfunction n_ary () {\n\t// javascript has hidden n-arity through a functions 'arguments' paramter\n\tfor (var obj_key in arguments) {\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// which allows us to call an n-ary function with as \n// few or as many parameters as we please, and they\n// are all valid\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of paramters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurences `occurences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurences [car]  [This is my string about cars, it's a quick sentance about cars.] \n                  [Another car string] \n                  [One More car String.] \n                  [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any paramters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existance is counted as true, so bowlerderby is actually logically equivelent to true.\n\n## Functions\n\nMost programming languages have some conceptualization of functions.\n\n#### Intrinsicity\n\nFunctions that are provided as part of the programming language itself are known as [Intrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_function). Every program is nothing more than these functions combined and arranged in some meaningful way to complete a task.\n\nA few javascript intrinsic function calls:\n```javascript\nconsole.log('hello world');\nMath.sqrt(9);\n('hello world').split('llo');\n```  \n\n#### Extrincity\n\nAlthough **every** program can be expressed using nothing more than intrinsic functions, it is very common to also create your own functions.  Functions that are not provided as part of the language, but rather created by the programmer are known as [Extrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties).\n\nA javascript extrinsic function definition and call:\n```javascript\nfunction my_extrinsic_function (any_string) {\n\tconsole.log(any_string);\n\t// any number of intrinsic functions go here\n};\n\nmy_extrinsic_function('the any string');\n```\n#### Caveat\n\nIt is important to note that no matter how complex or incomphrendable any **Extrinsic** function may seem, they are **always** composed of nothing more than **Intrinsic** functions.\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-92","dist":{"shasum":"284c26fa13e1096c21e5ac4cbfb0db879034a3ed","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-92.tgz","integrity":"sha512-4gXAj7zhmLKocjHwI2Mn4glSGYZd8jifKq7S4k++iDXPX5pcKntHAR4yfGUkrSOfaBeefWsI2YDmYe5wrkntpQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC2cBpUXAr9E9WI6UG4fmxhRUYE2/Ad7k8V81WMQH7VTQIhALQRWSLdJf9GMSmPywZrTaE8f7CnBGAwOOrvdgGSG+e9"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-93":{"name":"yarnlang","version":"0.1.0-93","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n## N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)?\n\nWikipedia says:\n```\nA  nullary function takes no    arguments.\nA  unary   function takes one   argument.\nA  binary  function takes two   arguments.\nA  ternary function takes three arguments.\nAn n-ary   function takes n     arguments.\n```\n\nIn javascript that looks like:\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nfunction unary   (x) {\n\tconsole.log(x);\n};\nfunction binary  (x, y) { \n\tconsole.log(x, y);\n};\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nfunction real_life (a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea) {\n\tconsole.log(a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea);\n};\n\nfunction n_ary () {\n\t// javascript has hidden n-arity through a functions 'arguments' paramter\n\tfor (var obj_key in arguments) {\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// which allows us to call an n-ary function with as \n// few or as many parameters as we please, and they\n// are all valid\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of paramters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurences `occurences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurences [car]  [This is my string about cars, it's a quick sentance about cars.] \n                  [Another car string] \n                  [One More car String.] \n                  [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any paramters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existance is counted as true, so bowlerderby is actually logically equivelent to true.\n\n## Functions\n\nMost programming languages have some conceptualization of functions. Functions are like little machines with an in slot and an out slot.\n\n#### Intrinsicity\n\nFunctions that are provided as part of the programming language itself are known as [Intrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_function). Every program is nothing more than these functions combined and arranged in some meaningful way to complete a task.\n\nA few javascript intrinsic function calls:\n```javascript\nconsole.log('hello world');\nMath.sqrt(9);\n('hello world').split('llo');\n```  \n\n#### Extrincity\n\nAlthough **every** program can be expressed using nothing more than intrinsic functions, it is very common to also create your own functions.  Functions that are not provided as part of the language, but rather created by the programmer are known as [Extrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties).\n\nA javascript extrinsic function definition and call:\n```javascript\nfunction my_extrinsic_function (any_string) {\n\tconsole.log(any_string);\n\t// any number of intrinsic functions go here\n};\n\nmy_extrinsic_function('the any string');\n```\n#### Caveat\n\nIt is important to note that no matter how complex or incomphrendable any **Extrinsic** function may seem, they are **always** composed of nothing more than **Intrinsic** functions.\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-93","dist":{"shasum":"80e12052f76d4c787c30ad966a8a9e4312d1e391","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-93.tgz","integrity":"sha512-S9HysTNl4vRA4vJBhKG+Bum67eSFV8f6JtBt2f9WKPss/W8q87Vdcj6cmlrJj1y0i0BEPuuL47JztEoITcvHmw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFMzWIUCBDMFfBgFNus8zLmkGYjlY5jr6RNjNGkTY4tQAiEAykkT9y+vEN8UilI3GiooDxOBvOgdi/nHKqHkPvt9u8Q="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-94":{"name":"yarnlang","version":"0.1.0-94","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n## N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)?\n\nWikipedia says:\n```\nA  nullary function takes no    arguments.\nA  unary   function takes one   argument.\nA  binary  function takes two   arguments.\nA  ternary function takes three arguments.\nAn n-ary   function takes n     arguments.\n```\n\nIn javascript that looks like:\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nfunction unary   (x) {\n\tconsole.log(x);\n};\nfunction binary  (x, y) { \n\tconsole.log(x, y);\n};\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nfunction real_life (a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea) {\n\tconsole.log(a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea);\n};\n\nfunction n_ary () {\n\t// javascript has hidden n-arity through a functions 'arguments' paramter\n\tfor (var obj_key in arguments) {\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// which allows us to call an n-ary function with as \n// few or as many parameters as we please, and they\n// are all valid\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of paramters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurences `occurences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurences [car]  [This is my string about cars, it's a quick sentance about cars.] \n                  [Another car string] \n                  [One More car String.] \n                  [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any paramters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existance is counted as true, so bowlerderby is actually logically equivelent to true.\n\n## Functions\n\nMost programming languages have some conceptualization of functions. Functions are like little machines with an in slot and an out slot.\n\n#### Intrinsicity\n\nFunctions that are provided as part of the programming language itself are known as [Intrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_function). Every program is nothing more than these functions combined and arranged in some meaningful way to complete a task.\n\nA few javascript intrinsic function calls:\n```javascript\nconsole.log('hello world');\nMath.sqrt(9);\n('hello world').split('llo');\n```  \n\n#### Extrincity\n\nAlthough **every** program can be expressed using nothing more than intrinsic functions, it is very common to also create your own functions.  Functions that are not provided as part of the language, but rather created by the programmer are known as [Extrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties).\n\nA javascript extrinsic function definition and call:\n```javascript\nfunction my_extrinsic_function (any_string) {\n\tconsole.log(any_string);\n\t// any number of intrinsic function calls go here\n};\n\nmy_extrinsic_function('the any string');\n```\n#### Caveat\n\nIt is important to note that no matter how complex or incomphrendable any extrinsic function may seem, **every extrinsic function is composed of nothing more than intrinsic functions**.\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-94","dist":{"shasum":"b1ab25ac848913cf0e5400cd172c9edd2864ce9f","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-94.tgz","integrity":"sha512-0oLxXKmsWdkIwFtT6IYlW2D6tOZetgCSSGxomhb6iqcETzOqm3vr7IJOdS26XtDcnAaYucqTBHOy1+abGnzDTg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDcC4SITVkKFzZm11Mfza6aH9zFqpiJVTk3nX8BalGG5wIhAPA9NKtDyEc5bbgGtOKxxnrut0lWWC7iw8pbx+uIVT5/"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-95":{"name":"yarnlang","version":"0.1.0-95","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n## You don't get your own functions anymore & why you wouldn't want them anyway\n\n\n## Selectors & the Namespace\n\n## N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)?\n\nWikipedia says:\n```\nA  nullary function takes no    arguments.\nA  unary   function takes one   argument.\nA  binary  function takes two   arguments.\nA  ternary function takes three arguments.\nAn n-ary   function takes n     arguments.\n```\n\nIn javascript that looks like:\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nfunction unary   (x) {\n\tconsole.log(x);\n};\nfunction binary  (x, y) { \n\tconsole.log(x, y);\n};\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nfunction real_life (a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea) {\n\tconsole.log(a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea);\n};\n\nfunction n_ary () {\n\t// javascript has hidden n-arity through a functions 'arguments' paramter\n\tfor (var obj_key in arguments) {\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// which allows us to call an n-ary function with as \n// few or as many parameters as we please, and they\n// are all valid\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of paramters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurences `occurences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurences [car]  [This is my string about cars, it's a quick sentance about cars.] \n                  [Another car string] \n                  [One More car String.] \n                  [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any paramters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existance is counted as true, so bowlerderby is actually logically equivelent to true.\n\n## Functions\n\nMost programming languages have some conceptualization of functions. Functions are like little machines with an in slot and an out slot.\n\n#### Intrinsicity\n\nFunctions that are provided as part of the programming language itself are known as [Intrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_function). Every program is nothing more than these functions combined and arranged in some meaningful way to complete a task.\n\nA few javascript intrinsic function calls:\n```javascript\nconsole.log('hello world');\nMath.sqrt(9);\n('hello world').split('llo');\n```  \n\n#### Extrincity\n\nAlthough **every** program can be expressed using nothing more than intrinsic functions, it is very common to also create your own functions.  Functions that are not provided as part of the language, but rather created by the programmer are known as [Extrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties).\n\nA javascript extrinsic function definition and call:\n```javascript\nfunction my_extrinsic_function (any_string) {\n\tconsole.log(any_string);\n\t// any number of intrinsic function calls go here\n};\n\nmy_extrinsic_function('the any string');\n```\n#### Caveat\n\nIt is important to note that no matter how complex or incomphrendable any extrinsic function may seem, **every extrinsic function is composed of nothing more than intrinsic functions**.\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?\n\n\n\nprojecting data into a flat tile automatically per date span...","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-95","dist":{"shasum":"c5708abfcb02ee1872b735ba22c058b3e24e12d2","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-95.tgz","integrity":"sha512-fgoS0rjDJ6tOM+TjIpEMMJ3WuLIA3bE8Ds3JYE0SWGUiw4Nxz4SbWzknBMySrU6YhL48+gvO23VKdwc1/vM5fQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEmDPqVzI+cRPgogZjlSKPT18d85APKzchj9pmRh1ItSAiEAgrQ9AoJz59zu7rTfblpzfX5rOAS6QXKunDksxSeotO4="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-96":{"name":"yarnlang","version":"0.1.0-96","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n## No User Defined Functions\n\nYou **can't** make your own functions in Yarn, you wouldn't want to even if you could.\n\nChances are if you reach a point where you feel you *need* a function to reduce repitition, you are probably doing something wrong, or Yarn itself is missing a crucial intrinsic function -  in which case you should submit a pull request.\n\n## Selectors & the Namespace\n\n## N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)?\n\nWikipedia says:\n```\nA  nullary function takes no    arguments.\nA  unary   function takes one   argument.\nA  binary  function takes two   arguments.\nA  ternary function takes three arguments.\nAn n-ary   function takes n     arguments.\n```\n\nIn javascript that looks like:\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nfunction unary   (x) {\n\tconsole.log(x);\n};\nfunction binary  (x, y) { \n\tconsole.log(x, y);\n};\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nfunction real_life (a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea) {\n\tconsole.log(a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea);\n};\n\nfunction n_ary () {\n\t// javascript has hidden n-arity through a functions 'arguments' paramter\n\tfor (var obj_key in arguments) {\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// which allows us to call an n-ary function with as \n// few or as many parameters as we please, and they\n// are all valid\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of paramters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurences `occurences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurences [car]  [This is my string about cars, it's a quick sentance about cars.] \n                  [Another car string] \n                  [One More car String.] \n                  [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any paramters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existance is counted as true, so bowlerderby is actually logically equivelent to true.\n\n## Functions\n\nMost programming languages have some conceptualization of functions. Functions are like little machines with an in slot and an out slot.\n\n#### Intrinsicity\n\nFunctions that are provided as part of the programming language itself are known as [Intrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_function). Every program is nothing more than these functions combined and arranged in some meaningful way to complete a task.\n\nA few javascript intrinsic function calls:\n```javascript\nconsole.log('hello world');\nMath.sqrt(9);\n('hello world').split('llo');\n```  \n\n#### Extrincity\n\nAlthough **every** program can be expressed using nothing more than intrinsic functions, it is very common to also create your own functions.  Functions that are not provided as part of the language, but rather created by the programmer are known as [Extrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties).\n\nA javascript extrinsic function definition and call:\n```javascript\nfunction my_extrinsic_function (any_string) {\n\tconsole.log(any_string);\n\t// any number of intrinsic function calls go here\n};\n\nmy_extrinsic_function('the any string');\n```\n#### Caveat\n\nIt is important to note that no matter how complex or incomphrendable any extrinsic function may seem, **every extrinsic function is composed of nothing more than intrinsic functions**.\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?\n\n\n\nprojecting data into a flat tile automatically per date span...","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-96","dist":{"shasum":"5f631c2d6f2017e21b2f71149604965496b6c097","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-96.tgz","integrity":"sha512-CYA6XgDShNV8OPSSt/aoVw1mYV3irVeLXes5p8eR0GTSR25ujfpmBVYS76qB6BzxLTwEmMIQLtuOSt/Cf0bl9g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAoBirWyAykE5FGIeB/W4PBshPPS74KI3WlGBZ0xTkULAiEAiA72v+WQz+Z/46OfTrH5prJULezgWk35vL75OQs/v6k="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-97":{"name":"yarnlang","version":"0.1.0-97","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurrences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n## No User Defined Functions\n\nYou **can't** make your own functions in Yarn, and you wouldn't want to even if you could.\n\nChances are if you reach a point where you feel you *need* a function to reduce repetition, you are probably doing something wrong - or not expressing a transformation in the most efficient way. \n\nOccasionally Yarn itself is missing a crucial intrinsic function - in which case you should submit a pull request, or open an issue if you don't have the ability to add it yourself.\n\n## Selectors & the Namespace\n\n## N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)?\n\nWikipedia says:\n```\nA  nullary function takes no    arguments.\nA  unary   function takes one   argument.\nA  binary  function takes two   arguments.\nA  ternary function takes three arguments.\nAn n-ary   function takes n     arguments.\n```\n\nIn javascript that looks like:\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nfunction unary   (x) {\n\tconsole.log(x);\n};\nfunction binary  (x, y) { \n\tconsole.log(x, y);\n};\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nfunction real_life (a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea) {\n\tconsole.log(a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea);\n};\n\nfunction n_ary () {\n\t// javascript has hidden n-arity through a functions 'arguments' paramter\n\tfor (var obj_key in arguments) {\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// which allows us to call an n-ary function with as \n// few or as many parameters as we please, and they\n// are all valid\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of paramters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurences `occurences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurences [car]  [This is my string about cars, it's a quick sentance about cars.] \n                  [Another car string] \n                  [One More car String.] \n                  [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any paramters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existance is counted as true, so bowlerderby is actually logically equivelent to true.\n\n## Functions\n\nMost programming languages have some conceptualization of functions. Functions are like little machines with an in slot and an out slot.\n\n#### Intrinsicity\n\nFunctions that are provided as part of the programming language itself are known as [Intrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_function). Every program is nothing more than these functions combined and arranged in some meaningful way to complete a task.\n\nA few javascript intrinsic function calls:\n```javascript\nconsole.log('hello world');\nMath.sqrt(9);\n('hello world').split('llo');\n```  \n\n#### Extrincity\n\nAlthough **every** program can be expressed using nothing more than intrinsic functions, it is very common to also create your own functions.  Functions that are not provided as part of the language, but rather created by the programmer are known as [Extrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties).\n\nA javascript extrinsic function definition and call:\n```javascript\nfunction my_extrinsic_function (any_string) {\n\tconsole.log(any_string);\n\t// any number of intrinsic function calls go here\n};\n\nmy_extrinsic_function('the any string');\n```\n#### Caveat\n\nIt is important to note that no matter how complex or incomphrendable any extrinsic function may seem, **every extrinsic function is composed of nothing more than intrinsic functions**.\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?\n\n\n\nprojecting data into a flat tile automatically per date span...","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-97","dist":{"shasum":"8430071b7a18cec518311602c4d71f88268fd25b","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-97.tgz","integrity":"sha512-eFrgnISLHHVHkv4b5Qfp2TPHpU0gM1K9c0l2IxUZP6aL9dVekq8RguQfy53m6jGnpq9Y4vvfBtfpo7q91VucKA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICr/zaASGhHsErBcw+hNXH4/gWHflgKZKFwqUfW1rwmVAiEAo35p7oNoSjbFxUH0zEQgJSNfydaD1Yy5zntvylXp80o="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-98":{"name":"yarnlang","version":"0.1.0-98","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## User Defined Functions\n\nYou **can't** make your own functions in Yarn, and you wouldn't want to even if you could.\n\nChances are if you reach a point where you feel you *need* a function to reduce repetition, you are probably doing something wrong - or not expressing a transformation in the most efficient way. \n\nOccasionally Yarn itself is missing a crucial intrinsic function - in which case you should submit a pull request, or open an issue if you don't have the ability to add it yourself.\n\n\n## Functional Intrinsicity & Extrinsicity \n\nMost programming languages have some conceptualization of functions. Functions are like little machines with an in slot and an out slot.\n\n#### Intrinsicity\n\nFunctions that are provided as part of the programming language itself are known as [Intrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_function). Every program is nothing more than these functions combined and arranged in some meaningful way to complete a task.\n\nA few javascript intrinsic function calls:\n```javascript\nconsole.log('hello world');\nMath.sqrt(9);\n('hello world').split('llo');\n```  \n#### Extrincity\n\nAlthough **every** program can be expressed using nothing more than intrinsic functions, it is very common to also create your own functions.  Functions that are not provided as part of the language, but rather created by the programmer are known as [Extrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties).\n\nA javascript extrinsic function definition and call:\n```javascript\nfunction my_extrinsic_function (any_string) {\n\tconsole.log(any_string);\n\t// any number of intrinsic function calls go here\n};\n\nmy_extrinsic_function('the any string');\n```\n#### Caveat\n\nIt is important to note that no matter how complex or incomprehensible any extrinsic function may seem, **every extrinsic function is composed of nothing more than intrinsic functions**.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurrences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n\n## Selectors & the Namespace\n\n## N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)?\n\nWikipedia says:\n```\nA  nullary function takes no    arguments.\nA  unary   function takes one   argument.\nA  binary  function takes two   arguments.\nA  ternary function takes three arguments.\nAn n-ary   function takes n     arguments.\n```\n\nIn javascript that looks like:\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nfunction unary   (x) {\n\tconsole.log(x);\n};\nfunction binary  (x, y) { \n\tconsole.log(x, y);\n};\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nfunction real_life (a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea) {\n\tconsole.log(a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea);\n};\n\nfunction n_ary () {\n\t// javascript has hidden n-arity through a functions 'arguments' paramter\n\tfor (var obj_key in arguments) {\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// which allows us to call an n-ary function with as \n// few or as many parameters as we please, and they\n// are all valid\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of paramters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurences `occurences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurences [car]  [This is my string about cars, it's a quick sentance about cars.] \n                  [Another car string] \n                  [One More car String.] \n                  [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any paramters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existence is counted as true, so bowlerderby is actually logically equivalent to true.\n\n\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?\n\n\n\nprojecting data into a flat tile automatically per date span...","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-98","dist":{"shasum":"d1c3f210d3f267ee772aec7de4dccc24c0d61dbd","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-98.tgz","integrity":"sha512-fl6onRmWItUhOaV9aG48GQvyxuPs0/x1PT12fu5Cb6f0c9c6olFKK4PSQe/EhJxWEDULv9nj7oolK5r5fE5Ikg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDtL13CPLMs8q+VGSrh0KSSy5uU8Qb8FE4otFtI7WTJXwIhAKR8k0T7+Qcpu0xAqptWZsvpvlvly7uW0tHHVDkGMd41"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-99":{"name":"yarnlang","version":"0.1.0-99","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Functions\n\n### Functional Intrinsicity & Extrinsicity \n\nMost programming languages have some conceptualization of functions, and yarn is no different. Functions are like little machines with an in slot and an out slot. However unlike most programming languages, Yarn does not allow a user to make and call their own functions (known as extrinsic functions, and extrinsic function calls). Most assembly languages are also this way, allowing the user to only make built-in function calls (known as intrinsic function calls).\n\n#### Intrinsicity\n\nFunctions that are provided as part of the programming language itself are known as [Intrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_function). Every program is nothing more than these functions combined and arranged in some meaningful way to complete a task.\n\nA few javascript intrinsic function calls:\n```javascript\nconsole.log('hello world');\nMath.sqrt(9);\n('hello world').split('llo');\n```  \n#### Extrincity\n\nAlthough **every** program can be expressed using nothing more than intrinsic functions, it is very common to also create your own functions.  Functions that are not provided as part of the language, but rather created by the programmer are known as [Extrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties).\n\nA javascript extrinsic function definition and call:\n```javascript\nfunction my_extrinsic_function (any_string) {\n\tconsole.log(any_string);\n\t// any number of intrinsic function calls go here\n};\n\nmy_extrinsic_function('the any string');\n```\n#### Caveat\n\nIt is important to note that no matter how complex or incomprehensible any extrinsic function may seem, **every extrinsic function is composed of nothing more than intrinsic functions**.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurrences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n\n## Selectors & the Namespace\n\n## N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)?\n\nWikipedia says:\n```\nA  nullary function takes no    arguments.\nA  unary   function takes one   argument.\nA  binary  function takes two   arguments.\nA  ternary function takes three arguments.\nAn n-ary   function takes n     arguments.\n```\n\nIn javascript that looks like:\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nfunction unary   (x) {\n\tconsole.log(x);\n};\nfunction binary  (x, y) { \n\tconsole.log(x, y);\n};\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nfunction real_life (a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea) {\n\tconsole.log(a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea);\n};\n\nfunction n_ary () {\n\t// javascript has hidden n-arity through a functions 'arguments' paramter\n\tfor (var obj_key in arguments) {\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// which allows us to call an n-ary function with as \n// few or as many parameters as we please, and they\n// are all valid\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of paramters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurences `occurences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurences [car]  [This is my string about cars, it's a quick sentance about cars.] \n                  [Another car string] \n                  [One More car String.] \n                  [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any paramters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existence is counted as true, so bowlerderby is actually logically equivalent to true.\n\n\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?\n\n\n\nprojecting data into a flat tile automatically per date span...","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-99","dist":{"shasum":"800cd3e0a3d92ac1fb904e3ab395dd5c4cb50450","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-99.tgz","integrity":"sha512-mUATe+CR0H/HxvSVKEapDd4hDHP1VS45iRiW8OObfQBp+kamtRONmr7NY9+uCPosPs+IAD3Lk6kkCjMLq3WPEg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC2e+pQAVW2XffRZuSPNwC9P+i/+h4nC75t9ei8lRQPHwIgfyRzmVhX0DJ3jHfexQ9Idp/UHjEufMGN8h2dZOafqik="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-100":{"name":"yarnlang","version":"0.1.0-100","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Functions\n\nMost programming languages have some conceptualization of functions, and yarn is no different. Functions are like little machines with an in slot and an out slot. However unlike most programming languages, Yarn does not allow a user to make and call their own functions (known as extrinsic functions, and extrinsic function calls). Most assembly languages are also this way, allowing the user to only make built-in function calls (known as intrinsic function calls).\n\n### Functional Intrinsicity & Extrinsicity \n\n#### Intrinsicity\n\nFunctions that are provided as part of the programming language itself are known as [Intrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_function). Every program is nothing more than these functions combined and arranged in some meaningful way to complete a task.\n\nA few javascript intrinsic function calls:\n```javascript\nconsole.log('hello world');\nMath.sqrt(9);\n('hello world').split('llo');\n```  \n#### Extrincity\n\nAlthough **every** program can be expressed using nothing more than intrinsic functions, it is very common to also create your own functions.  Functions that are not provided as part of the language, but rather created by the programmer are known as [Extrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties).\n\nA javascript extrinsic function definition and call:\n```javascript\nfunction my_extrinsic_function (any_string) {\n\tconsole.log(any_string);\n\t// any number of intrinsic function calls go here\n};\n\nmy_extrinsic_function('the any string');\n```\n#### Caveat\n\nIt is important to note that no matter how complex or incomprehensible any extrinsic function may seem, **every extrinsic function is composed of nothing more than intrinsic functions**.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurrences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n\n## Selectors & the Namespace\n\n## N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)?\n\nWikipedia says:\n```\nA  nullary function takes no    arguments.\nA  unary   function takes one   argument.\nA  binary  function takes two   arguments.\nA  ternary function takes three arguments.\nAn n-ary   function takes n     arguments.\n```\n\nIn javascript that looks like:\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nfunction unary   (x) {\n\tconsole.log(x);\n};\nfunction binary  (x, y) { \n\tconsole.log(x, y);\n};\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nfunction real_life (a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea) {\n\tconsole.log(a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea);\n};\n\nfunction n_ary () {\n\t// javascript has hidden n-arity through a functions 'arguments' paramter\n\tfor (var obj_key in arguments) {\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// which allows us to call an n-ary function with as \n// few or as many parameters as we please, and they\n// are all valid\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of paramters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurences `occurences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurences [car]  [This is my string about cars, it's a quick sentance about cars.] \n                  [Another car string] \n                  [One More car String.] \n                  [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any paramters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existence is counted as true, so bowlerderby is actually logically equivalent to true.\n\n\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?\n\n\n\nprojecting data into a flat tile automatically per date span...","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-100","dist":{"shasum":"f6e9e64932d5cc6a3ab64a98d1a9fae2607fb5ae","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-100.tgz","integrity":"sha512-GS0t6QugfA6XAyFnh1vzhBdc5xirOJpFxT86UUP8flDR0MY0aCDH4Sf1eRnfOYZdnjBSaU6K2Mf/ojSEC37D2A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHRJfAR4bi7qZ1I1IpitQNyfteQ50S/4N+S+UujqqkBJAiEA71wSD24Q4jTHJrUk4rhbam9VOwLAu8oxeiZxdcZEMCY="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-101":{"name":"yarnlang","version":"0.1.0-101","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Functions\n\nMost programming languages have some conceptualization of functions, and yarn is no different. Functions are like little machines with an in slot and an out slot. \n\nHowever unlike most programming languages, Yarn does not allow a user to make and call their own functions (known as extrinsic functions, and extrinsic function calls). Most assembly languages are also this way, only allowing the user to call built-in functions (known as intrinsic function calls).\n\n### Functional Intrinsicity & Extrinsicity \n\n#### Intrinsicity\n\nFunctions that are provided as part of the programming language itself are known as [Intrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_function). Every program is nothing more than these functions combined and arranged in some meaningful way to complete a task.\n\nA few javascript intrinsic function calls:\n```javascript\nconsole.log('hello world');\nMath.sqrt(9);\n('hello world').split('llo');\n```  \n#### Extrincity\n\nAlthough **every** program can be expressed using nothing more than intrinsic functions, it is very common to also create your own functions.  Functions that are not provided as part of the language, but rather created by the programmer are known as [Extrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties).\n\nA javascript extrinsic function definition and call:\n```javascript\nfunction my_extrinsic_function (any_string) {\n\tconsole.log(any_string);\n\t// any number of intrinsic function calls go here\n};\n\nmy_extrinsic_function('the any string');\n```\n#### Caveat\n\nIt is important to note that no matter how complex or incomprehensible any extrinsic function may seem, **every extrinsic function is composed of nothing more than intrinsic functions**.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurrences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n\n## Selectors & the Namespace\n\n## N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)?\n\nWikipedia says:\n```\nA  nullary function takes no    arguments.\nA  unary   function takes one   argument.\nA  binary  function takes two   arguments.\nA  ternary function takes three arguments.\nAn n-ary   function takes n     arguments.\n```\n\nIn javascript that looks like:\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nfunction unary   (x) {\n\tconsole.log(x);\n};\nfunction binary  (x, y) { \n\tconsole.log(x, y);\n};\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nfunction real_life (a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea) {\n\tconsole.log(a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea);\n};\n\nfunction n_ary () {\n\t// javascript has hidden n-arity through a functions 'arguments' paramter\n\tfor (var obj_key in arguments) {\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// which allows us to call an n-ary function with as \n// few or as many parameters as we please, and they\n// are all valid\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of paramters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurences `occurences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurences [car]  [This is my string about cars, it's a quick sentance about cars.] \n                  [Another car string] \n                  [One More car String.] \n                  [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any paramters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existence is counted as true, so bowlerderby is actually logically equivalent to true.\n\n\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?\n\n\n\nprojecting data into a flat tile automatically per date span...","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-101","dist":{"shasum":"234d8d6aed9b7b6c0019c86ae1eb395781fc6f1e","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-101.tgz","integrity":"sha512-NXMVMlvBdIXVIYd+ss/YR3Jr7xPhbEIIVmTZt2Ko2xnFS/rRym5bcSTtGab6+FafblbxQg5cTPWwMEseiorPIw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICqesHjghOmatEzJNHVcKKkiO41rkk9+GF8mrWUSZn17AiB38Gi7OJYjve+10ESLs6XkIv8SdoqZQF+Lt/8jZYdKLg=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-102":{"name":"yarnlang","version":"0.1.0-102","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Functions\n\nFunctions are like little machines with an in slot and an out slot. You put stuff in, and you usually even get some stuff back.\n\nMost programming languages have some conceptualization of functions and function calls, and yarn is no different. \n\nHowever unlike most programming languages, Yarn does not allow a user to make and call their own functions (known as extrinsic functions, and extrinsic function calls). Most assembly languages are also this way, only allowing the user to call built-in functions (known as intrinsic function calls).\n\n### Functional Intrinsicity & Extrinsicity \n\n#### Intrinsicity\n\nFunctions that are provided as part of the programming language itself are known as [Intrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_function). Every program is nothing more than these functions combined and arranged in some meaningful way to complete a task.\n\nA few javascript intrinsic function calls:\n```javascript\nconsole.log('hello world');\nMath.sqrt(9);\n('hello world').split('llo');\n```  \n#### Extrincity\n\nAlthough **every** program can be expressed using nothing more than intrinsic functions, it is very common to also create your own functions.  Functions that are not provided as part of the language, but rather created by the programmer are known as [Extrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties).\n\nA javascript extrinsic function definition and call:\n```javascript\nfunction my_extrinsic_function (any_string) {\n\tconsole.log(any_string);\n\t// any number of intrinsic function calls go here\n};\n\nmy_extrinsic_function('the any string');\n```\n#### Caveat\n\nIt is important to note that no matter how complex or incomprehensible any extrinsic function may seem, **every extrinsic function is composed of nothing more than intrinsic functions**.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurrences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n\n## Selectors & the Namespace\n\n## N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)?\n\nWikipedia says:\n```\nA  nullary function takes no    arguments.\nA  unary   function takes one   argument.\nA  binary  function takes two   arguments.\nA  ternary function takes three arguments.\nAn n-ary   function takes n     arguments.\n```\n\nIn javascript that looks like:\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nfunction unary   (x) {\n\tconsole.log(x);\n};\nfunction binary  (x, y) { \n\tconsole.log(x, y);\n};\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nfunction real_life (a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea) {\n\tconsole.log(a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea);\n};\n\nfunction n_ary () {\n\t// javascript has hidden n-arity through a functions 'arguments' paramter\n\tfor (var obj_key in arguments) {\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// which allows us to call an n-ary function with as \n// few or as many parameters as we please, and they\n// are all valid\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of paramters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurences `occurences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurences [car]  [This is my string about cars, it's a quick sentance about cars.] \n                  [Another car string] \n                  [One More car String.] \n                  [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any paramters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existence is counted as true, so bowlerderby is actually logically equivalent to true.\n\n\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?\n\n\n\nprojecting data into a flat tile automatically per date span...","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-102","dist":{"shasum":"b8a76bc548615a88d5f8d0dccc35bada68c86d5d","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-102.tgz","integrity":"sha512-2CYzHQfQVbtU67K+q9/O2H8ioSfE78ZneuqchzSsKGRNsGvr9eCBC5+4iQeLDegDxjIKweC1f9ypCHp0x4ZruQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDe6ubJeW1UJu4c3t3DWQ7EC5WB6N2RQQgB4Xlj1gplNwIgY1IDhAShCVLdt0DLlYog/I3FiRLjH/KGpaZgSAkzB3M="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-103":{"name":"yarnlang","version":"0.1.0-103","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Functions\n\nFunctions are like little machines with an in slot and an out slot.<br>\nYou put stuff in, and you usually even get some stuff back.\n\nMost programming languages have some conceptualization of functions, and Yarn is no different. \n\nHowever unlike most programming languages, Yarn does not allow a user to make and call their own functions (known as extrinsic functions, and extrinsic function calls). Most assembly languages are also this way, only allowing the user to call built-in functions (known as intrinsic function calls).\n\n### Functional Intrinsicity & Extrinsicity \n\n#### Intrinsicity\n\nFunctions that are provided as part of the programming language itself are known as [Intrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_function). Every program is nothing more than these functions combined and arranged in some meaningful way to complete a task.\n\nA few javascript intrinsic function calls:\n```javascript\nconsole.log('hello world');\nMath.sqrt(9);\n('hello world').split('llo');\n```  \n#### Extrincity\n\nAlthough **every** program can be expressed using nothing more than intrinsic functions, it is very common to also create your own functions.  Functions that are not provided as part of the language, but rather created by the programmer are known as [Extrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties).\n\nA javascript extrinsic function definition and call:\n```javascript\nfunction my_extrinsic_function (any_string) {\n\tconsole.log(any_string);\n\t// any number of intrinsic function calls go here\n};\n\nmy_extrinsic_function('the any string');\n```\n#### Caveat\n\nIt is important to note that no matter how complex or incomprehensible any extrinsic function may seem, **every extrinsic function is composed of nothing more than intrinsic functions**.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurrences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n\n## Selectors & the Namespace\n\n## N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)?\n\nWikipedia says:\n```\nA  nullary function takes no    arguments.\nA  unary   function takes one   argument.\nA  binary  function takes two   arguments.\nA  ternary function takes three arguments.\nAn n-ary   function takes n     arguments.\n```\n\nIn javascript that looks like:\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nfunction unary   (x) {\n\tconsole.log(x);\n};\nfunction binary  (x, y) { \n\tconsole.log(x, y);\n};\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nfunction real_life (a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea) {\n\tconsole.log(a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea);\n};\n\nfunction n_ary () {\n\t// javascript has hidden n-arity through a functions 'arguments' paramter\n\tfor (var obj_key in arguments) {\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// which allows us to call an n-ary function with as \n// few or as many parameters as we please, and they\n// are all valid\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of paramters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurences `occurences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurences [car]  [This is my string about cars, it's a quick sentance about cars.] \n                  [Another car string] \n                  [One More car String.] \n                  [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any paramters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existence is counted as true, so bowlerderby is actually logically equivalent to true.\n\n\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?\n\n\n\nprojecting data into a flat tile automatically per date span...","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-103","dist":{"shasum":"8e3a303d856fcddcba7476d4179c67524e55ffbe","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-103.tgz","integrity":"sha512-aBm5rfGf1e2YWdpf2GBUH0DfFeTyCrOyJfYMONeDWwCPq2/IUg0muJJshL0jLXERwXaU+3QWQT9lwmY97ONZKg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDhqATMW/5Gd5uxlqzylIltqyPb2IVIEtBcYuwglbomFgIhAMrpsFhA5W4zk45G03jiw/CbrTsxF8ZqLWintGrZ1szf"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-104":{"name":"yarnlang","version":"0.1.0-104","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Functions\n\nFunctions are like little machines with an in slot and an out slot.<br>\nYou put some stuff in, and you usually even get some stuff back.\n\nMost programming languages have some conceptualization of functions, and Yarn is no different. \n\nHowever unlike most programming languages, Yarn does not allow a user to make and call their own functions (known as extrinsic functions, and extrinsic function calls). Most assembly languages are also this way, only allowing the user to call built-in functions (known as intrinsic function calls).\n\n### Functional Intrinsicity & Extrinsicity \n\n#### Intrinsicity\n\nFunctions that are provided as part of the programming language itself are known as [Intrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_function). Every program is nothing more than these functions combined and arranged in some meaningful way to complete a task.\n\nA few intrinsic Javascript function calls:\n```javascript\nconsole.log('hello world');\n\nMath.sqrt(9);\n\n('hello world').split('llo');\n```  \n#### Extrincity\n\nAlthough **every** program can be expressed using nothing more than intrinsic functions, it is very common to also create your own functions.  Functions that are not provided as part of the language, but rather created by the programmer are known as [Extrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties).\n\nA javascript extrinsic function definition and call:\n```javascript\nfunction my_extrinsic_function (any_string) {\n\tconsole.log(any_string);\n\t// any number of intrinsic function calls go here\n};\n\nmy_extrinsic_function('the any string');\n```\n#### Caveat\n\nIt is important to note that no matter how complex or incomprehensible any extrinsic function may seem, **every extrinsic function is composed of nothing more than intrinsic functions**.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurrences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n\n## Selectors & the Namespace\n\n## N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)?\n\nWikipedia says:\n```\nA  nullary function takes no    arguments.\nA  unary   function takes one   argument.\nA  binary  function takes two   arguments.\nA  ternary function takes three arguments.\nAn n-ary   function takes n     arguments.\n```\n\nIn javascript that looks like:\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nfunction unary   (x) {\n\tconsole.log(x);\n};\nfunction binary  (x, y) { \n\tconsole.log(x, y);\n};\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nfunction real_life (a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea) {\n\tconsole.log(a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea);\n};\n\nfunction n_ary () {\n\t// javascript has hidden n-arity through a functions 'arguments' paramter\n\tfor (var obj_key in arguments) {\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// which allows us to call an n-ary function with as \n// few or as many parameters as we please, and they\n// are all valid\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of paramters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurences `occurences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurences [car]  [This is my string about cars, it's a quick sentance about cars.] \n                  [Another car string] \n                  [One More car String.] \n                  [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any paramters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existence is counted as true, so bowlerderby is actually logically equivalent to true.\n\n\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?\n\n\n\nprojecting data into a flat tile automatically per date span...","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-104","dist":{"shasum":"e23483ff12a77affab39fe6b01fe0e88f460435a","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-104.tgz","integrity":"sha512-cH/YqY2YF04+WIX382TJ5W/N55zIcc+zgYFNTRxE6QRt78FsHh5PFAaKAsuEDXk9wUwH4QlN+lTfKlvhd2+wuw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICpEZGvvMiMPIXJag9pXpb1ZQYhuFHqk6ETZnR0i0ilFAiBPsgBK8Q35zbwV1qnY4fw+q6PS4Zfg8iBtcwA1Xd9HlQ=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-105":{"name":"yarnlang","version":"0.1.0-105","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Functions\n\nFunctions are like little machines with an in slot and an out slot.<br>\nYou put some stuff in, and you usually even get some stuff back.\n\nMost programming languages have some conceptualization of functions, and Yarn is no different. \n\nHowever unlike most programming languages, Yarn does not allow a user to make and call their own functions (known as extrinsic functions, and extrinsic function calls). Most assembly languages are also this way, only allowing the user to call built-in functions (known as intrinsic function calls).\n\n### Functional Intrinsicity, Extrinsicity & N-Arity\n\n#### Intrinsicity\n\nFunctions that are provided as part of the programming language itself are known as [Intrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_function). Every program is nothing more than these functions combined and arranged in some meaningful way to complete a task.\n\nA few intrinsic Javascript function calls:\n```javascript\nconsole.log('hello world');\n\nMath.sqrt(9);\n\n('hello world').split('llo');\n```  \n#### Extrincity\n\nAlthough **every** program can be expressed using nothing more than intrinsic functions, it is very common to also create your own functions.  Functions that are not provided as part of the language, but rather created by the programmer are known as [Extrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties).\n\nA javascript extrinsic function definition and call:\n```javascript\nfunction my_extrinsic_function (any_string) {\n\tconsole.log(any_string);\n\t// any number of intrinsic function calls go here\n};\n\nmy_extrinsic_function('the any string');\n```\n\n#### Caveat\n\nIt is important to note that no matter how complex or incomprehensible any extrinsic function may seem, **every extrinsic function is composed of nothing more than intrinsic functions**.\n\nYarn takes advantage of this tiny loophole by providing a strong base of intrinsic n-ary functions coupled with lateral flow control operations.\n\n#### N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)?\n\nA **nullary** function takes **no arguments**.\nA **unary** function takes **one argument**.\nA **binary** function takes **two arguments**.\nA **ternary** function takes **three arguments**.\nAn **n-ary** function takes **n (any number of) arguments**.\n\n\nIn javascript that looks like:\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nfunction unary   (x) {\n\tconsole.log(x);\n};\nfunction binary  (x, y) { \n\tconsole.log(x, y);\n};\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nfunction real_life (a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea) {\n\tconsole.log(a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea);\n};\n\nfunction n_ary () {\n\t// javascript has hidden n-arity through a functions 'arguments' paramter\n\tfor (var obj_key in arguments) {\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// which allows us to call an n-ary function with as \n// few or as many parameters as we please, and they\n// are all valid\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of paramters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurences `occurences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurences [car]  [This is my string about cars, it's a quick sentance about cars.] \n                  [Another car string] \n                  [One More car String.] \n                  [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any paramters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurrences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n\n## Selectors & the Namespace\n\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existence is counted as true, so bowlerderby is actually logically equivalent to true.\n\n\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?\n\n\n\nprojecting data into a flat tile automatically per date span...","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-105","dist":{"shasum":"3a4728bd1fd0c1c1e91f577678209990d0291673","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-105.tgz","integrity":"sha512-dBVnP0UbCVnXaUk2EHIh4E/7vLSB7JcgfOg3E17YpOkNdD+nGD/s7cThs54BmJICSQmEHPRipwXMz6x5H6NvwQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGZK4MxTDcAx7L8f9lYH4+h2nZvb0BAAiDbNnOTURFPtAiEAwVl5qpQ7TxwB31mAyjlbOkrJnM92DZsmrDO1bj21I5M="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-106":{"name":"yarnlang","version":"0.1.0-106","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Functions\n\nFunctions are like little machines with an in slot and an out slot.<br>\nYou put some stuff in, and you usually even get some stuff back.\n\nMost programming languages have some conceptualization of functions, and Yarn is no different. \n\nHowever unlike most programming languages, Yarn does not allow a user to make and call their own functions (known as extrinsic functions, and extrinsic function calls). Most assembly languages are also this way, only allowing the user to call built-in functions (known as intrinsic function calls).\n\n### Functional Intrinsicity, Extrinsicity & N-Arity\n\n#### Intrinsicity\n\nFunctions that are provided as part of the programming language itself are known as [Intrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_function). Every program is nothing more than these intrinsic functions combined and arranged in some meaningful way to complete a task.\n\nA few intrinsic Javascript function calls:\n```javascript\nconsole.log('hello world');\n\nMath.sqrt(9);\n\n('hello world').split('llo');\n```  \n#### Extrincity\n\nAlthough **every** program can be expressed using nothing more than intrinsic functions, it is very common to also create your own functions.  Functions that are not provided as part of the language, but rather created by the programmer are known as [Extrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties).\n\nA javascript extrinsic function definition and call:\n```javascript\nfunction my_extrinsic_function (any_string) {\n\tconsole.log(any_string);\n\t// any number of intrinsic function calls go here\n};\n\nmy_extrinsic_function('the any string');\n```\n\n#### Caveat\n\nIt is important to note that no matter how complex or incomprehensible any extrinsic function may seem, **every extrinsic function is composed of nothing more than intrinsic functions**.\n\nYarn takes advantage of this tiny loophole by providing a strong base of intrinsic n-ary functions coupled with lateral flow control operations.\n\n#### N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)?\n\nA **nullary** function takes **no arguments**.\nA **unary** function takes **one argument**.\nA **binary** function takes **two arguments**.\nA **ternary** function takes **three arguments**.\nAn **n-ary** function takes **n (any number of) arguments**.\n\n\nIn javascript that looks like:\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nfunction unary   (x) {\n\tconsole.log(x);\n};\nfunction binary  (x, y) { \n\tconsole.log(x, y);\n};\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nfunction real_life (a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea) {\n\tconsole.log(a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea);\n};\n\nfunction n_ary () {\n\t// javascript has hidden n-arity through a functions 'arguments' paramter\n\tfor (var obj_key in arguments) {\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// which allows us to call an n-ary function with as \n// few or as many parameters as we please, and they\n// are all valid\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of paramters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurences `occurences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurences [car]  [This is my string about cars, it's a quick sentance about cars.] \n                  [Another car string] \n                  [One More car String.] \n                  [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any paramters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurrences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n\n## Selectors & the Namespace\n\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existence is counted as true, so bowlerderby is actually logically equivalent to true.\n\n\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?\n\n\n\nprojecting data into a flat tile automatically per date span...","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-106","dist":{"shasum":"6a9416833dea2906590c46db50769c94f5fd9b70","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-106.tgz","integrity":"sha512-oSdJfpEDNh4PNiS7gXktQEF/rngiFzVx/XFSB3NiMl5IZcZogLdMXjJOkbZKgh/MF9TnMr0ulQbV2i/XtVooxQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHWuzFq0O3LVwru2Ho+/quRbdoZzhXf3WKAZi9fvdjruAiEAkAbLDUJk9tLDyJC1pIq0IOTDYzUH8kkN3yDPopknxBg="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-107":{"name":"yarnlang","version":"0.1.0-107","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Functions\n\nFunctions are like little machines with an in slot and an out slot.<br>\nYou put some stuff in, and you usually even get some stuff back.\n\nMost programming languages have some conceptualization of functions, and Yarn is no different. \n\nHowever unlike most programming languages, Yarn does not allow a user to make and call their own functions (known as extrinsic functions, and extrinsic function calls). Most assembly languages are also this way, only allowing the user to call built-in functions (known as intrinsic function calls).\n\n### Functional Intrinsicity, Extrinsicity & N-Arity\n\n#### Intrinsicity\n\nFunctions that are provided as part of the programming language itself are known as [Intrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_function). Every program is nothing more than these intrinsic functions combined and arranged in some meaningful way to complete a task.\n\nA few intrinsic Javascript function calls:\n```javascript\nconsole.log('hello world');\n\nMath.sqrt(9);\n\n('hello world').split('llo');\n```  \n#### Extrincity\n\nAlthough **every** program can be expressed using nothing more than intrinsic functions, it is very common to also create your own functions.  Functions that are not provided as part of the language, but rather created by the programmer are known as [Extrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties).\n\nA javascript extrinsic function definition and call:\n```javascript\nfunction my_extrinsic_function (any_string) {\n\tconsole.log(any_string);\n\t// any number of intrinsic function calls go here\n};\n\nmy_extrinsic_function('the any string');\n```\n\n#### Caveat\n\nIt is important to note that no matter how complex or incomprehensible any extrinsic function may seem, **every extrinsic function is composed of nothing more than intrinsic functions**.\n\nYarn takes advantage of this quirk by providing a strong base of intrinsic n-ary functions coupled with lateral flow control operations. In this way extrinsic functions become useful in <1% of cases, meaning <1% of programmers will ever need to handle that style of repetition, and when they do it can still be done by simply copying and pasting (which is how most naive developers would solve the task anyways).\n\n#### N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)?\n\nA **nullary** function takes **no arguments**.\nA **unary** function takes **one argument**.\nA **binary** function takes **two arguments**.\nA **ternary** function takes **three arguments**.\nAn **n-ary** function takes **n (any number of) arguments**.\n\n\nIn javascript that looks like:\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nfunction unary   (x) {\n\tconsole.log(x);\n};\nfunction binary  (x, y) { \n\tconsole.log(x, y);\n};\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nfunction real_life (a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea) {\n\tconsole.log(a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea);\n};\n\nfunction n_ary () {\n\t// javascript has hidden n-arity through a functions 'arguments' paramter\n\tfor (var obj_key in arguments) {\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// which allows us to call an n-ary function with as \n// few or as many parameters as we please, and they\n// are all valid\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of paramters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurences `occurences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurences [car]  [This is my string about cars, it's a quick sentance about cars.] \n                  [Another car string] \n                  [One More car String.] \n                  [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any paramters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurrences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n\n## Selectors & the Namespace\n\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existence is counted as true, so bowlerderby is actually logically equivalent to true.\n\n\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?\n\n\n\nprojecting data into a flat tile automatically per date span...","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-107","dist":{"shasum":"8f5f38a48435fec7be3d3b672b2ff5692b72bba6","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-107.tgz","integrity":"sha512-v7UdsJEElNJZk7RdheJut/h9TbL06NM3UZJ361+tFYaoAB+p5/A9mgUo5OEleDnAwQTWT6AWHG0/vTcYfMncgg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICrLE9rKqoyyDDT7ioXpDz8bpeu9PIjxnO8cg56gGhj3AiEAqhycW7pykPw0Bgpu1xdresOFn9fdnU/V//QDtH/9o9o="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-108":{"name":"yarnlang","version":"0.1.0-108","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Functions\n\nFunctions are like little machines with an in slot and an out slot.<br>\nYou put some stuff in, and you usually even get some stuff back.\n\nMost programming languages have some conceptualization of functions, and Yarn is no different. \n\nHowever unlike most programming languages, Yarn does not allow a user to make and call their own functions (known as extrinsic functions, and extrinsic function calls). Most assembly languages are also this way, only allowing the user to call built-in functions (known as intrinsic function calls).\n\n### Functional Intrinsicity, Extrinsicity & N-Arity\n\n#### Intrinsicity\n\nFunctions that are provided as part of the programming language itself are known as [Intrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_function). Every program is nothing more than these intrinsic functions combined and arranged in some meaningful way to complete a task.\n\nA few intrinsic Javascript function calls:\n```javascript\nconsole.log('hello world');\n\nMath.sqrt(9);\n\n('hello world').split('llo');\n```  \n#### Extrincity\n\nAlthough **every** program can be expressed using nothing more than intrinsic functions, it is very common to also create your own functions.  Functions that are not provided as part of the language, but rather created by the programmer are known as [Extrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties).\n\nA javascript extrinsic function definition and call:\n```javascript\nfunction my_extrinsic_function (any_string) {\n\tconsole.log(any_string);\n\t// any number of intrinsic function calls go here\n};\n\nmy_extrinsic_function('the any string');\n```\n\n#### Caveat\n\nIt is important to note that no matter how complex or incomprehensible any extrinsic function may seem, **every extrinsic function is made up of nothing more than intrinsic functions**.\n\nYarn takes advantage of this quirk by providing a strong base of intrinsic n-ary functions coupled with lateral flow control operations. In this way extrinsic functions become useful in <1% of cases, meaning <1% of programmers will ever need to handle that style of repetition, and when they do it can still be done by simply copying and pasting (which is how most naive developers would solve the task anyways).\n\n#### N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)?\n\nA **nullary** function takes **no arguments**.\nA **unary** function takes **one argument**.\nA **binary** function takes **two arguments**.\nA **ternary** function takes **three arguments**.\nAn **n-ary** function takes **n (any number of) arguments**.\n\n\nIn javascript that looks like:\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nfunction unary   (x) {\n\tconsole.log(x);\n};\nfunction binary  (x, y) { \n\tconsole.log(x, y);\n};\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nfunction real_life (a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea) {\n\tconsole.log(a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea);\n};\n\nfunction n_ary () {\n\t// javascript has hidden n-arity through a functions 'arguments' paramter\n\tfor (var obj_key in arguments) {\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// which allows us to call an n-ary function with as \n// few or as many parameters as we please, and they\n// are all valid\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of paramters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurences `occurences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurences [car]  [This is my string about cars, it's a quick sentance about cars.] \n                  [Another car string] \n                  [One More car String.] \n                  [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any paramters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurrences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n\n## Selectors & the Namespace\n\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existence is counted as true, so bowlerderby is actually logically equivalent to true.\n\n\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?\n\n\n\nprojecting data into a flat tile automatically per date span...","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-108","dist":{"shasum":"08c91e33a791dbd8b98b9309bc68a17fab10556b","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-108.tgz","integrity":"sha512-gADRUjB0qfdFU8i8kylCxcmwlN7U93R86VrZIfL74woCxQRv13K5Itm7P3yfu5HqPBoNE7iyxgSnme6Ej0Kb9A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDWR/XRwm6nT8z7Axxq4VnXbjmC7J6K8S/bbD3dEzy2QQIgXMs/w6LOdrNserCZOsKl0hZ7UKl1ZW3chgDmcjskRlA="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-109":{"name":"yarnlang","version":"0.1.0-109","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Functions\n\nFunctions are like little machines with an in slot and an out slot.<br>\nYou put some stuff in, and you usually even get some stuff back.\n\nMost programming languages have some conceptualization of functions, and Yarn is no different. \n\nHowever unlike most programming languages, Yarn does not allow a user to make and call their own functions (known as extrinsic functions, and extrinsic function calls). Most assembly languages are also this way, only allowing the user to call built-in functions (known as intrinsic function calls).\n\n### Functional Intrinsicity, Extrinsicity & N-Arity\n\n#### Intrinsicity\n\nFunctions that are provided as part of the programming language itself are known as [Intrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_function). Every program is nothing more than these intrinsic functions combined and arranged in some meaningful way to complete a task.\n\nA few intrinsic Javascript function calls:\n```javascript\nconsole.log('hello world');\n\nMath.sqrt(9);\n\n('hello world').split('llo');\n```  \n#### Extrincity\n\nAlthough **every** program can be expressed using nothing more than intrinsic functions, it is very common to also create your own functions.  Functions that are not provided as part of the language, but rather created by the programmer are known as [Extrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties).\n\nA javascript extrinsic function definition and call:\n```javascript\nfunction my_extrinsic_function (any_string) {\n\tconsole.log(any_string);\n\t// any number of intrinsic function calls go here\n};\n\nmy_extrinsic_function('the any string');\n```\n\n#### Caveat\n\nIt is important to note that no matter how complex or incomprehensible any extrinsic function may seem, **every extrinsic function is made up of nothing more than intrinsic functions**.\n\nYarn takes advantage of this quirk by providing a strong base of intrinsic n-ary functions coupled with lateral flow control operations. In this way extrinsic functions become useful in <1% of cases, meaning <1% of programmers will ever need to handle that style of repetition, and when they do it can still be done by simply copying and pasting (which is how most naive developers would solve the task in the first place).\n\n#### N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)?\n\n+ A **nullary** function takes **no arguments**.\n+ A **unary** function takes **one argument**.\n+ A **binary** function takes **two arguments**.\n+ A **ternary** function takes **three arguments**.\n+ An **n-ary** function takes **n (any number of) arguments**.\n\n\nIn javascript that looks like:\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nfunction unary   (x) {\n\tconsole.log(x);\n};\nfunction binary  (x, y) { \n\tconsole.log(x, y);\n};\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nfunction real_life (a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea) {\n\tconsole.log(a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea);\n};\n\nfunction n_ary () {\n\t// javascript has hidden n-arity through a functions 'arguments' paramter\n\tfor (var obj_key in arguments) {\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// which allows us to call an n-ary function with as \n// few or as many parameters as we please, and they\n// are all valid\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of paramters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurences `occurences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurences [car]  [This is my string about cars, it's a quick sentance about cars.] \n                  [Another car string] \n                  [One More car String.] \n                  [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any paramters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurrences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n\n## Selectors & the Namespace\n\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existence is counted as true, so bowlerderby is actually logically equivalent to true.\n\n\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?\n\n\n\nprojecting data into a flat tile automatically per date span...","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-109","dist":{"shasum":"52207384ab9fec5a35a33ac3157d2ed503d7924e","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-109.tgz","integrity":"sha512-eC7hOlxnEDkV+Gw1h6LjyVXa2lO1KzA52YAcOeSq1rBW048UE9QPFxQPvxmK4Z4Yf+VfZTxII3Yn0PZRwDKIhA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFcye3f3W+c0ynZixRYJeqQ5tiJtxAKUvtnWk5h2CBPHAiEA92vwjbVEogkY6VDCo30gtifSNVR9ENdetj4bOZ6ccro="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-110":{"name":"yarnlang","version":"0.1.0-110","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Functions\n\nFunctions are like little machines with an in slot and an out slot.<br>\nYou put some stuff in, and you usually even get some stuff back.\n\nMost programming languages have some conceptualization of functions, and Yarn is no different. \n\nHowever unlike most programming languages, Yarn does not allow a user to make and call their own functions (known as extrinsic functions, and extrinsic function calls). Most assembly languages are also this way, only allowing the user to call built-in functions (known as intrinsic function calls).\n\n### Functional Intrinsicity, Extrinsicity & N-Arity\n\n#### Intrinsicity\n\nFunctions that are provided as part of the programming language itself are known as [Intrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_function). Every program is nothing more than these intrinsic functions combined and arranged in some meaningful way to complete a task.\n\nA few intrinsic Javascript function calls:\n```javascript\nconsole.log('hello world');\n\nMath.sqrt(9);\n\n('hello world').split('llo');\n```  \n#### Extrincity\n\nAlthough **every** program can be expressed using nothing more than intrinsic functions, it is very common to also create your own functions.  Functions that are not provided as part of the language, but rather created by the programmer are known as [Extrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties).\n\nA javascript extrinsic function definition and call:\n```javascript\nfunction my_extrinsic_function (any_string) {\n\tconsole.log(any_string);\n\t// any number of intrinsic function calls go here\n};\n\nmy_extrinsic_function('the any string');\n```\n\n#### Caveat\n\nIt is important to note that no matter how complex or incomprehensible any extrinsic function may seem, **every extrinsic function is made up of nothing more than intrinsic functions**.\n\nYarn takes advantage of this quirk by providing a strong base of intrinsic n-ary functions coupled with lateral flow control operations. In this way extrinsic functions become useful in <1% of cases, meaning <1% of programmers will ever need to handle that style of repetition, and when they do it can still be done by simply copying and pasting (which is how most naive developers would solve the task in the first place).\n\n#### N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)?\n\n+ A **nullary** function takes **no arguments**.\n+ A **unary** function takes **one argument**.\n+ A **binary** function takes **two arguments**.\n+ A **ternary** function takes **three arguments**.\n+ An **n-ary** function takes **n (any number of) arguments**.\n\n\nIn javascript that looks like:\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nnullary();\n\nfunction unary   (x) {\n\tconsole.log(x);\n};\nunary('a');\n\nfunction binary  (x, y) { \n\tconsole.log(x, y);\n};\nbinary('a', 'b');\n\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nternary('a', 'b', 'c');\n\nfunction real_life (a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea) {\n\tconsole.log(a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea);\n};\nreal_life(0, 1, 2, 3, 4, 5, 6, 7, 8, 9);\n\n\n// The Money Maker:\nfunction n_ary () {\n\t\n\t// Javascript has hidden n-arity through a functions not so obvious 'arguments' parameter\n\tfor (var obj_key in arguments) {\n\n\t\t// log argument\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// this allows us to call an n-ary function with as many or as few parameters\n// as we please, and they are all correct\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of paramters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurences `occurences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurences [car]  [This is my string about cars, it's a quick sentance about cars.] \n                  [Another car string] \n                  [One More car String.] \n                  [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any paramters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurrences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n\n## Selectors & the Namespace\n\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existence is counted as true, so bowlerderby is actually logically equivalent to true.\n\n\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?\n\n\n\nprojecting data into a flat tile automatically per date span...","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-110","dist":{"shasum":"9d6d8a74baa1c0f4c9bf83a5b86f534f49ce8b84","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-110.tgz","integrity":"sha512-mg1fOyggu7hmBserveazpQRdOqPTG5/WsvP7t0DDe2Zx0u6S74FKKhd7Zv0itQYGNgDeeIAAhxqzgDDirhIaTw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHzkfaJzt7mmZjJ6PjbgaBrP4PhkCqVJRgdzyWsyN8M9AiEAp4d23YyO2lFbQQU/fig91Y9ke1g15hsga/Lrxr0Jq44="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-111":{"name":"yarnlang","version":"0.1.0-111","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Functions\n\nFunctions are like little machines with an in slot and an out slot.<br>\nYou put some stuff in, and you usually even get some stuff back.\n\nMost programming languages have some conceptualization of functions, and Yarn is no different. \n\nHowever unlike most programming languages, Yarn does not allow a user to make and call their own functions (known as extrinsic functions, and extrinsic function calls). Most assembly languages are also this way, only allowing the user to call built-in functions (known as intrinsic function calls).\n\n### Functional Intrinsicity, Extrinsicity & N-Arity\n\n#### Intrinsicity\n\nFunctions that are provided as part of the programming language itself are known as [Intrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_function). Every program is nothing more than these intrinsic functions combined and arranged in some meaningful way to complete a task.\n\nA few intrinsic Javascript function calls:\n```javascript\nconsole.log('hello world');\n\nMath.sqrt(9);\n\n('hello world').split('llo');\n```  \n#### Extrincity\n\nAlthough **every** program can be expressed using nothing more than intrinsic functions, it is very common to also create your own functions.  Functions that are not provided as part of the language, but rather created by the programmer are known as [Extrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties).\n\nA javascript extrinsic function definition and call:\n```javascript\nfunction my_extrinsic_function (any_string) {\n\tconsole.log(any_string);\n\t// any number of intrinsic function calls go here\n};\n\nmy_extrinsic_function('the any string');\n```\n\n#### Caveat\n\nIt is important to note that no matter how complex or incomprehensible any extrinsic function may seem, **every extrinsic function is made up of nothing more than intrinsic functions**.\n\nYarn takes advantage of this quirk by providing a strong base of intrinsic n-ary functions coupled with lateral flow control operations. In this way extrinsic functions become useful in <1% of cases, meaning <1% of programmers will ever need to handle that style of repetition, and when they do it can still be done by simply copying and pasting (which is how most naive developers would solve the task in the first place).\n\n#### N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)?\n\n+ A **nullary** function takes **no arguments**.\n+ A **unary** function takes **one argument**.\n+ A **binary** function takes **two arguments**.\n+ A **ternary** function takes **three arguments**.\n+ An **n-ary** function takes **n (any number of) arguments**.\n\n\nIn javascript that looks like:\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nnullary();\n\nfunction unary (x) {\n\tconsole.log(x);\n};\nunary('a');\n\nfunction binary (x, y) { \n\tconsole.log(x, y);\n};\nbinary('a', 'b');\n\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nternary('a', 'b', 'c');\n\nfunction real_life (a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea) {\n\tconsole.log(a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea);\n};\nreal_life(0, 1, 2, 3, 4, 5, 6, 7, 8, 9);\n\n\n// The Money Maker:\nfunction n_ary () {\n\t\n\t// Javascript has hidden n-arity through a functions not so obvious 'arguments' parameter\n\tfor (var obj_key in arguments) {\n\n\t\t// log argument\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// this allows us to call an n-ary function with as many or as few parameters\n// as we please, and they are all correct\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of paramters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurences `occurences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurences [car]  [This is my string about cars, it's a quick sentance about cars.] \n                  [Another car string] \n                  [One More car String.] \n                  [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any paramters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurrences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n\n## Selectors & the Namespace\n\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existence is counted as true, so bowlerderby is actually logically equivalent to true.\n\n\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?\n\n\n\nprojecting data into a flat tile automatically per date span...","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-111","dist":{"shasum":"98c7017b168d538e5b00bec330ce70108f3d57d6","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-111.tgz","integrity":"sha512-7Mj93moVLimoYVdUTFpdC6JgvD15RrBe9e73lpTg69v1xZVuxGSTVb9pCOP2NKQUfCOEuANdw+TzalTgQQ5gzA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICHP4q6ih+2KU1/Sc19T7DBMg1Ew8KI5X/I4UCSOevkzAiEAo0rrnn0uX/c4v+j/TTthcxt6+c2v/BQjgEY0fDz1Sdk="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-112":{"name":"yarnlang","version":"0.1.0-112","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Functions\n\nFunctions are like little machines with an in slot and an out slot.<br>\nYou put some stuff in, and you usually even get some stuff back.\n\nMost programming languages have some conceptualization of functions, and Yarn is no different. \n\nHowever unlike most programming languages, Yarn does not allow a user to make and call their own functions (known as extrinsic functions, and extrinsic function calls). Most assembly languages are also this way, only allowing the user to call built-in functions (known as intrinsic function calls).\n\n### Functional Intrinsicity, Extrinsicity & N-Arity\n\n#### Intrinsicity\n\nFunctions that are provided as part of the programming language itself are known as [Intrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_function). Every program is nothing more than these intrinsic functions combined and arranged in some meaningful way to complete a task.\n\nA few intrinsic Javascript function calls:\n```javascript\nconsole.log('hello world');\n\nMath.sqrt(9);\n\n('hello world').split('llo');\n```  \n#### Extrincity\n\nAlthough **every** program can be expressed using nothing more than intrinsic functions, it is very common to also create your own functions.  Functions that are not provided as part of the language, but rather created by the programmer are known as [Extrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties).\n\nA javascript extrinsic function definition and call:\n```javascript\nfunction my_extrinsic_function (any_string) {\n\tconsole.log(any_string);\n\t// any number of intrinsic function calls go here\n};\n\nmy_extrinsic_function('the any string');\n```\n\n#### Caveat\n\nIt is important to note that no matter how complex or incomprehensible any extrinsic function may seem, **every extrinsic function is made up of nothing more than intrinsic functions**.\n\nYarn takes advantage of this quirk by providing a strong base of intrinsic n-ary functions coupled with lateral flow control operations. In this way extrinsic functions become useful in <1% of cases, meaning <1% of programmers will ever need to handle that style of repetition, and when they do it can still be done by simply copying and pasting (which is how most naive developers would solve the task in the first place).\n\n#### N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)?\n\n+ A **nullary** function takes **no arguments**.\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nnullary();\n```\n\n+ A **unary** function takes **one argument**.\n+ A **binary** function takes **two arguments**.\n+ A **ternary** function takes **three arguments**.\n+ An **n-ary** function takes **n (any number of) arguments**.\n\n\nIn javascript that looks like:\n\n```javascript\nfunction unary (x) {\n\tconsole.log(x);\n};\nunary('a');\n\nfunction binary (x, y) { \n\tconsole.log(x, y);\n};\nbinary('a', 'b');\n\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nternary('a', 'b', 'c');\n\nfunction real_life (a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea) {\n\tconsole.log(a, b, c, d, e, f, g, kitchen_sink, batmobile, you_get_the_idea);\n};\nreal_life(0, 1, 2, 3, 4, 5, 6, 7, 8, 9);\n\n\n// The Money Maker:\nfunction n_ary () {\n\t\n\t// Javascript has hidden n-arity through a functions not so obvious 'arguments' parameter\n\tfor (var obj_key in arguments) {\n\n\t\t// log argument\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// this allows us to call an n-ary function with as many or as few parameters\n// as we please, and they are all correct\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of paramters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurences `occurences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurences [car]  [This is my string about cars, it's a quick sentance about cars.] \n                  [Another car string] \n                  [One More car String.] \n                  [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any paramters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurrences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n\n## Selectors & the Namespace\n\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existence is counted as true, so bowlerderby is actually logically equivalent to true.\n\n\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?\n\n\n\nprojecting data into a flat tile automatically per date span...","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-112","dist":{"shasum":"2f8204e4cb757e5a499d5059a3af1b1f775e6d07","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-112.tgz","integrity":"sha512-53yMiu91rMlRd0mcjv1jT5weVA/uTk60vTp/aSlgQU9+9g892XhDbfvogSi4qE5QjBlBMkg8fEwe5W16wp8chw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDUi67KfFqw+IUnoHLpr/0vDoT+BX2VvUnl7fxUd29TaAIgCjIhbzFkJRrggEYPyOwEbLmuoIYohTR9Bm8z0Blaohw="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-113":{"name":"yarnlang","version":"0.1.0-113","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Functions\n\nFunctions are like little machines with an in slot and an out slot.<br>\nYou put some stuff in, and you usually even get some stuff back.\n\nMost programming languages have some conceptualization of functions, and Yarn is no different. \n\nHowever unlike most programming languages, Yarn does not allow a user to make and call their own functions (known as extrinsic functions, and extrinsic function calls). Most assembly languages are also this way, only allowing the user to call built-in functions (known as intrinsic function calls).\n\n### Functional Intrinsicity, Extrinsicity & N-Arity\n\n#### Intrinsicity\n\nFunctions that are provided as part of the programming language itself are known as [Intrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_function). Every program is nothing more than these intrinsic functions combined and arranged in some meaningful way to complete a task.\n\nA few intrinsic Javascript function calls:\n```javascript\nconsole.log('hello world');\n\nMath.sqrt(9);\n\n('hello world').split('llo');\n```  \n#### Extrincity\n\nAlthough **every** program can be expressed using nothing more than intrinsic functions, it is very common to also create your own functions.  Functions that are not provided as part of the language, but rather created by the programmer are known as [Extrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties).\n\nA javascript extrinsic function definition and call:\n```javascript\nfunction my_extrinsic_function (any_string) {\n\tconsole.log(any_string);\n\t// any number of intrinsic function calls go here\n};\n\nmy_extrinsic_function('the any string');\n```\n\n#### Caveat\n\nIt is important to note that no matter how complex or incomprehensible any extrinsic function may seem, **every extrinsic function is made up of nothing more than intrinsic functions**.\n\nYarn takes advantage of this quirk by providing a strong base of intrinsic n-ary functions coupled with lateral flow control operations. In this way extrinsic functions become useful in <1% of cases, meaning <1% of programmers will ever need to handle that style of repetition, and when they do it can still be done by simply copying and pasting (which is how most naive developers would solve the task in the first place).\n\n#### N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)?\n\n+ A **nullary** function takes **no arguments**.\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nnullary();\n```\n+ A **unary** function takes **one argument**.\n```javascript\nfunction unary (x) {\n\tconsole.log(x);\n};\nunary('a');\n```\n+ A **binary** function takes **two arguments**.\n```javascript\nfunction binary (x, y) { \n\tconsole.log(x, y);\n};\nbinary('a', 'b');\n```\n+ A **ternary** function takes **three arguments**.\n```javascript\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nternary('a', 'b', 'c');\n```\n+ An **n-ary** function takes **n (any number of) arguments**.\n```javascript\nfunction n_ary () {\n\t\n\t// Javascript has hidden n-arity through a function's not so obvious 'arguments' property\n\tfor (var obj_key in arguments) {\n\n\t\t// log argument\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// this allows us to call an n-ary function with as many or as few parameters\n// as we please, and they are all correct\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of paramters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurences `occurences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurences [car]  [This is my string about cars, it's a quick sentance about cars.] \n                  [Another car string] \n                  [One More car String.] \n                  [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any paramters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurrences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n\n## Selectors & the Namespace\n\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existence is counted as true, so bowlerderby is actually logically equivalent to true.\n\n\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?\n\n\n\nprojecting data into a flat tile automatically per date span...","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-113","dist":{"shasum":"579520ddf79703acff5ad169d2b272a46b2bb6bc","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-113.tgz","integrity":"sha512-ae6E5pzlfrTynmP02umNQ2zOCRX1m6cvxJ3PLRVQGAz8u5+P6LSLvbuzDhOQPROWlgsizCl0AkOUEiX8PbQu/w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDl9AmS4YeAEsJ9cExTxCcvYr6kn2Xij2QFZjC8pWfLAAIhALF6/gB5ENA/14TojaNdwFGWCGYksQ/BjQxXBM2CBdBJ"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-114":{"name":"yarnlang","version":"0.1.0-114","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Functions\n\nFunctions are like little machines with an in slot and an out slot.<br>\nYou put some stuff in, and you usually even get some stuff back.\n\nMost programming languages have some conceptualization of functions, and Yarn is no different. \n\nHowever unlike most programming languages, Yarn does not allow a user to make and call their own functions (known as extrinsic functions, and extrinsic function calls). Most assembly languages are also this way, only allowing the user to call built-in functions (known as intrinsic function calls).\n\n### Functional Intrinsicity, Extrinsicity & N-Arity\n\n#### Intrinsicity\n\nFunctions that are provided as part of the programming language itself are known as [Intrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_function). Every program is nothing more than these intrinsic functions combined and arranged in some meaningful way to complete a task.\n\nA few intrinsic Javascript function calls:\n```javascript\nconsole.log('hello world');\n\nMath.sqrt(9);\n\n('hello world').split('llo');\n```  \n#### Extrincity\n\nAlthough **every** program can be expressed using nothing more than intrinsic functions, it is very common to also create your own functions.  Functions that are not provided as part of the language, but rather created by the programmer are known as [Extrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties).\n\nA javascript extrinsic function definition and call:\n```javascript\nfunction my_extrinsic_function (any_string) {\n\tconsole.log(any_string);\n\t// any number of intrinsic function calls go here\n};\n\nmy_extrinsic_function('the any string');\n```\n\n#### Caveat\n\nIt is important to note that no matter how complex or incomprehensible any extrinsic function may seem, **every extrinsic function is made up of nothing more than intrinsic functions**.\n\nYarn takes advantage of this quirk by providing a strong base of intrinsic n-ary functions coupled with lateral flow control operations. In this way extrinsic functions become useful in <1% of cases, meaning <1% of programmers will ever need to handle that style of repetition, and when they do it can still be done by simply copying and pasting (which is how most naive developers would solve the task in the first place).\n\n#### N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)?\n\n+ A **nullary** function takes **no arguments**.\n\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nnullary();\n```\n\n+ A **unary** function takes **one argument**.\n\n```javascript\nfunction unary (x) {\n\tconsole.log(x);\n};\nunary('a');\n```\n\n+ A **binary** function takes **two arguments**.\n\n```javascript\nfunction binary (x, y) { \n\tconsole.log(x, y);\n};\nbinary('a', 'b');\n```\n\n+ A **ternary** function takes **three arguments**.\n\n```javascript\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nternary('a', 'b', 'c');\n```\n\n+ An **n-ary** function takes **n (any number of) arguments**.\n\n```javascript\nfunction n_ary () {\n\t\n\t// Javascript has hidden n-arity through a function's not \n\t// so obvious 'arguments' property\n\tfor (var obj_key in arguments) {\n\n\t\t// log argument\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// this allows us to call an n-ary function with as many or as few parameters\n// as we please, and they are all correct\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of paramters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurences `occurences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurences [car]  [This is my string about cars, it's a quick sentance about cars.] \n                  [Another car string] \n                  [One More car String.] \n                  [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any paramters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurrences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n\n## Selectors & the Namespace\n\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existence is counted as true, so bowlerderby is actually logically equivalent to true.\n\n\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?\n\n\n\nprojecting data into a flat tile automatically per date span...","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-114","dist":{"shasum":"42cf3491cfffa35d0ba08d366795321c4e5d0052","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-114.tgz","integrity":"sha512-I2fagjpcprk7b2SOxZLzs1or9OYDXs9qSpEIPNFxqsX2k/4z0lJYlphNwO+IyBjMUk54huZbXA1hXMdMecK11g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCntlOMX+W9GVGoQ1gGf9+B0ISCZ+qdL6+2OBTTAw++dQIhAK1YN5f1o9S6ico+/KGd1KLI6V78ilNsnc/QJQwhGPSs"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-115":{"name":"yarnlang","version":"0.1.0-115","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Functions\n\nFunctions are like little machines with an in slot and an out slot.<br>\nYou put some stuff in, and you usually even get some stuff back.\n\nMost programming languages have some conceptualization of functions, and Yarn is no different. \n\nHowever unlike most programming languages, Yarn does not allow a user to make and call their own functions (known as extrinsic functions, and extrinsic function calls). Most assembly languages are also this way, only allowing the user to call built-in functions (known as intrinsic function calls).\n\n### Functional Intrinsicity, Extrinsicity & N-Arity\n\n#### Intrinsicity\n\nFunctions that are provided as part of the programming language itself are known as [Intrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_function). Every program is nothing more than these intrinsic functions combined and arranged in some meaningful way to complete a task.\n\nA few intrinsic Javascript function calls:\n```javascript\nconsole.log('hello world');\n\nMath.sqrt(9);\n\n('hello world').split('llo');\n```  \n#### Extrincity\n\nAlthough **every** program can be expressed using nothing more than intrinsic functions, it is very common to also create your own functions.  Functions that are not provided as part of the language, but rather created by the programmer are known as [Extrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties).\n\nA javascript extrinsic function definition and call:\n```javascript\nfunction my_extrinsic_function (any_string) {\n\tconsole.log(any_string);\n\t// any number of intrinsic function calls go here\n};\n\nmy_extrinsic_function('the any string');\n```\n\n#### Caveat\n\nIt is important to note that no matter how complex or incomprehensible any extrinsic function may seem, **every extrinsic function is made up of nothing more than intrinsic functions**.\n\nYarn takes advantage of this quirk by providing a strong base of intrinsic n-ary functions coupled with lateral flow control operations. In this way extrinsic functions become useful in <1% of cases, meaning <1% of programmers will ever need to handle that style of repetition, and when they do it can still be done by simply copying and pasting (which is how most naive developers would solve the task in the first place).\n\n#### N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)? Basically how many arguments a function is willing to accept.\n\n+ A **nullary** function takes **no arguments**.\n\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nnullary();\n```\n\n+ A **unary** function takes **one argument**.\n\n```javascript\nfunction unary (x) {\n\tconsole.log(x);\n};\nunary('a');\n```\n\n+ A **binary** function takes **two arguments**.\n\n```javascript\nfunction binary (x, y) { \n\tconsole.log(x, y);\n};\nbinary('a', 'b');\n```\n\n+ A **ternary** function takes **three arguments**.\n\n```javascript\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nternary('a', 'b', 'c');\n```\n\n+ An **n-ary** function takes **n (any number of) arguments**.\n\n```javascript\nfunction n_ary () {\n\t\n\t// Javascript has hidden n-arity through a function's not \n\t// so obvious 'arguments' property\n\tfor (var obj_key in arguments) {\n\n\t\t// log argument\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// this allows us to call an n-ary function with as many or as few parameters\n// as we please, and they are all correct\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of paramters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurences `occurences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurences [car]  [This is my string about cars, it's a quick sentance about cars.] \n                  [Another car string] \n                  [One More car String.] \n                  [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any paramters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurrences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n\n## Selectors & the Namespace\n\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existence is counted as true, so bowlerderby is actually logically equivalent to true.\n\n\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?\n\n\n\nprojecting data into a flat tile automatically per date span...","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-115","dist":{"shasum":"71509cc93b4993f46accbac701cdc71254f9bf69","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-115.tgz","integrity":"sha512-4GPkRlpYZAJJzj3vLp/Y85XZcD5+Jkc6J9yyf28UgYjdNX26+fAEX4Mr4SQOIUpLgDRR9FS4xDYs4yllEmoeTQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEOEGl+hRSmeRgznHnqPV7MAAh05cS1m1NLPSkC8y1ixAiANGkvDIGQCgKQRYlyBHjUEJf7ZmNuRMD9xMivXbODoKw=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-116":{"name":"yarnlang","version":"0.1.0-116","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Functions\n\nFunctions are like little machines with an in slot and an out slot.<br>\nYou put some stuff in, and you usually even get some stuff back.\n\nMost programming languages have some conceptualization of functions, and Yarn is no different. \n\nHowever unlike most programming languages, Yarn does not allow a user to make and call their own functions (known as extrinsic functions, and extrinsic function calls). Most assembly languages are also this way, only allowing the user to call built-in functions (known as intrinsic function calls).\n\n### Functional Intrinsicity, Extrinsicity & N-Arity\n\n#### Intrinsicity\n\nFunctions that are provided as part of the programming language itself are known as [Intrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_function). Every program is nothing more than these intrinsic functions combined and arranged in some meaningful way to complete a task.\n\nA few intrinsic Javascript function calls:\n```javascript\nconsole.log('hello world');\n\nMath.sqrt(9);\n\n('hello world').split('llo');\n```  \n#### Extrincity\n\nAlthough **every** program can be expressed using nothing more than intrinsic functions, it is very common to also create your own functions.  Functions that are not provided as part of the language, but rather created by the programmer are known as [Extrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties).\n\nA javascript extrinsic function definition and call:\n```javascript\nfunction my_extrinsic_function (any_string) {\n\tconsole.log(any_string);\n\t// any number of intrinsic function calls go here\n};\n\nmy_extrinsic_function('the any string');\n```\n\n#### Caveat\n\nIt is important to note that no matter how complex or incomprehensible any extrinsic function may seem, **every extrinsic function is made up of nothing more than intrinsic functions**.\n\nYarn takes advantage of this quirk by providing a strong base of intrinsic n-ary functions coupled with lateral flow control operations. In this way extrinsic functions become useful in <1% of cases, meaning <1% of programmers will ever need to handle that style of repetition, and when they do it can still be done by simply copying and pasting (which is how most naive developers would solve the task in the first place).\n\n#### N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)? Basically how many arguments a function is willing to accept.\n\n+ A **nullary** function takes **no arguments**.\n\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nnullary();\n```\n\n+ A **unary** function takes **one argument**.\n\n```javascript\nfunction unary (x) {\n\tconsole.log(x);\n};\nunary('a');\n```\n\n+ A **binary** function takes **two arguments**.\n\n```javascript\nfunction binary (x, y) { \n\tconsole.log(x, y);\n};\nbinary('a', 'b');\n```\n\n+ A **ternary** function takes **three arguments**.\n\n```javascript\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nternary('a', 'b', 'c');\n```\n\n+ An **n-ary** function takes **n (any number of) arguments**.\n\n```javascript\nfunction n_ary () {\n\t\n\t// javascript has hidden n-arity through a function's not \n\t// so obvious 'arguments' property\n\tfor (var obj_key in arguments) {\n\n\t\t// log argument\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// this allows us to call an n-ary function with as many or as few parameters\n// as we please, and they are all correct\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of paramters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurences `occurences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurences [car]  [This is my string about cars, it's a quick sentance about cars.] \n                  [Another car string] \n                  [One More car String.] \n                  [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any paramters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurrences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n\n## Selectors & the Namespace\n\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existence is counted as true, so bowlerderby is actually logically equivalent to true.\n\n\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?\n\n\n\nprojecting data into a flat tile automatically per date span...","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-116","dist":{"shasum":"c8ba0fcd2f8b52b43e9bdddc00f33a912fffe4d4","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-116.tgz","integrity":"sha512-aXyK6agcVfd9URN1KBZU1IFrFT9AhGSvX/lleH/ZlbxLqJ7cX9voFJ31pSTftbd4O0IoUU8PSV3WROsXPHqHig==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDQUkAQ+3RFwMGgkCzlJ4YHjKwWVL+U9wa8BI8fe1LHGQIhAMd3NxvA8SrMimpHxgI5tvf9nXTwm2eirR5sOCiWV8hJ"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-117":{"name":"yarnlang","version":"0.1.0-117","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Functions\n\nFunctions are like little machines with an in slot and an out slot.<br>\nYou put some stuff in, and you usually even get some stuff back.\n\nMost programming languages have some conceptualization of functions, and Yarn is no different. \n\nHowever unlike most programming languages, Yarn does not allow a user to make and call their own functions (known as extrinsic functions, and extrinsic function calls). Most assembly languages are also this way, only allowing the user to call built-in functions (known as intrinsic function calls).\n\n### Functional Intrinsicity, Extrinsicity & N-Arity\n\n#### Intrinsicity\n\nFunctions that are provided as part of the programming language itself are known as [Intrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_function). Every program is nothing more than these intrinsic functions combined and arranged in some meaningful way to complete a task.\n\nA few intrinsic Javascript function calls:\n```javascript\nconsole.log('hello world');\n\nMath.sqrt(9);\n\n('hello world').split('llo');\n```  \n#### Extrincity\n\nAlthough **every** program can be expressed using nothing more than intrinsic functions, it is very common to also create your own functions.  Functions that are not provided as part of the language, but rather created by the programmer are known as [Extrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties).\n\nA javascript extrinsic function definition and call:\n```javascript\nfunction my_extrinsic_function (any_string) {\n\tconsole.log(any_string);\n\t// any number of intrinsic function calls go here\n};\n\nmy_extrinsic_function('the any string');\n```\n\n#### Caveat\n\nIt is important to note that no matter how complex or incomprehensible any extrinsic function may seem, **every extrinsic function is made up of nothing more than intrinsic functions**.\n\nYarn takes advantage of this quirk by providing a strong base of intrinsic n-ary functions coupled with lateral flow control operations. In this way extrinsic functions become useful in <1% of cases, meaning <1% of programmers will ever need to handle that style of repetition, and when they do it can still be done by simply copying and pasting (which is how most naive developers would solve the task in the first place).\n\n#### N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)? Basically how many arguments a function is willing to accept.\n\n+ A **nullary** function takes **no arguments**.\n\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nnullary();\n```\n\n+ A **unary** function takes **one argument**.\n\n```javascript\nfunction unary (x) {\n\tconsole.log(x);\n};\nunary('a');\n```\n\n+ A **binary** function takes **two arguments**.\n\n```javascript\nfunction binary (x, y) { \n\tconsole.log(x, y);\n};\nbinary('a', 'b');\n```\n\n+ A **ternary** function takes **three arguments**.\n\n```javascript\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nternary('a', 'b', 'c');\n```\n\n+ An **n-ary** function takes **n (any number of) arguments**.\n\n```javascript\nfunction n_ary () {\n\t\n\t// javascript has hidden n-arity through a function's not \n\t// so obvious 'arguments' property\n\tfor (var obj_key in arguments) {\n\n\t\t// log argument\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// this allows us to call an n-ary function with as many or as \n// few parameters as we please, and all forms are correct\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of paramters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurences `occurences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurences [car]  [This is my string about cars, it's a quick sentance about cars.] \n                  [Another car string] \n                  [One More car String.] \n                  [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any paramters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurrences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n\n## Selectors & the Namespace\n\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existence is counted as true, so bowlerderby is actually logically equivalent to true.\n\n\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?\n\n\n\nprojecting data into a flat tile automatically per date span...","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-117","dist":{"shasum":"850593b61845242f3e63ec1aa69a202550bf76bf","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-117.tgz","integrity":"sha512-vwD8lC/9oXZ2Rc80hvsnH7YXeFOzTtpManKSoS7fDsvHf2/3vyFeQjpvsZ471v5ISl0RE+AGJ6uafNkfGrzMvw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCMtobybO2/yOqSNZkpq0eDVSFgCNYJPAsXRWiB3TyOjwIgNHOlDWdegW5IojxahsRxhJe3pBq5pr04DW+WZDlR0oc="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-118":{"name":"yarnlang","version":"0.1.0-118","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Functions\n\nFunctions are like little machines with an in slot and an out slot.<br>\nYou put some stuff in, and you usually even get some stuff back.\n\nMost programming languages have some conceptualization of functions, and Yarn is no different. \n\nHowever unlike most programming languages, Yarn does not allow a user to make and call their own functions (known as extrinsic functions, and extrinsic function calls). Most assembly languages are also this way, only allowing the user to call built-in functions (known as intrinsic function calls).\n\n### Functional Intrinsicity, Extrinsicity & N-Arity\n\n#### Intrinsicity\n\nFunctions that are provided as part of the programming language itself are known as [Intrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_function). Every program is nothing more than these intrinsic functions combined and arranged in some meaningful way to complete a task.\n\nA few intrinsic Javascript function calls:\n```javascript\nconsole.log('hello world');\n\nMath.sqrt(9);\n\n('hello world').split('llo');\n```  \n#### Extrincity\n\nAlthough **every** program can be expressed using nothing more than intrinsic functions, it is very common to also create your own functions to help remove repetition.  Functions that are not provided as part of the language, but rather created by the programmer are known as [Extrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties).\n\nA javascript extrinsic function definition and call:\n```javascript\nfunction my_extrinsic_function (any_string) {\n\tconsole.log(any_string);\n\t// any number of intrinsic function calls go here\n};\n\nmy_extrinsic_function('the any string');\n```\n\n#### Caveat\n\nIt is important to note that no matter how complex or incomprehensible any extrinsic function may seem, **every extrinsic function is made up of nothing more than intrinsic functions**.\n\nYarn takes advantage of this quirk by providing a strong base of intrinsic n-ary functions coupled with lateral flow control operations. In this way extrinsic functions become useful in <1% of cases, meaning <1% of programmers will ever need to handle that style of repetition, and when they do it can still be done by simply copying and pasting (which is how most naive developers would solve the task in the first place).\n\n#### N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)? Basically how many arguments a function is willing to accept.\n\n+ A **nullary** function takes **no arguments**.\n\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nnullary();\n```\n\n+ A **unary** function takes **one argument**.\n\n```javascript\nfunction unary (x) {\n\tconsole.log(x);\n};\nunary('a');\n```\n\n+ A **binary** function takes **two arguments**.\n\n```javascript\nfunction binary (x, y) { \n\tconsole.log(x, y);\n};\nbinary('a', 'b');\n```\n\n+ A **ternary** function takes **three arguments**.\n\n```javascript\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nternary('a', 'b', 'c');\n```\n\n+ An **n-ary** function takes **n (any number of) arguments**.\n\n```javascript\nfunction n_ary () {\n\t\n\t// javascript has hidden n-arity through a function's not \n\t// so obvious 'arguments' property\n\tfor (var obj_key in arguments) {\n\n\t\t// log argument\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// this allows us to call an n-ary function with as many or as \n// few parameters as we please, and all forms are correct\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of paramters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurences `occurences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurences [car]  [This is my string about cars, it's a quick sentance about cars.] \n                  [Another car string] \n                  [One More car String.] \n                  [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any paramters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurrences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n\n## Selectors & the Namespace\n\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existence is counted as true, so bowlerderby is actually logically equivalent to true.\n\n\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?\n\n\n\nprojecting data into a flat tile automatically per date span...","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-118","dist":{"shasum":"e7ce134cc2973a0c860565648f77138d4f26e417","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-118.tgz","integrity":"sha512-Xv3NWOui5yLKSEOlUHY2ScmB0MPCLQKOy528Jnc648UWTwRnwQuaEjfgKLTzKyPAapmhqcAHqJ9gCQk1N/PJ0A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDjrzZRC5+6q6uJFiU3GdEw7b/gFNKpNOcI4YqQTJcstAiAn5rYtIK6OEQPwuKhawbiWP6YtT9yiCrNO7ojKH5KSbQ=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-119":{"name":"yarnlang","version":"0.1.0-119","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Data Types & Object Representation\n\nPrograms assess and manipulate data, nothing more, sometimes less. So it would stand to reason that how a language chooses to represent data is a key factor in determining the shape and overall effectiveness of every program written in that language.\n\nYarn takes a new perspective on data representation, forcing all newcomers to do a little brain refactoring to get wrapped around it's seemingly esoteric syntax.  Instead of trying to digest everything at once, it's often better to see the inspirations and causalities behind the design choices. The next sections attempt to give a clear view of the playing field, and to allow you to make your own informed assessment of the methodology's efficacy.  \n\n### Object Representation, The Namespace & Selectors\n\n#### Object Representation\n\n#### The Namespace\n\n#### Selectors\n\nloves [Redis](http://redis.io/), that's no secret\n\n## Functions\n\nFunctions are like little machines with an in slot and an out slot.<br>\nYou put some stuff in, and you usually even get some stuff back.\n\nMost programming languages have some conceptualization of functions, and Yarn is no different. \n\nHowever unlike most programming languages, Yarn does not allow a user to make and call their own functions (known as extrinsic functions, and extrinsic function calls). Most assembly languages are also this way, only allowing the user to call built-in functions (known as intrinsic function calls).\n\n### Functional Intrinsicity, Extrinsicity & N-Arity\n\n#### Intrinsicity\n\nFunctions that are provided as part of the programming language itself are known as [Intrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_function). Every program is nothing more than these intrinsic functions combined and arranged in some meaningful way to complete a task.\n\nA few intrinsic Javascript function calls:\n```javascript\nconsole.log('hello world');\n\nMath.sqrt(9);\n\n('hello world').split('llo');\n```  \n#### Extrincity\n\nAlthough **every** program can be expressed using nothing more than intrinsic functions, it is very common to also create your own functions to help remove repetition.  Functions that are not provided as part of the language, but rather created by the programmer are known as [Extrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties).\n\nA javascript extrinsic function definition and call:\n```javascript\nfunction my_extrinsic_function (any_string) {\n\tconsole.log(any_string);\n\t// any number of intrinsic function calls go here\n};\n\nmy_extrinsic_function('the any string');\n```\n\n#### Caveat\n\nIt is important to note that no matter how complex or incomprehensible any extrinsic function may seem, **every extrinsic function is made up of nothing more than intrinsic functions**.\n\nYarn takes advantage of this quirk by providing a strong base of intrinsic n-ary functions coupled with lateral flow control operations. In this way extrinsic functions become useful in <1% of cases, meaning <1% of programmers will ever need to handle that style of repetition, and when they do it can still be done by simply copying and pasting (which is how most naive developers would solve the task in the first place).\n\n#### N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)? Basically how many arguments a function is willing to accept.\n\n+ A **nullary** function takes **no arguments**.\n\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nnullary();\n```\n\n+ A **unary** function takes **one argument**.\n\n```javascript\nfunction unary (x) {\n\tconsole.log(x);\n};\nunary('a');\n```\n\n+ A **binary** function takes **two arguments**.\n\n```javascript\nfunction binary (x, y) { \n\tconsole.log(x, y);\n};\nbinary('a', 'b');\n```\n\n+ A **ternary** function takes **three arguments**.\n\n```javascript\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nternary('a', 'b', 'c');\n```\n\n+ An **n-ary** function takes **n (any number of) arguments**.\n\n```javascript\nfunction n_ary () {\n\t\n\t// javascript has hidden n-arity through a function's not \n\t// so obvious 'arguments' property\n\tfor (var obj_key in arguments) {\n\n\t\t// log argument\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// this allows us to call an n-ary function with as many or as \n// few parameters as we please, and all forms are correct\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of paramters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurences `occurences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurences [car]  [This is my string about cars, it's a quick sentance about cars.] \n                  [Another car string] \n                  [One More car String.] \n                  [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any paramters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurrences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existence is counted as true, so bowlerderby is actually logically equivalent to true.\n\n\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?\n\n\n\nprojecting data into a flat tile automatically per date span...","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-119","dist":{"shasum":"21b9598f89a4fc9d5923e32c47cdaf5fd3f6ffd6","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-119.tgz","integrity":"sha512-0kpVMBw3YcJnbFvm1GCMxpRiqh8v3Oy8EoMTJIQz2rr1tkVUQPdlzn5XLXi8Qy55PqUYcgdNZ6BhEtZmV9wCjw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCaz6Da+suQXpqt5Epi0BWwQP4aXFP0Az2rfDMF0+oaEQIhAOsvq2/Opl0Xh+sWCsuCXUZG/mh+UZnDT2HwcJmUlFiu"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-120":{"name":"yarnlang","version":"0.1.0-120","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Data Types & Object Representation\n\nPrograms assess and manipulate data, nothing more, sometimes less. So it would stand to reason that how a language chooses to represent data is a key factor in determining the shape and overall effectiveness of every program written in that language.\n\nYarn takes a new perspective on data representation, forcing all newcomers to do a little brain refactoring to get wrapped around it's seemingly esoteric syntax.  Instead of trying to digest everything at once, it's often better to see the inspirations and causalities behind the design choices - as solutions are meaningless without problems for them to solve. The next sections attempt to give a clear view of the playing field, and to provide you the means to make your own informed assessment of the methodology's efficacy.  \n\n### Object Representation, The Namespace & Selectors\n\n[JavaScript](http://en.wikipedia.org/wiki/JavaScript) is a beautifully minimal language in many ways, but most notably in it's data representation format known as [JSON](http://en.wikipedia.org/wiki/JSON). JSON is a plain text format for representing data, and is arguably the standard of modern data portability. Because JSON exists only as plain text, it can be [parsed](http://en.wikipedia.org/wiki/Parsing) (read and understood) by virtually any language that can work with [strings](http://en.wikipedia.org/wiki/String_computer_science).\n\n#### Object Representation\n\n#### The Namespace\n\n#### Selectors\n\nloves [Redis](http://redis.io/), that's no secret\n\n## Functions\n\nFunctions are like little machines with an in slot and an out slot.<br>\nYou put some stuff in, and you usually even get some stuff back.\n\nMost programming languages have some conceptualization of functions, and Yarn is no different. \n\nHowever unlike most programming languages, Yarn does not allow a user to make and call their own functions (known as extrinsic functions, and extrinsic function calls). Most assembly languages are also this way, only allowing the user to call built-in functions (known as intrinsic function calls).\n\n### Functional Intrinsicity, Extrinsicity & N-Arity\n\n#### Intrinsicity\n\nFunctions that are provided as part of the programming language itself are known as [Intrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_function). Every program is nothing more than these intrinsic functions combined and arranged in some meaningful way to complete a task.\n\nA few intrinsic Javascript function calls:\n```javascript\nconsole.log('hello world');\n\nMath.sqrt(9);\n\n('hello world').split('llo');\n```  \n#### Extrincity\n\nAlthough **every** program can be expressed using nothing more than intrinsic functions, it is very common to also create your own functions to help remove repetition.  Functions that are not provided as part of the language, but rather created by the programmer are known as [Extrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties).\n\nA javascript extrinsic function definition and call:\n```javascript\nfunction my_extrinsic_function (any_string) {\n\tconsole.log(any_string);\n\t// any number of intrinsic function calls go here\n};\n\nmy_extrinsic_function('the any string');\n```\n\n#### Caveat\n\nIt is important to note that no matter how complex or incomprehensible any extrinsic function may seem, **every extrinsic function is made up of nothing more than intrinsic functions**.\n\nYarn takes advantage of this quirk by providing a strong base of intrinsic n-ary functions coupled with lateral flow control operations. In this way extrinsic functions become useful in <1% of cases, meaning <1% of programmers will ever need to handle that style of repetition, and when they do it can still be done by simply copying and pasting (which is how most naive developers would solve the task in the first place).\n\n#### N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)? Basically how many arguments a function is willing to accept.\n\n+ A **nullary** function takes **no arguments**.\n\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nnullary();\n```\n\n+ A **unary** function takes **one argument**.\n\n```javascript\nfunction unary (x) {\n\tconsole.log(x);\n};\nunary('a');\n```\n\n+ A **binary** function takes **two arguments**.\n\n```javascript\nfunction binary (x, y) { \n\tconsole.log(x, y);\n};\nbinary('a', 'b');\n```\n\n+ A **ternary** function takes **three arguments**.\n\n```javascript\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nternary('a', 'b', 'c');\n```\n\n+ An **n-ary** function takes **n (any number of) arguments**.\n\n```javascript\nfunction n_ary () {\n\t\n\t// javascript has hidden n-arity through a function's not \n\t// so obvious 'arguments' property\n\tfor (var obj_key in arguments) {\n\n\t\t// log argument\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// this allows us to call an n-ary function with as many or as \n// few parameters as we please, and all forms are correct\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of paramters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurences `occurences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurences [car]  [This is my string about cars, it's a quick sentance about cars.] \n                  [Another car string] \n                  [One More car String.] \n                  [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any paramters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurrences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existence is counted as true, so bowlerderby is actually logically equivalent to true.\n\n\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?\n\n\n\nprojecting data into a flat tile automatically per date span...","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-120","dist":{"shasum":"8f17856b0751ab2873e551f2d9258db823c14437","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-120.tgz","integrity":"sha512-vIT8EzgCbPm9m/RPpKSpAtgX/Ceqg2BPcYQPcrurUjV+I9MTvrtNtrKXABOmXcwOGMJ4L0801Cp92TjjEPoyqg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGfVBuSuvssVmhjciXhAeiPGoptnTETbSQWGta1WaPbPAiAT/OJdvc6V7/WiskkpF0S8+l/lhuEU+mkz+PZZFlVpHg=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-121":{"name":"yarnlang","version":"0.1.0-121","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Data Types & Object Representation\n\nPrograms assess and manipulate data, nothing more, sometimes less. So it would stand to reason that how a language chooses to represent data is a key factor in determining the shape and overall effectiveness of every program written in that language.\n\nYarn takes a new perspective on data representation, forcing all newcomers to do a little brain refactoring to get wrapped around it's seemingly esoteric syntax.  Instead of trying to digest everything at once, it's often better to see the inspirations and causalities behind the design choices - as solutions are meaningless without problems for them to solve. The next sections attempt to give a clear view of the playing field, and to provide you the means to make your own informed assessment of the methodology's efficacy.  \n\n### Object Representation, The Namespace & Selectors\n\n[JavaScript](http://en.wikipedia.org/wiki/JavaScript) is a beautifully minimal language in many ways, but most notably in it's data representation format known as [JSON](http://en.wikipedia.org/wiki/JSON). JSON is a plain text format for representing data, and is arguably the standard of modern data portability. Because JSON exists only as plain text, it can be [parsed](http://en.wikipedia.org/wiki/Parsing) (read and understood) by virtually any language that can work with [strings](http://en.wikipedia.org/wiki/String_(computer_science)).\n\n#### Object Representation\n\n#### The Namespace\n\n#### Selectors\n\nloves [Redis](http://redis.io/), that's no secret\n\n## Functions\n\nFunctions are like little machines with an in slot and an out slot.<br>\nYou put some stuff in, and you usually even get some stuff back.\n\nMost programming languages have some conceptualization of functions, and Yarn is no different. \n\nHowever unlike most programming languages, Yarn does not allow a user to make and call their own functions (known as extrinsic functions, and extrinsic function calls). Most assembly languages are also this way, only allowing the user to call built-in functions (known as intrinsic function calls).\n\n### Functional Intrinsicity, Extrinsicity & N-Arity\n\n#### Intrinsicity\n\nFunctions that are provided as part of the programming language itself are known as [Intrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_function). Every program is nothing more than these intrinsic functions combined and arranged in some meaningful way to complete a task.\n\nA few intrinsic Javascript function calls:\n```javascript\nconsole.log('hello world');\n\nMath.sqrt(9);\n\n('hello world').split('llo');\n```  \n#### Extrincity\n\nAlthough **every** program can be expressed using nothing more than intrinsic functions, it is very common to also create your own functions to help remove repetition.  Functions that are not provided as part of the language, but rather created by the programmer are known as [Extrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties).\n\nA javascript extrinsic function definition and call:\n```javascript\nfunction my_extrinsic_function (any_string) {\n\tconsole.log(any_string);\n\t// any number of intrinsic function calls go here\n};\n\nmy_extrinsic_function('the any string');\n```\n\n#### Caveat\n\nIt is important to note that no matter how complex or incomprehensible any extrinsic function may seem, **every extrinsic function is made up of nothing more than intrinsic functions**.\n\nYarn takes advantage of this quirk by providing a strong base of intrinsic n-ary functions coupled with lateral flow control operations. In this way extrinsic functions become useful in <1% of cases, meaning <1% of programmers will ever need to handle that style of repetition, and when they do it can still be done by simply copying and pasting (which is how most naive developers would solve the task in the first place).\n\n#### N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)? Basically how many arguments a function is willing to accept.\n\n+ A **nullary** function takes **no arguments**.\n\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nnullary();\n```\n\n+ A **unary** function takes **one argument**.\n\n```javascript\nfunction unary (x) {\n\tconsole.log(x);\n};\nunary('a');\n```\n\n+ A **binary** function takes **two arguments**.\n\n```javascript\nfunction binary (x, y) { \n\tconsole.log(x, y);\n};\nbinary('a', 'b');\n```\n\n+ A **ternary** function takes **three arguments**.\n\n```javascript\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nternary('a', 'b', 'c');\n```\n\n+ An **n-ary** function takes **n (any number of) arguments**.\n\n```javascript\nfunction n_ary () {\n\t\n\t// javascript has hidden n-arity through a function's not \n\t// so obvious 'arguments' property\n\tfor (var obj_key in arguments) {\n\n\t\t// log argument\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// this allows us to call an n-ary function with as many or as \n// few parameters as we please, and all forms are correct\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of paramters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurences `occurences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurences [car]  [This is my string about cars, it's a quick sentance about cars.] \n                  [Another car string] \n                  [One More car String.] \n                  [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any paramters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurrences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existence is counted as true, so bowlerderby is actually logically equivalent to true.\n\n\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?\n\n\n\nprojecting data into a flat tile automatically per date span...","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-121","dist":{"shasum":"f237d0228d8928a0ef66ea8b76b89616087eb258","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-121.tgz","integrity":"sha512-H6fyWASXicGSYI0mDatfECR5gxnQ4ufw+G7BitYDzU2PG6eJIoCDuQvDdxSxdwa2qmCseGT4PY6o0Fh1tE9Y2A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDg2c2EI6ZoX99LQeZNk8oe1e8gHlaxg3BVcAxusi8glgIhAOXQg6xV2sccy4Lli8k3hivOw+8KfHZpP/fm0OGNXJzp"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-122":{"name":"yarnlang","version":"0.1.0-122","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Data Types & Object Representation\n\nPrograms assess and manipulate data, nothing more, sometimes less. So it would stand to reason that how a language chooses to represent data is a key factor in determining the shape and overall effectiveness of every program written in that language.\n\nYarn takes a new perspective on data representation, forcing all newcomers to do a little brain refactoring to get wrapped around it's seemingly esoteric syntax.  Instead of trying to digest everything at once, it's often better to see the inspirations and causalities behind the design choices - as solutions are meaningless without problems for them to solve. The next sections attempt to give a clear view of the playing field, and to provide you the means to make your own informed assessment of the methodology's efficacy.  \n\n### Object Representation, The Namespace & Selectors\n\n[JavaScript](http://en.wikipedia.org/wiki/JavaScript) is a beautifully minimal language in many ways, but most notably in it's data representation format known as [JSON](http://en.wikipedia.org/wiki/JSON). JSON is a plain text format for representing data, and is arguably the standard of modern data portability. Because JSON exists only as plain text, it can be [parsed](http://en.wikipedia.org/wiki/Parsing) (read and understood) by virtually any language that can work with [strings](http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FString_%28computer_science%29).\n\n#### Object Representation\n\n#### The Namespace\n\n#### Selectors\n\nloves [Redis](http://redis.io/), that's no secret\n\n## Functions\n\nFunctions are like little machines with an in slot and an out slot.<br>\nYou put some stuff in, and you usually even get some stuff back.\n\nMost programming languages have some conceptualization of functions, and Yarn is no different. \n\nHowever unlike most programming languages, Yarn does not allow a user to make and call their own functions (known as extrinsic functions, and extrinsic function calls). Most assembly languages are also this way, only allowing the user to call built-in functions (known as intrinsic function calls).\n\n### Functional Intrinsicity, Extrinsicity & N-Arity\n\n#### Intrinsicity\n\nFunctions that are provided as part of the programming language itself are known as [Intrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_function). Every program is nothing more than these intrinsic functions combined and arranged in some meaningful way to complete a task.\n\nA few intrinsic Javascript function calls:\n```javascript\nconsole.log('hello world');\n\nMath.sqrt(9);\n\n('hello world').split('llo');\n```  \n#### Extrincity\n\nAlthough **every** program can be expressed using nothing more than intrinsic functions, it is very common to also create your own functions to help remove repetition.  Functions that are not provided as part of the language, but rather created by the programmer are known as [Extrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties).\n\nA javascript extrinsic function definition and call:\n```javascript\nfunction my_extrinsic_function (any_string) {\n\tconsole.log(any_string);\n\t// any number of intrinsic function calls go here\n};\n\nmy_extrinsic_function('the any string');\n```\n\n#### Caveat\n\nIt is important to note that no matter how complex or incomprehensible any extrinsic function may seem, **every extrinsic function is made up of nothing more than intrinsic functions**.\n\nYarn takes advantage of this quirk by providing a strong base of intrinsic n-ary functions coupled with lateral flow control operations. In this way extrinsic functions become useful in <1% of cases, meaning <1% of programmers will ever need to handle that style of repetition, and when they do it can still be done by simply copying and pasting (which is how most naive developers would solve the task in the first place).\n\n#### N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)? Basically how many arguments a function is willing to accept.\n\n+ A **nullary** function takes **no arguments**.\n\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nnullary();\n```\n\n+ A **unary** function takes **one argument**.\n\n```javascript\nfunction unary (x) {\n\tconsole.log(x);\n};\nunary('a');\n```\n\n+ A **binary** function takes **two arguments**.\n\n```javascript\nfunction binary (x, y) { \n\tconsole.log(x, y);\n};\nbinary('a', 'b');\n```\n\n+ A **ternary** function takes **three arguments**.\n\n```javascript\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nternary('a', 'b', 'c');\n```\n\n+ An **n-ary** function takes **n (any number of) arguments**.\n\n```javascript\nfunction n_ary () {\n\t\n\t// javascript has hidden n-arity through a function's not \n\t// so obvious 'arguments' property\n\tfor (var obj_key in arguments) {\n\n\t\t// log argument\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// this allows us to call an n-ary function with as many or as \n// few parameters as we please, and all forms are correct\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of paramters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurences `occurences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurences [car]  [This is my string about cars, it's a quick sentance about cars.] \n                  [Another car string] \n                  [One More car String.] \n                  [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any paramters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurrences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existence is counted as true, so bowlerderby is actually logically equivalent to true.\n\n\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?\n\n\n\nprojecting data into a flat tile automatically per date span...","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-122","dist":{"shasum":"0dfbe706e0c295c2d9cf2c7e6d554b3f69dde2a0","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-122.tgz","integrity":"sha512-5nBBt8EkmbQ3mckLz2SkFnntHD2mHhcfoTQmCG6t2PslcCmAD8gaRG+HgBARvW2VPoh9hd8j05LpM1CJCuVj0A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBjVkF7GDtu1rUxN52LcRq5+G1zzVXR4v+7FKL9vYxUjAiEAmHM09khABPxXsDqsGnqof5FSaqEYW7aGq2WpBRVaCQ8="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-123":{"name":"yarnlang","version":"0.1.0-123","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Data Types & Object Representation\n\nPrograms assess and manipulate data, nothing more, sometimes less. So it would stand to reason that how a language chooses to represent data is a key factor in determining the shape and overall effectiveness of every program written in that language.\n\nYarn takes a new perspective on data representation, forcing all newcomers to do a little brain refactoring to get wrapped around it's seemingly esoteric syntax.  Instead of trying to digest everything at once, it's often better to see the inspirations and causalities behind the design choices - as solutions are meaningless without problems for them to solve. The next sections attempt to give a clear view of the playing field, and to provide you the means to make your own informed assessment of the methodology's efficacy.  \n\n### Object Representation, The Namespace & Selectors\n\n[JavaScript](http://en.wikipedia.org/wiki/JavaScript) is a beautifully minimal language in many ways, but most notably in it's data representation format known as [JSON](http://en.wikipedia.org/wiki/JSON) (JavaScript Object Notation). JSON is a plain text format for representing data (strings, numbers, objects and arrays), and is arguably the standard of modern data portability. Because JSON exists only as plain text, it can be [parsed](http://en.wikipedia.org/wiki/Parsing) (read and understood) by virtually any language that can work with strings.\n\nFor example, a JSON representation of an array of 3 objects representing simple blog posts:\n```json\n[\n    {\n        \"poster\": {\n            \"name\": \"jack\",\n            \"avatar\": \"http://img\",\n            \"age\": 42\n        },\n        \"blog_body\": \"Lorem ipsum hey there dipsum, shipsum, kipsum.\",\n        \"blog_title\": \"The Lorem Report\",\n        \"blog_created_at\": 1382383726087\n    },\n    {\n        \"poster\": {\n            \"name\": \"jill\",\n            \"avatar\": \"http://img2\",\n            \"age\": 20\n        },\n        \"blog_body\": \"Rorem jipsum hey there dipsum, shipsum, kipsum.\",\n        \"blog_title\": \"The Rorem Report\",\n        \"blog_created_at\": 1382383526087\n    },\n    {\n        \"poster\": {\n            \"name\": \"jill\",\n            \"avatar\": \"http://img2\",\n            \"age\": 20\n        },\n        \"blog_body\": \"And that's okay.\",\n        \"blog_title\": \"My Cat's Breath Smells Like Catfood\",\n        \"blog_created_at\": 1382363726087\n    }\n]\n```\n\n#### Object Representation\n\n#### The Namespace\n\n#### Selectors\n\nloves [Redis](http://redis.io/), that's no secret\n\n## Functions\n\nFunctions are like little machines with an in slot and an out slot.<br>\nYou put some stuff in, and you usually even get some stuff back.\n\nMost programming languages have some conceptualization of functions, and Yarn is no different. \n\nHowever unlike most programming languages, Yarn does not allow a user to make and call their own functions (known as extrinsic functions, and extrinsic function calls). Most assembly languages are also this way, only allowing the user to call built-in functions (known as intrinsic function calls).\n\n### Functional Intrinsicity, Extrinsicity & N-Arity\n\n#### Intrinsicity\n\nFunctions that are provided as part of the programming language itself are known as [Intrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_function). Every program is nothing more than these intrinsic functions combined and arranged in some meaningful way to complete a task.\n\nA few intrinsic Javascript function calls:\n```javascript\nconsole.log('hello world');\n\nMath.sqrt(9);\n\n('hello world').split('llo');\n```  \n#### Extrincity\n\nAlthough **every** program can be expressed using nothing more than intrinsic functions, it is very common to also create your own functions to help remove repetition.  Functions that are not provided as part of the language, but rather created by the programmer are known as [Extrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties).\n\nA javascript extrinsic function definition and call:\n```javascript\nfunction my_extrinsic_function (any_string) {\n\tconsole.log(any_string);\n\t// any number of intrinsic function calls go here\n};\n\nmy_extrinsic_function('the any string');\n```\n\n#### Caveat\n\nIt is important to note that no matter how complex or incomprehensible any extrinsic function may seem, **every extrinsic function is made up of nothing more than intrinsic functions**.\n\nYarn takes advantage of this quirk by providing a strong base of intrinsic n-ary functions coupled with lateral flow control operations. In this way extrinsic functions become useful in <1% of cases, meaning <1% of programmers will ever need to handle that style of repetition, and when they do it can still be done by simply copying and pasting (which is how most naive developers would solve the task in the first place).\n\n#### N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)? Basically how many arguments a function is willing to accept.\n\n+ A **nullary** function takes **no arguments**.\n\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nnullary();\n```\n\n+ A **unary** function takes **one argument**.\n\n```javascript\nfunction unary (x) {\n\tconsole.log(x);\n};\nunary('a');\n```\n\n+ A **binary** function takes **two arguments**.\n\n```javascript\nfunction binary (x, y) { \n\tconsole.log(x, y);\n};\nbinary('a', 'b');\n```\n\n+ A **ternary** function takes **three arguments**.\n\n```javascript\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nternary('a', 'b', 'c');\n```\n\n+ An **n-ary** function takes **n (any number of) arguments**.\n\n```javascript\nfunction n_ary () {\n\t\n\t// javascript has hidden n-arity through a function's not \n\t// so obvious 'arguments' property\n\tfor (var obj_key in arguments) {\n\n\t\t// log argument\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// this allows us to call an n-ary function with as many or as \n// few parameters as we please, and all forms are correct\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of paramters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurences `occurences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurences [car]  [This is my string about cars, it's a quick sentance about cars.] \n                  [Another car string] \n                  [One More car String.] \n                  [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any paramters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurrences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existence is counted as true, so bowlerderby is actually logically equivalent to true.\n\n\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?\n\n\n\nprojecting data into a flat tile automatically per date span...","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-123","dist":{"shasum":"de1a184bb24e030b3d70726146daac5d9b20a93c","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-123.tgz","integrity":"sha512-9jUsZWoV4l4JQbF9pkmbCYApNDOmBFWz3LaserP9qS1S96jmmpf+I8eBSjzIlvOguoNaZcmvKYtDY3DTg8NM7g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDhit8TgRRZ6pjQ/TuDfojCg0+R4PejDDNEUG95Vx+pnQIgA+7MbFqFLnTngo3BIg9/ds3s2wf0zNYFqzSfY/n2skc="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-124":{"name":"yarnlang","version":"0.1.0-124","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Data Types & Object Representation\n\nPrograms assess and manipulate data, nothing more, sometimes less. So it would stand to reason that how a language chooses to represent data is a key factor in determining the shape and overall effectiveness of every program written in that language.\n\nYarn takes a new perspective on data representation, forcing all newcomers to do a little brain refactoring to get wrapped around it's seemingly esoteric syntax.  Instead of trying to digest everything at once, it's often better to see the inspirations and causalities behind the design choices - as solutions are meaningless without problems for them to solve. The next sections attempt to give a clear view of the playing field, and to provide you the means to make your own informed assessment of the methodology's efficacy.  \n\n### Object Representation, The Namespace & Selectors\n\n[JavaScript](http://en.wikipedia.org/wiki/JavaScript) is a beautifully minimal language in many ways, but most notably in it's data representation format known as [JSON](http://en.wikipedia.org/wiki/JSON) (JavaScript Object Notation). \n\nJSON is a plain text format for representing data (strings, numbers, objects and arrays), and is arguably the standard of modern data portability. JSON is [parseable](http://en.wikipedia.org/wiki/Parsing) (to be read and understood) by virtually any language that can work with strings.  JSON is also very extensible in that objects are not instances of any class, and may have properties freely added and removed from them without affecting other objects.\n\nYarn carries this portability forward by producing all of it's output in JSON format, which naturally imbues Yarn with only three underlying data types to worry about: Strings, Numbers and Objects. As far as yarn is concerned Arrays are just Objects with other Objects as ordered children.\n\n#### Object Representation\n\nFirst let's take a look at a sample JSON object representing an array of 3 blog posts:\nFor example, a JSON representation of an array of 3 objects representing simple blog posts:\n```json\n[\n    {\n        \"poster\": {\n            \"name\": \"jack\",\n            \"avatar\": \"http://img\",\n            \"age\": 42\n        },\n        \"blog_body\": \"Lorem ipsum hey there dipsum, shipsum, kipsum.\",\n        \"blog_title\": \"The Lorem Report\",\n        \"blog_created_at\": 1382383726087\n    },\n    {\n        \"poster\": {\n            \"name\": \"jill\",\n            \"avatar\": \"http://img2\",\n            \"age\": 20\n        },\n        \"blog_body\": \"Rorem jipsum hey there dipsum, shipsum, kipsum.\",\n        \"blog_title\": \"The Rorem Report\",\n        \"blog_created_at\": 1382383526087\n    },\n    {\n        \"poster\": {\n            \"name\": \"jill\",\n            \"avatar\": \"http://img2\",\n            \"age\": 20\n        },\n        \"blog_body\": \"And that's okay.\",\n        \"blog_title\": \"My Cat's Breath Smells Like Catfood\",\n        \"blog_created_at\": 1382363726087\n    }\n]\n```\nIn JavaScript if we wanted to access the blog title of the first post we would use:\n```javascript\nMY_OBJECT[0].blog_title\n```\nOr if we wanted the name of the poster in the 3rd blog post we would use:\n```javascript\nMY_OBJECT[2].poster.name\n```\nAs you can see JavaScript allows deep access to objects by appending `.field_name` and deep access to array's by appending `[array_index]`.\n\nNow let's take a look at how Yarn represents that same data:\n```json\n{\n    \"0.poster.name\": \"jack\",\n    \"0.poster.avatar\": \"http://img\",\n    \"0.poster.age\": 42,\n    \"0.blog_body\": \"Lorem ipsum hey there dipsum, shipsum, kipsum.\",\n    \"0.blog_title\": \"The Lorem Report\",\n    \"0.blog_created_at\": 1382383726087,\n    \"1.poster.name\": \"jill\",\n    \"1.poster.avatar\": \"http://img2\",\n    \"1.poster.age\": 20,\n    \"1.blog_body\": \"Rorem jipsum hey there dipsum, shipsum, kipsum.\",\n    \"1.blog_title\": \"The Rorem Report\",\n    \"1.blog_created_at\": 1382383526087,\n    \"2.poster.name\": \"jill\",\n    \"2.posteravatar\": \"http://img2\",\n    \"2.posterage\": 20,\n    \"2.blog_body\": \"And that's okay.\",\n    \"2.blog_title\": \"My Cat's Breath Smells Like Catfood\",\n    \"2.blog_created_at\": 1382363726087\n}\n```\nWe like to call this 'Flat JSON' or 'FJSON' for short. Flat, because all the data exists as a single object with many fields. Although this appears in a less human readable format than traditional JSON - it allows us a few tricks that are otherwise clumsy and unforgiving normally.\n\n```\nIn JavaScript if we wanted to access the blog title of the first post we would use:\n```javascript\nMY_OBJECT['0.blog_title']\n```\nOr if we wanted the name of the poster in the 3rd blog post we would use:\n```javascript\nMY_OBJECT['2.poster.name']\n```\nAs you can see FJSON allows JavaScript to deep access objects using a single string field identifier, with `.` periods used indiscriminately between objects an arrays.\n\n\n\n#### The Namespace\n\n#### Selectors\n\nloves [Redis](http://redis.io/), that's no secret\n\n## Functions\n\nFunctions are like little machines with an in slot and an out slot.<br>\nYou put some stuff in, and you usually even get some stuff back.\n\nMost programming languages have some conceptualization of functions, and Yarn is no different. \n\nHowever unlike most programming languages, Yarn does not allow a user to make and call their own functions (known as extrinsic functions, and extrinsic function calls). Most assembly languages are also this way, only allowing the user to call built-in functions (known as intrinsic function calls).\n\n### Functional Intrinsicity, Extrinsicity & N-Arity\n\n#### Intrinsicity\n\nFunctions that are provided as part of the programming language itself are known as [Intrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_function). Every program is nothing more than these intrinsic functions combined and arranged in some meaningful way to complete a task.\n\nA few intrinsic Javascript function calls:\n```javascript\nconsole.log('hello world');\n\nMath.sqrt(9);\n\n('hello world').split('llo');\n```  \n#### Extrincity\n\nAlthough **every** program can be expressed using nothing more than intrinsic functions, it is very common to also create your own functions to help remove repetition.  Functions that are not provided as part of the language, but rather created by the programmer are known as [Extrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties).\n\nA javascript extrinsic function definition and call:\n```javascript\nfunction my_extrinsic_function (any_string) {\n\tconsole.log(any_string);\n\t// any number of intrinsic function calls go here\n};\n\nmy_extrinsic_function('the any string');\n```\n\n#### Caveat\n\nIt is important to note that no matter how complex or incomprehensible any extrinsic function may seem, **every extrinsic function is made up of nothing more than intrinsic functions**.\n\nYarn takes advantage of this quirk by providing a strong base of intrinsic n-ary functions coupled with lateral flow control operations. In this way extrinsic functions become useful in <1% of cases, meaning <1% of programmers will ever need to handle that style of repetition, and when they do it can still be done by simply copying and pasting (which is how most naive developers would solve the task in the first place).\n\n#### N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)? Basically how many arguments a function is willing to accept.\n\n+ A **nullary** function takes **no arguments**.\n\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nnullary();\n```\n\n+ A **unary** function takes **one argument**.\n\n```javascript\nfunction unary (x) {\n\tconsole.log(x);\n};\nunary('a');\n```\n\n+ A **binary** function takes **two arguments**.\n\n```javascript\nfunction binary (x, y) { \n\tconsole.log(x, y);\n};\nbinary('a', 'b');\n```\n\n+ A **ternary** function takes **three arguments**.\n\n```javascript\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nternary('a', 'b', 'c');\n```\n\n+ An **n-ary** function takes **n (any number of) arguments**.\n\n```javascript\nfunction n_ary () {\n\t\n\t// javascript has hidden n-arity through a function's not \n\t// so obvious 'arguments' property\n\tfor (var obj_key in arguments) {\n\n\t\t// log argument\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// this allows us to call an n-ary function with as many or as \n// few parameters as we please, and all forms are correct\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of paramters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurences `occurences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurences [car]  [This is my string about cars, it's a quick sentance about cars.] \n                  [Another car string] \n                  [One More car String.] \n                  [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any paramters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurrences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existence is counted as true, so bowlerderby is actually logically equivalent to true.\n\n\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?\n\n\n\nprojecting data into a flat tile automatically per date span...","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-124","dist":{"shasum":"93c099c6da41fae95c877e8326256b5e05aa0a4e","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-124.tgz","integrity":"sha512-blyvf30sXF/STGPmS5sPXdz7eNExgoAnlld9nyQWMj7u3VH0D0+hRGy0ZHoNRJxHGN7f+XeiYjcHiskKEL/FAg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCitW0vkD0iZu6hgn2PWbtDNNa4XqK2dsrI3JPfyivzpQIhALnRBGfJmsER+x5D7qSCBQ/Rn/fsUBLpgYnyYac0VOxm"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-125":{"name":"yarnlang","version":"0.1.0-125","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Data Types & Object Representation\n\nPrograms assess and manipulate data, nothing more, sometimes less. So it would stand to reason that how a language chooses to represent data is a key factor in determining the shape and overall effectiveness of every program written in that language.\n\nYarn takes a new perspective on data representation, forcing all newcomers to do a little brain refactoring to get wrapped around it's seemingly esoteric syntax.  Instead of trying to digest everything at once, it's often better to see the inspirations and causalities behind the design choices - as solutions are meaningless without problems for them to solve. The next sections attempt to give a clear view of the playing field, and to provide you the means to make your own informed assessment of the methodology's efficacy.  \n\n### Object Representation, The Namespace & Selectors\n\n[JavaScript](http://en.wikipedia.org/wiki/JavaScript) is a beautifully minimal language in many ways, but most notably in it's data representation format known as [JSON](http://en.wikipedia.org/wiki/JSON) (JavaScript Object Notation). \n\nJSON is a plain text format for representing data (strings, numbers, objects and arrays), and is arguably the standard of modern data portability. JSON is [parseable](http://en.wikipedia.org/wiki/Parsing) (to be read and understood) by virtually any language that can work with strings.  JSON is also very extensible in that objects are not instances of any class, and may have properties freely added and removed from them without affecting other objects.\n\nYarn carries this portability forward by producing all of it's output in JSON format, which naturally imbues Yarn with only three underlying data types to worry about: Strings, Numbers and Objects. As far as yarn is concerned Arrays are just Objects with other Objects as ordered children.\n\n#### Object Representation\n\nFirst let's take a look at a sample JSON object representing an array of 3 blog posts:\nFor example, a JSON representation of an array of 3 objects representing simple blog posts:\n```json\n[\n    {\n        \"poster\": {\n            \"name\": \"jack\",\n            \"avatar\": \"http://img\",\n            \"age\": 42\n        },\n        \"blog_body\": \"Lorem ipsum hey there dipsum, shipsum, kipsum.\",\n        \"blog_title\": \"The Lorem Report\",\n        \"blog_created_at\": 1382383726087\n    },\n    {\n        \"poster\": {\n            \"name\": \"jill\",\n            \"avatar\": \"http://img2\",\n            \"age\": 20\n        },\n        \"blog_body\": \"Rorem jipsum hey there dipsum, shipsum, kipsum.\",\n        \"blog_title\": \"The Rorem Report\",\n        \"blog_created_at\": 1382383526087\n    },\n    {\n        \"poster\": {\n            \"name\": \"jill\",\n            \"avatar\": \"http://img2\",\n            \"age\": 20\n        },\n        \"blog_body\": \"And that's okay.\",\n        \"blog_title\": \"My Cat's Breath Smells Like Catfood\",\n        \"blog_created_at\": 1382363726087\n    }\n]\n```\nIn JavaScript if we wanted to access the blog title of the first post we would use:\n```javascript\nMY_OBJECT[0].blog_title\n```\nOr if we wanted the name of the poster in the 3rd blog post we would use:\n```javascript\nMY_OBJECT[2].poster.name\n```\nAs you can see JavaScript allows deep access to objects by appending `.field_name` and deep access to array's by appending `[array_index]`.\n\nNow let's take a look at how Yarn represents that same data:\n```json\n{\n    \"0.poster.name\": \"jack\",\n    \"0.poster.avatar\": \"http://img\",\n    \"0.poster.age\": 42,\n    \"0.blog_body\": \"Lorem ipsum hey there dipsum, shipsum, kipsum.\",\n    \"0.blog_title\": \"The Lorem Report\",\n    \"0.blog_created_at\": 1382383726087,\n    \"1.poster.name\": \"jill\",\n    \"1.poster.avatar\": \"http://img2\",\n    \"1.poster.age\": 20,\n    \"1.blog_body\": \"Rorem jipsum hey there dipsum, shipsum, kipsum.\",\n    \"1.blog_title\": \"The Rorem Report\",\n    \"1.blog_created_at\": 1382383526087,\n    \"2.poster.name\": \"jill\",\n    \"2.posteravatar\": \"http://img2\",\n    \"2.posterage\": 20,\n    \"2.blog_body\": \"And that's okay.\",\n    \"2.blog_title\": \"My Cat's Breath Smells Like Catfood\",\n    \"2.blog_created_at\": 1382363726087\n}\n```\nWe like to call this 'Flat JSON' or 'FJSON' for short. Flat, because all the data exists as a single object with many fields. Although this appears in a less human readable format than traditional JSON - it allows us a few tricks that are otherwise clumsy and unforgiving normally.\n\n\nIn JavaScript if we wanted to access the blog title of the first post we would use:\n```javascript\nMY_OBJECT['0.blog_title']\n```\nOr if we wanted the name of the poster in the 3rd blog post we would use:\n```javascript\nMY_OBJECT['2.poster.name']\n```\nAs you can see FJSON allows JavaScript to deep access objects using a single string field identifier, with `.` periods used indiscriminately between objects an arrays.\n\n\n\n#### The Namespace\n\n#### Selectors\n\nloves [Redis](http://redis.io/), that's no secret\n\n## Functions\n\nFunctions are like little machines with an in slot and an out slot.<br>\nYou put some stuff in, and you usually even get some stuff back.\n\nMost programming languages have some conceptualization of functions, and Yarn is no different. \n\nHowever unlike most programming languages, Yarn does not allow a user to make and call their own functions (known as extrinsic functions, and extrinsic function calls). Most assembly languages are also this way, only allowing the user to call built-in functions (known as intrinsic function calls).\n\n### Functional Intrinsicity, Extrinsicity & N-Arity\n\n#### Intrinsicity\n\nFunctions that are provided as part of the programming language itself are known as [Intrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_function). Every program is nothing more than these intrinsic functions combined and arranged in some meaningful way to complete a task.\n\nA few intrinsic Javascript function calls:\n```javascript\nconsole.log('hello world');\n\nMath.sqrt(9);\n\n('hello world').split('llo');\n```  \n#### Extrincity\n\nAlthough **every** program can be expressed using nothing more than intrinsic functions, it is very common to also create your own functions to help remove repetition.  Functions that are not provided as part of the language, but rather created by the programmer are known as [Extrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties).\n\nA javascript extrinsic function definition and call:\n```javascript\nfunction my_extrinsic_function (any_string) {\n\tconsole.log(any_string);\n\t// any number of intrinsic function calls go here\n};\n\nmy_extrinsic_function('the any string');\n```\n\n#### Caveat\n\nIt is important to note that no matter how complex or incomprehensible any extrinsic function may seem, **every extrinsic function is made up of nothing more than intrinsic functions**.\n\nYarn takes advantage of this quirk by providing a strong base of intrinsic n-ary functions coupled with lateral flow control operations. In this way extrinsic functions become useful in <1% of cases, meaning <1% of programmers will ever need to handle that style of repetition, and when they do it can still be done by simply copying and pasting (which is how most naive developers would solve the task in the first place).\n\n#### N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)? Basically how many arguments a function is willing to accept.\n\n+ A **nullary** function takes **no arguments**.\n\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nnullary();\n```\n\n+ A **unary** function takes **one argument**.\n\n```javascript\nfunction unary (x) {\n\tconsole.log(x);\n};\nunary('a');\n```\n\n+ A **binary** function takes **two arguments**.\n\n```javascript\nfunction binary (x, y) { \n\tconsole.log(x, y);\n};\nbinary('a', 'b');\n```\n\n+ A **ternary** function takes **three arguments**.\n\n```javascript\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nternary('a', 'b', 'c');\n```\n\n+ An **n-ary** function takes **n (any number of) arguments**.\n\n```javascript\nfunction n_ary () {\n\t\n\t// javascript has hidden n-arity through a function's not \n\t// so obvious 'arguments' property\n\tfor (var obj_key in arguments) {\n\n\t\t// log argument\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// this allows us to call an n-ary function with as many or as \n// few parameters as we please, and all forms are correct\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of paramters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurences `occurences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurences [car]  [This is my string about cars, it's a quick sentance about cars.] \n                  [Another car string] \n                  [One More car String.] \n                  [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any paramters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurrences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existence is counted as true, so bowlerderby is actually logically equivalent to true.\n\n\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?\n\n\n\nprojecting data into a flat tile automatically per date span...","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-125","dist":{"shasum":"4a89edb6bfccd465dd69ec916569e1743ff33e26","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-125.tgz","integrity":"sha512-r1kqUqMUc2eTRVYG6GVxuDiDcdvOPrKQApQiqzef5D3nqL1sYX9gD3ozi7DXF79GUk5Ld2tZSjubbWEECzKiVg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC8+FFrlTBBNSZniBYjQgxRqi/UzOz5I5NR/4N0OGx6ugIhAMTN46iB5w2lR1+TANkxxqMVVZxX4kiJmUbQtc2uLG/n"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-126":{"name":"yarnlang","version":"0.1.0-126","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Data Types & Object Representation\n\nPrograms assess and manipulate data, nothing more, sometimes less. So it would stand to reason that how a language chooses to represent data is a key factor in determining the shape and overall effectiveness of every program written in that language.\n\nYarn takes a new perspective on data representation, forcing all newcomers to do a little brain refactoring to get wrapped around it's seemingly esoteric syntax.  Instead of trying to digest everything at once, it's often better to see the inspirations and causalities behind the design choices - as solutions are meaningless without problems for them to solve. The next sections attempt to give a clear view of the playing field, and to provide you the means to make your own informed assessment of the methodology's efficacy.  \n\n### Object Representation, The Namespace & Selectors\n\n[JavaScript](http://en.wikipedia.org/wiki/JavaScript) is a beautifully minimal language in many ways, but most notably in it's data representation format known as [JSON](http://en.wikipedia.org/wiki/JSON) (JavaScript Object Notation). \n\nJSON is a plain text format for representing data (strings, numbers, objects and arrays), and is arguably the standard of modern data portability. JSON is [parseable](http://en.wikipedia.org/wiki/Parsing) (to be read and understood) by virtually any language that can work with strings.  JSON is also very extensible in that objects are not instances of any class, and may have properties freely added and removed from them without affecting other objects.\n\nYarn carries this portability forward by producing all of it's output in JSON format, which naturally imbues Yarn with only three underlying data types to worry about: Strings, Numbers and Objects. As far as yarn is concerned Arrays are just Objects with other Objects as ordered children.\n\n#### Object Representation\n\nFirst let's take a look at a sample JSON object representing an array of 3 blog posts:\nFor example, a JSON representation of an array of 3 objects representing simple blog posts:\n```json\n[\n    {\n        \"poster\": {\n            \"name\": \"jack\",\n            \"avatar\": \"http://img\",\n            \"age\": 42\n        },\n        \"blog_body\": \"Lorem ipsum hey there dipsum, shipsum, kipsum.\",\n        \"blog_title\": \"The Lorem Report\",\n        \"blog_created_at\": 1382383726087\n    },\n    {\n        \"poster\": {\n            \"name\": \"jill\",\n            \"avatar\": \"http://img2\",\n            \"age\": 20\n        },\n        \"blog_body\": \"Rorem jipsum hey there dipsum, shipsum, kipsum.\",\n        \"blog_title\": \"The Rorem Report\",\n        \"blog_created_at\": 1382383526087\n    },\n    {\n        \"poster\": {\n            \"name\": \"jill\",\n            \"avatar\": \"http://img2\",\n            \"age\": 20\n        },\n        \"blog_body\": \"And that's okay.\",\n        \"blog_title\": \"My Cat's Breath Smells Like Catfood\",\n        \"blog_created_at\": 1382363726087\n    }\n]\n```\nIn JavaScript if we wanted to access the blog title of the first post we would use:\n```javascript\nMY_OBJECT[0].blog_title\n```\nOr if we wanted the name of the poster in the 3rd blog post we would use:\n```javascript\nMY_OBJECT[2].poster.name\n```\nAnd finally if you wanted to add the ages of all three posters without a for loop:\n```javascript\nMY_OBJECT[0].poster.age + MY_OBJECT[1].poster.age + MY_OBJECT[2].poster.age\n```\n\nAs you can see JavaScript allows deep access to objects by appending `.field_name` and deep access to array's by appending `[array_index]`.\n\nNow let's take a look at how Yarn represents that same data:\n```json\n{\n    \"0.poster.name\": \"jack\",\n    \"0.poster.avatar\": \"http://img\",\n    \"0.poster.age\": 42,\n    \"0.blog_body\": \"Lorem ipsum hey there dipsum, shipsum, kipsum.\",\n    \"0.blog_title\": \"The Lorem Report\",\n    \"0.blog_created_at\": 1382383726087,\n    \"1.poster.name\": \"jill\",\n    \"1.poster.avatar\": \"http://img2\",\n    \"1.poster.age\": 20,\n    \"1.blog_body\": \"Rorem jipsum hey there dipsum, shipsum, kipsum.\",\n    \"1.blog_title\": \"The Rorem Report\",\n    \"1.blog_created_at\": 1382383526087,\n    \"2.poster.name\": \"jill\",\n    \"2.posteravatar\": \"http://img2\",\n    \"2.posterage\": 20,\n    \"2.blog_body\": \"And that's okay.\",\n    \"2.blog_title\": \"My Cat's Breath Smells Like Catfood\",\n    \"2.blog_created_at\": 1382363726087\n}\n```\nWe like to call this 'Flat JSON' or 'FJSON' for short. Flat, because all the data exists as a single object with many fields. Although this appears in a less human readable format than traditional JSON - it allows us a few tricks that are otherwise clumsy and unforgiving normally.\n\nIn JavaScript if we wanted to access the blog title of the first post we would use:\n```javascript\nMY_OBJECT['0.blog_title']\n```\nOr if we wanted the name of the poster in the 3rd blog post we would use:\n```javascript\nMY_OBJECT['2.poster.name']\n```\nAnd finally if you wanted to add the ages of all three posters without a for loop:\n```javascript\nMY_OBJECT['0.poster.age'] + MY_OBJECT['1.poster.age'] + MY_OBJECT['2.poster.age']\n```\n\nAs you can see FJSON allows JavaScript to deep access objects using a single string field identifier, with `.` periods used indiscriminately between objects an arrays.\n\n\n\n#### The Namespace\n\n#### Selectors\n\nIn order to access data in the namespace, we borrow the idea of <a href=\"http://en.wikipedia.org/wiki/Glob_(programming)\">glob</a>-style pattern matching from [Redis](http://redis.io/), and mix it with the idea of [selectors](http://api.jquery.com/category/selectors/) from [JQuery](http://jquery.com/).\n\nIt's easiest to look at a few examples, first let's provide a sample namespace to *select* from:\n```json\n{\n    \"0.poster.name\": \"jack\",\n    \"0.poster.avatar\": \"http://img\",\n    \"0.poster.age\": 42,\n    \"0.blog_body\": \"Lorem ipsum hey there dipsum, shipsum, kipsum.\",\n    \"0.blog_title\": \"The Lorem Report\",\n    \"0.blog_created_at\": 1382383726087,\n    \"1.poster.name\": \"jill\",\n    \"1.poster.avatar\": \"http://img2\",\n    \"1.poster.age\": 20,\n    \"1.blog_body\": \"Rorem jipsum hey there dipsum, shipsum, kipsum.\",\n    \"1.blog_title\": \"The Rorem Report\",\n    \"1.blog_created_at\": 1382383526087,\n    \"2.poster.name\": \"jill\",\n    \"2.posteravatar\": \"http://img2\",\n    \"2.posterage\": 20,\n    \"2.blog_body\": \"And that's okay.\",\n    \"2.blog_title\": \"My Cat's Breath Smells Like Catfood\",\n    \"2.blog_created_at\": 1382363726087\n}\n```\n\nIn Yarn if we wanted to access the blog title of the first post we would use:\n```yarn\n(0.blog_title)\n```\nOr if we wanted the name of the poster in the 3rd blog post we would use:\n```json\n(2.poster.name)\n```\nAnd finally if you wanted to add the ages of all three posters without a for loop, you can use the `sum` function and a wildcard selector to select all the ages:\n```javascript\nsum (*.poster.age)\n```\n\n\n## Functions\n\nFunctions are like little machines with an in slot and an out slot.<br>\nYou put some stuff in, and you usually even get some stuff back.\n\nMost programming languages have some conceptualization of functions, and Yarn is no different. \n\nHowever unlike most programming languages, Yarn does not allow a user to make and call their own functions (known as extrinsic functions, and extrinsic function calls). Most assembly languages are also this way, only allowing the user to call built-in functions (known as intrinsic function calls).\n\n### Functional Intrinsicity, Extrinsicity & N-Arity\n\n#### Intrinsicity\n\nFunctions that are provided as part of the programming language itself are known as [Intrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_function). Every program is nothing more than these intrinsic functions combined and arranged in some meaningful way to complete a task.\n\nA few intrinsic Javascript function calls:\n```javascript\nconsole.log('hello world');\n\nMath.sqrt(9);\n\n('hello world').split('llo');\n```  \n#### Extrincity\n\nAlthough **every** program can be expressed using nothing more than intrinsic functions, it is very common to also create your own functions to help remove repetition.  Functions that are not provided as part of the language, but rather created by the programmer are known as [Extrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties).\n\nA javascript extrinsic function definition and call:\n```javascript\nfunction my_extrinsic_function (any_string) {\n\tconsole.log(any_string);\n\t// any number of intrinsic function calls go here\n};\n\nmy_extrinsic_function('the any string');\n```\n\n#### Caveat\n\nIt is important to note that no matter how complex or incomprehensible any extrinsic function may seem, **every extrinsic function is made up of nothing more than intrinsic functions**.\n\nYarn takes advantage of this quirk by providing a strong base of intrinsic n-ary functions coupled with lateral flow control operations. In this way extrinsic functions become useful in <1% of cases, meaning <1% of programmers will ever need to handle that style of repetition, and when they do it can still be done by simply copying and pasting (which is how most naive developers would solve the task in the first place).\n\n#### N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)? Basically how many arguments a function is willing to accept.\n\n+ A **nullary** function takes **no arguments**.\n\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nnullary();\n```\n\n+ A **unary** function takes **one argument**.\n\n```javascript\nfunction unary (x) {\n\tconsole.log(x);\n};\nunary('a');\n```\n\n+ A **binary** function takes **two arguments**.\n\n```javascript\nfunction binary (x, y) { \n\tconsole.log(x, y);\n};\nbinary('a', 'b');\n```\n\n+ A **ternary** function takes **three arguments**.\n\n```javascript\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nternary('a', 'b', 'c');\n```\n\n+ An **n-ary** function takes **n (any number of) arguments**.\n\n```javascript\nfunction n_ary () {\n\t\n\t// javascript has hidden n-arity through a function's not \n\t// so obvious 'arguments' property\n\tfor (var obj_key in arguments) {\n\n\t\t// log argument\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// this allows us to call an n-ary function with as many or as \n// few parameters as we please, and all forms are correct\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of paramters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurences `occurences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurences [car]  [This is my string about cars, it's a quick sentance about cars.] \n                  [Another car string] \n                  [One More car String.] \n                  [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any paramters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurrences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existence is counted as true, so bowlerderby is actually logically equivalent to true.\n\n\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?\n\n\n\nprojecting data into a flat tile automatically per date span...","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-126","dist":{"shasum":"532bacb8c9ca6461b10dbf2b7be9ef9839a19eea","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-126.tgz","integrity":"sha512-K+dJEACPXOPhZV2tteVNWHZ2D52FanXkJjFDaRTeGbGiCwITEzrz5vyHUgB1OvkDOTfgqrXm00MjJoMBn2K2mw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCg0g8zAu3/BKxSu6+pKQiwNro8U5dec56tJXloN2xMbwIgWWdNBslswOxqkAOe7N83DRupB1EsiQxZEA/eyIBGvJc="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-127":{"name":"yarnlang","version":"0.1.0-127","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Data Types & Object Representation\n\nPrograms assess and manipulate data, nothing more, sometimes less. So it would stand to reason that how a language chooses to represent data is a key factor in determining the shape and overall effectiveness of every program written in that language.\n\nYarn takes a new perspective on data representation, forcing all newcomers to do a little brain refactoring to get wrapped around it's seemingly esoteric syntax.  Instead of trying to digest everything at once, it's often better to see the inspirations and causalities behind the design choices - as solutions are meaningless without problems for them to solve. The next sections attempt to give a clear view of the playing field, and to provide you the means to make your own informed assessment of the methodology's efficacy.  \n\n### Object Representation, The Namespace & Selectors\n\n[JavaScript](http://en.wikipedia.org/wiki/JavaScript) is a beautifully minimal language in many ways, but most notably in it's data representation format known as [JSON](http://en.wikipedia.org/wiki/JSON) (JavaScript Object Notation). \n\nJSON is a plain text format for representing data (strings, numbers, objects and arrays), and is arguably the standard of modern data portability. JSON is [parseable](http://en.wikipedia.org/wiki/Parsing) (to be read and understood) by virtually any language that can work with strings.  JSON is also very extensible in that objects are not instances of any class, and may have properties freely added and removed from them without affecting other objects.\n\nYarn carries this portability forward by producing all of it's output in JSON format, which naturally imbues Yarn with only three underlying data types to worry about: Strings, Numbers and Objects. As far as yarn is concerned Arrays are just Objects with other Objects as ordered children.\n\n#### Object Representation\n\nFirst let's take a look at a sample JSON object representing an array of 3 blog posts:\nFor example, a JSON representation of an array of 3 objects representing simple blog posts:\n```json\n[\n    {\n        \"poster\": {\n            \"name\": \"jack\",\n            \"avatar\": \"http://img\",\n            \"age\": 42\n        },\n        \"blog_body\": \"Lorem ipsum hey there dipsum, shipsum, kipsum.\",\n        \"blog_title\": \"The Lorem Report\",\n        \"blog_created_at\": 1382383726087\n    },\n    {\n        \"poster\": {\n            \"name\": \"jill\",\n            \"avatar\": \"http://img2\",\n            \"age\": 20\n        },\n        \"blog_body\": \"Rorem jipsum hey there dipsum, shipsum, kipsum.\",\n        \"blog_title\": \"The Rorem Report\",\n        \"blog_created_at\": 1382383526087\n    },\n    {\n        \"poster\": {\n            \"name\": \"jill\",\n            \"avatar\": \"http://img2\",\n            \"age\": 20\n        },\n        \"blog_body\": \"And that's okay.\",\n        \"blog_title\": \"My Cat's Breath Smells Like Catfood\",\n        \"blog_created_at\": 1382363726087\n    }\n]\n```\nIn JavaScript if we wanted to access the blog title of the first post we would use:\n```javascript\nMY_OBJECT[0].blog_title\n```\nOr if we wanted the name of the poster in the 3rd blog post we would use:\n```javascript\nMY_OBJECT[2].poster.name\n```\nAnd finally if we wanted to add the ages of all three posters without a for loop:\n```javascript\nMY_OBJECT[0].poster.age + MY_OBJECT[1].poster.age + MY_OBJECT[2].poster.age\n```\n\nAs you can see JavaScript allows deep access to objects by appending `.field_name` and deep access to array's by appending `[array_index]`.\n\nNow let's take a look at how Yarn represents that same data:\n```json\n{\n    \"0.poster.name\": \"jack\",\n    \"0.poster.avatar\": \"http://img\",\n    \"0.poster.age\": 42,\n    \"0.blog_body\": \"Lorem ipsum hey there dipsum, shipsum, kipsum.\",\n    \"0.blog_title\": \"The Lorem Report\",\n    \"0.blog_created_at\": 1382383726087,\n    \"1.poster.name\": \"jill\",\n    \"1.poster.avatar\": \"http://img2\",\n    \"1.poster.age\": 20,\n    \"1.blog_body\": \"Rorem jipsum hey there dipsum, shipsum, kipsum.\",\n    \"1.blog_title\": \"The Rorem Report\",\n    \"1.blog_created_at\": 1382383526087,\n    \"2.poster.name\": \"jill\",\n    \"2.posteravatar\": \"http://img2\",\n    \"2.posterage\": 20,\n    \"2.blog_body\": \"And that's okay.\",\n    \"2.blog_title\": \"My Cat's Breath Smells Like Catfood\",\n    \"2.blog_created_at\": 1382363726087\n}\n```\nWe like to call this 'Flat JSON' or 'FJSON' for short. Flat, because all the data exists as a single object with many fields. Although this appears in a less human readable format than traditional JSON - it allows us a few tricks that are otherwise clumsy and unforgiving normally.\n\nIn JavaScript if we wanted to access the blog title of the first post we would use:\n```javascript\nMY_OBJECT['0.blog_title']\n```\nOr if we wanted the name of the poster in the 3rd blog post we would use:\n```javascript\nMY_OBJECT['2.poster.name']\n```\nAnd finally if we wanted to add the ages of all three posters without a for loop:\n```javascript\nMY_OBJECT['0.poster.age'] + MY_OBJECT['1.poster.age'] + MY_OBJECT['2.poster.age']\n```\n\nAs you can see FJSON allows JavaScript to deep access objects using a single string field identifier, with `.` periods used indiscriminately between objects an arrays.\n\n\n\n#### The Namespace\n\n#### Selectors\n\nIn order to access data in the namespace, we borrow the idea of <a href=\"http://en.wikipedia.org/wiki/Glob_(programming)\">glob</a>-style pattern matching from [Redis](http://redis.io/), and mix it with the idea of [selectors](http://api.jquery.com/category/selectors/) from [JQuery](http://jquery.com/).\n\nIt's easiest to look at a few examples, first let's provide a sample namespace to *select* from:\n```json\n{\n    \"0.poster.name\": \"jack\",\n    \"0.poster.avatar\": \"http://img\",\n    \"0.poster.age\": 42,\n    \"0.blog_body\": \"Lorem ipsum hey there dipsum, shipsum, kipsum.\",\n    \"0.blog_title\": \"The Lorem Report\",\n    \"0.blog_created_at\": 1382383726087,\n    \"1.poster.name\": \"jill\",\n    \"1.poster.avatar\": \"http://img2\",\n    \"1.poster.age\": 20,\n    \"1.blog_body\": \"Rorem jipsum hey there dipsum, shipsum, kipsum.\",\n    \"1.blog_title\": \"The Rorem Report\",\n    \"1.blog_created_at\": 1382383526087,\n    \"2.poster.name\": \"jill\",\n    \"2.posteravatar\": \"http://img2\",\n    \"2.posterage\": 20,\n    \"2.blog_body\": \"And that's okay.\",\n    \"2.blog_title\": \"My Cat's Breath Smells Like Catfood\",\n    \"2.blog_created_at\": 1382363726087\n}\n```\n\nIn Yarn if we wanted to access the blog title of the first post we would use:\n```yarn\n(0.blog_title)\n```\nOr if we wanted the name of the poster in the 3rd blog post we would use:\n```json\n(2.poster.name)\n```\nAnd finally if we wanted to add the ages of all three posters without a for loop, we can use the `sum` function and a wildcard selector to select all the ages:\n```javascript\nsum (*.poster.age)\n```\n\n\n## Functions\n\nFunctions are like little machines with an in slot and an out slot.<br>\nYou put some stuff in, and you usually even get some stuff back.\n\nMost programming languages have some conceptualization of functions, and Yarn is no different. \n\nHowever unlike most programming languages, Yarn does not allow a user to make and call their own functions (known as extrinsic functions, and extrinsic function calls). Most assembly languages are also this way, only allowing the user to call built-in functions (known as intrinsic function calls).\n\n### Functional Intrinsicity, Extrinsicity & N-Arity\n\n#### Intrinsicity\n\nFunctions that are provided as part of the programming language itself are known as [Intrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_function). Every program is nothing more than these intrinsic functions combined and arranged in some meaningful way to complete a task.\n\nA few intrinsic Javascript function calls:\n```javascript\nconsole.log('hello world');\n\nMath.sqrt(9);\n\n('hello world').split('llo');\n```  \n#### Extrincity\n\nAlthough **every** program can be expressed using nothing more than intrinsic functions, it is very common to also create your own functions to help remove repetition.  Functions that are not provided as part of the language, but rather created by the programmer are known as [Extrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties).\n\nA javascript extrinsic function definition and call:\n```javascript\nfunction my_extrinsic_function (any_string) {\n\tconsole.log(any_string);\n\t// any number of intrinsic function calls go here\n};\n\nmy_extrinsic_function('the any string');\n```\n\n#### Caveat\n\nIt is important to note that no matter how complex or incomprehensible any extrinsic function may seem, **every extrinsic function is made up of nothing more than intrinsic functions**.\n\nYarn takes advantage of this quirk by providing a strong base of intrinsic n-ary functions coupled with lateral flow control operations. In this way extrinsic functions become useful in <1% of cases, meaning <1% of programmers will ever need to handle that style of repetition, and when they do it can still be done by simply copying and pasting (which is how most naive developers would solve the task in the first place).\n\n#### N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)? Basically how many arguments a function is willing to accept.\n\n+ A **nullary** function takes **no arguments**.\n\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nnullary();\n```\n\n+ A **unary** function takes **one argument**.\n\n```javascript\nfunction unary (x) {\n\tconsole.log(x);\n};\nunary('a');\n```\n\n+ A **binary** function takes **two arguments**.\n\n```javascript\nfunction binary (x, y) { \n\tconsole.log(x, y);\n};\nbinary('a', 'b');\n```\n\n+ A **ternary** function takes **three arguments**.\n\n```javascript\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nternary('a', 'b', 'c');\n```\n\n+ An **n-ary** function takes **n (any number of) arguments**.\n\n```javascript\nfunction n_ary () {\n\t\n\t// javascript has hidden n-arity through a function's not \n\t// so obvious 'arguments' property\n\tfor (var obj_key in arguments) {\n\n\t\t// log argument\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// this allows us to call an n-ary function with as many or as \n// few parameters as we please, and all forms are correct\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of paramters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurences `occurences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurences [car]  [This is my string about cars, it's a quick sentance about cars.] \n                  [Another car string] \n                  [One More car String.] \n                  [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any paramters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurrences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existence is counted as true, so bowlerderby is actually logically equivalent to true.\n\n\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?\n\n\n\nprojecting data into a flat tile automatically per date span...","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-127","dist":{"shasum":"718f9b63bc7d66584ce94c30de0869699e2788fb","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-127.tgz","integrity":"sha512-sIPwrzn9c7vJWAAtzIhAgJFHposY+aKoJKYQIDoNZehy4F0rq+Zj/Sx5z8PVhOQ2ZYJYBiVYxY2vTW7+G+nhIA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBX3MCPexZ+W3xB/bVKonkAmKR8f3vHTnXqQTCyRpusaAiB4aozEaeRhTohZuDJwlR2yN+sszn9lxbqrc1RzO5K8NA=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-128":{"name":"yarnlang","version":"0.1.0-128","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Data Types & Object Representation\n\nPrograms assess and manipulate data, nothing more, sometimes less. So it would stand to reason that how a language chooses to represent data is a key factor in determining the shape and overall effectiveness of every program written in that language.\n\nYarn takes a new perspective on data representation, forcing all newcomers to do a little brain refactoring to get wrapped around it's seemingly esoteric syntax.  Instead of trying to digest everything at once, it's often better to see the inspirations and causalities behind the design choices - as solutions are meaningless without problems for them to solve. The next sections attempt to give a clear view of the playing field, and to provide you the means to make your own informed assessment of the methodology's efficacy.  \n\n### Object Representation, The Namespace & Selectors\n\n[JavaScript](http://en.wikipedia.org/wiki/JavaScript) is a beautifully minimal language in many ways, but most notably in it's data representation format known as [JSON](http://en.wikipedia.org/wiki/JSON) (JavaScript Object Notation). \n\nJSON is a plain text format for representing data (strings, numbers, objects and arrays), and is arguably the standard of modern data portability. JSON is [parseable](http://en.wikipedia.org/wiki/Parsing) (to be read and understood) by virtually any language that can work with strings.  JSON is also very extensible in that objects are not instances of any class, and may have properties freely added and removed from them without affecting other objects.\n\nYarn carries this portability forward by producing all of it's output in JSON format, which naturally imbues Yarn with only three underlying data types to worry about: Strings, Numbers and Objects. As far as yarn is concerned Arrays are just Objects with other Objects as ordered children.\n\n#### Object Representation\n\nFirst let's take a look at a sample JSON object representing an array of 3 blog posts:\nFor example, a JSON representation of an array of 3 objects representing simple blog posts:\n```json\n[\n    {\n        \"poster\": {\n            \"name\": \"jack\",\n            \"avatar\": \"http://img\",\n            \"age\": 42\n        },\n        \"blog_body\": \"Lorem ipsum hey there dipsum, shipsum, kipsum.\",\n        \"blog_title\": \"The Lorem Report\",\n        \"blog_created_at\": 1382383726087\n    },\n    {\n        \"poster\": {\n            \"name\": \"jill\",\n            \"avatar\": \"http://img2\",\n            \"age\": 20\n        },\n        \"blog_body\": \"Rorem jipsum hey there dipsum, shipsum, kipsum.\",\n        \"blog_title\": \"The Rorem Report\",\n        \"blog_created_at\": 1382383526087\n    },\n    {\n        \"poster\": {\n            \"name\": \"jill\",\n            \"avatar\": \"http://img2\",\n            \"age\": 20\n        },\n        \"blog_body\": \"And that's okay.\",\n        \"blog_title\": \"My Cat's Breath Smells Like Catfood\",\n        \"blog_created_at\": 1382363726087\n    }\n]\n```\nIn JavaScript if we wanted to access the blog title of the first post we would use:\n```javascript\nMY_OBJECT[0].blog_title\n```\nOr if we wanted the name of the poster in the 3rd blog post we would use:\n```javascript\nMY_OBJECT[2].poster.name\n```\nAnd finally if we wanted to add the ages of all three posters without a for loop:\n```javascript\nMY_OBJECT[0].poster.age + MY_OBJECT[1].poster.age + MY_OBJECT[2].poster.age\n```\n\nAs you can see JavaScript allows deep access to objects by appending `.field_name` and deep access to array's by appending `[array_index]`.\n\nNow let's take a look at how Yarn represents that same data:\n```json\n{\n    \"0.poster.name\": \"jack\",\n    \"0.poster.avatar\": \"http://img\",\n    \"0.poster.age\": 42,\n    \"0.blog_body\": \"Lorem ipsum hey there dipsum, shipsum, kipsum.\",\n    \"0.blog_title\": \"The Lorem Report\",\n    \"0.blog_created_at\": 1382383726087,\n    \"1.poster.name\": \"jill\",\n    \"1.poster.avatar\": \"http://img2\",\n    \"1.poster.age\": 20,\n    \"1.blog_body\": \"Rorem jipsum hey there dipsum, shipsum, kipsum.\",\n    \"1.blog_title\": \"The Rorem Report\",\n    \"1.blog_created_at\": 1382383526087,\n    \"2.poster.name\": \"jill\",\n    \"2.posteravatar\": \"http://img2\",\n    \"2.posterage\": 20,\n    \"2.blog_body\": \"And that's okay.\",\n    \"2.blog_title\": \"My Cat's Breath Smells Like Catfood\",\n    \"2.blog_created_at\": 1382363726087\n}\n```\nWe like to call this 'Flat JSON' or 'FJSON' for short. Flat, because all the data exists as a single object with many fields. Although this appears in a less human readable format than traditional JSON - it allows us a few tricks that are otherwise clumsy and unforgiving normally.\n\nIn JavaScript if we wanted to access the blog title of the first post we would use:\n```javascript\nMY_OBJECT['0.blog_title']\n```\nOr if we wanted the name of the poster in the 3rd blog post we would use:\n```javascript\nMY_OBJECT['2.poster.name']\n```\nAnd finally if we wanted to add the ages of all three posters without a for loop:\n```javascript\nMY_OBJECT['0.poster.age'] + MY_OBJECT['1.poster.age'] + MY_OBJECT['2.poster.age']\n```\n\nAs you can see FJSON allows JavaScript to deep access objects using a single string field identifier, with `.` periods used indiscriminately between objects an arrays.\n\n\n\n#### The Namespace\n\n#### Selectors\n\nIn order to access data in the namespace, we borrow the idea of <a href=\"http://en.wikipedia.org/wiki/Glob_(programming)\">glob</a>-style pattern matching from [Redis](http://redis.io/), and mix it with the idea of [selectors](http://api.jquery.com/category/selectors/) from [JQuery](http://jquery.com/).\n\nIt's easiest to look at a few examples, first let's provide a sample namespace to *select* from:\n```json\n{\n    \"0.poster.name\": \"jack\",\n    \"0.poster.avatar\": \"http://img\",\n    \"0.poster.age\": 42,\n    \"0.blog_body\": \"Lorem ipsum hey there dipsum, shipsum, kipsum.\",\n    \"0.blog_title\": \"The Lorem Report\",\n    \"0.blog_created_at\": 1382383726087,\n    \"1.poster.name\": \"jill\",\n    \"1.poster.avatar\": \"http://img2\",\n    \"1.poster.age\": 20,\n    \"1.blog_body\": \"Rorem jipsum hey there dipsum, shipsum, kipsum.\",\n    \"1.blog_title\": \"The Rorem Report\",\n    \"1.blog_created_at\": 1382383526087,\n    \"2.poster.name\": \"jill\",\n    \"2.posteravatar\": \"http://img2\",\n    \"2.posterage\": 20,\n    \"2.blog_body\": \"And that's okay.\",\n    \"2.blog_title\": \"My Cat's Breath Smells Like Catfood\",\n    \"2.blog_created_at\": 1382363726087\n}\n```\n\nIn Yarn if we wanted to access the blog title of the first post we would use:\n```yarn\n(0.blog_title)\n```\nOr if we wanted the name of the poster in the 3rd blog post we would use:\n```yarn\n(2.poster.name)\n```\nAnd finally if we wanted to add the ages of all three posters without a for loop, we can use the `sum` function and a wildcard selector to select all the ages:\n```yarn\nsum (*.poster.age) \n```\nWhich is the same as (the logical equivalent of):\n```yarn\nsum (0.poster.age) (1.poster.age) (2.poster.age)\n```\n\n\n\n## Functions\n\nFunctions are like little machines with an in slot and an out slot.<br>\nYou put some stuff in, and you usually even get some stuff back.\n\nMost programming languages have some conceptualization of functions, and Yarn is no different. \n\nHowever unlike most programming languages, Yarn does not allow a user to make and call their own functions (known as extrinsic functions, and extrinsic function calls). Most assembly languages are also this way, only allowing the user to call built-in functions (known as intrinsic function calls).\n\n### Functional Intrinsicity, Extrinsicity & N-Arity\n\n#### Intrinsicity\n\nFunctions that are provided as part of the programming language itself are known as [Intrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_function). Every program is nothing more than these intrinsic functions combined and arranged in some meaningful way to complete a task.\n\nA few intrinsic Javascript function calls:\n```javascript\nconsole.log('hello world');\n\nMath.sqrt(9);\n\n('hello world').split('llo');\n```  \n#### Extrincity\n\nAlthough **every** program can be expressed using nothing more than intrinsic functions, it is very common to also create your own functions to help remove repetition.  Functions that are not provided as part of the language, but rather created by the programmer are known as [Extrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties).\n\nA javascript extrinsic function definition and call:\n```javascript\nfunction my_extrinsic_function (any_string) {\n\tconsole.log(any_string);\n\t// any number of intrinsic function calls go here\n};\n\nmy_extrinsic_function('the any string');\n```\n\n#### Caveat\n\nIt is important to note that no matter how complex or incomprehensible any extrinsic function may seem, **every extrinsic function is made up of nothing more than intrinsic functions**.\n\nYarn takes advantage of this quirk by providing a strong base of intrinsic n-ary functions coupled with lateral flow control operations. In this way extrinsic functions become useful in <1% of cases, meaning <1% of programmers will ever need to handle that style of repetition, and when they do it can still be done by simply copying and pasting (which is how most naive developers would solve the task in the first place).\n\n#### N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)? Basically how many arguments a function is willing to accept.\n\n+ A **nullary** function takes **no arguments**.\n\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nnullary();\n```\n\n+ A **unary** function takes **one argument**.\n\n```javascript\nfunction unary (x) {\n\tconsole.log(x);\n};\nunary('a');\n```\n\n+ A **binary** function takes **two arguments**.\n\n```javascript\nfunction binary (x, y) { \n\tconsole.log(x, y);\n};\nbinary('a', 'b');\n```\n\n+ A **ternary** function takes **three arguments**.\n\n```javascript\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nternary('a', 'b', 'c');\n```\n\n+ An **n-ary** function takes **n (any number of) arguments**.\n\n```javascript\nfunction n_ary () {\n\t\n\t// javascript has hidden n-arity through a function's not \n\t// so obvious 'arguments' property\n\tfor (var obj_key in arguments) {\n\n\t\t// log argument\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// this allows us to call an n-ary function with as many or as \n// few parameters as we please, and all forms are correct\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of paramters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurences `occurences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurences [car]  [This is my string about cars, it's a quick sentance about cars.] \n                  [Another car string] \n                  [One More car String.] \n                  [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any paramters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurrences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existence is counted as true, so bowlerderby is actually logically equivalent to true.\n\n\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?\n\n\n\nprojecting data into a flat tile automatically per date span...","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-128","dist":{"shasum":"fbc3173ccb9ace75704bc0af17464c78c522394c","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-128.tgz","integrity":"sha512-dZDnuCy1JEn3Ci9+JTJvTaimXsKQtlUK/oq4fLj5tSH35BUgi8i5kKTqZKImn6ZTIJme6d0iGAHaS7qyxvnHoA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEPJmmsEafaHKo768a2/QWwSagGmchd6OTy1NfdMmF4HAiEA4mYYBxlwBW+hLT3+BEsVm23ZBhktH7NuuGktBdVkFo8="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-129":{"name":"yarnlang","version":"0.1.0-129","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"+ Data Types & Object Representation\n    + Object Representation, The Namespace & Selectors\n\n\n\n\n\n## Data Types & Object Representation\n\nPrograms assess and manipulate data, nothing more, sometimes less. So it would stand to reason that how a language chooses to represent data is a key factor in determining the shape and overall effectiveness of every program written in that language.\n\nYarn takes a new perspective on data representation, forcing all newcomers to do a little brain refactoring to get wrapped around it's seemingly esoteric syntax.  Instead of trying to digest everything at once, it's often better to see the inspirations and causalities behind the design choices - as solutions are meaningless without problems for them to solve. The next sections attempt to give a clear view of the playing field, and to provide you the means to make your own informed assessment of the methodology's efficacy.  \n\n### Object Representation, The Namespace & Selectors\n\n[JavaScript](http://en.wikipedia.org/wiki/JavaScript) is a beautifully minimal language in many ways, but most notably in it's data representation format known as [JSON](http://en.wikipedia.org/wiki/JSON) (JavaScript Object Notation). \n\nJSON is a plain text format for representing data (strings, numbers, objects and arrays), and is arguably the standard of modern data portability. JSON is [parseable](http://en.wikipedia.org/wiki/Parsing) (to be read and understood) by virtually any language that can work with strings.  JSON is also very extensible in that objects are not instances of any class, and may have properties freely added and removed from them without affecting other objects.\n\nYarn carries this portability forward by producing all of it's output in JSON format, which naturally imbues Yarn with only three underlying data types to worry about: Strings, Numbers and Objects. As far as yarn is concerned Arrays are just Objects with other Objects as ordered children.\n\n#### Object Representation\n\nFirst let's take a look at a sample JSON object representing an array of 3 blog posts:\nFor example, a JSON representation of an array of 3 objects representing simple blog posts:\n```json\n[\n    {\n        \"poster\": {\n            \"name\": \"jack\",\n            \"avatar\": \"http://img\",\n            \"age\": 42\n        },\n        \"blog_body\": \"Lorem ipsum hey there dipsum, shipsum, kipsum.\",\n        \"blog_title\": \"The Lorem Report\",\n        \"blog_created_at\": 1382383726087\n    },\n    {\n        \"poster\": {\n            \"name\": \"jill\",\n            \"avatar\": \"http://img2\",\n            \"age\": 20\n        },\n        \"blog_body\": \"Rorem jipsum hey there dipsum, shipsum, kipsum.\",\n        \"blog_title\": \"The Rorem Report\",\n        \"blog_created_at\": 1382383526087\n    },\n    {\n        \"poster\": {\n            \"name\": \"jill\",\n            \"avatar\": \"http://img2\",\n            \"age\": 20\n        },\n        \"blog_body\": \"And that's okay.\",\n        \"blog_title\": \"My Cat's Breath Smells Like Catfood\",\n        \"blog_created_at\": 1382363726087\n    }\n]\n```\nIn JavaScript if we wanted to access the blog title of the first post we would use:\n```javascript\nMY_OBJECT[0].blog_title\n```\nOr if we wanted the name of the poster in the 3rd blog post we would use:\n```javascript\nMY_OBJECT[2].poster.name\n```\nAnd finally if we wanted to add the ages of all three posters without a for loop:\n```javascript\nMY_OBJECT[0].poster.age + MY_OBJECT[1].poster.age + MY_OBJECT[2].poster.age\n```\n\nAs you can see JavaScript allows deep access to objects by appending `.field_name` and deep access to array's by appending `[array_index]`.\n\nNow let's take a look at how Yarn represents that same data:\n```json\n{\n    \"0.poster.name\": \"jack\",\n    \"0.poster.avatar\": \"http://img\",\n    \"0.poster.age\": 42,\n    \"0.blog_body\": \"Lorem ipsum hey there dipsum, shipsum, kipsum.\",\n    \"0.blog_title\": \"The Lorem Report\",\n    \"0.blog_created_at\": 1382383726087,\n    \"1.poster.name\": \"jill\",\n    \"1.poster.avatar\": \"http://img2\",\n    \"1.poster.age\": 20,\n    \"1.blog_body\": \"Rorem jipsum hey there dipsum, shipsum, kipsum.\",\n    \"1.blog_title\": \"The Rorem Report\",\n    \"1.blog_created_at\": 1382383526087,\n    \"2.poster.name\": \"jill\",\n    \"2.posteravatar\": \"http://img2\",\n    \"2.posterage\": 20,\n    \"2.blog_body\": \"And that's okay.\",\n    \"2.blog_title\": \"My Cat's Breath Smells Like Catfood\",\n    \"2.blog_created_at\": 1382363726087\n}\n```\nWe like to call this 'Flat JSON' or 'FJSON' for short. Flat, because all the data exists as a single object with many fields. Although this appears in a less human readable format than traditional JSON - it allows us a few tricks that are otherwise clumsy and unforgiving normally.\n\nIn JavaScript if we wanted to access the blog title of the first post we would use:\n```javascript\nMY_OBJECT['0.blog_title']\n```\nOr if we wanted the name of the poster in the 3rd blog post we would use:\n```javascript\nMY_OBJECT['2.poster.name']\n```\nAnd finally if we wanted to add the ages of all three posters without a for loop:\n```javascript\nMY_OBJECT['0.poster.age'] + MY_OBJECT['1.poster.age'] + MY_OBJECT['2.poster.age']\n```\n\nAs you can see FJSON allows JavaScript to deep access objects using a single string field identifier, with `.` periods used indiscriminately between objects an arrays.\n\n\n\n#### The Namespace\n\n#### Selectors\n\nIn order to access data in the namespace, we borrow the idea of <a href=\"http://en.wikipedia.org/wiki/Glob_(programming)\">glob</a>-style pattern matching from [Redis](http://redis.io/), and mix it with the idea of [selectors](http://api.jquery.com/category/selectors/) from [JQuery](http://jquery.com/).\n\nIt's easiest to look at a few examples, first let's provide a sample namespace to *select* from:\n```json\n{\n    \"0.poster.name\": \"jack\",\n    \"0.poster.avatar\": \"http://img\",\n    \"0.poster.age\": 42,\n    \"0.blog_body\": \"Lorem ipsum hey there dipsum, shipsum, kipsum.\",\n    \"0.blog_title\": \"The Lorem Report\",\n    \"0.blog_created_at\": 1382383726087,\n    \"1.poster.name\": \"jill\",\n    \"1.poster.avatar\": \"http://img2\",\n    \"1.poster.age\": 20,\n    \"1.blog_body\": \"Rorem jipsum hey there dipsum, shipsum, kipsum.\",\n    \"1.blog_title\": \"The Rorem Report\",\n    \"1.blog_created_at\": 1382383526087,\n    \"2.poster.name\": \"jill\",\n    \"2.posteravatar\": \"http://img2\",\n    \"2.posterage\": 20,\n    \"2.blog_body\": \"And that's okay.\",\n    \"2.blog_title\": \"My Cat's Breath Smells Like Catfood\",\n    \"2.blog_created_at\": 1382363726087\n}\n```\n\nIn Yarn if we wanted to access the blog title of the first post we would use:\n```yarn\n(0.blog_title)\n```\nOr if we wanted the name of the poster in the 3rd blog post we would use:\n```yarn\n(2.poster.name)\n```\nAnd finally if we wanted to add the ages of all three posters without a for loop, we can use the `sum` function and a wildcard selector to select all the ages:\n```yarn\nsum (*.poster.age) \n```\nWhich is the same as (the logical equivalent of):\n```yarn\nsum (0.poster.age) (1.poster.age) (2.poster.age)\n```\n\n\n\n## Functions\n\nFunctions are like little machines with an in slot and an out slot.<br>\nYou put some stuff in, and you usually even get some stuff back.\n\nMost programming languages have some conceptualization of functions, and Yarn is no different. \n\nHowever unlike most programming languages, Yarn does not allow a user to make and call their own functions (known as extrinsic functions, and extrinsic function calls). Most assembly languages are also this way, only allowing the user to call built-in functions (known as intrinsic function calls).\n\n### Functional Intrinsicity, Extrinsicity & N-Arity\n\n#### Intrinsicity\n\nFunctions that are provided as part of the programming language itself are known as [Intrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_function). Every program is nothing more than these intrinsic functions combined and arranged in some meaningful way to complete a task.\n\nA few intrinsic Javascript function calls:\n```javascript\nconsole.log('hello world');\n\nMath.sqrt(9);\n\n('hello world').split('llo');\n```  \n#### Extrincity\n\nAlthough **every** program can be expressed using nothing more than intrinsic functions, it is very common to also create your own functions to help remove repetition.  Functions that are not provided as part of the language, but rather created by the programmer are known as [Extrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties).\n\nA javascript extrinsic function definition and call:\n```javascript\nfunction my_extrinsic_function (any_string) {\n\tconsole.log(any_string);\n\t// any number of intrinsic function calls go here\n};\n\nmy_extrinsic_function('the any string');\n```\n\n#### Caveat\n\nIt is important to note that no matter how complex or incomprehensible any extrinsic function may seem, **every extrinsic function is made up of nothing more than intrinsic functions**.\n\nYarn takes advantage of this quirk by providing a strong base of intrinsic n-ary functions coupled with lateral flow control operations. In this way extrinsic functions become useful in <1% of cases, meaning <1% of programmers will ever need to handle that style of repetition, and when they do it can still be done by simply copying and pasting (which is how most naive developers would solve the task in the first place).\n\n#### N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)? Basically how many arguments a function is willing to accept.\n\n+ A **nullary** function takes **no arguments**.\n\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nnullary();\n```\n\n+ A **unary** function takes **one argument**.\n\n```javascript\nfunction unary (x) {\n\tconsole.log(x);\n};\nunary('a');\n```\n\n+ A **binary** function takes **two arguments**.\n\n```javascript\nfunction binary (x, y) { \n\tconsole.log(x, y);\n};\nbinary('a', 'b');\n```\n\n+ A **ternary** function takes **three arguments**.\n\n```javascript\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nternary('a', 'b', 'c');\n```\n\n+ An **n-ary** function takes **n (any number of) arguments**.\n\n```javascript\nfunction n_ary () {\n\t\n\t// javascript has hidden n-arity through a function's not \n\t// so obvious 'arguments' property\n\tfor (var obj_key in arguments) {\n\n\t\t// log argument\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// this allows us to call an n-ary function with as many or as \n// few parameters as we please, and all forms are correct\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of paramters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurences `occurences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurences [car]  [This is my string about cars, it's a quick sentance about cars.] \n                  [Another car string] \n                  [One More car String.] \n                  [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any paramters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurrences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existence is counted as true, so bowlerderby is actually logically equivalent to true.\n\n\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?\n\n\n\nprojecting data into a flat tile automatically per date span...","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-129","dist":{"shasum":"d82668ee321954f8e03d035ab6a6866a8b4ff1f3","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-129.tgz","integrity":"sha512-4Xurs414v/7ajIAZJD1shZYldCgsB4OwL71TuSWgjpEm6FW6B+spvVfMoFtHsUHsTjwwUQfobgsDzUJ1MYPSkQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDG8kQTYQm73BU4tZAbF8CZL+BMyWBoFmuVLcfpQQCTFAiBwjS78FELGJOYcNBsxhGMUHL3DFHfNn7sRuQVASaW4qg=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-130":{"name":"yarnlang","version":"0.1.0-130","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"+ [Data Types & Object Representation](https://github.com/adrianseeley/yarnlang#data-types--object-representation)\n  + [Object Representation, The Namespace & Selectors](https://github.com/adrianseeley/yarnlang#object-representation-the-namespace--selectors)\n\n\n\n\n\n## Data Types & Object Representation\n\nPrograms assess and manipulate data, nothing more, sometimes less. So it would stand to reason that how a language chooses to represent data is a key factor in determining the shape and overall effectiveness of every program written in that language.\n\nYarn takes a new perspective on data representation, forcing all newcomers to do a little brain refactoring to get wrapped around it's seemingly esoteric syntax.  Instead of trying to digest everything at once, it's often better to see the inspirations and causalities behind the design choices - as solutions are meaningless without problems for them to solve. The next sections attempt to give a clear view of the playing field, and to provide you the means to make your own informed assessment of the methodology's efficacy.  \n\n### Object Representation, The Namespace & Selectors\n\n[JavaScript](http://en.wikipedia.org/wiki/JavaScript) is a beautifully minimal language in many ways, but most notably in it's data representation format known as [JSON](http://en.wikipedia.org/wiki/JSON) (JavaScript Object Notation). \n\nJSON is a plain text format for representing data (strings, numbers, objects and arrays), and is arguably the standard of modern data portability. JSON is [parseable](http://en.wikipedia.org/wiki/Parsing) (to be read and understood) by virtually any language that can work with strings.  JSON is also very extensible in that objects are not instances of any class, and may have properties freely added and removed from them without affecting other objects.\n\nYarn carries this portability forward by producing all of it's output in JSON format, which naturally imbues Yarn with only three underlying data types to worry about: Strings, Numbers and Objects. As far as yarn is concerned Arrays are just Objects with other Objects as ordered children.\n\n#### Object Representation\n\nFirst let's take a look at a sample JSON object representing an array of 3 blog posts:\nFor example, a JSON representation of an array of 3 objects representing simple blog posts:\n```json\n[\n    {\n        \"poster\": {\n            \"name\": \"jack\",\n            \"avatar\": \"http://img\",\n            \"age\": 42\n        },\n        \"blog_body\": \"Lorem ipsum hey there dipsum, shipsum, kipsum.\",\n        \"blog_title\": \"The Lorem Report\",\n        \"blog_created_at\": 1382383726087\n    },\n    {\n        \"poster\": {\n            \"name\": \"jill\",\n            \"avatar\": \"http://img2\",\n            \"age\": 20\n        },\n        \"blog_body\": \"Rorem jipsum hey there dipsum, shipsum, kipsum.\",\n        \"blog_title\": \"The Rorem Report\",\n        \"blog_created_at\": 1382383526087\n    },\n    {\n        \"poster\": {\n            \"name\": \"jill\",\n            \"avatar\": \"http://img2\",\n            \"age\": 20\n        },\n        \"blog_body\": \"And that's okay.\",\n        \"blog_title\": \"My Cat's Breath Smells Like Catfood\",\n        \"blog_created_at\": 1382363726087\n    }\n]\n```\nIn JavaScript if we wanted to access the blog title of the first post we would use:\n```javascript\nMY_OBJECT[0].blog_title\n```\nOr if we wanted the name of the poster in the 3rd blog post we would use:\n```javascript\nMY_OBJECT[2].poster.name\n```\nAnd finally if we wanted to add the ages of all three posters without a for loop:\n```javascript\nMY_OBJECT[0].poster.age + MY_OBJECT[1].poster.age + MY_OBJECT[2].poster.age\n```\n\nAs you can see JavaScript allows deep access to objects by appending `.field_name` and deep access to array's by appending `[array_index]`.\n\nNow let's take a look at how Yarn represents that same data:\n```json\n{\n    \"0.poster.name\": \"jack\",\n    \"0.poster.avatar\": \"http://img\",\n    \"0.poster.age\": 42,\n    \"0.blog_body\": \"Lorem ipsum hey there dipsum, shipsum, kipsum.\",\n    \"0.blog_title\": \"The Lorem Report\",\n    \"0.blog_created_at\": 1382383726087,\n    \"1.poster.name\": \"jill\",\n    \"1.poster.avatar\": \"http://img2\",\n    \"1.poster.age\": 20,\n    \"1.blog_body\": \"Rorem jipsum hey there dipsum, shipsum, kipsum.\",\n    \"1.blog_title\": \"The Rorem Report\",\n    \"1.blog_created_at\": 1382383526087,\n    \"2.poster.name\": \"jill\",\n    \"2.posteravatar\": \"http://img2\",\n    \"2.posterage\": 20,\n    \"2.blog_body\": \"And that's okay.\",\n    \"2.blog_title\": \"My Cat's Breath Smells Like Catfood\",\n    \"2.blog_created_at\": 1382363726087\n}\n```\nWe like to call this 'Flat JSON' or 'FJSON' for short. Flat, because all the data exists as a single object with many fields. Although this appears in a less human readable format than traditional JSON - it allows us a few tricks that are otherwise clumsy and unforgiving normally.\n\nIn JavaScript if we wanted to access the blog title of the first post we would use:\n```javascript\nMY_OBJECT['0.blog_title']\n```\nOr if we wanted the name of the poster in the 3rd blog post we would use:\n```javascript\nMY_OBJECT['2.poster.name']\n```\nAnd finally if we wanted to add the ages of all three posters without a for loop:\n```javascript\nMY_OBJECT['0.poster.age'] + MY_OBJECT['1.poster.age'] + MY_OBJECT['2.poster.age']\n```\n\nAs you can see FJSON allows JavaScript to deep access objects using a single string field identifier, with `.` periods used indiscriminately between objects an arrays.\n\n\n\n#### The Namespace\n\n#### Selectors\n\nIn order to access data in the namespace, we borrow the idea of <a href=\"http://en.wikipedia.org/wiki/Glob_(programming)\">glob</a>-style pattern matching from [Redis](http://redis.io/), and mix it with the idea of [selectors](http://api.jquery.com/category/selectors/) from [JQuery](http://jquery.com/).\n\nIt's easiest to look at a few examples, first let's provide a sample namespace to *select* from:\n```json\n{\n    \"0.poster.name\": \"jack\",\n    \"0.poster.avatar\": \"http://img\",\n    \"0.poster.age\": 42,\n    \"0.blog_body\": \"Lorem ipsum hey there dipsum, shipsum, kipsum.\",\n    \"0.blog_title\": \"The Lorem Report\",\n    \"0.blog_created_at\": 1382383726087,\n    \"1.poster.name\": \"jill\",\n    \"1.poster.avatar\": \"http://img2\",\n    \"1.poster.age\": 20,\n    \"1.blog_body\": \"Rorem jipsum hey there dipsum, shipsum, kipsum.\",\n    \"1.blog_title\": \"The Rorem Report\",\n    \"1.blog_created_at\": 1382383526087,\n    \"2.poster.name\": \"jill\",\n    \"2.posteravatar\": \"http://img2\",\n    \"2.posterage\": 20,\n    \"2.blog_body\": \"And that's okay.\",\n    \"2.blog_title\": \"My Cat's Breath Smells Like Catfood\",\n    \"2.blog_created_at\": 1382363726087\n}\n```\n\nIn Yarn if we wanted to access the blog title of the first post we would use:\n```yarn\n(0.blog_title)\n```\nOr if we wanted the name of the poster in the 3rd blog post we would use:\n```yarn\n(2.poster.name)\n```\nAnd finally if we wanted to add the ages of all three posters without a for loop, we can use the `sum` function and a wildcard selector to select all the ages:\n```yarn\nsum (*.poster.age) \n```\nWhich is the same as (the logical equivalent of):\n```yarn\nsum (0.poster.age) (1.poster.age) (2.poster.age)\n```\n\n\n\n## Functions\n\nFunctions are like little machines with an in slot and an out slot.<br>\nYou put some stuff in, and you usually even get some stuff back.\n\nMost programming languages have some conceptualization of functions, and Yarn is no different. \n\nHowever unlike most programming languages, Yarn does not allow a user to make and call their own functions (known as extrinsic functions, and extrinsic function calls). Most assembly languages are also this way, only allowing the user to call built-in functions (known as intrinsic function calls).\n\n### Functional Intrinsicity, Extrinsicity & N-Arity\n\n#### Intrinsicity\n\nFunctions that are provided as part of the programming language itself are known as [Intrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_function). Every program is nothing more than these intrinsic functions combined and arranged in some meaningful way to complete a task.\n\nA few intrinsic Javascript function calls:\n```javascript\nconsole.log('hello world');\n\nMath.sqrt(9);\n\n('hello world').split('llo');\n```  \n#### Extrincity\n\nAlthough **every** program can be expressed using nothing more than intrinsic functions, it is very common to also create your own functions to help remove repetition.  Functions that are not provided as part of the language, but rather created by the programmer are known as [Extrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties).\n\nA javascript extrinsic function definition and call:\n```javascript\nfunction my_extrinsic_function (any_string) {\n\tconsole.log(any_string);\n\t// any number of intrinsic function calls go here\n};\n\nmy_extrinsic_function('the any string');\n```\n\n#### Caveat\n\nIt is important to note that no matter how complex or incomprehensible any extrinsic function may seem, **every extrinsic function is made up of nothing more than intrinsic functions**.\n\nYarn takes advantage of this quirk by providing a strong base of intrinsic n-ary functions coupled with lateral flow control operations. In this way extrinsic functions become useful in <1% of cases, meaning <1% of programmers will ever need to handle that style of repetition, and when they do it can still be done by simply copying and pasting (which is how most naive developers would solve the task in the first place).\n\n#### N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)? Basically how many arguments a function is willing to accept.\n\n+ A **nullary** function takes **no arguments**.\n\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nnullary();\n```\n\n+ A **unary** function takes **one argument**.\n\n```javascript\nfunction unary (x) {\n\tconsole.log(x);\n};\nunary('a');\n```\n\n+ A **binary** function takes **two arguments**.\n\n```javascript\nfunction binary (x, y) { \n\tconsole.log(x, y);\n};\nbinary('a', 'b');\n```\n\n+ A **ternary** function takes **three arguments**.\n\n```javascript\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nternary('a', 'b', 'c');\n```\n\n+ An **n-ary** function takes **n (any number of) arguments**.\n\n```javascript\nfunction n_ary () {\n\t\n\t// javascript has hidden n-arity through a function's not \n\t// so obvious 'arguments' property\n\tfor (var obj_key in arguments) {\n\n\t\t// log argument\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// this allows us to call an n-ary function with as many or as \n// few parameters as we please, and all forms are correct\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of paramters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurences `occurences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurences [car]  [This is my string about cars, it's a quick sentance about cars.] \n                  [Another car string] \n                  [One More car String.] \n                  [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any paramters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurrences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existence is counted as true, so bowlerderby is actually logically equivalent to true.\n\n\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?\n\n\n\nprojecting data into a flat tile automatically per date span...","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-130","dist":{"shasum":"0762baf2cd47aeb49b8921fca95e1b1b8741c15b","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-130.tgz","integrity":"sha512-aiQoDA3JroSN7n1AfHo7c9+jCutQI+XELSvmDCM+jIRwsmLQU4Y9KCTDYlcFB2NAatnU1uNxo6qDjhpT3esVLA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHXQxvaAzV0aC/6x7jrJoWGbcKSOoQUtj4N8OzROVMmtAiEAz2u+MjIbJBqVr0747+ywsdIcRo+2wLcpUE9ZELKIrsU="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-131":{"name":"yarnlang","version":"0.1.0-131","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"+ [Data Types & Object Representation](https://github.com/adrianseeley/yarnlang#data-types--object-representation)\n  + [Object Representation, The Namespace & Selectors](https://github.com/adrianseeley/yarnlang#object-representation-the-namespace--selectors)\n    + [Object Representationn](https://github.com/adrianseeley/yarnlang#object-representation)\n    + [The Namespace](https://github.com/adrianseeley/yarnlang#the-namespace)\n    + [Selectors](https://github.com/adrianseeley/yarnlang#selectors)\n\n\n\n\n\n## Data Types & Object Representation\n\nPrograms assess and manipulate data, nothing more, sometimes less. So it would stand to reason that how a language chooses to represent data is a key factor in determining the shape and overall effectiveness of every program written in that language.\n\nYarn takes a new perspective on data representation, forcing all newcomers to do a little brain refactoring to get wrapped around it's seemingly esoteric syntax.  Instead of trying to digest everything at once, it's often better to see the inspirations and causalities behind the design choices - as solutions are meaningless without problems for them to solve. The next sections attempt to give a clear view of the playing field, and to provide you the means to make your own informed assessment of the methodology's efficacy.  \n\n### Object Representation, The Namespace & Selectors\n\n[JavaScript](http://en.wikipedia.org/wiki/JavaScript) is a beautifully minimal language in many ways, but most notably in it's data representation format known as [JSON](http://en.wikipedia.org/wiki/JSON) (JavaScript Object Notation). \n\nJSON is a plain text format for representing data (strings, numbers, objects and arrays), and is arguably the standard of modern data portability. JSON is [parseable](http://en.wikipedia.org/wiki/Parsing) (to be read and understood) by virtually any language that can work with strings.  JSON is also very extensible in that objects are not instances of any class, and may have properties freely added and removed from them without affecting other objects.\n\nYarn carries this portability forward by producing all of it's output in JSON format, which naturally imbues Yarn with only three underlying data types to worry about: Strings, Numbers and Objects. As far as yarn is concerned Arrays are just Objects with other Objects as ordered children.\n\n#### Object Representation\n\nFirst let's take a look at a sample JSON object representing an array of 3 blog posts:\nFor example, a JSON representation of an array of 3 objects representing simple blog posts:\n```json\n[\n    {\n        \"poster\": {\n            \"name\": \"jack\",\n            \"avatar\": \"http://img\",\n            \"age\": 42\n        },\n        \"blog_body\": \"Lorem ipsum hey there dipsum, shipsum, kipsum.\",\n        \"blog_title\": \"The Lorem Report\",\n        \"blog_created_at\": 1382383726087\n    },\n    {\n        \"poster\": {\n            \"name\": \"jill\",\n            \"avatar\": \"http://img2\",\n            \"age\": 20\n        },\n        \"blog_body\": \"Rorem jipsum hey there dipsum, shipsum, kipsum.\",\n        \"blog_title\": \"The Rorem Report\",\n        \"blog_created_at\": 1382383526087\n    },\n    {\n        \"poster\": {\n            \"name\": \"jill\",\n            \"avatar\": \"http://img2\",\n            \"age\": 20\n        },\n        \"blog_body\": \"And that's okay.\",\n        \"blog_title\": \"My Cat's Breath Smells Like Catfood\",\n        \"blog_created_at\": 1382363726087\n    }\n]\n```\nIn JavaScript if we wanted to access the blog title of the first post we would use:\n```javascript\nMY_OBJECT[0].blog_title\n```\nOr if we wanted the name of the poster in the 3rd blog post we would use:\n```javascript\nMY_OBJECT[2].poster.name\n```\nAnd finally if we wanted to add the ages of all three posters without a for loop:\n```javascript\nMY_OBJECT[0].poster.age + MY_OBJECT[1].poster.age + MY_OBJECT[2].poster.age\n```\n\nAs you can see JavaScript allows deep access to objects by appending `.field_name` and deep access to array's by appending `[array_index]`.\n\nNow let's take a look at how Yarn represents that same data:\n```json\n{\n    \"0.poster.name\": \"jack\",\n    \"0.poster.avatar\": \"http://img\",\n    \"0.poster.age\": 42,\n    \"0.blog_body\": \"Lorem ipsum hey there dipsum, shipsum, kipsum.\",\n    \"0.blog_title\": \"The Lorem Report\",\n    \"0.blog_created_at\": 1382383726087,\n    \"1.poster.name\": \"jill\",\n    \"1.poster.avatar\": \"http://img2\",\n    \"1.poster.age\": 20,\n    \"1.blog_body\": \"Rorem jipsum hey there dipsum, shipsum, kipsum.\",\n    \"1.blog_title\": \"The Rorem Report\",\n    \"1.blog_created_at\": 1382383526087,\n    \"2.poster.name\": \"jill\",\n    \"2.posteravatar\": \"http://img2\",\n    \"2.posterage\": 20,\n    \"2.blog_body\": \"And that's okay.\",\n    \"2.blog_title\": \"My Cat's Breath Smells Like Catfood\",\n    \"2.blog_created_at\": 1382363726087\n}\n```\nWe like to call this 'Flat JSON' or 'FJSON' for short. Flat, because all the data exists as a single object with many fields. Although this appears in a less human readable format than traditional JSON - it allows us a few tricks that are otherwise clumsy and unforgiving normally.\n\nIn JavaScript if we wanted to access the blog title of the first post we would use:\n```javascript\nMY_OBJECT['0.blog_title']\n```\nOr if we wanted the name of the poster in the 3rd blog post we would use:\n```javascript\nMY_OBJECT['2.poster.name']\n```\nAnd finally if we wanted to add the ages of all three posters without a for loop:\n```javascript\nMY_OBJECT['0.poster.age'] + MY_OBJECT['1.poster.age'] + MY_OBJECT['2.poster.age']\n```\n\nAs you can see FJSON allows JavaScript to deep access objects using a single string field identifier, with `.` periods used indiscriminately between objects an arrays.\n\n\n\n#### The Namespace\n\n#### Selectors\n\nIn order to access data in the namespace, we borrow the idea of <a href=\"http://en.wikipedia.org/wiki/Glob_(programming)\">glob</a>-style pattern matching from [Redis](http://redis.io/), and mix it with the idea of [selectors](http://api.jquery.com/category/selectors/) from [JQuery](http://jquery.com/).\n\nIt's easiest to look at a few examples, first let's provide a sample namespace to *select* from:\n```json\n{\n    \"0.poster.name\": \"jack\",\n    \"0.poster.avatar\": \"http://img\",\n    \"0.poster.age\": 42,\n    \"0.blog_body\": \"Lorem ipsum hey there dipsum, shipsum, kipsum.\",\n    \"0.blog_title\": \"The Lorem Report\",\n    \"0.blog_created_at\": 1382383726087,\n    \"1.poster.name\": \"jill\",\n    \"1.poster.avatar\": \"http://img2\",\n    \"1.poster.age\": 20,\n    \"1.blog_body\": \"Rorem jipsum hey there dipsum, shipsum, kipsum.\",\n    \"1.blog_title\": \"The Rorem Report\",\n    \"1.blog_created_at\": 1382383526087,\n    \"2.poster.name\": \"jill\",\n    \"2.posteravatar\": \"http://img2\",\n    \"2.posterage\": 20,\n    \"2.blog_body\": \"And that's okay.\",\n    \"2.blog_title\": \"My Cat's Breath Smells Like Catfood\",\n    \"2.blog_created_at\": 1382363726087\n}\n```\n\nIn Yarn if we wanted to access the blog title of the first post we would use:\n```yarn\n(0.blog_title)\n```\nOr if we wanted the name of the poster in the 3rd blog post we would use:\n```yarn\n(2.poster.name)\n```\nAnd finally if we wanted to add the ages of all three posters without a for loop, we can use the `sum` function and a wildcard selector to select all the ages:\n```yarn\nsum (*.poster.age) \n```\nWhich is the same as (the logical equivalent of):\n```yarn\nsum (0.poster.age) (1.poster.age) (2.poster.age)\n```\n\n\n\n## Functions\n\nFunctions are like little machines with an in slot and an out slot.<br>\nYou put some stuff in, and you usually even get some stuff back.\n\nMost programming languages have some conceptualization of functions, and Yarn is no different. \n\nHowever unlike most programming languages, Yarn does not allow a user to make and call their own functions (known as extrinsic functions, and extrinsic function calls). Most assembly languages are also this way, only allowing the user to call built-in functions (known as intrinsic function calls).\n\n### Functional Intrinsicity, Extrinsicity & N-Arity\n\n#### Intrinsicity\n\nFunctions that are provided as part of the programming language itself are known as [Intrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_function). Every program is nothing more than these intrinsic functions combined and arranged in some meaningful way to complete a task.\n\nA few intrinsic Javascript function calls:\n```javascript\nconsole.log('hello world');\n\nMath.sqrt(9);\n\n('hello world').split('llo');\n```  \n#### Extrincity\n\nAlthough **every** program can be expressed using nothing more than intrinsic functions, it is very common to also create your own functions to help remove repetition.  Functions that are not provided as part of the language, but rather created by the programmer are known as [Extrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties).\n\nA javascript extrinsic function definition and call:\n```javascript\nfunction my_extrinsic_function (any_string) {\n\tconsole.log(any_string);\n\t// any number of intrinsic function calls go here\n};\n\nmy_extrinsic_function('the any string');\n```\n\n#### Caveat\n\nIt is important to note that no matter how complex or incomprehensible any extrinsic function may seem, **every extrinsic function is made up of nothing more than intrinsic functions**.\n\nYarn takes advantage of this quirk by providing a strong base of intrinsic n-ary functions coupled with lateral flow control operations. In this way extrinsic functions become useful in <1% of cases, meaning <1% of programmers will ever need to handle that style of repetition, and when they do it can still be done by simply copying and pasting (which is how most naive developers would solve the task in the first place).\n\n#### N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)? Basically how many arguments a function is willing to accept.\n\n+ A **nullary** function takes **no arguments**.\n\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nnullary();\n```\n\n+ A **unary** function takes **one argument**.\n\n```javascript\nfunction unary (x) {\n\tconsole.log(x);\n};\nunary('a');\n```\n\n+ A **binary** function takes **two arguments**.\n\n```javascript\nfunction binary (x, y) { \n\tconsole.log(x, y);\n};\nbinary('a', 'b');\n```\n\n+ A **ternary** function takes **three arguments**.\n\n```javascript\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nternary('a', 'b', 'c');\n```\n\n+ An **n-ary** function takes **n (any number of) arguments**.\n\n```javascript\nfunction n_ary () {\n\t\n\t// javascript has hidden n-arity through a function's not \n\t// so obvious 'arguments' property\n\tfor (var obj_key in arguments) {\n\n\t\t// log argument\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// this allows us to call an n-ary function with as many or as \n// few parameters as we please, and all forms are correct\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of paramters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurences `occurences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurences [car]  [This is my string about cars, it's a quick sentance about cars.] \n                  [Another car string] \n                  [One More car String.] \n                  [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any paramters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurrences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existence is counted as true, so bowlerderby is actually logically equivalent to true.\n\n\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?\n\n\n\nprojecting data into a flat tile automatically per date span...","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-131","dist":{"shasum":"2c596f91414437e53d9c550e400f0be1b7a90102","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-131.tgz","integrity":"sha512-NWt5A6NtresuA2otFqF4ZFNtaSO1ZtZowfn8P9ZLzoGpc6HiGVHDuI9zXkXKcg22MZnldKAMFZ7rYYEE9PdNiw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICSCULveZfo3ZhwQxoESxX76yZV9SmXQcARQWfcLR4egAiEAg81YCdYRUZ0Dsbw+218YN3gf5DJRnUhJPvl0iaBQt5M="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-132":{"name":"yarnlang","version":"0.1.0-132","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"+ [Data Types & Object Representation](https://github.com/adrianseeley/yarnlang#data-types--object-representation)\n    + [Object Representation, The Namespace & Selectors](https://github.com/adrianseeley/yarnlang#object-representation-the-namespace--selectors)\n        + [Object Representationn](https://github.com/adrianseeley/yarnlang#object-representation)\n        + [The Namespace](https://github.com/adrianseeley/yarnlang#the-namespace)\n        + [Selectors](https://github.com/adrianseeley/yarnlang#selectors)\n\n\n\n\n\n## Data Types & Object Representation\n\nPrograms assess and manipulate data, nothing more, sometimes less. So it would stand to reason that how a language chooses to represent data is a key factor in determining the shape and overall effectiveness of every program written in that language.\n\nYarn takes a new perspective on data representation, forcing all newcomers to do a little brain refactoring to get wrapped around it's seemingly esoteric syntax.  Instead of trying to digest everything at once, it's often better to see the inspirations and causalities behind the design choices - as solutions are meaningless without problems for them to solve. The next sections attempt to give a clear view of the playing field, and to provide you the means to make your own informed assessment of the methodology's efficacy.  \n\n### Object Representation, The Namespace & Selectors\n\n[JavaScript](http://en.wikipedia.org/wiki/JavaScript) is a beautifully minimal language in many ways, but most notably in it's data representation format known as [JSON](http://en.wikipedia.org/wiki/JSON) (JavaScript Object Notation). \n\nJSON is a plain text format for representing data (strings, numbers, objects and arrays), and is arguably the standard of modern data portability. JSON is [parseable](http://en.wikipedia.org/wiki/Parsing) (to be read and understood) by virtually any language that can work with strings.  JSON is also very extensible in that objects are not instances of any class, and may have properties freely added and removed from them without affecting other objects.\n\nYarn carries this portability forward by producing all of it's output in JSON format, which naturally imbues Yarn with only three underlying data types to worry about: Strings, Numbers and Objects. As far as yarn is concerned Arrays are just Objects with other Objects as ordered children.\n\n#### Object Representation\n\nFirst let's take a look at a sample JSON object representing an array of 3 blog posts:\nFor example, a JSON representation of an array of 3 objects representing simple blog posts:\n```json\n[\n    {\n        \"poster\": {\n            \"name\": \"jack\",\n            \"avatar\": \"http://img\",\n            \"age\": 42\n        },\n        \"blog_body\": \"Lorem ipsum hey there dipsum, shipsum, kipsum.\",\n        \"blog_title\": \"The Lorem Report\",\n        \"blog_created_at\": 1382383726087\n    },\n    {\n        \"poster\": {\n            \"name\": \"jill\",\n            \"avatar\": \"http://img2\",\n            \"age\": 20\n        },\n        \"blog_body\": \"Rorem jipsum hey there dipsum, shipsum, kipsum.\",\n        \"blog_title\": \"The Rorem Report\",\n        \"blog_created_at\": 1382383526087\n    },\n    {\n        \"poster\": {\n            \"name\": \"jill\",\n            \"avatar\": \"http://img2\",\n            \"age\": 20\n        },\n        \"blog_body\": \"And that's okay.\",\n        \"blog_title\": \"My Cat's Breath Smells Like Catfood\",\n        \"blog_created_at\": 1382363726087\n    }\n]\n```\nIn JavaScript if we wanted to access the blog title of the first post we would use:\n```javascript\nMY_OBJECT[0].blog_title\n```\nOr if we wanted the name of the poster in the 3rd blog post we would use:\n```javascript\nMY_OBJECT[2].poster.name\n```\nAnd finally if we wanted to add the ages of all three posters without a for loop:\n```javascript\nMY_OBJECT[0].poster.age + MY_OBJECT[1].poster.age + MY_OBJECT[2].poster.age\n```\n\nAs you can see JavaScript allows deep access to objects by appending `.field_name` and deep access to array's by appending `[array_index]`.\n\nNow let's take a look at how Yarn represents that same data:\n```json\n{\n    \"0.poster.name\": \"jack\",\n    \"0.poster.avatar\": \"http://img\",\n    \"0.poster.age\": 42,\n    \"0.blog_body\": \"Lorem ipsum hey there dipsum, shipsum, kipsum.\",\n    \"0.blog_title\": \"The Lorem Report\",\n    \"0.blog_created_at\": 1382383726087,\n    \"1.poster.name\": \"jill\",\n    \"1.poster.avatar\": \"http://img2\",\n    \"1.poster.age\": 20,\n    \"1.blog_body\": \"Rorem jipsum hey there dipsum, shipsum, kipsum.\",\n    \"1.blog_title\": \"The Rorem Report\",\n    \"1.blog_created_at\": 1382383526087,\n    \"2.poster.name\": \"jill\",\n    \"2.posteravatar\": \"http://img2\",\n    \"2.posterage\": 20,\n    \"2.blog_body\": \"And that's okay.\",\n    \"2.blog_title\": \"My Cat's Breath Smells Like Catfood\",\n    \"2.blog_created_at\": 1382363726087\n}\n```\nWe like to call this 'Flat JSON' or 'FJSON' for short. Flat, because all the data exists as a single object with many fields. Although this appears in a less human readable format than traditional JSON - it allows us a few tricks that are otherwise clumsy and unforgiving normally.\n\nIn JavaScript if we wanted to access the blog title of the first post we would use:\n```javascript\nMY_OBJECT['0.blog_title']\n```\nOr if we wanted the name of the poster in the 3rd blog post we would use:\n```javascript\nMY_OBJECT['2.poster.name']\n```\nAnd finally if we wanted to add the ages of all three posters without a for loop:\n```javascript\nMY_OBJECT['0.poster.age'] + MY_OBJECT['1.poster.age'] + MY_OBJECT['2.poster.age']\n```\n\nAs you can see FJSON allows JavaScript to deep access objects using a single string field identifier, with `.` periods used indiscriminately between objects an arrays.\n\n\n\n#### The Namespace\n\n#### Selectors\n\nIn order to access data in the namespace, we borrow the idea of <a href=\"http://en.wikipedia.org/wiki/Glob_(programming)\">glob</a>-style pattern matching from [Redis](http://redis.io/), and mix it with the idea of [selectors](http://api.jquery.com/category/selectors/) from [JQuery](http://jquery.com/).\n\nIt's easiest to look at a few examples, first let's provide a sample namespace to *select* from:\n```json\n{\n    \"0.poster.name\": \"jack\",\n    \"0.poster.avatar\": \"http://img\",\n    \"0.poster.age\": 42,\n    \"0.blog_body\": \"Lorem ipsum hey there dipsum, shipsum, kipsum.\",\n    \"0.blog_title\": \"The Lorem Report\",\n    \"0.blog_created_at\": 1382383726087,\n    \"1.poster.name\": \"jill\",\n    \"1.poster.avatar\": \"http://img2\",\n    \"1.poster.age\": 20,\n    \"1.blog_body\": \"Rorem jipsum hey there dipsum, shipsum, kipsum.\",\n    \"1.blog_title\": \"The Rorem Report\",\n    \"1.blog_created_at\": 1382383526087,\n    \"2.poster.name\": \"jill\",\n    \"2.posteravatar\": \"http://img2\",\n    \"2.posterage\": 20,\n    \"2.blog_body\": \"And that's okay.\",\n    \"2.blog_title\": \"My Cat's Breath Smells Like Catfood\",\n    \"2.blog_created_at\": 1382363726087\n}\n```\n\nIn Yarn if we wanted to access the blog title of the first post we would use:\n```yarn\n(0.blog_title)\n```\nOr if we wanted the name of the poster in the 3rd blog post we would use:\n```yarn\n(2.poster.name)\n```\nAnd finally if we wanted to add the ages of all three posters without a for loop, we can use the `sum` function and a wildcard selector to select all the ages:\n```yarn\nsum (*.poster.age) \n```\nWhich is the same as (the logical equivalent of):\n```yarn\nsum (0.poster.age) (1.poster.age) (2.poster.age)\n```\n\n\n\n## Functions\n\nFunctions are like little machines with an in slot and an out slot.<br>\nYou put some stuff in, and you usually even get some stuff back.\n\nMost programming languages have some conceptualization of functions, and Yarn is no different. \n\nHowever unlike most programming languages, Yarn does not allow a user to make and call their own functions (known as extrinsic functions, and extrinsic function calls). Most assembly languages are also this way, only allowing the user to call built-in functions (known as intrinsic function calls).\n\n### Functional Intrinsicity, Extrinsicity & N-Arity\n\n#### Intrinsicity\n\nFunctions that are provided as part of the programming language itself are known as [Intrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_function). Every program is nothing more than these intrinsic functions combined and arranged in some meaningful way to complete a task.\n\nA few intrinsic Javascript function calls:\n```javascript\nconsole.log('hello world');\n\nMath.sqrt(9);\n\n('hello world').split('llo');\n```  \n#### Extrincity\n\nAlthough **every** program can be expressed using nothing more than intrinsic functions, it is very common to also create your own functions to help remove repetition.  Functions that are not provided as part of the language, but rather created by the programmer are known as [Extrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties).\n\nA javascript extrinsic function definition and call:\n```javascript\nfunction my_extrinsic_function (any_string) {\n\tconsole.log(any_string);\n\t// any number of intrinsic function calls go here\n};\n\nmy_extrinsic_function('the any string');\n```\n\n#### Caveat\n\nIt is important to note that no matter how complex or incomprehensible any extrinsic function may seem, **every extrinsic function is made up of nothing more than intrinsic functions**.\n\nYarn takes advantage of this quirk by providing a strong base of intrinsic n-ary functions coupled with lateral flow control operations. In this way extrinsic functions become useful in <1% of cases, meaning <1% of programmers will ever need to handle that style of repetition, and when they do it can still be done by simply copying and pasting (which is how most naive developers would solve the task in the first place).\n\n#### N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)? Basically how many arguments a function is willing to accept.\n\n+ A **nullary** function takes **no arguments**.\n\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nnullary();\n```\n\n+ A **unary** function takes **one argument**.\n\n```javascript\nfunction unary (x) {\n\tconsole.log(x);\n};\nunary('a');\n```\n\n+ A **binary** function takes **two arguments**.\n\n```javascript\nfunction binary (x, y) { \n\tconsole.log(x, y);\n};\nbinary('a', 'b');\n```\n\n+ A **ternary** function takes **three arguments**.\n\n```javascript\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nternary('a', 'b', 'c');\n```\n\n+ An **n-ary** function takes **n (any number of) arguments**.\n\n```javascript\nfunction n_ary () {\n\t\n\t// javascript has hidden n-arity through a function's not \n\t// so obvious 'arguments' property\n\tfor (var obj_key in arguments) {\n\n\t\t// log argument\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// this allows us to call an n-ary function with as many or as \n// few parameters as we please, and all forms are correct\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of paramters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurences `occurences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurences [car]  [This is my string about cars, it's a quick sentance about cars.] \n                  [Another car string] \n                  [One More car String.] \n                  [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any paramters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurrences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existence is counted as true, so bowlerderby is actually logically equivalent to true.\n\n\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?\n\n\n\nprojecting data into a flat tile automatically per date span...","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-132","dist":{"shasum":"8fe00affa656cf6937276ec7514237ef8af712bb","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-132.tgz","integrity":"sha512-lFpQ5BieTABlSyYFgEEycXLp9qpS/8LIDf/150LTJtqHj6ubv2+66WVwIWcMCE74i+PA0VhySp/xNf7Wb76dww==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDc2gt8r3Ur8e/18fSP9ysbfzkEyqtQhelQmY3ZZusZIgIhANJzXpob3ci318QidofLR9bgGDe8i88ULx7DPfWlg1fn"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-133":{"name":"yarnlang","version":"0.1.0-133","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"+ [Data Types & Object Representation](https://github.com/adrianseeley/yarnlang#data-types--object-representation)\n    + [Object Representation, The Namespace & Selectors](https://github.com/adrianseeley/yarnlang#object-representation-the-namespace--selectors)\n        + [Object Representationn](https://github.com/adrianseeley/yarnlang#object-representation)\n        + [The Namespace](https://github.com/adrianseeley/yarnlang#the-namespace)\n        + [Selectors](https://github.com/adrianseeley/yarnlang#selectors)\n+ [Functions](https://github.com/adrianseeley/yarnlang#functions)\n    + [Functional Intrinsicity, Extrinsicity & N-Arity](https://github.com/adrianseeley/yarnlang#functional-intrinsicity-extrinsicity--n-arity)\n        + [Intrinsicity](https://github.com/adrianseeley/yarnlang#intrinsicity)\n        + [Extrinsicity](https://github.com/adrianseeley/yarnlang#extrinsicity)\n\n\n\n\n\n## Data Types & Object Representation\n\nPrograms assess and manipulate data, nothing more, sometimes less. So it would stand to reason that how a language chooses to represent data is a key factor in determining the shape and overall effectiveness of every program written in that language.\n\nYarn takes a new perspective on data representation, forcing all newcomers to do a little brain refactoring to get wrapped around it's seemingly esoteric syntax.  Instead of trying to digest everything at once, it's often better to see the inspirations and causalities behind the design choices - as solutions are meaningless without problems for them to solve. The next sections attempt to give a clear view of the playing field, and to provide you the means to make your own informed assessment of the methodology's efficacy.  \n\n### Object Representation, The Namespace & Selectors\n\n[JavaScript](http://en.wikipedia.org/wiki/JavaScript) is a beautifully minimal language in many ways, but most notably in it's data representation format known as [JSON](http://en.wikipedia.org/wiki/JSON) (JavaScript Object Notation). \n\nJSON is a plain text format for representing data (strings, numbers, objects and arrays), and is arguably the standard of modern data portability. JSON is [parseable](http://en.wikipedia.org/wiki/Parsing) (to be read and understood) by virtually any language that can work with strings.  JSON is also very extensible in that objects are not instances of any class, and may have properties freely added and removed from them without affecting other objects.\n\nYarn carries this portability forward by producing all of it's output in JSON format, which naturally imbues Yarn with only three underlying data types to worry about: Strings, Numbers and Objects. As far as yarn is concerned Arrays are just Objects with other Objects as ordered children.\n\n#### Object Representation\n\nFirst let's take a look at a sample JSON object representing an array of 3 blog posts:\nFor example, a JSON representation of an array of 3 objects representing simple blog posts:\n```json\n[\n    {\n        \"poster\": {\n            \"name\": \"jack\",\n            \"avatar\": \"http://img\",\n            \"age\": 42\n        },\n        \"blog_body\": \"Lorem ipsum hey there dipsum, shipsum, kipsum.\",\n        \"blog_title\": \"The Lorem Report\",\n        \"blog_created_at\": 1382383726087\n    },\n    {\n        \"poster\": {\n            \"name\": \"jill\",\n            \"avatar\": \"http://img2\",\n            \"age\": 20\n        },\n        \"blog_body\": \"Rorem jipsum hey there dipsum, shipsum, kipsum.\",\n        \"blog_title\": \"The Rorem Report\",\n        \"blog_created_at\": 1382383526087\n    },\n    {\n        \"poster\": {\n            \"name\": \"jill\",\n            \"avatar\": \"http://img2\",\n            \"age\": 20\n        },\n        \"blog_body\": \"And that's okay.\",\n        \"blog_title\": \"My Cat's Breath Smells Like Catfood\",\n        \"blog_created_at\": 1382363726087\n    }\n]\n```\nIn JavaScript if we wanted to access the blog title of the first post we would use:\n```javascript\nMY_OBJECT[0].blog_title\n```\nOr if we wanted the name of the poster in the 3rd blog post we would use:\n```javascript\nMY_OBJECT[2].poster.name\n```\nAnd finally if we wanted to add the ages of all three posters without a for loop:\n```javascript\nMY_OBJECT[0].poster.age + MY_OBJECT[1].poster.age + MY_OBJECT[2].poster.age\n```\n\nAs you can see JavaScript allows deep access to objects by appending `.field_name` and deep access to array's by appending `[array_index]`.\n\nNow let's take a look at how Yarn represents that same data:\n```json\n{\n    \"0.poster.name\": \"jack\",\n    \"0.poster.avatar\": \"http://img\",\n    \"0.poster.age\": 42,\n    \"0.blog_body\": \"Lorem ipsum hey there dipsum, shipsum, kipsum.\",\n    \"0.blog_title\": \"The Lorem Report\",\n    \"0.blog_created_at\": 1382383726087,\n    \"1.poster.name\": \"jill\",\n    \"1.poster.avatar\": \"http://img2\",\n    \"1.poster.age\": 20,\n    \"1.blog_body\": \"Rorem jipsum hey there dipsum, shipsum, kipsum.\",\n    \"1.blog_title\": \"The Rorem Report\",\n    \"1.blog_created_at\": 1382383526087,\n    \"2.poster.name\": \"jill\",\n    \"2.posteravatar\": \"http://img2\",\n    \"2.posterage\": 20,\n    \"2.blog_body\": \"And that's okay.\",\n    \"2.blog_title\": \"My Cat's Breath Smells Like Catfood\",\n    \"2.blog_created_at\": 1382363726087\n}\n```\nWe like to call this 'Flat JSON' or 'FJSON' for short. Flat, because all the data exists as a single object with many fields. Although this appears in a less human readable format than traditional JSON - it allows us a few tricks that are otherwise clumsy and unforgiving normally.\n\nIn JavaScript if we wanted to access the blog title of the first post we would use:\n```javascript\nMY_OBJECT['0.blog_title']\n```\nOr if we wanted the name of the poster in the 3rd blog post we would use:\n```javascript\nMY_OBJECT['2.poster.name']\n```\nAnd finally if we wanted to add the ages of all three posters without a for loop:\n```javascript\nMY_OBJECT['0.poster.age'] + MY_OBJECT['1.poster.age'] + MY_OBJECT['2.poster.age']\n```\n\nAs you can see FJSON allows JavaScript to deep access objects using a single string field identifier, with `.` periods used indiscriminately between objects an arrays.\n\n\n\n#### The Namespace\n\n#### Selectors\n\nIn order to access data in the namespace, we borrow the idea of <a href=\"http://en.wikipedia.org/wiki/Glob_(programming)\">glob</a>-style pattern matching from [Redis](http://redis.io/), and mix it with the idea of [selectors](http://api.jquery.com/category/selectors/) from [JQuery](http://jquery.com/).\n\nIt's easiest to look at a few examples, first let's provide a sample namespace to *select* from:\n```json\n{\n    \"0.poster.name\": \"jack\",\n    \"0.poster.avatar\": \"http://img\",\n    \"0.poster.age\": 42,\n    \"0.blog_body\": \"Lorem ipsum hey there dipsum, shipsum, kipsum.\",\n    \"0.blog_title\": \"The Lorem Report\",\n    \"0.blog_created_at\": 1382383726087,\n    \"1.poster.name\": \"jill\",\n    \"1.poster.avatar\": \"http://img2\",\n    \"1.poster.age\": 20,\n    \"1.blog_body\": \"Rorem jipsum hey there dipsum, shipsum, kipsum.\",\n    \"1.blog_title\": \"The Rorem Report\",\n    \"1.blog_created_at\": 1382383526087,\n    \"2.poster.name\": \"jill\",\n    \"2.posteravatar\": \"http://img2\",\n    \"2.posterage\": 20,\n    \"2.blog_body\": \"And that's okay.\",\n    \"2.blog_title\": \"My Cat's Breath Smells Like Catfood\",\n    \"2.blog_created_at\": 1382363726087\n}\n```\n\nIn Yarn if we wanted to access the blog title of the first post we would use:\n```yarn\n(0.blog_title)\n```\nOr if we wanted the name of the poster in the 3rd blog post we would use:\n```yarn\n(2.poster.name)\n```\nAnd finally if we wanted to add the ages of all three posters without a for loop, we can use the `sum` function and a wildcard selector to select all the ages:\n```yarn\nsum (*.poster.age) \n```\nWhich is the same as (the logical equivalent of):\n```yarn\nsum (0.poster.age) (1.poster.age) (2.poster.age)\n```\n\n\n\n## Functions\n\nFunctions are like little machines with an in slot and an out slot.<br>\nYou put some stuff in, and you usually even get some stuff back.\n\nMost programming languages have some conceptualization of functions, and Yarn is no different. \n\nHowever unlike most programming languages, Yarn does not allow a user to make and call their own functions (known as extrinsic functions, and extrinsic function calls). Most assembly languages are also this way, only allowing the user to call built-in functions (known as intrinsic function calls).\n\n### Functional Intrinsicity, Extrinsicity & N-Arity\n\n#### Intrinsicity\n\nFunctions that are provided as part of the programming language itself are known as [Intrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_function). Every program is nothing more than these intrinsic functions combined and arranged in some meaningful way to complete a task.\n\nA few intrinsic Javascript function calls:\n```javascript\nconsole.log('hello world');\n\nMath.sqrt(9);\n\n('hello world').split('llo');\n```  \n#### Extrincity\n\nAlthough **every** program can be expressed using nothing more than intrinsic functions, it is very common to also create your own functions to help remove repetition.  Functions that are not provided as part of the language, but rather created by the programmer are known as [Extrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties).\n\nA javascript extrinsic function definition and call:\n```javascript\nfunction my_extrinsic_function (any_string) {\n\tconsole.log(any_string);\n\t// any number of intrinsic function calls go here\n};\n\nmy_extrinsic_function('the any string');\n```\n\n#### Caveat\n\nIt is important to note that no matter how complex or incomprehensible any extrinsic function may seem, **every extrinsic function is made up of nothing more than intrinsic functions**.\n\nYarn takes advantage of this quirk by providing a strong base of intrinsic n-ary functions coupled with lateral flow control operations. In this way extrinsic functions become useful in <1% of cases, meaning <1% of programmers will ever need to handle that style of repetition, and when they do it can still be done by simply copying and pasting (which is how most naive developers would solve the task in the first place).\n\n#### N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)? Basically how many arguments a function is willing to accept.\n\n+ A **nullary** function takes **no arguments**.\n\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nnullary();\n```\n\n+ A **unary** function takes **one argument**.\n\n```javascript\nfunction unary (x) {\n\tconsole.log(x);\n};\nunary('a');\n```\n\n+ A **binary** function takes **two arguments**.\n\n```javascript\nfunction binary (x, y) { \n\tconsole.log(x, y);\n};\nbinary('a', 'b');\n```\n\n+ A **ternary** function takes **three arguments**.\n\n```javascript\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nternary('a', 'b', 'c');\n```\n\n+ An **n-ary** function takes **n (any number of) arguments**.\n\n```javascript\nfunction n_ary () {\n\t\n\t// javascript has hidden n-arity through a function's not \n\t// so obvious 'arguments' property\n\tfor (var obj_key in arguments) {\n\n\t\t// log argument\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// this allows us to call an n-ary function with as many or as \n// few parameters as we please, and all forms are correct\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of paramters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurences `occurences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurences [car]  [This is my string about cars, it's a quick sentance about cars.] \n                  [Another car string] \n                  [One More car String.] \n                  [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any paramters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurrences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existence is counted as true, so bowlerderby is actually logically equivalent to true.\n\n\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?\n\n\n\nprojecting data into a flat tile automatically per date span...","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-133","dist":{"shasum":"02f83aa82b658d0b8871f28173ef49f3128b3659","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-133.tgz","integrity":"sha512-SIpxG0Wi/Fg12ZmDtkoL9W3mzmw6oNzRGY1GeL8Duqd1YA8UjHO8/pNdRMiBRY+nLl4pt8WjGnBscTp0yWmdUw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDNlo8Ch1kxkTMU6lsvxRKzg/YBTB7M4bsoY3LUSEiPaAiBQG0qKQv3f5zht5eMshMI4PPywHXjwJUFPZvTriumbPw=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-134":{"name":"yarnlang","version":"0.1.0-134","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"+ [Data Types & Object Representation](https://github.com/adrianseeley/yarnlang#data-types--object-representation)\n    + [Object Representation, The Namespace & Selectors](https://github.com/adrianseeley/yarnlang#object-representation-the-namespace--selectors)\n        + [Object Representationn](https://github.com/adrianseeley/yarnlang#object-representation)\n        + [The Namespace](https://github.com/adrianseeley/yarnlang#the-namespace)\n        + [Selectors](https://github.com/adrianseeley/yarnlang#selectors)\n+ [Functions](https://github.com/adrianseeley/yarnlang#functions)\n    + [Functional Intrinsicity, Extrinsicity & N-Arity](https://github.com/adrianseeley/yarnlang#functional-intrinsicity-extrinsicity--n-arity)\n        + [Intrinsicity](https://github.com/adrianseeley/yarnlang#intrinsicity)\n        + [Extrinsicity](https://github.com/adrianseeley/yarnlang#extrinsicity)\n        + [Caveat](https://github.com/adrianseeley/yarnlang#caveat)\n        + [N-Ary Parametered Functions](https://github.com/adrianseeley/yarnlang#n-ary-parametered-functions)\n\n\n\n\n\n## Data Types & Object Representation\n\nPrograms assess and manipulate data, nothing more, sometimes less. So it would stand to reason that how a language chooses to represent data is a key factor in determining the shape and overall effectiveness of every program written in that language.\n\nYarn takes a new perspective on data representation, forcing all newcomers to do a little brain refactoring to get wrapped around it's seemingly esoteric syntax.  Instead of trying to digest everything at once, it's often better to see the inspirations and causalities behind the design choices - as solutions are meaningless without problems for them to solve. The next sections attempt to give a clear view of the playing field, and to provide you the means to make your own informed assessment of the methodology's efficacy.  \n\n### Object Representation, The Namespace & Selectors\n\n[JavaScript](http://en.wikipedia.org/wiki/JavaScript) is a beautifully minimal language in many ways, but most notably in it's data representation format known as [JSON](http://en.wikipedia.org/wiki/JSON) (JavaScript Object Notation). \n\nJSON is a plain text format for representing data (strings, numbers, objects and arrays), and is arguably the standard of modern data portability. JSON is [parseable](http://en.wikipedia.org/wiki/Parsing) (to be read and understood) by virtually any language that can work with strings.  JSON is also very extensible in that objects are not instances of any class, and may have properties freely added and removed from them without affecting other objects.\n\nYarn carries this portability forward by producing all of it's output in JSON format, which naturally imbues Yarn with only three underlying data types to worry about: Strings, Numbers and Objects. As far as yarn is concerned Arrays are just Objects with other Objects as ordered children.\n\n#### Object Representation\n\nFirst let's take a look at a sample JSON object representing an array of 3 blog posts:\nFor example, a JSON representation of an array of 3 objects representing simple blog posts:\n```json\n[\n    {\n        \"poster\": {\n            \"name\": \"jack\",\n            \"avatar\": \"http://img\",\n            \"age\": 42\n        },\n        \"blog_body\": \"Lorem ipsum hey there dipsum, shipsum, kipsum.\",\n        \"blog_title\": \"The Lorem Report\",\n        \"blog_created_at\": 1382383726087\n    },\n    {\n        \"poster\": {\n            \"name\": \"jill\",\n            \"avatar\": \"http://img2\",\n            \"age\": 20\n        },\n        \"blog_body\": \"Rorem jipsum hey there dipsum, shipsum, kipsum.\",\n        \"blog_title\": \"The Rorem Report\",\n        \"blog_created_at\": 1382383526087\n    },\n    {\n        \"poster\": {\n            \"name\": \"jill\",\n            \"avatar\": \"http://img2\",\n            \"age\": 20\n        },\n        \"blog_body\": \"And that's okay.\",\n        \"blog_title\": \"My Cat's Breath Smells Like Catfood\",\n        \"blog_created_at\": 1382363726087\n    }\n]\n```\nIn JavaScript if we wanted to access the blog title of the first post we would use:\n```javascript\nMY_OBJECT[0].blog_title\n```\nOr if we wanted the name of the poster in the 3rd blog post we would use:\n```javascript\nMY_OBJECT[2].poster.name\n```\nAnd finally if we wanted to add the ages of all three posters without a for loop:\n```javascript\nMY_OBJECT[0].poster.age + MY_OBJECT[1].poster.age + MY_OBJECT[2].poster.age\n```\n\nAs you can see JavaScript allows deep access to objects by appending `.field_name` and deep access to array's by appending `[array_index]`.\n\nNow let's take a look at how Yarn represents that same data:\n```json\n{\n    \"0.poster.name\": \"jack\",\n    \"0.poster.avatar\": \"http://img\",\n    \"0.poster.age\": 42,\n    \"0.blog_body\": \"Lorem ipsum hey there dipsum, shipsum, kipsum.\",\n    \"0.blog_title\": \"The Lorem Report\",\n    \"0.blog_created_at\": 1382383726087,\n    \"1.poster.name\": \"jill\",\n    \"1.poster.avatar\": \"http://img2\",\n    \"1.poster.age\": 20,\n    \"1.blog_body\": \"Rorem jipsum hey there dipsum, shipsum, kipsum.\",\n    \"1.blog_title\": \"The Rorem Report\",\n    \"1.blog_created_at\": 1382383526087,\n    \"2.poster.name\": \"jill\",\n    \"2.posteravatar\": \"http://img2\",\n    \"2.posterage\": 20,\n    \"2.blog_body\": \"And that's okay.\",\n    \"2.blog_title\": \"My Cat's Breath Smells Like Catfood\",\n    \"2.blog_created_at\": 1382363726087\n}\n```\nWe like to call this 'Flat JSON' or 'FJSON' for short. Flat, because all the data exists as a single object with many fields. Although this appears in a less human readable format than traditional JSON - it allows us a few tricks that are otherwise clumsy and unforgiving normally.\n\nIn JavaScript if we wanted to access the blog title of the first post we would use:\n```javascript\nMY_OBJECT['0.blog_title']\n```\nOr if we wanted the name of the poster in the 3rd blog post we would use:\n```javascript\nMY_OBJECT['2.poster.name']\n```\nAnd finally if we wanted to add the ages of all three posters without a for loop:\n```javascript\nMY_OBJECT['0.poster.age'] + MY_OBJECT['1.poster.age'] + MY_OBJECT['2.poster.age']\n```\n\nAs you can see FJSON allows JavaScript to deep access objects using a single string field identifier, with `.` periods used indiscriminately between objects an arrays.\n\n\n\n#### The Namespace\n\n#### Selectors\n\nIn order to access data in the namespace, we borrow the idea of <a href=\"http://en.wikipedia.org/wiki/Glob_(programming)\">glob</a>-style pattern matching from [Redis](http://redis.io/), and mix it with the idea of [selectors](http://api.jquery.com/category/selectors/) from [JQuery](http://jquery.com/).\n\nIt's easiest to look at a few examples, first let's provide a sample namespace to *select* from:\n```json\n{\n    \"0.poster.name\": \"jack\",\n    \"0.poster.avatar\": \"http://img\",\n    \"0.poster.age\": 42,\n    \"0.blog_body\": \"Lorem ipsum hey there dipsum, shipsum, kipsum.\",\n    \"0.blog_title\": \"The Lorem Report\",\n    \"0.blog_created_at\": 1382383726087,\n    \"1.poster.name\": \"jill\",\n    \"1.poster.avatar\": \"http://img2\",\n    \"1.poster.age\": 20,\n    \"1.blog_body\": \"Rorem jipsum hey there dipsum, shipsum, kipsum.\",\n    \"1.blog_title\": \"The Rorem Report\",\n    \"1.blog_created_at\": 1382383526087,\n    \"2.poster.name\": \"jill\",\n    \"2.posteravatar\": \"http://img2\",\n    \"2.posterage\": 20,\n    \"2.blog_body\": \"And that's okay.\",\n    \"2.blog_title\": \"My Cat's Breath Smells Like Catfood\",\n    \"2.blog_created_at\": 1382363726087\n}\n```\n\nIn Yarn if we wanted to access the blog title of the first post we would use:\n```yarn\n(0.blog_title)\n```\nOr if we wanted the name of the poster in the 3rd blog post we would use:\n```yarn\n(2.poster.name)\n```\nAnd finally if we wanted to add the ages of all three posters without a for loop, we can use the `sum` function and a wildcard selector to select all the ages:\n```yarn\nsum (*.poster.age) \n```\nWhich is the same as (the logical equivalent of):\n```yarn\nsum (0.poster.age) (1.poster.age) (2.poster.age)\n```\n\n\n\n## Functions\n\nFunctions are like little machines with an in slot and an out slot.<br>\nYou put some stuff in, and you usually even get some stuff back.\n\nMost programming languages have some conceptualization of functions, and Yarn is no different. \n\nHowever unlike most programming languages, Yarn does not allow a user to make and call their own functions (known as extrinsic functions, and extrinsic function calls). Most assembly languages are also this way, only allowing the user to call built-in functions (known as intrinsic function calls).\n\n### Functional Intrinsicity, Extrinsicity & N-Arity\n\n#### Intrinsicity\n\nFunctions that are provided as part of the programming language itself are known as [Intrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_function). Every program is nothing more than these intrinsic functions combined and arranged in some meaningful way to complete a task.\n\nA few intrinsic Javascript function calls:\n```javascript\nconsole.log('hello world');\n\nMath.sqrt(9);\n\n('hello world').split('llo');\n```  \n#### Extrinsicity\n\nAlthough **every** program can be expressed using nothing more than intrinsic functions, it is very common to also create your own functions to help remove repetition.  Functions that are not provided as part of the language, but rather created by the programmer are known as [Extrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties).\n\nA javascript extrinsic function definition and call:\n```javascript\nfunction my_extrinsic_function (any_string) {\n\tconsole.log(any_string);\n\t// any number of intrinsic function calls go here\n};\n\nmy_extrinsic_function('the any string');\n```\n\n#### Caveat\n\nIt is important to note that no matter how complex or incomprehensible any extrinsic function may seem, **every extrinsic function is made up of nothing more than intrinsic functions**.\n\nYarn takes advantage of this quirk by providing a strong base of intrinsic n-ary functions coupled with lateral flow control operations. In this way extrinsic functions become useful in <1% of cases, meaning <1% of programmers will ever need to handle that style of repetition, and when they do it can still be done by simply copying and pasting (which is how most naive developers would solve the task in the first place).\n\n#### N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)? Basically how many arguments a function is willing to accept.\n\n+ A **nullary** function takes **no arguments**.\n\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nnullary();\n```\n\n+ A **unary** function takes **one argument**.\n\n```javascript\nfunction unary (x) {\n\tconsole.log(x);\n};\nunary('a');\n```\n\n+ A **binary** function takes **two arguments**.\n\n```javascript\nfunction binary (x, y) { \n\tconsole.log(x, y);\n};\nbinary('a', 'b');\n```\n\n+ A **ternary** function takes **three arguments**.\n\n```javascript\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nternary('a', 'b', 'c');\n```\n\n+ An **n-ary** function takes **n (any number of) arguments**.\n\n```javascript\nfunction n_ary () {\n\t\n\t// javascript has hidden n-arity through a function's not \n\t// so obvious 'arguments' property\n\tfor (var obj_key in arguments) {\n\n\t\t// log argument\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// this allows us to call an n-ary function with as many or as \n// few parameters as we please, and all forms are correct\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of parameters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurrence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurrences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurrence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurrences `occurrences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurrences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurrences [car]  [This is my string about cars, it's a quick sentence about cars.] \n                   [Another car string] \n                   [One More car String.] \n                   [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any parameters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurrences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurrences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existence is counted as true, so bowlerderby is actually logically equivalent to true.\n\n\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?\n\n\n\nprojecting data into a flat tile automatically per date span...","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-134","dist":{"shasum":"27d2507cf9287413979637e52b892061d1c46d41","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-134.tgz","integrity":"sha512-GzTqs2+PQMz33lyWPYhOZUUN8YSFXyiZwAzdRp1SXy5sQx28ICUJtzzvYY4vzqEThBepVF+7CD+fPHN/Q0ef+A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDHIw6t/EekegZYmEZIUazAfEUWhFKTd5+1Z7OgwyzgKQIgN1xkMfBxlcWfukPxHA2H/IgxJj5ztSi7/al2Fx0LMSc="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-135":{"name":"yarnlang","version":"0.1.0-135","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"+ Data Types & Object Representation[->](https://github.com/adrianseeley/yarnlang#data-types--object-representation)\n    + [Object Representation, The Namespace & Selectors](https://github.com/adrianseeley/yarnlang#object-representation-the-namespace--selectors)\n        + [Object Representationn](https://github.com/adrianseeley/yarnlang#object-representation)\n        + [The Namespace](https://github.com/adrianseeley/yarnlang#the-namespace)\n        + [Selectors](https://github.com/adrianseeley/yarnlang#selectors)\n+ [Functions](https://github.com/adrianseeley/yarnlang#functions)\n    + [Functional Intrinsicity, Extrinsicity & N-Arity](https://github.com/adrianseeley/yarnlang#functional-intrinsicity-extrinsicity--n-arity)\n        + [Intrinsicity](https://github.com/adrianseeley/yarnlang#intrinsicity)\n        + [Extrinsicity](https://github.com/adrianseeley/yarnlang#extrinsicity)\n        + [Caveat](https://github.com/adrianseeley/yarnlang#caveat)\n        + [N-Ary Parametered Functions](https://github.com/adrianseeley/yarnlang#n-ary-parametered-functions)\n\n\n\n\n\n## Data Types & Object Representation\n\nPrograms assess and manipulate data, nothing more, sometimes less. So it would stand to reason that how a language chooses to represent data is a key factor in determining the shape and overall effectiveness of every program written in that language.\n\nYarn takes a new perspective on data representation, forcing all newcomers to do a little brain refactoring to get wrapped around it's seemingly esoteric syntax.  Instead of trying to digest everything at once, it's often better to see the inspirations and causalities behind the design choices - as solutions are meaningless without problems for them to solve. The next sections attempt to give a clear view of the playing field, and to provide you the means to make your own informed assessment of the methodology's efficacy.  \n\n### Object Representation, The Namespace & Selectors\n\n[JavaScript](http://en.wikipedia.org/wiki/JavaScript) is a beautifully minimal language in many ways, but most notably in it's data representation format known as [JSON](http://en.wikipedia.org/wiki/JSON) (JavaScript Object Notation). \n\nJSON is a plain text format for representing data (strings, numbers, objects and arrays), and is arguably the standard of modern data portability. JSON is [parseable](http://en.wikipedia.org/wiki/Parsing) (to be read and understood) by virtually any language that can work with strings.  JSON is also very extensible in that objects are not instances of any class, and may have properties freely added and removed from them without affecting other objects.\n\nYarn carries this portability forward by producing all of it's output in JSON format, which naturally imbues Yarn with only three underlying data types to worry about: Strings, Numbers and Objects. As far as yarn is concerned Arrays are just Objects with other Objects as ordered children.\n\n#### Object Representation\n\nFirst let's take a look at a sample JSON object representing an array of 3 blog posts:\nFor example, a JSON representation of an array of 3 objects representing simple blog posts:\n```json\n[\n    {\n        \"poster\": {\n            \"name\": \"jack\",\n            \"avatar\": \"http://img\",\n            \"age\": 42\n        },\n        \"blog_body\": \"Lorem ipsum hey there dipsum, shipsum, kipsum.\",\n        \"blog_title\": \"The Lorem Report\",\n        \"blog_created_at\": 1382383726087\n    },\n    {\n        \"poster\": {\n            \"name\": \"jill\",\n            \"avatar\": \"http://img2\",\n            \"age\": 20\n        },\n        \"blog_body\": \"Rorem jipsum hey there dipsum, shipsum, kipsum.\",\n        \"blog_title\": \"The Rorem Report\",\n        \"blog_created_at\": 1382383526087\n    },\n    {\n        \"poster\": {\n            \"name\": \"jill\",\n            \"avatar\": \"http://img2\",\n            \"age\": 20\n        },\n        \"blog_body\": \"And that's okay.\",\n        \"blog_title\": \"My Cat's Breath Smells Like Catfood\",\n        \"blog_created_at\": 1382363726087\n    }\n]\n```\nIn JavaScript if we wanted to access the blog title of the first post we would use:\n```javascript\nMY_OBJECT[0].blog_title\n```\nOr if we wanted the name of the poster in the 3rd blog post we would use:\n```javascript\nMY_OBJECT[2].poster.name\n```\nAnd finally if we wanted to add the ages of all three posters without a for loop:\n```javascript\nMY_OBJECT[0].poster.age + MY_OBJECT[1].poster.age + MY_OBJECT[2].poster.age\n```\n\nAs you can see JavaScript allows deep access to objects by appending `.field_name` and deep access to array's by appending `[array_index]`.\n\nNow let's take a look at how Yarn represents that same data:\n```json\n{\n    \"0.poster.name\": \"jack\",\n    \"0.poster.avatar\": \"http://img\",\n    \"0.poster.age\": 42,\n    \"0.blog_body\": \"Lorem ipsum hey there dipsum, shipsum, kipsum.\",\n    \"0.blog_title\": \"The Lorem Report\",\n    \"0.blog_created_at\": 1382383726087,\n    \"1.poster.name\": \"jill\",\n    \"1.poster.avatar\": \"http://img2\",\n    \"1.poster.age\": 20,\n    \"1.blog_body\": \"Rorem jipsum hey there dipsum, shipsum, kipsum.\",\n    \"1.blog_title\": \"The Rorem Report\",\n    \"1.blog_created_at\": 1382383526087,\n    \"2.poster.name\": \"jill\",\n    \"2.posteravatar\": \"http://img2\",\n    \"2.posterage\": 20,\n    \"2.blog_body\": \"And that's okay.\",\n    \"2.blog_title\": \"My Cat's Breath Smells Like Catfood\",\n    \"2.blog_created_at\": 1382363726087\n}\n```\nWe like to call this 'Flat JSON' or 'FJSON' for short. Flat, because all the data exists as a single object with many fields. Although this appears in a less human readable format than traditional JSON - it allows us a few tricks that are otherwise clumsy and unforgiving normally.\n\nIn JavaScript if we wanted to access the blog title of the first post we would use:\n```javascript\nMY_OBJECT['0.blog_title']\n```\nOr if we wanted the name of the poster in the 3rd blog post we would use:\n```javascript\nMY_OBJECT['2.poster.name']\n```\nAnd finally if we wanted to add the ages of all three posters without a for loop:\n```javascript\nMY_OBJECT['0.poster.age'] + MY_OBJECT['1.poster.age'] + MY_OBJECT['2.poster.age']\n```\n\nAs you can see FJSON allows JavaScript to deep access objects using a single string field identifier, with `.` periods used indiscriminately between objects an arrays.\n\n\n\n#### The Namespace\n\n#### Selectors\n\nIn order to access data in the namespace, we borrow the idea of <a href=\"http://en.wikipedia.org/wiki/Glob_(programming)\">glob</a>-style pattern matching from [Redis](http://redis.io/), and mix it with the idea of [selectors](http://api.jquery.com/category/selectors/) from [JQuery](http://jquery.com/).\n\nIt's easiest to look at a few examples, first let's provide a sample namespace to *select* from:\n```json\n{\n    \"0.poster.name\": \"jack\",\n    \"0.poster.avatar\": \"http://img\",\n    \"0.poster.age\": 42,\n    \"0.blog_body\": \"Lorem ipsum hey there dipsum, shipsum, kipsum.\",\n    \"0.blog_title\": \"The Lorem Report\",\n    \"0.blog_created_at\": 1382383726087,\n    \"1.poster.name\": \"jill\",\n    \"1.poster.avatar\": \"http://img2\",\n    \"1.poster.age\": 20,\n    \"1.blog_body\": \"Rorem jipsum hey there dipsum, shipsum, kipsum.\",\n    \"1.blog_title\": \"The Rorem Report\",\n    \"1.blog_created_at\": 1382383526087,\n    \"2.poster.name\": \"jill\",\n    \"2.posteravatar\": \"http://img2\",\n    \"2.posterage\": 20,\n    \"2.blog_body\": \"And that's okay.\",\n    \"2.blog_title\": \"My Cat's Breath Smells Like Catfood\",\n    \"2.blog_created_at\": 1382363726087\n}\n```\n\nIn Yarn if we wanted to access the blog title of the first post we would use:\n```yarn\n(0.blog_title)\n```\nOr if we wanted the name of the poster in the 3rd blog post we would use:\n```yarn\n(2.poster.name)\n```\nAnd finally if we wanted to add the ages of all three posters without a for loop, we can use the `sum` function and a wildcard selector to select all the ages:\n```yarn\nsum (*.poster.age) \n```\nWhich is the same as (the logical equivalent of):\n```yarn\nsum (0.poster.age) (1.poster.age) (2.poster.age)\n```\n\n\n\n## Functions\n\nFunctions are like little machines with an in slot and an out slot.<br>\nYou put some stuff in, and you usually even get some stuff back.\n\nMost programming languages have some conceptualization of functions, and Yarn is no different. \n\nHowever unlike most programming languages, Yarn does not allow a user to make and call their own functions (known as extrinsic functions, and extrinsic function calls). Most assembly languages are also this way, only allowing the user to call built-in functions (known as intrinsic function calls).\n\n### Functional Intrinsicity, Extrinsicity & N-Arity\n\n#### Intrinsicity\n\nFunctions that are provided as part of the programming language itself are known as [Intrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_function). Every program is nothing more than these intrinsic functions combined and arranged in some meaningful way to complete a task.\n\nA few intrinsic Javascript function calls:\n```javascript\nconsole.log('hello world');\n\nMath.sqrt(9);\n\n('hello world').split('llo');\n```  \n#### Extrinsicity\n\nAlthough **every** program can be expressed using nothing more than intrinsic functions, it is very common to also create your own functions to help remove repetition.  Functions that are not provided as part of the language, but rather created by the programmer are known as [Extrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties).\n\nA javascript extrinsic function definition and call:\n```javascript\nfunction my_extrinsic_function (any_string) {\n\tconsole.log(any_string);\n\t// any number of intrinsic function calls go here\n};\n\nmy_extrinsic_function('the any string');\n```\n\n#### Caveat\n\nIt is important to note that no matter how complex or incomprehensible any extrinsic function may seem, **every extrinsic function is made up of nothing more than intrinsic functions**.\n\nYarn takes advantage of this quirk by providing a strong base of intrinsic n-ary functions coupled with lateral flow control operations. In this way extrinsic functions become useful in <1% of cases, meaning <1% of programmers will ever need to handle that style of repetition, and when they do it can still be done by simply copying and pasting (which is how most naive developers would solve the task in the first place).\n\n#### N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)? Basically how many arguments a function is willing to accept.\n\n+ A **nullary** function takes **no arguments**.\n\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nnullary();\n```\n\n+ A **unary** function takes **one argument**.\n\n```javascript\nfunction unary (x) {\n\tconsole.log(x);\n};\nunary('a');\n```\n\n+ A **binary** function takes **two arguments**.\n\n```javascript\nfunction binary (x, y) { \n\tconsole.log(x, y);\n};\nbinary('a', 'b');\n```\n\n+ A **ternary** function takes **three arguments**.\n\n```javascript\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nternary('a', 'b', 'c');\n```\n\n+ An **n-ary** function takes **n (any number of) arguments**.\n\n```javascript\nfunction n_ary () {\n\t\n\t// javascript has hidden n-arity through a function's not \n\t// so obvious 'arguments' property\n\tfor (var obj_key in arguments) {\n\n\t\t// log argument\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// this allows us to call an n-ary function with as many or as \n// few parameters as we please, and all forms are correct\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of parameters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurrence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurrences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurrence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurrences `occurrences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurrences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurrences [car]  [This is my string about cars, it's a quick sentence about cars.] \n                   [Another car string] \n                   [One More car String.] \n                   [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any parameters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurrences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurrences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existence is counted as true, so bowlerderby is actually logically equivalent to true.\n\n\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?\n\n\n\nprojecting data into a flat tile automatically per date span...","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-135","dist":{"shasum":"058a100b37cc6cbd35f330750052165524ba51d1","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-135.tgz","integrity":"sha512-o8dayotxKy2Tx7H1BNBKZ680IOSR5eFQcbrAwXrme6cY1zpnxnKq0sCQ3UJ4f2T/i+hXkzJU3pXUgj/2MUMWMA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDUN+RYMOzobvMwYaSYi055q6UCWZ7ydI6oS6tmslbsQgIhAOJ67dGN4u6Vi1SqAqD963kYSIj/mUj8WaygPOzQSbn2"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-136":{"name":"yarnlang","version":"0.1.0-136","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"+ Data Types & Object Representation[&clubs;](https://github.com/adrianseeley/yarnlang#data-types--object-representation)\n    + [Object Representation, The Namespace & Selectors](https://github.com/adrianseeley/yarnlang#object-representation-the-namespace--selectors)\n        + [Object Representationn](https://github.com/adrianseeley/yarnlang#object-representation)\n        + [The Namespace](https://github.com/adrianseeley/yarnlang#the-namespace)\n        + [Selectors](https://github.com/adrianseeley/yarnlang#selectors)\n+ [Functions](https://github.com/adrianseeley/yarnlang#functions)\n    + [Functional Intrinsicity, Extrinsicity & N-Arity](https://github.com/adrianseeley/yarnlang#functional-intrinsicity-extrinsicity--n-arity)\n        + [Intrinsicity](https://github.com/adrianseeley/yarnlang#intrinsicity)\n        + [Extrinsicity](https://github.com/adrianseeley/yarnlang#extrinsicity)\n        + [Caveat](https://github.com/adrianseeley/yarnlang#caveat)\n        + [N-Ary Parametered Functions](https://github.com/adrianseeley/yarnlang#n-ary-parametered-functions)\n\n\n\n\n\n## Data Types & Object Representation\n\nPrograms assess and manipulate data, nothing more, sometimes less. So it would stand to reason that how a language chooses to represent data is a key factor in determining the shape and overall effectiveness of every program written in that language.\n\nYarn takes a new perspective on data representation, forcing all newcomers to do a little brain refactoring to get wrapped around it's seemingly esoteric syntax.  Instead of trying to digest everything at once, it's often better to see the inspirations and causalities behind the design choices - as solutions are meaningless without problems for them to solve. The next sections attempt to give a clear view of the playing field, and to provide you the means to make your own informed assessment of the methodology's efficacy.  \n\n### Object Representation, The Namespace & Selectors\n\n[JavaScript](http://en.wikipedia.org/wiki/JavaScript) is a beautifully minimal language in many ways, but most notably in it's data representation format known as [JSON](http://en.wikipedia.org/wiki/JSON) (JavaScript Object Notation). \n\nJSON is a plain text format for representing data (strings, numbers, objects and arrays), and is arguably the standard of modern data portability. JSON is [parseable](http://en.wikipedia.org/wiki/Parsing) (to be read and understood) by virtually any language that can work with strings.  JSON is also very extensible in that objects are not instances of any class, and may have properties freely added and removed from them without affecting other objects.\n\nYarn carries this portability forward by producing all of it's output in JSON format, which naturally imbues Yarn with only three underlying data types to worry about: Strings, Numbers and Objects. As far as yarn is concerned Arrays are just Objects with other Objects as ordered children.\n\n#### Object Representation\n\nFirst let's take a look at a sample JSON object representing an array of 3 blog posts:\nFor example, a JSON representation of an array of 3 objects representing simple blog posts:\n```json\n[\n    {\n        \"poster\": {\n            \"name\": \"jack\",\n            \"avatar\": \"http://img\",\n            \"age\": 42\n        },\n        \"blog_body\": \"Lorem ipsum hey there dipsum, shipsum, kipsum.\",\n        \"blog_title\": \"The Lorem Report\",\n        \"blog_created_at\": 1382383726087\n    },\n    {\n        \"poster\": {\n            \"name\": \"jill\",\n            \"avatar\": \"http://img2\",\n            \"age\": 20\n        },\n        \"blog_body\": \"Rorem jipsum hey there dipsum, shipsum, kipsum.\",\n        \"blog_title\": \"The Rorem Report\",\n        \"blog_created_at\": 1382383526087\n    },\n    {\n        \"poster\": {\n            \"name\": \"jill\",\n            \"avatar\": \"http://img2\",\n            \"age\": 20\n        },\n        \"blog_body\": \"And that's okay.\",\n        \"blog_title\": \"My Cat's Breath Smells Like Catfood\",\n        \"blog_created_at\": 1382363726087\n    }\n]\n```\nIn JavaScript if we wanted to access the blog title of the first post we would use:\n```javascript\nMY_OBJECT[0].blog_title\n```\nOr if we wanted the name of the poster in the 3rd blog post we would use:\n```javascript\nMY_OBJECT[2].poster.name\n```\nAnd finally if we wanted to add the ages of all three posters without a for loop:\n```javascript\nMY_OBJECT[0].poster.age + MY_OBJECT[1].poster.age + MY_OBJECT[2].poster.age\n```\n\nAs you can see JavaScript allows deep access to objects by appending `.field_name` and deep access to array's by appending `[array_index]`.\n\nNow let's take a look at how Yarn represents that same data:\n```json\n{\n    \"0.poster.name\": \"jack\",\n    \"0.poster.avatar\": \"http://img\",\n    \"0.poster.age\": 42,\n    \"0.blog_body\": \"Lorem ipsum hey there dipsum, shipsum, kipsum.\",\n    \"0.blog_title\": \"The Lorem Report\",\n    \"0.blog_created_at\": 1382383726087,\n    \"1.poster.name\": \"jill\",\n    \"1.poster.avatar\": \"http://img2\",\n    \"1.poster.age\": 20,\n    \"1.blog_body\": \"Rorem jipsum hey there dipsum, shipsum, kipsum.\",\n    \"1.blog_title\": \"The Rorem Report\",\n    \"1.blog_created_at\": 1382383526087,\n    \"2.poster.name\": \"jill\",\n    \"2.posteravatar\": \"http://img2\",\n    \"2.posterage\": 20,\n    \"2.blog_body\": \"And that's okay.\",\n    \"2.blog_title\": \"My Cat's Breath Smells Like Catfood\",\n    \"2.blog_created_at\": 1382363726087\n}\n```\nWe like to call this 'Flat JSON' or 'FJSON' for short. Flat, because all the data exists as a single object with many fields. Although this appears in a less human readable format than traditional JSON - it allows us a few tricks that are otherwise clumsy and unforgiving normally.\n\nIn JavaScript if we wanted to access the blog title of the first post we would use:\n```javascript\nMY_OBJECT['0.blog_title']\n```\nOr if we wanted the name of the poster in the 3rd blog post we would use:\n```javascript\nMY_OBJECT['2.poster.name']\n```\nAnd finally if we wanted to add the ages of all three posters without a for loop:\n```javascript\nMY_OBJECT['0.poster.age'] + MY_OBJECT['1.poster.age'] + MY_OBJECT['2.poster.age']\n```\n\nAs you can see FJSON allows JavaScript to deep access objects using a single string field identifier, with `.` periods used indiscriminately between objects an arrays.\n\n\n\n#### The Namespace\n\n#### Selectors\n\nIn order to access data in the namespace, we borrow the idea of <a href=\"http://en.wikipedia.org/wiki/Glob_(programming)\">glob</a>-style pattern matching from [Redis](http://redis.io/), and mix it with the idea of [selectors](http://api.jquery.com/category/selectors/) from [JQuery](http://jquery.com/).\n\nIt's easiest to look at a few examples, first let's provide a sample namespace to *select* from:\n```json\n{\n    \"0.poster.name\": \"jack\",\n    \"0.poster.avatar\": \"http://img\",\n    \"0.poster.age\": 42,\n    \"0.blog_body\": \"Lorem ipsum hey there dipsum, shipsum, kipsum.\",\n    \"0.blog_title\": \"The Lorem Report\",\n    \"0.blog_created_at\": 1382383726087,\n    \"1.poster.name\": \"jill\",\n    \"1.poster.avatar\": \"http://img2\",\n    \"1.poster.age\": 20,\n    \"1.blog_body\": \"Rorem jipsum hey there dipsum, shipsum, kipsum.\",\n    \"1.blog_title\": \"The Rorem Report\",\n    \"1.blog_created_at\": 1382383526087,\n    \"2.poster.name\": \"jill\",\n    \"2.posteravatar\": \"http://img2\",\n    \"2.posterage\": 20,\n    \"2.blog_body\": \"And that's okay.\",\n    \"2.blog_title\": \"My Cat's Breath Smells Like Catfood\",\n    \"2.blog_created_at\": 1382363726087\n}\n```\n\nIn Yarn if we wanted to access the blog title of the first post we would use:\n```yarn\n(0.blog_title)\n```\nOr if we wanted the name of the poster in the 3rd blog post we would use:\n```yarn\n(2.poster.name)\n```\nAnd finally if we wanted to add the ages of all three posters without a for loop, we can use the `sum` function and a wildcard selector to select all the ages:\n```yarn\nsum (*.poster.age) \n```\nWhich is the same as (the logical equivalent of):\n```yarn\nsum (0.poster.age) (1.poster.age) (2.poster.age)\n```\n\n\n\n## Functions\n\nFunctions are like little machines with an in slot and an out slot.<br>\nYou put some stuff in, and you usually even get some stuff back.\n\nMost programming languages have some conceptualization of functions, and Yarn is no different. \n\nHowever unlike most programming languages, Yarn does not allow a user to make and call their own functions (known as extrinsic functions, and extrinsic function calls). Most assembly languages are also this way, only allowing the user to call built-in functions (known as intrinsic function calls).\n\n### Functional Intrinsicity, Extrinsicity & N-Arity\n\n#### Intrinsicity\n\nFunctions that are provided as part of the programming language itself are known as [Intrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_function). Every program is nothing more than these intrinsic functions combined and arranged in some meaningful way to complete a task.\n\nA few intrinsic Javascript function calls:\n```javascript\nconsole.log('hello world');\n\nMath.sqrt(9);\n\n('hello world').split('llo');\n```  \n#### Extrinsicity\n\nAlthough **every** program can be expressed using nothing more than intrinsic functions, it is very common to also create your own functions to help remove repetition.  Functions that are not provided as part of the language, but rather created by the programmer are known as [Extrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties).\n\nA javascript extrinsic function definition and call:\n```javascript\nfunction my_extrinsic_function (any_string) {\n\tconsole.log(any_string);\n\t// any number of intrinsic function calls go here\n};\n\nmy_extrinsic_function('the any string');\n```\n\n#### Caveat\n\nIt is important to note that no matter how complex or incomprehensible any extrinsic function may seem, **every extrinsic function is made up of nothing more than intrinsic functions**.\n\nYarn takes advantage of this quirk by providing a strong base of intrinsic n-ary functions coupled with lateral flow control operations. In this way extrinsic functions become useful in <1% of cases, meaning <1% of programmers will ever need to handle that style of repetition, and when they do it can still be done by simply copying and pasting (which is how most naive developers would solve the task in the first place).\n\n#### N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)? Basically how many arguments a function is willing to accept.\n\n+ A **nullary** function takes **no arguments**.\n\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nnullary();\n```\n\n+ A **unary** function takes **one argument**.\n\n```javascript\nfunction unary (x) {\n\tconsole.log(x);\n};\nunary('a');\n```\n\n+ A **binary** function takes **two arguments**.\n\n```javascript\nfunction binary (x, y) { \n\tconsole.log(x, y);\n};\nbinary('a', 'b');\n```\n\n+ A **ternary** function takes **three arguments**.\n\n```javascript\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nternary('a', 'b', 'c');\n```\n\n+ An **n-ary** function takes **n (any number of) arguments**.\n\n```javascript\nfunction n_ary () {\n\t\n\t// javascript has hidden n-arity through a function's not \n\t// so obvious 'arguments' property\n\tfor (var obj_key in arguments) {\n\n\t\t// log argument\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// this allows us to call an n-ary function with as many or as \n// few parameters as we please, and all forms are correct\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of parameters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurrence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurrences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurrence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurrences `occurrences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurrences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurrences [car]  [This is my string about cars, it's a quick sentence about cars.] \n                   [Another car string] \n                   [One More car String.] \n                   [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any parameters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurrences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurrences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existence is counted as true, so bowlerderby is actually logically equivalent to true.\n\n\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?\n\n\n\nprojecting data into a flat tile automatically per date span...","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-136","dist":{"shasum":"4192d09b59408e6bb00924e456430122ab1c75d1","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-136.tgz","integrity":"sha512-zEyw0Q/aQ3kqs+gd4zCqn5WZmbYrxJmd9/dBGjrJES0IKxtkQSiHe6p24LSTmKekFbdom8MjnhPsSVj7UZGPtQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGNbQJ2+x2NsyDRqjEloIR02ZOdau9fPtJFsFYeuM25DAiAsRxNf2EQQ9WXI2wubr78fQ7LloDyRtuGEgqGVi/yRzQ=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-137":{"name":"yarnlang","version":"0.1.0-137","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"+ Data Types & Object Representation [&clubs;](https://github.com/adrianseeley/yarnlang#data-types--object-representation)\n    + [Object Representation, The Namespace & Selectors](https://github.com/adrianseeley/yarnlang#object-representation-the-namespace--selectors)\n        + [Object Representationn](https://github.com/adrianseeley/yarnlang#object-representation)\n        + [The Namespace](https://github.com/adrianseeley/yarnlang#the-namespace)\n        + [Selectors](https://github.com/adrianseeley/yarnlang#selectors)\n+ [Functions](https://github.com/adrianseeley/yarnlang#functions)\n    + [Functional Intrinsicity, Extrinsicity & N-Arity](https://github.com/adrianseeley/yarnlang#functional-intrinsicity-extrinsicity--n-arity)\n        + [Intrinsicity](https://github.com/adrianseeley/yarnlang#intrinsicity)\n        + [Extrinsicity](https://github.com/adrianseeley/yarnlang#extrinsicity)\n        + [Caveat](https://github.com/adrianseeley/yarnlang#caveat)\n        + [N-Ary Parametered Functions](https://github.com/adrianseeley/yarnlang#n-ary-parametered-functions)\n\n\n\n\n\n## Data Types & Object Representation\n\nPrograms assess and manipulate data, nothing more, sometimes less. So it would stand to reason that how a language chooses to represent data is a key factor in determining the shape and overall effectiveness of every program written in that language.\n\nYarn takes a new perspective on data representation, forcing all newcomers to do a little brain refactoring to get wrapped around it's seemingly esoteric syntax.  Instead of trying to digest everything at once, it's often better to see the inspirations and causalities behind the design choices - as solutions are meaningless without problems for them to solve. The next sections attempt to give a clear view of the playing field, and to provide you the means to make your own informed assessment of the methodology's efficacy.  \n\n### Object Representation, The Namespace & Selectors\n\n[JavaScript](http://en.wikipedia.org/wiki/JavaScript) is a beautifully minimal language in many ways, but most notably in it's data representation format known as [JSON](http://en.wikipedia.org/wiki/JSON) (JavaScript Object Notation). \n\nJSON is a plain text format for representing data (strings, numbers, objects and arrays), and is arguably the standard of modern data portability. JSON is [parseable](http://en.wikipedia.org/wiki/Parsing) (to be read and understood) by virtually any language that can work with strings.  JSON is also very extensible in that objects are not instances of any class, and may have properties freely added and removed from them without affecting other objects.\n\nYarn carries this portability forward by producing all of it's output in JSON format, which naturally imbues Yarn with only three underlying data types to worry about: Strings, Numbers and Objects. As far as yarn is concerned Arrays are just Objects with other Objects as ordered children.\n\n#### Object Representation\n\nFirst let's take a look at a sample JSON object representing an array of 3 blog posts:\nFor example, a JSON representation of an array of 3 objects representing simple blog posts:\n```json\n[\n    {\n        \"poster\": {\n            \"name\": \"jack\",\n            \"avatar\": \"http://img\",\n            \"age\": 42\n        },\n        \"blog_body\": \"Lorem ipsum hey there dipsum, shipsum, kipsum.\",\n        \"blog_title\": \"The Lorem Report\",\n        \"blog_created_at\": 1382383726087\n    },\n    {\n        \"poster\": {\n            \"name\": \"jill\",\n            \"avatar\": \"http://img2\",\n            \"age\": 20\n        },\n        \"blog_body\": \"Rorem jipsum hey there dipsum, shipsum, kipsum.\",\n        \"blog_title\": \"The Rorem Report\",\n        \"blog_created_at\": 1382383526087\n    },\n    {\n        \"poster\": {\n            \"name\": \"jill\",\n            \"avatar\": \"http://img2\",\n            \"age\": 20\n        },\n        \"blog_body\": \"And that's okay.\",\n        \"blog_title\": \"My Cat's Breath Smells Like Catfood\",\n        \"blog_created_at\": 1382363726087\n    }\n]\n```\nIn JavaScript if we wanted to access the blog title of the first post we would use:\n```javascript\nMY_OBJECT[0].blog_title\n```\nOr if we wanted the name of the poster in the 3rd blog post we would use:\n```javascript\nMY_OBJECT[2].poster.name\n```\nAnd finally if we wanted to add the ages of all three posters without a for loop:\n```javascript\nMY_OBJECT[0].poster.age + MY_OBJECT[1].poster.age + MY_OBJECT[2].poster.age\n```\n\nAs you can see JavaScript allows deep access to objects by appending `.field_name` and deep access to array's by appending `[array_index]`.\n\nNow let's take a look at how Yarn represents that same data:\n```json\n{\n    \"0.poster.name\": \"jack\",\n    \"0.poster.avatar\": \"http://img\",\n    \"0.poster.age\": 42,\n    \"0.blog_body\": \"Lorem ipsum hey there dipsum, shipsum, kipsum.\",\n    \"0.blog_title\": \"The Lorem Report\",\n    \"0.blog_created_at\": 1382383726087,\n    \"1.poster.name\": \"jill\",\n    \"1.poster.avatar\": \"http://img2\",\n    \"1.poster.age\": 20,\n    \"1.blog_body\": \"Rorem jipsum hey there dipsum, shipsum, kipsum.\",\n    \"1.blog_title\": \"The Rorem Report\",\n    \"1.blog_created_at\": 1382383526087,\n    \"2.poster.name\": \"jill\",\n    \"2.posteravatar\": \"http://img2\",\n    \"2.posterage\": 20,\n    \"2.blog_body\": \"And that's okay.\",\n    \"2.blog_title\": \"My Cat's Breath Smells Like Catfood\",\n    \"2.blog_created_at\": 1382363726087\n}\n```\nWe like to call this 'Flat JSON' or 'FJSON' for short. Flat, because all the data exists as a single object with many fields. Although this appears in a less human readable format than traditional JSON - it allows us a few tricks that are otherwise clumsy and unforgiving normally.\n\nIn JavaScript if we wanted to access the blog title of the first post we would use:\n```javascript\nMY_OBJECT['0.blog_title']\n```\nOr if we wanted the name of the poster in the 3rd blog post we would use:\n```javascript\nMY_OBJECT['2.poster.name']\n```\nAnd finally if we wanted to add the ages of all three posters without a for loop:\n```javascript\nMY_OBJECT['0.poster.age'] + MY_OBJECT['1.poster.age'] + MY_OBJECT['2.poster.age']\n```\n\nAs you can see FJSON allows JavaScript to deep access objects using a single string field identifier, with `.` periods used indiscriminately between objects an arrays.\n\n\n\n#### The Namespace\n\n#### Selectors\n\nIn order to access data in the namespace, we borrow the idea of <a href=\"http://en.wikipedia.org/wiki/Glob_(programming)\">glob</a>-style pattern matching from [Redis](http://redis.io/), and mix it with the idea of [selectors](http://api.jquery.com/category/selectors/) from [JQuery](http://jquery.com/).\n\nIt's easiest to look at a few examples, first let's provide a sample namespace to *select* from:\n```json\n{\n    \"0.poster.name\": \"jack\",\n    \"0.poster.avatar\": \"http://img\",\n    \"0.poster.age\": 42,\n    \"0.blog_body\": \"Lorem ipsum hey there dipsum, shipsum, kipsum.\",\n    \"0.blog_title\": \"The Lorem Report\",\n    \"0.blog_created_at\": 1382383726087,\n    \"1.poster.name\": \"jill\",\n    \"1.poster.avatar\": \"http://img2\",\n    \"1.poster.age\": 20,\n    \"1.blog_body\": \"Rorem jipsum hey there dipsum, shipsum, kipsum.\",\n    \"1.blog_title\": \"The Rorem Report\",\n    \"1.blog_created_at\": 1382383526087,\n    \"2.poster.name\": \"jill\",\n    \"2.posteravatar\": \"http://img2\",\n    \"2.posterage\": 20,\n    \"2.blog_body\": \"And that's okay.\",\n    \"2.blog_title\": \"My Cat's Breath Smells Like Catfood\",\n    \"2.blog_created_at\": 1382363726087\n}\n```\n\nIn Yarn if we wanted to access the blog title of the first post we would use:\n```yarn\n(0.blog_title)\n```\nOr if we wanted the name of the poster in the 3rd blog post we would use:\n```yarn\n(2.poster.name)\n```\nAnd finally if we wanted to add the ages of all three posters without a for loop, we can use the `sum` function and a wildcard selector to select all the ages:\n```yarn\nsum (*.poster.age) \n```\nWhich is the same as (the logical equivalent of):\n```yarn\nsum (0.poster.age) (1.poster.age) (2.poster.age)\n```\n\n\n\n## Functions\n\nFunctions are like little machines with an in slot and an out slot.<br>\nYou put some stuff in, and you usually even get some stuff back.\n\nMost programming languages have some conceptualization of functions, and Yarn is no different. \n\nHowever unlike most programming languages, Yarn does not allow a user to make and call their own functions (known as extrinsic functions, and extrinsic function calls). Most assembly languages are also this way, only allowing the user to call built-in functions (known as intrinsic function calls).\n\n### Functional Intrinsicity, Extrinsicity & N-Arity\n\n#### Intrinsicity\n\nFunctions that are provided as part of the programming language itself are known as [Intrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_function). Every program is nothing more than these intrinsic functions combined and arranged in some meaningful way to complete a task.\n\nA few intrinsic Javascript function calls:\n```javascript\nconsole.log('hello world');\n\nMath.sqrt(9);\n\n('hello world').split('llo');\n```  \n#### Extrinsicity\n\nAlthough **every** program can be expressed using nothing more than intrinsic functions, it is very common to also create your own functions to help remove repetition.  Functions that are not provided as part of the language, but rather created by the programmer are known as [Extrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties).\n\nA javascript extrinsic function definition and call:\n```javascript\nfunction my_extrinsic_function (any_string) {\n\tconsole.log(any_string);\n\t// any number of intrinsic function calls go here\n};\n\nmy_extrinsic_function('the any string');\n```\n\n#### Caveat\n\nIt is important to note that no matter how complex or incomprehensible any extrinsic function may seem, **every extrinsic function is made up of nothing more than intrinsic functions**.\n\nYarn takes advantage of this quirk by providing a strong base of intrinsic n-ary functions coupled with lateral flow control operations. In this way extrinsic functions become useful in <1% of cases, meaning <1% of programmers will ever need to handle that style of repetition, and when they do it can still be done by simply copying and pasting (which is how most naive developers would solve the task in the first place).\n\n#### N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)? Basically how many arguments a function is willing to accept.\n\n+ A **nullary** function takes **no arguments**.\n\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nnullary();\n```\n\n+ A **unary** function takes **one argument**.\n\n```javascript\nfunction unary (x) {\n\tconsole.log(x);\n};\nunary('a');\n```\n\n+ A **binary** function takes **two arguments**.\n\n```javascript\nfunction binary (x, y) { \n\tconsole.log(x, y);\n};\nbinary('a', 'b');\n```\n\n+ A **ternary** function takes **three arguments**.\n\n```javascript\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nternary('a', 'b', 'c');\n```\n\n+ An **n-ary** function takes **n (any number of) arguments**.\n\n```javascript\nfunction n_ary () {\n\t\n\t// javascript has hidden n-arity through a function's not \n\t// so obvious 'arguments' property\n\tfor (var obj_key in arguments) {\n\n\t\t// log argument\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// this allows us to call an n-ary function with as many or as \n// few parameters as we please, and all forms are correct\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of parameters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurrence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurrences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurrence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurrences `occurrences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurrences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurrences [car]  [This is my string about cars, it's a quick sentence about cars.] \n                   [Another car string] \n                   [One More car String.] \n                   [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any parameters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurrences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurrences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existence is counted as true, so bowlerderby is actually logically equivalent to true.\n\n\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?\n\n\n\nprojecting data into a flat tile automatically per date span...","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-137","dist":{"shasum":"5491ba34b33561c4feaf0864b76c6dffcd51b97a","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-137.tgz","integrity":"sha512-wb/iUKZtvzjmDwQQMiueqYKqEuhHT8TJoujdM+6Btmr/ZaGJY9fiiwSjO8w2smRK364/0Hu/A0C6K+TbQqDi0g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFu8H0A21l9lKRVRSFdyVReQ/o5m1iHU2Tf+2iElDcU+AiEA0p0FXyHIZidv3iZmDBiLAmorVozcYkUyYRTrQyaU7uY="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-138":{"name":"yarnlang","version":"0.1.0-138","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"+ Data Types & Object Representation [&clubs;](https://github.com/adrianseeley/yarnlang#data-types--object-representation)\n    + Object Representation, The Namespace & Selectors [&clubs;](https://github.com/adrianseeley/yarnlang#object-representation-the-namespace--selectors)\n        + Object Representationn [&clubs;](https://github.com/adrianseeley/yarnlang#object-representation)\n        + The Namespace [&clubs;](https://github.com/adrianseeley/yarnlang#the-namespace)\n        + Selectors [&clubs;](https://github.com/adrianseeley/yarnlang#selectors)\n+ Functions [&clubs;](https://github.com/adrianseeley/yarnlang#functions)\n    + Functional Intrinsicity, Extrinsicity & N-Arity [&clubs;](https://github.com/adrianseeley/yarnlang#functional-intrinsicity-extrinsicity--n-arity)\n        + Intrinsicity [&clubs;](https://github.com/adrianseeley/yarnlang#intrinsicity)\n        + Extrinsicity [&clubs;](https://github.com/adrianseeley/yarnlang#extrinsicity)\n        + Caveat [&clubs;](https://github.com/adrianseeley/yarnlang#caveat)\n        + N-Ary Parametered Functions [&clubs;](https://github.com/adrianseeley/yarnlang#n-ary-parametered-functions)\n\n\n\n\n\n## Data Types & Object Representation\n\nPrograms assess and manipulate data, nothing more, sometimes less. So it would stand to reason that how a language chooses to represent data is a key factor in determining the shape and overall effectiveness of every program written in that language.\n\nYarn takes a new perspective on data representation, forcing all newcomers to do a little brain refactoring to get wrapped around it's seemingly esoteric syntax.  Instead of trying to digest everything at once, it's often better to see the inspirations and causalities behind the design choices - as solutions are meaningless without problems for them to solve. The next sections attempt to give a clear view of the playing field, and to provide you the means to make your own informed assessment of the methodology's efficacy.  \n\n### Object Representation, The Namespace & Selectors\n\n[JavaScript](http://en.wikipedia.org/wiki/JavaScript) is a beautifully minimal language in many ways, but most notably in it's data representation format known as [JSON](http://en.wikipedia.org/wiki/JSON) (JavaScript Object Notation). \n\nJSON is a plain text format for representing data (strings, numbers, objects and arrays), and is arguably the standard of modern data portability. JSON is [parseable](http://en.wikipedia.org/wiki/Parsing) (to be read and understood) by virtually any language that can work with strings.  JSON is also very extensible in that objects are not instances of any class, and may have properties freely added and removed from them without affecting other objects.\n\nYarn carries this portability forward by producing all of it's output in JSON format, which naturally imbues Yarn with only three underlying data types to worry about: Strings, Numbers and Objects. As far as yarn is concerned Arrays are just Objects with other Objects as ordered children.\n\n#### Object Representation\n\nFirst let's take a look at a sample JSON object representing an array of 3 blog posts:\nFor example, a JSON representation of an array of 3 objects representing simple blog posts:\n```json\n[\n    {\n        \"poster\": {\n            \"name\": \"jack\",\n            \"avatar\": \"http://img\",\n            \"age\": 42\n        },\n        \"blog_body\": \"Lorem ipsum hey there dipsum, shipsum, kipsum.\",\n        \"blog_title\": \"The Lorem Report\",\n        \"blog_created_at\": 1382383726087\n    },\n    {\n        \"poster\": {\n            \"name\": \"jill\",\n            \"avatar\": \"http://img2\",\n            \"age\": 20\n        },\n        \"blog_body\": \"Rorem jipsum hey there dipsum, shipsum, kipsum.\",\n        \"blog_title\": \"The Rorem Report\",\n        \"blog_created_at\": 1382383526087\n    },\n    {\n        \"poster\": {\n            \"name\": \"jill\",\n            \"avatar\": \"http://img2\",\n            \"age\": 20\n        },\n        \"blog_body\": \"And that's okay.\",\n        \"blog_title\": \"My Cat's Breath Smells Like Catfood\",\n        \"blog_created_at\": 1382363726087\n    }\n]\n```\nIn JavaScript if we wanted to access the blog title of the first post we would use:\n```javascript\nMY_OBJECT[0].blog_title\n```\nOr if we wanted the name of the poster in the 3rd blog post we would use:\n```javascript\nMY_OBJECT[2].poster.name\n```\nAnd finally if we wanted to add the ages of all three posters without a for loop:\n```javascript\nMY_OBJECT[0].poster.age + MY_OBJECT[1].poster.age + MY_OBJECT[2].poster.age\n```\n\nAs you can see JavaScript allows deep access to objects by appending `.field_name` and deep access to array's by appending `[array_index]`.\n\nNow let's take a look at how Yarn represents that same data:\n```json\n{\n    \"0.poster.name\": \"jack\",\n    \"0.poster.avatar\": \"http://img\",\n    \"0.poster.age\": 42,\n    \"0.blog_body\": \"Lorem ipsum hey there dipsum, shipsum, kipsum.\",\n    \"0.blog_title\": \"The Lorem Report\",\n    \"0.blog_created_at\": 1382383726087,\n    \"1.poster.name\": \"jill\",\n    \"1.poster.avatar\": \"http://img2\",\n    \"1.poster.age\": 20,\n    \"1.blog_body\": \"Rorem jipsum hey there dipsum, shipsum, kipsum.\",\n    \"1.blog_title\": \"The Rorem Report\",\n    \"1.blog_created_at\": 1382383526087,\n    \"2.poster.name\": \"jill\",\n    \"2.posteravatar\": \"http://img2\",\n    \"2.posterage\": 20,\n    \"2.blog_body\": \"And that's okay.\",\n    \"2.blog_title\": \"My Cat's Breath Smells Like Catfood\",\n    \"2.blog_created_at\": 1382363726087\n}\n```\nWe like to call this 'Flat JSON' or 'FJSON' for short. Flat, because all the data exists as a single object with many fields. Although this appears in a less human readable format than traditional JSON - it allows us a few tricks that are otherwise clumsy and unforgiving normally.\n\nIn JavaScript if we wanted to access the blog title of the first post we would use:\n```javascript\nMY_OBJECT['0.blog_title']\n```\nOr if we wanted the name of the poster in the 3rd blog post we would use:\n```javascript\nMY_OBJECT['2.poster.name']\n```\nAnd finally if we wanted to add the ages of all three posters without a for loop:\n```javascript\nMY_OBJECT['0.poster.age'] + MY_OBJECT['1.poster.age'] + MY_OBJECT['2.poster.age']\n```\n\nAs you can see FJSON allows JavaScript to deep access objects using a single string field identifier, with `.` periods used indiscriminately between objects an arrays.\n\n\n\n#### The Namespace\n\n#### Selectors\n\nIn order to access data in the namespace, we borrow the idea of <a href=\"http://en.wikipedia.org/wiki/Glob_(programming)\">glob</a>-style pattern matching from [Redis](http://redis.io/), and mix it with the idea of [selectors](http://api.jquery.com/category/selectors/) from [JQuery](http://jquery.com/).\n\nIt's easiest to look at a few examples, first let's provide a sample namespace to *select* from:\n```json\n{\n    \"0.poster.name\": \"jack\",\n    \"0.poster.avatar\": \"http://img\",\n    \"0.poster.age\": 42,\n    \"0.blog_body\": \"Lorem ipsum hey there dipsum, shipsum, kipsum.\",\n    \"0.blog_title\": \"The Lorem Report\",\n    \"0.blog_created_at\": 1382383726087,\n    \"1.poster.name\": \"jill\",\n    \"1.poster.avatar\": \"http://img2\",\n    \"1.poster.age\": 20,\n    \"1.blog_body\": \"Rorem jipsum hey there dipsum, shipsum, kipsum.\",\n    \"1.blog_title\": \"The Rorem Report\",\n    \"1.blog_created_at\": 1382383526087,\n    \"2.poster.name\": \"jill\",\n    \"2.posteravatar\": \"http://img2\",\n    \"2.posterage\": 20,\n    \"2.blog_body\": \"And that's okay.\",\n    \"2.blog_title\": \"My Cat's Breath Smells Like Catfood\",\n    \"2.blog_created_at\": 1382363726087\n}\n```\n\nIn Yarn if we wanted to access the blog title of the first post we would use:\n```yarn\n(0.blog_title)\n```\nOr if we wanted the name of the poster in the 3rd blog post we would use:\n```yarn\n(2.poster.name)\n```\nAnd finally if we wanted to add the ages of all three posters without a for loop, we can use the `sum` function and a wildcard selector to select all the ages:\n```yarn\nsum (*.poster.age) \n```\nWhich is the same as (the logical equivalent of):\n```yarn\nsum (0.poster.age) (1.poster.age) (2.poster.age)\n```\n\n\n\n## Functions\n\nFunctions are like little machines with an in slot and an out slot.<br>\nYou put some stuff in, and you usually even get some stuff back.\n\nMost programming languages have some conceptualization of functions, and Yarn is no different. \n\nHowever unlike most programming languages, Yarn does not allow a user to make and call their own functions (known as extrinsic functions, and extrinsic function calls). Most assembly languages are also this way, only allowing the user to call built-in functions (known as intrinsic function calls).\n\n### Functional Intrinsicity, Extrinsicity & N-Arity\n\n#### Intrinsicity\n\nFunctions that are provided as part of the programming language itself are known as [Intrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_function). Every program is nothing more than these intrinsic functions combined and arranged in some meaningful way to complete a task.\n\nA few intrinsic Javascript function calls:\n```javascript\nconsole.log('hello world');\n\nMath.sqrt(9);\n\n('hello world').split('llo');\n```  \n#### Extrinsicity\n\nAlthough **every** program can be expressed using nothing more than intrinsic functions, it is very common to also create your own functions to help remove repetition.  Functions that are not provided as part of the language, but rather created by the programmer are known as [Extrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties).\n\nA javascript extrinsic function definition and call:\n```javascript\nfunction my_extrinsic_function (any_string) {\n\tconsole.log(any_string);\n\t// any number of intrinsic function calls go here\n};\n\nmy_extrinsic_function('the any string');\n```\n\n#### Caveat\n\nIt is important to note that no matter how complex or incomprehensible any extrinsic function may seem, **every extrinsic function is made up of nothing more than intrinsic functions**.\n\nYarn takes advantage of this quirk by providing a strong base of intrinsic n-ary functions coupled with lateral flow control operations. In this way extrinsic functions become useful in <1% of cases, meaning <1% of programmers will ever need to handle that style of repetition, and when they do it can still be done by simply copying and pasting (which is how most naive developers would solve the task in the first place).\n\n#### N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)? Basically how many arguments a function is willing to accept.\n\n+ A **nullary** function takes **no arguments**.\n\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nnullary();\n```\n\n+ A **unary** function takes **one argument**.\n\n```javascript\nfunction unary (x) {\n\tconsole.log(x);\n};\nunary('a');\n```\n\n+ A **binary** function takes **two arguments**.\n\n```javascript\nfunction binary (x, y) { \n\tconsole.log(x, y);\n};\nbinary('a', 'b');\n```\n\n+ A **ternary** function takes **three arguments**.\n\n```javascript\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nternary('a', 'b', 'c');\n```\n\n+ An **n-ary** function takes **n (any number of) arguments**.\n\n```javascript\nfunction n_ary () {\n\t\n\t// javascript has hidden n-arity through a function's not \n\t// so obvious 'arguments' property\n\tfor (var obj_key in arguments) {\n\n\t\t// log argument\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// this allows us to call an n-ary function with as many or as \n// few parameters as we please, and all forms are correct\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of parameters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurrence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurrences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurrence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurrences `occurrences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurrences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurrences [car]  [This is my string about cars, it's a quick sentence about cars.] \n                   [Another car string] \n                   [One More car String.] \n                   [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any parameters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurrences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurrences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existence is counted as true, so bowlerderby is actually logically equivalent to true.\n\n\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?\n\n\n\nprojecting data into a flat tile automatically per date span...","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-138","dist":{"shasum":"67b0d3a67c9a11b173188ac2b6a8131802a088c3","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-138.tgz","integrity":"sha512-QtKoH9Y8E1+bKIG8Z+oKD+KfhyRdpEv8gn2tsvt+ZFHVmyusMrdwMgUXSghIgrtp0g/ETCUod78p4M9F9YDJRA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDFqpPd5MGLhLjwnt17uuR0Ul+X+bJ/Uagr1Y6XhVVQ6gIgCJKyPUTgF0PQZJ4A+kFaVN+w87ViHgJjKPx8i4DEs3o="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-139":{"name":"yarnlang","version":"0.1.0-139","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"+ **Data Types & Object Representation** [&clubs;](https://github.com/adrianseeley/yarnlang#data-types--object-representation)\n    + Object Representation, The Namespace & Selectors [&clubs;](https://github.com/adrianseeley/yarnlang#object-representation-the-namespace--selectors)\n        + Object Representationn [&clubs;](https://github.com/adrianseeley/yarnlang#object-representation)\n        + The Namespace [&clubs;](https://github.com/adrianseeley/yarnlang#the-namespace)\n        + Selectors [&clubs;](https://github.com/adrianseeley/yarnlang#selectors)\n+ **Functions** [&clubs;](https://github.com/adrianseeley/yarnlang#functions)\n    + Functional Intrinsicity, Extrinsicity & N-Arity [&clubs;](https://github.com/adrianseeley/yarnlang#functional-intrinsicity-extrinsicity--n-arity)\n        + Intrinsicity [&clubs;](https://github.com/adrianseeley/yarnlang#intrinsicity)\n        + Extrinsicity [&clubs;](https://github.com/adrianseeley/yarnlang#extrinsicity)\n        + Caveat [&clubs;](https://github.com/adrianseeley/yarnlang#caveat)\n        + N-Ary Parametered Functions [&clubs;](https://github.com/adrianseeley/yarnlang#n-ary-parametered-functions)\n\n\n\n\n\n## Data Types & Object Representation\n\nPrograms assess and manipulate data, nothing more, sometimes less. So it would stand to reason that how a language chooses to represent data is a key factor in determining the shape and overall effectiveness of every program written in that language.\n\nYarn takes a new perspective on data representation, forcing all newcomers to do a little brain refactoring to get wrapped around it's seemingly esoteric syntax.  Instead of trying to digest everything at once, it's often better to see the inspirations and causalities behind the design choices - as solutions are meaningless without problems for them to solve. The next sections attempt to give a clear view of the playing field, and to provide you the means to make your own informed assessment of the methodology's efficacy.  \n\n### Object Representation, The Namespace & Selectors\n\n[JavaScript](http://en.wikipedia.org/wiki/JavaScript) is a beautifully minimal language in many ways, but most notably in it's data representation format known as [JSON](http://en.wikipedia.org/wiki/JSON) (JavaScript Object Notation). \n\nJSON is a plain text format for representing data (strings, numbers, objects and arrays), and is arguably the standard of modern data portability. JSON is [parseable](http://en.wikipedia.org/wiki/Parsing) (to be read and understood) by virtually any language that can work with strings.  JSON is also very extensible in that objects are not instances of any class, and may have properties freely added and removed from them without affecting other objects.\n\nYarn carries this portability forward by producing all of it's output in JSON format, which naturally imbues Yarn with only three underlying data types to worry about: Strings, Numbers and Objects. As far as yarn is concerned Arrays are just Objects with other Objects as ordered children.\n\n#### Object Representation\n\nFirst let's take a look at a sample JSON object representing an array of 3 blog posts:\nFor example, a JSON representation of an array of 3 objects representing simple blog posts:\n```json\n[\n    {\n        \"poster\": {\n            \"name\": \"jack\",\n            \"avatar\": \"http://img\",\n            \"age\": 42\n        },\n        \"blog_body\": \"Lorem ipsum hey there dipsum, shipsum, kipsum.\",\n        \"blog_title\": \"The Lorem Report\",\n        \"blog_created_at\": 1382383726087\n    },\n    {\n        \"poster\": {\n            \"name\": \"jill\",\n            \"avatar\": \"http://img2\",\n            \"age\": 20\n        },\n        \"blog_body\": \"Rorem jipsum hey there dipsum, shipsum, kipsum.\",\n        \"blog_title\": \"The Rorem Report\",\n        \"blog_created_at\": 1382383526087\n    },\n    {\n        \"poster\": {\n            \"name\": \"jill\",\n            \"avatar\": \"http://img2\",\n            \"age\": 20\n        },\n        \"blog_body\": \"And that's okay.\",\n        \"blog_title\": \"My Cat's Breath Smells Like Catfood\",\n        \"blog_created_at\": 1382363726087\n    }\n]\n```\nIn JavaScript if we wanted to access the blog title of the first post we would use:\n```javascript\nMY_OBJECT[0].blog_title\n```\nOr if we wanted the name of the poster in the 3rd blog post we would use:\n```javascript\nMY_OBJECT[2].poster.name\n```\nAnd finally if we wanted to add the ages of all three posters without a for loop:\n```javascript\nMY_OBJECT[0].poster.age + MY_OBJECT[1].poster.age + MY_OBJECT[2].poster.age\n```\n\nAs you can see JavaScript allows deep access to objects by appending `.field_name` and deep access to array's by appending `[array_index]`.\n\nNow let's take a look at how Yarn represents that same data:\n```json\n{\n    \"0.poster.name\": \"jack\",\n    \"0.poster.avatar\": \"http://img\",\n    \"0.poster.age\": 42,\n    \"0.blog_body\": \"Lorem ipsum hey there dipsum, shipsum, kipsum.\",\n    \"0.blog_title\": \"The Lorem Report\",\n    \"0.blog_created_at\": 1382383726087,\n    \"1.poster.name\": \"jill\",\n    \"1.poster.avatar\": \"http://img2\",\n    \"1.poster.age\": 20,\n    \"1.blog_body\": \"Rorem jipsum hey there dipsum, shipsum, kipsum.\",\n    \"1.blog_title\": \"The Rorem Report\",\n    \"1.blog_created_at\": 1382383526087,\n    \"2.poster.name\": \"jill\",\n    \"2.posteravatar\": \"http://img2\",\n    \"2.posterage\": 20,\n    \"2.blog_body\": \"And that's okay.\",\n    \"2.blog_title\": \"My Cat's Breath Smells Like Catfood\",\n    \"2.blog_created_at\": 1382363726087\n}\n```\nWe like to call this 'Flat JSON' or 'FJSON' for short. Flat, because all the data exists as a single object with many fields. Although this appears in a less human readable format than traditional JSON - it allows us a few tricks that are otherwise clumsy and unforgiving normally.\n\nIn JavaScript if we wanted to access the blog title of the first post we would use:\n```javascript\nMY_OBJECT['0.blog_title']\n```\nOr if we wanted the name of the poster in the 3rd blog post we would use:\n```javascript\nMY_OBJECT['2.poster.name']\n```\nAnd finally if we wanted to add the ages of all three posters without a for loop:\n```javascript\nMY_OBJECT['0.poster.age'] + MY_OBJECT['1.poster.age'] + MY_OBJECT['2.poster.age']\n```\n\nAs you can see FJSON allows JavaScript to deep access objects using a single string field identifier, with `.` periods used indiscriminately between objects an arrays.\n\n\n\n#### The Namespace\n\n#### Selectors\n\nIn order to access data in the namespace, we borrow the idea of <a href=\"http://en.wikipedia.org/wiki/Glob_(programming)\">glob</a>-style pattern matching from [Redis](http://redis.io/), and mix it with the idea of [selectors](http://api.jquery.com/category/selectors/) from [JQuery](http://jquery.com/).\n\nIt's easiest to look at a few examples, first let's provide a sample namespace to *select* from:\n```json\n{\n    \"0.poster.name\": \"jack\",\n    \"0.poster.avatar\": \"http://img\",\n    \"0.poster.age\": 42,\n    \"0.blog_body\": \"Lorem ipsum hey there dipsum, shipsum, kipsum.\",\n    \"0.blog_title\": \"The Lorem Report\",\n    \"0.blog_created_at\": 1382383726087,\n    \"1.poster.name\": \"jill\",\n    \"1.poster.avatar\": \"http://img2\",\n    \"1.poster.age\": 20,\n    \"1.blog_body\": \"Rorem jipsum hey there dipsum, shipsum, kipsum.\",\n    \"1.blog_title\": \"The Rorem Report\",\n    \"1.blog_created_at\": 1382383526087,\n    \"2.poster.name\": \"jill\",\n    \"2.posteravatar\": \"http://img2\",\n    \"2.posterage\": 20,\n    \"2.blog_body\": \"And that's okay.\",\n    \"2.blog_title\": \"My Cat's Breath Smells Like Catfood\",\n    \"2.blog_created_at\": 1382363726087\n}\n```\n\nIn Yarn if we wanted to access the blog title of the first post we would use:\n```yarn\n(0.blog_title)\n```\nOr if we wanted the name of the poster in the 3rd blog post we would use:\n```yarn\n(2.poster.name)\n```\nAnd finally if we wanted to add the ages of all three posters without a for loop, we can use the `sum` function and a wildcard selector to select all the ages:\n```yarn\nsum (*.poster.age) \n```\nWhich is the same as (the logical equivalent of):\n```yarn\nsum (0.poster.age) (1.poster.age) (2.poster.age)\n```\n\n\n\n## Functions\n\nFunctions are like little machines with an in slot and an out slot.<br>\nYou put some stuff in, and you usually even get some stuff back.\n\nMost programming languages have some conceptualization of functions, and Yarn is no different. \n\nHowever unlike most programming languages, Yarn does not allow a user to make and call their own functions (known as extrinsic functions, and extrinsic function calls). Most assembly languages are also this way, only allowing the user to call built-in functions (known as intrinsic function calls).\n\n### Functional Intrinsicity, Extrinsicity & N-Arity\n\n#### Intrinsicity\n\nFunctions that are provided as part of the programming language itself are known as [Intrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_function). Every program is nothing more than these intrinsic functions combined and arranged in some meaningful way to complete a task.\n\nA few intrinsic Javascript function calls:\n```javascript\nconsole.log('hello world');\n\nMath.sqrt(9);\n\n('hello world').split('llo');\n```  \n#### Extrinsicity\n\nAlthough **every** program can be expressed using nothing more than intrinsic functions, it is very common to also create your own functions to help remove repetition.  Functions that are not provided as part of the language, but rather created by the programmer are known as [Extrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties).\n\nA javascript extrinsic function definition and call:\n```javascript\nfunction my_extrinsic_function (any_string) {\n\tconsole.log(any_string);\n\t// any number of intrinsic function calls go here\n};\n\nmy_extrinsic_function('the any string');\n```\n\n#### Caveat\n\nIt is important to note that no matter how complex or incomprehensible any extrinsic function may seem, **every extrinsic function is made up of nothing more than intrinsic functions**.\n\nYarn takes advantage of this quirk by providing a strong base of intrinsic n-ary functions coupled with lateral flow control operations. In this way extrinsic functions become useful in <1% of cases, meaning <1% of programmers will ever need to handle that style of repetition, and when they do it can still be done by simply copying and pasting (which is how most naive developers would solve the task in the first place).\n\n#### N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)? Basically how many arguments a function is willing to accept.\n\n+ A **nullary** function takes **no arguments**.\n\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nnullary();\n```\n\n+ A **unary** function takes **one argument**.\n\n```javascript\nfunction unary (x) {\n\tconsole.log(x);\n};\nunary('a');\n```\n\n+ A **binary** function takes **two arguments**.\n\n```javascript\nfunction binary (x, y) { \n\tconsole.log(x, y);\n};\nbinary('a', 'b');\n```\n\n+ A **ternary** function takes **three arguments**.\n\n```javascript\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nternary('a', 'b', 'c');\n```\n\n+ An **n-ary** function takes **n (any number of) arguments**.\n\n```javascript\nfunction n_ary () {\n\t\n\t// javascript has hidden n-arity through a function's not \n\t// so obvious 'arguments' property\n\tfor (var obj_key in arguments) {\n\n\t\t// log argument\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// this allows us to call an n-ary function with as many or as \n// few parameters as we please, and all forms are correct\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of parameters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurrence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurrences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurrence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurrences `occurrences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurrences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurrences [car]  [This is my string about cars, it's a quick sentence about cars.] \n                   [Another car string] \n                   [One More car String.] \n                   [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any parameters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurrences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurrences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existence is counted as true, so bowlerderby is actually logically equivalent to true.\n\n\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?\n\n\n\nprojecting data into a flat tile automatically per date span...","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-139","dist":{"shasum":"1ac13fa1af2323096d1fafa377c5bc0c66287c6e","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-139.tgz","integrity":"sha512-abBkUmtqaqOrYaYT0mNKHKxH9HJn8ZzTQBw68Hy3p8TQo7DoHRqeX5ItvYKeJFJF8M+/lDl4YRJ1Rgm3i8Y5bw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGdYH9vybd++6huLFMiKlS7GiyHPVHb4BMgejwiWkU/MAiEAoUSwBCR3j0iH0mRliwCAjJKkU/WDiYi0tSquZJS1x+c="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-140":{"name":"yarnlang","version":"0.1.0-140","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"+ **Data Types & Object Representation** [&clubs;](https://github.com/adrianseeley/yarnlang#data-types--object-representation)\n    + Object Representation, The Namespace & Selectors [&clubs;](https://github.com/adrianseeley/yarnlang#object-representation-the-namespace--selectors)\n        + *Object Representation* [&clubs;](https://github.com/adrianseeley/yarnlang#object-representation)\n        + *The Namespace* [&clubs;](https://github.com/adrianseeley/yarnlang#the-namespace)\n        + *Selectors* [&clubs;](https://github.com/adrianseeley/yarnlang#selectors)\n+ **Functions** [&clubs;](https://github.com/adrianseeley/yarnlang#functions)\n    + Functional Intrinsicity, Extrinsicity & N-Arity [&clubs;](https://github.com/adrianseeley/yarnlang#functional-intrinsicity-extrinsicity--n-arity)\n        + *Intrinsicity* [&clubs;](https://github.com/adrianseeley/yarnlang#intrinsicity)\n        + *Extrinsicity* [&clubs;](https://github.com/adrianseeley/yarnlang#extrinsicity)\n        + *Caveat* [&clubs;](https://github.com/adrianseeley/yarnlang#caveat)\n        + *N-Ary Parametered Functions* [&clubs;](https://github.com/adrianseeley/yarnlang#n-ary-parametered-functions)\n\n\n\n\n\n## Data Types & Object Representation\n\nPrograms assess and manipulate data, nothing more, sometimes less. So it would stand to reason that how a language chooses to represent data is a key factor in determining the shape and overall effectiveness of every program written in that language.\n\nYarn takes a new perspective on data representation, forcing all newcomers to do a little brain refactoring to get wrapped around it's seemingly esoteric syntax.  Instead of trying to digest everything at once, it's often better to see the inspirations and causalities behind the design choices - as solutions are meaningless without problems for them to solve. The next sections attempt to give a clear view of the playing field, and to provide you the means to make your own informed assessment of the methodology's efficacy.  \n\n### Object Representation, The Namespace & Selectors\n\n[JavaScript](http://en.wikipedia.org/wiki/JavaScript) is a beautifully minimal language in many ways, but most notably in it's data representation format known as [JSON](http://en.wikipedia.org/wiki/JSON) (JavaScript Object Notation). \n\nJSON is a plain text format for representing data (strings, numbers, objects and arrays), and is arguably the standard of modern data portability. JSON is [parseable](http://en.wikipedia.org/wiki/Parsing) (to be read and understood) by virtually any language that can work with strings.  JSON is also very extensible in that objects are not instances of any class, and may have properties freely added and removed from them without affecting other objects.\n\nYarn carries this portability forward by producing all of it's output in JSON format, which naturally imbues Yarn with only three underlying data types to worry about: Strings, Numbers and Objects. As far as yarn is concerned Arrays are just Objects with other Objects as ordered children.\n\n#### Object Representation\n\nFirst let's take a look at a sample JSON object representing an array of 3 blog posts:\nFor example, a JSON representation of an array of 3 objects representing simple blog posts:\n```json\n[\n    {\n        \"poster\": {\n            \"name\": \"jack\",\n            \"avatar\": \"http://img\",\n            \"age\": 42\n        },\n        \"blog_body\": \"Lorem ipsum hey there dipsum, shipsum, kipsum.\",\n        \"blog_title\": \"The Lorem Report\",\n        \"blog_created_at\": 1382383726087\n    },\n    {\n        \"poster\": {\n            \"name\": \"jill\",\n            \"avatar\": \"http://img2\",\n            \"age\": 20\n        },\n        \"blog_body\": \"Rorem jipsum hey there dipsum, shipsum, kipsum.\",\n        \"blog_title\": \"The Rorem Report\",\n        \"blog_created_at\": 1382383526087\n    },\n    {\n        \"poster\": {\n            \"name\": \"jill\",\n            \"avatar\": \"http://img2\",\n            \"age\": 20\n        },\n        \"blog_body\": \"And that's okay.\",\n        \"blog_title\": \"My Cat's Breath Smells Like Catfood\",\n        \"blog_created_at\": 1382363726087\n    }\n]\n```\nIn JavaScript if we wanted to access the blog title of the first post we would use:\n```javascript\nMY_OBJECT[0].blog_title\n```\nOr if we wanted the name of the poster in the 3rd blog post we would use:\n```javascript\nMY_OBJECT[2].poster.name\n```\nAnd finally if we wanted to add the ages of all three posters without a for loop:\n```javascript\nMY_OBJECT[0].poster.age + MY_OBJECT[1].poster.age + MY_OBJECT[2].poster.age\n```\n\nAs you can see JavaScript allows deep access to objects by appending `.field_name` and deep access to array's by appending `[array_index]`.\n\nNow let's take a look at how Yarn represents that same data:\n```json\n{\n    \"0.poster.name\": \"jack\",\n    \"0.poster.avatar\": \"http://img\",\n    \"0.poster.age\": 42,\n    \"0.blog_body\": \"Lorem ipsum hey there dipsum, shipsum, kipsum.\",\n    \"0.blog_title\": \"The Lorem Report\",\n    \"0.blog_created_at\": 1382383726087,\n    \"1.poster.name\": \"jill\",\n    \"1.poster.avatar\": \"http://img2\",\n    \"1.poster.age\": 20,\n    \"1.blog_body\": \"Rorem jipsum hey there dipsum, shipsum, kipsum.\",\n    \"1.blog_title\": \"The Rorem Report\",\n    \"1.blog_created_at\": 1382383526087,\n    \"2.poster.name\": \"jill\",\n    \"2.posteravatar\": \"http://img2\",\n    \"2.posterage\": 20,\n    \"2.blog_body\": \"And that's okay.\",\n    \"2.blog_title\": \"My Cat's Breath Smells Like Catfood\",\n    \"2.blog_created_at\": 1382363726087\n}\n```\nWe like to call this 'Flat JSON' or 'FJSON' for short. Flat, because all the data exists as a single object with many fields. Although this appears in a less human readable format than traditional JSON - it allows us a few tricks that are otherwise clumsy and unforgiving normally.\n\nIn JavaScript if we wanted to access the blog title of the first post we would use:\n```javascript\nMY_OBJECT['0.blog_title']\n```\nOr if we wanted the name of the poster in the 3rd blog post we would use:\n```javascript\nMY_OBJECT['2.poster.name']\n```\nAnd finally if we wanted to add the ages of all three posters without a for loop:\n```javascript\nMY_OBJECT['0.poster.age'] + MY_OBJECT['1.poster.age'] + MY_OBJECT['2.poster.age']\n```\n\nAs you can see FJSON allows JavaScript to deep access objects using a single string field identifier, with `.` periods used indiscriminately between objects an arrays.\n\n\n\n#### The Namespace\n\n#### Selectors\n\nIn order to access data in the namespace, we borrow the idea of <a href=\"http://en.wikipedia.org/wiki/Glob_(programming)\">glob</a>-style pattern matching from [Redis](http://redis.io/), and mix it with the idea of [selectors](http://api.jquery.com/category/selectors/) from [JQuery](http://jquery.com/).\n\nIt's easiest to look at a few examples, first let's provide a sample namespace to *select* from:\n```json\n{\n    \"0.poster.name\": \"jack\",\n    \"0.poster.avatar\": \"http://img\",\n    \"0.poster.age\": 42,\n    \"0.blog_body\": \"Lorem ipsum hey there dipsum, shipsum, kipsum.\",\n    \"0.blog_title\": \"The Lorem Report\",\n    \"0.blog_created_at\": 1382383726087,\n    \"1.poster.name\": \"jill\",\n    \"1.poster.avatar\": \"http://img2\",\n    \"1.poster.age\": 20,\n    \"1.blog_body\": \"Rorem jipsum hey there dipsum, shipsum, kipsum.\",\n    \"1.blog_title\": \"The Rorem Report\",\n    \"1.blog_created_at\": 1382383526087,\n    \"2.poster.name\": \"jill\",\n    \"2.posteravatar\": \"http://img2\",\n    \"2.posterage\": 20,\n    \"2.blog_body\": \"And that's okay.\",\n    \"2.blog_title\": \"My Cat's Breath Smells Like Catfood\",\n    \"2.blog_created_at\": 1382363726087\n}\n```\n\nIn Yarn if we wanted to access the blog title of the first post we would use:\n```yarn\n(0.blog_title)\n```\nOr if we wanted the name of the poster in the 3rd blog post we would use:\n```yarn\n(2.poster.name)\n```\nAnd finally if we wanted to add the ages of all three posters without a for loop, we can use the `sum` function and a wildcard selector to select all the ages:\n```yarn\nsum (*.poster.age) \n```\nWhich is the same as (the logical equivalent of):\n```yarn\nsum (0.poster.age) (1.poster.age) (2.poster.age)\n```\n\n\n\n## Functions\n\nFunctions are like little machines with an in slot and an out slot.<br>\nYou put some stuff in, and you usually even get some stuff back.\n\nMost programming languages have some conceptualization of functions, and Yarn is no different. \n\nHowever unlike most programming languages, Yarn does not allow a user to make and call their own functions (known as extrinsic functions, and extrinsic function calls). Most assembly languages are also this way, only allowing the user to call built-in functions (known as intrinsic function calls).\n\n### Functional Intrinsicity, Extrinsicity & N-Arity\n\n#### Intrinsicity\n\nFunctions that are provided as part of the programming language itself are known as [Intrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_function). Every program is nothing more than these intrinsic functions combined and arranged in some meaningful way to complete a task.\n\nA few intrinsic Javascript function calls:\n```javascript\nconsole.log('hello world');\n\nMath.sqrt(9);\n\n('hello world').split('llo');\n```  \n#### Extrinsicity\n\nAlthough **every** program can be expressed using nothing more than intrinsic functions, it is very common to also create your own functions to help remove repetition.  Functions that are not provided as part of the language, but rather created by the programmer are known as [Extrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties).\n\nA javascript extrinsic function definition and call:\n```javascript\nfunction my_extrinsic_function (any_string) {\n\tconsole.log(any_string);\n\t// any number of intrinsic function calls go here\n};\n\nmy_extrinsic_function('the any string');\n```\n\n#### Caveat\n\nIt is important to note that no matter how complex or incomprehensible any extrinsic function may seem, **every extrinsic function is made up of nothing more than intrinsic functions**.\n\nYarn takes advantage of this quirk by providing a strong base of intrinsic n-ary functions coupled with lateral flow control operations. In this way extrinsic functions become useful in <1% of cases, meaning <1% of programmers will ever need to handle that style of repetition, and when they do it can still be done by simply copying and pasting (which is how most naive developers would solve the task in the first place).\n\n#### N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)? Basically how many arguments a function is willing to accept.\n\n+ A **nullary** function takes **no arguments**.\n\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nnullary();\n```\n\n+ A **unary** function takes **one argument**.\n\n```javascript\nfunction unary (x) {\n\tconsole.log(x);\n};\nunary('a');\n```\n\n+ A **binary** function takes **two arguments**.\n\n```javascript\nfunction binary (x, y) { \n\tconsole.log(x, y);\n};\nbinary('a', 'b');\n```\n\n+ A **ternary** function takes **three arguments**.\n\n```javascript\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nternary('a', 'b', 'c');\n```\n\n+ An **n-ary** function takes **n (any number of) arguments**.\n\n```javascript\nfunction n_ary () {\n\t\n\t// javascript has hidden n-arity through a function's not \n\t// so obvious 'arguments' property\n\tfor (var obj_key in arguments) {\n\n\t\t// log argument\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// this allows us to call an n-ary function with as many or as \n// few parameters as we please, and all forms are correct\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of parameters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurrence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurrences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurrence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurrences `occurrences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurrences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurrences [car]  [This is my string about cars, it's a quick sentence about cars.] \n                   [Another car string] \n                   [One More car String.] \n                   [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any parameters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurrences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurrences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existence is counted as true, so bowlerderby is actually logically equivalent to true.\n\n\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?\n\n\n\nprojecting data into a flat tile automatically per date span...","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-140","dist":{"shasum":"2561065f219c708e946447242d280083ba600695","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-140.tgz","integrity":"sha512-x8Fx67nL3VAi5rxDHG2VJCAAsDckB8mW5moFdW/jhS04hDtuYtmFM7HO1ZX6cKyYPIsRil4XYe52Bo812UI/6Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG9SrYYnmC6fRoRM/7ZsdqcEUV19UzYMtiFHJCe7WtlhAiEA0cm1iqCqglfSssWaCYt1b8wyRMMoc6GqCEhUEpyGwC4="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-141":{"name":"yarnlang","version":"0.1.0-141","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"+ **Data Types & Object Representation** [&rarr;](https://github.com/adrianseeley/yarnlang#data-types--object-representation)\n    + Object Representation, The Namespace & Selectors [&rarr;](https://github.com/adrianseeley/yarnlang#object-representation-the-namespace--selectors)\n        + *Object Representation* [&rarr;](https://github.com/adrianseeley/yarnlang#object-representation)\n        + *The Namespace* [&rarr;](https://github.com/adrianseeley/yarnlang#the-namespace)\n        + *Selectors* [&rarr;](https://github.com/adrianseeley/yarnlang#selectors)\n+ **Functions** [&rarr;](https://github.com/adrianseeley/yarnlang#functions)\n    + Functional Intrinsicity, Extrinsicity & N-Arity [&rarr;](https://github.com/adrianseeley/yarnlang#functional-intrinsicity-extrinsicity--n-arity)\n        + *Intrinsicity* [&rarr;](https://github.com/adrianseeley/yarnlang#intrinsicity)\n        + *Extrinsicity* [&rarr;](https://github.com/adrianseeley/yarnlang#extrinsicity)\n        + *Caveat* [&rarr;](https://github.com/adrianseeley/yarnlang#caveat)\n        + *N-Ary Parametered Functions* [&rarr;](https://github.com/adrianseeley/yarnlang#n-ary-parametered-functions)\n\n\n\n\n\n## Data Types & Object Representation\n\nPrograms assess and manipulate data, nothing more, sometimes less. So it would stand to reason that how a language chooses to represent data is a key factor in determining the shape and overall effectiveness of every program written in that language.\n\nYarn takes a new perspective on data representation, forcing all newcomers to do a little brain refactoring to get wrapped around it's seemingly esoteric syntax.  Instead of trying to digest everything at once, it's often better to see the inspirations and causalities behind the design choices - as solutions are meaningless without problems for them to solve. The next sections attempt to give a clear view of the playing field, and to provide you the means to make your own informed assessment of the methodology's efficacy.  \n\n### Object Representation, The Namespace & Selectors\n\n[JavaScript](http://en.wikipedia.org/wiki/JavaScript) is a beautifully minimal language in many ways, but most notably in it's data representation format known as [JSON](http://en.wikipedia.org/wiki/JSON) (JavaScript Object Notation). \n\nJSON is a plain text format for representing data (strings, numbers, objects and arrays), and is arguably the standard of modern data portability. JSON is [parseable](http://en.wikipedia.org/wiki/Parsing) (to be read and understood) by virtually any language that can work with strings.  JSON is also very extensible in that objects are not instances of any class, and may have properties freely added and removed from them without affecting other objects.\n\nYarn carries this portability forward by producing all of it's output in JSON format, which naturally imbues Yarn with only three underlying data types to worry about: Strings, Numbers and Objects. As far as yarn is concerned Arrays are just Objects with other Objects as ordered children.\n\n#### Object Representation\n\nFirst let's take a look at a sample JSON object representing an array of 3 blog posts:\nFor example, a JSON representation of an array of 3 objects representing simple blog posts:\n```json\n[\n    {\n        \"poster\": {\n            \"name\": \"jack\",\n            \"avatar\": \"http://img\",\n            \"age\": 42\n        },\n        \"blog_body\": \"Lorem ipsum hey there dipsum, shipsum, kipsum.\",\n        \"blog_title\": \"The Lorem Report\",\n        \"blog_created_at\": 1382383726087\n    },\n    {\n        \"poster\": {\n            \"name\": \"jill\",\n            \"avatar\": \"http://img2\",\n            \"age\": 20\n        },\n        \"blog_body\": \"Rorem jipsum hey there dipsum, shipsum, kipsum.\",\n        \"blog_title\": \"The Rorem Report\",\n        \"blog_created_at\": 1382383526087\n    },\n    {\n        \"poster\": {\n            \"name\": \"jill\",\n            \"avatar\": \"http://img2\",\n            \"age\": 20\n        },\n        \"blog_body\": \"And that's okay.\",\n        \"blog_title\": \"My Cat's Breath Smells Like Catfood\",\n        \"blog_created_at\": 1382363726087\n    }\n]\n```\nIn JavaScript if we wanted to access the blog title of the first post we would use:\n```javascript\nMY_OBJECT[0].blog_title\n```\nOr if we wanted the name of the poster in the 3rd blog post we would use:\n```javascript\nMY_OBJECT[2].poster.name\n```\nAnd finally if we wanted to add the ages of all three posters without a for loop:\n```javascript\nMY_OBJECT[0].poster.age + MY_OBJECT[1].poster.age + MY_OBJECT[2].poster.age\n```\n\nAs you can see JavaScript allows deep access to objects by appending `.field_name` and deep access to array's by appending `[array_index]`.\n\nNow let's take a look at how Yarn represents that same data:\n```json\n{\n    \"0.poster.name\": \"jack\",\n    \"0.poster.avatar\": \"http://img\",\n    \"0.poster.age\": 42,\n    \"0.blog_body\": \"Lorem ipsum hey there dipsum, shipsum, kipsum.\",\n    \"0.blog_title\": \"The Lorem Report\",\n    \"0.blog_created_at\": 1382383726087,\n    \"1.poster.name\": \"jill\",\n    \"1.poster.avatar\": \"http://img2\",\n    \"1.poster.age\": 20,\n    \"1.blog_body\": \"Rorem jipsum hey there dipsum, shipsum, kipsum.\",\n    \"1.blog_title\": \"The Rorem Report\",\n    \"1.blog_created_at\": 1382383526087,\n    \"2.poster.name\": \"jill\",\n    \"2.posteravatar\": \"http://img2\",\n    \"2.posterage\": 20,\n    \"2.blog_body\": \"And that's okay.\",\n    \"2.blog_title\": \"My Cat's Breath Smells Like Catfood\",\n    \"2.blog_created_at\": 1382363726087\n}\n```\nWe like to call this 'Flat JSON' or 'FJSON' for short. Flat, because all the data exists as a single object with many fields. Although this appears in a less human readable format than traditional JSON - it allows us a few tricks that are otherwise clumsy and unforgiving normally.\n\nIn JavaScript if we wanted to access the blog title of the first post we would use:\n```javascript\nMY_OBJECT['0.blog_title']\n```\nOr if we wanted the name of the poster in the 3rd blog post we would use:\n```javascript\nMY_OBJECT['2.poster.name']\n```\nAnd finally if we wanted to add the ages of all three posters without a for loop:\n```javascript\nMY_OBJECT['0.poster.age'] + MY_OBJECT['1.poster.age'] + MY_OBJECT['2.poster.age']\n```\n\nAs you can see FJSON allows JavaScript to deep access objects using a single string field identifier, with `.` periods used indiscriminately between objects an arrays.\n\n\n\n#### The Namespace\n\n#### Selectors\n\nIn order to access data in the namespace, we borrow the idea of <a href=\"http://en.wikipedia.org/wiki/Glob_(programming)\">glob</a>-style pattern matching from [Redis](http://redis.io/), and mix it with the idea of [selectors](http://api.jquery.com/category/selectors/) from [JQuery](http://jquery.com/).\n\nIt's easiest to look at a few examples, first let's provide a sample namespace to *select* from:\n```json\n{\n    \"0.poster.name\": \"jack\",\n    \"0.poster.avatar\": \"http://img\",\n    \"0.poster.age\": 42,\n    \"0.blog_body\": \"Lorem ipsum hey there dipsum, shipsum, kipsum.\",\n    \"0.blog_title\": \"The Lorem Report\",\n    \"0.blog_created_at\": 1382383726087,\n    \"1.poster.name\": \"jill\",\n    \"1.poster.avatar\": \"http://img2\",\n    \"1.poster.age\": 20,\n    \"1.blog_body\": \"Rorem jipsum hey there dipsum, shipsum, kipsum.\",\n    \"1.blog_title\": \"The Rorem Report\",\n    \"1.blog_created_at\": 1382383526087,\n    \"2.poster.name\": \"jill\",\n    \"2.posteravatar\": \"http://img2\",\n    \"2.posterage\": 20,\n    \"2.blog_body\": \"And that's okay.\",\n    \"2.blog_title\": \"My Cat's Breath Smells Like Catfood\",\n    \"2.blog_created_at\": 1382363726087\n}\n```\n\nIn Yarn if we wanted to access the blog title of the first post we would use:\n```yarn\n(0.blog_title)\n```\nOr if we wanted the name of the poster in the 3rd blog post we would use:\n```yarn\n(2.poster.name)\n```\nAnd finally if we wanted to add the ages of all three posters without a for loop, we can use the `sum` function and a wildcard selector to select all the ages:\n```yarn\nsum (*.poster.age) \n```\nWhich is the same as (the logical equivalent of):\n```yarn\nsum (0.poster.age) (1.poster.age) (2.poster.age)\n```\n\n\n\n## Functions\n\nFunctions are like little machines with an in slot and an out slot.<br>\nYou put some stuff in, and you usually even get some stuff back.\n\nMost programming languages have some conceptualization of functions, and Yarn is no different. \n\nHowever unlike most programming languages, Yarn does not allow a user to make and call their own functions (known as extrinsic functions, and extrinsic function calls). Most assembly languages are also this way, only allowing the user to call built-in functions (known as intrinsic function calls).\n\n### Functional Intrinsicity, Extrinsicity & N-Arity\n\n#### Intrinsicity\n\nFunctions that are provided as part of the programming language itself are known as [Intrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_function). Every program is nothing more than these intrinsic functions combined and arranged in some meaningful way to complete a task.\n\nA few intrinsic Javascript function calls:\n```javascript\nconsole.log('hello world');\n\nMath.sqrt(9);\n\n('hello world').split('llo');\n```  \n#### Extrinsicity\n\nAlthough **every** program can be expressed using nothing more than intrinsic functions, it is very common to also create your own functions to help remove repetition.  Functions that are not provided as part of the language, but rather created by the programmer are known as [Extrinsic Functions](http://en.wikipedia.org/wiki/Intrinsic_and_extrinsic_properties).\n\nA javascript extrinsic function definition and call:\n```javascript\nfunction my_extrinsic_function (any_string) {\n\tconsole.log(any_string);\n\t// any number of intrinsic function calls go here\n};\n\nmy_extrinsic_function('the any string');\n```\n\n#### Caveat\n\nIt is important to note that no matter how complex or incomprehensible any extrinsic function may seem, **every extrinsic function is made up of nothing more than intrinsic functions**.\n\nYarn takes advantage of this quirk by providing a strong base of intrinsic n-ary functions coupled with lateral flow control operations. In this way extrinsic functions become useful in <1% of cases, meaning <1% of programmers will ever need to handle that style of repetition, and when they do it can still be done by simply copying and pasting (which is how most naive developers would solve the task in the first place).\n\n#### N-Ary Parametered Functions\n\nWhat is [Arity](http://en.wikipedia.org/wiki/Arity)? Basically how many arguments a function is willing to accept.\n\n+ A **nullary** function takes **no arguments**.\n\n```javascript\nfunction nullary () {\n\tconsole.log();\n};\nnullary();\n```\n\n+ A **unary** function takes **one argument**.\n\n```javascript\nfunction unary (x) {\n\tconsole.log(x);\n};\nunary('a');\n```\n\n+ A **binary** function takes **two arguments**.\n\n```javascript\nfunction binary (x, y) { \n\tconsole.log(x, y);\n};\nbinary('a', 'b');\n```\n\n+ A **ternary** function takes **three arguments**.\n\n```javascript\nfunction ternary (x, y, z) {\n\tconsole.log(x, y, z);\n};\nternary('a', 'b', 'c');\n```\n\n+ An **n-ary** function takes **n (any number of) arguments**.\n\n```javascript\nfunction n_ary () {\n\t\n\t// javascript has hidden n-arity through a function's not \n\t// so obvious 'arguments' property\n\tfor (var obj_key in arguments) {\n\n\t\t// log argument\n\t\tconsole.log(arguments[key]);\n\t}\n}\n\n// this allows us to call an n-ary function with as many or as \n// few parameters as we please, and all forms are correct\nn_ary();\nn_ary(10);\nn_ary(10, 20, 30, 40);\n```\n\nN-arity comes in handy when we want to a pass varying rates of parameters to a function, but for it to have the same desired effect.\n\nTake for example counting every occurrence of the word car in a string.\n\nIn yarn this would look like:\n```yarn\noccurrences [car] [This is my string about cars, it's a quick sentance about cars.] [total]\n\n// output\n{\"total\": 2}\n```\n\nHow useful! But what if we wanted to count every occurrence of the word car in a whole boat load of strings?\n\nIf we look closely at the method signature for occurrences `occurrences REGEX STRING ... OUTPUT`, we can see that there is a trailing ellipsis `...` after `STRING`.  This ellipsis `...` is known in yarn as the 'n-arity symbol', signifying that you may provide as many of the previous parameter (`STRING` in this case) as you like.\n\nSo to count the occurrences of car in many strings in yarn we can simply list more string before our `OUTPUT` parameter:\n```\noccurrences [car]  [This is my string about cars, it's a quick sentence about cars.] \n                   [Another car string] \n                   [One More car String.] \n                   [Lots of car strings!]  [total]\n\n// output\n{\"total\": 5}\n```\n\nIt's also important to note that n-arittic functions are designed to be gentle, meaning that most of the time if you don't provide any parameters for an n-arittic parameter, it will still execute without failing:\n```\n// note how we only specify a REGEX and OUTPUT but not any STRINGs\noccurrences [car] [total]\n\n// output is exactly what you would expect given the input\n{\"total\": 0}\n```\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Command Reference\n\n### get PREFIX URL\n\n### get PREFIX URL HEADERS\n\n### join TO_JOIN ... JOIN_WITH OUTPUT\n\n### match PREFIX REGEX STRING ...\n\n### kelvin to celcius KELVIN ...\n\n### forecast date PARSEABLE_DATE ...\n\n### occurrences REGEX STRING ... OUTPUT\n\n### parse json JSON ...\n\n### parse xml XML ...\n\n### strip tags PREFIX STRING ...\n\n### replace all REPLACE_IN ... REPLACE_WHAT REPLACE_WITH\n\n### time ago PARSEABLE_DATE ...\n\n### tumblr dashboard\n\n### tumblr dashboard images\n\n### twitter search QUERY\n\n### yellowpages location search QUERY LAT LNG\n\n\n\n\n## Conditionality Using Comparator Chains\n\nFrequently we need to express conditional operations, for example the filter command takes a string representing a COLLECTION_BASE ie 'myarray' (where 'myarray.0', 'myarray.1', etc.) and a CONDITION that is performed on each object to test whether that object should be dropped or not (read: filtered out).\n\nWe also have a need to allow expressions to be dynamically composited at runtime.\n\nTake the following Javascript condition for example:\n```javascript\n// becomes true if 5 is less than 10, becomes false otherwise\n5 < 10\n\n// or in its natural habitat\nif (5 < 10)\nfor (var x = 0; 5 < 10; x++)\nwhile (5 < 10)\nreturn 5 < 10\n```\n\nAnd the same condition in yarn:\n```yarn\n[5][<][10]\n```\n\nComplex conditions:\n```yarn\n[!][(][5][<][10][)][&&][BOWLERDERBY][||][(][atan2][5][6][==][40][)]\n```\n\nOperands:\n```yarn\n+\n-\n/\n*\n```\n\nBoolean Combinators:\n```yarn\n!   logical not\n||  logical or\n&&  logical and\n&|  logical xor\n==  string equals\n!=  string not equals\n<   numerical less than\n>   numerical greater than\n<=  numerical less than or equal to\n>=  numerical greater than or equal to\n```\n\nFalse is actually null, and any existence is counted as true, so bowlerderby is actually logically equivalent to true.\n\n\n\nfunctions can be\n\n\t- progenitive\n\n\t- generative\n\t\t+ in that their calling is expected to generate data, like making a get request, the now function, or generating a noise field.\n\t\t+ purely generative functions require a PREFIX (similar to a variable name) to represent the generated data in the namespace, the PREFIX answers the question 'what name should I store this data under?'; for example the best practice when making a single get request, is to use the PREFIX 'res' for response, which would create \n\t\t'res.body', 'res.status_code', 'res.headers', 'res.body', etc.\n\t\t+ partially generative functions differ in that they do not require a PREFIX, instead they require already existing data, and generate extensions to that data; for example, parsing a JSON string stored in 'myjson' would result in 'myjson.parsed' - note that the JSON string stored in 'myjson' is not manipulated in this example and is the usual ase with partiallay generative functions, although some partially generative functions may exist that also manipulate the existing data.\n\n\t- manipulative\n\t\t+ in that their calling is expected to manipulate data in place, literaly to take a value - change it in some way - then replace the original value with the manipulated value.\n\t\t+ purely manipulative functions will never require a PREFIX\n\n\n\n\ndrop ANY ... GLOBEX\nkeep ANY ... GLOBEX\nfilter COLLECTION_BASE CONDITION\n\nconditions?\n\n\n\nprojecting data into a flat tile automatically per date span...","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-141","dist":{"shasum":"0328244e826a2646afbe49eebedeb4961f09c839","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-141.tgz","integrity":"sha512-MqKeGylzZxPuDmUo/4M5WGopDDycZd6IT3zwOxW79hDQj48r60JtfrrA0j8Wg2+x+J+2v2IBVmfG8ibhR9Qa6g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAYvsXNwp2jR+yF2oYEDh5vSLqbsXdISrra9afV8cgytAiEAj4f06GSDG/bP1Xvau1DKth+UMR2Biz8ulfieEpxntAc="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-142":{"name":"yarnlang","version":"0.1.0-142","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"## Yarn\n\n<div align=\"center\">The more you know, the less you need.</div>","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-142","dist":{"shasum":"9378a49a9090d6d84d4ac38b167289169385c20e","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-142.tgz","integrity":"sha512-p+Ndyeey0P0cfUgx4AlDVQYYQzygjr647JmraPK3LPMoPbk3t7J5ojTl0/JKhnqkeIalMNVZR1lquRTaFwwqAA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE3Oq1JtHmq1aVASS3EdNu7Jt9X5yNU6X/EfwuFQb9i1AiAxPBAn1d/W2V0xYxMzLAWCzlrZvNjg9+ZZHokdR9zPyQ=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-143":{"name":"yarnlang","version":"0.1.0-143","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"<div align=\"center\">\n<h3><i>yarn</i></h3>\nThe more you know, the less you need.\n</div>","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-143","dist":{"shasum":"fb6cda958498da1e5e5c53b21c35612fe872b825","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-143.tgz","integrity":"sha512-Pk4fA+Yz34H/UjYZWTfZeMmp7zCrqt5Sk6AKcU9IR1/Tyyw9FLvXD8EA++USpzA/4KMA9fa0C+KG/7b46lGO9w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCUO3Ccz3mqbgQYVpvuLZwOjQOgIZktBsiGOOHtIzpFDQIhANPLXWmPS21HFYBtMr2XsIRgWnCzjMwvn3pzMWVYk8Bz"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-144":{"name":"yarnlang","version":"0.1.0-144","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"<div align=\"center\">\n<h3>yarn</h3>\n<i>The more you know, the less you need.</i>\n</div>","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-144","dist":{"shasum":"18993785d74ecaa999cb34b8e0dcf708d4c828ee","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-144.tgz","integrity":"sha512-3ZW3WUYbiZGsBA9jZOOevuFXAWYmzmVHprl+NardCtiOjwKB0HK+lImJep2kyyduGhWO92P401Tv0Q1xo7jUWg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCokK63myxrHXwcucVkrYpB12/kZbsQLyJdqbL4H2dsYgIhAOGCdck2TikyxLO6b3kts8dxxr2Z3BjZj8oPRLBENySe"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-145":{"name":"yarnlang","version":"0.1.0-145","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"<div align=\"center\">\n<h3><i>y</i>arn</h3>\n<i>The more you know, the less you need.</i>\n</div>","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-145","dist":{"shasum":"386994b141571be36a964e2ecad08138c52897de","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-145.tgz","integrity":"sha512-Ntwoff6xGSq1dmTkX82TdJeq5EvlYT94L0kohUsYcYPD99SOnWTGxdYV7S8NOk3Oe8/RVkL4XJ4Irh5pr29buw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCpo6IqBUyAAOn1wg2KbUYCO/zLJ0isiaatst3U+b71DgIgA9oS0lpXHOyb7fc0ngf4NUhpqXyO1X34iZ5dGNDWu8k="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-146":{"name":"yarnlang","version":"0.1.0-146","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"<div align=\"center\">\n<h3><i>yarn</i></h3>\n<i>The more you know, the less you need.</i>\n</div>","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-146","dist":{"shasum":"e2935cc2dca6f39aedfcbcb23038c86a27d44f0c","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-146.tgz","integrity":"sha512-jnlJYAUWCQEp37spgMKi8lZ7TkpOvbcfB/yHAU0px13zuYdhiovtPJochVFIqoVsxc/mMPDY3w9mG5elrePlWg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF9pZ6feisj1w4SG0Pf2hPeBchoeUiWA2MToX3Tmx2rIAiAGxulRSv1nT9l9dmKvgRoVLX8GzSO6jcSdYDqE1Qpqcw=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-147":{"name":"yarnlang","version":"0.1.0-147","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"<div align=\"center\">\n<h3><i>yarn</i></h3>\n<i>the more you know, the less you need</i>\n</div>","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-147","dist":{"shasum":"54118b92808cd4ce064344b587a4484d06b5ea32","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-147.tgz","integrity":"sha512-wAWK1oVRV0MBIgTgqnwysjYkGl9cFD+GuAyFQUIBwhPLgiA3XWQ32Q241wTCqbLdt8nNOAh3Yi7Dl+NB3BEpZg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCAWUpT/GrnP2MHBhiQna0KG0dJCG75a3jv3qHEXAMl4QIhAIGEQYRIBEDdjXq9AHSFQqy4kpnZk/wBa/M4o0rHIAg5"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-148":{"name":"yarnlang","version":"0.1.0-148","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"<div align=\"center\">\n<h3><i>yarn</i></h3>\n<i>the more you know - the less you need</i>\n</div>","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-148","dist":{"shasum":"46c3401187bf3f10b1fdc713533e4f8d75affb39","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-148.tgz","integrity":"sha512-kSvXLIpa8wSKFzQ4LRAgS/+oMRVojQQM2iZyk+jryPjvjfu0b30wERGroJs51lgq3Upj5LR0ahKuDO+s6R5OQQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDdVbE76YrvhrPBEMi1F62mF1h+cxeOB5sygAwS8SSuEgIhAMLnYNAIWUZOp+PMkPC0q0De/pzXGru0J/YUeZxhl8D+"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-149":{"name":"yarnlang","version":"0.1.0-149","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"<div align=\"center\">\n\t<h3><i>yarn</i></h3>\n\t<i>the more you know - the less you need</i>\n\n```yarn\nset [query] [yarnlang],\nsearch twitter  [twitter results]  (query),\nsearch facebook [facebook results] (query),\nsearch tumblr   [tumblr results]   (query)\n```\n\n</div>","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-149","dist":{"shasum":"0f608448b4263e2b494bff9cf8e3a16825a1396e","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-149.tgz","integrity":"sha512-8X3TGJzDhyr0SISd+1+jKsicdLzqNtYc7M4vl06SjX6nFQ/J2SGGN57/c32Ew7fiHz/8pmfM2TDG+XsNQ+0oCA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIALVZf0XRYVHiGHZxQJwLn/icp1Z2quOWQ67NfF2m+zzAiEAwgSi65xOfgVQzGtRWiNKcARDOMQipWY9kbmrFYbwgh0="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-150":{"name":"yarnlang","version":"0.1.0-150","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"<div align=\"center\">\n\t<h3><i>yarn</i></h3>\n\t<i>the more you know - the less you need</i>\n\n\t<code>\n\t\tset [query] [yarnlang],\n\t\tsearch twitter  [twitter results]  (query),\n\t\tsearch facebook [facebook results] (query),\n\t\tsearch tumblr   [tumblr results]   (query)\n\t</code>\n\n</div>","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-150","dist":{"shasum":"eabf02f82498d034028c9767e357316b51f70c65","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-150.tgz","integrity":"sha512-p1jyw2Dz0+E+w5cNkn/H5rVakplZ+E/JoPpPrAgqOM1nSvNGmrk1esOf4/Wi15keYJ7jFHTF/HaE4lmIooKvrA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE1FGbjORxSKlwzPDDmCxlmq56nCQ8x+Fnw+OTXM5fwWAiBqvul3OUVaIQpynq0rcAqB74q10btzGp20l4gBk/pXKw=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-151":{"name":"yarnlang","version":"0.1.0-151","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"<div align=\"center\">\n\t<h3><i>yarn</i></h3>\n\t<i>the more you know - the less you need</i>\n\n\t<code align=\"left\">\n\t\tset [query] [yarnlang],<br>\n\t\tsearch twitter  [twitter results]  (query),<br>\n\t\tsearch facebook [facebook results] (query),<br>\n\t\tsearch tumblr   [tumblr results]   (query)<br>\n\t</code>\n\n</div>","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-151","dist":{"shasum":"64a035d23e948f546d24c90721bf2f6764b54bdc","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-151.tgz","integrity":"sha512-FQFjijsaCiz/A6rs5mPFVDWICt2T5YswGFmGRsHPsfJJuDnj5xokWOSJ9lXck0oxl4VOCBGX4i/qW/WeEBQwDw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHS/Cbo+Xa6gv+9dyX9e1FpaN5CPUZpuYrOkHpGYfFPvAiA+DCkqY9ZL5gsYpwDsOjvFSVzTVV5CmGyJjqNnyFGw7Q=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-152":{"name":"yarnlang","version":"0.1.0-152","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"<div align=\"center\">\n\t<h3><i>yarn</i></h3>\n\t<i>the more you know - the less you need</i>\n\n\t<pre lang=\"yarn\">\n\t\t<code align=\"left\">\n\t\t\tset [query] [yarnlang],<br>\n\t\t\tsearch twitter  [twitter results]  (query),\n\t\t\tsearch facebook [facebook results] (query),\n\t\t\tsearch tumblr   [tumblr results]   (query)\n\t\t</code>\n\t</pre>\n\n</div>","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-152","dist":{"shasum":"8a97e0a7409a872bc1c22327244e6ff0bf13806b","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-152.tgz","integrity":"sha512-GEaWObRnC7Kl0t0bjmf2kHjRWW5k/w1W5m0bmicYd8ayT476azFKGAgXNdpF2xVusVNyAePZWUl6WgPzN6hDGQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCUDEyTraDFKQYaPPxLvTOnHzd/7R/qyQWAxWyQ0vRpZAIge+ikTiGdMYT7KVESxU9OYA6A8gjb3veTfOSZhmVVEl8="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-153":{"name":"yarnlang","version":"0.1.0-153","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"<div align=\"center\">\n\t<h3><i>yarn</i></h3>\n\t<i>the more you know - the less you need</i>\n\n<pre lang=\"yarn\"><code align=\"left\">set [query] [yarnlang],\nsearch twitter  [twitter results]  (query),\nsearch facebook [facebook results] (query),\nsearch tumblr   [tumblr results]   (query)</code></pre>\n\n</div>","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-153","dist":{"shasum":"a840becdd8d86489e27baa7f3f63c53f230944b3","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-153.tgz","integrity":"sha512-psVRKtWc0/VGtPqfKHMiu0Ol432u1r++/giCAkQVuidJ/RZVwUQ5mlDI79qcdVm0I86Cy1PR3GBb/Q2EFiLuGA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDLUCrtHiZlDsFNikFii4gnZeAP5fULLnU7CANjKQfD9AIhAJS1vcJ4L3/6daoRFeezFbo46k9kL+zoxr726nPmBto+"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-154":{"name":"yarnlang","version":"0.1.0-154","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"<div align=\"center\">\n\t<h3><i>yarn</i></h3>\n\t<i>the more you know - the less you need</i>\n\n<pre lang=\"yarn\"><code style=\"text-align:left;\">set [query] [yarnlang],\nsearch twitter  [twitter results]  (query),\nsearch facebook [facebook results] (query),\nsearch tumblr   [tumblr results]   (query)</code></pre>\n\n</div>","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-154","dist":{"shasum":"324a0a79d70953a26e488be1f34629a9ad4546f2","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-154.tgz","integrity":"sha512-9w3jxoqE7Gq1RofzaIip1oVBJ8B55IBUGKhNMdsBfUjuXSZBKlmRF6G50UEwIw4AoE0J5Xm4VE8msQiieGVBhw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEK/KtsvinM0OGKxt4JIqXEYIHFdgogPiIziCgRYVTppAiEA1iBrPsngU+U1PTkRCtp4rVBIsSGaZymUAgDL22FuK3I="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-155":{"name":"yarnlang","version":"0.1.0-155","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"<div align=\"center\">\n\t<h3><i>yarn</i></h3>\n\t<i>the more you know - the less you need</i>\n</div>\n\n<pre lang=\"yarn\"><code>\nset [query] [yarnlang],\nsearch twitter  [twitter results]  (query),\nsearch facebook [facebook results] (query),\nsearch tumblr   [tumblr results]   (query)\n</code></pre>\n\n","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-155","dist":{"shasum":"a614375ae686c8b99d56132269fa350b07866ddb","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-155.tgz","integrity":"sha512-7NTgzrvDvSsXw7OKsGDjphQlP1obYfLk27DM5pJeIThXYAL+bn2N4k3+t3B+7xffqzmY7hi6+X1hw4Td1B6O1g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAipMX6RDvQHONfFYK2uofTdnrAviXSXeb6QHl+0ON6MAiB3SLF+WhsrUwqfUjPTX/oB0AsKItzg/w0rZ2IptKzu7A=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-156":{"name":"yarnlang","version":"0.1.0-156","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"<div align=\"center\">\n\t<h3><i>yarn</i></h3>\n\t<i>the more you know - the less you need</i>\n</div>\n\n<pre lang=\"yarn\"><code>set [query] [yarnlang],\nsearch twitter  [twitter results]  (query),\nsearch facebook [facebook results] (query),\nsearch tumblr   [tumblr results]   (query)\n</code></pre>\n\n","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-156","dist":{"shasum":"a8029bcc12f1ea93bf1cf3080022249ce6c6e119","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-156.tgz","integrity":"sha512-hYIzsGey5CJVpgGuYOtdUW4D8M4ioVkPEgtFEqNjpwIQiiRjHhRFVfTosTkfiRW+TT+817AG3DCW+o3jo2wS3Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGW0md2lvOE4w2PSE/WLr+qTLGOpH7QBe4jfQhApV7DOAiBCrBnfs9B6SxZjpwei/lOxtKOfyq6NBfquYmkl6IA9nw=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-157":{"name":"yarnlang","version":"0.1.0-157","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"<div align=\"center\">\n\t<h3><i>yarn</i></h3>\n\t<i>the more you know - the less you need</i>\n</div>\n\n<pre lang=\"yarn\"><code>set [query] [yarnlang],\nsearch twitter  [twitter results]  (query),\nsearch facebook [facebook results] (query),\nsearch tumblr   [tumblr results]   (query),\ncat [combined results] [twitter results] [facebook results] [tumblr results],\nsort [combined results] [a.tweeted_at a.facebooked_at a.tumbled_at < b.tweeted_at b.facebooked_at b.tumbled_at]\nfilter [combined results] [! a.tweet.image a.facebooked.image a.tumbled.image]\n</code></pre>\n\n<i> Searches Twitter, Facebook and Tumblr for 'yarnlang', combines the results, sorts the results by their respectively named creation dates, then finally removes any results that don't have an image.</i>\n\n","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-157","dist":{"shasum":"e6e860932c3903c75e5fca2a326dae667b0ead8f","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-157.tgz","integrity":"sha512-bl0iCh0GLRMR8YfIcCsedX7n9BXXLKNpAftoeKGOU6diDL/h17OJf3f3jVJZnzkacIneXA33N7cZkfm11pfAzw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHKU8P6ISzlzLSxy37I2IT/nMKeyFnfbreqKxiaKdxm7AiEA9DVTN/rK4dPzHy/MuZ+w68k58uT5cMEf2K7RfMcZQ+M="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-158":{"name":"yarnlang","version":"0.1.0-158","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"<div align=\"center\">\n\t<h3><i>yarn</i></h3>\n\t<i>the more you know - the less you need</i>\n</div>\n\n<pre lang=\"yarn\"><code>// set the name 'query' to the value 'yarnlang'\nset [query] [yarnlang],\n\n// search twitter for the value of 'query', store the results in 'twitter results'\nsearch twitter [twitter results] (query),\n\n// search facebook for the value of 'query', store the results in 'facebook results'\nsearch facebook [facebook results] (query),\n\n// search tumblr for the value of 'query', store the results in 'tumblr results'\nsearch tumblr [tumblr results] (query),\n\n// combine all three results, store the combined in 'combined results'\ncat [combined results] [twitter results] [facebook results] [tumblr results],\n\n// sort the combined results in place, by their respectively named creation dates\nsort [combined results] [a.tweeted_at a.facebooked_at a.tumbled_at < b.tweeted_at b.facebooked_at b.tumbled_at]\n\n// delete any results that don't have an image\nfilter [combined results] [! a.tweet.image a.facebooked.image a.tumbled.image]\n</code></pre>","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-158","dist":{"shasum":"d9ab6bd956169478d4d1370264ad219ea573a07c","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-158.tgz","integrity":"sha512-SxX3QQWtyJojBMhbLqgZgKezPrMUoZ7+sozE/baeogwVEWT89laheWLhybNTV9btMcexxCWZYiDu2K/yHZdr2w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGuO135TeCYecvUbTYarT5zw/fuU59ml45/QYiocOuIEAiEAyZ4N5eb59dXqAxB/jfwWe1KFkHP7Hf9OmDMshkmO5lo="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-159":{"name":"yarnlang","version":"0.1.0-159","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"<div align=\"center\">\n\t<h3><i>yarn</i></h3>\n\t<i>the more you know - the less you need</i>\n</div>\n\n<pre lang=\"yarn\"><code>// set the name 'query' to the value 'yarnlang'\nset [query] [yarnlang],\n\n// search twitter for the value of 'query', store the results in 'twitter results'\nsearch twitter [twitter results] (query),\n\n// search facebook for the value of 'query', store the results in 'facebook results'\nsearch facebook [facebook results] (query),\n\n// search tumblr for the value of 'query', store the results in 'tumblr results'\nsearch tumblr [tumblr results] (query),\n\n// combine all three results, store the combined in 'combined results'\ncat [combined results] [twitter results] [facebook results] [tumblr results],\n\n// sort the combined results in place, by their respectively named creation dates\nsort [combined results] [a.tweeted_at a.facebooked_at a.tumbled_at &lt; b.tweeted_at b.facebooked_at b.tumbled_at]\n\n// delete any results that don't have an image\nfilter [combined results] [! a.tweet.image a.facebooked.image a.tumbled.image]\n</code></pre>","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-159","dist":{"shasum":"6269515e47fbf8f85994f13b2a2c0015acf4b909","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-159.tgz","integrity":"sha512-wO5b+ADgEgyTFgppcHdeVzQYLzpSDWMNsLdRTaKSwX7P9VXA4NudwrDthKaPDPdoa3f8Hfu3CU1+httoeVfsjg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDRWldAfyyrJNHKtuByCM3371Uv5s7qnbxj5lEI+H5zxgIhAJKi0iUknQbJJicwTEmkhX10B58bj2DZpoB4mAcaeZpG"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-160":{"name":"yarnlang","version":"0.1.0-160","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"<div align=\"center\">\n\t<h3><i>yarn</i></h3>\n\t<i>the more you know - the less you need</i>\n</div>\n\n<pre lang=\"yarn\"><code>// set the name 'query' to the value 'yarnlang'\nset [query] [yarnlang],\n\n// search twitter for the value of 'query', store the results in 'twitter results'\nsearch twitter [twitter results] (query),\n\n// search facebook for the value of 'query', store the results in 'facebook results'\nsearch facebook [facebook results] (query),\n\n// search tumblr for the value of 'query', store the results in 'tumblr results'\nsearch tumblr [tumblr results] (query),\n\n// combine all three results, store the combined in 'combined results'\ncat [combined results] [twitter results] [facebook results] [tumblr results],\n\n// sort the combined results by their respectively named creation dates\nsort [combined results] (a.tweeted_at) (a.facebooked_at) (a.tumbled_at) [>] (b.tweeted_at) (b.facebooked_at) (b.tumbled_at),\n\n// delete any results that don't have an image\nfilter [combined results] [!] (a.tweet.image) (a.facebooked.image) (a.tumbled.image),\n\n// loop though all remaining results\nfor [result] [combined results],\n\n\t// loop through each tag in result\n\tfor [tag] [result.tags],\n\n\t\t// search google for tag\n\t\tget [tag.google search] [https://www.google.com/search?q=] + (tag),\n\n\t\t// match the page result count\n\t\tmatch (tag.about results matches) [About .+ results] (tag.google search.body),\n\n\t\t// read the page count\n\t\tfloat (tag.page count) (tag.about results matches.0),\n\n\tend for,\n\n\t// average the tag's page counts\n\taverage [result.average tag page count] (result.tags.*.page count),\n\nend for,\n\n// sort remaining results by their average tag page count\nsort [combined results] (a.average tag page count) [>] (b.average tag page count)\n</code></pre>","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-160","dist":{"shasum":"06f6b6be3b8ecd1142b2e2474f7e1a5c644f65f6","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-160.tgz","integrity":"sha512-xh4N++A21//3or/QTXDxeRDiybTIq0NqpE0gLj4+qDPs7RmJQ3icyqV/MCRWvcgYo+FhhwrT1FuU0srXyXohLg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC3gm4OPzAU2p5tjTyfr48L6f8AC5/bV2fOTVzvT/45nQIhANVqRifXJC6SVb/Ml3X3414zARzX2ZmPQWEsxlv5YZdY"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-161":{"name":"yarnlang","version":"0.1.0-161","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"<div align=\"center\">\n\t<h3><i>yarn</i></h3>\n\t<i style=\"text-color: red;\">the more you know - the less you need</i>\n</div>\n\n<pre lang=\"yarn\"><code>// set the name 'query' to the value 'yarnlang'\nset [query] [yarnlang],\n\n// search twitter for the value of 'query', store the results in 'twitter results'\nsearch twitter [twitter results] (query),\n\n// search facebook for the value of 'query', store the results in 'facebook results'\nsearch facebook [facebook results] (query),\n\n// search tumblr for the value of 'query', store the results in 'tumblr results'\nsearch tumblr [tumblr results] (query),\n\n// combine all three results, store the combined in 'combined results'\ncat [combined results] [twitter results] [facebook results] [tumblr results],\n\n// sort the combined results by their respectively named creation dates\nsort [combined results] (a.tweeted_at) (a.facebooked_at) (a.tumbled_at) [>] (b.tweeted_at) (b.facebooked_at) (b.tumbled_at),\n\n// delete any results that don't have an image\nfilter [combined results] [!] (a.tweet.image) (a.facebooked.image) (a.tumbled.image),\n\n// loop though all remaining results\nfor [result] [combined results],\n\n\t// loop through each tag in result\n\tfor [tag] [result.tags],\n\n\t\t// search google for tag\n\t\tget [tag.google search] [https://www.google.com/search?q=] + (tag),\n\n\t\t// match the page result count\n\t\tmatch (tag.about results matches) [About .+ results] (tag.google search.body),\n\n\t\t// read the page count\n\t\tfloat (tag.page count) (tag.about results matches.0),\n\n\tend for,\n\n\t// average the tag's page counts\n\taverage [result.average tag page count] (result.tags.*.page count),\n\nend for,\n\n// sort remaining results by their average tag page count\nsort [combined results] (a.average tag page count) [>] (b.average tag page count)\n</code></pre>","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-161","dist":{"shasum":"1137486cd1bc39081dde53af5b4a414d7a270a54","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-161.tgz","integrity":"sha512-ddWzkTP8wadH35f74sgGyJACcne/Itlf0KyCdFHIA55TWRCL54UC5w8LCuCLX4eHxaLyCjLL8eJyZDU2ypReag==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDW01GPBZBt5XMD24wjdG3cZDiPaSlz3imgxN6wjSab2wIgCDw3xApO/H5pem6l72H3S7flYKoBEJKrREBQa9Qv7vY="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-162":{"name":"yarnlang","version":"0.1.0-162","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"<div align=\"center\">\n\t<h3><i>yarn</i></h3>\n\t<i>the more you know - the less you need</i>\n</div>\n\n<pre lang=\"yarn\"><code>// set the name 'query' to the value 'yarnlang'\nset [query] [yarnlang],\n\n// search twitter for the value of 'query', store the results in 'twitter results'\nsearch twitter [twitter results] (query),\n\n// search facebook for the value of 'query', store the results in 'facebook results'\nsearch facebook [facebook results] (query),\n\n// search tumblr for the value of 'query', store the results in 'tumblr results'\nsearch tumblr [tumblr results] (query),\n\n// combine all three results, store the combined in 'combined results'\ncat [combined results] [twitter results] [facebook results] [tumblr results],\n\n// delete any results that don't have an image\nfilter [combined results] [!] (a.tweet.image) (a.facebooked.image) (a.tumbled.image),\n\n// sort the combined results by their respectively named creation dates\nsort [combined results] (a.tweeted_at) (a.facebooked_at) (a.tumbled_at) [>] (b.tweeted_at) (b.facebooked_at) (b.tumbled_at),\n\n// loop though all remaining results\nfor [result] [combined results],\n\n\t// loop through each tag in result\n\tfor [tag] [result.tags],\n\n\t\t// search google for tag\n\t\tget [tag.google search] [https://www.google.com/search?q=] + (tag),\n\n\t\t// match the page result count\n\t\tmatch (tag.about results matches) [About .+ results] (tag.google search.body),\n\n\t\t// read the page count\n\t\tfloat (tag.page count) (tag.about results matches.0),\n\n\tend for,\n\n\t// average the tag's page counts\n\taverage [result.average tag page count] (result.tags.*.page count),\n\nend for,\n\n// sort remaining results by their average tag page count\nsort [combined results] (a.average tag page count) [>] (b.average tag page count)\n</code></pre>","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-162","dist":{"shasum":"381d1c93c84c4c134f1654bd5cbf3d609144c45a","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-162.tgz","integrity":"sha512-arV7t4ElNtvMuRhUIuQYk9Nixcwdm3bYIRIl79JLVJgO5qNmoRLAma0CZPfvJSKY/IbnCEdubbRUtjhBzF/uZw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCHzN2M6EowEFj4JRElYbvrZCl/xx58u+qZv52dVpdl5wIhALAO3Nfs4m43Mga5DsZEA/2qDTpOZr3K/R/KDNdTfXZ0"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-163":{"name":"yarnlang","version":"0.1.0-163","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"<div align=\"center\">\n\t<h3><i>yarn</i></h3>\n\t<i>the more you know - the less you need</i>\n</div>\n\n<pre lang=\"yarn\"><code>// set the name 'query' to the value 'yarnlang'\nset [query] [yarnlang],\n\n// search twitter for the value of 'query', store the results in 'twitter results'\nsearch twitter [twitter results] (query),\n\n// search facebook for the value of 'query', store the results in 'facebook results'\nsearch facebook [facebook results] (query),\n\n// search tumblr for the value of 'query', store the results in 'tumblr results'\nsearch tumblr [tumblr results] (query),\n\n// combine all three results, store the combined in 'combined results'\ncat [combined results] [twitter results] [facebook results] [tumblr results],\n\n// delete any results that don't have an image\nfilter [combined results] [!] (a.tweet.image) (a.facebooked.image) (a.tumbled.image),\n\n// sort the combined results by their respectively named creation dates\nsort [combined results] (a.tweeted_at) (a.facebooked_at) (a.tumbled_at) [>] (b.tweeted_at) (b.facebooked_at) (b.tumbled_at),\n\n// loop though all remaining results\nfor [result] [combined results],\n\n\t// loop through each tag in result\n\tfor [tag] [result.tags],\n\n\t\t// search google for tag\n\t\tget [tag.google search] [https://www.google.com/search?q=] + (tag),\n\n\t\t// match the page result count\n\t\tmatch (tag.about results matches) [About .+ results] (tag.google search.body),\n\n\t\t// read the page count\n\t\tfloat (tag.page count) (tag.about results matches.0),\n\n\tend for,\n\n\t// average the tag's page counts\n\taverage [result.average tag page count] (result.tags.*.page count),\n\nend for,\n\n// sort remaining results by their average tag page count\nsort [combined results] (a.average tag page count) [>] (b.average tag page count)\n</code></pre>\n// get accounts for login\ngoogle analytics accounts       [accounts], \n\n// get web properties from first account\ngoogle analytics web properties [web properties] (accounts.items.0.id), \n\n// get profiles from account + web property combo\ngoogle analytics profiles       [profiles]       (accounts.items.0.id) (web properties.items.0.id),\n\n// generate a monthly report of visits with single day granularity\ngoogle analytics reporting      [report]         (profiles.items.0.id) [Sept 23 2013 11:31:07 GMT-0400 (EDT)] [Oct 23 2013 11:31:07 GMT-0400 (EDT)] [ga:visits] [ga:date]\n<div align=\"center\"><i>google analytics</i></div>\n\n<pre lang=\"yarn\"><code>\n</code></pre>","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-163","dist":{"shasum":"cc99d9ed6fb10f0e8eca5d628469340232f65dbe","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-163.tgz","integrity":"sha512-gapPflQ6TRzpFGxS4X0YvpZh/5OOtN3Pac0fNaJcGwvIWV35ScN3Dso4Dez/W2BPZFwVlH72l0kuy7TsgRfUcA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCuFe2snQV/Ad/Md4MYbrAyuh9MIS01OLeLNJnFg5Cb1QIgNedFFxUtr9BXqBMAn13uN5+N0MLkn1ytLXKYPcxe+Ms="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-164":{"name":"yarnlang","version":"0.1.0-164","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"<div align=\"center\">\n\t<h3><i>yarn</i></h3>\n\t<i>the more you know - the less you need</i>\n</div>\n\n<pre lang=\"yarn\"><code>// set the name 'query' to the value 'yarnlang'\nset [query] [yarnlang],\n\n// search twitter for the value of 'query', store the results in 'twitter results'\nsearch twitter [twitter results] (query),\n\n// search facebook for the value of 'query', store the results in 'facebook results'\nsearch facebook [facebook results] (query),\n\n// search tumblr for the value of 'query', store the results in 'tumblr results'\nsearch tumblr [tumblr results] (query),\n\n// combine all three results, store the combined in 'combined results'\ncat [combined results] [twitter results] [facebook results] [tumblr results],\n\n// delete any results that don't have an image\nfilter [combined results] [!] (a.tweet.image) (a.facebooked.image) (a.tumbled.image),\n\n// sort the combined results by their respectively named creation dates\nsort [combined results] (a.tweeted_at) (a.facebooked_at) (a.tumbled_at) [>] (b.tweeted_at) (b.facebooked_at) (b.tumbled_at),\n\n// loop though all remaining results\nfor [result] [combined results],\n\n\t// loop through each tag in result\n\tfor [tag] [result.tags],\n\n\t\t// search google for tag\n\t\tget [tag.google search] [https://www.google.com/search?q=] + (tag),\n\n\t\t// match the page result count\n\t\tmatch (tag.about results matches) [About .+ results] (tag.google search.body),\n\n\t\t// read the page count\n\t\tfloat (tag.page count) (tag.about results matches.0),\n\n\tend for,\n\n\t// average the tag's page counts\n\taverage [result.average tag page count] (result.tags.*.page count),\n\nend for,\n\n// sort remaining results by their average tag page count\nsort [combined results] (a.average tag page count) [>] (b.average tag page count)\n</code></pre>\n\n<div align=\"center\"><i>google analytics</i></div>\n\n<pre lang=\"yarn\"><code>// get accounts for login\ngoogle analytics accounts       [accounts], \n\n// get web properties from first account\ngoogle analytics web properties [web properties] (accounts.items.0.id), \n\n// get profiles from account + web property combo\ngoogle analytics profiles       [profiles]       (accounts.items.0.id) (web properties.items.0.id),\n\n// generate a monthly report of visits with single day granularity\ngoogle analytics reporting      [report]         (profiles.items.0.id) [Sept 23 2013 11:31:07 GMT-0400 (EDT)] [Oct 23 2013 11:31:07 GMT-0400 (EDT)] [ga:visits] [ga:date]\n</code></pre>","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-164","dist":{"shasum":"edc302ec6f136e0f0c4ab8066779e525a23866ba","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-164.tgz","integrity":"sha512-4+iYRHW0OEqvS2ra/YPG0/LbQBpmz43bkdpk616f2cmN2t5DbZOJjkOSUOTBjPC5Byhk8ORmiEZsaM3d4Z5qPA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC0xa99Zy407xfDKrDzwswd/J9DoCipQZgOeFno6edlzwIhAM+aQbLAWwwNczoi++3/UNdx7plC53OuEVYIPUN27l/e"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-165":{"name":"yarnlang","version":"0.1.0-165","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"<div align=\"center\">\n\t<h3><i>yarn</i></h3>\n\t<i>the more you know - the less you need</i>\n</div>\n\n<pre lang=\"yarn\"><code>// set the name 'query' to the value 'yarnlang'\nset [query] [yarnlang],\n\n// search twitter for the value of 'query', store the results in 'twitter results'\nsearch twitter [twitter results] (query),\n\n// search facebook for the value of 'query', store the results in 'facebook results'\nsearch facebook [facebook results] (query),\n\n// search tumblr for the value of 'query', store the results in 'tumblr results'\nsearch tumblr [tumblr results] (query),\n\n// combine all three results, store the combined in 'combined results'\ncat [combined results] [twitter results] [facebook results] [tumblr results],\n\n// delete any results that don't have an image\nfilter [combined results] [!] (a.tweet.image) (a.facebooked.image) (a.tumbled.image),\n\n// sort the combined results by their respectively named creation dates\nsort [combined results] (a.tweeted_at) (a.facebooked_at) (a.tumbled_at) [>] (b.tweeted_at) (b.facebooked_at) (b.tumbled_at),\n\n// loop though all remaining results\nfor [result] [combined results],\n\n\t// loop through each tag in result\n\tfor [tag] [result.tags],\n\n\t\t// search google for tag\n\t\tget [tag.google search] [https://www.google.com/search?q=] + (tag),\n\n\t\t// match the page result count\n\t\tmatch (tag.about results matches) [About .+ results] (tag.google search.body),\n\n\t\t// read the page count\n\t\tfloat (tag.page count) (tag.about results matches.0),\n\n\tend for,\n\n\t// average the tag's page counts\n\taverage [result.average tag page count] (result.tags.*.page count),\n\nend for,\n\n// sort remaining results by their average tag page count\nsort [combined results] (a.average tag page count) [>] (b.average tag page count)\n</code></pre>\n\n<div align=\"center\"><i>google analytics</i></div>\n\n<pre lang=\"yarn\"><code>// get accounts for login\ngoogle analytics accounts [accounts], \n\n// get web properties from first account\ngoogle analytics web properties [web properties] (accounts.items.0.id), \n\n// get profiles from account + web property combo\ngoogle analytics profiles [profiles] (accounts.items.0.id) (web properties.items.0.id),\n\n// generate a monthly report of visits with single day granularity\ngoogle analytics reporting [report] (profiles.items.0.id) [Sept 23 2013 11:31:07 GMT-0400 (EDT)] [Oct 23 2013 11:31:07 GMT-0400 (EDT)] [ga:visits] [ga:date]\n</code></pre>","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-165","dist":{"shasum":"6adae04c3bee3b4e8bad0e56e709ffed836171b5","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-165.tgz","integrity":"sha512-ZqjnTaQieK35L8/Zq/RFetdcnTRGxrBdn1VOMi2CP4FEACZfn/jAJAFuZkxn+lcWbgyhf573FtRs/IgM7ACGSA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGBJpXbHZgrvfF5FrmQxHO3aD9lpbBHzxJnGTSSJkXfEAiBgmczex/DzOMg2Icxi+fh5W/VJ45hPD9rVEmcUsxLLCw=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-166":{"name":"yarnlang","version":"0.1.0-166","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"<div align=\"center\">\n\t<h3><i>yarn</i></h3>\n\t<i>the more you know - the less you need</i>\n</div>\n\n<div align=\"center\"><h3><i>samples</i></h3><i>canon (not working)</i></div>\n\n<pre lang=\"yarn\"><code>// set the name 'query' to the value 'yarnlang'\nset [query] [yarnlang],\n\n// search twitter for the value of 'query', store the results in 'twitter results'\nsearch twitter [twitter results] (query),\n\n// search facebook for the value of 'query', store the results in 'facebook results'\nsearch facebook [facebook results] (query),\n\n// search tumblr for the value of 'query', store the results in 'tumblr results'\nsearch tumblr [tumblr results] (query),\n\n// combine all three results, store the combined in 'combined results'\ncat [combined results] [twitter results] [facebook results] [tumblr results],\n\n// delete any results that don't have an image\nfilter [combined results] [!] (a.tweet.image) (a.facebooked.image) (a.tumbled.image),\n\n// sort the combined results by their respectively named creation dates\nsort [combined results] (a.tweeted_at) (a.facebooked_at) (a.tumbled_at) [>] (b.tweeted_at) (b.facebooked_at) (b.tumbled_at),\n\n// loop though all remaining results\nfor [result] [combined results],\n\n\t// loop through each tag in result\n\tfor [tag] [result.tags],\n\n\t\t// search google for tag\n\t\tget [tag.google search] [https://www.google.com/search?q=] + (tag),\n\n\t\t// match the page result count\n\t\tmatch (tag.about results matches) [About .+ results] (tag.google search.body),\n\n\t\t// read the page count\n\t\tfloat (tag.page count) (tag.about results matches.0),\n\n\tend for,\n\n\t// average the tag's page counts\n\taverage [result.average tag page count] (result.tags.*.page count),\n\nend for,\n\n// sort remaining results by their average tag page count\nsort [combined results] (a.average tag page count) [>] (b.average tag page count)\n</code></pre>\n\n<div align=\"center\"><i>google analytics (working)</i></div>\n\n<pre lang=\"yarn\"><code>// get accounts for login\ngoogle analytics accounts [accounts], \n\n// get web properties from first account\ngoogle analytics web properties [web properties] (accounts.items.0.id), \n\n// get profiles from account + web property combo\ngoogle analytics profiles [profiles] (accounts.items.0.id) (web properties.items.0.id),\n\n// generate a monthly report of visits with single day granularity\ngoogle analytics reporting [report] (profiles.items.0.id) [Sept 23 2013 11:31:07 GMT-0400 (EDT)] [Oct 23 2013 11:31:07 GMT-0400 (EDT)] [ga:visits] [ga:date]\n</code></pre>\n<pre lang=\"json\"><code>{\n \"accounts.kind\": \"analytics#accounts\",\n \"accounts.username\": \"adrnsly@dashbook.co\",\n \"accounts.totalResults\": 1,\n \"accounts.startIndex\": 1,\n \"accounts.itemsPerPage\": 1000,\n \"accounts.items.0.id\": \"38829403\",\n \"accounts.items.0.kind\": \"analytics#account\",\n \"accounts.items.0.selfLink\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403\",\n \"accounts.items.0.name\": \"Dashbook\",\n \"accounts.items.0.permissions.effective.0\": \"COLLABORATE\",\n \"accounts.items.0.permissions.effective.1\": \"EDIT\",\n \"accounts.items.0.permissions.effective.2\": \"MANAGE_USERS\",\n \"accounts.items.0.permissions.effective.3\": \"READ_AND_ANALYZE\",\n \"accounts.items.0.created\": \"2013-02-26T21:27:58.713Z\",\n \"accounts.items.0.updated\": \"2013-05-14T01:24:14.503Z\",\n \"accounts.items.0.childLink.type\": \"analytics#webproperties\",\n \"accounts.items.0.childLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties\",\n \"web properties.kind\": \"analytics#webproperties\",\n \"web properties.username\": \"adrnsly@dashbook.co\",\n \"web properties.totalResults\": 1,\n \"web properties.startIndex\": 1,\n \"web properties.itemsPerPage\": 1000,\n \"web properties.items.0.id\": \"UA-38829403-1\",\n \"web properties.items.0.kind\": \"analytics#webproperty\",\n \"web properties.items.0.selfLink\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1\",\n \"web properties.items.0.accountId\": \"38829403\",\n \"web properties.items.0.internalWebPropertyId\": \"67547626\",\n \"web properties.items.0.name\": \"Dashbook\",\n \"web properties.items.0.websiteUrl\": \"http://dashbookapp.com\",\n \"web properties.items.0.level\": \"STANDARD\",\n \"web properties.items.0.profileCount\": 1,\n \"web properties.items.0.industryVertical\": \"COMPUTERS_AND_ELECTRONICS\",\n \"web properties.items.0.defaultProfileId\": \"69466967\",\n \"web properties.items.0.permissions.effective.0\": \"COLLABORATE\",\n \"web properties.items.0.permissions.effective.1\": \"EDIT\",\n \"web properties.items.0.permissions.effective.2\": \"MANAGE_USERS\",\n \"web properties.items.0.permissions.effective.3\": \"READ_AND_ANALYZE\",\n \"web properties.items.0.created\": \"2013-02-26T21:27:58.713Z\",\n \"web properties.items.0.updated\": \"2013-08-21T15:44:29.534Z\",\n \"web properties.items.0.parentLink.type\": \"analytics#account\",\n \"web properties.items.0.parentLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403\",\n \"web properties.items.0.childLink.type\": \"analytics#profiles\",\n \"web properties.items.0.childLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1/profiles\",\n \"profiles.kind\": \"analytics#profiles\",\n \"profiles.username\": \"adrnsly@dashbook.co\",\n \"profiles.totalResults\": 1,\n \"profiles.startIndex\": 1,\n \"profiles.itemsPerPage\": 1000,\n \"profiles.items.0.id\": \"69466967\",\n \"profiles.items.0.kind\": \"analytics#profile\",\n \"profiles.items.0.selfLink\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1/profiles/69466967\",\n \"profiles.items.0.accountId\": \"38829403\",\n \"profiles.items.0.webPropertyId\": \"UA-38829403-1\",\n \"profiles.items.0.internalWebPropertyId\": \"67547626\",\n \"profiles.items.0.name\": \"Dashbook\",\n \"profiles.items.0.currency\": \"USD\",\n \"profiles.items.0.timezone\": \"America/Montreal\",\n \"profiles.items.0.websiteUrl\": \"http://dashbookapp.com\",\n \"profiles.items.0.type\": \"WEB\",\n \"profiles.items.0.permissions.effective.0\": \"COLLABORATE\",\n \"profiles.items.0.permissions.effective.1\": \"EDIT\",\n \"profiles.items.0.permissions.effective.2\": \"MANAGE_USERS\",\n \"profiles.items.0.permissions.effective.3\": \"READ_AND_ANALYZE\",\n \"profiles.items.0.created\": \"2013-02-26T21:27:58.713Z\",\n \"profiles.items.0.updated\": \"2013-09-27T16:59:32.722Z\",\n \"profiles.items.0.eCommerceTracking\": false,\n \"profiles.items.0.parentLink.type\": \"analytics#webproperty\",\n \"profiles.items.0.parentLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1\",\n \"profiles.items.0.childLink.type\": \"analytics#goals\",\n \"profiles.items.0.childLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1/profiles/69466967/goals\",\n \"report.kind\": \"analytics#gaData\",\n \"report.id\": \"https://www.googleapis.com/analytics/v3/data/ga?ids=ga:69466967&dimensions=ga:date&metrics=ga:visits&start-date=2013-09-23&end-date=2013-10-23\",\n \"report.query.start-date\": \"2013-09-23\",\n \"report.query.end-date\": \"2013-10-23\",\n \"report.query.ids\": \"ga:69466967\",\n \"report.query.dimensions\": \"ga:date\",\n \"report.query.metrics.0\": \"ga:visits\",\n \"report.query.start-index\": 1,\n \"report.query.max-results\": 1000,\n \"report.itemsPerPage\": 1000,\n \"report.totalResults\": 31,\n \"report.selfLink\": \"https://www.googleapis.com/analytics/v3/data/ga?ids=ga:69466967&dimensions=ga:date&metrics=ga:visits&start-date=2013-09-23&end-date=2013-10-23\",\n \"report.profileInfo.profileId\": \"69466967\",\n \"report.profileInfo.accountId\": \"38829403\",\n \"report.profileInfo.webPropertyId\": \"UA-38829403-1\",\n \"report.profileInfo.internalWebPropertyId\": \"67547626\",\n \"report.profileInfo.profileName\": \"Dashbook\",\n \"report.profileInfo.tableId\": \"ga:69466967\",\n \"report.containsSampledData\": false,\n \"report.columnHeaders.0.name\": \"ga:date\",\n \"report.columnHeaders.0.columnType\": \"DIMENSION\",\n \"report.columnHeaders.0.dataType\": \"STRING\",\n \"report.columnHeaders.1.name\": \"ga:visits\",\n \"report.columnHeaders.1.columnType\": \"METRIC\",\n \"report.columnHeaders.1.dataType\": \"INTEGER\",\n \"report.totalsForAllResults.ga:visits\": \"634\",\n \"report.rows.0.0\": \"20130923\",\n \"report.rows.0.1\": \"15\",\n \"report.rows.1.0\": \"20130924\",\n \"report.rows.1.1\": \"6\",\n \"report.rows.2.0\": \"20130925\",\n \"report.rows.2.1\": \"38\",\n \"report.rows.3.0\": \"20130926\",\n \"report.rows.3.1\": \"43\",\n \"report.rows.4.0\": \"20130927\",\n \"report.rows.4.1\": \"18\",\n \"report.rows.5.0\": \"20130928\",\n \"report.rows.5.1\": \"2\",\n \"report.rows.6.0\": \"20130929\",\n \"report.rows.6.1\": \"3\",\n \"report.rows.7.0\": \"20130930\",\n \"report.rows.7.1\": \"14\",\n \"report.rows.8.0\": \"20131001\",\n \"report.rows.8.1\": \"14\",\n \"report.rows.9.0\": \"20131002\",\n \"report.rows.9.1\": \"43\",\n \"report.rows.10.0\": \"20131003\",\n \"report.rows.10.1\": \"42\",\n \"report.rows.11.0\": \"20131004\",\n \"report.rows.11.1\": \"24\",\n \"report.rows.12.0\": \"20131005\",\n \"report.rows.12.1\": \"11\",\n \"report.rows.13.0\": \"20131006\",\n \"report.rows.13.1\": \"13\",\n \"report.rows.14.0\": \"20131007\",\n \"report.rows.14.1\": \"46\",\n \"report.rows.15.0\": \"20131008\",\n \"report.rows.15.1\": \"36\",\n \"report.rows.16.0\": \"20131009\",\n \"report.rows.16.1\": \"24\",\n \"report.rows.17.0\": \"20131010\",\n \"report.rows.17.1\": \"19\",\n \"report.rows.18.0\": \"20131011\",\n \"report.rows.18.1\": \"12\",\n \"report.rows.19.0\": \"20131012\",\n \"report.rows.19.1\": \"8\",\n \"report.rows.20.0\": \"20131013\",\n \"report.rows.20.1\": \"9\",\n \"report.rows.21.0\": \"20131014\",\n \"report.rows.21.1\": \"18\",\n \"report.rows.22.0\": \"20131015\",\n \"report.rows.22.1\": \"93\",\n \"report.rows.23.0\": \"20131016\",\n \"report.rows.23.1\": \"21\",\n \"report.rows.24.0\": \"20131017\",\n \"report.rows.24.1\": \"18\",\n \"report.rows.25.0\": \"20131018\",\n \"report.rows.25.1\": \"11\",\n \"report.rows.26.0\": \"20131019\",\n \"report.rows.26.1\": \"4\",\n \"report.rows.27.0\": \"20131020\",\n \"report.rows.27.1\": \"2\",\n \"report.rows.28.0\": \"20131021\",\n \"report.rows.28.1\": \"18\",\n \"report.rows.29.0\": \"20131022\",\n \"report.rows.29.1\": \"7\",\n \"report.rows.30.0\": \"20131023\",\n \"report.rows.30.1\": \"2\"\n}</code></pre>","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-166","dist":{"shasum":"a243bb3fe9bdcc0ad39599ae448488964a0164aa","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-166.tgz","integrity":"sha512-gzAwdfXizlDc0/QTYngV+nHBVLiubMo7uGN0e8IIL2/EzkuLigjfMWHmoGfoKMI6i2IRG7tCfO5HQqKbqVxZCA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBXGLHhos5RUygo+GfjdK377fG9NZtSTnXbjAvtjgRBUAiEAuv+3YjI21AGTSylqeLuczkTdKTYZOr26et98KKYTJlc="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-167":{"name":"yarnlang","version":"0.1.0-167","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"<div align=\"center\">\n\t<h3><i>yarn</i></h3>\n\t<i>the more you know - the less you need</i>\n</div>\n\n<div align=\"center\"><h3><i>samples</i></h3><i>canon (not working)</i></div>\n\n<pre lang=\"yarn\"><code>// set the name 'query' to the value 'yarnlang'\nset [query] [yarnlang],\n\n// search twitter for the value of 'query', store the results in 'twitter results'\nsearch twitter [twitter results] (query),\n\n// search facebook for the value of 'query', store the results in 'facebook results'\nsearch facebook [facebook results] (query),\n\n// search tumblr for the value of 'query', store the results in 'tumblr results'\nsearch tumblr [tumblr results] (query),\n\n// combine all three results, store the combined in 'combined results'\ncat [combined results] [twitter results] [facebook results] [tumblr results],\n\n// delete any results that don't have an image\nfilter [combined results] [!] (a.tweet.image) (a.facebooked.image) (a.tumbled.image),\n\n// sort the combined results by their respectively named creation dates\nsort [combined results] (a.tweeted_at) (a.facebooked_at) (a.tumbled_at) [>] (b.tweeted_at) (b.facebooked_at) (b.tumbled_at),\n\n// loop though all remaining results\nfor [result] [combined results],\n\n\t// loop through each tag in result\n\tfor [tag] [result.tags],\n\n\t\t// search google for tag\n\t\tget [tag.google search] [https://www.google.com/search?q=] + (tag),\n\n\t\t// match the page result count\n\t\tmatch (tag.about results matches) [About .+ results] (tag.google search.body),\n\n\t\t// read the page count\n\t\tfloat (tag.page count) (tag.about results matches.0),\n\n\tend for,\n\n\t// average the tag's page counts\n\taverage [result.average tag page count] (result.tags.*.page count),\n\nend for,\n\n// sort remaining results by their average tag page count\nsort [combined results] (a.average tag page count) [>] (b.average tag page count)\n</code></pre>\n\n<div align=\"center\"><i>google analytics (working)</i></div>\n\n<pre lang=\"yarn\"><code>// get accounts for login\ngoogle analytics accounts [accounts], \n\n// get web properties from first account\ngoogle analytics web properties [web properties] (accounts.items.0.id), \n\n// get profiles from account + web property combo\ngoogle analytics profiles [profiles] (accounts.items.0.id) (web properties.items.0.id),\n\n// generate a monthly report of visits with single day granularity\ngoogle analytics reporting [report] (profiles.items.0.id) [Sept 23 2013 11:31:07 GMT-0400 (EDT)] [Oct 23 2013 11:31:07 GMT-0400 (EDT)] [ga:visits] [ga:date]\n</code></pre>\n\n<div align=\"center\"><i>google analytics output</i></div>\n\n<pre lang=\"json\"><code>{\n \"accounts.kind\": \"analytics#accounts\",\n \"accounts.username\": \"adrnsly@dashbook.co\",\n \"accounts.totalResults\": 1,\n \"accounts.startIndex\": 1,\n \"accounts.itemsPerPage\": 1000,\n \"accounts.items.0.id\": \"38829403\",\n \"accounts.items.0.kind\": \"analytics#account\",\n \"accounts.items.0.selfLink\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403\",\n \"accounts.items.0.name\": \"Dashbook\",\n \"accounts.items.0.permissions.effective.0\": \"COLLABORATE\",\n \"accounts.items.0.permissions.effective.1\": \"EDIT\",\n \"accounts.items.0.permissions.effective.2\": \"MANAGE_USERS\",\n \"accounts.items.0.permissions.effective.3\": \"READ_AND_ANALYZE\",\n \"accounts.items.0.created\": \"2013-02-26T21:27:58.713Z\",\n \"accounts.items.0.updated\": \"2013-05-14T01:24:14.503Z\",\n \"accounts.items.0.childLink.type\": \"analytics#webproperties\",\n \"accounts.items.0.childLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties\",\n \"web properties.kind\": \"analytics#webproperties\",\n \"web properties.username\": \"adrnsly@dashbook.co\",\n \"web properties.totalResults\": 1,\n \"web properties.startIndex\": 1,\n \"web properties.itemsPerPage\": 1000,\n \"web properties.items.0.id\": \"UA-38829403-1\",\n \"web properties.items.0.kind\": \"analytics#webproperty\",\n \"web properties.items.0.selfLink\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1\",\n \"web properties.items.0.accountId\": \"38829403\",\n \"web properties.items.0.internalWebPropertyId\": \"67547626\",\n \"web properties.items.0.name\": \"Dashbook\",\n \"web properties.items.0.websiteUrl\": \"http://dashbookapp.com\",\n \"web properties.items.0.level\": \"STANDARD\",\n \"web properties.items.0.profileCount\": 1,\n \"web properties.items.0.industryVertical\": \"COMPUTERS_AND_ELECTRONICS\",\n \"web properties.items.0.defaultProfileId\": \"69466967\",\n \"web properties.items.0.permissions.effective.0\": \"COLLABORATE\",\n \"web properties.items.0.permissions.effective.1\": \"EDIT\",\n \"web properties.items.0.permissions.effective.2\": \"MANAGE_USERS\",\n \"web properties.items.0.permissions.effective.3\": \"READ_AND_ANALYZE\",\n \"web properties.items.0.created\": \"2013-02-26T21:27:58.713Z\",\n \"web properties.items.0.updated\": \"2013-08-21T15:44:29.534Z\",\n \"web properties.items.0.parentLink.type\": \"analytics#account\",\n \"web properties.items.0.parentLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403\",\n \"web properties.items.0.childLink.type\": \"analytics#profiles\",\n \"web properties.items.0.childLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1/profiles\",\n \"profiles.kind\": \"analytics#profiles\",\n \"profiles.username\": \"adrnsly@dashbook.co\",\n \"profiles.totalResults\": 1,\n \"profiles.startIndex\": 1,\n \"profiles.itemsPerPage\": 1000,\n \"profiles.items.0.id\": \"69466967\",\n \"profiles.items.0.kind\": \"analytics#profile\",\n \"profiles.items.0.selfLink\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1/profiles/69466967\",\n \"profiles.items.0.accountId\": \"38829403\",\n \"profiles.items.0.webPropertyId\": \"UA-38829403-1\",\n \"profiles.items.0.internalWebPropertyId\": \"67547626\",\n \"profiles.items.0.name\": \"Dashbook\",\n \"profiles.items.0.currency\": \"USD\",\n \"profiles.items.0.timezone\": \"America/Montreal\",\n \"profiles.items.0.websiteUrl\": \"http://dashbookapp.com\",\n \"profiles.items.0.type\": \"WEB\",\n \"profiles.items.0.permissions.effective.0\": \"COLLABORATE\",\n \"profiles.items.0.permissions.effective.1\": \"EDIT\",\n \"profiles.items.0.permissions.effective.2\": \"MANAGE_USERS\",\n \"profiles.items.0.permissions.effective.3\": \"READ_AND_ANALYZE\",\n \"profiles.items.0.created\": \"2013-02-26T21:27:58.713Z\",\n \"profiles.items.0.updated\": \"2013-09-27T16:59:32.722Z\",\n \"profiles.items.0.eCommerceTracking\": false,\n \"profiles.items.0.parentLink.type\": \"analytics#webproperty\",\n \"profiles.items.0.parentLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1\",\n \"profiles.items.0.childLink.type\": \"analytics#goals\",\n \"profiles.items.0.childLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1/profiles/69466967/goals\",\n \"report.kind\": \"analytics#gaData\",\n \"report.id\": \"https://www.googleapis.com/analytics/v3/data/ga?ids=ga:69466967&dimensions=ga:date&metrics=ga:visits&start-date=2013-09-23&end-date=2013-10-23\",\n \"report.query.start-date\": \"2013-09-23\",\n \"report.query.end-date\": \"2013-10-23\",\n \"report.query.ids\": \"ga:69466967\",\n \"report.query.dimensions\": \"ga:date\",\n \"report.query.metrics.0\": \"ga:visits\",\n \"report.query.start-index\": 1,\n \"report.query.max-results\": 1000,\n \"report.itemsPerPage\": 1000,\n \"report.totalResults\": 31,\n \"report.selfLink\": \"https://www.googleapis.com/analytics/v3/data/ga?ids=ga:69466967&dimensions=ga:date&metrics=ga:visits&start-date=2013-09-23&end-date=2013-10-23\",\n \"report.profileInfo.profileId\": \"69466967\",\n \"report.profileInfo.accountId\": \"38829403\",\n \"report.profileInfo.webPropertyId\": \"UA-38829403-1\",\n \"report.profileInfo.internalWebPropertyId\": \"67547626\",\n \"report.profileInfo.profileName\": \"Dashbook\",\n \"report.profileInfo.tableId\": \"ga:69466967\",\n \"report.containsSampledData\": false,\n \"report.columnHeaders.0.name\": \"ga:date\",\n \"report.columnHeaders.0.columnType\": \"DIMENSION\",\n \"report.columnHeaders.0.dataType\": \"STRING\",\n \"report.columnHeaders.1.name\": \"ga:visits\",\n \"report.columnHeaders.1.columnType\": \"METRIC\",\n \"report.columnHeaders.1.dataType\": \"INTEGER\",\n \"report.totalsForAllResults.ga:visits\": \"634\",\n \"report.rows.0.0\": \"20130923\",\n \"report.rows.0.1\": \"15\",\n \"report.rows.1.0\": \"20130924\",\n \"report.rows.1.1\": \"6\",\n \"report.rows.2.0\": \"20130925\",\n \"report.rows.2.1\": \"38\",\n \"report.rows.3.0\": \"20130926\",\n \"report.rows.3.1\": \"43\",\n \"report.rows.4.0\": \"20130927\",\n \"report.rows.4.1\": \"18\",\n \"report.rows.5.0\": \"20130928\",\n \"report.rows.5.1\": \"2\",\n \"report.rows.6.0\": \"20130929\",\n \"report.rows.6.1\": \"3\",\n \"report.rows.7.0\": \"20130930\",\n \"report.rows.7.1\": \"14\",\n \"report.rows.8.0\": \"20131001\",\n \"report.rows.8.1\": \"14\",\n \"report.rows.9.0\": \"20131002\",\n \"report.rows.9.1\": \"43\",\n \"report.rows.10.0\": \"20131003\",\n \"report.rows.10.1\": \"42\",\n \"report.rows.11.0\": \"20131004\",\n \"report.rows.11.1\": \"24\",\n \"report.rows.12.0\": \"20131005\",\n \"report.rows.12.1\": \"11\",\n \"report.rows.13.0\": \"20131006\",\n \"report.rows.13.1\": \"13\",\n \"report.rows.14.0\": \"20131007\",\n \"report.rows.14.1\": \"46\",\n \"report.rows.15.0\": \"20131008\",\n \"report.rows.15.1\": \"36\",\n \"report.rows.16.0\": \"20131009\",\n \"report.rows.16.1\": \"24\",\n \"report.rows.17.0\": \"20131010\",\n \"report.rows.17.1\": \"19\",\n \"report.rows.18.0\": \"20131011\",\n \"report.rows.18.1\": \"12\",\n \"report.rows.19.0\": \"20131012\",\n \"report.rows.19.1\": \"8\",\n \"report.rows.20.0\": \"20131013\",\n \"report.rows.20.1\": \"9\",\n \"report.rows.21.0\": \"20131014\",\n \"report.rows.21.1\": \"18\",\n \"report.rows.22.0\": \"20131015\",\n \"report.rows.22.1\": \"93\",\n \"report.rows.23.0\": \"20131016\",\n \"report.rows.23.1\": \"21\",\n \"report.rows.24.0\": \"20131017\",\n \"report.rows.24.1\": \"18\",\n \"report.rows.25.0\": \"20131018\",\n \"report.rows.25.1\": \"11\",\n \"report.rows.26.0\": \"20131019\",\n \"report.rows.26.1\": \"4\",\n \"report.rows.27.0\": \"20131020\",\n \"report.rows.27.1\": \"2\",\n \"report.rows.28.0\": \"20131021\",\n \"report.rows.28.1\": \"18\",\n \"report.rows.29.0\": \"20131022\",\n \"report.rows.29.1\": \"7\",\n \"report.rows.30.0\": \"20131023\",\n \"report.rows.30.1\": \"2\"\n}</code></pre>","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-167","dist":{"shasum":"f0ed4a313446dfac68936b937efc6dfd82bb7645","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-167.tgz","integrity":"sha512-OQmDHriTQABNRM7yGTeRG3oj9GTHk3n+2vw047PYS4nXFZmouuCypPj07ZtC+4BmL5o9uaUJNYuwNOgtUdqC+Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCVJ/PWdRwmI6BrycSBvZWbzAAvWV13IsD5A70eIc+koQIhAKNvPGE5EOp5PlfmU2HBNA0eqOlJU5OjCdxOnfrkaeTm"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-168":{"name":"yarnlang","version":"0.1.0-168","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"<div align=\"center\">\n\t<h3><i>yarn</i></h3>\n\t<i>the more you know - the less you need</i>\n</div>\n\n<div align=\"center\"><h3><i>samples</i></h3><i>canon (not working)</i></div>\n\n<pre lang=\"yarn\"><code>// set the name 'query' to the value 'yarnlang'\nset [query] [yarnlang],\n\n// search twitter for the value of 'query', store the results in 'twitter results'\nsearch twitter [twitter results] (query),\n\n// search facebook for the value of 'query', store the results in 'facebook results'\nsearch facebook [facebook results] (query),\n\n// search tumblr for the value of 'query', store the results in 'tumblr results'\nsearch tumblr [tumblr results] (query),\n\n// combine all three results, store the combined in 'combined results'\ncat [combined results] [twitter results] [facebook results] [tumblr results],\n\n// delete any results that don't have an image\nfilter [combined results] [!] (a.tweet.image) (a.facebooked.image) (a.tumbled.image),\n\n// sort the combined results by their respectively named creation dates\nsort [combined results] (a.tweeted_at) (a.facebooked_at) (a.tumbled_at) [>] (b.tweeted_at) (b.facebooked_at) (b.tumbled_at),\n\n// loop though all remaining results\nfor [result] [combined results],\n\n\t// loop through each tag in result\n\tfor [tag] [result.tags],\n\n\t\t// search google for tag\n\t\tget [tag.google search] [https://www.google.com/search?q=] + (tag),\n\n\t\t// match the page result count\n\t\tmatch (tag.about results matches) [About .+ results] (tag.google search.body),\n\n\t\t// read the page count\n\t\tfloat (tag.page count) (tag.about results matches.0),\n\n\tend for,\n\n\t// average the tag's page counts\n\taverage [result.average tag page count] (result.tags.*.page count),\n\nend for,\n\n// sort remaining results by their average tag page count\nsort [combined results] (a.average tag page count) [>] (b.average tag page count)\n</code></pre>\n\n<div align=\"center\"><i>google analytics (working)</i></div>\n\n<pre lang=\"yarn\"><code>// get accounts for login\ngoogle analytics accounts [accounts], \n\n// get web properties from first account\ngoogle analytics web properties [web properties] (accounts.items.0.id), \n\n// get profiles from account + web property combo\ngoogle analytics profiles [profiles] (accounts.items.0.id) (web properties.items.0.id),\n\n// generate a monthly report of visits with single day granularity\ngoogle analytics reporting [report] (profiles.items.0.id) [Sept 23 2013 11:31:07 GMT-0400 (EDT)] [Oct 23 2013 11:31:07 GMT-0400 (EDT)] [ga:visits] [ga:date]\n</code></pre>\n\n<div align=\"center\"><i>google analytics output</i></div>\n\n<pre lang=\"json\"><code>{\n \"accounts.kind\": \"analytics#accounts\",\n \"accounts.username\": \"adrnsly@dashbook.co\",\n \"accounts.totalResults\": 1,\n \"accounts.startIndex\": 1,\n \"accounts.itemsPerPage\": 1000,\n \"accounts.items.0.id\": \"38829403\",\n \"accounts.items.0.kind\": \"analytics#account\",\n \"accounts.items.0.selfLink\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403\",\n \"accounts.items.0.name\": \"Dashbook\",\n \"accounts.items.0.permissions.effective.0\": \"COLLABORATE\",\n \"accounts.items.0.permissions.effective.1\": \"EDIT\",\n \"accounts.items.0.permissions.effective.2\": \"MANAGE_USERS\",\n \"accounts.items.0.permissions.effective.3\": \"READ_AND_ANALYZE\",\n \"accounts.items.0.created\": \"2013-02-26T21:27:58.713Z\",\n \"accounts.items.0.updated\": \"2013-05-14T01:24:14.503Z\",\n \"accounts.items.0.childLink.type\": \"analytics#webproperties\",\n \"accounts.items.0.childLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties\",\n \"web properties.kind\": \"analytics#webproperties\",\n \"web properties.username\": \"adrnsly@dashbook.co\",\n \"web properties.totalResults\": 1,\n \"web properties.startIndex\": 1,\n \"web properties.itemsPerPage\": 1000,\n \"web properties.items.0.id\": \"UA-38829403-1\",\n \"web properties.items.0.kind\": \"analytics#webproperty\",\n \"web properties.items.0.selfLink\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1\",\n \"web properties.items.0.accountId\": \"38829403\",\n \"web properties.items.0.internalWebPropertyId\": \"67547626\",\n \"web properties.items.0.name\": \"Dashbook\",\n \"web properties.items.0.websiteUrl\": \"http://dashbookapp.com\",\n \"web properties.items.0.level\": \"STANDARD\",\n \"web properties.items.0.profileCount\": 1,\n \"web properties.items.0.industryVertical\": \"COMPUTERS_AND_ELECTRONICS\",\n \"web properties.items.0.defaultProfileId\": \"69466967\",\n \"web properties.items.0.permissions.effective.0\": \"COLLABORATE\",\n \"web properties.items.0.permissions.effective.1\": \"EDIT\",\n \"web properties.items.0.permissions.effective.2\": \"MANAGE_USERS\",\n \"web properties.items.0.permissions.effective.3\": \"READ_AND_ANALYZE\",\n \"web properties.items.0.created\": \"2013-02-26T21:27:58.713Z\",\n \"web properties.items.0.updated\": \"2013-08-21T15:44:29.534Z\",\n \"web properties.items.0.parentLink.type\": \"analytics#account\",\n \"web properties.items.0.parentLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403\",\n \"web properties.items.0.childLink.type\": \"analytics#profiles\",\n \"web properties.items.0.childLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1/profiles\",\n \"profiles.kind\": \"analytics#profiles\",\n \"profiles.username\": \"adrnsly@dashbook.co\",\n \"profiles.totalResults\": 1,\n \"profiles.startIndex\": 1,\n \"profiles.itemsPerPage\": 1000,\n \"profiles.items.0.id\": \"69466967\",\n \"profiles.items.0.kind\": \"analytics#profile\",\n \"profiles.items.0.selfLink\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1/profiles/69466967\",\n \"profiles.items.0.accountId\": \"38829403\",\n \"profiles.items.0.webPropertyId\": \"UA-38829403-1\",\n \"profiles.items.0.internalWebPropertyId\": \"67547626\",\n \"profiles.items.0.name\": \"Dashbook\",\n \"profiles.items.0.currency\": \"USD\",\n \"profiles.items.0.timezone\": \"America/Montreal\",\n \"profiles.items.0.websiteUrl\": \"http://dashbookapp.com\",\n \"profiles.items.0.type\": \"WEB\",\n \"profiles.items.0.permissions.effective.0\": \"COLLABORATE\",\n \"profiles.items.0.permissions.effective.1\": \"EDIT\",\n \"profiles.items.0.permissions.effective.2\": \"MANAGE_USERS\",\n \"profiles.items.0.permissions.effective.3\": \"READ_AND_ANALYZE\",\n \"profiles.items.0.created\": \"2013-02-26T21:27:58.713Z\",\n \"profiles.items.0.updated\": \"2013-09-27T16:59:32.722Z\",\n \"profiles.items.0.eCommerceTracking\": false,\n \"profiles.items.0.parentLink.type\": \"analytics#webproperty\",\n \"profiles.items.0.parentLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1\",\n \"profiles.items.0.childLink.type\": \"analytics#goals\",\n \"profiles.items.0.childLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1/profiles/69466967/goals\",\n \"report.kind\": \"analytics#gaData\",\n \"report.id\": \"https://www.googleapis.com/analytics/v3/data/ga?ids=ga:69466967&dimensions=ga:date&metrics=ga:visits&start-date=2013-09-23&end-date=2013-10-23\",\n \"report.query.start-date\": \"2013-09-23\",\n \"report.query.end-date\": \"2013-10-23\",\n \"report.query.ids\": \"ga:69466967\",\n \"report.query.dimensions\": \"ga:date\",\n \"report.query.metrics.0\": \"ga:visits\",\n \"report.query.start-index\": 1,\n \"report.query.max-results\": 1000,\n \"report.itemsPerPage\": 1000,\n \"report.totalResults\": 31,\n \"report.selfLink\": \"https://www.googleapis.com/analytics/v3/data/ga?ids=ga:69466967&dimensions=ga:date&metrics=ga:visits&start-date=2013-09-23&end-date=2013-10-23\",\n \"report.profileInfo.profileId\": \"69466967\",\n \"report.profileInfo.accountId\": \"38829403\",\n \"report.profileInfo.webPropertyId\": \"UA-38829403-1\",\n \"report.profileInfo.internalWebPropertyId\": \"67547626\",\n \"report.profileInfo.profileName\": \"Dashbook\",\n \"report.profileInfo.tableId\": \"ga:69466967\",\n \"report.containsSampledData\": false,\n \"report.columnHeaders.0.name\": \"ga:date\",\n \"report.columnHeaders.0.columnType\": \"DIMENSION\",\n \"report.columnHeaders.0.dataType\": \"STRING\",\n \"report.columnHeaders.1.name\": \"ga:visits\",\n \"report.columnHeaders.1.columnType\": \"METRIC\",\n \"report.columnHeaders.1.dataType\": \"INTEGER\",\n \"report.totalsForAllResults.ga:visits\": \"634\",\n \"report.rows.0.0\": \"20130923\",\n \"report.rows.0.1\": \"15\",\n \"report.rows.1.0\": \"20130924\",\n \"report.rows.1.1\": \"6\",\n \"report.rows.2.0\": \"20130925\",\n \"report.rows.2.1\": \"38\",\n \"report.rows.3.0\": \"20130926\",\n \"report.rows.3.1\": \"43\",\n \"report.rows.4.0\": \"20130927\",\n \"report.rows.4.1\": \"18\",\n \"report.rows.5.0\": \"20130928\",\n \"report.rows.5.1\": \"2\",\n \"report.rows.6.0\": \"20130929\",\n \"report.rows.6.1\": \"3\",\n \"report.rows.7.0\": \"20130930\",\n \"report.rows.7.1\": \"14\",\n \"report.rows.8.0\": \"20131001\",\n \"report.rows.8.1\": \"14\",\n \"report.rows.9.0\": \"20131002\",\n \"report.rows.9.1\": \"43\",\n \"report.rows.10.0\": \"20131003\",\n \"report.rows.10.1\": \"42\",\n \"report.rows.11.0\": \"20131004\",\n \"report.rows.11.1\": \"24\",\n \"report.rows.12.0\": \"20131005\",\n \"report.rows.12.1\": \"11\",\n \"report.rows.13.0\": \"20131006\",\n \"report.rows.13.1\": \"13\",\n \"report.rows.14.0\": \"20131007\",\n \"report.rows.14.1\": \"46\",\n \"report.rows.15.0\": \"20131008\",\n \"report.rows.15.1\": \"36\",\n \"report.rows.16.0\": \"20131009\",\n \"report.rows.16.1\": \"24\",\n \"report.rows.17.0\": \"20131010\",\n \"report.rows.17.1\": \"19\",\n \"report.rows.18.0\": \"20131011\",\n \"report.rows.18.1\": \"12\",\n \"report.rows.19.0\": \"20131012\",\n \"report.rows.19.1\": \"8\",\n \"report.rows.20.0\": \"20131013\",\n \"report.rows.20.1\": \"9\",\n \"report.rows.21.0\": \"20131014\",\n \"report.rows.21.1\": \"18\",\n \"report.rows.22.0\": \"20131015\",\n \"report.rows.22.1\": \"93\",\n \"report.rows.23.0\": \"20131016\",\n \"report.rows.23.1\": \"21\",\n \"report.rows.24.0\": \"20131017\",\n \"report.rows.24.1\": \"18\",\n \"report.rows.25.0\": \"20131018\",\n \"report.rows.25.1\": \"11\",\n \"report.rows.26.0\": \"20131019\",\n \"report.rows.26.1\": \"4\",\n \"report.rows.27.0\": \"20131020\",\n \"report.rows.27.1\": \"2\",\n \"report.rows.28.0\": \"20131021\",\n \"report.rows.28.1\": \"18\",\n \"report.rows.29.0\": \"20131022\",\n \"report.rows.29.1\": \"7\",\n \"report.rows.30.0\": \"20131023\",\n \"report.rows.30.1\": \"2\"\n}</code></pre>","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-168","dist":{"shasum":"a295ad870a26c8af6666b0b49e9ca61d2246bca3","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-168.tgz","integrity":"sha512-RwtE1/OVw2Wd7KKJcEe0oQcQ/QBzI1RWI7+1MsplaPkheT58vgjrrOOYgE5q2qXh3o134DrzKDoWXJkp34yXDQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC1b3ZT7Uo+nmFkx1AbUBZPYovpdjIEyj5/9e69QkVGdQIgCOoyKGxKADFDH/OT1Ugqw7o0IKtZ7X4vULLDkfh1DiA="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-169":{"name":"yarnlang","version":"0.1.0-169","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"<div align=\"center\">\n\t<h3><i>yarn</i></h3>\n\t<i>the more you know - the less you need</i>\n</div>\n\n<div align=\"center\"><h3><i>samples</i></h3><i>canon (not working)</i></div>\n\n<pre lang=\"yarn\"><code>// set the name 'query' to the value 'yarnlang'\nset [query] [yarnlang],\n\n// search twitter for the value of 'query', store the results in 'twitter results'\nsearch twitter [twitter results] (query),\n\n// search facebook for the value of 'query', store the results in 'facebook results'\nsearch facebook [facebook results] (query),\n\n// search tumblr for the value of 'query', store the results in 'tumblr results'\nsearch tumblr [tumblr results] (query),\n\n// combine all three results, store the combined in 'combined results'\ncat [combined results] [twitter results] [facebook results] [tumblr results],\n\n// delete any results that don't have an image\nfilter [combined results] [!] (a.tweet.image) (a.facebooked.image) (a.tumbled.image),\n\n// sort the combined results by their respectively named creation dates\nsort [combined results] (a.tweeted_at) (a.facebooked_at) (a.tumbled_at) [>] (b.tweeted_at) (b.facebooked_at) (b.tumbled_at),\n\n// loop though all remaining results\nfor [result] [combined results],\n\n\t// loop through each tag in result\n\tfor [tag] [result.tags],\n\n\t\t// search google for tag\n\t\tget [tag.google search] [https://www.google.com/search?q=] + (tag),\n\n\t\t// match the page result count\n\t\tmatch (tag.about results matches) [About .+ results] (tag.google search.body),\n\n\t\t// read the page count\n\t\tfloat (tag.page count) (tag.about results matches.0),\n\n\tend for,\n\n\t// average the tag's page counts\n\taverage [result.average tag page count] (result.tags.*.page count),\n\nend for,\n\n// sort remaining results by their average tag page count\nsort [combined results] (a.average tag page count) [>] (b.average tag page count)\n</code></pre>\n\n<div align=\"center\"><i>google analytics (working)</i></div>\n\n<pre lang=\"yarn\"><code>// get accounts for login\ngoogle analytics accounts [accounts], \n\n// get web properties from first account\ngoogle analytics web properties [web properties] (accounts.items.0.id), \n\n// get profiles from account + web property combo\ngoogle analytics profiles [profiles] (accounts.items.0.id) (web properties.items.0.id),\n\n// generate a monthly report of visits with single day granularity\ngoogle analytics reporting [report] (profiles.items.0.id) [Sept 23 2013 11:31:07 GMT-0400 (EDT)] [Oct 23 2013 11:31:07 GMT-0400 (EDT)] [ga:visits] [ga:date]\n</code></pre>\n\n<div align=\"center\"><i>google analytics output</i></div>\n\n<pre lang=\"json\"><code>{\n \"accounts.kind\": \"analytics#accounts\",\n \"accounts.username\": \"adrnsly@dashbook.co\",\n \"accounts.totalResults\": 1,\n \"accounts.startIndex\": 1,\n \"accounts.itemsPerPage\": 1000,\n \"accounts.items.0.id\": \"38829403\",\n \"accounts.items.0.kind\": \"analytics#account\",\n \"accounts.items.0.selfLink\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403\",\n \"accounts.items.0.name\": \"Dashbook\",\n \"accounts.items.0.permissions.effective.0\": \"COLLABORATE\",\n \"accounts.items.0.permissions.effective.1\": \"EDIT\",\n \"accounts.items.0.permissions.effective.2\": \"MANAGE_USERS\",\n \"accounts.items.0.permissions.effective.3\": \"READ_AND_ANALYZE\",\n \"accounts.items.0.created\": \"2013-02-26T21:27:58.713Z\",\n \"accounts.items.0.updated\": \"2013-05-14T01:24:14.503Z\",\n \"accounts.items.0.childLink.type\": \"analytics#webproperties\",\n \"accounts.items.0.childLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties\",\n \"web properties.kind\": \"analytics#webproperties\",\n \"web properties.username\": \"adrnsly@dashbook.co\",\n \"web properties.totalResults\": 1,\n \"web properties.startIndex\": 1,\n \"web properties.itemsPerPage\": 1000,\n \"web properties.items.0.id\": \"UA-38829403-1\",\n \"web properties.items.0.kind\": \"analytics#webproperty\",\n \"web properties.items.0.selfLink\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1\",\n \"web properties.items.0.accountId\": \"38829403\",\n \"web properties.items.0.internalWebPropertyId\": \"67547626\",\n \"web properties.items.0.name\": \"Dashbook\",\n \"web properties.items.0.websiteUrl\": \"http://dashbookapp.com\",\n \"web properties.items.0.level\": \"STANDARD\",\n \"web properties.items.0.profileCount\": 1,\n \"web properties.items.0.industryVertical\": \"COMPUTERS_AND_ELECTRONICS\",\n \"web properties.items.0.defaultProfileId\": \"69466967\",\n \"web properties.items.0.permissions.effective.0\": \"COLLABORATE\",\n \"web properties.items.0.permissions.effective.1\": \"EDIT\",\n \"web properties.items.0.permissions.effective.2\": \"MANAGE_USERS\",\n \"web properties.items.0.permissions.effective.3\": \"READ_AND_ANALYZE\",\n \"web properties.items.0.created\": \"2013-02-26T21:27:58.713Z\",\n \"web properties.items.0.updated\": \"2013-08-21T15:44:29.534Z\",\n \"web properties.items.0.parentLink.type\": \"analytics#account\",\n \"web properties.items.0.parentLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403\",\n \"web properties.items.0.childLink.type\": \"analytics#profiles\",\n \"web properties.items.0.childLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1/profiles\",\n \"profiles.kind\": \"analytics#profiles\",\n \"profiles.username\": \"adrnsly@dashbook.co\",\n \"profiles.totalResults\": 1,\n \"profiles.startIndex\": 1,\n \"profiles.itemsPerPage\": 1000,\n \"profiles.items.0.id\": \"69466967\",\n \"profiles.items.0.kind\": \"analytics#profile\",\n \"profiles.items.0.selfLink\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1/profiles/69466967\",\n \"profiles.items.0.accountId\": \"38829403\",\n \"profiles.items.0.webPropertyId\": \"UA-38829403-1\",\n \"profiles.items.0.internalWebPropertyId\": \"67547626\",\n \"profiles.items.0.name\": \"Dashbook\",\n \"profiles.items.0.currency\": \"USD\",\n \"profiles.items.0.timezone\": \"America/Montreal\",\n \"profiles.items.0.websiteUrl\": \"http://dashbookapp.com\",\n \"profiles.items.0.type\": \"WEB\",\n \"profiles.items.0.permissions.effective.0\": \"COLLABORATE\",\n \"profiles.items.0.permissions.effective.1\": \"EDIT\",\n \"profiles.items.0.permissions.effective.2\": \"MANAGE_USERS\",\n \"profiles.items.0.permissions.effective.3\": \"READ_AND_ANALYZE\",\n \"profiles.items.0.created\": \"2013-02-26T21:27:58.713Z\",\n \"profiles.items.0.updated\": \"2013-09-27T16:59:32.722Z\",\n \"profiles.items.0.eCommerceTracking\": false,\n \"profiles.items.0.parentLink.type\": \"analytics#webproperty\",\n \"profiles.items.0.parentLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1\",\n \"profiles.items.0.childLink.type\": \"analytics#goals\",\n \"profiles.items.0.childLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1/profiles/69466967/goals\",\n \"report.kind\": \"analytics#gaData\",\n \"report.id\": \"https://www.googleapis.com/analytics/v3/data/ga?ids=ga:69466967&dimensions=ga:date&metrics=ga:visits&start-date=2013-09-23&end-date=2013-10-23\",\n \"report.query.start-date\": \"2013-09-23\",\n \"report.query.end-date\": \"2013-10-23\",\n \"report.query.ids\": \"ga:69466967\",\n \"report.query.dimensions\": \"ga:date\",\n \"report.query.metrics.0\": \"ga:visits\",\n \"report.query.start-index\": 1,\n \"report.query.max-results\": 1000,\n \"report.itemsPerPage\": 1000,\n \"report.totalResults\": 31,\n \"report.selfLink\": \"https://www.googleapis.com/analytics/v3/data/ga?ids=ga:69466967&dimensions=ga:date&metrics=ga:visits&start-date=2013-09-23&end-date=2013-10-23\",\n \"report.profileInfo.profileId\": \"69466967\",\n \"report.profileInfo.accountId\": \"38829403\",\n \"report.profileInfo.webPropertyId\": \"UA-38829403-1\",\n \"report.profileInfo.internalWebPropertyId\": \"67547626\",\n \"report.profileInfo.profileName\": \"Dashbook\",\n \"report.profileInfo.tableId\": \"ga:69466967\",\n \"report.containsSampledData\": false,\n \"report.columnHeaders.0.name\": \"ga:date\",\n \"report.columnHeaders.0.columnType\": \"DIMENSION\",\n \"report.columnHeaders.0.dataType\": \"STRING\",\n \"report.columnHeaders.1.name\": \"ga:visits\",\n \"report.columnHeaders.1.columnType\": \"METRIC\",\n \"report.columnHeaders.1.dataType\": \"INTEGER\",\n \"report.totalsForAllResults.ga:visits\": \"634\",\n \"report.rows.0.0\": \"20130923\",\n \"report.rows.0.1\": \"15\",\n \"report.rows.1.0\": \"20130924\",\n \"report.rows.1.1\": \"6\",\n \"report.rows.2.0\": \"20130925\",\n \"report.rows.2.1\": \"38\",\n \"report.rows.3.0\": \"20130926\",\n \"report.rows.3.1\": \"43\",\n \"report.rows.4.0\": \"20130927\",\n \"report.rows.4.1\": \"18\",\n \"report.rows.5.0\": \"20130928\",\n \"report.rows.5.1\": \"2\",\n \"report.rows.6.0\": \"20130929\",\n \"report.rows.6.1\": \"3\",\n \"report.rows.7.0\": \"20130930\",\n \"report.rows.7.1\": \"14\",\n \"report.rows.8.0\": \"20131001\",\n \"report.rows.8.1\": \"14\",\n \"report.rows.9.0\": \"20131002\",\n \"report.rows.9.1\": \"43\",\n \"report.rows.10.0\": \"20131003\",\n \"report.rows.10.1\": \"42\",\n \"report.rows.11.0\": \"20131004\",\n \"report.rows.11.1\": \"24\",\n \"report.rows.12.0\": \"20131005\",\n \"report.rows.12.1\": \"11\",\n \"report.rows.13.0\": \"20131006\",\n \"report.rows.13.1\": \"13\",\n \"report.rows.14.0\": \"20131007\",\n \"report.rows.14.1\": \"46\",\n \"report.rows.15.0\": \"20131008\",\n \"report.rows.15.1\": \"36\",\n \"report.rows.16.0\": \"20131009\",\n \"report.rows.16.1\": \"24\",\n \"report.rows.17.0\": \"20131010\",\n \"report.rows.17.1\": \"19\",\n \"report.rows.18.0\": \"20131011\",\n \"report.rows.18.1\": \"12\",\n \"report.rows.19.0\": \"20131012\",\n \"report.rows.19.1\": \"8\",\n \"report.rows.20.0\": \"20131013\",\n \"report.rows.20.1\": \"9\",\n \"report.rows.21.0\": \"20131014\",\n \"report.rows.21.1\": \"18\",\n \"report.rows.22.0\": \"20131015\",\n \"report.rows.22.1\": \"93\",\n \"report.rows.23.0\": \"20131016\",\n \"report.rows.23.1\": \"21\",\n \"report.rows.24.0\": \"20131017\",\n \"report.rows.24.1\": \"18\",\n \"report.rows.25.0\": \"20131018\",\n \"report.rows.25.1\": \"11\",\n \"report.rows.26.0\": \"20131019\",\n \"report.rows.26.1\": \"4\",\n \"report.rows.27.0\": \"20131020\",\n \"report.rows.27.1\": \"2\",\n \"report.rows.28.0\": \"20131021\",\n \"report.rows.28.1\": \"18\",\n \"report.rows.29.0\": \"20131022\",\n \"report.rows.29.1\": \"7\",\n \"report.rows.30.0\": \"20131023\",\n \"report.rows.30.1\": \"2\"\n}</code></pre>","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-169","dist":{"shasum":"479875a7aa1888cf1474c1ca3d6f4977d9e0bead","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-169.tgz","integrity":"sha512-Iopw7AHwSHhBpeBm56PvuT2QWpPO9mZaYtuLYetDj1UhaYjAjt0K5BIs5VofLxqM0gUjBTjlo9eD4qToQehE5Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCzMsZ6X73K0VDd0M7rIkznnh910oZhq/mxk49otQJBBAIhAIsuutm+zRrd2VEjvMlvMR1tmjFFAExCFAQR6CIDkZql"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-170":{"name":"yarnlang","version":"0.1.0-170","description":"An interpreted language for powerful data manipulation, inspired by neuron-style functions.","main":"yarn.js","scripts":{"test":"node test.js"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.21.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","escape-html":"~1.0.0","github":"~0.1.10","pingdom":"~0.6.2","crc":"~0.2.0","express":"~3.3.4","gm":"~1.10.0","twit":"~1.1.8","tumblr.js":"0.0.4","instagram-node":"~0.1.13","newrelicapi":"0.0.3","eventsource":"0.0.7","node-trello":"~0.1.4","googleapis":"~0.4.3","yelp":"~0.1.1","redis":"~0.8.4","timeago":"~0.1.0","googleanalytics":"~0.3.3","node-google-api":"~0.2.0","timespan":"~2.3.0"},"readme":"<div align=\"center\">\n\t<h3><i>yarn</i></h3>\n\t<i>the more you know - the less you need</i>\n</div>\n\n<div align=\"center\"><h3><i>samples</i></h3><i>canon (not working)</i></div>\n\n<pre lang=\"yarn\"><code>// set the name 'query' to the value 'yarnlang'\nset [query] [yarnlang],\n\n// search twitter for the value of 'query', store the results in 'twitter results'\nsearch twitter [twitter results] (query),\n\n// search facebook for the value of 'query', store the results in 'facebook results'\nsearch facebook [facebook results] (query),\n\n// search tumblr for the value of 'query', store the results in 'tumblr results'\nsearch tumblr [tumblr results] (query),\n\n// combine all three results, store the combined in 'combined results'\ncat [combined results] [twitter results] [facebook results] [tumblr results],\n\n// delete any results that don't have an image\nfilter [combined results] [!] (a.tweet.image) (a.facebooked.image) (a.tumbled.image),\n\n// sort the combined results by their respectively named creation dates\nsort [combined results] (a.tweeted_at) (a.facebooked_at) (a.tumbled_at) [>] (b.tweeted_at) (b.facebooked_at) (b.tumbled_at),\n\n// loop though all remaining results\nfor [result] [combined results],\n\n\t// loop through each tag in result\n\tfor [tag] [result.tags],\n\n\t\t// search google for tag\n\t\tget [tag.google search] [https://www.google.com/search?q=] + (tag),\n\n\t\t// match the page result count\n\t\tmatch (tag.about results matches) [About .+ results] (tag.google search.body),\n\n\t\t// read the page count\n\t\tfloat (tag.page count) (tag.about results matches.0),\n\n\tend for,\n\n\t// average the tag's page counts\n\taverage [result.average tag page count] (result.tags.*.page count),\n\nend for,\n\n// sort remaining results by their average tag page count\nsort [combined results] (a.average tag page count) [>] (b.average tag page count)\n</code></pre>\n\n<div align=\"center\"><i>google analytics (working)</i></div>\n\n<pre lang=\"yarn\"><code>// get accounts for login\ngoogle analytics accounts [accounts], \n\n// get web properties from first account\ngoogle analytics web properties [web properties] (accounts.items.0.id), \n\n// get profiles from account + web property combo\ngoogle analytics profiles [profiles] (accounts.items.0.id) (web properties.items.0.id),\n\n// generate a monthly report of visits with single day granularity\ngoogle analytics reporting [report] (profiles.items.0.id) [Sept 23 2013 11:31:07 GMT-0400 (EDT)] [Oct 23 2013 11:31:07 GMT-0400 (EDT)] [ga:visits] [ga:date]\n</code></pre>\n\n<div align=\"center\"><i>google analytics output</i></div>\n\n<pre lang=\"json\"><code>{\n \"accounts.kind\": \"analytics#accounts\",\n \"accounts.username\": \"adrnsly@dashbook.co\",\n \"accounts.totalResults\": 1,\n \"accounts.startIndex\": 1,\n \"accounts.itemsPerPage\": 1000,\n \"accounts.items.0.id\": \"38829403\",\n \"accounts.items.0.kind\": \"analytics#account\",\n \"accounts.items.0.selfLink\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403\",\n \"accounts.items.0.name\": \"Dashbook\",\n \"accounts.items.0.permissions.effective.0\": \"COLLABORATE\",\n \"accounts.items.0.permissions.effective.1\": \"EDIT\",\n \"accounts.items.0.permissions.effective.2\": \"MANAGE_USERS\",\n \"accounts.items.0.permissions.effective.3\": \"READ_AND_ANALYZE\",\n \"accounts.items.0.created\": \"2013-02-26T21:27:58.713Z\",\n \"accounts.items.0.updated\": \"2013-05-14T01:24:14.503Z\",\n \"accounts.items.0.childLink.type\": \"analytics#webproperties\",\n \"accounts.items.0.childLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties\",\n \"web properties.kind\": \"analytics#webproperties\",\n \"web properties.username\": \"adrnsly@dashbook.co\",\n \"web properties.totalResults\": 1,\n \"web properties.startIndex\": 1,\n \"web properties.itemsPerPage\": 1000,\n \"web properties.items.0.id\": \"UA-38829403-1\",\n \"web properties.items.0.kind\": \"analytics#webproperty\",\n \"web properties.items.0.selfLink\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1\",\n \"web properties.items.0.accountId\": \"38829403\",\n \"web properties.items.0.internalWebPropertyId\": \"67547626\",\n \"web properties.items.0.name\": \"Dashbook\",\n \"web properties.items.0.websiteUrl\": \"http://dashbookapp.com\",\n \"web properties.items.0.level\": \"STANDARD\",\n \"web properties.items.0.profileCount\": 1,\n \"web properties.items.0.industryVertical\": \"COMPUTERS_AND_ELECTRONICS\",\n \"web properties.items.0.defaultProfileId\": \"69466967\",\n \"web properties.items.0.permissions.effective.0\": \"COLLABORATE\",\n \"web properties.items.0.permissions.effective.1\": \"EDIT\",\n \"web properties.items.0.permissions.effective.2\": \"MANAGE_USERS\",\n \"web properties.items.0.permissions.effective.3\": \"READ_AND_ANALYZE\",\n \"web properties.items.0.created\": \"2013-02-26T21:27:58.713Z\",\n \"web properties.items.0.updated\": \"2013-08-21T15:44:29.534Z\",\n \"web properties.items.0.parentLink.type\": \"analytics#account\",\n \"web properties.items.0.parentLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403\",\n \"web properties.items.0.childLink.type\": \"analytics#profiles\",\n \"web properties.items.0.childLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1/profiles\",\n \"profiles.kind\": \"analytics#profiles\",\n \"profiles.username\": \"adrnsly@dashbook.co\",\n \"profiles.totalResults\": 1,\n \"profiles.startIndex\": 1,\n \"profiles.itemsPerPage\": 1000,\n \"profiles.items.0.id\": \"69466967\",\n \"profiles.items.0.kind\": \"analytics#profile\",\n \"profiles.items.0.selfLink\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1/profiles/69466967\",\n \"profiles.items.0.accountId\": \"38829403\",\n \"profiles.items.0.webPropertyId\": \"UA-38829403-1\",\n \"profiles.items.0.internalWebPropertyId\": \"67547626\",\n \"profiles.items.0.name\": \"Dashbook\",\n \"profiles.items.0.currency\": \"USD\",\n \"profiles.items.0.timezone\": \"America/Montreal\",\n \"profiles.items.0.websiteUrl\": \"http://dashbookapp.com\",\n \"profiles.items.0.type\": \"WEB\",\n \"profiles.items.0.permissions.effective.0\": \"COLLABORATE\",\n \"profiles.items.0.permissions.effective.1\": \"EDIT\",\n \"profiles.items.0.permissions.effective.2\": \"MANAGE_USERS\",\n \"profiles.items.0.permissions.effective.3\": \"READ_AND_ANALYZE\",\n \"profiles.items.0.created\": \"2013-02-26T21:27:58.713Z\",\n \"profiles.items.0.updated\": \"2013-09-27T16:59:32.722Z\",\n \"profiles.items.0.eCommerceTracking\": false,\n \"profiles.items.0.parentLink.type\": \"analytics#webproperty\",\n \"profiles.items.0.parentLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1\",\n \"profiles.items.0.childLink.type\": \"analytics#goals\",\n \"profiles.items.0.childLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1/profiles/69466967/goals\",\n \"report.kind\": \"analytics#gaData\",\n \"report.id\": \"https://www.googleapis.com/analytics/v3/data/ga?ids=ga:69466967&dimensions=ga:date&metrics=ga:visits&start-date=2013-09-23&end-date=2013-10-23\",\n \"report.query.start-date\": \"2013-09-23\",\n \"report.query.end-date\": \"2013-10-23\",\n \"report.query.ids\": \"ga:69466967\",\n \"report.query.dimensions\": \"ga:date\",\n \"report.query.metrics.0\": \"ga:visits\",\n \"report.query.start-index\": 1,\n \"report.query.max-results\": 1000,\n \"report.itemsPerPage\": 1000,\n \"report.totalResults\": 31,\n \"report.selfLink\": \"https://www.googleapis.com/analytics/v3/data/ga?ids=ga:69466967&dimensions=ga:date&metrics=ga:visits&start-date=2013-09-23&end-date=2013-10-23\",\n \"report.profileInfo.profileId\": \"69466967\",\n \"report.profileInfo.accountId\": \"38829403\",\n \"report.profileInfo.webPropertyId\": \"UA-38829403-1\",\n \"report.profileInfo.internalWebPropertyId\": \"67547626\",\n \"report.profileInfo.profileName\": \"Dashbook\",\n \"report.profileInfo.tableId\": \"ga:69466967\",\n \"report.containsSampledData\": false,\n \"report.columnHeaders.0.name\": \"ga:date\",\n \"report.columnHeaders.0.columnType\": \"DIMENSION\",\n \"report.columnHeaders.0.dataType\": \"STRING\",\n \"report.columnHeaders.1.name\": \"ga:visits\",\n \"report.columnHeaders.1.columnType\": \"METRIC\",\n \"report.columnHeaders.1.dataType\": \"INTEGER\",\n \"report.totalsForAllResults.ga:visits\": \"634\",\n \"report.rows.0.0\": \"20130923\",\n \"report.rows.0.1\": \"15\",\n \"report.rows.1.0\": \"20130924\",\n \"report.rows.1.1\": \"6\",\n \"report.rows.2.0\": \"20130925\",\n \"report.rows.2.1\": \"38\",\n \"report.rows.3.0\": \"20130926\",\n \"report.rows.3.1\": \"43\",\n \"report.rows.4.0\": \"20130927\",\n \"report.rows.4.1\": \"18\",\n \"report.rows.5.0\": \"20130928\",\n \"report.rows.5.1\": \"2\",\n \"report.rows.6.0\": \"20130929\",\n \"report.rows.6.1\": \"3\",\n \"report.rows.7.0\": \"20130930\",\n \"report.rows.7.1\": \"14\",\n \"report.rows.8.0\": \"20131001\",\n \"report.rows.8.1\": \"14\",\n \"report.rows.9.0\": \"20131002\",\n \"report.rows.9.1\": \"43\",\n \"report.rows.10.0\": \"20131003\",\n \"report.rows.10.1\": \"42\",\n \"report.rows.11.0\": \"20131004\",\n \"report.rows.11.1\": \"24\",\n \"report.rows.12.0\": \"20131005\",\n \"report.rows.12.1\": \"11\",\n \"report.rows.13.0\": \"20131006\",\n \"report.rows.13.1\": \"13\",\n \"report.rows.14.0\": \"20131007\",\n \"report.rows.14.1\": \"46\",\n \"report.rows.15.0\": \"20131008\",\n \"report.rows.15.1\": \"36\",\n \"report.rows.16.0\": \"20131009\",\n \"report.rows.16.1\": \"24\",\n \"report.rows.17.0\": \"20131010\",\n \"report.rows.17.1\": \"19\",\n \"report.rows.18.0\": \"20131011\",\n \"report.rows.18.1\": \"12\",\n \"report.rows.19.0\": \"20131012\",\n \"report.rows.19.1\": \"8\",\n \"report.rows.20.0\": \"20131013\",\n \"report.rows.20.1\": \"9\",\n \"report.rows.21.0\": \"20131014\",\n \"report.rows.21.1\": \"18\",\n \"report.rows.22.0\": \"20131015\",\n \"report.rows.22.1\": \"93\",\n \"report.rows.23.0\": \"20131016\",\n \"report.rows.23.1\": \"21\",\n \"report.rows.24.0\": \"20131017\",\n \"report.rows.24.1\": \"18\",\n \"report.rows.25.0\": \"20131018\",\n \"report.rows.25.1\": \"11\",\n \"report.rows.26.0\": \"20131019\",\n \"report.rows.26.1\": \"4\",\n \"report.rows.27.0\": \"20131020\",\n \"report.rows.27.1\": \"2\",\n \"report.rows.28.0\": \"20131021\",\n \"report.rows.28.1\": \"18\",\n \"report.rows.29.0\": \"20131022\",\n \"report.rows.29.1\": \"7\",\n \"report.rows.30.0\": \"20131023\",\n \"report.rows.30.1\": \"2\"\n}</code></pre>","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-170","dist":{"shasum":"c698f29a06716bd5a2bee824a934d4f53f109eed","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-170.tgz","integrity":"sha512-OmGI+IbB6g7aC9YTXbSSLRqXd50g13K4zDVbfUZKxxRpD644y0CV3NjISI2IXoMLroL4r5FA7uKvWrIrkMMtZw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFduU9Y9u/FUevswsHUP2mxUYWSTC6wGp6HRIqNMJHbBAiAJm0FyWgQ62Manto66mISqhqqNDbWRKfApSpk7ZNpl/g=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-171":{"name":"yarnlang","version":"0.1.0-171","description":"the more you know, the less you need","main":"yarn.js","repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","yrn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.27.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","crc":"~0.2.1","timeago":"~0.1.0","timespan":"~2.3.0","escape-html":"~1.0.0","eventsource":"0.0.8","github":"~0.1.12","googleapis":"~0.4.5","instagram-node":"~0.1.13","pingdom":"~0.6.2","node-trello":"~0.1.4","tumblr.js":"0.0.4","twit":"~1.1.11","yelp":"~0.1.1"},"readme":"<div align=\"center\">\n\t<h3><i>yarn</i></h3>\n\t<i>the more you know - the less you need</i>\n</div>\n\n<div align=\"center\"><h3><i>samples</i></h3><i>canon (not working)</i></div>\n\n<pre lang=\"yarn\"><code>// set the name 'query' to the value 'yarnlang'\nset [query] [yarnlang],\n\n// search twitter for the value of 'query', store the results in 'twitter results'\nsearch twitter [twitter results] (query),\n\n// search facebook for the value of 'query', store the results in 'facebook results'\nsearch facebook [facebook results] (query),\n\n// search tumblr for the value of 'query', store the results in 'tumblr results'\nsearch tumblr [tumblr results] (query),\n\n// combine all three results, store the combined in 'combined results'\ncat [combined results] [twitter results] [facebook results] [tumblr results],\n\n// delete any results that don't have an image\nfilter [combined results] [!] (a.tweet.image) (a.facebooked.image) (a.tumbled.image),\n\n// sort the combined results by their respectively named creation dates\nsort [combined results] (a.tweeted_at) (a.facebooked_at) (a.tumbled_at) [>] (b.tweeted_at) (b.facebooked_at) (b.tumbled_at),\n\n// loop though all remaining results\nfor [result] [combined results],\n\n\t// loop through each tag in result\n\tfor [tag] [result.tags],\n\n\t\t// search google for tag\n\t\tget [tag.google search] [https://www.google.com/search?q=] + (tag),\n\n\t\t// match the page result count\n\t\tmatch (tag.about results matches) [About .+ results] (tag.google search.body),\n\n\t\t// read the page count\n\t\tfloat (tag.page count) (tag.about results matches.0),\n\n\tend for,\n\n\t// average the tag's page counts\n\taverage [result.average tag page count] (result.tags.*.page count),\n\nend for,\n\n// sort remaining results by their average tag page count\nsort [combined results] (a.average tag page count) [>] (b.average tag page count)\n</code></pre>\n\n<div align=\"center\"><i>google analytics (working)</i></div>\n\n<pre lang=\"yarn\"><code>// get accounts for login\ngoogle analytics accounts [accounts], \n\n// get web properties from first account\ngoogle analytics web properties [web properties] (accounts.items.0.id), \n\n// get profiles from account + web property combo\ngoogle analytics profiles [profiles] (accounts.items.0.id) (web properties.items.0.id),\n\n// generate a monthly report of visits with single day granularity\ngoogle analytics reporting [report] (profiles.items.0.id) [Sept 23 2013 11:31:07 GMT-0400 (EDT)] [Oct 23 2013 11:31:07 GMT-0400 (EDT)] [ga:visits] [ga:date]\n</code></pre>\n\n<div align=\"center\"><i>google analytics output</i></div>\n\n<pre lang=\"json\"><code>{\n \"accounts.kind\": \"analytics#accounts\",\n \"accounts.username\": \"adrnsly@dashbook.co\",\n \"accounts.totalResults\": 1,\n \"accounts.startIndex\": 1,\n \"accounts.itemsPerPage\": 1000,\n \"accounts.items.0.id\": \"38829403\",\n \"accounts.items.0.kind\": \"analytics#account\",\n \"accounts.items.0.selfLink\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403\",\n \"accounts.items.0.name\": \"Dashbook\",\n \"accounts.items.0.permissions.effective.0\": \"COLLABORATE\",\n \"accounts.items.0.permissions.effective.1\": \"EDIT\",\n \"accounts.items.0.permissions.effective.2\": \"MANAGE_USERS\",\n \"accounts.items.0.permissions.effective.3\": \"READ_AND_ANALYZE\",\n \"accounts.items.0.created\": \"2013-02-26T21:27:58.713Z\",\n \"accounts.items.0.updated\": \"2013-05-14T01:24:14.503Z\",\n \"accounts.items.0.childLink.type\": \"analytics#webproperties\",\n \"accounts.items.0.childLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties\",\n \"web properties.kind\": \"analytics#webproperties\",\n \"web properties.username\": \"adrnsly@dashbook.co\",\n \"web properties.totalResults\": 1,\n \"web properties.startIndex\": 1,\n \"web properties.itemsPerPage\": 1000,\n \"web properties.items.0.id\": \"UA-38829403-1\",\n \"web properties.items.0.kind\": \"analytics#webproperty\",\n \"web properties.items.0.selfLink\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1\",\n \"web properties.items.0.accountId\": \"38829403\",\n \"web properties.items.0.internalWebPropertyId\": \"67547626\",\n \"web properties.items.0.name\": \"Dashbook\",\n \"web properties.items.0.websiteUrl\": \"http://dashbookapp.com\",\n \"web properties.items.0.level\": \"STANDARD\",\n \"web properties.items.0.profileCount\": 1,\n \"web properties.items.0.industryVertical\": \"COMPUTERS_AND_ELECTRONICS\",\n \"web properties.items.0.defaultProfileId\": \"69466967\",\n \"web properties.items.0.permissions.effective.0\": \"COLLABORATE\",\n \"web properties.items.0.permissions.effective.1\": \"EDIT\",\n \"web properties.items.0.permissions.effective.2\": \"MANAGE_USERS\",\n \"web properties.items.0.permissions.effective.3\": \"READ_AND_ANALYZE\",\n \"web properties.items.0.created\": \"2013-02-26T21:27:58.713Z\",\n \"web properties.items.0.updated\": \"2013-08-21T15:44:29.534Z\",\n \"web properties.items.0.parentLink.type\": \"analytics#account\",\n \"web properties.items.0.parentLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403\",\n \"web properties.items.0.childLink.type\": \"analytics#profiles\",\n \"web properties.items.0.childLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1/profiles\",\n \"profiles.kind\": \"analytics#profiles\",\n \"profiles.username\": \"adrnsly@dashbook.co\",\n \"profiles.totalResults\": 1,\n \"profiles.startIndex\": 1,\n \"profiles.itemsPerPage\": 1000,\n \"profiles.items.0.id\": \"69466967\",\n \"profiles.items.0.kind\": \"analytics#profile\",\n \"profiles.items.0.selfLink\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1/profiles/69466967\",\n \"profiles.items.0.accountId\": \"38829403\",\n \"profiles.items.0.webPropertyId\": \"UA-38829403-1\",\n \"profiles.items.0.internalWebPropertyId\": \"67547626\",\n \"profiles.items.0.name\": \"Dashbook\",\n \"profiles.items.0.currency\": \"USD\",\n \"profiles.items.0.timezone\": \"America/Montreal\",\n \"profiles.items.0.websiteUrl\": \"http://dashbookapp.com\",\n \"profiles.items.0.type\": \"WEB\",\n \"profiles.items.0.permissions.effective.0\": \"COLLABORATE\",\n \"profiles.items.0.permissions.effective.1\": \"EDIT\",\n \"profiles.items.0.permissions.effective.2\": \"MANAGE_USERS\",\n \"profiles.items.0.permissions.effective.3\": \"READ_AND_ANALYZE\",\n \"profiles.items.0.created\": \"2013-02-26T21:27:58.713Z\",\n \"profiles.items.0.updated\": \"2013-09-27T16:59:32.722Z\",\n \"profiles.items.0.eCommerceTracking\": false,\n \"profiles.items.0.parentLink.type\": \"analytics#webproperty\",\n \"profiles.items.0.parentLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1\",\n \"profiles.items.0.childLink.type\": \"analytics#goals\",\n \"profiles.items.0.childLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1/profiles/69466967/goals\",\n \"report.kind\": \"analytics#gaData\",\n \"report.id\": \"https://www.googleapis.com/analytics/v3/data/ga?ids=ga:69466967&dimensions=ga:date&metrics=ga:visits&start-date=2013-09-23&end-date=2013-10-23\",\n \"report.query.start-date\": \"2013-09-23\",\n \"report.query.end-date\": \"2013-10-23\",\n \"report.query.ids\": \"ga:69466967\",\n \"report.query.dimensions\": \"ga:date\",\n \"report.query.metrics.0\": \"ga:visits\",\n \"report.query.start-index\": 1,\n \"report.query.max-results\": 1000,\n \"report.itemsPerPage\": 1000,\n \"report.totalResults\": 31,\n \"report.selfLink\": \"https://www.googleapis.com/analytics/v3/data/ga?ids=ga:69466967&dimensions=ga:date&metrics=ga:visits&start-date=2013-09-23&end-date=2013-10-23\",\n \"report.profileInfo.profileId\": \"69466967\",\n \"report.profileInfo.accountId\": \"38829403\",\n \"report.profileInfo.webPropertyId\": \"UA-38829403-1\",\n \"report.profileInfo.internalWebPropertyId\": \"67547626\",\n \"report.profileInfo.profileName\": \"Dashbook\",\n \"report.profileInfo.tableId\": \"ga:69466967\",\n \"report.containsSampledData\": false,\n \"report.columnHeaders.0.name\": \"ga:date\",\n \"report.columnHeaders.0.columnType\": \"DIMENSION\",\n \"report.columnHeaders.0.dataType\": \"STRING\",\n \"report.columnHeaders.1.name\": \"ga:visits\",\n \"report.columnHeaders.1.columnType\": \"METRIC\",\n \"report.columnHeaders.1.dataType\": \"INTEGER\",\n \"report.totalsForAllResults.ga:visits\": \"634\",\n \"report.rows.0.0\": \"20130923\",\n \"report.rows.0.1\": \"15\",\n \"report.rows.1.0\": \"20130924\",\n \"report.rows.1.1\": \"6\",\n \"report.rows.2.0\": \"20130925\",\n \"report.rows.2.1\": \"38\",\n \"report.rows.3.0\": \"20130926\",\n \"report.rows.3.1\": \"43\",\n \"report.rows.4.0\": \"20130927\",\n \"report.rows.4.1\": \"18\",\n \"report.rows.5.0\": \"20130928\",\n \"report.rows.5.1\": \"2\",\n \"report.rows.6.0\": \"20130929\",\n \"report.rows.6.1\": \"3\",\n \"report.rows.7.0\": \"20130930\",\n \"report.rows.7.1\": \"14\",\n \"report.rows.8.0\": \"20131001\",\n \"report.rows.8.1\": \"14\",\n \"report.rows.9.0\": \"20131002\",\n \"report.rows.9.1\": \"43\",\n \"report.rows.10.0\": \"20131003\",\n \"report.rows.10.1\": \"42\",\n \"report.rows.11.0\": \"20131004\",\n \"report.rows.11.1\": \"24\",\n \"report.rows.12.0\": \"20131005\",\n \"report.rows.12.1\": \"11\",\n \"report.rows.13.0\": \"20131006\",\n \"report.rows.13.1\": \"13\",\n \"report.rows.14.0\": \"20131007\",\n \"report.rows.14.1\": \"46\",\n \"report.rows.15.0\": \"20131008\",\n \"report.rows.15.1\": \"36\",\n \"report.rows.16.0\": \"20131009\",\n \"report.rows.16.1\": \"24\",\n \"report.rows.17.0\": \"20131010\",\n \"report.rows.17.1\": \"19\",\n \"report.rows.18.0\": \"20131011\",\n \"report.rows.18.1\": \"12\",\n \"report.rows.19.0\": \"20131012\",\n \"report.rows.19.1\": \"8\",\n \"report.rows.20.0\": \"20131013\",\n \"report.rows.20.1\": \"9\",\n \"report.rows.21.0\": \"20131014\",\n \"report.rows.21.1\": \"18\",\n \"report.rows.22.0\": \"20131015\",\n \"report.rows.22.1\": \"93\",\n \"report.rows.23.0\": \"20131016\",\n \"report.rows.23.1\": \"21\",\n \"report.rows.24.0\": \"20131017\",\n \"report.rows.24.1\": \"18\",\n \"report.rows.25.0\": \"20131018\",\n \"report.rows.25.1\": \"11\",\n \"report.rows.26.0\": \"20131019\",\n \"report.rows.26.1\": \"4\",\n \"report.rows.27.0\": \"20131020\",\n \"report.rows.27.1\": \"2\",\n \"report.rows.28.0\": \"20131021\",\n \"report.rows.28.1\": \"18\",\n \"report.rows.29.0\": \"20131022\",\n \"report.rows.29.1\": \"7\",\n \"report.rows.30.0\": \"20131023\",\n \"report.rows.30.1\": \"2\"\n}</code></pre>","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-171","dist":{"shasum":"62476cfb687810e202a4eaefcecd075d17295e2b","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-171.tgz","integrity":"sha512-ZaTsd4SwZNQKpLzceY+JXyCA4aOfWEQmnhVEhD1R5vd4PaNeRYivmvROdFcKfts/yi9Qk93oxGR1R7DPpOOWWw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGBwezAR7U/g/DsrdH0xiwFhGeXON9P0xCzbPaW5FvZ+AiEA0n0dH/NvKZIiOwU035Kw33bPAzgFJQ6bu1PQ95eTPXs="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-172":{"name":"yarnlang","version":"0.1.0-172","description":"the more you know, the less you need","main":"yarn.js","repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","yrn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.27.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","crc":"~0.2.1","timeago":"~0.1.0","timespan":"~2.3.0","escape-html":"~1.0.0","eventsource":"0.0.8","github":"~0.1.12","googleapis":"~0.4.5","instagram-node":"~0.1.13","pingdom":"~0.6.2","node-trello":"~0.1.4","tumblr.js":"0.0.4","twit":"~1.1.11","yelp":"~0.1.1"},"readme":"<div align=\"center\">\n\t<h3><i>yarn</i></h3>\n\t<i>the more you know - the less you need</i>\n</div>\n\n<div align=\"center\"><h3><i>samples</i></h3><i>canon (not working)</i></div>\n\n<pre lang=\"yarn\"><code>// set the name 'query' to the value 'yarnlang'\nset [query] [yarnlang],\n\n// search twitter for the value of 'query', store the results in 'twitter results'\nsearch twitter [twitter results] (query),\n\n// search facebook for the value of 'query', store the results in 'facebook results'\nsearch facebook [facebook results] (query),\n\n// search tumblr for the value of 'query', store the results in 'tumblr results'\nsearch tumblr [tumblr results] (query),\n\n// combine all three results, store the combined in 'combined results'\ncat [combined results] [twitter results] [facebook results] [tumblr results],\n\n// delete any results that don't have an image\nfilter [combined results] [!] (a.tweet.image) (a.facebooked.image) (a.tumbled.image),\n\n// sort the combined results by their respectively named creation dates\nsort [combined results] (a.tweeted_at) (a.facebooked_at) (a.tumbled_at) [>] (b.tweeted_at) (b.facebooked_at) (b.tumbled_at),\n\n// loop though all remaining results\nfor [result] [combined results],\n\n\t// loop through each tag in result\n\tfor [tag] [result.tags],\n\n\t\t// search google for tag\n\t\tget [tag.google search] [https://www.google.com/search?q=] + (tag),\n\n\t\t// match the page result count\n\t\tmatch (tag.about results matches) [About .+ results] (tag.google search.body),\n\n\t\t// read the page count\n\t\tfloat (tag.page count) (tag.about results matches.0),\n\n\tend for,\n\n\t// average the tag's page counts\n\taverage [result.average tag page count] (result.tags.*.page count),\n\nend for,\n\n// sort remaining results by their average tag page count\nsort [combined results] (a.average tag page count) [>] (b.average tag page count)\n</code></pre>\n\n<div align=\"center\"><i>google analytics (working)</i></div>\n\n<pre lang=\"yarn\"><code>// get accounts for login\ngoogle analytics accounts [accounts], \n\n// get web properties from first account\ngoogle analytics web properties [web properties] (accounts.items.0.id), \n\n// get profiles from account + web property combo\ngoogle analytics profiles [profiles] (accounts.items.0.id) (web properties.items.0.id),\n\n// generate a monthly report of visits with single day granularity\ngoogle analytics reporting [report] (profiles.items.0.id) [Sept 23 2013 11:31:07 GMT-0400 (EDT)] [Oct 23 2013 11:31:07 GMT-0400 (EDT)] [ga:visits] [ga:date]\n</code></pre>\n\n<div align=\"center\"><i>google analytics output</i></div>\n\n<pre lang=\"json\"><code>{\n \"accounts.kind\": \"analytics#accounts\",\n \"accounts.username\": \"adrnsly@dashbook.co\",\n \"accounts.totalResults\": 1,\n \"accounts.startIndex\": 1,\n \"accounts.itemsPerPage\": 1000,\n \"accounts.items.0.id\": \"38829403\",\n \"accounts.items.0.kind\": \"analytics#account\",\n \"accounts.items.0.selfLink\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403\",\n \"accounts.items.0.name\": \"Dashbook\",\n \"accounts.items.0.permissions.effective.0\": \"COLLABORATE\",\n \"accounts.items.0.permissions.effective.1\": \"EDIT\",\n \"accounts.items.0.permissions.effective.2\": \"MANAGE_USERS\",\n \"accounts.items.0.permissions.effective.3\": \"READ_AND_ANALYZE\",\n \"accounts.items.0.created\": \"2013-02-26T21:27:58.713Z\",\n \"accounts.items.0.updated\": \"2013-05-14T01:24:14.503Z\",\n \"accounts.items.0.childLink.type\": \"analytics#webproperties\",\n \"accounts.items.0.childLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties\",\n \"web properties.kind\": \"analytics#webproperties\",\n \"web properties.username\": \"adrnsly@dashbook.co\",\n \"web properties.totalResults\": 1,\n \"web properties.startIndex\": 1,\n \"web properties.itemsPerPage\": 1000,\n \"web properties.items.0.id\": \"UA-38829403-1\",\n \"web properties.items.0.kind\": \"analytics#webproperty\",\n \"web properties.items.0.selfLink\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1\",\n \"web properties.items.0.accountId\": \"38829403\",\n \"web properties.items.0.internalWebPropertyId\": \"67547626\",\n \"web properties.items.0.name\": \"Dashbook\",\n \"web properties.items.0.websiteUrl\": \"http://dashbookapp.com\",\n \"web properties.items.0.level\": \"STANDARD\",\n \"web properties.items.0.profileCount\": 1,\n \"web properties.items.0.industryVertical\": \"COMPUTERS_AND_ELECTRONICS\",\n \"web properties.items.0.defaultProfileId\": \"69466967\",\n \"web properties.items.0.permissions.effective.0\": \"COLLABORATE\",\n \"web properties.items.0.permissions.effective.1\": \"EDIT\",\n \"web properties.items.0.permissions.effective.2\": \"MANAGE_USERS\",\n \"web properties.items.0.permissions.effective.3\": \"READ_AND_ANALYZE\",\n \"web properties.items.0.created\": \"2013-02-26T21:27:58.713Z\",\n \"web properties.items.0.updated\": \"2013-08-21T15:44:29.534Z\",\n \"web properties.items.0.parentLink.type\": \"analytics#account\",\n \"web properties.items.0.parentLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403\",\n \"web properties.items.0.childLink.type\": \"analytics#profiles\",\n \"web properties.items.0.childLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1/profiles\",\n \"profiles.kind\": \"analytics#profiles\",\n \"profiles.username\": \"adrnsly@dashbook.co\",\n \"profiles.totalResults\": 1,\n \"profiles.startIndex\": 1,\n \"profiles.itemsPerPage\": 1000,\n \"profiles.items.0.id\": \"69466967\",\n \"profiles.items.0.kind\": \"analytics#profile\",\n \"profiles.items.0.selfLink\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1/profiles/69466967\",\n \"profiles.items.0.accountId\": \"38829403\",\n \"profiles.items.0.webPropertyId\": \"UA-38829403-1\",\n \"profiles.items.0.internalWebPropertyId\": \"67547626\",\n \"profiles.items.0.name\": \"Dashbook\",\n \"profiles.items.0.currency\": \"USD\",\n \"profiles.items.0.timezone\": \"America/Montreal\",\n \"profiles.items.0.websiteUrl\": \"http://dashbookapp.com\",\n \"profiles.items.0.type\": \"WEB\",\n \"profiles.items.0.permissions.effective.0\": \"COLLABORATE\",\n \"profiles.items.0.permissions.effective.1\": \"EDIT\",\n \"profiles.items.0.permissions.effective.2\": \"MANAGE_USERS\",\n \"profiles.items.0.permissions.effective.3\": \"READ_AND_ANALYZE\",\n \"profiles.items.0.created\": \"2013-02-26T21:27:58.713Z\",\n \"profiles.items.0.updated\": \"2013-09-27T16:59:32.722Z\",\n \"profiles.items.0.eCommerceTracking\": false,\n \"profiles.items.0.parentLink.type\": \"analytics#webproperty\",\n \"profiles.items.0.parentLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1\",\n \"profiles.items.0.childLink.type\": \"analytics#goals\",\n \"profiles.items.0.childLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1/profiles/69466967/goals\",\n \"report.kind\": \"analytics#gaData\",\n \"report.id\": \"https://www.googleapis.com/analytics/v3/data/ga?ids=ga:69466967&dimensions=ga:date&metrics=ga:visits&start-date=2013-09-23&end-date=2013-10-23\",\n \"report.query.start-date\": \"2013-09-23\",\n \"report.query.end-date\": \"2013-10-23\",\n \"report.query.ids\": \"ga:69466967\",\n \"report.query.dimensions\": \"ga:date\",\n \"report.query.metrics.0\": \"ga:visits\",\n \"report.query.start-index\": 1,\n \"report.query.max-results\": 1000,\n \"report.itemsPerPage\": 1000,\n \"report.totalResults\": 31,\n \"report.selfLink\": \"https://www.googleapis.com/analytics/v3/data/ga?ids=ga:69466967&dimensions=ga:date&metrics=ga:visits&start-date=2013-09-23&end-date=2013-10-23\",\n \"report.profileInfo.profileId\": \"69466967\",\n \"report.profileInfo.accountId\": \"38829403\",\n \"report.profileInfo.webPropertyId\": \"UA-38829403-1\",\n \"report.profileInfo.internalWebPropertyId\": \"67547626\",\n \"report.profileInfo.profileName\": \"Dashbook\",\n \"report.profileInfo.tableId\": \"ga:69466967\",\n \"report.containsSampledData\": false,\n \"report.columnHeaders.0.name\": \"ga:date\",\n \"report.columnHeaders.0.columnType\": \"DIMENSION\",\n \"report.columnHeaders.0.dataType\": \"STRING\",\n \"report.columnHeaders.1.name\": \"ga:visits\",\n \"report.columnHeaders.1.columnType\": \"METRIC\",\n \"report.columnHeaders.1.dataType\": \"INTEGER\",\n \"report.totalsForAllResults.ga:visits\": \"634\",\n \"report.rows.0.0\": \"20130923\",\n \"report.rows.0.1\": \"15\",\n \"report.rows.1.0\": \"20130924\",\n \"report.rows.1.1\": \"6\",\n \"report.rows.2.0\": \"20130925\",\n \"report.rows.2.1\": \"38\",\n \"report.rows.3.0\": \"20130926\",\n \"report.rows.3.1\": \"43\",\n \"report.rows.4.0\": \"20130927\",\n \"report.rows.4.1\": \"18\",\n \"report.rows.5.0\": \"20130928\",\n \"report.rows.5.1\": \"2\",\n \"report.rows.6.0\": \"20130929\",\n \"report.rows.6.1\": \"3\",\n \"report.rows.7.0\": \"20130930\",\n \"report.rows.7.1\": \"14\",\n \"report.rows.8.0\": \"20131001\",\n \"report.rows.8.1\": \"14\",\n \"report.rows.9.0\": \"20131002\",\n \"report.rows.9.1\": \"43\",\n \"report.rows.10.0\": \"20131003\",\n \"report.rows.10.1\": \"42\",\n \"report.rows.11.0\": \"20131004\",\n \"report.rows.11.1\": \"24\",\n \"report.rows.12.0\": \"20131005\",\n \"report.rows.12.1\": \"11\",\n \"report.rows.13.0\": \"20131006\",\n \"report.rows.13.1\": \"13\",\n \"report.rows.14.0\": \"20131007\",\n \"report.rows.14.1\": \"46\",\n \"report.rows.15.0\": \"20131008\",\n \"report.rows.15.1\": \"36\",\n \"report.rows.16.0\": \"20131009\",\n \"report.rows.16.1\": \"24\",\n \"report.rows.17.0\": \"20131010\",\n \"report.rows.17.1\": \"19\",\n \"report.rows.18.0\": \"20131011\",\n \"report.rows.18.1\": \"12\",\n \"report.rows.19.0\": \"20131012\",\n \"report.rows.19.1\": \"8\",\n \"report.rows.20.0\": \"20131013\",\n \"report.rows.20.1\": \"9\",\n \"report.rows.21.0\": \"20131014\",\n \"report.rows.21.1\": \"18\",\n \"report.rows.22.0\": \"20131015\",\n \"report.rows.22.1\": \"93\",\n \"report.rows.23.0\": \"20131016\",\n \"report.rows.23.1\": \"21\",\n \"report.rows.24.0\": \"20131017\",\n \"report.rows.24.1\": \"18\",\n \"report.rows.25.0\": \"20131018\",\n \"report.rows.25.1\": \"11\",\n \"report.rows.26.0\": \"20131019\",\n \"report.rows.26.1\": \"4\",\n \"report.rows.27.0\": \"20131020\",\n \"report.rows.27.1\": \"2\",\n \"report.rows.28.0\": \"20131021\",\n \"report.rows.28.1\": \"18\",\n \"report.rows.29.0\": \"20131022\",\n \"report.rows.29.1\": \"7\",\n \"report.rows.30.0\": \"20131023\",\n \"report.rows.30.1\": \"2\"\n}</code></pre>","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-172","dist":{"shasum":"ba1c6125e7b2d0e5e29fc09a46413a3dfc813e52","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-172.tgz","integrity":"sha512-oQKFiIiWRN9f02oTpe+sPnV09f8dAHjuIK2f69nMPw0Wf1LWodfPwUZQyw7DFg/Lh6m6mpJOvlf1tvG4O04y1g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBxNRy/tZw6p5JbeCPxXE+RuFMmfM2ZRvo8dq2qkdG7pAiEApiMZwlrU+6oVtDIpgoH+Ej4xxCcJKWd4dvbK1X3KoNU="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-173":{"name":"yarnlang","version":"0.1.0-173","description":"the more you know, the less you need","main":"yarn.js","repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","yrn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.27.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","crc":"~0.2.1","timeago":"~0.1.0","timespan":"~2.3.0","escape-html":"~1.0.0","eventsource":"0.0.8","github":"~0.1.12","googleapis":"~0.4.5","instagram-node":"~0.1.13","pingdom":"~0.6.2","node-trello":"~0.1.4","tumblr.js":"0.0.4","twit":"~1.1.11","yelp":"~0.1.1"},"readme":"<div align=\"center\">\n\t<h3><i>yarn</i></h3>\n\t<i>the more you know - the less you need</i>\n</div>\n\n<div align=\"center\"><h3><i>samples</i></h3><i>canon (not working)</i></div>\n\n<pre lang=\"yarn\"><code>// set the name 'query' to the value 'yarnlang'\nset [query] [yarnlang],\n\n// search twitter for the value of 'query', store the results in 'twitter results'\nsearch twitter [twitter results] (query),\n\n// search facebook for the value of 'query', store the results in 'facebook results'\nsearch facebook [facebook results] (query),\n\n// search tumblr for the value of 'query', store the results in 'tumblr results'\nsearch tumblr [tumblr results] (query),\n\n// combine all three results, store the combined in 'combined results'\ncat [combined results] [twitter results] [facebook results] [tumblr results],\n\n// delete any results that don't have an image\nfilter [combined results] [!] (a.tweet.image) (a.facebooked.image) (a.tumbled.image),\n\n// sort the combined results by their respectively named creation dates\nsort [combined results] (a.tweeted_at) (a.facebooked_at) (a.tumbled_at) [>] (b.tweeted_at) (b.facebooked_at) (b.tumbled_at),\n\n// loop though all remaining results\nfor [result] [combined results],\n\n\t// loop through each tag in result\n\tfor [tag] [result.tags],\n\n\t\t// search google for tag\n\t\tget [tag.google search] [https://www.google.com/search?q=] + (tag),\n\n\t\t// match the page result count\n\t\tmatch (tag.about results matches) [About .+ results] (tag.google search.body),\n\n\t\t// read the page count\n\t\tfloat (tag.page count) (tag.about results matches.0),\n\n\tend for,\n\n\t// average the tag's page counts\n\taverage [result.average tag page count] (result.tags.*.page count),\n\nend for,\n\n// sort remaining results by their average tag page count\nsort [combined results] (a.average tag page count) [>] (b.average tag page count)\n</code></pre>\n\n<div align=\"center\"><i>google analytics (working)</i></div>\n\n<pre lang=\"yarn\"><code>// get accounts for login\ngoogle analytics accounts [accounts], \n\n// get web properties from first account\ngoogle analytics web properties [web properties] (accounts.items.0.id), \n\n// get profiles from account + web property combo\ngoogle analytics profiles [profiles] (accounts.items.0.id) (web properties.items.0.id),\n\n// generate a monthly report of visits with single day granularity\ngoogle analytics reporting [report] (profiles.items.0.id) [Sept 23 2013 11:31:07 GMT-0400 (EDT)] [Oct 23 2013 11:31:07 GMT-0400 (EDT)] [ga:visits] [ga:date]\n</code></pre>\n\n<div align=\"center\"><i>google analytics output</i></div>\n\n<pre lang=\"json\"><code>{\n \"accounts.kind\": \"analytics#accounts\",\n \"accounts.username\": \"adrnsly@dashbook.co\",\n \"accounts.totalResults\": 1,\n \"accounts.startIndex\": 1,\n \"accounts.itemsPerPage\": 1000,\n \"accounts.items.0.id\": \"38829403\",\n \"accounts.items.0.kind\": \"analytics#account\",\n \"accounts.items.0.selfLink\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403\",\n \"accounts.items.0.name\": \"Dashbook\",\n \"accounts.items.0.permissions.effective.0\": \"COLLABORATE\",\n \"accounts.items.0.permissions.effective.1\": \"EDIT\",\n \"accounts.items.0.permissions.effective.2\": \"MANAGE_USERS\",\n \"accounts.items.0.permissions.effective.3\": \"READ_AND_ANALYZE\",\n \"accounts.items.0.created\": \"2013-02-26T21:27:58.713Z\",\n \"accounts.items.0.updated\": \"2013-05-14T01:24:14.503Z\",\n \"accounts.items.0.childLink.type\": \"analytics#webproperties\",\n \"accounts.items.0.childLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties\",\n \"web properties.kind\": \"analytics#webproperties\",\n \"web properties.username\": \"adrnsly@dashbook.co\",\n \"web properties.totalResults\": 1,\n \"web properties.startIndex\": 1,\n \"web properties.itemsPerPage\": 1000,\n \"web properties.items.0.id\": \"UA-38829403-1\",\n \"web properties.items.0.kind\": \"analytics#webproperty\",\n \"web properties.items.0.selfLink\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1\",\n \"web properties.items.0.accountId\": \"38829403\",\n \"web properties.items.0.internalWebPropertyId\": \"67547626\",\n \"web properties.items.0.name\": \"Dashbook\",\n \"web properties.items.0.websiteUrl\": \"http://dashbookapp.com\",\n \"web properties.items.0.level\": \"STANDARD\",\n \"web properties.items.0.profileCount\": 1,\n \"web properties.items.0.industryVertical\": \"COMPUTERS_AND_ELECTRONICS\",\n \"web properties.items.0.defaultProfileId\": \"69466967\",\n \"web properties.items.0.permissions.effective.0\": \"COLLABORATE\",\n \"web properties.items.0.permissions.effective.1\": \"EDIT\",\n \"web properties.items.0.permissions.effective.2\": \"MANAGE_USERS\",\n \"web properties.items.0.permissions.effective.3\": \"READ_AND_ANALYZE\",\n \"web properties.items.0.created\": \"2013-02-26T21:27:58.713Z\",\n \"web properties.items.0.updated\": \"2013-08-21T15:44:29.534Z\",\n \"web properties.items.0.parentLink.type\": \"analytics#account\",\n \"web properties.items.0.parentLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403\",\n \"web properties.items.0.childLink.type\": \"analytics#profiles\",\n \"web properties.items.0.childLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1/profiles\",\n \"profiles.kind\": \"analytics#profiles\",\n \"profiles.username\": \"adrnsly@dashbook.co\",\n \"profiles.totalResults\": 1,\n \"profiles.startIndex\": 1,\n \"profiles.itemsPerPage\": 1000,\n \"profiles.items.0.id\": \"69466967\",\n \"profiles.items.0.kind\": \"analytics#profile\",\n \"profiles.items.0.selfLink\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1/profiles/69466967\",\n \"profiles.items.0.accountId\": \"38829403\",\n \"profiles.items.0.webPropertyId\": \"UA-38829403-1\",\n \"profiles.items.0.internalWebPropertyId\": \"67547626\",\n \"profiles.items.0.name\": \"Dashbook\",\n \"profiles.items.0.currency\": \"USD\",\n \"profiles.items.0.timezone\": \"America/Montreal\",\n \"profiles.items.0.websiteUrl\": \"http://dashbookapp.com\",\n \"profiles.items.0.type\": \"WEB\",\n \"profiles.items.0.permissions.effective.0\": \"COLLABORATE\",\n \"profiles.items.0.permissions.effective.1\": \"EDIT\",\n \"profiles.items.0.permissions.effective.2\": \"MANAGE_USERS\",\n \"profiles.items.0.permissions.effective.3\": \"READ_AND_ANALYZE\",\n \"profiles.items.0.created\": \"2013-02-26T21:27:58.713Z\",\n \"profiles.items.0.updated\": \"2013-09-27T16:59:32.722Z\",\n \"profiles.items.0.eCommerceTracking\": false,\n \"profiles.items.0.parentLink.type\": \"analytics#webproperty\",\n \"profiles.items.0.parentLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1\",\n \"profiles.items.0.childLink.type\": \"analytics#goals\",\n \"profiles.items.0.childLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1/profiles/69466967/goals\",\n \"report.kind\": \"analytics#gaData\",\n \"report.id\": \"https://www.googleapis.com/analytics/v3/data/ga?ids=ga:69466967&dimensions=ga:date&metrics=ga:visits&start-date=2013-09-23&end-date=2013-10-23\",\n \"report.query.start-date\": \"2013-09-23\",\n \"report.query.end-date\": \"2013-10-23\",\n \"report.query.ids\": \"ga:69466967\",\n \"report.query.dimensions\": \"ga:date\",\n \"report.query.metrics.0\": \"ga:visits\",\n \"report.query.start-index\": 1,\n \"report.query.max-results\": 1000,\n \"report.itemsPerPage\": 1000,\n \"report.totalResults\": 31,\n \"report.selfLink\": \"https://www.googleapis.com/analytics/v3/data/ga?ids=ga:69466967&dimensions=ga:date&metrics=ga:visits&start-date=2013-09-23&end-date=2013-10-23\",\n \"report.profileInfo.profileId\": \"69466967\",\n \"report.profileInfo.accountId\": \"38829403\",\n \"report.profileInfo.webPropertyId\": \"UA-38829403-1\",\n \"report.profileInfo.internalWebPropertyId\": \"67547626\",\n \"report.profileInfo.profileName\": \"Dashbook\",\n \"report.profileInfo.tableId\": \"ga:69466967\",\n \"report.containsSampledData\": false,\n \"report.columnHeaders.0.name\": \"ga:date\",\n \"report.columnHeaders.0.columnType\": \"DIMENSION\",\n \"report.columnHeaders.0.dataType\": \"STRING\",\n \"report.columnHeaders.1.name\": \"ga:visits\",\n \"report.columnHeaders.1.columnType\": \"METRIC\",\n \"report.columnHeaders.1.dataType\": \"INTEGER\",\n \"report.totalsForAllResults.ga:visits\": \"634\",\n \"report.rows.0.0\": \"20130923\",\n \"report.rows.0.1\": \"15\",\n \"report.rows.1.0\": \"20130924\",\n \"report.rows.1.1\": \"6\",\n \"report.rows.2.0\": \"20130925\",\n \"report.rows.2.1\": \"38\",\n \"report.rows.3.0\": \"20130926\",\n \"report.rows.3.1\": \"43\",\n \"report.rows.4.0\": \"20130927\",\n \"report.rows.4.1\": \"18\",\n \"report.rows.5.0\": \"20130928\",\n \"report.rows.5.1\": \"2\",\n \"report.rows.6.0\": \"20130929\",\n \"report.rows.6.1\": \"3\",\n \"report.rows.7.0\": \"20130930\",\n \"report.rows.7.1\": \"14\",\n \"report.rows.8.0\": \"20131001\",\n \"report.rows.8.1\": \"14\",\n \"report.rows.9.0\": \"20131002\",\n \"report.rows.9.1\": \"43\",\n \"report.rows.10.0\": \"20131003\",\n \"report.rows.10.1\": \"42\",\n \"report.rows.11.0\": \"20131004\",\n \"report.rows.11.1\": \"24\",\n \"report.rows.12.0\": \"20131005\",\n \"report.rows.12.1\": \"11\",\n \"report.rows.13.0\": \"20131006\",\n \"report.rows.13.1\": \"13\",\n \"report.rows.14.0\": \"20131007\",\n \"report.rows.14.1\": \"46\",\n \"report.rows.15.0\": \"20131008\",\n \"report.rows.15.1\": \"36\",\n \"report.rows.16.0\": \"20131009\",\n \"report.rows.16.1\": \"24\",\n \"report.rows.17.0\": \"20131010\",\n \"report.rows.17.1\": \"19\",\n \"report.rows.18.0\": \"20131011\",\n \"report.rows.18.1\": \"12\",\n \"report.rows.19.0\": \"20131012\",\n \"report.rows.19.1\": \"8\",\n \"report.rows.20.0\": \"20131013\",\n \"report.rows.20.1\": \"9\",\n \"report.rows.21.0\": \"20131014\",\n \"report.rows.21.1\": \"18\",\n \"report.rows.22.0\": \"20131015\",\n \"report.rows.22.1\": \"93\",\n \"report.rows.23.0\": \"20131016\",\n \"report.rows.23.1\": \"21\",\n \"report.rows.24.0\": \"20131017\",\n \"report.rows.24.1\": \"18\",\n \"report.rows.25.0\": \"20131018\",\n \"report.rows.25.1\": \"11\",\n \"report.rows.26.0\": \"20131019\",\n \"report.rows.26.1\": \"4\",\n \"report.rows.27.0\": \"20131020\",\n \"report.rows.27.1\": \"2\",\n \"report.rows.28.0\": \"20131021\",\n \"report.rows.28.1\": \"18\",\n \"report.rows.29.0\": \"20131022\",\n \"report.rows.29.1\": \"7\",\n \"report.rows.30.0\": \"20131023\",\n \"report.rows.30.1\": \"2\"\n}</code></pre>","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-173","dist":{"shasum":"ad26d36f1b9d07afacdf37084796dcfe537f5a7e","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-173.tgz","integrity":"sha512-a+84H8FwDAXX275CiiAEgiIIETCvtmcorXTJWfASGjza3ZvggW80nWbcbODOCFhoVg4UsHl7SsyJOq4irATyGQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD3Ua6bbm/G7tvhJCc/+oA8mg0Fo/vJrP7FskxyPgwJfQIhAJBzswVWOj0tnjTOdkdCPhUevRhwqY1aVznOOc0+ihLq"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-174":{"name":"yarnlang","version":"0.1.0-174","description":"the more you know, the less you need","main":"yarn.js","repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","yrn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.27.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","crc":"~0.2.1","timeago":"~0.1.0","timespan":"~2.3.0","escape-html":"~1.0.0","eventsource":"0.0.8","github":"~0.1.12","googleapis":"~0.4.5","instagram-node":"~0.1.13","pingdom":"~0.6.2","node-trello":"~0.1.4","tumblr.js":"0.0.4","twit":"~1.1.11","yelp":"~0.1.1"},"readme":"<div align=\"center\">\n\t<h3><i>yarn</i></h3>\n\t<i>the more you know - the less you need</i>\n</div>\n\n<div align=\"center\"><h3><i>samples</i></h3><i>canon (not working)</i></div>\n\n<pre lang=\"yarn\"><code>// set the name 'query' to the value 'yarnlang'\nset [query] [yarnlang],\n\n// search twitter for the value of 'query', store the results in 'twitter results'\nsearch twitter [twitter results] (query),\n\n// search facebook for the value of 'query', store the results in 'facebook results'\nsearch facebook [facebook results] (query),\n\n// search tumblr for the value of 'query', store the results in 'tumblr results'\nsearch tumblr [tumblr results] (query),\n\n// combine all three results, store the combined in 'combined results'\ncat [combined results] [twitter results] [facebook results] [tumblr results],\n\n// delete any results that don't have an image\nfilter [combined results] [!] (a.tweet.image) (a.facebooked.image) (a.tumbled.image),\n\n// sort the combined results by their respectively named creation dates\nsort [combined results] (a.tweeted_at) (a.facebooked_at) (a.tumbled_at) [>] (b.tweeted_at) (b.facebooked_at) (b.tumbled_at),\n\n// loop though all remaining results\nfor [result] [combined results],\n\n\t// loop through each tag in result\n\tfor [tag] [result.tags],\n\n\t\t// search google for tag\n\t\tget [tag.google search] [https://www.google.com/search?q=] + (tag),\n\n\t\t// match the page result count\n\t\tmatch (tag.about results matches) [About .+ results] (tag.google search.body),\n\n\t\t// read the page count\n\t\tfloat (tag.page count) (tag.about results matches.0),\n\n\tend for,\n\n\t// average the tag's page counts\n\taverage [result.average tag page count] (result.tags.*.page count),\n\nend for,\n\n// sort remaining results by their average tag page count\nsort [combined results] (a.average tag page count) [>] (b.average tag page count)\n</code></pre>\n\n<div align=\"center\"><i>google analytics (working)</i></div>\n\n<pre lang=\"yarn\"><code>// get accounts for login\ngoogle analytics accounts [accounts], \n\n// get web properties from first account\ngoogle analytics web properties [web properties] (accounts.items.0.id), \n\n// get profiles from account + web property combo\ngoogle analytics profiles [profiles] (accounts.items.0.id) (web properties.items.0.id),\n\n// generate a monthly report of visits with single day granularity\ngoogle analytics reporting [report] (profiles.items.0.id) [Sept 23 2013 11:31:07 GMT-0400 (EDT)] [Oct 23 2013 11:31:07 GMT-0400 (EDT)] [ga:visits] [ga:date]\n</code></pre>\n\n<div align=\"center\"><i>google analytics output</i></div>\n\n<pre lang=\"json\"><code>{\n \"accounts.kind\": \"analytics#accounts\",\n \"accounts.username\": \"adrnsly@dashbook.co\",\n \"accounts.totalResults\": 1,\n \"accounts.startIndex\": 1,\n \"accounts.itemsPerPage\": 1000,\n \"accounts.items.0.id\": \"38829403\",\n \"accounts.items.0.kind\": \"analytics#account\",\n \"accounts.items.0.selfLink\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403\",\n \"accounts.items.0.name\": \"Dashbook\",\n \"accounts.items.0.permissions.effective.0\": \"COLLABORATE\",\n \"accounts.items.0.permissions.effective.1\": \"EDIT\",\n \"accounts.items.0.permissions.effective.2\": \"MANAGE_USERS\",\n \"accounts.items.0.permissions.effective.3\": \"READ_AND_ANALYZE\",\n \"accounts.items.0.created\": \"2013-02-26T21:27:58.713Z\",\n \"accounts.items.0.updated\": \"2013-05-14T01:24:14.503Z\",\n \"accounts.items.0.childLink.type\": \"analytics#webproperties\",\n \"accounts.items.0.childLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties\",\n \"web properties.kind\": \"analytics#webproperties\",\n \"web properties.username\": \"adrnsly@dashbook.co\",\n \"web properties.totalResults\": 1,\n \"web properties.startIndex\": 1,\n \"web properties.itemsPerPage\": 1000,\n \"web properties.items.0.id\": \"UA-38829403-1\",\n \"web properties.items.0.kind\": \"analytics#webproperty\",\n \"web properties.items.0.selfLink\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1\",\n \"web properties.items.0.accountId\": \"38829403\",\n \"web properties.items.0.internalWebPropertyId\": \"67547626\",\n \"web properties.items.0.name\": \"Dashbook\",\n \"web properties.items.0.websiteUrl\": \"http://dashbookapp.com\",\n \"web properties.items.0.level\": \"STANDARD\",\n \"web properties.items.0.profileCount\": 1,\n \"web properties.items.0.industryVertical\": \"COMPUTERS_AND_ELECTRONICS\",\n \"web properties.items.0.defaultProfileId\": \"69466967\",\n \"web properties.items.0.permissions.effective.0\": \"COLLABORATE\",\n \"web properties.items.0.permissions.effective.1\": \"EDIT\",\n \"web properties.items.0.permissions.effective.2\": \"MANAGE_USERS\",\n \"web properties.items.0.permissions.effective.3\": \"READ_AND_ANALYZE\",\n \"web properties.items.0.created\": \"2013-02-26T21:27:58.713Z\",\n \"web properties.items.0.updated\": \"2013-08-21T15:44:29.534Z\",\n \"web properties.items.0.parentLink.type\": \"analytics#account\",\n \"web properties.items.0.parentLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403\",\n \"web properties.items.0.childLink.type\": \"analytics#profiles\",\n \"web properties.items.0.childLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1/profiles\",\n \"profiles.kind\": \"analytics#profiles\",\n \"profiles.username\": \"adrnsly@dashbook.co\",\n \"profiles.totalResults\": 1,\n \"profiles.startIndex\": 1,\n \"profiles.itemsPerPage\": 1000,\n \"profiles.items.0.id\": \"69466967\",\n \"profiles.items.0.kind\": \"analytics#profile\",\n \"profiles.items.0.selfLink\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1/profiles/69466967\",\n \"profiles.items.0.accountId\": \"38829403\",\n \"profiles.items.0.webPropertyId\": \"UA-38829403-1\",\n \"profiles.items.0.internalWebPropertyId\": \"67547626\",\n \"profiles.items.0.name\": \"Dashbook\",\n \"profiles.items.0.currency\": \"USD\",\n \"profiles.items.0.timezone\": \"America/Montreal\",\n \"profiles.items.0.websiteUrl\": \"http://dashbookapp.com\",\n \"profiles.items.0.type\": \"WEB\",\n \"profiles.items.0.permissions.effective.0\": \"COLLABORATE\",\n \"profiles.items.0.permissions.effective.1\": \"EDIT\",\n \"profiles.items.0.permissions.effective.2\": \"MANAGE_USERS\",\n \"profiles.items.0.permissions.effective.3\": \"READ_AND_ANALYZE\",\n \"profiles.items.0.created\": \"2013-02-26T21:27:58.713Z\",\n \"profiles.items.0.updated\": \"2013-09-27T16:59:32.722Z\",\n \"profiles.items.0.eCommerceTracking\": false,\n \"profiles.items.0.parentLink.type\": \"analytics#webproperty\",\n \"profiles.items.0.parentLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1\",\n \"profiles.items.0.childLink.type\": \"analytics#goals\",\n \"profiles.items.0.childLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1/profiles/69466967/goals\",\n \"report.kind\": \"analytics#gaData\",\n \"report.id\": \"https://www.googleapis.com/analytics/v3/data/ga?ids=ga:69466967&dimensions=ga:date&metrics=ga:visits&start-date=2013-09-23&end-date=2013-10-23\",\n \"report.query.start-date\": \"2013-09-23\",\n \"report.query.end-date\": \"2013-10-23\",\n \"report.query.ids\": \"ga:69466967\",\n \"report.query.dimensions\": \"ga:date\",\n \"report.query.metrics.0\": \"ga:visits\",\n \"report.query.start-index\": 1,\n \"report.query.max-results\": 1000,\n \"report.itemsPerPage\": 1000,\n \"report.totalResults\": 31,\n \"report.selfLink\": \"https://www.googleapis.com/analytics/v3/data/ga?ids=ga:69466967&dimensions=ga:date&metrics=ga:visits&start-date=2013-09-23&end-date=2013-10-23\",\n \"report.profileInfo.profileId\": \"69466967\",\n \"report.profileInfo.accountId\": \"38829403\",\n \"report.profileInfo.webPropertyId\": \"UA-38829403-1\",\n \"report.profileInfo.internalWebPropertyId\": \"67547626\",\n \"report.profileInfo.profileName\": \"Dashbook\",\n \"report.profileInfo.tableId\": \"ga:69466967\",\n \"report.containsSampledData\": false,\n \"report.columnHeaders.0.name\": \"ga:date\",\n \"report.columnHeaders.0.columnType\": \"DIMENSION\",\n \"report.columnHeaders.0.dataType\": \"STRING\",\n \"report.columnHeaders.1.name\": \"ga:visits\",\n \"report.columnHeaders.1.columnType\": \"METRIC\",\n \"report.columnHeaders.1.dataType\": \"INTEGER\",\n \"report.totalsForAllResults.ga:visits\": \"634\",\n \"report.rows.0.0\": \"20130923\",\n \"report.rows.0.1\": \"15\",\n \"report.rows.1.0\": \"20130924\",\n \"report.rows.1.1\": \"6\",\n \"report.rows.2.0\": \"20130925\",\n \"report.rows.2.1\": \"38\",\n \"report.rows.3.0\": \"20130926\",\n \"report.rows.3.1\": \"43\",\n \"report.rows.4.0\": \"20130927\",\n \"report.rows.4.1\": \"18\",\n \"report.rows.5.0\": \"20130928\",\n \"report.rows.5.1\": \"2\",\n \"report.rows.6.0\": \"20130929\",\n \"report.rows.6.1\": \"3\",\n \"report.rows.7.0\": \"20130930\",\n \"report.rows.7.1\": \"14\",\n \"report.rows.8.0\": \"20131001\",\n \"report.rows.8.1\": \"14\",\n \"report.rows.9.0\": \"20131002\",\n \"report.rows.9.1\": \"43\",\n \"report.rows.10.0\": \"20131003\",\n \"report.rows.10.1\": \"42\",\n \"report.rows.11.0\": \"20131004\",\n \"report.rows.11.1\": \"24\",\n \"report.rows.12.0\": \"20131005\",\n \"report.rows.12.1\": \"11\",\n \"report.rows.13.0\": \"20131006\",\n \"report.rows.13.1\": \"13\",\n \"report.rows.14.0\": \"20131007\",\n \"report.rows.14.1\": \"46\",\n \"report.rows.15.0\": \"20131008\",\n \"report.rows.15.1\": \"36\",\n \"report.rows.16.0\": \"20131009\",\n \"report.rows.16.1\": \"24\",\n \"report.rows.17.0\": \"20131010\",\n \"report.rows.17.1\": \"19\",\n \"report.rows.18.0\": \"20131011\",\n \"report.rows.18.1\": \"12\",\n \"report.rows.19.0\": \"20131012\",\n \"report.rows.19.1\": \"8\",\n \"report.rows.20.0\": \"20131013\",\n \"report.rows.20.1\": \"9\",\n \"report.rows.21.0\": \"20131014\",\n \"report.rows.21.1\": \"18\",\n \"report.rows.22.0\": \"20131015\",\n \"report.rows.22.1\": \"93\",\n \"report.rows.23.0\": \"20131016\",\n \"report.rows.23.1\": \"21\",\n \"report.rows.24.0\": \"20131017\",\n \"report.rows.24.1\": \"18\",\n \"report.rows.25.0\": \"20131018\",\n \"report.rows.25.1\": \"11\",\n \"report.rows.26.0\": \"20131019\",\n \"report.rows.26.1\": \"4\",\n \"report.rows.27.0\": \"20131020\",\n \"report.rows.27.1\": \"2\",\n \"report.rows.28.0\": \"20131021\",\n \"report.rows.28.1\": \"18\",\n \"report.rows.29.0\": \"20131022\",\n \"report.rows.29.1\": \"7\",\n \"report.rows.30.0\": \"20131023\",\n \"report.rows.30.1\": \"2\"\n}</code></pre>","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-174","dist":{"shasum":"16eecf2be482a7dd123e720c36b5443e08082075","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-174.tgz","integrity":"sha512-ZaK9IjmQvn63PTRLCIqsLKvx1KvKJwaOaOIBoTYS2Clz+w6eVFDOXPekWaV165Og2zHpwFLQtFVfFeEJUuJxBQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHS1TqOKVDDT+4MZHJYZ3yjlwkC/gWTkKwL8/TyNbu6JAiBbITKHZAjHgSMoO4qRx1HAVupkyWFf4iVorz1rYUi4rQ=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-175":{"name":"yarnlang","version":"0.1.0-175","description":"the more you know, the less you need","main":"yarn.js","repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","yrn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.27.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","crc":"~0.2.1","timeago":"~0.1.0","timespan":"~2.3.0","escape-html":"~1.0.0","eventsource":"0.0.8","github":"~0.1.12","googleapis":"~0.4.5","instagram-node":"~0.1.13","pingdom":"~0.6.2","node-trello":"~0.1.4","tumblr.js":"0.0.4","twit":"~1.1.11","yelp":"~0.1.1"},"readme":"<div align=\"center\">\n\t<h3><i>yarn</i></h3>\n\t<i>the more you know - the less you need</i>\n</div>\n\n<div align=\"center\"><h3><i>samples</i></h3><i>canon (not working)</i></div>\n\n<pre lang=\"yarn\"><code>// set the name 'query' to the value 'yarnlang'\nset [query] [yarnlang],\n\n// search twitter for the value of 'query', store the results in 'twitter results'\nsearch twitter [twitter results] (query),\n\n// search facebook for the value of 'query', store the results in 'facebook results'\nsearch facebook [facebook results] (query),\n\n// search tumblr for the value of 'query', store the results in 'tumblr results'\nsearch tumblr [tumblr results] (query),\n\n// combine all three results, store the combined in 'combined results'\ncat [combined results] [twitter results] [facebook results] [tumblr results],\n\n// delete any results that don't have an image\nfilter [combined results] [!] (a.tweet.image) (a.facebooked.image) (a.tumbled.image),\n\n// sort the combined results by their respectively named creation dates\nsort [combined results] (a.tweeted_at) (a.facebooked_at) (a.tumbled_at) [>] (b.tweeted_at) (b.facebooked_at) (b.tumbled_at),\n\n// loop though all remaining results\nfor [result] [combined results],\n\n\t// loop through each tag in result\n\tfor [tag] [result.tags],\n\n\t\t// search google for tag\n\t\tget [tag.google search] [https://www.google.com/search?q=] + (tag),\n\n\t\t// match the page result count\n\t\tmatch (tag.about results matches) [About .+ results] (tag.google search.body),\n\n\t\t// read the page count\n\t\tfloat (tag.page count) (tag.about results matches.0),\n\n\tend for,\n\n\t// average the tag's page counts\n\taverage [result.average tag page count] (result.tags.*.page count),\n\nend for,\n\n// sort remaining results by their average tag page count\nsort [combined results] (a.average tag page count) [>] (b.average tag page count)\n</code></pre>\n\n<div align=\"center\"><i>google analytics (working)</i></div>\n\n<pre lang=\"yarn\"><code>// get accounts for login\ngoogle analytics accounts [accounts], \n\n// get web properties from first account\ngoogle analytics web properties [web properties] (accounts.items.0.id), \n\n// get profiles from account + web property combo\ngoogle analytics profiles [profiles] (accounts.items.0.id) (web properties.items.0.id),\n\n// generate a monthly report of visits with single day granularity\ngoogle analytics reporting [report] (profiles.items.0.id) [Sept 23 2013 11:31:07 GMT-0400 (EDT)] [Oct 23 2013 11:31:07 GMT-0400 (EDT)] [ga:visits] [ga:date]\n</code></pre>\n\n<div align=\"center\"><i>google analytics output</i></div>\n\n<pre lang=\"json\"><code>{\n \"accounts.kind\": \"analytics#accounts\",\n \"accounts.username\": \"adrnsly@dashbook.co\",\n \"accounts.totalResults\": 1,\n \"accounts.startIndex\": 1,\n \"accounts.itemsPerPage\": 1000,\n \"accounts.items.0.id\": \"38829403\",\n \"accounts.items.0.kind\": \"analytics#account\",\n \"accounts.items.0.selfLink\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403\",\n \"accounts.items.0.name\": \"Dashbook\",\n \"accounts.items.0.permissions.effective.0\": \"COLLABORATE\",\n \"accounts.items.0.permissions.effective.1\": \"EDIT\",\n \"accounts.items.0.permissions.effective.2\": \"MANAGE_USERS\",\n \"accounts.items.0.permissions.effective.3\": \"READ_AND_ANALYZE\",\n \"accounts.items.0.created\": \"2013-02-26T21:27:58.713Z\",\n \"accounts.items.0.updated\": \"2013-05-14T01:24:14.503Z\",\n \"accounts.items.0.childLink.type\": \"analytics#webproperties\",\n \"accounts.items.0.childLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties\",\n \"web properties.kind\": \"analytics#webproperties\",\n \"web properties.username\": \"adrnsly@dashbook.co\",\n \"web properties.totalResults\": 1,\n \"web properties.startIndex\": 1,\n \"web properties.itemsPerPage\": 1000,\n \"web properties.items.0.id\": \"UA-38829403-1\",\n \"web properties.items.0.kind\": \"analytics#webproperty\",\n \"web properties.items.0.selfLink\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1\",\n \"web properties.items.0.accountId\": \"38829403\",\n \"web properties.items.0.internalWebPropertyId\": \"67547626\",\n \"web properties.items.0.name\": \"Dashbook\",\n \"web properties.items.0.websiteUrl\": \"http://dashbookapp.com\",\n \"web properties.items.0.level\": \"STANDARD\",\n \"web properties.items.0.profileCount\": 1,\n \"web properties.items.0.industryVertical\": \"COMPUTERS_AND_ELECTRONICS\",\n \"web properties.items.0.defaultProfileId\": \"69466967\",\n \"web properties.items.0.permissions.effective.0\": \"COLLABORATE\",\n \"web properties.items.0.permissions.effective.1\": \"EDIT\",\n \"web properties.items.0.permissions.effective.2\": \"MANAGE_USERS\",\n \"web properties.items.0.permissions.effective.3\": \"READ_AND_ANALYZE\",\n \"web properties.items.0.created\": \"2013-02-26T21:27:58.713Z\",\n \"web properties.items.0.updated\": \"2013-08-21T15:44:29.534Z\",\n \"web properties.items.0.parentLink.type\": \"analytics#account\",\n \"web properties.items.0.parentLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403\",\n \"web properties.items.0.childLink.type\": \"analytics#profiles\",\n \"web properties.items.0.childLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1/profiles\",\n \"profiles.kind\": \"analytics#profiles\",\n \"profiles.username\": \"adrnsly@dashbook.co\",\n \"profiles.totalResults\": 1,\n \"profiles.startIndex\": 1,\n \"profiles.itemsPerPage\": 1000,\n \"profiles.items.0.id\": \"69466967\",\n \"profiles.items.0.kind\": \"analytics#profile\",\n \"profiles.items.0.selfLink\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1/profiles/69466967\",\n \"profiles.items.0.accountId\": \"38829403\",\n \"profiles.items.0.webPropertyId\": \"UA-38829403-1\",\n \"profiles.items.0.internalWebPropertyId\": \"67547626\",\n \"profiles.items.0.name\": \"Dashbook\",\n \"profiles.items.0.currency\": \"USD\",\n \"profiles.items.0.timezone\": \"America/Montreal\",\n \"profiles.items.0.websiteUrl\": \"http://dashbookapp.com\",\n \"profiles.items.0.type\": \"WEB\",\n \"profiles.items.0.permissions.effective.0\": \"COLLABORATE\",\n \"profiles.items.0.permissions.effective.1\": \"EDIT\",\n \"profiles.items.0.permissions.effective.2\": \"MANAGE_USERS\",\n \"profiles.items.0.permissions.effective.3\": \"READ_AND_ANALYZE\",\n \"profiles.items.0.created\": \"2013-02-26T21:27:58.713Z\",\n \"profiles.items.0.updated\": \"2013-09-27T16:59:32.722Z\",\n \"profiles.items.0.eCommerceTracking\": false,\n \"profiles.items.0.parentLink.type\": \"analytics#webproperty\",\n \"profiles.items.0.parentLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1\",\n \"profiles.items.0.childLink.type\": \"analytics#goals\",\n \"profiles.items.0.childLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1/profiles/69466967/goals\",\n \"report.kind\": \"analytics#gaData\",\n \"report.id\": \"https://www.googleapis.com/analytics/v3/data/ga?ids=ga:69466967&dimensions=ga:date&metrics=ga:visits&start-date=2013-09-23&end-date=2013-10-23\",\n \"report.query.start-date\": \"2013-09-23\",\n \"report.query.end-date\": \"2013-10-23\",\n \"report.query.ids\": \"ga:69466967\",\n \"report.query.dimensions\": \"ga:date\",\n \"report.query.metrics.0\": \"ga:visits\",\n \"report.query.start-index\": 1,\n \"report.query.max-results\": 1000,\n \"report.itemsPerPage\": 1000,\n \"report.totalResults\": 31,\n \"report.selfLink\": \"https://www.googleapis.com/analytics/v3/data/ga?ids=ga:69466967&dimensions=ga:date&metrics=ga:visits&start-date=2013-09-23&end-date=2013-10-23\",\n \"report.profileInfo.profileId\": \"69466967\",\n \"report.profileInfo.accountId\": \"38829403\",\n \"report.profileInfo.webPropertyId\": \"UA-38829403-1\",\n \"report.profileInfo.internalWebPropertyId\": \"67547626\",\n \"report.profileInfo.profileName\": \"Dashbook\",\n \"report.profileInfo.tableId\": \"ga:69466967\",\n \"report.containsSampledData\": false,\n \"report.columnHeaders.0.name\": \"ga:date\",\n \"report.columnHeaders.0.columnType\": \"DIMENSION\",\n \"report.columnHeaders.0.dataType\": \"STRING\",\n \"report.columnHeaders.1.name\": \"ga:visits\",\n \"report.columnHeaders.1.columnType\": \"METRIC\",\n \"report.columnHeaders.1.dataType\": \"INTEGER\",\n \"report.totalsForAllResults.ga:visits\": \"634\",\n \"report.rows.0.0\": \"20130923\",\n \"report.rows.0.1\": \"15\",\n \"report.rows.1.0\": \"20130924\",\n \"report.rows.1.1\": \"6\",\n \"report.rows.2.0\": \"20130925\",\n \"report.rows.2.1\": \"38\",\n \"report.rows.3.0\": \"20130926\",\n \"report.rows.3.1\": \"43\",\n \"report.rows.4.0\": \"20130927\",\n \"report.rows.4.1\": \"18\",\n \"report.rows.5.0\": \"20130928\",\n \"report.rows.5.1\": \"2\",\n \"report.rows.6.0\": \"20130929\",\n \"report.rows.6.1\": \"3\",\n \"report.rows.7.0\": \"20130930\",\n \"report.rows.7.1\": \"14\",\n \"report.rows.8.0\": \"20131001\",\n \"report.rows.8.1\": \"14\",\n \"report.rows.9.0\": \"20131002\",\n \"report.rows.9.1\": \"43\",\n \"report.rows.10.0\": \"20131003\",\n \"report.rows.10.1\": \"42\",\n \"report.rows.11.0\": \"20131004\",\n \"report.rows.11.1\": \"24\",\n \"report.rows.12.0\": \"20131005\",\n \"report.rows.12.1\": \"11\",\n \"report.rows.13.0\": \"20131006\",\n \"report.rows.13.1\": \"13\",\n \"report.rows.14.0\": \"20131007\",\n \"report.rows.14.1\": \"46\",\n \"report.rows.15.0\": \"20131008\",\n \"report.rows.15.1\": \"36\",\n \"report.rows.16.0\": \"20131009\",\n \"report.rows.16.1\": \"24\",\n \"report.rows.17.0\": \"20131010\",\n \"report.rows.17.1\": \"19\",\n \"report.rows.18.0\": \"20131011\",\n \"report.rows.18.1\": \"12\",\n \"report.rows.19.0\": \"20131012\",\n \"report.rows.19.1\": \"8\",\n \"report.rows.20.0\": \"20131013\",\n \"report.rows.20.1\": \"9\",\n \"report.rows.21.0\": \"20131014\",\n \"report.rows.21.1\": \"18\",\n \"report.rows.22.0\": \"20131015\",\n \"report.rows.22.1\": \"93\",\n \"report.rows.23.0\": \"20131016\",\n \"report.rows.23.1\": \"21\",\n \"report.rows.24.0\": \"20131017\",\n \"report.rows.24.1\": \"18\",\n \"report.rows.25.0\": \"20131018\",\n \"report.rows.25.1\": \"11\",\n \"report.rows.26.0\": \"20131019\",\n \"report.rows.26.1\": \"4\",\n \"report.rows.27.0\": \"20131020\",\n \"report.rows.27.1\": \"2\",\n \"report.rows.28.0\": \"20131021\",\n \"report.rows.28.1\": \"18\",\n \"report.rows.29.0\": \"20131022\",\n \"report.rows.29.1\": \"7\",\n \"report.rows.30.0\": \"20131023\",\n \"report.rows.30.1\": \"2\"\n}</code></pre>","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-175","dist":{"shasum":"f63419d7fe433fdba3cfb95e0389acb4acbda261","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-175.tgz","integrity":"sha512-v9dbB3Xa5sqOf9vPzJ7S2D6omMbJq3ZcBxPG1RTtnlBcBZiGf2Sn1izLX8jTGFso+zsulIwsaKNw3JlVWcSKTQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCOLCwKF7hHo8DF1B+BYXeEyRBrbVAef6KYYRXVu7e1OAIhAPpBqVOcHTIyBVyGkX0sY0DrfRe9Kicz1Hz2MvkP9H9u"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]},"0.1.0-176":{"name":"yarnlang","version":"0.1.0-176","description":"the more you know, the less you need","main":"yarn.js","repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"},"keywords":["yarn","yrn","language","yarnlang","data","manipulation"],"author":{"name":"Adrian Seeley"},"license":"BSD","readmeFilename":"README.md","gitHead":"ca760e5fc247cfab8fe3c410be480841dfd5f415","dependencies":{"request":"~2.27.0","htmlparser":"~1.7.6","xml2js":"~0.2.8","crc":"~0.2.1","timeago":"~0.1.0","timespan":"~2.3.0","escape-html":"~1.0.0","eventsource":"0.0.8","github":"~0.1.12","googleapis":"~0.4.5","instagram-node":"~0.1.13","pingdom":"~0.6.2","node-trello":"~0.1.4","tumblr.js":"0.0.4","twit":"~1.1.11","yelp":"~0.1.1"},"readme":"<div align=\"center\">\n\t<h3><i>yarn</i></h3>\n\t<i>the more you know - the less you need</i>\n</div>\n\n<div align=\"center\"><h3><i>samples</i></h3><i>canon (not working)</i></div>\n\n<pre lang=\"yarn\"><code>/// set the name 'query' to the value 'yarnlang'\nset [query] [yarnlang],\n\n/// search twitter for the value of 'query', store the results in 'twitter results'\nsearch twitter [twitter results] (query),\n\n/// search facebook for the value of 'query', store the results in 'facebook results'\nsearch facebook [facebook results] (query),\n\n/// search tumblr for the value of 'query', store the results in 'tumblr results'\nsearch tumblr [tumblr results] (query),\n\n/// combine all three results, store the combined in 'combined results'\ncat [combined results] [twitter results] [facebook results] [tumblr results],\n\n/// sort the combined results by their respectively named creation dates\nsort [combined results] (a.tweeted_at) (a.facebooked_at) (a.tumbled_at) [>] (b.tweeted_at) (b.facebooked_at) (b.tumbled_at),\n\n/// delete any results that don't have an image\nfilter [combined results] [!] (a.tweet.image) (a.facebooked.image) (a.tumbled.image),\n\n/// loop though all remaining results\nfor [result] [combined results],\n\n\t/// loop through each tag in result\n\tfor [tag] [result.tags],\n\n\t\t/// search google for tag\n\t\tget [tag.google search] [https://www.google.com/search?q=] + (tag),\n\n\t\t/// match the page result count\n\t\tmatch (tag.about results matches) [About .+ results] (tag.google search.body),\n\n\t\t/// read the page count\n\t\tfloat (tag.page count) (tag.about results matches.0),\n\n\tend for,\n\n\t/// average the tag's page counts\n\taverage [result.average tag page count] (result.tags.*.page count),\n\nend for,\n\n/// sort remaining results by their average tag page count\nsort [combined results] (a.average tag page count) [>] (b.average tag page count)\n</code></pre>\n\n<div align=\"center\"><i>google analytics (working)</i></div>\n\n<pre lang=\"yarn\"><code>/// get accounts for login\ngoogle analytics accounts [accounts], \n\n/// get web properties from first account\ngoogle analytics web properties [web properties] (accounts.items.0.id), \n\n/// get profiles from account + web property combo\ngoogle analytics profiles [profiles] (accounts.items.0.id) (web properties.items.0.id),\n\n/// generate a monthly report of visits with single day granularity\ngoogle analytics reporting [report] (profiles.items.0.id) [Sept 23 2013 11:31:07 GMT-0400 (EDT)] [Oct 23 2013 11:31:07 GMT-0400 (EDT)] [ga:visits] [ga:date]\n</code></pre>\n\n<div align=\"center\"><i>google analytics output</i></div>\n\n<pre lang=\"json\"><code>{\n \"accounts.kind\": \"analytics#accounts\",\n \"accounts.username\": \"adrnsly@dashbook.co\",\n \"accounts.totalResults\": 1,\n \"accounts.startIndex\": 1,\n \"accounts.itemsPerPage\": 1000,\n \"accounts.items.0.id\": \"38829403\",\n \"accounts.items.0.kind\": \"analytics#account\",\n \"accounts.items.0.selfLink\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403\",\n \"accounts.items.0.name\": \"Dashbook\",\n \"accounts.items.0.permissions.effective.0\": \"COLLABORATE\",\n \"accounts.items.0.permissions.effective.1\": \"EDIT\",\n \"accounts.items.0.permissions.effective.2\": \"MANAGE_USERS\",\n \"accounts.items.0.permissions.effective.3\": \"READ_AND_ANALYZE\",\n \"accounts.items.0.created\": \"2013-02-26T21:27:58.713Z\",\n \"accounts.items.0.updated\": \"2013-05-14T01:24:14.503Z\",\n \"accounts.items.0.childLink.type\": \"analytics#webproperties\",\n \"accounts.items.0.childLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties\",\n \"web properties.kind\": \"analytics#webproperties\",\n \"web properties.username\": \"adrnsly@dashbook.co\",\n \"web properties.totalResults\": 1,\n \"web properties.startIndex\": 1,\n \"web properties.itemsPerPage\": 1000,\n \"web properties.items.0.id\": \"UA-38829403-1\",\n \"web properties.items.0.kind\": \"analytics#webproperty\",\n \"web properties.items.0.selfLink\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1\",\n \"web properties.items.0.accountId\": \"38829403\",\n \"web properties.items.0.internalWebPropertyId\": \"67547626\",\n \"web properties.items.0.name\": \"Dashbook\",\n \"web properties.items.0.websiteUrl\": \"http://dashbookapp.com\",\n \"web properties.items.0.level\": \"STANDARD\",\n \"web properties.items.0.profileCount\": 1,\n \"web properties.items.0.industryVertical\": \"COMPUTERS_AND_ELECTRONICS\",\n \"web properties.items.0.defaultProfileId\": \"69466967\",\n \"web properties.items.0.permissions.effective.0\": \"COLLABORATE\",\n \"web properties.items.0.permissions.effective.1\": \"EDIT\",\n \"web properties.items.0.permissions.effective.2\": \"MANAGE_USERS\",\n \"web properties.items.0.permissions.effective.3\": \"READ_AND_ANALYZE\",\n \"web properties.items.0.created\": \"2013-02-26T21:27:58.713Z\",\n \"web properties.items.0.updated\": \"2013-08-21T15:44:29.534Z\",\n \"web properties.items.0.parentLink.type\": \"analytics#account\",\n \"web properties.items.0.parentLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403\",\n \"web properties.items.0.childLink.type\": \"analytics#profiles\",\n \"web properties.items.0.childLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1/profiles\",\n \"profiles.kind\": \"analytics#profiles\",\n \"profiles.username\": \"adrnsly@dashbook.co\",\n \"profiles.totalResults\": 1,\n \"profiles.startIndex\": 1,\n \"profiles.itemsPerPage\": 1000,\n \"profiles.items.0.id\": \"69466967\",\n \"profiles.items.0.kind\": \"analytics#profile\",\n \"profiles.items.0.selfLink\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1/profiles/69466967\",\n \"profiles.items.0.accountId\": \"38829403\",\n \"profiles.items.0.webPropertyId\": \"UA-38829403-1\",\n \"profiles.items.0.internalWebPropertyId\": \"67547626\",\n \"profiles.items.0.name\": \"Dashbook\",\n \"profiles.items.0.currency\": \"USD\",\n \"profiles.items.0.timezone\": \"America/Montreal\",\n \"profiles.items.0.websiteUrl\": \"http://dashbookapp.com\",\n \"profiles.items.0.type\": \"WEB\",\n \"profiles.items.0.permissions.effective.0\": \"COLLABORATE\",\n \"profiles.items.0.permissions.effective.1\": \"EDIT\",\n \"profiles.items.0.permissions.effective.2\": \"MANAGE_USERS\",\n \"profiles.items.0.permissions.effective.3\": \"READ_AND_ANALYZE\",\n \"profiles.items.0.created\": \"2013-02-26T21:27:58.713Z\",\n \"profiles.items.0.updated\": \"2013-09-27T16:59:32.722Z\",\n \"profiles.items.0.eCommerceTracking\": false,\n \"profiles.items.0.parentLink.type\": \"analytics#webproperty\",\n \"profiles.items.0.parentLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1\",\n \"profiles.items.0.childLink.type\": \"analytics#goals\",\n \"profiles.items.0.childLink.href\": \"https://www.googleapis.com/analytics/v3/management/accounts/38829403/webproperties/UA-38829403-1/profiles/69466967/goals\",\n \"report.kind\": \"analytics#gaData\",\n \"report.id\": \"https://www.googleapis.com/analytics/v3/data/ga?ids=ga:69466967&dimensions=ga:date&metrics=ga:visits&start-date=2013-09-23&end-date=2013-10-23\",\n \"report.query.start-date\": \"2013-09-23\",\n \"report.query.end-date\": \"2013-10-23\",\n \"report.query.ids\": \"ga:69466967\",\n \"report.query.dimensions\": \"ga:date\",\n \"report.query.metrics.0\": \"ga:visits\",\n \"report.query.start-index\": 1,\n \"report.query.max-results\": 1000,\n \"report.itemsPerPage\": 1000,\n \"report.totalResults\": 31,\n \"report.selfLink\": \"https://www.googleapis.com/analytics/v3/data/ga?ids=ga:69466967&dimensions=ga:date&metrics=ga:visits&start-date=2013-09-23&end-date=2013-10-23\",\n \"report.profileInfo.profileId\": \"69466967\",\n \"report.profileInfo.accountId\": \"38829403\",\n \"report.profileInfo.webPropertyId\": \"UA-38829403-1\",\n \"report.profileInfo.internalWebPropertyId\": \"67547626\",\n \"report.profileInfo.profileName\": \"Dashbook\",\n \"report.profileInfo.tableId\": \"ga:69466967\",\n \"report.containsSampledData\": false,\n \"report.columnHeaders.0.name\": \"ga:date\",\n \"report.columnHeaders.0.columnType\": \"DIMENSION\",\n \"report.columnHeaders.0.dataType\": \"STRING\",\n \"report.columnHeaders.1.name\": \"ga:visits\",\n \"report.columnHeaders.1.columnType\": \"METRIC\",\n \"report.columnHeaders.1.dataType\": \"INTEGER\",\n \"report.totalsForAllResults.ga:visits\": \"634\",\n \"report.rows.0.0\": \"20130923\",\n \"report.rows.0.1\": \"15\",\n \"report.rows.1.0\": \"20130924\",\n \"report.rows.1.1\": \"6\",\n \"report.rows.2.0\": \"20130925\",\n \"report.rows.2.1\": \"38\",\n \"report.rows.3.0\": \"20130926\",\n \"report.rows.3.1\": \"43\",\n \"report.rows.4.0\": \"20130927\",\n \"report.rows.4.1\": \"18\",\n \"report.rows.5.0\": \"20130928\",\n \"report.rows.5.1\": \"2\",\n \"report.rows.6.0\": \"20130929\",\n \"report.rows.6.1\": \"3\",\n \"report.rows.7.0\": \"20130930\",\n \"report.rows.7.1\": \"14\",\n \"report.rows.8.0\": \"20131001\",\n \"report.rows.8.1\": \"14\",\n \"report.rows.9.0\": \"20131002\",\n \"report.rows.9.1\": \"43\",\n \"report.rows.10.0\": \"20131003\",\n \"report.rows.10.1\": \"42\",\n \"report.rows.11.0\": \"20131004\",\n \"report.rows.11.1\": \"24\",\n \"report.rows.12.0\": \"20131005\",\n \"report.rows.12.1\": \"11\",\n \"report.rows.13.0\": \"20131006\",\n \"report.rows.13.1\": \"13\",\n \"report.rows.14.0\": \"20131007\",\n \"report.rows.14.1\": \"46\",\n \"report.rows.15.0\": \"20131008\",\n \"report.rows.15.1\": \"36\",\n \"report.rows.16.0\": \"20131009\",\n \"report.rows.16.1\": \"24\",\n \"report.rows.17.0\": \"20131010\",\n \"report.rows.17.1\": \"19\",\n \"report.rows.18.0\": \"20131011\",\n \"report.rows.18.1\": \"12\",\n \"report.rows.19.0\": \"20131012\",\n \"report.rows.19.1\": \"8\",\n \"report.rows.20.0\": \"20131013\",\n \"report.rows.20.1\": \"9\",\n \"report.rows.21.0\": \"20131014\",\n \"report.rows.21.1\": \"18\",\n \"report.rows.22.0\": \"20131015\",\n \"report.rows.22.1\": \"93\",\n \"report.rows.23.0\": \"20131016\",\n \"report.rows.23.1\": \"21\",\n \"report.rows.24.0\": \"20131017\",\n \"report.rows.24.1\": \"18\",\n \"report.rows.25.0\": \"20131018\",\n \"report.rows.25.1\": \"11\",\n \"report.rows.26.0\": \"20131019\",\n \"report.rows.26.1\": \"4\",\n \"report.rows.27.0\": \"20131020\",\n \"report.rows.27.1\": \"2\",\n \"report.rows.28.0\": \"20131021\",\n \"report.rows.28.1\": \"18\",\n \"report.rows.29.0\": \"20131022\",\n \"report.rows.29.1\": \"7\",\n \"report.rows.30.0\": \"20131023\",\n \"report.rows.30.1\": \"2\"\n}</code></pre>","bugs":{"url":"https://github.com/adrianseeley/yarnlang/issues"},"_id":"yarnlang@0.1.0-176","dist":{"shasum":"d01910ed02cfa646640b1e98f09cabc8b0457457","tarball":"https://registry.npmjs.org/yarnlang/-/yarnlang-0.1.0-176.tgz","integrity":"sha512-x9QP8LR5x14hja6Ep4FDpLTMpvllVRQp/MEYFncHwmSPQkY5A+fsIIXk6AtciRRb2kdawTVzs1YXDf/I5lsApA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDuZYHJviY5p6Zvt2PHpEWvEdqXD86szTWL/LLp9/jidwIhAIEfwjFQe1G5/xbccl0959iCz1uSJ+7Lc5Oa78IMnKIv"}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"abseeley","email":"adrian@gatosomina.com"},"maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}]}},"readme":"yarnlang\n========\n\nAn interpreted language for powerful data manipulation, inspired by neuron-style functions.\n\nEach yarn is made up of an ordered list of commands which are evaluated as a hashmap.\n\nEach command in a yarn may take any combination of none or many inputs, represented \nby literal values and/or existing fields (copied as literal values) from the hashmap \nby glob style matching a fields key. \n\nThe inputs (if any) are linearly processed by the command - the resulting output of \nwhich is stored back into the hashmap overwriting or creating one or many new fields. \n\nA yarn may return a string, representing an error that occurred during evaluation -\nor if successful a yarn will return a hashmap of all fields whose key's match the\nglob style pattern 'return*'.\n\nSimple Command Syntax:\n\tinput~command~output\n\nMultiple Command Syntax:\n\tinput~command0~output,input~command1~output\n\nLiteral Input Syntax:\n(@ - at symbol, followed by the value url encoded as a string)\n@%20hello%20world~command~output\n\nMulti Input Command Syntax:\n\tinput0 input1 inputN~command~output\n\nMulti Output Command Syntax:\n\tinput~command~output0 output1 output2\n\nMulti Input Multi Output Command Syntax\n\tinput0 input1 inputN~command~output0 output1 outputN\n\nSingle Character Glob Style Input Command Syntax:\n\t(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)\n\tinput?~command~output\n\t\n\twhich becomes logically equivalent to:\n\tinput0 input1 inputN~command~output\n\nMulti Character Glob Style Input Command Syntax:\n\t(assuming the keys 'input0' 'input1' and 'inputN' exist in the hashmap)\n\t*put*~command~output\n\t\n\twhich becomes logically equivalent to:\n\tinput0 input1 inputN~command~output\n\nMixed Input Command Syntax:\n\t(assuming the keys 'special0' 'special1' and 'specialN' exist in the hashmap)\n\tinputBefore special* inputAfter~command~output\n\t\n\twhich becomes logically equivalent to:\n\tinputBefore special0 special1 specialN inputAfter~command~output","maintainers":[{"name":"abseeley","email":"adrian@gatosomina.com"}],"time":{"modified":"2022-06-29T07:04:47.224Z","created":"2013-06-24T17:41:21.121Z","0.0.0":"2013-06-24T17:41:22.262Z","0.0.0-1":"2013-06-24T17:51:47.869Z","0.0.0-2":"2013-06-24T18:01:37.184Z","0.0.0-3":"2013-06-24T18:02:39.264Z","0.0.0-5":"2013-06-24T18:05:35.447Z","0.0.0-6":"2013-06-24T18:07:19.468Z","0.0.0-7":"2013-06-24T18:09:19.184Z","0.0.0-8":"2013-06-24T18:16:59.613Z","0.0.0-9":"2013-06-24T18:17:47.837Z","0.0.0-10":"2013-06-24T18:19:04.561Z","0.0.0-11":"2013-06-24T18:19:48.021Z","0.0.0-12":"2013-06-24T18:20:50.261Z","0.0.0-13":"2013-06-24T18:21:22.120Z","0.0.0-14":"2013-06-24T18:31:51.635Z","0.0.0-15":"2013-06-24T18:32:26.562Z","0.0.0-16":"2013-06-24T21:45:49.279Z","0.0.0-17":"2013-06-24T21:46:41.004Z","0.0.0-18":"2013-06-24T21:47:24.324Z","0.0.0-19":"2013-06-24T21:48:32.473Z","0.0.0-20":"2013-06-24T21:50:13.832Z","0.0.0-21":"2013-06-24T21:52:33.292Z","0.0.0-22":"2013-06-24T21:53:37.650Z","0.0.0-23":"2013-06-24T21:55:23.703Z","0.0.0-24":"2013-06-24T21:57:44.799Z","0.0.0-25":"2013-06-24T22:08:11.764Z","0.0.0-26":"2013-06-24T22:08:49.172Z","0.0.0-27":"2013-06-24T22:08:57.171Z","0.0.0-28":"2013-06-24T22:09:35.847Z","0.0.0-29":"2013-06-24T22:09:56.059Z","0.0.0-30":"2013-06-24T22:19:50.439Z","0.0.0-31":"2013-06-25T16:41:33.568Z","0.0.0-32":"2013-06-27T00:35:36.862Z","0.0.0-33":"2013-06-27T00:37:32.673Z","0.0.0-34":"2013-06-27T00:38:13.021Z","0.0.0-35":"2013-07-02T18:02:58.228Z","0.0.0-36":"2013-07-10T20:12:02.923Z","0.0.0-37":"2013-07-10T20:24:12.348Z","0.0.0-38":"2013-07-18T13:27:03.103Z","0.0.0-39":"2013-07-18T13:30:43.870Z","0.0.0-40":"2013-07-22T14:38:38.611Z","0.0.0-41":"2013-07-23T15:28:46.213Z","0.0.0-42":"2013-07-27T10:59:05.721Z","0.0.0-43":"2013-07-27T12:26:49.551Z","0.0.0-44":"2013-07-28T12:34:01.558Z","0.0.0-46":"2013-08-06T15:38:54.118Z","0.0.0-47":"2013-08-06T16:32:00.819Z","0.0.0-48":"2013-08-06T16:59:09.298Z","0.0.0-49":"2013-08-06T17:00:21.741Z","0.0.0-50":"2013-08-06T18:06:16.410Z","0.0.0-51":"2013-08-06T18:11:30.454Z","0.0.0-52":"2013-08-06T18:49:45.186Z","0.0.0-53":"2013-08-06T18:52:15.714Z","0.0.0-54":"2013-08-06T18:54:38.733Z","0.0.0-55":"2013-08-06T19:01:15.651Z","0.0.0-56":"2013-08-07T13:21:06.788Z","0.0.0-57":"2013-08-07T13:23:30.146Z","0.0.0-58":"2013-08-07T13:24:52.266Z","0.0.0-59":"2013-08-07T13:25:37.112Z","0.0.0-60":"2013-08-07T13:30:11.963Z","0.0.0-61":"2013-08-07T13:49:23.563Z","0.0.0-62":"2013-08-07T14:40:49.301Z","0.0.0-63":"2013-08-07T14:47:53.153Z","0.0.0-64":"2013-08-07T14:52:19.928Z","0.0.0-65":"2013-08-07T15:35:03.594Z","0.0.0-66":"2013-08-07T15:38:47.518Z","0.0.0-67":"2013-08-07T16:17:51.167Z","0.0.0-68":"2013-08-07T16:20:05.330Z","0.0.0-69":"2013-08-07T16:21:49.408Z","0.0.0-70":"2013-08-07T16:22:26.662Z","0.0.0-71":"2013-08-07T16:25:03.788Z","0.0.0-72":"2013-08-07T16:25:43.728Z","0.0.0-73":"2013-08-09T13:25:51.511Z","0.0.0-74":"2013-08-09T13:51:06.206Z","0.0.0-75":"2013-08-09T13:58:45.026Z","0.0.0-76":"2013-08-09T14:07:54.932Z","0.0.0-77":"2013-08-09T15:49:56.882Z","0.0.0-78":"2013-08-09T16:15:00.979Z","0.0.0-79":"2013-08-09T16:23:45.798Z","0.0.0-80":"2013-08-09T16:40:29.362Z","0.0.0-81":"2013-08-09T18:15:01.896Z","0.0.0-82":"2013-08-09T18:53:54.324Z","0.0.0-83":"2013-08-09T19:09:02.962Z","0.0.0-84":"2013-08-09T19:21:52.405Z","0.0.0-85":"2013-08-12T15:00:06.994Z","0.0.0-86":"2013-08-12T16:07:56.559Z","0.0.0-87":"2013-08-17T13:18:07.131Z","0.0.0-88":"2013-08-19T12:12:39.996Z","0.0.0-89":"2013-08-19T12:17:38.793Z","0.0.0-90":"2013-08-19T12:27:28.364Z","0.0.0-91":"2013-08-19T12:29:38.216Z","0.0.0-92":"2013-08-19T12:33:07.780Z","0.0.0-93":"2013-08-19T12:42:13.951Z","0.0.0-94":"2013-08-19T12:50:25.536Z","0.0.0-95":"2013-08-19T12:57:19.571Z","0.0.0-96":"2013-08-19T13:07:30.149Z","0.0.0-97":"2013-08-20T15:40:28.227Z","0.0.0-98":"2013-08-20T15:49:09.170Z","0.0.0-99":"2013-08-20T16:05:48.371Z","0.0.0-100":"2013-08-26T19:38:13.810Z","0.0.0-101":"2013-08-26T20:10:22.249Z","0.0.0-102":"2013-08-26T20:13:13.701Z","0.0.0-103":"2013-08-26T20:17:03.231Z","0.0.0-104":"2013-08-30T13:22:36.035Z","0.0.0-105":"2013-08-30T13:43:02.467Z","0.0.0-106":"2013-09-02T14:04:19.310Z","0.0.0-107":"2013-09-02T14:34:27.022Z","0.0.0-108":"2013-09-02T15:24:31.321Z","0.0.0-109":"2013-09-02T15:58:08.428Z","0.0.0-110":"2013-09-02T16:37:59.205Z","0.0.0-111":"2013-09-02T16:45:12.734Z","0.0.0-112":"2013-09-02T17:03:30.094Z","0.0.0-113":"2013-09-02T17:13:46.166Z","0.0.0-114":"2013-09-02T17:25:19.511Z","0.0.0-115":"2013-09-02T17:29:21.053Z","0.0.0-116":"2013-09-06T13:57:02.920Z","0.0.0-117":"2013-09-06T14:17:23.905Z","0.0.0-118":"2013-09-06T14:20:21.812Z","0.0.0-119":"2013-09-06T14:22:43.944Z","0.0.0-120":"2013-09-06T14:24:26.942Z","0.0.0-121":"2013-09-06T14:26:42.675Z","0.0.0-122":"2013-09-06T14:26:55.611Z","0.0.0-123":"2013-09-11T09:34:27.375Z","0.0.0-124":"2013-09-12T12:18:04.211Z","0.0.0-125":"2013-09-12T12:24:01.583Z","0.0.0-126":"2013-09-12T12:27:18.265Z","0.0.0-127":"2013-09-12T12:29:33.108Z","0.0.0-128":"2013-09-12T12:33:39.683Z","0.0.0-129":"2013-09-12T12:35:09.996Z","0.0.0-130":"2013-09-12T12:35:39.725Z","0.0.0-131":"2013-09-12T12:58:44.646Z","0.0.0-132":"2013-09-12T13:31:26.625Z","0.0.0-133":"2013-09-12T13:32:43.419Z","0.0.0-134":"2013-09-16T12:46:24.573Z","0.0.0-135":"2013-09-18T12:34:21.082Z","0.0.0-136":"2013-09-19T17:31:31.451Z","0.0.0-137":"2013-09-19T17:44:02.535Z","0.0.0-138":"2013-09-19T17:52:27.871Z","0.0.0-139":"2013-09-19T18:02:11.777Z","0.0.0-140":"2013-09-19T18:03:40.795Z","0.0.0-141":"2013-09-19T18:06:28.554Z","0.0.0-142":"2013-09-21T12:02:10.233Z","0.0.0-143":"2013-09-21T12:03:32.443Z","0.0.0-144":"2013-09-21T12:06:12.083Z","0.0.0-145":"2013-09-21T12:07:02.694Z","0.0.0-146":"2013-09-21T12:18:59.186Z","0.0.0-147":"2013-09-21T12:20:13.804Z","0.0.0-148":"2013-09-21T12:22:46.688Z","0.0.0-149":"2013-09-21T12:24:02.246Z","0.0.0-150":"2013-09-21T12:26:10.706Z","0.0.0-151":"2013-09-21T12:27:35.895Z","0.0.0-152":"2013-09-21T12:28:52.207Z","0.0.0-153":"2013-09-21T12:32:22.371Z","0.0.0-154":"2013-09-21T12:33:43.162Z","0.0.0-155":"2013-09-22T13:54:19.071Z","0.0.0-156":"2013-09-22T14:34:44.470Z","0.0.0-157":"2013-09-22T14:38:40.878Z","0.0.0-158":"2013-09-22T14:45:00.852Z","0.0.0-159":"2013-09-22T14:45:39.382Z","0.0.0-160":"2013-09-22T14:48:04.616Z","0.0.0-161":"2013-09-22T14:49:48.432Z","0.0.0-162":"2013-09-22T14:53:00.903Z","0.0.0-163":"2013-09-22T15:00:21.456Z","0.0.0-164":"2013-09-22T15:17:18.515Z","0.0.0-165":"2013-09-22T15:19:43.724Z","0.0.0-166":"2013-09-22T15:22:21.790Z","0.0.0-167":"2013-09-22T15:23:47.537Z","0.0.0-168":"2013-09-22T15:25:43.339Z","0.0.0-169":"2013-09-22T15:31:48.922Z","0.0.0-170":"2013-09-22T15:33:29.792Z","0.0.0-171":"2013-09-22T15:35:03.850Z","0.0.0-172":"2013-09-22T15:36:30.243Z","0.0.0-173":"2013-09-22T15:38:28.410Z","0.0.0-174":"2013-09-22T15:39:33.585Z","0.0.0-175":"2013-09-22T15:41:08.752Z","0.0.0-176":"2013-09-22T15:41:48.708Z","0.0.0-177":"2013-09-22T15:44:58.531Z","0.0.0-178":"2013-09-23T11:34:29.794Z","0.0.0-179":"2013-09-23T11:51:58.897Z","0.0.0-180":"2013-09-23T11:57:38.465Z","0.0.0-181":"2013-09-23T12:01:02.019Z","0.0.0-182":"2013-09-23T12:29:06.626Z","0.0.0-183":"2013-09-23T12:32:01.579Z","0.0.0-184":"2013-09-23T12:32:36.826Z","0.0.0-185":"2013-09-23T12:52:03.361Z","0.0.0-186":"2013-09-23T13:02:27.847Z","0.0.0-187":"2013-09-23T13:26:02.688Z","0.0.0-188":"2013-09-23T13:35:08.491Z","0.0.0-189":"2013-09-23T13:39:22.709Z","0.0.0-190":"2013-09-23T13:40:08.666Z","0.0.0-191":"2013-09-23T13:41:19.495Z","0.0.0-192":"2013-09-23T13:48:53.363Z","0.0.0-193":"2013-09-23T14:01:33.704Z","0.0.0-194":"2013-09-23T14:04:44.869Z","0.0.0-195":"2013-09-23T14:15:56.475Z","0.0.0-196":"2013-09-23T14:31:22.240Z","0.0.0-197":"2013-09-23T14:44:25.444Z","0.0.0-198":"2013-09-23T14:48:46.939Z","0.0.0-199":"2013-09-23T14:56:36.626Z","0.0.0-200":"2013-09-23T15:00:17.439Z","0.0.0-201":"2013-09-23T15:04:23.700Z","0.0.0-202":"2013-09-23T15:08:32.031Z","0.0.0-203":"2013-09-23T15:09:45.900Z","0.0.0-204":"2013-09-23T15:14:40.176Z","0.0.0-205":"2013-09-23T15:15:09.766Z","0.0.0-206":"2013-09-23T15:16:40.857Z","0.0.0-207":"2013-09-23T15:23:48.755Z","0.0.0-208":"2013-09-23T15:31:19.048Z","0.0.0-209":"2013-09-23T15:35:58.224Z","0.0.0-210":"2013-09-23T15:39:17.224Z","0.0.0-211":"2013-09-23T15:40:50.372Z","0.0.0-212":"2013-09-23T15:59:45.055Z","0.0.0-213":"2013-09-23T16:38:52.342Z","0.0.0-214":"2013-09-23T16:43:02.739Z","0.0.0-215":"2013-09-23T16:45:16.087Z","0.0.0-216":"2013-09-23T16:46:30.396Z","0.0.0-217":"2013-09-23T17:46:17.852Z","0.0.0-218":"2013-09-23T17:50:09.188Z","0.0.0-219":"2013-09-25T12:21:07.615Z","0.0.0-220":"2013-09-25T12:22:39.059Z","0.0.0-222":"2013-09-25T15:24:47.770Z","0.0.0-223":"2013-09-25T15:28:25.862Z","0.0.0-224":"2013-09-25T15:31:23.436Z","0.0.0-225":"2013-09-26T16:05:26.758Z","0.0.0-226":"2013-09-27T11:25:57.120Z","0.0.0-227":"2013-09-27T11:28:31.997Z","0.0.0-228":"2013-09-27T11:31:59.548Z","0.0.0-229":"2013-09-27T13:41:33.636Z","0.0.0-230":"2013-09-27T13:45:26.954Z","0.0.0-231":"2013-09-27T13:48:10.873Z","0.0.0-232":"2013-09-27T13:55:20.651Z","0.0.0-233":"2013-09-27T13:56:41.260Z","0.0.0-234":"2013-09-27T14:03:42.096Z","0.0.0-235":"2013-09-27T14:07:13.205Z","0.1.0-0":"2013-10-09T17:14:15.680Z","0.1.0-1":"2013-10-09T17:15:49.548Z","0.1.0-2":"2013-10-09T17:16:50.395Z","0.1.0-3":"2013-10-09T17:20:03.193Z","0.1.0-4":"2013-10-09T17:21:33.315Z","0.1.0-5":"2013-10-09T17:22:32.250Z","0.1.0-6":"2013-10-09T19:21:07.302Z","0.1.0-7":"2013-10-09T19:24:46.333Z","0.1.0-8":"2013-10-09T19:25:55.533Z","0.1.0-9":"2013-10-09T19:28:56.669Z","0.1.0-10":"2013-10-09T19:30:02.827Z","0.1.0-11":"2013-10-09T19:38:46.149Z","0.1.0-12":"2013-10-09T19:39:29.339Z","0.1.0-13":"2013-10-09T19:43:31.700Z","0.1.0-14":"2013-10-09T19:44:19.302Z","0.1.0-15":"2013-10-09T19:45:53.972Z","0.1.0-16":"2013-10-10T11:37:34.111Z","0.1.0-17":"2013-10-10T14:15:01.193Z","0.1.0-18":"2013-10-10T14:15:13.515Z","0.1.0-19":"2013-10-10T14:18:54.506Z","0.1.0-20":"2013-10-10T14:26:26.477Z","0.1.0-21":"2013-10-10T14:40:35.631Z","0.1.0-22":"2013-10-10T16:02:53.283Z","0.1.0-23":"2013-10-10T16:04:12.757Z","0.1.0-24":"2013-10-10T16:04:58.329Z","0.1.0-25":"2013-10-10T19:47:36.894Z","0.1.0-26":"2013-10-10T19:56:33.176Z","0.1.0-27":"2013-10-10T19:58:13.414Z","0.1.0-28":"2013-10-10T19:59:09.156Z","0.1.0-29":"2013-10-10T20:01:23.936Z","0.1.0-30":"2013-10-10T20:06:30.093Z","0.1.0-31":"2013-10-10T20:09:39.124Z","0.1.0-32":"2013-10-10T20:11:59.304Z","0.1.0-33":"2013-10-10T20:22:13.088Z","0.1.0-34":"2013-10-10T20:25:52.130Z","0.1.0-35":"2013-10-10T20:27:21.272Z","0.1.0-36":"2013-10-10T20:29:17.356Z","0.1.0-37":"2013-10-10T20:30:00.397Z","0.1.0-38":"2013-10-10T20:33:42.509Z","0.1.0-39":"2013-10-12T12:20:54.613Z","0.1.0-40":"2013-10-12T13:00:13.600Z","0.1.0-41":"2013-10-12T13:31:24.323Z","0.1.0-42":"2013-10-12T13:33:33.928Z","0.1.0-43":"2013-10-12T13:34:35.504Z","0.1.0-44":"2013-10-12T14:22:24.267Z","0.1.0-45":"2013-10-12T14:35:02.454Z","0.1.0-46":"2013-10-12T14:37:06.387Z","0.1.0-47":"2013-10-12T14:49:20.203Z","0.1.0-48":"2013-10-12T15:02:02.539Z","0.1.0-49":"2013-10-12T15:05:45.740Z","0.1.0-50":"2013-10-12T15:29:23.845Z","0.1.0-51":"2013-10-12T15:54:34.269Z","0.1.0-52":"2013-10-12T15:58:18.320Z","0.1.0-53":"2013-10-12T16:06:40.813Z","0.1.0-54":"2013-10-12T16:24:01.526Z","0.1.0-55":"2013-10-12T16:28:16.392Z","0.1.0-56":"2013-10-12T16:42:07.085Z","0.1.0-57":"2013-10-12T16:46:55.837Z","0.1.0-58":"2013-10-16T12:30:23.957Z","0.1.0-59":"2013-10-16T12:37:57.009Z","0.1.0-60":"2013-10-16T15:26:22.127Z","0.1.0-61":"2013-10-16T15:54:26.090Z","0.1.0-62":"2013-10-16T16:15:05.333Z","0.1.0-63":"2013-10-16T16:18:34.669Z","0.1.0-64":"2013-10-16T16:22:55.728Z","0.1.0-65":"2013-10-16T16:30:14.081Z","0.1.0-66":"2013-10-16T16:45:16.846Z","0.1.0-67":"2013-10-16T17:57:22.889Z","0.1.0-68":"2013-10-16T18:02:44.791Z","0.1.0-69":"2013-10-16T18:25:28.527Z","0.1.0-70":"2013-10-16T19:00:16.822Z","0.1.0-71":"2013-10-16T19:26:27.019Z","0.1.0-72":"2013-10-17T10:08:10.050Z","0.1.0-73":"2013-10-17T10:09:42.822Z","0.1.0-74":"2013-10-17T10:45:45.090Z","0.1.0-75":"2013-10-17T10:51:04.420Z","0.1.0-76":"2013-10-17T11:01:36.431Z","0.1.0-77":"2013-10-17T11:33:04.327Z","0.1.0-78":"2013-10-17T11:34:18.261Z","0.1.0-79":"2013-10-17T11:44:04.596Z","0.1.0-80":"2013-10-17T12:12:35.606Z","0.1.0-81":"2013-10-17T12:14:28.147Z","0.1.0-82":"2013-10-17T12:37:13.519Z","0.1.0-83":"2013-10-17T12:39:57.461Z","0.1.0-84":"2013-10-17T12:40:37.016Z","0.1.0-85":"2013-10-20T18:40:16.803Z","0.1.0-86":"2013-10-20T18:41:30.031Z","0.1.0-87":"2013-10-20T18:41:54.583Z","0.1.0-88":"2013-10-20T18:47:55.127Z","0.1.0-89":"2013-10-20T18:48:41.578Z","0.1.0-90":"2013-10-20T18:49:49.432Z","0.1.0-91":"2013-10-20T18:50:13.096Z","0.1.0-92":"2013-10-20T19:07:41.193Z","0.1.0-93":"2013-10-20T19:08:41.142Z","0.1.0-94":"2013-10-20T19:13:55.085Z","0.1.0-95":"2013-10-21T17:44:30.639Z","0.1.0-96":"2013-10-21T17:55:36.261Z","0.1.0-97":"2013-10-21T17:58:37.643Z","0.1.0-98":"2013-10-21T18:03:04.630Z","0.1.0-99":"2013-10-21T18:09:22.721Z","0.1.0-100":"2013-10-21T18:09:51.843Z","0.1.0-101":"2013-10-21T18:11:38.186Z","0.1.0-102":"2013-10-21T18:12:57.189Z","0.1.0-103":"2013-10-21T18:13:32.119Z","0.1.0-104":"2013-10-21T18:15:18.467Z","0.1.0-105":"2013-10-21T18:22:05.922Z","0.1.0-106":"2013-10-21T18:22:45.102Z","0.1.0-107":"2013-10-21T18:27:07.600Z","0.1.0-108":"2013-10-21T18:27:34.707Z","0.1.0-109":"2013-10-21T18:28:38.127Z","0.1.0-110":"2013-10-21T18:32:59.455Z","0.1.0-111":"2013-10-21T18:33:29.253Z","0.1.0-112":"2013-10-21T18:34:11.878Z","0.1.0-113":"2013-10-21T18:35:56.433Z","0.1.0-114":"2013-10-21T18:37:07.473Z","0.1.0-115":"2013-10-21T18:37:47.583Z","0.1.0-116":"2013-10-21T18:38:40.407Z","0.1.0-117":"2013-10-21T18:39:21.367Z","0.1.0-118":"2013-10-21T18:40:26.334Z","0.1.0-119":"2013-10-21T19:09:00.945Z","0.1.0-120":"2013-10-21T19:22:20.059Z","0.1.0-121":"2013-10-21T19:22:37.744Z","0.1.0-122":"2013-10-21T19:24:05.794Z","0.1.0-123":"2013-10-21T19:30:44.059Z","0.1.0-124":"2013-10-21T19:58:10.992Z","0.1.0-125":"2013-10-21T19:59:10.103Z","0.1.0-126":"2013-10-21T21:40:57.769Z","0.1.0-127":"2013-10-21T21:42:44.027Z","0.1.0-128":"2013-10-22T12:40:24.030Z","0.1.0-129":"2013-10-22T12:43:50.120Z","0.1.0-130":"2013-10-22T12:44:45.141Z","0.1.0-131":"2013-10-22T12:46:32.950Z","0.1.0-132":"2013-10-22T12:47:00.231Z","0.1.0-133":"2013-10-22T12:49:05.059Z","0.1.0-134":"2013-10-22T12:52:20.719Z","0.1.0-135":"2013-10-22T12:53:18.652Z","0.1.0-136":"2013-10-22T12:53:58.453Z","0.1.0-137":"2013-10-22T12:54:21.092Z","0.1.0-138":"2013-10-22T12:55:24.136Z","0.1.0-139":"2013-10-22T12:56:10.006Z","0.1.0-140":"2013-10-22T12:56:56.253Z","0.1.0-141":"2013-10-22T12:58:00.685Z","0.1.0-142":"2013-10-22T14:21:44.917Z","0.1.0-143":"2013-10-22T14:22:24.228Z","0.1.0-144":"2013-10-22T14:22:51.563Z","0.1.0-145":"2013-10-22T14:23:23.465Z","0.1.0-146":"2013-10-22T14:23:51.376Z","0.1.0-147":"2013-10-22T14:35:49.675Z","0.1.0-148":"2013-10-22T14:36:57.200Z","0.1.0-149":"2013-10-22T14:39:50.012Z","0.1.0-150":"2013-10-22T14:40:18.539Z","0.1.0-151":"2013-10-22T14:40:45.186Z","0.1.0-152":"2013-10-22T14:41:59.415Z","0.1.0-153":"2013-10-22T14:42:57.584Z","0.1.0-154":"2013-10-22T14:43:38.787Z","0.1.0-155":"2013-10-22T14:44:19.283Z","0.1.0-156":"2013-10-22T14:44:50.245Z","0.1.0-157":"2013-10-22T14:55:58.746Z","0.1.0-158":"2013-10-22T14:59:49.403Z","0.1.0-159":"2013-10-22T15:00:34.120Z","0.1.0-160":"2013-10-22T19:00:44.570Z","0.1.0-161":"2013-10-22T19:13:01.898Z","0.1.0-162":"2013-10-22T19:15:00.293Z","0.1.0-163":"2013-10-23T15:45:15.291Z","0.1.0-164":"2013-10-23T15:46:19.946Z","0.1.0-165":"2013-10-23T15:47:04.260Z","0.1.0-166":"2013-10-23T15:48:51.694Z","0.1.0-167":"2013-10-23T15:49:33.809Z","0.1.0-168":"2013-10-23T16:03:26.090Z","0.1.0-169":"2013-10-23T16:08:47.822Z","0.1.0-170":"2013-10-24T12:03:50.119Z","0.1.0-171":"2013-10-24T12:14:25.369Z","0.1.0-172":"2013-10-24T12:23:04.515Z","0.1.0-173":"2013-10-24T14:18:45.009Z","0.1.0-174":"2013-10-24T19:29:23.276Z","0.1.0-175":"2013-10-24T19:44:46.073Z","0.1.0-176":"2013-10-25T23:26:26.563Z"},"author":{"name":"Adrian Seeley"},"repository":{"type":"git","url":"git://github.com/adrianseeley/yarnlang.git"}}