manyfest 1.0.28 → 1.0.30

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.
@@ -1,18 +1,18 @@
1
1
  "use strict";
2
2
 
3
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
4
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
5
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
3
+ function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
6
4
  function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
7
5
  function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
8
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
6
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
9
7
  function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
8
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
9
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
10
10
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
11
11
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
12
12
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
13
13
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
14
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
15
- function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
14
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
15
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
16
16
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
17
17
  (function (f) {
18
18
  if ((typeof exports === "undefined" ? "undefined" : _typeof(exports)) === "object" && typeof module !== "undefined") {
@@ -95,7 +95,7 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
95
95
  // The service hash is used to identify the specific instantiation of the service in the services map
96
96
  this.Hash = typeof pServiceHash === 'string' ? pServiceHash : !this.fable && typeof pOptions === 'string' ? pOptions : "".concat(this.UUID);
97
97
  }
98
- _createClass(FableServiceProviderBase, [{
98
+ return _createClass(FableServiceProviderBase, [{
99
99
  key: "connectFable",
100
100
  value: function connectFable(pFable) {
101
101
  if (_typeof(pFable) !== 'object' || !pFable.isFable) {
@@ -118,7 +118,6 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
118
118
  return true;
119
119
  }
120
120
  }]);
121
- return FableServiceProviderBase;
122
121
  }();
123
122
  _defineProperty(FableServiceProviderBase, "isFableService", true);
124
123
  module.exports = FableServiceProviderBase;
@@ -180,7 +179,7 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
180
179
  this.logError = typeof pErrorLog === 'function' ? pErrorLog : libSimpleLog;
181
180
  this.translationTable = {};
182
181
  }
183
- _createClass(ManyfestHashTranslation, [{
182
+ return _createClass(ManyfestHashTranslation, [{
184
183
  key: "translationCount",
185
184
  value: function translationCount() {
186
185
  return Object.keys(this.translationTable).length;
@@ -248,7 +247,6 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
248
247
  }
249
248
  }
250
249
  }]);
251
- return ManyfestHashTranslation;
252
250
  }();
253
251
  module.exports = ManyfestHashTranslation;
254
252
  }, {
@@ -295,11 +293,8 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
295
293
  * @class ManyfestObjectAddressResolverCheckAddressExists
296
294
  */
297
295
  var ManyfestObjectAddressResolverCheckAddressExists = /*#__PURE__*/function () {
298
- function ManyfestObjectAddressResolverCheckAddressExists(pInfoLog, pErrorLog) {
296
+ function ManyfestObjectAddressResolverCheckAddressExists() {
299
297
  _classCallCheck(this, ManyfestObjectAddressResolverCheckAddressExists);
300
- // Wire in logging
301
- this.logInfo = typeof pInfoLog == 'function' ? pInfoLog : libSimpleLog;
302
- this.logError = typeof pErrorLog == 'function' ? pErrorLog : libSimpleLog;
303
298
  }
304
299
 
305
300
  // Check if an address exists.
@@ -308,7 +303,7 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
308
303
  // whether the element/property is actually there or not (it returns
309
304
  // undefined whether the property exists or not). This function checks for
310
305
  // existance and returns true or false dependent.
311
- _createClass(ManyfestObjectAddressResolverCheckAddressExists, [{
306
+ return _createClass(ManyfestObjectAddressResolverCheckAddressExists, [{
312
307
  key: "checkAddressExists",
313
308
  value: function checkAddressExists(pObject, pAddress) {
314
309
  // TODO: Should these throw an error?
@@ -459,7 +454,6 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
459
454
  }
460
455
  }
461
456
  }]);
462
- return ManyfestObjectAddressResolverCheckAddressExists;
463
457
  }();
464
458
  ;
465
459
  module.exports = ManyfestObjectAddressResolverCheckAddressExists;
@@ -504,9 +498,9 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
504
498
  }
505
499
 
506
500
  // TODO: Dry me
507
- _createClass(ManyfestObjectAddressResolverDeleteValue, [{
508
- key: "checkFilters",
509
- value: function checkFilters(pAddress, pRecord) {
501
+ return _createClass(ManyfestObjectAddressResolverDeleteValue, [{
502
+ key: "checkRecordFilters",
503
+ value: function checkRecordFilters(pAddress, pRecord) {
510
504
  return fParseConditionals(this, pAddress, pRecord);
511
505
  }
512
506
 
@@ -607,7 +601,7 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
607
601
  // Count from the end to the beginning so splice doesn't %&%#$ up the array
608
602
  for (var i = tmpInputArray.length - 1; i >= 0; i--) {
609
603
  // The filtering is complex but allows config-based metaprogramming directly from schema
610
- var tmpKeepRecord = this.checkFilters(pAddress, tmpInputArray[i]);
604
+ var tmpKeepRecord = this.checkRecordFilters(pAddress, tmpInputArray[i]);
611
605
  if (tmpKeepRecord) {
612
606
  // Delete elements end to beginning
613
607
  tmpInputArray.splice(i, 1);
@@ -747,7 +741,7 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
747
741
  var _tmpValue = this.deleteValueAtAddress(pObject[_tmpObjectPropertyName][tmpObjectPropertyKeys[_i2]], tmpNewAddress, _tmpPropertyParentAddress);
748
742
 
749
743
  // The filtering is complex but allows config-based metaprogramming directly from schema
750
- var _tmpKeepRecord = this.checkFilters(pAddress, _tmpValue);
744
+ var _tmpKeepRecord = this.checkRecordFilters(pAddress, _tmpValue);
751
745
  if (_tmpKeepRecord) {
752
746
  _tmpContainerObject["".concat(_tmpPropertyParentAddress, ".").concat(tmpNewAddress)] = _tmpValue;
753
747
  }
@@ -774,7 +768,6 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
774
768
  }
775
769
  }
776
770
  }]);
777
- return ManyfestObjectAddressResolverDeleteValue;
778
771
  }();
779
772
  ;
780
773
  module.exports = ManyfestObjectAddressResolverDeleteValue;
@@ -819,9 +812,9 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
819
812
  this.logError = typeof pErrorLog == 'function' ? pErrorLog : libSimpleLog;
820
813
  this.cleanWrapCharacters = fCleanWrapCharacters;
821
814
  }
822
- _createClass(ManyfestObjectAddressResolverGetValue, [{
823
- key: "checkFilters",
824
- value: function checkFilters(pAddress, pRecord) {
815
+ return _createClass(ManyfestObjectAddressResolverGetValue, [{
816
+ key: "checkRecordFilters",
817
+ value: function checkRecordFilters(pAddress, pRecord) {
825
818
  return fParseConditionals(this, pAddress, pRecord);
826
819
  }
827
820
 
@@ -955,7 +948,7 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
955
948
  var tmpOutputArray = [];
956
949
  for (var _i3 = 0; _i3 < tmpInputArray.length; _i3++) {
957
950
  // The filtering is complex but allows config-based metaprogramming directly from schema
958
- var tmpKeepRecord = this.checkFilters(pAddress, tmpInputArray[_i3]);
951
+ var tmpKeepRecord = this.checkRecordFilters(pAddress, tmpInputArray[_i3]);
959
952
  if (tmpKeepRecord) {
960
953
  tmpOutputArray.push(tmpInputArray[_i3]);
961
954
  }
@@ -1096,7 +1089,7 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
1096
1089
  var _tmpValue2 = this.getValueAtAddress(pObject[_tmpObjectPropertyName2][tmpObjectPropertyKeys[_i5]], tmpNewAddress, _tmpPropertyParentAddress2, tmpRootObject);
1097
1090
 
1098
1091
  // The filtering is complex but allows config-based metaprogramming directly from schema
1099
- var _tmpKeepRecord2 = this.checkFilters(pAddress, _tmpValue2);
1092
+ var _tmpKeepRecord2 = this.checkRecordFilters(pAddress, _tmpValue2);
1100
1093
  if (_tmpKeepRecord2) {
1101
1094
  _tmpContainerObject2["".concat(_tmpPropertyParentAddress2, ".").concat(tmpNewAddress)] = _tmpValue2;
1102
1095
  }
@@ -1123,7 +1116,6 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
1123
1116
  }
1124
1117
  }
1125
1118
  }]);
1126
- return ManyfestObjectAddressResolverGetValue;
1127
1119
  }();
1128
1120
  ;
1129
1121
  module.exports = ManyfestObjectAddressResolverGetValue;
@@ -1167,7 +1159,7 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
1167
1159
  }
1168
1160
 
1169
1161
  // Set the value of an element at an address
1170
- _createClass(ManyfestObjectAddressSetValue, [{
1162
+ return _createClass(ManyfestObjectAddressSetValue, [{
1171
1163
  key: "setValueAtAddress",
1172
1164
  value: function setValueAtAddress(pObject, pAddress, pValue) {
1173
1165
  // Make sure pObject is an object
@@ -1316,7 +1308,6 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
1316
1308
  }
1317
1309
  }
1318
1310
  }]);
1319
- return ManyfestObjectAddressSetValue;
1320
1311
  }();
1321
1312
  ;
1322
1313
  module.exports = ManyfestObjectAddressSetValue;
@@ -1369,7 +1360,7 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
1369
1360
  //
1370
1361
  // This will return a mega set of key:value pairs with all possible schema
1371
1362
  // permutations and default values (when not an object) and everything else.
1372
- _createClass(ManyfestObjectAddressGeneration, [{
1363
+ return _createClass(ManyfestObjectAddressGeneration, [{
1373
1364
  key: "generateAddressses",
1374
1365
  value: function generateAddressses(pObject, pBaseAddress, pSchema) {
1375
1366
  var tmpBaseAddress = typeof pBaseAddress == 'string' ? pBaseAddress : '';
@@ -1432,7 +1423,6 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
1432
1423
  return tmpSchema;
1433
1424
  }
1434
1425
  }]);
1435
- return ManyfestObjectAddressGeneration;
1436
1426
  }();
1437
1427
  ;
1438
1428
  module.exports = ManyfestObjectAddressGeneration;
@@ -1459,9 +1449,57 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
1459
1449
  var _ConditionalStanzaEnd = '?~>>';
1460
1450
  var _ConditionalStanzaEndLength = _ConditionalStanzaEnd.length;
1461
1451
 
1452
+ // Ugh dependency injection. Can't wait to make these all fable services.
1453
+ var libObjectAddressCheckAddressExists = new (require('./Manyfest-ObjectAddress-CheckAddressExists.js'))();
1454
+
1462
1455
  // Test the condition of a value in a record
1463
1456
  var testCondition = function testCondition(pManyfest, pRecord, pSearchAddress, pSearchComparator, pValue) {
1464
1457
  switch (pSearchComparator) {
1458
+ case 'TRUE':
1459
+ return pManyfest.getValueAtAddress(pRecord, pSearchAddress) === true;
1460
+ break;
1461
+ case 'FALSE':
1462
+ return pManyfest.getValueAtAddress(pRecord, pSearchAddress) === false;
1463
+ break;
1464
+ case 'LNGT':
1465
+ case 'LENGTH_GREATER_THAN':
1466
+ switch (_typeof(_typeof(pManyfest.getValueAtAddress(pRecord, pSearchAddress)))) {
1467
+ case 'string':
1468
+ return pManyfest.getValueAtAddress(pRecord, pSearchAddress).length > pValue;
1469
+ break;
1470
+ case 'object':
1471
+ return pManyfest.getValueAtAddress(pRecord, pSearchAddress).length > pValue;
1472
+ break;
1473
+ default:
1474
+ return false;
1475
+ break;
1476
+ }
1477
+ break;
1478
+ case 'LNLT':
1479
+ case 'LENGTH_LESS_THAN':
1480
+ switch (_typeof(_typeof(pManyfest.getValueAtAddress(pRecord, pSearchAddress)))) {
1481
+ case 'string':
1482
+ return pManyfest.getValueAtAddress(pRecord, pSearchAddress).length < pValue;
1483
+ break;
1484
+ case 'object':
1485
+ return pManyfest.getValueAtAddress(pRecord, pSearchAddress).length < pValue;
1486
+ break;
1487
+ default:
1488
+ return false;
1489
+ break;
1490
+ }
1491
+ break;
1492
+ case 'FALSE':
1493
+ return pManyfest.getValueAtAddress(pRecord, pSearchAddress) === false;
1494
+ break;
1495
+ case 'EX':
1496
+ case 'EXISTS':
1497
+ return libObjectAddressCheckAddressExists.checkAddressExists(pRecord, pSearchAddress);
1498
+ break;
1499
+ case 'DNEX':
1500
+ case 'DOES_NOT_EXIST':
1501
+ return !libObjectAddressCheckAddressExists.checkAddressExists(pRecord, pSearchAddress);
1502
+ break;
1465
1503
  case '!=':
1466
1504
  return pManyfest.getValueAtAddress(pRecord, pSearchAddress) != pValue;
1467
1505
  break;
@@ -1492,7 +1530,7 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
1492
1530
  /*
1493
1531
  Algorithm is simple:
1494
1532
  1. Enuerate start points
1495
- 2. Find stop points within each start point
1533
+ 2. Find stop points within each start point
1496
1534
  3. Check the conditional
1497
1535
  */
1498
1536
 
@@ -1501,9 +1539,21 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
1501
1539
  var tmpStopIndex = pAddress.indexOf(_ConditionalStanzaEnd, tmpStartIndex + _ConditionalStanzaStartLength);
1502
1540
  if (tmpStopIndex != -1) {
1503
1541
  var tmpMagicComparisonPatternSet = pAddress.substring(tmpStartIndex + _ConditionalStanzaStartLength, tmpStopIndex).split(',');
1542
+
1543
+ // The address to search for
1504
1544
  var tmpSearchAddress = tmpMagicComparisonPatternSet[0];
1505
- var tmpSearchComparator = tmpMagicComparisonPatternSet[1];
1506
- var tmpSearchValue = tmpMagicComparisonPatternSet[2];
1545
+
1546
+ // The copmparison expression (EXISTS as default)
1547
+ var tmpSearchComparator = 'EXISTS';
1548
+ if (tmpMagicComparisonPatternSet.length > 1) {
1549
+ tmpSearchComparator = tmpMagicComparisonPatternSet[1];
1550
+ }
1551
+
1552
+ // The value to search for
1553
+ var tmpSearchValue = false;
1554
+ if (tmpMagicComparisonPatternSet.length > 2) {
1555
+ tmpSearchValue = tmpMagicComparisonPatternSet[2];
1556
+ }
1507
1557
 
1508
1558
  // Process the piece
1509
1559
  tmpKeepRecord = tmpKeepRecord && testCondition(pManyfest, pRecord, tmpSearchAddress, tmpSearchComparator, tmpSearchValue);
@@ -1515,7 +1565,9 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
1515
1565
  return tmpKeepRecord;
1516
1566
  };
1517
1567
  module.exports = parseConditionals;
1518
- }, {}],
1568
+ }, {
1569
+ "./Manyfest-ObjectAddress-CheckAddressExists.js": 5
1570
+ }],
1519
1571
  11: [function (require, module, exports) {
1520
1572
  /**
1521
1573
  * @author <steven@velozo.com>
@@ -1553,7 +1605,7 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
1553
1605
  // NOTE: This mutates the schema object permanently, altering the base hash.
1554
1606
  // If there is a collision with an existing address, it can lead to overwrites.
1555
1607
  // TODO: Discuss what should happen on collisions.
1556
- _createClass(ManyfestSchemaManipulation, [{
1608
+ return _createClass(ManyfestSchemaManipulation, [{
1557
1609
  key: "resolveAddressMappings",
1558
1610
  value: function resolveAddressMappings(pManyfestSchemaDescriptors, pAddressMapping) {
1559
1611
  if (_typeof(pManyfestSchemaDescriptors) != 'object') {
@@ -1630,7 +1682,6 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
1630
1682
  return tmpNewManyfestSchemaDescriptors;
1631
1683
  }
1632
1684
  }]);
1633
- return ManyfestSchemaManipulation;
1634
1685
  }();
1635
1686
  module.exports = ManyfestSchemaManipulation;
1636
1687
  }, {
@@ -1660,15 +1711,13 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
1660
1711
  * @class Manyfest
1661
1712
  */
1662
1713
  var Manyfest = /*#__PURE__*/function (_libFableServiceProvi) {
1663
- _inherits(Manyfest, _libFableServiceProvi);
1664
- var _super = _createSuper(Manyfest);
1665
1714
  function Manyfest(pFable, pManifest, pServiceHash) {
1666
1715
  var _this3;
1667
1716
  _classCallCheck(this, Manyfest);
1668
1717
  if (pFable === undefined) {
1669
- _this3 = _super.call(this, {});
1718
+ _this3 = _callSuper(this, Manyfest, [{}]);
1670
1719
  } else {
1671
- _this3 = _super.call(this, pFable, pManifest, pServiceHash);
1720
+ _this3 = _callSuper(this, Manyfest, [pFable, pManifest, pServiceHash]);
1672
1721
  }
1673
1722
  _this3.serviceType = 'Manifest';
1674
1723
 
@@ -1709,7 +1758,7 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
1709
1758
  _this3.schemaManipulations = new libSchemaManipulation(_this3.logInfo, _this3.logError);
1710
1759
  _this3.objectAddressGeneration = new libObjectAddressGeneration(_this3.logInfo, _this3.logError);
1711
1760
  _this3.hashTranslations = new libHashTranslation(_this3.logInfo, _this3.logError);
1712
- return _possibleConstructorReturn(_this3);
1761
+ return _assertThisInitialized(_this3);
1713
1762
  }
1714
1763
 
1715
1764
  /*************************************************************************
@@ -1717,7 +1766,8 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
1717
1766
  */
1718
1767
 
1719
1768
  // Reset critical manifest properties
1720
- _createClass(Manyfest, [{
1769
+ _inherits(Manyfest, _libFableServiceProvi);
1770
+ return _createClass(Manyfest, [{
1721
1771
  key: "reset",
1722
1772
  value: function reset() {
1723
1773
  this.scope = 'DEFAULT';
@@ -2095,7 +2145,6 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
2095
2145
  return tmpObject;
2096
2146
  }
2097
2147
  }]);
2098
- return Manyfest;
2099
2148
  }(libFableServiceProviderBase);
2100
2149
  ;
2101
2150
  module.exports = Manyfest;
@@ -1,2 +1,2 @@
1
- "use strict";function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&_setPrototypeOf(e,t)}function _setPrototypeOf(e,t){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},_setPrototypeOf(e,t)}function _createSuper(e){var t=_isNativeReflectConstruct();return function(){var r,s=_getPrototypeOf(e);if(t){var n=_getPrototypeOf(this).constructor;r=Reflect.construct(s,arguments,n)}else r=s.apply(this,arguments);return _possibleConstructorReturn(this,r)}}function _possibleConstructorReturn(e,t){if(t&&("object"===_typeof(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(e)}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function _getPrototypeOf(e){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},_getPrototypeOf(e)}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,t){for(var r=0;r<t.length;r++){var s=t[r];s.enumerable=s.enumerable||!1,s.configurable=!0,"value"in s&&(s.writable=!0),Object.defineProperty(e,_toPropertyKey(s.key),s)}}function _createClass(e,t,r){return t&&_defineProperties(e.prototype,t),r&&_defineProperties(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function _defineProperty(e,t,r){return(t=_toPropertyKey(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function _toPropertyKey(e){var t=_toPrimitive(e,"string");return"symbol"===_typeof(t)?t:String(t)}function _toPrimitive(e,t){if("object"!==_typeof(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var s=r.call(e,t||"default");if("object"!==_typeof(s))return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function _typeof(e){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_typeof(e)}!function(e){if("object"===("undefined"==typeof exports?"undefined":_typeof(exports))&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).Manyfest=e()}}((function(){return function e(t,r,s){function n(o,i){if(!r[o]){if(!t[o]){var c="function"==typeof require&&require;if(!i&&c)return c(o,!0);if(a)return a(o,!0);var l=new Error("Cannot find module '"+o+"'");throw l.code="MODULE_NOT_FOUND",l}var f=r[o]={exports:{}};t[o][0].call(f.exports,(function(e){return n(t[o][1][e]||e)}),f,f.exports,e,t,r,s)}return r[o].exports}for(var a="function"==typeof require&&require,o=0;o<s.length;o++)n(s[o]);return n}({1:[function(e,t,r){var s=function(){function e(t,r,s){_classCallCheck(this,e),"object"===_typeof(t)&&t.isFable?this.connectFable(t):this.fable=!1,this.fable?(this.UUID=t.getUUID(),this.options="object"===_typeof(r)?r:{}):(this.options="object"!==_typeof(t)||t.isFable?"object"===_typeof(r)?r:{}:t,this.UUID="CORE-SVC-".concat(Math.floor(89999*Math.random()+1e4))),this.serviceType="Unknown-".concat(this.UUID),this.Hash="string"==typeof s?s:this.fable||"string"!=typeof r?"".concat(this.UUID):r}return _createClass(e,[{key:"connectFable",value:function(e){if("object"!==_typeof(e)||!e.isFable){var t="Fable Service Provider Base: Cannot connect to Fable, invalid Fable object passed in. The pFable parameter was a [".concat(_typeof(e),"].}");return console.log(t),new Error(t)}return this.fable||(this.fable=e),this.log||(this.log=this.fable.Logging),this.services||(this.services=this.fable.services),this.servicesMap||(this.servicesMap=this.fable.servicesMap),!0}}]),e}();_defineProperty(s,"isFableService",!0),t.exports=s,t.exports.CoreServiceProviderBase=s},{}],2:[function(e,t,r){t.exports=function(e,t){return t.startsWith(e)&&t.endsWith(e)?t.substring(1,t.length-1):t}},{}],3:[function(e,t,r){var s=e("./Manyfest-LogToConsole.js"),n=function(){function e(t,r){_classCallCheck(this,e),this.logInfo="function"==typeof t?t:s,this.logError="function"==typeof r?r:s,this.translationTable={}}return _createClass(e,[{key:"translationCount",value:function(){return Object.keys(this.translationTable).length}},{key:"addTranslation",value:function(e){var t=this;if("object"!=_typeof(e))return this.logError("Hash translation addTranslation expected a translation be type object but was passed in ".concat(_typeof(e))),!1;Object.keys(e).forEach((function(r){"string"!=typeof e[r]?t.logError("Hash translation addTranslation expected a translation destination hash for [".concat(r,"] to be a string but the referrant was a ").concat(_typeof(e[r]))):t.translationTable[r]=e[r]}))}},{key:"removeTranslationHash",value:function(e){this.translationTable.hasOwnProperty(e)&&delete this.translationTable[e]}},{key:"removeTranslation",value:function(e){var t=this;return"string"==typeof e?(this.removeTranslationHash(e),!0):"object"==_typeof(e)?(Object.keys(e).forEach((function(e){t.removeTranslation(e)})),!0):(this.logError("Hash translation removeTranslation expected either a string or an object but the passed-in translation was type ".concat(_typeof(e))),!1)}},{key:"clearTranslations",value:function(){this.translationTable={}}},{key:"translate",value:function(e){return this.translationTable.hasOwnProperty(e)?this.translationTable[e]:e}}]),e}();t.exports=n},{"./Manyfest-LogToConsole.js":4}],4:[function(e,t,r){t.exports=function(e,t){var r="string"==typeof e?e:"";console.log("[Manyfest] ".concat(r)),t&&console.log(JSON.stringify(t))}},{}],5:[function(e,t,r){var s=e("./Manyfest-LogToConsole.js"),n=function(){function e(t,r){_classCallCheck(this,e),this.logInfo="function"==typeof t?t:s,this.logError="function"==typeof r?r:s}return _createClass(e,[{key:"checkAddressExists",value:function(e,t){if("object"!=_typeof(e))return!1;if("string"!=typeof t)return!1;var r=t.indexOf(".");if(-1==r){var s=t.indexOf("["),n=t.indexOf("]");if(s>0&&n>s&&n-s>1){var a=t.substring(0,s).trim();if("object"!==_typeof(e[a]))return!1;var o=t.substring(s+1,n).trim(),i=parseInt(o,10);return Array.isArray(e[a])!=isNaN(i)&&(isNaN(i)?(o=this.cleanWrapCharacters('"',o),o=this.cleanWrapCharacters("`",o),o=this.cleanWrapCharacters("'",o),e[a].hasOwnProperty(o)):i in e[a])}return e.hasOwnProperty(t)}var c=t.substring(0,r),l=t.substring(r+1),f=c.indexOf("["),u=c.indexOf("]");if(f>0&&u>f&&u-f>1){var h=c.substring(0,f).trim(),p=c.substring(f+1,u).trim(),d=parseInt(p,10);return Array.isArray(e[h])!=isNaN(d)&&(isNaN(d)?(p=this.cleanWrapCharacters('"',p),p=this.cleanWrapCharacters("`",p),p=this.cleanWrapCharacters("'",p),this.checkAddressExists(e[h][p],l)):this.checkAddressExists(e[h][d],l))}return(!e.hasOwnProperty(c)||"object"===_typeof(e[c]))&&(e.hasOwnProperty(c)||(e[c]={}),this.checkAddressExists(e[c],l))}}]),e}();t.exports=n},{"./Manyfest-LogToConsole.js":4}],6:[function(e,t,r){var s=e("./Manyfest-LogToConsole.js"),n=e("./Manyfest-CleanWrapCharacters.js"),a=e("../source/Manyfest-ParseConditionals.js"),o=function(){function e(t,r){_classCallCheck(this,e),this.logInfo="function"==typeof t?t:s,this.logError="function"==typeof r?r:s,this.cleanWrapCharacters=n}return _createClass(e,[{key:"checkFilters",value:function(e,t){return a(this,e,t)}},{key:"deleteValueAtAddress",value:function(e,t,r){if("object"==_typeof(e)&&"string"==typeof t){var s="";"string"==typeof r&&(s=r);var n=t.indexOf(".");if(-1==n){var a=t.indexOf("["),o=t.indexOf("]"),i=t.indexOf("{}");if(a>0&&o>a&&o-a>1){var c=t.substring(0,a).trim();if("object"!==_typeof(e[c]))return!1;var l=t.substring(a+1,o).trim(),f=parseInt(l,10);return Array.isArray(e[c])!=isNaN(f)&&(isNaN(f)?(l=this.cleanWrapCharacters('"',l),l=this.cleanWrapCharacters("`",l),l=this.cleanWrapCharacters("'",l),delete e[c][l],!0):(delete e[c][f],!0))}if(a>0&&o>a&&o-a==1){var u=t.substring(0,a).trim();if(!Array.isArray(e[u]))return!1;for(var h=e[u],p=h.length-1;p>=0;p--){this.checkFilters(t,h[p])&&h.splice(p,1)}return!0}if(i>0){var d=t.substring(0,i).trim();return"object"==_typeof(e[d])&&(delete e[d],!0)}return delete e[t],!0}var y=t.substring(0,n),b=t.substring(n+1),g=y.indexOf("["),v=y.indexOf("]");if(g>0&&v>g&&v-g>1){var A=y.substring(0,g).trim(),j=y.substring(g+1,v).trim(),O=parseInt(j,10);return Array.isArray(e[A])!=isNaN(O)&&("object"==_typeof(e[A])&&(isNaN(O)?(j=this.cleanWrapCharacters('"',j),j=this.cleanWrapCharacters("`",j),j=this.cleanWrapCharacters("'",j),s="".concat(s).concat(s.length>0?".":"").concat(y),this.deleteValueAtAddress(e[A][j],b,s)):(s="".concat(s).concat(s.length>0?".":"").concat(y),this.deleteValueAtAddress(e[A][O],b,s))))}if(g>0&&v>g&&v-g==1){var _=t.substring(0,g).trim();if(!Array.isArray(e[_]))return!1;var m=e[_];s="".concat(s).concat(s.length>0?".":"").concat(_);for(var C={},k=0;k<m.length;k++){var T="".concat(s,"[").concat(k,"]"),w=this.deleteValueAtAddress(e[_][k],b,T);C["".concat(T,".").concat(b)]=w}return C}var D=t.indexOf("{}");if(D>0){var E=t.substring(0,D).trim();if("object"!=_typeof(e[E]))return!1;var x=e[E],P=Object.keys(x);s="".concat(s).concat(s.length>0?".":"").concat(E);for(var M={},V=0;V<P.length;V++){var N="".concat(s,".").concat(P[V]),S=this.deleteValueAtAddress(e[E][P[V]],b,N);this.checkFilters(t,S)&&(M["".concat(N,".").concat(b)]=S)}return M}return e.hasOwnProperty(y)&&"object"!==_typeof(e[y])?void 0:e.hasOwnProperty(y)?(s="".concat(s).concat(s.length>0?".":"").concat(y),this.deleteValueAtAddress(e[y],b,s)):(s="".concat(s).concat(s.length>0?".":"").concat(y),e[y]={},this.deleteValueAtAddress(e[y],b,s))}}}]),e}();t.exports=o},{"../source/Manyfest-ParseConditionals.js":10,"./Manyfest-CleanWrapCharacters.js":2,"./Manyfest-LogToConsole.js":4}],7:[function(e,t,r){var s=e("./Manyfest-LogToConsole.js"),n=e("./Manyfest-CleanWrapCharacters.js"),a=e("../source/Manyfest-ParseConditionals.js"),o=function(){function e(t,r){_classCallCheck(this,e),this.logInfo="function"==typeof t?t:s,this.logError="function"==typeof r?r:s,this.cleanWrapCharacters=n}return _createClass(e,[{key:"checkFilters",value:function(e,t){return a(this,e,t)}},{key:"getValueAtAddress",value:function(e,t,r,s){if("object"==_typeof(e)&&"string"==typeof t){var n="";"string"==typeof r&&(n=r);var a=void 0===s?e:s,o=t.indexOf(".");if(0==o){for(var i=n.split("."),c=0,l=0;l<t.length&&"."==t.charAt(l);l++)c++;var f=i.length-c;if(f<0)return;var u=t.slice(c);return f>0&&(u="".concat(i.slice(0,f).join("."),".").concat(u)),this.logInfo("Back-navigation detected. Recursing back to address [".concat(u,"]")),this.getValueAtAddress(a,u)}if(-1==o){var h=t.indexOf("["),p=t.indexOf("]"),d=t.indexOf("{}");if(h>0&&p>h&&p-h>1){var y=t.substring(0,h).trim();if("object"!==_typeof(e[y]))return;var b=t.substring(h+1,p).trim(),g=parseInt(b,10);if(Array.isArray(e[y])==isNaN(g))return;return isNaN(g)?(b=this.cleanWrapCharacters('"',b),b=this.cleanWrapCharacters("`",b),b=this.cleanWrapCharacters("'",b),e[y][b]):e[y][g]}if(h>0&&p>h&&p-h==1){var v=t.substring(0,h).trim();if(!Array.isArray(e[v]))return!1;for(var A=e[v],j=[],O=0;O<A.length;O++){this.checkFilters(t,A[O])&&j.push(A[O])}return j}if(d>0){var _=t.substring(0,d).trim();return"object"==_typeof(e[_])&&e[_]}return null!=_typeof(e[t])?e[t]:void 0}var m=t.substring(0,o),C=t.substring(o+1),k=m.indexOf("["),T=m.indexOf("]");if(k>0&&T>k&&T-k>1){var w=m.substring(0,k).trim(),D=m.substring(k+1,T).trim(),E=parseInt(D,10);if(Array.isArray(e[w])==isNaN(E))return;if("object"!=_typeof(e[w]))return;return isNaN(E)?(D=this.cleanWrapCharacters('"',D),D=this.cleanWrapCharacters("`",D),D=this.cleanWrapCharacters("'",D),n="".concat(n).concat(n.length>0?".":"").concat(m),this.getValueAtAddress(e[w][D],C,n,a)):(n="".concat(n).concat(n.length>0?".":"").concat(m),this.getValueAtAddress(e[w][E],C,n,a))}if(k>0&&T>k&&T-k==1){var x=t.substring(0,k).trim();if(!Array.isArray(e[x]))return!1;var P=e[x];n="".concat(n).concat(n.length>0?".":"").concat(x);for(var M={},V=0;V<P.length;V++){var N="".concat(n,"[").concat(V,"]"),S=this.getValueAtAddress(e[x][V],C,N,a);M["".concat(N,".").concat(C)]=S}return M}var H=t.indexOf("{}");if(H>0){var I=t.substring(0,H).trim();if("object"!=_typeof(e[I]))return!1;var W=e[I],R=Object.keys(W);n="".concat(n).concat(n.length>0?".":"").concat(I);for(var L={},F=0;F<R.length;F++){var J="".concat(n,".").concat(R[F]),U=this.getValueAtAddress(e[I][R[F]],C,J,a);this.checkFilters(t,U)&&(L["".concat(J,".").concat(C)]=U)}return L}return e.hasOwnProperty(m)&&"object"!==_typeof(e[m])?void 0:e.hasOwnProperty(m)?(n="".concat(n).concat(n.length>0?".":"").concat(m),this.getValueAtAddress(e[m],C,n,a)):(n="".concat(n).concat(n.length>0?".":"").concat(m),e[m]={},this.getValueAtAddress(e[m],C,n,a))}}}]),e}();t.exports=o},{"../source/Manyfest-ParseConditionals.js":10,"./Manyfest-CleanWrapCharacters.js":2,"./Manyfest-LogToConsole.js":4}],8:[function(e,t,r){var s=e("./Manyfest-LogToConsole.js"),n=e("./Manyfest-CleanWrapCharacters.js"),a=function(){function e(t,r){_classCallCheck(this,e),this.logInfo="function"==typeof t?t:s,this.logError="function"==typeof r?r:s,this.cleanWrapCharacters=n}return _createClass(e,[{key:"setValueAtAddress",value:function(e,t,r){if("object"!=_typeof(e))return!1;if("string"!=typeof t)return!1;var s=t.indexOf(".");if(-1==s){var n=t.indexOf("["),a=t.indexOf("]");if(n>0&&a>n&&a-n>1){var o=t.substring(0,n).trim();if("object"!==_typeof(e[o]))return!1;var i=t.substring(n+1,a).trim(),c=parseInt(i,10);return Array.isArray(e[o])!=isNaN(c)&&(isNaN(c)?(i=this.cleanWrapCharacters('"',i),i=this.cleanWrapCharacters("`",i),i=this.cleanWrapCharacters("'",i),e[o][i]=r,!0):(e[o][c]=r,!0))}return e[t]=r,!0}var l=t.substring(0,s),f=t.substring(s+1),u=l.indexOf("["),h=l.indexOf("]");if(u>0&&h>u&&h-u>1){var p=l.substring(0,u).trim(),d=l.substring(u+1,h).trim(),y=parseInt(d,10);return Array.isArray(e[p])!=isNaN(y)&&(isNaN(y)?(d=this.cleanWrapCharacters('"',d),d=this.cleanWrapCharacters("`",d),d=this.cleanWrapCharacters("'",d),this.setValueAtAddress(e[p][d],f,r)):this.setValueAtAddress(e[p][y],f,r))}return e.hasOwnProperty(l)&&"object"!==_typeof(e[l])?(e.hasOwnProperty("__ERROR")||(e.__ERROR={}),e.__ERROR[t]=r,!1):(e.hasOwnProperty(l)||(e[l]={}),this.setValueAtAddress(e[l],f,r))}}]),e}();t.exports=a},{"./Manyfest-CleanWrapCharacters.js":2,"./Manyfest-LogToConsole.js":4}],9:[function(e,t,r){var s=e("./Manyfest-LogToConsole.js"),n=function(){function e(t,r){_classCallCheck(this,e),this.logInfo="function"==typeof t?t:s,this.logError="function"==typeof r?r:s}return _createClass(e,[{key:"generateAddressses",value:function(e,t,r){var s="string"==typeof t?t:"",n="object"==_typeof(r)?r:{},a=_typeof(e),o={Address:s,Hash:s,Name:s,InSchema:!1};switch("object"==a&&null==e&&(a="null"),a){case"string":o.DataType="String",o.Default=e,n[s]=o;break;case"number":case"bigint":o.DataType="Number",o.Default=e,n[s]=o;break;case"undefined":case"null":o.DataType="Any",o.Default=e,n[s]=o;break;case"object":if(Array.isArray(e)){o.DataType="Array",""!=s&&(n[s]=o);for(var i=0;i<e.length;i++)this.generateAddressses(e[i],"".concat(s,"[").concat(i,"]"),n)}else{o.DataType="Object",""!=s&&(n[s]=o,s+=".");for(var c=Object.keys(e),l=0;l<c.length;l++)this.generateAddressses(e[c[l]],"".concat(s).concat(c[l]),n)}}return n}}]),e}();t.exports=n},{"./Manyfest-LogToConsole.js":4}],10:[function(e,t,r){var s="<<~?",n="?~>>",a=function(e,t,r,s,n){switch(s){case"!=":return e.getValueAtAddress(t,r)!=n;case"<":return e.getValueAtAddress(t,r)<n;case">":return e.getValueAtAddress(t,r)>n;case"<=":return e.getValueAtAddress(t,r)<=n;case">=":return e.getValueAtAddress(t,r)>=n;case"===":return e.getValueAtAddress(t,r)===n;default:return e.getValueAtAddress(t,r)==n}};t.exports=function(e,t,r){for(var o=!0,i=t.indexOf(s);-1!=i;){var c=t.indexOf(n,i+4);if(-1!=c){var l=t.substring(i+4,c).split(","),f=l[0],u=l[1],h=l[2];o=o&&a(e,r,f,u,h),i=t.indexOf(s,c+4)}else i=-1}return o}},{}],11:[function(e,t,r){var s=e("./Manyfest-LogToConsole.js"),n=function(){function e(t,r){_classCallCheck(this,e),this.logInfo="function"==typeof t?t:s,this.logError="function"==typeof r?r:s}return _createClass(e,[{key:"resolveAddressMappings",value:function(e,t){if("object"!=_typeof(e))return this.logError("Attempted to resolve address mapping but the descriptor was not an object."),!1;if("object"!=_typeof(t))return!0;var r=Object.keys(e),s={};return r.forEach((function(t){e[t].hasOwnProperty("Hash")&&(s[e[t].Hash]=t)})),Object.keys(t).forEach((function(r){var n=t[r],a=!1,o=!1;e.hasOwnProperty(r)?a=r:s.hasOwnProperty(r)&&(a=s[r]),a?(o=e[a],delete e[a]):o={Hash:r},e[n]=o})),!0}},{key:"safeResolveAddressMappings",value:function(e,t){var r=JSON.parse(JSON.stringify(e));return this.resolveAddressMappings(r,t),r}},{key:"mergeAddressMappings",value:function(e,t){if("object"!=_typeof(t)||"object"!=_typeof(e))return this.logError("Attempted to merge two schema descriptors but both were not objects."),!1;var r=JSON.parse(JSON.stringify(t)),s=JSON.parse(JSON.stringify(e));return Object.keys(r).forEach((function(e){s.hasOwnProperty(e)||(s[e]=r[e])})),s}}]),e}();t.exports=n},{"./Manyfest-LogToConsole.js":4}],12:[function(e,t,r){var s=e("fable-serviceproviderbase"),n=e("./Manyfest-LogToConsole.js"),a=e("./Manyfest-HashTranslation.js"),o=e("./Manyfest-ObjectAddress-CheckAddressExists.js"),i=e("./Manyfest-ObjectAddress-GetValue.js"),c=e("./Manyfest-ObjectAddress-SetValue.js"),l=e("./Manyfest-ObjectAddress-DeleteValue.js"),f=e("./Manyfest-ObjectAddressGeneration.js"),u=e("./Manyfest-SchemaManipulation.js"),h={Scope:"DEFAULT",Descriptors:{}},p=function(e){_inherits(r,e);var t=_createSuper(r);function r(e,s,h){var p;return _classCallCheck(this,r),(p=void 0===e?t.call(this,{}):t.call(this,e,s,h)).serviceType="Manifest",p.logInfo=n,p.logError=n,p.objectAddressCheckAddressExists=new o(p.logInfo,p.logError),p.objectAddressGetValue=new i(p.logInfo,p.logError),p.objectAddressSetValue=new c(p.logInfo,p.logError),p.objectAddressDeleteValue=new l(p.logInfo,p.logError),p.options.hasOwnProperty("defaultValues")||(p.options.defaultValues={String:"",Number:0,Float:0,Integer:0,Boolean:!1,Binary:0,DateTime:0,Array:[],Object:{},Null:null}),p.options.hasOwnProperty("strict")||(p.options.strict=!1),p.scope=void 0,p.elementAddresses=void 0,p.elementHashes=void 0,p.elementDescriptors=void 0,p.reset(),"object"===_typeof(p.options)&&p.loadManifest(p.options),p.schemaManipulations=new u(p.logInfo,p.logError),p.objectAddressGeneration=new f(p.logInfo,p.logError),p.hashTranslations=new a(p.logInfo,p.logError),_possibleConstructorReturn(p)}return _createClass(r,[{key:"reset",value:function(){this.scope="DEFAULT",this.elementAddresses=[],this.elementHashes={},this.elementDescriptors={}}},{key:"clone",value:function(){var e=JSON.parse(JSON.stringify(this.options)),t=new r(this.getManifest(),this.logInfo,this.logError,e);return t.hashTranslations.addTranslation(this.hashTranslations.translationTable),t}},{key:"deserialize",value:function(e){return this.loadManifest(JSON.parse(e))}},{key:"loadManifest",value:function(e){"object"!==_typeof(e)&&this.logError("(".concat(this.scope,") Error loading manifest; expecting an object but parameter was type ").concat(_typeof(e),"."));for(var t="object"==_typeof(e)?e:{},r=Object.keys(h),s=0;s<r.length;s++)t.hasOwnProperty(r[s])||(t[r[s]]=JSON.parse(JSON.stringify(h[r[s]])));if(t.hasOwnProperty("Scope")?"string"==typeof t.Scope?this.scope=t.Scope:this.logError("(".concat(this.scope,") Error loading scope from manifest; expecting a string but property was type ").concat(_typeof(t.Scope),"."),t):this.logError("(".concat(this.scope,') Error loading scope from manifest object. Property "Scope" does not exist in the root of the object.'),t),t.hasOwnProperty("Descriptors"))if("object"===_typeof(t.Descriptors))for(var n=Object.keys(t.Descriptors),a=0;a<n.length;a++)this.addDescriptor(n[a],t.Descriptors[n[a]]);else this.logError("(".concat(this.scope,") Error loading description object from manifest object. Expecting an object in 'Manifest.Descriptors' but the property was type ").concat(_typeof(t.Descriptors),"."),t);else this.logError("(".concat(this.scope,') Error loading object description from manifest object. Property "Descriptors" does not exist in the root of the Manifest object.'),t);if(t.hasOwnProperty("HashTranslations")&&"object"===_typeof(t.HashTranslations))for(var o=0;o<t.HashTranslations.length;o++);}},{key:"serialize",value:function(){return JSON.stringify(this.getManifest())}},{key:"getManifest",value:function(){return{Scope:this.scope,Descriptors:JSON.parse(JSON.stringify(this.elementDescriptors)),HashTranslations:JSON.parse(JSON.stringify(this.hashTranslations.translationTable))}}},{key:"addDescriptor",value:function(e,t){return"object"===_typeof(t)?(t.hasOwnProperty("Address")||(t.Address=e),this.elementDescriptors.hasOwnProperty(e)||this.elementAddresses.push(e),this.elementDescriptors[e]=t,this.elementHashes[e]=e,t.hasOwnProperty("Hash")?this.elementHashes[t.Hash]=e:t.Hash=e,!0):(this.logError("(".concat(this.scope,") Error loading object descriptor for address '").concat(e,"' from manifest object. Expecting an object but property was type ").concat(_typeof(t),".")),!1)}},{key:"getDescriptorByHash",value:function(e){return this.getDescriptor(this.resolveHashAddress(e))}},{key:"getDescriptor",value:function(e){return this.elementDescriptors[e]}},{key:"eachDescriptor",value:function(e){for(var t=Object.keys(this.elementDescriptors),r=0;r<t.length;r++)e(this.elementDescriptors[t[r]])}},{key:"checkAddressExistsByHash",value:function(e,t){return this.checkAddressExists(e,this.resolveHashAddress(t))}},{key:"checkAddressExists",value:function(e,t){return this.objectAddressCheckAddressExists.checkAddressExists(e,t)}},{key:"resolveHashAddress",value:function(e){var t=this.elementHashes.hasOwnProperty(e),r=this.hashTranslations.translationTable.hasOwnProperty(e);return t&&!r?this.elementHashes[e]:r&&this.elementHashes.hasOwnProperty(this.hashTranslations.translate(e))?this.elementHashes[this.hashTranslations.translate(e)]:r?this.hashTranslations.translate(e):e}},{key:"getValueByHash",value:function(e,t){var r=this.getValueAtAddress(e,this.resolveHashAddress(t));return void 0===r&&(r=this.getDefaultValue(this.getDescriptorByHash(t))),r}},{key:"getValueAtAddress",value:function(e,t){var r=this.objectAddressGetValue.getValueAtAddress(e,t);return void 0===r&&(r=this.getDefaultValue(this.getDescriptor(t))),r}},{key:"setValueByHash",value:function(e,t,r){return this.setValueAtAddress(e,this.resolveHashAddress(t),r)}},{key:"setValueAtAddress",value:function(e,t,r){return this.objectAddressSetValue.setValueAtAddress(e,t,r)}},{key:"deleteValueByHash",value:function(e,t,r){return this.deleteValueAtAddress(e,this.resolveHashAddress(t),r)}},{key:"deleteValueAtAddress",value:function(e,t,r){return this.objectAddressDeleteValue.deleteValueAtAddress(e,t,r)}},{key:"validate",value:function(e){var t={Error:null,Errors:[],MissingElements:[]};"object"!==_typeof(e)&&(t.Error=!0,t.Errors.push("Expected passed in object to be type object but was passed in ".concat(_typeof(e))));for(var r=function(e,r){t.Error=!0,t.Errors.push('Element at address "'.concat(e,'" ').concat(r,"."))},s=0;s<this.elementAddresses.length;s++){var n=this.getDescriptor(this.elementAddresses[s]),a=this.checkAddressExists(e,n.Address),o=this.getValueAtAddress(e,n.Address);if(void 0!==o&&a||(t.MissingElements.push(n.Address),(n.Required||this.options.strict)&&r(n.Address,"is flagged REQUIRED but is not set in the object")),n.DataType){var i=_typeof(o);switch(n.DataType.toString().trim().toLowerCase()){case"string":"string"!=i&&r(n.Address,"has a DataType ".concat(n.DataType," but is of the type ").concat(i));break;case"number":"number"!=i&&r(n.Address,"has a DataType ".concat(n.DataType," but is of the type ").concat(i));break;case"integer":if("number"!=i)r(n.Address,"has a DataType ".concat(n.DataType," but is of the type ").concat(i));else o.toString().indexOf(".")>-1&&r(n.Address,"has a DataType ".concat(n.DataType," but has a decimal point in the number."));break;case"float":"number"!=i&&r(n.Address,"has a DataType ".concat(n.DataType," but is of the type ").concat(i));break;case"DateTime":"Invalid Date"==new Date(o).toString()&&r(n.Address,"has a DataType ".concat(n.DataType," but is not parsable as a Date by Javascript"));default:"string"!=i&&r(n.Address,"has a DataType ".concat(n.DataType," (which auto-converted to String because it was unrecognized) but is of the type ").concat(i))}}}return t}},{key:"getDefaultValue",value:function(e){if("object"==_typeof(e)){if(e.hasOwnProperty("Default"))return e.Default;var t=e.hasOwnProperty("DataType")?e.DataType:"String";return this.options.defaultValues.hasOwnProperty(t)?this.options.defaultValues[t]:null}}},{key:"populateDefaults",value:function(e,t){return this.populateObject(e,t,(function(e){return e.hasOwnProperty("Default")}))}},{key:"populateObject",value:function(e,t,r){var s=this,n="object"===_typeof(e)?e:{},a=void 0!==t&&t,o="function"==typeof r?r:function(e){return!0};return this.elementAddresses.forEach((function(e){var t=s.getDescriptor(e);o(t)&&(!a&&s.checkAddressExists(n,e)||s.setValueAtAddress(n,e,s.getDefaultValue(t)))})),n}}]),r}(s);t.exports=p},{"./Manyfest-HashTranslation.js":3,"./Manyfest-LogToConsole.js":4,"./Manyfest-ObjectAddress-CheckAddressExists.js":5,"./Manyfest-ObjectAddress-DeleteValue.js":6,"./Manyfest-ObjectAddress-GetValue.js":7,"./Manyfest-ObjectAddress-SetValue.js":8,"./Manyfest-ObjectAddressGeneration.js":9,"./Manyfest-SchemaManipulation.js":11,"fable-serviceproviderbase":1}]},{},[12])(12)}));
1
+ "use strict";function _callSuper(e,t,r){return t=_getPrototypeOf(t),_possibleConstructorReturn(e,_isNativeReflectConstruct()?Reflect.construct(t,r||[],_getPrototypeOf(e).constructor):t.apply(e,r))}function _possibleConstructorReturn(e,t){if(t&&("object"===_typeof(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(e)}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _isNativeReflectConstruct(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(_isNativeReflectConstruct=function(){return!!e})()}function _getPrototypeOf(e){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},_getPrototypeOf(e)}function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&_setPrototypeOf(e,t)}function _setPrototypeOf(e,t){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},_setPrototypeOf(e,t)}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,t){for(var r=0;r<t.length;r++){var s=t[r];s.enumerable=s.enumerable||!1,s.configurable=!0,"value"in s&&(s.writable=!0),Object.defineProperty(e,_toPropertyKey(s.key),s)}}function _createClass(e,t,r){return t&&_defineProperties(e.prototype,t),r&&_defineProperties(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function _defineProperty(e,t,r){return(t=_toPropertyKey(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function _toPropertyKey(e){var t=_toPrimitive(e,"string");return"symbol"==_typeof(t)?t:t+""}function _toPrimitive(e,t){if("object"!=_typeof(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var s=r.call(e,t||"default");if("object"!=_typeof(s))return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function _typeof(e){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_typeof(e)}!function(e){if("object"===("undefined"==typeof exports?"undefined":_typeof(exports))&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).Manyfest=e()}}((function(){return function e(t,r,s){function n(o,i){if(!r[o]){if(!t[o]){var c="function"==typeof require&&require;if(!i&&c)return c(o,!0);if(a)return a(o,!0);var l=new Error("Cannot find module '"+o+"'");throw l.code="MODULE_NOT_FOUND",l}var f=r[o]={exports:{}};t[o][0].call(f.exports,(function(e){return n(t[o][1][e]||e)}),f,f.exports,e,t,r,s)}return r[o].exports}for(var a="function"==typeof require&&require,o=0;o<s.length;o++)n(s[o]);return n}({1:[function(e,t,r){var s=function(){return _createClass((function e(t,r,s){_classCallCheck(this,e),"object"===_typeof(t)&&t.isFable?this.connectFable(t):this.fable=!1,this.fable?(this.UUID=t.getUUID(),this.options="object"===_typeof(r)?r:{}):(this.options="object"!==_typeof(t)||t.isFable?"object"===_typeof(r)?r:{}:t,this.UUID="CORE-SVC-".concat(Math.floor(89999*Math.random()+1e4))),this.serviceType="Unknown-".concat(this.UUID),this.Hash="string"==typeof s?s:this.fable||"string"!=typeof r?"".concat(this.UUID):r}),[{key:"connectFable",value:function(e){if("object"!==_typeof(e)||!e.isFable){var t="Fable Service Provider Base: Cannot connect to Fable, invalid Fable object passed in. The pFable parameter was a [".concat(_typeof(e),"].}");return console.log(t),new Error(t)}return this.fable||(this.fable=e),this.log||(this.log=this.fable.Logging),this.services||(this.services=this.fable.services),this.servicesMap||(this.servicesMap=this.fable.servicesMap),!0}}])}();_defineProperty(s,"isFableService",!0),t.exports=s,t.exports.CoreServiceProviderBase=s},{}],2:[function(e,t,r){t.exports=function(e,t){return t.startsWith(e)&&t.endsWith(e)?t.substring(1,t.length-1):t}},{}],3:[function(e,t,r){var s=e("./Manyfest-LogToConsole.js"),n=function(){return _createClass((function e(t,r){_classCallCheck(this,e),this.logInfo="function"==typeof t?t:s,this.logError="function"==typeof r?r:s,this.translationTable={}}),[{key:"translationCount",value:function(){return Object.keys(this.translationTable).length}},{key:"addTranslation",value:function(e){var t=this;if("object"!=_typeof(e))return this.logError("Hash translation addTranslation expected a translation be type object but was passed in ".concat(_typeof(e))),!1;Object.keys(e).forEach((function(r){"string"!=typeof e[r]?t.logError("Hash translation addTranslation expected a translation destination hash for [".concat(r,"] to be a string but the referrant was a ").concat(_typeof(e[r]))):t.translationTable[r]=e[r]}))}},{key:"removeTranslationHash",value:function(e){this.translationTable.hasOwnProperty(e)&&delete this.translationTable[e]}},{key:"removeTranslation",value:function(e){var t=this;return"string"==typeof e?(this.removeTranslationHash(e),!0):"object"==_typeof(e)?(Object.keys(e).forEach((function(e){t.removeTranslation(e)})),!0):(this.logError("Hash translation removeTranslation expected either a string or an object but the passed-in translation was type ".concat(_typeof(e))),!1)}},{key:"clearTranslations",value:function(){this.translationTable={}}},{key:"translate",value:function(e){return this.translationTable.hasOwnProperty(e)?this.translationTable[e]:e}}])}();t.exports=n},{"./Manyfest-LogToConsole.js":4}],4:[function(e,t,r){t.exports=function(e,t){var r="string"==typeof e?e:"";console.log("[Manyfest] ".concat(r)),t&&console.log(JSON.stringify(t))}},{}],5:[function(e,t,r){e("./Manyfest-LogToConsole.js");var s=function(){return _createClass((function e(){_classCallCheck(this,e)}),[{key:"checkAddressExists",value:function(e,t){if("object"!=_typeof(e))return!1;if("string"!=typeof t)return!1;var r=t.indexOf(".");if(-1==r){var s=t.indexOf("["),n=t.indexOf("]");if(s>0&&n>s&&n-s>1){var a=t.substring(0,s).trim();if("object"!==_typeof(e[a]))return!1;var o=t.substring(s+1,n).trim(),i=parseInt(o,10);return Array.isArray(e[a])!=isNaN(i)&&(isNaN(i)?(o=this.cleanWrapCharacters('"',o),o=this.cleanWrapCharacters("`",o),o=this.cleanWrapCharacters("'",o),e[a].hasOwnProperty(o)):i in e[a])}return e.hasOwnProperty(t)}var c=t.substring(0,r),l=t.substring(r+1),f=c.indexOf("["),u=c.indexOf("]");if(f>0&&u>f&&u-f>1){var h=c.substring(0,f).trim(),p=c.substring(f+1,u).trim(),d=parseInt(p,10);return Array.isArray(e[h])!=isNaN(d)&&(isNaN(d)?(p=this.cleanWrapCharacters('"',p),p=this.cleanWrapCharacters("`",p),p=this.cleanWrapCharacters("'",p),this.checkAddressExists(e[h][p],l)):this.checkAddressExists(e[h][d],l))}return(!e.hasOwnProperty(c)||"object"===_typeof(e[c]))&&(e.hasOwnProperty(c)||(e[c]={}),this.checkAddressExists(e[c],l))}}])}();t.exports=s},{"./Manyfest-LogToConsole.js":4}],6:[function(e,t,r){var s=e("./Manyfest-LogToConsole.js"),n=e("./Manyfest-CleanWrapCharacters.js"),a=e("../source/Manyfest-ParseConditionals.js"),o=function(){return _createClass((function e(t,r){_classCallCheck(this,e),this.logInfo="function"==typeof t?t:s,this.logError="function"==typeof r?r:s,this.cleanWrapCharacters=n}),[{key:"checkRecordFilters",value:function(e,t){return a(this,e,t)}},{key:"deleteValueAtAddress",value:function(e,t,r){if("object"==_typeof(e)&&"string"==typeof t){var s="";"string"==typeof r&&(s=r);var n=t.indexOf(".");if(-1==n){var a=t.indexOf("["),o=t.indexOf("]"),i=t.indexOf("{}");if(a>0&&o>a&&o-a>1){var c=t.substring(0,a).trim();if("object"!==_typeof(e[c]))return!1;var l=t.substring(a+1,o).trim(),f=parseInt(l,10);return Array.isArray(e[c])!=isNaN(f)&&(isNaN(f)?(l=this.cleanWrapCharacters('"',l),l=this.cleanWrapCharacters("`",l),l=this.cleanWrapCharacters("'",l),delete e[c][l],!0):(delete e[c][f],!0))}if(a>0&&o>a&&o-a==1){var u=t.substring(0,a).trim();if(!Array.isArray(e[u]))return!1;for(var h=e[u],p=h.length-1;p>=0;p--){this.checkRecordFilters(t,h[p])&&h.splice(p,1)}return!0}if(i>0){var d=t.substring(0,i).trim();return"object"==_typeof(e[d])&&(delete e[d],!0)}return delete e[t],!0}var y=t.substring(0,n),g=t.substring(n+1),b=y.indexOf("["),v=y.indexOf("]");if(b>0&&v>b&&v-b>1){var A=y.substring(0,b).trim(),j=y.substring(b+1,v).trim(),O=parseInt(j,10);return Array.isArray(e[A])!=isNaN(O)&&("object"==_typeof(e[A])&&(isNaN(O)?(j=this.cleanWrapCharacters('"',j),j=this.cleanWrapCharacters("`",j),j=this.cleanWrapCharacters("'",j),s="".concat(s).concat(s.length>0?".":"").concat(y),this.deleteValueAtAddress(e[A][j],g,s)):(s="".concat(s).concat(s.length>0?".":"").concat(y),this.deleteValueAtAddress(e[A][O],g,s))))}if(b>0&&v>b&&v-b==1){var _=t.substring(0,b).trim();if(!Array.isArray(e[_]))return!1;var m=e[_];s="".concat(s).concat(s.length>0?".":"").concat(_);for(var C={},T=0;T<m.length;T++){var k="".concat(s,"[").concat(T,"]"),E=this.deleteValueAtAddress(e[_][T],g,k);C["".concat(k,".").concat(g)]=E}return C}var w=t.indexOf("{}");if(w>0){var D=t.substring(0,w).trim();if("object"!=_typeof(e[D]))return!1;var x=e[D],P=Object.keys(x);s="".concat(s).concat(s.length>0?".":"").concat(D);for(var M={},N=0;N<P.length;N++){var V="".concat(s,".").concat(P[N]),S=this.deleteValueAtAddress(e[D][P[N]],g,V);this.checkRecordFilters(t,S)&&(M["".concat(V,".").concat(g)]=S)}return M}return e.hasOwnProperty(y)&&"object"!==_typeof(e[y])?void 0:e.hasOwnProperty(y)?(s="".concat(s).concat(s.length>0?".":"").concat(y),this.deleteValueAtAddress(e[y],g,s)):(s="".concat(s).concat(s.length>0?".":"").concat(y),e[y]={},this.deleteValueAtAddress(e[y],g,s))}}}])}();t.exports=o},{"../source/Manyfest-ParseConditionals.js":10,"./Manyfest-CleanWrapCharacters.js":2,"./Manyfest-LogToConsole.js":4}],7:[function(e,t,r){var s=e("./Manyfest-LogToConsole.js"),n=e("./Manyfest-CleanWrapCharacters.js"),a=e("../source/Manyfest-ParseConditionals.js"),o=function(){return _createClass((function e(t,r){_classCallCheck(this,e),this.logInfo="function"==typeof t?t:s,this.logError="function"==typeof r?r:s,this.cleanWrapCharacters=n}),[{key:"checkRecordFilters",value:function(e,t){return a(this,e,t)}},{key:"getValueAtAddress",value:function(e,t,r,s){if("object"==_typeof(e)&&"string"==typeof t){var n="";"string"==typeof r&&(n=r);var a=void 0===s?e:s,o=t.indexOf(".");if(0==o){for(var i=n.split("."),c=0,l=0;l<t.length&&"."==t.charAt(l);l++)c++;var f=i.length-c;if(f<0)return;var u=t.slice(c);return f>0&&(u="".concat(i.slice(0,f).join("."),".").concat(u)),this.logInfo("Back-navigation detected. Recursing back to address [".concat(u,"]")),this.getValueAtAddress(a,u)}if(-1==o){var h=t.indexOf("["),p=t.indexOf("]"),d=t.indexOf("{}");if(h>0&&p>h&&p-h>1){var y=t.substring(0,h).trim();if("object"!==_typeof(e[y]))return;var g=t.substring(h+1,p).trim(),b=parseInt(g,10);if(Array.isArray(e[y])==isNaN(b))return;return isNaN(b)?(g=this.cleanWrapCharacters('"',g),g=this.cleanWrapCharacters("`",g),g=this.cleanWrapCharacters("'",g),e[y][g]):e[y][b]}if(h>0&&p>h&&p-h==1){var v=t.substring(0,h).trim();if(!Array.isArray(e[v]))return!1;for(var A=e[v],j=[],O=0;O<A.length;O++){this.checkRecordFilters(t,A[O])&&j.push(A[O])}return j}if(d>0){var _=t.substring(0,d).trim();return"object"==_typeof(e[_])&&e[_]}return null!=_typeof(e[t])?e[t]:void 0}var m=t.substring(0,o),C=t.substring(o+1),T=m.indexOf("["),k=m.indexOf("]");if(T>0&&k>T&&k-T>1){var E=m.substring(0,T).trim(),w=m.substring(T+1,k).trim(),D=parseInt(w,10);if(Array.isArray(e[E])==isNaN(D))return;if("object"!=_typeof(e[E]))return;return isNaN(D)?(w=this.cleanWrapCharacters('"',w),w=this.cleanWrapCharacters("`",w),w=this.cleanWrapCharacters("'",w),n="".concat(n).concat(n.length>0?".":"").concat(m),this.getValueAtAddress(e[E][w],C,n,a)):(n="".concat(n).concat(n.length>0?".":"").concat(m),this.getValueAtAddress(e[E][D],C,n,a))}if(T>0&&k>T&&k-T==1){var x=t.substring(0,T).trim();if(!Array.isArray(e[x]))return!1;var P=e[x];n="".concat(n).concat(n.length>0?".":"").concat(x);for(var M={},N=0;N<P.length;N++){var V="".concat(n,"[").concat(N,"]"),S=this.getValueAtAddress(e[x][N],C,V,a);M["".concat(V,".").concat(C)]=S}return M}var H=t.indexOf("{}");if(H>0){var I=t.substring(0,H).trim();if("object"!=_typeof(e[I]))return!1;var W=e[I],R=Object.keys(W);n="".concat(n).concat(n.length>0?".":"").concat(I);for(var L={},F=0;F<R.length;F++){var J="".concat(n,".").concat(R[F]),U=this.getValueAtAddress(e[I][R[F]],C,J,a);this.checkRecordFilters(t,U)&&(L["".concat(J,".").concat(C)]=U)}return L}return e.hasOwnProperty(m)&&"object"!==_typeof(e[m])?void 0:e.hasOwnProperty(m)?(n="".concat(n).concat(n.length>0?".":"").concat(m),this.getValueAtAddress(e[m],C,n,a)):(n="".concat(n).concat(n.length>0?".":"").concat(m),e[m]={},this.getValueAtAddress(e[m],C,n,a))}}}])}();t.exports=o},{"../source/Manyfest-ParseConditionals.js":10,"./Manyfest-CleanWrapCharacters.js":2,"./Manyfest-LogToConsole.js":4}],8:[function(e,t,r){var s=e("./Manyfest-LogToConsole.js"),n=e("./Manyfest-CleanWrapCharacters.js"),a=function(){return _createClass((function e(t,r){_classCallCheck(this,e),this.logInfo="function"==typeof t?t:s,this.logError="function"==typeof r?r:s,this.cleanWrapCharacters=n}),[{key:"setValueAtAddress",value:function(e,t,r){if("object"!=_typeof(e))return!1;if("string"!=typeof t)return!1;var s=t.indexOf(".");if(-1==s){var n=t.indexOf("["),a=t.indexOf("]");if(n>0&&a>n&&a-n>1){var o=t.substring(0,n).trim();if("object"!==_typeof(e[o]))return!1;var i=t.substring(n+1,a).trim(),c=parseInt(i,10);return Array.isArray(e[o])!=isNaN(c)&&(isNaN(c)?(i=this.cleanWrapCharacters('"',i),i=this.cleanWrapCharacters("`",i),i=this.cleanWrapCharacters("'",i),e[o][i]=r,!0):(e[o][c]=r,!0))}return e[t]=r,!0}var l=t.substring(0,s),f=t.substring(s+1),u=l.indexOf("["),h=l.indexOf("]");if(u>0&&h>u&&h-u>1){var p=l.substring(0,u).trim(),d=l.substring(u+1,h).trim(),y=parseInt(d,10);return Array.isArray(e[p])!=isNaN(y)&&(isNaN(y)?(d=this.cleanWrapCharacters('"',d),d=this.cleanWrapCharacters("`",d),d=this.cleanWrapCharacters("'",d),this.setValueAtAddress(e[p][d],f,r)):this.setValueAtAddress(e[p][y],f,r))}return e.hasOwnProperty(l)&&"object"!==_typeof(e[l])?(e.hasOwnProperty("__ERROR")||(e.__ERROR={}),e.__ERROR[t]=r,!1):(e.hasOwnProperty(l)||(e[l]={}),this.setValueAtAddress(e[l],f,r))}}])}();t.exports=a},{"./Manyfest-CleanWrapCharacters.js":2,"./Manyfest-LogToConsole.js":4}],9:[function(e,t,r){var s=e("./Manyfest-LogToConsole.js"),n=function(){return _createClass((function e(t,r){_classCallCheck(this,e),this.logInfo="function"==typeof t?t:s,this.logError="function"==typeof r?r:s}),[{key:"generateAddressses",value:function(e,t,r){var s="string"==typeof t?t:"",n="object"==_typeof(r)?r:{},a=_typeof(e),o={Address:s,Hash:s,Name:s,InSchema:!1};switch("object"==a&&null==e&&(a="null"),a){case"string":o.DataType="String",o.Default=e,n[s]=o;break;case"number":case"bigint":o.DataType="Number",o.Default=e,n[s]=o;break;case"undefined":case"null":o.DataType="Any",o.Default=e,n[s]=o;break;case"object":if(Array.isArray(e)){o.DataType="Array",""!=s&&(n[s]=o);for(var i=0;i<e.length;i++)this.generateAddressses(e[i],"".concat(s,"[").concat(i,"]"),n)}else{o.DataType="Object",""!=s&&(n[s]=o,s+=".");for(var c=Object.keys(e),l=0;l<c.length;l++)this.generateAddressses(e[c[l]],"".concat(s).concat(c[l]),n)}}return n}}])}();t.exports=n},{"./Manyfest-LogToConsole.js":4}],10:[function(e,t,r){var s="<<~?",n="?~>>",a=new(e("./Manyfest-ObjectAddress-CheckAddressExists.js")),o=function(e,t,r,s,n){switch(s){case"TRUE":return!0===e.getValueAtAddress(t,r);case"FALSE":case"FALSE":return!1===e.getValueAtAddress(t,r);case"LNGT":case"LENGTH_GREATER_THAN":switch(_typeof(_typeof(e.getValueAtAddress(t,r)))){case"string":case"object":return e.getValueAtAddress(t,r).length>n;default:return!1}break;case"LNLT":case"LENGTH_LESS_THAN":switch(_typeof(_typeof(e.getValueAtAddress(t,r)))){case"string":case"object":return e.getValueAtAddress(t,r).length<n;default:return!1}break;case"EX":case"EXISTS":return a.checkAddressExists(t,r);case"DNEX":case"DOES_NOT_EXIST":return!a.checkAddressExists(t,r);case"!=":return e.getValueAtAddress(t,r)!=n;case"<":return e.getValueAtAddress(t,r)<n;case">":return e.getValueAtAddress(t,r)>n;case"<=":return e.getValueAtAddress(t,r)<=n;case">=":return e.getValueAtAddress(t,r)>=n;case"===":return e.getValueAtAddress(t,r)===n;default:return e.getValueAtAddress(t,r)==n}};t.exports=function(e,t,r){for(var a=!0,i=t.indexOf(s);-1!=i;){var c=t.indexOf(n,i+4);if(-1!=c){var l=t.substring(i+4,c).split(","),f=l[0],u="EXISTS";l.length>1&&(u=l[1]);var h=!1;l.length>2&&(h=l[2]),a=a&&o(e,r,f,u,h),i=t.indexOf(s,c+4)}else i=-1}return a}},{"./Manyfest-ObjectAddress-CheckAddressExists.js":5}],11:[function(e,t,r){var s=e("./Manyfest-LogToConsole.js"),n=function(){return _createClass((function e(t,r){_classCallCheck(this,e),this.logInfo="function"==typeof t?t:s,this.logError="function"==typeof r?r:s}),[{key:"resolveAddressMappings",value:function(e,t){if("object"!=_typeof(e))return this.logError("Attempted to resolve address mapping but the descriptor was not an object."),!1;if("object"!=_typeof(t))return!0;var r=Object.keys(e),s={};return r.forEach((function(t){e[t].hasOwnProperty("Hash")&&(s[e[t].Hash]=t)})),Object.keys(t).forEach((function(r){var n=t[r],a=!1,o=!1;e.hasOwnProperty(r)?a=r:s.hasOwnProperty(r)&&(a=s[r]),a?(o=e[a],delete e[a]):o={Hash:r},e[n]=o})),!0}},{key:"safeResolveAddressMappings",value:function(e,t){var r=JSON.parse(JSON.stringify(e));return this.resolveAddressMappings(r,t),r}},{key:"mergeAddressMappings",value:function(e,t){if("object"!=_typeof(t)||"object"!=_typeof(e))return this.logError("Attempted to merge two schema descriptors but both were not objects."),!1;var r=JSON.parse(JSON.stringify(t)),s=JSON.parse(JSON.stringify(e));return Object.keys(r).forEach((function(e){s.hasOwnProperty(e)||(s[e]=r[e])})),s}}])}();t.exports=n},{"./Manyfest-LogToConsole.js":4}],12:[function(e,t,r){var s=e("fable-serviceproviderbase"),n=e("./Manyfest-LogToConsole.js"),a=e("./Manyfest-HashTranslation.js"),o=e("./Manyfest-ObjectAddress-CheckAddressExists.js"),i=e("./Manyfest-ObjectAddress-GetValue.js"),c=e("./Manyfest-ObjectAddress-SetValue.js"),l=e("./Manyfest-ObjectAddress-DeleteValue.js"),f=e("./Manyfest-ObjectAddressGeneration.js"),u=e("./Manyfest-SchemaManipulation.js"),h={Scope:"DEFAULT",Descriptors:{}},p=function(e){function t(e,r,s){var h;return _classCallCheck(this,t),(h=_callSuper(this,t,void 0===e?[{}]:[e,r,s])).serviceType="Manifest",h.logInfo=n,h.logError=n,h.objectAddressCheckAddressExists=new o(h.logInfo,h.logError),h.objectAddressGetValue=new i(h.logInfo,h.logError),h.objectAddressSetValue=new c(h.logInfo,h.logError),h.objectAddressDeleteValue=new l(h.logInfo,h.logError),h.options.hasOwnProperty("defaultValues")||(h.options.defaultValues={String:"",Number:0,Float:0,Integer:0,Boolean:!1,Binary:0,DateTime:0,Array:[],Object:{},Null:null}),h.options.hasOwnProperty("strict")||(h.options.strict=!1),h.scope=void 0,h.elementAddresses=void 0,h.elementHashes=void 0,h.elementDescriptors=void 0,h.reset(),"object"===_typeof(h.options)&&h.loadManifest(h.options),h.schemaManipulations=new u(h.logInfo,h.logError),h.objectAddressGeneration=new f(h.logInfo,h.logError),h.hashTranslations=new a(h.logInfo,h.logError),_assertThisInitialized(h)}return _inherits(t,e),_createClass(t,[{key:"reset",value:function(){this.scope="DEFAULT",this.elementAddresses=[],this.elementHashes={},this.elementDescriptors={}}},{key:"clone",value:function(){var e=JSON.parse(JSON.stringify(this.options)),r=new t(this.getManifest(),this.logInfo,this.logError,e);return r.hashTranslations.addTranslation(this.hashTranslations.translationTable),r}},{key:"deserialize",value:function(e){return this.loadManifest(JSON.parse(e))}},{key:"loadManifest",value:function(e){"object"!==_typeof(e)&&this.logError("(".concat(this.scope,") Error loading manifest; expecting an object but parameter was type ").concat(_typeof(e),"."));for(var t="object"==_typeof(e)?e:{},r=Object.keys(h),s=0;s<r.length;s++)t.hasOwnProperty(r[s])||(t[r[s]]=JSON.parse(JSON.stringify(h[r[s]])));if(t.hasOwnProperty("Scope")?"string"==typeof t.Scope?this.scope=t.Scope:this.logError("(".concat(this.scope,") Error loading scope from manifest; expecting a string but property was type ").concat(_typeof(t.Scope),"."),t):this.logError("(".concat(this.scope,') Error loading scope from manifest object. Property "Scope" does not exist in the root of the object.'),t),t.hasOwnProperty("Descriptors"))if("object"===_typeof(t.Descriptors))for(var n=Object.keys(t.Descriptors),a=0;a<n.length;a++)this.addDescriptor(n[a],t.Descriptors[n[a]]);else this.logError("(".concat(this.scope,") Error loading description object from manifest object. Expecting an object in 'Manifest.Descriptors' but the property was type ").concat(_typeof(t.Descriptors),"."),t);else this.logError("(".concat(this.scope,') Error loading object description from manifest object. Property "Descriptors" does not exist in the root of the Manifest object.'),t);if(t.hasOwnProperty("HashTranslations")&&"object"===_typeof(t.HashTranslations))for(var o=0;o<t.HashTranslations.length;o++);}},{key:"serialize",value:function(){return JSON.stringify(this.getManifest())}},{key:"getManifest",value:function(){return{Scope:this.scope,Descriptors:JSON.parse(JSON.stringify(this.elementDescriptors)),HashTranslations:JSON.parse(JSON.stringify(this.hashTranslations.translationTable))}}},{key:"addDescriptor",value:function(e,t){return"object"===_typeof(t)?(t.hasOwnProperty("Address")||(t.Address=e),this.elementDescriptors.hasOwnProperty(e)||this.elementAddresses.push(e),this.elementDescriptors[e]=t,this.elementHashes[e]=e,t.hasOwnProperty("Hash")?this.elementHashes[t.Hash]=e:t.Hash=e,!0):(this.logError("(".concat(this.scope,") Error loading object descriptor for address '").concat(e,"' from manifest object. Expecting an object but property was type ").concat(_typeof(t),".")),!1)}},{key:"getDescriptorByHash",value:function(e){return this.getDescriptor(this.resolveHashAddress(e))}},{key:"getDescriptor",value:function(e){return this.elementDescriptors[e]}},{key:"eachDescriptor",value:function(e){for(var t=Object.keys(this.elementDescriptors),r=0;r<t.length;r++)e(this.elementDescriptors[t[r]])}},{key:"checkAddressExistsByHash",value:function(e,t){return this.checkAddressExists(e,this.resolveHashAddress(t))}},{key:"checkAddressExists",value:function(e,t){return this.objectAddressCheckAddressExists.checkAddressExists(e,t)}},{key:"resolveHashAddress",value:function(e){var t=this.elementHashes.hasOwnProperty(e),r=this.hashTranslations.translationTable.hasOwnProperty(e);return t&&!r?this.elementHashes[e]:r&&this.elementHashes.hasOwnProperty(this.hashTranslations.translate(e))?this.elementHashes[this.hashTranslations.translate(e)]:r?this.hashTranslations.translate(e):e}},{key:"getValueByHash",value:function(e,t){var r=this.getValueAtAddress(e,this.resolveHashAddress(t));return void 0===r&&(r=this.getDefaultValue(this.getDescriptorByHash(t))),r}},{key:"getValueAtAddress",value:function(e,t){var r=this.objectAddressGetValue.getValueAtAddress(e,t);return void 0===r&&(r=this.getDefaultValue(this.getDescriptor(t))),r}},{key:"setValueByHash",value:function(e,t,r){return this.setValueAtAddress(e,this.resolveHashAddress(t),r)}},{key:"setValueAtAddress",value:function(e,t,r){return this.objectAddressSetValue.setValueAtAddress(e,t,r)}},{key:"deleteValueByHash",value:function(e,t,r){return this.deleteValueAtAddress(e,this.resolveHashAddress(t),r)}},{key:"deleteValueAtAddress",value:function(e,t,r){return this.objectAddressDeleteValue.deleteValueAtAddress(e,t,r)}},{key:"validate",value:function(e){var t={Error:null,Errors:[],MissingElements:[]};"object"!==_typeof(e)&&(t.Error=!0,t.Errors.push("Expected passed in object to be type object but was passed in ".concat(_typeof(e))));for(var r=function(e,r){t.Error=!0,t.Errors.push('Element at address "'.concat(e,'" ').concat(r,"."))},s=0;s<this.elementAddresses.length;s++){var n=this.getDescriptor(this.elementAddresses[s]),a=this.checkAddressExists(e,n.Address),o=this.getValueAtAddress(e,n.Address);if(void 0!==o&&a||(t.MissingElements.push(n.Address),(n.Required||this.options.strict)&&r(n.Address,"is flagged REQUIRED but is not set in the object")),n.DataType){var i=_typeof(o);switch(n.DataType.toString().trim().toLowerCase()){case"string":"string"!=i&&r(n.Address,"has a DataType ".concat(n.DataType," but is of the type ").concat(i));break;case"number":"number"!=i&&r(n.Address,"has a DataType ".concat(n.DataType," but is of the type ").concat(i));break;case"integer":if("number"!=i)r(n.Address,"has a DataType ".concat(n.DataType," but is of the type ").concat(i));else o.toString().indexOf(".")>-1&&r(n.Address,"has a DataType ".concat(n.DataType," but has a decimal point in the number."));break;case"float":"number"!=i&&r(n.Address,"has a DataType ".concat(n.DataType," but is of the type ").concat(i));break;case"DateTime":"Invalid Date"==new Date(o).toString()&&r(n.Address,"has a DataType ".concat(n.DataType," but is not parsable as a Date by Javascript"));default:"string"!=i&&r(n.Address,"has a DataType ".concat(n.DataType," (which auto-converted to String because it was unrecognized) but is of the type ").concat(i))}}}return t}},{key:"getDefaultValue",value:function(e){if("object"==_typeof(e)){if(e.hasOwnProperty("Default"))return e.Default;var t=e.hasOwnProperty("DataType")?e.DataType:"String";return this.options.defaultValues.hasOwnProperty(t)?this.options.defaultValues[t]:null}}},{key:"populateDefaults",value:function(e,t){return this.populateObject(e,t,(function(e){return e.hasOwnProperty("Default")}))}},{key:"populateObject",value:function(e,t,r){var s=this,n="object"===_typeof(e)?e:{},a=void 0!==t&&t,o="function"==typeof r?r:function(e){return!0};return this.elementAddresses.forEach((function(e){var t=s.getDescriptor(e);o(t)&&(!a&&s.checkAddressExists(n,e)||s.setValueAtAddress(n,e,s.getDefaultValue(t)))})),n}}])}(s);t.exports=p},{"./Manyfest-HashTranslation.js":3,"./Manyfest-LogToConsole.js":4,"./Manyfest-ObjectAddress-CheckAddressExists.js":5,"./Manyfest-ObjectAddress-DeleteValue.js":6,"./Manyfest-ObjectAddress-GetValue.js":7,"./Manyfest-ObjectAddress-SetValue.js":8,"./Manyfest-ObjectAddressGeneration.js":9,"./Manyfest-SchemaManipulation.js":11,"fable-serviceproviderbase":1}]},{},[12])(12)}));
2
2
  //# sourceMappingURL=manyfest.compatible.min.js.map