{"id":15629710,"url":"https://github.com/anko/tap-to-tapson","last_synced_at":"2026-01-29T07:39:54.281Z","repository":{"id":36379269,"uuid":"40684137","full_name":"anko/tap-to-tapson","owner":"anko","description":"convert a TAP stream to a tapson stream","archived":false,"fork":false,"pushed_at":"2015-08-13T22:52:21.000Z","size":124,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-12T23:02:37.879Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"LiveScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/anko.png","metadata":{"files":{"readme":"readme.markdown","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-08-13T22:14:09.000Z","updated_at":"2015-08-13T22:14:19.000Z","dependencies_parsed_at":"2022-09-06T06:22:34.165Z","dependency_job_id":null,"html_url":"https://github.com/anko/tap-to-tapson","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/anko/tap-to-tapson","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anko%2Ftap-to-tapson","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anko%2Ftap-to-tapson/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anko%2Ftap-to-tapson/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anko%2Ftap-to-tapson/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anko","download_url":"https://codeload.github.com/anko/tap-to-tapson/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anko%2Ftap-to-tapson/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28870639,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-29T07:35:32.468Z","status":"ssl_error","status_checked_at":"2026-01-29T07:33:31.463Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":[],"created_at":"2024-10-03T10:28:14.880Z","updated_at":"2026-01-29T07:39:54.267Z","avatar_url":"https://github.com/anko.png","language":"LiveScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# tap-to-tapson [![](https://img.shields.io/npm/v/tap-to-tapson.svg?style=flat-square)][1] [![](https://img.shields.io/travis/anko/tap-to-tapson.svg?style=flat-square)][2]\n\nReads [TAP 13][3], produces [tapson][4] (v1.0.x) as equivalent as possible.\n\n    \u003ctap-producer\u003e | tap-to-tapson | \u003ctapson-consumer\u003e\n\nAlso works as a node module, with streams:\n\n    var tapToTapson = require(\"tap-to-tapson\")();\n    process.stdin.pipe(tapToTapson).pipe(process.stdout);\n\n## Mapping examples\n\n\u003c!-- !test program ./cli.js | head -c -1 --\u003e\n\nComments are interpreted as a \"heading\" for the `expected` properties of the\nfollowing tests, until the next comment appears.\n\n\u003c!-- !test in simple example --\u003e\n\n    TAP version 13\n    ok 1 before any headings\n    # Serious business\n    ok 2 should throw\n    ok 3\n    ok 4\n    # Even more serious\n    ok 5\n    ok 6 what\n    1..6\n\n\u003c!-- !test out simple example --\u003e\n\n    {\"ok\":true,\"expected\":\"before any headings\"}\n    {\"ok\":true,\"expected\":\"Serious business: should throw\"}\n    {\"ok\":true,\"expected\":\"Serious business\"}\n    {\"ok\":true,\"expected\":\"Serious business\"}\n    {\"ok\":true,\"expected\":\"Even more serious\"}\n    {\"ok\":true,\"expected\":\"Even more serious: what\"}\n\nTests marked \"TODO\" or \"SKIP\" fail with `actual`-property set to reason given.\n\n\u003c!-- !test in todo-skip --\u003e\n\n    TAP version 13\n    not ok 1 answer to life the universe and everything # TODO not written yet\n    not ok 2 database smoketest # SKIP database not configured\n    1..2\n\n\u003c!-- !test out todo-skip --\u003e\n\n    {\"ok\":false,\"expected\":\"answer to life the universe and everything\",\"actual\":\"TODO: not written yet\"}\n    {\"ok\":false,\"expected\":\"database smoketest\",\"actual\":\"SKIP: database not configured\"}\n\nAny assert's YAML block goes in the `actual` property. (\"TODO\" and\n\"SKIP\"-directives are ignored here.)\n\n\u003c!-- !test in yaml-block --\u003e\n\n    TAP Version 13\n    not ok 1 Resolve address\n      ---\n      message: \"Failed with error 'hostname peebles.example.com not found'\"\n      severity: fail\n      data:\n        got:\n          hostname: 'peebles.example.com'\n          address: ~\n        expected:\n          hostname: 'peebles.example.com'\n          address: '85.193.201.85'\n      ...\n    1..1\n\n\u003c!-- !test out yaml-block --\u003e\n\n    {\"ok\":false,\"expected\":\"Resolve address\",\"actual\":\"message: \\\"Failed with error 'hostname peebles.example.com not found'\\\"\\nseverity: fail\\ndata:\\n  got:\\n    hostname: peebles.example.com\\n    address: null\\n  expected:\\n    hostname: peebles.example.com\\n    address: 85.193.201.85\\n\"}\n\nA TAP plan given ahead of time becomes a set of tapson planned tests.  (The\noutput is representative.  The `id`s are random but match the test results.)\n\n\u003c!-- Egh, don't know how to write a concise shell script to test that, I'll\nleave it to the proper unit tests. --\u003e\n\n    TAP version 13\n    1..3\n    ok 1\n    ok 2\n    ok 3\n\n\u003c!-- comment just to split the code blocks... --\u003e\n\n    {\"id\":\"2654782ca1d79720181551c031c7ed3f3e157634\"}\n    {\"id\":\"314cf30f5c39abb4798bbbf30327be092bd765bc\"}\n    {\"id\":\"a010bf964ecb2709bd1c996630c65b28dff1e99d\"}\n    {\"id\":\"2654782ca1d79720181551c031c7ed3f3e157634\",\"ok\":true}\n    {\"id\":\"314cf30f5c39abb4798bbbf30327be092bd765bc\",\"ok\":true}\n    {\"id\":\"a010bf964ecb2709bd1c996630c65b28dff1e99d\",\"ok\":true}\n\n[1]: https://www.npmjs.com/package/tap-to-tapson\n[2]: https://travis-ci.org/anko/tap-to-tapson\n[3]: https://testanything.org/tap-version-13-specification.html\n[4]: https://github.com/anko/tapson\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanko%2Ftap-to-tapson","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanko%2Ftap-to-tapson","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanko%2Ftap-to-tapson/lists"}