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",
"private": true,
"version": "0.24.1",
"version": "0.25.0-beta.1",
"scripts": {
"dev": "vite",
"build": "tsc && vite build",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "server",
"version": "0.24.1",
"version": "0.25.0-beta.1",
"description": "",
"author": "",
"private": true,
@@ -37,7 +37,8 @@ async function bootstrap() {
const logger = new Logger('CollabServer');
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}`);
});
}
+2 -1
View File
@@ -104,7 +104,8 @@ async function bootstrap() {
});
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(
`Listening on http://127.0.0.1:${port} / ${process.env.APP_URL}`,
);
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "docmost",
"homepage": "https://docmost.com",
"version": "0.24.1",
"version": "0.25.0-beta.1",
"private": true,
"scripts": {
"build": "nx run-many -t build",
@@ -197,11 +197,15 @@ const replace = (
});
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.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);
}
};
@@ -228,10 +232,14 @@ const replaceAll = (
});
const marks = Array.from(marksSet);
// Delete and insert with preserved marks
// Delete the old text
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);