mirror of
https://github.com/zadam/trilium.git
synced 2025-11-05 04:45:47 +01:00
Merge remote-tracking branch 'origin/main' into feature/table_view
This commit is contained in:
@@ -35,13 +35,13 @@
|
|||||||
"chore:generate-openapi": "tsx bin/generate-openapi.js"
|
"chore:generate-openapi": "tsx bin/generate-openapi.js"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@playwright/test": "1.53.1",
|
"@playwright/test": "1.53.2",
|
||||||
"@stylistic/eslint-plugin": "5.0.0",
|
"@stylistic/eslint-plugin": "5.1.0",
|
||||||
"@types/express": "5.0.3",
|
"@types/express": "5.0.3",
|
||||||
"@types/node": "22.15.33",
|
"@types/node": "22.16.0",
|
||||||
"@types/yargs": "17.0.33",
|
"@types/yargs": "17.0.33",
|
||||||
"@vitest/coverage-v8": "3.2.4",
|
"@vitest/coverage-v8": "3.2.4",
|
||||||
"eslint": "9.29.0",
|
"eslint": "9.30.0",
|
||||||
"eslint-plugin-simple-import-sort": "12.1.1",
|
"eslint-plugin-simple-import-sort": "12.1.1",
|
||||||
"esm": "3.2.25",
|
"esm": "3.2.25",
|
||||||
"jsdoc": "4.0.4",
|
"jsdoc": "4.0.4",
|
||||||
@@ -49,7 +49,7 @@
|
|||||||
"rcedit": "4.0.1",
|
"rcedit": "4.0.1",
|
||||||
"rimraf": "6.0.1",
|
"rimraf": "6.0.1",
|
||||||
"tslib": "2.8.1",
|
"tslib": "2.8.1",
|
||||||
"typedoc": "0.28.5",
|
"typedoc": "0.28.7",
|
||||||
"typedoc-plugin-missing-exports": "4.0.0"
|
"typedoc-plugin-missing-exports": "4.0.0"
|
||||||
},
|
},
|
||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
|
|||||||
@@ -10,14 +10,14 @@
|
|||||||
"url": "https://github.com/TriliumNext/Notes"
|
"url": "https://github.com/TriliumNext/Notes"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@eslint/js": "9.29.0",
|
"@eslint/js": "9.30.0",
|
||||||
"@excalidraw/excalidraw": "0.18.0",
|
"@excalidraw/excalidraw": "0.18.0",
|
||||||
"@fullcalendar/core": "6.1.17",
|
"@fullcalendar/core": "6.1.18",
|
||||||
"@fullcalendar/daygrid": "6.1.17",
|
"@fullcalendar/daygrid": "6.1.18",
|
||||||
"@fullcalendar/interaction": "6.1.17",
|
"@fullcalendar/interaction": "6.1.18",
|
||||||
"@fullcalendar/list": "6.1.17",
|
"@fullcalendar/list": "6.1.18",
|
||||||
"@fullcalendar/multimonth": "6.1.17",
|
"@fullcalendar/multimonth": "6.1.18",
|
||||||
"@fullcalendar/timegrid": "6.1.17",
|
"@fullcalendar/timegrid": "6.1.18",
|
||||||
"@mermaid-js/layout-elk": "0.1.8",
|
"@mermaid-js/layout-elk": "0.1.8",
|
||||||
"@mind-elixir/node-menu": "1.0.5",
|
"@mind-elixir/node-menu": "1.0.5",
|
||||||
"@popperjs/core": "2.11.8",
|
"@popperjs/core": "2.11.8",
|
||||||
@@ -34,8 +34,8 @@
|
|||||||
"debounce": "2.2.0",
|
"debounce": "2.2.0",
|
||||||
"draggabilly": "3.0.0",
|
"draggabilly": "3.0.0",
|
||||||
"force-graph": "1.49.6",
|
"force-graph": "1.49.6",
|
||||||
"globals": "16.2.0",
|
"globals": "16.3.0",
|
||||||
"i18next": "25.2.1",
|
"i18next": "25.3.0",
|
||||||
"i18next-http-backend": "3.0.2",
|
"i18next-http-backend": "3.0.2",
|
||||||
"jquery": "3.7.1",
|
"jquery": "3.7.1",
|
||||||
"jquery-hotkeys": "0.2.2",
|
"jquery-hotkeys": "0.2.2",
|
||||||
@@ -46,9 +46,9 @@
|
|||||||
"leaflet": "1.9.4",
|
"leaflet": "1.9.4",
|
||||||
"leaflet-gpx": "2.2.0",
|
"leaflet-gpx": "2.2.0",
|
||||||
"mark.js": "8.11.1",
|
"mark.js": "8.11.1",
|
||||||
"marked": "15.0.12",
|
"marked": "16.0.0",
|
||||||
"mermaid": "11.7.0",
|
"mermaid": "11.7.0",
|
||||||
"mind-elixir": "4.6.1",
|
"mind-elixir": "4.6.2",
|
||||||
"normalize.css": "8.0.1",
|
"normalize.css": "8.0.1",
|
||||||
"panzoom": "9.4.3",
|
"panzoom": "9.4.3",
|
||||||
"preact": "10.26.9",
|
"preact": "10.26.9",
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
{
|
{
|
||||||
"extends": "../../tsconfig.base.json",
|
"extends": "../../tsconfig.base.json",
|
||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
|
"lib": [ "ESNext" ],
|
||||||
"outDir": "dist",
|
"outDir": "dist",
|
||||||
"types": [
|
"types": [
|
||||||
"node"
|
"node"
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"dotenv": "16.6.0",
|
"dotenv": "17.0.1",
|
||||||
"electron": "36.6.0"
|
"electron": "37.1.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
"@types/electron-squirrel-startup": "1.0.2",
|
"@types/electron-squirrel-startup": "1.0.2",
|
||||||
"@triliumnext/server": "workspace:*",
|
"@triliumnext/server": "workspace:*",
|
||||||
"copy-webpack-plugin": "13.0.0",
|
"copy-webpack-plugin": "13.0.0",
|
||||||
"electron": "36.6.0",
|
"electron": "37.1.0",
|
||||||
"@electron-forge/cli": "7.8.1",
|
"@electron-forge/cli": "7.8.1",
|
||||||
"@electron-forge/maker-deb": "7.8.1",
|
"@electron-forge/maker-deb": "7.8.1",
|
||||||
"@electron-forge/maker-dmg": "7.8.1",
|
"@electron-forge/maker-dmg": "7.8.1",
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
"@triliumnext/desktop": "workspace:*",
|
"@triliumnext/desktop": "workspace:*",
|
||||||
"@types/fs-extra": "11.0.4",
|
"@types/fs-extra": "11.0.4",
|
||||||
"copy-webpack-plugin": "13.0.0",
|
"copy-webpack-plugin": "13.0.0",
|
||||||
"electron": "36.6.0",
|
"electron": "37.1.0",
|
||||||
"fs-extra": "11.3.0"
|
"fs-extra": "11.3.0"
|
||||||
},
|
},
|
||||||
"nx": {
|
"nx": {
|
||||||
|
|||||||
@@ -17,6 +17,6 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"dotenv": "16.6.0"
|
"dotenv": "17.0.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"better-sqlite3": "12.1.1"
|
"better-sqlite3": "12.2.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4,7 +4,7 @@
|
|||||||
"description": "The server-side component of TriliumNext, which exposes the client via the web, allows for sync and provides a REST API for both internal and external use.",
|
"description": "The server-side component of TriliumNext, which exposes the client via the web, allows for sync and provides a REST API for both internal and external use.",
|
||||||
"private": true,
|
"private": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"better-sqlite3": "12.1.1"
|
"better-sqlite3": "12.2.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@electron/remote": "2.1.2",
|
"@electron/remote": "2.1.2",
|
||||||
@@ -24,7 +24,7 @@
|
|||||||
"@types/js-yaml": "4.0.9",
|
"@types/js-yaml": "4.0.9",
|
||||||
"@types/jsdom": "21.1.7",
|
"@types/jsdom": "21.1.7",
|
||||||
"@types/mime-types": "3.0.1",
|
"@types/mime-types": "3.0.1",
|
||||||
"@types/multer": "1.4.13",
|
"@types/multer": "2.0.0",
|
||||||
"@types/safe-compare": "1.1.2",
|
"@types/safe-compare": "1.1.2",
|
||||||
"@types/sanitize-html": "2.16.0",
|
"@types/sanitize-html": "2.16.0",
|
||||||
"@types/sax": "1.2.7",
|
"@types/sax": "1.2.7",
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
"@types/ws": "8.18.1",
|
"@types/ws": "8.18.1",
|
||||||
"@types/xml2js": "0.4.14",
|
"@types/xml2js": "0.4.14",
|
||||||
"express-http-proxy": "2.1.1",
|
"express-http-proxy": "2.1.1",
|
||||||
"@anthropic-ai/sdk": "0.55.0",
|
"@anthropic-ai/sdk": "0.55.1",
|
||||||
"@braintree/sanitize-url": "7.1.1",
|
"@braintree/sanitize-url": "7.1.1",
|
||||||
"@triliumnext/commons": "workspace:*",
|
"@triliumnext/commons": "workspace:*",
|
||||||
"@triliumnext/express-partial-content": "workspace:*",
|
"@triliumnext/express-partial-content": "workspace:*",
|
||||||
@@ -59,7 +59,7 @@
|
|||||||
"debounce": "2.2.0",
|
"debounce": "2.2.0",
|
||||||
"debug": "4.4.1",
|
"debug": "4.4.1",
|
||||||
"ejs": "3.1.10",
|
"ejs": "3.1.10",
|
||||||
"electron": "36.6.0",
|
"electron": "37.1.0",
|
||||||
"electron-debug": "4.1.0",
|
"electron-debug": "4.1.0",
|
||||||
"electron-window-state": "5.0.3",
|
"electron-window-state": "5.0.3",
|
||||||
"escape-html": "1.0.3",
|
"escape-html": "1.0.3",
|
||||||
@@ -74,7 +74,7 @@
|
|||||||
"html2plaintext": "2.1.4",
|
"html2plaintext": "2.1.4",
|
||||||
"http-proxy-agent": "7.0.2",
|
"http-proxy-agent": "7.0.2",
|
||||||
"https-proxy-agent": "7.0.6",
|
"https-proxy-agent": "7.0.6",
|
||||||
"i18next": "25.2.1",
|
"i18next": "25.3.0",
|
||||||
"i18next-fs-backend": "2.6.0",
|
"i18next-fs-backend": "2.6.0",
|
||||||
"image-type": "6.0.0",
|
"image-type": "6.0.0",
|
||||||
"ini": "5.0.0",
|
"ini": "5.0.0",
|
||||||
@@ -83,12 +83,12 @@
|
|||||||
"jimp": "1.6.0",
|
"jimp": "1.6.0",
|
||||||
"js-yaml": "4.1.0",
|
"js-yaml": "4.1.0",
|
||||||
"jsdom": "26.1.0",
|
"jsdom": "26.1.0",
|
||||||
"marked": "15.0.12",
|
"marked": "16.0.0",
|
||||||
"mime-types": "3.0.1",
|
"mime-types": "3.0.1",
|
||||||
"multer": "2.0.1",
|
"multer": "2.0.1",
|
||||||
"normalize-strings": "1.1.1",
|
"normalize-strings": "1.1.1",
|
||||||
"ollama": "0.5.16",
|
"ollama": "0.5.16",
|
||||||
"openai": "5.8.1",
|
"openai": "5.8.2",
|
||||||
"rand-token": "1.0.1",
|
"rand-token": "1.0.1",
|
||||||
"safe-compare": "1.1.4",
|
"safe-compare": "1.1.4",
|
||||||
"sanitize-filename": "1.6.3",
|
"sanitize-filename": "1.6.3",
|
||||||
@@ -105,7 +105,7 @@
|
|||||||
"tmp": "0.2.3",
|
"tmp": "0.2.3",
|
||||||
"turndown": "7.2.0",
|
"turndown": "7.2.0",
|
||||||
"unescape": "1.0.1",
|
"unescape": "1.0.1",
|
||||||
"ws": "8.18.2",
|
"ws": "8.18.3",
|
||||||
"xml2js": "0.6.2",
|
"xml2js": "0.6.2",
|
||||||
"yauzl": "3.2.0"
|
"yauzl": "3.2.0"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -255,8 +255,12 @@ export interface Api {
|
|||||||
/**
|
/**
|
||||||
* Returns week note for given date. If such a note doesn't exist, it is created.
|
* Returns week note for given date. If such a note doesn't exist, it is created.
|
||||||
*
|
*
|
||||||
|
* <p>
|
||||||
|
* If the calendar does not support week notes, this method will return `null`.
|
||||||
|
*
|
||||||
* @param date in YYYY-MM-DD format
|
* @param date in YYYY-MM-DD format
|
||||||
* @param rootNote - specify calendar root note, normally leave empty to use the default calendar
|
* @param rootNote - specify calendar root note, normally leave empty to use the default calendar
|
||||||
|
* @return an existing or newly created week note, or `null` if the calendar does not support week notes.
|
||||||
*/
|
*/
|
||||||
getWeekNote(date: string, rootNote: BNote): BNote | null;
|
getWeekNote(date: string, rootNote: BNote): BNote | null;
|
||||||
|
|
||||||
|
|||||||
@@ -75,6 +75,9 @@ async function exportToZip(taskContext: TaskContext, branch: BBranch, format: "h
|
|||||||
|
|
||||||
function getDataFileName(type: string | null, mime: string, baseFileName: string, existingFileNames: Record<string, number>): string {
|
function getDataFileName(type: string | null, mime: string, baseFileName: string, existingFileNames: Record<string, number>): string {
|
||||||
let fileName = baseFileName.trim();
|
let fileName = baseFileName.trim();
|
||||||
|
if (!fileName) {
|
||||||
|
fileName = "note";
|
||||||
|
}
|
||||||
|
|
||||||
// Crop fileName to avoid its length exceeding 30 and prevent cutting into the extension.
|
// Crop fileName to avoid its length exceeding 30 and prevent cutting into the extension.
|
||||||
if (fileName.length > 30) {
|
if (fileName.length > 30) {
|
||||||
@@ -366,7 +369,7 @@ ${markdownContent}`;
|
|||||||
function saveNote(noteMeta: NoteMeta, filePathPrefix: string) {
|
function saveNote(noteMeta: NoteMeta, filePathPrefix: string) {
|
||||||
log.info(`Exporting note '${noteMeta.noteId}'`);
|
log.info(`Exporting note '${noteMeta.noteId}'`);
|
||||||
|
|
||||||
if (!noteMeta.noteId || !noteMeta.title) {
|
if (!noteMeta.noteId || noteMeta.title === undefined) {
|
||||||
throw new Error("Missing note meta.");
|
throw new Error("Missing note meta.");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -515,97 +518,108 @@ ${markdownContent}`;
|
|||||||
archive.append(cssContent, { name: cssMeta.dataFileName });
|
archive.append(cssContent, { name: cssMeta.dataFileName });
|
||||||
}
|
}
|
||||||
|
|
||||||
const existingFileNames: Record<string, number> = format === "html" ? { navigation: 0, index: 1 } : {};
|
try {
|
||||||
const rootMeta = createNoteMeta(branch, { notePath: [] }, existingFileNames);
|
const existingFileNames: Record<string, number> = format === "html" ? { navigation: 0, index: 1 } : {};
|
||||||
if (!rootMeta) {
|
const rootMeta = createNoteMeta(branch, { notePath: [] }, existingFileNames);
|
||||||
throw new Error("Unable to create root meta.");
|
if (!rootMeta) {
|
||||||
}
|
throw new Error("Unable to create root meta.");
|
||||||
|
}
|
||||||
|
|
||||||
const metaFile: NoteMetaFile = {
|
const metaFile: NoteMetaFile = {
|
||||||
formatVersion: 2,
|
formatVersion: 2,
|
||||||
appVersion: packageInfo.version,
|
appVersion: packageInfo.version,
|
||||||
files: [rootMeta]
|
files: [rootMeta]
|
||||||
};
|
|
||||||
|
|
||||||
let navigationMeta: NoteMeta | null = null;
|
|
||||||
let indexMeta: NoteMeta | null = null;
|
|
||||||
let cssMeta: NoteMeta | null = null;
|
|
||||||
|
|
||||||
if (format === "html") {
|
|
||||||
navigationMeta = {
|
|
||||||
noImport: true,
|
|
||||||
dataFileName: "navigation.html"
|
|
||||||
};
|
};
|
||||||
|
|
||||||
metaFile.files.push(navigationMeta);
|
let navigationMeta: NoteMeta | null = null;
|
||||||
|
let indexMeta: NoteMeta | null = null;
|
||||||
|
let cssMeta: NoteMeta | null = null;
|
||||||
|
|
||||||
indexMeta = {
|
if (format === "html") {
|
||||||
noImport: true,
|
navigationMeta = {
|
||||||
dataFileName: "index.html"
|
noImport: true,
|
||||||
};
|
dataFileName: "navigation.html"
|
||||||
|
};
|
||||||
|
|
||||||
metaFile.files.push(indexMeta);
|
metaFile.files.push(navigationMeta);
|
||||||
|
|
||||||
cssMeta = {
|
indexMeta = {
|
||||||
noImport: true,
|
noImport: true,
|
||||||
dataFileName: "style.css"
|
dataFileName: "index.html"
|
||||||
};
|
};
|
||||||
|
|
||||||
metaFile.files.push(cssMeta);
|
metaFile.files.push(indexMeta);
|
||||||
}
|
|
||||||
|
|
||||||
for (const noteMeta of Object.values(noteIdToMeta)) {
|
cssMeta = {
|
||||||
// filter out relations which are not inside this export
|
noImport: true,
|
||||||
noteMeta.attributes = (noteMeta.attributes || []).filter((attr) => {
|
dataFileName: "style.css"
|
||||||
if (attr.type !== "relation") {
|
};
|
||||||
return true;
|
|
||||||
} else if (attr.value in noteIdToMeta) {
|
metaFile.files.push(cssMeta);
|
||||||
return true;
|
}
|
||||||
} else if (attr.value === "root" || attr.value?.startsWith("_")) {
|
|
||||||
// relations to "named" noteIds can be preserved
|
for (const noteMeta of Object.values(noteIdToMeta)) {
|
||||||
return true;
|
// filter out relations which are not inside this export
|
||||||
} else {
|
noteMeta.attributes = (noteMeta.attributes || []).filter((attr) => {
|
||||||
return false;
|
if (attr.type !== "relation") {
|
||||||
|
return true;
|
||||||
|
} else if (attr.value in noteIdToMeta) {
|
||||||
|
return true;
|
||||||
|
} else if (attr.value === "root" || attr.value?.startsWith("_")) {
|
||||||
|
// relations to "named" noteIds can be preserved
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!rootMeta) {
|
||||||
|
// corner case of disabled export for exported note
|
||||||
|
if ("sendStatus" in res) {
|
||||||
|
res.sendStatus(400);
|
||||||
}
|
}
|
||||||
});
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const metaFileJson = JSON.stringify(metaFile, null, "\t");
|
||||||
|
|
||||||
|
archive.append(metaFileJson, { name: "!!!meta.json" });
|
||||||
|
|
||||||
|
saveNote(rootMeta, "");
|
||||||
|
|
||||||
|
if (format === "html") {
|
||||||
|
if (!navigationMeta || !indexMeta || !cssMeta) {
|
||||||
|
throw new Error("Missing meta.");
|
||||||
|
}
|
||||||
|
|
||||||
|
saveNavigation(rootMeta, navigationMeta);
|
||||||
|
saveIndex(rootMeta, indexMeta);
|
||||||
|
saveCss(rootMeta, cssMeta);
|
||||||
|
}
|
||||||
|
|
||||||
|
const note = branch.getNote();
|
||||||
|
const zipFileName = `${branch.prefix ? `${branch.prefix} - ` : ""}${note.getTitleOrProtected() || "note"}.zip`;
|
||||||
|
|
||||||
|
if (setHeaders && "setHeader" in res) {
|
||||||
|
res.setHeader("Content-Disposition", getContentDisposition(zipFileName));
|
||||||
|
res.setHeader("Content-Type", "application/zip");
|
||||||
|
}
|
||||||
|
|
||||||
|
archive.pipe(res);
|
||||||
|
await archive.finalize();
|
||||||
|
taskContext.taskSucceeded();
|
||||||
|
} catch (e: unknown) {
|
||||||
|
const message = `Export failed with error: ${e instanceof Error ? e.message : String(e)}`;
|
||||||
|
log.error(message);
|
||||||
|
taskContext.reportError(message);
|
||||||
|
|
||||||
if (!rootMeta) {
|
|
||||||
// corner case of disabled export for exported note
|
|
||||||
if ("sendStatus" in res) {
|
if ("sendStatus" in res) {
|
||||||
res.sendStatus(400);
|
res.removeHeader("Content-Disposition");
|
||||||
|
res.removeHeader("Content-Type");
|
||||||
|
res.status(500).send(message);
|
||||||
}
|
}
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const metaFileJson = JSON.stringify(metaFile, null, "\t");
|
|
||||||
|
|
||||||
archive.append(metaFileJson, { name: "!!!meta.json" });
|
|
||||||
|
|
||||||
saveNote(rootMeta, "");
|
|
||||||
|
|
||||||
if (format === "html") {
|
|
||||||
if (!navigationMeta || !indexMeta || !cssMeta) {
|
|
||||||
throw new Error("Missing meta.");
|
|
||||||
}
|
|
||||||
|
|
||||||
saveNavigation(rootMeta, navigationMeta);
|
|
||||||
saveIndex(rootMeta, indexMeta);
|
|
||||||
saveCss(rootMeta, cssMeta);
|
|
||||||
}
|
|
||||||
|
|
||||||
const note = branch.getNote();
|
|
||||||
const zipFileName = `${branch.prefix ? `${branch.prefix} - ` : ""}${note.getTitleOrProtected()}.zip`;
|
|
||||||
|
|
||||||
if (setHeaders && "setHeader" in res) {
|
|
||||||
res.setHeader("Content-Disposition", getContentDisposition(zipFileName));
|
|
||||||
res.setHeader("Content-Type", "application/zip");
|
|
||||||
}
|
|
||||||
|
|
||||||
archive.pipe(res);
|
|
||||||
await archive.finalize();
|
|
||||||
|
|
||||||
taskContext.taskSucceeded();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async function exportToZipFile(noteId: string, format: "markdown" | "html", zipFilePath: string, zipExportOptions?: AdvancedExportOptions) {
|
async function exportToZipFile(noteId: string, format: "markdown" | "html", zipFilePath: string, zipExportOptions?: AdvancedExportOptions) {
|
||||||
|
|||||||
@@ -29,16 +29,18 @@
|
|||||||
"tailwindcss": "^4.0.0",
|
"tailwindcss": "^4.0.0",
|
||||||
"typescript": "^5.0.0",
|
"typescript": "^5.0.0",
|
||||||
"typescript-eslint": "^8.20.0",
|
"typescript-eslint": "^8.20.0",
|
||||||
"vite": "^6.2.6"
|
"vite": "^7.0.0"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@inlang/paraglide-js": "^2.0.0"
|
"@inlang/paraglide-js": "^2.0.0"
|
||||||
},
|
},
|
||||||
"nx": {
|
"nx": {
|
||||||
"typecheck": {
|
"targets": {
|
||||||
"dependsOn": [
|
"typecheck": {
|
||||||
"build"
|
"dependsOn": [
|
||||||
]
|
"build"
|
||||||
|
]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,7 +40,7 @@
|
|||||||
"@playwright/test": "^1.36.0",
|
"@playwright/test": "^1.36.0",
|
||||||
"@triliumnext/server": "workspace:*",
|
"@triliumnext/server": "workspace:*",
|
||||||
"@types/express": "^5.0.0",
|
"@types/express": "^5.0.0",
|
||||||
"@types/node": "22.15.33",
|
"@types/node": "22.16.0",
|
||||||
"@vitest/coverage-v8": "^3.0.5",
|
"@vitest/coverage-v8": "^3.0.5",
|
||||||
"@vitest/ui": "^3.0.0",
|
"@vitest/ui": "^3.0.0",
|
||||||
"chalk": "5.4.1",
|
"chalk": "5.4.1",
|
||||||
@@ -56,13 +56,13 @@
|
|||||||
"jsonc-eslint-parser": "^2.1.0",
|
"jsonc-eslint-parser": "^2.1.0",
|
||||||
"nx": "21.2.1",
|
"nx": "21.2.1",
|
||||||
"react-refresh": "^0.17.0",
|
"react-refresh": "^0.17.0",
|
||||||
"rollup-plugin-webpack-stats": "2.0.7",
|
"rollup-plugin-webpack-stats": "2.1.0",
|
||||||
"tslib": "^2.3.0",
|
"tslib": "^2.3.0",
|
||||||
"tsx": "4.20.3",
|
"tsx": "4.20.3",
|
||||||
"typescript": "~5.8.0",
|
"typescript": "~5.8.0",
|
||||||
"typescript-eslint": "^8.19.0",
|
"typescript-eslint": "^8.19.0",
|
||||||
"upath": "2.0.1",
|
"upath": "2.0.1",
|
||||||
"vite": "^6.0.0",
|
"vite": "^7.0.0",
|
||||||
"vite-plugin-dts": "~4.5.0",
|
"vite-plugin-dts": "~4.5.0",
|
||||||
"vitest": "^3.0.0"
|
"vitest": "^3.0.0"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -30,7 +30,7 @@
|
|||||||
"@codemirror/lang-xml": "6.1.0",
|
"@codemirror/lang-xml": "6.1.0",
|
||||||
"@codemirror/legacy-modes": "6.5.1",
|
"@codemirror/legacy-modes": "6.5.1",
|
||||||
"@codemirror/search": "6.5.11",
|
"@codemirror/search": "6.5.11",
|
||||||
"@codemirror/view": "6.37.2",
|
"@codemirror/view": "6.38.0",
|
||||||
"@fsegurai/codemirror-theme-abcdef": "6.2.0",
|
"@fsegurai/codemirror-theme-abcdef": "6.2.0",
|
||||||
"@fsegurai/codemirror-theme-abyss": "6.2.0",
|
"@fsegurai/codemirror-theme-abyss": "6.2.0",
|
||||||
"@fsegurai/codemirror-theme-android-studio": "6.2.0",
|
"@fsegurai/codemirror-theme-android-studio": "6.2.0",
|
||||||
@@ -62,6 +62,6 @@
|
|||||||
"codemirror-lang-elixir": "4.0.0",
|
"codemirror-lang-elixir": "4.0.0",
|
||||||
"codemirror-lang-hcl": "0.1.0",
|
"codemirror-lang-hcl": "0.1.0",
|
||||||
"codemirror-lang-mermaid": "0.5.0",
|
"codemirror-lang-mermaid": "0.5.0",
|
||||||
"eslint-linter-browserify": "9.29.0"
|
"eslint-linter-browserify": "9.30.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
"@types/swagger-ui": "^5.0.0",
|
"@types/swagger-ui": "^5.0.0",
|
||||||
"@typescript-eslint/eslint-plugin": "^8.0.0",
|
"@typescript-eslint/eslint-plugin": "^8.0.0",
|
||||||
"@typescript-eslint/parser": "^8.0.0",
|
"@typescript-eslint/parser": "^8.0.0",
|
||||||
"dotenv": "^16.3.1",
|
"dotenv": "^17.0.0",
|
||||||
"esbuild": "^0.25.0",
|
"esbuild": "^0.25.0",
|
||||||
"eslint": "^9.0.0",
|
"eslint": "^9.0.0",
|
||||||
"highlight.js": "^11.8.0",
|
"highlight.js": "^11.8.0",
|
||||||
|
|||||||
1344
pnpm-lock.yaml
generated
1344
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user