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
8 changes: 4 additions & 4 deletions .clinerules
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
# bQuery.js — Cline Rules

You are working on bQuery.js (`@bquery/bquery`), a TypeScript-first, zero-build DOM library.
You are working on bQuery.js (`@bquery/bquery`), a batteries-included TypeScript full-stack web framework with a jQuery-inspired API.

> Derived snapshot for Cline. If this file drifts from `package.json`, `src/*/index.ts`, or `AGENT.md`, trust those files first and then realign this one.

The reactive module now also covers HTTP clients, polling, pagination, WebSocket / SSE, REST helpers, request queues, and request deduplication.
bQuery.js is not a utility library; its broad module surface is the product. The reactive module now also covers HTTP clients, polling, pagination, WebSocket / SSE, REST helpers, request queues, and request deduplication.

Current release baseline: **1.11.0**.
Current release baseline: **1.11.1**.

Version `1.11.0` adds the dedicated `@bquery/bquery/server` entry point plus a major runtime-agnostic `@bquery/bquery/ssr` expansion (`renderToStringAsync()`, `renderToStream()`, `renderToResponse()`, runtime adapters, snapshots, resumability), while preserving the `1.10.0` concurrency helpers and the `1.9.0` watch/view/media APIs as first-class public surface.
Version `1.11.1` adds no new public APIs — it is a patch release with dev-dependency updates only (`@typescript-eslint` 8.59.3, `eslint` 10.3.0, `globals` 17.6.0, `vite` 8.0.12 + stable `rolldown` 1.0.0). Version `1.11.0` added the dedicated `@bquery/bquery/server` entry point plus a major runtime-agnostic `@bquery/bquery/ssr` expansion (`renderToStringAsync()`, `renderToStream()`, `renderToResponse()`, runtime adapters, snapshots, resumability), while preserving the `1.10.0` concurrency helpers and the `1.9.0` watch/view/media APIs as first-class public surface.

## Before You Start

Expand Down
10 changes: 6 additions & 4 deletions .cursorrules
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
# bQuery.js — Cursor Rules

You are working on bQuery.js, a TypeScript-first, zero-build DOM library.
You are working on bQuery.js, a batteries-included TypeScript full-stack web framework with a jQuery-inspired API.

> Derived snapshot for Cursor. If this file conflicts with `package.json`, `src/*/index.ts`, or `AGENT.md`, trust those files in that order and then realign this one.

Current release baseline: **1.11.0**.
Current release baseline: **1.11.1**.

bQuery.js is not a utility library; treat its broad module surface as the product, and keep guidance aligned with that scope.

## Critical Rules

- Runtime: Bun (not Node). Use `bun test` for tests, `bun:test` imports.
- Tooling/tests: Use Bun for repository workflows (`bun test`, `bun:test` imports). Runtime support for SSR/server workflows includes Node.js, and runtime-agnostic server APIs may also target environments such as Deno where applicable.
- Supported toolchain: Node.js `>=24.0.0`, Bun `>=1.3.13`.
- TypeScript: strict mode, ES2020 target, Bundler module resolution.
- Security: ALL DOM HTML writes MUST use `sanitizeHtml()` from `src/security/sanitize.ts` (re-exported via `src/security/index.ts`).
Expand All @@ -20,7 +22,7 @@ Current release baseline: **1.11.0**.
- `useSignal()`, `useComputed()`, and `useEffect()` from `@bquery/bquery/component` must be called from component lifecycle hooks, not from `render()`.
- When version, engine, or repo guidance files change, run `bun run check:ai-guidance` before finishing.

## 1.11.0 API Notes
## 1.11.1 API Notes

- `@bquery/bquery/server` is a public backend helper entry point; keep `createServer()`, SSR-aware responses, and runtime-agnostic WebSocket session helpers visible in guidance.
- `@bquery/bquery/ssr` includes `renderToStringAsync()`, `renderToStream()`, `renderToResponse()`, `createSSRContext()`, runtime adapters such as `createSSRHandler()`, hydration strategies, store snapshots, and resumability hooks.
Expand Down
18 changes: 13 additions & 5 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## Role and operating mode

You are the primary coding agent for **bQuery.js** (`@bquery/bquery`), a TypeScript-first, zero-build-capable DOM library that combines jQuery-like direct DOM ergonomics with modern platform features.
You are the primary coding agent for **bQuery.js** (`@bquery/bquery`), a batteries-included TypeScript full-stack web framework that brings a jQuery-inspired API to modern reactive, component, SSR, and server workflows.

Work autonomously inside the scope of the current request, but do not invent a hidden local backlog.

Expand All @@ -14,9 +14,9 @@ Work autonomously inside the scope of the current request, but do not invent a h

## Quick orientation

bQuery.js is modular, tree-shakeable, has zero runtime dependencies, and currently ships **23 public entry points**.
bQuery.js is a batteries-included framework, not a utility library. It is modular, tree-shakeable, has zero runtime dependencies, and currently ships **23 public entry points**.

Current release baseline: **1.11.0**.
Current release baseline: **1.11.1**.

Start here before making assumptions:

Expand All @@ -30,7 +30,7 @@ Prefer pointing back to those files instead of duplicating large architecture se

For repo guidance refreshes, keep the role split clear: `AGENT.md` is the deep reference, `llms.txt` is the compact mirror, this file stays behavioral/meta-oriented, and `.cursorrules` / `.clinerules` are derivative tool snapshots.

## Version 1.11.0 highlights
## Version 1.11.1 highlights

- `@bquery/bquery/server` is now a first-class public entry point; repo guidance should treat `createServer()` and the runtime-agnostic WebSocket session helpers as part of the documented surface.
- `@bquery/bquery/ssr` now includes runtime-agnostic async/streaming rendering (`renderToStringAsync()`, `renderToStream()`, `renderToResponse()`), DOM-free fallback rendering, `createSSRContext()`, runtime adapters, snapshots, and resumability helpers.
Expand Down Expand Up @@ -109,7 +109,15 @@ Public modules live under `src/<module>/index.ts`. Important module groups:
- `router` — SPA routing, guards, params, navigation utilities, route signals
- `store` — signal-based state management and persistence
- `view` — declarative bindings with `bq-*` directives including `bq-error` and `bq-aria`
- `storybook`, `forms`, `i18n`, `a11y`, `dnd`, `media`, `plugin`, `devtools`, `testing` — feature modules with their own public barrels and guides
- `storybook` — Storybook helpers for safe story templates and boolean-attribute shorthand
- `forms` — reactive form state, validation, and submit orchestration
- `i18n` — locale state, translation, interpolation, and Intl formatting
- `a11y` — focus management, live regions, audits, and media preferences
- `dnd` — draggable elements, drop zones, and sortable lists
- `media` — viewport, network, battery, clipboard, and DOM observer signals
- `plugin` — plugin registration for custom directives and Web Components
- `devtools` — runtime inspection helpers for signals, stores, components, and timelines
- `testing` — component mounts, mock signals/router helpers, and async test utilities
- `ssr` — runtime-agnostic rendering, streaming, hydration, adapters, snapshots, resumability
- `server` — dependency-free backend routing, SSR-aware responses, runtime-agnostic WebSocket sessions

Expand Down
43 changes: 30 additions & 13 deletions AGENT.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,19 @@

## Identity

| Field | Value |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Name | bQuery.js |
| Package | `@bquery/bquery` |
| Version | 1.11.0 |
| License | MIT |
| Language | TypeScript (strict) |
| Runtime | Browser (ESM, UMD, IIFE) — tests run via Bun |
| Toolchain | Node.js `>=24.0.0`, Bun `>=1.3.13` |
| Repository | <https://github.com/bQuery/bQuery> |
| Homepage | <https://bQuery.flausch-code.de> |
| Description | jQuery-style DOM library with reactivity, zero-build worker tasks, async data, HTTP clients, polling / pagination, realtime transports, REST helpers, Web Components, motion, routing, stores, declarative views, and shared runtime config — zero-build capable, security-by-default |
| Field | Value |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Name | bQuery.js |
| Package | `@bquery/bquery` |
| Version | 1.11.1 |
| License | MIT |
| Language | TypeScript (strict) |
| Runtime | Browser (ESM, UMD, IIFE), plus Node.js, Bun, and Deno for SSR/server workflows |
| Toolchain | Node.js `>=24.0.0`, Bun `>=1.3.13` |
| Repository | <https://github.com/bQuery/bQuery> |
| Homepage | <https://bQuery.flausch-code.de> |
| Tagline | The full-stack web framework that speaks jQuery. |
| Description | Batteries-included TypeScript framework for the modern web with signals, SSR, Web Components, routing, server helpers, and a jQuery-inspired API — zero mandatory build step, security-by-default |

---

Expand All @@ -39,7 +40,7 @@ bun run dev # VitePress docs server

Project-specific starter prompts live in [`.github/prompts/`](.github/prompts/) for common workflows such as starting a task, fixing a bug, extending a public API, adding a module, working on SSR/server features, and refreshing AI guidance.

## Version 1.11.0 Highlights
## Version 1.11.1 Highlights

- `@bquery/bquery/server` is now a first-class public entry point for dependency-free backend routing, SSR-aware `render()` responses, repeated-query parsing, and runtime-agnostic WebSocket session handling through `createServer()`.
- `@bquery/bquery/ssr` now spans runtime-agnostic sync/async/streaming rendering with `renderToStringAsync()`, `renderToStream()`, `renderToResponse()`, DOM-free fallback rendering, `createSSRContext()`, head/asset managers, runtime adapters, route loaders, store snapshots, mismatch checks, and resumability hooks.
Expand All @@ -48,6 +49,20 @@ Project-specific starter prompts live in [`.github/prompts/`](.github/prompts/)

---

## Positioning

**The full-stack web framework that speaks jQuery.**

bQuery.js does not compete with jQuery on simplicity — it competes with full-stack frameworks on developer experience, bringing the ergonomics of jQuery's API surface to a modern, reactive, SSR-capable architecture.

## Module Maturity

- **Stable**: Core, Reactive, Security, Component, Motion, Platform, Router, Store
- **Beta**: View, Forms, i18n, A11y, DnD, Media, Plugin, Devtools, Testing, Storybook
- **Experimental**: SSR, Server, Concurrency

---

## Architecture Overview

```bash
Expand Down Expand Up @@ -403,6 +418,8 @@ Runtime-agnostic SSR pipeline. Works on Node.js ≥ 24, Deno and Bun ≥ 1.3.13

## Design Principles & Invariants

See the earlier Positioning section for the project's jQuery/framework comparison.

1. **Security by default** — Every `.html()` call and component render goes through `sanitizeHtml()`. New DOM-writing methods MUST sanitize input.
2. **Chainable APIs** — All mutating methods on `BQueryElement` / `BQueryCollection` return `this`.
3. **Getter/setter overloading** — `.text()`, `.attr()`, `.css()`, `.data()` etc. act as getters without args, setters with args.
Expand Down
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ and this project adheres to Semantic Versioning.

- [Changelog](#changelog)
- [Releases](#releases)
- [\[1.11.1\] - 2026-05-12](#1111---2026-05-12)
- [Changed (1.11.1)](#changed-1111)
- [\[1.11.0\] - 2026-04-15](#1110---2026-04-15)
- [Added (1.11.0)](#added-1110)
- [Changed (1.11.0)](#changed-1110)
Expand Down Expand Up @@ -68,6 +70,12 @@ and this project adheres to Semantic Versioning.
- [\[1.0.0\] - 2026-01-21](#100---2026-01-21)
- [Added (1.0.0)](#added-100)

## [1.11.1] - 2026-05-12

### Changed (1.11.1)

- **Tooling / Dev dependencies**: Bumped `@typescript-eslint/eslint-plugin` and `@typescript-eslint/parser` from `8.59.1` to `8.59.3`, `eslint` from `10.2.1` to `10.3.0`, `globals` from `17.5.0` to `17.6.0`, and `vite` from `8.0.10` to `8.0.12`. The `vite` update brings in the stable `[email protected]` release (previously `1.0.0-rc.17`) and `[email protected]`.

## [1.11.0] - 2026-04-30

### Added (1.11.0)
Expand Down
Loading
Loading