j5ik2o/event-store-adapter-js
57.9
Adequate · 21 September 2026
3.6k
lines of production code
TypeScript
primary language
4
measurements over time
What this system is
This system is a TypeScript library named \event-store-adapter-js\ designed to facilitate CQRS and Event Sourcing patterns. It provides a type-safe API for persisting and retrieving events and snapshots, with concrete support for DynamoDB and Cloud Spanner backends. The repository also includes runnable examples and a comprehensive test suite to validate the library's functionality across different storage implementations.
Features
Add executable Event Sourcing examples for memory, DynamoDB, and Spanner backends
The \packages/examples\ directory now includes runnable samples that demonstrate how to implement an Event Sourcing repository using the \event-store-adapter-js\ library. These examples cover a \UserAccount\ aggregate with \UserAccountCreated\ and \UserAccountRenamed\ events, showcasing domain modeling, JSON serialization, and optimistic locking. Users can run the samples against an in-memory store (\npm run example:memory\), a LocalStack DynamoDB container (\npm run example:dynamodb\), or a Cloud Spanner emulator (\npm run example:spanner\), with the latter two requiring Docker and \testcontainers\.
packages/examples · high confidence
Added Okite AI reference submodule
A new Git submodule reference for 'okite-ai' has been added to the repository, pointing to commit 69fa7cb. This allows the project to track and include external documentation or resources from the Okite AI project as a reference.
references · high confidence
Added test artifact cleanup script with validation
A new script (remove-test-artifacts.mjs) has been introduced to automatically remove test-related build outputs (files ending in .test.d.ts or .test.js) from the dist directory. The script validates that the build output directory exists before proceeding, recursively collects test artifacts, removes them along with a specific test support folder, and throws an error if any test artifacts remain after cleanup, helping to ensure build outputs are free of test code.
packages/library/scripts · high confidence
Initial agent configuration and documentation
This change introduces the foundational configuration for AI agents within the project. It adds a set of rules in \.agents/rules/\ that enforce coding standards, including requiring analysis of existing patterns before writing new code, mandating immutability for non-Rust languages, prohibiting ambiguous naming suffixes, enforcing single-type-per-file organization, and ensuring skill selection transparency. It also includes a command for git commits and a collection of skills in \.agents/skills/\ covering error classification and handling, GitHub issue triage, intent-based code deduplication, Law of Demeter compliance, and OpenSpec workflow management.
.agents · high confidence
Initial release of the event-store-adapter-js library
The \packages/library\ directory is introduced as a new package within the pnpm workspace, providing the core \event-store-adapter-js\ library for CQRS and Event Sourcing. This release includes the TypeScript source configuration (\tsconfig.json\), test setup (\jest.config.ts\), and comprehensive documentation (\README.md\, \README.ja.md\) explaining how to use the library with backends like DynamoDB and Cloud Spanner. The package is dual-licensed under MIT and Apache-2.0.
packages/library · high confidence
Introduce Kiro spec-driven development workflow commands
Adds a comprehensive set of slash commands under \.claude/commands/kiro/\ to support a spec-driven development lifecycle. These commands enable users to initialize specifications (\spec-init\), generate requirements (\spec-requirements\), create technical designs (\spec-design\), generate implementation tasks (\spec-tasks\), and execute tasks using TDD (\spec-impl\). The suite also includes a \spec-quick\ command for automated end-to-end generation, status tracking (\spec-status\), and validation tools for design quality (\validate-design\), implementation gaps (\validate-gap\), and final implementation correctness (\validate-impl\). Additionally, steering management commands (\steering\, \steering-custom\) are provided to maintain persistent project knowledge and create domain-specific context documents.
.claude · high confidence
Introduces internal event-store implementations and supporting utilities
This change adds the internal implementation of the event-store library, including a DynamoDB-backed event store, a memory-based event store for testing, and a Spanner aggregate key generator. It also introduces core supporting utilities such as a default JSON serializer for events and snapshots, a default shard selector with legacy hash compatibility, DynamoDB-specific aggregate key formatting, TTL normalization, and JSON conversion with error wrapping. Comprehensive test coverage is provided for all new components, including contract tests, input validation, and integration tests against local DynamoDB and Spanner containers.
packages/library/src/internal · high confidence
New launcher scripts for AI coding agents and agent documentation generator
Added a set of shell scripts in the \scripts/\ directory to launch various AI coding assistants (Claude, Codex, Codex.app, Cursor, Gemini, OpenCode) with specific environment configurations and permission-bypass flags, including separate corporate and personal variants for Claude and Codex. Also added \generate-agents-md.sh\ to automatically assemble a combined \AGENTS.md\ documentation file from \COMMON.md\ and rule files located in \.agents/rules/\.
scripts · high confidence
Repository restructured into a pnpm workspace with new tooling and documentation
The project has been reorganized into a pnpm workspace containing three packages: \packages/library\ (the main \event-store-adapter-js\ library), \packages/examples\ (runnable examples), and \packages/tests\ (future test packages). This structural change is supported by the addition of \pnpm-workspace.yaml\, \.npmrc\, and \mise.toml\ (configuring Node.js 24, Java 25, and SBT 1.12.11). The repository now includes comprehensive configuration for development and CI, including \biome.json\ for code formatting/linting, \codecov.yml\ for coverage gates, \renovate.json\ for automated dependency updates, and \.coderabbit.yaml\ for AI-assisted PR reviews. Additionally, the project introduces LLM coding guidelines via \AGENTS.md\ and \COMMON.md\, adds a git submodule for \okite-ai\, and updates the \README.md\ files to reflect the new workspace structure and development commands.
(repo-wide) · high confidence
Behavioural changes
Introduce typed EventStore API with DynamoDB and Spanner backends
The library now exposes a structured EventStore API that supports DynamoDB and Spanner backends, replacing the previous factory-based approach with explicit constructors. Users can create stores via \EventStore.createDynamoDB\ and \EventStore.createSpanner\, passing typed input objects that define table names, shard counts, and converters. The API enforces type safety through branded types for \ShardCount\ and \ShardId\, and returns a \Result\ type for operations to handle errors like optimistic lock conflicts or serialization issues explicitly.
packages/library/src · high confidence
Kiro settings now reference external configuration
The \.kiro/settings\ file has been converted into a symbolic link pointing to \../references/okite-ai/.kiro/settings\. This change centralizes the Kiro configuration, meaning any updates to the settings must now be made in the shared \okite-ai\ reference directory rather than locally within this project.
.kiro · high confidence
Test coverage
Added e2e test for workspace library consumption; Added internal test utilities and contract tests for the EventStore.
Dependencies
Update development dependencies and tooling
Updated several development dependencies: @biomejs/biome to v2.4.16, testcontainers to v12.0.1, pnpm to v11.5.1, @aws-sdk/client-dynamodb to v3.1057.0, and typescript-eslint monorepo to v8.60.0.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.
Score
- CAI 58 → 58 (-0.3)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 87 → 75 (-12.9)
- Architecture 98 → 98 (-0.1)
- Maturity 61 → 61 (+0.8)
- Readiness 69 → 63 (-5.8)
- Security 53 → 54 (+1.4)
- Accessibility 55 → 55 (+0.0)
Resolved (32)
- Coverage not included — suite not readable by the collector
- Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
- High CVE: [GHSA redacted] (pnpm-lock.yaml)
- High CVE: [GHSA redacted] (pnpm-lock.yaml)
- High CVE: [GHSA redacted] (pnpm-lock.yaml)
- High CVE: [GHSA redacted] (pnpm-lock.yaml)
- High CVE: [GHSA redacted] (pnpm-lock.yaml)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- Hotspot: packages/examples/src/domain/user-account-created.ts (packages/examples/src/domain/user-account-created.ts)
- Hotspot: packages/examples/src/domain/user-account-renamed.ts (packages/examples/src/domain/user-account-renamed.ts)
- Hotspot: packages/library/src/internal/test/user-account-created.ts (packages/library/src/internal/test/user-account-created.ts)
- Hotspot: packages/library/src/internal/test/user-account-renamed.ts (packages/library/src/internal/test/user-account-renamed.ts)
- Low CVE: [GHSA redacted] (pnpm-lock.yaml)
- …and 12 more
New (66)
- Base-context workflow trigger runs with an unscoped token
- Documentation: no installation or build instructions (README.md)
- Documentation: no project overview (README.md)
- FunctionTooLong: dynamodb-event-store.createDynamoDBEventStore (packages/library/src/internal/dynamodb-event-store.ts)
- FunctionTooLong: dynamodb-snapshot-retention-executor.createDynamoDBSnapshotRetentionExecutor (packages/library/src/internal/dynamodb-snapshot-retention-executor.ts)
- FunctionTooLong: spanner-event-store.createSpannerEventStore (packages/library/src/internal/spanner-event-store.ts)
- High CVE: [GHSA redacted] (pnpm-lock.yaml)
- High CVE: [GHSA redacted] (pnpm-lock.yaml)
- High CVE: [GHSA redacted] (pnpm-lock.yaml)
- High CVE: [GHSA redacted] (pnpm-lock.yaml)
- High CVE: [GHSA redacted] (pnpm-lock.yaml)
- High CVE: [GHSA redacted] (pnpm-lock.yaml)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- …and 46 more
Changes since last survey
- 2 commits — 2 feature/other, 0 fixes
By area
- packages/library — 2 commits
Notable commits
- change: [skip ci] version up to 3.1.2-snapshot.0
- change: version up to v3.1.1
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
j5ik2o/event-store-adapter-js was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 21 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit bcc3cf0c973d5cdfda946b29c8170df20ea9d554 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-b84573e22831.