From f94128943a58ce7cbff92da5f4777c7cb7467bd8 Mon Sep 17 00:00:00 2001 From: Danijel Martinek Date: Fri, 8 May 2026 11:55:28 +0200 Subject: [PATCH] chore(core-events): scaffold package Create @repo/core-events package skeleton with package.json, tsconfig.json, vitest.config.ts (using mergeConfig with nodeVitestConfig), eslint.config.js, turbo.json (tagged core), and AGENTS.md. Register workspace via pnpm install. Co-Authored-By: Claude Sonnet 4.6 --- packages/core-events/AGENTS.md | 9 ++++++++ packages/core-events/eslint.config.js | 3 +++ packages/core-events/package.json | 31 +++++++++++++++++++++++++++ packages/core-events/tsconfig.json | 12 +++++++++++ packages/core-events/turbo.json | 4 ++++ packages/core-events/vitest.config.ts | 9 ++++++++ pnpm-lock.yaml | 25 +++++++++++++++++++++ 7 files changed, 93 insertions(+) create mode 100644 packages/core-events/AGENTS.md create mode 100644 packages/core-events/eslint.config.js create mode 100644 packages/core-events/package.json create mode 100644 packages/core-events/tsconfig.json create mode 100644 packages/core-events/turbo.json create mode 100644 packages/core-events/vitest.config.ts diff --git a/packages/core-events/AGENTS.md b/packages/core-events/AGENTS.md new file mode 100644 index 0000000..4ea8fe0 --- /dev/null +++ b/packages/core-events/AGENTS.md @@ -0,0 +1,9 @@ +# @repo/core-events + +Owns the cross-feature event bus: `IEventBus`, `defineEvent`, and two implementations (`InMemoryEventBus`, `PayloadJobsEventBus`). + +**Boundary tag:** core. May be imported by feature, core, core-composition, app. May import from core-shared, tooling. + +**Public surface:** `IEventBus`, `EventDescriptor`, `defineEvent`, `EventHandler`, `CORE_EVENTS_SYMBOLS`, both implementations. + +**See:** `docs/decisions/adr-015-events-and-jobs.md` (pending), `docs/guides/events-and-jobs.md` (pending), `docs/superpowers/specs/2026-05-08-events-and-jobs-design.md`. diff --git a/packages/core-events/eslint.config.js b/packages/core-events/eslint.config.js new file mode 100644 index 0000000..7440d8f --- /dev/null +++ b/packages/core-events/eslint.config.js @@ -0,0 +1,3 @@ +import baseConfig from "@repo/core-eslint/base"; + +export default baseConfig; diff --git a/packages/core-events/package.json b/packages/core-events/package.json new file mode 100644 index 0000000..4b925b4 --- /dev/null +++ b/packages/core-events/package.json @@ -0,0 +1,31 @@ +{ + "name": "@repo/core-events", + "version": "0.0.1", + "private": true, + "type": "module", + "exports": { + ".": "./src/index.ts" + }, + "scripts": { + "build": "tsc --noEmit", + "lint": "eslint .", + "typecheck": "tsc --noEmit", + "test": "vitest run" + }, + "dependencies": { + "@repo/core-shared": "workspace:*", + "zod": "^3.23.0" + }, + "peerDependencies": { + "payload": "^3.0.0" + }, + "peerDependenciesMeta": { + "payload": { "optional": true } + }, + "devDependencies": { + "@repo/core-eslint": "workspace:*", + "@repo/core-typescript": "workspace:*", + "typescript": "^5.8.0", + "vitest": "^3.0.0" + } +} diff --git a/packages/core-events/tsconfig.json b/packages/core-events/tsconfig.json new file mode 100644 index 0000000..652e804 --- /dev/null +++ b/packages/core-events/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "@repo/core-typescript/base.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": ".", + "paths": { + "@/*": ["./src/*"] + } + }, + "include": ["src/**/*"], + "exclude": ["node_modules", "dist"] +} diff --git a/packages/core-events/turbo.json b/packages/core-events/turbo.json new file mode 100644 index 0000000..dcb8fb3 --- /dev/null +++ b/packages/core-events/turbo.json @@ -0,0 +1,4 @@ +{ + "extends": ["//"], + "tags": ["core"] +} diff --git a/packages/core-events/vitest.config.ts b/packages/core-events/vitest.config.ts new file mode 100644 index 0000000..2ee07c1 --- /dev/null +++ b/packages/core-events/vitest.config.ts @@ -0,0 +1,9 @@ +import path from "node:path"; +import { mergeConfig } from "vitest/config"; +import { nodeVitestConfig } from "@repo/core-typescript/vitest.base.node"; + +export default mergeConfig(nodeVitestConfig, { + resolve: { + alias: { "@": path.resolve(__dirname, "./src") }, + }, +}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1a6aafb..bc42300 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -516,6 +516,31 @@ importers: specifier: ^8.25.0 version: 8.58.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + packages/core-events: + dependencies: + '@repo/core-shared': + specifier: workspace:* + version: link:../core-shared + payload: + specifier: ^3.0.0 + version: 3.81.0(graphql@16.13.2)(typescript@5.9.3) + zod: + specifier: ^3.23.0 + version: 3.25.76 + devDependencies: + '@repo/core-eslint': + specifier: workspace:* + version: link:../core-eslint + '@repo/core-typescript': + specifier: workspace:* + version: link:../core-typescript + typescript: + specifier: ^5.8.0 + version: 5.9.3 + vitest: + specifier: ^3.0.0 + version: 3.2.4(@types/debug@4.1.13)(@types/node@25.5.2)(happy-dom@20.8.9)(jiti@2.6.1)(jsdom@25.0.1)(lightningcss@1.32.0)(sass@1.99.0)(terser@5.46.2)(tsx@4.21.0) + packages/core-shared: dependencies: '@sentry/nextjs':