Skip to content

Version 1.5.0#53

Merged
JosunLP merged 91 commits intomainfrom
development
Mar 12, 2026
Merged

Version 1.5.0#53
JosunLP merged 91 commits intomainfrom
development

Conversation

@JosunLP
Copy link
Copy Markdown
Collaborator

@JosunLP JosunLP commented Mar 12, 2026

This pull request introduces significant improvements to bQuery.js's project infrastructure, documentation, and developer workflow. Key changes include new GitHub workflows for labeling and ESLint, expanded Copilot instructions and conventions, new rules files for AI agents and cursor guidance, and the addition of Storybook configuration for component documentation. These updates enhance project maintainability, streamline CI/CD processes, and provide clearer guidance for contributors.

CI/CD and GitHub Workflow Enhancements:

  • Added .github/workflows/label.yml to automate pull request labeling based on file paths, leveraging .github/labeler.yml for configuration. [1] [2]
  • Introduced .github/workflows/eslint.yml for automated ESLint scanning, SARIF conversion, and uploading results to GitHub, improving code quality checks.

Documentation and Contributor Guidance:

  • Expanded .github/copilot-instructions.md with detailed module descriptions (including router, store, view), updated build/test commands, and new sections for common pitfalls and AI agent resources. [1] [2] [3] [4]
  • Added .clinerules and .cursorrules files to provide concise, AI-optimized rules for code additions and cursor behavior, supporting Copilot and agent workflows. [1] [2]
  • Created .github/ISSUE_TEMPLATE/bug_report.md and .github/ISSUE_TEMPLATE/feature_request.md for standardized issue reporting and feature requests. [1] [2]

Storybook Integration:

  • Added .storybook/main.ts, .storybook/preview.ts, and .storybook/preview.css for Storybook configuration, enabling interactive component documentation and visualization. [1] [2] [3]
  • Updated .npmignore and .prettierignore to exclude Storybook and related directories from published packages and formatting. [1] [2]

Other Improvements:

  • Updated .github/FUNDING.yml to comment out unused funding platforms for clarity.

These changes collectively improve developer experience, project clarity, and CI/CD automation for bQuery.js.

JosunLP and others added 30 commits January 25, 2026 20:20
…nhance type definitions

- Moved transition, flip, spring, stagger, timeline, keyframes, scroll, and reduced motion functionalities into their respective files for better organization and maintainability.
- Introduced new types for better type safety and clarity across the motion module.
- Added keyframe presets for common animations and scroll-triggered animation helpers.
- Implemented a prefers-reduced-motion detection utility.
- Enhanced tests to cover new functionalities and ensure robustness.
…ere Trusted Types und verbessere die HTML-Sanitierung
…ublic API changes.

### Fixed (Unreleased)

- **Security**: `security/sanitize` now re-exports `generateNonce()` and `isTrustedTypesSupported()` for legacy deep imports.
- Add devtools integration for store management with functions to register, unregister, and notify state changes.
- Refactor store module to separate concerns into distinct files: create-store, mapping, persisted, plugins, registry, types, utils, and watch.
- Introduce mapping helpers for state, getters, and actions to simplify component integration.
- Implement persistence functionality for stores using localStorage.
- Add watch functionality to observe state changes with customizable options.
- Enhance tests to cover new features including mapGetters and watchStore.
- Add handleStyle directive for dynamic style binding in style.ts
- Add handleText directive for setting text content in text.ts
- Create evaluate function for expression evaluation in evaluate.ts
- Refactor view module by moving mount and template creation logic to mount.ts
- Introduce processElement and processChildren functions for directive processing in process.ts
- Define types for binding context, mount options, and directive handlers in types.ts
- Update index.ts to export new module structure and types
…stency

fix(docs): correct event section heading in Core API guide for BQueryElement
…s HTML

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
…, and SSR safety (#17)

* Initial plan

* fix: address PR review comments - duplicate keys, cleanup, exports, unwrap, caching, routing, SSR, directives, and test

Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>

* fix: improve duplicate key warning message to be more accurate

Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>

* test: add coverage for PR fixes - unwrap siblings, defineStore caching, ref cleanup, duplicate keys

Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>

* test: improve duplicate key test with try-finally and reduce duplication

Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>

* docs: clarify unwrap() behavior for all children vs collection-only elements

Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>

* Update src/router/router.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update src/core/index.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>
Co-authored-by: Jonas Pfalzgraf <info@josunlp.de>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…as HTML

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
…18)

* Initial plan

* fix: address PR review comments - router guards, motion kebab-case, component styles, utils exports, docs

Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>
…ion handling (#19)

* Initial plan

* fix(router): restore full URL with query/hash and use replaceState on cancelled navigation

Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>

* docs(component): update example to use addEventListener instead of inline onclick

Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>

* fix(view): use rawValue for object refs in bq-ref directive to support expressions

Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>

* test: add coverage for nested bq-ref expressions and router query/hash restoration on cancelled navigation

Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>

* fix(component): use event delegation in example to survive re-renders; test: add search/hash assertions

Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>

* docs(component): add disconnected hook to example for proper event listener cleanup

Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>
… format (#20)

Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
…sistency (#22)

Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
…al handling, and hash-routing interception (#24)

Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
…erage from PR #16 review (#25)

Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
…iError, and reactive bq-for updates (#26)

Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
… cleanup (#27)

Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Jonas Pfalzgraf <info@josunlp.de>
JosunLP and others added 17 commits January 30, 2026 21:33
…ion parsing (#37)

Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Jonas Pfalzgraf <info@josunlp.de>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
…lection.find(), element.is() (#39)

* Initial plan

* fix: css() getter, add Signal.dispose(), effect error handling, debounce/throttle cancel, is(), find()

- Fix BQueryElement.css() to return computed style when used as getter
- Fix BQueryCollection.css() to return computed style from first element
- Add error handling in effect() to catch errors without breaking reactive graph
- Add Signal.dispose() method to clear all subscribers
- Add cancel() method to debounce() and throttle() return values
- Add BQueryElement.is() as jQuery-compatible alias for matches()
- Add BQueryCollection.find() for descendant querying
- Add getComputedStyle to test setup for happy-dom
- Add comprehensive tests for all changes

Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>

* perf: use Set for deduplication in BQueryCollection.find()

Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>

* refactor: address review feedback - delegate is() to matches(), use ownerDocument.defaultView for getComputedStyle, update css() JSDoc

- is() now delegates to this.matches() instead of duplicating the implementation
- css() getter uses ownerDocument.defaultView?.getComputedStyle() for cross-document/SSR safety
- Updated css() JSDoc @returns to describe getter/setter return types
- Same fix applied to BQueryCollection.css() getter

Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>

* fix: properly type debounced/throttled via Object.assign, add getComputedStyle guard in collection.css()

- Use Object.assign to create DebouncedFn/ThrottledFn with proper typing
- Add typeof getComputedStyle check in BQueryCollection.css() getter for SSR safety

Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>

* docs: add css() getter example to JSDoc, strengthen effect error test

- Add getter usage example to BQueryElement.css() JSDoc
- Verify effect continues working after catching an error

Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>

* fix: use strict undefined check for debounce timeoutId instead of truthiness

Handles edge case where setTimeout could return 0 in browser environments.

Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>

* fix: implement removeDependency to prevent stale references on signal disposal

* fix: update css() method signatures for better type safety

* fix: update css() method signatures for improved type handling

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>
…pdate AGENT.md for AI agent support

feat: implement new features in core API including css() getter, is() method, find() method, and debounce/throttle enhancements
fix: improve reactive system error handling and add Signal.dispose() method
fix: enhance security validations for srcset and form action attributes
docs: update README.md and API documentation with new features and usage examples
chore: add llms.txt for LLM optimization and project summary
fix: reset timeoutId in debounce function to avoid unintended behavior
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Jonas Pfalzgraf <info@josunlp.de>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Fix PR review issues: duplicate keys, cleanup leaks, export conflicts, and SSR safety (#17)
Fix security, type safety, and API surface issues from PR #16 review (#18)
Fix router cancellation, component example, and ref directive expression handling (#19)
Fix router compatibility, isDev default, style cleanup, and changelog format (#20)
Fix hash routing bugs and add comprehensive test coverage (#21)
Fix router base path handling, bq-if DOM stability, and CHANGELOG consistency (#22)
Fix defineComponent tests, store reactivity leak, view directive signal handling, and hash-routing interception (#24)
Fix async handling, type safety, environment guards, and add test coverage from PR #16 review (#25)
Fix DOM order reversal, stale dependency tracking, localStorage SafariError, and reactive bq-for updates (#26)
Fix view template root validation, store optimizations, and utils API cleanup (#27)
Fix bq-show display restoration and timeline.seek() time calculation (#28)
Fix router base path duplication and add SSR guards for Element checks (#29)
Fix interceptLinks() browser behavior and createTemplate() validation (#30)
Fix bq-class bracket detection, once() failure caching, mount bq-for validation, and component pre-mount renders (#31)
Fix bq-style whitespace handling and spring variable frame rate (#32)
Fix bq-on method reference context loss and remove style attribute from security defaults (#33)
Fix persistedSignal localStorage test key collision (#34)
Fix bq-class directive stale class cleanup for object syntax (#35)
Fix timeline() to account for animation iterations in duration calculations (#36)
fix: Reactive robustness, security hardening, storage compat, expression parsing (#37)
Fix css() getter, add Signal.dispose(), debounce/throttle cancel, collection.find(), element.is() (#39)
fix(ci): align ESLint workflow with repo CI conventions (#47)
fix: repair corrupted bun.lock breaking CI frozen-lockfile installs (#48)
Fix ESLint workflow failure caused by SARIF formatter runtime mismatch (#50)
…component library, and Storybook-based component development (#44)

* Initial plan

* feat: add composables, config, and default components

Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>

* fix: polish composable diagnostics and cookie parsing

Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>

* fix: tighten final async and platform edge cases

Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>

* Replace playground workflow with Storybook

Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>

* Remove legacy playground alias

Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>

* Fix Storybook preview and Bun lockfile

Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>

* Fix component slots in Storybook preview

Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>

* Document slot sanitization for components

Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>

* Address review thread feedback

Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>

* Address second review thread feedback

Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>

* Fix component rendering: allow standard form attributes in shadow DOM sanitization

Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>

* Avoid re-rendering controls while typing

Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>

* Fix useCookie: limit auto-deserialization to JSON structures and enforce Secure with sameSite=None

Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>

* Fix transition token sanitization, generic fetch factories, and cookie init side effects

Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>

* Fix component hook typings, async-data disposal, and config header cloning

Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>

* Fix useFetch header reuse and announcer teardown guards

Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>

* Preserve Request headers in useFetch

Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>

* Fix async watch tracking in useAsyncData

Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>

* Harden cookie parsing and useFetch request handling

Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>

* Prevent duplicate component events and preserve Request passthrough

Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>

* Preserve Request headers over global fetch defaults

Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>

* Preserve configured createUseFetch data types by default

Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>

* fix(full): re-export missing AsyncWatchSource, FetchInput, LinkedSignal types and linkedSignal value

Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>
…t library, and global configuration

- Introduced `useAsyncData` and `useFetch` for improved async data handling.
- Added `registerDefaultComponents` for a native UI component library.
- Implemented `defineBqueryConfig` for shared runtime configuration across modules.
- Expanded documentation to cover new features and usage examples.
- Updated package version to 1.5.0 and dependencies for improved performance and security.
@JosunLP JosunLP self-assigned this Mar 12, 2026
Copilot AI review requested due to automatic review settings March 12, 2026 23:22
Signed-off-by: Jonas Pfalzgraf <info@josunlp.de>
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR bumps bQuery.js to v1.5.0 and shifts the developer workflow toward Storybook while expanding the library’s reactive/platform capabilities (async fetch composables, shared runtime config, cookies/meta/announcer helpers) and tightening security/reactivity edge cases.

Changes:

  • Added Storybook setup + component stories; removed the legacy playground.
  • Introduced new public APIs across reactive/platform/motion/component (async data/fetch, global config, cookies/meta/announcer, richer transitions, default component library).
  • Improved sanitizer and reactive error-handling; expanded test coverage accordingly.

Reviewed changes

Copilot reviewed 72 out of 75 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
tsconfig.test.json Stop typechecking the removed playground in test TS config.
tsconfig.json Adjust excludes for Storybook build output.
tests/view.test.ts Add regression coverage for parseObjectExpression backslash/quote edge cases.
tests/utils.test.ts Add tests for debounce.cancel() / throttle.cancel().
tests/setup.ts Extend happy-dom globals (Document/getComputedStyle/etc.) for new tests.
tests/security.test.ts Add tests for srcset URL validation and form action URL validation.
tests/platform.test.ts Add tests for storage keys, cookies, page meta, announcer, and config cloning behavior.
tests/motion.test.ts Add transition tests for async updates, classes/types, and token sanitization.
tests/core.test.ts Add tests for css() getter, is(), and collection find() behavior.
tests/component.test.ts Add tests for arrow-hook lifecycle support + default component library registration/behavior.
stories/textarea.stories.ts Storybook stories for default textarea component.
stories/shared.ts Shared Storybook bootstrap (global config + default component registration).
stories/input.stories.ts Storybook stories for default input component.
stories/checkbox.stories.ts Storybook stories for default checkbox component.
stories/card.stories.ts Storybook stories for default card component.
stories/button.stories.ts Storybook stories for default button component.
src/view/evaluate.ts Fix object-expression parsing by properly handling consecutive backslashes before quotes.
src/security/sanitize-core.ts Add per-entry srcset validation + validate <form action> as a URL attribute.
src/security/constants.ts Document/adjust slot handling so components can opt-in via allowTags.
src/reactive/signal.ts Re-export async data/fetch composables + their types from the reactive barrel.
src/reactive/internals.ts Make batch flushing resilient to observer errors; prevent batch underflow; add dependency removal helper.
src/reactive/index.ts Surface new async composables + types from the reactive entry point.
src/reactive/effect.ts Catch/log effect and cleanup errors to avoid breaking the reactive graph.
src/reactive/core.ts Add Signal.dispose() to drop subscribers and clean up dependency references.
src/reactive/async-data.ts New async primitives: useAsyncData, useFetch, and createUseFetch with typed lifecycle state.
src/platform/storage.ts Make StorageAdapter.keys() spec-compliant via storage.key(i) iteration.
src/platform/meta.ts New definePageMeta() helper with cleanup for title/meta/link/html/body attributes.
src/platform/index.ts Export new platform helpers (cookies, config, meta, announcer) and related types.
src/platform/cookies.ts New useCookie() reactive cookie helper with JSON heuristics + SameSite/Secure enforcement.
src/platform/config.ts New shared global configuration (defineBqueryConfig / getBqueryConfig) with cloning.
src/platform/announcer.ts New useAnnouncer() ARIA live-region helper with timer-safe teardown.
src/motion/types.ts Expand TransitionOptions to support async updates, classes/types, reduced-motion skip, callbacks.
src/motion/transition.ts Consume global transition defaults; support async updates, classes/types, reduced-motion behavior, hooks.
src/full.ts Re-export new public APIs/types in the full bundle entry.
src/core/utils/function.ts Add DebouncedFn/ThrottledFn types; implement .cancel() on debounce/throttle.
src/core/index.ts Export debounce/throttle enhanced function types from core entry point.
src/core/element.ts Add css() getter overloads + is() alias for matches().
src/core/collection.ts Add css() getter overloads and find() with deduplication.
src/component/types.ts Broaden lifecycle hook typing to allow arrow functions and optional this binding.
src/component/library.ts New default component library (button/card/input/textarea/checkbox) with safer event behavior and stable controls.
src/component/index.ts Export default component registration + types.
src/component/component.ts Expand Shadow DOM sanitization allowances for slots/parts/form attributes.
playground/vite.config.ts Remove legacy playground Vite config.
playground/tsconfig.json Remove legacy playground TS config.
playground/src/state.ts Remove legacy playground state module.
playground/src/index.ts Remove legacy playground entry point.
playground/src/demos/security.ts Remove legacy playground security demo.
playground/src/demos/platform.ts Remove legacy playground platform demo.
playground/src/demos/index.ts Remove legacy playground demos barrel.
playground/src/components/navigation.ts Remove legacy playground navigation component.
playground/src/components/index.ts Remove legacy playground components barrel.
playground/src/components/hero.ts Remove legacy playground hero component.
playground/src/components/foundation.ts Remove legacy playground foundation components.
playground/src/components/footer.ts Remove legacy playground footer component.
playground/src/app.ts Remove legacy playground app shell.
playground/index.html Remove legacy playground HTML entry.
package.json Version bump + add Storybook scripts/deps + update tooling versions.
llms.txt Add an LLM-oriented repository summary for contributors/agents.
eslint.config.js Update ignore patterns for Storybook build output.
docs/index.md Update landing page feature list to match new capabilities/workflow.
docs/guide/security.md Document srcset + form action URL validation behavior.
docs/guide/reactive.md Document signal dispose + async composables.
docs/guide/platform.md Document global config + cookies/meta/announcer APIs.
docs/guide/motion.md Document expanded transition() options + global defaults.
docs/guide/getting-started.md Update imports/examples and dev workflow to Storybook.
docs/guide/components.md Document default component library + sanitization expectations.
docs/guide/api-core.md Document css() getter, is(), collection find(), and cancelable debounce/throttle.
docs/definition.md Update conceptual docs to include new modules/APIs + Storybook workflow.
CONTRIBUTING.md Replace playground instructions with Storybook instructions.
CHANGELOG.md Add v1.5.0 release notes and reflect the new APIs/workflow.
AGENT.md Add comprehensive AI agent guide covering architecture, exports, invariants, and workflows.
.storybook/preview.ts Storybook preview configuration (layout/controls).
.storybook/preview.css Base Storybook preview styling.
.storybook/main.ts Storybook builder + stories/addons configuration.
.prettierignore Exclude Storybook build output from formatting.
.npmignore Exclude Storybook source assets from published package.
.gitignore Ignore storybook-static/ build output.
.github/workflows/label.yml Add PR labeler workflow.
.github/workflows/eslint.yml Add ESLint CI workflow with SARIF upload.
.github/labeler.yml Add label mapping rules by path.
.github/copilot-instructions.md Expand Copilot guidance to reflect new modules/workflows.
.github/ISSUE_TEMPLATE/feature_request.md Add standardized feature request template.
.github/ISSUE_TEMPLATE/bug_report.md Add standardized bug report template.
.github/FUNDING.yml Comment out unused funding fields for clarity.
.cursorrules Add Cursor-specific contributor rules.
.clinerules Add Cline-specific contributor rules.

@JosunLP
Copy link
Copy Markdown
Collaborator Author

JosunLP commented Mar 12, 2026

@copilot open a new pull request to apply changes based on the comments in this thread

Copy link
Copy Markdown
Contributor

Copilot AI commented Mar 12, 2026

@JosunLP I've opened a new pull request, #54, to work on those changes. Once the pull request is ready, I'll request review from you.

* Initial plan

* chore: ignore storybook static output in npm package

Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: JosunLP <20913954+JosunLP@users.noreply.github.com>
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR bumps bQuery.js to v1.5.0 and significantly expands the library’s first-party platform/reactive/component capabilities while shifting the contributor workflow from the Vite playground to Storybook (plus accompanying CI/doc updates).

Changes:

  • Added new public APIs across reactive (useAsyncData, useFetch, createUseFetch), platform (defineBqueryConfig, getBqueryConfig, useCookie, definePageMeta, useAnnouncer), and component (registerDefaultComponents + default UI primitives).
  • Enhanced motion transition() with async updates, reduced-motion skipping, root classes, transition types, and lifecycle callbacks.
  • Replaced the legacy playground workflow with Storybook (config + stories), updated docs/README/changelog, and added GitHub workflows for labeling + ESLint SARIF upload.

Reviewed changes

Copilot reviewed 72 out of 75 changed files in this pull request and generated no comments.

Show a summary per file
File Description
tsconfig.test.json Removes playground from test TS include set.
tsconfig.json Updates excluded build artifacts (storybook-static) and removes playground exclusion.
tests/signal.test.ts Adds coverage for new async-data/fetch composables and fetch factory typing behavior.
tests/setup.ts Extends happy-dom globals to support new platform tests (Document/SyntaxError).
tests/platform.test.ts Adds extensive tests for useCookie, definePageMeta, useAnnouncer, defineBqueryConfig behaviors.
tests/motion.test.ts Adds coverage for async transition updates, token sanitization, classes/types.
tests/component.test.ts Adds coverage for arrow-function hooks + default component library behavior/security.
stories/*.stories.ts, stories/shared.ts Adds Storybook stories and shared story setup registering default components/config.
src/reactive/async-data.ts Introduces async state + fetch composables and fetch factory helper.
src/reactive/signal.ts, src/reactive/index.ts Re-exports new composables and associated public types.
src/platform/config.ts Adds shared runtime configuration (define/get) with cloning for safety.
src/platform/cookies.ts Adds reactive useCookie with config defaults, parsing rules, and persistence.
src/platform/meta.ts Adds definePageMeta with cleanup support for title/meta/link/html/body attrs.
src/platform/announcer.ts Adds useAnnouncer live-region helper with destroy/clear/timers.
src/platform/index.ts Exposes new platform APIs and types from the platform entrypoint.
src/motion/types.ts, src/motion/transition.ts Expands TransitionOptions and implements config-aware transition enhancements.
src/component/library.ts, src/component/index.ts Adds default component library registration and exports/types.
src/component/component.ts Adjusts shadow DOM sanitization to allow slot + form-related attributes/part.
src/security/constants.ts Documents slot handling rationale relative to sanitization allowlists.
src/full.ts Updates full-bundle exports/types to include new APIs.
package.json Bumps to 1.5.0, adds Storybook scripts/deps, updates tooling deps.
eslint.config.js Updates ignore list for Storybook build output.
.storybook/*, .npmignore, .prettierignore, .gitignore Adds Storybook config and ignores build output where appropriate.
docs/*, README.md, llms.txt, AGENT.md, CHANGELOG.md, CONTRIBUTING.md Documents new APIs/workflow and release notes for 1.5.0.
.github/workflows/label.yml, .github/labeler.yml, .github/workflows/eslint.yml Adds label automation and ESLint scanning with SARIF upload.
.github/ISSUE_TEMPLATE/*, .github/copilot-instructions.md Updates contributor/agent guidance and templates.
playground/* Removes the legacy playground code/config.

@JosunLP JosunLP merged commit c33f2cf into main Mar 12, 2026
17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants