web-manager 2.1.22 → 2.1.28

Sign up to get free protection for your applications and to get access to all the features.
package/index.js CHANGED
@@ -240,6 +240,17 @@ function Manager() {
240
240
  user.getIdToken(false)
241
241
  .then(function(token) {
242
242
  var done;
243
+ // fetch('https://us-central1-' + This.properties.options.libraries.firebase_app.config.projectId + '.cloudfunctions.net/bm_api', {
244
+ // method: 'POST',
245
+ // body: JSON.stringify({
246
+ // authenticationToken: token,
247
+ // command: 'signup-handler',
248
+ // payload: {
249
+ // newsletterSignUp: domLib.select('.auth-newsletter-input').getValue(),
250
+ // affiliateCode: This.storage().get('auth.affiliateCode', '')
251
+ // }
252
+ // }),
253
+ // })
243
254
  fetch('https://us-central1-' + This.properties.options.libraries.firebase_app.config.projectId + '.cloudfunctions.net/bm_signUpHandler', {
244
255
  method: 'POST',
245
256
  body: JSON.stringify({
@@ -525,6 +536,7 @@ function Manager() {
525
536
  libraries: {
526
537
  firebase_app: {
527
538
  enabled: true,
539
+ load: false,
528
540
  config: {
529
541
  apiKey: '',
530
542
  authDomain: '',
@@ -536,13 +548,16 @@ function Manager() {
536
548
  }
537
549
  },
538
550
  firebase_firestore: {
539
- enabled: true
551
+ enabled: true,
552
+ load: false,
540
553
  },
541
554
  firebase_messaging: {
542
- enabled: true
555
+ enabled: true,
556
+ load: false,
543
557
  },
544
558
  firebase_auth: {
545
559
  enabled: true,
560
+ load: false,
546
561
  },
547
562
  lazysizes: {
548
563
  enabled: true
@@ -1201,12 +1216,11 @@ function Manager() {
1201
1216
  // if (typeof window.firebase !== 'undefined') {
1202
1217
  // return resolve();
1203
1218
  // }
1204
- if (options.libraries.firebase_app.enabled === true) {
1205
- import('firebase/app')
1206
- .then(function(mod) {
1219
+ var setting = options.libraries.firebase_app
1220
+ if (setting.enabled === true) {
1221
+ function _post() {
1207
1222
  // This.log('Loaded Firebase.');
1208
- window.firebase = mod.default;
1209
- window.app = firebase.initializeApp(options.libraries.firebase_app.config);
1223
+ window.app = firebase.initializeApp(setting.config);
1210
1224
 
1211
1225
  Promise.all([
1212
1226
  load_firebase_auth(This, options),
@@ -1215,8 +1229,19 @@ function Manager() {
1215
1229
  ])
1216
1230
  .then(resolve)
1217
1231
  .catch(reject);
1218
- })
1219
- .catch(reject);
1232
+ }
1233
+ if (setting.load) {
1234
+ setting.load()
1235
+ _post()
1236
+ } else {
1237
+ import('firebase/app')
1238
+ .then(function(mod) {
1239
+ window.firebase = mod.default;
1240
+ _post()
1241
+ })
1242
+ .catch(reject);
1243
+ }
1244
+ return resolve()
1220
1245
  } else {
1221
1246
  return resolve();
1222
1247
  }
@@ -1229,10 +1254,16 @@ function Manager() {
1229
1254
  // if (typeof utilities.get(window, 'firebase.auth', undefined) !== 'undefined') {
1230
1255
  // return resolve();
1231
1256
  // }
1232
- if (options.libraries.firebase_auth.enabled === true) {
1233
- import('firebase/auth')
1234
- .then(resolve)
1235
- .catch(reject);
1257
+ var setting = options.libraries.firebase_auth;
1258
+ if (setting.enabled === true) {
1259
+ if (setting.load) {
1260
+ setting.load()
1261
+ resolve()
1262
+ } else {
1263
+ import('firebase/auth')
1264
+ .then(resolve)
1265
+ .catch(reject);
1266
+ }
1236
1267
  } else {
1237
1268
  return resolve();
1238
1269
  }
@@ -1246,10 +1277,16 @@ function Manager() {
1246
1277
  // if (typeof utilities.get(window, 'firebase.firestore', undefined) !== 'undefined') {
1247
1278
  // return resolve();
1248
1279
  // }
1249
- if (options.libraries.firebase_firestore.enabled === true) {
1250
- import('firebase/firestore')
1251
- .then(resolve)
1252
- .catch(reject);
1280
+ var setting = options.libraries.firebase_firestore;
1281
+ if (setting.enabled === true) {
1282
+ if (setting.load) {
1283
+ setting.load()
1284
+ resolve()
1285
+ } else {
1286
+ import('firebase/firestore')
1287
+ .then(resolve)
1288
+ .catch(reject);
1289
+ }
1253
1290
  } else {
1254
1291
  return resolve();
1255
1292
  }
@@ -1261,10 +1298,16 @@ function Manager() {
1261
1298
  // if (typeof utilities.get(window, 'firebase.messaging', undefined) !== 'undefined') {
1262
1299
  // return resolve();
1263
1300
  // }
1264
- if (options.libraries.firebase_messaging.enabled === true) {
1265
- import('firebase/messaging')
1266
- .then(resolve)
1267
- .catch(reject);
1301
+ var setting = options.libraries.firebase_messaging;
1302
+ if (setting.enabled === true) {
1303
+ if (setting.load) {
1304
+ setting.load()
1305
+ resolve()
1306
+ } else {
1307
+ import('firebase/messaging')
1308
+ .then(resolve)
1309
+ .catch(reject);
1310
+ }
1268
1311
  } else {
1269
1312
  return resolve();
1270
1313
  }
package/lib/account.js CHANGED
@@ -158,14 +158,14 @@ Account.prototype.resolve = function (account, options) {
158
158
  firebase.firestore().doc('users/' + currentUser.uid)
159
159
  .get()
160
160
  .then(function (doc) {
161
- return resolve(_resolveAccount(self, currentUser, doc.data(), options));
161
+ return resolve(self._resolveAccount(currentUser, doc.data(), options));
162
162
  })
163
163
  .catch(reject)
164
164
  } else {
165
165
  if (!currentUser) {
166
166
  return reject(new Error('No currently authenticated user'))
167
167
  }
168
- return resolve(_resolveAccount(self, currentUser, account, options));
168
+ return resolve(self._resolveAccount(currentUser, account, options));
169
169
  }
170
170
  });
171
171
  }
@@ -190,7 +190,8 @@ function getMonth(date) {
190
190
  return monthNames[date.getMonth()];
191
191
  }
192
192
 
193
- function _resolveAccount(self, currentUser, account, options) {
193
+ Account.prototype._resolveAccount = function (currentUser, account, options) {
194
+ var self = this;
194
195
  account = account || {};
195
196
  options = options || {};
196
197
 
@@ -224,49 +225,17 @@ function _resolveAccount(self, currentUser, account, options) {
224
225
 
225
226
  var planExpireDate = new Date(account.plan.expires.timestamp);
226
227
  var now = new Date();
227
- var daysTillExpire = Math.floor(( planExpireDate - now ) / 86400000);
228
+ var daysTillExpire = Math.floor((planExpireDate - now) / 86400000);
228
229
  let difference = (planExpireDate.getTime() - now.getTime())/(24*3600*1000);
229
230
  var startDate = new Date(account.plan.payment.startDate.timestamp);
231
+ var planIsActive = difference > -1 && account.plan.id !== defaultPlanId;
230
232
 
231
- var isDevelopment = utilities.get(self.Manager, 'properties.meta.environment', '') === 'development';
232
- // var apiLinkURL = isDevelopment ? 'http://localhost:5000/discord-link' : 'https://api.{{ site.brand.name }}.com/discord-link';
233
- // var apiUnlinkURL = isDevelopment ? 'http://localhost:5000/discord-unlink' : 'https://api.{{ site.brand.name }}.com/discord-unlink';
234
- var cancelURL = isDevelopment ? 'http://localhost:4001/cancel/' : 'https://itwcreativeworks.com/portal/account/manage/';
235
-
236
- var billingSubscribeBtn = dom.select('.auth-billing-subscribe-btn');
237
- var billingUpdateBtn = dom.select('.auth-billing-update-btn');
238
- var billingPlanId = dom.select('.auth-billing-plan-id-element');
239
- var billingFrequencyEl = dom.select('.auth-billing-frequency-element');
240
- var billingStartDateEl = dom.select('.auth-billing-start-date-element');
241
- var billingExpirationDateEl = dom.select('.auth-billing-expiration-date-element');
242
- var updateURL = new URL(cancelURL);
243
- var currentURL = new URL(window.location.href);
244
-
245
- billingSubscribeBtn.setAttribute('hidden', true);
246
- billingUpdateBtn.setAttribute('hidden', true);
247
-
248
- if (difference > -1 && account.plan.id !== defaultPlanId) {
233
+ if (planIsActive) {
249
234
  account.plan.id = account.plan.id;
250
- updateURL.searchParams.set('appName', utilities.get(self.Manager, 'properties.global.brand.name', 'Unknown'));
251
- updateURL.searchParams.set('supportUrl', currentURL.origin + '/support');
252
- updateURL.searchParams.set('supportEmail', utilities.get(self.Manager, 'properties.contact.emailSupport', 'unknown@email.com'));
253
- updateURL.searchParams.set('userEmail', currentUser.email);
254
- updateURL.searchParams.set('userId', currentUser.uid);
255
- updateURL.searchParams.set('orderId', account.plan.payment.orderId);
256
- updateURL.searchParams.set('resourceId', account.plan.payment.resourceId);
257
- billingUpdateBtn.removeAttribute('hidden').setAttribute('href', updateURL.toString());
258
235
  } else {
259
236
  account.plan.id = defaultPlanId;
260
- billingSubscribeBtn.removeAttribute('hidden');
261
237
  }
262
238
 
263
- billingPlanId.setInnerHTML(uppercase(account.plan.id));
264
- billingFrequencyEl.setInnerHTML(account.plan.id !== defaultPlanId ? ' (billed ' + uppercase(account.plan.payment.frequency) + ')' : '');
265
- billingStartDateEl.setInnerHTML(account.plan.id !== defaultPlanId ? ' - Purchased ' + getMonth(startDate) + ' ' + startDate.getDate() + ', ' + startDate.getFullYear() : '');
266
- billingExpirationDateEl.setInnerHTML(account.plan.id !== defaultPlanId && daysTillExpire < 366
267
- ? '<i class="fas fa-exclamation-triangle mr-1"></i> Expires in ' + daysTillExpire + ' days '
268
- : '');
269
-
270
239
  // Resolve oAuth2
271
240
  account.oauth2 = account.oauth2 || {};
272
241
  account.oauth2.discord = account.oauth2.discord || {};
@@ -280,10 +249,50 @@ function _resolveAccount(self, currentUser, account, options) {
280
249
  account.roles.vip = account.roles.vip === true || account.roles.vip === 'true';
281
250
  account.roles.promoExempt = account.roles.promoExempt === true || account.roles.promoExempt === 'true';
282
251
 
283
- self.properties = account;
284
-
285
252
  // Set UI elements
286
- _setAuthItem('.auth-apikey-element', utilities.get(account, 'api.privateKey', 'n/a'))
253
+ try {
254
+ var isDevelopment = utilities.get(self.Manager, 'properties.meta.environment', '') === 'development';
255
+ // var apiLinkURL = isDevelopment ? 'http://localhost:5000/discord-link' : 'https://api.{{ site.brand.name }}.com/discord-link';
256
+ // var apiUnlinkURL = isDevelopment ? 'http://localhost:5000/discord-unlink' : 'https://api.{{ site.brand.name }}.com/discord-unlink';
257
+ var cancelURL = isDevelopment ? 'http://localhost:4001/cancel/' : 'https://itwcreativeworks.com/portal/account/manage/';
258
+
259
+ var billingSubscribeBtn = dom.select('.auth-billing-subscribe-btn');
260
+ var billingUpdateBtn = dom.select('.auth-billing-update-btn');
261
+ var billingPlanId = dom.select('.auth-billing-plan-id-element');
262
+ var billingFrequencyEl = dom.select('.auth-billing-frequency-element');
263
+ var billingStartDateEl = dom.select('.auth-billing-start-date-element');
264
+ var billingExpirationDateEl = dom.select('.auth-billing-expiration-date-element');
265
+ var updateURL = new URL(cancelURL);
266
+ var currentURL = new URL(window.location.href);
267
+
268
+ billingSubscribeBtn.setAttribute('hidden', true);
269
+ billingUpdateBtn.setAttribute('hidden', true);
270
+
271
+ if (planIsActive) {
272
+ updateURL.searchParams.set('appName', utilities.get(self.Manager, 'properties.global.brand.name', 'Unknown'));
273
+ updateURL.searchParams.set('supportUrl', currentURL.origin + '/support');
274
+ updateURL.searchParams.set('supportEmail', utilities.get(self.Manager, 'properties.contact.emailSupport', 'unknown@email.com'));
275
+ updateURL.searchParams.set('userEmail', currentUser.email);
276
+ updateURL.searchParams.set('userId', currentUser.uid);
277
+ updateURL.searchParams.set('orderId', account.plan.payment.orderId);
278
+ updateURL.searchParams.set('resourceId', account.plan.payment.resourceId);
279
+ billingUpdateBtn.removeAttribute('hidden').setAttribute('href', updateURL.toString());
280
+ } else {
281
+ billingSubscribeBtn.removeAttribute('hidden');
282
+ }
283
+
284
+ billingPlanId.setInnerHTML(uppercase(account.plan.id));
285
+ billingFrequencyEl.setInnerHTML(account.plan.id !== defaultPlanId ? ' (billed ' + uppercase(account.plan.payment.frequency) + ')' : '');
286
+ billingStartDateEl.setInnerHTML(account.plan.id !== defaultPlanId ? ' - Purchased ' + getMonth(startDate) + ' ' + startDate.getDate() + ', ' + startDate.getFullYear() : '');
287
+ billingExpirationDateEl.setInnerHTML(account.plan.id !== defaultPlanId && daysTillExpire < 366
288
+ ? '<i class="fas fa-exclamation-triangle mr-1"></i> Expires in ' + daysTillExpire + ' days '
289
+ : '');
290
+
291
+ _setAuthItem('.auth-apikey-element', utilities.get(account, 'api.privateKey', 'n/a'))
292
+ } catch (e) {
293
+ console.error('Unable to set DOM elements', e);
294
+ }
295
+ self.properties = account;
287
296
 
288
297
  return self.properties;
289
298
  }
package/lib/dom.js CHANGED
@@ -250,22 +250,27 @@ Dom.prototype.exists = function() {
250
250
  }
251
251
 
252
252
  Dom.loadScript = function(options, callback) {
253
- options = options || {};
254
- options.async = (typeof options.async === 'undefined') ? false : options.async;
255
- options.crossorigin = (typeof options.crossorigin === 'undefined') ? false : options.crossorigin;
256
- var s = document.createElement('script');
257
- s.src = options.src;
258
- s.async = options.async;
259
- if (options.crossorigin) {
260
- s.setAttribute('crossorigin','*');
261
- }
262
- s.onload = function() {
263
- callback();
264
- };
265
- s.onerror = function() {
266
- callback(new Error('Failed to load script ' + options.src));
267
- };
268
- document.head.appendChild(s);
253
+ return new Promise(function(resolve, reject) {
254
+ options = options || {};
255
+ options.async = (typeof options.async === 'undefined') ? false : options.async;
256
+ options.crossorigin = (typeof options.crossorigin === 'undefined') ? false : options.crossorigin;
257
+ var s = document.createElement('script');
258
+ s.src = options.src;
259
+ s.async = options.async;
260
+ if (options.crossorigin) {
261
+ s.setAttribute('crossorigin','*');
262
+ }
263
+ s.onload = function() {
264
+ if (callback) { callback(); }
265
+ return resolve();
266
+ };
267
+ s.onerror = function() {
268
+ var error = new Error('Failed to load script ' + options.src);
269
+ if (callback) { callback(error); }
270
+ return reject(error);
271
+ };
272
+ document.head.appendChild(s);
273
+ });
269
274
  }
270
275
 
271
276
  Dom.select = function(selector, options) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "web-manager",
3
- "version": "2.1.22",
3
+ "version": "2.1.28",
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": {
@@ -23,9 +23,9 @@
23
23
  },
24
24
  "homepage": "https://itwcreativeworks.com",
25
25
  "dependencies": {
26
- "@sentry/browser": "^6.13.2",
26
+ "@sentry/browser": "^6.15.0",
27
27
  "cookieconsent": "^3.1.1",
28
28
  "firebase": "^8.10.0",
29
29
  "lazysizes": "^5.3.2"
30
30
  }
31
- }
31
+ }