{"id":34830023,"url":"https://github.com/probitas-test/probitas-client","last_synced_at":"2026-01-13T20:51:33.655Z","repository":{"id":327145758,"uuid":"1106862611","full_name":"probitas-test/probitas-client","owner":"probitas-test","description":"Client library collection for exercising Probitas scenarios against real services.","archived":true,"fork":false,"pushed_at":"2025-12-27T10:30:11.000Z","size":882,"stargazers_count":4,"open_issues_count":2,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-13T12:10:21.216Z","etag":null,"topics":["deno-kv","duckdb","graphql","grpc","http","monogodb","mysql","postgresql","rabbitmq","redis","sql","sqlite","sqs"],"latest_commit_sha":null,"homepage":"https://jsr.io/@probitas","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/probitas-test.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-30T05:01:00.000Z","updated_at":"2025-12-27T10:30:25.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/probitas-test/probitas-client","commit_stats":null,"previous_names":["jsr-probitas/probitas-client","probitas-test/probitas-client"],"tags_count":22,"template":false,"template_full_name":null,"purl":"pkg:github/probitas-test/probitas-client","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/probitas-test%2Fprobitas-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/probitas-test%2Fprobitas-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/probitas-test%2Fprobitas-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/probitas-test%2Fprobitas-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/probitas-test","download_url":"https://codeload.github.com/probitas-test/probitas-client/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/probitas-test%2Fprobitas-client/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28400153,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-13T14:36:09.778Z","status":"ssl_error","status_checked_at":"2026-01-13T14:35:19.697Z","response_time":56,"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":["deno-kv","duckdb","graphql","grpc","http","monogodb","mysql","postgresql","rabbitmq","redis","sql","sqlite","sqs"],"created_at":"2025-12-25T15:47:24.144Z","updated_at":"2026-01-13T20:51:33.650Z","avatar_url":"https://github.com/probitas-test.png","language":"TypeScript","readme":"\n# ⚠️ DEPRECATED\n\nMerged into https://github.com/probitas-test/probitas-packages\n\n---\n\n# Probitas Client\n\n[![Test](https://github.com/probitas-test/probitas-client/actions/workflows/test.yml/badge.svg)](https://github.com/probitas-test/probitas-client/actions/workflows/test.yml)\n[![Publish](https://github.com/probitas-test/probitas-client/actions/workflows/publish.yml/badge.svg)](https://github.com/probitas-test/probitas-client/actions/workflows/publish.yml)\n[![codecov](https://codecov.io/gh/probitas-test/probitas-client/graph/badge.svg)](https://codecov.io/gh/probitas-test/probitas-client)\n\nClient library collection for exercising Probitas scenarios against real\nservices. Each protocol-specific client shares the same ergonomics and error\nmodel so scenario code stays consistent.\n\n## Highlights\n\n- Multi-protocol coverage: HTTP, ConnectRPC/gRPC/gRPC-Web, GraphQL, SQL\n  (Postgres/MySQL/SQLite/DuckDB), MongoDB, Redis, RabbitMQ, SQS, and Deno KV\n- Shared `ClientError` hierarchy with per-client literal `kind` values for safe\n  narrowing\n- AsyncDisposable-aware clients for predictable resource cleanup in Probitas\n  scenarios\n- Built for Deno 2.x and published on JSR under the `@probitas/*` namespace\n\n## Packages\n\n| Package                         | JSR                                                                                                         | Description                                                            |\n| ------------------------------- | ----------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------- |\n| `@probitas/client`              | [![JSR](https://jsr.io/badges/@probitas/client)](https://jsr.io/@probitas/client)                           | Core options and error base types shared by all clients                |\n| `@probitas/client-http`         | [![JSR](https://jsr.io/badges/@probitas/client-http)](https://jsr.io/@probitas/client-http)                 | HTTP client with buffered responses and cookie support                 |\n| `@probitas/client-connectrpc`   | [![JSR](https://jsr.io/badges/@probitas/client-connectrpc)](https://jsr.io/@probitas/client-connectrpc)     | ConnectRPC client supporting Connect, gRPC, and gRPC-Web protocols     |\n| `@probitas/client-grpc`         | [![JSR](https://jsr.io/badges/@probitas/client-grpc)](https://jsr.io/@probitas/client-grpc)                 | gRPC client (thin wrapper over client-connectrpc with protocol=\"grpc\") |\n| `@probitas/client-graphql`      | [![JSR](https://jsr.io/badges/@probitas/client-graphql)](https://jsr.io/@probitas/client-graphql)           | GraphQL client with data/error helpers                                 |\n| `@probitas/client-sql`          | [![JSR](https://jsr.io/badges/@probitas/client-sql)](https://jsr.io/@probitas/client-sql)                   | Shared SQL result/transaction types                                    |\n| `@probitas/client-sql-postgres` | [![JSR](https://jsr.io/badges/@probitas/client-sql-postgres)](https://jsr.io/@probitas/client-sql-postgres) | PostgreSQL client built on the shared SQL types                        |\n| `@probitas/client-sql-mysql`    | [![JSR](https://jsr.io/badges/@probitas/client-sql-mysql)](https://jsr.io/@probitas/client-sql-mysql)       | MySQL client built on the shared SQL types                             |\n| `@probitas/client-sql-sqlite`   | [![JSR](https://jsr.io/badges/@probitas/client-sql-sqlite)](https://jsr.io/@probitas/client-sql-sqlite)     | SQLite client built on the shared SQL types                            |\n| `@probitas/client-sql-duckdb`   | [![JSR](https://jsr.io/badges/@probitas/client-sql-duckdb)](https://jsr.io/@probitas/client-sql-duckdb)     | DuckDB client built on the shared SQL types                            |\n| `@probitas/client-mongodb`      | [![JSR](https://jsr.io/badges/@probitas/client-mongodb)](https://jsr.io/@probitas/client-mongodb)           | MongoDB client with session/transaction helpers                        |\n| `@probitas/client-redis`        | [![JSR](https://jsr.io/badges/@probitas/client-redis)](https://jsr.io/@probitas/client-redis)               | Redis client for command execution                                     |\n| `@probitas/client-deno-kv`      | [![JSR](https://jsr.io/badges/@probitas/client-deno-kv)](https://jsr.io/@probitas/client-deno-kv)           | Deno KV client for key-value storage                                   |\n| `@probitas/client-sqs`          | [![JSR](https://jsr.io/badges/@probitas/client-sqs)](https://jsr.io/@probitas/client-sqs)                   | SQS client targeting LocalStack for integration testing                |\n| `@probitas/client-rabbitmq`     | [![JSR](https://jsr.io/badges/@probitas/client-rabbitmq)](https://jsr.io/@probitas/client-rabbitmq)         | RabbitMQ client with channel lifecycle management                      |\n\n## Quick Start\n\nAdd the clients you need to your `deno.json` imports (JSR aliases are already\nprovided in the workspace):\n\n```jsonc\n{\n  \"imports\": {\n    \"@probitas/client-http\": \"jsr:@probitas/client-http@^0\"\n  }\n}\n```\n\nUse them inside Probitas scenarios with resource-managed clients:\n\n```typescript\nimport { scenario } from \"jsr:@probitas/probitas\";\nimport { createHttpClient } from \"@probitas/client-http\";\nimport { assertEquals } from \"@std/assert\";\n\nexport default scenario(\"example http request\")\n  .resource(\n    \"http\",\n    () =\u003e createHttpClient({ url: \"http://localhost:18080\" }),\n  )\n  .step(\"call API\", (ctx) =\u003e ctx.resources.http.get(\"/get?hello=world\"))\n  .step(\"assert response\", (ctx) =\u003e {\n    const response = ctx.previous;\n    assertEquals(response.status, 200);\n    assertEquals(response.json.args.hello, \"world\");\n  })\n  .build();\n```\n\nRefer to `docs/clients.md` for package-specific usage notes and to the\n[Probitas framework](https://github.com/probitas-test/probitas) for scenario\nauthoring.\n\n## Development\n\n- Tooling: Deno 2.x. A Nix flake is provided (`nix develop`) for consistent\n  tooling.\n- Tasks: `deno task verify` runs fmt, lint, type-check, and tests. See\n  `deno.jsonc` for the full task list.\n- Integration services: `compose.yaml` starts local dependencies\n  (HTTP/ConnectRPC/gRPC/GraphQL echo servers, Postgres/MySQL, Redis, MongoDB,\n  RabbitMQ, LocalStack, Deno KV). Echo server images are published to\n  `ghcr.io/probitas-test/`.\n- Specs: Detailed protocol expectations are tracked in\n  [`docs/specs/00-overview.md`](docs/specs/00-overview.md).\n\n## Documentation\n\n- [`docs/overview.md`](docs/overview.md) – architecture, design principles,\n  error model, and testing approach\n- [`docs/clients.md`](docs/clients.md) – client capabilities, configuration, and\n  integration tips\n\n## License\n\nSee [LICENSE](LICENSE) for details.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprobitas-test%2Fprobitas-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprobitas-test%2Fprobitas-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprobitas-test%2Fprobitas-client/lists"}