{"_id":"@amigo-labs/csv","_rev":"2-bd76af65ae2dfd879f7dc9510db1ba20","name":"@amigo-labs/csv","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.0":{"name":"@amigo-labs/csv","version":"0.1.0","keywords":["csv","parser","serialize","native","rust","napi"],"license":"MIT","_id":"@amigo-labs/csv@0.1.0","maintainers":[{"name":"daniel-rck","email":"daniel-rck@proton.me"}],"homepage":"https://github.com/amigo-labs/amigo-native#readme","bugs":{"url":"https://github.com/amigo-labs/amigo-native/issues"},"dist":{"shasum":"abb08126ad9611e84c6e8e455b809f28ad6fe1d7","tarball":"https://registry.npmjs.org/@amigo-labs/csv/-/csv-0.1.0.tgz","fileCount":4,"integrity":"sha512-KpuTSC0ZjSaNQydsmdt+mV5GwOrx2ISuGGuslqf9Aug35ODoHnfbvwcmPcbMSY8BTUzKJlTKhjWTUbbqT0O2kA==","signatures":[{"sig":"MEQCIGTodtZL72uATj7vWt5iHp46PJhnf40NTTKGJZ34/xKrAiALm6xcFE2TZuTVXI4KCE96xJIS4OFCfokFoCCgdAWDDA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29512},"main":"index.js","napi":{"targets":["x86_64-unknown-linux-gnu","x86_64-unknown-linux-musl","aarch64-unknown-linux-gnu","x86_64-apple-darwin","aarch64-apple-darwin","x86_64-pc-windows-msvc"],"binaryName":"csv"},"types":"index.d.ts","engines":{"node":">= 18"},"gitHead":"355c5a6c013075a74d2b05ed8b3bfccf049b9dcd","scripts":{"test":"vitest run","bench":"vitest bench","build":"napi build --platform --release","artifacts":"napi artifacts","build:debug":"napi build --platform","prepublishOnly":"napi pre-publish --skip-optional-publish"},"_npmUser":{"name":"daniel-rck","email":"daniel-rck@proton.me"},"repository":{"url":"git+https://github.com/amigo-labs/amigo-native.git","type":"git","directory":"crates/csv"},"_npmVersion":"11.11.0","description":"Blazing fast CSV parsing and serialization powered by Rust","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.0","@napi-rs/cli":"^3.5.0"},"optionalDependencies":{"@amigo-labs/csv-darwin-x64":"0.1.0","@amigo-labs/csv-darwin-arm64":"0.1.0","@amigo-labs/csv-linux-x64-gnu":"0.1.0","@amigo-labs/csv-linux-x64-musl":"0.1.0","@amigo-labs/csv-win32-x64-msvc":"0.1.0","@amigo-labs/csv-linux-arm64-gnu":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/csv_0.1.0_1776262051361_0.6068158424018479","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@amigo-labs/csv","version":"0.1.2","description":"Blazing fast CSV parsing and serialization powered by Rust","main":"index.js","types":"index.d.ts","napi":{"binaryName":"csv","targets":["x86_64-unknown-linux-gnu","x86_64-unknown-linux-musl","aarch64-unknown-linux-gnu","x86_64-apple-darwin","aarch64-apple-darwin","x86_64-pc-windows-msvc"]},"scripts":{"artifacts":"napi artifacts","build":"napi build --platform --release","build:debug":"napi build --platform","prepublishOnly":"napi pre-publish --skip-optional-publish --no-gh-release","test":"vitest run","bench":"vitest bench"},"devDependencies":{"@napi-rs/cli":"^3.5.0","vitest":"^3.0.0"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/amigo-labs/amigo-native.git","directory":"crates/csv"},"keywords":["csv","parser","serialize","native","rust","napi"],"engines":{"node":">= 18"},"optionalDependencies":{"@amigo-labs/csv-linux-x64-gnu":"0.1.2","@amigo-labs/csv-linux-x64-musl":"0.1.2","@amigo-labs/csv-linux-arm64-gnu":"0.1.2","@amigo-labs/csv-darwin-x64":"0.1.2","@amigo-labs/csv-darwin-arm64":"0.1.2","@amigo-labs/csv-win32-x64-msvc":"0.1.2"},"gitHead":"41e0232e477115a948416b73a601afe6230f233d","_id":"@amigo-labs/csv@0.1.2","bugs":{"url":"https://github.com/amigo-labs/amigo-native/issues"},"homepage":"https://github.com/amigo-labs/amigo-native#readme","_nodeVersion":"24.14.1","_npmVersion":"11.11.0","dist":{"integrity":"sha512-BS0SHTcYRDHJg2gtuphAA+B5ojHidyIoxxLtleO8kzaT0iBj28mRvhnf7U8lA2FN1/EdpHvkt5kI9prPQ3Aw6w==","shasum":"eb1b4eafca829fbae834a1c98bf0dbbe50579e72","tarball":"https://registry.npmjs.org/@amigo-labs/csv/-/csv-0.1.2.tgz","fileCount":4,"unpackedSize":29447,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amigo-labs%2fcsv@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCYVF8WFO9Vo7nLLo9+sA1Dw58OSR6Yzj+qnj0+1BdoPwIhALE7KHaL6aDFCF1qH+KsAEK4QXPSanIhmQ7oveqJvdWz"}]},"_npmUser":{"name":"daniel-rck","email":"daniel-rck@proton.me"},"directories":{},"maintainers":[{"name":"daniel-rck","email":"daniel-rck@proton.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/csv_0.1.2_1776367129952_0.6769600819340251"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-15T14:07:31.257Z","modified":"2026-04-16T19:18:50.390Z","0.1.0":"2026-04-15T14:07:31.494Z","0.1.2":"2026-04-16T19:18:50.077Z"},"bugs":{"url":"https://github.com/amigo-labs/amigo-native/issues"},"license":"MIT","homepage":"https://github.com/amigo-labs/amigo-native#readme","keywords":["csv","parser","serialize","native","rust","napi"],"repository":{"type":"git","url":"git+https://github.com/amigo-labs/amigo-native.git","directory":"crates/csv"},"description":"Blazing fast CSV parsing and serialization powered by Rust","maintainers":[{"name":"daniel-rck","email":"daniel-rck@proton.me"}],"readme":"# @amigo-labs/csv\n\n[![npm version](https://img.shields.io/npm/v/@amigo-labs/csv)](https://www.npmjs.com/package/@amigo-labs/csv)\n[![npm downloads](https://img.shields.io/npm/dm/@amigo-labs/csv)](https://www.npmjs.com/package/@amigo-labs/csv)\n[![license](https://img.shields.io/npm/l/@amigo-labs/csv)](https://github.com/amigo-labs/amigo-native/blob/main/LICENSE)\n\nBlazing fast CSV parsing and serialization powered by Rust via [NAPI-RS](https://napi.rs). A native Node.js binding to the [csv](https://crates.io/crates/csv) crate.\n\n## Installation\n\n```bash\nnpm install @amigo-labs/csv\n```\n\n## Usage\n\n```ts\nimport { parse, parseWithHeaders, stringify } from \"@amigo-labs/csv\";\n\n// Parse CSV to arrays\nconst rows = parse(Buffer.from(\"name,age\\nAlice,30\\nBob,25\"));\n// [[\"name\", \"age\"], [\"Alice\", \"30\"], [\"Bob\", \"25\"]]\n\n// Parse CSV to objects (using first row as headers)\nconst objects = parseWithHeaders(Buffer.from(\"name,age\\nAlice,30\\nBob,25\"));\n// [{ name: \"Alice\", age: \"30\" }, { name: \"Bob\", age: \"25\" }]\n\n// Serialize arrays to CSV\nconst csv = stringify([[\"name\", \"age\"], [\"Alice\", \"30\"]]);\n// \"name,age\\nAlice,30\\n\"\n```\n\n## API\n\n### `parse(input, options?): string[][]`\n\nParses CSV into an array of string arrays.\n\n### `parseWithHeaders(input, options?): Record<string, string>[]`\n\nParses CSV using the first row as column headers, returning an array of objects.\n\n### `parseToJson(input, options?): string`\n\nParses CSV and returns a flat JSON string. Avoids per-row FFI overhead. Use `JSON.parse()` on the result.\n\n### `countRows(input, options?): number`\n\nCounts rows without building JS arrays.\n\n### `stringify(rows, options?): string`\n\nSerializes an array of string arrays to CSV.\n\n### `stringifyObjects(rows, columns?, options?): string`\n\nSerializes an array of objects to CSV. Optionally specify column order.\n\n### Options\n\n| Option | Type | Description |\n| --- | --- | --- |\n| `delimiter` | `number` | Field delimiter byte (default: `,`) |\n| `hasHeaders` | `boolean` | Whether the first row is a header row (default: `true`) |\n| `quoteChar` | `number` | Quote character byte (default: `\"`) |\n| `escapeChar` | `number` | Escape character byte |\n| `comment` | `number` | Comment prefix byte |\n| `flexible` | `boolean` | Allow records with varying field counts |\n| `trimFields` | `boolean` | Trim whitespace from fields |\n\n## Supported Platforms\n\n| Platform | Architecture |\n| --- | --- |\n| Linux | x64 (glibc), x64 (musl), arm64 |\n| macOS | x64, arm64 |\n| Windows | x64 |\n\n## License\n\nMIT\n","readmeFilename":"README.md"}