{"_id":"@deltic/transaction-manager","_rev":"3-f6ed57da623cdca82fb477dd0b8a596c","name":"@deltic/transaction-manager","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.0":{"name":"@deltic/transaction-manager","version":"0.1.0","keywords":["transaction","transaction-manager","unit-of-work"],"author":{"url":"https://frankdejonge.nl","name":"Frank de Jonge"},"license":"ISC","_id":"@deltic/transaction-manager@0.1.0","maintainers":[{"name":"frankdejonge","email":"info@frankdejonge.nl"}],"homepage":"https://github.com/deltic-oss/deltic#readme","bugs":{"url":"https://github.com/deltic-oss/deltic/issues"},"dist":{"shasum":"37a5a8fd30a327e37980a44d84afccb8e86012e5","tarball":"https://registry.npmjs.org/@deltic/transaction-manager/-/transaction-manager-0.1.0.tgz","fileCount":8,"integrity":"sha512-ny8Ka9mO4LRG6df/UCxw1kuMWrUBEUlIaOi6uAYZgaWp7c+1hXhq0Dv7wR+KZHJKynzfR4NvwzNLrDaAPv2Y+w==","signatures":[{"sig":"MEUCIQCTDXiUVKyJprtftJqSPkS98/wqNkuMssqIgkCQWZhsUwIgL+yv1noqMtx4ZUgknbVB+lDhpjHaFxHXK7g49O0VhI0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6413},"type":"module","_from":"file:deltic-transaction-manager-0.1.0.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs","module-sync":"./dist/index.js"}},"scripts":{},"_npmUser":{"name":"frankdejonge","email":"info@frankdejonge.nl"},"_resolved":"/private/var/folders/cf/f1s7n7kd3938zynwcqk8_2z00000gn/T/3ea31bbf530bbf6da02126fb18f9d11c/deltic-transaction-manager-0.1.0.tgz","_integrity":"sha512-ny8Ka9mO4LRG6df/UCxw1kuMWrUBEUlIaOi6uAYZgaWp7c+1hXhq0Dv7wR+KZHJKynzfR4NvwzNLrDaAPv2Y+w==","repository":{"url":"git+https://github.com/deltic-oss/deltic.git","type":"git","directory":"packages/clock"},"_npmVersion":"11.6.0","description":"A contract-based transaction manager","directories":{},"_nodeVersion":"24.8.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/transaction-manager_0.1.0_1774449997747_0.23639129686710958","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@deltic/transaction-manager","version":"0.1.1","keywords":["transaction","transaction-manager","unit-of-work"],"author":{"url":"https://frankdejonge.nl","name":"Frank de Jonge"},"license":"ISC","_id":"@deltic/transaction-manager@0.1.1","maintainers":[{"name":"frankdejonge","email":"info@frankdejonge.nl"}],"homepage":"https://github.com/deltic-oss/deltic#readme","bugs":{"url":"https://github.com/deltic-oss/deltic/issues"},"dist":{"shasum":"7f834d8d3a3aba385a4e2e7eb0e77acfbf22cb25","tarball":"https://registry.npmjs.org/@deltic/transaction-manager/-/transaction-manager-0.1.1.tgz","fileCount":8,"integrity":"sha512-E+q22BeAejrjmMyaeENa2rwqcelfWEjV6YyD/apm2Fsv/B9TvZmmJ/HRN62rCV8xQBWyvH5RpU7796p7kOOgkw==","signatures":[{"sig":"MEQCIG8CHcyTT0uPJ8N6Z5JwoQg6uewA9gfWm8HlCgVSHNlyAiBFOMSxn4vwpRtc59pQiirgJ7YFPSr44HKbwewqeQgqIQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6496},"type":"module","_from":"file:deltic-transaction-manager-0.1.1.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs","module-sync":"./dist/index.mjs"}},"scripts":{},"_npmUser":{"name":"frankdejonge","email":"info@frankdejonge.nl"},"_resolved":"/private/var/folders/cf/f1s7n7kd3938zynwcqk8_2z00000gn/T/3705cf6250f1aa4c414f936a7e4a2a9a/deltic-transaction-manager-0.1.1.tgz","_integrity":"sha512-E+q22BeAejrjmMyaeENa2rwqcelfWEjV6YyD/apm2Fsv/B9TvZmmJ/HRN62rCV8xQBWyvH5RpU7796p7kOOgkw==","repository":{"url":"git+https://github.com/deltic-oss/deltic.git","type":"git","directory":"packages/clock"},"_npmVersion":"11.6.0","description":"A contract-based transaction manager","directories":{},"_nodeVersion":"24.8.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/transaction-manager_0.1.1_1774454202757_0.9576235387533396","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@deltic/transaction-manager","type":"module","version":"0.1.2","description":"A contract-based transaction manager","exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.cjs","module-sync":"./dist/index.mjs","types":"./dist/index.d.mts"}},"keywords":["transaction","transaction-manager","unit-of-work"],"author":{"name":"Frank de Jonge","url":"https://frankdejonge.nl"},"license":"ISC","repository":{"type":"git","url":"git+https://github.com/deltic-oss/deltic.git","directory":"packages/clock"},"scripts":{},"_id":"@deltic/transaction-manager@0.1.2","bugs":{"url":"https://github.com/deltic-oss/deltic/issues"},"homepage":"https://github.com/deltic-oss/deltic#readme","_integrity":"sha512-75Kv57yUIVbj32vyQiTjNWS99ug1L5E7JZOo3vpoeKoTVkowIlMffSj0pRMWLoiyEvVCi9N8sNHHeRpQTgytyA==","_resolved":"/private/var/folders/cf/f1s7n7kd3938zynwcqk8_2z00000gn/T/cdcbf96400b157bf7a1a2ce941ee0d20/deltic-transaction-manager-0.1.2.tgz","_from":"file:deltic-transaction-manager-0.1.2.tgz","_nodeVersion":"24.8.0","_npmVersion":"11.6.0","dist":{"integrity":"sha512-75Kv57yUIVbj32vyQiTjNWS99ug1L5E7JZOo3vpoeKoTVkowIlMffSj0pRMWLoiyEvVCi9N8sNHHeRpQTgytyA==","shasum":"0d0881e2b87dcafc34e8703fcec9b3d089a76239","tarball":"https://registry.npmjs.org/@deltic/transaction-manager/-/transaction-manager-0.1.2.tgz","fileCount":8,"unpackedSize":6578,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIEH1AI2lEoW/Y72vqasAKIGS3KtfcRqATR2IZB3mUidAAiEA4DOqXkdk1ttgFtr9MrtEgkph59LoFgsynY3Y1xiGP+4="}]},"_npmUser":{"name":"frankdejonge","email":"info@frankdejonge.nl"},"directories":{},"maintainers":[{"name":"frankdejonge","email":"info@frankdejonge.nl"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/transaction-manager_0.1.2_1774454569931_0.015488083562868571"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-25T14:46:37.607Z","modified":"2026-03-25T16:02:50.253Z","0.1.0":"2026-03-25T14:46:37.951Z","0.1.1":"2026-03-25T15:56:42.902Z","0.1.2":"2026-03-25T16:02:50.087Z"},"bugs":{"url":"https://github.com/deltic-oss/deltic/issues"},"author":{"name":"Frank de Jonge","url":"https://frankdejonge.nl"},"license":"ISC","homepage":"https://github.com/deltic-oss/deltic#readme","keywords":["transaction","transaction-manager","unit-of-work"],"repository":{"type":"git","url":"git+https://github.com/deltic-oss/deltic.git","directory":"packages/clock"},"description":"A contract-based transaction manager","maintainers":[{"name":"frankdejonge","email":"info@frankdejonge.nl"}],"readme":"# @deltic/transaction-manager\n\nA contract-based transaction management interface for unit-of-work patterns.\n\n## Installation\n\n```bash\nnpm install @deltic/transaction-manager\n```\n\n## Usage\n\n### Interface\n\nDepend on the `TransactionManager` interface to keep domain code free of infrastructure details:\n\n```typescript\nimport type {TransactionManager} from '@deltic/transaction-manager';\n\nclass OrderService {\n    constructor(private readonly transactions: TransactionManager) {}\n\n    async placeOrder(order: Order) {\n        await this.transactions.runInTransaction(async () => {\n            await this.orderRepo.save(order);\n            await this.outbox.dispatch(new OrderPlaced(order.id));\n        });\n    }\n}\n```\n\n### Implementations\n\nThe concrete implementation is provided by `@deltic/async-pg-pool`:\n\n```typescript\nimport {TransactionManagerUsingPg} from '@deltic/async-pg-pool';\n\nconst transactionManager = new TransactionManagerUsingPg(asyncPool);\n```\n\nFor testing, use the no-op implementation:\n\n```typescript\nimport {NoopTransactionManager} from '@deltic/transaction-manager';\n\nconst transactionManager = new NoopTransactionManager();\n```\n\n### Isolation\n\nRun operations in an isolated context with separate connection state:\n\n```typescript\nawait transactionManager.runInIsolation(async () => {\n    // Connections here are independent of the outer context\n});\n\n// Or combine isolation with a transaction\nawait transactionManager.runInIsolatedTransaction(async () => {\n    // Isolated context + automatic transaction management\n});\n```\n\n## API Reference\n\n### `TransactionManager` (interface)\n\n| Method | Description |\n|--------|-------------|\n| `begin()` | Starts a transaction |\n| `commit()` | Commits the active transaction |\n| `rollback(error?)` | Rolls back the active transaction |\n| `inTransaction()` | Returns `true` if a transaction is active |\n| `runInTransaction(fn)` | Runs a function with automatic commit/rollback |\n| `runInIsolation(fn)` | Runs a function in an isolated connection context |\n| `runInIsolatedTransaction(fn)` | Combines isolation and transaction management |\n\n### `NoopTransactionManager`\n\nA no-op implementation that runs callbacks directly without transaction management. Useful for testing or non-transactional contexts.\n\n## License\n\nISC\n","readmeFilename":"README.md"}