{"_id":"sql-concat","_rev":"29-a96cbb80cf43dc8b22fbe66ebe8b64b2","name":"sql-concat","dist-tags":{"latest":"4.1.0"},"versions":{"0.1.0":{"name":"sql-concat","version":"0.1.0","keywords":["sql","mysql"],"author":{"name":"TehShrike"},"license":"WTFPL","_id":"sql-concat@0.1.0","maintainers":[{"name":"tehshrike","email":"me@JoshDuff.com"}],"homepage":"https://github.com/TehShrike/sql-concat","bugs":{"url":"https://github.com/TehShrike/sql-concat/issues"},"dist":{"shasum":"8e8732515d80407defb2048bf7148c27d072b822","tarball":"https://registry.npmjs.org/sql-concat/-/sql-concat-0.1.0.tgz","integrity":"sha512-tUdTzbaJiRMJc7JeDH8Qs5dpcjpVMgKRQ6+YbZCqK7/PWbReH10Kh0mrS5Z7T2W439ksrJkoKOIPGie50WTT0Q==","signatures":[{"sig":"MEUCIGMgNF7jQ2Nmv/zzeLyZTnL/1YqfImGldhBQ39kkoI5EAiEAwqmGx4PkLNomdWwEHx9sTc6r0GatsEAyJwzxOzmjH4A=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"8e8732515d80407defb2048bf7148c27d072b822","gitHead":"951a95a497674da9a44cefc9490b52fbef12bd48","scripts":{"test":"node test.js && echo 'Testing readme examples...' && node node_modules/jsmd readme.md && echo 'All done!'"},"_npmUser":{"name":"tehshrike","email":"me@JoshDuff.com"},"repository":{"url":"git@github.com:TehShrike/sql-concat.git","type":"git"},"_npmVersion":"2.6.0","description":"It's just fancy string concatenation","directories":{},"_nodeVersion":"1.4.1","devDependencies":{"jsmd":"^0.3.0","tape":"^4.0.0"}},"0.2.0":{"name":"sql-concat","version":"0.2.0","keywords":["sql","mysql"],"author":{"name":"TehShrike"},"license":"WTFPL","_id":"sql-concat@0.2.0","maintainers":[{"name":"tehshrike","email":"me@JoshDuff.com"}],"homepage":"https://github.com/TehShrike/sql-concat","bugs":{"url":"https://github.com/TehShrike/sql-concat/issues"},"dist":{"shasum":"7fe034616f2094574f590da10a0f4e7c527031d7","tarball":"https://registry.npmjs.org/sql-concat/-/sql-concat-0.2.0.tgz","integrity":"sha512-U0f4Mvtuyg3d0v0WoVDllGJr//vt/0T2cnSTO4MBWuSm5+01DqEUsNf4iEId1IrRWCVgxIBaYqT8k+jvBMdNVg==","signatures":[{"sig":"MEUCIQCTBwT55FoksipEOzgnvaiEZPiZG2MifanxDitCy6N+9wIgcHrDBeTCtUUYc6oIdHL94A3ZOONMq9JQQlC+0QejOOw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"7fe034616f2094574f590da10a0f4e7c527031d7","gitHead":"d37d54e425ba0a82aa02aa3715ab9c92792a0832","scripts":{"test":"node test.js && echo 'Testing readme examples...' && node node_modules/jsmd readme.md && echo 'All done!'"},"_npmUser":{"name":"tehshrike","email":"me@JoshDuff.com"},"repository":{"url":"git@github.com:TehShrike/sql-concat.git","type":"git"},"_npmVersion":"2.6.0","description":"It's just fancy string concatenation","directories":{},"_nodeVersion":"1.4.1","devDependencies":{"jsmd":"^0.3.0","tape":"^4.0.0"}},"0.3.0":{"name":"sql-concat","version":"0.3.0","keywords":["sql","mysql"],"author":{"name":"TehShrike"},"license":"WTFPL","_id":"sql-concat@0.3.0","maintainers":[{"name":"tehshrike","email":"me@JoshDuff.com"}],"homepage":"https://github.com/TehShrike/sql-concat","bugs":{"url":"https://github.com/TehShrike/sql-concat/issues"},"dist":{"shasum":"f6113f60fe7724c5cba68c7dde9a3971e428951b","tarball":"https://registry.npmjs.org/sql-concat/-/sql-concat-0.3.0.tgz","integrity":"sha512-odregYvqs9WgSxPtmGpDOVjTbnUSH5KPbgfn83toxfe6THTGgSRd0u5Xf7oBuZ+AmEPoshyy1hIDHTh3dC8IwQ==","signatures":[{"sig":"MEYCIQCcTRghoUOpc7krc5hk6OtvG6S6fWRuDnr01+jB2xH/6gIhAOfxdfce1Na60A3rUI8e3XG0gZN0657FSHhk2l958IWo","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"f6113f60fe7724c5cba68c7dde9a3971e428951b","gitHead":"ed709f178736952151b9dd71ce4ec4cb00e6ae4a","scripts":{"test":"node test.js && echo 'Testing readme examples...' && node node_modules/jsmd readme.md && echo 'All done!'"},"_npmUser":{"name":"tehshrike","email":"me@JoshDuff.com"},"repository":{"url":"git@github.com:TehShrike/sql-concat.git","type":"git"},"_npmVersion":"2.6.0","description":"It's just fancy string concatenation","directories":{},"_nodeVersion":"1.4.1","devDependencies":{"jsmd":"^0.3.0","tape":"^4.0.0"}},"0.4.0":{"name":"sql-concat","version":"0.4.0","keywords":["sql","mysql"],"author":{"name":"TehShrike"},"license":"WTFPL","_id":"sql-concat@0.4.0","maintainers":[{"name":"tehshrike","email":"me@JoshDuff.com"}],"homepage":"https://github.com/TehShrike/sql-concat","bugs":{"url":"https://github.com/TehShrike/sql-concat/issues"},"dist":{"shasum":"34fccce3e7a0fe09e82f03fc8cebf686253462bc","tarball":"https://registry.npmjs.org/sql-concat/-/sql-concat-0.4.0.tgz","integrity":"sha512-UUAcHjnLT18+Q3RYnAc+oRFNnyYMfLz4I/vUpNmmUCPW6DEvgEsCBXP2bIbxGdvKdwXqfKkLZp/i8UoAIGZRDA==","signatures":[{"sig":"MEQCIDCPFV/aoI2KrNeKhH6AsEC7KDdGDyaVY365aqPfBEQfAiAvTzNA6mGTzN4lsab3y4ijvRLxHssPR+FFHRM3c8EpsA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"34fccce3e7a0fe09e82f03fc8cebf686253462bc","gitHead":"4aead5fe68d69370cf31007aa8406792775dc486","scripts":{"test":"node test.js && echo 'Testing readme examples...' && jsmd readme.md && echo 'All done!'"},"_npmUser":{"name":"tehshrike","email":"me@JoshDuff.com"},"repository":{"url":"git@github.com:TehShrike/sql-concat.git","type":"git"},"_npmVersion":"2.6.0","description":"It's just fancy string concatenation","directories":{},"_nodeVersion":"1.4.1","devDependencies":{"tape":"^4.0.0"}},"0.6.0":{"name":"sql-concat","version":"0.6.0","keywords":["sql","mysql"],"author":{"name":"TehShrike"},"license":"WTFPL","_id":"sql-concat@0.6.0","maintainers":[{"name":"tehshrike","email":"me@JoshDuff.com"}],"homepage":"https://github.com/TehShrike/sql-concat","bugs":{"url":"https://github.com/TehShrike/sql-concat/issues"},"dist":{"shasum":"38015544a83f60a1765e3f945c9a3870ccae4116","tarball":"https://registry.npmjs.org/sql-concat/-/sql-concat-0.6.0.tgz","integrity":"sha512-alP1pur1jZci2/ASQxpB5p8M21kV4wch8O8Q79/XarA6iSExbFDruE1cSwem7kkiV/0BjJVkj1d8FsBmN6CKpA==","signatures":[{"sig":"MEQCIG/glccYUisIc6ZHzUi01uO74/7+VoTCLC7dYI44NTYIAiBcYiABmTdUPJbv5x83p2GhWWdKI4u1XRRe49Y5OhBalw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"38015544a83f60a1765e3f945c9a3870ccae4116","gitHead":"082c33c263043d03a8836506d55bc7f56aa763e3","scripts":{"test":"node test.js && echo 'Testing readme examples...' && jsmd readme.md && echo 'All done!'"},"_npmUser":{"name":"tehshrike","email":"me@JoshDuff.com"},"repository":{"url":"git@github.com:TehShrike/sql-concat.git","type":"git"},"_npmVersion":"2.6.0","description":"It's just fancy string concatenation","directories":{},"_nodeVersion":"1.4.1","devDependencies":{"jsmd":"^0.3.0","tape":"^4.0.0"}},"1.0.0":{"name":"sql-concat","version":"1.0.0","keywords":["sql","mysql"],"author":{"name":"TehShrike"},"license":"WTFPL","_id":"sql-concat@1.0.0","maintainers":[{"name":"tehshrike","email":"me@JoshDuff.com"}],"homepage":"https://github.com/TehShrike/sql-concat","bugs":{"url":"https://github.com/TehShrike/sql-concat/issues"},"dist":{"shasum":"477b4099e7975f09c2b9af49d91bc364aebf669f","tarball":"https://registry.npmjs.org/sql-concat/-/sql-concat-1.0.0.tgz","integrity":"sha512-XId7y+acvti9zJxW8ZqQJcKuP6hdk9mCRQRGGdpNsgICJP3Y307eieNudvJeDp4+CdkqZCioAim5ZIq4Pk6+VQ==","signatures":[{"sig":"MEUCICQvwWMI2gxPtvR+NNk1Oo2DyIsF17bydjoCufHh6k4KAiEAwwrUbGP0pDJCj67ebYbGUFWWHmjo+V+Qx8M662OpDts=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"477b4099e7975f09c2b9af49d91bc364aebf669f","gitHead":"e949b8835ecd8cce09a3bab30827aa9ed8068cd7","scripts":{"test":"node test.js && echo 'Testing readme examples...' && jsmd readme.md && echo 'All done!'"},"_npmUser":{"name":"tehshrike","email":"me@JoshDuff.com"},"repository":{"url":"git@github.com:TehShrike/sql-concat.git","type":"git"},"_npmVersion":"2.6.0","description":"It's just fancy string concatenation","directories":{},"_nodeVersion":"1.4.1","devDependencies":{"jsmd":"^0.3.0","tape":"^4.0.0"}},"1.1.0":{"name":"sql-concat","version":"1.1.0","keywords":["sql","mysql"],"author":{"name":"TehShrike"},"license":"WTFPL","_id":"sql-concat@1.1.0","maintainers":[{"name":"tehshrike","email":"me@JoshDuff.com"}],"homepage":"https://github.com/TehShrike/sql-concat","bugs":{"url":"https://github.com/TehShrike/sql-concat/issues"},"dist":{"shasum":"7ce08a88253ccd9b613e63dc70e4053832ff156b","tarball":"https://registry.npmjs.org/sql-concat/-/sql-concat-1.1.0.tgz","integrity":"sha512-sKlQh9rYHFAJoLqoh2Pu1DUxIToZ2m1bSxWmtWppBCK9wn2rO+9uk2f29az+ITeXUj/ZAMzmqtvas9gUyUkWjQ==","signatures":[{"sig":"MEYCIQC3JH+g8o70cBdTrUEmMEadn7DzBzXqo55t/WJsjpG/BwIhAPi+8C0ZgoJbgT6iJl7YE9H9S+/nuZ6uYqI0xvtYmLHu","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"7ce08a88253ccd9b613e63dc70e4053832ff156b","gitHead":"1668b78172f5025099d8ac7094fd957ae62becfd","scripts":{"test":"node test.js && echo 'Testing readme examples...' && jsmd readme.md && echo 'All done!'"},"_npmUser":{"name":"tehshrike","email":"me@JoshDuff.com"},"repository":{"url":"git+ssh://git@github.com/TehShrike/sql-concat.git","type":"git"},"_npmVersion":"3.3.10","description":"It's just fancy string concatenation","directories":{},"_nodeVersion":"2.0.1","devDependencies":{"jsmd":"^0.3.0","tape":"^4.0.0"}},"1.1.1":{"name":"sql-concat","version":"1.1.1","keywords":["sql","mysql"],"author":{"name":"TehShrike"},"license":"WTFPL","_id":"sql-concat@1.1.1","maintainers":[{"name":"tehshrike","email":"me@JoshDuff.com"}],"homepage":"https://github.com/TehShrike/sql-concat","bugs":{"url":"https://github.com/TehShrike/sql-concat/issues"},"dist":{"shasum":"bbeab3206670a39dda6cf85e2f7ae69eda2af757","tarball":"https://registry.npmjs.org/sql-concat/-/sql-concat-1.1.1.tgz","integrity":"sha512-XUwEi9G7ydZ6W2jEI3BqK3rkj4o15OgEUg2d3d9R78BXwk0HoRzuMUXQmvTHz8va2GNqJN6+EWnTSsACTrHZAg==","signatures":[{"sig":"MEYCIQCtv44o/2jd5hJZIf/V9WXpttaI4U/vN/vblcuqW0GbkAIhANnaZN1j0EdAobzrg/Xgl18tiWYD5ySjLLjtO4qmvBLI","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"bbeab3206670a39dda6cf85e2f7ae69eda2af757","gitHead":"cd293e180329b2bb3e3b8f6c6d7edf9e62f93c3e","scripts":{"test":"node test.js && echo 'Testing readme examples...' && jsmd readme.md && echo 'All done!'"},"_npmUser":{"name":"tehshrike","email":"me@JoshDuff.com"},"repository":{"url":"git+ssh://git@github.com/TehShrike/sql-concat.git","type":"git"},"_npmVersion":"3.3.10","description":"It's just fancy string concatenation","directories":{},"_nodeVersion":"2.0.1","devDependencies":{"jsmd":"^0.3.0","tape":"^4.0.0"}},"1.1.2":{"name":"sql-concat","version":"1.1.2","keywords":["sql","mysql"],"author":{"name":"TehShrike"},"license":"WTFPL","_id":"sql-concat@1.1.2","maintainers":[{"name":"tehshrike","email":"me@JoshDuff.com"}],"homepage":"https://github.com/TehShrike/sql-concat","bugs":{"url":"https://github.com/TehShrike/sql-concat/issues"},"dist":{"shasum":"a3d329b113c3488e273c89930874fb31bd9440d3","tarball":"https://registry.npmjs.org/sql-concat/-/sql-concat-1.1.2.tgz","integrity":"sha512-j+4z7lsqdmsrfhGMzhPbbkF+0Pta/47fr2Y15wYJQO3vxSFEhDBvdefvOh7Gy1j3rNPdBsFP2NalHiLyw5PluA==","signatures":[{"sig":"MEUCIQCloF76oT+fJoxOwjoD8KsvJGpU/9T+oDLM9yQzXRPrBAIgUzNE64N8tW91pGZ/g/iuLLJPkuUzOh7dT4sW6JwS7Hw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"a3d329b113c3488e273c89930874fb31bd9440d3","gitHead":"bf851cf07f9b1743071d09839c2135e33c532151","scripts":{"test":"node test.js && echo 'Testing readme examples...' && jsmd readme.md && echo 'All done!'"},"_npmUser":{"name":"tehshrike","email":"me@JoshDuff.com"},"repository":{"url":"git+ssh://git@github.com/TehShrike/sql-concat.git","type":"git"},"_npmVersion":"3.3.12","description":"It's just fancy string concatenation","directories":{},"_nodeVersion":"5.1.1","devDependencies":{"jsmd":"^0.3.0","tape":"^4.0.0"}},"1.2.0":{"name":"sql-concat","version":"1.2.0","keywords":["sql","mysql"],"author":{"name":"TehShrike"},"license":"WTFPL","_id":"sql-concat@1.2.0","maintainers":[{"name":"tehshrike","email":"me@JoshDuff.com"}],"homepage":"https://github.com/TehShrike/sql-concat","bugs":{"url":"https://github.com/TehShrike/sql-concat/issues"},"dist":{"shasum":"1d30acf5efee13f7b347fe27021d449516a6924e","tarball":"https://registry.npmjs.org/sql-concat/-/sql-concat-1.2.0.tgz","integrity":"sha512-kskly3+bpdsh7rtuinboEpEVTQLBQoUGsMcqaXoqCG8pviVzC0RSBWihHJGfxmyTLCcHBcZ0QCUEoE1+bd2/LA==","signatures":[{"sig":"MEUCIQC4djtJLLnQDHuSnPtTB6y2OmL2PL+nVgKeJ8s6mBXDWwIgTyU6mboiImbp46iLUZCTM28U/Qk1438wAYHHH1nB6po=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"1d30acf5efee13f7b347fe27021d449516a6924e","gitHead":"9c5ae0c5778f4ac34dfbb9be82a03f0994f80fff","scripts":{"test":"node test.js && echo 'Testing readme examples...' && jsmd readme.md && echo 'All done!'"},"_npmUser":{"name":"tehshrike","email":"me@JoshDuff.com"},"repository":{"url":"git+ssh://git@github.com/TehShrike/sql-concat.git","type":"git"},"_npmVersion":"3.8.6","description":"It's just fancy string concatenation","directories":{},"_nodeVersion":"6.1.0","devDependencies":{"jsmd":"^0.3.0","tape":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sql-concat-1.2.0.tgz_1462892917069_0.7254410632885993","host":"packages-16-east.internal.npmjs.com"}},"1.3.0":{"name":"sql-concat","version":"1.3.0","keywords":["sql","mysql"],"author":{"name":"TehShrike"},"license":"WTFPL","_id":"sql-concat@1.3.0","maintainers":[{"name":"tehshrike","email":"me@JoshDuff.com"}],"homepage":"https://github.com/TehShrike/sql-concat","bugs":{"url":"https://github.com/TehShrike/sql-concat/issues"},"dist":{"shasum":"a51de72c075d9f8848a8b548cd5497f3927c70d1","tarball":"https://registry.npmjs.org/sql-concat/-/sql-concat-1.3.0.tgz","integrity":"sha512-te7qNF/rKKBPtPNRUf9GVrklgfVNsCcTa05C1fZhAlKWiJL9/bO7IhSgyV2+ZVHWSvThYChCKMyJ08yAkCdu4w==","signatures":[{"sig":"MEUCIQDGNuGFVLsUIgOgToX766qo8EFBha2UtInEaaml7IYt3QIgf/kvK27sOfsvuisIik0qXKv4bzsjAL+5bzFdkeWpXHM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"a51de72c075d9f8848a8b548cd5497f3927c70d1","gitHead":"9df1e8f07ade1ac082c801fd86be8ff6d8e03f44","scripts":{"test":"node test.js && echo 'Testing readme examples...' && jsmd readme.md && echo 'All done!'"},"_npmUser":{"name":"tehshrike","email":"me@JoshDuff.com"},"repository":{"url":"git+ssh://git@github.com/TehShrike/sql-concat.git","type":"git"},"_npmVersion":"3.10.5","description":"It's just fancy string concatenation","directories":{},"_nodeVersion":"6.1.0","devDependencies":{"jsmd":"^0.3.0","tape":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sql-concat-1.3.0.tgz_1470237909021_0.3085938061121851","host":"packages-16-east.internal.npmjs.com"}},"1.3.1":{"name":"sql-concat","version":"1.3.1","keywords":["sql","mysql"],"author":{"name":"TehShrike"},"license":"WTFPL","_id":"sql-concat@1.3.1","maintainers":[{"name":"tehshrike","email":"me@JoshDuff.com"}],"homepage":"https://github.com/TehShrike/sql-concat","bugs":{"url":"https://github.com/TehShrike/sql-concat/issues"},"dist":{"shasum":"d0946b085134202835f05792549556ba97295c70","tarball":"https://registry.npmjs.org/sql-concat/-/sql-concat-1.3.1.tgz","integrity":"sha512-DxZJZg5xOKl9z3KAS77TXtTGQHnA3C4AsdYyHips6mYWN9CR7Oagz64JpC84bLaAmyx0QF0LseArI9hXJgKFlg==","signatures":[{"sig":"MEUCIHujTwk7sgwcPBRv7xcOyUqwl246A+b5hxYCyCJIATY1AiEAucTKNM/jlzoE83u8ntAwDATQnVBsdNDUs2ZamhBa52k=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","gitHead":"7c6b2f4da342607126786f8bfb8a6312c2726004","scripts":{"test":"node test.js && echo 'Testing readme examples...' && jsmd readme.md && echo 'All done!'"},"_npmUser":{"name":"tehshrike","email":"me@JoshDuff.com"},"repository":{"url":"git+ssh://git@github.com/TehShrike/sql-concat.git","type":"git"},"_npmVersion":"5.3.0","description":"It's just fancy string concatenation","directories":{},"_nodeVersion":"8.1.2","devDependencies":{"jsmd":"^0.3.0","tape":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sql-concat-1.3.1.tgz_1500747430549_0.1955048011150211","host":"s3://npm-registry-packages"}},"1.3.2":{"name":"sql-concat","version":"1.3.2","keywords":["sql","mysql"],"author":{"name":"TehShrike"},"license":"WTFPL","_id":"sql-concat@1.3.2","maintainers":[{"name":"tehshrike","email":"me@JoshDuff.com"}],"homepage":"https://github.com/TehShrike/sql-concat","bugs":{"url":"https://github.com/TehShrike/sql-concat/issues"},"dist":{"shasum":"fe6bb3a8c8acfedd57131615a40d7bd07db18ffc","tarball":"https://registry.npmjs.org/sql-concat/-/sql-concat-1.3.2.tgz","fileCount":8,"integrity":"sha512-tCj7YnvmiJ4uonksya/OANfeoxHR1b1rzYq3OptSsmK4dqPn8gOiu0yj0AFuGfNOJ1dOZDJnbDEvBORvEOG9Tw==","signatures":[{"sig":"MEQCIDE86Ft2jCflHk3X4uDyPrODPtsWtusI/VQACdDNGtRmAiAmeu4uP/mBFXMzaHX2bET2wOgcH+/EeOqZ5tL5Tpc7QQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20085},"main":"index.js","gitHead":"a9d208cb6635d5da72780bee93af42a30f071f5a","scripts":{"test":"node test.js && echo 'Testing readme examples...' && jsmd readme.md && echo 'All done!'"},"_npmUser":{"name":"tehshrike","email":"me@JoshDuff.com"},"repository":{"url":"git+ssh://git@github.com/TehShrike/sql-concat.git","type":"git"},"_npmVersion":"5.6.0","description":"It's just fancy string concatenation","directories":{},"_nodeVersion":"8.6.0","_hasShrinkwrap":false,"devDependencies":{"jsmd":"^0.3.0","tape":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sql-concat_1.3.2_1523477633024_0.4368799631334779","host":"s3://npm-registry-packages"}},"1.3.3":{"name":"sql-concat","version":"1.3.3","keywords":["sql","mysql"],"author":{"name":"TehShrike"},"license":"WTFPL","_id":"sql-concat@1.3.3","maintainers":[{"name":"tehshrike","email":"me@JoshDuff.com"}],"homepage":"https://github.com/TehShrike/sql-concat","bugs":{"url":"https://github.com/TehShrike/sql-concat/issues"},"dist":{"shasum":"ed7e17ce8608c3f79e6adfe8a9f7b79882844be6","tarball":"https://registry.npmjs.org/sql-concat/-/sql-concat-1.3.3.tgz","fileCount":8,"integrity":"sha512-qb/IoPVQ420OJYoav5fZ4qG1tjYU5wRNds+85TrRZZ0Y5rbLmLU0K6WBYqCe0UV23mWQY0rB2x+3PDH9/6EgJA==","signatures":[{"sig":"MEYCIQDXbNy3fLUjlJJRmC7iXvlYH0ydnTungI6tYZ+na8dT0QIhAJn7m+d/HbAQVgUm5/nfVCLB6q1Nz9Ze/YYyZnHn1hTf","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20372,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbbauoCRA9TVsSAnZWagAAV1sP/Ak8W+G2Bw5QxZt4X/9o\nMZKDQP94Qv9zJDrOBKHgLxBAX/ce8AkFRu+HpO7WFb5rNKybW9851YmXwNdI\n3rF2T+U3kwArqhZG+w62b/lfYqGDLjfwdJghORnFm4a5OL1gS87GtOyi9FDP\nfgoCo/GMF3yH+DX0dEvKEox0bO0U6QAnOOoUaPfET3clXpHCeaH0K+cF+y9/\nB3cYugrJLdHhP+V+oWVHSASJiUqq6KYO39vCpqoM6B9hDGO90tRhJv2hn6hP\nYxRe9OAIAXkmkHGqBi/5+sZ3dAPpTQTMkaVj3G0Eb/os6BNF2llMGYmmd1PC\n7NK1+otvT2x48VQLE59zJnvyrcookCUZCuCeITYYdgaIjITJHd5ikV2CiGdc\nL5Z6jIMHDeZ++bs+5NMzsjMYVl1njI+blKSkmlqXVIFPMJMbXXtyOlKTKjlF\nza4F8EHqQLQG+/XgNshSeF9+NeHbuHIO+aJZLV3FyZaNX44TAUudGUNee+hp\nXGRaISnAaJHi38jg++/Pity/SE6o44LtQxL4geNjPcMfOKs/CMh53iAbhXll\n2PTVmaSzfZdi3pRuVmRU2OKhqqrL70xa50rb8f05rptzDNqk4vtwnwYsZLv8\naXD10h5AoQKXwVNpERD5/maA7easESS55DE+ObnLXUAFKlXr8me5YYgg6SyN\nCaxX\r\n=QEu6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"7e1c6ab14decc2893f698a8baf460c8ec6dcde77","scripts":{"test":"node test.js && echo 'Testing readme examples...' && jsmd readme.md && echo 'All done!'"},"_npmUser":{"name":"tehshrike","email":"me@JoshDuff.com"},"repository":{"url":"git+ssh://git@github.com/TehShrike/sql-concat.git","type":"git"},"_npmVersion":"6.2.0","description":"It's just fancy string concatenation","directories":{},"_nodeVersion":"10.8.0","_hasShrinkwrap":false,"devDependencies":{"jsmd":"1.0.0","tape":"4.9.1"},"_npmOperationalInternal":{"tmp":"tmp/sql-concat_1.3.3_1533914023809_0.08707046876433577","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"sql-concat","version":"2.0.0","keywords":["sql","mysql"],"author":{"name":"TehShrike"},"license":"WTFPL","_id":"sql-concat@2.0.0","maintainers":[{"name":"tehshrike","email":"me@JoshDuff.com"}],"homepage":"https://github.com/TehShrike/sql-concat","bugs":{"url":"https://github.com/TehShrike/sql-concat/issues"},"dist":{"shasum":"c67c70489be9196d30df7548cf06dec22521a274","tarball":"https://registry.npmjs.org/sql-concat/-/sql-concat-2.0.0.tgz","fileCount":8,"integrity":"sha512-Smd73WJom0JRs1vpfo8ZHrOshHRm391yVDJh3lG8pu2rXlN5mIyY/d9DJhkn1sGtCKArpEcPhp/u8++N7o+zfQ==","signatures":[{"sig":"MEMCIDGlzn1809qb55qPnbZBrJoVKJXDWFioR1Yhp6CkAHUqAh8wwThcsiwAP6nkj0Orn22ZefIQXXZV5qcnLoazzTUQ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20297,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbbbEWCRA9TVsSAnZWagAA5sEP/j1aE+OJibe5bhoNQIoY\nsdgBwC3pHadrzs/h+0pMEva01W7ltLAQ3X96locP7bXDGygRUucM5nCWrnRD\nzCpmIDWDHpz84bvRa4JhxXXY81u0YuIFt+mBuPKT8trPtRmgpO7i5KMT0rpC\nXeuovSIJetGYNgY85otzDnUa8kX+hnKTN9VVr5U1LhZqpUo5i5zMIoizLKJC\nNBppibMtkkctZ7IZbqzEmXG2ozGclVDeewoN6Mx11oVozrc6759ckwzpYvnE\n6lAu6UH1ryDkP1McreVvAhaziIVfIjswmQcZVelciJ1Mw70bER7ilX77u+l7\nNcVEICgbo20v5XTL2A8ymttnO7lULzOt7/o4llMcQC80ZSLQ9EFAqQtTJI78\nQ+2Y47/0dGBlcIa6Vy/aDaJ0FoIGmFGE8DPvAz9wRtzwZ90mC90oEkejo35m\nYt9TlWrfD7A5SsXMs0LgY0kQH5eGqF37jVkYARJwFnuqS5oCVqFH9sqOpmWw\nXk5D4R2QExLcptdGlX5hNysaI9OeBv1lSsZxX5OkDeg+K2BGJAPAhXzdiQJ0\nQaD7wxM2qxFugLc1GQRB6AL9fx2x7CJ+OOL8oUohiANtKjBkXXfJWK3ddWDH\ni9Uj+gVC5hBrd6Uj/5arp1SgYy6N68hzuXS44xhl+ORO8lZ+C+4yvvRxE1kO\njOqg\r\n=mHfN\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","engines":{"node":">=6"},"gitHead":"c6ad88b996a0b1e62200fe7e3f44b61c241da27d","scripts":{"test":"node test.js && echo 'Testing readme examples...' && jsmd readme.md && echo 'All done!'"},"_npmUser":{"name":"tehshrike","email":"me@JoshDuff.com"},"repository":{"url":"git+ssh://git@github.com/TehShrike/sql-concat.git","type":"git"},"_npmVersion":"6.2.0","description":"It's just fancy string concatenation","directories":{},"_nodeVersion":"10.8.0","_hasShrinkwrap":false,"devDependencies":{"jsmd":"1.0.0","tape":"4.9.1"},"_npmOperationalInternal":{"tmp":"tmp/sql-concat_2.0.0_1533915413457_0.10076523713221852","host":"s3://npm-registry-packages"}},"2.0.1":{"name":"sql-concat","version":"2.0.1","keywords":["sql","mysql"],"author":{"name":"TehShrike"},"license":"WTFPL","_id":"sql-concat@2.0.1","maintainers":[{"name":"tehshrike","email":"me@JoshDuff.com"}],"homepage":"https://github.com/TehShrike/sql-concat","bugs":{"url":"https://github.com/TehShrike/sql-concat/issues"},"dist":{"shasum":"4615a4bcfd0e933a6de759892d2ae20f721c008c","tarball":"https://registry.npmjs.org/sql-concat/-/sql-concat-2.0.1.tgz","fileCount":8,"integrity":"sha512-t9y7YApbcEaLOwexz+U/jLWczfKKmQJzmCXfMTf8jklomENM5JIFzQ6KKVPBB0uHmbz42dpdaU1ufSHlDjxuNQ==","signatures":[{"sig":"MEQCIBXCk8DbDqWf1r+LjT0ubU7vwl/sdoKFJYtb4Tq0IRBXAiB89wBD4DgYz5XX7LYo6XBBIbBfnK8Hbw0xrwKklzrjvA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20272,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbbfYqCRA9TVsSAnZWagAAJSwQAJcNySQSmY1skO1v5Oah\nIaxS4s0B+iB+kfjuhSU6VPj/omeJmY+gQNkKJGR9gWsZOB8Vy5quamoJaZT5\nlq0WbSIPx6lpkzriKlIYQwX3kVA5t7ZlCFW+GR0tkKbu9m4ySfQMi3VgIywQ\nFs71HtfWFSVCN8VYRi8HI+7dqRnI/INsgRKttFPS794U5wANvuh6mtSRNYVT\no6oUYX6wjLZAMFFieezYjexGqKtVOCY6S/fGUmqLijd9jcRHkJddNz0vHyd0\nu1gdfcllU7Q9nN4d2m7iv5fs2OL/VJrc9znHVAFeQrE+V3oqEuCGnI6CKZ4W\nN9DRALIxZe/HCTDah50s2Dlj/zOw4uVdAjUWHBie0gmkf2+rDrAc5ZXKAKju\nPsoAT+3+w0j9sNvrJaXF8Qx7y96B0kBO3UQ+CTYq0GWDNqqigERIEaRbfnL4\nKn81OujhevP9HiAVySBvsIcvfpEhchhyUVJLLTfFamW82EZx1LS3LnCiBdNw\nRmPsZNWZ67q0PVjDFv49Sm2q6nl39ZxfIBfKxV1Mun4QTY1NwkQW6ujJo6Op\nljeUqhASzv8Ia7h5jGymI56vfdGT8Evjn+952wiXJmiucgeNn5ymghS3ELGy\n3qbcR0R5RTjVdzzJ2RIwvzz4uwqyQFyYd+4A8iFBKEs7LFpXrosvGD6WwOpc\n6stw\r\n=cudp\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","engines":{"node":">=6"},"gitHead":"df8c4326f8780ac3de6b3f0bf43f40536a90b6fb","scripts":{"test":"node test.js && echo 'Testing readme examples...' && jsmd readme.md && echo 'All done!'"},"_npmUser":{"name":"tehshrike","email":"me@JoshDuff.com"},"repository":{"url":"git+ssh://git@github.com/TehShrike/sql-concat.git","type":"git"},"_npmVersion":"6.2.0","description":"It's just fancy string concatenation","directories":{},"_nodeVersion":"10.8.0","_hasShrinkwrap":false,"devDependencies":{"jsmd":"1.0.0","tape":"4.9.1"},"_npmOperationalInternal":{"tmp":"tmp/sql-concat_2.0.1_1533933097423_0.05572856262468884","host":"s3://npm-registry-packages"}},"2.1.0":{"name":"sql-concat","version":"2.1.0","keywords":["sql","mysql"],"author":{"name":"TehShrike"},"license":"WTFPL","_id":"sql-concat@2.1.0","maintainers":[{"name":"tehshrike","email":"me@JoshDuff.com"}],"homepage":"https://github.com/TehShrike/sql-concat","bugs":{"url":"https://github.com/TehShrike/sql-concat/issues"},"dist":{"shasum":"81f4de454fccb2da026896884df03aa00e2a52bc","tarball":"https://registry.npmjs.org/sql-concat/-/sql-concat-2.1.0.tgz","fileCount":9,"integrity":"sha512-L8pi8CKaDbm9PYNWCUjHRZWSdKKy4JrelOrCCZ5n/pQurUbyDA0aCIe2q37V5DwarjKp0npR03b7DuWe30T8FQ==","signatures":[{"sig":"MEQCIHot7IkZh0WpyH4JyFIdsNTj2t7ubcc5gnm/TVd9Yrw7AiA9qJe63t/rmSuCXKquOecCS5s0knC5ZHXPY0CUqYKWew==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":24699,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbn/F1CRA9TVsSAnZWagAAkQ8P/1WtCR4sz5T0oTZm2GWp\n2X1DXUZ/S0Rxj3q5iibgm+jzA3ectDixLFcBje4JrxgdhSYlRQK32PPZf94w\ntiyN6/GQMPnpRGhFvEsgi6GhNiY8wXuJ+T7FFT62Q9MA+OpZFW1rjI31t55q\nav531p+RymV8Cvwzb0/pIEiEnYOsH3DLiFuPZ9lK6sFLBJf1LcPDVY4qUBLv\nRHvwiuStKKgIbxzFGhTaHAFJdRdIx2ngIJfEt7Sy65GK8zEh9B4p3/yF/2hd\nbIXHXGhmWPOTN4pFjQPfC7YKfzpNA0V4MrGQ9smlIQ1nupvIEHscb0RuGIdJ\nhLsPeNzn6FIn1/Qah+gPpAJKpiJaPGf8mt6xj0YJmrmG462GhShK0wiahlaO\nEEh1Nqc4C19SIwqX7Vu4+RpXf4K1UWCTr7Nkd3/TivsYOTlB7xE0nr0nzl+D\nfy1xfLYfBJxrKk+hHjqZqjldh3H/CIxV2vw2bZa2RzOBVpYXNSf5NTvgWgH0\nS9LJdx9TPBdaSGRV31XMbw+HmwqwPw+7JdeykGesq0bwVXq9VsG7BBVe8YjC\nhRpYAng5CeCnYdyq0yYiCPPxQgChl5gIHAS9sQju4t5Yd3+r/IgAlbdOR2I+\n7cajPcUySYfkak4fa1lo6pNhzPdEoCTLIa+oyJ+3TjU+ICYnEhnUAAi+pmDa\nXg56\r\n=JCUq\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","engines":{"node":">=6"},"gitHead":"516d0b1ee9ac8931a08e14a24ca30ebec27b9125","scripts":{"test":"node test.js && echo 'Testing readme examples...' && jsmd readme.md && echo 'All done!'"},"_npmUser":{"name":"tehshrike","email":"me@JoshDuff.com"},"repository":{"url":"git+ssh://git@github.com/TehShrike/sql-concat.git","type":"git"},"_npmVersion":"6.2.0","description":"It's just fancy string concatenation","directories":{},"_nodeVersion":"10.8.0","_hasShrinkwrap":false,"devDependencies":{"jsmd":"1.0.0","tape":"4.9.1"},"_npmOperationalInternal":{"tmp":"tmp/sql-concat_2.1.0_1537208692246_0.6541052602510915","host":"s3://npm-registry-packages"}},"2.2.0":{"name":"sql-concat","version":"2.2.0","keywords":["sql","mysql"],"author":{"name":"TehShrike"},"license":"WTFPL","_id":"sql-concat@2.2.0","maintainers":[{"name":"tehshrike","email":"me@JoshDuff.com"}],"homepage":"https://github.com/TehShrike/sql-concat","bugs":{"url":"https://github.com/TehShrike/sql-concat/issues"},"dist":{"shasum":"2bbbf571cb9e88b1ee4b82cd7659dbcd06d549ea","tarball":"https://registry.npmjs.org/sql-concat/-/sql-concat-2.2.0.tgz","fileCount":9,"integrity":"sha512-Bg/SAboWSIQAVba4j+8ALm0zSJWOYIm723+sxAcnsagBpwxByNpN/mGHl8R0s5wPn2ODpWR6lWwxHvnaEPClzQ==","signatures":[{"sig":"MEUCIC2oh695SjaTlobkgV+TyFVYE/k3TVa9ekVm1CiI2QPwAiEAutFHj5/gRyh2CCBvI1KGUYkJT/R+UV4fdq9Q0gS1JPw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":26548,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcVG80CRA9TVsSAnZWagAAYDYP/ibIxptMqrFfGbuw8IF0\n8fLDS5HAgRWGwHqQdrAL5zLO+D7FHvjcLmkomFTxjldfwoyVrgvbY4j9IDal\nMgUp4lkz1oXULNS6wMiDXhegbV8C1pLN3NQR9EToA3L5xcpDU3hXN25+8B3o\nS4iB5t3L9A1e4p0vAzVmWxjVt3+IXMbCQ7dQabFShvNsl52SJ3qOT5VFHJ4n\n0XHb9+OcGtXEU0NyaK5XIoRucCGJ9ZLM62cGjRjYMj+eKdGnqH8yAdNGLGYM\nUoaj5YSDQ6+lvA5lMPJLKpyUC93idaJ+ua9TdmgHd3hVxYU+SZ5AiXCSJmHi\nym+zu0rHZ+qXvDm5oWh0Bo0vbhLv87Ba0w8mrbYJL2Lx21klaFC3jm6NoKzN\nNGNt8PNztPbTtKz9E5D5qmTBhQodtNSFW3ul84iO3p3sqZwpMYJhz8BGNLyI\nEIjV6HLuVFTj31QbfNLu5rOzIsYe8dQxTLg2BGQ6UuQ6PQ3x6IE3cnMq4xzA\nKKaT76IQwBaHLuRZEdRxNRFasaasse7v1/Ae2blOUCmB5aU0gaJmqrENcpyI\nlXJaveufQX5+485gKr9QRy2P+YwYDEUj0fFQmutH3pbAyG1bWaawDL8zGkmZ\nA4caasCg5XbDk4NvTrM1rr9gR+PSAuf723VU02+rx2i68E0JrTec3WZn3WyH\nv5k3\r\n=dx+n\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","engines":{"node":">=6"},"gitHead":"e3008644f655b7120f1edfe2983a5bef7c4ba652","scripts":{"test":"node test.js && echo 'Testing readme examples...' && jsmd readme.md && echo 'All done!'"},"_npmUser":{"name":"tehshrike","email":"me@JoshDuff.com"},"repository":{"url":"git+ssh://git@github.com/TehShrike/sql-concat.git","type":"git"},"_npmVersion":"6.4.1","description":"It's just fancy string concatenation","directories":{},"_nodeVersion":"10.14.0","_hasShrinkwrap":false,"devDependencies":{"jsmd":"1.0.0","tape":"4.9.1"},"_npmOperationalInternal":{"tmp":"tmp/sql-concat_2.2.0_1549037363782_0.6052699514003368","host":"s3://npm-registry-packages"}},"2.3.0":{"name":"sql-concat","version":"2.3.0","keywords":["sql","mysql"],"author":{"name":"TehShrike"},"license":"WTFPL","_id":"sql-concat@2.3.0","maintainers":[{"name":"tehshrike","email":"me@JoshDuff.com"}],"homepage":"https://github.com/TehShrike/sql-concat","bugs":{"url":"https://github.com/TehShrike/sql-concat/issues"},"dist":{"shasum":"834361d3f4eda63ca511a477f560fbf10c7e144f","tarball":"https://registry.npmjs.org/sql-concat/-/sql-concat-2.3.0.tgz","fileCount":9,"integrity":"sha512-wiqiye3U849NYndxO09MCP+nWpmFbicPBQNj5zK39plW/LU0l1EzL7r2g0JJUijuVtid8OFBpX7rMdYBvWdiFw==","signatures":[{"sig":"MEYCIQD2DL3S8UZ/9ythWiox9momFnniI0twSQXuAuH6wUMCQwIhAMe3bhUEqt85LuTJvfbOFigXFVrQdVh+MJfEzEv3S0VR","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28693,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdDjXsCRA9TVsSAnZWagAA0MsQAKUleaZzHK28ZkCMaei3\n4nMbpR7hz+PHKujIfDaK0e6x9LB1cmvD4YkmKiE8MfscN+s/9BFAMoP4bhoc\nNiIpaYOvt8sJgypICw4aPBl6HF6+6xDKNMm4AfkOD9E0DsfoaUKijjVqngaF\nNgaNtkai4Je8z2a/6ef9oJszV+zvAd6AvLlvlyCuVWrqpaujMXMgfhZ2DYro\nmubU8wGzQDQpMEkTkzSA6pQgRcTWxWaez5bRsqXsj9jGmrq8V5qRoEk4qOa+\nuPWcyl924mnrr/pxy7pNsFIJXqxqmbDTJT7RVXIeidYtYURGhPYLUBaMChqu\n9cfcHHtmK7MQNbiM93cpe7YPV/kL3dhlOK5nLbMN+cGlqxhKxAGrQCq0uECp\nQjFaOhj0lU5H/SwpiSC+KAxslAXSp/LO+Ws5Db7gS3QIpPsJowuPwSLDENr+\n0+XMZ5ydPPOuCx2BVtRNe9CXPtQo46hiYzjGnx3WhuKr5pZ82fYOt+LrC2EF\n7X8XIQmUOrbsBYBuscQGvVZkGXMEjATuBgCLu5bRzmYlZ3DpLT/Kklzeg5nY\nylIJRnhKeC4awsauhEVDHWKEOCcFo4zM1IEkdtZUF3ushF4WMCrYWg2ValfQ\nNK7wjCNyCTfWsLJZ6RBL8NnrjI4k8Szrg+HyMG9blQtjUeuczL23WZ6nOv4h\nWwoj\r\n=dJ2l\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","engines":{"node":">=6"},"gitHead":"41495ff7c88d4ddaec500eb5d224be55b17af94d","scripts":{"test":"node test.js && echo 'Testing readme examples...' && jsmd readme.md && echo 'All done!'"},"_npmUser":{"name":"tehshrike","email":"me@JoshDuff.com"},"repository":{"url":"git+ssh://git@github.com/TehShrike/sql-concat.git","type":"git"},"_npmVersion":"6.9.0","description":"It's just fancy string concatenation","directories":{},"_nodeVersion":"12.2.0","dependencies":{"sqlstring":"^2.3.1"},"_hasShrinkwrap":false,"devDependencies":{"jsmd":"1.0.0","tape":"4.9.1"},"_npmOperationalInternal":{"tmp":"tmp/sql-concat_2.3.0_1561212395402_0.6806239127180425","host":"s3://npm-registry-packages"}},"2.3.1":{"name":"sql-concat","version":"2.3.1","keywords":["sql","mysql"],"author":{"name":"TehShrike"},"license":"WTFPL","_id":"sql-concat@2.3.1","maintainers":[{"name":"tehshrike","email":"me@JoshDuff.com"}],"homepage":"https://github.com/TehShrike/sql-concat","bugs":{"url":"https://github.com/TehShrike/sql-concat/issues"},"dist":{"shasum":"f12d3a48e6324e5381d3f65724fe36304db7223e","tarball":"https://registry.npmjs.org/sql-concat/-/sql-concat-2.3.1.tgz","fileCount":9,"integrity":"sha512-yNS3EtkrYCdTetSgPBrwRD8/aSllMwYaUU2Jt9mOsPkxEuDDkthMd4bkcnm+mtOeXhbQVKfH01Vvb7fyiLmAfw==","signatures":[{"sig":"MEQCIDbFTn1bwvw2RJ7fbmZyDdohio1fIsXGeM9Anw59wPtQAiB/9kqKCNM3GM//JrX0gq2+ifwigciHgU/p7WvnA4KBiQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29944,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdDj3dCRA9TVsSAnZWagAAFiQP/2RJIZrlMe0QJoX9iMl/\n/qC3eVYIp3Bf/I49GW5TCfmrUTaUTjxueCazmMmDudQRsyFUg4p2n/YF9Gww\n5VNp7F13EvI1LDXT+10khr9x/2h4uL4ZxI2pqBLbHypwX8ftGAZLkjkaZExq\niq2tCOksnaWXCMU7MJinCIE7DYlT4MjR7U/MDPXxRLsP0BZtWp/y1igUhojY\niIpjlQ8A1HQs6qqSsDupI6aeRI0fR/c8w2A6sj3drNHhTyGnM4GolKVbhjkk\nqXgFKF6IK6OWS0RATXjLO/ZVnRjgrcYeARgdexrG65SCqC+lvZKeLYIH5ey2\nf1vdOPeQZe8pq1ywCsiMd3AK6DmBDglTwUiN7qze/4QGf99uS5XhC8wD27qg\nikcUyvzUQTYWNBRgiSF4wJ2oXHhb+7F/yMWQShyqPcKHu47AGmo9vR3DINp3\nb/EPVB2V/+UJU8YdBoBgurhLcdLuqsihrrGXBEdxSrUa4L/05o8t9ivi5q1X\nidaTMSCyub5Qt8XvEhBPRVOXNqUq8iCEwwO9VlGdJmNobeUO3TgEoRVvVM36\nYuaPQ+J1Ba6PWNLXLJJzTGfrA85Y8OZb/YJysQMH1ft3Nkm6t/ZPrTLfUjMG\nU0V/aRPhXCq79iCw09kqlhCTOKAEYkmTMQsbCo9jBTOceSM7aTjo8RhEhA3K\nLz99\r\n=HrGY\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","engines":{"node":">=6"},"gitHead":"ccbb610e3e9025e24359bc0e4232a4198f156fd1","scripts":{"test":"node test.js && echo 'Testing readme examples...' && jsmd readme.md && echo 'All done!'"},"_npmUser":{"name":"tehshrike","email":"me@JoshDuff.com"},"repository":{"url":"git+ssh://git@github.com/TehShrike/sql-concat.git","type":"git"},"_npmVersion":"6.9.0","description":"It's just fancy string concatenation","directories":{},"_nodeVersion":"12.2.0","dependencies":{"sqlstring":"^2.3.1"},"_hasShrinkwrap":false,"devDependencies":{"jsmd":"1.0.0","tape":"4.9.1"},"_npmOperationalInternal":{"tmp":"tmp/sql-concat_2.3.1_1561214429031_0.1872639861432015","host":"s3://npm-registry-packages"}},"3.0.0":{"name":"sql-concat","version":"3.0.0","keywords":["sql","mysql"],"author":{"name":"TehShrike"},"license":"WTFPL","_id":"sql-concat@3.0.0","maintainers":[{"name":"tehshrike","email":"me@JoshDuff.com"}],"homepage":"https://github.com/TehShrike/sql-concat","bugs":{"url":"https://github.com/TehShrike/sql-concat/issues"},"dist":{"shasum":"374ad704314d1ba62cdadd667ad2a0748d45b322","tarball":"https://registry.npmjs.org/sql-concat/-/sql-concat-3.0.0.tgz","fileCount":10,"integrity":"sha512-AUdvlbbX6itOzxaWCgR05fTfq8NzHPm4WeehCi5lynrguLUY1Ar8FUIjIOAoZfSSYwME2+uYLw9kdNSi6vtR9Q==","signatures":[{"sig":"MEUCIBEmttnwtRzFJOSWIEwntZvUoVgvrE+3VT50kzZfHPHqAiEAl0qHz9Qnx+9B3SpKHVRJl8b8Q/Vf+Q6U9tiXWdtmmQ8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30695,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgUhdpCRA9TVsSAnZWagAAu6gQAKT+X6vBKQ9mDi2Jcm9E\nPmmWTg1y2TMVbL6l8nNMuKl0/0gTvJ4PKe7c8ioYgvj5PUjjNhvb8CA90cIG\nxCXGjBuXXKoAREb1t7wDbppnY7dvqtV4CDmcCrOY7a9AmQC3aDSxYx0GgdxY\nOQ/Cx5wnuibPsl7mW7IgM1M9wUVkZOM2/RE7BY+qF8OlH/1qugP6yPMqFtPp\n6Y0xe6g5/XgsRLJV580wcq842tLnCw9b5Y5EhBkNxVdhsmKc2mxQKJOShoKx\nl6NvNY7ViwVYD3xCTGQW8eabHBtqMKVoeEUH1rVA2MBxRUNkf+M7+JNZJqQF\nMkHe0Xrlk4QjkcB1PkRaKioCHa3gp6f1GViA001Q+Vh0+32P7YK8vSp8SSAG\nO7ef2c8EVOAQhVeZwhf9NLVLMnSuzfMo/MNlpSYyMOEQEQKAl5zaGxCpTAl1\nmWhHr/8U4T2MwFUv8ba4AbHXjxkeWaqqDJdPqsiKCTIrzjJtHAMVMJShF/wD\noaC+/sC6sUba0VpIhOi4w85vYkmmJsxqv4GrMq/Tlmg/4rKcms+jwYjyLQg9\nFYoAUspiwRHIg5Hh5gvfnir0TN8EEzYrW4H1LP+bQVA6LsjN8ayncqeegoxR\nouDK7JebPT0EYjcohUqE4ioe1j3xMlFhiQ20hve/ZFQSwcsL/k7ZODa5Jq4I\numXv\r\n=6F53\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","engines":{"node":">=6"},"gitHead":"c6a4b8b60406a1c5865dcf2c13517dc4eb1b9995","scripts":{"test":"node test.js && echo 'Testing readme examples...' && jsmd readme.md && echo 'All done!'"},"_npmUser":{"name":"tehshrike","email":"me@JoshDuff.com"},"repository":{"url":"git+ssh://git@github.com/TehShrike/sql-concat.git","type":"git"},"_npmVersion":"7.5.3","description":"It's just fancy string concatenation","directories":{},"_nodeVersion":"14.14.0","dependencies":{"sqlstring":"^2.3.1"},"_hasShrinkwrap":false,"devDependencies":{"jsmd":"1.0.0","tape":"4.9.1"},"_npmOperationalInternal":{"tmp":"tmp/sql-concat_3.0.0_1615992681090_0.9651229189462671","host":"s3://npm-registry-packages"}},"3.1.0":{"name":"sql-concat","version":"3.1.0","keywords":["sql","mysql"],"author":{"name":"TehShrike"},"license":"WTFPL","_id":"sql-concat@3.1.0","maintainers":[{"name":"tehshrike","email":"me@JoshDuff.com"}],"homepage":"https://github.com/TehShrike/sql-concat","bugs":{"url":"https://github.com/TehShrike/sql-concat/issues"},"dist":{"shasum":"2683db734bb963667b201ada461ed9c72789616a","tarball":"https://registry.npmjs.org/sql-concat/-/sql-concat-3.1.0.tgz","fileCount":12,"integrity":"sha512-JIZLl1hodmSa8kk5IpMx+2D71vdb+jf5sCgnqXnBZSyvlVYLvuicxS/0hKTVCMMr7Gf3K0lYoU6HGLMN9TbArQ==","signatures":[{"sig":"MEUCIQDkzgEhUcKChzdqX/I4qqWkaobyLJhHB62ApaAtYeSUsgIgVXvvWqdNlBCT7QlKX/B7kbpF8mc2ORad+q0ToVg5pP0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":34582,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj0VVmACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmryfA//f+4I4fG2ouFx+2eS3nLf6rUKRuei33URxijh1OJYld06fT+d\r\nSDjpq8EMdEM76ZZkYjj7v8QeljlHXMjd4ZXju9rzvuzChG29EQn7WExRqCf5\r\nrmwEgLAvrPvBWrqj4GpksF+gOw/Ge89I4Qvzoqy1et4ZQnJ32x/N8jgCuKuv\r\njmmRqAdgiMv7b5+QZJISGXxEyLkoq4CICsCzpvNO1PR6ROQCcfTveuGUGiGs\r\nz7oy+R68XDJq5qbq9BVeQAzbEm5B4dZ7qrJwcWJJsPDd3g5FC5Jr0Mr4fblC\r\nK4H1miN3vduNtgKk1Mj1UNRoVP380TQOdzecMtg8R6mKnnPktmwSpk3u1b99\r\nOSr6MAfHdF6ppEwWeLcPWBdeRpo41HFX2ipeUcMHtIJV3lKVF4z9fZ1yIUe/\r\ngL8P0v5ieydDURgnQlgzhdKvUuVIMfj7XgDfXulEv/js6mVp39xs6blmi31e\r\nkbIcwSrOpI0INIxqxW+Q8XxygtS89614zYQEa0qRWJc/lakNGgpn6z9+Sktk\r\nxtpm8vFjB4+RWIW2K91cOAvrsTb4Q9gnx1GuvgQ67VTgjvDtT0tIh4j9+fbb\r\nudlEJeb5pmyNwK42sbCYqpTS88sH+n8J5zrNOontQ9jhefH2ZG/OrPs1roQu\r\ng2yATsvB6rvUR5fUfBM/IrAqJtjHihiuV7E=\r\n=sXGS\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","engines":{"node":">=6"},"gitHead":"9cc4b776709d6bde29b711511a4132daf21e7fbb","scripts":{"test":"node test.js && echo 'Testing readme examples...' && jsmd readme.md && echo 'All done!'"},"_npmUser":{"name":"tehshrike","email":"me@JoshDuff.com"},"repository":{"url":"git+ssh://git@github.com/TehShrike/sql-concat.git","type":"git"},"_npmVersion":"8.1.4","description":"It's just fancy string concatenation","directories":{},"_nodeVersion":"18.2.0","dependencies":{"sqlstring":"^2.3.1"},"_hasShrinkwrap":false,"devDependencies":{"jsmd":"1.0.0","tape":"4.9.1"},"_npmOperationalInternal":{"tmp":"tmp/sql-concat_3.1.0_1674663270543_0.9340720488687917","host":"s3://npm-registry-packages"}},"4.0.0":{"name":"sql-concat","version":"4.0.0","keywords":["sql","mysql"],"author":{"name":"TehShrike"},"license":"WTFPL","_id":"sql-concat@4.0.0","maintainers":[{"name":"tehshrike","email":"me@JoshDuff.com"}],"homepage":"https://github.com/TehShrike/sql-concat","bugs":{"url":"https://github.com/TehShrike/sql-concat/issues"},"dist":{"shasum":"037a50da23767828792a52a2ed2ff39cb844a1e1","tarball":"https://registry.npmjs.org/sql-concat/-/sql-concat-4.0.0.tgz","fileCount":13,"integrity":"sha512-jj/IdyeQA6yD9th94JDN1oneYbgS0J837xYiOsGILGwZAgKXK4PAqcn0CtZggGxBY9C3a9D/KT2KEvxWRGB+ew==","signatures":[{"sig":"MEYCIQDGgeqzxDOCjUwjqlyb3ShgJ0QtIJIp6hhQJA7H1jSu3QIhAJzUOHYYGSm3kvXZbkJnBeupGLZn0BU1vsfVPI8TfRP8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36986},"main":"index.js","type":"module","types":"index.d.ts","gitHead":"9272e7338c76c95e4d7cead1cd2c28778465c863","scripts":{"test":"node --test test.js"},"_npmUser":{"name":"tehshrike","email":"me@JoshDuff.com"},"repository":{"url":"git+ssh://git@github.com/TehShrike/sql-concat.git","type":"git"},"_npmVersion":"11.1.0","description":"It's just fancy string concatenation","directories":{},"_nodeVersion":"22.14.0","dependencies":{"sqlstring":"^2.3.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sql-concat_4.0.0_1746110037075_0.7049967807682551","host":"s3://npm-registry-packages-npm-production"}},"4.0.1":{"name":"sql-concat","version":"4.0.1","keywords":["sql","mysql"],"author":{"name":"TehShrike"},"license":"WTFPL","_id":"sql-concat@4.0.1","maintainers":[{"name":"tehshrike","email":"me@JoshDuff.com"}],"homepage":"https://github.com/TehShrike/sql-concat","bugs":{"url":"https://github.com/TehShrike/sql-concat/issues"},"dist":{"shasum":"32e289b1a4b357263bb5712fe6f760ccb1d38644","tarball":"https://registry.npmjs.org/sql-concat/-/sql-concat-4.0.1.tgz","fileCount":13,"integrity":"sha512-VMgefrvklkAOhjiM+vaCuA6vDg/yggRmdh/LyNsdpxS+m1KPK3NbHIKaaTsfJsjkzBIUPo4S3kOLLZuOIyX3Vw==","signatures":[{"sig":"MEYCIQC8xxLbgGDaoB0xv/RY0T9EqiPGxSnnXXhBaO0dIhSLXAIhAIVKCahpuK9w+mzDXMIwQMavsdOnQWdOrLzGpB98v+2m","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37032},"main":"index.js","type":"module","types":"index.d.ts","gitHead":"c64af0006f643283033efc2fbf060672bb67176c","scripts":{"test":"node --test test.js"},"_npmUser":{"name":"tehshrike","email":"me@JoshDuff.com"},"repository":{"url":"git+ssh://git@github.com/TehShrike/sql-concat.git","type":"git"},"_npmVersion":"11.1.0","description":"It's just fancy string concatenation","directories":{},"_nodeVersion":"22.14.0","dependencies":{"sqlstring":"^2.3.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sql-concat_4.0.1_1748459128905_0.0013345207791410907","host":"s3://npm-registry-packages-npm-production"}},"4.1.0":{"name":"sql-concat","version":"4.1.0","description":"It's just fancy string concatenation","type":"module","main":"index.js","types":"index.d.ts","scripts":{"test":"node --test test.js"},"repository":{"type":"git","url":"git+ssh://git@github.com/TehShrike/sql-concat.git"},"keywords":["sql","mysql"],"author":{"name":"TehShrike"},"license":"WTFPL","bugs":{"url":"https://github.com/TehShrike/sql-concat/issues"},"homepage":"https://github.com/TehShrike/sql-concat","dependencies":{"sqlstring":"^2.3.1"},"gitHead":"30ebc1a435fda32ca08649beb469d3ea0c5f1789","_id":"sql-concat@4.1.0","_nodeVersion":"24.10.0","_npmVersion":"11.6.4","dist":{"integrity":"sha512-z5eElUoalc1daM5IrfVMsl6rL2OpXqpmG8lXcDPEhLrw1Hn0BuceVgHxW5tLRSllxu7kVudmn0OeRCuAXKxrVA==","shasum":"4aed644487a8dc94a863014d92f9021c765f0f35","tarball":"https://registry.npmjs.org/sql-concat/-/sql-concat-4.1.0.tgz","fileCount":13,"unpackedSize":37135,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIBGZeGpaZHP127uwkX+4ru+KOTjQt7nTrUS2fC2cWdqDAiBiU8YweO4afk/lFnDyZFWdP0waaZMl+7YwYvOl9moMWg=="}]},"_npmUser":{"name":"tehshrike","email":"me@JoshDuff.com"},"directories":{},"maintainers":[{"name":"tehshrike","email":"me@JoshDuff.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sql-concat_4.1.0_1771946431581_0.3675246776137975"},"_hasShrinkwrap":false}},"time":{"created":"2015-04-17T02:57:13.129Z","modified":"2026-02-24T15:20:31.856Z","0.1.0":"2015-04-17T02:57:13.129Z","0.2.0":"2015-04-19T02:36:41.747Z","0.3.0":"2015-04-19T03:36:09.033Z","0.4.0":"2015-04-19T04:15:19.952Z","0.6.0":"2015-04-24T01:10:02.535Z","1.0.0":"2015-04-24T01:13:02.661Z","1.1.0":"2015-11-06T23:07:26.548Z","1.1.1":"2015-11-06T23:10:49.464Z","1.1.2":"2015-12-10T02:15:59.879Z","1.2.0":"2016-05-10T15:08:38.338Z","1.3.0":"2016-08-03T15:25:10.232Z","1.3.1":"2017-07-22T18:17:11.518Z","1.3.2":"2018-04-11T20:13:53.229Z","1.3.3":"2018-08-10T15:13:43.926Z","2.0.0":"2018-08-10T15:36:53.574Z","2.0.1":"2018-08-10T20:31:37.488Z","2.1.0":"2018-09-17T18:24:52.471Z","2.2.0":"2019-02-01T16:09:23.883Z","2.3.0":"2019-06-22T14:06:35.542Z","2.3.1":"2019-06-22T14:40:29.263Z","3.0.0":"2021-03-17T14:51:21.244Z","3.1.0":"2023-01-25T16:14:30.777Z","4.0.0":"2025-05-01T14:33:57.256Z","4.0.1":"2025-05-28T19:05:29.141Z","4.1.0":"2026-02-24T15:20:31.722Z"},"bugs":{"url":"https://github.com/TehShrike/sql-concat/issues"},"author":{"name":"TehShrike"},"license":"WTFPL","homepage":"https://github.com/TehShrike/sql-concat","keywords":["sql","mysql"],"repository":{"type":"git","url":"git+ssh://git@github.com/TehShrike/sql-concat.git"},"description":"It's just fancy string concatenation","maintainers":[{"name":"tehshrike","email":"me@JoshDuff.com"}],"readme":"# sql-concat\n\nA MySQL query builder.\n\n```node\nimport q from 'sql-concat'\n```\n\nThe only \"breaking\" change from 1.x to 2.x is that support for versions of node older than 6 was dropped.\n\n## Designed to...\n\n- Build queries programmatically\n- Allow simple combining of query parts and their associated parameters (as opposed to writing a long query string followed by a long array of parameter values)\n- Build queries for the [mysqljs/mysql](https://github.com/mysqljs/mysql) library (specifically, by expecting its [rules for query values](https://github.com/mysqljs/mysql#escaping-query-values) instead of MySQL's stored procedure parameters)\n\n## Features\n\n- Easily compose query parts - the query-builder object is immutable, so you can build up a base query and re-use it over and over again with small modifications (for example, with conditional where clauses or joins)\n- Not as overblown as [knex](http://knexjs.org/), and allows more freedom in using string literals within query chunks\n- Queries should look good when printed out (newlines between clauses, subqueries indented with tabs)\n\n## Looks like\n\n```node\nimport q from 'sql-concat'\n```\n\n<!--js\nimport q from './index.js'\n-->\n\n```js\nconst minNumber = 0\nconst result = q.select('table1.some_boring_id, table2.something_interesting, mystery_table.surprise', q`LEAST(table1.whatever, ${minNumber}) AS whatever`)\n\t.from('table1')\n\t.join('table2', 'table1.some_boring_id = table2.id')\n\t.leftJoin('mystery_table', 'mystery_table.twister_reality = table2.probably_null_column')\n\t.where('table1.pants', 'fancy')\n\t.where('table1.britches', '>', 99)\n\t.build()\n\nconst expectedQuery = 'SELECT table1.some_boring_id, table2.something_interesting, mystery_table.surprise, LEAST(table1.whatever, ?) AS whatever\\n'\n\t\t+ 'FROM table1\\n'\n\t\t+ 'JOIN table2 ON table1.some_boring_id = table2.id\\n'\n\t\t+ 'LEFT JOIN mystery_table ON mystery_table.twister_reality = table2.probably_null_column\\n'\n\t\t+ 'WHERE table1.pants = ? AND table1.britches > ?'\n\nresult.sql // => expectedQuery\n\nresult.values // => [ 0, 'fancy', 99 ]\n\n```\n\n## A cooler example\n\nShowing off the composability/reusability of the query objects, plus some dynamic query building:\n\n```js\n\n// A partial query that we can just leave here to reuse later:\nconst MOST_RECENT_SALE = q.select('item_sale.item_id, MAX(item_sale.date) AS `date`')\n\t.from('item_sale')\n\t.groupBy('item_sale.item_id')\n\nfunction mostRecentSalePricesQuery(taxable, itemType) {\n\tconst subquery = MOST_RECENT_SALE.where('taxable', taxable)\n\n\tlet query = q.select('item.item_id, item.description, item.type, latest_sale.date AS latest_sale_date, latest_sale.price')\n\t\t.from('item')\n\t\t.join(subquery, 'latest_sale', 'latest_sale.item_id = item.item_id')\n\n\t// Dynamically add new clauses to the query as needed\n\tif (itemType) {\n\t\tquery = query.where('item.item_type', itemType)\n\t}\n\n\treturn query.build()\n}\n\n// Build those dynamic queries:\n\nconst taxableSpecialQuery = mostRecentSalePricesQuery(true, 'special')\n\nconst expectedTaxableSpecialQuery = ['SELECT item.item_id, item.description, item.type, latest_sale.date AS latest_sale_date, latest_sale.price',\n\t'FROM item',\n\t'JOIN (',\n\t'\\tSELECT item_sale.item_id, MAX(item_sale.date) AS `date`',\n\t'\\tFROM item_sale',\n\t'\\tWHERE taxable = ?',\n\t'\\tGROUP BY item_sale.item_id',\n\t') AS latest_sale ON latest_sale.item_id = item.item_id',\n\t'WHERE item.item_type = ?'].join('\\n')\n\ntaxableSpecialQuery.sql // => expectedTaxableSpecialQuery\ntaxableSpecialQuery.values // => [ true, 'special' ]\n\nconst nonTaxableQuery = mostRecentSalePricesQuery(false)\n\nconst expectedNonTaxableQuery = ['SELECT item.item_id, item.description, item.type, latest_sale.date AS latest_sale_date, latest_sale.price',\n\t'FROM item',\n\t'JOIN (',\n\t'\\tSELECT item_sale.item_id, MAX(item_sale.date) AS `date`',\n\t'\\tFROM item_sale',\n\t'\\tWHERE taxable = ?',\n\t'\\tGROUP BY item_sale.item_id',\n\t') AS latest_sale ON latest_sale.item_id = item.item_id'].join('\\n')\n\nnonTaxableQuery.sql // => expectedNonTaxableQuery\nnonTaxableQuery.values // => [ false ]\n\n```\n\n## API\n\nBecause the [mysql](https://github.com/mysqljs/mysql) package already makes inserting so easy, this module is focused on `SELECT` queries.  I've implemented new clauses as I've needed them, and it's pretty well fleshed out at the moment.\n\nIf you need a clause added that is not implemented yet, feel free to open a pull request.  If you're not sure what the API should look like, open an issue and we can talk it through.\n\n### Clauses\n\nEvery clause method returns a new immutable `q` query object.\n\n- `q.select(expression1, expression2, etc)`\n- `q.from(tablename | subquery, alias)`\n- `q.join(tablename | subquery, [alias], on_expression)`\n- `q.leftJoin(tablename | subquery, [alias], on_expression)`\n- `q.where(expression, [[comparator], value])`\n- `q.orWhere(expression, [[comparator], value])`\n- `q.whereLike(expression, value)`\n- `q.orWhereLike(expression, value)`\n- `q.having(expression, [[comparator], value])`\n- `q.orHaving(expression, [[comparator], value])`\n- `q.groupBy(expression1, expression2, etc)`\n- `q.orderBy(expression1, expression2, etc)`\n- `q.limit(offset, [row_count])`\n- `q.forUpdate()`\n- `q.lockInShareMode()`\n\n`expression` strings are inserted without being parameterized, but you can also pass in [tagged template strings](#tagged-template-strings) to do anything special.\n\nAll `value`s will be automatically escaped.  If a `value` is `NULL` it will be automatically compared with `IS`, and if it's an array it will be automatically compared with `IN()`.  Otherwise, it will be compared with `=`.\n\n```js\nconst whereInResult = q.select('fancy')\n    .from('table')\n    .where('table.pants', [ 'fancy', 'boring' ])\n    .build()\n\nconst whereInQuery = 'SELECT fancy\\n'\n        + 'FROM table\\n'\n        + 'WHERE table.pants IN(?)'\n\nwhereInResult.sql // => whereInQuery\n\nwhereInResult.values // => [ [ 'fancy', 'boring' ] ]\n```\n\nPut another way, calling `q.select('column1, column2')` is just as acceptable as calling `q.select('column1', 'column2')` and you should use whichever you prefer.\n\n#### Clause order\n\nClauses are returned in the [correct order](https://github.com/TehShrike/sql-concat/blob/master/constants.js#L19-L35) no matter what order you call the methods in.\n\n```js\nq.from('table').select('column').toString() // `SELECT column\\nFROM table``\n```\n\nHowever, if you call a method multiple times, the values are concatenated in the same order you called them.\n\n```js\nq.from('nifty')\n\t.select('snazzy')\n\t.select('spiffy')\n\t.select('sizzle')\n\t.toString() // `SELECT snazzy, spiffy, sizzle\\nFROM nifty``\n```\n\n### `q.union(query)` and `q.unionAll(query)`\n\nThe `union` and `unionAll` methods return a query object that only contains `union` and `unionAll` methods – once you start unioning queries together, you can keep unioning more queries, but you can't add any other clauses to them.\n\n### `q.build()`\n\nReturns an object with these properties:\n\n- `sql`: a string containing the query, with question marks `?` where escaped values should be inserted.\n- `values`: an array of values to be used with the query.\n\nYou can pass this object directly to the `query` method of the [`mysql`](https://github.com/mysqljs/mysql#performing-queries) library:\n\n```node\nmysql.query(\n\tq.select('Cool!').build(),\n\t(err, result) => {\n\t\tconsole.log(result)\n\t}\n)\n```\n\n```js\nq.select('column')\n\t.where('id', 3)\n\t.build() // { sql: `SELECT column\\nWHERE id = ?`, values: [ 3 ]}\n```\n\n### `q.toString()`\n\nReturns a string with values escaped by [`sqlstring`](https://github.com/mysqljs/sqlstring#formatting-queries).\n\n```js\nq.select('fancy')\n    .from('table')\n    .where('table.pants', [ 'what\\'s up', 'boring' ])\n    .toString() // => `SELECT fancy\\nFROM table\\nWHERE table.pants IN('what\\\\'s up', 'boring')`\n```\n\n### Tagged template strings\n\nsql-concat is also a template tag:\n\n```js\nconst rainfall = 3\nconst templateTagResult = q`SELECT galoshes FROM puddle WHERE rain > ${ rainfall }`\n\ntemplateTagResult.sql // => `SELECT galoshes FROM puddle WHERE rain > ?`\ntemplateTagResult.values // => [ 3 ]\n```\n\nYou can pass these results into any method as a value.  This allows you to properly parameterize function calls:\n\n```js\nconst shoeSize = 9\nconst functionCallResult = q.select('rubbers')\n\t.from('puddle')\n\t.where('rain', '>', 4)\n\t.where('size', q`LPAD(${ shoeSize }, 2, '0')`)\n\t.build()\n\nconst functionCallQuery = `SELECT rubbers\\n`\n\t+ `FROM puddle\\n`\n\t+ `WHERE rain > ? AND size = LPAD(?, 2, '0')`\n\nfunctionCallResult.sql // => functionCallQuery\n\nfunctionCallResult.values // => [ 4, 9 ]\n```\n\n## Long-shot feature\n\nSome syntax for generating nested clauses conditionally would be nice, so you could easily generate something like this dynamically:\n\n```sql\nWHERE important = ? AND (your_column = ? OR your_column = ? OR something_else LIKE ?)\n```\n\nMaybe something like:\n\n```node\nconst whereCondition = q.parenthetical('OR')\n\t.equal('your_column', true)\n\t.equal('your_column', randomVariable)\n\t.like('something_else', anotherVariable)\n\nconst query = q.select('everything')\n\t.from('table')\n\t.where('important', true)\n\t.where(whereCondition)\n```\n\nYou can discuss this feature in [Issue 3](https://github.com/TehShrike/sql-concat/issues/3) if you're interested.\n\n## Running the tests\n\n1. clone the repo\n2. navigate to the cloned directory\n3. `npm install`\n4. `npm test`\n\n## License\n\n[WTFPL](http://wtfpl2.com)\n","readmeFilename":"readme.md"}