{"_id":"@arckit/cucumber","_rev":"2-b9a984343e7ccb479d6d01144c4232fa","name":"@arckit/cucumber","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@arckit/cucumber","version":"1.0.0","keywords":["arckit","cucumber","bdd","testing","data-table"],"author":{"name":"Marc Gavanier","email":"marc@gavanier.com"},"license":"MIT","_id":"@arckit/cucumber@1.0.0","maintainers":[{"name":"marc.gavanier","email":"marc.gavanier@gmail.com"}],"homepage":"https://github.com/arckit-dev/cucumber#readme","bugs":{"url":"https://github.com/arckit-dev/cucumber/issues"},"dist":{"shasum":"fd59543af7aa8f2524e846a7317b3174671c2dfd","tarball":"https://registry.npmjs.org/@arckit/cucumber/-/cucumber-1.0.0.tgz","fileCount":9,"integrity":"sha512-HZ+vmPvKsB7z/PjWcFZs8EqA8DdABYETwOQQ6eFbBt4a2sDN8XVYso4mOJ/RuhH+LYTikqtqx/ExmJiotDXlqA==","signatures":[{"sig":"MEUCIQDFf6zVXmidjHj/cNveNT2XBCP+xxL3Rcn0VH4/b8hajAIgIwOCbRbetuITFnIboqjETUjqWKlK5zuuOUmiI0UFrbo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@arckit%2fcucumber@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11660},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"a4560deae1d47b43bb752b309596534f82cc302f","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","prepare":"husky","release":"semantic-release","lint:code":"biome check --write","typecheck":"tsc --noEmit","check:attw":"attw --pack .","check:size":"size-limit","test:watch":"vitest","lint:commit":"commitlint --from origin/main","lint:unused":"knip","lint:code:ci":"biome ci","check:publint":"publint","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"marc.gavanier","email":"marc.gavanier@gmail.com"},"repository":{"url":"git+https://github.com/arckit-dev/cucumber.git","type":"git"},"size-limit":[{"path":"dist/index.js","limit":"1 kB"}],"_npmVersion":"11.12.1","description":"Cucumber.js testing utilities for BDD step definitions","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.0","devDependencies":{"knip":"^5.0.0","tsup":"^8.4.0","husky":"^9.0.0","vitest":"^4.0.0","publint":"^0.3.0","size-limit":"^11.0.0","typescript":"^5.9.0","@types/node":"^25.0.0","lint-staged":"^16.0.0","@biomejs/biome":"^2.4.0","@commitlint/cli":"^20.0.0","@size-limit/file":"^11.0.0","semantic-release":"^24.0.0","@cucumber/cucumber":"^12.0.0","@vitest/coverage-v8":"^4.0.0","@arethetypeswrong/cli":"^0.17.0","@semantic-release/git":"^10.0.0","@semantic-release/changelog":"^6.0.0","@commitlint/config-conventional":"^20.0.0"},"peerDependencies":{"@cucumber/cucumber":">=12"},"_npmOperationalInternal":{"tmp":"tmp/cucumber_1.0.0_1776557469442_0.01418859470921241","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@arckit/cucumber","version":"1.0.1","description":"Cucumber.js testing utilities for BDD step definitions","packageManager":"pnpm@10.33.0","license":"MIT","author":{"name":"Marc Gavanier","email":"marc@gavanier.com"},"repository":{"type":"git","url":"git+https://github.com/arckit-dev/cucumber.git"},"homepage":"https://github.com/arckit-dev/cucumber#readme","bugs":{"url":"https://github.com/arckit-dev/cucumber/issues"},"keywords":["arckit","cucumber","bdd","testing","data-table"],"type":"module","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","sideEffects":false,"engines":{"node":">=22"},"scripts":{"build":"tsdown","dev":"tsdown --watch","test":"vitest run","test:watch":"vitest","test:coverage":"vitest run --coverage","typecheck":"tsc --noEmit","lint:code":"biome check --write","lint:code:ci":"biome ci","lint:commit":"commitlint --from origin/main","lint:unused":"knip","check:publint":"publint","check:attw":"attw --pack .","check:size":"size-limit","release":"semantic-release","prepare":"husky"},"peerDependencies":{"@cucumber/cucumber":">=12"},"devDependencies":{"@arethetypeswrong/cli":"^0.17.0","@biomejs/biome":"^2.4.0","@commitlint/cli":"^20.0.0","@commitlint/config-conventional":"^20.0.0","@cucumber/cucumber":"^12.0.0","@semantic-release/changelog":"^6.0.0","@semantic-release/exec":"^7.0.0","@semantic-release/git":"^10.0.0","@size-limit/file":"^11.0.0","@types/node":"^25.0.0","@vitest/coverage-v8":"^4.0.0","husky":"^9.0.0","knip":"^5.0.0","lint-staged":"^16.0.0","publint":"^0.3.0","semantic-release":"^24.0.0","size-limit":"^11.0.0","tsdown":"^0.12.0","typescript":"^5.9.0","vitest":"^4.0.0"},"size-limit":[{"path":"dist/index.js","limit":"1 kB"}],"publishConfig":{"access":"public","provenance":true},"gitHead":"fe76f3738abe23a0c69986b6fce79423d0f1c6a5","_id":"@arckit/cucumber@1.0.1","_nodeVersion":"25.9.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-kFyaUg2Zo6FKJ/u1M9lKWFFiYCFOzsLks1XqBLH0XkxWLDMjLim1hIwOBk3lhN3cEoIg+nRGlVw+hQOYXyu7aQ==","shasum":"ea944b28af9ce52fc301ac047465c0e3947d30cd","tarball":"https://registry.npmjs.org/@arckit/cucumber/-/cucumber-1.0.1.tgz","fileCount":11,"unpackedSize":12908,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@arckit%2fcucumber@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDs9pdEy5ca3I8aHR5dvHebZx4w9pVtEqq9FdJ5HzLY7gIhAMYm/UoSHrvKFV4Zen1iWBJyIncOqzLeZfJtqf94qkJQ"}]},"_npmUser":{"name":"marc.gavanier","email":"marc.gavanier@gmail.com"},"directories":{},"maintainers":[{"name":"marc.gavanier","email":"marc.gavanier@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cucumber_1.0.1_1776603274280_0.39234136977181655"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-19T00:11:09.317Z","modified":"2026-04-19T12:54:34.797Z","1.0.0":"2026-04-19T00:11:09.579Z","1.0.1":"2026-04-19T12:54:34.491Z"},"bugs":{"url":"https://github.com/arckit-dev/cucumber/issues"},"author":{"name":"Marc Gavanier","email":"marc@gavanier.com"},"license":"MIT","homepage":"https://github.com/arckit-dev/cucumber#readme","keywords":["arckit","cucumber","bdd","testing","data-table"],"repository":{"type":"git","url":"git+https://github.com/arckit-dev/cucumber.git"},"description":"Cucumber.js testing utilities for BDD step definitions","maintainers":[{"name":"marc.gavanier","email":"marc.gavanier@gmail.com"}],"readme":"# @arckit/cucumber\n\nCucumber.js testing utilities for BDD step definitions.\n\n[![npm version](https://img.shields.io/npm/v/@arckit/cucumber)](https://www.npmjs.com/package/@arckit/cucumber)\n[![npm downloads](https://img.shields.io/npm/dm/@arckit/cucumber)](https://www.npmjs.com/package/@arckit/cucumber)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@arckit/cucumber)](https://bundlephobia.com/package/@arckit/cucumber)\n[![codecov](https://codecov.io/gh/arckit-dev/cucumber/graph/badge.svg)](https://codecov.io/gh/arckit-dev/cucumber)\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.9-3178C6?logo=typescript&logoColor=white)](https://www.typescriptlang.org/)\n[![Cucumber](https://img.shields.io/badge/Cucumber-BDD-23D96C?logo=cucumber&logoColor=white)](https://cucumber.io/)\n\n## 📑 Table of Contents\n\n- 🪧 [About](#about)\n- 📦 [Installation](#installation)\n- 🚀 [Usage](#usage)\n- 📖 [API](#api)\n- 🤗 [Contributing](#contributing)\n- 📝 [License](#license)\n\n<h2 id=\"about\">🪧 About</h2>\n\nDataTable assertion helper for [Cucumber.js](https://cucumber.io/) step definitions. Supports nested property access via dot notation and array indexing.\n\n<h2 id=\"installation\">📦 Installation</h2>\n\n```bash\npnpm add -D @arckit/cucumber\n```\n\n<h2 id=\"usage\">🚀 Usage</h2>\n\n```typescript\nimport { assertMatchesDataTable } from '@arckit/cucumber';\n\nThen(/^I should see the client$/, (dataTable: DataTable) => {\n  assertMatchesDataTable(dataTable)(client);\n});\n```\n\nWith a DataTable like:\n\n```gherkin\n| Field                | Value              |\n| name.firstname       | Jean               |\n| name.lastname        | Dupont             |\n| address.street       | 123 Rue de la Paix |\n| address.zipcode      | 75001              |\n| lines[0].label       | Prestation         |\n```\n\n<h2 id=\"api\">📖 API</h2>\n\n### `assertMatchesDataTable(dataTable: DataTable) => (actual: unknown, options?: { message?: string }) => void`\n\n| Parameter | Description |\n|-----------|-------------|\n| `dataTable` | A Cucumber `DataTable` with two columns: field path and expected value |\n| `actual` | The object to assert against |\n| `options.message` | Optional custom error message if the object is undefined |\n\nField paths support dot notation (`name.firstname`) and bracket notation for arrays (`lines[0].label`). Values are compared as strings using `deepStrictEqual`.\n\n<h2 id=\"contributing\">🤗 Contributing</h2>\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for details.\n\n<h2 id=\"license\">📝 License</h2>\n\n[MIT](LICENSE) &copy; Marc Gavanier\n","readmeFilename":"README.md"}