From 022c967781c2be3f39db5812be80da959b4d65be Mon Sep 17 00:00:00 2001 From: perfectra1n Date: Wed, 21 Jan 2026 16:25:17 -0800 Subject: [PATCH 001/350] feat(etapi): add revisions route and "undelete" route to etapi --- apps/server/etapi.openapi.yaml | 214 ++++++++++++++++++ .../spec/etapi/get-note-revisions.spec.ts | 77 +++++++ apps/server/spec/etapi/get-revision.spec.ts | 71 ++++++ apps/server/spec/etapi/note-history.spec.ts | 94 ++++++++ .../spec/etapi/revision-content.spec.ts | 64 ++++++ apps/server/spec/etapi/undelete-note.spec.ts | 103 +++++++++ apps/server/src/etapi/etapi_utils.ts | 13 +- apps/server/src/etapi/mappers.ts | 22 +- apps/server/src/etapi/revisions.ts | 178 +++++++++++++++ apps/server/src/routes/routes.ts | 3 + 10 files changed, 837 insertions(+), 2 deletions(-) create mode 100644 apps/server/spec/etapi/get-note-revisions.spec.ts create mode 100644 apps/server/spec/etapi/get-revision.spec.ts create mode 100644 apps/server/spec/etapi/note-history.spec.ts create mode 100644 apps/server/spec/etapi/revision-content.spec.ts create mode 100644 apps/server/spec/etapi/undelete-note.spec.ts create mode 100644 apps/server/src/etapi/revisions.ts diff --git a/apps/server/etapi.openapi.yaml b/apps/server/etapi.openapi.yaml index f35d9ad926..af05bdbe57 100644 --- a/apps/server/etapi.openapi.yaml +++ b/apps/server/etapi.openapi.yaml @@ -337,6 +337,130 @@ paths: application/json; charset=utf-8: schema: $ref: "#/components/schemas/Error" + /notes/{noteId}/revisions: + parameters: + - name: noteId + in: path + required: true + schema: + $ref: "#/components/schemas/EntityId" + get: + description: Returns all revisions for a note identified by its ID + operationId: getNoteRevisions + responses: + "200": + description: list of revisions + content: + application/json; charset=utf-8: + schema: + type: array + items: + $ref: "#/components/schemas/Revision" + default: + description: unexpected error + content: + application/json; charset=utf-8: + schema: + $ref: "#/components/schemas/Error" + /notes/{noteId}/undelete: + parameters: + - name: noteId + in: path + required: true + schema: + $ref: "#/components/schemas/EntityId" + post: + description: Restore a deleted note. The note must be deleted and must have at least one undeleted parent. + operationId: undeleteNote + responses: + "200": + description: note restored successfully + content: + application/json; charset=utf-8: + schema: + type: object + properties: + success: + type: boolean + example: true + default: + description: unexpected error + content: + application/json; charset=utf-8: + schema: + $ref: "#/components/schemas/Error" + /notes/history: + get: + description: Returns recent changes including note creations, modifications, and deletions + operationId: getNoteHistory + parameters: + - name: ancestorNoteId + in: query + required: false + description: Limit changes to a subtree identified by this note ID. Defaults to "root" (all notes). + schema: + $ref: "#/components/schemas/EntityId" + responses: + "200": + description: list of recent changes + content: + application/json; charset=utf-8: + schema: + type: array + items: + $ref: "#/components/schemas/RecentChange" + default: + description: unexpected error + content: + application/json; charset=utf-8: + schema: + $ref: "#/components/schemas/Error" + /revisions/{revisionId}: + parameters: + - name: revisionId + in: path + required: true + schema: + $ref: "#/components/schemas/EntityId" + get: + description: Returns a revision identified by its ID + operationId: getRevisionById + responses: + "200": + description: revision response + content: + application/json; charset=utf-8: + schema: + $ref: "#/components/schemas/Revision" + default: + description: unexpected error + content: + application/json; charset=utf-8: + schema: + $ref: "#/components/schemas/Error" + /revisions/{revisionId}/content: + parameters: + - name: revisionId + in: path + required: true + schema: + $ref: "#/components/schemas/EntityId" + get: + description: Returns revision content identified by its ID + operationId: getRevisionContent + responses: + "200": + description: revision content response + content: + text/html: + schema: + type: string + default: + description: unexpected error + content: + application/json; charset=utf-8: + schema: + $ref: "#/components/schemas/Error" /branches: post: description: > @@ -1186,3 +1310,93 @@ components: type: string description: Human readable error, potentially with more details, example: Note 'evnnmvHTCgIn' is protected and cannot be modified through ETAPI + Revision: + type: object + description: Revision represents a snapshot of note's title and content at some point in the past. + properties: + revisionId: + $ref: "#/components/schemas/EntityId" + readOnly: true + noteId: + $ref: "#/components/schemas/EntityId" + readOnly: true + type: + type: string + enum: + [ + text, + code, + render, + file, + image, + search, + relationMap, + book, + noteMap, + mermaid, + webView, + shortcut, + doc, + contentWidget, + launcher, + ] + mime: + type: string + isProtected: + type: boolean + readOnly: true + title: + type: string + blobId: + type: string + description: ID of the blob object which effectively serves as a content hash + dateLastEdited: + $ref: "#/components/schemas/LocalDateTime" + readOnly: true + dateCreated: + $ref: "#/components/schemas/LocalDateTime" + readOnly: true + utcDateLastEdited: + $ref: "#/components/schemas/UtcDateTime" + readOnly: true + utcDateCreated: + $ref: "#/components/schemas/UtcDateTime" + readOnly: true + utcDateModified: + $ref: "#/components/schemas/UtcDateTime" + readOnly: true + contentLength: + type: integer + format: int32 + readOnly: true + RecentChange: + type: object + description: Represents a recent change event (creation, modification, or deletion). + properties: + noteId: + $ref: "#/components/schemas/EntityId" + readOnly: true + title: + type: string + description: Title at the time of the change (may be "[protected]" for protected notes) + current_title: + type: string + description: Current title of the note (may be "[protected]" for protected notes) + current_isDeleted: + type: boolean + description: Whether the note is currently deleted + current_deleteId: + type: string + description: Delete ID if the note is deleted + current_isProtected: + type: boolean + description: Whether the note is protected + utcDate: + $ref: "#/components/schemas/UtcDateTime" + description: UTC timestamp of the change + date: + $ref: "#/components/schemas/LocalDateTime" + description: Local timestamp of the change + canBeUndeleted: + type: boolean + description: Whether the note can be undeleted (only present for deleted notes) diff --git a/apps/server/spec/etapi/get-note-revisions.spec.ts b/apps/server/spec/etapi/get-note-revisions.spec.ts new file mode 100644 index 0000000000..acf2bccf54 --- /dev/null +++ b/apps/server/spec/etapi/get-note-revisions.spec.ts @@ -0,0 +1,77 @@ +import { Application } from "express"; +import { beforeAll, describe, expect, it } from "vitest"; +import supertest from "supertest"; +import { createNote, login } from "./utils.js"; +import config from "../../src/services/config.js"; + +let app: Application; +let token: string; + +const USER = "etapi"; +let createdNoteId: string; + +describe("etapi/get-note-revisions", () => { + beforeAll(async () => { + config.General.noAuthentication = false; + const buildApp = (await (import("../../src/app.js"))).default; + app = await buildApp(); + token = await login(app); + createdNoteId = await createNote(app, token); + + // Create a revision by updating the note content + await supertest(app) + .put(`/etapi/notes/${createdNoteId}/content`) + .auth(USER, token, { "type": "basic" }) + .set("Content-Type", "text/plain") + .send("Updated content for revision") + .expect(204); + + // Force create a revision + await supertest(app) + .post(`/etapi/notes/${createdNoteId}/revision`) + .auth(USER, token, { "type": "basic" }) + .expect(204); + }); + + it("gets revisions for a note", async () => { + const response = await supertest(app) + .get(`/etapi/notes/${createdNoteId}/revisions`) + .auth(USER, token, { "type": "basic" }) + .expect(200); + + expect(Array.isArray(response.body)).toBe(true); + expect(response.body.length).toBeGreaterThan(0); + + const revision = response.body[0]; + expect(revision).toHaveProperty("revisionId"); + expect(revision).toHaveProperty("noteId", createdNoteId); + expect(revision).toHaveProperty("type"); + expect(revision).toHaveProperty("mime"); + expect(revision).toHaveProperty("title"); + expect(revision).toHaveProperty("isProtected"); + expect(revision).toHaveProperty("blobId"); + expect(revision).toHaveProperty("utcDateCreated"); + }); + + it("returns empty array for note with no revisions", async () => { + // Create a new note without any revisions + const newNoteId = await createNote(app, token, "Brand new content"); + + const response = await supertest(app) + .get(`/etapi/notes/${newNoteId}/revisions`) + .auth(USER, token, { "type": "basic" }) + .expect(200); + + expect(Array.isArray(response.body)).toBe(true); + // New notes may or may not have revisions depending on settings + }); + + it("returns 404 for non-existent note", async () => { + const response = await supertest(app) + .get("/etapi/notes/nonexistentnote/revisions") + .auth(USER, token, { "type": "basic" }) + .expect(404); + + expect(response.body.code).toStrictEqual("NOTE_NOT_FOUND"); + }); +}); diff --git a/apps/server/spec/etapi/get-revision.spec.ts b/apps/server/spec/etapi/get-revision.spec.ts new file mode 100644 index 0000000000..641f5255a7 --- /dev/null +++ b/apps/server/spec/etapi/get-revision.spec.ts @@ -0,0 +1,71 @@ +import { Application } from "express"; +import { beforeAll, describe, expect, it } from "vitest"; +import supertest from "supertest"; +import { createNote, login } from "./utils.js"; +import config from "../../src/services/config.js"; + +let app: Application; +let token: string; + +const USER = "etapi"; +let createdNoteId: string; +let revisionId: string; + +describe("etapi/get-revision", () => { + beforeAll(async () => { + config.General.noAuthentication = false; + const buildApp = (await (import("../../src/app.js"))).default; + app = await buildApp(); + token = await login(app); + createdNoteId = await createNote(app, token, "Initial content"); + + // Update content to create a revision + await supertest(app) + .put(`/etapi/notes/${createdNoteId}/content`) + .auth(USER, token, { "type": "basic" }) + .set("Content-Type", "text/plain") + .send("Updated content") + .expect(204); + + // Force create a revision + await supertest(app) + .post(`/etapi/notes/${createdNoteId}/revision`) + .auth(USER, token, { "type": "basic" }) + .expect(204); + + // Get the revision ID + const revisionsResponse = await supertest(app) + .get(`/etapi/notes/${createdNoteId}/revisions`) + .auth(USER, token, { "type": "basic" }) + .expect(200); + + expect(revisionsResponse.body.length).toBeGreaterThan(0); + revisionId = revisionsResponse.body[0].revisionId; + }); + + it("gets revision metadata by ID", async () => { + const response = await supertest(app) + .get(`/etapi/revisions/${revisionId}`) + .auth(USER, token, { "type": "basic" }) + .expect(200); + + expect(response.body).toHaveProperty("revisionId", revisionId); + expect(response.body).toHaveProperty("noteId", createdNoteId); + expect(response.body).toHaveProperty("type", "text"); + expect(response.body).toHaveProperty("mime", "text/html"); + expect(response.body).toHaveProperty("title", "Hello"); + expect(response.body).toHaveProperty("isProtected", false); + expect(response.body).toHaveProperty("blobId"); + expect(response.body).toHaveProperty("utcDateCreated"); + expect(response.body).toHaveProperty("utcDateModified"); + }); + + it("returns 404 for non-existent revision", async () => { + const response = await supertest(app) + .get("/etapi/revisions/nonexistentrevision") + .auth(USER, token, { "type": "basic" }) + .expect(404); + + expect(response.body.code).toStrictEqual("REVISION_NOT_FOUND"); + }); +}); diff --git a/apps/server/spec/etapi/note-history.spec.ts b/apps/server/spec/etapi/note-history.spec.ts new file mode 100644 index 0000000000..7696c00516 --- /dev/null +++ b/apps/server/spec/etapi/note-history.spec.ts @@ -0,0 +1,94 @@ +import { Application } from "express"; +import { beforeAll, describe, expect, it } from "vitest"; +import supertest from "supertest"; +import { createNote, login } from "./utils.js"; +import config from "../../src/services/config.js"; + +let app: Application; +let token: string; + +const USER = "etapi"; +let createdNoteId: string; + +describe("etapi/note-history", () => { + beforeAll(async () => { + config.General.noAuthentication = false; + const buildApp = (await (import("../../src/app.js"))).default; + app = await buildApp(); + token = await login(app); + + // Create a note to ensure there's some history + createdNoteId = await createNote(app, token, "History test content"); + + // Create a revision to ensure history has entries + await supertest(app) + .post(`/etapi/notes/${createdNoteId}/revision`) + .auth(USER, token, { "type": "basic" }) + .expect(204); + }); + + it("gets recent changes history", async () => { + const response = await supertest(app) + .get("/etapi/notes/history") + .auth(USER, token, { "type": "basic" }) + .expect(200); + + expect(Array.isArray(response.body)).toBe(true); + expect(response.body.length).toBeGreaterThan(0); + + // Check that history entries have expected properties + const entry = response.body[0]; + expect(entry).toHaveProperty("noteId"); + expect(entry).toHaveProperty("title"); + expect(entry).toHaveProperty("utcDate"); + expect(entry).toHaveProperty("date"); + expect(entry).toHaveProperty("current_isDeleted"); + expect(entry).toHaveProperty("current_isProtected"); + }); + + it("filters history by ancestor note", async () => { + const response = await supertest(app) + .get("/etapi/notes/history?ancestorNoteId=root") + .auth(USER, token, { "type": "basic" }) + .expect(200); + + expect(Array.isArray(response.body)).toBe(true); + // All results should be descendants of root (which is everything) + }); + + it("returns empty array for non-existent ancestor", async () => { + const response = await supertest(app) + .get("/etapi/notes/history?ancestorNoteId=nonexistentancestor") + .auth(USER, token, { "type": "basic" }) + .expect(200); + + expect(Array.isArray(response.body)).toBe(true); + // Should be empty since no notes are descendants of a non-existent note + expect(response.body.length).toBe(0); + }); + + it("includes canBeUndeleted for deleted notes", async () => { + // Create and delete a note + const noteToDeleteId = await createNote(app, token, "Note to delete for history test"); + + await supertest(app) + .delete(`/etapi/notes/${noteToDeleteId}`) + .auth(USER, token, { "type": "basic" }) + .expect(204); + + // Check history - deleted note should appear with canBeUndeleted property + const response = await supertest(app) + .get("/etapi/notes/history") + .auth(USER, token, { "type": "basic" }) + .expect(200); + + const deletedEntry = response.body.find( + (entry: any) => entry.noteId === noteToDeleteId && entry.current_isDeleted === true + ); + + // Deleted entries should have canBeUndeleted property + if (deletedEntry) { + expect(deletedEntry).toHaveProperty("canBeUndeleted"); + } + }); +}); diff --git a/apps/server/spec/etapi/revision-content.spec.ts b/apps/server/spec/etapi/revision-content.spec.ts new file mode 100644 index 0000000000..5d7d5e558a --- /dev/null +++ b/apps/server/spec/etapi/revision-content.spec.ts @@ -0,0 +1,64 @@ +import { Application } from "express"; +import { beforeAll, describe, expect, it } from "vitest"; +import supertest from "supertest"; +import { createNote, login } from "./utils.js"; +import config from "../../src/services/config.js"; + +let app: Application; +let token: string; + +const USER = "etapi"; +let createdNoteId: string; +let revisionId: string; + +describe("etapi/revision-content", () => { + beforeAll(async () => { + config.General.noAuthentication = false; + const buildApp = (await (import("../../src/app.js"))).default; + app = await buildApp(); + token = await login(app); + createdNoteId = await createNote(app, token, "Initial revision content"); + + // Update content to ensure we have content in the revision + await supertest(app) + .put(`/etapi/notes/${createdNoteId}/content`) + .auth(USER, token, { "type": "basic" }) + .set("Content-Type", "text/plain") + .send("Content after first update") + .expect(204); + + // Force create a revision + await supertest(app) + .post(`/etapi/notes/${createdNoteId}/revision`) + .auth(USER, token, { "type": "basic" }) + .expect(204); + + // Get the revision ID + const revisionsResponse = await supertest(app) + .get(`/etapi/notes/${createdNoteId}/revisions`) + .auth(USER, token, { "type": "basic" }) + .expect(200); + + expect(revisionsResponse.body.length).toBeGreaterThan(0); + revisionId = revisionsResponse.body[0].revisionId; + }); + + it("gets revision content", async () => { + const response = await supertest(app) + .get(`/etapi/revisions/${revisionId}/content`) + .auth(USER, token, { "type": "basic" }) + .expect(200); + + expect(response.headers["content-type"]).toMatch(/text\/html/); + expect(response.text).toBeTruthy(); + }); + + it("returns 404 for non-existent revision content", async () => { + const response = await supertest(app) + .get("/etapi/revisions/nonexistentrevision/content") + .auth(USER, token, { "type": "basic" }) + .expect(404); + + expect(response.body.code).toStrictEqual("REVISION_NOT_FOUND"); + }); +}); diff --git a/apps/server/spec/etapi/undelete-note.spec.ts b/apps/server/spec/etapi/undelete-note.spec.ts new file mode 100644 index 0000000000..236539f4a1 --- /dev/null +++ b/apps/server/spec/etapi/undelete-note.spec.ts @@ -0,0 +1,103 @@ +import { Application } from "express"; +import { beforeAll, beforeEach, describe, expect, it } from "vitest"; +import supertest from "supertest"; +import { login } from "./utils.js"; +import config from "../../src/services/config.js"; +import { randomInt } from "crypto"; + +let app: Application; +let token: string; + +const USER = "etapi"; + +describe("etapi/undelete-note", () => { + beforeAll(async () => { + config.General.noAuthentication = false; + const buildApp = (await (import("../../src/app.js"))).default; + app = await buildApp(); + token = await login(app); + }); + + it("undeletes a deleted note", async () => { + // Create a note + const noteId = `testNote${randomInt(10000)}`; + await supertest(app) + .post("/etapi/create-note") + .auth(USER, token, { "type": "basic" }) + .send({ + "noteId": noteId, + "parentNoteId": "root", + "title": "Note to delete and restore", + "type": "text", + "content": "Content to restore" + }) + .expect(201); + + // Verify note exists + await supertest(app) + .get(`/etapi/notes/${noteId}`) + .auth(USER, token, { "type": "basic" }) + .expect(200); + + // Delete the note + await supertest(app) + .delete(`/etapi/notes/${noteId}`) + .auth(USER, token, { "type": "basic" }) + .expect(204); + + // Verify note is deleted (should return 404) + await supertest(app) + .get(`/etapi/notes/${noteId}`) + .auth(USER, token, { "type": "basic" }) + .expect(404); + + // Undelete the note + const response = await supertest(app) + .post(`/etapi/notes/${noteId}/undelete`) + .auth(USER, token, { "type": "basic" }) + .expect(200); + + expect(response.body).toHaveProperty("success", true); + + // Verify note is restored + const restoredResponse = await supertest(app) + .get(`/etapi/notes/${noteId}`) + .auth(USER, token, { "type": "basic" }) + .expect(200); + + expect(restoredResponse.body.title).toStrictEqual("Note to delete and restore"); + }); + + it("returns 404 for non-existent note", async () => { + const response = await supertest(app) + .post("/etapi/notes/nonexistentnote/undelete") + .auth(USER, token, { "type": "basic" }) + .expect(404); + + expect(response.body.code).toStrictEqual("NOTE_NOT_FOUND"); + }); + + it("returns 400 when trying to undelete a non-deleted note", async () => { + // Create a note + const noteId = `testNote${randomInt(10000)}`; + await supertest(app) + .post("/etapi/create-note") + .auth(USER, token, { "type": "basic" }) + .send({ + "noteId": noteId, + "parentNoteId": "root", + "title": "Note not deleted", + "type": "text", + "content": "Content" + }) + .expect(201); + + // Try to undelete a note that isn't deleted + const response = await supertest(app) + .post(`/etapi/notes/${noteId}/undelete`) + .auth(USER, token, { "type": "basic" }) + .expect(400); + + expect(response.body.code).toStrictEqual("NOTE_NOT_DELETED"); + }); +}); diff --git a/apps/server/src/etapi/etapi_utils.ts b/apps/server/src/etapi/etapi_utils.ts index 1319162575..9bafdf731a 100644 --- a/apps/server/src/etapi/etapi_utils.ts +++ b/apps/server/src/etapi/etapi_utils.ts @@ -121,6 +121,16 @@ function getAndCheckAttribute(attributeId: string) { } } +function getAndCheckRevision(revisionId: string) { + const revision = becca.getRevision(revisionId); + + if (revision) { + return revision; + } else { + throw new EtapiError(404, "REVISION_NOT_FOUND", `Revision '${revisionId}' not found.`); + } +} + function validateAndPatch(target: any, source: any, allowedProperties: ValidatorMap) { for (const key of Object.keys(source)) { if (!(key in allowedProperties)) { @@ -152,5 +162,6 @@ export default { getAndCheckNote, getAndCheckBranch, getAndCheckAttribute, - getAndCheckAttachment + getAndCheckAttachment, + getAndCheckRevision }; diff --git a/apps/server/src/etapi/mappers.ts b/apps/server/src/etapi/mappers.ts index 735e767c29..4748122390 100644 --- a/apps/server/src/etapi/mappers.ts +++ b/apps/server/src/etapi/mappers.ts @@ -2,6 +2,7 @@ import type BAttachment from "../becca/entities/battachment.js"; import type BAttribute from "../becca/entities/battribute.js"; import type BBranch from "../becca/entities/bbranch.js"; import type BNote from "../becca/entities/bnote.js"; +import type BRevision from "../becca/entities/brevision.js"; function mapNoteToPojo(note: BNote) { return { @@ -64,9 +65,28 @@ function mapAttachmentToPojo(attachment: BAttachment) { }; } +function mapRevisionToPojo(revision: BRevision) { + return { + revisionId: revision.revisionId, + noteId: revision.noteId, + type: revision.type, + mime: revision.mime, + isProtected: revision.isProtected, + title: revision.title, + blobId: revision.blobId, + dateLastEdited: revision.dateLastEdited, + dateCreated: revision.dateCreated, + utcDateLastEdited: revision.utcDateLastEdited, + utcDateCreated: revision.utcDateCreated, + utcDateModified: revision.utcDateModified, + contentLength: revision.contentLength + }; +} + export default { mapNoteToPojo, mapBranchToPojo, mapAttributeToPojo, - mapAttachmentToPojo + mapAttachmentToPojo, + mapRevisionToPojo }; diff --git a/apps/server/src/etapi/revisions.ts b/apps/server/src/etapi/revisions.ts new file mode 100644 index 0000000000..713af44f9f --- /dev/null +++ b/apps/server/src/etapi/revisions.ts @@ -0,0 +1,178 @@ +import becca from "../becca/becca.js"; +import sql from "../services/sql.js"; +import eu from "./etapi_utils.js"; +import mappers from "./mappers.js"; +import noteService from "../services/notes.js"; +import TaskContext from "../services/task_context.js"; +import protectedSessionService from "../services/protected_session.js"; +import utils from "../services/utils.js"; +import type { Router } from "express"; +import type { NoteRow, RecentChangeRow } from "@triliumnext/commons"; + +function register(router: Router) { + // GET /etapi/notes/history - must be registered before /etapi/notes/:noteId routes + eu.route(router, "get", "/etapi/notes/history", (req, res, next) => { + const ancestorNoteId = (req.query.ancestorNoteId as string) || "root"; + + let recentChanges: RecentChangeRow[] = []; + + const revisionRows = sql.getRows(` + SELECT + notes.noteId, + notes.isDeleted AS current_isDeleted, + notes.deleteId AS current_deleteId, + notes.title AS current_title, + notes.isProtected AS current_isProtected, + revisions.title, + revisions.utcDateCreated AS utcDate, + revisions.dateCreated AS date + FROM + revisions + JOIN notes USING(noteId)`); + + for (const revisionRow of revisionRows) { + const note = becca.getNote(revisionRow.noteId); + + // for deleted notes, the becca note is null, and it's not possible to (easily) determine if it belongs to a subtree + if (ancestorNoteId === "root" || note?.hasAncestor(ancestorNoteId)) { + recentChanges.push(revisionRow); + } + } + + // now we need to also collect date points not represented in note revisions: + // 1. creation for all notes (dateCreated) + // 2. deletion for deleted notes (dateModified) + const noteRows = sql.getRows(` + SELECT + notes.noteId, + notes.isDeleted AS current_isDeleted, + notes.deleteId AS current_deleteId, + notes.title AS current_title, + notes.isProtected AS current_isProtected, + notes.title, + notes.utcDateCreated AS utcDate, + notes.dateCreated AS date + FROM notes + UNION ALL + SELECT + notes.noteId, + notes.isDeleted AS current_isDeleted, + notes.deleteId AS current_deleteId, + notes.title AS current_title, + notes.isProtected AS current_isProtected, + notes.title, + notes.utcDateModified AS utcDate, + notes.dateModified AS date + FROM notes + WHERE notes.isDeleted = 1`); + + for (const noteRow of noteRows) { + const note = becca.getNote(noteRow.noteId); + + // for deleted notes, the becca note is null, and it's not possible to (easily) determine if it belongs to a subtree + if (ancestorNoteId === "root" || note?.hasAncestor(ancestorNoteId)) { + recentChanges.push(noteRow); + } + } + + recentChanges.sort((a, b) => (a.utcDate > b.utcDate ? -1 : 1)); + + recentChanges = recentChanges.slice(0, Math.min(500, recentChanges.length)); + + for (const change of recentChanges) { + if (change.current_isProtected) { + if (protectedSessionService.isProtectedSessionAvailable()) { + change.title = protectedSessionService.decryptString(change.title) || "[protected]"; + change.current_title = protectedSessionService.decryptString(change.current_title) || "[protected]"; + } else { + change.title = change.current_title = "[protected]"; + } + } + + if (change.current_isDeleted) { + const deleteId = change.current_deleteId; + + const undeletedParentBranchIds = noteService.getUndeletedParentBranchIds(change.noteId, deleteId); + + // note (and the subtree) can be undeleted if there's at least one undeleted parent (whose branch would be undeleted by this op) + change.canBeUndeleted = undeletedParentBranchIds.length > 0; + } + } + + res.json(recentChanges); + }); + + // GET /etapi/notes/:noteId/revisions - List all revisions for a note + eu.route(router, "get", "/etapi/notes/:noteId/revisions", (req, res, next) => { + const note = eu.getAndCheckNote(req.params.noteId); + + const revisions = becca.getRevisionsFromQuery( + `SELECT revisions.*, LENGTH(blobs.content) AS contentLength + FROM revisions + JOIN blobs USING (blobId) + WHERE noteId = ? + ORDER BY utcDateCreated DESC`, + [note.noteId] + ); + + res.json(revisions.map((revision) => mappers.mapRevisionToPojo(revision))); + }); + + // POST /etapi/notes/:noteId/undelete - Restore a deleted note + eu.route(router, "post", "/etapi/notes/:noteId/undelete", (req, res, next) => { + const { noteId } = req.params; + + const noteRow = sql.getRow("SELECT * FROM notes WHERE noteId = ?", [noteId]); + + if (!noteRow) { + throw new eu.EtapiError(404, "NOTE_NOT_FOUND", `Note '${noteId}' not found.`); + } + + if (!noteRow.isDeleted || !noteRow.deleteId) { + throw new eu.EtapiError(400, "NOTE_NOT_DELETED", `Note '${noteId}' is not deleted.`); + } + + const undeletedParentBranchIds = noteService.getUndeletedParentBranchIds(noteId, noteRow.deleteId); + + if (undeletedParentBranchIds.length === 0) { + throw new eu.EtapiError(400, "CANNOT_UNDELETE", `Cannot undelete note '${noteId}' - no undeleted parent found.`); + } + + const taskContext = new TaskContext("no-progress-reporting", "undeleteNotes", null); + noteService.undeleteNote(noteId, taskContext); + + res.json({ success: true }); + }); + + // GET /etapi/revisions/:revisionId - Get revision metadata + eu.route(router, "get", "/etapi/revisions/:revisionId", (req, res, next) => { + const revision = eu.getAndCheckRevision(req.params.revisionId); + + if (revision.isProtected) { + throw new eu.EtapiError(400, "REVISION_IS_PROTECTED", `Revision '${req.params.revisionId}' is protected and cannot be read through ETAPI.`); + } + + res.json(mappers.mapRevisionToPojo(revision)); + }); + + // GET /etapi/revisions/:revisionId/content - Get revision content + eu.route(router, "get", "/etapi/revisions/:revisionId/content", (req, res, next) => { + const revision = eu.getAndCheckRevision(req.params.revisionId); + + if (revision.isProtected) { + throw new eu.EtapiError(400, "REVISION_IS_PROTECTED", `Revision '${req.params.revisionId}' is protected and content cannot be read through ETAPI.`); + } + + const filename = utils.formatDownloadTitle(revision.title, revision.type, revision.mime); + + res.setHeader("Content-Disposition", utils.getContentDisposition(filename)); + res.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); + res.setHeader("Content-Type", revision.mime); + + res.send(revision.getContent()); + }); +} + +export default { + register +}; diff --git a/apps/server/src/routes/routes.ts b/apps/server/src/routes/routes.ts index 9e31d1bcac..96c3ebd84d 100644 --- a/apps/server/src/routes/routes.ts +++ b/apps/server/src/routes/routes.ts @@ -12,6 +12,7 @@ import etapiMetricsRoute from "../etapi/metrics.js"; import etapiNoteRoutes from "../etapi/notes.js"; import etapiSpecRoute from "../etapi/spec.js"; import etapiSpecialNoteRoutes from "../etapi/special_notes.js"; +import etapiRevisionsRoutes from "../etapi/revisions.js"; import auth from "../services/auth.js"; import openID from '../services/open_id.js'; import { isElectron } from "../services/utils.js"; @@ -361,6 +362,8 @@ function register(app: express.Application) { etapiAttachmentRoutes.register(router); etapiAttributeRoutes.register(router); etapiBranchRoutes.register(router); + // Register revisions routes BEFORE notes routes so /etapi/notes/history is matched before /etapi/notes/:noteId + etapiRevisionsRoutes.register(router); etapiNoteRoutes.register(router); etapiSpecialNoteRoutes.register(router); etapiSpecRoute.register(router); From 60c61f553a451414a47bb50798d98bbc6bdcab22 Mon Sep 17 00:00:00 2001 From: perfectra1n Date: Wed, 21 Jan 2026 16:30:37 -0800 Subject: [PATCH 002/350] feat(etapi): put filtering for revisions mainly in the db layer --- apps/server/src/etapi/revisions.ts | 111 ++++++++++++++++++----------- 1 file changed, 69 insertions(+), 42 deletions(-) diff --git a/apps/server/src/etapi/revisions.ts b/apps/server/src/etapi/revisions.ts index 713af44f9f..6451b18a15 100644 --- a/apps/server/src/etapi/revisions.ts +++ b/apps/server/src/etapi/revisions.ts @@ -14,35 +14,23 @@ function register(router: Router) { eu.route(router, "get", "/etapi/notes/history", (req, res, next) => { const ancestorNoteId = (req.query.ancestorNoteId as string) || "root"; - let recentChanges: RecentChangeRow[] = []; + let recentChanges: RecentChangeRow[]; - const revisionRows = sql.getRows(` - SELECT - notes.noteId, - notes.isDeleted AS current_isDeleted, - notes.deleteId AS current_deleteId, - notes.title AS current_title, - notes.isProtected AS current_isProtected, - revisions.title, - revisions.utcDateCreated AS utcDate, - revisions.dateCreated AS date - FROM - revisions - JOIN notes USING(noteId)`); - - for (const revisionRow of revisionRows) { - const note = becca.getNote(revisionRow.noteId); - - // for deleted notes, the becca note is null, and it's not possible to (easily) determine if it belongs to a subtree - if (ancestorNoteId === "root" || note?.hasAncestor(ancestorNoteId)) { - recentChanges.push(revisionRow); - } - } - - // now we need to also collect date points not represented in note revisions: - // 1. creation for all notes (dateCreated) - // 2. deletion for deleted notes (dateModified) - const noteRows = sql.getRows(` + if (ancestorNoteId === "root") { + // Optimized path: no ancestor filtering needed, fetch directly from DB + recentChanges = sql.getRows(` + SELECT + notes.noteId, + notes.isDeleted AS current_isDeleted, + notes.deleteId AS current_deleteId, + notes.title AS current_title, + notes.isProtected AS current_isProtected, + revisions.title, + revisions.utcDateCreated AS utcDate, + revisions.dateCreated AS date + FROM revisions + JOIN notes USING(noteId) + UNION ALL SELECT notes.noteId, notes.isDeleted AS current_isDeleted, @@ -53,7 +41,7 @@ function register(router: Router) { notes.utcDateCreated AS utcDate, notes.dateCreated AS date FROM notes - UNION ALL + UNION ALL SELECT notes.noteId, notes.isDeleted AS current_isDeleted, @@ -64,21 +52,60 @@ function register(router: Router) { notes.utcDateModified AS utcDate, notes.dateModified AS date FROM notes - WHERE notes.isDeleted = 1`); - - for (const noteRow of noteRows) { - const note = becca.getNote(noteRow.noteId); - - // for deleted notes, the becca note is null, and it's not possible to (easily) determine if it belongs to a subtree - if (ancestorNoteId === "root" || note?.hasAncestor(ancestorNoteId)) { - recentChanges.push(noteRow); - } + WHERE notes.isDeleted = 1 + ORDER BY utcDate DESC + LIMIT 500`); + } else { + // Use recursive CTE to find all descendants, then filter at DB level + // This pushes filtering to the database for much better performance + recentChanges = sql.getRows(` + WITH RECURSIVE descendants(noteId) AS ( + SELECT ? + UNION + SELECT branches.noteId + FROM branches + JOIN descendants ON branches.parentNoteId = descendants.noteId + ) + SELECT + notes.noteId, + notes.isDeleted AS current_isDeleted, + notes.deleteId AS current_deleteId, + notes.title AS current_title, + notes.isProtected AS current_isProtected, + revisions.title, + revisions.utcDateCreated AS utcDate, + revisions.dateCreated AS date + FROM revisions + JOIN notes USING(noteId) + WHERE notes.noteId IN (SELECT noteId FROM descendants) + UNION ALL + SELECT + notes.noteId, + notes.isDeleted AS current_isDeleted, + notes.deleteId AS current_deleteId, + notes.title AS current_title, + notes.isProtected AS current_isProtected, + notes.title, + notes.utcDateCreated AS utcDate, + notes.dateCreated AS date + FROM notes + WHERE notes.noteId IN (SELECT noteId FROM descendants) + UNION ALL + SELECT + notes.noteId, + notes.isDeleted AS current_isDeleted, + notes.deleteId AS current_deleteId, + notes.title AS current_title, + notes.isProtected AS current_isProtected, + notes.title, + notes.utcDateModified AS utcDate, + notes.dateModified AS date + FROM notes + WHERE notes.isDeleted = 1 AND notes.noteId IN (SELECT noteId FROM descendants) + ORDER BY utcDate DESC + LIMIT 500`, [ancestorNoteId]); } - recentChanges.sort((a, b) => (a.utcDate > b.utcDate ? -1 : 1)); - - recentChanges = recentChanges.slice(0, Math.min(500, recentChanges.length)); - for (const change of recentChanges) { if (change.current_isProtected) { if (protectedSessionService.isProtectedSessionAvailable()) { From 0650be664d99858a55f476d92bf08dc99e2bad35 Mon Sep 17 00:00:00 2001 From: perfectra1n Date: Wed, 21 Jan 2026 16:33:42 -0800 Subject: [PATCH 003/350] feat(etapi): resolve suggestions for norms from gemini --- apps/server/etapi.openapi.yaml | 15 +++--- apps/server/spec/etapi/note-history.spec.ts | 6 +-- apps/server/src/etapi/revisions.ts | 58 ++++++++++----------- packages/commons/src/lib/server_api.ts | 8 +-- 4 files changed, 44 insertions(+), 43 deletions(-) diff --git a/apps/server/etapi.openapi.yaml b/apps/server/etapi.openapi.yaml index af05bdbe57..2e6f941eb2 100644 --- a/apps/server/etapi.openapi.yaml +++ b/apps/server/etapi.openapi.yaml @@ -446,15 +446,16 @@ paths: schema: $ref: "#/components/schemas/EntityId" get: - description: Returns revision content identified by its ID + description: Returns revision content identified by its ID. The Content-Type header will match the revision's MIME type. operationId: getRevisionContent responses: "200": - description: revision content response + description: Revision content. The Content-Type header will be set to the revision's actual MIME type (e.g., text/html, text/plain, image/png). content: - text/html: + application/octet-stream: schema: type: string + format: binary default: description: unexpected error content: @@ -1379,16 +1380,16 @@ components: title: type: string description: Title at the time of the change (may be "[protected]" for protected notes) - current_title: + currentTitle: type: string description: Current title of the note (may be "[protected]" for protected notes) - current_isDeleted: + currentIsDeleted: type: boolean description: Whether the note is currently deleted - current_deleteId: + currentDeleteId: type: string description: Delete ID if the note is deleted - current_isProtected: + currentIsProtected: type: boolean description: Whether the note is protected utcDate: diff --git a/apps/server/spec/etapi/note-history.spec.ts b/apps/server/spec/etapi/note-history.spec.ts index 7696c00516..c78e8d359c 100644 --- a/apps/server/spec/etapi/note-history.spec.ts +++ b/apps/server/spec/etapi/note-history.spec.ts @@ -42,8 +42,8 @@ describe("etapi/note-history", () => { expect(entry).toHaveProperty("title"); expect(entry).toHaveProperty("utcDate"); expect(entry).toHaveProperty("date"); - expect(entry).toHaveProperty("current_isDeleted"); - expect(entry).toHaveProperty("current_isProtected"); + expect(entry).toHaveProperty("currentIsDeleted"); + expect(entry).toHaveProperty("currentIsProtected"); }); it("filters history by ancestor note", async () => { @@ -83,7 +83,7 @@ describe("etapi/note-history", () => { .expect(200); const deletedEntry = response.body.find( - (entry: any) => entry.noteId === noteToDeleteId && entry.current_isDeleted === true + (entry: any) => entry.noteId === noteToDeleteId && entry.currentIsDeleted === true ); // Deleted entries should have canBeUndeleted property diff --git a/apps/server/src/etapi/revisions.ts b/apps/server/src/etapi/revisions.ts index 6451b18a15..e76877ddc5 100644 --- a/apps/server/src/etapi/revisions.ts +++ b/apps/server/src/etapi/revisions.ts @@ -21,10 +21,10 @@ function register(router: Router) { recentChanges = sql.getRows(` SELECT notes.noteId, - notes.isDeleted AS current_isDeleted, - notes.deleteId AS current_deleteId, - notes.title AS current_title, - notes.isProtected AS current_isProtected, + notes.isDeleted AS currentIsDeleted, + notes.deleteId AS currentDeleteId, + notes.title AS currentTitle, + notes.isProtected AS currentIsProtected, revisions.title, revisions.utcDateCreated AS utcDate, revisions.dateCreated AS date @@ -33,10 +33,10 @@ function register(router: Router) { UNION ALL SELECT notes.noteId, - notes.isDeleted AS current_isDeleted, - notes.deleteId AS current_deleteId, - notes.title AS current_title, - notes.isProtected AS current_isProtected, + notes.isDeleted AS currentIsDeleted, + notes.deleteId AS currentDeleteId, + notes.title AS currentTitle, + notes.isProtected AS currentIsProtected, notes.title, notes.utcDateCreated AS utcDate, notes.dateCreated AS date @@ -44,10 +44,10 @@ function register(router: Router) { UNION ALL SELECT notes.noteId, - notes.isDeleted AS current_isDeleted, - notes.deleteId AS current_deleteId, - notes.title AS current_title, - notes.isProtected AS current_isProtected, + notes.isDeleted AS currentIsDeleted, + notes.deleteId AS currentDeleteId, + notes.title AS currentTitle, + notes.isProtected AS currentIsProtected, notes.title, notes.utcDateModified AS utcDate, notes.dateModified AS date @@ -68,10 +68,10 @@ function register(router: Router) { ) SELECT notes.noteId, - notes.isDeleted AS current_isDeleted, - notes.deleteId AS current_deleteId, - notes.title AS current_title, - notes.isProtected AS current_isProtected, + notes.isDeleted AS currentIsDeleted, + notes.deleteId AS currentDeleteId, + notes.title AS currentTitle, + notes.isProtected AS currentIsProtected, revisions.title, revisions.utcDateCreated AS utcDate, revisions.dateCreated AS date @@ -81,10 +81,10 @@ function register(router: Router) { UNION ALL SELECT notes.noteId, - notes.isDeleted AS current_isDeleted, - notes.deleteId AS current_deleteId, - notes.title AS current_title, - notes.isProtected AS current_isProtected, + notes.isDeleted AS currentIsDeleted, + notes.deleteId AS currentDeleteId, + notes.title AS currentTitle, + notes.isProtected AS currentIsProtected, notes.title, notes.utcDateCreated AS utcDate, notes.dateCreated AS date @@ -93,10 +93,10 @@ function register(router: Router) { UNION ALL SELECT notes.noteId, - notes.isDeleted AS current_isDeleted, - notes.deleteId AS current_deleteId, - notes.title AS current_title, - notes.isProtected AS current_isProtected, + notes.isDeleted AS currentIsDeleted, + notes.deleteId AS currentDeleteId, + notes.title AS currentTitle, + notes.isProtected AS currentIsProtected, notes.title, notes.utcDateModified AS utcDate, notes.dateModified AS date @@ -107,17 +107,17 @@ function register(router: Router) { } for (const change of recentChanges) { - if (change.current_isProtected) { + if (change.currentIsProtected) { if (protectedSessionService.isProtectedSessionAvailable()) { change.title = protectedSessionService.decryptString(change.title) || "[protected]"; - change.current_title = protectedSessionService.decryptString(change.current_title) || "[protected]"; + change.currentTitle = protectedSessionService.decryptString(change.currentTitle) || "[protected]"; } else { - change.title = change.current_title = "[protected]"; + change.title = change.currentTitle = "[protected]"; } } - if (change.current_isDeleted) { - const deleteId = change.current_deleteId; + if (change.currentIsDeleted) { + const deleteId = change.currentDeleteId; const undeletedParentBranchIds = noteService.getUndeletedParentBranchIds(change.noteId, deleteId); diff --git a/packages/commons/src/lib/server_api.ts b/packages/commons/src/lib/server_api.ts index a15192fd28..7c197a7614 100644 --- a/packages/commons/src/lib/server_api.ts +++ b/packages/commons/src/lib/server_api.ts @@ -56,10 +56,10 @@ export interface RevisionPojo { export interface RecentChangeRow { noteId: string; - current_isDeleted: boolean; - current_deleteId: string; - current_title: string; - current_isProtected: boolean; + currentIsDeleted: boolean; + currentDeleteId: string; + currentTitle: string; + currentIsProtected: boolean; title: string; utcDate: string; date: string; From 280697f2f7ef363d6ca85a7bbbbfe2ff4cc83479 Mon Sep 17 00:00:00 2001 From: perfectra1n Date: Wed, 21 Jan 2026 16:37:02 -0800 Subject: [PATCH 004/350] Revert "feat(etapi): resolve suggestions for norms from gemini" This reverts commit 0650be664d99858a55f476d92bf08dc99e2bad35. --- apps/server/etapi.openapi.yaml | 15 +++--- apps/server/spec/etapi/note-history.spec.ts | 6 +-- apps/server/src/etapi/revisions.ts | 58 ++++++++++----------- packages/commons/src/lib/server_api.ts | 8 +-- 4 files changed, 43 insertions(+), 44 deletions(-) diff --git a/apps/server/etapi.openapi.yaml b/apps/server/etapi.openapi.yaml index 2e6f941eb2..af05bdbe57 100644 --- a/apps/server/etapi.openapi.yaml +++ b/apps/server/etapi.openapi.yaml @@ -446,16 +446,15 @@ paths: schema: $ref: "#/components/schemas/EntityId" get: - description: Returns revision content identified by its ID. The Content-Type header will match the revision's MIME type. + description: Returns revision content identified by its ID operationId: getRevisionContent responses: "200": - description: Revision content. The Content-Type header will be set to the revision's actual MIME type (e.g., text/html, text/plain, image/png). + description: revision content response content: - application/octet-stream: + text/html: schema: type: string - format: binary default: description: unexpected error content: @@ -1380,16 +1379,16 @@ components: title: type: string description: Title at the time of the change (may be "[protected]" for protected notes) - currentTitle: + current_title: type: string description: Current title of the note (may be "[protected]" for protected notes) - currentIsDeleted: + current_isDeleted: type: boolean description: Whether the note is currently deleted - currentDeleteId: + current_deleteId: type: string description: Delete ID if the note is deleted - currentIsProtected: + current_isProtected: type: boolean description: Whether the note is protected utcDate: diff --git a/apps/server/spec/etapi/note-history.spec.ts b/apps/server/spec/etapi/note-history.spec.ts index c78e8d359c..7696c00516 100644 --- a/apps/server/spec/etapi/note-history.spec.ts +++ b/apps/server/spec/etapi/note-history.spec.ts @@ -42,8 +42,8 @@ describe("etapi/note-history", () => { expect(entry).toHaveProperty("title"); expect(entry).toHaveProperty("utcDate"); expect(entry).toHaveProperty("date"); - expect(entry).toHaveProperty("currentIsDeleted"); - expect(entry).toHaveProperty("currentIsProtected"); + expect(entry).toHaveProperty("current_isDeleted"); + expect(entry).toHaveProperty("current_isProtected"); }); it("filters history by ancestor note", async () => { @@ -83,7 +83,7 @@ describe("etapi/note-history", () => { .expect(200); const deletedEntry = response.body.find( - (entry: any) => entry.noteId === noteToDeleteId && entry.currentIsDeleted === true + (entry: any) => entry.noteId === noteToDeleteId && entry.current_isDeleted === true ); // Deleted entries should have canBeUndeleted property diff --git a/apps/server/src/etapi/revisions.ts b/apps/server/src/etapi/revisions.ts index e76877ddc5..6451b18a15 100644 --- a/apps/server/src/etapi/revisions.ts +++ b/apps/server/src/etapi/revisions.ts @@ -21,10 +21,10 @@ function register(router: Router) { recentChanges = sql.getRows(` SELECT notes.noteId, - notes.isDeleted AS currentIsDeleted, - notes.deleteId AS currentDeleteId, - notes.title AS currentTitle, - notes.isProtected AS currentIsProtected, + notes.isDeleted AS current_isDeleted, + notes.deleteId AS current_deleteId, + notes.title AS current_title, + notes.isProtected AS current_isProtected, revisions.title, revisions.utcDateCreated AS utcDate, revisions.dateCreated AS date @@ -33,10 +33,10 @@ function register(router: Router) { UNION ALL SELECT notes.noteId, - notes.isDeleted AS currentIsDeleted, - notes.deleteId AS currentDeleteId, - notes.title AS currentTitle, - notes.isProtected AS currentIsProtected, + notes.isDeleted AS current_isDeleted, + notes.deleteId AS current_deleteId, + notes.title AS current_title, + notes.isProtected AS current_isProtected, notes.title, notes.utcDateCreated AS utcDate, notes.dateCreated AS date @@ -44,10 +44,10 @@ function register(router: Router) { UNION ALL SELECT notes.noteId, - notes.isDeleted AS currentIsDeleted, - notes.deleteId AS currentDeleteId, - notes.title AS currentTitle, - notes.isProtected AS currentIsProtected, + notes.isDeleted AS current_isDeleted, + notes.deleteId AS current_deleteId, + notes.title AS current_title, + notes.isProtected AS current_isProtected, notes.title, notes.utcDateModified AS utcDate, notes.dateModified AS date @@ -68,10 +68,10 @@ function register(router: Router) { ) SELECT notes.noteId, - notes.isDeleted AS currentIsDeleted, - notes.deleteId AS currentDeleteId, - notes.title AS currentTitle, - notes.isProtected AS currentIsProtected, + notes.isDeleted AS current_isDeleted, + notes.deleteId AS current_deleteId, + notes.title AS current_title, + notes.isProtected AS current_isProtected, revisions.title, revisions.utcDateCreated AS utcDate, revisions.dateCreated AS date @@ -81,10 +81,10 @@ function register(router: Router) { UNION ALL SELECT notes.noteId, - notes.isDeleted AS currentIsDeleted, - notes.deleteId AS currentDeleteId, - notes.title AS currentTitle, - notes.isProtected AS currentIsProtected, + notes.isDeleted AS current_isDeleted, + notes.deleteId AS current_deleteId, + notes.title AS current_title, + notes.isProtected AS current_isProtected, notes.title, notes.utcDateCreated AS utcDate, notes.dateCreated AS date @@ -93,10 +93,10 @@ function register(router: Router) { UNION ALL SELECT notes.noteId, - notes.isDeleted AS currentIsDeleted, - notes.deleteId AS currentDeleteId, - notes.title AS currentTitle, - notes.isProtected AS currentIsProtected, + notes.isDeleted AS current_isDeleted, + notes.deleteId AS current_deleteId, + notes.title AS current_title, + notes.isProtected AS current_isProtected, notes.title, notes.utcDateModified AS utcDate, notes.dateModified AS date @@ -107,17 +107,17 @@ function register(router: Router) { } for (const change of recentChanges) { - if (change.currentIsProtected) { + if (change.current_isProtected) { if (protectedSessionService.isProtectedSessionAvailable()) { change.title = protectedSessionService.decryptString(change.title) || "[protected]"; - change.currentTitle = protectedSessionService.decryptString(change.currentTitle) || "[protected]"; + change.current_title = protectedSessionService.decryptString(change.current_title) || "[protected]"; } else { - change.title = change.currentTitle = "[protected]"; + change.title = change.current_title = "[protected]"; } } - if (change.currentIsDeleted) { - const deleteId = change.currentDeleteId; + if (change.current_isDeleted) { + const deleteId = change.current_deleteId; const undeletedParentBranchIds = noteService.getUndeletedParentBranchIds(change.noteId, deleteId); diff --git a/packages/commons/src/lib/server_api.ts b/packages/commons/src/lib/server_api.ts index 7c197a7614..a15192fd28 100644 --- a/packages/commons/src/lib/server_api.ts +++ b/packages/commons/src/lib/server_api.ts @@ -56,10 +56,10 @@ export interface RevisionPojo { export interface RecentChangeRow { noteId: string; - currentIsDeleted: boolean; - currentDeleteId: string; - currentTitle: string; - currentIsProtected: boolean; + current_isDeleted: boolean; + current_deleteId: string; + current_title: string; + current_isProtected: boolean; title: string; utcDate: string; date: string; From 8c0d4cde8637ed995d8052b741728ced775b0e61 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 26 Jan 2026 23:02:14 +0200 Subject: [PATCH 005/350] feat(desktop): basic vibrancy support --- apps/client/src/desktop.ts | 4 ++++ apps/server/src/services/window.ts | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/apps/client/src/desktop.ts b/apps/client/src/desktop.ts index cb90e998f2..69fff6e96b 100644 --- a/apps/client/src/desktop.ts +++ b/apps/client/src/desktop.ts @@ -108,6 +108,10 @@ function initTransparencyEffects(style: CSSStyleDeclaration, currentWindow: Elec currentWindow.setBackgroundMaterial(foundBgMaterialOption); } } + + if (window.glob.platform === "darwin") { + currentWindow.setVibrancy("under-window"); + } } /** diff --git a/apps/server/src/services/window.ts b/apps/server/src/services/window.ts index 019ec58e8b..af18dafb89 100644 --- a/apps/server/src/services/window.ts +++ b/apps/server/src/services/window.ts @@ -241,7 +241,8 @@ function getWindowExtraOpts() { // Window effects (Mica) if (optionService.getOptionBool("backgroundEffects")) { if (isMac) { - // Vibrancy not yet supported. + extraOpts.transparent = true; + extraOpts.visualEffectState = "active"; } else if (isWindows) { extraOpts.backgroundMaterial = "auto"; } else { From 120b767a68b742d1084bd979c9cf85a504c38b4b Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 26 Jan 2026 23:10:19 +0200 Subject: [PATCH 006/350] fix(desktop): background effects not applied correctly --- apps/server/src/routes/index.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/apps/server/src/routes/index.ts b/apps/server/src/routes/index.ts index 7bc59411a0..8f96e5124b 100644 --- a/apps/server/src/routes/index.ts +++ b/apps/server/src/routes/index.ts @@ -12,7 +12,7 @@ import log from "../services/log.js"; import optionService from "../services/options.js"; import protectedSessionService from "../services/protected_session.js"; import sql from "../services/sql.js"; -import { isDev, isElectron, isWindows11 } from "../services/utils.js"; +import { isDev, isElectron, isMac, isWindows11 } from "../services/utils.js"; import { generateToken as generateCsrfToken } from "./csrf_protection.js"; @@ -43,7 +43,10 @@ export function bootstrap(req: Request, res: Response) { platform: process.platform, isElectron, hasNativeTitleBar: isElectron && nativeTitleBarVisible, - hasBackgroundEffects: isElectron && isWindows11 && !nativeTitleBarVisible && options.backgroundEffects === "true", + hasBackgroundEffects: options.backgroundEffects === "true" + && isElectron + && (isWindows11 || isMac) + && !nativeTitleBarVisible, maxEntityChangeIdAtLoad: sql.getValue("SELECT COALESCE(MAX(id), 0) FROM entity_changes"), maxEntityChangeSyncIdAtLoad: sql.getValue("SELECT COALESCE(MAX(id), 0) FROM entity_changes WHERE isSynced = 1"), instanceName: config.General ? config.General.instanceName : null, From 6856a98d50272d9d6f606ff132aa4e46cdae01d2 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 26 Jan 2026 23:21:40 +0200 Subject: [PATCH 007/350] feat(desktop): integrate vibrancy --- apps/client/src/desktop.ts | 9 +++++--- .../src/stylesheets/theme-next/shell.css | 22 +++++++++++-------- 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/apps/client/src/desktop.ts b/apps/client/src/desktop.ts index 69fff6e96b..3917dda84c 100644 --- a/apps/client/src/desktop.ts +++ b/apps/client/src/desktop.ts @@ -99,9 +99,8 @@ function initFullScreenDetection(currentWindow: Electron.BrowserWindow) { } function initTransparencyEffects(style: CSSStyleDeclaration, currentWindow: Electron.BrowserWindow) { + const material = style.getPropertyValue("--background-material"); if (window.glob.platform === "win32") { - const material = style.getPropertyValue("--background-material"); - // TriliumNextTODO: find a nicer way to make TypeScript happy – unfortunately TS did not like Array.includes here const bgMaterialOptions = ["auto", "none", "mica", "acrylic", "tabbed"] as const; const foundBgMaterialOption = bgMaterialOptions.find((bgMaterialOption) => material === bgMaterialOption); if (foundBgMaterialOption) { @@ -110,7 +109,11 @@ function initTransparencyEffects(style: CSSStyleDeclaration, currentWindow: Elec } if (window.glob.platform === "darwin") { - currentWindow.setVibrancy("under-window"); + const bgMaterialOptions = [ "popover", "tooltip", "titlebar", "selection", "menu", "sidebar", "header", "sheet", "window", "hud", "fullscreen-ui", "content", "under-window", "under-page" ] as const; + const foundBgMaterialOption = bgMaterialOptions.find((bgMaterialOption) => material === bgMaterialOption); + if (foundBgMaterialOption) { + currentWindow.setVibrancy(foundBgMaterialOption); + } } } diff --git a/apps/client/src/stylesheets/theme-next/shell.css b/apps/client/src/stylesheets/theme-next/shell.css index f81e8fcf72..483b117d52 100644 --- a/apps/client/src/stylesheets/theme-next/shell.css +++ b/apps/client/src/stylesheets/theme-next/shell.css @@ -46,7 +46,11 @@ body.background-effects.platform-win32 { --background-material: tabbed; } -body.background-effects.theme-supports-background-effects.platform-win32 { +body.background-effects.platform-darwin { + --background-material: under-window; +} + +body.background-effects.theme-supports-background-effects { --launcher-pane-horiz-border-color: var(--launcher-pane-horiz-border-color-bgfx); --launcher-pane-horiz-background-color: var(--launcher-pane-horiz-background-color-bgfx); --launcher-pane-vert-background-color: var(--launcher-pane-vert-background-color-bgfx); @@ -60,29 +64,29 @@ body.background-effects.platform-win32.layout-vertical { --background-material: mica; } -body.background-effects.theme-supports-background-effects.platform-win32.layout-vertical { +body.background-effects.theme-supports-background-effects.layout-vertical { --left-pane-background-color: var(--window-background-color-bgfx); --center-pane-background-color-bgfx: var(--center-pane-vert-layout-background-color-bgfx); --right-pane-background-color: var(--right-pane-background-color-bgfx); } -body.background-effects.theme-supports-background-effects.platform-win32.layout-horizontal { +body.background-effects.theme-supports-background-effects.layout-horizontal { --center-pane-background-color-bgfx: var(--center-pane-horiz-layout-background-color-bgfx); --gutter-color: var(--left-pane-background-color); } -body.background-effects.theme-supports-background-effects.platform-win32, -body.background-effects.theme-supports-background-effects.platform-win32 #root-widget { +body.background-effects.theme-supports-background-effects, +body.background-effects.theme-supports-background-effects #root-widget { background: var(--window-background-color-bgfx) !important; } -body.background-effects.theme-supports-background-effects.platform-win32.layout-horizontal #horizontal-main-container, -body.background-effects.theme-supports-background-effects.platform-win32.layout-vertical #vertical-main-container { +body.background-effects.theme-supports-background-effects.layout-horizontal #horizontal-main-container, +body.background-effects.theme-supports-background-effects.layout-vertical #vertical-main-container { background-color: var(--root-background); } /* Note split with background effects */ -body.background-effects.theme-supports-background-effects.platform-win32 #center-pane .note-split.bgfx { +body.background-effects.theme-supports-background-effects #center-pane .note-split.bgfx { --note-split-background-color: var(--center-pane-background-color-bgfx); } @@ -1054,7 +1058,7 @@ body.layout-horizontal .tab-row-widget-container { overflow: hidden; } -body.desktop:not(.background-effects.platform-win32) #root-widget.horizontal-layout { +body.desktop:not(.background-effects) #root-widget.horizontal-layout { background-color: var(--root-background) !important; } From 3c8a066f7605a4c2582a65f544b5bcdd3c7ed0b9 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 26 Jan 2026 23:28:29 +0200 Subject: [PATCH 008/350] feat(desktop): handle both vertical and horizontal layouts --- .../src/stylesheets/theme-next/shell.css | 25 +++++++++++++------ 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/apps/client/src/stylesheets/theme-next/shell.css b/apps/client/src/stylesheets/theme-next/shell.css index 483b117d52..1dd2432f72 100644 --- a/apps/client/src/stylesheets/theme-next/shell.css +++ b/apps/client/src/stylesheets/theme-next/shell.css @@ -40,14 +40,27 @@ body.mobile { /* #region Mica */ +/* Quirk: --background-material is read before "theme-supports-background-effects" class + * is applied. Apply the matterial even if the theme doesn't support it. */ body.background-effects.platform-win32 { - /* Quirk: --background-material is read before "theme-supports-background-effects" class - * is applied. Apply the matterial even if the theme doesn't support it. */ - --background-material: tabbed; + &.layout-vertical { + --background-material: mica; + } + + &.layout-horizontal { + --background-material: tabbed; + } } body.background-effects.platform-darwin { - --background-material: under-window; + /** Reference: https://developer.apple.com/documentation/appkit/nsvisualeffectview?preferredLanguage=objc **/ + &.layout-vertical { + --background-material: under-window; + } + + &.layout-horizontal { + --background-material: header; + } } body.background-effects.theme-supports-background-effects { @@ -60,10 +73,6 @@ body.background-effects.theme-supports-background-effects { --root-background: transparent; } -body.background-effects.platform-win32.layout-vertical { - --background-material: mica; -} - body.background-effects.theme-supports-background-effects.layout-vertical { --left-pane-background-color: var(--window-background-color-bgfx); --center-pane-background-color-bgfx: var(--center-pane-vert-layout-background-color-bgfx); From 51131433d3219794c7205d643dd16f06e133b902 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 27 Jan 2026 15:56:57 +0200 Subject: [PATCH 009/350] chore(client): address requested changes --- apps/client/src/desktop.ts | 2 +- apps/client/src/stylesheets/theme-next/shell.css | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/client/src/desktop.ts b/apps/client/src/desktop.ts index 3917dda84c..bba3b6b90b 100644 --- a/apps/client/src/desktop.ts +++ b/apps/client/src/desktop.ts @@ -99,7 +99,7 @@ function initFullScreenDetection(currentWindow: Electron.BrowserWindow) { } function initTransparencyEffects(style: CSSStyleDeclaration, currentWindow: Electron.BrowserWindow) { - const material = style.getPropertyValue("--background-material"); + const material = style.getPropertyValue("--background-material").trim(); if (window.glob.platform === "win32") { const bgMaterialOptions = ["auto", "none", "mica", "acrylic", "tabbed"] as const; const foundBgMaterialOption = bgMaterialOptions.find((bgMaterialOption) => material === bgMaterialOption); diff --git a/apps/client/src/stylesheets/theme-next/shell.css b/apps/client/src/stylesheets/theme-next/shell.css index 1dd2432f72..1b131a6a2b 100644 --- a/apps/client/src/stylesheets/theme-next/shell.css +++ b/apps/client/src/stylesheets/theme-next/shell.css @@ -41,7 +41,7 @@ body.mobile { /* #region Mica */ /* Quirk: --background-material is read before "theme-supports-background-effects" class - * is applied. Apply the matterial even if the theme doesn't support it. */ + * is applied. Apply the material even if the theme doesn't support it. */ body.background-effects.platform-win32 { &.layout-vertical { --background-material: mica; From a1cb3b8371ccd7e892cd6ad3b842cd1077a11afc Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 27 Jan 2026 16:42:52 +0200 Subject: [PATCH 010/350] style(desktop): change material for horizontal layout --- apps/client/src/stylesheets/theme-next/shell.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/client/src/stylesheets/theme-next/shell.css b/apps/client/src/stylesheets/theme-next/shell.css index 1b131a6a2b..7ff132e1af 100644 --- a/apps/client/src/stylesheets/theme-next/shell.css +++ b/apps/client/src/stylesheets/theme-next/shell.css @@ -41,7 +41,7 @@ body.mobile { /* #region Mica */ /* Quirk: --background-material is read before "theme-supports-background-effects" class - * is applied. Apply the material even if the theme doesn't support it. */ + * is applied. Apply the matterial even if the theme doesn't support it. */ body.background-effects.platform-win32 { &.layout-vertical { --background-material: mica; @@ -59,7 +59,7 @@ body.background-effects.platform-darwin { } &.layout-horizontal { - --background-material: header; + --background-material: hud; } } From ff46493775c309a717e3fd1599136b4d0d396321 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 27 Jan 2026 23:17:38 +0200 Subject: [PATCH 011/350] feat(options): add platform indicator --- apps/client/src/widgets/react/Icon.tsx | 2 +- .../type_widgets/options/appearance.tsx | 21 +++++++----- .../options/components/PlatformIndicator.css | 5 +++ .../options/components/PlatformIndicator.tsx | 34 +++++++++++++++++++ 4 files changed, 53 insertions(+), 9 deletions(-) create mode 100644 apps/client/src/widgets/type_widgets/options/components/PlatformIndicator.css create mode 100644 apps/client/src/widgets/type_widgets/options/components/PlatformIndicator.tsx diff --git a/apps/client/src/widgets/react/Icon.tsx b/apps/client/src/widgets/react/Icon.tsx index 8d12548334..4bae69c460 100644 --- a/apps/client/src/widgets/react/Icon.tsx +++ b/apps/client/src/widgets/react/Icon.tsx @@ -1,7 +1,7 @@ import clsx from "clsx"; import { HTMLAttributes } from "preact"; -interface IconProps extends Pick, "className" | "onClick"> { +interface IconProps extends Pick, "className" | "onClick" | "title"> { icon?: string; className?: string; } diff --git a/apps/client/src/widgets/type_widgets/options/appearance.tsx b/apps/client/src/widgets/type_widgets/options/appearance.tsx index fd8412a69a..3cff63ed66 100644 --- a/apps/client/src/widgets/type_widgets/options/appearance.tsx +++ b/apps/client/src/widgets/type_widgets/options/appearance.tsx @@ -18,6 +18,7 @@ import FormTextBox, { FormTextBoxWithUnit } from "../../react/FormTextBox"; import { useTriliumOption, useTriliumOptionBool } from "../../react/hooks"; import Icon from "../../react/Icon"; import OptionsSection from "./components/OptionsSection"; +import PlatformIndicator from "./components/PlatformIndicator"; import RadioWithIllustration from "./components/RadioWithIllustration"; import RelatedSettings from "./components/RelatedSettings"; @@ -174,13 +175,13 @@ function LayoutIllustration({ isNewLayout }: { isNewLayout?: boolean }) { ) : ( -
-
- - Title - +
+
+ + Title + +
-
)} {!isNewLayout &&
@@ -192,7 +193,7 @@ function LayoutIllustration({ isNewLayout }: { isNewLayout?: boolean }) {
-
+
} @@ -356,7 +357,11 @@ function ElectronIntegration() { + {t("electron_integration.background-effects")} + {" "} + + } currentValue={backgroundEffects} onChange={setBackgroundEffects} disabled={nativeTitleBarVisible} /> diff --git a/apps/client/src/widgets/type_widgets/options/components/PlatformIndicator.css b/apps/client/src/widgets/type_widgets/options/components/PlatformIndicator.css new file mode 100644 index 0000000000..e91e873559 --- /dev/null +++ b/apps/client/src/widgets/type_widgets/options/components/PlatformIndicator.css @@ -0,0 +1,5 @@ +.platform-indicator { + display: inline-flex; + gap: 0.25em; + color: var(--muted-text-color); +} diff --git a/apps/client/src/widgets/type_widgets/options/components/PlatformIndicator.tsx b/apps/client/src/widgets/type_widgets/options/components/PlatformIndicator.tsx new file mode 100644 index 0000000000..bb95e8d9ce --- /dev/null +++ b/apps/client/src/widgets/type_widgets/options/components/PlatformIndicator.tsx @@ -0,0 +1,34 @@ +import "./PlatformIndicator.css"; + +import { useRef } from "preact/hooks"; + +import { t } from "../../../../services/i18n"; +import { useStaticTooltip } from "../../../react/hooks"; +import Icon from "../../../react/Icon"; + +interface PlatformIndicatorProps { + windows?: boolean | "11"; + mac: boolean; +} + +export default function PlatformIndicator({ windows, mac }: PlatformIndicatorProps) { + const containerRef = useRef(null); + useStaticTooltip(containerRef, { + selector: "span", + animation: false, + title() { return this.title; }, + }); + + return ( +
+ {windows && } + {mac && } +
+ ); +} From 8fc889ae081668042339b183bf6be59125d07ba6 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 27 Jan 2026 23:22:31 +0200 Subject: [PATCH 012/350] chore(options): change description --- apps/client/src/translations/en/translation.json | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/apps/client/src/translations/en/translation.json b/apps/client/src/translations/en/translation.json index f112508c1e..5637ab8473 100644 --- a/apps/client/src/translations/en/translation.json +++ b/apps/client/src/translations/en/translation.json @@ -1958,8 +1958,8 @@ "desktop-application": "Desktop Application", "native-title-bar": "Native title bar", "native-title-bar-description": "For Windows and macOS, keeping the native title bar off makes the application look more compact. On Linux, keeping the native title bar on integrates better with the rest of the system.", - "background-effects": "Enable background effects (Windows 11 only)", - "background-effects-description": "The Mica effect adds a blurred, stylish background to app windows, creating depth and a modern look. \"Native title bar\" must be disabled.", + "background-effects": "Enable background effects", + "background-effects-description": "Adds a blurred, stylish background to app windows, creating depth and a modern look. \"Native title bar\" must be disabled.", "restart-app-button": "Restart the application to view the changes", "zoom-factor": "Zoom factor" }, @@ -2267,5 +2267,8 @@ "pages_other": "{{count}} pages", "pages_alt": "Page {{pageNumber}}", "pages_loading": "Loading..." + }, + "platform_indicator": { + "available_on": "Available on {{platform}}" } } From 5d5947f676d98333ab3e5db9f9fc6a6e3d8daac4 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 27 Jan 2026 23:31:05 +0200 Subject: [PATCH 013/350] feat(call_to_action): enable background effects CTA on macOS --- apps/client/src/translations/en/translation.json | 2 +- .../src/widgets/dialogs/call_to_action_definitions.ts | 10 +++------- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/apps/client/src/translations/en/translation.json b/apps/client/src/translations/en/translation.json index 5637ab8473..88ed7ac752 100644 --- a/apps/client/src/translations/en/translation.json +++ b/apps/client/src/translations/en/translation.json @@ -2152,7 +2152,7 @@ "next_theme_message": "You are currently using the legacy theme, would you like to try the new theme?", "next_theme_button": "Try the new theme", "background_effects_title": "Background effects are now stable", - "background_effects_message": "On Windows devices, background effects are now fully stable. The background effects adds a touch of color to the user interface by blurring the background behind it. This technique is also used in other applications such as Windows Explorer.", + "background_effects_message": "On Windows and macOS devices, background effects are now stable. The background effects adds a touch of color to the user interface by blurring the background behind it.", "background_effects_button": "Enable background effects", "new_layout_title": "New layout", "new_layout_message": "We’ve introduced a modernized layout for Trilium. The ribbon has been removed and seamlessly integrated into the main interface, with a new status bar and expandable sections (such as promoted attributes) taking over key functions.\n\nThe new layout is enabled by default, and can be temporarily disabled via Options → Appearance.", diff --git a/apps/client/src/widgets/dialogs/call_to_action_definitions.ts b/apps/client/src/widgets/dialogs/call_to_action_definitions.ts index d783b1dbba..afaecbdfa3 100644 --- a/apps/client/src/widgets/dialogs/call_to_action_definitions.ts +++ b/apps/client/src/widgets/dialogs/call_to_action_definitions.ts @@ -1,7 +1,7 @@ import appContext from "../../components/app_context"; import { t } from "../../services/i18n"; import options from "../../services/options"; -import utils from "../../services/utils"; +import utils, { isMac } from "../../services/utils"; /** * A "call-to-action" is an interactive message for the user, generally to present new features. @@ -41,10 +41,6 @@ export interface CallToAction { }[]; } -function isNextTheme() { - return [ "next", "next-light", "next-dark" ].includes(options.get("theme")); -} - const CALL_TO_ACTIONS: CallToAction[] = [ { id: "new_layout", @@ -63,7 +59,7 @@ const CALL_TO_ACTIONS: CallToAction[] = [ id: "background_effects", title: t("call_to_action.background_effects_title"), message: t("call_to_action.background_effects_message"), - enabled: () => false, + enabled: () => (isMac() && !options.is("backgroundEffects")), buttons: [ { text: t("call_to_action.background_effects_button"), @@ -78,7 +74,7 @@ const CALL_TO_ACTIONS: CallToAction[] = [ id: "next_theme", title: t("call_to_action.next_theme_title"), message: t("call_to_action.next_theme_message"), - enabled: () => !isNextTheme(), + enabled: () => ![ "next", "next-light", "next-dark" ].includes(options.get("theme")), buttons: [ { text: t("call_to_action.next_theme_button"), From d8d91451c84220b863e41ddf786ace603a0c2cf7 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Fri, 30 Jan 2026 08:11:32 +0200 Subject: [PATCH 014/350] e2e(server): fix some flakiness in support app --- apps/server-e2e/src/support/app.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/server-e2e/src/support/app.ts b/apps/server-e2e/src/support/app.ts index 86cbb855a0..da229607b8 100644 --- a/apps/server-e2e/src/support/app.ts +++ b/apps/server-e2e/src/support/app.ts @@ -59,7 +59,7 @@ export default class App { // Wait for the page to load. if (url === "/") { - await expect(this.page.locator(".tree")).toContainText("Trilium Integration Test"); + await expect(this.page.locator(".tree", { hasText: "Trilium Integration Test" })).toBeVisible(); if (!preserveTabs) { await this.closeAllTabs(); } @@ -76,7 +76,7 @@ export default class App { const suggestionSelector = resultsSelector.locator(".aa-suggestion") .nth(1); // Select the second one (best candidate), as the first one is "Create a new note" await expect(suggestionSelector).toContainText(noteTitle); - suggestionSelector.click(); + await suggestionSelector.click(); } async goToSettings() { From e669d5041baa20b581030ea31b557df823037bf5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 30 Jan 2026 06:44:20 +0000 Subject: [PATCH 015/350] chore(deps): update dependency @preact/preset-vite to v2.10.3 --- apps/website/package.json | 2 +- pnpm-lock.yaml | 83 ++++++++------------------------------- 2 files changed, 18 insertions(+), 67 deletions(-) diff --git a/apps/website/package.json b/apps/website/package.json index abf3284937..a5781b03a9 100644 --- a/apps/website/package.json +++ b/apps/website/package.json @@ -17,7 +17,7 @@ "react-i18next": "16.5.4" }, "devDependencies": { - "@preact/preset-vite": "2.10.2", + "@preact/preset-vite": "2.10.3", "eslint": "9.39.2", "eslint-config-preact": "2.0.0", "typescript": "5.9.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 42e3e02a6a..10d3ade803 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -852,8 +852,8 @@ importers: version: 16.5.4(i18next@25.8.0(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) devDependencies: '@preact/preset-vite': - specifier: 2.10.2 - version: 2.10.2(@babel/core@7.28.0)(preact@10.28.2)(vite@7.3.1(@types/node@24.10.9)(jiti@2.6.1)(less@4.1.3)(lightningcss@1.31.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)) + specifier: 2.10.3 + version: 2.10.3(@babel/core@7.28.0)(preact@10.28.2)(rollup@4.52.0)(vite@7.3.1(@types/node@24.10.9)(jiti@2.6.1)(less@4.1.3)(lightningcss@1.31.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)) eslint: specifier: 9.39.2 version: 9.39.2(jiti@2.6.1) @@ -1762,18 +1762,10 @@ packages: resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.28.0': - resolution: {integrity: sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==} - engines: {node: '>=6.9.0'} - '@babel/traverse@7.28.4': resolution: {integrity: sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==} engines: {node: '>=6.9.0'} - '@babel/types@7.28.1': - resolution: {integrity: sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==} - engines: {node: '>=6.9.0'} - '@babel/types@7.28.4': resolution: {integrity: sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==} engines: {node: '>=6.9.0'} @@ -4259,8 +4251,8 @@ packages: '@popperjs/core@2.11.8': resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} - '@preact/preset-vite@2.10.2': - resolution: {integrity: sha512-K9wHlJOtkE+cGqlyQ5v9kL3Ge0Ql4LlIZjkUTL+1zf3nNdF88F9UZN6VTV8jdzBX9Fl7WSzeNMSDG7qECPmSmg==} + '@preact/preset-vite@2.10.3': + resolution: {integrity: sha512-1SiS+vFItpkNdBs7q585PSAIln0wBeBdcpJYbzPs1qipsb/FssnkUioNXuRsb8ZnU8YEQHr+3v8+/mzWSnTQmg==} peerDependencies: '@babel/core': 7.x vite: 2.x || 3.x || 4.x || 5.x || 6.x || 7.x @@ -4290,12 +4282,6 @@ packages: preact: 10.28.2 vite: '>=2.0.0' - '@prefresh/vite@2.4.8': - resolution: {integrity: sha512-H7vlo9UbJInuRbZhRQrdgVqLP7qKjDoX7TgYWWwIVhEHeHO0hZ4zyicvwBrV1wX5A3EPOmArgRkUaN7cPI2VXQ==} - peerDependencies: - preact: 10.28.2 - vite: '>=2.0.0' - '@promptbook/utils@0.69.5': resolution: {integrity: sha512-xm5Ti/Hp3o4xHrsK9Yy3MS6KbDxYbq485hDsFvxqaNA7equHLPdo8H8faTitTeb14QCDfLW4iwCxdVYu5sn6YQ==} @@ -7818,15 +7804,6 @@ packages: supports-color: optional: true - debug@4.4.1: - resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - debug@4.4.3: resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} engines: {node: '>=6.0'} @@ -15711,7 +15688,7 @@ snapshots: '@babel/helper-module-imports@7.27.1': dependencies: - '@babel/traverse': 7.28.0 + '@babel/traverse': 7.28.4 '@babel/types': 7.28.5 transitivePeerDependencies: - supports-color @@ -15772,7 +15749,7 @@ snapshots: '@babel/helper-module-imports': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.0) - '@babel/types': 7.28.1 + '@babel/types': 7.28.5 transitivePeerDependencies: - supports-color @@ -15786,18 +15763,6 @@ snapshots: '@babel/parser': 7.28.5 '@babel/types': 7.28.5 - '@babel/traverse@7.28.0': - dependencies: - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.3 - '@babel/helper-globals': 7.28.0 - '@babel/parser': 7.28.5 - '@babel/template': 7.27.2 - '@babel/types': 7.28.5 - debug: 4.4.3(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - '@babel/traverse@7.28.4': dependencies: '@babel/code-frame': 7.27.1 @@ -15810,11 +15775,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/types@7.28.1': - dependencies: - '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 - '@babel/types@7.28.4': dependencies: '@babel/helper-string-parser': 7.27.1 @@ -16287,6 +16247,8 @@ snapshots: '@ckeditor/ckeditor5-table': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-emoji@47.4.0': dependencies: @@ -16432,6 +16394,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-horizontal-line@47.4.0': dependencies: @@ -16614,6 +16578,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 '@ckeditor/ckeditor5-widget': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-mention@47.4.0(patch_hash=5981fb59ba35829e4dff1d39cf771000f8a8fdfa7a34b51d8af9549541f2d62d)': dependencies: @@ -19425,20 +19391,21 @@ snapshots: '@popperjs/core@2.11.8': {} - '@preact/preset-vite@2.10.2(@babel/core@7.28.0)(preact@10.28.2)(vite@7.3.1(@types/node@24.10.9)(jiti@2.6.1)(less@4.1.3)(lightningcss@1.31.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1))': + '@preact/preset-vite@2.10.3(@babel/core@7.28.0)(preact@10.28.2)(rollup@4.52.0)(vite@7.3.1(@types/node@24.10.9)(jiti@2.6.1)(less@4.1.3)(lightningcss@1.31.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1))': dependencies: '@babel/core': 7.28.0 '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.28.0) '@babel/plugin-transform-react-jsx-development': 7.27.1(@babel/core@7.28.0) - '@prefresh/vite': 2.4.8(preact@10.28.2)(vite@7.3.1(@types/node@24.10.9)(jiti@2.6.1)(less@4.1.3)(lightningcss@1.31.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)) - '@rollup/pluginutils': 4.2.1 + '@prefresh/vite': 2.4.11(preact@10.28.2)(vite@7.3.1(@types/node@24.10.9)(jiti@2.6.1)(less@4.1.3)(lightningcss@1.31.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)) + '@rollup/pluginutils': 5.1.4(rollup@4.52.0) babel-plugin-transform-hook-names: 1.0.2(@babel/core@7.28.0) - debug: 4.4.1 + debug: 4.4.3(supports-color@8.1.1) picocolors: 1.1.1 vite: 7.3.1(@types/node@24.10.9)(jiti@2.6.1)(less@4.1.3)(lightningcss@1.31.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1) vite-prerender-plugin: 0.5.11(vite@7.3.1(@types/node@24.10.9)(jiti@2.6.1)(less@4.1.3)(lightningcss@1.31.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1)) transitivePeerDependencies: - preact + - rollup - supports-color '@preact/signals-core@1.12.2': {} @@ -19468,18 +19435,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@prefresh/vite@2.4.8(preact@10.28.2)(vite@7.3.1(@types/node@24.10.9)(jiti@2.6.1)(less@4.1.3)(lightningcss@1.31.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1))': - dependencies: - '@babel/core': 7.28.0 - '@prefresh/babel-plugin': 0.5.2 - '@prefresh/core': 1.5.5(preact@10.28.2) - '@prefresh/utils': 1.2.1 - '@rollup/pluginutils': 4.2.1 - preact: 10.28.2 - vite: 7.3.1(@types/node@24.10.9)(jiti@2.6.1)(less@4.1.3)(lightningcss@1.31.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1) - transitivePeerDependencies: - - supports-color - '@promptbook/utils@0.69.5': dependencies: spacetrim: 0.11.59 @@ -23739,10 +23694,6 @@ snapshots: dependencies: ms: 2.1.3 - debug@4.4.1: - dependencies: - ms: 2.1.3 - debug@4.4.3(supports-color@8.1.1): dependencies: ms: 2.1.3 From d281fb7065a914e6e6803df20f110eec19772fcd Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 30 Jan 2026 06:45:09 +0000 Subject: [PATCH 016/350] chore(deps): update dependency @smithy/middleware-retry to v4.4.29 --- packages/ckeditor5/package.json | 2 +- pnpm-lock.yaml | 116 +++++++++++++++++--------------- 2 files changed, 62 insertions(+), 56 deletions(-) diff --git a/packages/ckeditor5/package.json b/packages/ckeditor5/package.json index 8b16b2d86f..d31e3a5ff1 100644 --- a/packages/ckeditor5/package.json +++ b/packages/ckeditor5/package.json @@ -16,7 +16,7 @@ "ckeditor5-premium-features": "47.4.0" }, "devDependencies": { - "@smithy/middleware-retry": "4.4.27", + "@smithy/middleware-retry": "4.4.29", "@types/jquery": "3.5.33" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 42e3e02a6a..c1f8b62072 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -901,8 +901,8 @@ importers: version: 47.4.0(bufferutil@4.0.9)(ckeditor5@47.4.0)(utf-8-validate@6.0.5) devDependencies: '@smithy/middleware-retry': - specifier: 4.4.27 - version: 4.4.27 + specifier: 4.4.29 + version: 4.4.29 '@types/jquery': specifier: 3.5.33 version: 3.5.33 @@ -5040,14 +5040,14 @@ packages: resolution: {integrity: sha512-prmU+rDddxHOH0oNcwemL+SwnzcG65sBF2yXRO7aeXIn/xTlq2pX7JLVbkBnVLowHLg4/OL4+jBmv9hVrVGS+w==} engines: {node: '>=18.0.0'} - '@smithy/core@3.21.0': - resolution: {integrity: sha512-bg2TfzgsERyETAxc/Ims/eJX8eAnIeTi4r4LHpMpfF/2NyO6RsWis0rjKcCPaGksljmOb23BZRiCeT/3NvwkXw==} - engines: {node: '>=18.0.0'} - '@smithy/core@3.21.1': resolution: {integrity: sha512-NUH8R4O6FkN8HKMojzbGg/5pNjsfTjlMmeFclyPfPaXXUrbr5TzhWgbf7t92wfrpCHRgpjyz7ffASIS3wX28aA==} engines: {node: '>=18.0.0'} + '@smithy/core@3.22.0': + resolution: {integrity: sha512-6vjCHD6vaY8KubeNw2Fg3EK0KLGQYdldG4fYgQmA0xSW0dJ8G2xFhSOdrlUakWVoP5JuWHtFODg3PNd/DN3FDA==} + engines: {node: '>=18.0.0'} + '@smithy/credential-provider-imds@4.0.6': resolution: {integrity: sha512-hKMWcANhUiNbCJouYkZ9V3+/Qf9pteR1dnwgdyzR09R4ODEYx8BbUysHwRSyex4rZ9zapddZhLFTnT4ZijR4pw==} engines: {node: '>=18.0.0'} @@ -5096,16 +5096,16 @@ packages: resolution: {integrity: sha512-F7gDyfI2BB1Kc+4M6rpuOLne5LOcEknH1n6UQB69qv+HucXBR1rkzXBnQTB2q46sFy1PM/zuSJOB532yc8bg3w==} engines: {node: '>=18.0.0'} - '@smithy/middleware-endpoint@4.4.10': - resolution: {integrity: sha512-kwWpNltpxrvPabnjEFvwSmA+66l6s2ReCvgVSzW/z92LU4T28fTdgZ18IdYRYOrisu2NMQ0jUndRScbO65A/zg==} - engines: {node: '>=18.0.0'} - '@smithy/middleware-endpoint@4.4.11': resolution: {integrity: sha512-/WqsrycweGGfb9sSzME4CrsuayjJF6BueBmkKlcbeU5q18OhxRrvvKlmfw3tpDsK5ilx2XUJvoukwxHB0nHs/Q==} engines: {node: '>=18.0.0'} - '@smithy/middleware-retry@4.4.27': - resolution: {integrity: sha512-xFUYCGRVsfgiN5EjsJJSzih9+yjStgMTCLANPlf0LVQkPDYCe0hz97qbdTZosFOiYlGBlHYityGRxrQ/hxhfVQ==} + '@smithy/middleware-endpoint@4.4.12': + resolution: {integrity: sha512-9JMKHVJtW9RysTNjcBZQHDwB0p3iTP6B1IfQV4m+uCevkVd/VuLgwfqk5cnI4RHcp4cPwoIvxQqN4B1sxeHo8Q==} + engines: {node: '>=18.0.0'} + + '@smithy/middleware-retry@4.4.29': + resolution: {integrity: sha512-bmTn75a4tmKRkC5w61yYQLb3DmxNzB8qSVu9SbTYqW6GAL0WXO2bDZuMAn/GJSbOdHEdjZvWxe+9Kk015bw6Cg==} engines: {node: '>=18.0.0'} '@smithy/middleware-serde@4.2.9': @@ -5152,14 +5152,14 @@ packages: resolution: {integrity: sha512-d3+U/VpX7a60seHziWnVZOHuEgJlclufjkS6zhXvxcJgkJq4UWdH5eOBLzHRMx6gXjsdT9h6lfpmLzbrdupHgQ==} engines: {node: '>=18.0.0'} - '@smithy/smithy-client@4.10.11': - resolution: {integrity: sha512-6o804SCyHGMXAb5mFJ+iTy9kVKv7F91a9szN0J+9X6p8A0NrdpUxdaC57aye2ipQkP2C4IAqETEpGZ0Zj77Haw==} - engines: {node: '>=18.0.0'} - '@smithy/smithy-client@4.10.12': resolution: {integrity: sha512-VKO/HKoQ5OrSHW6AJUmEnUKeXI1/5LfCwO9cwyao7CmLvGnZeM1i36Lyful3LK1XU7HwTVieTqO1y2C/6t3qtA==} engines: {node: '>=18.0.0'} + '@smithy/smithy-client@4.11.1': + resolution: {integrity: sha512-SERgNg5Z1U+jfR6/2xPYjSEHY1t3pyTHC/Ma3YQl6qWtmiL42bvNId3W/oMUWIwu7ekL2FMPdqAmwbQegM7HeQ==} + engines: {node: '>=18.0.0'} + '@smithy/types@4.12.0': resolution: {integrity: sha512-9YcuJVTOBDjg9LWo23Qp0lTQ3D7fQsQtwle0jVfpbUHy9qBwCEgKuVH4FqFB3VYu0nwdHKiEMA+oXz7oV8X1kw==} engines: {node: '>=18.0.0'} @@ -15323,7 +15323,7 @@ snapshots: '@aws-sdk/util-user-agent-browser': 3.821.0 '@aws-sdk/util-user-agent-node': 3.823.0 '@smithy/config-resolver': 4.1.4 - '@smithy/core': 3.21.0 + '@smithy/core': 3.21.1 '@smithy/eventstream-serde-browser': 4.0.4 '@smithy/eventstream-serde-config-resolver': 4.1.2 '@smithy/eventstream-serde-node': 4.0.4 @@ -15331,14 +15331,14 @@ snapshots: '@smithy/hash-node': 4.0.4 '@smithy/invalid-dependency': 4.0.4 '@smithy/middleware-content-length': 4.0.4 - '@smithy/middleware-endpoint': 4.4.10 - '@smithy/middleware-retry': 4.4.27 + '@smithy/middleware-endpoint': 4.4.11 + '@smithy/middleware-retry': 4.4.29 '@smithy/middleware-serde': 4.2.9 '@smithy/middleware-stack': 4.2.8 '@smithy/node-config-provider': 4.3.8 '@smithy/node-http-handler': 4.4.8 '@smithy/protocol-http': 5.3.8 - '@smithy/smithy-client': 4.10.11 + '@smithy/smithy-client': 4.10.12 '@smithy/types': 4.12.0 '@smithy/url-parser': 4.2.8 '@smithy/util-base64': 4.3.0 @@ -15372,19 +15372,19 @@ snapshots: '@aws-sdk/util-user-agent-browser': 3.821.0 '@aws-sdk/util-user-agent-node': 3.823.0 '@smithy/config-resolver': 4.1.4 - '@smithy/core': 3.21.0 + '@smithy/core': 3.21.1 '@smithy/fetch-http-handler': 5.3.9 '@smithy/hash-node': 4.0.4 '@smithy/invalid-dependency': 4.0.4 '@smithy/middleware-content-length': 4.0.4 - '@smithy/middleware-endpoint': 4.4.10 - '@smithy/middleware-retry': 4.4.27 + '@smithy/middleware-endpoint': 4.4.11 + '@smithy/middleware-retry': 4.4.29 '@smithy/middleware-serde': 4.2.9 '@smithy/middleware-stack': 4.2.8 '@smithy/node-config-provider': 4.3.8 '@smithy/node-http-handler': 4.4.8 '@smithy/protocol-http': 5.3.8 - '@smithy/smithy-client': 4.10.11 + '@smithy/smithy-client': 4.10.12 '@smithy/types': 4.12.0 '@smithy/url-parser': 4.2.8 '@smithy/util-base64': 4.3.0 @@ -15404,12 +15404,12 @@ snapshots: dependencies: '@aws-sdk/types': 3.821.0 '@aws-sdk/xml-builder': 3.821.0 - '@smithy/core': 3.21.0 + '@smithy/core': 3.21.1 '@smithy/node-config-provider': 4.3.8 '@smithy/property-provider': 4.2.8 '@smithy/protocol-http': 5.3.8 '@smithy/signature-v4': 5.1.2 - '@smithy/smithy-client': 4.10.11 + '@smithy/smithy-client': 4.10.12 '@smithy/types': 4.12.0 '@smithy/util-base64': 4.3.0 '@smithy/util-body-length-browser': 4.2.0 @@ -15434,7 +15434,7 @@ snapshots: '@smithy/node-http-handler': 4.4.8 '@smithy/property-provider': 4.2.8 '@smithy/protocol-http': 5.3.8 - '@smithy/smithy-client': 4.10.11 + '@smithy/smithy-client': 4.10.12 '@smithy/types': 4.12.0 '@smithy/util-stream': 4.5.10 tslib: 2.8.1 @@ -15546,7 +15546,7 @@ snapshots: '@aws-sdk/core': 3.823.0 '@aws-sdk/types': 3.821.0 '@aws-sdk/util-endpoints': 3.821.0 - '@smithy/core': 3.21.0 + '@smithy/core': 3.21.1 '@smithy/protocol-http': 5.3.8 '@smithy/types': 4.12.0 tslib: 2.8.1 @@ -15566,19 +15566,19 @@ snapshots: '@aws-sdk/util-user-agent-browser': 3.821.0 '@aws-sdk/util-user-agent-node': 3.823.0 '@smithy/config-resolver': 4.1.4 - '@smithy/core': 3.21.0 + '@smithy/core': 3.21.1 '@smithy/fetch-http-handler': 5.3.9 '@smithy/hash-node': 4.0.4 '@smithy/invalid-dependency': 4.0.4 '@smithy/middleware-content-length': 4.0.4 - '@smithy/middleware-endpoint': 4.4.10 - '@smithy/middleware-retry': 4.4.27 + '@smithy/middleware-endpoint': 4.4.11 + '@smithy/middleware-retry': 4.4.29 '@smithy/middleware-serde': 4.2.9 '@smithy/middleware-stack': 4.2.8 '@smithy/node-config-provider': 4.3.8 '@smithy/node-http-handler': 4.4.8 '@smithy/protocol-http': 5.3.8 - '@smithy/smithy-client': 4.10.11 + '@smithy/smithy-client': 4.10.12 '@smithy/types': 4.12.0 '@smithy/url-parser': 4.2.8 '@smithy/util-base64': 4.3.0 @@ -16287,6 +16287,8 @@ snapshots: '@ckeditor/ckeditor5-table': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-emoji@47.4.0': dependencies: @@ -16432,6 +16434,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-horizontal-line@47.4.0': dependencies: @@ -16614,6 +16618,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 '@ckeditor/ckeditor5-widget': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-mention@47.4.0(patch_hash=5981fb59ba35829e4dff1d39cf771000f8a8fdfa7a34b51d8af9549541f2d62d)': dependencies: @@ -20227,7 +20233,7 @@ snapshots: '@smithy/util-middleware': 4.2.8 tslib: 2.8.1 - '@smithy/core@3.21.0': + '@smithy/core@3.21.1': dependencies: '@smithy/middleware-serde': 4.2.9 '@smithy/protocol-http': 5.3.8 @@ -20240,7 +20246,7 @@ snapshots: '@smithy/uuid': 1.1.0 tslib: 2.8.1 - '@smithy/core@3.21.1': + '@smithy/core@3.22.0': dependencies: '@smithy/middleware-serde': 4.2.9 '@smithy/protocol-http': 5.3.8 @@ -20325,17 +20331,6 @@ snapshots: '@smithy/types': 4.12.0 tslib: 2.8.1 - '@smithy/middleware-endpoint@4.4.10': - dependencies: - '@smithy/core': 3.21.0 - '@smithy/middleware-serde': 4.2.9 - '@smithy/node-config-provider': 4.3.8 - '@smithy/shared-ini-file-loader': 4.4.3 - '@smithy/types': 4.12.0 - '@smithy/url-parser': 4.2.8 - '@smithy/util-middleware': 4.2.8 - tslib: 2.8.1 - '@smithy/middleware-endpoint@4.4.11': dependencies: '@smithy/core': 3.21.1 @@ -20347,12 +20342,23 @@ snapshots: '@smithy/util-middleware': 4.2.8 tslib: 2.8.1 - '@smithy/middleware-retry@4.4.27': + '@smithy/middleware-endpoint@4.4.12': + dependencies: + '@smithy/core': 3.22.0 + '@smithy/middleware-serde': 4.2.9 + '@smithy/node-config-provider': 4.3.8 + '@smithy/shared-ini-file-loader': 4.4.3 + '@smithy/types': 4.12.0 + '@smithy/url-parser': 4.2.8 + '@smithy/util-middleware': 4.2.8 + tslib: 2.8.1 + + '@smithy/middleware-retry@4.4.29': dependencies: '@smithy/node-config-provider': 4.3.8 '@smithy/protocol-http': 5.3.8 '@smithy/service-error-classification': 4.2.8 - '@smithy/smithy-client': 4.10.12 + '@smithy/smithy-client': 4.11.1 '@smithy/types': 4.12.0 '@smithy/util-middleware': 4.2.8 '@smithy/util-retry': 4.2.8 @@ -20426,20 +20432,20 @@ snapshots: '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 - '@smithy/smithy-client@4.10.11': + '@smithy/smithy-client@4.10.12': dependencies: - '@smithy/core': 3.21.0 - '@smithy/middleware-endpoint': 4.4.10 + '@smithy/core': 3.21.1 + '@smithy/middleware-endpoint': 4.4.11 '@smithy/middleware-stack': 4.2.8 '@smithy/protocol-http': 5.3.8 '@smithy/types': 4.12.0 '@smithy/util-stream': 4.5.10 tslib: 2.8.1 - '@smithy/smithy-client@4.10.12': + '@smithy/smithy-client@4.11.1': dependencies: - '@smithy/core': 3.21.1 - '@smithy/middleware-endpoint': 4.4.11 + '@smithy/core': 3.22.0 + '@smithy/middleware-endpoint': 4.4.12 '@smithy/middleware-stack': 4.2.8 '@smithy/protocol-http': 5.3.8 '@smithy/types': 4.12.0 @@ -20487,7 +20493,7 @@ snapshots: '@smithy/util-defaults-mode-browser@4.0.22': dependencies: '@smithy/property-provider': 4.2.8 - '@smithy/smithy-client': 4.10.11 + '@smithy/smithy-client': 4.10.12 '@smithy/types': 4.12.0 bowser: 2.11.0 tslib: 2.8.1 @@ -20498,7 +20504,7 @@ snapshots: '@smithy/credential-provider-imds': 4.0.6 '@smithy/node-config-provider': 4.3.8 '@smithy/property-provider': 4.2.8 - '@smithy/smithy-client': 4.10.11 + '@smithy/smithy-client': 4.10.12 '@smithy/types': 4.12.0 tslib: 2.8.1 From 710e95bdee43316bfd6a57317b4a1e2e1231661b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 30 Jan 2026 06:46:47 +0000 Subject: [PATCH 017/350] chore(deps): update dependency @anthropic-ai/sdk to v0.72.1 --- apps/server/package.json | 2 +- pnpm-lock.yaml | 16 +++++++++++----- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/apps/server/package.json b/apps/server/package.json index 520ac6ffca..5fc9442c16 100644 --- a/apps/server/package.json +++ b/apps/server/package.json @@ -35,7 +35,7 @@ "sucrase": "3.35.1" }, "devDependencies": { - "@anthropic-ai/sdk": "0.71.2", + "@anthropic-ai/sdk": "0.72.1", "@braintree/sanitize-url": "7.1.1", "@electron/remote": "2.1.3", "@triliumnext/commons": "workspace:*", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 42e3e02a6a..3a8b2c2a8e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -520,8 +520,8 @@ importers: version: 3.35.1 devDependencies: '@anthropic-ai/sdk': - specifier: 0.71.2 - version: 0.71.2(zod@4.1.12) + specifier: 0.72.1 + version: 0.72.1(zod@4.1.12) '@braintree/sanitize-url': specifier: 7.1.1 version: 7.1.1 @@ -1500,8 +1500,8 @@ packages: '@antfu/utils@9.2.0': resolution: {integrity: sha512-Oq1d9BGZakE/FyoEtcNeSwM7MpDO2vUBi11RWBZXf75zPsbUVWmUs03EqkRFrcgbXyKTas0BdZWC1wcuSoqSAw==} - '@anthropic-ai/sdk@0.71.2': - resolution: {integrity: sha512-TGNDEUuEstk/DKu0/TflXAEt+p+p/WhTlFzEnoosvbaDU2LTjm42igSdlL0VijrKpWejtOKxX0b8A7uc+XiSAQ==} + '@anthropic-ai/sdk@0.72.1': + resolution: {integrity: sha512-MiUnue7qN7DvLIoYHgkedN2z05mRf2CutBzjXXY2krzOhG2r/rIfISS2uVkNLikgToB5hYIzw+xp2jdOtRkqYQ==} hasBin: true peerDependencies: zod: ^3.25.0 || ^4.0.0 @@ -15237,7 +15237,7 @@ snapshots: '@antfu/utils@9.2.0': {} - '@anthropic-ai/sdk@0.71.2(zod@4.1.12)': + '@anthropic-ai/sdk@0.72.1(zod@4.1.12)': dependencies: json-schema-to-ts: 3.1.1 optionalDependencies: @@ -16287,6 +16287,8 @@ snapshots: '@ckeditor/ckeditor5-table': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-emoji@47.4.0': dependencies: @@ -16432,6 +16434,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-horizontal-line@47.4.0': dependencies: @@ -16614,6 +16618,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 '@ckeditor/ckeditor5-widget': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-mention@47.4.0(patch_hash=5981fb59ba35829e4dff1d39cf771000f8a8fdfa7a34b51d8af9549541f2d62d)': dependencies: From a3cf72c76c43fa55d729757212ee77f1d96db7ef Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 30 Jan 2026 06:47:40 +0000 Subject: [PATCH 018/350] chore(deps): update dependency @playwright/test to v1.58.0 --- package.json | 2 +- pnpm-lock.yaml | 32 +++++++++++++++++++------------- 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/package.json b/package.json index cfd0050a27..14be304236 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ "devDependencies": { "@electron/rebuild": "4.0.3", "@fast-csv/parse": "5.0.5", - "@playwright/test": "1.57.0", + "@playwright/test": "1.58.0", "@triliumnext/server": "workspace:*", "@types/express": "5.0.6", "@types/js-yaml": "4.0.9", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 42e3e02a6a..630e1f6d21 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -41,8 +41,8 @@ importers: specifier: 5.0.5 version: 5.0.5 '@playwright/test': - specifier: 1.57.0 - version: 1.57.0 + specifier: 1.58.0 + version: 1.58.0 '@triliumnext/server': specifier: workspace:* version: link:apps/server @@ -4236,8 +4236,8 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@playwright/test@1.57.0': - resolution: {integrity: sha512-6TyEnHgd6SArQO8UO2OMTxshln3QMWBtPGrOCgs3wVEmQmwyuNtB10IZMfmYDE0riwNR1cu4q+pPcxMVtaG3TA==} + '@playwright/test@1.58.0': + resolution: {integrity: sha512-fWza+Lpbj6SkQKCrU6si4iu+fD2dD3gxNHFhUPxsfXBPhnv3rRSQVd0NtBUT9Z/RhF/boCBcuUaMUSTRTopjZg==} engines: {node: '>=18'} hasBin: true @@ -11821,13 +11821,13 @@ packages: pkg-types@2.3.0: resolution: {integrity: sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==} - playwright-core@1.57.0: - resolution: {integrity: sha512-agTcKlMw/mjBWOnD6kFZttAAGHgi/Nw0CZ2o6JqWSbMlI219lAFLZZCyqByTsvVAJq5XA5H8cA6PrvBRpBWEuQ==} + playwright-core@1.58.0: + resolution: {integrity: sha512-aaoB1RWrdNi3//rOeKuMiS65UCcgOVljU46At6eFcOFPFHWtd2weHRRow6z/n+Lec0Lvu0k9ZPKJSjPugikirw==} engines: {node: '>=18'} hasBin: true - playwright@1.57.0: - resolution: {integrity: sha512-ilYQj1s8sr2ppEJ2YVadYBN0Mb3mdo9J0wQ+UuDhzYqURwSoW4n1Xs5vs7ORwgDGmyEh33tRMeS8KhdkMoLXQw==} + playwright@1.58.0: + resolution: {integrity: sha512-2SVA0sbPktiIY/MCOPX8e86ehA/e+tDNq+e5Y8qjKYti2Z/JG7xnronT/TXTIkKbYGWlCbuucZ6dziEgkoEjQQ==} engines: {node: '>=18'} hasBin: true @@ -16287,6 +16287,8 @@ snapshots: '@ckeditor/ckeditor5-table': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-emoji@47.4.0': dependencies: @@ -16432,6 +16434,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-horizontal-line@47.4.0': dependencies: @@ -16614,6 +16618,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 '@ckeditor/ckeditor5-widget': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-mention@47.4.0(patch_hash=5981fb59ba35829e4dff1d39cf771000f8a8fdfa7a34b51d8af9549541f2d62d)': dependencies: @@ -19405,9 +19411,9 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@playwright/test@1.57.0': + '@playwright/test@1.58.0': dependencies: - playwright: 1.57.0 + playwright: 1.58.0 '@pnpm/config.env-replace@1.1.0': {} @@ -28731,11 +28737,11 @@ snapshots: exsolve: 1.0.8 pathe: 2.0.3 - playwright-core@1.57.0: {} + playwright-core@1.58.0: {} - playwright@1.57.0: + playwright@1.58.0: dependencies: - playwright-core: 1.57.0 + playwright-core: 1.58.0 optionalDependencies: fsevents: 2.3.2 From e35e64caaabfe0169a51693f8dc5b9722d70a14f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 30 Jan 2026 06:48:34 +0000 Subject: [PATCH 019/350] chore(deps): update dependency @redocly/cli to v2.15.0 --- apps/build-docs/package.json | 2 +- pnpm-lock.yaml | 43 ++++++++++++++++++------------------ 2 files changed, 22 insertions(+), 23 deletions(-) diff --git a/apps/build-docs/package.json b/apps/build-docs/package.json index 8be2d93ce3..ac5be7e9be 100644 --- a/apps/build-docs/package.json +++ b/apps/build-docs/package.json @@ -11,7 +11,7 @@ "license": "AGPL-3.0-only", "packageManager": "pnpm@10.28.2", "devDependencies": { - "@redocly/cli": "2.14.9", + "@redocly/cli": "2.15.0", "archiver": "7.0.1", "fs-extra": "11.3.3", "react": "19.2.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 42e3e02a6a..e2e7484921 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -140,8 +140,8 @@ importers: apps/build-docs: devDependencies: '@redocly/cli': - specifier: 2.14.9 - version: 2.14.9(@opentelemetry/api@1.9.0)(bufferutil@4.0.9)(core-js@3.46.0)(encoding@0.1.13)(utf-8-validate@6.0.5) + specifier: 2.15.0 + version: 2.15.0(@opentelemetry/api@1.9.0)(bufferutil@4.0.9)(core-js@3.46.0)(encoding@0.1.13)(utf-8-validate@6.0.5) archiver: specifier: 7.0.1 version: 7.0.1 @@ -4622,8 +4622,8 @@ packages: '@redocly/ajv@8.17.2': resolution: {integrity: sha512-rcbDZOfXAgGEJeJ30aWCVVJvxV9ooevb/m1/SFblO2qHs4cqTk178gx7T/vdslf57EA4lTofrwsq5K8rxK9g+g==} - '@redocly/cli@2.14.9': - resolution: {integrity: sha512-eueSFzydep5jwOHxlYW6rFOSRP1b5vY7gVOzQBd2/I6XQJnG31hgrDACqx/heD4vv3hhdpoumopz24erxLe0zQ==} + '@redocly/cli@2.15.0': + resolution: {integrity: sha512-PjqCE1HDSHgHOrNxixeJSrumy8an2O4rcjXCIfdiHAjB1HOlMEtdgrz5OCx9f0lzcOXrgi61ThFNvO5jG56tUw==} engines: {node: '>=22.12.0 || >=20.19.0 <21.0.0', npm: '>=10'} hasBin: true @@ -4637,12 +4637,12 @@ packages: resolution: {integrity: sha512-0EbE8LRbkogtcCXU7liAyC00n9uNG9hJ+eMyHFdUsy9lB/WGqnEBgwjA9q2cyzAVcdTkQqTBBU1XePNnN3OijA==} engines: {node: '>=18.17.0', npm: '>=9.5.0'} - '@redocly/openapi-core@2.14.9': - resolution: {integrity: sha512-PIWVxm7Os3U276XMhLIh+qftaA6TxVwOuoyDaobGSkd609fp25tp57G2k/uzzKjrhUD4g2QzeJ4lfCoaBgEjhg==} + '@redocly/openapi-core@2.15.0': + resolution: {integrity: sha512-q/2UM5tA9mgk4zaIDUkKOG9KBUqIdSIhp5DugHmFOszOE+WMiL23BIV40K79jNF9aSU3zF1p1c/Zu0UoBmBsZg==} engines: {node: '>=22.12.0 || >=20.19.0 <21.0.0', npm: '>=10'} - '@redocly/respect-core@2.14.9': - resolution: {integrity: sha512-kP3rylB04NZV52IoEa1t8ObkSxpRZy3zpkRAxYOiLtggRETOnLdcDbYep4ipbk6t0suZamznOLOgiAeBYHo/ig==} + '@redocly/respect-core@2.15.0': + resolution: {integrity: sha512-0LFtQXNUE+e9OdGDLS+yt4RBx0JTGhM7UAaBC4tzLqPvhtbdWo/WB/WdasGIt4vMM9K47KivxPHmX13sSLEO2Q==} engines: {node: '>=22.12.0 || >=20.19.0 <21.0.0', npm: '>=10'} '@replit/codemirror-indentation-markers@6.5.3': @@ -14342,10 +14342,6 @@ packages: undici-types@7.16.0: resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} - undici@6.21.3: - resolution: {integrity: sha512-gBLkYIlEnSp8pFbT64yFgGE6UIB9tAkhukC23PmMDCe5Nd+cRqKxSjw5y54MK2AZMgZfJWMaNE4nYUHgi1XEOw==} - engines: {node: '>=18.17'} - undici@6.23.0: resolution: {integrity: sha512-VfQPToRA5FZs/qJxLIinmU59u0r7LXqoJkCzinq3ckNJp3vKEh7jTWN589YQ5+aoAC/TGRLyJLCPKcLQbM8r9g==} engines: {node: '>=18.17'} @@ -16287,6 +16283,8 @@ snapshots: '@ckeditor/ckeditor5-table': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-emoji@47.4.0': dependencies: @@ -16432,6 +16430,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-horizontal-line@47.4.0': dependencies: @@ -16614,6 +16614,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 '@ckeditor/ckeditor5-widget': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-mention@47.4.0(patch_hash=5981fb59ba35829e4dff1d39cf771000f8a8fdfa7a34b51d8af9549541f2d62d)': dependencies: @@ -19814,18 +19816,17 @@ snapshots: json-schema-traverse: 1.0.0 require-from-string: 2.0.2 - '@redocly/cli@2.14.9(@opentelemetry/api@1.9.0)(bufferutil@4.0.9)(core-js@3.46.0)(encoding@0.1.13)(utf-8-validate@6.0.5)': + '@redocly/cli@2.15.0(@opentelemetry/api@1.9.0)(bufferutil@4.0.9)(core-js@3.46.0)(encoding@0.1.13)(utf-8-validate@6.0.5)': dependencies: '@opentelemetry/exporter-trace-otlp-http': 0.202.0(@opentelemetry/api@1.9.0) '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-node': 2.0.1(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.34.0 - '@redocly/openapi-core': 2.14.9 - '@redocly/respect-core': 2.14.9 + '@redocly/openapi-core': 2.15.0 + '@redocly/respect-core': 2.15.0 abort-controller: 3.0.0 ajv: '@redocly/ajv@8.17.1' ajv-formats: 3.0.1(@redocly/ajv@8.17.1) - chokidar: 3.6.0 colorette: 1.4.0 cookie: 0.7.2 dotenv: 16.4.7 @@ -19873,7 +19874,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@redocly/openapi-core@2.14.9': + '@redocly/openapi-core@2.15.0': dependencies: '@redocly/ajv': 8.17.2 '@redocly/config': 0.41.2 @@ -19886,12 +19887,12 @@ snapshots: pluralize: 8.0.0 yaml-ast-parser: 0.0.43 - '@redocly/respect-core@2.14.9': + '@redocly/respect-core@2.15.0': dependencies: '@faker-js/faker': 7.6.0 '@noble/hashes': 1.8.0 '@redocly/ajv': 8.17.1 - '@redocly/openapi-core': 2.14.9 + '@redocly/openapi-core': 2.15.0 ajv: '@redocly/ajv@8.17.1' better-ajv-errors: 1.2.0(@redocly/ajv@8.17.1) colorette: 2.0.20 @@ -31730,8 +31731,6 @@ snapshots: undici-types@7.16.0: {} - undici@6.21.3: {} - undici@6.23.0: {} undici@7.19.0: {} @@ -32225,7 +32224,7 @@ snapshots: '@wdio/utils': 9.23.2 deepmerge-ts: 7.1.5 https-proxy-agent: 7.0.6 - undici: 6.21.3 + undici: 6.23.0 ws: 8.19.0(bufferutil@4.0.9)(utf-8-validate@6.0.5) transitivePeerDependencies: - bare-buffer From 19d3e1b11cdb7aaeecbfe4cbb1f38ab9a6081dfb Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 30 Jan 2026 06:49:33 +0000 Subject: [PATCH 020/350] chore(deps): update dependency electron to v40.1.0 --- apps/desktop/package.json | 2 +- apps/edit-docs/package.json | 2 +- apps/server/package.json | 2 +- pnpm-lock.yaml | 32 +++++++++++++++++++------------- 4 files changed, 22 insertions(+), 16 deletions(-) diff --git a/apps/desktop/package.json b/apps/desktop/package.json index 3728e0082c..bc48b256d1 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -35,7 +35,7 @@ "@triliumnext/commons": "workspace:*", "@triliumnext/server": "workspace:*", "copy-webpack-plugin": "13.0.1", - "electron": "40.0.0", + "electron": "40.1.0", "@electron-forge/cli": "7.11.1", "@electron-forge/maker-deb": "7.11.1", "@electron-forge/maker-dmg": "7.11.1", diff --git a/apps/edit-docs/package.json b/apps/edit-docs/package.json index 107c25fb54..50a444bb8c 100644 --- a/apps/edit-docs/package.json +++ b/apps/edit-docs/package.json @@ -12,7 +12,7 @@ "@triliumnext/desktop": "workspace:*", "@types/fs-extra": "11.0.4", "copy-webpack-plugin": "13.0.1", - "electron": "40.0.0", + "electron": "40.1.0", "fs-extra": "11.3.3" }, "scripts": { diff --git a/apps/server/package.json b/apps/server/package.json index 520ac6ffca..463b7636c6 100644 --- a/apps/server/package.json +++ b/apps/server/package.json @@ -83,7 +83,7 @@ "debounce": "3.0.0", "debug": "4.4.3", "ejs": "4.0.1", - "electron": "40.0.0", + "electron": "40.1.0", "electron-debug": "4.1.0", "electron-window-state": "5.0.3", "escape-html": "1.0.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 42e3e02a6a..b4350e81b2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -376,7 +376,7 @@ importers: dependencies: '@electron/remote': specifier: 2.1.3 - version: 2.1.3(electron@40.0.0) + version: 2.1.3(electron@40.1.0) better-sqlite3: specifier: 12.6.2 version: 12.6.2 @@ -433,8 +433,8 @@ importers: specifier: 13.0.1 version: 13.0.1(webpack@5.101.3(esbuild@0.27.2)) electron: - specifier: 40.0.0 - version: 40.0.0 + specifier: 40.1.0 + version: 40.1.0 prebuild-install: specifier: 7.1.3 version: 7.1.3 @@ -489,8 +489,8 @@ importers: specifier: 13.0.1 version: 13.0.1(webpack@5.101.3(esbuild@0.27.2)) electron: - specifier: 40.0.0 - version: 40.0.0 + specifier: 40.1.0 + version: 40.1.0 fs-extra: specifier: 11.3.3 version: 11.3.3 @@ -527,7 +527,7 @@ importers: version: 7.1.1 '@electron/remote': specifier: 2.1.3 - version: 2.1.3(electron@40.0.0) + version: 2.1.3(electron@40.1.0) '@triliumnext/commons': specifier: workspace:* version: link:../../packages/commons @@ -664,8 +664,8 @@ importers: specifier: 4.0.1 version: 4.0.1 electron: - specifier: 40.0.0 - version: 40.0.0 + specifier: 40.1.0 + version: 40.1.0 electron-debug: specifier: 4.1.0 version: 4.1.0 @@ -8170,8 +8170,8 @@ packages: resolution: {integrity: sha512-bO3y10YikuUwUuDUQRM4KfwNkKhnpVO7IPdbsrejwN9/AABJzzTQ4GeHwyzNSrVO+tEH3/Np255a3sVZpZDjvg==} engines: {node: '>=8.0.0'} - electron@40.0.0: - resolution: {integrity: sha512-UyBy5yJ0/wm4gNugCtNPjvddjAknMTuXR2aCHioXicH7aKRKGDBPp4xqTEi/doVcB3R+MN3wfU9o8d/9pwgK2A==} + electron@40.1.0: + resolution: {integrity: sha512-2j/kvw7uF0H1PnzYBzw2k2Q6q16J8ToKrtQzZfsAoXbbMY0l5gQi2DLOauIZLzwp4O01n8Wt/74JhSRwG0yj9A==} engines: {node: '>= 12.20.55'} hasBin: true @@ -16287,6 +16287,8 @@ snapshots: '@ckeditor/ckeditor5-table': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-emoji@47.4.0': dependencies: @@ -16432,6 +16434,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-horizontal-line@47.4.0': dependencies: @@ -16614,6 +16618,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 '@ckeditor/ckeditor5-widget': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-mention@47.4.0(patch_hash=5981fb59ba35829e4dff1d39cf771000f8a8fdfa7a34b51d8af9549541f2d62d)': dependencies: @@ -17655,9 +17661,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@electron/remote@2.1.3(electron@40.0.0)': + '@electron/remote@2.1.3(electron@40.1.0)': dependencies: - electron: 40.0.0 + electron: 40.1.0 '@electron/universal@2.0.2': dependencies: @@ -24136,7 +24142,7 @@ snapshots: - supports-color optional: true - electron@40.0.0: + electron@40.1.0: dependencies: '@electron/get': 2.0.3 '@types/node': 24.10.9 From bb1c691b3407a8f4b0f6cf02e994fd60bec1697f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 30 Jan 2026 06:50:39 +0000 Subject: [PATCH 021/350] chore(deps): update typescript-eslint monorepo to v8.54.0 --- package.json | 2 +- packages/ckeditor5-admonition/package.json | 4 +- packages/ckeditor5-footnotes/package.json | 4 +- .../ckeditor5-keyboard-marker/package.json | 4 +- packages/ckeditor5-math/package.json | 4 +- packages/ckeditor5-mermaid/package.json | 4 +- packages/share-theme/package.json | 4 +- pnpm-lock.yaml | 280 +++++++++--------- 8 files changed, 156 insertions(+), 150 deletions(-) diff --git a/package.json b/package.json index cfd0050a27..602de70974 100644 --- a/package.json +++ b/package.json @@ -73,7 +73,7 @@ "tslib": "2.8.1", "tsx": "4.21.0", "typescript": "5.9.3", - "typescript-eslint": "8.53.0", + "typescript-eslint": "8.54.0", "upath": "2.0.1", "vite": "7.3.1", "vite-plugin-dts": "4.5.4", diff --git a/packages/ckeditor5-admonition/package.json b/packages/ckeditor5-admonition/package.json index 0bf44edb4c..390a7424f3 100644 --- a/packages/ckeditor5-admonition/package.json +++ b/packages/ckeditor5-admonition/package.json @@ -24,8 +24,8 @@ "@ckeditor/ckeditor5-dev-build-tools": "54.3.2", "@ckeditor/ckeditor5-inspector": ">=4.1.0", "@ckeditor/ckeditor5-package-tools": "5.0.1", - "@typescript-eslint/eslint-plugin": "8.53.0", - "@typescript-eslint/parser": "8.53.0", + "@typescript-eslint/eslint-plugin": "8.54.0", + "@typescript-eslint/parser": "8.54.0", "@vitest/browser": "4.0.18", "@vitest/coverage-istanbul": "4.0.18", "ckeditor5": "47.4.0", diff --git a/packages/ckeditor5-footnotes/package.json b/packages/ckeditor5-footnotes/package.json index 92494c2a1c..e82e599847 100644 --- a/packages/ckeditor5-footnotes/package.json +++ b/packages/ckeditor5-footnotes/package.json @@ -25,8 +25,8 @@ "@ckeditor/ckeditor5-dev-build-tools": "54.3.2", "@ckeditor/ckeditor5-inspector": ">=4.1.0", "@ckeditor/ckeditor5-package-tools": "5.0.1", - "@typescript-eslint/eslint-plugin": "8.53.0", - "@typescript-eslint/parser": "8.53.0", + "@typescript-eslint/eslint-plugin": "8.54.0", + "@typescript-eslint/parser": "8.54.0", "@vitest/browser": "4.0.18", "@vitest/coverage-istanbul": "4.0.18", "ckeditor5": "47.4.0", diff --git a/packages/ckeditor5-keyboard-marker/package.json b/packages/ckeditor5-keyboard-marker/package.json index 23d476fd7f..7fd8d9dbce 100644 --- a/packages/ckeditor5-keyboard-marker/package.json +++ b/packages/ckeditor5-keyboard-marker/package.json @@ -27,8 +27,8 @@ "@ckeditor/ckeditor5-dev-build-tools": "54.3.2", "@ckeditor/ckeditor5-inspector": ">=4.1.0", "@ckeditor/ckeditor5-package-tools": "5.0.1", - "@typescript-eslint/eslint-plugin": "8.53.0", - "@typescript-eslint/parser": "8.53.0", + "@typescript-eslint/eslint-plugin": "8.54.0", + "@typescript-eslint/parser": "8.54.0", "@vitest/browser": "4.0.18", "@vitest/coverage-istanbul": "4.0.18", "ckeditor5": "47.4.0", diff --git a/packages/ckeditor5-math/package.json b/packages/ckeditor5-math/package.json index 68f9eccfee..75234006f3 100644 --- a/packages/ckeditor5-math/package.json +++ b/packages/ckeditor5-math/package.json @@ -27,8 +27,8 @@ "@ckeditor/ckeditor5-dev-build-tools": "54.3.2", "@ckeditor/ckeditor5-inspector": ">=4.1.0", "@ckeditor/ckeditor5-package-tools": "5.0.1", - "@typescript-eslint/eslint-plugin": "8.53.0", - "@typescript-eslint/parser": "8.53.0", + "@typescript-eslint/eslint-plugin": "8.54.0", + "@typescript-eslint/parser": "8.54.0", "@vitest/browser": "4.0.18", "@vitest/coverage-istanbul": "4.0.18", "ckeditor5": "47.4.0", diff --git a/packages/ckeditor5-mermaid/package.json b/packages/ckeditor5-mermaid/package.json index 1cc5aea86e..ef65c80fe2 100644 --- a/packages/ckeditor5-mermaid/package.json +++ b/packages/ckeditor5-mermaid/package.json @@ -27,8 +27,8 @@ "@ckeditor/ckeditor5-dev-build-tools": "54.3.2", "@ckeditor/ckeditor5-inspector": ">=4.1.0", "@ckeditor/ckeditor5-package-tools": "5.0.1", - "@typescript-eslint/eslint-plugin": "8.53.0", - "@typescript-eslint/parser": "8.53.0", + "@typescript-eslint/eslint-plugin": "8.54.0", + "@typescript-eslint/parser": "8.54.0", "@vitest/browser": "4.0.18", "@vitest/coverage-istanbul": "4.0.18", "ckeditor5": "47.4.0", diff --git a/packages/share-theme/package.json b/packages/share-theme/package.json index a8e6e6672f..8bd0fdc217 100644 --- a/packages/share-theme/package.json +++ b/packages/share-theme/package.json @@ -31,8 +31,8 @@ "devDependencies": { "@digitak/esrun": "3.2.26", "@triliumnext/ckeditor5": "workspace:*", - "@typescript-eslint/eslint-plugin": "8.53.0", - "@typescript-eslint/parser": "8.53.0", + "@typescript-eslint/eslint-plugin": "8.54.0", + "@typescript-eslint/parser": "8.54.0", "dotenv": "17.2.3", "esbuild": "0.27.2", "eslint": "9.39.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 42e3e02a6a..a226553905 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -122,8 +122,8 @@ importers: specifier: 5.9.3 version: 5.9.3 typescript-eslint: - specifier: 8.53.0 - version: 8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + specifier: 8.54.0 + version: 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) upath: specifier: 2.0.1 version: 2.0.1 @@ -919,11 +919,11 @@ importers: specifier: 5.0.1 version: 5.0.1(@babel/core@7.28.0)(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@24.10.9)(bufferutil@4.0.9)(esbuild@0.27.2)(utf-8-validate@6.0.5) '@typescript-eslint/eslint-plugin': - specifier: 8.53.0 - version: 8.53.0(@typescript-eslint/parser@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + specifier: 8.54.0 + version: 8.54.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: 8.53.0 - version: 8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + specifier: 8.54.0 + version: 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@vitest/browser': specifier: 4.0.18 version: 4.0.18(bufferutil@4.0.9)(msw@2.7.5(@types/node@24.10.9)(typescript@5.9.3))(utf-8-validate@6.0.5)(vite@7.3.1(@types/node@24.10.9)(jiti@2.6.1)(less@4.1.3)(lightningcss@1.31.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1))(vitest@4.0.18) @@ -979,11 +979,11 @@ importers: specifier: 5.0.1 version: 5.0.1(@babel/core@7.28.0)(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@24.10.9)(bufferutil@4.0.9)(esbuild@0.27.2)(utf-8-validate@6.0.5) '@typescript-eslint/eslint-plugin': - specifier: 8.53.0 - version: 8.53.0(@typescript-eslint/parser@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + specifier: 8.54.0 + version: 8.54.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: 8.53.0 - version: 8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + specifier: 8.54.0 + version: 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@vitest/browser': specifier: 4.0.18 version: 4.0.18(bufferutil@4.0.9)(msw@2.7.5(@types/node@24.10.9)(typescript@5.9.3))(utf-8-validate@6.0.5)(vite@7.3.1(@types/node@24.10.9)(jiti@2.6.1)(less@4.1.3)(lightningcss@1.31.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1))(vitest@4.0.18) @@ -1039,11 +1039,11 @@ importers: specifier: 5.0.1 version: 5.0.1(@babel/core@7.28.0)(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@24.10.9)(bufferutil@4.0.9)(esbuild@0.27.2)(utf-8-validate@6.0.5) '@typescript-eslint/eslint-plugin': - specifier: 8.53.0 - version: 8.53.0(@typescript-eslint/parser@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + specifier: 8.54.0 + version: 8.54.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: 8.53.0 - version: 8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + specifier: 8.54.0 + version: 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@vitest/browser': specifier: 4.0.18 version: 4.0.18(bufferutil@4.0.9)(msw@2.7.5(@types/node@24.10.9)(typescript@5.9.3))(utf-8-validate@6.0.5)(vite@7.3.1(@types/node@24.10.9)(jiti@2.6.1)(less@4.1.3)(lightningcss@1.31.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1))(vitest@4.0.18) @@ -1106,11 +1106,11 @@ importers: specifier: 5.0.1 version: 5.0.1(@babel/core@7.28.0)(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@24.10.9)(bufferutil@4.0.9)(esbuild@0.27.2)(utf-8-validate@6.0.5) '@typescript-eslint/eslint-plugin': - specifier: 8.53.0 - version: 8.53.0(@typescript-eslint/parser@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + specifier: 8.54.0 + version: 8.54.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: 8.53.0 - version: 8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + specifier: 8.54.0 + version: 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@vitest/browser': specifier: 4.0.18 version: 4.0.18(bufferutil@4.0.9)(msw@2.7.5(@types/node@24.10.9)(typescript@5.9.3))(utf-8-validate@6.0.5)(vite@7.3.1(@types/node@24.10.9)(jiti@2.6.1)(less@4.1.3)(lightningcss@1.31.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1))(vitest@4.0.18) @@ -1173,11 +1173,11 @@ importers: specifier: 5.0.1 version: 5.0.1(@babel/core@7.28.0)(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@24.10.9)(bufferutil@4.0.9)(esbuild@0.27.2)(utf-8-validate@6.0.5) '@typescript-eslint/eslint-plugin': - specifier: 8.53.0 - version: 8.53.0(@typescript-eslint/parser@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + specifier: 8.54.0 + version: 8.54.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: 8.53.0 - version: 8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + specifier: 8.54.0 + version: 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@vitest/browser': specifier: 4.0.18 version: 4.0.18(bufferutil@4.0.9)(msw@2.7.5(@types/node@24.10.9)(typescript@5.9.3))(utf-8-validate@6.0.5)(vite@7.3.1(@types/node@24.10.9)(jiti@2.6.1)(less@4.1.3)(lightningcss@1.31.1)(sass-embedded@1.91.0)(sass@1.91.0)(terser@5.44.0)(tsx@4.21.0)(yaml@2.8.1))(vitest@4.0.18) @@ -1424,11 +1424,11 @@ importers: specifier: workspace:* version: link:../ckeditor5 '@typescript-eslint/eslint-plugin': - specifier: 8.53.0 - version: 8.53.0(@typescript-eslint/parser@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + specifier: 8.54.0 + version: 8.54.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: 8.53.0 - version: 8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + specifier: 8.54.0 + version: 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) dotenv: specifier: 17.2.3 version: 17.2.3 @@ -5875,11 +5875,11 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/eslint-plugin@8.53.0': - resolution: {integrity: sha512-eEXsVvLPu8Z4PkFibtuFJLJOTAV/nPdgtSjkGoPpddpFk3/ym2oy97jynY6ic2m6+nc5M8SE1e9v/mHKsulcJg==} + '@typescript-eslint/eslint-plugin@8.54.0': + resolution: {integrity: sha512-hAAP5io/7csFStuOmR782YmTthKBJ9ND3WVL60hcOjvtGFb+HJxH4O5huAcmcZ9v9G8P+JETiZ/G1B8MALnWZQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.53.0 + '@typescript-eslint/parser': ^8.54.0 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' @@ -5890,8 +5890,8 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/parser@8.53.0': - resolution: {integrity: sha512-npiaib8XzbjtzS2N4HlqPvlpxpmZ14FjSJrteZpPxGUaYPlvhzlzUZ4mZyABo0EFrOWnvyd0Xxroq//hKhtAWg==} + '@typescript-eslint/parser@8.54.0': + resolution: {integrity: sha512-BtE0k6cjwjLZoZixN0t5AKP0kSzlGu7FctRXYuPAm//aaiZhmfq1JwdYpYr1brzEspYyFeF+8XF5j2VK6oalrA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -5903,14 +5903,14 @@ packages: peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/project-service@8.52.0': - resolution: {integrity: sha512-xD0MfdSdEmeFa3OmVqonHi+Cciab96ls1UhIF/qX/O/gPu5KXD0bY9lu33jj04fjzrXHcuvjBcBC+D3SNSadaw==} + '@typescript-eslint/project-service@8.53.0': + resolution: {integrity: sha512-Bl6Gdr7NqkqIP5yP9z1JU///Nmes4Eose6L1HwpuVHwScgDPPuEWbUVhvlZmb8hy0vX9syLk5EGNL700WcBlbg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/project-service@8.53.0': - resolution: {integrity: sha512-Bl6Gdr7NqkqIP5yP9z1JU///Nmes4Eose6L1HwpuVHwScgDPPuEWbUVhvlZmb8hy0vX9syLk5EGNL700WcBlbg==} + '@typescript-eslint/project-service@8.54.0': + resolution: {integrity: sha512-YPf+rvJ1s7MyiWM4uTRhE4DvBXrEV+d8oC3P9Y2eT7S+HBS0clybdMIPnhiATi9vZOYDc7OQ1L/i6ga6NFYK/g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' @@ -5919,28 +5919,28 @@ packages: resolution: {integrity: sha512-tMDbLGXb1wC+McN1M6QeDx7P7c0UWO5z9CXqp7J8E+xGcJuUuevWKxuG8j41FoweS3+L41SkyKKkia16jpX7CA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/scope-manager@8.52.0': - resolution: {integrity: sha512-ixxqmmCcc1Nf8S0mS0TkJ/3LKcC8mruYJPOU6Ia2F/zUUR4pApW7LzrpU3JmtePbRUTes9bEqRc1Gg4iyRnDzA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/scope-manager@8.53.0': resolution: {integrity: sha512-kWNj3l01eOGSdVBnfAF2K1BTh06WS0Yet6JUgb9Cmkqaz3Jlu0fdVUjj9UI8gPidBWSMqDIglmEXifSgDT/D0g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/scope-manager@8.54.0': + resolution: {integrity: sha512-27rYVQku26j/PbHYcVfRPonmOlVI6gihHtXFbTdB5sb6qA0wdAQAbyXFVarQ5t4HRojIz64IV90YtsjQSSGlQg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/tsconfig-utils@8.46.4': resolution: {integrity: sha512-+/XqaZPIAk6Cjg7NWgSGe27X4zMGqrFqZ8atJsX3CWxH/jACqWnrWI68h7nHQld0y+k9eTTjb9r+KU4twLoo9A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/tsconfig-utils@8.52.0': - resolution: {integrity: sha512-jl+8fzr/SdzdxWJznq5nvoI7qn2tNYV/ZBAEcaFMVXf+K6jmXvAFrgo/+5rxgnL152f//pDEAYAhhBAZGrVfwg==} + '@typescript-eslint/tsconfig-utils@8.53.0': + resolution: {integrity: sha512-K6Sc0R5GIG6dNoPdOooQ+KtvT5KCKAvTcY8h2rIuul19vxH5OTQk7ArKkd4yTzkw66WnNY0kPPzzcmWA+XRmiA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/tsconfig-utils@8.53.0': - resolution: {integrity: sha512-K6Sc0R5GIG6dNoPdOooQ+KtvT5KCKAvTcY8h2rIuul19vxH5OTQk7ArKkd4yTzkw66WnNY0kPPzzcmWA+XRmiA==} + '@typescript-eslint/tsconfig-utils@8.54.0': + resolution: {integrity: sha512-dRgOyT2hPk/JwxNMZDsIXDgyl9axdJI3ogZ2XWhBPsnZUv+hPesa5iuhdYt2gzwA9t8RE5ytOJ6xB0moV0Ujvw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' @@ -5952,8 +5952,8 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/type-utils@8.53.0': - resolution: {integrity: sha512-BBAUhlx7g4SmcLhn8cnbxoxtmS7hcq39xKCgiutL3oNx1TaIp+cny51s8ewnKMpVUKQUGb41RAUWZ9kxYdovuw==} + '@typescript-eslint/type-utils@8.54.0': + resolution: {integrity: sha512-hiLguxJWHjjwL6xMBwD903ciAwd7DmK30Y9Axs/etOkftC3ZNN9K44IuRD/EB08amu+Zw6W37x9RecLkOo3pMA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -5963,41 +5963,34 @@ packages: resolution: {integrity: sha512-USjyxm3gQEePdUwJBFjjGNG18xY9A2grDVGuk7/9AkjIF1L+ZrVnwR5VAU5JXtUnBL/Nwt3H31KlRDaksnM7/w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@8.52.0': - resolution: {integrity: sha512-LWQV1V4q9V4cT4H5JCIx3481iIFxH1UkVk+ZkGGAV1ZGcjGI9IoFOfg3O6ywz8QqCDEp7Inlg6kovMofsNRaGg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@8.53.0': resolution: {integrity: sha512-Bmh9KX31Vlxa13+PqPvt4RzKRN1XORYSLlAE+sO1i28NkisGbTtSLFVB3l7PWdHtR3E0mVMuC7JilWJ99m2HxQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/types@8.54.0': + resolution: {integrity: sha512-PDUI9R1BVjqu7AUDsRBbKMtwmjWcn4J3le+5LpcFgWULN3LvHC5rkc9gCVxbrsrGmO1jfPybN5s6h4Jy+OnkAA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/typescript-estree@8.46.4': resolution: {integrity: sha512-7oV2qEOr1d4NWNmpXLR35LvCfOkTNymY9oyW+lUHkmCno7aOmIf/hMaydnJBUTBMRCOGZh8YjkFOc8dadEoNGA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/typescript-estree@8.52.0': - resolution: {integrity: sha512-XP3LClsCc0FsTK5/frGjolyADTh3QmsLp6nKd476xNI9CsSsLnmn4f0jrzNoAulmxlmNIpeXuHYeEQv61Q6qeQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/typescript-estree@8.53.0': resolution: {integrity: sha512-pw0c0Gdo7Z4xOG987u3nJ8akL9093yEEKv8QTJ+Bhkghj1xyj8cgPaavlr9rq8h7+s6plUJ4QJYw2gCZodqmGw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/utils@8.46.4': - resolution: {integrity: sha512-AbSv11fklGXV6T28dp2Me04Uw90R2iJ30g2bgLz529Koehrmkbs1r7paFqr1vPCZi7hHwYxYtxfyQMRC8QaVSg==} + '@typescript-eslint/typescript-estree@8.54.0': + resolution: {integrity: sha512-BUwcskRaPvTk6fzVWgDPdUndLjB87KYDrN5EYGetnktoeAvPtO4ONHlAZDnj5VFnUANg0Sjm7j4usBlnoVMHwA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/utils@8.52.0': - resolution: {integrity: sha512-wYndVMWkweqHpEpwPhwqE2lnD2DxC6WVLupU/DOt/0/v+/+iQbbzO3jOHjmBMnhu0DgLULvOaU4h4pwHYi2oRQ==} + '@typescript-eslint/utils@8.46.4': + resolution: {integrity: sha512-AbSv11fklGXV6T28dp2Me04Uw90R2iJ30g2bgLz529Koehrmkbs1r7paFqr1vPCZi7hHwYxYtxfyQMRC8QaVSg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -6010,18 +6003,25 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' + '@typescript-eslint/utils@8.54.0': + resolution: {integrity: sha512-9Cnda8GS57AQakvRyG0PTejJNlA2xhvyNtEVIMlDWOOeEyBkYWhGPnfrIAnqxLMTSTo6q8g12XVjjev5l1NvMA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + '@typescript-eslint/visitor-keys@8.46.4': resolution: {integrity: sha512-/++5CYLQqsO9HFGLI7APrxBJYo+5OCMpViuhV8q5/Qa3o5mMrF//eQHks+PXcsAVaLdn817fMuS7zqoXNNZGaw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/visitor-keys@8.52.0': - resolution: {integrity: sha512-ink3/Zofus34nmBsPjow63FP5M7IGff0RKAgqR6+CFpdk22M7aLwC9gOcLGYqr7MczLPzZVERW9hRog3O4n1sQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/visitor-keys@8.53.0': resolution: {integrity: sha512-LZ2NqIHFhvFwxG0qZeLL9DvdNAHPGCY5dIRwBhyYeU+LfLhcStE1ImjsuTG/WaVh3XysGaeLW8Rqq7cGkPCFvw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/visitor-keys@8.54.0': + resolution: {integrity: sha512-VFlhGSl4opC0bprJiItPQ1RfUhGDIBokcPwaFH4yiBCaNPeld/9VeXbiPO1cLyorQi1G1vL+ecBk1x8o1axORA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@ungap/structured-clone@1.3.0': resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} @@ -14275,8 +14275,8 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - typescript-eslint@8.53.0: - resolution: {integrity: sha512-xHURCQNxZ1dsWn0sdOaOfCSQG0HKeqSj9OexIxrz6ypU6wHYOdX2I3D2b8s8wFSsSOYJb+6q283cLiLlkEsBYw==} + typescript-eslint@8.54.0: + resolution: {integrity: sha512-CKsJ+g53QpsNPqbzUsfKVgd3Lny4yKZ1pP4qN3jdMOg/sisIDLGyDMezycquXLE5JsEU0wp3dGNdzig0/fmSVQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -16287,6 +16287,8 @@ snapshots: '@ckeditor/ckeditor5-table': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-emoji@47.4.0': dependencies: @@ -16432,6 +16434,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-horizontal-line@47.4.0': dependencies: @@ -16614,6 +16618,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 '@ckeditor/ckeditor5-widget': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-mention@47.4.0(patch_hash=5981fb59ba35829e4dff1d39cf771000f8a8fdfa7a34b51d8af9549541f2d62d)': dependencies: @@ -20566,7 +20572,7 @@ snapshots: '@stylistic/eslint-plugin@4.4.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@typescript-eslint/utils': 8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: 9.39.2(jiti@2.6.1) eslint-visitor-keys: 4.2.1 espree: 10.4.0 @@ -21260,14 +21266,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.53.0(@typescript-eslint/parser@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/eslint-plugin@8.54.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.53.0 - '@typescript-eslint/type-utils': 8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/utils': 8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.53.0 + '@typescript-eslint/parser': 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.54.0 + '@typescript-eslint/type-utils': 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.54.0 eslint: 9.39.2(jiti@2.6.1) ignore: 7.0.5 natural-compare: 1.4.0 @@ -21288,12 +21294,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/parser@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@typescript-eslint/scope-manager': 8.53.0 - '@typescript-eslint/types': 8.53.0 - '@typescript-eslint/typescript-estree': 8.53.0(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.53.0 + '@typescript-eslint/scope-manager': 8.54.0 + '@typescript-eslint/types': 8.54.0 + '@typescript-eslint/typescript-estree': 8.54.0(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.54.0 debug: 4.4.3(supports-color@8.1.1) eslint: 9.39.2(jiti@2.6.1) typescript: 5.9.3 @@ -21302,16 +21308,7 @@ snapshots: '@typescript-eslint/project-service@8.46.4(typescript@5.9.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.52.0(typescript@5.9.3) - '@typescript-eslint/types': 8.53.0 - debug: 4.4.3(supports-color@8.1.1) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/project-service@8.52.0(typescript@5.9.3)': - dependencies: - '@typescript-eslint/tsconfig-utils': 8.52.0(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.53.0(typescript@5.9.3) '@typescript-eslint/types': 8.53.0 debug: 4.4.3(supports-color@8.1.1) typescript: 5.9.3 @@ -21327,30 +21324,39 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/project-service@8.54.0(typescript@5.9.3)': + dependencies: + '@typescript-eslint/tsconfig-utils': 8.54.0(typescript@5.9.3) + '@typescript-eslint/types': 8.54.0 + debug: 4.4.3(supports-color@8.1.1) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/scope-manager@8.46.4': dependencies: '@typescript-eslint/types': 8.46.4 '@typescript-eslint/visitor-keys': 8.46.4 - '@typescript-eslint/scope-manager@8.52.0': - dependencies: - '@typescript-eslint/types': 8.52.0 - '@typescript-eslint/visitor-keys': 8.52.0 - '@typescript-eslint/scope-manager@8.53.0': dependencies: '@typescript-eslint/types': 8.53.0 '@typescript-eslint/visitor-keys': 8.53.0 + '@typescript-eslint/scope-manager@8.54.0': + dependencies: + '@typescript-eslint/types': 8.54.0 + '@typescript-eslint/visitor-keys': 8.54.0 + '@typescript-eslint/tsconfig-utils@8.46.4(typescript@5.9.3)': dependencies: typescript: 5.9.3 - '@typescript-eslint/tsconfig-utils@8.52.0(typescript@5.9.3)': + '@typescript-eslint/tsconfig-utils@8.53.0(typescript@5.9.3)': dependencies: typescript: 5.9.3 - '@typescript-eslint/tsconfig-utils@8.53.0(typescript@5.9.3)': + '@typescript-eslint/tsconfig-utils@8.54.0(typescript@5.9.3)': dependencies: typescript: 5.9.3 @@ -21366,11 +21372,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/type-utils@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@typescript-eslint/types': 8.53.0 - '@typescript-eslint/typescript-estree': 8.53.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/types': 8.54.0 + '@typescript-eslint/typescript-estree': 8.54.0(typescript@5.9.3) + '@typescript-eslint/utils': 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) debug: 4.4.3(supports-color@8.1.1) eslint: 9.39.2(jiti@2.6.1) ts-api-utils: 2.4.0(typescript@5.9.3) @@ -21380,10 +21386,10 @@ snapshots: '@typescript-eslint/types@8.46.4': {} - '@typescript-eslint/types@8.52.0': {} - '@typescript-eslint/types@8.53.0': {} + '@typescript-eslint/types@8.54.0': {} + '@typescript-eslint/typescript-estree@8.46.4(typescript@5.9.3)': dependencies: '@typescript-eslint/project-service': 8.46.4(typescript@5.9.3) @@ -21400,21 +21406,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.52.0(typescript@5.9.3)': - dependencies: - '@typescript-eslint/project-service': 8.52.0(typescript@5.9.3) - '@typescript-eslint/tsconfig-utils': 8.52.0(typescript@5.9.3) - '@typescript-eslint/types': 8.52.0 - '@typescript-eslint/visitor-keys': 8.52.0 - debug: 4.4.3(supports-color@8.1.1) - minimatch: 9.0.5 - semver: 7.7.3 - tinyglobby: 0.2.15 - ts-api-utils: 2.4.0(typescript@5.9.3) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/typescript-estree@8.53.0(typescript@5.9.3)': dependencies: '@typescript-eslint/project-service': 8.53.0(typescript@5.9.3) @@ -21430,6 +21421,21 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/typescript-estree@8.54.0(typescript@5.9.3)': + dependencies: + '@typescript-eslint/project-service': 8.54.0(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.54.0(typescript@5.9.3) + '@typescript-eslint/types': 8.54.0 + '@typescript-eslint/visitor-keys': 8.54.0 + debug: 4.4.3(supports-color@8.1.1) + minimatch: 9.0.5 + semver: 7.7.3 + tinyglobby: 0.2.15 + ts-api-utils: 2.4.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/utils@8.46.4(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1)) @@ -21441,17 +21447,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.52.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': - dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1)) - '@typescript-eslint/scope-manager': 8.52.0 - '@typescript-eslint/types': 8.52.0 - '@typescript-eslint/typescript-estree': 8.52.0(typescript@5.9.3) - eslint: 9.39.2(jiti@2.6.1) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/utils@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1)) @@ -21463,21 +21458,32 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/utils@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1)) + '@typescript-eslint/scope-manager': 8.54.0 + '@typescript-eslint/types': 8.54.0 + '@typescript-eslint/typescript-estree': 8.54.0(typescript@5.9.3) + eslint: 9.39.2(jiti@2.6.1) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/visitor-keys@8.46.4': dependencies: '@typescript-eslint/types': 8.46.4 eslint-visitor-keys: 4.2.1 - '@typescript-eslint/visitor-keys@8.52.0': - dependencies: - '@typescript-eslint/types': 8.52.0 - eslint-visitor-keys: 4.2.1 - '@typescript-eslint/visitor-keys@8.53.0': dependencies: '@typescript-eslint/types': 8.53.0 eslint-visitor-keys: 4.2.1 + '@typescript-eslint/visitor-keys@8.54.0': + dependencies: + '@typescript-eslint/types': 8.54.0 + eslint-visitor-keys: 4.2.1 + '@ungap/structured-clone@1.3.0': {} '@uploadcare/cname-prefix@6.18.3': {} @@ -31681,12 +31687,12 @@ snapshots: transitivePeerDependencies: - supports-color - typescript-eslint@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3): + typescript-eslint@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.53.0(@typescript-eslint/parser@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/parser': 8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/typescript-estree': 8.53.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/eslint-plugin': 8.54.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/parser': 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.54.0(typescript@5.9.3) + '@typescript-eslint/utils': 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint: 9.39.2(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: From 2ca6606508be71528c6b29cb4d5f13b01971f890 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 30 Jan 2026 06:52:02 +0000 Subject: [PATCH 022/350] fix(deps): update dependency globals to v17.2.0 --- apps/client/package.json | 2 +- pnpm-lock.yaml | 16 +++++++++++----- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/apps/client/package.json b/apps/client/package.json index 1129d8c413..2b1251f15c 100644 --- a/apps/client/package.json +++ b/apps/client/package.json @@ -43,7 +43,7 @@ "debounce": "3.0.0", "draggabilly": "3.0.0", "force-graph": "1.51.0", - "globals": "17.0.0", + "globals": "17.2.0", "i18next": "25.8.0", "i18next-http-backend": "3.0.2", "jquery": "4.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 42e3e02a6a..4c501e2894 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -245,8 +245,8 @@ importers: specifier: 1.51.0 version: 1.51.0 globals: - specifier: 17.0.0 - version: 17.0.0 + specifier: 17.2.0 + version: 17.2.0 i18next: specifier: 25.8.0 version: 25.8.0(typescript@5.9.3) @@ -9113,8 +9113,8 @@ packages: resolution: {integrity: sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==} engines: {node: '>=18'} - globals@17.0.0: - resolution: {integrity: sha512-gv5BeD2EssA793rlFWVPMMCqefTlpusw6/2TbAVMy0FzcG8wKJn4O+NqJ4+XWmmwrayJgw5TzrmWjFgmz1XPqw==} + globals@17.2.0: + resolution: {integrity: sha512-tovnCz/fEq+Ripoq+p/gN1u7l6A7wwkoBT9pRCzTHzsD/LvADIzXZdjmRymh5Ztf0DYC3Rwg5cZRYjxzBmzbWg==} engines: {node: '>=18'} globalthis@1.0.4: @@ -16287,6 +16287,8 @@ snapshots: '@ckeditor/ckeditor5-table': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-emoji@47.4.0': dependencies: @@ -16432,6 +16434,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-horizontal-line@47.4.0': dependencies: @@ -16614,6 +16618,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 '@ckeditor/ckeditor5-widget': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-mention@47.4.0(patch_hash=5981fb59ba35829e4dff1d39cf771000f8a8fdfa7a34b51d8af9549541f2d62d)': dependencies: @@ -25516,7 +25522,7 @@ snapshots: globals@16.5.0: {} - globals@17.0.0: {} + globals@17.2.0: {} globalthis@1.0.4: dependencies: From 03d9a6c0e5eff12bc52f037df04040d8d704c4ff Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 30 Jan 2026 07:17:41 +0000 Subject: [PATCH 023/350] chore(deps): update dependency @braintree/sanitize-url to v7.1.2 --- apps/server/package.json | 2 +- pnpm-lock.yaml | 13 +++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/apps/server/package.json b/apps/server/package.json index 6cc114e46f..76e6b76845 100644 --- a/apps/server/package.json +++ b/apps/server/package.json @@ -36,7 +36,7 @@ }, "devDependencies": { "@anthropic-ai/sdk": "0.72.1", - "@braintree/sanitize-url": "7.1.1", + "@braintree/sanitize-url": "7.1.2", "@electron/remote": "2.1.3", "@triliumnext/commons": "workspace:*", "@triliumnext/express-partial-content": "workspace:*", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b1cfc03d23..26c3fb1c8a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -523,8 +523,8 @@ importers: specifier: 0.72.1 version: 0.72.1(zod@4.1.12) '@braintree/sanitize-url': - specifier: 7.1.1 - version: 7.1.1 + specifier: 7.1.2 + version: 7.1.2 '@electron/remote': specifier: 2.1.3 version: 2.1.3(electron@40.1.0) @@ -1792,6 +1792,9 @@ packages: '@braintree/sanitize-url@7.1.1': resolution: {integrity: sha512-i1L7noDNxtFyL5DmZafWy1wRVhGehQmzZaz1HiN5e7iylJMSZR7ekOV7NsIqa5qBldlLrsKv4HbgFUVlQrz8Mw==} + '@braintree/sanitize-url@7.1.2': + resolution: {integrity: sha512-jigsZK+sMF/cuiB7sERuo9V7N9jx+dhmHHnQyDSVdpZwVutaBu7WvNYqMDLSgFgfB30n452TP3vjDAvFC973mA==} + '@bufbuild/protobuf@2.10.2': resolution: {integrity: sha512-uFsRXwIGyu+r6AMdz+XijIIZJYpoWeYzILt5yZ2d3mCjQrWUTVpVD9WL/jZAbvp+Ed04rOhrsk7FiTcEDseB5A==} @@ -15827,6 +15830,8 @@ snapshots: '@braintree/sanitize-url@7.1.1': {} + '@braintree/sanitize-url@7.1.2': {} + '@bufbuild/protobuf@2.10.2': optional: true @@ -16259,8 +16264,6 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-editor-multi-root@47.4.0': dependencies: @@ -16283,8 +16286,6 @@ snapshots: '@ckeditor/ckeditor5-table': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-emoji@47.4.0': dependencies: From 6424d967034d85f915f1d3473bdb7c068144c4ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kim=20N=C3=B8glegaard?= Date: Fri, 30 Jan 2026 14:09:30 +0100 Subject: [PATCH 024/350] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegi?= =?UTF-8?q?an=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 6.9% (27 of 388 strings) Translation: Trilium Notes/Server Translate-URL: https://hosted.weblate.org/projects/trilium/server/nb_NO/ --- apps/server/src/assets/translations/nb-NO/server.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/server/src/assets/translations/nb-NO/server.json b/apps/server/src/assets/translations/nb-NO/server.json index 4d2244f62b..c442294285 100644 --- a/apps/server/src/assets/translations/nb-NO/server.json +++ b/apps/server/src/assets/translations/nb-NO/server.json @@ -25,7 +25,8 @@ "login": { "title": "Logg inn", "password": "Passord", - "button": "Logg inn" + "button": "Logg inn", + "remember-me": "Husk meg" }, "setup_sync-from-server": { "server-host-placeholder": "https://:", From 1539a6eabc0eb4c60c0ff5c3e00b2ff3e4fa6f1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kim=20N=C3=B8glegaard?= Date: Fri, 30 Jan 2026 14:08:42 +0100 Subject: [PATCH 025/350] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegi?= =?UTF-8?q?an=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 43.9% (51 of 116 strings) Translation: Trilium Notes/README Translate-URL: https://hosted.weblate.org/projects/trilium/readme/nb_NO/ --- docs/README-nb_NO.md | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/docs/README-nb_NO.md b/docs/README-nb_NO.md index f4ebb15319..43e29db665 100644 --- a/docs/README-nb_NO.md +++ b/docs/README-nb_NO.md @@ -76,21 +76,21 @@ Vår dokumentasjon er tilgjengelig i flere format: * Support for editing [notes with source code](https://docs.triliumnotes.org/user-guide/note-types/code), including syntax highlighting -* Fast and easy [navigation between - notes](https://docs.triliumnotes.org/user-guide/concepts/navigation/note-navigation), - full text search and [note - hoisting](https://docs.triliumnotes.org/user-guide/concepts/navigation/note-hoisting) +* Rask og enkel [navigering mellom + notater](https://docs.triliumnotes.org/user-guide/concepts/navigation/note-navigation), + fulltekstsøk og + [notat-fokusering](https://docs.triliumnotes.org/user-guide/concepts/navigation/note-hoisting) * Sømløs [notathistorikk](https://docs.triliumnotes.org/user-guide/concepts/notes/note-revisions) -* Note - [attributes](https://docs.triliumnotes.org/user-guide/advanced-usage/attributes) - can be used for note organization, querying and advanced - [scripting](https://docs.triliumnotes.org/user-guide/scripts) -* UI available in English, German, Spanish, French, Romanian, and Chinese - (simplified and traditional) -* Direct [OpenID and TOTP - integration](https://docs.triliumnotes.org/user-guide/setup/server/mfa) for - more secure login +* Notaters + [attributter](https://docs.triliumnotes.org/user-guide/advanced-usage/attributes) + kan brukes til å organisere notater, utføre spørringer og avansert + [skripting](https://docs.triliumnotes.org/user-guide/scripts) +* Brukergrensesnitt tilgjengelig på Engelsk, Tysk, Spansk, Fransk, Rumensk, og + Kinesisk (forenklet og tradisjonell) +* Direkte [OpenID og + TOTP-integrasjon](https://docs.triliumnotes.org/user-guide/setup/server/mfa) + for sikrere pålogging * [Synkronisering](https://docs.triliumnotes.org/user-guide/setup/synchronization) med selv-hostet sync server * there are [3rd party services for hosting synchronisation From 85f2ec9d9282d135a10fc5072ebb8dc866c8b922 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Fri, 30 Jan 2026 19:15:19 +0200 Subject: [PATCH 026/350] test(server): reduce parallel number of workers to avoid OOM in CI --- apps/server/vite.config.mts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/server/vite.config.mts b/apps/server/vite.config.mts index 4d5b3e1362..e731a385cb 100644 --- a/apps/server/vite.config.mts +++ b/apps/server/vite.config.mts @@ -28,6 +28,7 @@ export default defineConfig(() => ({ provider: 'v8' as const, reporter: [ "text", "html" ] }, - pool: "vmForks" + pool: "vmForks", + maxWorkers: 8 }, })); From de7687b3abb78f6666e46f18fed865d2016408bf Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Fri, 30 Jan 2026 19:27:23 +0200 Subject: [PATCH 027/350] chore(deps): audit --- package.json | 18 ++- pnpm-lock.yaml | 350 ++++++++++++++++++------------------------------- 2 files changed, 142 insertions(+), 226 deletions(-) diff --git a/package.json b/package.json index 0591239cd9..129efb1dca 100644 --- a/package.json +++ b/package.json @@ -115,7 +115,23 @@ "on-headers@<1.1.0": ">=1.1.0", "form-data@>=4.0.0 <4.0.4": ">=4.0.4", "form-data@>=3.0.0 <3.0.4": ">=3.0.4", - "node-abi": "4.26.0" + "node-abi": "4.26.0", + "validator@<13.15.20": ">=13.15.20", + "tmp@<=0.2.3": ">=0.2.4", + "glob@>=10.2.0 <10.5.0": ">=10.5.0", + "glob@>=11.0.0 <11.1.0": ">=11.1.0", + "node-forge@<1.3.2": ">=1.3.2", + "mdast-util-to-hast@>=13.0.0 <13.2.1": ">=13.2.1", + "validator@<13.15.22": ">=13.15.22", + "qs@<6.14.1": ">=6.14.1", + "@smithy/config-resolver@<4.4.0": ">=4.4.0", + "tar@<=7.5.2": ">=7.5.3", + "tar@<=7.5.3": ">=7.5.4", + "lodash-es@>=4.0.0 <=4.17.22": ">=4.17.23", + "lodash@>=4.0.0 <=4.17.22": ">=4.17.23", + "diff@<4.0.4": ">=4.0.4", + "diff@>=6.0.0 <8.0.3": ">=8.0.3", + "tar@<7.5.7": ">=7.5.7" }, "ignoredBuiltDependencies": [ "sqlite3" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f011b6242e..dd2f00e6f5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -21,6 +21,22 @@ overrides: form-data@>=4.0.0 <4.0.4: '>=4.0.4' form-data@>=3.0.0 <3.0.4: '>=3.0.4' node-abi: 4.26.0 + validator@<13.15.20: '>=13.15.20' + tmp@<=0.2.3: '>=0.2.4' + glob@>=10.2.0 <10.5.0: '>=10.5.0' + glob@>=11.0.0 <11.1.0: '>=11.1.0' + node-forge@<1.3.2: '>=1.3.2' + mdast-util-to-hast@>=13.0.0 <13.2.1: '>=13.2.1' + validator@<13.15.22: '>=13.15.22' + qs@<6.14.1: '>=6.14.1' + '@smithy/config-resolver@<4.4.0': '>=4.4.0' + tar@<=7.5.2: '>=7.5.3' + tar@<=7.5.3: '>=7.5.4' + lodash-es@>=4.0.0 <=4.17.22: '>=4.17.23' + lodash@>=4.0.0 <=4.17.22: '>=4.17.23' + diff@<4.0.4: '>=4.0.4' + diff@>=6.0.0 <8.0.3: '>=8.0.3' + tar@<7.5.7: '>=7.5.7' patchedDependencies: '@ckeditor/ckeditor5-code-block': @@ -5025,8 +5041,8 @@ packages: resolution: {integrity: sha512-peuVfkYHAmS5ybKxWcfraK7WBBP0J+rkfUcbHJJKQ4ir3UAUNQI+Y4Vt/PqSzGqgloJ5O1dk7+WzNL8wcCSXbw==} engines: {node: '>=18.0.0'} - '@smithy/config-resolver@4.1.4': - resolution: {integrity: sha512-prmU+rDddxHOH0oNcwemL+SwnzcG65sBF2yXRO7aeXIn/xTlq2pX7JLVbkBnVLowHLg4/OL4+jBmv9hVrVGS+w==} + '@smithy/config-resolver@4.4.6': + resolution: {integrity: sha512-qJpzYC64kaj3S0fueiu3kXm8xPrR3PcXDPEgnaNMRn0EjNSZFoFjvbUp0YUDsRhN1CB90EnHJtbxWKevnH99UQ==} engines: {node: '>=18.0.0'} '@smithy/core@3.21.1': @@ -5181,6 +5197,10 @@ packages: resolution: {integrity: sha512-L1RBVzLyfE8OXH+1hsJ8p+acNUSirQnWQ6/EgpchV88G6zGBTDPdXiiExei6Z1wR2RxYvxY/XLw6AMNCCt8H3w==} engines: {node: '>=18.0.0'} + '@smithy/util-config-provider@4.2.0': + resolution: {integrity: sha512-YEjpl6XJ36FTKmD+kRJJWYvrHeUvm5ykaUS5xK+6oXffQPHeEM4/nXlZPe+Wu0lsgRUcNZiliYNh/y7q9c2y6Q==} + engines: {node: '>=18.0.0'} + '@smithy/util-defaults-mode-browser@4.0.22': resolution: {integrity: sha512-hjElSW18Wq3fUAWVk6nbk7pGrV7ZT14DL1IUobmqhV3lxcsIenr5FUsDe2jlTVaS8OYBI3x+Og9URv5YcKb5QA==} engines: {node: '>=18.0.0'} @@ -5193,6 +5213,10 @@ packages: resolution: {integrity: sha512-YARl3tFL3WgPuLzljRUnrS2ngLiUtkwhQtj8PAL13XZSyUiNLQxwG3fBBq3QXFqGFUXepIN73pINp3y8c2nBmA==} engines: {node: '>=18.0.0'} + '@smithy/util-endpoints@3.2.8': + resolution: {integrity: sha512-8JaVTn3pBDkhZgHQ8R0epwWt+BqPSLCjdjXXusK1onwJlRuN69fbvSK66aIKKO7SwVFM6x2J2ox5X8pOaWcUEw==} + engines: {node: '>=18.0.0'} + '@smithy/util-hex-encoding@4.2.0': resolution: {integrity: sha512-CCQBwJIvXMLKxVbO88IukazJD9a4kQ9ZN7/UMGBjBcJYvatpWk+9g870El4cB8/EJxfe+k+y0GmR9CAzkF+Nbw==} engines: {node: '>=18.0.0'} @@ -7971,18 +7995,6 @@ packages: di@0.0.1: resolution: {integrity: sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==} - diff@4.0.2: - resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} - engines: {node: '>=0.3.1'} - - diff@7.0.0: - resolution: {integrity: sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==} - engines: {node: '>=0.3.1'} - - diff@8.0.2: - resolution: {integrity: sha512-sSuxWU5j5SR9QQji/o2qMvqRNYRDOcBTgsJ/DeCf4iSN4gW+gNMXM7wFIP+fdXZxoNiAnHUTGjCr+TSWXdRDKg==} - engines: {node: '>=0.3.1'} - diff@8.0.3: resolution: {integrity: sha512-qejHi7bcSD4hQAZE0tNAawRK1ZtafHDmMTMkrrIGgSLl7hTnQHmKCeB45xAcbfTqK2zowkM3j3bHt/4b/ARbYQ==} engines: {node: '>=0.3.1'} @@ -9027,19 +9039,10 @@ packages: glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} - glob@10.4.5: - resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} - hasBin: true - glob@10.5.0: resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==} hasBin: true - glob@11.0.3: - resolution: {integrity: sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==} - engines: {node: 20 || >=22} - hasBin: true - glob@13.0.0: resolution: {integrity: sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA==} engines: {node: 20 || >=22} @@ -9943,10 +9946,6 @@ packages: jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} - jackspeak@4.1.1: - resolution: {integrity: sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==} - engines: {node: 20 || >=22} - jake@10.9.2: resolution: {integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==} engines: {node: '>=10'} @@ -10414,9 +10413,6 @@ packages: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} - lodash-es@4.17.21: - resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} - lodash-es@4.17.23: resolution: {integrity: sha512-kVI48u3PZr38HdYz98UmfPnXl2DXrpdctLrFLCd3kOx1xUkOmpFPx7gCWWM5MPkL/fD8zb+Ph0QzjGFs4+hHWg==} @@ -10470,8 +10466,8 @@ packages: lodash.zip@4.2.0: resolution: {integrity: sha512-C7IOaBBK/0gMORRBd8OETNx3kmOkgIWIPvyDpZSCTwUrpYmgZwJkjZeOD8ww4xbOUOs4/attY+pciKvadNfFbg==} - lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + lodash@4.17.23: + resolution: {integrity: sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==} log-symbols@4.1.0: resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} @@ -10676,8 +10672,8 @@ packages: mdast-util-phrasing@4.1.0: resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} - mdast-util-to-hast@13.2.0: - resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==} + mdast-util-to-hast@13.2.1: + resolution: {integrity: sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==} mdast-util-to-markdown@2.1.2: resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} @@ -10956,10 +10952,6 @@ packages: resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} engines: {node: '>=8'} - minipass@5.0.0: - resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} - engines: {node: '>=8'} - minipass@7.1.2: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} @@ -10987,11 +10979,6 @@ packages: engines: {node: '>=10'} hasBin: true - mkdirp@3.0.1: - resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} - engines: {node: '>=10'} - hasBin: true - mlly@1.7.4: resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==} @@ -11195,8 +11182,8 @@ packages: resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - node-forge@1.3.1: - resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} + node-forge@1.3.3: + resolution: {integrity: sha512-rLvcdSyRCyouf6jcOIPe/BgwG/d7hKjzMKOas33/pHEr6gbq18IK9zV7DiPvzsz0oBJPme6qr6H6kGZuI9/DZg==} engines: {node: '>= 6.13.0'} node-gyp-build@4.8.4: @@ -11480,10 +11467,6 @@ packages: resolution: {integrity: sha512-jd0cvB8qQ5uVt0lvCIexBaROw1KyKm5sbulg2fWOHjETisuCzWyt+eTZKEMs8v6HwzoGs8xik26jg7eCM6pS+A==} engines: {node: '>= 0.4.0'} - os-tmpdir@1.0.2: - resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} - engines: {node: '>=0.10.0'} - outdent@0.8.0: resolution: {integrity: sha512-KiOAIsdpUTcAXuykya5fnVVT+/5uS0Q1mrkRHcF89tpieSmY33O/tmc54CqwA+bfhbtEfZUNLHaPUiB9X3jt1A==} @@ -12450,14 +12433,6 @@ packages: resolution: {integrity: sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==} engines: {node: '>=0.9'} - qs@6.13.0: - resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} - engines: {node: '>=0.6'} - - qs@6.14.0: - resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==} - engines: {node: '>=0.6'} - qs@6.14.1: resolution: {integrity: sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==} engines: {node: '>=0.6'} @@ -13921,16 +13896,6 @@ packages: tar-stream@3.1.7: resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} - tar@6.2.1: - resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} - engines: {node: '>=10'} - deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exhorbitant rates) by contacting i@izs.me - - tar@7.4.3: - resolution: {integrity: sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==} - engines: {node: '>=18'} - deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exhorbitant rates) by contacting i@izs.me - tar@7.5.7: resolution: {integrity: sha512-fov56fJiRuThVFXD6o6/Q354S7pnWMJIVlDBYijsTNx6jKSE4pvrDTs6lUnmGvNyfJwFQQwWy3owKz1ucIhveQ==} engines: {node: '>=18'} @@ -14035,10 +14000,6 @@ packages: tmp-promise@3.0.3: resolution: {integrity: sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==} - tmp@0.0.33: - resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} - engines: {node: '>=0.6.0'} - tmp@0.2.5: resolution: {integrity: sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==} engines: {node: '>=14.14'} @@ -14547,8 +14508,8 @@ packages: resolution: {integrity: sha512-IUoow1YUtvoBBC06dXs8bR8B9vuA3aJfmQNKMoaPG/OFsPmoQvw8xh+6Ye25Gx9DQhoEom3Pcu9MKHerm/NpUQ==} engines: {node: ^18.17.0 || >=20.5.0} - validator@13.15.0: - resolution: {integrity: sha512-36B2ryl4+oL5QxZ3AzD0t5SsMNGvTtQHpjgFO5tbNxfXbMFkY822ktCDe1MnlqV3301QQI9SLHDNJokDI+Z9pA==} + validator@13.15.26: + resolution: {integrity: sha512-spH26xU080ydGggxRyR1Yhcbgx+j3y5jbNXk/8L+iRvdIEQ4uTRH2Sgf2dokud6Q4oAtsbNvJ1Ft+9xmm6IZcA==} engines: {node: '>= 0.10'} value-equal@1.0.1: @@ -15298,7 +15259,7 @@ snapshots: '@aws-sdk/util-endpoints': 3.821.0 '@aws-sdk/util-user-agent-browser': 3.821.0 '@aws-sdk/util-user-agent-node': 3.823.0 - '@smithy/config-resolver': 4.1.4 + '@smithy/config-resolver': 4.4.6 '@smithy/core': 3.21.1 '@smithy/eventstream-serde-browser': 4.0.4 '@smithy/eventstream-serde-config-resolver': 4.1.2 @@ -15347,7 +15308,7 @@ snapshots: '@aws-sdk/util-endpoints': 3.821.0 '@aws-sdk/util-user-agent-browser': 3.821.0 '@aws-sdk/util-user-agent-node': 3.823.0 - '@smithy/config-resolver': 4.1.4 + '@smithy/config-resolver': 4.4.6 '@smithy/core': 3.21.1 '@smithy/fetch-http-handler': 5.3.9 '@smithy/hash-node': 4.0.4 @@ -15541,7 +15502,7 @@ snapshots: '@aws-sdk/util-endpoints': 3.821.0 '@aws-sdk/util-user-agent-browser': 3.821.0 '@aws-sdk/util-user-agent-node': 3.823.0 - '@smithy/config-resolver': 4.1.4 + '@smithy/config-resolver': 4.4.6 '@smithy/core': 3.21.1 '@smithy/fetch-http-handler': 5.3.9 '@smithy/hash-node': 4.0.4 @@ -15827,12 +15788,12 @@ snapshots: dependencies: '@chevrotain/gast': 11.0.3 '@chevrotain/types': 11.0.3 - lodash-es: 4.17.21 + lodash-es: 4.17.23 '@chevrotain/gast@11.0.3': dependencies: '@chevrotain/types': 11.0.3 - lodash-es: 4.17.21 + lodash-es: 4.17.23 '@chevrotain/regexp-to-ast@11.0.3': {} @@ -15859,6 +15820,8 @@ snapshots: '@ckeditor/ckeditor5-core': 47.4.0 '@ckeditor/ckeditor5-upload': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-ai@47.4.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)': dependencies: @@ -15877,7 +15840,7 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 ckeditor5-collaboration: 47.4.0 - diff: 8.0.2 + diff: 8.0.3 dom-serializer: 2.0.0 domhandler: 5.0.3 domutils: 3.2.2 @@ -15999,12 +15962,16 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 '@ckeditor/ckeditor5-widget': 47.4.0 es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-cloud-services@47.4.0': dependencies: '@ckeditor/ckeditor5-core': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-code-block@47.4.0(patch_hash=2361d8caad7d6b5bddacc3a3b4aa37dbfba260b1c1b22a450413a79c1bb1ce95)': dependencies: @@ -16034,7 +16001,7 @@ snapshots: '@ckeditor/ckeditor5-widget': 47.4.0 '@types/luxon': 3.6.2 ckeditor5: 47.4.0 - diff: 8.0.2 + diff: 8.0.3 luxon: 3.6.1 transitivePeerDependencies: - supports-color @@ -16111,7 +16078,7 @@ snapshots: '@ckeditor/ckeditor5-dev-utils': 54.0.0(@babel/core@7.28.0)(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.27.2)(typescript@5.0.4)(webpack@5.101.3(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.27.2)) chalk: 5.6.2 fs-extra: 11.3.3 - glob: 11.0.3 + glob: 13.0.0 plural-forms: 0.5.5 pofile: 1.1.4 rimraf: 6.0.1 @@ -16140,7 +16107,7 @@ snapshots: cssnano: 7.1.1(postcss@8.5.6) esbuild-loader: 4.3.0(webpack@5.101.3(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.27.2)) fs-extra: 11.3.3 - glob: 11.0.3 + glob: 13.0.0 is-interactive: 2.0.0 mini-css-extract-plugin: 2.9.4(webpack@5.101.3(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.27.2)) mocha: 11.7.2 @@ -16197,6 +16164,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-editor-classic@47.4.0': dependencies: @@ -16206,6 +16175,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-editor-decoupled@47.4.0': dependencies: @@ -16215,6 +16186,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-editor-inline@47.4.0': dependencies: @@ -16224,6 +16197,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-editor-multi-root@47.4.0': dependencies: @@ -16302,8 +16277,6 @@ snapshots: '@ckeditor/ckeditor5-ui': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-export-word@47.4.0': dependencies: @@ -16328,6 +16301,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-font@47.4.0': dependencies: @@ -16402,6 +16377,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 '@ckeditor/ckeditor5-widget': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-html-embed@47.4.0': dependencies: @@ -16461,8 +16438,6 @@ snapshots: '@ckeditor/ckeditor5-ui': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-indent@47.4.0': dependencies: @@ -16586,8 +16561,6 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-merge-fields@47.4.0': dependencies: @@ -16600,8 +16573,6 @@ snapshots: '@ckeditor/ckeditor5-widget': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-minimap@47.4.0': dependencies: @@ -16610,8 +16581,6 @@ snapshots: '@ckeditor/ckeditor5-ui': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-operations-compressor@47.4.0': dependencies: @@ -16628,7 +16597,7 @@ snapshots: chalk: 5.6.2 css-loader: 5.2.7(webpack@5.101.3(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.27.2)) fs-extra: 11.3.3 - glob: 11.0.3 + glob: 13.0.0 minimist: 1.2.8 postcss: 8.5.6 postcss-loader: 4.3.0(postcss@8.5.6)(webpack@5.101.3(@swc/core@1.11.29(@swc/helpers@0.5.17))(esbuild@0.27.2)) @@ -16666,8 +16635,6 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 '@ckeditor/ckeditor5-widget': 47.4.0 ckeditor5: 47.4.0 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-pagination@47.4.0': dependencies: @@ -16775,8 +16742,6 @@ snapshots: '@ckeditor/ckeditor5-ui': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-slash-command@47.4.0': dependencies: @@ -16789,8 +16754,6 @@ snapshots: '@ckeditor/ckeditor5-ui': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-source-editing-enhanced@47.4.0': dependencies: @@ -16838,8 +16801,6 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-table@47.4.0': dependencies: @@ -16852,8 +16813,6 @@ snapshots: '@ckeditor/ckeditor5-widget': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-template@47.4.0': dependencies: @@ -16964,8 +16923,6 @@ snapshots: '@ckeditor/ckeditor5-engine': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-widget@47.4.0': dependencies: @@ -16985,8 +16942,6 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@codemirror/autocomplete@6.18.6': dependencies: @@ -17223,7 +17178,7 @@ snapshots: bluebird: 3.7.2 commander: 9.5.0 debug: 4.3.7 - node-forge: 1.3.1 + node-forge: 1.3.3 split: 1.0.1 transitivePeerDependencies: - supports-color @@ -17307,7 +17262,7 @@ snapshots: interpret: 3.1.1 jiti: 2.6.1 listr2: 7.0.2 - lodash: 4.17.21 + lodash: 4.17.23 log-symbols: 4.1.0 node-fetch: 2.7.0(encoding@0.1.13) rechoir: 0.8.0 @@ -17531,7 +17486,7 @@ snapshots: nopt: 6.0.0 proc-log: 2.0.1 semver: 7.7.3 - tar: 6.2.1 + tar: 7.5.7 which: 2.0.2 transitivePeerDependencies: - bluebird @@ -17594,7 +17549,7 @@ snapshots: ora: 5.4.1 read-binary-file-arch: 1.0.6 semver: 7.7.3 - tar: 6.2.1 + tar: 7.5.7 yargs: 17.7.2 transitivePeerDependencies: - bluebird @@ -18919,7 +18874,7 @@ snapshots: '@malept/flatpak-bundler': 0.4.0 debug: 4.4.3(supports-color@8.1.1) electron-installer-common: 0.10.4 - lodash: 4.17.21 + lodash: 4.17.23 semver: 7.7.3 yargs: 16.2.0 transitivePeerDependencies: @@ -18930,7 +18885,7 @@ snapshots: dependencies: debug: 4.4.3(supports-color@8.1.1) fs-extra: 9.1.0 - lodash: 4.17.21 + lodash: 4.17.23 tmp-promise: 3.0.3 transitivePeerDependencies: - supports-color @@ -19004,7 +18959,7 @@ snapshots: '@rushstack/rig-package': 0.5.3 '@rushstack/terminal': 0.15.3(@types/node@24.10.9) '@rushstack/ts-command-line': 5.0.1(@types/node@24.10.9) - lodash: 4.17.21 + lodash: 4.17.23 minimatch: 3.0.8 resolve: 1.22.10 semver: 7.5.4 @@ -19178,7 +19133,7 @@ snapshots: '@npmcli/package-json@7.0.0': dependencies: '@npmcli/git': 6.0.3 - glob: 11.0.3 + glob: 13.0.0 hosted-git-info: 9.0.0 json-parse-even-better-errors: 4.0.0 proc-log: 5.0.0 @@ -19780,7 +19735,7 @@ snapshots: colorette: 1.4.0 cookie: 0.7.2 dotenv: 16.4.7 - glob: 11.0.3 + glob: 13.0.0 handlebars: 4.7.8 https-proxy-agent: 7.0.6 mobx: 6.15.0 @@ -20170,11 +20125,12 @@ snapshots: '@smithy/types': 4.12.0 tslib: 2.8.1 - '@smithy/config-resolver@4.1.4': + '@smithy/config-resolver@4.4.6': dependencies: '@smithy/node-config-provider': 4.3.8 '@smithy/types': 4.12.0 - '@smithy/util-config-provider': 4.0.0 + '@smithy/util-config-provider': 4.2.0 + '@smithy/util-endpoints': 3.2.8 '@smithy/util-middleware': 4.2.8 tslib: 2.8.1 @@ -20435,6 +20391,10 @@ snapshots: dependencies: tslib: 2.8.1 + '@smithy/util-config-provider@4.2.0': + dependencies: + tslib: 2.8.1 + '@smithy/util-defaults-mode-browser@4.0.22': dependencies: '@smithy/property-provider': 4.2.8 @@ -20445,7 +20405,7 @@ snapshots: '@smithy/util-defaults-mode-node@4.0.22': dependencies: - '@smithy/config-resolver': 4.1.4 + '@smithy/config-resolver': 4.4.6 '@smithy/credential-provider-imds': 4.0.6 '@smithy/node-config-provider': 4.3.8 '@smithy/property-provider': 4.2.8 @@ -20459,6 +20419,12 @@ snapshots: '@smithy/types': 4.12.0 tslib: 2.8.1 + '@smithy/util-endpoints@3.2.8': + dependencies: + '@smithy/node-config-provider': 4.3.8 + '@smithy/types': 4.12.0 + tslib: 2.8.1 + '@smithy/util-hex-encoding@4.2.0': dependencies: tslib: 2.8.1 @@ -21629,7 +21595,7 @@ snapshots: '@wdio/types': 9.23.2 '@wdio/utils': 9.23.2 deepmerge-ts: 7.1.5 - glob: 10.5.0 + glob: 13.0.0 import-meta-resolve: 4.2.0 transitivePeerDependencies: - bare-buffer @@ -21998,7 +21964,7 @@ snapshots: graceful-fs: 4.2.11 is-stream: 2.0.1 lazystream: 1.0.1 - lodash: 4.17.21 + lodash: 4.17.23 normalize-path: 3.0.0 readable-stream: 4.7.0 @@ -22294,7 +22260,7 @@ snapshots: http-errors: 2.0.0 iconv-lite: 0.4.24 on-finished: 2.4.1 - qs: 6.13.0 + qs: 6.14.1 raw-body: 2.5.2 type-is: 1.6.18 unpipe: 1.0.0 @@ -22309,7 +22275,7 @@ snapshots: http-errors: 2.0.1 iconv-lite: 0.7.0 on-finished: 2.4.1 - qs: 6.14.0 + qs: 6.14.1 raw-body: 3.0.2 type-is: 2.0.1 transitivePeerDependencies: @@ -22473,7 +22439,7 @@ snapshots: promise-inflight: 1.0.1 rimraf: 3.0.2 ssri: 8.0.1 - tar: 6.2.1 + tar: 7.5.7 unique-filename: 1.1.1 transitivePeerDependencies: - bluebird @@ -22497,7 +22463,7 @@ snapshots: promise-inflight: 1.0.1 rimraf: 3.0.2 ssri: 9.0.1 - tar: 6.2.1 + tar: 7.5.7 unique-filename: 2.0.1 transitivePeerDependencies: - bluebird @@ -22506,7 +22472,7 @@ snapshots: dependencies: '@npmcli/fs': 4.0.0 fs-minipass: 3.0.3 - glob: 10.5.0 + glob: 13.0.0 lru-cache: 10.4.3 minipass: 7.1.2 minipass-collect: 2.0.1 @@ -22521,7 +22487,7 @@ snapshots: dependencies: '@npmcli/fs': 4.0.0 fs-minipass: 3.0.3 - glob: 11.0.3 + glob: 13.0.0 lru-cache: 11.2.4 minipass: 7.1.2 minipass-collect: 2.0.1 @@ -22677,7 +22643,7 @@ snapshots: '@chevrotain/regexp-to-ast': 11.0.3 '@chevrotain/types': 11.0.3 '@chevrotain/utils': 11.0.3 - lodash-es: 4.17.21 + lodash-es: 4.17.23 chokidar@3.6.0: dependencies: @@ -23825,12 +23791,6 @@ snapshots: di@0.0.1: {} - diff@4.0.2: {} - - diff@7.0.0: {} - - diff@8.0.2: {} - diff@8.0.3: {} dir-compare@4.2.0: @@ -23923,7 +23883,7 @@ snapshots: dependencies: chalk: 4.1.2 fs-extra: 11.3.3 - glob: 10.4.5 + glob: 13.0.0 ora: 5.4.1 tslib: 2.8.1 typescript: 5.9.3 @@ -23996,7 +23956,7 @@ snapshots: debug: 4.4.3(supports-color@8.1.1) fs-extra: 9.1.0 glob: 7.2.3 - lodash: 4.17.21 + lodash: 4.17.23 parse-author: 2.0.0 semver: 7.7.3 tmp-promise: 3.0.3 @@ -24013,7 +23973,7 @@ snapshots: electron-installer-common: 0.10.4 fs-extra: 9.1.0 get-folder-size: 2.0.1 - lodash: 4.17.21 + lodash: 4.17.23 word-wrap: 1.2.5 yargs: 16.2.0 transitivePeerDependencies: @@ -24037,7 +23997,7 @@ snapshots: debug: 4.4.3(supports-color@8.1.1) electron-installer-common: 0.10.4 fs-extra: 9.1.0 - lodash: 4.17.21 + lodash: 4.17.23 word-wrap: 1.2.5 yargs: 16.2.0 transitivePeerDependencies: @@ -24075,7 +24035,7 @@ snapshots: '@electron/asar': 3.4.1 debug: 4.4.3(supports-color@8.1.1) fs-extra: 7.0.1 - lodash: 4.17.21 + lodash: 4.17.23 temp: 0.9.4 optionalDependencies: '@electron/windows-sign': 1.2.1 @@ -24780,7 +24740,7 @@ snapshots: parseurl: 1.3.3 path-to-regexp: 0.1.12 proxy-addr: 2.0.7 - qs: 6.13.0 + qs: 6.14.1 range-parser: 1.2.1 safe-buffer: 5.2.1 send: 0.19.0 @@ -24815,7 +24775,7 @@ snapshots: once: 1.4.0 parseurl: 1.3.3 proxy-addr: 2.0.7 - qs: 6.14.0 + qs: 6.14.1 range-parser: 1.2.1 router: 2.2.0 send: 1.2.0 @@ -24849,7 +24809,7 @@ snapshots: dependencies: chardet: 0.7.0 iconv-lite: 0.4.24 - tmp: 0.0.33 + tmp: 0.2.5 extract-zip@2.0.1: dependencies: @@ -25082,7 +25042,7 @@ snapshots: float-tooltip: 1.7.5 index-array-by: 1.4.2 kapsule: 1.16.3 - lodash-es: 4.17.21 + lodash-es: 4.17.23 foreach@2.0.6: {} @@ -25364,15 +25324,6 @@ snapshots: glob-to-regexp@0.4.1: {} - glob@10.4.5: - dependencies: - foreground-child: 3.3.1 - jackspeak: 3.4.3 - minimatch: 9.0.5 - minipass: 7.1.2 - package-json-from-dist: 1.0.1 - path-scurry: 1.11.1 - glob@10.5.0: dependencies: foreground-child: 3.3.1 @@ -25382,15 +25333,6 @@ snapshots: package-json-from-dist: 1.0.1 path-scurry: 1.11.1 - glob@11.0.3: - dependencies: - foreground-child: 3.3.1 - jackspeak: 4.1.1 - minimatch: 10.1.1 - minipass: 7.1.2 - package-json-from-dist: 1.0.1 - path-scurry: 2.0.0 - glob@13.0.0: dependencies: minimatch: 10.1.1 @@ -25640,7 +25582,7 @@ snapshots: comma-separated-tokens: 2.0.3 hast-util-whitespace: 3.0.0 html-void-elements: 3.0.0 - mdast-util-to-hast: 13.2.0 + mdast-util-to-hast: 13.2.1 property-information: 7.1.0 space-separated-tokens: 2.0.2 stringify-entities: 4.0.4 @@ -25656,7 +25598,7 @@ snapshots: hast-util-to-text: 4.0.2 hast-util-whitespace: 3.0.0 mdast-util-phrasing: 4.1.0 - mdast-util-to-hast: 13.2.0 + mdast-util-to-hast: 13.2.1 mdast-util-to-string: 4.0.0 rehype-minify-whitespace: 6.0.2 trim-trailing-lines: 2.1.0 @@ -26370,10 +26312,6 @@ snapshots: optionalDependencies: '@pkgjs/parseargs': 0.11.0 - jackspeak@4.1.1: - dependencies: - '@isaacs/cliui': 8.0.2 - jake@10.9.2: dependencies: async: 3.2.6 @@ -26644,7 +26582,7 @@ snapshots: graceful-fs: 4.2.11 http-proxy: 1.18.1 isbinaryfile: 4.0.10 - lodash: 4.17.21 + lodash: 4.17.23 log4js: 6.9.1 mime: 2.6.0 minimatch: 3.1.2 @@ -26918,8 +26856,6 @@ snapshots: dependencies: p-locate: 5.0.0 - lodash-es@4.17.21: {} - lodash-es@4.17.23: {} lodash.clonedeep@4.5.0: {} @@ -26954,7 +26890,7 @@ snapshots: lodash.zip@4.2.0: {} - lodash@4.17.21: {} + lodash@4.17.23: {} log-symbols@4.1.0: dependencies: @@ -27315,7 +27251,7 @@ snapshots: '@types/mdast': 4.0.4 unist-util-is: 6.0.0 - mdast-util-to-hast@13.2.0: + mdast-util-to-hast@13.2.1: dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 @@ -27400,7 +27336,7 @@ snapshots: dompurify: 3.2.5 katex: 0.16.28 khroma: 2.1.0 - lodash-es: 4.17.21 + lodash-es: 4.17.23 marked: 16.4.2 roughjs: 4.6.6 stylis: 4.3.6 @@ -27729,8 +27665,6 @@ snapshots: dependencies: yallist: 4.0.0 - minipass@5.0.0: {} - minipass@7.1.2: {} minizlib@2.1.2: @@ -27752,8 +27686,6 @@ snapshots: mkdirp@1.0.4: {} - mkdirp@3.0.1: {} - mlly@1.7.4: dependencies: acorn: 8.15.0 @@ -27791,10 +27723,10 @@ snapshots: browser-stdout: 1.3.1 chokidar: 4.0.3 debug: 4.4.3(supports-color@8.1.1) - diff: 7.0.0 + diff: 8.0.3 escape-string-regexp: 4.0.0 find-up: 5.0.0 - glob: 10.5.0 + glob: 13.0.0 he: 1.2.0 js-yaml: 4.1.1 log-symbols: 4.1.0 @@ -27970,7 +27902,7 @@ snapshots: fetch-blob: 3.2.0 formdata-polyfill: 4.0.10 - node-forge@1.3.1: {} + node-forge@1.3.3: {} node-gyp-build@4.8.4: optional: true @@ -28000,7 +27932,7 @@ snapshots: npmlog: 6.0.2 rimraf: 3.0.2 semver: 7.7.3 - tar: 6.2.1 + tar: 7.5.7 which: 2.0.2 transitivePeerDependencies: - bluebird @@ -28344,8 +28276,6 @@ snapshots: os-shim@0.1.3: {} - os-tmpdir@1.0.2: {} - outdent@0.8.0: {} outvariant@1.4.3: @@ -28451,7 +28381,7 @@ snapshots: promise-retry: 2.0.1 sigstore: 4.0.0 ssri: 12.0.0 - tar: 7.4.3 + tar: 7.5.7 transitivePeerDependencies: - supports-color @@ -29299,7 +29229,7 @@ snapshots: purgecss@7.0.2: dependencies: commander: 12.1.0 - glob: 11.0.3 + glob: 13.0.0 postcss: 8.5.6 postcss-selector-parser: 6.1.2 @@ -29311,14 +29241,6 @@ snapshots: qjobs@1.2.0: {} - qs@6.13.0: - dependencies: - side-channel: 1.1.0 - - qs@6.14.0: - dependencies: - side-channel: 1.1.0 - qs@6.14.1: dependencies: side-channel: 1.1.0 @@ -29704,7 +29626,7 @@ snapshots: dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 - mdast-util-to-hast: 13.2.0 + mdast-util-to-hast: 13.2.1 unified: 11.0.5 vfile: 6.0.3 @@ -29803,7 +29725,7 @@ snapshots: rimraf@6.0.1: dependencies: - glob: 11.0.3 + glob: 13.0.0 package-json-from-dist: 1.0.1 roarr@2.15.4: @@ -30145,7 +30067,7 @@ snapshots: selfsigned@2.4.1: dependencies: '@types/node-forge': 1.3.14 - node-forge: 1.3.1 + node-forge: 1.3.3 semver-compare@1.0.0: optional: true @@ -30656,7 +30578,7 @@ snapshots: bindings: 1.5.0 node-addon-api: 7.1.1 prebuild-install: 7.1.3 - tar: 6.2.1 + tar: 7.5.7 optionalDependencies: node-gyp: 8.4.1 transitivePeerDependencies: @@ -31224,24 +31146,6 @@ snapshots: fast-fifo: 1.3.2 streamx: 2.23.0 - tar@6.2.1: - dependencies: - chownr: 2.0.0 - fs-minipass: 2.1.0 - minipass: 5.0.0 - minizlib: 2.1.2 - mkdirp: 1.0.4 - yallist: 4.0.0 - - tar@7.4.3: - dependencies: - '@isaacs/fs-minipass': 4.0.1 - chownr: 3.0.0 - minipass: 7.1.2 - minizlib: 3.1.0 - mkdirp: 3.0.1 - yallist: 5.0.0 - tar@7.5.7: dependencies: '@isaacs/fs-minipass': 4.0.1 @@ -31356,10 +31260,6 @@ snapshots: tmp: 0.2.5 optional: true - tmp@0.0.33: - dependencies: - os-tmpdir: 1.0.2 - tmp@0.2.5: {} tn1150@0.1.0: @@ -31463,7 +31363,7 @@ snapshots: acorn-walk: 8.3.4 arg: 4.1.3 create-require: 1.1.1 - diff: 4.0.2 + diff: 8.0.3 make-error: 1.3.6 typescript: 5.0.4 v8-compile-cache-lib: 3.0.1 @@ -31483,7 +31383,7 @@ snapshots: acorn-walk: 8.3.4 arg: 4.1.3 create-require: 1.1.1 - diff: 4.0.2 + diff: 8.0.3 make-error: 1.3.6 typescript: 5.9.3 v8-compile-cache-lib: 3.0.1 @@ -31731,7 +31631,7 @@ snapshots: union@0.5.0: dependencies: - qs: 6.14.0 + qs: 6.14.1 unique-filename@1.1.1: dependencies: @@ -31913,7 +31813,7 @@ snapshots: validate-npm-package-name@6.0.2: {} - validator@13.15.0: {} + validator@13.15.26: {} value-equal@1.0.1: {} @@ -32385,7 +32285,7 @@ snapshots: whatwg-url@8.7.0: dependencies: - lodash: 4.17.21 + lodash: 4.17.23 tr46: 2.1.0 webidl-conversions: 6.1.0 @@ -32718,7 +32618,7 @@ snapshots: dependencies: lodash.get: 4.4.2 lodash.isequal: 4.5.0 - validator: 13.15.0 + validator: 13.15.26 optionalDependencies: commander: 9.5.0 From 4a0b77dabbb54456965910fefabe230204b58c2f Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Fri, 30 Jan 2026 19:35:35 +0200 Subject: [PATCH 028/350] test(server): reduce server workers even further --- apps/server/vite.config.mts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/server/vite.config.mts b/apps/server/vite.config.mts index e731a385cb..62b4b09ade 100644 --- a/apps/server/vite.config.mts +++ b/apps/server/vite.config.mts @@ -29,6 +29,6 @@ export default defineConfig(() => ({ reporter: [ "text", "html" ] }, pool: "vmForks", - maxWorkers: 8 + maxWorkers: 6 }, })); From b6f7453ed9f0b777138265f7083096daf20f71b4 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Fri, 30 Jan 2026 21:32:34 +0200 Subject: [PATCH 029/350] fix(web-clipper): cropped screenshot not working in some versions of Chrome (closes #8528) --- apps/web-clipper/entrypoints/content/index.ts | 26 ++++++++++++------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/apps/web-clipper/entrypoints/content/index.ts b/apps/web-clipper/entrypoints/content/index.ts index d35f3d8970..26e5686669 100644 --- a/apps/web-clipper/entrypoints/content/index.ts +++ b/apps/web-clipper/entrypoints/content/index.ts @@ -69,7 +69,7 @@ export default defineContentScript({ } function getRectangleArea() { - return new Promise((resolve) => { + return new Promise((resolve) => { const overlay = document.createElement('div'); overlay.style.opacity = '0.6'; overlay.style.background = 'black'; @@ -177,6 +177,7 @@ export default defineContentScript({ console.info('selectionArea:', selectionArea); if (!selectionArea || !selectionArea.width || !selectionArea.height) { + resolve(null); return; } @@ -189,6 +190,7 @@ export default defineContentScript({ function cancel(event: KeyboardEvent) { if (event.key === "Escape") { removeOverlay(); + resolve(null); } } @@ -336,14 +338,20 @@ export default defineContentScript({ } } - browser.runtime.onMessage.addListener(async (message) => { - try { - const response = await prepareMessageResponse(message); - return response; - } catch (err) { - console.error(err); - throw err; - } + browser.runtime.onMessage.addListener((message, _sender, sendResponse) => { + (async () => { + try { + const response = await prepareMessageResponse(message); + sendResponse(response); + } catch (err) { + console.error(err); + sendResponse(undefined); + } + })(); + + // Critical for async responses in Chrome MV2 + return true; }); + } }); From f18ecfa524211365c36c67e90a50fbc61afe23c5 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Fri, 30 Jan 2026 21:47:01 +0200 Subject: [PATCH 030/350] test(server): reduce number of workers even further --- apps/server/vite.config.mts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/server/vite.config.mts b/apps/server/vite.config.mts index 62b4b09ade..a73da4ddeb 100644 --- a/apps/server/vite.config.mts +++ b/apps/server/vite.config.mts @@ -29,6 +29,6 @@ export default defineConfig(() => ({ reporter: [ "text", "html" ] }, pool: "vmForks", - maxWorkers: 6 + maxWorkers: 4 }, })); From 9c43930e7bbc4f650f85e392bea38074d0af3c7e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 31 Jan 2026 01:11:44 +0000 Subject: [PATCH 031/350] chore(deps): update dependency @playwright/test to v1.58.1 --- package.json | 2 +- pnpm-lock.yaml | 68 +++++++++++++++++++++++++++++--------------------- 2 files changed, 40 insertions(+), 30 deletions(-) diff --git a/package.json b/package.json index 129efb1dca..fd05a86d98 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ "devDependencies": { "@electron/rebuild": "4.0.3", "@fast-csv/parse": "5.0.5", - "@playwright/test": "1.58.0", + "@playwright/test": "1.58.1", "@triliumnext/server": "workspace:*", "@types/express": "5.0.6", "@types/js-yaml": "4.0.9", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dd2f00e6f5..756ad25d01 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -57,8 +57,8 @@ importers: specifier: 5.0.5 version: 5.0.5 '@playwright/test': - specifier: 1.58.0 - version: 1.58.0 + specifier: 1.58.1 + version: 1.58.1 '@triliumnext/server': specifier: workspace:* version: link:apps/server @@ -4247,8 +4247,8 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@playwright/test@1.58.0': - resolution: {integrity: sha512-fWza+Lpbj6SkQKCrU6si4iu+fD2dD3gxNHFhUPxsfXBPhnv3rRSQVd0NtBUT9Z/RhF/boCBcuUaMUSTRTopjZg==} + '@playwright/test@1.58.1': + resolution: {integrity: sha512-6LdVIUERWxQMmUSSQi0I53GgCBYgM2RpGngCPY7hSeju+VrKjq3lvs7HpJoPbDiY5QM5EYRtRX5fvrinnMAz3w==} engines: {node: '>=18'} hasBin: true @@ -11784,13 +11784,13 @@ packages: pkg-types@2.3.0: resolution: {integrity: sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==} - playwright-core@1.58.0: - resolution: {integrity: sha512-aaoB1RWrdNi3//rOeKuMiS65UCcgOVljU46At6eFcOFPFHWtd2weHRRow6z/n+Lec0Lvu0k9ZPKJSjPugikirw==} + playwright-core@1.58.1: + resolution: {integrity: sha512-bcWzOaTxcW+VOOGBCQgnaKToLJ65d6AqfLVKEWvexyS3AS6rbXl+xdpYRMGSRBClPvyj44njOWoxjNdL/H9UNg==} engines: {node: '>=18'} hasBin: true - playwright@1.58.0: - resolution: {integrity: sha512-2SVA0sbPktiIY/MCOPX8e86ehA/e+tDNq+e5Y8qjKYti2Z/JG7xnronT/TXTIkKbYGWlCbuucZ6dziEgkoEjQQ==} + playwright@1.58.1: + resolution: {integrity: sha512-+2uTZHxSCcxjvGc5C891LrS1/NlxglGxzrC4seZiVjcYVQfUa87wBL6rTDqzGjuoWNjnBzRqKmF6zRYGMvQUaQ==} engines: {node: '>=18'} hasBin: true @@ -15820,8 +15820,6 @@ snapshots: '@ckeditor/ckeditor5-core': 47.4.0 '@ckeditor/ckeditor5-upload': 47.4.0 ckeditor5: 47.4.0 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-ai@47.4.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)': dependencies: @@ -15962,8 +15960,6 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 '@ckeditor/ckeditor5-widget': 47.4.0 es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-cloud-services@47.4.0': dependencies: @@ -16164,8 +16160,6 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-editor-classic@47.4.0': dependencies: @@ -16175,8 +16169,6 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-editor-decoupled@47.4.0': dependencies: @@ -16186,8 +16178,6 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-editor-inline@47.4.0': dependencies: @@ -16221,6 +16211,8 @@ snapshots: '@ckeditor/ckeditor5-table': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-emoji@47.4.0': dependencies: @@ -16277,6 +16269,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-export-word@47.4.0': dependencies: @@ -16301,8 +16295,6 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-font@47.4.0': dependencies: @@ -16377,8 +16369,6 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 '@ckeditor/ckeditor5-widget': 47.4.0 ckeditor5: 47.4.0 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-html-embed@47.4.0': dependencies: @@ -16438,6 +16428,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-indent@47.4.0': dependencies: @@ -16550,8 +16542,6 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 '@ckeditor/ckeditor5-widget': 47.4.0 ckeditor5: 47.4.0 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-mention@47.4.0(patch_hash=5981fb59ba35829e4dff1d39cf771000f8a8fdfa7a34b51d8af9549541f2d62d)': dependencies: @@ -16561,6 +16551,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-merge-fields@47.4.0': dependencies: @@ -16573,6 +16565,8 @@ snapshots: '@ckeditor/ckeditor5-widget': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-minimap@47.4.0': dependencies: @@ -16581,6 +16575,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-operations-compressor@47.4.0': dependencies: @@ -16635,6 +16631,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 '@ckeditor/ckeditor5-widget': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-pagination@47.4.0': dependencies: @@ -16742,6 +16740,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-slash-command@47.4.0': dependencies: @@ -16754,6 +16754,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-source-editing-enhanced@47.4.0': dependencies: @@ -16801,6 +16803,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-table@47.4.0': dependencies: @@ -16813,6 +16817,8 @@ snapshots: '@ckeditor/ckeditor5-widget': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-template@47.4.0': dependencies: @@ -16923,6 +16929,8 @@ snapshots: '@ckeditor/ckeditor5-engine': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-widget@47.4.0': dependencies: @@ -16942,6 +16950,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@codemirror/autocomplete@6.18.6': dependencies: @@ -19323,9 +19333,9 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@playwright/test@1.58.0': + '@playwright/test@1.58.1': dependencies: - playwright: 1.58.0 + playwright: 1.58.1 '@pnpm/config.env-replace@1.1.0': {} @@ -28608,11 +28618,11 @@ snapshots: exsolve: 1.0.8 pathe: 2.0.3 - playwright-core@1.58.0: {} + playwright-core@1.58.1: {} - playwright@1.58.0: + playwright@1.58.1: dependencies: - playwright-core: 1.58.0 + playwright-core: 1.58.1 optionalDependencies: fsevents: 2.3.2 From 2f69b1d6e1ee50f1af32de46a75e90c28b690395 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 31 Jan 2026 01:12:39 +0000 Subject: [PATCH 032/350] fix(deps): update dependency @codemirror/view to v6.39.12 --- packages/codemirror/package.json | 2 +- pnpm-lock.yaml | 240 ++++++++++++++++--------------- 2 files changed, 126 insertions(+), 116 deletions(-) diff --git a/packages/codemirror/package.json b/packages/codemirror/package.json index 397676b5df..f8c06f6b6a 100644 --- a/packages/codemirror/package.json +++ b/packages/codemirror/package.json @@ -16,7 +16,7 @@ "@codemirror/lang-xml": "6.1.0", "@codemirror/legacy-modes": "6.5.2", "@codemirror/search": "6.6.0", - "@codemirror/view": "6.39.11", + "@codemirror/view": "6.39.12", "@fsegurai/codemirror-theme-abcdef": "6.2.3", "@fsegurai/codemirror-theme-abyss": "6.2.3", "@fsegurai/codemirror-theme-android-studio": "6.2.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dd2f00e6f5..5d687f5cec 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1273,89 +1273,89 @@ importers: specifier: 6.6.0 version: 6.6.0 '@codemirror/view': - specifier: 6.39.11 - version: 6.39.11 + specifier: 6.39.12 + version: 6.39.12 '@fsegurai/codemirror-theme-abcdef': specifier: 6.2.3 - version: 6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.11)(@lezer/highlight@1.2.1) + version: 6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12)(@lezer/highlight@1.2.1) '@fsegurai/codemirror-theme-abyss': specifier: 6.2.3 - version: 6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.11)(@lezer/highlight@1.2.1) + version: 6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12)(@lezer/highlight@1.2.1) '@fsegurai/codemirror-theme-android-studio': specifier: 6.2.3 - version: 6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.11)(@lezer/highlight@1.2.1) + version: 6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12)(@lezer/highlight@1.2.1) '@fsegurai/codemirror-theme-andromeda': specifier: 6.2.3 - version: 6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.11)(@lezer/highlight@1.2.1) + version: 6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12)(@lezer/highlight@1.2.1) '@fsegurai/codemirror-theme-basic-dark': specifier: 6.2.3 - version: 6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.11)(@lezer/highlight@1.2.1) + version: 6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12)(@lezer/highlight@1.2.1) '@fsegurai/codemirror-theme-basic-light': specifier: 6.2.3 - version: 6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.11)(@lezer/highlight@1.2.1) + version: 6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12)(@lezer/highlight@1.2.1) '@fsegurai/codemirror-theme-cobalt2': specifier: 6.0.3 - version: 6.0.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.11)(@lezer/highlight@1.2.1) + version: 6.0.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12)(@lezer/highlight@1.2.1) '@fsegurai/codemirror-theme-forest': specifier: 6.2.3 - version: 6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.11)(@lezer/highlight@1.2.1) + version: 6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12)(@lezer/highlight@1.2.1) '@fsegurai/codemirror-theme-github-dark': specifier: 6.2.3 - version: 6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.11)(@lezer/highlight@1.2.1) + version: 6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12)(@lezer/highlight@1.2.1) '@fsegurai/codemirror-theme-github-light': specifier: 6.2.3 - version: 6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.11)(@lezer/highlight@1.2.1) + version: 6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12)(@lezer/highlight@1.2.1) '@fsegurai/codemirror-theme-gruvbox-dark': specifier: 6.2.3 - version: 6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.11)(@lezer/highlight@1.2.1) + version: 6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12)(@lezer/highlight@1.2.1) '@fsegurai/codemirror-theme-gruvbox-light': specifier: 6.2.3 - version: 6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.11)(@lezer/highlight@1.2.1) + version: 6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12)(@lezer/highlight@1.2.1) '@fsegurai/codemirror-theme-material-dark': specifier: 6.2.3 - version: 6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.11)(@lezer/highlight@1.2.1) + version: 6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12)(@lezer/highlight@1.2.1) '@fsegurai/codemirror-theme-material-light': specifier: 6.2.3 - version: 6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.11)(@lezer/highlight@1.2.1) + version: 6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12)(@lezer/highlight@1.2.1) '@fsegurai/codemirror-theme-monokai': specifier: 6.2.3 - version: 6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.11)(@lezer/highlight@1.2.1) + version: 6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12)(@lezer/highlight@1.2.1) '@fsegurai/codemirror-theme-nord': specifier: 6.2.3 - version: 6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.11)(@lezer/highlight@1.2.1) + version: 6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12)(@lezer/highlight@1.2.1) '@fsegurai/codemirror-theme-palenight': specifier: 6.2.3 - version: 6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.11)(@lezer/highlight@1.2.1) + version: 6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12)(@lezer/highlight@1.2.1) '@fsegurai/codemirror-theme-solarized-dark': specifier: 6.2.3 - version: 6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.11)(@lezer/highlight@1.2.1) + version: 6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12)(@lezer/highlight@1.2.1) '@fsegurai/codemirror-theme-solarized-light': specifier: 6.2.3 - version: 6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.11)(@lezer/highlight@1.2.1) + version: 6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12)(@lezer/highlight@1.2.1) '@fsegurai/codemirror-theme-tokyo-night-day': specifier: 6.2.3 - version: 6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.11)(@lezer/highlight@1.2.1) + version: 6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12)(@lezer/highlight@1.2.1) '@fsegurai/codemirror-theme-tokyo-night-storm': specifier: 6.2.3 - version: 6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.11)(@lezer/highlight@1.2.1) + version: 6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12)(@lezer/highlight@1.2.1) '@fsegurai/codemirror-theme-volcano': specifier: 6.2.3 - version: 6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.11)(@lezer/highlight@1.2.1) + version: 6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12)(@lezer/highlight@1.2.1) '@fsegurai/codemirror-theme-vscode-dark': specifier: 6.2.4 - version: 6.2.4(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.11)(@lezer/highlight@1.2.1) + version: 6.2.4(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12)(@lezer/highlight@1.2.1) '@fsegurai/codemirror-theme-vscode-light': specifier: 6.2.4 - version: 6.2.4(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.11)(@lezer/highlight@1.2.1) + version: 6.2.4(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12)(@lezer/highlight@1.2.1) '@replit/codemirror-indentation-markers': specifier: 6.5.3 - version: 6.5.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.11) + version: 6.5.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12) '@replit/codemirror-lang-nix': specifier: 6.0.1 - version: 6.0.1(@codemirror/autocomplete@6.18.6)(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.11)(@lezer/common@1.2.3)(@lezer/highlight@1.2.1)(@lezer/lr@1.4.2) + version: 6.0.1(@codemirror/autocomplete@6.18.6)(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12)(@lezer/common@1.2.3)(@lezer/highlight@1.2.1)(@lezer/lr@1.4.2) '@replit/codemirror-vim': specifier: 6.3.0 - version: 6.3.0(@codemirror/commands@6.10.1)(@codemirror/language@6.11.0)(@codemirror/search@6.6.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.11) + version: 6.3.0(@codemirror/commands@6.10.1)(@codemirror/language@6.11.0)(@codemirror/search@6.6.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12) '@ssddanbrown/codemirror-lang-smarty': specifier: 1.0.0 version: 1.0.0 @@ -2175,8 +2175,8 @@ packages: '@codemirror/theme-one-dark@6.1.2': resolution: {integrity: sha512-F+sH0X16j/qFLMAfbciKTxVOwkdAS336b7AXTKOZhy8BR3eH/RelsnLgLFINrpST63mmN2OuwUt0W2ndUgYwUA==} - '@codemirror/view@6.39.11': - resolution: {integrity: sha512-bWdeR8gWM87l4DB/kYSF9A+dVackzDb/V56Tq7QVrQ7rn86W0rgZFtlL3g3pem6AeGcb9NQNoy3ao4WpW4h5tQ==} + '@codemirror/view@6.39.12': + resolution: {integrity: sha512-f+/VsHVn/kOA9lltk/GFzuYwVVAKmOnNjxbrhkk3tPHntFqjWeI2TbIXx006YkBkqC10wZ4NsnWXCQiFPeAISQ==} '@colors/colors@1.5.0': resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} @@ -15820,8 +15820,6 @@ snapshots: '@ckeditor/ckeditor5-core': 47.4.0 '@ckeditor/ckeditor5-upload': 47.4.0 ckeditor5: 47.4.0 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-ai@47.4.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)': dependencies: @@ -15962,16 +15960,12 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 '@ckeditor/ckeditor5-widget': 47.4.0 es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-cloud-services@47.4.0': dependencies: '@ckeditor/ckeditor5-core': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-code-block@47.4.0(patch_hash=2361d8caad7d6b5bddacc3a3b4aa37dbfba260b1c1b22a450413a79c1bb1ce95)': dependencies: @@ -16164,8 +16158,6 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-editor-classic@47.4.0': dependencies: @@ -16175,8 +16167,6 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-editor-decoupled@47.4.0': dependencies: @@ -16186,8 +16176,6 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-editor-inline@47.4.0': dependencies: @@ -16221,6 +16209,8 @@ snapshots: '@ckeditor/ckeditor5-table': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-emoji@47.4.0': dependencies: @@ -16277,6 +16267,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-export-word@47.4.0': dependencies: @@ -16301,8 +16293,6 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-font@47.4.0': dependencies: @@ -16377,8 +16367,6 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 '@ckeditor/ckeditor5-widget': 47.4.0 ckeditor5: 47.4.0 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-html-embed@47.4.0': dependencies: @@ -16438,6 +16426,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-indent@47.4.0': dependencies: @@ -16561,6 +16551,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-merge-fields@47.4.0': dependencies: @@ -16573,6 +16565,8 @@ snapshots: '@ckeditor/ckeditor5-widget': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-minimap@47.4.0': dependencies: @@ -16581,6 +16575,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-operations-compressor@47.4.0': dependencies: @@ -16635,6 +16631,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 '@ckeditor/ckeditor5-widget': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-pagination@47.4.0': dependencies: @@ -16742,6 +16740,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-slash-command@47.4.0': dependencies: @@ -16754,6 +16754,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-source-editing-enhanced@47.4.0': dependencies: @@ -16769,7 +16771,7 @@ snapshots: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 '@codemirror/theme-one-dark': 6.1.2 - '@codemirror/view': 6.39.11 + '@codemirror/view': 6.39.12 ckeditor5: 47.4.0 '@ckeditor/ckeditor5-source-editing@47.4.0': @@ -16801,6 +16803,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-table@47.4.0': dependencies: @@ -16813,6 +16817,8 @@ snapshots: '@ckeditor/ckeditor5-widget': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-template@47.4.0': dependencies: @@ -16923,6 +16929,8 @@ snapshots: '@ckeditor/ckeditor5-engine': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-widget@47.4.0': dependencies: @@ -16942,26 +16950,28 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@codemirror/autocomplete@6.18.6': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.39.11 + '@codemirror/view': 6.39.12 '@lezer/common': 1.2.3 '@codemirror/commands@6.10.1': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.39.11 + '@codemirror/view': 6.39.12 '@lezer/common': 1.2.3 '@codemirror/commands@6.8.1': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.39.11 + '@codemirror/view': 6.39.12 '@lezer/common': 1.2.3 '@codemirror/lang-css@6.3.1': @@ -16979,7 +16989,7 @@ snapshots: '@codemirror/lang-javascript': 6.2.4 '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.39.11 + '@codemirror/view': 6.39.12 '@lezer/common': 1.2.3 '@lezer/css': 1.1.11 '@lezer/html': 1.3.12 @@ -16990,7 +17000,7 @@ snapshots: '@codemirror/language': 6.11.0 '@codemirror/lint': 6.8.5 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.39.11 + '@codemirror/view': 6.39.12 '@lezer/common': 1.2.3 '@lezer/javascript': 1.5.1 @@ -17005,7 +17015,7 @@ snapshots: '@codemirror/lang-html': 6.4.11 '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.39.11 + '@codemirror/view': 6.39.12 '@lezer/common': 1.2.3 '@lezer/markdown': 1.4.3 @@ -17015,7 +17025,7 @@ snapshots: '@codemirror/lang-html': 6.4.11 '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.39.11 + '@codemirror/view': 6.39.12 '@lezer/common': 1.2.3 '@lezer/markdown': 1.4.3 @@ -17041,14 +17051,14 @@ snapshots: '@codemirror/autocomplete': 6.18.6 '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.39.11 + '@codemirror/view': 6.39.12 '@lezer/common': 1.2.3 '@lezer/xml': 1.0.6 '@codemirror/language@6.11.0': dependencies: '@codemirror/state': 6.5.2 - '@codemirror/view': 6.39.11 + '@codemirror/view': 6.39.12 '@lezer/common': 1.2.3 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 @@ -17061,13 +17071,13 @@ snapshots: '@codemirror/lint@6.8.5': dependencies: '@codemirror/state': 6.5.2 - '@codemirror/view': 6.39.11 + '@codemirror/view': 6.39.12 crelt: 1.0.6 '@codemirror/search@6.6.0': dependencies: '@codemirror/state': 6.5.2 - '@codemirror/view': 6.39.11 + '@codemirror/view': 6.39.12 crelt: 1.0.6 '@codemirror/state@6.5.2': @@ -17078,10 +17088,10 @@ snapshots: dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.39.11 + '@codemirror/view': 6.39.12 '@lezer/highlight': 1.2.1 - '@codemirror/view@6.39.11': + '@codemirror/view@6.39.12': dependencies: '@codemirror/state': 6.5.2 crelt: 1.0.6 @@ -18038,172 +18048,172 @@ snapshots: '@floating-ui/utils@0.2.9': {} - '@fsegurai/codemirror-theme-abcdef@6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.11)(@lezer/highlight@1.2.1)': + '@fsegurai/codemirror-theme-abcdef@6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12)(@lezer/highlight@1.2.1)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.39.11 + '@codemirror/view': 6.39.12 '@lezer/highlight': 1.2.1 - '@fsegurai/codemirror-theme-abyss@6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.11)(@lezer/highlight@1.2.1)': + '@fsegurai/codemirror-theme-abyss@6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12)(@lezer/highlight@1.2.1)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.39.11 + '@codemirror/view': 6.39.12 '@lezer/highlight': 1.2.1 - '@fsegurai/codemirror-theme-android-studio@6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.11)(@lezer/highlight@1.2.1)': + '@fsegurai/codemirror-theme-android-studio@6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12)(@lezer/highlight@1.2.1)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.39.11 + '@codemirror/view': 6.39.12 '@lezer/highlight': 1.2.1 - '@fsegurai/codemirror-theme-andromeda@6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.11)(@lezer/highlight@1.2.1)': + '@fsegurai/codemirror-theme-andromeda@6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12)(@lezer/highlight@1.2.1)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.39.11 + '@codemirror/view': 6.39.12 '@lezer/highlight': 1.2.1 - '@fsegurai/codemirror-theme-basic-dark@6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.11)(@lezer/highlight@1.2.1)': + '@fsegurai/codemirror-theme-basic-dark@6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12)(@lezer/highlight@1.2.1)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.39.11 + '@codemirror/view': 6.39.12 '@lezer/highlight': 1.2.1 - '@fsegurai/codemirror-theme-basic-light@6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.11)(@lezer/highlight@1.2.1)': + '@fsegurai/codemirror-theme-basic-light@6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12)(@lezer/highlight@1.2.1)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.39.11 + '@codemirror/view': 6.39.12 '@lezer/highlight': 1.2.1 - '@fsegurai/codemirror-theme-cobalt2@6.0.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.11)(@lezer/highlight@1.2.1)': + '@fsegurai/codemirror-theme-cobalt2@6.0.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12)(@lezer/highlight@1.2.1)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.39.11 + '@codemirror/view': 6.39.12 '@lezer/highlight': 1.2.1 - '@fsegurai/codemirror-theme-forest@6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.11)(@lezer/highlight@1.2.1)': + '@fsegurai/codemirror-theme-forest@6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12)(@lezer/highlight@1.2.1)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.39.11 + '@codemirror/view': 6.39.12 '@lezer/highlight': 1.2.1 - '@fsegurai/codemirror-theme-github-dark@6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.11)(@lezer/highlight@1.2.1)': + '@fsegurai/codemirror-theme-github-dark@6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12)(@lezer/highlight@1.2.1)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.39.11 + '@codemirror/view': 6.39.12 '@lezer/highlight': 1.2.1 - '@fsegurai/codemirror-theme-github-light@6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.11)(@lezer/highlight@1.2.1)': + '@fsegurai/codemirror-theme-github-light@6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12)(@lezer/highlight@1.2.1)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.39.11 + '@codemirror/view': 6.39.12 '@lezer/highlight': 1.2.1 - '@fsegurai/codemirror-theme-gruvbox-dark@6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.11)(@lezer/highlight@1.2.1)': + '@fsegurai/codemirror-theme-gruvbox-dark@6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12)(@lezer/highlight@1.2.1)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.39.11 + '@codemirror/view': 6.39.12 '@lezer/highlight': 1.2.1 - '@fsegurai/codemirror-theme-gruvbox-light@6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.11)(@lezer/highlight@1.2.1)': + '@fsegurai/codemirror-theme-gruvbox-light@6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12)(@lezer/highlight@1.2.1)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.39.11 + '@codemirror/view': 6.39.12 '@lezer/highlight': 1.2.1 - '@fsegurai/codemirror-theme-material-dark@6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.11)(@lezer/highlight@1.2.1)': + '@fsegurai/codemirror-theme-material-dark@6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12)(@lezer/highlight@1.2.1)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.39.11 + '@codemirror/view': 6.39.12 '@lezer/highlight': 1.2.1 - '@fsegurai/codemirror-theme-material-light@6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.11)(@lezer/highlight@1.2.1)': + '@fsegurai/codemirror-theme-material-light@6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12)(@lezer/highlight@1.2.1)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.39.11 + '@codemirror/view': 6.39.12 '@lezer/highlight': 1.2.1 - '@fsegurai/codemirror-theme-monokai@6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.11)(@lezer/highlight@1.2.1)': + '@fsegurai/codemirror-theme-monokai@6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12)(@lezer/highlight@1.2.1)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.39.11 + '@codemirror/view': 6.39.12 '@lezer/highlight': 1.2.1 - '@fsegurai/codemirror-theme-nord@6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.11)(@lezer/highlight@1.2.1)': + '@fsegurai/codemirror-theme-nord@6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12)(@lezer/highlight@1.2.1)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.39.11 + '@codemirror/view': 6.39.12 '@lezer/highlight': 1.2.1 - '@fsegurai/codemirror-theme-palenight@6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.11)(@lezer/highlight@1.2.1)': + '@fsegurai/codemirror-theme-palenight@6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12)(@lezer/highlight@1.2.1)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.39.11 + '@codemirror/view': 6.39.12 '@lezer/highlight': 1.2.1 - '@fsegurai/codemirror-theme-solarized-dark@6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.11)(@lezer/highlight@1.2.1)': + '@fsegurai/codemirror-theme-solarized-dark@6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12)(@lezer/highlight@1.2.1)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.39.11 + '@codemirror/view': 6.39.12 '@lezer/highlight': 1.2.1 - '@fsegurai/codemirror-theme-solarized-light@6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.11)(@lezer/highlight@1.2.1)': + '@fsegurai/codemirror-theme-solarized-light@6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12)(@lezer/highlight@1.2.1)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.39.11 + '@codemirror/view': 6.39.12 '@lezer/highlight': 1.2.1 - '@fsegurai/codemirror-theme-tokyo-night-day@6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.11)(@lezer/highlight@1.2.1)': + '@fsegurai/codemirror-theme-tokyo-night-day@6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12)(@lezer/highlight@1.2.1)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.39.11 + '@codemirror/view': 6.39.12 '@lezer/highlight': 1.2.1 - '@fsegurai/codemirror-theme-tokyo-night-storm@6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.11)(@lezer/highlight@1.2.1)': + '@fsegurai/codemirror-theme-tokyo-night-storm@6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12)(@lezer/highlight@1.2.1)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.39.11 + '@codemirror/view': 6.39.12 '@lezer/highlight': 1.2.1 - '@fsegurai/codemirror-theme-volcano@6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.11)(@lezer/highlight@1.2.1)': + '@fsegurai/codemirror-theme-volcano@6.2.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12)(@lezer/highlight@1.2.1)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.39.11 + '@codemirror/view': 6.39.12 '@lezer/highlight': 1.2.1 - '@fsegurai/codemirror-theme-vscode-dark@6.2.4(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.11)(@lezer/highlight@1.2.1)': + '@fsegurai/codemirror-theme-vscode-dark@6.2.4(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12)(@lezer/highlight@1.2.1)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.39.11 + '@codemirror/view': 6.39.12 '@lezer/highlight': 1.2.1 - '@fsegurai/codemirror-theme-vscode-light@6.2.4(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.11)(@lezer/highlight@1.2.1)': + '@fsegurai/codemirror-theme-vscode-light@6.2.4(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12)(@lezer/highlight@1.2.1)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.39.11 + '@codemirror/view': 6.39.12 '@lezer/highlight': 1.2.1 '@fullcalendar/core@6.1.20': @@ -19806,29 +19816,29 @@ snapshots: openapi-sampler: 1.6.2 outdent: 0.8.0 - '@replit/codemirror-indentation-markers@6.5.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.11)': + '@replit/codemirror-indentation-markers@6.5.3(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12)': dependencies: '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.39.11 + '@codemirror/view': 6.39.12 - '@replit/codemirror-lang-nix@6.0.1(@codemirror/autocomplete@6.18.6)(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.11)(@lezer/common@1.2.3)(@lezer/highlight@1.2.1)(@lezer/lr@1.4.2)': + '@replit/codemirror-lang-nix@6.0.1(@codemirror/autocomplete@6.18.6)(@codemirror/language@6.11.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12)(@lezer/common@1.2.3)(@lezer/highlight@1.2.1)(@lezer/lr@1.4.2)': dependencies: '@codemirror/autocomplete': 6.18.6 '@codemirror/language': 6.11.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.39.11 + '@codemirror/view': 6.39.12 '@lezer/common': 1.2.3 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 - '@replit/codemirror-vim@6.3.0(@codemirror/commands@6.10.1)(@codemirror/language@6.11.0)(@codemirror/search@6.6.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.11)': + '@replit/codemirror-vim@6.3.0(@codemirror/commands@6.10.1)(@codemirror/language@6.11.0)(@codemirror/search@6.6.0)(@codemirror/state@6.5.2)(@codemirror/view@6.39.12)': dependencies: '@codemirror/commands': 6.10.1 '@codemirror/language': 6.11.0 '@codemirror/search': 6.6.0 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.39.11 + '@codemirror/view': 6.39.12 '@rolldown/binding-android-arm64@1.0.0-beta.29': optional: true From 9247dd8b17fe7222a712d90617ed0dea18db0b82 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 31 Jan 2026 01:13:37 +0000 Subject: [PATCH 033/350] fix(deps): update dependency @preact/signals to v2.6.2 --- apps/client/package.json | 2 +- pnpm-lock.yaml | 52 ++++++++++++++++++++++++---------------- 2 files changed, 32 insertions(+), 22 deletions(-) diff --git a/apps/client/package.json b/apps/client/package.json index 2b1251f15c..aedc4c26f0 100644 --- a/apps/client/package.json +++ b/apps/client/package.json @@ -27,7 +27,7 @@ "@mermaid-js/layout-elk": "0.2.0", "@mind-elixir/node-menu": "5.0.1", "@popperjs/core": "2.11.8", - "@preact/signals": "2.6.1", + "@preact/signals": "2.6.2", "@triliumnext/ckeditor5": "workspace:*", "@triliumnext/codemirror": "workspace:*", "@triliumnext/commons": "workspace:*", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dd2f00e6f5..c9e5e472e5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -213,8 +213,8 @@ importers: specifier: 2.11.8 version: 2.11.8 '@preact/signals': - specifier: 2.6.1 - version: 2.6.1(preact@10.28.2) + specifier: 2.6.2 + version: 2.6.2(preact@10.28.2) '@triliumnext/ckeditor5': specifier: workspace:* version: link:../../packages/ckeditor5 @@ -4279,8 +4279,8 @@ packages: '@preact/signals-core@1.12.2': resolution: {integrity: sha512-5Yf8h1Ke3SMHr15xl630KtwPTW4sYDFkkxS0vQ8UiQLWwZQnrF9IKaVG1mN5VcJz52EcWs2acsc/Npjha/7ysA==} - '@preact/signals@2.6.1': - resolution: {integrity: sha512-Gp3DI1T/0YyirwJnImR8l9xyVJgKiVzJXmEhic1/7SPw3zStrsvuBpwKnD609CzsIdzxprWa6yTNXN+VLLZPGQ==} + '@preact/signals@2.6.2': + resolution: {integrity: sha512-80PMfNS3d8t/J3cRNEJP14zRioWnavgqzX/+tsNGiCX6rpD26+eLkUQpa1sIeOERZMink+dAi34y0MJhg11LKQ==} peerDependencies: preact: 10.28.2 @@ -15820,8 +15820,6 @@ snapshots: '@ckeditor/ckeditor5-core': 47.4.0 '@ckeditor/ckeditor5-upload': 47.4.0 ckeditor5: 47.4.0 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-ai@47.4.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)': dependencies: @@ -15962,16 +15960,12 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 '@ckeditor/ckeditor5-widget': 47.4.0 es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-cloud-services@47.4.0': dependencies: '@ckeditor/ckeditor5-core': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-code-block@47.4.0(patch_hash=2361d8caad7d6b5bddacc3a3b4aa37dbfba260b1c1b22a450413a79c1bb1ce95)': dependencies: @@ -16164,8 +16158,6 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-editor-classic@47.4.0': dependencies: @@ -16175,8 +16167,6 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-editor-decoupled@47.4.0': dependencies: @@ -16186,8 +16176,6 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-editor-inline@47.4.0': dependencies: @@ -16221,6 +16209,8 @@ snapshots: '@ckeditor/ckeditor5-table': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-emoji@47.4.0': dependencies: @@ -16277,6 +16267,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-export-word@47.4.0': dependencies: @@ -16301,8 +16293,6 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-font@47.4.0': dependencies: @@ -16377,8 +16367,6 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 '@ckeditor/ckeditor5-widget': 47.4.0 ckeditor5: 47.4.0 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-html-embed@47.4.0': dependencies: @@ -16438,6 +16426,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-indent@47.4.0': dependencies: @@ -16561,6 +16551,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-merge-fields@47.4.0': dependencies: @@ -16573,6 +16565,8 @@ snapshots: '@ckeditor/ckeditor5-widget': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-minimap@47.4.0': dependencies: @@ -16581,6 +16575,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-operations-compressor@47.4.0': dependencies: @@ -16635,6 +16631,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 '@ckeditor/ckeditor5-widget': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-pagination@47.4.0': dependencies: @@ -16742,6 +16740,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-slash-command@47.4.0': dependencies: @@ -16754,6 +16754,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-source-editing-enhanced@47.4.0': dependencies: @@ -16801,6 +16803,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-table@47.4.0': dependencies: @@ -16813,6 +16817,8 @@ snapshots: '@ckeditor/ckeditor5-widget': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-template@47.4.0': dependencies: @@ -16923,6 +16929,8 @@ snapshots: '@ckeditor/ckeditor5-engine': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-widget@47.4.0': dependencies: @@ -16942,6 +16950,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@codemirror/autocomplete@6.18.6': dependencies: @@ -19362,7 +19372,7 @@ snapshots: '@preact/signals-core@1.12.2': {} - '@preact/signals@2.6.1(preact@10.28.2)': + '@preact/signals@2.6.2(preact@10.28.2)': dependencies: '@preact/signals-core': 1.12.2 preact: 10.28.2 From e5cfe37b175155506934a5a0ba0c0e523e7dbe4e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 31 Jan 2026 01:15:23 +0000 Subject: [PATCH 034/350] chore(deps): update dependency stylelint to v17.1.0 --- packages/ckeditor5-admonition/package.json | 2 +- packages/ckeditor5-footnotes/package.json | 2 +- .../ckeditor5-keyboard-marker/package.json | 2 +- packages/ckeditor5-math/package.json | 2 +- packages/ckeditor5-mermaid/package.json | 2 +- pnpm-lock.yaml | 210 ++++++++++++------ 6 files changed, 145 insertions(+), 75 deletions(-) diff --git a/packages/ckeditor5-admonition/package.json b/packages/ckeditor5-admonition/package.json index 390a7424f3..5b68539da2 100644 --- a/packages/ckeditor5-admonition/package.json +++ b/packages/ckeditor5-admonition/package.json @@ -33,7 +33,7 @@ "eslint-config-ckeditor5": ">=9.1.0", "http-server": "14.1.1", "lint-staged": "16.2.7", - "stylelint": "17.0.0", + "stylelint": "17.1.0", "stylelint-config-ckeditor5": ">=9.1.0", "ts-node": "10.9.2", "typescript": "5.9.3", diff --git a/packages/ckeditor5-footnotes/package.json b/packages/ckeditor5-footnotes/package.json index e82e599847..d49d404ea9 100644 --- a/packages/ckeditor5-footnotes/package.json +++ b/packages/ckeditor5-footnotes/package.json @@ -34,7 +34,7 @@ "eslint-config-ckeditor5": ">=9.1.0", "http-server": "14.1.1", "lint-staged": "16.2.7", - "stylelint": "17.0.0", + "stylelint": "17.1.0", "stylelint-config-ckeditor5": ">=9.1.0", "ts-node": "10.9.2", "typescript": "5.9.3", diff --git a/packages/ckeditor5-keyboard-marker/package.json b/packages/ckeditor5-keyboard-marker/package.json index 7fd8d9dbce..7a5acc2d85 100644 --- a/packages/ckeditor5-keyboard-marker/package.json +++ b/packages/ckeditor5-keyboard-marker/package.json @@ -36,7 +36,7 @@ "eslint-config-ckeditor5": ">=9.1.0", "http-server": "14.1.1", "lint-staged": "16.2.7", - "stylelint": "17.0.0", + "stylelint": "17.1.0", "stylelint-config-ckeditor5": ">=9.1.0", "ts-node": "10.9.2", "typescript": "5.9.3", diff --git a/packages/ckeditor5-math/package.json b/packages/ckeditor5-math/package.json index 75234006f3..a64a097a60 100644 --- a/packages/ckeditor5-math/package.json +++ b/packages/ckeditor5-math/package.json @@ -36,7 +36,7 @@ "eslint-config-ckeditor5": ">=9.1.0", "http-server": "14.1.1", "lint-staged": "16.2.7", - "stylelint": "17.0.0", + "stylelint": "17.1.0", "stylelint-config-ckeditor5": ">=9.1.0", "ts-node": "10.9.2", "typescript": "5.9.3", diff --git a/packages/ckeditor5-mermaid/package.json b/packages/ckeditor5-mermaid/package.json index ef65c80fe2..3949f4b312 100644 --- a/packages/ckeditor5-mermaid/package.json +++ b/packages/ckeditor5-mermaid/package.json @@ -36,7 +36,7 @@ "eslint-config-ckeditor5": ">=9.1.0", "http-server": "14.1.1", "lint-staged": "16.2.7", - "stylelint": "17.0.0", + "stylelint": "17.1.0", "stylelint-config-ckeditor5": ">=9.1.0", "ts-node": "10.9.2", "typescript": "5.9.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dd2f00e6f5..3c8b470038 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -962,11 +962,11 @@ importers: specifier: 16.2.7 version: 16.2.7 stylelint: - specifier: 17.0.0 - version: 17.0.0(typescript@5.9.3) + specifier: 17.1.0 + version: 17.1.0(typescript@5.9.3) stylelint-config-ckeditor5: specifier: '>=9.1.0' - version: 13.0.0(stylelint@17.0.0(typescript@5.9.3)) + version: 13.0.0(stylelint@17.1.0(typescript@5.9.3)) ts-node: specifier: 10.9.2 version: 10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@24.10.9)(typescript@5.9.3) @@ -1022,11 +1022,11 @@ importers: specifier: 16.2.7 version: 16.2.7 stylelint: - specifier: 17.0.0 - version: 17.0.0(typescript@5.9.3) + specifier: 17.1.0 + version: 17.1.0(typescript@5.9.3) stylelint-config-ckeditor5: specifier: '>=9.1.0' - version: 13.0.0(stylelint@17.0.0(typescript@5.9.3)) + version: 13.0.0(stylelint@17.1.0(typescript@5.9.3)) ts-node: specifier: 10.9.2 version: 10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@24.10.9)(typescript@5.9.3) @@ -1082,11 +1082,11 @@ importers: specifier: 16.2.7 version: 16.2.7 stylelint: - specifier: 17.0.0 - version: 17.0.0(typescript@5.9.3) + specifier: 17.1.0 + version: 17.1.0(typescript@5.9.3) stylelint-config-ckeditor5: specifier: '>=9.1.0' - version: 13.0.0(stylelint@17.0.0(typescript@5.9.3)) + version: 13.0.0(stylelint@17.1.0(typescript@5.9.3)) ts-node: specifier: 10.9.2 version: 10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@24.10.9)(typescript@5.9.3) @@ -1149,11 +1149,11 @@ importers: specifier: 16.2.7 version: 16.2.7 stylelint: - specifier: 17.0.0 - version: 17.0.0(typescript@5.9.3) + specifier: 17.1.0 + version: 17.1.0(typescript@5.9.3) stylelint-config-ckeditor5: specifier: '>=9.1.0' - version: 13.0.0(stylelint@17.0.0(typescript@5.9.3)) + version: 13.0.0(stylelint@17.1.0(typescript@5.9.3)) ts-node: specifier: 10.9.2 version: 10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@24.10.9)(typescript@5.9.3) @@ -1216,11 +1216,11 @@ importers: specifier: 16.2.7 version: 16.2.7 stylelint: - specifier: 17.0.0 - version: 17.0.0(typescript@5.9.3) + specifier: 17.1.0 + version: 17.1.0(typescript@5.9.3) stylelint-config-ckeditor5: specifier: '>=9.1.0' - version: 13.0.0(stylelint@17.0.0(typescript@5.9.3)) + version: 13.0.0(stylelint@17.1.0(typescript@5.9.3)) ts-node: specifier: 10.9.2 version: 10.9.2(@swc/core@1.11.29(@swc/helpers@0.5.17))(@types/node@24.10.9)(typescript@5.9.3) @@ -1818,9 +1818,15 @@ packages: '@cacheable/memory@2.0.5': resolution: {integrity: sha512-fkiAxCvssEyJZ5fxX4tcdZFRmW9JehSTGvvqmXn6rTzG5cH6V/3C4ad8yb01vOjp2xBydHkHrgpW0qeGtzt6VQ==} + '@cacheable/memory@2.0.7': + resolution: {integrity: sha512-RbxnxAMf89Tp1dLhXMS7ceft/PGsDl1Ip7T20z5nZ+pwIAsQ1p2izPjVG69oCLv/jfQ7HDPHTWK0c9rcAWXN3A==} + '@cacheable/utils@2.3.1': resolution: {integrity: sha512-38NJXjIr4W1Sghun8ju+uYWD8h2c61B4dKwfnQHVDFpAJ9oS28RpfqZQJ6Dgd3RceGkILDY9YT+72HJR3LoeSQ==} + '@cacheable/utils@2.3.3': + resolution: {integrity: sha512-JsXDL70gQ+1Vc2W/KUFfkAJzgb4puKwwKehNLuB+HrNKWf91O736kGfxn4KujXCCSuh6mRRL4XEB0PkAFjWS0A==} + '@chevrotain/cst-dts-gen@11.0.3': resolution: {integrity: sha512-BvIKpRLeS/8UbfxXxgC33xOumsacaeCKAjAeLyOn7Pcp95HiRbrpl14S+9vaZLolnbssPIUuiUd8IvgkRyt6NQ==} @@ -2220,10 +2226,6 @@ packages: peerDependencies: '@csstools/css-tokenizer': ^4.0.0 - '@csstools/css-syntax-patches-for-csstree@1.0.19': - resolution: {integrity: sha512-QW5/SM2ARltEhoKcmRI1LoLf3/C7dHGswwCnfLcoMgqurBT4f8GvwXMgAbK/FwcxthmJRK5MGTtddj0yQn0J9g==} - engines: {node: '>=18'} - '@csstools/css-syntax-patches-for-csstree@1.0.25': resolution: {integrity: sha512-g0Kw9W3vjx5BEBAF8c5Fm2NcB/Fs8jJXh85aXqwEXiL+tqtOut07TWgyaGzAAfTM+gKckrrncyeGEZPcaRgm2Q==} engines: {node: '>=18'} @@ -6887,6 +6889,9 @@ packages: cacheable@2.2.0: resolution: {integrity: sha512-LEJxRqfeomiiRd2t0uON6hxAtgOoWDfY3fugebbz+J3vDLO+SkdfFChQcOHTZhj9SYa9iwE9MGYNX72dKiOE4w==} + cacheable@2.3.2: + resolution: {integrity: sha512-w+ZuRNmex9c1TR9RcsxbfTKCjSL0rh1WA5SABbrWprIHeNBdmyQLSYonlDy9gpD+63XT8DgZ/wNh1Smvc9WnJA==} + call-bind-apply-helpers@1.0.2: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} @@ -8680,6 +8685,9 @@ packages: file-entry-cache@11.1.1: resolution: {integrity: sha512-TPVFSDE7q91Dlk1xpFLvFllf8r0HyOMOlnWy7Z2HBku5H3KhIeOGInexrIeg2D64DosVB/JXkrrk6N/7Wriq4A==} + file-entry-cache@11.1.2: + resolution: {integrity: sha512-N2WFfK12gmrK1c1GXOqiAJ1tc5YE+R53zvQ+t5P8S5XhnmKYVB5eZEiLNZKDSmoG8wqqbF9EXYBBW/nef19log==} + file-entry-cache@8.0.0: resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} engines: {node: '>=16.0.0'} @@ -8754,6 +8762,9 @@ packages: flat-cache@6.1.19: resolution: {integrity: sha512-l/K33newPTZMTGAnnzaiqSl6NnH7Namh8jBNjrgjprWxGmZUuxx/sJNIRaijOh3n7q7ESbhNZC+pvVZMFdeU4A==} + flat-cache@6.1.20: + resolution: {integrity: sha512-AhHYqwvN62NVLp4lObVXGVluiABTHapoB57EyegZVmazN+hhGhLTn3uZbOofoTw4DSDvVCadzzyChXhOAvy8uQ==} + flat@5.0.2: resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} hasBin: true @@ -9205,6 +9216,10 @@ packages: resolution: {integrity: sha512-43XJKpwle72Ik5Zpam7MuzRWyNdwwdf6XHlh8wCj2PggvWf+v/Dm5B0dxGZOmddidgeO6Ofu9As/o231Ti/9PA==} engines: {node: '>=20'} + hashery@1.4.0: + resolution: {integrity: sha512-Wn2i1In6XFxl8Az55kkgnFRiAlIAushzh26PTjL2AKtQcEfXrcLa7Hn5QOWGZEf3LU057P9TwwZjFyxfS1VuvQ==} + engines: {node: '>=20'} + hasown@2.0.2: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} @@ -9284,6 +9299,9 @@ packages: hookified@1.13.0: resolution: {integrity: sha512-6sPYUY8olshgM/1LDNW4QZQN0IqgKhtl/1C8koNZBJrKLBk3AZl6chQtNwpNztvfiApHMEwMHek5rv993PRbWw==} + hookified@1.15.0: + resolution: {integrity: sha512-51w+ZZGt7Zw5q7rM3nC4t3aLn/xvKDETsXqMczndvwyVQhAHfUmUuFBRFcos8Iyebtk7OAE9dL26wFNzZVVOkw==} + hosted-git-info@2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} @@ -10181,6 +10199,9 @@ packages: keyv@5.5.4: resolution: {integrity: sha512-eohl3hKTiVyD1ilYdw9T0OiB4hnjef89e3dMYKz+mVKDzj+5IteTseASUsOB+EU9Tf6VNTCjDePcP6wkDGmLKQ==} + keyv@5.6.0: + resolution: {integrity: sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==} + khroma@2.1.0: resolution: {integrity: sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==} @@ -12229,10 +12250,6 @@ packages: resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} engines: {node: '>=4'} - postcss-selector-parser@7.1.0: - resolution: {integrity: sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==} - engines: {node: '>=4'} - postcss-selector-parser@7.1.1: resolution: {integrity: sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==} engines: {node: '>=4'} @@ -12429,6 +12446,10 @@ packages: resolution: {integrity: sha512-7gJ6mxcQb9vUBOtbKm5mDevbe2uRcOEVp1g4gb/Q+oLntB3HY8eBhOYRxFI2mlDFlY1e4DOSCptzxarXRvzxCA==} engines: {node: '>=20'} + qified@0.6.0: + resolution: {integrity: sha512-tsSGN1x3h569ZSU1u6diwhltLyfUWDp3YbFHedapTmpBl0B3P6U3+Qptg7xu+v+1io1EwhdPyyRHYbEw0KN2FA==} + engines: {node: '>=20'} + qjobs@1.2.0: resolution: {integrity: sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==} engines: {node: '>=0.9'} @@ -13765,8 +13786,8 @@ packages: engines: {node: '>=18.12.0'} hasBin: true - stylelint@17.0.0: - resolution: {integrity: sha512-saMZ2mqdQre4AfouxcbTdpVglDRcROb4MIucKHvgsDb/0IX7ODhcaz+EOIyfxAsm8Zjl/7j4hJj6MgIYYM8Xwg==} + stylelint@17.1.0: + resolution: {integrity: sha512-+cUX1FxkkbLX5qJRAPapUv/+v+YU3pGbWu+pHVqTXpiY0mYh3Dxfxa0bLBtVtYgOC8hIWIyX2H/3Y3LWlAevDg==} engines: {node: '>=20.19.0'} hasBin: true @@ -15779,11 +15800,23 @@ snapshots: hookified: 1.13.0 keyv: 5.5.4 + '@cacheable/memory@2.0.7': + dependencies: + '@cacheable/utils': 2.3.3 + '@keyv/bigmap': 1.3.0(keyv@5.6.0) + hookified: 1.15.0 + keyv: 5.6.0 + '@cacheable/utils@2.3.1': dependencies: hashery: 1.2.0 keyv: 5.5.4 + '@cacheable/utils@2.3.3': + dependencies: + hashery: 1.4.0 + keyv: 5.6.0 + '@chevrotain/cst-dts-gen@11.0.3': dependencies: '@chevrotain/gast': 11.0.3 @@ -15820,8 +15853,6 @@ snapshots: '@ckeditor/ckeditor5-core': 47.4.0 '@ckeditor/ckeditor5-upload': 47.4.0 ckeditor5: 47.4.0 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-ai@47.4.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)': dependencies: @@ -15962,16 +15993,12 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 '@ckeditor/ckeditor5-widget': 47.4.0 es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-cloud-services@47.4.0': dependencies: '@ckeditor/ckeditor5-core': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-code-block@47.4.0(patch_hash=2361d8caad7d6b5bddacc3a3b4aa37dbfba260b1c1b22a450413a79c1bb1ce95)': dependencies: @@ -16164,8 +16191,6 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-editor-classic@47.4.0': dependencies: @@ -16175,8 +16200,6 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-editor-decoupled@47.4.0': dependencies: @@ -16186,8 +16209,6 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-editor-inline@47.4.0': dependencies: @@ -16221,6 +16242,8 @@ snapshots: '@ckeditor/ckeditor5-table': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-emoji@47.4.0': dependencies: @@ -16277,6 +16300,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-export-word@47.4.0': dependencies: @@ -16301,8 +16326,6 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-font@47.4.0': dependencies: @@ -16377,8 +16400,6 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 '@ckeditor/ckeditor5-widget': 47.4.0 ckeditor5: 47.4.0 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-html-embed@47.4.0': dependencies: @@ -16438,6 +16459,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-indent@47.4.0': dependencies: @@ -16561,6 +16584,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-merge-fields@47.4.0': dependencies: @@ -16573,6 +16598,8 @@ snapshots: '@ckeditor/ckeditor5-widget': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-minimap@47.4.0': dependencies: @@ -16581,6 +16608,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-operations-compressor@47.4.0': dependencies: @@ -16635,6 +16664,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 '@ckeditor/ckeditor5-widget': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-pagination@47.4.0': dependencies: @@ -16742,6 +16773,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-slash-command@47.4.0': dependencies: @@ -16754,6 +16787,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-source-editing-enhanced@47.4.0': dependencies: @@ -16801,6 +16836,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-table@47.4.0': dependencies: @@ -16813,6 +16850,8 @@ snapshots: '@ckeditor/ckeditor5-widget': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-template@47.4.0': dependencies: @@ -16923,6 +16962,8 @@ snapshots: '@ckeditor/ckeditor5-engine': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-widget@47.4.0': dependencies: @@ -16942,6 +16983,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@codemirror/autocomplete@6.18.6': dependencies: @@ -17124,8 +17167,6 @@ snapshots: dependencies: '@csstools/css-tokenizer': 4.0.0 - '@csstools/css-syntax-patches-for-csstree@1.0.19': {} - '@csstools/css-syntax-patches-for-csstree@1.0.25': {} '@csstools/css-tokenizer@3.0.4': {} @@ -17155,10 +17196,6 @@ snapshots: dependencies: postcss-selector-parser: 7.1.1 - '@csstools/selector-specificity@5.0.0(postcss-selector-parser@7.1.0)': - dependencies: - postcss-selector-parser: 7.1.0 - '@csstools/selector-specificity@5.0.0(postcss-selector-parser@7.1.1)': dependencies: postcss-selector-parser: 7.1.1 @@ -18781,9 +18818,15 @@ snapshots: '@keyv/bigmap@1.3.0(keyv@5.5.4)': dependencies: hashery: 1.2.0 - hookified: 1.13.0 + hookified: 1.15.0 keyv: 5.5.4 + '@keyv/bigmap@1.3.0(keyv@5.6.0)': + dependencies: + hashery: 1.2.0 + hookified: 1.15.0 + keyv: 5.6.0 + '@keyv/serialize@1.1.1': {} '@kwsites/file-exists@1.1.1': @@ -20493,7 +20536,7 @@ snapshots: - supports-color - typescript - '@stylistic/stylelint-plugin@3.1.3(stylelint@17.0.0(typescript@5.9.3))': + '@stylistic/stylelint-plugin@3.1.3(stylelint@17.1.0(typescript@5.9.3))': dependencies: '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 @@ -20503,7 +20546,7 @@ snapshots: postcss-selector-parser: 6.1.2 postcss-value-parser: 4.2.0 style-search: 0.1.0 - stylelint: 17.0.0(typescript@5.9.3) + stylelint: 17.1.0(typescript@5.9.3) '@swc/core-darwin-arm64@1.11.29': optional: true @@ -22517,6 +22560,14 @@ snapshots: keyv: 5.5.4 qified: 0.5.2 + cacheable@2.3.2: + dependencies: + '@cacheable/memory': 2.0.7 + '@cacheable/utils': 2.3.3 + hookified: 1.15.0 + keyv: 5.6.0 + qified: 0.6.0 + call-bind-apply-helpers@1.0.2: dependencies: es-errors: 1.3.0 @@ -24890,6 +24941,10 @@ snapshots: dependencies: flat-cache: 6.1.19 + file-entry-cache@11.1.2: + dependencies: + flat-cache: 6.1.20 + file-entry-cache@8.0.0: dependencies: flat-cache: 4.0.1 @@ -24996,6 +25051,12 @@ snapshots: flatted: 3.3.3 hookified: 1.13.0 + flat-cache@6.1.20: + dependencies: + cacheable: 2.3.2 + flatted: 3.3.3 + hookified: 1.15.0 + flat@5.0.2: {} flatted@3.3.3: {} @@ -25519,7 +25580,11 @@ snapshots: hashery@1.2.0: dependencies: - hookified: 1.13.0 + hookified: 1.15.0 + + hashery@1.4.0: + dependencies: + hookified: 1.15.0 hasown@2.0.2: dependencies: @@ -25658,6 +25723,8 @@ snapshots: hookified@1.13.0: {} + hookified@1.15.0: {} + hosted-git-info@2.8.9: {} hosted-git-info@8.1.0: @@ -26621,6 +26688,10 @@ snapshots: dependencies: '@keyv/serialize': 1.1.1 + keyv@5.6.0: + dependencies: + '@keyv/serialize': 1.1.1 + khroma@2.1.0: {} kind-of@6.0.3: {} @@ -29022,11 +29093,6 @@ snapshots: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-selector-parser@7.1.0: - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - postcss-selector-parser@7.1.1: dependencies: cssesc: 3.0.0 @@ -29239,6 +29305,10 @@ snapshots: dependencies: hookified: 1.13.0 + qified@0.6.0: + dependencies: + hookified: 1.15.0 + qjobs@1.2.0: {} qs@6.14.1: @@ -30833,37 +30903,37 @@ snapshots: postcss: 8.5.6 postcss-selector-parser: 7.1.1 - stylelint-config-ckeditor5@13.0.0(stylelint@17.0.0(typescript@5.9.3)): + stylelint-config-ckeditor5@13.0.0(stylelint@17.1.0(typescript@5.9.3)): dependencies: - '@stylistic/stylelint-plugin': 3.1.3(stylelint@17.0.0(typescript@5.9.3)) - stylelint: 17.0.0(typescript@5.9.3) - stylelint-config-recommended: 16.0.0(stylelint@17.0.0(typescript@5.9.3)) - stylelint-plugin-ckeditor5-rules: 13.0.0(stylelint@17.0.0(typescript@5.9.3)) + '@stylistic/stylelint-plugin': 3.1.3(stylelint@17.1.0(typescript@5.9.3)) + stylelint: 17.1.0(typescript@5.9.3) + stylelint-config-recommended: 16.0.0(stylelint@17.1.0(typescript@5.9.3)) + stylelint-plugin-ckeditor5-rules: 13.0.0(stylelint@17.1.0(typescript@5.9.3)) stylelint-config-ckeditor5@2.0.1(stylelint@16.26.1(typescript@5.0.4)): dependencies: stylelint: 16.26.1(typescript@5.0.4) stylelint-config-recommended: 3.0.0(stylelint@16.26.1(typescript@5.0.4)) - stylelint-config-recommended@16.0.0(stylelint@17.0.0(typescript@5.9.3)): + stylelint-config-recommended@16.0.0(stylelint@17.1.0(typescript@5.9.3)): dependencies: - stylelint: 17.0.0(typescript@5.9.3) + stylelint: 17.1.0(typescript@5.9.3) stylelint-config-recommended@3.0.0(stylelint@16.26.1(typescript@5.0.4)): dependencies: stylelint: 16.26.1(typescript@5.0.4) - stylelint-plugin-ckeditor5-rules@13.0.0(stylelint@17.0.0(typescript@5.9.3)): + stylelint-plugin-ckeditor5-rules@13.0.0(stylelint@17.1.0(typescript@5.9.3)): dependencies: - stylelint: 17.0.0(typescript@5.9.3) + stylelint: 17.1.0(typescript@5.9.3) stylelint@16.26.1(typescript@5.0.4): dependencies: '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) - '@csstools/css-syntax-patches-for-csstree': 1.0.19 + '@csstools/css-syntax-patches-for-csstree': 1.0.25 '@csstools/css-tokenizer': 3.0.4 '@csstools/media-query-list-parser': 4.0.3(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) - '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0) + '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.1) '@dual-bundle/import-meta-resolve': 4.2.1 balanced-match: 2.0.0 colord: 2.9.3 @@ -30890,7 +30960,7 @@ snapshots: postcss: 8.5.6 postcss-resolve-nested-selector: 0.1.6 postcss-safe-parser: 7.0.1(postcss@8.5.6) - postcss-selector-parser: 7.1.0 + postcss-selector-parser: 7.1.1 postcss-value-parser: 4.2.0 resolve-from: 5.0.0 string-width: 4.2.3 @@ -30902,7 +30972,7 @@ snapshots: - supports-color - typescript - stylelint@17.0.0(typescript@5.9.3): + stylelint@17.1.0(typescript@5.9.3): dependencies: '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) '@csstools/css-syntax-patches-for-csstree': 1.0.25 @@ -30918,7 +30988,7 @@ snapshots: debug: 4.4.3(supports-color@8.1.1) fast-glob: 3.3.3 fastest-levenshtein: 1.0.16 - file-entry-cache: 11.1.1 + file-entry-cache: 11.1.2 global-modules: 2.0.0 globby: 16.1.0 globjoin: 0.1.4 From ad0ee8da32402dcd718fd7e2a9c77b6df764da38 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 31 Jan 2026 01:16:04 +0000 Subject: [PATCH 035/350] chore(deps): update dependency dpdm to v4 --- package.json | 2 +- pnpm-lock.yaml | 90 +++++++++++++++++++++++++++++++++++--------------- 2 files changed, 65 insertions(+), 27 deletions(-) diff --git a/package.json b/package.json index 129efb1dca..7789e8e42f 100644 --- a/package.json +++ b/package.json @@ -56,7 +56,7 @@ "@vitest/ui": "4.0.18", "chalk": "5.6.2", "cross-env": "10.1.0", - "dpdm": "3.14.0", + "dpdm": "4.0.1", "esbuild": "0.27.2", "eslint": "9.39.2", "eslint-config-preact": "2.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dd2f00e6f5..b160fda59f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -87,8 +87,8 @@ importers: specifier: 10.1.0 version: 10.1.0 dpdm: - specifier: 3.14.0 - version: 3.14.0 + specifier: 4.0.1 + version: 4.0.1 esbuild: specifier: 0.27.2 version: 0.27.2 @@ -8072,8 +8072,8 @@ packages: resolution: {integrity: sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw==} hasBin: true - dpdm@3.14.0: - resolution: {integrity: sha512-YJzsFSyEtj88q5eTELg3UWU7TVZkG1dpbF4JDQ3t1b07xuzXmdoGeSz9TKOke1mUuOpWlk4q+pBh+aHzD6GBTg==} + dpdm@4.0.1: + resolution: {integrity: sha512-9NutC+V6A/4GHgqsqRTMQNDlhipK3lyPWBJ8zIVT8lTncy71d1BzR7sbCO0Dv2zTZ4XSxvbEfMyd0NDDLU0+fw==} hasBin: true draggabilly@3.0.0: @@ -10477,6 +10477,10 @@ packages: resolution: {integrity: sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==} engines: {node: '>=18'} + log-symbols@7.0.1: + resolution: {integrity: sha512-ja1E3yCr9i/0hmBVaM0bfwDjnGy8I/s6PP4DFp+yP+a+mrHO4Rm7DtmnqROTUkHIkqffC84YY7AeqX6oFk0WFg==} + engines: {node: '>=18'} + log-update@5.0.1: resolution: {integrity: sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -11463,6 +11467,10 @@ packages: resolution: {integrity: sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==} engines: {node: '>=18'} + ora@9.1.0: + resolution: {integrity: sha512-53uuLsXHOAJl5zLrUrzY9/kE+uIFEx7iaH4g2BIJQK4LZjY4LpCCYZVKDWIkL+F01wAaCg93duQ1whnK/AmY1A==} + engines: {node: '>=20'} + os-shim@0.1.3: resolution: {integrity: sha512-jd0cvB8qQ5uVt0lvCIexBaROw1KyKm5sbulg2fWOHjETisuCzWyt+eTZKEMs8v6HwzoGs8xik26jg7eCM6pS+A==} engines: {node: '>= 0.4.0'} @@ -15108,6 +15116,10 @@ packages: resolution: {integrity: sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==} engines: {node: '>=18'} + yoctocolors@2.1.2: + resolution: {integrity: sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==} + engines: {node: '>=18'} + z-schema@5.0.5: resolution: {integrity: sha512-D7eujBWkLa3p2sIpJA0d1pr7es+a7m0vFAnZLlCEKq/Ij2k0MLi9Br2UPxoxdYystm5K1yeBGzub0FlYUEWj2Q==} engines: {node: '>=8.0.0'} @@ -15820,8 +15832,6 @@ snapshots: '@ckeditor/ckeditor5-core': 47.4.0 '@ckeditor/ckeditor5-upload': 47.4.0 ckeditor5: 47.4.0 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-ai@47.4.0(bufferutil@4.0.9)(utf-8-validate@6.0.5)': dependencies: @@ -15962,16 +15972,12 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 '@ckeditor/ckeditor5-widget': 47.4.0 es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-cloud-services@47.4.0': dependencies: '@ckeditor/ckeditor5-core': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-code-block@47.4.0(patch_hash=2361d8caad7d6b5bddacc3a3b4aa37dbfba260b1c1b22a450413a79c1bb1ce95)': dependencies: @@ -16037,8 +16043,6 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 '@ckeditor/ckeditor5-watchdog': 47.4.0 es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-dev-build-tools@54.3.2(@swc/helpers@0.5.17)(tslib@2.8.1)(typescript@5.9.3)': dependencies: @@ -16164,8 +16168,6 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-editor-classic@47.4.0': dependencies: @@ -16175,8 +16177,6 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-editor-decoupled@47.4.0': dependencies: @@ -16186,8 +16186,6 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-editor-inline@47.4.0': dependencies: @@ -16221,6 +16219,8 @@ snapshots: '@ckeditor/ckeditor5-table': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-emoji@47.4.0': dependencies: @@ -16277,6 +16277,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-export-word@47.4.0': dependencies: @@ -16301,8 +16303,6 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-font@47.4.0': dependencies: @@ -16377,8 +16377,6 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 '@ckeditor/ckeditor5-widget': 47.4.0 ckeditor5: 47.4.0 - transitivePeerDependencies: - - supports-color '@ckeditor/ckeditor5-html-embed@47.4.0': dependencies: @@ -16438,6 +16436,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-indent@47.4.0': dependencies: @@ -16561,6 +16561,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-merge-fields@47.4.0': dependencies: @@ -16573,6 +16575,8 @@ snapshots: '@ckeditor/ckeditor5-widget': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-minimap@47.4.0': dependencies: @@ -16581,6 +16585,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-operations-compressor@47.4.0': dependencies: @@ -16635,6 +16641,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 '@ckeditor/ckeditor5-widget': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-pagination@47.4.0': dependencies: @@ -16742,6 +16750,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-slash-command@47.4.0': dependencies: @@ -16754,6 +16764,8 @@ snapshots: '@ckeditor/ckeditor5-ui': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-source-editing-enhanced@47.4.0': dependencies: @@ -16801,6 +16813,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-table@47.4.0': dependencies: @@ -16813,6 +16827,8 @@ snapshots: '@ckeditor/ckeditor5-widget': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-template@47.4.0': dependencies: @@ -16923,6 +16939,8 @@ snapshots: '@ckeditor/ckeditor5-engine': 47.4.0 '@ckeditor/ckeditor5-utils': 47.4.0 es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@ckeditor/ckeditor5-widget@47.4.0': dependencies: @@ -16942,6 +16960,8 @@ snapshots: '@ckeditor/ckeditor5-utils': 47.4.0 ckeditor5: 47.4.0 es-toolkit: 1.39.5 + transitivePeerDependencies: + - supports-color '@codemirror/autocomplete@6.18.6': dependencies: @@ -23879,15 +23899,15 @@ snapshots: dependencies: minimatch: 3.1.2 - dpdm@3.14.0: + dpdm@4.0.1: dependencies: - chalk: 4.1.2 + chalk: 5.6.2 fs-extra: 11.3.3 glob: 13.0.0 - ora: 5.4.1 + ora: 9.1.0 tslib: 2.8.1 typescript: 5.9.3 - yargs: 17.7.2 + yargs: 18.0.0 draggabilly@3.0.0: dependencies: @@ -26902,6 +26922,11 @@ snapshots: chalk: 5.6.2 is-unicode-supported: 1.3.0 + log-symbols@7.0.1: + dependencies: + is-unicode-supported: 2.1.0 + yoctocolors: 2.1.2 + log-update@5.0.1: dependencies: ansi-escapes: 5.0.0 @@ -28274,6 +28299,17 @@ snapshots: string-width: 7.2.0 strip-ansi: 7.1.2 + ora@9.1.0: + dependencies: + chalk: 5.6.2 + cli-cursor: 5.0.0 + cli-spinners: 3.2.0 + is-interactive: 2.0.0 + is-unicode-supported: 2.1.0 + log-symbols: 7.0.1 + stdin-discarder: 0.2.2 + string-width: 8.1.0 + os-shim@0.1.3: {} outdent@0.8.0: {} @@ -32614,6 +32650,8 @@ snapshots: yoctocolors-cjs@2.1.3: {} + yoctocolors@2.1.2: {} + z-schema@5.0.5: dependencies: lodash.get: 4.4.2 From 7c6c0c1fbdc64c65a07b27a03c47a8ca7f36bf2c Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sat, 31 Jan 2026 10:14:23 +0200 Subject: [PATCH 036/350] feat(calendar): integrate calendar header into collection properites --- .../widgets/collections/calendar/index.css | 28 --------------- .../widgets/collections/calendar/index.tsx | 35 +++++++++++++------ .../src/widgets/layout/NoteTitleActions.tsx | 1 - .../note_bars/CollectionProperties.css | 1 + .../note_bars/CollectionProperties.tsx | 10 +++++- 5 files changed, 35 insertions(+), 40 deletions(-) diff --git a/apps/client/src/widgets/collections/calendar/index.css b/apps/client/src/widgets/collections/calendar/index.css index b5e9fb1303..196609abda 100644 --- a/apps/client/src/widgets/collections/calendar/index.css +++ b/apps/client/src/widgets/collections/calendar/index.css @@ -59,34 +59,6 @@ overflow: hidden; } -/* #region Header */ -.calendar-view .calendar-header { - margin-bottom: 10px; - display: flex; - align-items: center; - gap: 10px; -} - -.calendar-view .calendar-header .btn { - min-width: unset !important; -} - -.calendar-view .calendar-header > .title { - flex-grow: 1; - font-size: 1.3rem; - font-weight: normal; -} - -body.desktop:not(.zen):not(.experimental-feature-new-layout) .calendar-view .calendar-header { - padding-block-start: 4px; - padding-inline-end: 5em; -} - -.search-result-widget-content .calendar-view .calendar-header { - padding-inline-end: unset !important; -} -/* #endregion */ - /* #region Events */ /* diff --git a/apps/client/src/widgets/collections/calendar/index.tsx b/apps/client/src/widgets/collections/calendar/index.tsx index 0dde523c77..846fad0445 100644 --- a/apps/client/src/widgets/collections/calendar/index.tsx +++ b/apps/client/src/widgets/collections/calendar/index.tsx @@ -14,6 +14,7 @@ import dialog from "../../../services/dialog"; import froca from "../../../services/froca"; import { t } from "../../../services/i18n"; import { isMobile } from "../../../services/utils"; +import CollectionProperties from "../../note_bars/CollectionProperties"; import ActionButton from "../../react/ActionButton"; import Button, { ButtonGroup } from "../../react/Button"; import { useNoteLabel, useNoteLabelBoolean, useResizeObserver, useSpacedUpdate, useTriliumEvent, useTriliumOption, useTriliumOptionInt } from "../../react/hooks"; @@ -41,24 +42,28 @@ const CALENDAR_VIEWS = [ { type: "timeGridWeek", name: t("calendar.week"), + icon: "bx bx-calendar-week", previousText: t("calendar.week_previous"), nextText: t("calendar.week_next") }, { type: "dayGridMonth", name: t("calendar.month"), + icon: "bx bx-calendar", previousText: t("calendar.month_previous"), nextText: t("calendar.month_next") }, { type: "multiMonthYear", name: t("calendar.year"), + icon: "bx bx-layer", previousText: t("calendar.year_previous"), nextText: t("calendar.year_next") }, { type: "listMonth", name: t("calendar.list"), + icon: "bx bx-list-ol", previousText: t("calendar.month_previous"), nextText: t("calendar.month_next") } @@ -140,7 +145,11 @@ export default function CalendarView({ note, noteIds }: ViewModeProps - + } + rightChildren={} + /> }) { - const { title, viewType: currentViewType } = useOnDatesSet(calendarRef); +function CalendarHeaderTitle({ calendarRef }: { calendarRef: RefObject }) { + const { title } = useOnDatesSet(calendarRef); + return {title}; +} + +function CalendarHeaderButtons({ calendarRef }: { calendarRef: RefObject }) { + const { viewType: currentViewType } = useOnDatesSet(calendarRef); const currentViewData = CALENDAR_VIEWS.find(v => calendarRef.current && v.type === currentViewType); return ( -
- {title} + <> {CALENDAR_VIEWS.map(viewData => ( -
+ ); } diff --git a/apps/client/src/widgets/layout/NoteTitleActions.tsx b/apps/client/src/widgets/layout/NoteTitleActions.tsx index dd1ed2342c..6886acc7e6 100644 --- a/apps/client/src/widgets/layout/NoteTitleActions.tsx +++ b/apps/client/src/widgets/layout/NoteTitleActions.tsx @@ -26,7 +26,6 @@ export default function NoteTitleActions() {
{noteType === "search" && } - {!isHiddenNote && note && noteType === "book" && }
diff --git a/apps/client/src/widgets/note_bars/CollectionProperties.css b/apps/client/src/widgets/note_bars/CollectionProperties.css index c4db1a8ae0..5b0736c97a 100644 --- a/apps/client/src/widgets/note_bars/CollectionProperties.css +++ b/apps/client/src/widgets/note_bars/CollectionProperties.css @@ -6,6 +6,7 @@ width: 100%; max-width: unset; font-size: 0.8em; + margin-bottom: 1em; .dropdown-menu { input.form-control { diff --git a/apps/client/src/widgets/note_bars/CollectionProperties.tsx b/apps/client/src/widgets/note_bars/CollectionProperties.tsx index d5c9ffb42d..f6fd4ce890 100644 --- a/apps/client/src/widgets/note_bars/CollectionProperties.tsx +++ b/apps/client/src/widgets/note_bars/CollectionProperties.tsx @@ -1,6 +1,7 @@ import "./CollectionProperties.css"; import { t } from "i18next"; +import { ComponentChildren } from "preact"; import { useContext, useRef } from "preact/hooks"; import { Fragment } from "preact/jsx-runtime"; @@ -28,7 +29,11 @@ const ICON_MAPPINGS: Record = { presentation: "bx bx-rectangle" }; -export default function CollectionProperties({ note }: { note: FNote }) { +export default function CollectionProperties({ note, centerChildren, rightChildren }: { + note: FNote; + centerChildren?: ComponentChildren; + rightChildren?: ComponentChildren; +}) { const [ viewType, setViewType ] = useViewType(note); return ( @@ -36,6 +41,9 @@ export default function CollectionProperties({ note }: { note: FNote }) {
+ {centerChildren} +
+ {rightChildren}
); From e4f260e242d8fedc2f6f3a6f4164fe9a53999715 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sat, 31 Jan 2026 10:18:35 +0200 Subject: [PATCH 037/350] chore(calendar): relocate prev/next buttons --- .../widgets/collections/calendar/index.css | 14 ++++++++++- .../widgets/collections/calendar/index.tsx | 23 ++++++++++--------- 2 files changed, 25 insertions(+), 12 deletions(-) diff --git a/apps/client/src/widgets/collections/calendar/index.css b/apps/client/src/widgets/collections/calendar/index.css index 196609abda..37eb9b4235 100644 --- a/apps/client/src/widgets/collections/calendar/index.css +++ b/apps/client/src/widgets/collections/calendar/index.css @@ -59,13 +59,25 @@ overflow: hidden; } +.calendar-view .calendar-header-center { + display: flex; + align-items: center; + justify-content: center; + + .title { + min-width: 150px; + font-size: 1.2em; + text-align: center; + } +} + /* #region Events */ /* * week, month, year views */ - .calendar-container a.fc-event { +.calendar-container a.fc-event { text-decoration: none; } diff --git a/apps/client/src/widgets/collections/calendar/index.tsx b/apps/client/src/widgets/collections/calendar/index.tsx index 846fad0445..a5e7518ab5 100644 --- a/apps/client/src/widgets/collections/calendar/index.tsx +++ b/apps/client/src/widgets/collections/calendar/index.tsx @@ -147,8 +147,8 @@ export default function CalendarView({ note, noteIds }: ViewModeProps } - rightChildren={} + centerChildren={} + rightChildren={} /> }) { - const { title } = useOnDatesSet(calendarRef); - return {title}; +function CalendarHeaderCenter({ calendarRef }: { calendarRef: RefObject }) { + const { title, viewType: currentViewType } = useOnDatesSet(calendarRef); + const currentViewData = CALENDAR_VIEWS.find(v => calendarRef.current && v.type === currentViewType); + + return
+ calendarRef.current?.prev()} /> + {title} + calendarRef.current?.next()} /> +
; } -function CalendarHeaderButtons({ calendarRef }: { calendarRef: RefObject }) { +function CalendarHeaderRight({ calendarRef }: { calendarRef: RefObject }) { const { viewType: currentViewType } = useOnDatesSet(calendarRef); - const currentViewData = CALENDAR_VIEWS.find(v => calendarRef.current && v.type === currentViewType); return ( <> @@ -201,10 +206,6 @@ function CalendarHeaderButtons({ calendarRef }: { calendarRef: RefObject calendarRef.current?.today()} /> - - calendarRef.current?.prev()} /> - calendarRef.current?.next()} /> - ); } From b5cfbc92af5bfcff8da81c89d6e20a9759bfb150 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sat, 31 Jan 2026 10:34:37 +0200 Subject: [PATCH 038/350] chore(calendar): use text instead of icons --- apps/client/src/widgets/collections/calendar/index.tsx | 5 ++--- apps/client/src/widgets/note_bars/CollectionProperties.css | 4 ++++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/apps/client/src/widgets/collections/calendar/index.tsx b/apps/client/src/widgets/collections/calendar/index.tsx index a5e7518ab5..c63e482b6d 100644 --- a/apps/client/src/widgets/collections/calendar/index.tsx +++ b/apps/client/src/widgets/collections/calendar/index.tsx @@ -186,6 +186,7 @@ function CalendarHeaderCenter({ calendarRef }: { calendarRef: RefObject calendarRef.current?.prev()} /> {title} calendarRef.current?.next()} /> +
; } @@ -196,16 +197,14 @@ function CalendarHeaderRight({ calendarRef }: { calendarRef: RefObject {CALENDAR_VIEWS.map(viewData => ( - calendarRef.current?.changeView(viewData.type)} /> ))} - calendarRef.current?.today()} /> ); } diff --git a/apps/client/src/widgets/note_bars/CollectionProperties.css b/apps/client/src/widgets/note_bars/CollectionProperties.css index 5b0736c97a..2afe5ae1be 100644 --- a/apps/client/src/widgets/note_bars/CollectionProperties.css +++ b/apps/client/src/widgets/note_bars/CollectionProperties.css @@ -18,4 +18,8 @@ .spacer { flex-grow: 1; } + + button.btn { + min-width: 0; + } } From 85a82124b150adf6bd12c11844b250158a235725 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sat, 31 Jan 2026 10:53:37 +0200 Subject: [PATCH 039/350] feat(calendar): basic header support on mobile --- .../src/widgets/collections/calendar/index.css | 4 +--- .../src/widgets/collections/calendar/index.tsx | 4 ++-- .../widgets/note_bars/CollectionProperties.css | 16 +++++++++++++++- .../widgets/note_bars/CollectionProperties.tsx | 18 +++++++++++------- 4 files changed, 29 insertions(+), 13 deletions(-) diff --git a/apps/client/src/widgets/collections/calendar/index.css b/apps/client/src/widgets/collections/calendar/index.css index 37eb9b4235..414478a0df 100644 --- a/apps/client/src/widgets/collections/calendar/index.css +++ b/apps/client/src/widgets/collections/calendar/index.css @@ -59,9 +59,7 @@ overflow: hidden; } -.calendar-view .calendar-header-center { - display: flex; - align-items: center; +.calendar-view .collection-properties .center-container { justify-content: center; .title { diff --git a/apps/client/src/widgets/collections/calendar/index.tsx b/apps/client/src/widgets/collections/calendar/index.tsx index c63e482b6d..2f99821df7 100644 --- a/apps/client/src/widgets/collections/calendar/index.tsx +++ b/apps/client/src/widgets/collections/calendar/index.tsx @@ -182,12 +182,12 @@ function CalendarHeaderCenter({ calendarRef }: { calendarRef: RefObject calendarRef.current && v.type === currentViewType); - return
+ return <> calendarRef.current?.prev()} /> {title} calendarRef.current?.next()} />
; + ; } function CalendarHeaderRight({ calendarRef }: { calendarRef: RefObject }) { diff --git a/apps/client/src/widgets/note_bars/CollectionProperties.css b/apps/client/src/widgets/note_bars/CollectionProperties.css index 2afe5ae1be..fda0714ac7 100644 --- a/apps/client/src/widgets/note_bars/CollectionProperties.css +++ b/apps/client/src/widgets/note_bars/CollectionProperties.css @@ -15,11 +15,25 @@ } } - .spacer { + >div { + display: inline-flex; + align-items: center; + } + + .center-container { flex-grow: 1; } button.btn { min-width: 0; } + + @media (max-width: 991px) { + flex-wrap: wrap; + + >div { + flex-grow: 1; + justify-content: center; + } + } } diff --git a/apps/client/src/widgets/note_bars/CollectionProperties.tsx b/apps/client/src/widgets/note_bars/CollectionProperties.tsx index f6fd4ce890..6b3d781db6 100644 --- a/apps/client/src/widgets/note_bars/CollectionProperties.tsx +++ b/apps/client/src/widgets/note_bars/CollectionProperties.tsx @@ -38,13 +38,17 @@ export default function CollectionProperties({ note, centerChildren, rightChildr return (
- - -
- {centerChildren} -
- {rightChildren} - +
+ + +
+
+ {centerChildren} +
+
+ {rightChildren} + +
); } From fc756ba46eb0aa486718a422a748093532e1e803 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sat, 31 Jan 2026 11:00:55 +0200 Subject: [PATCH 040/350] feat(collections): move help button to the title area --- .../src/widgets/note_bars/CollectionProperties.tsx | 13 ------------- .../client/src/widgets/ribbon/NoteActionsCustom.tsx | 4 ++-- apps/client/src/widgets/ribbon/style.css | 2 +- 3 files changed, 3 insertions(+), 16 deletions(-) diff --git a/apps/client/src/widgets/note_bars/CollectionProperties.tsx b/apps/client/src/widgets/note_bars/CollectionProperties.tsx index 6b3d781db6..cd1cb73d4b 100644 --- a/apps/client/src/widgets/note_bars/CollectionProperties.tsx +++ b/apps/client/src/widgets/note_bars/CollectionProperties.tsx @@ -47,7 +47,6 @@ export default function CollectionProperties({ note, centerChildren, rightChildr
{rightChildren} -
); @@ -234,15 +233,3 @@ function CheckBoxPropertyView({ note, property }: { note: FNote, property: Check /> ); } - -function HelpButton({ note }: { note: FNote }) { - const helpUrl = getHelpUrlForNote(note); - - return (helpUrl && ( - openInAppHelpFromUrl(helpUrl))} - text={t("help-button.title")} - /> - )); -} diff --git a/apps/client/src/widgets/ribbon/NoteActionsCustom.tsx b/apps/client/src/widgets/ribbon/NoteActionsCustom.tsx index 36b4b85431..c2925c849b 100644 --- a/apps/client/src/widgets/ribbon/NoteActionsCustom.tsx +++ b/apps/client/src/widgets/ribbon/NoteActionsCustom.tsx @@ -234,9 +234,9 @@ function OpenTriliumApiDocsButton({ noteMime }: NoteActionsCustomInnerProps) { />; } -function InAppHelpButton({ note, noteType }: NoteActionsCustomInnerProps) { +function InAppHelpButton({ note }: NoteActionsCustomInnerProps) { const helpUrl = getHelpUrlForNote(note); - const isEnabled = !!helpUrl && (noteType !== "book"); + const isEnabled = !!helpUrl; return isEnabled && ( button:last-of-type { - margin-right: 1em; + margin-right: 0.5em; } } } From 2fa9b2e4ddaf432cc7c66a0c59d8fd457f428e6c Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sat, 31 Jan 2026 11:08:41 +0200 Subject: [PATCH 041/350] feat(mobile): add help button in note context menu --- .../widgets/mobile_widgets/mobile_detail_menu.tsx | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/apps/client/src/widgets/mobile_widgets/mobile_detail_menu.tsx b/apps/client/src/widgets/mobile_widgets/mobile_detail_menu.tsx index 765bb4c31e..1566d08890 100644 --- a/apps/client/src/widgets/mobile_widgets/mobile_detail_menu.tsx +++ b/apps/client/src/widgets/mobile_widgets/mobile_detail_menu.tsx @@ -1,13 +1,16 @@ import { useContext } from "preact/hooks"; + import appContext, { CommandMappings } from "../../components/app_context"; import contextMenu, { MenuItem } from "../../menus/context_menu"; import branches from "../../services/branches"; import { t } from "../../services/i18n"; +import { getHelpUrlForNote } from "../../services/in_app_help"; import note_create from "../../services/note_create"; import tree from "../../services/tree"; +import { openInAppHelpFromUrl } from "../../services/utils"; +import BasicWidget from "../basic_widget"; import ActionButton from "../react/ActionButton"; import { ParentComponent } from "../react/react_utils"; -import BasicWidget from "../basic_widget"; export default function MobileDetailMenu() { const parentComponent = useContext(ParentComponent); @@ -24,6 +27,7 @@ export default function MobileDetailMenu() { const subContexts = noteContext.getMainContext().getSubContexts(); const isMainContext = noteContext?.isMainContext(); const note = noteContext.note; + const helpUrl = getHelpUrlForNote(note); const items: (MenuItem)[] = [ { title: t("mobile_detail_menu.insert_child_note"), command: "insertChildNote", uiIcon: "bx bx-plus", enabled: note?.type !== "search" }, @@ -31,6 +35,12 @@ export default function MobileDetailMenu() { { kind: "separator" }, { title: t("mobile_detail_menu.note_revisions"), command: "showRevisions", uiIcon: "bx bx-history" }, { kind: "separator" }, + helpUrl && { + title: t("help-button.title"), + uiIcon: "bx bx-help-circle", + handler: () => openInAppHelpFromUrl(helpUrl) + }, + { kind: "separator" }, subContexts.length < 2 && { title: t("create_pane_button.create_new_split"), command: "openNewNoteSplit", uiIcon: "bx bx-dock-right" }, !isMainContext && { title: t("close_pane_button.close_this_pane"), command: "closeThisNoteSplit", uiIcon: "bx bx-x" } ].filter(i => !!i) as MenuItem[]; @@ -70,5 +80,5 @@ export default function MobileDetailMenu() { }); }} /> - ) + ); } From f3bcab813ae93966f2ffb89586ab04ca284b5d50 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sat, 31 Jan 2026 11:11:01 +0200 Subject: [PATCH 042/350] chore(calendar): minor improvements on mobile --- .../src/widgets/collections/calendar/index.css | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/apps/client/src/widgets/collections/calendar/index.css b/apps/client/src/widgets/collections/calendar/index.css index 414478a0df..428d3a66a3 100644 --- a/apps/client/src/widgets/collections/calendar/index.css +++ b/apps/client/src/widgets/collections/calendar/index.css @@ -59,13 +59,19 @@ overflow: hidden; } -.calendar-view .collection-properties .center-container { - justify-content: center; +.calendar-view .collection-properties { + .center-container { + .title { + min-width: 150px; + font-size: 1.2em; + text-align: center; + } + } - .title { - min-width: 150px; - font-size: 1.2em; - text-align: center; + @media (max-width: 991px) { + .center-container { + padding: 0.5em 0; + } } } From fbc6b853ed26390625ad5449d6555483ff8f9465 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sat, 31 Jan 2026 11:17:26 +0200 Subject: [PATCH 043/350] chore(calendar): improve column fit on mobile --- apps/client/src/widgets/collections/calendar/index.css | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/apps/client/src/widgets/collections/calendar/index.css b/apps/client/src/widgets/collections/calendar/index.css index 428d3a66a3..08856c7887 100644 --- a/apps/client/src/widgets/collections/calendar/index.css +++ b/apps/client/src/widgets/collections/calendar/index.css @@ -22,6 +22,15 @@ height: 100%; user-select: none; padding: 10px; + + @media (max-width: 991px) { + padding: 0; + + th { + font-weight: normal; + font-size: 0.9em; + } + } } .calendar-view a, From 305f195539c4b3cdd1e4c9948c3d8e44ab897596 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sat, 31 Jan 2026 11:27:11 +0200 Subject: [PATCH 044/350] feat(calendar): dropdown-based view switcher for mobile --- .../widgets/collections/calendar/index.tsx | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/apps/client/src/widgets/collections/calendar/index.tsx b/apps/client/src/widgets/collections/calendar/index.tsx index 2f99821df7..1d35c46ab3 100644 --- a/apps/client/src/widgets/collections/calendar/index.tsx +++ b/apps/client/src/widgets/collections/calendar/index.tsx @@ -17,6 +17,8 @@ import { isMobile } from "../../../services/utils"; import CollectionProperties from "../../note_bars/CollectionProperties"; import ActionButton from "../../react/ActionButton"; import Button, { ButtonGroup } from "../../react/Button"; +import Dropdown from "../../react/Dropdown"; +import { FormListItem } from "../../react/FormList"; import { useNoteLabel, useNoteLabelBoolean, useResizeObserver, useSpacedUpdate, useTriliumEvent, useTriliumOption, useTriliumOptionInt } from "../../react/hooks"; import { ParentComponent } from "../../react/react_utils"; import TouchBar, { TouchBarButton, TouchBarLabel, TouchBarSegmentedControl, TouchBarSpacer } from "../../react/TouchBar"; @@ -192,6 +194,24 @@ function CalendarHeaderCenter({ calendarRef }: { calendarRef: RefObject }) { const { viewType: currentViewType } = useOnDatesSet(calendarRef); + const currentViewTypeData = CALENDAR_VIEWS.find(view => view.type === currentViewType); + + if (isMobile()) { + return ( + + {CALENDAR_VIEWS.map(viewData => ( + calendarRef.current?.changeView(viewData.type)} + >{viewData.name} + ))} + + ); + } return ( <> From 88ba4451eb37de77e33218d463fa4dcfc154cf72 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sat, 31 Jan 2026 11:33:00 +0200 Subject: [PATCH 045/350] chore(calendar): improve layout on mobile slightly --- .../src/widgets/collections/calendar/index.css | 14 +++++++++++++- .../src/widgets/note_bars/CollectionProperties.css | 2 ++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/apps/client/src/widgets/collections/calendar/index.css b/apps/client/src/widgets/collections/calendar/index.css index 08856c7887..e8e0b56ddc 100644 --- a/apps/client/src/widgets/collections/calendar/index.css +++ b/apps/client/src/widgets/collections/calendar/index.css @@ -70,6 +70,8 @@ .calendar-view .collection-properties { .center-container { + order: 100; + .title { min-width: 150px; font-size: 1.2em; @@ -78,8 +80,18 @@ } @media (max-width: 991px) { + >div { + justify-content: flex-start; + } + + .right-container { + flex-grow: 0; + } + .center-container { - padding: 0.5em 0; + .title { + flex-grow: 1; + } } } } diff --git a/apps/client/src/widgets/note_bars/CollectionProperties.css b/apps/client/src/widgets/note_bars/CollectionProperties.css index fda0714ac7..bf06067f5f 100644 --- a/apps/client/src/widgets/note_bars/CollectionProperties.css +++ b/apps/client/src/widgets/note_bars/CollectionProperties.css @@ -30,6 +30,8 @@ @media (max-width: 991px) { flex-wrap: wrap; + padding: 0.55em 1em; + margin: 0; >div { flex-grow: 1; From 1c9f8a254071f3c9a87bb3ebabaabf9d97669b9a Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sat, 31 Jan 2026 11:39:48 +0200 Subject: [PATCH 046/350] chore(collections): add collection toolbar to all collections --- .../src/widgets/collections/board/index.tsx | 114 +++++++++--------- .../src/widgets/collections/geomap/index.tsx | 40 +++--- .../collections/legacy/ListOrGridView.tsx | 5 + .../collections/presentation/index.tsx | 48 ++++---- .../src/widgets/collections/table/index.tsx | 35 +++--- .../note_bars/CollectionProperties.css | 4 +- 6 files changed, 133 insertions(+), 113 deletions(-) diff --git a/apps/client/src/widgets/collections/board/index.tsx b/apps/client/src/widgets/collections/board/index.tsx index 39e715f97c..455b952b44 100644 --- a/apps/client/src/widgets/collections/board/index.tsx +++ b/apps/client/src/widgets/collections/board/index.tsx @@ -1,20 +1,23 @@ -import { Dispatch, StateUpdater, useCallback, useEffect, useMemo, useRef, useState } from "preact/hooks"; -import { ViewModeProps } from "../interface"; import "./index.css"; -import { ColumnMap, getBoardData } from "./data"; + +import { createContext, TargetedKeyboardEvent } from "preact"; +import { Dispatch, StateUpdater, useCallback, useEffect, useMemo, useRef, useState } from "preact/hooks"; + +import FNote from "../../../entities/fnote"; +import { t } from "../../../services/i18n"; +import toast from "../../../services/toast"; +import CollectionProperties from "../../note_bars/CollectionProperties"; +import FormTextArea from "../../react/FormTextArea"; +import FormTextBox from "../../react/FormTextBox"; import { useNoteLabelBoolean, useNoteLabelWithDefault, useTriliumEvent } from "../../react/hooks"; import Icon from "../../react/Icon"; -import { t } from "../../../services/i18n"; -import Api from "./api"; -import FormTextBox from "../../react/FormTextBox"; -import { createContext, TargetedKeyboardEvent } from "preact"; -import { onWheelHorizontalScroll } from "../../widget_utils"; -import Column from "./column"; -import BoardApi from "./api"; -import FormTextArea from "../../react/FormTextArea"; -import FNote from "../../../entities/fnote"; import NoteAutocomplete from "../../react/NoteAutocomplete"; -import toast from "../../../services/toast"; +import { onWheelHorizontalScroll } from "../../widget_utils"; +import { ViewModeProps } from "../interface"; +import Api from "./api"; +import BoardApi from "./api"; +import Column from "./column"; +import { ColumnMap, getBoardData } from "./data"; export interface BoardViewData { columns?: BoardColumnData[]; @@ -145,7 +148,7 @@ export default function BoardView({ note: parentNote, noteIds, viewConfig, saveC const insertBefore = mouseX < columnMiddle; // Calculate the target position - let targetIndex = insertBefore ? index : index + 1; + const targetIndex = insertBefore ? index : index + 1; setColumnDropPosition(targetIndex); }, [draggedColumn]); @@ -163,6 +166,7 @@ export default function BoardView({ note: parentNote, noteIds, viewConfig, saveC className="board-view" onWheel={onWheelHorizontalScroll} > + {byColumn && columns &&
}
- ) + ); } function AddNewColumn({ api, isInRelationMode }: { api: BoardApi, isInRelationMode: boolean }) { @@ -218,26 +222,26 @@ function AddNewColumn({ api, isInRelationMode }: { api: BoardApi, isInRelationMo tabIndex={300} > {!isCreatingNewColumn - ? <> - {" "} - {t("board_view.add-column")} - - : ( - { - const created = await api.addNewColumn(columnName); - if (!created) { - toast.showMessage(t("board_view.column-already-exists"), undefined, "bx bx-duplicate"); - } - }} - dismiss={() => setIsCreatingNewColumn(false)} - isNewItem - mode={isInRelationMode ? "relation" : "normal"} - /> - )} + ? <> + {" "} + {t("board_view.add-column")} + + : ( + { + const created = await api.addNewColumn(columnName); + if (!created) { + toast.showMessage(t("board_view.column-already-exists"), undefined, "bx bx-duplicate"); + } + }} + dismiss={() => setIsCreatingNewColumn(false)} + isNewItem + mode={isInRelationMode ? "relation" : "normal"} + /> + )}
- ) + ); } export function TitleEditor({ currentValue, placeholder, save, dismiss, mode, isNewItem }: { @@ -302,26 +306,26 @@ export function TitleEditor({ currentValue, placeholder, save, dismiss, mode, is onBlur={onBlur} /> ); - } else { - return ( - { - if (e.key === "Escape") { - dismiss(); - } - }} - onBlur={() => dismiss()} - noteIdChanged={(newValue) => { - save(newValue); - dismiss(); - }} - /> - ); } + return ( + { + if (e.key === "Escape") { + dismiss(); + } + }} + onBlur={() => dismiss()} + noteIdChanged={(newValue) => { + save(newValue); + dismiss(); + }} + /> + ); + } diff --git a/apps/client/src/widgets/collections/geomap/index.tsx b/apps/client/src/widgets/collections/geomap/index.tsx index 6b91d4c8e6..d962c12fef 100644 --- a/apps/client/src/widgets/collections/geomap/index.tsx +++ b/apps/client/src/widgets/collections/geomap/index.tsx @@ -1,24 +1,27 @@ -import Map from "./map"; import "./index.css"; -import { ViewModeProps } from "../interface"; -import { useNoteBlob, useNoteLabel, useNoteLabelBoolean, useNoteProperty, useNoteTreeDrag, useSpacedUpdate, useTriliumEvent } from "../../react/hooks"; -import { DEFAULT_MAP_LAYER_NAME } from "./map_layer"; + import { divIcon, GPXOptions, LatLng, LeafletMouseEvent } from "leaflet"; -import { useCallback, useContext, useEffect, useMemo, useRef, useState } from "preact/hooks"; -import Marker, { GpxTrack } from "./marker"; -import froca from "../../../services/froca"; -import FNote from "../../../entities/fnote"; import markerIcon from "leaflet/dist/images/marker-icon.png"; import markerIconShadow from "leaflet/dist/images/marker-shadow.png"; +import { useCallback, useContext, useEffect, useMemo, useRef, useState } from "preact/hooks"; + import appContext from "../../../components/app_context"; -import { createNewNote, moveMarker } from "./api"; -import openContextMenu, { openMapContextMenu } from "./context_menu"; -import toast from "../../../services/toast"; +import FNote from "../../../entities/fnote"; +import branches from "../../../services/branches"; +import froca from "../../../services/froca"; import { t } from "../../../services/i18n"; import server from "../../../services/server"; -import branches from "../../../services/branches"; -import TouchBar, { TouchBarButton, TouchBarLabel, TouchBarSlider } from "../../react/TouchBar"; +import toast from "../../../services/toast"; +import CollectionProperties from "../../note_bars/CollectionProperties"; +import { useNoteBlob, useNoteLabel, useNoteLabelBoolean, useNoteProperty, useNoteTreeDrag, useSpacedUpdate, useTriliumEvent } from "../../react/hooks"; import { ParentComponent } from "../../react/react_utils"; +import TouchBar, { TouchBarButton, TouchBarLabel, TouchBarSlider } from "../../react/TouchBar"; +import { ViewModeProps } from "../interface"; +import { createNewNote, moveMarker } from "./api"; +import openContextMenu, { openMapContextMenu } from "./context_menu"; +import Map from "./map"; +import { DEFAULT_MAP_LAYER_NAME } from "./map_layer"; +import Marker, { GpxTrack } from "./marker"; const DEFAULT_COORDINATES: [number, number] = [3.878638227135724, 446.6630455551659]; const DEFAULT_ZOOM = 2; @@ -50,7 +53,7 @@ export default function GeoView({ note, noteIds, viewConfig, saveConfig }: ViewM } }, 5000); - useEffect(() => { froca.getNotes(noteIds).then(setNotes) }, [ noteIds ]); + useEffect(() => { froca.getNotes(noteIds).then(setNotes); }, [ noteIds ]); useEffect(() => { if (!note) return; @@ -60,7 +63,7 @@ export default function GeoView({ note, noteIds, viewConfig, saveConfig }: ViewM // Note creation. useTriliumEvent("geoMapCreateChildNote", () => { - toast.showPersistent({ + toast.showPersistent({ icon: "plus", id: "geo-new-note", title: "New note", @@ -130,6 +133,7 @@ export default function GeoView({ note, noteIds, viewConfig, saveConfig }: ViewM return (
+ { coordinates !== undefined && zoom !== undefined && + />; } function NoteGpxTrack({ note }: { note: FNote }) { @@ -238,7 +242,7 @@ function NoteGpxTrack({ note }: { note: FNote }) { color: note.getLabelValue("color") ?? "blue" } }), [ color, iconClass ]); - return xmlString && + return xmlString && ; } function buildIcon(bxIconClass: string, colorClass?: string, title?: string, noteIdLink?: string, archived?: boolean) { @@ -292,5 +296,5 @@ function GeoMapTouchBar({ state, map }: { state: State, map: L.Map | null | unde enabled={state === State.Normal} /> - ) + ); } diff --git a/apps/client/src/widgets/collections/legacy/ListOrGridView.tsx b/apps/client/src/widgets/collections/legacy/ListOrGridView.tsx index 40e6ae0bc6..80f791a07d 100644 --- a/apps/client/src/widgets/collections/legacy/ListOrGridView.tsx +++ b/apps/client/src/widgets/collections/legacy/ListOrGridView.tsx @@ -7,6 +7,7 @@ import attribute_renderer from "../../../services/attribute_renderer"; import content_renderer from "../../../services/content_renderer"; import { t } from "../../../services/i18n"; import link from "../../../services/link"; +import CollectionProperties from "../../note_bars/CollectionProperties"; import { useImperativeSearchHighlighlighting, useNoteLabel, useNoteLabelBoolean } from "../../react/hooks"; import Icon from "../../react/Icon"; import NoteLink from "../../react/NoteLink"; @@ -22,6 +23,8 @@ export function ListView({ note, noteIds: unfilteredNoteIds, highlightedTokens } return (
+ + { noteIds.length > 0 &&
@@ -48,6 +51,8 @@ export function GridView({ note, noteIds: unfilteredNoteIds, highlightedTokens } return (
+ +
diff --git a/apps/client/src/widgets/collections/presentation/index.tsx b/apps/client/src/widgets/collections/presentation/index.tsx index 0a3d36f65d..28fd18fa0a 100644 --- a/apps/client/src/widgets/collections/presentation/index.tsx +++ b/apps/client/src/widgets/collections/presentation/index.tsx @@ -1,18 +1,21 @@ -import { ViewModeMedia, ViewModeProps } from "../interface"; +import "./index.css"; + +import { RefObject } from "preact"; import { useEffect, useLayoutEffect, useRef, useState } from "preact/hooks"; import Reveal from "reveal.js"; import slideBaseStylesheet from "reveal.js/dist/reveal.css?raw"; -import slideCustomStylesheet from "./slidejs.css?raw"; -import { buildPresentationModel, PresentationModel, PresentationSlideBaseModel } from "./model"; -import ShadowDom from "../../react/ShadowDom"; -import ActionButton from "../../react/ActionButton"; -import "./index.css"; -import { RefObject } from "preact"; + import { openInCurrentNoteContext } from "../../../components/note_context"; -import { useNoteLabelWithDefault, useTriliumEvent } from "../../react/hooks"; -import { t } from "../../../services/i18n"; -import { DEFAULT_THEME, loadPresentationTheme } from "./themes"; import FNote from "../../../entities/fnote"; +import { t } from "../../../services/i18n"; +import CollectionProperties from "../../note_bars/CollectionProperties"; +import ActionButton from "../../react/ActionButton"; +import { useNoteLabelWithDefault, useTriliumEvent } from "../../react/hooks"; +import ShadowDom from "../../react/ShadowDom"; +import { ViewModeMedia, ViewModeProps } from "../interface"; +import { buildPresentationModel, PresentationModel, PresentationSlideBaseModel } from "./model"; +import slideCustomStylesheet from "./slidejs.css?raw"; +import { DEFAULT_THEME, loadPresentationTheme } from "./themes"; export default function PresentationView({ note, noteIds, media, onReady, onProgressChanged }: ViewModeProps<{}>) { const [ presentation, setPresentation ] = useState(); @@ -52,13 +55,14 @@ export default function PresentationView({ note, noteIds, media, onReady, onProg if (media === "screen") { return ( <> + {content} - ) + ); } else if (media === "print") { // Printing needs a query parameter that is read by Reveal.js. const url = new URL(window.location.href); @@ -143,7 +147,7 @@ function ButtonOverlay({ containerRef, api }: { containerRef: RefObject
- ) + ); } function Presentation({ presentation, setApi } : { presentation: PresentationModel, setApi: (api: Reveal.Api | undefined) => void }) { @@ -179,7 +183,7 @@ function Presentation({ presentation, setApi } : { presentation: PresentationMod api.destroy(); setRevealApi(undefined); setApi(undefined); - } + }; }, []); useEffect(() => { @@ -191,19 +195,19 @@ function Presentation({ presentation, setApi } : { presentation: PresentationMod
{presentation.slides?.map(slide => { if (!slide.verticalSlides) { - return - } else { - return ( -
- - {slide.verticalSlides.map(slide => )} -
- ); + return ; } + return ( +
+ + {slide.verticalSlides.map(slide => )} +
+ ); + })}
- ) + ); } diff --git a/apps/client/src/widgets/collections/table/index.tsx b/apps/client/src/widgets/collections/table/index.tsx index d557f12d33..d01f293d62 100644 --- a/apps/client/src/widgets/collections/table/index.tsx +++ b/apps/client/src/widgets/collections/table/index.tsx @@ -1,20 +1,23 @@ +import "./index.css"; + import { useCallback, useContext, useEffect, useMemo, useRef, useState } from "preact/hooks"; -import { ViewModeProps } from "../interface"; -import { TableData } from "./rows"; -import { useLegacyWidget } from "../../react/hooks"; -import Tabulator from "./tabulator"; -import { Tabulator as VanillaTabulator, SortModule, FormatModule, InteractionModule, EditModule, ResizeColumnsModule, FrozenColumnsModule, PersistenceModule, MoveColumnsModule, MoveRowsModule, DataTreeModule, Options, RowComponent} from 'tabulator-tables'; -import { useContextMenu } from "./context_menu"; -import { ParentComponent } from "../../react/react_utils"; +import { DataTreeModule, EditModule, FormatModule, FrozenColumnsModule, InteractionModule, MoveColumnsModule, MoveRowsModule, Options, PersistenceModule, ResizeColumnsModule, RowComponent,SortModule, Tabulator as VanillaTabulator} from 'tabulator-tables'; + import FNote from "../../../entities/fnote"; import { t } from "../../../services/i18n"; -import Button from "../../react/Button"; -import "./index.css"; -import useRowTableEditing from "./row_editing"; -import useColTableEditing from "./col_editing"; -import AttributeDetailWidget from "../../attribute_widgets/attribute_detail"; import SpacedUpdate from "../../../services/spaced_update"; +import AttributeDetailWidget from "../../attribute_widgets/attribute_detail"; +import CollectionProperties from "../../note_bars/CollectionProperties"; +import Button from "../../react/Button"; +import { useLegacyWidget } from "../../react/hooks"; +import { ParentComponent } from "../../react/react_utils"; +import { ViewModeProps } from "../interface"; +import useColTableEditing from "./col_editing"; +import { useContextMenu } from "./context_menu"; import useData, { TableConfig } from "./data"; +import useRowTableEditing from "./row_editing"; +import { TableData } from "./rows"; +import Tabulator from "./tabulator"; export default function TableView({ note, noteIds, notePath, viewConfig, saveConfig }: ViewModeProps) { const tabulatorRef = useRef(null); @@ -36,7 +39,7 @@ export default function TableView({ note, noteIds, notePath, viewConfig, saveCon dataTreeChildIndent: 20, dataTreeExpandElement: ``, dataTreeCollapseElement: `` - } + }; }, [ hasChildren ]); const rowFormatter = useCallback((row: RowComponent) => { @@ -46,6 +49,8 @@ export default function TableView({ note, noteIds, notePath, viewConfig, saveCon return (
+ + {rowData !== undefined && persistenceProps && ( <> - ) + ); } function TableFooter({ note }: { note: FNote }) { @@ -84,7 +89,7 @@ function TableFooter({ note }: { note: FNote }) {
- ) + ); } function usePersistence(viewConfig: TableConfig | null | undefined, saveConfig: (newConfig: TableConfig) => void) { diff --git a/apps/client/src/widgets/note_bars/CollectionProperties.css b/apps/client/src/widgets/note_bars/CollectionProperties.css index bf06067f5f..5d76a25fe8 100644 --- a/apps/client/src/widgets/note_bars/CollectionProperties.css +++ b/apps/client/src/widgets/note_bars/CollectionProperties.css @@ -30,12 +30,10 @@ @media (max-width: 991px) { flex-wrap: wrap; - padding: 0.55em 1em; - margin: 0; + margin-bottom: 0.5em; >div { flex-grow: 1; - justify-content: center; } } } From 0e164b9daa86b75690ac066e9bbf1cdb47f8d98a Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sat, 31 Jan 2026 11:50:14 +0200 Subject: [PATCH 047/350] chore(collections): fix alignment of collection properties in relation to content --- apps/client/src/widgets/collections/NoteList.css | 8 ++------ apps/client/src/widgets/collections/calendar/index.css | 3 ++- apps/client/src/widgets/collections/table/index.css | 1 - .../client/src/widgets/containers/scrolling_container.css | 2 +- .../client/src/widgets/note_bars/CollectionProperties.css | 6 +++--- 5 files changed, 8 insertions(+), 12 deletions(-) diff --git a/apps/client/src/widgets/collections/NoteList.css b/apps/client/src/widgets/collections/NoteList.css index bdc6b3dc7d..d320f9d4fc 100644 --- a/apps/client/src/widgets/collections/NoteList.css +++ b/apps/client/src/widgets/collections/NoteList.css @@ -1,7 +1,7 @@ .note-list-widget { min-height: 0; max-width: var(--max-content-width); /* Inherited from .note-split */ - + overflow: auto; contain: none !important; } @@ -11,10 +11,6 @@ body.prefers-centered-content .note-list-widget:not(.full-height) { margin-inline: auto; } -.note-list-widget .note-list { - padding-block: 10px; -} - .note-list-widget.full-height, .note-list-widget.full-height .note-list-widget-content { height: 100%; @@ -29,4 +25,4 @@ body.prefers-centered-content .note-list-widget:not(.full-height) { text-decoration: underline; font-weight: bold; } -/* #endregion */ \ No newline at end of file +/* #endregion */ diff --git a/apps/client/src/widgets/collections/calendar/index.css b/apps/client/src/widgets/collections/calendar/index.css index e8e0b56ddc..a6da3fce8c 100644 --- a/apps/client/src/widgets/collections/calendar/index.css +++ b/apps/client/src/widgets/collections/calendar/index.css @@ -21,7 +21,7 @@ outline: 0; height: 100%; user-select: none; - padding: 10px; + padding: 0; @media (max-width: 991px) { padding: 0; @@ -52,6 +52,7 @@ --fc-border-color: var(--main-border-color); --fc-neutral-bg-color: var(--launcher-pane-background-color); --fc-list-event-hover-bg-color: var(--left-pane-item-hover-background); + padding: 0 12px; } .calendar-container .fc-list-sticky .fc-list-day > * { diff --git a/apps/client/src/widgets/collections/table/index.css b/apps/client/src/widgets/collections/table/index.css index 897a87b512..46c2cd2728 100644 --- a/apps/client/src/widgets/collections/table/index.css +++ b/apps/client/src/widgets/collections/table/index.css @@ -3,7 +3,6 @@ position: relative; height: 100%; user-select: none; - padding: 0 5px 0 10px; .tabulator-tableholder { height: unset !important; diff --git a/apps/client/src/widgets/containers/scrolling_container.css b/apps/client/src/widgets/containers/scrolling_container.css index 36d277a17c..2a2adb1475 100644 --- a/apps/client/src/widgets/containers/scrolling_container.css +++ b/apps/client/src/widgets/containers/scrolling_container.css @@ -5,7 +5,7 @@ > .inline-title, > .note-detail > .note-detail-editable-text, - > .note-list-widget:not(.full-height) { + > .note-list-widget:not(.full-height) .note-list-wrapper { padding-inline: 24px; } diff --git a/apps/client/src/widgets/note_bars/CollectionProperties.css b/apps/client/src/widgets/note_bars/CollectionProperties.css index 5d76a25fe8..ad58a247a1 100644 --- a/apps/client/src/widgets/note_bars/CollectionProperties.css +++ b/apps/client/src/widgets/note_bars/CollectionProperties.css @@ -1,12 +1,11 @@ .collection-properties { - padding: 0; + padding: 0.55em 12px; display: flex; gap: 0.25em; align-items: center; width: 100%; max-width: unset; font-size: 0.8em; - margin-bottom: 1em; .dropdown-menu { input.form-control { @@ -30,10 +29,11 @@ @media (max-width: 991px) { flex-wrap: wrap; - margin-bottom: 0.5em; + padding: 0.55em 1em; >div { flex-grow: 1; + justify-content: center; } } } From 83e585ed354db579d529300dd72e7ca3bb7d06c4 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sat, 31 Jan 2026 11:54:23 +0200 Subject: [PATCH 048/350] fix(calendar): layout broken on desktop --- apps/client/src/widgets/collections/calendar/index.css | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/apps/client/src/widgets/collections/calendar/index.css b/apps/client/src/widgets/collections/calendar/index.css index a6da3fce8c..d50837f28c 100644 --- a/apps/client/src/widgets/collections/calendar/index.css +++ b/apps/client/src/widgets/collections/calendar/index.css @@ -71,7 +71,7 @@ .calendar-view .collection-properties { .center-container { - order: 100; + justify-content: center; .title { min-width: 150px; @@ -90,6 +90,8 @@ } .center-container { + order: 100; + .title { flex-grow: 1; } From c1002ed52af537a66091eefd824a08b5dc42f247 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sat, 31 Jan 2026 12:13:05 +0200 Subject: [PATCH 049/350] chore(calendar): improve layout on mobile --- .../widgets/collections/calendar/index.css | 2 - .../widgets/collections/calendar/index.tsx | 71 +++++++++++-------- .../note_bars/CollectionProperties.css | 2 +- 3 files changed, 43 insertions(+), 32 deletions(-) diff --git a/apps/client/src/widgets/collections/calendar/index.css b/apps/client/src/widgets/collections/calendar/index.css index d50837f28c..3101882536 100644 --- a/apps/client/src/widgets/collections/calendar/index.css +++ b/apps/client/src/widgets/collections/calendar/index.css @@ -90,8 +90,6 @@ } .center-container { - order: 100; - .title { flex-grow: 1; } diff --git a/apps/client/src/widgets/collections/calendar/index.tsx b/apps/client/src/widgets/collections/calendar/index.tsx index 1d35c46ab3..c0fd0d7d3d 100644 --- a/apps/client/src/widgets/collections/calendar/index.tsx +++ b/apps/client/src/widgets/collections/calendar/index.tsx @@ -13,7 +13,7 @@ import date_notes from "../../../services/date_notes"; import dialog from "../../../services/dialog"; import froca from "../../../services/froca"; import { t } from "../../../services/i18n"; -import { isMobile } from "../../../services/utils"; +import { isDesktop, isMobile, isMobile } from "../../../services/utils"; import CollectionProperties from "../../note_bars/CollectionProperties"; import ActionButton from "../../react/ActionButton"; import Button, { ButtonGroup } from "../../react/Button"; @@ -147,11 +147,7 @@ export default function CalendarView({ note, noteIds }: ViewModeProps - } - rightChildren={} - /> + }) { +function CalendarCollectionProperties({ note, calendarRef }: { + note: FNote; + calendarRef: RefObject; +}) { const { title, viewType: currentViewType } = useOnDatesSet(calendarRef); const currentViewData = CALENDAR_VIEWS.find(v => calendarRef.current && v.type === currentViewType); + const isMobileLocal = isMobile(); - return <> - calendarRef.current?.prev()} /> - {title} - calendarRef.current?.next()} /> -
- - ); -} - function usePersistence(viewConfig: TableConfig | null | undefined, saveConfig: (newConfig: TableConfig) => void) { const [ persistenceProps, setPersistenceProps ] = useState>(); diff --git a/apps/client/src/widgets/note_bars/CollectionProperties.css b/apps/client/src/widgets/note_bars/CollectionProperties.css index 6332b6b9ad..cd50197c47 100644 --- a/apps/client/src/widgets/note_bars/CollectionProperties.css +++ b/apps/client/src/widgets/note_bars/CollectionProperties.css @@ -17,12 +17,12 @@ >div { display: inline-flex; align-items: center; + gap: 0.5em; } .center-container { flex-grow: 1; justify-content: center; - gap: 0.5em; } button.btn { From f65aa1b875f64f26946cde72b9716cfee51fe634 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sat, 31 Jan 2026 12:41:52 +0200 Subject: [PATCH 053/350] fix(collections): height affected due to collection properties --- apps/client/src/widgets/collections/geomap/index.css | 2 ++ apps/client/src/widgets/collections/table/index.css | 2 ++ 2 files changed, 4 insertions(+) diff --git a/apps/client/src/widgets/collections/geomap/index.css b/apps/client/src/widgets/collections/geomap/index.css index 341dfb6faf..fb4dda6a1e 100644 --- a/apps/client/src/widgets/collections/geomap/index.css +++ b/apps/client/src/widgets/collections/geomap/index.css @@ -2,6 +2,8 @@ overflow: hidden; position: relative; height: 100%; + display: flex; + flex-direction: column; } .geo-map-container { diff --git a/apps/client/src/widgets/collections/table/index.css b/apps/client/src/widgets/collections/table/index.css index 46c2cd2728..5d0725250c 100644 --- a/apps/client/src/widgets/collections/table/index.css +++ b/apps/client/src/widgets/collections/table/index.css @@ -3,6 +3,8 @@ position: relative; height: 100%; user-select: none; + display: flex; + flex-direction: column; .tabulator-tableholder { height: unset !important; From f80763ffb47a4a2990aa9e1069cf16b7e3e53734 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sat, 31 Jan 2026 12:53:56 +0200 Subject: [PATCH 054/350] fix(geomap): zoom buttons interfering with collection properties --- apps/client/src/widgets/collections/geomap/index.css | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/apps/client/src/widgets/collections/geomap/index.css b/apps/client/src/widgets/collections/geomap/index.css index fb4dda6a1e..285a3be5a7 100644 --- a/apps/client/src/widgets/collections/geomap/index.css +++ b/apps/client/src/widgets/collections/geomap/index.css @@ -4,6 +4,11 @@ height: 100%; display: flex; flex-direction: column; + + > .collection-properties { + position: relative; + z-index: 2000; + } } .geo-map-container { From ffbe8f9dc40797bd3a1e70ae6370097c9e65b326 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sat, 31 Jan 2026 12:54:11 +0200 Subject: [PATCH 055/350] fix(table): wrong alignment of buttons --- apps/client/src/widgets/note_bars/CollectionProperties.css | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/apps/client/src/widgets/note_bars/CollectionProperties.css b/apps/client/src/widgets/note_bars/CollectionProperties.css index cd50197c47..99700f77a7 100644 --- a/apps/client/src/widgets/note_bars/CollectionProperties.css +++ b/apps/client/src/widgets/note_bars/CollectionProperties.css @@ -25,6 +25,10 @@ justify-content: center; } + .right-container { + justify-content: flex-end; + } + button.btn { min-width: 0; } From fddd73fdb1a244e65879999e2f5dc068907320ec Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sat, 31 Jan 2026 12:59:09 +0200 Subject: [PATCH 056/350] feat(table): display action buttons on mobile --- .../src/widgets/collections/table/index.tsx | 7 +++---- apps/client/src/widgets/react/Button.tsx | 19 ++++++++++++++++--- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/apps/client/src/widgets/collections/table/index.tsx b/apps/client/src/widgets/collections/table/index.tsx index 7028bd439b..87745b3e2d 100644 --- a/apps/client/src/widgets/collections/table/index.tsx +++ b/apps/client/src/widgets/collections/table/index.tsx @@ -3,12 +3,11 @@ import "./index.css"; import { useCallback, useContext, useEffect, useMemo, useRef, useState } from "preact/hooks"; import { DataTreeModule, EditModule, FormatModule, FrozenColumnsModule, InteractionModule, MoveColumnsModule, MoveRowsModule, Options, PersistenceModule, ResizeColumnsModule, RowComponent,SortModule, Tabulator as VanillaTabulator} from 'tabulator-tables'; -import FNote from "../../../entities/fnote"; import { t } from "../../../services/i18n"; import SpacedUpdate from "../../../services/spaced_update"; import AttributeDetailWidget from "../../attribute_widgets/attribute_detail"; import CollectionProperties from "../../note_bars/CollectionProperties"; -import Button from "../../react/Button"; +import { ButtonOrActionButton } from "../../react/Button"; import { useLegacyWidget } from "../../react/hooks"; import { ParentComponent } from "../../react/react_utils"; import { ViewModeProps } from "../interface"; @@ -53,8 +52,8 @@ export default function TableView({ note, noteIds, notePath, viewConfig, saveCon note={note} rightChildren={note.type !== "search" && <> - + className={clsx("custom-title-bar-button bx", titleBarButton.iconClassName)} + title={titleBarButton.title} + onClick={titleBarButton.onClick} /> ))} - +