{"_id":"@bakes/dastardly-tree-sitter-csv","name":"@bakes/dastardly-tree-sitter-csv","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@bakes/dastardly-tree-sitter-csv","version":"1.0.0","description":"CSV, PSV, & TSV grammar for tree-sitter (dASTardly fork with prebuilt binaries)","main":"bindings/node","keywords":["parsing","incremental","csv","psv","tsv"],"author":{"name":"The Software Bakery","email":"amaanq12@gmail.com","url":"original by Amaan Qureshi <amaanq12@gmail.com>"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/thesoftwarebakery/dastardly.git","directory":"packages/tree-sitter-csv"},"homepage":"https://github.com/thesoftwarebakery/dastardly#readme","bugs":{"url":"https://github.com/thesoftwarebakery/dastardly/issues"},"publishConfig":{"access":"public"},"dependencies":{"node-addon-api":"^8.2.2","node-gyp-build":"^4.8.2"},"peerDependencies":{"tree-sitter":"^0.21.1"},"peerDependenciesMeta":{"tree-sitter":{"optional":true}},"devDependencies":{"eslint":"^8.47.0","eslint-config-google":"^0.14.0","prebuildify":"^6.0.1"},"tree-sitter":[{"scope":"source.csv","file-types":["csv"],"path":"csv","highlights":["queries/highlights.scm"],"injection-regex":"csv"},{"scope":"source.psv","file-types":["psv"],"path":"psv","highlights":["queries/highlights.scm"],"injection-regex":"psv"},{"scope":"source.tsv","file-types":["tsv"],"path":"tsv","highlights":["queries/highlights.scm"],"injection-regex":"tsv"}],"scripts":{"generate":"npm run build-csv && npm run build-psv && npm run build-tsv","build-csv":"cd csv && tree-sitter generate","build-psv":"cd psv && tree-sitter generate","build-tsv":"cd tsv && tree-sitter generate","install":"node-gyp-build","prebuildify":"prebuildify --napi --strip","lint":"eslint common/define-grammar.js csv/grammar.js tsv/grammar.js","test-load":"node -e \"console.log(require('./bindings/node').csv.name, require('./bindings/node').psv.name, require('./bindings/node').tsv.name)\"","test":"npm run test-load"},"_id":"@bakes/dastardly-tree-sitter-csv@1.0.0","_integrity":"sha512-WlxRzOFxqv8UwImlzQleW0HhJPhb9SjKoD9g1WQSyoNvSX9BBb4Znzbmns0VmOJ7mXYgkMP/2Imu1Ms73yBckg==","_resolved":"/tmp/7d42d537974b6adbed6919e7680538ca/bakes-dastardly-tree-sitter-csv-1.0.0.tgz","_from":"file:bakes-dastardly-tree-sitter-csv-1.0.0.tgz","_nodeVersion":"20.19.5","_npmVersion":"10.8.2","dist":{"integrity":"sha512-WlxRzOFxqv8UwImlzQleW0HhJPhb9SjKoD9g1WQSyoNvSX9BBb4Znzbmns0VmOJ7mXYgkMP/2Imu1Ms73yBckg==","shasum":"808716796e9e803fe61445776baaae2995d6abd1","tarball":"https://registry.npmjs.org/@bakes/dastardly-tree-sitter-csv/-/dastardly-tree-sitter-csv-1.0.0.tgz","fileCount":33,"unpackedSize":161210,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bakes%2fdastardly-tree-sitter-csv@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCdI5TccLPvHPPFgHN6zMmbv0/+7ecPVEhDYzhdJC1BMQIgASPrDsyipI3BMqICsOV3reCAw0IH1yBo4lsgnXPLKYU="}]},"_npmUser":{"name":"georgewaters","email":"george@bakes.software"},"directories":{},"maintainers":[{"name":"georgewaters","email":"george@bakes.software"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dastardly-tree-sitter-csv_1.0.0_1763161243855_0.5643478685166785"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-14T23:00:43.654Z","1.0.0":"2025-11-14T23:00:44.044Z","modified":"2025-11-14T23:00:45.138Z"},"maintainers":[{"name":"georgewaters","email":"george@bakes.software"}],"description":"CSV, PSV, & TSV grammar for tree-sitter (dASTardly fork with prebuilt binaries)","homepage":"https://github.com/thesoftwarebakery/dastardly#readme","keywords":["parsing","incremental","csv","psv","tsv"],"repository":{"type":"git","url":"git+https://github.com/thesoftwarebakery/dastardly.git","directory":"packages/tree-sitter-csv"},"author":{"name":"The Software Bakery","email":"amaanq12@gmail.com","url":"original by Amaan Qureshi <amaanq12@gmail.com>"},"bugs":{"url":"https://github.com/thesoftwarebakery/dastardly/issues"},"license":"MIT","readme":"# @bakes/dastardly-tree-sitter-csv\n\nCSV, PSV, and TSV grammars for [tree-sitter](https://github.com/tree-sitter/tree-sitter).\n\n**dASTardly fork** with enhancements:\n- RFC 4180 compliant with external scanner for empty field support\n- Migrated from deprecated `nan` to `node-addon-api` for modern Node.js compatibility\n- Tree-sitter 0.21+ compatibility\n- Used by [@bakes/dastardly-csv](https://npmjs.com/package/@bakes/dastardly-csv) parser\n\nOriginal grammar by [Amaan Qureshi](https://github.com/amaanq/tree-sitter-csv).\n\n## Installation\n\n```bash\nnpm install @bakes/dastardly-tree-sitter-csv\n```\n\n```bash\npnpm add @bakes/dastardly-tree-sitter-csv\n```\n\n**Note:** This package requires build tools (node-gyp, C compiler) for installation. The native bindings will be compiled during `npm install`.\n\n## Usage\n\nThis module exports three tree-sitter grammars for different delimiter types:\n\n```js\nconst { csv, psv, tsv } = require('@bakes/dastardly-tree-sitter-csv');\n\n// CSV grammar (comma-delimited)\nconst Parser = require('tree-sitter');\nconst parser = new Parser();\nparser.setLanguage(csv);\n\n// PSV grammar (pipe-delimited)\nparser.setLanguage(psv);\n\n// TSV grammar (tab-delimited)\nparser.setLanguage(tsv);\n```\n\n## Features\n\n- **RFC 4180 Compliant** - Full support for CSV specification including empty fields\n- **External Scanner** - C-based scanner for accurate empty field detection\n- **Three Dialects** - CSV (`,`), TSV (`\\t`), and PSV (`|`) support\n- **Modern Node.js** - Uses `node-addon-api` instead of deprecated `nan`\n- **Tree-sitter 0.21+** - Compatible with latest tree-sitter versions\n\n## Building from Source\n\nIf you need to regenerate the parsers:\n\n```bash\n# Install tree-sitter CLI\nnpm install -g tree-sitter-cli\n\n# Regenerate all three grammars\npnpm generate\n\n# Or regenerate individually\ncd csv && tree-sitter generate\ncd psv && tree-sitter generate\ncd tsv && tree-sitter generate\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md","_rev":"1-99ae7b92986b4733ea893822c4e67583"}