shogun-core 6.4.2 โ†’ 6.4.3

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.
@@ -123202,11 +123202,6 @@ function crypto_randomUUID() {
123202
123202
  }
123203
123203
 
123204
123204
  ;// ./src/gundb/db.ts
123205
- /**
123206
- * GunDB - Simplified database wrapper for Gun.js
123207
- * Provides only essential signup and login functionality
123208
- * Based on Gun.js User Authentication: https://deepwiki.com/amark/gun/6.1-user-authentication
123209
- */
123210
123205
  var db_awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
123211
123206
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
123212
123207
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -123247,9 +123242,6 @@ var db_generator = (undefined && undefined.__generator) || function (thisArg, bo
123247
123242
 
123248
123243
 
123249
123244
 
123250
- /**
123251
- * Configuration constants
123252
- */
123253
123245
  var CONFIG = {
123254
123246
  PASSWORD: {
123255
123247
  MIN_LENGTH: 8,
@@ -123262,10 +123254,7 @@ var DataBase = /** @class */ (function () {
123262
123254
  this.user = null;
123263
123255
  this.onAuthCallbacks = [];
123264
123256
  this._isDestroyed = false;
123265
- console.log("[DB] Initializing DataBase");
123266
- // Initialize event emitter
123267
123257
  this.eventEmitter = new EventEmitter();
123268
- // Validate Gun instance
123269
123258
  if (!gun) {
123270
123259
  throw new Error("Gun instance is required but was not provided");
123271
123260
  }
@@ -123273,14 +123262,9 @@ var DataBase = /** @class */ (function () {
123273
123262
  throw new Error("Gun instance is invalid: gun.user is not a function");
123274
123263
  }
123275
123264
  this.gun = gun;
123276
- console.log("[DB] Gun instance validated");
123277
- // Recall user session if available
123278
123265
  this.user = this.gun.user().recall({ sessionStorage: true });
123279
- console.log("[DB] User recall completed");
123280
123266
  this.subscribeToAuthEvents();
123281
- console.log("[DB] Auth events subscribed");
123282
123267
  this.crypto = gundb_crypto_namespaceObject;
123283
- // Get SEA from gun instance or global
123284
123268
  this.sea = sea || null;
123285
123269
  if (!this.sea) {
123286
123270
  if (this.gun.SEA) {
@@ -123295,20 +123279,13 @@ var DataBase = /** @class */ (function () {
123295
123279
  }
123296
123280
  this._rxjs = new RxJS(this.gun);
123297
123281
  this.node = this.gun.get(appScope);
123282
+ this.usernamesNode = this.gun.get("usernames");
123298
123283
  console.log("[DB] DataBase initialization completed");
123299
123284
  }
123300
- /**
123301
- * Initialize with app scope
123302
- */
123303
123285
  DataBase.prototype.initialize = function (appScope) {
123304
123286
  if (appScope === void 0) { appScope = "shogun"; }
123305
- console.log("[DB] Initializing with appScope: ".concat(appScope));
123306
123287
  this.node = this.gun.get(appScope);
123307
- console.log("[DB] App scope node initialized");
123308
123288
  };
123309
- /**
123310
- * Subscribe to Gun auth events
123311
- */
123312
123289
  DataBase.prototype.subscribeToAuthEvents = function () {
123313
123290
  var _this = this;
123314
123291
  this.gun.on("auth", function (ack) {
@@ -123321,16 +123298,10 @@ var DataBase = /** @class */ (function () {
123321
123298
  }
123322
123299
  });
123323
123300
  };
123324
- /**
123325
- * Notify all auth callbacks
123326
- */
123327
123301
  DataBase.prototype.notifyAuthListeners = function (pub) {
123328
123302
  var user = this.gun.user();
123329
123303
  this.onAuthCallbacks.forEach(function (cb) { return cb(user); });
123330
123304
  };
123331
- /**
123332
- * Register authentication callback
123333
- */
123334
123305
  DataBase.prototype.onAuth = function (callback) {
123335
123306
  var _this = this;
123336
123307
  this.onAuthCallbacks.push(callback);
@@ -123343,9 +123314,6 @@ var DataBase = /** @class */ (function () {
123343
123314
  _this.onAuthCallbacks.splice(i, 1);
123344
123315
  };
123345
123316
  };
123346
- /**
123347
- * Check if user is logged in
123348
- */
123349
123317
  DataBase.prototype.isLoggedIn = function () {
123350
123318
  try {
123351
123319
  var user = this.gun.user();
@@ -123355,9 +123323,6 @@ var DataBase = /** @class */ (function () {
123355
123323
  return false;
123356
123324
  }
123357
123325
  };
123358
- /**
123359
- * Restore session from storage
123360
- */
123361
123326
  DataBase.prototype.restoreSession = function () {
123362
123327
  try {
123363
123328
  if (typeof sessionStorage === "undefined") {
@@ -123388,9 +123353,6 @@ var DataBase = /** @class */ (function () {
123388
123353
  return { success: false, error: String(error) };
123389
123354
  }
123390
123355
  };
123391
- /**
123392
- * Logout user
123393
- */
123394
123356
  DataBase.prototype.logout = function () {
123395
123357
  try {
123396
123358
  var currentUser = this.gun.user();
@@ -123406,9 +123368,6 @@ var DataBase = /** @class */ (function () {
123406
123368
  console.error("[DB] Error during logout:", error);
123407
123369
  }
123408
123370
  };
123409
- /**
123410
- * Validate password strength
123411
- */
123412
123371
  DataBase.prototype.validatePasswordStrength = function (password) {
123413
123372
  if (password.length < CONFIG.PASSWORD.MIN_LENGTH) {
123414
123373
  return {
@@ -123418,9 +123377,6 @@ var DataBase = /** @class */ (function () {
123418
123377
  }
123419
123378
  return { valid: true };
123420
123379
  };
123421
- /**
123422
- * Validate signup credentials
123423
- */
123424
123380
  DataBase.prototype.validateSignupCredentials = function (username, password, pair) {
123425
123381
  if (!username || username.length < 1) {
123426
123382
  return {
@@ -123442,19 +123398,114 @@ var DataBase = /** @class */ (function () {
123442
123398
  }
123443
123399
  return this.validatePasswordStrength(password);
123444
123400
  };
123445
- /**
123446
- * Reset authentication state
123447
- */
123401
+ DataBase.prototype.ensureAliasAvailable = function (alias_1) {
123402
+ return db_awaiter(this, arguments, void 0, function (alias, timeout) {
123403
+ var available;
123404
+ if (timeout === void 0) { timeout = 5000; }
123405
+ return db_generator(this, function (_a) {
123406
+ switch (_a.label) {
123407
+ case 0: return [4 /*yield*/, this.isAliasAvailable(alias, timeout)];
123408
+ case 1:
123409
+ available = _a.sent();
123410
+ if (!available) {
123411
+ throw new Error("Alias \"".concat(alias, "\" is already registered in Gun"));
123412
+ }
123413
+ return [2 /*return*/];
123414
+ }
123415
+ });
123416
+ });
123417
+ };
123418
+ DataBase.prototype.isAliasAvailable = function (alias_1) {
123419
+ return db_awaiter(this, arguments, void 0, function (alias, timeout) {
123420
+ var normalizedAlias;
123421
+ var _this = this;
123422
+ if (timeout === void 0) { timeout = 5000; }
123423
+ return db_generator(this, function (_a) {
123424
+ if (typeof alias !== "string" || !alias.trim()) {
123425
+ throw new Error("Alias must be a non-empty string");
123426
+ }
123427
+ normalizedAlias = alias.trim().toLowerCase();
123428
+ return [2 /*return*/, new Promise(function (resolve, reject) {
123429
+ var settled = false;
123430
+ var timer = setTimeout(function () {
123431
+ if (settled)
123432
+ return;
123433
+ settled = true;
123434
+ reject(new Error("Timeout while checking alias availability"));
123435
+ }, timeout);
123436
+ _this.usernamesNode.get(normalizedAlias).once(function (existingPub) {
123437
+ if (settled)
123438
+ return;
123439
+ settled = true;
123440
+ clearTimeout(timer);
123441
+ resolve(!existingPub);
123442
+ });
123443
+ })];
123444
+ });
123445
+ });
123446
+ };
123447
+ DataBase.prototype.registerAlias = function (alias_1, userPub_1) {
123448
+ return db_awaiter(this, arguments, void 0, function (alias, userPub, timeout) {
123449
+ var normalizedAlias, available;
123450
+ var _this = this;
123451
+ if (timeout === void 0) { timeout = 5000; }
123452
+ return db_generator(this, function (_a) {
123453
+ switch (_a.label) {
123454
+ case 0:
123455
+ if (!alias || !alias.trim()) {
123456
+ throw new Error("Alias must be provided for registration");
123457
+ }
123458
+ if (!userPub) {
123459
+ throw new Error("userPub must be provided for alias registration");
123460
+ }
123461
+ normalizedAlias = alias.trim().toLowerCase();
123462
+ return [4 /*yield*/, this.isAliasAvailable(normalizedAlias, timeout).catch(function (error) {
123463
+ console.error("[DB] Alias availability check failed:", error);
123464
+ throw error;
123465
+ })];
123466
+ case 1:
123467
+ available = _a.sent();
123468
+ if (!available) {
123469
+ throw new Error("Alias \"".concat(normalizedAlias, "\" is no longer available for registration"));
123470
+ }
123471
+ return [4 /*yield*/, new Promise(function (resolve, reject) {
123472
+ var settled = false;
123473
+ var timer = setTimeout(function () {
123474
+ if (settled)
123475
+ return;
123476
+ settled = true;
123477
+ reject(new Error("Timeout while registering alias"));
123478
+ }, timeout);
123479
+ _this.usernamesNode.get(normalizedAlias).put(userPub, function (ack) {
123480
+ if (settled)
123481
+ return;
123482
+ settled = true;
123483
+ clearTimeout(timer);
123484
+ if (ack && ack.err) {
123485
+ reject(new Error(String(ack.err)));
123486
+ return;
123487
+ }
123488
+ resolve();
123489
+ });
123490
+ }).catch(function (error) {
123491
+ console.error("[DB] Failed to register alias:", error);
123492
+ throw error;
123493
+ })];
123494
+ case 2:
123495
+ _a.sent();
123496
+ return [2 /*return*/];
123497
+ }
123498
+ });
123499
+ });
123500
+ };
123448
123501
  DataBase.prototype.resetAuthState = function () {
123449
123502
  try {
123450
123503
  var user = this.gun.user();
123451
123504
  if (user && user._) {
123452
123505
  var cat = user._;
123453
- // Reset Gun's internal auth state
123454
123506
  cat.ing = false;
123455
123507
  cat.auth = null;
123456
123508
  cat.act = null;
123457
- // Clear any pending auth operations
123458
123509
  if (cat.auth) {
123459
123510
  cat.auth = null;
123460
123511
  }
@@ -123471,9 +123522,6 @@ var DataBase = /** @class */ (function () {
123471
123522
  // Ignore
123472
123523
  }
123473
123524
  };
123474
- /**
123475
- * Build login result
123476
- */
123477
123525
  DataBase.prototype.buildLoginResult = function (username, userPub) {
123478
123526
  var _a, _b;
123479
123527
  var seaPair = (_b = (_a = this.gun.user()) === null || _a === void 0 ? void 0 : _a._) === null || _b === void 0 ? void 0 : _b.sea;
@@ -123491,9 +123539,6 @@ var DataBase = /** @class */ (function () {
123491
123539
  : undefined,
123492
123540
  };
123493
123541
  };
123494
- /**
123495
- * Save credentials to session storage
123496
- */
123497
123542
  DataBase.prototype.saveCredentials = function (userInfo) {
123498
123543
  try {
123499
123544
  if (typeof sessionStorage !== "undefined") {
@@ -123511,13 +123556,9 @@ var DataBase = /** @class */ (function () {
123511
123556
  console.error("[DB] Error saving credentials:", error);
123512
123557
  }
123513
123558
  };
123514
- /**
123515
- * Sign up a new user
123516
- * Based on Gun.js user().create() - https://deepwiki.com/amark/gun/6.1-user-authentication
123517
- */
123518
123559
  DataBase.prototype.signUp = function (username, password, pair) {
123519
123560
  return db_awaiter(this, void 0, void 0, function () {
123520
- var validation, normalizedUsername, user, loginResult, e_1, result;
123561
+ var validation, normalizedUsername, user, loginResult, e_1, aliasError_1, result;
123521
123562
  var _this = this;
123522
123563
  return db_generator(this, function (_a) {
123523
123564
  switch (_a.label) {
@@ -123526,7 +123567,6 @@ var DataBase = /** @class */ (function () {
123526
123567
  if (!validation.valid) {
123527
123568
  return [2 /*return*/, { success: false, error: validation.error }];
123528
123569
  }
123529
- console.log("[DB] Signup validation:", validation);
123530
123570
  this.resetAuthState();
123531
123571
  normalizedUsername = username.trim().toLowerCase();
123532
123572
  user = this.gun.user();
@@ -123543,7 +123583,6 @@ var DataBase = /** @class */ (function () {
123543
123583
  }
123544
123584
  callbackInvoked = true;
123545
123585
  if (ack.err) {
123546
- // Could not login with pair, try to create user with username/password
123547
123586
  resolve({ success: false, error: ack.err });
123548
123587
  return;
123549
123588
  }
@@ -123566,7 +123605,6 @@ var DataBase = /** @class */ (function () {
123566
123605
  })];
123567
123606
  case 2:
123568
123607
  loginResult = _a.sent();
123569
- // If we got a successful result, return it
123570
123608
  if (loginResult && loginResult.success) {
123571
123609
  return [2 /*return*/, loginResult];
123572
123610
  }
@@ -123575,101 +123613,120 @@ var DataBase = /** @class */ (function () {
123575
123613
  e_1 = _a.sent();
123576
123614
  return [3 /*break*/, 4];
123577
123615
  case 4:
123578
- console.log("[DB] Falling back to classic username/password account creation");
123579
- return [4 /*yield*/, new Promise(function (resolve) {
123580
- var callbackInvoked = false;
123581
- user.create(normalizedUsername, password, function (createAck) {
123582
- if (callbackInvoked) {
123583
- return;
123584
- }
123585
- console.log("[DB] Signup callback received:", JSON.stringify(createAck));
123586
- // Check for error: ack.err or ack.ok !== 0 means error
123587
- if (createAck.err ||
123588
- (createAck.ok !== undefined && createAck.ok !== 0)) {
123589
- callbackInvoked = true;
123590
- _this.resetAuthState();
123591
- resolve({ success: false, error: createAck.err || "Signup failed" });
123592
- return;
123593
- }
123594
- // After create, we need to authenticate to get the user fully logged in
123595
- // Use ack.pub if available for the userPub
123596
- var userPub = createAck.pub;
123597
- if (!userPub) {
123598
- callbackInvoked = true;
123599
- _this.resetAuthState();
123600
- resolve({
123601
- success: false,
123602
- error: "No userPub available from signup",
123603
- });
123604
- return;
123605
- }
123606
- // Now authenticate with the username/password to complete the login
123607
- user.auth(normalizedUsername, password, function (authAck) {
123608
- var _a, _b, _c, _d;
123609
- if (callbackInvoked) {
123610
- return;
123611
- }
123612
- callbackInvoked = true;
123613
- if (authAck.err) {
123614
- _this.resetAuthState();
123615
- resolve({
123616
- success: false,
123617
- error: authAck.err || "Authentication after signup failed",
123618
- });
123619
- return;
123620
- }
123621
- // Verify user is authenticated
123622
- var authenticatedUserPub = (_a = user === null || user === void 0 ? void 0 : user.is) === null || _a === void 0 ? void 0 : _a.pub;
123623
- if (!authenticatedUserPub) {
123624
- _this.resetAuthState();
123625
- resolve({
123626
- success: false,
123627
- error: "User not authenticated after signup",
123628
- });
123629
- return;
123630
- }
123631
- _this.user = user;
123632
- var alias = (_b = user === null || user === void 0 ? void 0 : user.is) === null || _b === void 0 ? void 0 : _b.alias;
123633
- var userPair = (_c = user === null || user === void 0 ? void 0 : user._) === null || _c === void 0 ? void 0 : _c.sea;
123634
- try {
123635
- _this.saveCredentials({
123636
- alias: alias || normalizedUsername,
123637
- pair: pair !== null && pair !== void 0 ? pair : userPair,
123638
- userPub: authenticatedUserPub,
123639
- });
123640
- }
123641
- catch (saveError) {
123642
- // Ignore save errors
123643
- }
123644
- var sea = (_d = user === null || user === void 0 ? void 0 : user._) === null || _d === void 0 ? void 0 : _d.sea;
123645
- resolve({
123646
- success: true,
123647
- userPub: authenticatedUserPub,
123648
- username: normalizedUsername,
123649
- isNewUser: true,
123650
- sea: sea
123651
- ? {
123652
- pub: sea.pub,
123653
- priv: sea.priv,
123654
- epub: sea.epub,
123655
- epriv: sea.epriv,
123616
+ _a.trys.push([4, 6, , 7]);
123617
+ return [4 /*yield*/, this.ensureAliasAvailable(normalizedUsername)];
123618
+ case 5:
123619
+ _a.sent();
123620
+ return [3 /*break*/, 7];
123621
+ case 6:
123622
+ aliasError_1 = _a.sent();
123623
+ return [2 /*return*/, {
123624
+ success: false,
123625
+ error: aliasError_1 instanceof Error ? aliasError_1.message : String(aliasError_1),
123626
+ }];
123627
+ case 7: return [4 /*yield*/, new Promise(function (resolve) {
123628
+ var callbackInvoked = false;
123629
+ user.create(normalizedUsername, password, function (createAck) {
123630
+ if (callbackInvoked) {
123631
+ return;
123632
+ }
123633
+ if (createAck.err ||
123634
+ (createAck.ok !== undefined && createAck.ok !== 0)) {
123635
+ callbackInvoked = true;
123636
+ _this.resetAuthState();
123637
+ resolve({ success: false, error: createAck.err || "Signup failed" });
123638
+ return;
123639
+ }
123640
+ var userPub = createAck.pub;
123641
+ if (!userPub) {
123642
+ callbackInvoked = true;
123643
+ _this.resetAuthState();
123644
+ resolve({
123645
+ success: false,
123646
+ error: "No userPub available from signup",
123647
+ });
123648
+ return;
123649
+ }
123650
+ user.auth(normalizedUsername, password, function (authAck) { return db_awaiter(_this, void 0, void 0, function () {
123651
+ var authenticatedUserPub, alias, userPair, registerError_1, sea;
123652
+ var _a, _b, _c, _d;
123653
+ return db_generator(this, function (_e) {
123654
+ switch (_e.label) {
123655
+ case 0:
123656
+ if (callbackInvoked) {
123657
+ return [2 /*return*/];
123656
123658
  }
123657
- : undefined,
123658
- });
123659
+ callbackInvoked = true;
123660
+ if (authAck.err) {
123661
+ this.resetAuthState();
123662
+ resolve({
123663
+ success: false,
123664
+ error: authAck.err || "Authentication after signup failed",
123665
+ });
123666
+ return [2 /*return*/];
123667
+ }
123668
+ authenticatedUserPub = (_a = user === null || user === void 0 ? void 0 : user.is) === null || _a === void 0 ? void 0 : _a.pub;
123669
+ if (!authenticatedUserPub) {
123670
+ this.resetAuthState();
123671
+ resolve({
123672
+ success: false,
123673
+ error: "User not authenticated after signup",
123674
+ });
123675
+ return [2 /*return*/];
123676
+ }
123677
+ this.user = user;
123678
+ alias = (_b = user === null || user === void 0 ? void 0 : user.is) === null || _b === void 0 ? void 0 : _b.alias;
123679
+ userPair = (_c = user === null || user === void 0 ? void 0 : user._) === null || _c === void 0 ? void 0 : _c.sea;
123680
+ try {
123681
+ this.saveCredentials({
123682
+ alias: alias || normalizedUsername,
123683
+ pair: pair !== null && pair !== void 0 ? pair : userPair,
123684
+ userPub: authenticatedUserPub,
123685
+ });
123686
+ }
123687
+ catch (saveError) {
123688
+ // Ignore save errors
123689
+ }
123690
+ _e.label = 1;
123691
+ case 1:
123692
+ _e.trys.push([1, 3, , 4]);
123693
+ return [4 /*yield*/, this.registerAlias(alias || normalizedUsername, authenticatedUserPub)];
123694
+ case 2:
123695
+ _e.sent();
123696
+ return [3 /*break*/, 4];
123697
+ case 3:
123698
+ registerError_1 = _e.sent();
123699
+ console.error("[DB] Alias registration failed:", registerError_1);
123700
+ return [3 /*break*/, 4];
123701
+ case 4:
123702
+ sea = (_d = user === null || user === void 0 ? void 0 : user._) === null || _d === void 0 ? void 0 : _d.sea;
123703
+ resolve({
123704
+ success: true,
123705
+ userPub: authenticatedUserPub,
123706
+ username: normalizedUsername,
123707
+ isNewUser: true,
123708
+ sea: sea
123709
+ ? {
123710
+ pub: sea.pub,
123711
+ priv: sea.priv,
123712
+ epub: sea.epub,
123713
+ epriv: sea.epriv,
123714
+ }
123715
+ : undefined,
123716
+ });
123717
+ return [2 /*return*/];
123718
+ }
123659
123719
  });
123660
- });
123661
- })];
123662
- case 5:
123720
+ }); });
123721
+ });
123722
+ })];
123723
+ case 8:
123663
123724
  result = _a.sent();
123664
123725
  return [2 /*return*/, result];
123665
123726
  }
123666
123727
  });
123667
123728
  });
123668
123729
  };
123669
- /**
123670
- * Login with username and password
123671
- * Based on Gun.js user().auth() - https://deepwiki.com/amark/gun/6.1-user-authentication
123672
- */
123673
123730
  DataBase.prototype.login = function (username, password, pair) {
123674
123731
  return db_awaiter(this, void 0, void 0, function () {
123675
123732
  var normalizedUsername, user;
@@ -123678,7 +123735,6 @@ var DataBase = /** @class */ (function () {
123678
123735
  this.resetAuthState();
123679
123736
  normalizedUsername = username.trim().toLowerCase();
123680
123737
  user = this.gun.user();
123681
- console.log("[DB] Login with username:", normalizedUsername);
123682
123738
  return [2 /*return*/, new Promise(function (resolve) {
123683
123739
  if (pair) {
123684
123740
  user.auth(pair, function (ack) {
@@ -123744,9 +123800,6 @@ var DataBase = /** @class */ (function () {
123744
123800
  });
123745
123801
  });
123746
123802
  };
123747
- /**
123748
- * Get current user
123749
- */
123750
123803
  DataBase.prototype.getCurrentUser = function () {
123751
123804
  try {
123752
123805
  var user = this.gun.user();
@@ -123832,10 +123885,6 @@ var DataBase = /** @class */ (function () {
123832
123885
  });
123833
123886
  });
123834
123887
  };
123835
- /**
123836
- * Login with SEA pair
123837
- */
123838
- // Legacy method - kept for backward compatibility
123839
123888
  DataBase.prototype.loginWithPairLegacy = function (username, pair) {
123840
123889
  return db_awaiter(this, void 0, void 0, function () {
123841
123890
  return db_generator(this, function (_a) {
@@ -123843,22 +123892,15 @@ var DataBase = /** @class */ (function () {
123843
123892
  });
123844
123893
  });
123845
123894
  };
123846
- /**
123847
- * Get RxJS module
123848
- */
123849
123895
  DataBase.prototype.rx = function () {
123850
123896
  return this._rxjs;
123851
123897
  };
123852
- /**
123853
- * Destroy database instance
123854
- */
123855
123898
  DataBase.prototype.destroy = function () {
123856
123899
  if (this._isDestroyed)
123857
123900
  return;
123858
123901
  console.log("[DB] Destroying DataBase instance...");
123859
123902
  this._isDestroyed = true;
123860
123903
  this.onAuthCallbacks.length = 0;
123861
- // Clear event listeners
123862
123904
  this.eventEmitter.removeAllListeners();
123863
123905
  if (this.user) {
123864
123906
  try {
@@ -123872,18 +123914,12 @@ var DataBase = /** @class */ (function () {
123872
123914
  this._rxjs = undefined;
123873
123915
  console.log("[DB] DataBase instance destroyed");
123874
123916
  };
123875
- /**
123876
- * Aggressive auth cleanup (kept for compatibility with tests)
123877
- */
123878
123917
  DataBase.prototype.aggressiveAuthCleanup = function () {
123879
123918
  console.log("๐Ÿงน Performing aggressive auth cleanup...");
123880
123919
  this.resetAuthState();
123881
123920
  this.logout();
123882
123921
  console.log("โœ“ Aggressive auth cleanup completed");
123883
123922
  };
123884
- /**
123885
- * Event emitter methods for CoreInitializer compatibility
123886
- */
123887
123923
  DataBase.prototype.on = function (event, listener) {
123888
123924
  this.eventEmitter.on(event, listener);
123889
123925
  };