{"id":16419010,"url":"https://github.com/neo-ciber94/seria","last_synced_at":"2026-01-27T16:31:40.746Z","repository":{"id":228703921,"uuid":"774704845","full_name":"Neo-Ciber94/seria","owner":"Neo-Ciber94","description":"A library for serialize/deserialize beyond JSON","archived":false,"fork":false,"pushed_at":"2024-06-20T02:26:21.000Z","size":2613,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-11T09:12:57.931Z","etag":null,"topics":["async","deserialization","formdata","json","react","serialization","stream"],"latest_commit_sha":null,"homepage":"https://neo-ciber94.github.io/seria/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Neo-Ciber94.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-03-20T02:50:11.000Z","updated_at":"2024-09-11T17:04:51.000Z","dependencies_parsed_at":"2024-05-28T05:04:19.024Z","dependency_job_id":"e9daa1f0-afb0-40a8-a941-780896bb718e","html_url":"https://github.com/Neo-Ciber94/seria","commit_stats":null,"previous_names":["neo-ciber94/seria"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Neo-Ciber94/seria","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Neo-Ciber94%2Fseria","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Neo-Ciber94%2Fseria/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Neo-Ciber94%2Fseria/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Neo-Ciber94%2Fseria/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Neo-Ciber94","download_url":"https://codeload.github.com/Neo-Ciber94/seria/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Neo-Ciber94%2Fseria/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28816563,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-27T12:25:15.069Z","status":"ssl_error","status_checked_at":"2026-01-27T12:25:05.297Z","response_time":168,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["async","deserialization","formdata","json","react","serialization","stream"],"created_at":"2024-10-11T07:15:37.659Z","updated_at":"2026-01-27T16:31:40.731Z","avatar_url":"https://github.com/Neo-Ciber94.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eseria\u003c/h1\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/Neo-Ciber94/seria/main/website/static/img/logo.png\" alt=\"seria logo\" width=\"128\" height=\"128\"\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://neo-ciber94.github.io/seria/\"\u003eDocumentation\u003c/a\u003e\n\u003c/p\u003e\n\u003c/div\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://pkg-size.dev/seria\"\u003e\u003cimg src=\"https://pkg-size.dev/badge/bundle/10736\" title=\"Bundle size for seria\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/Neo-Ciber94/seria/actions/workflows/ci.yml\"\u003e\u003cimg src=\"https://github.com/Neo-Ciber94/seria/actions/workflows/ci.yml/badge.svg\" alt=\"npm\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.npmjs.com/package/seria\"\u003e\u003cimg src=\"https://badge.fury.io/js/seria.svg\" alt=\"CI\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\nSeria is a serialization and deserialization library that goes beyond the conventional capabilities of JSON. It provides seamless handling for various data types, including those that JSON cannot handle directly.\n\n\u003e This library is inspired on the new serialization capabilities `react` provides for server actions.\n\n## Installation\n\n```bash\nnpm install seria\n```\n\n```bash\nyarn add seria\n```\n\n```bash\npnpm add seria\n```\n\n## Usage\n\n### Serialization and Deserialization\n\n```ts\nimport * as seria from \"seria\";\n\nconst json = seria.stringify(value);\nconst value = seria.parse(json);\n```\n\n### FormData Handling\n\nSeria also supports encoding and decoding FormData:\n\n```ts\nimport { encode, decode } from \"seria/form-data\";\n\nconst formData = encode(value);\nconst value = decode(formData);\n```\n\n### Stream Handling\n\nSeria provides stream-based serialization and deserialization:\n\n```ts\nimport * as seria from \"seria\";\n\nconst stream = seria.stringifyToStream(value);\nconst result = await seria.parseFromStream(stream);\n```\n\nIf you serialize a value that contains any `Promise` you need to serialize using a stream or use `seria.stringifyAsync` which resolve all the promises.\n\n## Supported Data Types\n\nTypes supported by `seria` in comparison with the standard `JSON` object.\n\n| Data Type      | seria.stringify/parse | JSON.stringify/parse |\n| -------------- | --------------------- | -------------------- |\n| string         | ✅                    | ✅                   |\n| number         | ✅                    | ✅                   |\n| boolean        | ✅                    | ✅                   |\n| null           | ✅                    | ✅                   |\n| undefined      | ✅                    | ❌                   |\n| Date           | ✅                    | ❌                   |\n| BigInt         | ✅                    | ❌                   |\n| Promise        | ✅                    | ❌                   |\n| AsyncGenerator | ✅                    | ❌                   |\n| Symbol         | ✅                    | ❌                   |\n| Set            | ✅                    | ❌                   |\n| Map            | ✅                    | ❌                   |\n| Error          | ✅                    | ❌                   |\n| ArrayBuffer    | ✅                    | ❌                   |\n| TypedArrays\\*  | ✅                    | ❌                   |\n| DataView       | ✅                    | ❌                   |\n| File\\*         | ✅                    | ❌                   |\n| FormData\\*     | ✅                    | ❌                   |\n\n\u003e Typed Arrays https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Typed_arrays\n\n\u003e `File` and `FormData` are supported on `seria/form-data`.\n\n`seria` also handles:\n\n- `Infinity`, `-Infinity`, `NaN`, `-0`\n- Cyclical references: `obj.self = obj`\n- Repeated references: `[obj, new Set([obj]), new Map([[\"key\", obj]])]`\n- Custom types using `replacers` and `revivers`\n\n## See also\n\nThese libraries were used as references to improve `seria` features.\n\n- [devalue](https://www.npmjs.com/package/devalue)\n- [superjson](https://www.npmjs.com/package/seroval)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneo-ciber94%2Fseria","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fneo-ciber94%2Fseria","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneo-ciber94%2Fseria/lists"}