Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
---
name: Bug Report
about: Create a report to help us improve
title: '[BUG] '
labels: bug
assignees: ''

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Fix assignees format in YAML frontmatter.

assignees: '' sets an empty string rather than an empty list. Use assignees: [] or omit the key entirely for unassigned issues.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/ISSUE_TEMPLATE/bug_report.md at line 6, The YAML frontmatter in the
issue template uses assignees as an empty string instead of an empty list.
Update the frontmatter field in the bug report template so assignees is
represented as an empty array, or remove the assignees key entirely if the
template should leave issues unassigned.

---

## Describe the Bug
A clear and concise description of what the bug is.

## Expected Behavior
A clear and concise description of what you expected to happen.

## Screenshots
If applicable, add screenshots to help explain your problem.

## Environment
- Package: [core/server/cli/dashboard/client]

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Correct package name: serverserve.

The package list includes server, but the codebase uses serve (per feature_request.md and context). Align with the actual package name.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/ISSUE_TEMPLATE/bug_report.md at line 19, The bug report template
lists the wrong package name in the Package field; update the package option
from server to serve so it matches the codebase convention used elsewhere. Fix
the Package entry in the bug_report template and ensure any related package list
text consistently uses serve, not server, to avoid misleading reporters.

- Version: [e.g., 1.0.0]
- OS: [e.g., Windows/Mac/Linux]
- Node Version: [e.g., 18.x]
- Browser: [e.g., Chrome, Safari]

## Additional Context
Add any other context about the problem here.
Comment on lines +9 to +26

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Add missing fields expected by CONTRIBUTING.md.

The template omits sections that CONTRIBUTING.md explicitly requests: "Steps to Reproduce", "Actual Behavior", and "Any relevant error logs". Add these to ensure bug reports contain triage-critical details.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/ISSUE_TEMPLATE/bug_report.md around lines 9 - 26, Update the bug
report template to include the missing CONTRIBUTING.md sections in the existing
issue template: add “Steps to Reproduce,” “Actual Behavior,” and “Any relevant
error logs” alongside the current “Describe the Bug,” “Expected Behavior,” and
“Environment” sections. Keep the wording consistent with the template style so
reporters are prompted to provide the triage-critical details.

27 changes: 27 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
---
name: Feature Request
about: Suggest an idea for this project
title: '[FEATURE] '
labels: enhancement
assignees: ''

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Fix assignees format in YAML frontmatter.

Same issue as bug_report.md: assignees: '' is an empty string instead of an empty list. Use assignees: [] or omit the key.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/ISSUE_TEMPLATE/feature_request.md at line 6, The YAML frontmatter in
the feature request template has assignees set as an empty string instead of an
empty list. Update the frontmatter in the feature_request template to use a
list-style empty value for assignees, matching the bug_report template behavior,
or remove the assignees key entirely if it is not needed.

---

## Is your feature request related to a problem?
A clear and concise description of what the problem is.

## Describe the solution you'd like
A clear and concise description of what you want to happen.

## Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

## Which package does this affect?
- [ ] Core
- [ ] Frontend Dashboard
- [ ] Cli Dashboard
- [ ] Serve
- [ ] Client
- [ ] Documentation

## Additional context
Add any other context or screenshots about the feature request here.
166 changes: 157 additions & 9 deletions docs/architecture.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,164 @@
# JetQueue Architecture

## Packages
## Overview

- `@jet-queue/core` – engine (events, retries, storage)
- `@jet-queue/server` – Bun server (REST + WebSocket)
- `@jet-queue/client` – SDK for any environment
- `@jet-queue/cli` – terminal dashboard
- `@jet-queue/dashboard` – web dashboard (Next.js)
JetQueue is a modular background job processing system built with TypeScript. It consists of five core packages that work together to provide a complete job queue solution, from task definition to execution monitoring.

---

## Package Structure

### `@jet-queue/core`

The heart of JetQueue – a standalone queue engine that handles all job lifecycle management.

- **Job lifecycle management**: Create, track, update, and remove jobs
- **Retry logic**: Fixed, linear, and exponential backoff strategies
- **Storage abstraction**: In-memory by default, with SQLite persistence (built into Bun/Node.js)
- **Event system**: Emits typed events for every job state change

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Correct misleading SQLite claim.

"built into Bun/Node.js" is incorrect — Node.js does not include a built-in SQLite module. Bun has bun:sqlite, but Node requires better-sqlite3 or similar. Clarify which runtime provides native SQLite and which needs a package.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/architecture.md` at line 18, The architecture doc currently makes a
misleading claim about SQLite being “built into Bun/Node.js”; update the wording
to clearly distinguish that Bun provides native SQLite via bun:sqlite, while
Node.js requires an external package such as better-sqlite3. Adjust the relevant
architecture section text to name the runtime-specific support explicitly and
avoid implying Node.js includes a built-in SQLite module.

- **Priority queue**: Four priority levels (critical > high > normal > low)
- **Concurrency control**: Configurable worker pool size

**Dependencies**: None (pure TypeScript)

---

### `@jet-queue/server`

A ready-to-use Bun server that wraps the core engine with REST and WebSocket APIs.

- **REST endpoints**: Job submission, retrieval, cancellation, retry, stats, and health checks
- **WebSocket server**: Real-time job events (start, complete, fail, progress, stats updates)
- **Built-in SQLite persistence**: Jobs persist between server restarts (using Bun/Node.js SQLite)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Correct misleading SQLite persistence claim.

"Built-in SQLite persistence" and "using Bun/Node.js SQLite" implies SQLite is native to both runtimes. Node.js requires installing better-sqlite3 (or similar). Be precise about runtime requirements.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/architecture.md` at line 32, The architecture doc currently implies
SQLite is built into both Bun and Node.js, which is misleading. Update the
persistence description in the documentation so it clearly states the runtime
requirement for Node.js (for example, that a SQLite driver such as
better-sqlite3 is needed) while keeping the wording accurate for Bun; use the
existing SQLite persistence bullet to locate and revise the phrasing.

- **Ready to run**: Zero-configuration setup for development and production
- **Customizable**: Developers can extend or replace with their own server implementation

**Dependencies**: `@jet-queue/core`, Bun runtime

---

### `@jet-queue/client`

TypeScript/JavaScript SDK for interacting with JetQueue servers.

**Capabilities**:

- Submit jobs with full configuration (priority, delay, retry, timeout, tags, metadata)
- Subscribe to job events via WebSocket (progress, completion, failure, etc.)
- Fetch job status, stats, and list jobs
- Cancel or retry existing jobs
- Type-safe API with full TypeScript support
- Works in any environment: Node.js, Bun, browsers, edge functions

**Dependencies**: None (pure TypeScript)

---

### `@jet-queue/cli`

Terminal-based dashboard for server management.

**Features**:

- View queue stats (pending, running, completed, failed, delayed, total)
- List and filter jobs by status or tags
- Inspect job details (data, metadata, error messages)
- Cancel or retry jobs directly from the terminal
- Monitor real-time job progress
- Connect to local or remote servers

**Dependencies**: `@jet-queue/client`

---

### `@jet-queue/dashboard`

Web-based administrative UI built with Next.js.

**Features**:

- Real-time job monitoring with auto-refresh
- Visual queue statistics and charts
- Job search and filtering (by status, tags, name)
- Detailed job inspection with expandable data/error views
- Manual job management (cancel, retry, add)
- Responsive design for desktop and mobile

**Dependencies**: `@jet-queue/client`, Next.js

---

## Core Domain Model

### Job States

```typescript
type JobStatus =
| "pending" // Waiting in queue
| "running" // Currently executing
| "completed" // Finished successfully
| "failed" // Failed (will stay in this state until manual retry)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Correct "manual retry" description.

The comment claims failed jobs "will stay in this state until manual retry" but the implementation auto-retries based on maxAttempts and retryOptions (see handleJobFailure in packages/core/src/queue.ts). Failed status means retries are exhausted. Remove "manual retry" or clarify that retries are automatic.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/architecture.md` at line 100, The job status description is inaccurate
because failed jobs do not wait for a manual retry; they remain failed only
after automatic retries are exhausted. Update the failed state documentation in
the architecture doc to match the behavior in handleJobFailure and the queue
retry flow in packages/core/src/queue.ts, removing “manual retry” or clearly
stating retries happen automatically via maxAttempts and retryOptions.

| "delayed" // Scheduled for future execution
| "cancelled"; // Manually cancelled
```

### Job Configuration

Each job supports:

- **Priority**: `critical` (0) > `high` (1) > `normal` (2) > `low` (3)
- **Retry strategies**: Fixed, linear, or exponential backoff
- **Timeout**: Per-job execution time limit
- **Delay**: Schedule for future execution
- **Max attempts**: Retry limit before marking as failed
- **Tags & Metadata**: For filtering and custom data

## Data Flow

```text
App → client.addJob() → HTTP POST /api/jobs → server → queue.add() → process
App ← client.onJobCompleted() ← WebSocket ← server ← queue.emit('job:completed')
```mermaid
sequenceDiagram
participant Client as Client<br/>(SDK/App)
participant Server as Server<br/>(Bun)
participant Core as Core Engine
participant DB as SQLite Database

Client->>Server: HTTP POST /api/jobs
Server->>Core: Process job
Core->>DB: Read/Write data

loop Real-time Updates
Core-->>Client: WebSocket Events<br/>job:completed, job:failed,<br/>job:progress, stats, etc.
DB-->>Client: Events
end
Comment on lines +129 to +132

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Remove incorrect DB→Client event flow.

DB-->>Client: Events is architecturally wrong. SQLite does not push events; all events originate from the Core engine (this.events.emit). The loop should only show Core-->>Client via Server WebSocket broadcast. Remove the DB-->>Client line.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/architecture.md` around lines 129 - 132, The real-time updates diagram
includes an incorrect DB-to-Client event flow; update the Mermaid block in the
Real-time Updates section to remove the DB-->>Client: Events line and keep only
the Core-->>Client WebSocket broadcast path from this.events.emit, preserving
the rest of the loop structure.

```

### Step-by-Step Flow

1. Job Submission
- Client calls `client.addJob()` with job data and options
- HTTP request sent to `POST /api/jobs`
- Server validates and passes job to Core engine
- Core stores job in SQLite and adds to queue
- Server returns job ID to client
2. Job Processing
- Core engine picks next job based on priority and concurrency limits
- Job status transitions: pending → running
- Task function executes with configured timeout
- Progress updates can be emitted during execution
3. Completion
- Success: Status → completed, result stored
- Failure: Status → failed, error stored
- All state changes persisted to SQLite
4. Real-time Updates
- Core emits events for every state change
- Server broadcasts events via WebSocket to connected clients
- Clients receive typed events in real-time

## Design Principles

1. **Modular** – Each package can be used independently
2. **Simple** – Zero-config defaults, easy to extend
3. **Type-safe** – Full TypeScript with strict typing
4. **Event-driven** – Real-time updates for all state changes
5. **Persistent by default** – SQLite ensures jobs survive restarts
6. **Developer-first** – Clear API, excellent dev experience
10 changes: 10 additions & 0 deletions docs/getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,14 @@

```bash
npm install @jet-queue/core

# or

pnpm add @jet-queue/core

# or

yarn add @jet-queue/core
```

## Your First Queue
Expand All @@ -30,6 +38,8 @@ queue.on("queue:drain", () => {
```bash
npx @jet-queue/server --port 3001
```
> [!TIP]
> you can use whatever package manger you want, here is the npm example
Comment on lines +41 to +42

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Fix typo and grammar in tip.

"package manger" → "package manager". Also capitalize "You" and add punctuation: "You can use whatever package manager you want. Here is the npm example:"

📝 Proposed fix
 > [!TIP]
-> you can use whatever package manger you want, here is the npm example
+> You can use whatever package manager you want. Here is the npm example:
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
> [!TIP]
> you can use whatever package manger you want, here is the npm example
> [!TIP]
> You can use whatever package manager you want. Here is the npm example:
🧰 Tools
🪛 LanguageTool

[grammar] ~42-~42: Ensure spelling is correct
Context: ...> [!TIP] > you can use whatever package manger you want, here is the npm example Then...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/getting-started.md` around lines 41 - 42, Fix the wording in the TIP
callout so it reads cleanly and correctly: update the sentence in the
getting-started tip from the current phrasing to use “package manager” instead
of “package manger,” capitalize the opening word, and add proper punctuation.
Keep the change limited to the tip text itself.

Source: Linters/SAST tools


Then connect with the client:

Expand Down
27 changes: 27 additions & 0 deletions docs/overview.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# JetQueue - Background job processor
**Keep your API snappy. Process heavy tasks in the background.**

> JetQueue moves time-consuming operations out of your request/response cycle, giving users sub-100ms response times while emails send, PDFs generate, and data processes in parallel.


## Features
- **Concurrent Processing** - Run N jobs simultaneously
- **Auto-Retry** - Exponential, linear, or fixed backoff strategies
- **Priority Queues** - Critical jobs jump the line
- **Delayed & Recurring Jobs** - Schedule work for later

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Verify if recurring job support exists in the codebase
rg -nP --type=ts '\b(cron|recur|repeat|interval)\b' packages/core/src/

Repository: arxja/jet-queue

Length of output: 259


🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '\n== types.ts around recurrence ==\n'
sed -n '110,150p' packages/core/src/types.ts

printf '\n== search for repeat/cron usage in core ==\n'
rg -n --type ts '\b(repeat|cron|type:\s*[\'"]once[\'"]\s*\|\s*[\'"]repeat[\'"])\b' packages/core/src

printf '\n== queue/job implementation references ==\n'
rg -n --type ts '\b(delay|cron|repeat|once)\b' packages/core/src | sed -n '1,220p'

Repository: arxja/jet-queue

Length of output: 1338


🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '\n== recurrence-related type and implementation references ==\n'
rg -n --type ts --type md '\b(repeat|cron|timezone|ScheduleJobs|once)\b' packages core docs . 2>/dev/null | sed -n '1,260p'

printf '\n== locate ScheduleJobs usage ==\n'
rg -n --type ts 'ScheduleJobs' packages core . 2>/dev/null

printf '\n== inspect likely scheduling code paths ==\n'
fd -a --type f '.*(queue|job|schedule).*\.ts$' packages core . 2>/dev/null | sed -n '1,120p'

Repository: arxja/jet-queue

Length of output: 1982


🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '\n== queue.ts scheduling-related sections ==\n'
ast-grep outline packages/core/src/queue.ts --view expanded | sed -n '1,220p'

printf '\n== schedule-related symbols in queue.ts ==\n'
rg -n --type ts 'schedule|delay|cron|repeat|timezone|ScheduleJobs' packages/core/src/queue.ts packages/core/src/*.ts

printf '\n== job and queue type definitions ==\n'
sed -n '1,220p' packages/core/src/types.ts

Repository: arxja/jet-queue

Length of output: 12910


🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '\n== addRepeating implementation ==\n'
sed -n '180,240p' packages/core/src/queue.ts

printf '\n== any cron/timezone handling ==\n'
rg -n --type ts '\b(cron|timezone)\b' packages/core/src packages/core/tests

Repository: arxja/jet-queue

Length of output: 1575


Clarify the recurring-jobs claim
The queue supports delayed jobs and interval-based addRepeating, but there’s no cron/timezone-driven scheduling path yet. Either document the supported repeating API explicitly or remove the unused cron/timezone fields from ScheduleJobs.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/overview.md` at line 11, The docs currently imply cron/timezone
scheduling support that the queue does not implement. Update the overview
wording to explicitly mention the supported repeating API via addRepeating, or
remove the unsupported cron and timezone fields from ScheduleJobs so the
documented scheduling surface matches the actual implementation.


## **Where** and **Why** you should use it

> Be decisive can use it every where that you are working with asynchronous tasks and queues

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Fix grammatical errors in use case intro.

"Be decisive can use it every where that you are working with asynchronous tasks and queues" contains multiple errors. Suggest: "You can use it everywhere you work with asynchronous tasks and queues."

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/overview.md` at line 15, The use case intro sentence has grammatical and
wording errors; update the introductory text in the overview content to use a
clear, correct phrasing such as the one suggested in the review, preserving the
meaning while fixing capitalization, spacing, and sentence structure.


| Industry | Examples |
|---|---|
| **E-commerce** | Order confirmation emails, inventory sync, invoice PDF generation |
| **Social Media** | Image/video processing, notification dispatch, feed generation |
| **SaaS** | Report generation, data exports, search indexing, billing |
| **AI/ML** | Model inference, data preprocessing, batch predictions |
| **IoT** | Sensor data processing, device command queues |

## Examples and demo

*For better understanding of what does actually JetQueue do check out our examples [here](./examples.md)*
5 changes: 3 additions & 2 deletions docs/v1/todo.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
# JetQueue - version 1 check list

- [ ] Add v1 docs
- [x] Add v1 docs
- [ ] Add docs for each package
- [ ] Update each package.json files
- [ ] Fix web dashboard build time error
- [ ] Polish the codebase for the v1
- [ ] Polish the codebase for the v1
- [x] Update deps
3 changes: 2 additions & 1 deletion packages/core/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,11 @@
},
"devDependencies": {
"@types/bun": "^1.3.13",
"@types/node": "^26.0.1",
"tsup": "^8.0.0",
"typescript": "^5.3.0"
},
"engines": {
"engines": {
Comment on lines +21 to +25

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

python - <<'PY'
import json
from pathlib import Path

pkg = json.loads(Path("packages/core/package.json").read_text())
print("packages/core/package.json")
print("  engines.node =", pkg.get("engines", {}).get("node"))
print("  devDependencies.@types/node =", pkg.get("devDependencies", {}).get("`@types/node`"))
print("  devDependencies.typescript =", pkg.get("devDependencies", {}).get("typescript"))
PY

echo
echo "Node API call sites worth double-checking against the supported engine:"
rg -n --type=ts -C2 '\b(process|crypto\.randomUUID|node:)\b' packages/core/src

Repository: arxja/jet-queue

Length of output: 2703


Align @types/node with the supported runtime

packages/core targets Node >=22.5.0, but @types/node@^26.0.1 exposes newer APIs than that runtime family. Pin the typings to the Node 22 line, or bump engines.node to match the typings.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/core/package.json` around lines 21 - 25, The dependency and runtime
declarations are out of sync in the package manifest: `@types/node` is set to a
newer major than the supported Node target. Update `packages/core` so
`@types/node` matches the Node 22 runtime line, or, if the newer typings are
intentional, adjust the `engines.node` constraint to the corresponding runtime;
use the `engines` field and the `@types/node` entry in the package JSON to keep
them aligned.

"node": ">=22.5.0"
},
"peerDependencies": {
Expand Down
3 changes: 1 addition & 2 deletions packages/core/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@
"extends": "../../tsconfig.json",
"compilerOptions": {
"outDir": "./dist",
"types": ["bun"],
"baseUrl": ".",
"types": ["bun", "node"],
"rootDir": ".",
"paths": {
"@/*": ["./src/*"]
Expand Down
21 changes: 18 additions & 3 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading