web-manager 3.2.39 → 3.2.41

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.
Files changed (2) hide show
  1. package/lib/account.js +50 -8
  2. package/package.json +2 -2
package/lib/account.js CHANGED
@@ -237,8 +237,11 @@ Account.prototype._resolveAccount = function (firebaseUser, account, options) {
237
237
  var timestampUNIXOld = 0;
238
238
 
239
239
  // TODO: ADD THESE THINGS: USAGE RESOVLER ETC
240
- console.log('++++++account', JSON.stringify(account, null, 2));
241
- console.log('++++++options', JSON.stringify(options, null, 2));
240
+ console.log('++++++account 1', JSON.stringify(account, null, 2));
241
+ console.log('++++++options 1', JSON.stringify(options, null, 2));
242
+
243
+ // @@@DEVELOPER
244
+ // account.plan = {};
242
245
 
243
246
  // Resolve auth
244
247
  account.auth = account.auth || {};
@@ -262,6 +265,17 @@ Account.prototype._resolveAccount = function (firebaseUser, account, options) {
262
265
  account.plan.trial.expires.timestamp = new Date(account.plan.trial.expires.timestamp || 0).toISOString()
263
266
  account.plan.trial.expires.timestampUNIX = Math.round(new Date(account.plan.trial.expires.timestamp || 0).getTime() / 1000);
264
267
 
268
+ // @@@DEVELOPER
269
+ // account.plan.id = 'basic';
270
+ // account.plan.trial = {
271
+ // activated: false,
272
+ // expires: {
273
+ // timestamp: new Date('2024-04-23T00:07:29.183Z').toISOString(),
274
+ // timestampUNIX: Math.round(new Date('2024-04-23T00:07:29.183Z').getTime() / 1000),
275
+ // }
276
+ // }
277
+ // account.plan.status = 'suspended';
278
+
265
279
  account.plan.limits = account.plan.limits || {};
266
280
  // account.plan.devices = account.plan.devices || 1;
267
281
 
@@ -324,6 +338,8 @@ Account.prototype._resolveAccount = function (firebaseUser, account, options) {
324
338
  account.plan.id = defaultPlanId;
325
339
  }
326
340
 
341
+ var isBasicPlan = account.plan.id === defaultPlanId;
342
+
327
343
  // Resolve oAuth2
328
344
  account.oauth2 = account.oauth2 || {};
329
345
  // account.oauth2.google = account.oauth2.google || {};
@@ -331,7 +347,6 @@ Account.prototype._resolveAccount = function (firebaseUser, account, options) {
331
347
 
332
348
  // Resolve roles
333
349
  account.roles = account.roles || {};
334
- // account.roles.betaTester = account.plan.id === defaultPlanId ? false : account.roles.betaTester === true || account.roles.betaTester === 'true';
335
350
  account.roles.betaTester = account.roles.betaTester === true || account.roles.betaTester === 'true';
336
351
  account.roles.developer = account.roles.developer === true || account.roles.developer === 'true';
337
352
  account.roles.admin = account.roles.admin === true || account.roles.admin === 'true';
@@ -418,6 +433,8 @@ Account.prototype._resolveAccount = function (firebaseUser, account, options) {
418
433
  var billingUpdateBtn = self.dom.select('.auth-billing-update-btn');
419
434
  var billingPlanId = self.dom.select('.auth-billing-plan-id-element');
420
435
  var billingFrequencyEl = self.dom.select('.auth-billing-frequency-element');
436
+ var billingStatusEl = self.dom.select('.auth-billing-status-element');
437
+ var billingStatusColorEl = self.dom.select('.auth-billing-status-color-element');
421
438
  var billingStartDateEl = self.dom.select('.auth-billing-start-date-element');
422
439
  var billingExpirationDateEl = self.dom.select('.auth-billing-expiration-date-element');
423
440
  var billingSuspendedMessageEl = self.dom.select('.auth-billing-suspended-message-element');
@@ -460,8 +477,8 @@ Account.prototype._resolveAccount = function (firebaseUser, account, options) {
460
477
 
461
478
  billingUpdateBtn.setAttribute('hidden', true).setAttribute('href', updateURL.toString());
462
479
  billingSubscribeBtn.setAttribute('hidden', true);
463
- billingSuspendedMessageEl.setAttribute('hidden');
464
- billingTrialExpirationDateEl.setAttribute('hidden');
480
+ billingSuspendedMessageEl.setAttribute('hidden', true);
481
+ billingTrialExpirationDateEl.setAttribute('hidden', true);
465
482
 
466
483
  // Update active UI
467
484
  if (planIsActive) {
@@ -488,11 +505,32 @@ Account.prototype._resolveAccount = function (firebaseUser, account, options) {
488
505
  .setInnerHTML('<i class="fas fa-gift mr-1"></i> Your free trial expires in ' + daysTillTrialExpire + ' days');
489
506
  }
490
507
 
508
+ // Change the status to 'failed' if the plan is suspended because room temperature IQ people think 'suspended' means 'cancelled'
509
+ var visibleStatus = uppercase(account.plan.status === 'suspended' ? 'failed payment' : account.plan.status);
510
+ // If user is on trial, start date is trial exp date
511
+ var visibleStartDate = account.plan.trial.activated ? account.plan.trial.expires.timestamp : account.plan.payment.startDate.timestamp;
512
+ if (isBasicPlan) {
513
+ // Set as start of this month
514
+ visibleStartDate = new Date(now.getFullYear(), now.getMonth(), 1).toISOString();
515
+ }
516
+ var visibleFrequency = account.plan.payment.frequency === 'unknown' ? 'monthly' : account.plan.payment.frequency;
517
+
491
518
  // Update billing UI
492
519
  billingPlanId.setInnerHTML(splitDashesAndUppercase(account.plan.id));
493
- billingFrequencyEl.setInnerHTML(account.plan.id !== defaultPlanId ? ' (billed ' + uppercase(account.plan.payment.frequency) + ')' : '');
494
- billingStartDateEl.setInnerHTML(account.plan.id !== defaultPlanId ? ' - Purchased ' + getMonth(startDate) + ' ' + startDate.getDate() + ', ' + startDate.getFullYear() : '');
495
- billingExpirationDateEl.setInnerHTML(account.plan.id !== defaultPlanId && daysTillExpire < 366
520
+ billingFrequencyEl.setInnerHTML(visibleFrequency);
521
+ billingStatusEl.setInnerHTML(visibleStatus);
522
+ billingStatusColorEl
523
+ .removeClass('bg-soft-success').removeClass('bg-soft-danger').removeClass('bg-soft-warning')
524
+ .removeClass('text-success').removeClass('text-danger').removeClass('text-warning')
525
+ if (account.plan.status === 'active') {
526
+ billingStatusColorEl.addClass('bg-soft-success').addClass('text-success');
527
+ } else {
528
+ billingStatusColorEl.addClass('bg-soft-danger').addClass('text-danger');
529
+ }
530
+ billingStartDateEl.setInnerHTML(new Date(visibleStartDate).toLocaleString(undefined, {
531
+ weekday: 'long', year: 'numeric', month: 'long', day: 'numeric',
532
+ }));
533
+ billingExpirationDateEl.setInnerHTML(isBasicPlan && daysTillExpire < 366
496
534
  ? '<i class="fas fa-exclamation-triangle mr-1"></i> Expires in ' + daysTillExpire + ' days '
497
535
  : '');
498
536
 
@@ -537,6 +575,10 @@ Account.prototype._resolveAccount = function (firebaseUser, account, options) {
537
575
  }
538
576
  })
539
577
 
578
+ // TODO: ADD THESE THINGS: USAGE RESOVLER ETC
579
+ console.log('++++++account 2', JSON.stringify(account, null, 2));
580
+ console.log('++++++options 2', JSON.stringify(options, null, 2));
581
+
540
582
  } catch (e) {
541
583
  if (typeof window !== 'undefined') {
542
584
  console.error('Unable to set DOM elements', e);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "web-manager",
3
- "version": "3.2.39",
3
+ "version": "3.2.41",
4
4
  "description": "Easily access important variables such as the query string, current domain, and current page in a single object.",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -31,7 +31,7 @@
31
31
  }
32
32
  },
33
33
  "dependencies": {
34
- "@sentry/browser": "^7.98.0",
34
+ "@sentry/browser": "^7.108.0",
35
35
  "cookieconsent": "^3.1.1",
36
36
  "firebase": "^9.23.0",
37
37
  "lazysizes": "^5.3.2"