{"_id":"@arckit/pipeline","name":"@arckit/pipeline","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@arckit/pipeline","version":"1.0.0","description":"Type-safe middleware pipeline builder with parallel execution and React provider wrapping","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/pipeline.git"},"homepage":"https://github.com/arckit-dev/pipeline#readme","bugs":{"url":"https://github.com/arckit-dev/pipeline/issues"},"keywords":["arckit","pipeline","middleware","builder","type-safe","react"],"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":"tsup","dev":"tsup --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":{"react":">=19"},"devDependencies":{"@arethetypeswrong/cli":"^0.17.0","@biomejs/biome":"^2.4.0","@commitlint/cli":"^20.0.0","@commitlint/config-conventional":"^20.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/react":"^19.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","react":"^19.0.0","semantic-release":"^24.0.0","size-limit":"^11.0.0","tsup":"^8.4.0","typescript":"^5.9.0","vitest":"^4.0.0"},"size-limit":[{"path":"dist/index.js","limit":"2 kB"}],"publishConfig":{"access":"public","provenance":true},"gitHead":"4930d8ca67b10183084f517ace0ec9aef55846e8","_id":"@arckit/pipeline@1.0.0","_nodeVersion":"25.9.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-5ergda8PIVLso62h5M1IlNy7c8iyTJz5B42GcAFyM6j4Xvn2z55isMk07zsFBYY+WlHx+viY7I6F2CQTjhvqEQ==","shasum":"666da01b64bfe0827788775a5ffa20e9aa390462","tarball":"https://registry.npmjs.org/@arckit/pipeline/-/pipeline-1.0.0.tgz","fileCount":9,"unpackedSize":23233,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@arckit%2fpipeline@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDuH/9Aewtrf1vAkjQeeyamnh+I1EiiRk8lceCoYllqIwIhAMI6VLob+0RD8b1WtLgIW90B3qddweiutcF3VAA5qRje"}]},"_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/pipeline_1.0.0_1776629827179_0.5717405916650433"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-19T20:17:07.092Z","1.0.0":"2026-04-19T20:17:07.348Z","modified":"2026-04-19T20:17:07.725Z"},"maintainers":[{"name":"marc.gavanier","email":"marc.gavanier@gmail.com"}],"description":"Type-safe middleware pipeline builder with parallel execution and React provider wrapping","homepage":"https://github.com/arckit-dev/pipeline#readme","keywords":["arckit","pipeline","middleware","builder","type-safe","react"],"repository":{"type":"git","url":"git+https://github.com/arckit-dev/pipeline.git"},"author":{"name":"Marc Gavanier","email":"marc@gavanier.com"},"bugs":{"url":"https://github.com/arckit-dev/pipeline/issues"},"license":"MIT","readme":"# @arckit/pipeline\n\nType-safe middleware pipeline builder with parallel execution and React provider wrapping.\n\n[![npm version](https://img.shields.io/npm/v/@arckit/pipeline)](https://www.npmjs.com/package/@arckit/pipeline)\n[![npm downloads](https://img.shields.io/npm/dm/@arckit/pipeline)](https://www.npmjs.com/package/@arckit/pipeline)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@arckit/pipeline)](https://bundlephobia.com/package/@arckit/pipeline)\n[![codecov](https://codecov.io/gh/arckit-dev/pipeline/graph/badge.svg)](https://codecov.io/gh/arckit-dev/pipeline)\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.9-3178C6?logo=typescript&logoColor=white)](https://www.typescriptlang.org/)\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\nFramework-agnostic middleware pipeline engine. Provides the core execution model for composing middlewares sequentially or in parallel, accumulating a typed context, and wrapping React providers. Used as the foundation for framework-specific builders (page, layout, route, action).\n\n<h2 id=\"installation\">📦 Installation</h2>\n\n```bash\npnpm add @arckit/pipeline\n```\n\n<h2 id=\"usage\">🚀 Usage</h2>\n\n### Render pipeline\n\n```typescript\nimport { render, withFetch, withMap } from '@arckit/pipeline';\n\nconst middlewares = [\n  withFetch('users', async () => fetchUsers()),\n  withMap('count', ({ users }) => users.length)\n];\n\nconst page = render(middlewares)(async ({ users, count }, props) => (\n  <UserList users={users} count={count} />\n));\n```\n\n### Shared middlewares\n\n```typescript\nimport { withFetch, withMap } from '@arckit/pipeline';\n\n// withFetch: async data fetching into context\nconst loadUsers = withFetch('users', async () => fetchUsers());\n\n// withMap: synchronous value derivation\nconst countUsers = withMap('count', ({ users }) => users.length);\n```\n\n<h2 id=\"api\">📖 API</h2>\n\n| Export | Description |\n|--------|-------------|\n| `render(middlewares)` | Creates an execution function from a middleware array. Handles sequential/parallel execution and provider wrapping. |\n| `applyProviders(providers, content)` | Wraps React content with provider components. |\n| `withFetch(key, fetcher)` | Middleware: fetches async data into context. |\n| `withMap(key, mapper)` | Middleware: derives a synchronous value into context. |\n| `Provider` | Type for React provider configuration (component + props). |\n| `Merge<A, B>` | Utility type for merging context types. |\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","_rev":"1-9b2cdd8b2703f08ff4a55fd50f38fd85"}