chore(monorepo/client): group more data types into commons

This commit is contained in:
Elian Doran 2025-04-18 10:37:03 +03:00
parent 1b24207e9e
commit 6b73ec4c1f
No known key found for this signature in database
10 changed files with 495 additions and 254 deletions

View File

@ -84,7 +84,6 @@
"express-openid-connect": "^2.17.1", "express-openid-connect": "^2.17.1",
"express-rate-limit": "7.5.0", "express-rate-limit": "7.5.0",
"express-session": "1.18.1", "express-session": "1.18.1",
"force-graph": "1.49.5",
"fs-extra": "11.3.0", "fs-extra": "11.3.0",
"helmet": "8.1.0", "helmet": "8.1.0",
"html": "1.0.0", "html": "1.0.0",
@ -139,7 +138,6 @@
"@electron/rebuild": "3.7.2", "@electron/rebuild": "3.7.2",
"@eslint/js": "9.24.0", "@eslint/js": "9.24.0",
"@playwright/test": "1.51.1", "@playwright/test": "1.51.1",
"@popperjs/core": "2.11.8",
"@stylistic/eslint-plugin": "4.2.0", "@stylistic/eslint-plugin": "4.2.0",
"@types/archiver": "6.0.3", "@types/archiver": "6.0.3",
"@types/better-sqlite3": "7.6.13", "@types/better-sqlite3": "7.6.13",

View File

@ -1,12 +1,10 @@
import BAttribute from "../becca/entities/battribute.js"; 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 becca from "../becca/becca.js";
import noteService from "./notes.js"; import noteService from "./notes.js";
import log from "./log.js"; import log from "./log.js";
import migrationService from "./migration.js"; import migrationService from "./migration.js";
import options from "./options.js";
import sql from "./sql.js";
import { t } from "i18next"; import { t } from "i18next";
import { cleanUpHelp, getHelpHiddenSubtreeData } from "./in_app_help.js"; import { cleanUpHelp, getHelpHiddenSubtreeData } from "./in_app_help.js";
import buildLaunchBarConfig from "./hidden_subtree_launcherbar.js"; import buildLaunchBarConfig from "./hidden_subtree_launcherbar.js";
@ -21,52 +19,6 @@ const LBTPL_SCRIPT = "_lbTplLauncherScript";
const LBTPL_SPACER = "_lbTplSpacer"; const LBTPL_SPACER = "_lbTplSpacer";
const LBTPL_CUSTOM_WIDGET = "_lbTplCustomWidget"; 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 * 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 * produce the same structure. This is needed because it is run on multiple instances in the sync cluster which might produce

View File

@ -69,6 +69,8 @@
"draggabilly": "3.0.0", "draggabilly": "3.0.0",
"vitest": "3.1.1", "vitest": "3.1.1",
"@types/bootstrap": "5.2.10", "@types/bootstrap": "5.2.10",
"bootstrap": "5.3.5" "bootstrap": "5.3.5",
"force-graph": "1.49.5",
"@popperjs/core": "2.11.8"
} }
} }

View File

@ -1,6 +1,6 @@
import TypeWidget from "./type_widget.js"; import TypeWidget from "./type_widget.js";
import utils from "../../services/utils.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 nodeMenu from "@mind-elixir/node-menu";
import type FNote from "../../entities/fnote.js"; import type FNote from "../../entities/fnote.js";
import type { EventData } from "../../components/app_context.js"; import type { EventData } from "../../components/app_context.js";
@ -152,7 +152,7 @@ export default class MindMapWidget extends TypeWidget {
private $content!: JQuery<HTMLElement>; private $content!: JQuery<HTMLElement>;
private triggeredByUserOperation?: boolean; private triggeredByUserOperation?: boolean;
private mind?: ReturnType<MindElixirCtor["new"]>; private mind?: MindElixirInstance;
private MindElixir: any; // TODO: Fix type private MindElixir: any; // TODO: Fix type
static getType() { static getType() {

637
package-lock.json generated
View File

@ -27,14 +27,18 @@
"@fullcalendar/timegrid": "6.1.17", "@fullcalendar/timegrid": "6.1.17",
"@mermaid-js/layout-elk": "0.1.7", "@mermaid-js/layout-elk": "0.1.7",
"@mind-elixir/node-menu": "1.0.5", "@mind-elixir/node-menu": "1.0.5",
"@popperjs/core": "2.11.8",
"@types/bootstrap": "5.2.10",
"@types/jquery": "3.5.32", "@types/jquery": "3.5.32",
"@types/leaflet": "1.9.17", "@types/leaflet": "1.9.17",
"@types/leaflet-gpx": "1.3.7", "@types/leaflet-gpx": "1.3.7",
"autoprefixer": "10.4.21", "autoprefixer": "10.4.21",
"bootstrap": "5.3.5",
"copy-webpack-plugin": "13.0.0", "copy-webpack-plugin": "13.0.0",
"debounce": "2.2.0", "debounce": "2.2.0",
"draggabilly": "3.0.0", "draggabilly": "3.0.0",
"electron": "35.1.5", "electron": "35.1.5",
"force-graph": "1.49.5",
"i18next": "25.0.0", "i18next": "25.0.0",
"i18next-http-backend": "3.0.2", "i18next-http-backend": "3.0.2",
"jquery": "3.7.1", "jquery": "3.7.1",
@ -1783,14 +1787,6 @@
"dev": true, "dev": true,
"license": "MIT" "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": { "apps/client/node_modules/@types/responselike": {
"version": "1.0.3", "version": "1.0.3",
"dev": true, "dev": true,
@ -2723,17 +2719,6 @@
"node": ">=12" "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": { "apps/client/node_modules/d3-axis": {
"version": "3.0.0", "version": "3.0.0",
"dev": true, "dev": true,
@ -2768,14 +2753,6 @@
"node": ">=12" "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": { "apps/client/node_modules/d3-contour": {
"version": "4.0.2", "version": "4.0.2",
"dev": true, "dev": true,
@ -2798,26 +2775,6 @@
"node": ">=12" "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": { "apps/client/node_modules/d3-dsv": {
"version": "3.0.1", "version": "3.0.1",
"dev": true, "dev": true,
@ -2850,14 +2807,6 @@
"node": ">= 10" "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": { "apps/client/node_modules/d3-fetch": {
"version": "3.0.1", "version": "3.0.1",
"dev": true, "dev": true,
@ -2882,14 +2831,6 @@
"node": ">=12" "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": { "apps/client/node_modules/d3-geo": {
"version": "3.1.1", "version": "3.1.1",
"dev": true, "dev": true,
@ -2909,17 +2850,6 @@
"node": ">=12" "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": { "apps/client/node_modules/d3-path": {
"version": "3.1.0", "version": "3.1.0",
"dev": true, "dev": true,
@ -2936,14 +2866,6 @@
"node": ">=12" "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": { "apps/client/node_modules/d3-random": {
"version": "3.0.1", "version": "3.0.1",
"dev": true, "dev": true,
@ -2987,41 +2909,6 @@
"dev": true, "dev": true,
"license": "ISC" "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": { "apps/client/node_modules/d3-shape": {
"version": "3.2.0", "version": "3.2.0",
"dev": true, "dev": true,
@ -3033,69 +2920,6 @@
"node": ">=12" "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": { "apps/client/node_modules/dagre-d3-es": {
"version": "7.0.11", "version": "7.0.11",
"dev": true, "dev": true,
@ -3965,14 +3789,6 @@
"dev": true, "dev": true,
"license": "ISC" "license": "ISC"
}, },
"apps/client/node_modules/internmap": {
"version": "2.0.3",
"dev": true,
"license": "ISC",
"engines": {
"node": ">=12"
}
},
"apps/client/node_modules/interpret": { "apps/client/node_modules/interpret": {
"version": "3.1.1", "version": "3.1.1",
"dev": true, "dev": true,
@ -4282,11 +4098,6 @@
"node": ">=8" "node": ">=8"
} }
}, },
"apps/client/node_modules/lodash-es": {
"version": "4.17.21",
"dev": true,
"license": "MIT"
},
"apps/client/node_modules/lodash.debounce": { "apps/client/node_modules/lodash.debounce": {
"version": "4.0.8", "version": "4.0.8",
"dev": true, "dev": true,
@ -6247,11 +6058,6 @@
"dev": true, "dev": true,
"license": "MIT" "license": "MIT"
}, },
"apps/client/node_modules/undici-types": {
"version": "6.21.0",
"dev": true,
"license": "MIT"
},
"apps/client/node_modules/unidragger": { "apps/client/node_modules/unidragger": {
"version": "3.0.1", "version": "3.0.1",
"dev": true, "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": { "node_modules/@triliumnext/client": {
"resolved": "apps/client", "resolved": "apps/client",
"link": true "link": true
@ -6864,6 +6681,422 @@
"resolved": "packages/commons", "resolved": "packages/commons",
"link": true "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": { "node_modules/typescript": {
"version": "5.8.3", "version": "5.8.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz",
@ -6878,11 +7111,19 @@
"node": ">=14.17" "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": { "packages/commons": {
"name": "@triliumnext/commons", "name": "@triliumnext/commons",
"version": "0.0.1", "version": "0.0.1",
"license": "AGPL-3.0-only", "license": "AGPL-3.0-only",
"devDependencies": { "devDependencies": {
"@types/node": "^22.14.1",
"typescript": "5.8.3" "typescript": "5.8.3"
} }
} }

View File

@ -23,6 +23,7 @@
"build": "tsc" "build": "tsc"
}, },
"devDependencies": { "devDependencies": {
"@types/node": "^22.14.1",
"typescript": "5.8.3" "typescript": "5.8.3"
} }
} }

View File

@ -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;
}

View File

@ -1,3 +1,5 @@
export * from "./i18n.js"; export * from "./i18n.js";
export * from "./options_interface.js"; export * from "./options_interface.js";
export * from "./keyboard_actions_interface.js"; export * from "./keyboard_actions_interface.js";
export * from "./hidden_subtree.js";
export * from "./rows.js";

View File

@ -1,6 +1,6 @@
{ {
"compilerOptions": { "compilerOptions": {
"module": "ESNext", "module": "NodeNext",
"declaration": true, "declaration": true,
"outDir": "build", "outDir": "build",
}, },