dexie 4.4.0 → 4.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +32 -4
- package/dist/dexie.d.ts +1 -1
- package/dist/dexie.js +19 -15
- package/dist/dexie.js.map +1 -1
- package/dist/dexie.min.js +1 -1
- package/dist/dexie.min.js.map +1 -1
- package/dist/dexie.mjs +19 -15
- package/dist/dexie.mjs.map +1 -1
- package/dist/modern/dexie.min.mjs +1 -1
- package/dist/modern/dexie.min.mjs.map +1 -1
- package/dist/modern/dexie.mjs +19 -15
- package/dist/modern/dexie.mjs.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -12,7 +12,7 @@ But also:
|
|
|
12
12
|
|
|
13
13
|
* Dexie.js is widely used by 100,000 of web sites, apps and other projects and supports all browsers, Electron for Desktop apps, Capacitor for iOS / Android apps and of course pure PWAs.
|
|
14
14
|
* Dexie.js works around bugs in the IndexedDB implementations, giving a more stable user experience.
|
|
15
|
-
*
|
|
15
|
+
* Need sync? [Dexie Cloud](https://dexie.org/cloud/) adds real-time sync, auth, and collaboration on top of Dexie.js — no backend needed.
|
|
16
16
|
|
|
17
17
|
#### Hello World (vanilla JS)
|
|
18
18
|
|
|
@@ -213,11 +213,39 @@ This is a mix of methods from [WhereClause](https://dexie.org/docs/WhereClause/W
|
|
|
213
213
|
|
|
214
214
|
## Dexie Cloud
|
|
215
215
|
|
|
216
|
-
[Dexie Cloud](https://dexie.org/cloud/) is
|
|
216
|
+
[Dexie Cloud](https://dexie.org/cloud/) is the easiest way to add sync, authentication, and real-time collaboration to your Dexie app. You keep writing frontend code with Dexie.js — Dexie Cloud handles the rest.
|
|
217
217
|
|
|
218
|
-
|
|
218
|
+
**What you get:**
|
|
219
|
+
- 🔄 **Sync across devices** — changes propagate in real time, no polling needed
|
|
220
|
+
- 🔐 **Authentication** — built-in user auth, no identity provider required
|
|
221
|
+
- 🛡️ **Access control** — share data between users with fine-grained permissions
|
|
222
|
+
- 📁 **File & blob storage** — store attachments alongside your structured data
|
|
223
|
+
- ✈️ **Offline-first** — works fully offline, syncs when back online
|
|
219
224
|
|
|
220
|
-
|
|
225
|
+
**Getting started is just a few lines:**
|
|
226
|
+
|
|
227
|
+
```bash
|
|
228
|
+
npm install dexie-cloud-addon
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
```ts
|
|
232
|
+
import Dexie from 'dexie';
|
|
233
|
+
import dexieCloud from 'dexie-cloud-addon';
|
|
234
|
+
|
|
235
|
+
const db = new Dexie('MyDatabase', { addons: [dexieCloud] });
|
|
236
|
+
db.version(1).stores({ items: '@id, title' });
|
|
237
|
+
db.cloud.configure({ databaseUrl: 'https://<your-db>.dexie.cloud' });
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
That's it. Your existing Dexie app now syncs. Hosted cloud or self-hosted on your own infrastructure. 👋
|
|
241
|
+
|
|
242
|
+
→ [Quickstart guide](https://dexie.org/cloud/docs/quickstart)
|
|
243
|
+
|
|
244
|
+
**Sample app:**
|
|
245
|
+
|
|
246
|
+
Source: [Dexie Cloud To-do app](https://github.com/dexie/Dexie.js/tree/master/samples/dexie-cloud-todo-app)
|
|
247
|
+
|
|
248
|
+
Live demo: https://dexie.github.io/Dexie.js/dexie-cloud-todo-app/
|
|
221
249
|
|
|
222
250
|
## Samples
|
|
223
251
|
|
package/dist/dexie.d.ts
CHANGED
package/dist/dexie.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*
|
|
5
5
|
* By David Fahlander, david.fahlander@gmail.com
|
|
6
6
|
*
|
|
7
|
-
* Version 4.4.
|
|
7
|
+
* Version 4.4.1, Wed Mar 25 2026
|
|
8
8
|
*
|
|
9
9
|
* https://dexie.org
|
|
10
10
|
*
|
|
@@ -228,12 +228,6 @@
|
|
|
228
228
|
}
|
|
229
229
|
return rv;
|
|
230
230
|
}
|
|
231
|
-
function objectIsEmpty(o) {
|
|
232
|
-
for (var k in o)
|
|
233
|
-
if (hasOwn(o, k))
|
|
234
|
-
return false;
|
|
235
|
-
return true;
|
|
236
|
-
}
|
|
237
231
|
var circularRefs = null;
|
|
238
232
|
function deepClone(any) {
|
|
239
233
|
circularRefs = new WeakMap();
|
|
@@ -1144,7 +1138,7 @@
|
|
|
1144
1138
|
}
|
|
1145
1139
|
}
|
|
1146
1140
|
|
|
1147
|
-
var DEXIE_VERSION = '4.4.
|
|
1141
|
+
var DEXIE_VERSION = '4.4.1';
|
|
1148
1142
|
var maxString = String.fromCharCode(65535);
|
|
1149
1143
|
var minKey = -Infinity;
|
|
1150
1144
|
var INVALID_KEY_ARGUMENT = "Invalid key provided. Keys must be of type string, number, Date or Array<string | number | Date>.";
|
|
@@ -5862,22 +5856,32 @@
|
|
|
5862
5856
|
signal: abortController.signal,
|
|
5863
5857
|
requery: doQuery,
|
|
5864
5858
|
querier: querier,
|
|
5865
|
-
trans: null
|
|
5859
|
+
trans: null,
|
|
5866
5860
|
};
|
|
5867
5861
|
var ret = execute(ctx);
|
|
5862
|
+
if (!startedListening) {
|
|
5863
|
+
globalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME, mutationListener);
|
|
5864
|
+
startedListening = true;
|
|
5865
|
+
}
|
|
5868
5866
|
Promise.resolve(ret).then(function (result) {
|
|
5869
5867
|
hasValue = true;
|
|
5870
5868
|
currentValue = result;
|
|
5871
5869
|
if (closed || ctx.signal.aborted) {
|
|
5872
5870
|
return;
|
|
5873
5871
|
}
|
|
5874
|
-
|
|
5875
|
-
|
|
5876
|
-
|
|
5877
|
-
|
|
5878
|
-
|
|
5872
|
+
if (shouldNotify()) {
|
|
5873
|
+
doQuery();
|
|
5874
|
+
}
|
|
5875
|
+
else {
|
|
5876
|
+
currentObs = subscr;
|
|
5877
|
+
if (shouldNotify()) {
|
|
5878
|
+
doQuery();
|
|
5879
|
+
}
|
|
5880
|
+
else {
|
|
5881
|
+
accumMuts = {};
|
|
5882
|
+
execInGlobalContext(function () { return !closed && observer.next && observer.next(result); });
|
|
5883
|
+
}
|
|
5879
5884
|
}
|
|
5880
|
-
execInGlobalContext(function () { return !closed && observer.next && observer.next(result); });
|
|
5881
5885
|
}, function (err) {
|
|
5882
5886
|
hasValue = false;
|
|
5883
5887
|
if (!['DatabaseClosedError', 'AbortError'].includes(err === null || err === void 0 ? void 0 : err.name)) {
|