From 6b73ec4c1f2be70c76d3af5de3dd343bdd47eb3c Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Fri, 18 Apr 2025 10:37:03 +0300 Subject: [PATCH] chore(monorepo/client): group more data types into commons --- _regroup/package.json | 2 - _regroup/src/services/hidden_subtree.ts | 50 +- apps/client/package.json | 4 +- .../src/widgets/type_widgets/mind_map.ts | 4 +- package-lock.json | 637 ++++++++++++------ packages/commons/package.json | 1 + packages/commons/src/hidden_subtree.ts | 45 ++ packages/commons/src/index.ts | 4 +- .../entities => packages/commons/src}/rows.ts | 0 packages/commons/tsconfig.json | 2 +- 10 files changed, 495 insertions(+), 254 deletions(-) create mode 100644 packages/commons/src/hidden_subtree.ts rename {_regroup/src/becca/entities => packages/commons/src}/rows.ts (100%) diff --git a/_regroup/package.json b/_regroup/package.json index d52334b97..e146ce257 100644 --- a/_regroup/package.json +++ b/_regroup/package.json @@ -84,7 +84,6 @@ "express-openid-connect": "^2.17.1", "express-rate-limit": "7.5.0", "express-session": "1.18.1", - "force-graph": "1.49.5", "fs-extra": "11.3.0", "helmet": "8.1.0", "html": "1.0.0", @@ -139,7 +138,6 @@ "@electron/rebuild": "3.7.2", "@eslint/js": "9.24.0", "@playwright/test": "1.51.1", - "@popperjs/core": "2.11.8", "@stylistic/eslint-plugin": "4.2.0", "@types/archiver": "6.0.3", "@types/better-sqlite3": "7.6.13", diff --git a/_regroup/src/services/hidden_subtree.ts b/_regroup/src/services/hidden_subtree.ts index a66360032..02c7b90f0 100644 --- a/_regroup/src/services/hidden_subtree.ts +++ b/_regroup/src/services/hidden_subtree.ts @@ -1,12 +1,10 @@ import BAttribute from "../becca/entities/battribute.js"; -import type { AttributeType } from "../becca/entities/rows.js"; +import type { HiddenSubtreeItem } from "@triliumnext/commons"; import becca from "../becca/becca.js"; import noteService from "./notes.js"; import log from "./log.js"; import migrationService from "./migration.js"; -import options from "./options.js"; -import sql from "./sql.js"; import { t } from "i18next"; import { cleanUpHelp, getHelpHiddenSubtreeData } from "./in_app_help.js"; import buildLaunchBarConfig from "./hidden_subtree_launcherbar.js"; @@ -21,52 +19,6 @@ const LBTPL_SCRIPT = "_lbTplLauncherScript"; const LBTPL_SPACER = "_lbTplSpacer"; const LBTPL_CUSTOM_WIDGET = "_lbTplCustomWidget"; -// Define launcher note types locally -type LauncherNoteType = "launcher" | "search" | "doc" | "noteMap" | "contentWidget" | "book" | "file" | "image" | "text" | "relationMap" | "render" | "canvas" | "mermaid" | "webView" | "code" | "mindMap" | "geoMap"; - -interface HiddenSubtreeAttribute { - type: AttributeType; - name: string; - isInheritable?: boolean; - value?: string; -} - -export interface HiddenSubtreeItem { - notePosition?: number; - id: string; - title: string; - type: LauncherNoteType; - icon?: string; - attributes?: HiddenSubtreeAttribute[]; - children?: HiddenSubtreeItem[]; - isExpanded?: boolean; - baseSize?: string; - growthFactor?: string; - targetNoteId?: "_backendLog" | "_globalNoteMap"; - builtinWidget?: - | "todayInJournal" - | "bookmarks" - | "spacer" - | "backInHistoryButton" - | "forwardInHistoryButton" - | "syncStatus" - | "protectedSession" - | "calendar" - | "quickSearch" - | "aiChatLauncher"; - command?: keyof typeof Command; -} - -// TODO: Move this into a commons project once the client/server architecture is well split. -enum Command { - jumpToNote, - searchNotes, - createNoteIntoInbox, - showRecentChanges, - showOptions, - createAiChat -} - /* * Hidden subtree is generated as a "predictable structure" which means that it avoids generating random IDs to always * produce the same structure. This is needed because it is run on multiple instances in the sync cluster which might produce diff --git a/apps/client/package.json b/apps/client/package.json index b90eae9aa..45d05d666 100644 --- a/apps/client/package.json +++ b/apps/client/package.json @@ -69,6 +69,8 @@ "draggabilly": "3.0.0", "vitest": "3.1.1", "@types/bootstrap": "5.2.10", - "bootstrap": "5.3.5" + "bootstrap": "5.3.5", + "force-graph": "1.49.5", + "@popperjs/core": "2.11.8" } } diff --git a/apps/client/src/widgets/type_widgets/mind_map.ts b/apps/client/src/widgets/type_widgets/mind_map.ts index 83af55f4e..83d2e0e96 100644 --- a/apps/client/src/widgets/type_widgets/mind_map.ts +++ b/apps/client/src/widgets/type_widgets/mind_map.ts @@ -1,6 +1,6 @@ import TypeWidget from "./type_widget.js"; import utils from "../../services/utils.js"; -import type { MindElixirCtor } from "mind-elixir"; +import type { MindElixirCtor, MindElixirInstance } from "mind-elixir"; import nodeMenu from "@mind-elixir/node-menu"; import type FNote from "../../entities/fnote.js"; import type { EventData } from "../../components/app_context.js"; @@ -152,7 +152,7 @@ export default class MindMapWidget extends TypeWidget { private $content!: JQuery; private triggeredByUserOperation?: boolean; - private mind?: ReturnType; + private mind?: MindElixirInstance; private MindElixir: any; // TODO: Fix type static getType() { diff --git a/package-lock.json b/package-lock.json index b502029d9..2e0dbf779 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,14 +27,18 @@ "@fullcalendar/timegrid": "6.1.17", "@mermaid-js/layout-elk": "0.1.7", "@mind-elixir/node-menu": "1.0.5", + "@popperjs/core": "2.11.8", + "@types/bootstrap": "5.2.10", "@types/jquery": "3.5.32", "@types/leaflet": "1.9.17", "@types/leaflet-gpx": "1.3.7", "autoprefixer": "10.4.21", + "bootstrap": "5.3.5", "copy-webpack-plugin": "13.0.0", "debounce": "2.2.0", "draggabilly": "3.0.0", "electron": "35.1.5", + "force-graph": "1.49.5", "i18next": "25.0.0", "i18next-http-backend": "3.0.2", "jquery": "3.7.1", @@ -1783,14 +1787,6 @@ "dev": true, "license": "MIT" }, - "apps/client/node_modules/@types/node": { - "version": "22.14.1", - "dev": true, - "license": "MIT", - "dependencies": { - "undici-types": "~6.21.0" - } - }, "apps/client/node_modules/@types/responselike": { "version": "1.0.3", "dev": true, @@ -2723,17 +2719,6 @@ "node": ">=12" } }, - "apps/client/node_modules/d3-array": { - "version": "3.2.4", - "dev": true, - "license": "ISC", - "dependencies": { - "internmap": "1 - 2" - }, - "engines": { - "node": ">=12" - } - }, "apps/client/node_modules/d3-axis": { "version": "3.0.0", "dev": true, @@ -2768,14 +2753,6 @@ "node": ">=12" } }, - "apps/client/node_modules/d3-color": { - "version": "3.1.0", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, "apps/client/node_modules/d3-contour": { "version": "4.0.2", "dev": true, @@ -2798,26 +2775,6 @@ "node": ">=12" } }, - "apps/client/node_modules/d3-dispatch": { - "version": "3.0.1", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "apps/client/node_modules/d3-drag": { - "version": "3.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "d3-dispatch": "1 - 3", - "d3-selection": "3" - }, - "engines": { - "node": ">=12" - } - }, "apps/client/node_modules/d3-dsv": { "version": "3.0.1", "dev": true, @@ -2850,14 +2807,6 @@ "node": ">= 10" } }, - "apps/client/node_modules/d3-ease": { - "version": "3.0.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=12" - } - }, "apps/client/node_modules/d3-fetch": { "version": "3.0.1", "dev": true, @@ -2882,14 +2831,6 @@ "node": ">=12" } }, - "apps/client/node_modules/d3-format": { - "version": "3.1.0", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, "apps/client/node_modules/d3-geo": { "version": "3.1.1", "dev": true, @@ -2909,17 +2850,6 @@ "node": ">=12" } }, - "apps/client/node_modules/d3-interpolate": { - "version": "3.0.1", - "dev": true, - "license": "ISC", - "dependencies": { - "d3-color": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, "apps/client/node_modules/d3-path": { "version": "3.1.0", "dev": true, @@ -2936,14 +2866,6 @@ "node": ">=12" } }, - "apps/client/node_modules/d3-quadtree": { - "version": "3.0.1", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, "apps/client/node_modules/d3-random": { "version": "3.0.1", "dev": true, @@ -2987,41 +2909,6 @@ "dev": true, "license": "ISC" }, - "apps/client/node_modules/d3-scale": { - "version": "4.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "d3-array": "2.10.0 - 3", - "d3-format": "1 - 3", - "d3-interpolate": "1.2.0 - 3", - "d3-time": "2.1.1 - 3", - "d3-time-format": "2 - 4" - }, - "engines": { - "node": ">=12" - } - }, - "apps/client/node_modules/d3-scale-chromatic": { - "version": "3.1.0", - "dev": true, - "license": "ISC", - "dependencies": { - "d3-color": "1 - 3", - "d3-interpolate": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "apps/client/node_modules/d3-selection": { - "version": "3.0.0", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, "apps/client/node_modules/d3-shape": { "version": "3.2.0", "dev": true, @@ -3033,69 +2920,6 @@ "node": ">=12" } }, - "apps/client/node_modules/d3-time": { - "version": "3.1.0", - "dev": true, - "license": "ISC", - "dependencies": { - "d3-array": "2 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "apps/client/node_modules/d3-time-format": { - "version": "4.1.0", - "dev": true, - "license": "ISC", - "dependencies": { - "d3-time": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "apps/client/node_modules/d3-timer": { - "version": "3.0.1", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "apps/client/node_modules/d3-transition": { - "version": "3.0.1", - "dev": true, - "license": "ISC", - "dependencies": { - "d3-color": "1 - 3", - "d3-dispatch": "1 - 3", - "d3-ease": "1 - 3", - "d3-interpolate": "1 - 3", - "d3-timer": "1 - 3" - }, - "engines": { - "node": ">=12" - }, - "peerDependencies": { - "d3-selection": "2 - 3" - } - }, - "apps/client/node_modules/d3-zoom": { - "version": "3.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "d3-dispatch": "1 - 3", - "d3-drag": "2 - 3", - "d3-interpolate": "1 - 3", - "d3-selection": "2 - 3", - "d3-transition": "2 - 3" - }, - "engines": { - "node": ">=12" - } - }, "apps/client/node_modules/dagre-d3-es": { "version": "7.0.11", "dev": true, @@ -3965,14 +3789,6 @@ "dev": true, "license": "ISC" }, - "apps/client/node_modules/internmap": { - "version": "2.0.3", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, "apps/client/node_modules/interpret": { "version": "3.1.1", "dev": true, @@ -4282,11 +4098,6 @@ "node": ">=8" } }, - "apps/client/node_modules/lodash-es": { - "version": "4.17.21", - "dev": true, - "license": "MIT" - }, "apps/client/node_modules/lodash.debounce": { "version": "4.0.8", "dev": true, @@ -6247,11 +6058,6 @@ "dev": true, "license": "MIT" }, - "apps/client/node_modules/undici-types": { - "version": "6.21.0", - "dev": true, - "license": "MIT" - }, "apps/client/node_modules/unidragger": { "version": "3.0.1", "dev": true, @@ -6856,6 +6662,17 @@ } } }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, "node_modules/@triliumnext/client": { "resolved": "apps/client", "link": true @@ -6864,6 +6681,422 @@ "resolved": "packages/commons", "link": true }, + "node_modules/@tweenjs/tween.js": { + "version": "25.0.0", + "resolved": "https://registry.npmjs.org/@tweenjs/tween.js/-/tween.js-25.0.0.tgz", + "integrity": "sha512-XKLA6syeBUaPzx4j3qwMqzzq+V4uo72BnlbOjmuljLrRqdsd3qnzvZZoxvMHZ23ndsRS4aufU6JOZYpCbU6T1A==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/bootstrap": { + "version": "5.2.10", + "resolved": "https://registry.npmjs.org/@types/bootstrap/-/bootstrap-5.2.10.tgz", + "integrity": "sha512-F2X+cd6551tep0MvVZ6nM8v7XgGN/twpdNDjqS1TUM7YFNEtQYWk+dKAnH+T1gr6QgCoGMPl487xw/9hXooa2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@popperjs/core": "^2.9.2" + } + }, + "node_modules/@types/node": { + "version": "22.14.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.14.1.tgz", + "integrity": "sha512-u0HuPQwe/dHrItgHHpmw3N2fYCR6x4ivMNbPHRkBVP4CvN+kiRrKHWk3i8tXiO/joPwXLMYvF9TTF0eqgHIuOw==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/accessor-fn": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/accessor-fn/-/accessor-fn-1.5.3.tgz", + "integrity": "sha512-rkAofCwe/FvYFUlMB0v0gWmhqtfAtV1IUkdPbfhTUyYniu5LrC0A0UJkTH0Jv3S8SvwkmfuAlY+mQIJATdocMA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/bezier-js": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/bezier-js/-/bezier-js-6.1.4.tgz", + "integrity": "sha512-PA0FW9ZpcHbojUCMu28z9Vg/fNkwTj5YhusSAjHHDfHDGLxJ6YUKrAN2vk1fP2MMOxVw4Oko16FMlRGVBGqLKg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "individual", + "url": "https://github.com/Pomax/bezierjs/blob/master/FUNDING.md" + } + }, + "node_modules/bootstrap": { + "version": "5.3.5", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.5.tgz", + "integrity": "sha512-ct1CHKtiobRimyGzmsSldEtM03E8fcEX4Tb3dGXz1V8faRwM50+vfHwTzOxB3IlKO7m+9vTH3s/3C6T2EAPeTA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/twbs" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/bootstrap" + } + ], + "license": "MIT", + "peerDependencies": { + "@popperjs/core": "^2.11.8" + } + }, + "node_modules/canvas-color-tracker": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/canvas-color-tracker/-/canvas-color-tracker-1.3.2.tgz", + "integrity": "sha512-ryQkDX26yJ3CXzb3hxUVNlg1NKE4REc5crLBq661Nxzr8TNd236SaEf2ffYLXyI5tSABSeguHLqcVq4vf9L3Zg==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinycolor2": "^1.6.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-array": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", + "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "dev": true, + "license": "ISC", + "dependencies": { + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-binarytree": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/d3-binarytree/-/d3-binarytree-1.0.2.tgz", + "integrity": "sha512-cElUNH+sHu95L04m92pG73t2MEJXKu+GeKUN1TJkFsu93E5W8E9Sc3kHEGJKgenGvj19m6upSn2EunvMgMD2Yw==", + "dev": true, + "license": "MIT" + }, + "node_modules/d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dispatch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-drag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", + "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", + "dev": true, + "license": "ISC", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-selection": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-ease": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", + "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-force-3d": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/d3-force-3d/-/d3-force-3d-3.0.6.tgz", + "integrity": "sha512-4tsKHUPLOVkyfEffZo1v6sFHvGFwAIIjt/W8IThbp08DYAsXZck+2pSHEG5W1+gQgEvFLdZkYvmJAbRM2EzMnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "d3-binarytree": "1", + "d3-dispatch": "1 - 3", + "d3-octree": "1", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-format": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "dev": true, + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-octree": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/d3-octree/-/d3-octree-1.1.0.tgz", + "integrity": "sha512-F8gPlqpP+HwRPMO/8uOu5wjH110+6q4cgJvgJT6vlpy3BEaDIKlTZrgHKZSp/i1InRpVfh4puY/kvL6MxK930A==", + "dev": true, + "license": "MIT" + }, + "node_modules/d3-quadtree": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", + "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-scale": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-scale-chromatic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", + "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3", + "d3-interpolate": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-selection": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", + "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", + "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "d3-array": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time-format": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "dev": true, + "license": "ISC", + "dependencies": { + "d3-time": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-timer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-transition": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", + "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3", + "d3-dispatch": "1 - 3", + "d3-ease": "1 - 3", + "d3-interpolate": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "d3-selection": "2 - 3" + } + }, + "node_modules/d3-zoom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", + "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", + "dev": true, + "license": "ISC", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "2 - 3", + "d3-transition": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/float-tooltip": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/float-tooltip/-/float-tooltip-1.7.5.tgz", + "integrity": "sha512-/kXzuDnnBqyyWyhDMH7+PfP8J/oXiAavGzcRxASOMRHFuReDtofizLLJsf7nnDLAfEaMW4pVWaXrAjtnglpEkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "d3-selection": "2 - 3", + "kapsule": "^1.16", + "preact": "10" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/force-graph": { + "version": "1.49.5", + "resolved": "https://registry.npmjs.org/force-graph/-/force-graph-1.49.5.tgz", + "integrity": "sha512-mCTLxsaOPfp4Jq4FND8sHTpa8aZDLNXgkwAN98IDZ8Ve3nralz0gNsmE4Nx6NFm48olJ0gzCQYYLJrrYDqifew==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tweenjs/tween.js": "18 - 25", + "accessor-fn": "1", + "bezier-js": "3 - 6", + "canvas-color-tracker": "^1.3", + "d3-array": "1 - 3", + "d3-drag": "2 - 3", + "d3-force-3d": "2 - 3", + "d3-scale": "1 - 4", + "d3-scale-chromatic": "1 - 3", + "d3-selection": "2 - 3", + "d3-zoom": "2 - 3", + "float-tooltip": "^1.6", + "index-array-by": "1", + "kapsule": "^1.16", + "lodash-es": "4" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/index-array-by": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/index-array-by/-/index-array-by-1.4.2.tgz", + "integrity": "sha512-SP23P27OUKzXWEC/TOyWlwLviofQkCSCKONnc62eItjp69yCZZPqDQtr3Pw5gJDnPeUMqExmKydNZaJO0FU9pw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/internmap": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/kapsule": { + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/kapsule/-/kapsule-1.16.3.tgz", + "integrity": "sha512-4+5mNNf4vZDSwPhKprKwz3330iisPrb08JyMgbsdFrimBCKNHecua/WBwvVg3n7vwx0C1ARjfhwIpbrbd9n5wg==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash-es": "4" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "dev": true, + "license": "MIT" + }, + "node_modules/preact": { + "version": "10.26.5", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.26.5.tgz", + "integrity": "sha512-fmpDkgfGU6JYux9teDWLhj9mKN55tyepwYbxHgQuIxbWQzgFg5vk7Mrrtfx7xRxq798ynkY4DDDxZr235Kk+4w==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + } + }, + "node_modules/tinycolor2": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz", + "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==", + "dev": true, + "license": "MIT" + }, "node_modules/typescript": { "version": "5.8.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", @@ -6878,11 +7111,19 @@ "node": ">=14.17" } }, + "node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "dev": true, + "license": "MIT" + }, "packages/commons": { "name": "@triliumnext/commons", "version": "0.0.1", "license": "AGPL-3.0-only", "devDependencies": { + "@types/node": "^22.14.1", "typescript": "5.8.3" } } diff --git a/packages/commons/package.json b/packages/commons/package.json index 4191be150..d48cc84c9 100644 --- a/packages/commons/package.json +++ b/packages/commons/package.json @@ -23,6 +23,7 @@ "build": "tsc" }, "devDependencies": { + "@types/node": "^22.14.1", "typescript": "5.8.3" } } diff --git a/packages/commons/src/hidden_subtree.ts b/packages/commons/src/hidden_subtree.ts new file mode 100644 index 000000000..f143114f4 --- /dev/null +++ b/packages/commons/src/hidden_subtree.ts @@ -0,0 +1,45 @@ +import { AttributeType } from "./rows.js"; + +type LauncherNoteType = "launcher" | "search" | "doc" | "noteMap" | "contentWidget" | "book" | "file" | "image" | "text" | "relationMap" | "render" | "canvas" | "mermaid" | "webView" | "code" | "mindMap" | "geoMap"; + +enum Command { + jumpToNote, + searchNotes, + createNoteIntoInbox, + showRecentChanges, + showOptions, + createAiChat +} + +export interface HiddenSubtreeAttribute { + type: AttributeType; + name: string; + isInheritable?: boolean; + value?: string; +} + +export interface HiddenSubtreeItem { + notePosition?: number; + id: string; + title: string; + type: LauncherNoteType; + icon?: string; + attributes?: HiddenSubtreeAttribute[]; + children?: HiddenSubtreeItem[]; + isExpanded?: boolean; + baseSize?: string; + growthFactor?: string; + targetNoteId?: "_backendLog" | "_globalNoteMap"; + builtinWidget?: + | "todayInJournal" + | "bookmarks" + | "spacer" + | "backInHistoryButton" + | "forwardInHistoryButton" + | "syncStatus" + | "protectedSession" + | "calendar" + | "quickSearch" + | "aiChatLauncher"; + command?: keyof typeof Command; +} \ No newline at end of file diff --git a/packages/commons/src/index.ts b/packages/commons/src/index.ts index b5c128e89..1f683e801 100644 --- a/packages/commons/src/index.ts +++ b/packages/commons/src/index.ts @@ -1,3 +1,5 @@ export * from "./i18n.js"; export * from "./options_interface.js"; -export * from "./keyboard_actions_interface.js"; \ No newline at end of file +export * from "./keyboard_actions_interface.js"; +export * from "./hidden_subtree.js"; +export * from "./rows.js"; \ No newline at end of file diff --git a/_regroup/src/becca/entities/rows.ts b/packages/commons/src/rows.ts similarity index 100% rename from _regroup/src/becca/entities/rows.ts rename to packages/commons/src/rows.ts diff --git a/packages/commons/tsconfig.json b/packages/commons/tsconfig.json index 917a4a20c..325460524 100644 --- a/packages/commons/tsconfig.json +++ b/packages/commons/tsconfig.json @@ -1,6 +1,6 @@ { "compilerOptions": { - "module": "ESNext", + "module": "NodeNext", "declaration": true, "outDir": "build", },