{"_id":"@adam-rocska/ts-codec","_rev":"2-a672abb5cb711c714d7b3ccd706da5a3","name":"@adam-rocska/ts-codec","dist-tags":{"latest":"1.2.3"},"versions":{"1.2.1":{"name":"@adam-rocska/ts-codec","version":"1.2.1","keywords":["typescript","encoding","decoding","codec","transformation","serialization","deserialization","strongly-typed","type-safe","data-serialization","data-transformation","functional-api","json","encoder","decoder"],"author":{"url":"https://github.com/adam-rocska","name":"Adam Laszlo Rocska"},"license":"MIT","_id":"@adam-rocska/ts-codec@1.2.1","maintainers":[{"name":"adam-rocska","email":"rocska.adam@gmail.com"}],"homepage":"https://github.com/adam-rocska/ts-codec#readme","bugs":{"url":"https://github.com/adam-rocska/ts-codec/issues"},"dist":{"shasum":"1e1e4b6dce82f94c6a390e59a4602348c33c29c0","tarball":"https://registry.npmjs.org/@adam-rocska/ts-codec/-/ts-codec-1.2.1.tgz","fileCount":7,"integrity":"sha512-KiTvGLzyfc7nIfkgSISd31rJvLnxB7WXCKMDI5U0/CRnJuIeg8Z9H0ftANLgR5l/X+54wzAcLUtYJ3vWBZNp8w==","signatures":[{"sig":"MEYCIQCDN4q3ZNlRg+Nzso2XN0kUMiKe4V9mBypH4KbBfbB50gIhAPgRDwXDeYYHY4ma1sJjRFTuk6QNyYvxgn6g84na3Y+z","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":47807},"jest":{"transform":{"^.+\\.(t|j)sx?$":["@swc/jest"]},"testTimeout":1000,"moduleNameMapper":{"^!(.*)$":"<rootDir>/$1","^@adam-rocska/ts-codec$":"<rootDir>/src/index.ts"},"moduleDirectories":["node_modules"],"collectCoverageFrom":["src/**/*.ts"],"testPathIgnorePatterns":["/node_modules/"]},"main":"./dist/cjs/index.js","_from":"file:adam-rocska-ts-codec-1.2.1.tgz","types":"./dist/cjs/index.d.ts","module":"./dist/es/index.mjs","exports":{".":{"import":{"types":"./dist/es/index.d.mts","default":"./dist/es/index.mjs"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.js"}}},"funding":[{"url":"https://github.com/sponsors/adam-rocska","type":"github"}],"scripts":{"test":"jest --env node","build":"bunchee","check":"pnpm eslint && pnpm attw --pack","clean":"rimraf dist"},"_npmUser":{"name":"adam-rocska","email":"rocska.adam@gmail.com"},"_resolved":"/tmp/6b1d4f44ff319b572791322167e471e4/adam-rocska-ts-codec-1.2.1.tgz","_integrity":"sha512-KiTvGLzyfc7nIfkgSISd31rJvLnxB7WXCKMDI5U0/CRnJuIeg8Z9H0ftANLgR5l/X+54wzAcLUtYJ3vWBZNp8w==","repository":{"url":"git+https://github.com/adam-rocska/ts-codec.git","type":"git"},"_npmVersion":"10.8.2","description":"TypeScript library offering robust contracts for encoding and decoding values with strong type safety.","directories":{},"_nodeVersion":"20.17.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","pnpm":"^9.9.0","rimraf":"^6.0.1","bunchee":"^5.3.2","@swc/jest":"^0.2.36","typescript":"^5.5.4","@types/jest":"^29.5.12","eslint-config-next":"^14.2.7","@tsconfig/strictest":"^2.0.5","@arethetypeswrong/cli":"^0.15.4"},"_npmOperationalInternal":{"tmp":"tmp/ts-codec_1.2.1_1725032871115_0.6191005882523051","host":"s3://npm-registry-packages"}},"1.2.2":{"name":"@adam-rocska/ts-codec","version":"1.2.2","keywords":["typescript","encoding","decoding","codec","transformation","serialization","deserialization","strongly-typed","type-safe","data-serialization","data-transformation","functional-api","json","encoder","decoder"],"author":{"url":"https://github.com/adam-rocska","name":"Adam Laszlo Rocska"},"license":"MIT","_id":"@adam-rocska/ts-codec@1.2.2","maintainers":[{"name":"adam-rocska","email":"rocska.adam@gmail.com"}],"homepage":"https://github.com/adam-rocska/ts-codec#readme","bugs":{"url":"https://github.com/adam-rocska/ts-codec/issues"},"dist":{"shasum":"b8860b8341b7cc3cfc6011816dd4120abb7d4707","tarball":"https://registry.npmjs.org/@adam-rocska/ts-codec/-/ts-codec-1.2.2.tgz","fileCount":7,"integrity":"sha512-3PTlJQ2vPXcJCCTNR7bgphXglGQJnYrPV0YBae7J1YGzJ0EGLpy0CeC386JC1l6GGsTegr1nzCOl7y3lmB233Q==","signatures":[{"sig":"MEQCIF/ze15AmLEYWOE6XkDa/dm6mSFSBh2jiy2n7TroHYFVAiBu/U3S5sDFwfigbQcRPAHq7bD8pZ9GLyhGNxx0eMRAPw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":47796},"jest":{"transform":{"^.+\\.(t|j)sx?$":["@swc/jest"]},"testTimeout":1000,"moduleNameMapper":{"^!(.*)$":"<rootDir>/$1","^@adam-rocska/ts-codec$":"<rootDir>/src/index.ts"},"moduleDirectories":["node_modules"],"collectCoverageFrom":["src/**/*.ts"],"testPathIgnorePatterns":["/node_modules/"]},"main":"./dist/cjs/index.js","_from":"file:adam-rocska-ts-codec-1.2.2.tgz","types":"./dist/cjs/index.d.ts","module":"./dist/es/index.mjs","exports":{".":{"import":{"types":"./dist/es/index.d.mts","default":"./dist/es/index.mjs"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.js"}}},"funding":[{"url":"https://github.com/sponsors/adam-rocska","type":"github"}],"scripts":{"test":"jest --env node","build":"bunchee","check":"pnpm eslint && pnpm attw --pack","clean":"rimraf dist"},"_npmUser":{"name":"adam-rocska","email":"rocska.adam@gmail.com"},"_resolved":"/tmp/533967353b899a6e8483c7f8385daf15/adam-rocska-ts-codec-1.2.2.tgz","_integrity":"sha512-3PTlJQ2vPXcJCCTNR7bgphXglGQJnYrPV0YBae7J1YGzJ0EGLpy0CeC386JC1l6GGsTegr1nzCOl7y3lmB233Q==","repository":{"url":"git+https://github.com/adam-rocska/ts-codec.git","type":"git"},"_npmVersion":"10.8.2","description":"TypeScript library offering robust contracts for encoding and decoding values with strong type safety.","directories":{},"_nodeVersion":"20.17.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","pnpm":"^9.9.0","rimraf":"^6.0.1","bunchee":"^5.3.2","@swc/jest":"^0.2.36","typescript":"^5.5.4","@types/jest":"^29.5.12","eslint-config-next":"^14.2.7","@tsconfig/strictest":"^2.0.5","@arethetypeswrong/cli":"^0.15.4"},"_npmOperationalInternal":{"tmp":"tmp/ts-codec_1.2.2_1725033046992_0.28174333329710577","host":"s3://npm-registry-packages"}},"1.2.3":{"name":"@adam-rocska/ts-codec","version":"1.2.3","description":"TypeScript library offering robust contracts for encoding and decoding values with strong type safety.","keywords":["typescript","encoding","decoding","codec","transformation","serialization","deserialization","strongly-typed","type-safe","data-serialization","data-transformation","functional-api","json","encoder","decoder"],"main":"./dist/cjs/index.js","module":"./dist/es/index.mjs","types":"./dist/cjs/index.d.ts","exports":{".":{"import":{"types":"./dist/es/index.d.mts","default":"./dist/es/index.mjs"},"require":{"types":"./dist/cjs/index.d.ts","default":"./dist/cjs/index.js"}}},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"repository":{"type":"git","url":"git+https://github.com/adam-rocska/ts-codec.git"},"bugs":{"url":"https://github.com/adam-rocska/ts-codec/issues"},"funding":[{"type":"github","url":"https://github.com/sponsors/adam-rocska"}],"author":{"name":"Adam Laszlo Rocska","url":"https://github.com/adam-rocska"},"license":"MIT","devDependencies":{"@arethetypeswrong/cli":"^0.16.1","@swc/jest":"^0.2.36","@tsconfig/strictest":"^2.0.5","@types/jest":"^29.5.12","bunchee":"^5.4.0","eslint-config-next":"^14.2.8","jest":"^29.7.0","pnpm":"^9.9.0","rimraf":"^6.0.1","typescript":"^5.5.4"},"jest":{"moduleDirectories":["node_modules"],"moduleNameMapper":{"^@adam-rocska/ts-codec$":"<rootDir>/src/index.ts","^!(.*)$":"<rootDir>/$1"},"transform":{"^.+\\.(t|j)sx?$":["@swc/jest"]},"collectCoverageFrom":["src/**/*.ts"],"testPathIgnorePatterns":["/node_modules/"],"testTimeout":1000},"scripts":{"clean":"rimraf dist","build":"bunchee","test":"jest --env node","check":"pnpm eslint && pnpm attw --pack"},"_id":"@adam-rocska/ts-codec@1.2.3","homepage":"https://github.com/adam-rocska/ts-codec#readme","_integrity":"sha512-ZbBSZy4l1YSfAk478G4jSPQoxiq07arMHh+XzDj0T8uINikjnlZJzVl42YVz3LvOwZkJ38seCgYC7IOdFw4tCA==","_resolved":"/tmp/71ef1a354dce69aa2eb4ca302532ead2/adam-rocska-ts-codec-1.2.3.tgz","_from":"file:adam-rocska-ts-codec-1.2.3.tgz","_nodeVersion":"20.17.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-ZbBSZy4l1YSfAk478G4jSPQoxiq07arMHh+XzDj0T8uINikjnlZJzVl42YVz3LvOwZkJ38seCgYC7IOdFw4tCA==","shasum":"6dd0e9e2a2ca56d59d73b12b0640d0d3f2336430","tarball":"https://registry.npmjs.org/@adam-rocska/ts-codec/-/ts-codec-1.2.3.tgz","fileCount":7,"unpackedSize":48998,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDpYBRcPMRwjAyH4JN4PrCwFUMg41NUmP8zLKN7EBEHDAIhALVeXz+dEjmV59tJ57baH7VPqh5Ts/lQNOBG4pjy0lS4"}]},"_npmUser":{"name":"adam-rocska","email":"rocska.adam@gmail.com"},"directories":{},"maintainers":[{"name":"adam-rocska","email":"rocska.adam@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ts-codec_1.2.3_1725739253268_0.9493861251279387"},"_hasShrinkwrap":false}},"time":{"created":"2024-08-30T15:47:50.998Z","modified":"2024-09-07T20:00:53.600Z","1.2.1":"2024-08-30T15:47:51.364Z","1.2.2":"2024-08-30T15:50:47.173Z","1.2.3":"2024-09-07T20:00:53.434Z"},"bugs":{"url":"https://github.com/adam-rocska/ts-codec/issues"},"author":{"name":"Adam Laszlo Rocska","url":"https://github.com/adam-rocska"},"license":"MIT","homepage":"https://github.com/adam-rocska/ts-codec#readme","keywords":["typescript","encoding","decoding","codec","transformation","serialization","deserialization","strongly-typed","type-safe","data-serialization","data-transformation","functional-api","json","encoder","decoder"],"repository":{"type":"git","url":"git+https://github.com/adam-rocska/ts-codec.git"},"description":"TypeScript library offering robust contracts for encoding and decoding values with strong type safety.","maintainers":[{"name":"adam-rocska","email":"rocska.adam@gmail.com"}],"readme":"# Codec – Encode & Decode for TypeScript\n\n[![NPM Version](https://img.shields.io/npm/v/@adam-rocska/ts-codec.svg)](https://www.npmjs.com/package/@adam-rocska/ts-codec)\n[![License](https://img.shields.io/npm/l/@adam-rocska/ts-codec)](https://github.com/adam-rocska/ts-codec-typescript/blob/master/LICENSE)\n\n| Aspect               | Badge                                                                                                                                                 |\n| -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |\n| Minified             | [![Minified](https://badgen.net/bundlephobia/min/@adam-rocska/ts-codec)](https://bundlephobia.com/package/@adam-rocska/ts-codec)                      |\n| Minified + gzip      | [![Minified + gzip](https://badgen.net/bundlephobia/minzip/@adam-rocska/ts-codec)](https://bundlephobia.com/package/@adam-rocska/ts-codec)            |\n| Dependency Count     | [![Dependency Count](https://badgen.net/bundlephobia/dependency-count/@adam-rocska/ts-codec)](https://bundlephobia.com/package/@adam-rocska/ts-codec) |\n| Tree-shaking Support | [![Tree-shaking Support](https://badgen.net/bundlephobia/tree-shaking/@adam-rocska/ts-codec)](https://bundlephobia.com/package/@adam-rocska/ts-codec) |\n\nA TypeScript library that provides a strongly-typed and\nuser-friendly API for encoding and decoding data types.\n\nInspired by Swift's Codable API, this library aims to offer\na straightforward functional API for basic encoding and\ndecoding tasks. While it's a simplified initial release,\nfuture iterations will introduce more advanced features.\n\nFor detailed API documentation, please refer to this\nrepository's GitHub Pages.\n\n## Example\n\n```typescript\nconst testCodec = record({\n  firstName: string,\n  lastName: optional(string),\n  age: optional(number),\n  traits: array(\n    record({\n      isVenerable: boolean,\n      label: string,\n      labelAlternatives: set(string),\n      aquiredOn: date,\n    })\n  ),\n});\n\ntype TestRecord = SourceType<typeof testCodec>;\n\nconst source: TestRecord = {\n  firstName: 'Adam',\n  lastName: 'Rocska',\n  age: undefined,\n  traits: [],\n};\nconst str = testCodec.encode(source);\nconst result = testCodec.decode(str);\nexpect(result).toMatchObject(source);\n```\n","readmeFilename":"README.md"}