Compare commits

..

5 Commits

Author SHA1 Message Date
Philipinho f32bb298e0 v0.25.0-beta.1 2026-01-30 23:09:01 +00:00
Pleasure1234 3178cad796 fix: handle empty replace term in search and replace functionality (#1562)
- Fix 'Empty text nodes are not allowed' error when replace field is empty
- Update both replace() and replaceAll() functions to check for empty replaceTerm
2026-01-30 22:37:22 +00:00
Philipinho 9d7f8c62c5 sync 2026-01-30 22:31:49 +00:00
Philip Okugbe 78b1c1a453 feat: switch to cursor pagination (#1884)
* add cursor pagination function

* support custom order modifier
* refactor returned object

* feat(db): migrate paginated endpoints to cursor-based pagination

* sync

* support hasPrevPage boolean

* feat(client): migrate pagination from offset to cursor-based

* support beforeCursor/prevCursor

* wrap search results in items array for API consistency
2026-01-30 19:28:54 +00:00
Philip Okugbe 96ed98619f feat: add IPv6 support via configurable HOST binding (#1885) 2026-01-30 00:33:10 +00:00
7 changed files with 22 additions and 12 deletions
+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"name": "client", "name": "client",
"private": true, "private": true,
"version": "0.24.1", "version": "0.25.0-beta.1",
"scripts": { "scripts": {
"dev": "vite", "dev": "vite",
"build": "tsc && vite build", "build": "tsc && vite build",
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "server", "name": "server",
"version": "0.24.1", "version": "0.25.0-beta.1",
"description": "", "description": "",
"author": "", "author": "",
"private": true, "private": true,
@@ -37,7 +37,8 @@ async function bootstrap() {
const logger = new Logger('CollabServer'); const logger = new Logger('CollabServer');
const port = process.env.COLLAB_PORT || 3001; const port = process.env.COLLAB_PORT || 3001;
await app.listen(port, '0.0.0.0', () => { const host = process.env.HOST || '0.0.0.0';
await app.listen(port, host, () => {
logger.log(`Listening on http://127.0.0.1:${port}`); logger.log(`Listening on http://127.0.0.1:${port}`);
}); });
} }
+2 -1
View File
@@ -104,7 +104,8 @@ async function bootstrap() {
}); });
const port = process.env.PORT || 3000; const port = process.env.PORT || 3000;
await app.listen(port, '0.0.0.0', () => { const host = process.env.HOST || '0.0.0.0';
await app.listen(port, host, () => {
logger.log( logger.log(
`Listening on http://127.0.0.1:${port} / ${process.env.APP_URL}`, `Listening on http://127.0.0.1:${port} / ${process.env.APP_URL}`,
); );
+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"name": "docmost", "name": "docmost",
"homepage": "https://docmost.com", "homepage": "https://docmost.com",
"version": "0.24.1", "version": "0.25.0-beta.1",
"private": true, "private": true,
"scripts": { "scripts": {
"build": "nx run-many -t build", "build": "nx run-many -t build",
@@ -197,11 +197,15 @@ const replace = (
}); });
const marks = Array.from(marksSet); const marks = Array.from(marksSet);
// Delete the old text and insert new text with preserved marks // Delete the old text
tr.delete(from, to); tr.delete(from, to);
tr.insert(from, state.schema.text(replaceTerm, marks));
// Only insert new text if replaceTerm is not empty (allows for deletion when replaceTerm is empty)
if (replaceTerm) {
tr.insert(from, state.schema.text(replaceTerm, marks));
}
dispatch(tr); dispatch(tr);
} }
}; };
@@ -228,10 +232,14 @@ const replaceAll = (
}); });
const marks = Array.from(marksSet); const marks = Array.from(marksSet);
// Delete and insert with preserved marks // Delete the old text
tr.delete(from, to); tr.delete(from, to);
tr.insert(from, tr.doc.type.schema.text(replaceTerm, marks));
// Only insert new text if replaceTerm is not empty (allows for deletion when replaceTerm is empty)
if (replaceTerm) {
tr.insert(from, tr.doc.type.schema.text(replaceTerm, marks));
}
} }
dispatch(tr); dispatch(tr);