Bump @typescript-eslint/eslint-plugin from 8.37.0 to 8.46.4#167
Closed
dependabot[bot] wants to merge 1 commit into
Closed
Bump @typescript-eslint/eslint-plugin from 8.37.0 to 8.46.4#167dependabot[bot] wants to merge 1 commit into
dependabot[bot] wants to merge 1 commit into
Conversation
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 8.37.0 to 8.46.4. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.46.4/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-version: 8.46.4 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
Contributor
Author
|
OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting If you change your mind, just re-open this PR and I'll resolve any conflicts on it. |
joelteply
added a commit
that referenced
this pull request
Jun 3, 2026
…exes, BaseEntity composition (tasks #166 + #167) The Rust analogue of TS class decorators for the substrate's ORM. Write the struct once, get the schema, the typed store, and (next slice) the TS bindings for free. Define-once-in-Rust-generate- everywhere doctrine made structural, not aspirational. Per Joel 2026-06-03: "Entities need to be defined, and in one place, rust (we are headless), then generated for all places, easy to do this elegantly like we did with decorators in ts, but for rust" and "If you're building ORM anyway, do it right for long term ... let's you optimize with index" and "provide a relational db this time." ### New crate: continuum-orm-derive `#[derive(Entity)]` with `#[entity(...)]` field + struct attributes. Walks the struct, infers `FieldType` from the Rust type, honors attribute overrides, emits `impl OrmEntity for #name` automatically. The 100-line hand-written `collection_schema()` block collapses to per-field annotations. **Type inference:** - `String` / `&str` → `String` - `Uuid` (by type-name match) → `Uuid` - `bool` → `Boolean` - All integer + float types → `Number` - `Vec<_>` / `HashMap` / `BTreeMap` / `HashSet` → `Json` - `Option<T>` → inner T's type + `nullable = true` - Enum or other named struct → `Json` (override via `#[entity(json)]`) **Field attributes:** - `#[entity(indexed)]` / `#[entity(unique)]` / `#[entity(nullable)]` - `#[entity(json)]` — force JSON column - `#[entity(skip)]` — exclude from schema (pair with `#[serde(skip)]` if you also want it out of the wire payload) - `#[entity(foreign_key("collection.field"[, on_delete = "..."][, on_update = "..."]))]` — declares a real FK. Cascade keywords: `"restrict" | "cascade" | "set_null" | "no_action"`. **Struct attributes:** - `#[entity(collection = "name")]` — REQUIRED - `#[entity(index(name = "...", fields = [...], unique = ...))]` — composite index; repeat for multiple **BaseEntity composition:** TS-decorator analogue done via Rust idiom: ```rust #[derive(Entity)] #[entity(collection = "engrams")] pub struct Engram { #[serde(flatten)] pub base: BaseEntity, // recognized by type name; expands to base_entity_fields() pub content: String, ... } ``` The derive detects the embedded `BaseEntity` and adds its columns to the schema via `base_entity_fields()` rather than treating it as one big JSON blob. ### Relational schema — FKs are first-class - `SchemaField.foreign_key: Option<ForeignKeyRef>` — new typed FK reference carrying `(collection, field, on_delete, on_update)`. - `CascadeRule` enum with `Restrict / Cascade / SetNull / NoAction`. - Both `SqliteAdapter` and `PostgresAdapter` emit `FOREIGN KEY (...) REFERENCES ...(...) ON DELETE ... ON UPDATE ...` in `CREATE TABLE`. - `PRAGMA foreign_keys=ON` set per SQLite connection so the constraint is actually enforced (sqlite parses but doesn't enforce by default). - Composite indexes already supported via `SchemaIndex`; the derive now feeds them automatically. ### Bug fixes surfaced by the new tests 1. **SQLite Number affinity → integers were coerced to floats.** Existing tests passed because nothing deserialized to `i32`/`i64`. The derive's test entity uses `delta: i32`; SQLite REAL affinity stored `-7` then returned `-7.0`, failing deserialize. Changed `FieldType::Number` to NUMERIC affinity — preserves integers as integers, floats as floats. 2. **Self-alias in lib.rs.** Macro emits `::continuum_core::orm::*` absolute paths; inside the home crate those resolved nowhere. Added `extern crate self as continuum_core;` so home-crate code resolves the derive's emitted paths. Standard proc-macro pattern. ### 9/9 derive tests + 89/89 ORM tests green - `collection_constant_matches_struct_attribute` - `schema_has_base_columns_plus_domain_fields_minus_skipped` - `field_types_inferred_correctly` - `indexed_and_unique_attributes_propagate` - `option_translates_to_nullable` - `round_trip_through_orm_store` — end-to-end save/find/find_all through real SQLite using the derived schema - `composite_index_attributes_propagate` - `foreign_key_attribute_populates_schema_field` - `foreign_key_cascade_deletes_children_via_db_enforcement` — parent + child entities, child references parent via FK, deleting parent CASCADE-wipes the child row at the DB layer (not via application cleanup). The proof point that the ORM is now genuinely relational. ### Existing SchemaField construction sites (64 across the tree) Scripted addition of `foreign_key: None` to every existing literal so the field's required-by-Rust-literal rule doesn't break callers. No behavior change — existing entities don't have FKs yet. ### Not yet shipped (follow-up #168) - Engram + RecallMetadata migration to `#[derive(Entity)]`. Engram's hand-written `impl OrmEntity` block stays for now; #168 deletes it and adds RecallMetadata's FK-linked sidecar. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bumps @typescript-eslint/eslint-plugin from 8.37.0 to 8.46.4.
Release notes
Sourced from
@typescript-eslint/eslint-plugin's releases.... (truncated)
Changelog
Sourced from
@typescript-eslint/eslint-plugin's changelog.... (truncated)
Commits
843f144chore(release): publish 8.46.4997e0c0fix(parser): error when bothprojectServiceandprojectare set (#11333)7c6944echore: fix typos (#11744)189a7f7fix(eslint-plugin): handle override modifier in promise-function-async fixer ...c779f3cfix(eslint-plugin): [no-deprecated] fix double-report on computed literal ide...ea2ee6bchore(eslint-plugin): use correct type for return type ofcreateValidator(...d9f3497chore(release): publish 8.46.326a9f94fix(eslint-plugin): [no-duplicate-enum-values] support signed numbers (#11722...b8219d1fix(eslint-plugin): [no-misused-promises] expand union type to retrieve targe...55ca033chore(release): publish 8.46.2Maintainer changes
This version was pushed to npm by [GitHub Actions](https://www.npmjs.com/~GitHub Actions), a new releaser for
@typescript-eslint/eslint-pluginsince your current version.Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot mergewill merge this PR after your CI passes on it@dependabot squash and mergewill squash and merge this PR after your CI passes on it@dependabot cancel mergewill cancel a previously requested merge and block automerging@dependabot reopenwill reopen this PR if it is closed@dependabot closewill close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)