{"_id":"@coderbyheart/aws-dynamodb-es-cqrs","_rev":"10-6d6507b70fec0229c9e33fa57dcecddf","name":"@coderbyheart/aws-dynamodb-es-cqrs","dist-tags":{"latest":"1.3.0"},"versions":{"1.0.0":{"name":"@coderbyheart/aws-dynamodb-es-cqrs","version":"1.0.0","author":{"name":"Markus Tacker","email":"m@coderbyheart.com"},"license":"MIT","_id":"@coderbyheart/aws-dynamodb-es-cqrs@1.0.0","maintainers":[{"name":"coderbyheart","email":"m@coderbyheart.com"}],"homepage":"https://trash.fjordcleanup.org","bugs":{"url":"https://github.com/coderbyheart/aws-dynamodb-es-cqrs/issues"},"dist":{"shasum":"7036189b62f42169ffc38ae75b26f684c46850bd","tarball":"https://registry.npmjs.org/@coderbyheart/aws-dynamodb-es-cqrs/-/aws-dynamodb-es-cqrs-1.0.0.tgz","fileCount":43,"integrity":"sha512-lDqNs0vrsph2W7ci7UjEBU0jLn4a/RPiiD0a3n922sqF3U/nTdbaXkcrPnUo8XqFBSG+rMl18eQfQ2AxgJZbAQ==","signatures":[{"sig":"MEYCIQDrTOn/TjnksAQTWVgU6ko6B5QdQFN2lM0VzgmD0/D1RgIhANBdEqeGMbuUJ/zVnXGmT7vpQ+Amh2MWKvE4BEur4jlO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18616},"type":"module","engines":{"npm":">=10.0.0","node":">=22.0.0"},"gitHead":"631717949f416ff9b0bc0d2814e5d916c59071c3","imports":{"#error/*":{"import":{"default":"./npm/error/*","aws-dynamodb-es-cqrs-dev":"./error/*"}},"#event/*":{"import":{"default":"./npm/event/*","aws-dynamodb-es-cqrs-dev":"./event/*"}},"#aggregate/*":{"import":{"default":"./npm/aggregate/*","aws-dynamodb-es-cqrs-dev":"./aggregate/*"}},"#persistence/*":{"import":{"default":"./npm/persistence/*","aws-dynamodb-es-cqrs-dev":"./persistence/*"}}},"release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator","@semantic-release/npm",["@semantic-release/github",{"failComment":false,"successComment":false}]],"branches":["saga"],"remoteTags":true},"scripts":{"test":"node --no-warnings --experimental-transform-types --conditions=aws-dynamodb-es-cqrs-dev --test \"!(node_modules)/**/*.spec.ts\"","prepare":"husky","test:watch":"node --no-warnings --experimental-transform-types --conditions=aws-dynamodb-es-cqrs-dev --test --watch \"!(node_modules)/**/*.spec.ts\"","prepublishOnly":"node --experimental-strip-types ./.npm/compile.ts && npx tsc -P ./.npm/tsconfig.npm.json --outDir ./npm"},"_npmUser":{"name":"coderbyheart","email":"m@coderbyheart.com"},"prettier":"@bifravst/prettier-config","repository":{"url":"git+https://github.com/coderbyheart/aws-dynamodb-es-cqrs.git","type":"git"},"_npmVersion":"10.9.3","description":"ES/CQRS using AWS DynamoDB","directories":{},"lint-staged":{"*.ts":["prettier --write","eslint"],"*.{md,json,yaml,yml}":["prettier --write"]},"_nodeVersion":"22.18.0","_hasShrinkwrap":false,"devDependencies":{"husky":"9.1.7","@swc/core":"1.13.3","commitlint":"19.8.1","typescript":"5.9.2","@types/node":"24.2.1","lint-staged":"16.1.5","@types/aws-lambda":"8.10.152","@aws-sdk/util-dynamodb":"3.864.0","@aws-sdk/client-dynamodb":"3.864.0","@bifravst/prettier-config":"1.1.12","@commitlint/config-conventional":"19.8.1","@bifravst/cloudformation-helpers":"9.1.1","@bifravst/eslint-config-typescript":"6.4.3","@babel/plugin-syntax-import-assertions":"7.27.1"},"peerDependencies":{"ulidx":"2.4.1","@bifravst/from-env":"3.0.2"},"_npmOperationalInternal":{"tmp":"tmp/aws-dynamodb-es-cqrs_1.0.0_1755172145212_0.41561045516421435","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@coderbyheart/aws-dynamodb-es-cqrs","version":"1.0.1","author":{"name":"Markus Tacker","email":"m@coderbyheart.com"},"license":"MIT","_id":"@coderbyheart/aws-dynamodb-es-cqrs@1.0.1","maintainers":[{"name":"coderbyheart","email":"m@coderbyheart.com"}],"homepage":"https://trash.fjordcleanup.org","bugs":{"url":"https://github.com/coderbyheart/aws-dynamodb-es-cqrs/issues"},"dist":{"shasum":"45fdaf80a7244f4b271eeae140a6e12e14d53da2","tarball":"https://registry.npmjs.org/@coderbyheart/aws-dynamodb-es-cqrs/-/aws-dynamodb-es-cqrs-1.0.1.tgz","fileCount":43,"integrity":"sha512-x1VPUFimFzK6bM9yRXghjbMlyqMLkIO+TrouD17xVvXds9K/3rr8AeVp6wXxC//2daMgFHfVZz3Xm1peinxfnA==","signatures":[{"sig":"MEUCIQCFOZCtfrOHAe8WRV4GStZ/CurCyccJVUR+fycjlk+n9AIgbdWSkCbSU6IX0Qwn7qNKUH6zZQjEqxsI767qgxxYO68=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21759},"type":"module","engines":{"npm":">=10.0.0","node":">=22.0.0"},"gitHead":"1c211a99cd0646a6955a85f073e88892a4310a81","imports":{"#error/*":{"import":{"default":"./npm/error/*","aws-dynamodb-es-cqrs-dev":"./error/*"}},"#event/*":{"import":{"default":"./npm/event/*","aws-dynamodb-es-cqrs-dev":"./event/*"}},"#aggregate/*":{"import":{"default":"./npm/aggregate/*","aws-dynamodb-es-cqrs-dev":"./aggregate/*"}},"#persistence/*":{"import":{"default":"./npm/persistence/*","aws-dynamodb-es-cqrs-dev":"./persistence/*"}}},"release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator","@semantic-release/npm",["@semantic-release/github",{"failComment":false,"successComment":false}]],"branches":["saga"],"remoteTags":true},"scripts":{"test":"node --no-warnings --experimental-transform-types --conditions=aws-dynamodb-es-cqrs-dev --test \"!(node_modules)/**/*.spec.ts\"","prepare":"husky","test:watch":"node --no-warnings --experimental-transform-types --conditions=aws-dynamodb-es-cqrs-dev --test --watch \"!(node_modules)/**/*.spec.ts\"","prepublishOnly":"node --experimental-strip-types ./.npm/compile.ts && npx tsc -P ./.npm/tsconfig.npm.json --outDir ./npm"},"_npmUser":{"name":"coderbyheart","email":"m@coderbyheart.com"},"prettier":"@bifravst/prettier-config","repository":{"url":"git+https://github.com/coderbyheart/aws-dynamodb-es-cqrs.git","type":"git"},"_npmVersion":"10.9.3","description":"ES/CQRS using AWS DynamoDB","directories":{},"lint-staged":{"*.ts":["prettier --write","eslint"],"*.{md,json,yaml,yml}":["prettier --write"]},"_nodeVersion":"22.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"husky":"9.1.7","@swc/core":"1.13.3","commitlint":"19.8.1","typescript":"5.9.2","@types/node":"24.2.1","lint-staged":"16.1.5","@types/aws-lambda":"8.10.152","@aws-sdk/util-dynamodb":"3.864.0","@aws-sdk/client-dynamodb":"3.864.0","@bifravst/prettier-config":"1.1.12","@commitlint/config-conventional":"19.8.1","@bifravst/cloudformation-helpers":"9.1.1","@bifravst/eslint-config-typescript":"6.4.3","@babel/plugin-syntax-import-assertions":"7.27.1"},"peerDependencies":{"ulidx":"2.4.1","@bifravst/from-env":"3.0.2"},"_npmOperationalInternal":{"tmp":"tmp/aws-dynamodb-es-cqrs_1.0.1_1755174400111_0.4374004871893127","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@coderbyheart/aws-dynamodb-es-cqrs","version":"1.0.2","author":{"name":"Markus Tacker","email":"m@coderbyheart.com"},"license":"MIT","_id":"@coderbyheart/aws-dynamodb-es-cqrs@1.0.2","maintainers":[{"name":"coderbyheart","email":"m@coderbyheart.com"}],"homepage":"https://trash.fjordcleanup.org","bugs":{"url":"https://github.com/coderbyheart/aws-dynamodb-es-cqrs/issues"},"dist":{"shasum":"bb53c15c9e251f58e6f2cf6907c526280acb5698","tarball":"https://registry.npmjs.org/@coderbyheart/aws-dynamodb-es-cqrs/-/aws-dynamodb-es-cqrs-1.0.2.tgz","fileCount":43,"integrity":"sha512-X331rmxoQjraeT86a8bSOgGycdapfJq52zXmZA8geiU56rym/hnYFTykdbKqDARdL7/IzY3FbLKkvambgcP8aA==","signatures":[{"sig":"MEQCIAa8aZL13muctJxBOz7hZNl4/eXJd/snorsXlPkgWqUVAiBuUh6tH/N/0+Cjvh89cFwfcu5By303l/okA8r1JpQ7tA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22324},"type":"module","engines":{"npm":">=10.0.0","node":">=22.0.0"},"exports":{"./error/*":{"import":{"types":"./npm/error/*.d.ts","default":"./npm/error/*.js"}},"./event/*":{"import":{"types":"./npm/event/*.d.ts","default":"./npm/event/*.js"}},"./aggregate/*":{"import":{"types":"./npm/aggregate/*.d.ts","default":"./npm/aggregate/*.js"}},"./persistence/*":{"import":{"types":"./npm/persistence/*.d.ts","default":"./npm/persistence/*.js"}}},"gitHead":"29a3f838fff1abd1e11aa2ebd9a517faf88887df","imports":{"#error/*":{"import":{"default":"./npm/error/*","aws-dynamodb-es-cqrs-dev":"./error/*"}},"#event/*":{"import":{"default":"./npm/event/*","aws-dynamodb-es-cqrs-dev":"./event/*"}},"#aggregate/*":{"import":{"default":"./npm/aggregate/*","aws-dynamodb-es-cqrs-dev":"./aggregate/*"}},"#persistence/*":{"import":{"default":"./npm/persistence/*","aws-dynamodb-es-cqrs-dev":"./persistence/*"}}},"release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator","@semantic-release/npm",["@semantic-release/github",{"failComment":false,"successComment":false}]],"branches":["saga"],"remoteTags":true},"scripts":{"test":"node --no-warnings --experimental-transform-types --conditions=aws-dynamodb-es-cqrs-dev --test \"!(node_modules)/**/*.spec.ts\"","prepare":"husky","test:watch":"node --no-warnings --experimental-transform-types --conditions=aws-dynamodb-es-cqrs-dev --test --watch \"!(node_modules)/**/*.spec.ts\"","prepublishOnly":"node --experimental-strip-types ./.npm/compile.ts && npx tsc -P ./.npm/tsconfig.npm.json --outDir ./npm"},"_npmUser":{"name":"coderbyheart","email":"m@coderbyheart.com"},"prettier":"@bifravst/prettier-config","repository":{"url":"git+https://github.com/coderbyheart/aws-dynamodb-es-cqrs.git","type":"git"},"_npmVersion":"10.9.3","description":"ES/CQRS using AWS DynamoDB","directories":{},"lint-staged":{"*.ts":["prettier --write","eslint"],"*.{md,json,yaml,yml}":["prettier --write"]},"_nodeVersion":"22.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"husky":"9.1.7","@swc/core":"1.13.3","commitlint":"19.8.1","typescript":"5.9.2","@types/node":"24.2.1","lint-staged":"16.1.5","@types/aws-lambda":"8.10.152","@aws-sdk/util-dynamodb":"3.864.0","@aws-sdk/client-dynamodb":"3.864.0","@bifravst/prettier-config":"1.1.12","@commitlint/config-conventional":"19.8.1","@bifravst/cloudformation-helpers":"9.1.1","@bifravst/eslint-config-typescript":"6.4.3","@babel/plugin-syntax-import-assertions":"7.27.1"},"peerDependencies":{"ulidx":"2.4.1","@bifravst/from-env":"3.0.2"},"_npmOperationalInternal":{"tmp":"tmp/aws-dynamodb-es-cqrs_1.0.2_1755175736587_0.456557333204308","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@coderbyheart/aws-dynamodb-es-cqrs","version":"1.0.3","author":{"name":"Markus Tacker","email":"m@coderbyheart.com"},"license":"MIT","_id":"@coderbyheart/aws-dynamodb-es-cqrs@1.0.3","maintainers":[{"name":"coderbyheart","email":"m@coderbyheart.com"}],"homepage":"https://github.com/coderbyheart/aws-dynamodb-es-cqrs","bugs":{"url":"https://github.com/coderbyheart/aws-dynamodb-es-cqrs/issues"},"dist":{"shasum":"5ee144947c2ee8cb671a045d1b51b0922bbbcbee","tarball":"https://registry.npmjs.org/@coderbyheart/aws-dynamodb-es-cqrs/-/aws-dynamodb-es-cqrs-1.0.3.tgz","fileCount":51,"integrity":"sha512-915iOCo0RDodsVEc5ybPLubKn0w4vPS63z6kY2hNWbvY20ON3TYKhwrLUFRQwNpYvB5SMKRS/1ZjVn2bmH2q4Q==","signatures":[{"sig":"MEUCIHNM+P3nqTGdxtyZQiYWJwbysAIQ3f79eUyKWTVWvXT2AiEAuuIGVBAqRq1Oai48/YGX9EWZ8y/K6fIeHt06lq78l4c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24076},"type":"module","engines":{"npm":">=10.0.0","node":">=22.0.0"},"exports":{"./error":{"import":{"types":"./npm/error/export.d.ts","default":"./npm/error/export.js"}},"./event":{"import":{"types":"./npm/event/export.d.ts","default":"./npm/event/export.js"}},"./aggregate":{"import":{"types":"./npm/aggregate/export.d.ts","default":"./npm/aggregate/export.js"}},"./persistence":{"import":{"types":"./npm/persistence/export.d.ts","default":"./npm/persistence/export.js"}}},"gitHead":"3a99904ee565897d73ad620dea6e6bf87185f10f","imports":{"#error/*":{"import":{"default":"./npm/error/*","aws-dynamodb-es-cqrs-dev":"./error/*"}},"#event/*":{"import":{"default":"./npm/event/*","aws-dynamodb-es-cqrs-dev":"./event/*"}},"#aggregate/*":{"import":{"default":"./npm/aggregate/*","aws-dynamodb-es-cqrs-dev":"./aggregate/*"}},"#persistence/*":{"import":{"default":"./npm/persistence/*","aws-dynamodb-es-cqrs-dev":"./persistence/*"}}},"release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator","@semantic-release/npm",["@semantic-release/github",{"failComment":false,"successComment":false}]],"branches":["saga"],"remoteTags":true},"scripts":{"test":"node --no-warnings --experimental-transform-types --conditions=aws-dynamodb-es-cqrs-dev --test \"!(node_modules)/**/*.spec.ts\"","prepare":"husky","test:watch":"node --no-warnings --experimental-transform-types --conditions=aws-dynamodb-es-cqrs-dev --test --watch \"!(node_modules)/**/*.spec.ts\"","prepublishOnly":"node --experimental-strip-types ./.npm/compile.ts && npx tsc -P ./.npm/tsconfig.npm.json --outDir ./npm"},"_npmUser":{"name":"coderbyheart","email":"m@coderbyheart.com"},"prettier":"@bifravst/prettier-config","repository":{"url":"git+https://github.com/coderbyheart/aws-dynamodb-es-cqrs.git","type":"git"},"_npmVersion":"10.9.3","description":"ES/CQRS using AWS DynamoDB","directories":{},"lint-staged":{"*.ts":["prettier --write","eslint"],"*.{md,json,yaml,yml}":["prettier --write"]},"_nodeVersion":"22.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"husky":"9.1.7","@swc/core":"1.13.3","commitlint":"19.8.1","typescript":"5.9.2","@types/node":"24.2.1","lint-staged":"16.1.5","@types/aws-lambda":"8.10.152","@aws-sdk/util-dynamodb":"3.864.0","@aws-sdk/client-dynamodb":"3.864.0","@bifravst/prettier-config":"1.1.12","@commitlint/config-conventional":"19.8.1","@bifravst/cloudformation-helpers":"9.1.1","@bifravst/eslint-config-typescript":"6.4.3","@babel/plugin-syntax-import-assertions":"7.27.1"},"peerDependencies":{"ulidx":"2.4.1","@bifravst/from-env":"3.0.2"},"_npmOperationalInternal":{"tmp":"tmp/aws-dynamodb-es-cqrs_1.0.3_1755206350274_0.1903141133699917","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@coderbyheart/aws-dynamodb-es-cqrs","version":"1.0.4","author":{"name":"Markus Tacker","email":"m@coderbyheart.com"},"license":"MIT","_id":"@coderbyheart/aws-dynamodb-es-cqrs@1.0.4","maintainers":[{"name":"coderbyheart","email":"m@coderbyheart.com"}],"homepage":"https://github.com/coderbyheart/aws-dynamodb-es-cqrs","bugs":{"url":"https://github.com/coderbyheart/aws-dynamodb-es-cqrs/issues"},"dist":{"shasum":"16bb056ae42400bcb389f8c4c479efd02f489f5c","tarball":"https://registry.npmjs.org/@coderbyheart/aws-dynamodb-es-cqrs/-/aws-dynamodb-es-cqrs-1.0.4.tgz","fileCount":51,"integrity":"sha512-SpFgKoF8YQjgRNykaUKK++kyO4HQIFncZq8IiK9JZGGCHTK2S8c10fDnkdQfNp2fDX34nFq0XbyvgnAuYVVEbQ==","signatures":[{"sig":"MEYCIQDM8TDQppkFkgj+ZYozFOzpxFDFXW0AiONC2goHWg92YAIhAPQt+b9a5QJSHQGJC0mzhsFgxMuU3Dk9QXREk+3j5xaX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24076},"type":"module","engines":{"npm":">=10.0.0","node":">=22.0.0"},"exports":{"./error":{"import":{"types":"./npm/error/export.d.ts","default":"./npm/error/export.js"}},"./event":{"import":{"types":"./npm/event/export.d.ts","default":"./npm/event/export.js"}},"./aggregate":{"import":{"types":"./npm/aggregate/export.d.ts","default":"./npm/aggregate/export.js"}},"./persistence":{"import":{"types":"./npm/persistence/export.d.ts","default":"./npm/persistence/export.js"}}},"gitHead":"8f06ca65b8a880c5c70fb994612a85f90b67e521","imports":{"#error/*":{"import":{"default":"./npm/error/*","aws-dynamodb-es-cqrs-dev":"./error/*"}},"#event/*":{"import":{"default":"./npm/event/*","aws-dynamodb-es-cqrs-dev":"./event/*"}},"#aggregate/*":{"import":{"default":"./npm/aggregate/*","aws-dynamodb-es-cqrs-dev":"./aggregate/*"}},"#persistence/*":{"import":{"default":"./npm/persistence/*","aws-dynamodb-es-cqrs-dev":"./persistence/*"}}},"release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator","@semantic-release/npm",["@semantic-release/github",{"failComment":false,"successComment":false}]],"branches":["saga"],"remoteTags":true},"scripts":{"test":"node --no-warnings --experimental-transform-types --conditions=aws-dynamodb-es-cqrs-dev --test \"!(node_modules)/**/*.spec.ts\"","prepare":"husky","test:watch":"node --no-warnings --experimental-transform-types --conditions=aws-dynamodb-es-cqrs-dev --test --watch \"!(node_modules)/**/*.spec.ts\"","prepublishOnly":"node --experimental-strip-types ./.npm/compile.ts && npx tsc -P ./.npm/tsconfig.npm.json --outDir ./npm"},"_npmUser":{"name":"coderbyheart","email":"m@coderbyheart.com"},"prettier":"@bifravst/prettier-config","repository":{"url":"git+https://github.com/coderbyheart/aws-dynamodb-es-cqrs.git","type":"git"},"_npmVersion":"10.9.3","description":"ES/CQRS using AWS DynamoDB","directories":{},"lint-staged":{"*.ts":["prettier --write","eslint"],"*.{md,json,yaml,yml}":["prettier --write"]},"_nodeVersion":"22.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"husky":"9.1.7","@swc/core":"1.13.5","commitlint":"19.8.1","typescript":"5.9.2","@types/node":"24.3.0","lint-staged":"16.1.5","@types/aws-lambda":"8.10.152","@aws-sdk/util-dynamodb":"3.879.0","@aws-sdk/client-dynamodb":"3.879.0","@bifravst/prettier-config":"1.1.12","@commitlint/config-conventional":"19.8.1","@bifravst/cloudformation-helpers":"9.1.1","@bifravst/eslint-config-typescript":"6.4.3","@babel/plugin-syntax-import-assertions":"7.27.1"},"peerDependencies":{"ulidx":"2.4.1","@bifravst/from-env":"3.0.2"},"_npmOperationalInternal":{"tmp":"tmp/aws-dynamodb-es-cqrs_1.0.4_1756668858276_0.8911920643857687","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@coderbyheart/aws-dynamodb-es-cqrs","version":"1.1.0","author":{"name":"Markus Tacker","email":"m@coderbyheart.com"},"license":"MIT","_id":"@coderbyheart/aws-dynamodb-es-cqrs@1.1.0","maintainers":[{"name":"coderbyheart","email":"m@coderbyheart.com"}],"homepage":"https://github.com/coderbyheart/aws-dynamodb-es-cqrs","bugs":{"url":"https://github.com/coderbyheart/aws-dynamodb-es-cqrs/issues"},"dist":{"shasum":"7786fdf1946b3a6cd19d14a39bda7f34b8ae5d1d","tarball":"https://registry.npmjs.org/@coderbyheart/aws-dynamodb-es-cqrs/-/aws-dynamodb-es-cqrs-1.1.0.tgz","fileCount":51,"integrity":"sha512-M+V41f7Dp/PEWDTgDJQfmSeEBqmQncqanZECHsjQU+dxoMUkPSkB9Rb5lRq+ESDdeIvUAgYERlydmNlMoHgqUw==","signatures":[{"sig":"MEUCID7QZKK4Mr1L55dMTgoDuT4vp4yXCuF6P5yXGO/GPu34AiEA4vqD7C26voFBBzbDkmOLnGBZbw9PNRdJJpHDC/j837g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24097},"type":"module","engines":{"npm":">=10.0.0","node":">=22.0.0"},"exports":{"./error":{"import":{"types":"./npm/error/export.d.ts","default":"./npm/error/export.js"}},"./event":{"import":{"types":"./npm/event/export.d.ts","default":"./npm/event/export.js"}},"./aggregate":{"import":{"types":"./npm/aggregate/export.d.ts","default":"./npm/aggregate/export.js"}},"./persistence":{"import":{"types":"./npm/persistence/export.d.ts","default":"./npm/persistence/export.js"}}},"gitHead":"e2421e515e581fa049a925d10cf5688a42b60aad","imports":{"#error/*":{"import":{"default":"./npm/error/*","aws-dynamodb-es-cqrs-dev":"./error/*"}},"#event/*":{"import":{"default":"./npm/event/*","aws-dynamodb-es-cqrs-dev":"./event/*"}},"#aggregate/*":{"import":{"default":"./npm/aggregate/*","aws-dynamodb-es-cqrs-dev":"./aggregate/*"}},"#persistence/*":{"import":{"default":"./npm/persistence/*","aws-dynamodb-es-cqrs-dev":"./persistence/*"}}},"release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator","@semantic-release/npm",["@semantic-release/github",{"failComment":false,"successComment":false}]],"branches":["saga"],"remoteTags":true},"scripts":{"test":"node --no-warnings --experimental-transform-types --conditions=aws-dynamodb-es-cqrs-dev --test \"!(node_modules)/**/*.spec.ts\"","prepare":"husky","test:watch":"node --no-warnings --experimental-transform-types --conditions=aws-dynamodb-es-cqrs-dev --test --watch \"!(node_modules)/**/*.spec.ts\"","prepublishOnly":"node --experimental-strip-types ./.npm/compile.ts && npx tsc -P ./.npm/tsconfig.npm.json --outDir ./npm"},"_npmUser":{"name":"coderbyheart","email":"m@coderbyheart.com"},"prettier":"@bifravst/prettier-config","repository":{"url":"git+https://github.com/coderbyheart/aws-dynamodb-es-cqrs.git","type":"git"},"_npmVersion":"10.9.3","description":"ES/CQRS using AWS DynamoDB","directories":{},"lint-staged":{"*.ts":["prettier --write","eslint"],"*.{md,json,yaml,yml}":["prettier --write"]},"_nodeVersion":"22.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"husky":"9.1.7","@swc/core":"1.13.5","commitlint":"19.8.1","typescript":"5.9.2","@types/node":"24.3.0","lint-staged":"16.1.5","@types/aws-lambda":"8.10.152","@aws-sdk/util-dynamodb":"3.879.0","@aws-sdk/client-dynamodb":"3.879.0","@bifravst/prettier-config":"1.1.12","@commitlint/config-conventional":"19.8.1","@bifravst/cloudformation-helpers":"9.1.1","@bifravst/eslint-config-typescript":"6.4.3","@babel/plugin-syntax-import-assertions":"7.27.1"},"peerDependencies":{"ulidx":"2.4.1","@bifravst/from-env":"3.0.2"},"_npmOperationalInternal":{"tmp":"tmp/aws-dynamodb-es-cqrs_1.1.0_1756670984106_0.4110037900415746","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@coderbyheart/aws-dynamodb-es-cqrs","version":"1.1.1","author":{"name":"Markus Tacker","email":"m@coderbyheart.com"},"license":"MIT","_id":"@coderbyheart/aws-dynamodb-es-cqrs@1.1.1","maintainers":[{"name":"coderbyheart","email":"m@coderbyheart.com"}],"homepage":"https://github.com/coderbyheart/aws-dynamodb-es-cqrs","bugs":{"url":"https://github.com/coderbyheart/aws-dynamodb-es-cqrs/issues"},"dist":{"shasum":"0364c516e3fed4bd82cafe5e09815314afa40d78","tarball":"https://registry.npmjs.org/@coderbyheart/aws-dynamodb-es-cqrs/-/aws-dynamodb-es-cqrs-1.1.1.tgz","fileCount":51,"integrity":"sha512-4K6Fw1d2ImfYKVyGrv0kFK25lYh3JkC4iLMbmxR9T+UrgBMaWlv7bS43hPE06ntcLn2j8I7wons1wlJzXON89Q==","signatures":[{"sig":"MEUCIFBbi/v82eEMXc9pDBxWPagnEXxxrf326v+3MpsYAWUMAiEAnCloVaRCqLBL0OI/68hg6qNOGr/18q2txQXhAy9lvTw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24097},"type":"module","engines":{"npm":">=10.0.0","node":">=22.0.0"},"exports":{"./error":{"import":{"types":"./npm/error/export.d.ts","default":"./npm/error/export.js"}},"./event":{"import":{"types":"./npm/event/export.d.ts","default":"./npm/event/export.js"}},"./aggregate":{"import":{"types":"./npm/aggregate/export.d.ts","default":"./npm/aggregate/export.js"}},"./persistence":{"import":{"types":"./npm/persistence/export.d.ts","default":"./npm/persistence/export.js"}}},"gitHead":"203ecc66c7394e650c3e4526d8b871d716cfad56","imports":{"#error/*":{"import":{"default":"./npm/error/*","aws-dynamodb-es-cqrs-dev":"./error/*"}},"#event/*":{"import":{"default":"./npm/event/*","aws-dynamodb-es-cqrs-dev":"./event/*"}},"#aggregate/*":{"import":{"default":"./npm/aggregate/*","aws-dynamodb-es-cqrs-dev":"./aggregate/*"}},"#persistence/*":{"import":{"default":"./npm/persistence/*","aws-dynamodb-es-cqrs-dev":"./persistence/*"}}},"release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator","@semantic-release/npm",["@semantic-release/github",{"failComment":false,"successComment":false}]],"branches":["saga"],"remoteTags":true},"scripts":{"test":"node --no-warnings --experimental-transform-types --conditions=aws-dynamodb-es-cqrs-dev --test \"!(node_modules)/**/*.spec.ts\"","prepare":"husky","test:watch":"node --no-warnings --experimental-transform-types --conditions=aws-dynamodb-es-cqrs-dev --test --watch \"!(node_modules)/**/*.spec.ts\"","prepublishOnly":"node --experimental-strip-types ./.npm/compile.ts && npx tsc -P ./.npm/tsconfig.npm.json --outDir ./npm"},"_npmUser":{"name":"coderbyheart","email":"m@coderbyheart.com"},"prettier":"@bifravst/prettier-config","repository":{"url":"git+https://github.com/coderbyheart/aws-dynamodb-es-cqrs.git","type":"git"},"_npmVersion":"10.9.3","description":"ES/CQRS using AWS DynamoDB","directories":{},"lint-staged":{"*.ts":["prettier --write","eslint"],"*.{md,json,yaml,yml}":["prettier --write"]},"_nodeVersion":"22.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"husky":"9.1.7","@swc/core":"1.13.5","commitlint":"19.8.1","typescript":"5.9.2","@types/node":"24.3.0","lint-staged":"16.1.6","@types/aws-lambda":"8.10.152","@aws-sdk/util-dynamodb":"3.879.0","@aws-sdk/client-dynamodb":"3.879.0","@bifravst/prettier-config":"1.1.12","@commitlint/config-conventional":"19.8.1","@bifravst/cloudformation-helpers":"9.1.1","@bifravst/eslint-config-typescript":"6.4.3","@babel/plugin-syntax-import-assertions":"7.27.1"},"peerDependencies":{"ulidx":"2.4.1","@bifravst/from-env":"3.0.2"},"_npmOperationalInternal":{"tmp":"tmp/aws-dynamodb-es-cqrs_1.1.1_1756759831179_0.5167895744106819","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@coderbyheart/aws-dynamodb-es-cqrs","version":"1.2.0","author":{"name":"Markus Tacker","email":"m@coderbyheart.com"},"license":"MIT","_id":"@coderbyheart/aws-dynamodb-es-cqrs@1.2.0","maintainers":[{"name":"coderbyheart","email":"m@coderbyheart.com"}],"homepage":"https://github.com/coderbyheart/aws-dynamodb-es-cqrs","bugs":{"url":"https://github.com/coderbyheart/aws-dynamodb-es-cqrs/issues"},"dist":{"shasum":"7818e24a105150f279635a3f7930b9da819fc1f2","tarball":"https://registry.npmjs.org/@coderbyheart/aws-dynamodb-es-cqrs/-/aws-dynamodb-es-cqrs-1.2.0.tgz","fileCount":59,"integrity":"sha512-1hbDhyz6b3WXQki1mN9Lu2uJowi70u5KkYE0KaOjYGn/BOInka0yeet7/pwxSRytOLXb0Mbd+kysDY7mX7aupA==","signatures":[{"sig":"MEUCIG3stoi9ydQPdtnMtrnmxgdKsnbRoT/ITgMV5qLqVnLkAiEA+C0/3VW/4wazcjOEdXaLnjQG/xlZEwkAsS6TVehrrAc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25486},"type":"module","engines":{"npm":">=10.0.0","node":">=22.0.0"},"exports":{"./error":{"import":{"types":"./npm/error/export.d.ts","default":"./npm/error/export.js"}},"./event":{"import":{"types":"./npm/event/export.d.ts","default":"./npm/event/export.js"}},"./aggregate":{"import":{"types":"./npm/aggregate/export.d.ts","default":"./npm/aggregate/export.js"}},"./persistence":{"import":{"types":"./npm/persistence/export.d.ts","default":"./npm/persistence/export.js"}}},"gitHead":"b6f433c95b3c778e921a5cc97755e7e684c93f14","imports":{"#error/*":{"import":{"default":"./npm/error/*","aws-dynamodb-es-cqrs-dev":"./error/*"}},"#event/*":{"import":{"default":"./npm/event/*","aws-dynamodb-es-cqrs-dev":"./event/*"}},"#aggregate/*":{"import":{"default":"./npm/aggregate/*","aws-dynamodb-es-cqrs-dev":"./aggregate/*"}},"#persistence/*":{"import":{"default":"./npm/persistence/*","aws-dynamodb-es-cqrs-dev":"./persistence/*"}}},"release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator","@semantic-release/npm",["@semantic-release/github",{"failComment":false,"successComment":false}]],"branches":["saga"],"remoteTags":true},"scripts":{"test":"node --no-warnings --experimental-transform-types --conditions=aws-dynamodb-es-cqrs-dev --test \"!(node_modules)/**/*.spec.ts\"","prepare":"husky","test:watch":"node --no-warnings --experimental-transform-types --conditions=aws-dynamodb-es-cqrs-dev --test --watch \"!(node_modules)/**/*.spec.ts\"","prepublishOnly":"node --experimental-strip-types ./.npm/compile.ts && npx tsc -P ./.npm/tsconfig.npm.json --outDir ./npm"},"_npmUser":{"name":"coderbyheart","email":"m@coderbyheart.com"},"prettier":"@bifravst/prettier-config","repository":{"url":"git+https://github.com/coderbyheart/aws-dynamodb-es-cqrs.git","type":"git"},"_npmVersion":"10.9.3","description":"ES/CQRS using AWS DynamoDB","directories":{},"lint-staged":{"*.ts":["prettier --write","eslint"],"*.{md,json,yaml,yml}":["prettier --write"]},"_nodeVersion":"22.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"husky":"9.1.7","@swc/core":"1.13.5","commitlint":"19.8.1","typescript":"5.9.2","@types/node":"24.3.0","lint-staged":"16.1.6","@types/aws-lambda":"8.10.152","@aws-sdk/util-dynamodb":"3.879.0","@aws-sdk/client-dynamodb":"3.879.0","@bifravst/prettier-config":"1.1.12","@commitlint/config-conventional":"19.8.1","@bifravst/cloudformation-helpers":"9.1.1","@bifravst/eslint-config-typescript":"6.4.3","@babel/plugin-syntax-import-assertions":"7.27.1"},"peerDependencies":{"ulidx":"2.4.1","@bifravst/from-env":"3.0.2"},"_npmOperationalInternal":{"tmp":"tmp/aws-dynamodb-es-cqrs_1.2.0_1756761715459_0.8998953846119289","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@coderbyheart/aws-dynamodb-es-cqrs","version":"1.3.0","description":"ES/CQRS using AWS DynamoDB","type":"module","imports":{"#aggregate/*":{"import":{"aws-dynamodb-es-cqrs-dev":"./aggregate/*","default":"./npm/aggregate/*"}},"#event/*":{"import":{"aws-dynamodb-es-cqrs-dev":"./event/*","default":"./npm/event/*"}},"#error/*":{"import":{"aws-dynamodb-es-cqrs-dev":"./error/*","default":"./npm/error/*"}},"#persistence/*":{"import":{"aws-dynamodb-es-cqrs-dev":"./persistence/*","default":"./npm/persistence/*"}}},"exports":{"./aggregate":{"import":{"types":"./npm/aggregate/export.d.ts","default":"./npm/aggregate/export.js"}},"./event":{"import":{"types":"./npm/event/export.d.ts","default":"./npm/event/export.js"}},"./error":{"import":{"types":"./npm/error/export.d.ts","default":"./npm/error/export.js"}},"./persistence":{"import":{"types":"./npm/persistence/export.d.ts","default":"./npm/persistence/export.js"}}},"repository":{"type":"git","url":"git+https://github.com/coderbyheart/aws-dynamodb-es-cqrs.git"},"bugs":{"url":"https://github.com/coderbyheart/aws-dynamodb-es-cqrs/issues"},"homepage":"https://github.com/coderbyheart/aws-dynamodb-es-cqrs","author":{"name":"Markus Tacker","email":"m@coderbyheart.com"},"license":"MIT","scripts":{"prepare":"husky","test":"node --no-warnings --experimental-transform-types --conditions=aws-dynamodb-es-cqrs-dev --test \"!(node_modules)/**/*.spec.ts\"","test:watch":"node --no-warnings --experimental-transform-types --conditions=aws-dynamodb-es-cqrs-dev --test --watch \"!(node_modules)/**/*.spec.ts\"","prepublishOnly":"node --experimental-strip-types ./.npm/compile.ts && npx tsc -P ./.npm/tsconfig.npm.json --outDir ./npm"},"peerDependencies":{"@bifravst/from-env":"3.0.2","ulidx":"2.4.1"},"devDependencies":{"@aws-sdk/client-dynamodb":"3.895.0","@aws-sdk/util-dynamodb":"3.895.0","@babel/plugin-syntax-import-assertions":"7.27.1","@bifravst/cloudformation-helpers":"9.1.1","@bifravst/eslint-config-typescript":"6.4.3","@bifravst/prettier-config":"1.1.13","@commitlint/config-conventional":"19.8.1","@swc/core":"1.13.5","@types/aws-lambda":"8.10.152","@types/node":"24.5.2","commitlint":"19.8.1","husky":"9.1.7","lint-staged":"16.2.0","typescript":"5.9.2"},"engines":{"node":">=22.0.0","npm":">=10.0.0"},"lint-staged":{"*.ts":["prettier --write","eslint"],"*.{md,json,yaml,yml}":["prettier --write"]},"prettier":"@bifravst/prettier-config","release":{"branches":["saga"],"remoteTags":true,"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator","@semantic-release/npm",["@semantic-release/github",{"successComment":false,"failComment":false}]]},"publishConfig":{"access":"public"},"_id":"@coderbyheart/aws-dynamodb-es-cqrs@1.3.0","gitHead":"27e54108f6134dd783d5f3716ee07e7755fc1ac6","_nodeVersion":"22.19.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-hctZSQv/yifzU7HjlQsGRAnwWbkpHNIKmKdb+s0SAypHVfYBxXhmFUDatb+JG/hJTxYlbmPzhvazuIZ/X3z//g==","shasum":"0b3d794b0fdc91e2cf071432bdcd97d6965a90e0","tarball":"https://registry.npmjs.org/@coderbyheart/aws-dynamodb-es-cqrs/-/aws-dynamodb-es-cqrs-1.3.0.tgz","fileCount":59,"unpackedSize":26029,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCJOPww8PbLZ3oy0G6LmDI+oteF+uv/yqCp7ytkcUFl6gIgG9wv9m6Poqjn7xbD+kdd5EHwzefaSsxdsN+zTvcUi7U="}]},"_npmUser":{"name":"coderbyheart","email":"m@coderbyheart.com"},"directories":{},"maintainers":[{"name":"coderbyheart","email":"m@coderbyheart.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/aws-dynamodb-es-cqrs_1.3.0_1758664786123_0.7087130523346337"},"_hasShrinkwrap":false}},"time":{"created":"2025-08-14T11:49:05.211Z","modified":"2025-09-23T21:59:46.498Z","1.0.0":"2025-08-14T11:49:05.391Z","1.0.1":"2025-08-14T12:26:40.299Z","1.0.2":"2025-08-14T12:48:56.760Z","1.0.3":"2025-08-14T21:19:10.459Z","1.0.4":"2025-08-31T19:34:18.469Z","1.1.0":"2025-08-31T20:09:44.303Z","1.1.1":"2025-09-01T20:50:31.372Z","1.2.0":"2025-09-01T21:21:55.673Z","1.3.0":"2025-09-23T21:59:46.305Z"},"bugs":{"url":"https://github.com/coderbyheart/aws-dynamodb-es-cqrs/issues"},"author":{"name":"Markus Tacker","email":"m@coderbyheart.com"},"license":"MIT","homepage":"https://github.com/coderbyheart/aws-dynamodb-es-cqrs","repository":{"type":"git","url":"git+https://github.com/coderbyheart/aws-dynamodb-es-cqrs.git"},"description":"ES/CQRS using AWS DynamoDB","maintainers":[{"name":"coderbyheart","email":"m@coderbyheart.com"}],"readme":"# aws-dynamodb-es-cqrs · ES/CQRS using AWS DynamoDB [![npm version](https://img.shields.io/npm/v/@coderbyheart/aws-dynamodb-es-cqrs.svg)](https://www.npmjs.com/package/@coderbyheart/aws-dynamodb-es-cqrs)\n\n[![GitHub Actions](https://github.com/coderbyheart/aws-dynamodb-es-cqrs/actions/workflows/test-and-release.yaml/badge.svg)](https://github.com/coderbyheart/aws-dynamodb-es-cqrs/actions/workflows/test-and-release.yaml)\n[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)\n[![Renovate](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com)\n[![@commitlint/config-conventional](https://img.shields.io/badge/%40commitlint-config--conventional-brightgreen)](https://github.com/conventional-changelog/commitlint/tree/master/@commitlint/config-conventional)\n[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](https://github.com/prettier/prettier/)\n[![ESLint: TypeScript](https://img.shields.io/badge/ESLint-TypeScript-blue.svg)](https://github.com/typescript-eslint/typescript-eslint)\n\n- Events\n  - Events are described by [`AggregateEvent`](./event/AggregateEvent.ts)\n    (ULID-based `eventId`, `aggregateName`, `aggregateId`, `aggregateVersion`,\n    `actorId`).\n  - Aggregate metadata:\n    - [`AggregateMeta`](./aggregate/AggregateMeta.ts) with `id`, `version`,\n      `actorId`, optional `updatedAt`.\n\n- Reducing events to aggregates (Event Sourcing)\n  - Generic reducer: [`reduceEvents`](./aggregate/reducer/reduceEvents.ts)\n    applies a sequence of [`AggregateEvent`](./event/AggregateEvent.ts) to\n    produce an aggregate state.\n  - Domain reducer example (BlogPost):\n    [`blogPostReducer`](./test/aggregate/blogPostReducer.ts) uses type guards\n    (`isNamedEvent`) and assertions (`assertAggregateEvent`) to evolve state\n    from events.\n\n- Commands (write side)\n  - Commands validate current state and produce new events:\n    - Create: [`createBlogPostCommand`](./test/command/createBlogPostCommand.ts)\n    - Publish:\n      [`publishBlogPostCommand`](./test/command/publishBlogPostCommand.ts)\n    - Update title:\n      [`updateBlogPostTitleCommand`](./test/command/updateBlogPostTitleCommand.ts)\n  - Concurrency and existence are enforced using:\n    - [`ConflictError`](./error/ConflictError.ts) and\n      [`NotFoundError`](./error/NotFoundError.ts)\n    - Version checks against the loaded aggregate before emitting the next\n      event.\n\n- Persistence (event store + aggregate projection)\n  - DynamoDB persistence is transactional to keep aggregate and event store in\n    sync:\n    - [`persistDynamoDB`](./persistence/dynamoDB/persistDynamoDB.ts) performs a\n      TransactWrite that:\n      - Upserts the aggregate row with optimistic concurrency:\n        - New aggregate: `attribute_not_exists(aggregateId)` (version 1).\n        - Update: `#version = :prevVersion` and sets `updatedAt`.\n      - Writes the event into the events table.\n    - Aggregate unmarshalling for reads:\n      [`unmarshallAggregate`](./persistence/dynamoDB/unmarshallAggregate.ts).\n  - Event queries:\n    - List an aggregate’s events:\n      [`listAggregateEventsDynamoDB`](./persistence/dynamoDB/listAggregateEventsDynamoDB.ts)\n    - Parse DynamoDB Streams records back into events:\n      [`extractEventsFromDynamoDBEvent`](./persistence/dynamoDB/extractEventsFromDynamoDBEvent.ts)\n\n- Queries (read side)\n  - Read the current aggregate projection:\n    - Example (BlogPost):\n      - [`findBlogPostByIdDynamoDB`](./test/persistence/dynamoDB/findBlogPostByIdDynamoDB.ts).\n      - [`listBlogPostsDynamoDB`](./test/persistence/dynamoDB/listBlogPostsDynamoDB.ts).\n\n## Setup\n\nInstall the dependencies:\n\n```bash\nnpm ci\n```\n\n## Tests\n\nThe [`test`](./test) folder contains an example aggregate (a blog post), and\noperations that manipulate it, which demonstrate how the key components of this\nimplementation work with separate read/write components demonstrating create,\nread aggregate, list events, and optimistic concurrency.\n\nInstall DynamoDB (local)\n\n```bash\nwget https://s3.eu-central-1.amazonaws.com/dynamodb-local-frankfurt/dynamodb_local_latest.zip\nunzip dynamodb_local_latest.zip -d ./dynamodb_local_latest\n```\n\nStart it in background:\n\n```bash\njava -Djava.library.path=./dynamodb_local_latest/DynamoDBLocal_lib -jar ./dynamodb_local_latest/DynamoDBLocal.jar -sharedDb -inMemory &\n```\n\nRun the tests:\n\n```bash\nnpm test\n```\n","readmeFilename":"README.md"}