{"_id":"@designliquido/delegua-csv","_rev":"5-a0fb56212d55a2c83c5cb82d49139a78","name":"@designliquido/delegua-csv","dist-tags":{"latest":"0.0.3"},"versions":{"0.0.0":{"name":"@designliquido/delegua-csv","version":"0.0.0","license":"MIT","_id":"@designliquido/delegua-csv@0.0.0","maintainers":[{"name":"leonelsanches","email":"leonel@designliquido.com.br"}],"dist":{"shasum":"c7cf08d2fb71addb32cfcb9e27d744b4dc878be1","tarball":"https://registry.npmjs.org/@designliquido/delegua-csv/-/delegua-csv-0.0.0.tgz","fileCount":13,"integrity":"sha512-ydzCAG39OX12zNjdi9YlJ6B5H/Bwyy78WNLD3Pc98zX738uzr+crf8XsMClp7ak9amU2LdgfllcdfpkrRB89Fg==","signatures":[{"sig":"MEUCIBOfOCODqv9peNAIojq5mpsI/Kyk8lcFZCVIyKliGHVCAiEAok6c+YNtUp5NmlkYxfv4CeChb3jrTfqGzWmoh4pJ8Ng=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11744},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"de05e7dd3d98d86aaba44a3194c5d85db727620e","scripts":{"empacotar":"yarn rimraf ./dist && tsc && yarn copyfiles -V ./README.md ./dist && yarn copyfiles -V ./LICENSE ./dist && yarn copyfiles -V ./package.json ./dist","publicar-npm":"npm publish ./dist --access public","testes-unitarios":"jest --coverage"},"_npmUser":{"name":"leonelsanches","email":"leonel@designliquido.com.br"},"_npmVersion":"11.6.2","description":"Biblioteca CSV para Delégua.","directories":{},"_nodeVersion":"22.20.0","publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rimraf":"^6.1.2","mock-fs":"^5.5.0","ts-jest":"^29.4.6","ts-node":"^10.9.2","copyfiles":"^2.4.1","release-it":"^19.2.4","typescript":"^5.4.5","@types/jest":"^29.5.12","@types/node":"^20.11.30","@types/mock-fs":"^4.13.4"},"_npmOperationalInternal":{"tmp":"tmp/delegua-csv_0.0.0_1769911028821_0.87723767981598","host":"s3://npm-registry-packages-npm-production"}},"0.0.1":{"name":"@designliquido/delegua-csv","version":"0.0.1","license":"MIT","_id":"@designliquido/delegua-csv@0.0.1","maintainers":[{"name":"leonelsanches","email":"leonel@designliquido.com.br"}],"dist":{"shasum":"413a0e59a60115ce3de7a6cf3f071c93b105e673","tarball":"https://registry.npmjs.org/@designliquido/delegua-csv/-/delegua-csv-0.0.1.tgz","fileCount":15,"integrity":"sha512-JSdWauj+mWzriEl/kqn/PiR6N7vBcav62LPE6vEhyUImUVJOjy1A52PB90MY6O9eeDT2XSoxN0lMjPfzcz2Wtw==","signatures":[{"sig":"MEUCIQDNn5F3L4zybUc7LCy3Ua5Zzq3SxPft4X7sTN65FSeeUAIgdb/ufDCX3nTqzwTJJ2TQm7mIWhignZL+qxJmT5Do4Kk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24703},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"13084a8fb16a421a7633dc866187bc80b89f460f","scripts":{"empacotar":"yarn rimraf ./dist && tsc && yarn copyfiles -V ./README.md ./dist && yarn copyfiles -V ./LICENSE ./dist && yarn copyfiles -V ./package.json ./dist","publicar-npm":"npm publish ./dist --access public","testes-unitarios":"jest --coverage"},"_npmUser":{"name":"leonelsanches","email":"leonel@designliquido.com.br"},"_npmVersion":"11.6.2","description":"Biblioteca CSV para Delégua.","directories":{},"_nodeVersion":"22.20.0","publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rimraf":"^6.1.2","ts-jest":"^29.4.6","ts-node":"^10.9.2","copyfiles":"^2.4.1","release-it":"^19.2.4","typescript":"^5.4.5","@types/jest":"^29.5.12","@types/node":"^20.11.30","@designliquido/delegua":"^1.4.2"},"_npmOperationalInternal":{"tmp":"tmp/delegua-csv_0.0.1_1770238210516_0.8912764424960375","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@designliquido/delegua-csv","version":"0.0.2","license":"MIT","_id":"@designliquido/delegua-csv@0.0.2","maintainers":[{"name":"leonelsanches","email":"leonel@designliquido.com.br"}],"dist":{"shasum":"40ffd4db445f12b56c90d4df87661b7b8470f146","tarball":"https://registry.npmjs.org/@designliquido/delegua-csv/-/delegua-csv-0.0.2.tgz","fileCount":15,"integrity":"sha512-4ndNhqFwkIe7LtVQ0aYurqq6ejOHrMfNZeKCnjvxZAuDDT8j9swTXbHbC87Qbex1a9dMnK5IZdU9VxThOq0TrA==","signatures":[{"sig":"MEUCIGZ3rs7SWOL9h/10Qfk2/6mvADf4GbR28zrQUP4nUlixAiEA3hAkqnhtx+D2IawXioIbFcmLUYaV4AmYVUVDL6SsiZg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29947},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"0bbcc388b5e3dd8186f476113cd355c2c70424b7","scripts":{"empacotar":"yarn rimraf ./dist && tsc && yarn copyfiles -V ./README.md ./dist && yarn copyfiles -V ./LICENSE ./dist && yarn copyfiles -V ./package.json ./dist","publicar-npm":"npm publish ./dist --access public","testes-unitarios":"jest --coverage"},"_npmUser":{"name":"leonelsanches","email":"leonel@designliquido.com.br"},"_npmVersion":"11.6.2","description":"Biblioteca CSV para Delégua.","directories":{},"_nodeVersion":"22.20.0","publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","rimraf":"^6.1.2","ts-jest":"^29.4.6","ts-node":"^10.9.2","copyfiles":"^2.4.1","release-it":"^19.2.4","typescript":"^5.4.5","@types/jest":"^29.5.12","@types/node":"^20.11.30","@designliquido/delegua":"^1.4.2"},"_npmOperationalInternal":{"tmp":"tmp/delegua-csv_0.0.2_1770244298826_0.4448083790335542","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@designliquido/delegua-csv","version":"0.0.3","description":"Biblioteca CSV para Delégua.","main":"dist/index.js","types":"dist/index.d.ts","license":"MIT","publishConfig":{"registry":"https://registry.npmjs.org/"},"scripts":{"empacotar":"yarn rimraf ./dist && tsc && yarn copyfiles -V ./README.md ./dist && yarn copyfiles -V ./LICENSE ./dist && yarn copyfiles -V ./package.json ./dist","publicar-npm":"npm publish ./dist --access public","testes-unitarios":"jest --coverage"},"devDependencies":{"@designliquido/delegua":"^1.4.2","@types/jest":"^29.5.12","@types/node":"^20.11.30","copyfiles":"^2.4.1","jest":"^29.7.0","release-it":"^19.2.4","rimraf":"^6.1.2","ts-jest":"^29.4.6","ts-node":"^10.9.2","typescript":"^5.4.5"},"gitHead":"c1cb1da7075bc3fbbf5c0ece0123119ea14026b6","_id":"@designliquido/delegua-csv@0.0.3","_nodeVersion":"22.20.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-iWgxojKFxJY3JyuK+1NAqltMITJrlil4rKutvf8Xd7LWs4fGQBdFyCoxRZyw2MdGdeMQhSEk0Whh90E3ZUORAg==","shasum":"0291b3636effbf5d3c3f27fde10f0702a89465aa","tarball":"https://registry.npmjs.org/@designliquido/delegua-csv/-/delegua-csv-0.0.3.tgz","fileCount":23,"unpackedSize":33869,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDOithjMFp7PTJ+8hMah+saBfAOVP/PQmSf8RyvB3Jy5wIgD3+thRIXYwikeFHy8Xj/X49Ep92x30+YMBZCUEiVHv4="}]},"_npmUser":{"name":"leonelsanches","email":"leonel@designliquido.com.br"},"directories":{},"maintainers":[{"name":"leonelsanches","email":"leonel@designliquido.com.br"},{"name":"vitbrandao96","email":"vitorsbsilva@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/delegua-csv_0.0.3_1774642928978_0.1003731713304199"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-01T01:57:08.732Z","modified":"2026-03-27T20:22:09.262Z","0.0.0":"2026-02-01T01:57:08.962Z","0.0.1":"2026-02-04T20:50:10.663Z","0.0.2":"2026-02-04T22:31:38.988Z","0.0.3":"2026-03-27T20:22:09.131Z"},"license":"MIT","description":"Biblioteca CSV para Delégua.","maintainers":[{"name":"leonelsanches","email":"leonel@designliquido.com.br"},{"name":"vitbrandao96","email":"vitorsbsilva@gmail.com"}],"readme":"# delegua-csv\r\n\r\nBiblioteca CSV para a linguagem Delégua.\r\n\r\n## Uso\r\n\r\n- Funções de análise e serialização de CSV.\r\n- Leitura e escrita de arquivos CSV usando uma interface de sistema de arquivos (`SistemaArquivosInterface`).\r\n\r\n## API\r\n\r\n### Funções de CSV\r\n\r\n- `textoParaObjetoCsv(interpretador, texto, opcoes)`\r\n\t- Retorna uma tabela (`TabelaCsv`) ou uma lista de registros (`RegistroCsv`) quando `cabecalho` é `true`.\r\n- `objetoCsvParaTexto(interpretador, linhas, opcoes)`\r\n\t- Converte uma `TabelaCsv` em texto CSV.\r\n- `vetorDicionariosParaCsv(interpretador, registros, colunas, opcoes)`\r\n\t- Converte um vetor de dicionários (`RegistroCsv[]`) em texto CSV.\r\n\r\n### Funções de arquivo\r\n\r\n- `lerCsv(sistemaArquivos, caminho, opcoes)`\r\n\t- Lê um arquivo CSV do sistema de arquivos.\r\n- `escreverCsv(sistemaArquivos, caminho, linhas, opcoes)`\r\n\t- Salva uma `TabelaCsv` no caminho informado.\r\n- `escreverRegistrosCsv(sistemaArquivos, caminho, registros, colunas, opcoes)`\r\n\t- Salva um vetor de dicionários (`RegistroCsv[]`) no caminho informado.\r\n\r\n### Interface de Sistema de Arquivos\r\n\r\nA biblioteca não depende de Node.js. Para leitura e escrita de arquivos, implemente `SistemaArquivosInterface`:\r\n\r\n```ts\r\ninterface SistemaArquivosInterface {\r\n    lerArquivo(caminho: string): Promise<string>;\r\n    escreverArquivo(caminho: string, conteudo: string): Promise<void>;\r\n}\r\n```\r\n\r\n### Opções\r\n\r\n`OpcoesCsvInterface`:\r\n\r\n- `delimitador` (padrão: `,`)\r\n- `aspas` (padrão: `\"`)\r\n- `quebraLinha` (padrão: `\\n`)\r\n- `cabecalho` (padrão: `false`)\r\n- `ignorarLinhasVazias` (padrão: `true`)\r\n\r\n## Exemplos\r\n\r\n### Analisar CSV\r\n\r\n```ts\r\nimport { textoParaObjetoCsv } from '@designliquido/delegua-csv';\r\n\r\nconst texto = 'nome,idade\\nAna,30\\nBeto,25';\r\nconst tabela = textoParaObjetoCsv(undefined, texto);\r\n// tabela: [['nome','idade'], ['Ana','30'], ['Beto','25']]\r\n\r\nconst registros = textoParaObjetoCsv(undefined, texto, { cabecalho: true });\r\n// registros: [{ nome: 'Ana', idade: '30' }, { nome: 'Beto', idade: '25' }]\r\n```\r\n\r\n### Serializar CSV\r\n\r\n```ts\r\nimport { objetoCsvParaTexto } from '@designliquido/delegua-csv';\r\n\r\nconst linhas = [\r\n\t['nome', 'observacao'],\r\n\t['Ana', 'gosta, de \"café\"']\r\n];\r\n\r\nconst texto = objetoCsvParaTexto(undefined, linhas);\r\n// nome,observacao\r\n// Ana,\"gosta, de \"\"café\"\"\"\r\n```\r\n\r\n### Serializar vetor de dicionários\r\n\r\n```ts\r\nimport { vetorDicionariosParaCsv } from '@designliquido/delegua-csv';\r\n\r\nconst registros = [\r\n\t{ nome: 'Ana', idade: '30' },\r\n\t{ nome: 'Beto', idade: '25' }\r\n];\r\n\r\nconst texto = vetorDicionariosParaCsv(undefined, registros);\r\n// nome,idade\r\n// Ana,30\r\n// Beto,25\r\n\r\n// Com colunas específicas:\r\nconst texto2 = vetorDicionariosParaCsv(undefined, registros, ['idade', 'nome']);\r\n// idade,nome\r\n// 30,Ana\r\n// 25,Beto\r\n```\r\n\r\n### Ler e salvar CSV\r\n\r\n```ts\r\nimport { lerCsv, escreverCsv, SistemaArquivosInterface } from '@designliquido/delegua-csv';\r\nimport * as fs from 'fs/promises';\r\n\r\n// Implementação para Node.js\r\nconst sistemaArquivos: SistemaArquivosInterface = {\r\n    lerArquivo: (caminho) => fs.readFile(caminho, 'utf-8'),\r\n    escreverArquivo: (caminho, conteudo) => fs.writeFile(caminho, conteudo, 'utf-8')\r\n};\r\n\r\nconst dados = await lerCsv(sistemaArquivos, './clientes.csv', { cabecalho: true });\r\nawait escreverCsv(sistemaArquivos, './clientes-novo.csv', dados);\r\n```\r\n\r\n## Testes\r\n\r\n```bash\r\nyarn testes-unitarios\r\n```\r\n","readmeFilename":"README.md"}