web-manager 3.2.56 → 3.2.58
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/index.js +243 -230
- package/lib/require.js +5 -0
- package/package.json +1 -1
package/index.js
CHANGED
@@ -487,6 +487,9 @@ Manager.prototype.init = function(configuration, callback) {
|
|
487
487
|
initChecks: {
|
488
488
|
features: [], // an array of javascript and dom features to check for (NIY)
|
489
489
|
},
|
490
|
+
refreshNewVersion: {
|
491
|
+
enabled: true,
|
492
|
+
},
|
490
493
|
auth: {
|
491
494
|
state: 'default', // required, prohibited, default
|
492
495
|
sends: {
|
@@ -549,8 +552,8 @@ Manager.prototype.init = function(configuration, callback) {
|
|
549
552
|
config: {
|
550
553
|
dsn: '',
|
551
554
|
release: '',
|
552
|
-
replaysSessionSampleRate: 0.
|
553
|
-
replaysOnErrorSampleRate:
|
555
|
+
replaysSessionSampleRate: 0.01,
|
556
|
+
replaysOnErrorSampleRate: 0.01,
|
554
557
|
},
|
555
558
|
},
|
556
559
|
chatsy: {
|
@@ -655,10 +658,12 @@ Manager.prototype.init = function(configuration, callback) {
|
|
655
658
|
}
|
656
659
|
})
|
657
660
|
|
661
|
+
// Redirect if we have a redirect query
|
658
662
|
if (redirect && self.isValidRedirectUrl(redirect)) {
|
659
663
|
return window.location.href = redirect;
|
660
664
|
}
|
661
665
|
|
666
|
+
// Detect if we are on a page that requires authentication
|
662
667
|
if (pagePathname.match(/\/(authentication-required|authentication-success|authentication-token|forgot|oauth2|signin|signout|signup)/)) {
|
663
668
|
import('./helpers/auth-pages.js')
|
664
669
|
.then(function(mod) {
|
@@ -1257,7 +1262,12 @@ function showBootstrapModal(exitPopupSettings) {
|
|
1257
1262
|
}
|
1258
1263
|
|
1259
1264
|
function refreshNewVersion(self) {
|
1260
|
-
console.log('refreshNewVersion()');
|
1265
|
+
// console.log('refreshNewVersion()');
|
1266
|
+
|
1267
|
+
// Skip if not enabled
|
1268
|
+
if (!self.properties.options.refreshNewVersion.enabled) {
|
1269
|
+
return;
|
1270
|
+
}
|
1261
1271
|
|
1262
1272
|
// Make request to get the build time (live)
|
1263
1273
|
fetch('/@output/build/build.json?cb=' + new Date().getTime())
|
@@ -1276,7 +1286,7 @@ function refreshNewVersion(self) {
|
|
1276
1286
|
buildTimeCurrent.setHours(buildTimeCurrent.getHours() + 1);
|
1277
1287
|
|
1278
1288
|
// Log
|
1279
|
-
console.log('refreshNewVersion()', data, buildTimeCurrent, buildTimeLive);
|
1289
|
+
// console.log('refreshNewVersion()', data, buildTimeCurrent, buildTimeLive);
|
1280
1290
|
|
1281
1291
|
// If the live time is newer, refresh
|
1282
1292
|
if (buildTimeCurrent < buildTimeLive) {
|
@@ -1305,307 +1315,310 @@ EXTERNAL LIBS
|
|
1305
1315
|
*/
|
1306
1316
|
var load_firebase = function(self, options) {
|
1307
1317
|
return new Promise(function(resolve, reject) {
|
1308
|
-
//
|
1309
|
-
// return resolve();
|
1310
|
-
// }
|
1318
|
+
// Set shortcuts
|
1311
1319
|
var setting = options.libraries.firebase_app
|
1312
|
-
if (setting.enabled === true) {
|
1313
|
-
function _post() {
|
1314
|
-
// self.log('Loaded Firebase.');
|
1315
|
-
// console.log('_post.');
|
1316
|
-
window.app = firebase.initializeApp(setting.config);
|
1317
1320
|
|
1318
|
-
|
1319
|
-
|
1320
|
-
|
1321
|
-
|
1322
|
-
|
1323
|
-
|
1324
|
-
|
1325
|
-
|
1326
|
-
|
1327
|
-
|
1328
|
-
|
1329
|
-
|
1330
|
-
|
1331
|
-
|
1332
|
-
|
1333
|
-
|
1334
|
-
|
1335
|
-
|
1336
|
-
|
1337
|
-
|
1338
|
-
|
1339
|
-
|
1321
|
+
// Skip if not enabled
|
1322
|
+
if (!setting.enabled) {
|
1323
|
+
return resolve();
|
1324
|
+
}
|
1325
|
+
|
1326
|
+
// Setup Firebase
|
1327
|
+
function _post() {
|
1328
|
+
// Initialize Firebase
|
1329
|
+
window.app = firebase.initializeApp(setting.config);
|
1330
|
+
|
1331
|
+
// Load Firebase libraries
|
1332
|
+
Promise.all([
|
1333
|
+
load_firebase_auth(self, options),
|
1334
|
+
load_firebase_firestore(self, options),
|
1335
|
+
load_firebase_messaging(self, options),
|
1336
|
+
load_firebase_appCheck(self, options),
|
1337
|
+
])
|
1338
|
+
.then(resolve)
|
1339
|
+
.catch(reject);
|
1340
|
+
}
|
1341
|
+
|
1342
|
+
// Load Firebase
|
1343
|
+
if (setting.load) {
|
1344
|
+
setting.load(self)
|
1345
|
+
.then(_post)
|
1346
|
+
.catch(reject);
|
1340
1347
|
} else {
|
1341
|
-
|
1348
|
+
// import('firebase/app')
|
1349
|
+
import('firebase/compat/app')
|
1350
|
+
.then(function(mod) {
|
1351
|
+
window.firebase = mod.default;
|
1352
|
+
_post()
|
1353
|
+
})
|
1354
|
+
.catch(reject);
|
1342
1355
|
}
|
1343
1356
|
});
|
1344
1357
|
}
|
1345
1358
|
|
1346
|
-
|
1347
1359
|
var load_firebase_auth = function(self, options) {
|
1348
1360
|
return new Promise(function(resolve, reject) {
|
1349
|
-
//
|
1350
|
-
// return resolve();
|
1351
|
-
// }
|
1361
|
+
// Set shortcuts
|
1352
1362
|
var setting = options.libraries.firebase_auth;
|
1353
|
-
|
1354
|
-
|
1355
|
-
|
1356
|
-
|
1357
|
-
.catch(reject);
|
1358
|
-
} else {
|
1359
|
-
// import('firebase/auth')
|
1360
|
-
import('firebase/compat/auth')
|
1361
|
-
.then(resolve)
|
1362
|
-
.catch(reject);
|
1363
|
-
}
|
1364
|
-
} else {
|
1365
|
-
resolve();
|
1363
|
+
|
1364
|
+
// Skip if not enabled
|
1365
|
+
if (!setting.enabled) {
|
1366
|
+
return resolve();
|
1366
1367
|
}
|
1367
1368
|
|
1369
|
+
// Load Firebase Auth
|
1370
|
+
if (setting.load) {
|
1371
|
+
setting.load(self)
|
1372
|
+
.then(resolve)
|
1373
|
+
.catch(reject);
|
1374
|
+
} else {
|
1375
|
+
// import('firebase/auth')
|
1376
|
+
import('firebase/compat/auth')
|
1377
|
+
.then(resolve)
|
1378
|
+
.catch(reject);
|
1379
|
+
}
|
1368
1380
|
});
|
1369
1381
|
}
|
1370
1382
|
|
1371
|
-
|
1372
1383
|
var load_firebase_firestore = function(self, options) {
|
1373
1384
|
return new Promise(function(resolve, reject) {
|
1374
|
-
//
|
1375
|
-
// return resolve();
|
1376
|
-
// }
|
1385
|
+
// Set shortcuts
|
1377
1386
|
var setting = options.libraries.firebase_firestore;
|
1378
|
-
|
1379
|
-
|
1380
|
-
|
1381
|
-
|
1382
|
-
|
1383
|
-
|
1384
|
-
|
1385
|
-
|
1386
|
-
|
1387
|
-
|
1388
|
-
|
1387
|
+
|
1388
|
+
// Skip if not enabled
|
1389
|
+
if (!setting.enabled) {
|
1390
|
+
return resolve();
|
1391
|
+
}
|
1392
|
+
|
1393
|
+
// Load Firebase Firestore
|
1394
|
+
if (setting.load) {
|
1395
|
+
setting.load(self)
|
1396
|
+
.then(resolve)
|
1397
|
+
.catch(reject);
|
1389
1398
|
} else {
|
1390
|
-
|
1399
|
+
// import('firebase/firestore')
|
1400
|
+
import('firebase/compat/firestore')
|
1401
|
+
.then(resolve)
|
1402
|
+
.catch(reject);
|
1391
1403
|
}
|
1392
1404
|
});
|
1393
1405
|
}
|
1394
1406
|
|
1395
1407
|
var load_firebase_messaging = function(self, options) {
|
1396
1408
|
return new Promise(function(resolve, reject) {
|
1397
|
-
//
|
1398
|
-
// return resolve();
|
1399
|
-
// }
|
1409
|
+
// Set shortcuts
|
1400
1410
|
var setting = options.libraries.firebase_messaging;
|
1401
|
-
|
1402
|
-
|
1403
|
-
|
1404
|
-
|
1405
|
-
|
1406
|
-
|
1407
|
-
|
1408
|
-
|
1409
|
-
|
1410
|
-
|
1411
|
-
|
1411
|
+
|
1412
|
+
// Skip if not enabled
|
1413
|
+
if (!setting.enabled) {
|
1414
|
+
return resolve();
|
1415
|
+
}
|
1416
|
+
|
1417
|
+
// Load Firebase Messaging
|
1418
|
+
if (setting.load) {
|
1419
|
+
setting.load(self)
|
1420
|
+
.then(resolve)
|
1421
|
+
.catch(reject);
|
1412
1422
|
} else {
|
1413
|
-
|
1423
|
+
// import('firebase/messaging')
|
1424
|
+
import('firebase/compat/messaging')
|
1425
|
+
.then(resolve)
|
1426
|
+
.catch(reject);
|
1414
1427
|
}
|
1415
1428
|
});
|
1416
1429
|
}
|
1417
1430
|
|
1418
1431
|
var load_firebase_appCheck = function(self, options) {
|
1419
1432
|
return new Promise(function(resolve, reject) {
|
1433
|
+
// Set shortcuts
|
1420
1434
|
var setting = options.libraries.firebase_appCheck;
|
1421
|
-
if (setting.enabled === true) {
|
1422
|
-
if (setting.load) {
|
1423
|
-
setting.load(self)
|
1424
|
-
.then(resolve)
|
1425
|
-
.catch(reject);
|
1426
|
-
} else {
|
1427
|
-
// import('firebase/app-check')
|
1428
|
-
import('firebase/compat/app-check')
|
1429
|
-
.then(function (mod) {
|
1430
|
-
var appCheck = firebase.appCheck;
|
1431
|
-
var siteKey = setting.config.siteKey;
|
1432
|
-
|
1433
|
-
if (!siteKey) {
|
1434
|
-
return resolve();
|
1435
|
-
}
|
1436
1435
|
|
1437
|
-
|
1438
|
-
|
1439
|
-
|
1440
|
-
|
1436
|
+
// Skip if not enabled
|
1437
|
+
if (!setting.enabled) {
|
1438
|
+
return resolve();
|
1439
|
+
}
|
1441
1440
|
|
1442
|
-
|
1443
|
-
|
1444
|
-
|
1445
|
-
|
1441
|
+
// Load Firebase AppCheck
|
1442
|
+
if (setting.load) {
|
1443
|
+
setting.load(self)
|
1444
|
+
.then(resolve)
|
1445
|
+
.catch(reject);
|
1446
1446
|
} else {
|
1447
|
-
|
1447
|
+
// import('firebase/app-check')
|
1448
|
+
import('firebase/compat/app-check')
|
1449
|
+
.then(function (mod) {
|
1450
|
+
var appCheck = firebase.appCheck;
|
1451
|
+
var siteKey = setting.config.siteKey;
|
1452
|
+
|
1453
|
+
if (!siteKey) {
|
1454
|
+
return resolve();
|
1455
|
+
}
|
1456
|
+
|
1457
|
+
appCheck().activate(
|
1458
|
+
new appCheck.ReCaptchaEnterpriseProvider(siteKey),
|
1459
|
+
true,
|
1460
|
+
);
|
1461
|
+
|
1462
|
+
resolve();
|
1463
|
+
})
|
1464
|
+
.catch(reject);
|
1448
1465
|
}
|
1449
1466
|
});
|
1450
1467
|
}
|
1451
1468
|
|
1452
1469
|
var load_lazysizes = function(self, options) {
|
1453
1470
|
return new Promise(function(resolve, reject) {
|
1454
|
-
// if
|
1455
|
-
|
1456
|
-
|
1457
|
-
if (options.libraries.lazysizes.enabled === true) {
|
1458
|
-
import('lazysizes')
|
1459
|
-
.then(function (mod) {
|
1460
|
-
window.lazysizes = mod.default;
|
1461
|
-
|
1462
|
-
// configs come from official lazysizes demo
|
1463
|
-
var expand = Math.max(Math.min(document.documentElement.clientWidth, document.documentElement.clientHeight, 1222) - 1, 359);
|
1464
|
-
window.lazySizesConfig = {
|
1465
|
-
loadMode: 1,
|
1466
|
-
expand: expand,
|
1467
|
-
expFactor: expand < 380 ? 3 : 2,
|
1468
|
-
};
|
1469
|
-
// self.log('Loaded Lazysizes.');
|
1470
|
-
})
|
1471
|
-
.catch(reject);
|
1472
|
-
} else {
|
1473
|
-
resolve();
|
1471
|
+
// Skip if not enabled
|
1472
|
+
if (!options.libraries.lazysizes.enabled) {
|
1473
|
+
return resolve();
|
1474
1474
|
}
|
1475
|
+
|
1476
|
+
// Load Lazysizes
|
1477
|
+
import('lazysizes')
|
1478
|
+
.then(function (mod) {
|
1479
|
+
window.lazysizes = mod.default;
|
1480
|
+
|
1481
|
+
// configs come from official lazysizes demo
|
1482
|
+
var expand = Math.max(Math.min(document.documentElement.clientWidth, document.documentElement.clientHeight, 1222) - 1, 359);
|
1483
|
+
window.lazySizesConfig = {
|
1484
|
+
loadMode: 1,
|
1485
|
+
expand: expand,
|
1486
|
+
expFactor: expand < 380 ? 3 : 2,
|
1487
|
+
};
|
1488
|
+
// self.log('Loaded Lazysizes.');
|
1489
|
+
})
|
1490
|
+
.catch(reject);
|
1475
1491
|
});
|
1476
1492
|
}
|
1477
1493
|
|
1478
1494
|
var load_cookieconsent = function(self, options) {
|
1479
1495
|
return new Promise(function(resolve, reject) {
|
1480
|
-
// if
|
1481
|
-
|
1482
|
-
|
1483
|
-
if (options.libraries.cookieconsent.enabled === true) {
|
1484
|
-
import('cookieconsent')
|
1485
|
-
.then(function(mod) {
|
1486
|
-
window.cookieconsent.initialise(options.libraries.cookieconsent.config);
|
1487
|
-
// self.log('Loaded Cookieconsent.');
|
1488
|
-
resolve();
|
1489
|
-
})
|
1490
|
-
.catch(reject);
|
1491
|
-
} else {
|
1492
|
-
resolve();
|
1496
|
+
// Skip if not enabled
|
1497
|
+
if (!options.libraries.cookieconsent.enabled) {
|
1498
|
+
return resolve();
|
1493
1499
|
}
|
1494
1500
|
|
1501
|
+
// Load Cookieconsent
|
1502
|
+
import('cookieconsent')
|
1503
|
+
.then(function(mod) {
|
1504
|
+
window.cookieconsent.initialise(options.libraries.cookieconsent.config);
|
1505
|
+
// self.log('Loaded Cookieconsent.');
|
1506
|
+
resolve();
|
1507
|
+
})
|
1508
|
+
.catch(reject);
|
1495
1509
|
});
|
1496
1510
|
}
|
1497
1511
|
|
1498
1512
|
var load_chatsy = function(self, options) {
|
1499
1513
|
return new Promise(function(resolve, reject) {
|
1514
|
+
// Skip if not enabled or already requested
|
1515
|
+
if (!options.libraries.chatsy.enabled || self.properties.page._chatsyRequested) {
|
1516
|
+
return resolve();
|
1517
|
+
}
|
1500
1518
|
|
1501
|
-
|
1502
|
-
|
1503
|
-
|
1504
|
-
)
|
1505
|
-
|
1506
|
-
|
1507
|
-
|
1508
|
-
|
1509
|
-
|
1510
|
-
|
1511
|
-
|
1512
|
-
|
1513
|
-
|
1514
|
-
|
1515
|
-
|
1516
|
-
|
1517
|
-
|
1518
|
-
|
1519
|
-
|
1520
|
-
|
1521
|
-
|
1522
|
-
|
1523
|
-
chatsy.on('status', function(event, status) {
|
1524
|
-
if (status === 'loaded') {
|
1525
|
-
chatsy.open();
|
1526
|
-
}
|
1527
|
-
})
|
1528
|
-
|
1529
|
-
resolve();
|
1519
|
+
var chatsyPath = 'libraries.chatsy.config';
|
1520
|
+
|
1521
|
+
// Immediately hide the fake button
|
1522
|
+
select('#prechat-btn').hide();
|
1523
|
+
|
1524
|
+
// Load the script
|
1525
|
+
loadScript({
|
1526
|
+
src: 'https://app.chatsy.ai/resources/script.js',
|
1527
|
+
// src: 'http://localhost:4001/resources/script.js',
|
1528
|
+
attributes: [
|
1529
|
+
{name: 'data-account-id', value: utilities.get(options, chatsyPath + '.accountId', '')},
|
1530
|
+
{name: 'data-chat-id', value: utilities.get(options, chatsyPath + '.chatId', '')},
|
1531
|
+
{name: 'data-settings', value: JSON.stringify(utilities.get(options, chatsyPath + '.settings', ''))},
|
1532
|
+
],
|
1533
|
+
crossorigin: true,
|
1534
|
+
})
|
1535
|
+
.then(function () {
|
1536
|
+
// Listen for Chatsy status
|
1537
|
+
chatsy.on('status', function(event, status) {
|
1538
|
+
if (status === 'loaded') {
|
1539
|
+
chatsy.open();
|
1540
|
+
}
|
1530
1541
|
})
|
1531
1542
|
|
1532
|
-
self.properties.page._chatsyRequested = true;
|
1533
|
-
} else {
|
1534
1543
|
resolve();
|
1535
|
-
}
|
1544
|
+
})
|
1545
|
+
|
1546
|
+
self.properties.page._chatsyRequested = true;
|
1536
1547
|
});
|
1537
1548
|
}
|
1538
1549
|
|
1539
1550
|
var load_sentry = function(self, options) {
|
1540
1551
|
return new Promise(function(resolve, reject) {
|
1541
|
-
|
1542
|
-
|
1543
|
-
|
1544
|
-
|
1545
|
-
window.Sentry = mod;
|
1552
|
+
// Skip if not enabled
|
1553
|
+
if (!options.libraries.sentry.enabled) {
|
1554
|
+
return resolve();
|
1555
|
+
}
|
1546
1556
|
|
1547
|
-
|
1548
|
-
|
1549
|
-
|
1550
|
-
|
1551
|
-
|
1557
|
+
// Import Sentry
|
1558
|
+
import('@sentry/browser')
|
1559
|
+
.then(function(mod) {
|
1560
|
+
// Set global
|
1561
|
+
window.Sentry = mod;
|
1552
1562
|
|
1553
|
-
|
1554
|
-
|
1555
|
-
|
1563
|
+
// Set config
|
1564
|
+
var config = options.libraries.sentry.config;
|
1565
|
+
config.release = config.release + '@' + self.properties.global.version;
|
1566
|
+
config.environment = self.properties.meta.environment;
|
1567
|
+
config.integrations = config.integrations || [];
|
1556
1568
|
|
1557
|
-
|
1558
|
-
|
1569
|
+
// if (self.isDevelopment()) {
|
1570
|
+
// config.dsn = 'https://901db748bbb9469f860dc36fb07a4374@o1120154.ingest.sentry.io/6155285';
|
1571
|
+
// }
|
1559
1572
|
|
1560
|
-
|
1561
|
-
|
1562
|
-
config.integrations.push(Sentry.replayIntegration({
|
1563
|
-
maskAllText: false,
|
1564
|
-
blockAllMedia: false,
|
1565
|
-
}));
|
1566
|
-
}
|
1573
|
+
// Add integration: browser tracing
|
1574
|
+
config.integrations.push(Sentry.browserTracingIntegration());
|
1567
1575
|
|
1568
|
-
|
1569
|
-
|
1570
|
-
|
1571
|
-
|
1572
|
-
|
1573
|
-
|
1574
|
-
|
1575
|
-
event.tags['process.type'] = event.tags['process.type'] || 'browser';
|
1576
|
-
// event.tags['usage.total.opens'] = parseInt(usage.total.opens);
|
1577
|
-
// event.tags['usage.total.hours'] = usage.total.hours;
|
1578
|
-
event.tags['usage.session.hours'] = hoursSinceStart.toFixed(2);
|
1579
|
-
// event.tags['store'] = self.properties().isStore();
|
1580
|
-
|
1581
|
-
// Setup user
|
1582
|
-
event.user = event.user || {};
|
1583
|
-
event.user.email = storage.get('user.auth.email', '')
|
1584
|
-
event.user.uid = storage.get('user.auth.uid', '');
|
1585
|
-
// event.user.ip = storage.get('user.ip', '');
|
1586
|
-
|
1587
|
-
// Log to console
|
1588
|
-
console.error('[SENTRY] Caught error', event, hint);
|
1589
|
-
|
1590
|
-
// Skip processing the event
|
1591
|
-
if (self.isDevelopment()) {
|
1592
|
-
return null;
|
1593
|
-
}
|
1576
|
+
// Add integration: replay
|
1577
|
+
if (config.replaysSessionSampleRate > 0 || config.replaysOnErrorSampleRate > 0) {
|
1578
|
+
config.integrations.push(Sentry.replayIntegration({
|
1579
|
+
maskAllText: false,
|
1580
|
+
blockAllMedia: false,
|
1581
|
+
}));
|
1582
|
+
}
|
1594
1583
|
|
1595
|
-
|
1596
|
-
|
1584
|
+
// Setup before send
|
1585
|
+
config.beforeSend = function (event, hint) {
|
1586
|
+
var startTime = self.properties.page.startTime;
|
1587
|
+
var hoursSinceStart = (new Date() - startTime) / (1000 * 3600);
|
1588
|
+
|
1589
|
+
// Setup tags
|
1590
|
+
event.tags = event.tags || {};
|
1591
|
+
event.tags['process.type'] = event.tags['process.type'] || 'browser';
|
1592
|
+
// event.tags['usage.total.opens'] = parseInt(usage.total.opens);
|
1593
|
+
// event.tags['usage.total.hours'] = usage.total.hours;
|
1594
|
+
event.tags['usage.session.hours'] = hoursSinceStart.toFixed(2);
|
1595
|
+
// event.tags['store'] = self.properties().isStore();
|
1596
|
+
|
1597
|
+
// Setup user
|
1598
|
+
event.user = event.user || {};
|
1599
|
+
event.user.email = storage.get('user.auth.email', '')
|
1600
|
+
event.user.uid = storage.get('user.auth.uid', '');
|
1601
|
+
// event.user.ip = storage.get('user.ip', '');
|
1602
|
+
|
1603
|
+
// Log to console
|
1604
|
+
console.error('[SENTRY] Caught error', event, hint);
|
1605
|
+
|
1606
|
+
// Skip processing the event
|
1607
|
+
if (self.isDevelopment()) {
|
1608
|
+
return null;
|
1597
1609
|
}
|
1598
1610
|
|
1599
|
-
//
|
1600
|
-
|
1611
|
+
// Process the event
|
1612
|
+
return event;
|
1613
|
+
}
|
1601
1614
|
|
1602
|
-
|
1603
|
-
|
1604
|
-
|
1605
|
-
|
1606
|
-
} else {
|
1615
|
+
// Initialize
|
1616
|
+
Sentry.init(config);
|
1617
|
+
|
1618
|
+
// Resolve
|
1607
1619
|
resolve();
|
1608
|
-
}
|
1620
|
+
})
|
1621
|
+
.catch(reject);
|
1609
1622
|
});
|
1610
1623
|
}
|
1611
1624
|
|
package/lib/require.js
ADDED
package/package.json
CHANGED