dexie-cloud-addon 4.0.1-beta.53 → 4.0.1-beta.54

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.
@@ -8,7 +8,7 @@
8
8
  *
9
9
  * ==========================================================================
10
10
  *
11
- * Version 4.0.1-beta.53, Sat Dec 02 2023
11
+ * Version 4.0.1-beta.54, Mon Dec 18 2023
12
12
  *
13
13
  * https://dexie.org
14
14
  *
@@ -2333,7 +2333,7 @@ function alertUser(userInteraction, title, ...alerts) {
2333
2333
  function promptForEmail(userInteraction, title, emailHint) {
2334
2334
  return __awaiter(this, void 0, void 0, function* () {
2335
2335
  let email = emailHint || '';
2336
- while (!email || !/^[\w-\.]+@([\w-]+\.)+[\w-]{2,10}$/.test(email)) {
2336
+ while (!email || !/^[\w-+.]+@([\w-]+\.)+[\w-]{2,10}$/.test(email)) {
2337
2337
  email = (yield interactWithUser(userInteraction, {
2338
2338
  type: 'email',
2339
2339
  title,
@@ -4637,6 +4637,21 @@ function createImplicitPropSetterMiddleware(db) {
4637
4637
  const trans = req.trans;
4638
4638
  if ((_b = (_a = db.cloud.schema) === null || _a === void 0 ? void 0 : _a[tableName]) === null || _b === void 0 ? void 0 : _b.markedForSync) {
4639
4639
  if (req.type === 'add' || req.type === 'put') {
4640
+ if (tableName === 'members') {
4641
+ for (const member of req.values) {
4642
+ if (typeof member.email === 'string') {
4643
+ // Resolve https://github.com/dexie/dexie-cloud/issues/4
4644
+ // If adding a member, make sure email is lowercase and trimmed.
4645
+ // This is to avoid issues where the APP does not check this
4646
+ // and just allows the user to enter an email address that might
4647
+ // have been pasted by the user from a source that had a trailing
4648
+ // space or was in uppercase. We want to avoid that the user
4649
+ // creates a new member with a different email address than
4650
+ // the one he/she intended to create.
4651
+ member.email = member.email.trim().toLowerCase();
4652
+ }
4653
+ }
4654
+ }
4640
4655
  // No matter if user is logged in or not, make sure "owner" and "realmId" props are set properly.
4641
4656
  // If not logged in, this will be changed upon syncification of the tables (next sync after login),
4642
4657
  // however, application code will work better if we can always rely on that the properties realmId
@@ -6210,7 +6225,7 @@ function dexieCloud(dexie) {
6210
6225
  const syncComplete = new Subject();
6211
6226
  dexie.cloud = {
6212
6227
  // @ts-ignore
6213
- version: "4.0.1-beta.53",
6228
+ version: "4.0.1-beta.54",
6214
6229
  options: Object.assign({}, DEFAULT_OPTIONS),
6215
6230
  schema: null,
6216
6231
  get currentUserId() {
@@ -6487,7 +6502,7 @@ function dexieCloud(dexie) {
6487
6502
  }
6488
6503
  }
6489
6504
  // @ts-ignore
6490
- dexieCloud.version = "4.0.1-beta.53";
6505
+ dexieCloud.version = "4.0.1-beta.54";
6491
6506
  Dexie.Cloud = dexieCloud;
6492
6507
 
6493
6508
  // In case the SW lives for a while, let it reuse already opened connections: