manyfest 1.0.34 → 1.0.36

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/dist/manyfest.js CHANGED
@@ -2115,6 +2115,7 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
2115
2115
  "Number": 0,
2116
2116
  "Float": 0.0,
2117
2117
  "Integer": 0,
2118
+ "PreciseNumber": "0.0",
2118
2119
  "Boolean": false,
2119
2120
  "Binary": 0,
2120
2121
  "DateTime": 0,
@@ -2137,6 +2138,7 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
2137
2138
  this.schemaManipulations = new libSchemaManipulation(this.logInfo, this.logError);
2138
2139
  this.objectAddressGeneration = new libObjectAddressGeneration(this.logInfo, this.logError);
2139
2140
  this.hashTranslations = new libHashTranslation(this.logInfo, this.logError);
2141
+ this.numberRegex = /^[+-]?(\d+(\.\d*)?|\.\d+)([eE][+-]?\d+)?$/;
2140
2142
  }
2141
2143
 
2142
2144
  /*************************************************************************
@@ -2382,6 +2384,13 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
2382
2384
  addValidationError(tmpDescriptor.Address, "has a DataType ".concat(tmpDescriptor.DataType, " but is of the type ").concat(tmpElementType));
2383
2385
  }
2384
2386
  break;
2387
+ case "precisenumber":
2388
+ if (tmpElementType != 'string') {
2389
+ addValidationError(tmpDescriptor.Address, "has a DataType ".concat(tmpDescriptor.DataType, " but is of the type ").concat(tmpElementType));
2390
+ } else if (!this.numberRegex.test(tmpValue)) {
2391
+ addValidationError(tmpDescriptor.Address, "has a DataType ".concat(tmpDescriptor.DataType, " but is not a valid number"));
2392
+ }
2393
+ break;
2385
2394
  case 'number':
2386
2395
  if (tmpElementType != 'number') {
2387
2396
  addValidationError(tmpDescriptor.Address, "has a DataType ".concat(tmpDescriptor.DataType, " but is of the type ").concat(tmpElementType));
@@ -2403,7 +2412,7 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
2403
2412
  addValidationError(tmpDescriptor.Address, "has a DataType ".concat(tmpDescriptor.DataType, " but is of the type ").concat(tmpElementType));
2404
2413
  }
2405
2414
  break;
2406
- case 'DateTime':
2415
+ case 'datetime':
2407
2416
  let tmpValueDate = new Date(tmpValue);
2408
2417
  if (tmpValueDate.toString() == 'Invalid Date') {
2409
2418
  addValidationError(tmpDescriptor.Address, "has a DataType ".concat(tmpDescriptor.DataType, " but is not parsable as a Date by Javascript"));
@@ -1,2 +1,2 @@
1
- "use strict";function _defineProperty(t,e,s){return(e=_toPropertyKey(e))in t?Object.defineProperty(t,e,{value:s,enumerable:!0,configurable:!0,writable:!0}):t[e]=s,t}function _toPropertyKey(t){var e=_toPrimitive(t,"string");return"symbol"==typeof e?e:e+""}function _toPrimitive(t,e){if("object"!=typeof t||!t)return t;var s=t[Symbol.toPrimitive];if(void 0!==s){var r=s.call(t,e||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).Manyfest=t()}}((function(){return function t(e,s,r){function n(i,o){if(!s[i]){if(!e[i]){var c="function"==typeof require&&require;if(!o&&c)return c(i,!0);if(a)return a(i,!0);var l=new Error("Cannot find module '"+i+"'");throw l.code="MODULE_NOT_FOUND",l}var h=s[i]={exports:{}};e[i][0].call(h.exports,(function(t){return n(e[i][1][t]||t)}),h,h.exports,t,e,s,r)}return s[i].exports}for(var a="function"==typeof require&&require,i=0;i<r.length;i++)n(r[i]);return n}({1:[function(t,e,s){class r{constructor(t,e,s){"object"==typeof t&&t.isFable?this.connectFable(t):this.fable=!1,this.fable?(this.UUID=t.getUUID(),this.options="object"==typeof e?e:{}):(this.options="object"!=typeof t||t.isFable?"object"==typeof e?e:{}: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 e?"".concat(this.UUID):e}connectFable(t){if("object"!=typeof t||!t.isFable){let e="Fable Service Provider Base: Cannot connect to Fable, invalid Fable object passed in. The pFable parameter was a [".concat(typeof t,"].}");return console.log(e),new Error(e)}return this.fable||(this.fable=t),this.log||(this.log=this.fable.Logging),this.services||(this.services=this.fable.services),this.servicesMap||(this.servicesMap=this.fable.servicesMap),!0}}_defineProperty(r,"isFableService",!0),e.exports=r,e.exports.CoreServiceProviderBase=r},{}],2:[function(t,e,s){e.exports=(t,e)=>e.startsWith(t)&&e.endsWith(t)?e.substring(1,e.length-1):e},{}],3:[function(t,e,s){let r=t("./Manyfest-LogToConsole.js");e.exports=class{constructor(t,e){this.logInfo="function"==typeof t?t:r,this.logError="function"==typeof e?e:r,this.translationTable={}}translationCount(){return Object.keys(this.translationTable).length}addTranslation(t){if("object"!=typeof t)return this.logError("Hash translation addTranslation expected a translation be type object but was passed in ".concat(typeof t)),!1;Object.keys(t).forEach((e=>{"string"!=typeof t[e]?this.logError("Hash translation addTranslation expected a translation destination hash for [".concat(e,"] to be a string but the referrant was a ").concat(typeof t[e])):this.translationTable[e]=t[e]}))}removeTranslationHash(t){t in this.translationTable&&delete this.translationTable[t]}removeTranslation(t){if("string"==typeof t)return this.removeTranslationHash(t),!0;if("object"==typeof t){return Object.keys(t).forEach((t=>{this.removeTranslation(t)})),!0}return this.logError("Hash translation removeTranslation expected either a string or an object but the passed-in translation was type ".concat(typeof t)),!1}clearTranslations(){this.translationTable={}}translate(t){return t in this.translationTable?this.translationTable[t]:t}}},{"./Manyfest-LogToConsole.js":4}],4:[function(t,e,s){e.exports=(t,e)=>{let s="string"==typeof t?t:"";console.log("[Manyfest] ".concat(s)),e&&console.log(JSON.stringify(e))}},{}],5:[function(t,e,s){const r=t("./Manyfest-LogToConsole.js"),n=t("./Manyfest-ObjectAddress-GetValue.js");let a={DataFormat:t("./Manyfest-ObjectAddress-Parser.js")};e.exports=class{constructor(){this.getObjectValueClass=new n(r,r)}checkAddressExists(t,e,s){if("object"!=typeof t)return!1;if("string"!=typeof e)return!1;let r=void 0===s?t:s,n=a.DataFormat.stringGetFirstSegment(e);if(n.length==e.length){let s=e.indexOf("["),r=e.indexOf("]"),n=e.indexOf("(");if(n>0&&a.DataFormat.stringCountEnclosures(e)>0){let s=e.substring(0,n).trim();return s in t&&"function"==typeof t[s]}if(s>0&&r>s&&r-s>1){let n=e.substring(0,s).trim();if("object"!=typeof t[n])return!1;let a=e.substring(s+1,r).trim(),i=parseInt(a,10);return Array.isArray(t[n])!=isNaN(i)&&(isNaN(i)?(a=this.cleanWrapCharacters('"',a),a=this.cleanWrapCharacters("`",a),a=this.cleanWrapCharacters("'",a),a in t[n]):i in t[n])}return e in t}{let i=n,o=e.substring(n.length+1),c=i.indexOf("["),l=i.indexOf("]"),h=i.indexOf("(");if(h>0&&a.DataFormat.stringCountEnclosures(i)>0){let e=i.substring(0,h).trim();if("function"==(t[e],!1))return!1;let n=a.DataFormat.stringGetSegments(a.DataFormat.stringGetEnclosureValueByIndex(i.substring(e.length),0),",");if(0==n.length||""==n[0])return this.checkAddressExists(t[e].apply(t),o,r);{let r=[],a=void 0===s?t:s;for(let t=0;t<n.length;t++)r.push(this.getObjectValueClass.getValueAtAddress(a,n[t]));return this.checkAddressExists(t[e].apply(t,r),o,a)}}if(c>0&&l>c&&l-c>1){let e=i.substring(0,c).trim(),s=i.substring(c+1,l).trim(),n=parseInt(s,10);return Array.isArray(t[e])!=isNaN(n)&&(isNaN(n)?(s=this.cleanWrapCharacters('"',s),s=this.cleanWrapCharacters("`",s),s=this.cleanWrapCharacters("'",s),this.checkAddressExists(t[e][s],o,r)):this.checkAddressExists(t[e][n],o,r))}return(!(i in t)||"object"==typeof t[i])&&(i in t||(t[i]={}),this.checkAddressExists(t[i],o,r))}}}},{"./Manyfest-LogToConsole.js":4,"./Manyfest-ObjectAddress-GetValue.js":7,"./Manyfest-ObjectAddress-Parser.js":8}],6:[function(t,e,s){let r=t("./Manyfest-LogToConsole.js"),n=t("./Manyfest-CleanWrapCharacters.js"),a=t("../source/Manyfest-ParseConditionals.js");e.exports=class{constructor(t,e){this.logInfo="function"==typeof t?t:r,this.logError="function"==typeof e?e:r,this.cleanWrapCharacters=n}checkRecordFilters(t,e){return a(this,t,e)}deleteValueAtAddress(t,e,s){if("object"!=typeof t)return;if("string"!=typeof e)return;let r="";"string"==typeof s&&(r=s);let n=e.indexOf(".");if(-1==n){let s=e.indexOf("["),r=e.indexOf("]"),n=e.indexOf("{}");if(s>0&&r>s&&r-s>1){let n=e.substring(0,s).trim();if("object"!=typeof t[n])return!1;let a=e.substring(s+1,r).trim(),i=parseInt(a,10);return Array.isArray(t[n])!=isNaN(i)&&(isNaN(i)?(a=this.cleanWrapCharacters('"',a),a=this.cleanWrapCharacters("`",a),a=this.cleanWrapCharacters("'",a),delete t[n][a],!0):(delete t[n][i],!0))}if(s>0&&r>s&&r-s==1){let r=e.substring(0,s).trim();if(!Array.isArray(t[r]))return!1;let n=t[r];for(let t=n.length-1;t>=0;t--){this.checkRecordFilters(e,n[t])&&n.splice(t,1)}return!0}if(n>0){let s=e.substring(0,n).trim();return"object"==typeof t[s]&&(delete t[s],!0)}return delete t[e],!0}{let s=e.substring(0,n),a=e.substring(n+1),i=s.indexOf("["),o=s.indexOf("]");if(i>0&&o>i&&o-i>1){let e=s.substring(0,i).trim(),n=s.substring(i+1,o).trim(),c=parseInt(n,10);return Array.isArray(t[e])!=isNaN(c)&&("object"==typeof t[e]&&(isNaN(c)?(n=this.cleanWrapCharacters('"',n),n=this.cleanWrapCharacters("`",n),n=this.cleanWrapCharacters("'",n),r="".concat(r).concat(r.length>0?".":"").concat(s),this.deleteValueAtAddress(t[e][n],a,r)):(r="".concat(r).concat(r.length>0?".":"").concat(s),this.deleteValueAtAddress(t[e][c],a,r))))}if(i>0&&o>i&&o-i==1){let s=e.substring(0,i).trim();if(!Array.isArray(t[s]))return!1;let n=t[s];r="".concat(r).concat(r.length>0?".":"").concat(s);let o={};for(let e=0;e<n.length;e++){let n="".concat(r,"[").concat(e,"]"),i=this.deleteValueAtAddress(t[s][e],a,n);o["".concat(n,".").concat(a)]=i}return o}let c=e.indexOf("{}");if(c>0){let s=e.substring(0,c).trim();if("object"!=typeof t[s])return!1;let n=t[s],i=Object.keys(n);r="".concat(r).concat(r.length>0?".":"").concat(s);let o={};for(let n=0;n<i.length;n++){let c="".concat(r,".").concat(i[n]),l=this.deleteValueAtAddress(t[s][i[n]],a,c);this.checkRecordFilters(e,l)&&(o["".concat(c,".").concat(a)]=l)}return o}return s in t&&"object"!=typeof t[s]?void 0:s in t?(r="".concat(r).concat(r.length>0?".":"").concat(s),this.deleteValueAtAddress(t[s],a,r)):(r="".concat(r).concat(r.length>0?".":"").concat(s),t[s]={},this.deleteValueAtAddress(t[s],a,r))}}}},{"../source/Manyfest-ParseConditionals.js":11,"./Manyfest-CleanWrapCharacters.js":2,"./Manyfest-LogToConsole.js":4}],7:[function(t,e,s){let r=t("./Manyfest-LogToConsole.js"),n=t("./Manyfest-CleanWrapCharacters.js"),a=t("../source/Manyfest-ParseConditionals.js"),i={DataFormat:t("./Manyfest-ObjectAddress-Parser.js")};e.exports=class{constructor(t,e){this.logInfo="function"==typeof t?t:r,this.logError="function"==typeof e?e:r,this.cleanWrapCharacters=n}checkRecordFilters(t,e){return a(this,t,e)}getValueAtAddress(t,e,s,r){if("object"!=typeof t)return;if("string"!=typeof e)return;let n="";"string"==typeof s&&(n=s);let a=void 0===r?t:r,o=i.DataFormat.stringGetFirstSegment(e);if(""==o){let t=i.DataFormat.stringGetSegments(n),s=0;for(let t=0;t<e.length&&"."==e.charAt(t);t++)s++;let r=t.length-s;if(r<0)return;{let n=e.slice(s);return r>0&&(n="".concat(t.slice(0,r).join("."),".").concat(n)),this.logInfo("Back-navigation detected. Recursing back to address [".concat(n,"]")),this.getValueAtAddress(a,n)}}if(o.length==e.length){let s=e.indexOf("["),n=e.indexOf("]"),a=e.indexOf("{}"),o=e.indexOf("(");if(o>0&&i.DataFormat.stringCountEnclosures(e)>0){let s=e.substring(0,o).trim();if("function"==(t[s],!1))return!1;let n=i.DataFormat.stringGetSegments(i.DataFormat.stringGetEnclosureValueByIndex(e.substring(s.length),0),",");if(0==n.length||""==n[0])return t[s].apply(t);{let e=[],a=void 0===r?t:r;for(let t=0;t<n.length;t++)!(n[t].length>=2)||'"'!=n[t].charAt(0)&&"'"!=n[t].charAt(0)&&"`"!=n[t].charAt(0)||'"'!=n[t].charAt(n[t].length-1)&&"'"!=n[t].charAt(n[t].length-1)&&"`"!=n[t].charAt(n[t].length-1)?e.push(this.getValueAtAddress(a,n[t])):e.push(n[t].substring(1,n[t].length-1));return t[s].apply(t,e)}}if(s>0&&n>s&&n-s>1){let r=e.substring(0,s).trim();if("object"!=typeof t[r])return;let a=e.substring(s+1,n).trim(),i=parseInt(a,10);if(Array.isArray(t[r])==isNaN(i))return;return isNaN(i)?(a=this.cleanWrapCharacters('"',a),a=this.cleanWrapCharacters("`",a),a=this.cleanWrapCharacters("'",a),t[r][a]):t[r][i]}if(s>0&&n>s&&n-s==1){let r=e.substring(0,s).trim();if(!Array.isArray(t[r]))return!1;let n=t[r],a=[];for(let t=0;t<n.length;t++){this.checkRecordFilters(e,n[t])&&a.push(n[t])}return a}if(a>0){let s=e.substring(0,a).trim();return"object"==typeof t[s]&&t[s]}return null!=typeof t[e]?t[e]:void 0}{let s=o,c=e.substring(o.length+1),l=s.indexOf("["),h=s.indexOf("]"),f=s.indexOf("(");if(f>0&&i.DataFormat.stringCountEnclosures(s)>0){let e=s.substring(0,f).trim();if(n="".concat(n).concat(n.length>0?".":"").concat(s),"function"==(t[e],!1))return!1;let o=i.DataFormat.stringGetSegments(i.DataFormat.stringGetEnclosureValueByIndex(s.substring(e.length),0),",");if(0==o.length||""==o[0])return this.getValueAtAddress(t[e].apply(t),c,n,a);{let s=[],a=void 0===r?t:r;for(let t=0;t<o.length;t++)!(o[t].length>=2)||'"'!=o[t].charAt(0)&&"'"!=o[t].charAt(0)&&"`"!=o[t].charAt(0)||'"'!=o[t].charAt(o[t].length-1)&&"'"!=o[t].charAt(o[t].length-1)&&"`"!=o[t].charAt(o[t].length-1)?s.push(this.getValueAtAddress(a,o[t])):s.push(o[t].substring(1,o[t].length-1));return this.getValueAtAddress(t[e].apply(t,s),c,n,a)}}if(l>0&&h>l&&h-l>1){let e=s.substring(0,l).trim(),r=s.substring(l+1,h).trim(),i=parseInt(r,10);if(Array.isArray(t[e])==isNaN(i))return;if("object"!=typeof t[e])return;return isNaN(i)?(r=this.cleanWrapCharacters('"',r),r=this.cleanWrapCharacters("`",r),r=this.cleanWrapCharacters("'",r),n="".concat(n).concat(n.length>0?".":"").concat(s),this.getValueAtAddress(t[e][r],c,n,a)):(n="".concat(n).concat(n.length>0?".":"").concat(s),this.getValueAtAddress(t[e][i],c,n,a))}if(l>0&&h>l&&h-l==1){let s=e.substring(0,l).trim();if(!Array.isArray(t[s]))return!1;let r=t[s];n="".concat(n).concat(n.length>0?".":"").concat(s);let i={};for(let e=0;e<r.length;e++){let r="".concat(n,"[").concat(e,"]"),o=this.getValueAtAddress(t[s][e],c,r,a);i["".concat(r,".").concat(c)]=o}return i}let u=e.indexOf("{}");if(u>0){let s=e.substring(0,u).trim();if("object"!=typeof t[s])return!1;let r=t[s],i=Object.keys(r);n="".concat(n).concat(n.length>0?".":"").concat(s);let o={};for(let r=0;r<i.length;r++){let l="".concat(n,".").concat(i[r]),h=this.getValueAtAddress(t[s][i[r]],c,l,a);this.checkRecordFilters(e,h)&&(o["".concat(l,".").concat(c)]=h)}return o}return s in t&&"object"!=typeof t[s]?void 0:s in t?(n="".concat(n).concat(n.length>0?".":"").concat(s),this.getValueAtAddress(t[s],c,n,a)):(n="".concat(n).concat(n.length>0?".":"").concat(s),t[s]={},this.getValueAtAddress(t[s],c,n,a))}}}},{"../source/Manyfest-ParseConditionals.js":11,"./Manyfest-CleanWrapCharacters.js":2,"./Manyfest-LogToConsole.js":4,"./Manyfest-ObjectAddress-Parser.js":8}],8:[function(t,e,s){e.exports={stringCountSegments:(t,e,s,r)=>{let n="string"==typeof t?t:"",a="string"==typeof e?e:".",i="object"==typeof s?pEnclosureStart:{"{":0,"[":1,"(":2},o="object"==typeof r?pEnclosureEnd:{"}":0,"]":1,")":2};if(t.length<1)return 0;let c=1,l=[];for(let t=0;t<n.length;t++)n[t]==a&&0==l.length?c++:n[t]in i?l.push(i[n[t]]):n[t]in o&&o[n[t]]==l[l.length-1]&&l.pop();return c},stringGetFirstSegment:(t,e,s,r)=>{let n="string"==typeof t?t:"",a="string"==typeof e?e:".",i="object"==typeof s?pEnclosureStart:{"{":0,"[":1,"(":2},o="object"==typeof r?pEnclosureEnd:{"}":0,"]":1,")":2};if(t.length<1)return 0;let c=[];for(let t=0;t<n.length;t++){if(n[t]==a&&0==c.length)return n.substring(0,t);n[t]in i?c.push(i[n[t]]):n[t]in o&&o[n[t]]==c[c.length-1]&&c.pop()}return n},stringGetSegments:(t,e,s,r)=>{let n="string"==typeof t?t:"",a="string"==typeof e?e:".",i="object"==typeof s?pEnclosureStart:{"{":0,"[":1,"(":2},o="object"==typeof r?pEnclosureEnd:{"}":0,"]":1,")":2},c=0,l=[];if(t.length<1)return l;let h=[];for(let t=0;t<n.length;t++)n[t]==a&&0==h.length?(l.push(n.substring(c,t)),c=t+1):n[t]in i?h.push(i[n[t]]):n[t]in o&&o[n[t]]==h[h.length-1]&&h.pop();return c<n.length&&l.push(n.substring(c)),l},stringCountEnclosures:(t,e,s)=>{let r="string"==typeof t?t:"",n="string"==typeof e?e:"(",a="string"==typeof s?s:")",i=0,o=0;for(let t=0;t<r.length;t++)r[t]==n?(0==o&&i++,o++):r[t]==a&&o--;return i},stringGetEnclosureValueByIndex:(t,e,s,r)=>{let n="string"==typeof t?t:"",a="number"==typeof e?e:0,i="string"==typeof s?s:"(",o="string"==typeof r?r:")",c=0,l=0,h=!1,f=0,u=0;for(let t=0;t<n.length;t++)n[t]==i?(l++,1==l&&(c++,a==c-1&&(h=!0,f=t))):n[t]==o&&(l--,0==l&&h&&u<=f&&(u=t,h=!1));return c<=a?"":u>0&&u>f?n.substring(f+1,u):n.substring(f+1)}}},{}],9:[function(t,e,s){let r=t("./Manyfest-LogToConsole.js"),n=t("./Manyfest-CleanWrapCharacters.js");e.exports=class{constructor(t,e){this.logInfo="function"==typeof t?t:r,this.logError="function"==typeof e?e:r,this.cleanWrapCharacters=n}setValueAtAddress(t,e,s){if("object"!=typeof t)return!1;if("string"!=typeof e)return!1;let r=e.indexOf(".");if(-1==r){let r=e.indexOf("["),n=e.indexOf("]");if(r>0&&n>r&&n-r>1){let a=e.substring(0,r).trim();if("object"!=typeof t[a])return!1;let i=e.substring(r+1,n).trim(),o=parseInt(i,10);return Array.isArray(t[a])!=isNaN(o)&&(isNaN(o)?(i=this.cleanWrapCharacters('"',i),i=this.cleanWrapCharacters("`",i),i=this.cleanWrapCharacters("'",i),t[a][i]=s,!0):(t[a][o]=s,!0))}return t[e]=s,!0}{let n=e.substring(0,r),a=e.substring(r+1),i=n.indexOf("["),o=n.indexOf("]");if(i>0&&o>i&&o-i>1){let e=n.substring(0,i).trim(),r=n.substring(i+1,o).trim(),c=parseInt(r,10);return Array.isArray(t[e])!=isNaN(c)&&(isNaN(c)?(r=this.cleanWrapCharacters('"',r),r=this.cleanWrapCharacters("`",r),r=this.cleanWrapCharacters("'",r),this.setValueAtAddress(t[e][r],a,s)):this.setValueAtAddress(t[e][c],a,s))}return n in t&&"object"!=typeof t[n]?("__ERROR"in t||(t.__ERROR={}),t.__ERROR[e]=s,!1):(n in t||(t[n]={}),this.setValueAtAddress(t[n],a,s))}}}},{"./Manyfest-CleanWrapCharacters.js":2,"./Manyfest-LogToConsole.js":4}],10:[function(t,e,s){let r=t("./Manyfest-LogToConsole.js");e.exports=class{constructor(t,e){this.logInfo="function"==typeof t?t:r,this.logError="function"==typeof e?e:r}generateAddressses(t,e,s){let r="string"==typeof e?e:"",n="object"==typeof s?s:{},a=typeof t,i={Address:r,Hash:r,Name:r,InSchema:!1};switch("object"==a&&null==t&&(a="null"),a){case"string":i.DataType="String",i.Default=t,n[r]=i;break;case"number":case"bigint":i.DataType="Number",i.Default=t,n[r]=i;break;case"undefined":case"null":i.DataType="Any",i.Default=t,n[r]=i;break;case"object":if(Array.isArray(t)){i.DataType="Array",""!=r&&(n[r]=i);for(let e=0;e<t.length;e++)this.generateAddressses(t[e],"".concat(r,"[").concat(e,"]"),n)}else{i.DataType="Object",""!=r&&(n[r]=i,r+=".");let e=Object.keys(t);for(let s=0;s<e.length;s++)this.generateAddressses(t[e[s]],"".concat(r).concat(e[s]),n)}}return n}}},{"./Manyfest-LogToConsole.js":4}],11:[function(t,e,s){const r="<<~?",n="?~>>",a=(t,e,s,r,n)=>{switch(r){case"TRUE":return!0===t.getValueAtAddress(e,s);case"FALSE":return!1===t.getValueAtAddress(e,s);case"LNGT":case"LENGTH_GREATER_THAN":switch(typeof t.getValueAtAddress(e,s)){case"string":case"object":return t.getValueAtAddress(e,s).length>n;default:return!1}break;case"LNLT":case"LENGTH_LESS_THAN":switch(typeof t.getValueAtAddress(e,s)){case"string":case"object":return t.getValueAtAddress(e,s).length<n;default:return!1}break;case"!=":return t.getValueAtAddress(e,s)!=n;case"<":return t.getValueAtAddress(e,s)<n;case">":return t.getValueAtAddress(e,s)>n;case"<=":return t.getValueAtAddress(e,s)<=n;case">=":return t.getValueAtAddress(e,s)>=n;case"===":return t.getValueAtAddress(e,s)===n;default:return t.getValueAtAddress(e,s)==n}};e.exports=(t,e,s)=>{let i=!0,o=e.indexOf(r);for(;-1!=o;){let c=e.indexOf(n,o+4);if(-1!=c){let n=e.substring(o+4,c).split(","),l=n[0],h="EXISTS";n.length>1&&(h=n[1]);let f=!1;n.length>2&&(f=n[2]),i=i&&a(t,s,l,h,f),o=e.indexOf(r,c+4)}else o=-1}return i}},{}],12:[function(t,e,s){let r=t("./Manyfest-LogToConsole.js");e.exports=class{constructor(t,e){this.logInfo="function"==typeof t?t:r,this.logError="function"==typeof e?e:r}resolveAddressMappings(t,e){if("object"!=typeof t)return this.logError("Attempted to resolve address mapping but the descriptor was not an object."),!1;if("object"!=typeof e)return!0;let s=Object.keys(t),r={};return s.forEach((e=>{"Hash"in t[e]&&(r[t[e].Hash]=e)})),Object.keys(e).forEach((s=>{let n=e[s],a=!1,i=!1;s in t?a=s:s in r&&(a=r[s]),a?(i=t[a],delete t[a]):i={Hash:s},t[n]=i})),!0}safeResolveAddressMappings(t,e){let s=JSON.parse(JSON.stringify(t));return this.resolveAddressMappings(s,e),s}mergeAddressMappings(t,e){if("object"!=typeof e||"object"!=typeof t)return this.logError("Attempted to merge two schema descriptors but both were not objects."),!1;let s=JSON.parse(JSON.stringify(e)),r=JSON.parse(JSON.stringify(t));return Object.keys(s).forEach((t=>{t in r||(r[t]=s[t])})),r}}},{"./Manyfest-LogToConsole.js":4}],13:[function(t,e,s){const r=t("fable-serviceproviderbase");let n=t("./Manyfest-LogToConsole.js"),a=t("./Manyfest-HashTranslation.js"),i=t("./Manyfest-ObjectAddress-CheckAddressExists.js"),o=t("./Manyfest-ObjectAddress-GetValue.js"),c=t("./Manyfest-ObjectAddress-SetValue.js"),l=t("./Manyfest-ObjectAddress-DeleteValue.js"),h=t("./Manyfest-ObjectAddressGeneration.js"),f=t("./Manyfest-SchemaManipulation.js");const u={Scope:"DEFAULT",Descriptors:{}};class d extends r{constructor(t,e,s){void 0===t?super({}):super(t,e,s),this.serviceType="Manifest",this.logInfo=n,this.logError=n,this.objectAddressCheckAddressExists=new i(this.logInfo,this.logError),this.objectAddressGetValue=new o(this.logInfo,this.logError),this.objectAddressSetValue=new c(this.logInfo,this.logError),this.objectAddressDeleteValue=new l(this.logInfo,this.logError),"defaultValues"in this.options||(this.options.defaultValues={String:"",Number:0,Float:0,Integer:0,Boolean:!1,Binary:0,DateTime:0,Array:[],Object:{},Null:null}),"strict"in this.options||(this.options.strict=!1),this.scope=void 0,this.elementAddresses=void 0,this.elementHashes=void 0,this.elementDescriptors=void 0,this.reset(),"object"==typeof this.options&&this.loadManifest(this.options),this.schemaManipulations=new f(this.logInfo,this.logError),this.objectAddressGeneration=new h(this.logInfo,this.logError),this.hashTranslations=new a(this.logInfo,this.logError)}reset(){this.scope="DEFAULT",this.elementAddresses=[],this.elementHashes={},this.elementDescriptors={}}clone(){let t=JSON.parse(JSON.stringify(this.options)),e=new d(this.getManifest(),this.logInfo,this.logError,t);return e.hashTranslations.addTranslation(this.hashTranslations.translationTable),e}deserialize(t){return this.loadManifest(JSON.parse(t))}loadManifest(t){"object"!=typeof t&&this.logError("(".concat(this.scope,") Error loading manifest; expecting an object but parameter was type ").concat(typeof t,"."));let e="object"==typeof t?t:{},s=Object.keys(u);for(let t=0;t<s.length;t++)s[t]in e||(e[s[t]]=JSON.parse(JSON.stringify(u[s[t]])));if("Scope"in e?"string"==typeof e.Scope?this.scope=e.Scope:this.logError("(".concat(this.scope,") Error loading scope from manifest; expecting a string but property was type ").concat(typeof e.Scope,"."),e):this.logError("(".concat(this.scope,') Error loading scope from manifest object. Property "Scope" does not exist in the root of the object.'),e),"Descriptors"in e)if("object"==typeof e.Descriptors){let t=Object.keys(e.Descriptors);for(let s=0;s<t.length;s++)this.addDescriptor(t[s],e.Descriptors[t[s]])}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 e.Descriptors,"."),e);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.'),e);if("HashTranslations"in e&&"object"==typeof e.HashTranslations)for(let t=0;t<e.HashTranslations.length;t++);}serialize(){return JSON.stringify(this.getManifest())}getManifest(){return{Scope:this.scope,Descriptors:JSON.parse(JSON.stringify(this.elementDescriptors)),HashTranslations:JSON.parse(JSON.stringify(this.hashTranslations.translationTable))}}addDescriptor(t,e){return"object"==typeof e?("Address"in e||(e.Address=t),t in this.elementDescriptors||this.elementAddresses.push(t),this.elementDescriptors[t]=e,this.elementHashes[t]=t,"Hash"in e?this.elementHashes[e.Hash]=t:e.Hash=t,!0):(this.logError("(".concat(this.scope,") Error loading object descriptor for address '").concat(t,"' from manifest object. Expecting an object but property was type ").concat(typeof e,".")),!1)}getDescriptorByHash(t){return this.getDescriptor(this.resolveHashAddress(t))}getDescriptor(t){return this.elementDescriptors[t]}eachDescriptor(t){let e=Object.keys(this.elementDescriptors);for(let s=0;s<e.length;s++)t(this.elementDescriptors[e[s]])}checkAddressExistsByHash(t,e){return this.checkAddressExists(t,this.resolveHashAddress(e))}checkAddressExists(t,e){return this.objectAddressCheckAddressExists.checkAddressExists(t,e)}resolveHashAddress(t){let e,s=t in this.elementHashes,r=t in this.hashTranslations.translationTable;return e=s&&!r?this.elementHashes[t]:r&&this.hashTranslations.translate(t)in this.elementHashes?this.elementHashes[this.hashTranslations.translate(t)]:r?this.hashTranslations.translate(t):t,e}getValueByHash(t,e){let s=this.getValueAtAddress(t,this.resolveHashAddress(e));return void 0===s&&(s=this.getDefaultValue(this.getDescriptorByHash(e))),s}getValueAtAddress(t,e){let s=this.objectAddressGetValue.getValueAtAddress(t,e);return void 0===s&&(s=this.getDefaultValue(this.getDescriptor(e))),s}setValueByHash(t,e,s){return this.setValueAtAddress(t,this.resolveHashAddress(e),s)}setValueAtAddress(t,e,s){return this.objectAddressSetValue.setValueAtAddress(t,e,s)}deleteValueByHash(t,e,s){return this.deleteValueAtAddress(t,this.resolveHashAddress(e),s)}deleteValueAtAddress(t,e,s){return this.objectAddressDeleteValue.deleteValueAtAddress(t,e,s)}validate(t){let e={Error:null,Errors:[],MissingElements:[]};"object"!=typeof t&&(e.Error=!0,e.Errors.push("Expected passed in object to be type object but was passed in ".concat(typeof t)));let s=(t,s)=>{e.Error=!0,e.Errors.push('Element at address "'.concat(t,'" ').concat(s,"."))};for(let r=0;r<this.elementAddresses.length;r++){let n=this.getDescriptor(this.elementAddresses[r]),a=this.checkAddressExists(t,n.Address),i=this.getValueAtAddress(t,n.Address);if(void 0!==i&&a||(e.MissingElements.push(n.Address),(n.Required||this.options.strict)&&s(n.Address,"is flagged REQUIRED but is not set in the object")),n.DataType){let t=typeof i;switch(n.DataType.toString().trim().toLowerCase()){case"string":"string"!=t&&s(n.Address,"has a DataType ".concat(n.DataType," but is of the type ").concat(t));break;case"number":"number"!=t&&s(n.Address,"has a DataType ".concat(n.DataType," but is of the type ").concat(t));break;case"integer":if("number"!=t)s(n.Address,"has a DataType ".concat(n.DataType," but is of the type ").concat(t));else{i.toString().indexOf(".")>-1&&s(n.Address,"has a DataType ".concat(n.DataType," but has a decimal point in the number."))}break;case"float":"number"!=t&&s(n.Address,"has a DataType ".concat(n.DataType," but is of the type ").concat(t));break;case"DateTime":"Invalid Date"==new Date(i).toString()&&s(n.Address,"has a DataType ".concat(n.DataType," but is not parsable as a Date by Javascript"));default:"string"!=t&&s(n.Address,"has a DataType ".concat(n.DataType," (which auto-converted to String because it was unrecognized) but is of the type ").concat(t))}}}return e}getDefaultValue(t){if("object"==typeof t){if("Default"in t)return t.Default;{let e="DataType"in t?t.DataType:"String";return e in this.options.defaultValues?this.options.defaultValues[e]:null}}}populateDefaults(t,e){return this.populateObject(t,e,(t=>"Default"in t))}populateObject(t,e,s){let r="object"==typeof t?t:{},n=void 0!==e&&e,a="function"==typeof s?s:t=>!0;return this.elementAddresses.forEach((t=>{let e=this.getDescriptor(t);a(e)&&(!n&&this.checkAddressExists(r,t)||this.setValueAtAddress(r,t,this.getDefaultValue(e)))})),r}}e.exports=d},{"./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":9,"./Manyfest-ObjectAddressGeneration.js":10,"./Manyfest-SchemaManipulation.js":12,"fable-serviceproviderbase":1}]},{},[13])(13)}));
1
+ "use strict";function _defineProperty(t,e,s){return(e=_toPropertyKey(e))in t?Object.defineProperty(t,e,{value:s,enumerable:!0,configurable:!0,writable:!0}):t[e]=s,t}function _toPropertyKey(t){var e=_toPrimitive(t,"string");return"symbol"==typeof e?e:e+""}function _toPrimitive(t,e){if("object"!=typeof t||!t)return t;var s=t[Symbol.toPrimitive];if(void 0!==s){var r=s.call(t,e||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).Manyfest=t()}}((function(){return function t(e,s,r){function n(i,o){if(!s[i]){if(!e[i]){var c="function"==typeof require&&require;if(!o&&c)return c(i,!0);if(a)return a(i,!0);var l=new Error("Cannot find module '"+i+"'");throw l.code="MODULE_NOT_FOUND",l}var h=s[i]={exports:{}};e[i][0].call(h.exports,(function(t){return n(e[i][1][t]||t)}),h,h.exports,t,e,s,r)}return s[i].exports}for(var a="function"==typeof require&&require,i=0;i<r.length;i++)n(r[i]);return n}({1:[function(t,e,s){class r{constructor(t,e,s){"object"==typeof t&&t.isFable?this.connectFable(t):this.fable=!1,this.fable?(this.UUID=t.getUUID(),this.options="object"==typeof e?e:{}):(this.options="object"!=typeof t||t.isFable?"object"==typeof e?e:{}: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 e?"".concat(this.UUID):e}connectFable(t){if("object"!=typeof t||!t.isFable){let e="Fable Service Provider Base: Cannot connect to Fable, invalid Fable object passed in. The pFable parameter was a [".concat(typeof t,"].}");return console.log(e),new Error(e)}return this.fable||(this.fable=t),this.log||(this.log=this.fable.Logging),this.services||(this.services=this.fable.services),this.servicesMap||(this.servicesMap=this.fable.servicesMap),!0}}_defineProperty(r,"isFableService",!0),e.exports=r,e.exports.CoreServiceProviderBase=r},{}],2:[function(t,e,s){e.exports=(t,e)=>e.startsWith(t)&&e.endsWith(t)?e.substring(1,e.length-1):e},{}],3:[function(t,e,s){let r=t("./Manyfest-LogToConsole.js");e.exports=class{constructor(t,e){this.logInfo="function"==typeof t?t:r,this.logError="function"==typeof e?e:r,this.translationTable={}}translationCount(){return Object.keys(this.translationTable).length}addTranslation(t){if("object"!=typeof t)return this.logError("Hash translation addTranslation expected a translation be type object but was passed in ".concat(typeof t)),!1;Object.keys(t).forEach((e=>{"string"!=typeof t[e]?this.logError("Hash translation addTranslation expected a translation destination hash for [".concat(e,"] to be a string but the referrant was a ").concat(typeof t[e])):this.translationTable[e]=t[e]}))}removeTranslationHash(t){t in this.translationTable&&delete this.translationTable[t]}removeTranslation(t){if("string"==typeof t)return this.removeTranslationHash(t),!0;if("object"==typeof t){return Object.keys(t).forEach((t=>{this.removeTranslation(t)})),!0}return this.logError("Hash translation removeTranslation expected either a string or an object but the passed-in translation was type ".concat(typeof t)),!1}clearTranslations(){this.translationTable={}}translate(t){return t in this.translationTable?this.translationTable[t]:t}}},{"./Manyfest-LogToConsole.js":4}],4:[function(t,e,s){e.exports=(t,e)=>{let s="string"==typeof t?t:"";console.log("[Manyfest] ".concat(s)),e&&console.log(JSON.stringify(e))}},{}],5:[function(t,e,s){const r=t("./Manyfest-LogToConsole.js"),n=t("./Manyfest-ObjectAddress-GetValue.js");let a={DataFormat:t("./Manyfest-ObjectAddress-Parser.js")};e.exports=class{constructor(){this.getObjectValueClass=new n(r,r)}checkAddressExists(t,e,s){if("object"!=typeof t)return!1;if("string"!=typeof e)return!1;let r=void 0===s?t:s,n=a.DataFormat.stringGetFirstSegment(e);if(n.length==e.length){let s=e.indexOf("["),r=e.indexOf("]"),n=e.indexOf("(");if(n>0&&a.DataFormat.stringCountEnclosures(e)>0){let s=e.substring(0,n).trim();return s in t&&"function"==typeof t[s]}if(s>0&&r>s&&r-s>1){let n=e.substring(0,s).trim();if("object"!=typeof t[n])return!1;let a=e.substring(s+1,r).trim(),i=parseInt(a,10);return Array.isArray(t[n])!=isNaN(i)&&(isNaN(i)?(a=this.cleanWrapCharacters('"',a),a=this.cleanWrapCharacters("`",a),a=this.cleanWrapCharacters("'",a),a in t[n]):i in t[n])}return e in t}{let i=n,o=e.substring(n.length+1),c=i.indexOf("["),l=i.indexOf("]"),h=i.indexOf("(");if(h>0&&a.DataFormat.stringCountEnclosures(i)>0){let e=i.substring(0,h).trim();if("function"==(t[e],!1))return!1;let n=a.DataFormat.stringGetSegments(a.DataFormat.stringGetEnclosureValueByIndex(i.substring(e.length),0),",");if(0==n.length||""==n[0])return this.checkAddressExists(t[e].apply(t),o,r);{let r=[],a=void 0===s?t:s;for(let t=0;t<n.length;t++)r.push(this.getObjectValueClass.getValueAtAddress(a,n[t]));return this.checkAddressExists(t[e].apply(t,r),o,a)}}if(c>0&&l>c&&l-c>1){let e=i.substring(0,c).trim(),s=i.substring(c+1,l).trim(),n=parseInt(s,10);return Array.isArray(t[e])!=isNaN(n)&&(isNaN(n)?(s=this.cleanWrapCharacters('"',s),s=this.cleanWrapCharacters("`",s),s=this.cleanWrapCharacters("'",s),this.checkAddressExists(t[e][s],o,r)):this.checkAddressExists(t[e][n],o,r))}return(!(i in t)||"object"==typeof t[i])&&(i in t||(t[i]={}),this.checkAddressExists(t[i],o,r))}}}},{"./Manyfest-LogToConsole.js":4,"./Manyfest-ObjectAddress-GetValue.js":7,"./Manyfest-ObjectAddress-Parser.js":8}],6:[function(t,e,s){let r=t("./Manyfest-LogToConsole.js"),n=t("./Manyfest-CleanWrapCharacters.js"),a=t("../source/Manyfest-ParseConditionals.js");e.exports=class{constructor(t,e){this.logInfo="function"==typeof t?t:r,this.logError="function"==typeof e?e:r,this.cleanWrapCharacters=n}checkRecordFilters(t,e){return a(this,t,e)}deleteValueAtAddress(t,e,s){if("object"!=typeof t)return;if("string"!=typeof e)return;let r="";"string"==typeof s&&(r=s);let n=e.indexOf(".");if(-1==n){let s=e.indexOf("["),r=e.indexOf("]"),n=e.indexOf("{}");if(s>0&&r>s&&r-s>1){let n=e.substring(0,s).trim();if("object"!=typeof t[n])return!1;let a=e.substring(s+1,r).trim(),i=parseInt(a,10);return Array.isArray(t[n])!=isNaN(i)&&(isNaN(i)?(a=this.cleanWrapCharacters('"',a),a=this.cleanWrapCharacters("`",a),a=this.cleanWrapCharacters("'",a),delete t[n][a],!0):(delete t[n][i],!0))}if(s>0&&r>s&&r-s==1){let r=e.substring(0,s).trim();if(!Array.isArray(t[r]))return!1;let n=t[r];for(let t=n.length-1;t>=0;t--){this.checkRecordFilters(e,n[t])&&n.splice(t,1)}return!0}if(n>0){let s=e.substring(0,n).trim();return"object"==typeof t[s]&&(delete t[s],!0)}return delete t[e],!0}{let s=e.substring(0,n),a=e.substring(n+1),i=s.indexOf("["),o=s.indexOf("]");if(i>0&&o>i&&o-i>1){let e=s.substring(0,i).trim(),n=s.substring(i+1,o).trim(),c=parseInt(n,10);return Array.isArray(t[e])!=isNaN(c)&&("object"==typeof t[e]&&(isNaN(c)?(n=this.cleanWrapCharacters('"',n),n=this.cleanWrapCharacters("`",n),n=this.cleanWrapCharacters("'",n),r="".concat(r).concat(r.length>0?".":"").concat(s),this.deleteValueAtAddress(t[e][n],a,r)):(r="".concat(r).concat(r.length>0?".":"").concat(s),this.deleteValueAtAddress(t[e][c],a,r))))}if(i>0&&o>i&&o-i==1){let s=e.substring(0,i).trim();if(!Array.isArray(t[s]))return!1;let n=t[s];r="".concat(r).concat(r.length>0?".":"").concat(s);let o={};for(let e=0;e<n.length;e++){let n="".concat(r,"[").concat(e,"]"),i=this.deleteValueAtAddress(t[s][e],a,n);o["".concat(n,".").concat(a)]=i}return o}let c=e.indexOf("{}");if(c>0){let s=e.substring(0,c).trim();if("object"!=typeof t[s])return!1;let n=t[s],i=Object.keys(n);r="".concat(r).concat(r.length>0?".":"").concat(s);let o={};for(let n=0;n<i.length;n++){let c="".concat(r,".").concat(i[n]),l=this.deleteValueAtAddress(t[s][i[n]],a,c);this.checkRecordFilters(e,l)&&(o["".concat(c,".").concat(a)]=l)}return o}return s in t&&"object"!=typeof t[s]?void 0:s in t?(r="".concat(r).concat(r.length>0?".":"").concat(s),this.deleteValueAtAddress(t[s],a,r)):(r="".concat(r).concat(r.length>0?".":"").concat(s),t[s]={},this.deleteValueAtAddress(t[s],a,r))}}}},{"../source/Manyfest-ParseConditionals.js":11,"./Manyfest-CleanWrapCharacters.js":2,"./Manyfest-LogToConsole.js":4}],7:[function(t,e,s){let r=t("./Manyfest-LogToConsole.js"),n=t("./Manyfest-CleanWrapCharacters.js"),a=t("../source/Manyfest-ParseConditionals.js"),i={DataFormat:t("./Manyfest-ObjectAddress-Parser.js")};e.exports=class{constructor(t,e){this.logInfo="function"==typeof t?t:r,this.logError="function"==typeof e?e:r,this.cleanWrapCharacters=n}checkRecordFilters(t,e){return a(this,t,e)}getValueAtAddress(t,e,s,r){if("object"!=typeof t)return;if("string"!=typeof e)return;let n="";"string"==typeof s&&(n=s);let a=void 0===r?t:r,o=i.DataFormat.stringGetFirstSegment(e);if(""==o){let t=i.DataFormat.stringGetSegments(n),s=0;for(let t=0;t<e.length&&"."==e.charAt(t);t++)s++;let r=t.length-s;if(r<0)return;{let n=e.slice(s);return r>0&&(n="".concat(t.slice(0,r).join("."),".").concat(n)),this.logInfo("Back-navigation detected. Recursing back to address [".concat(n,"]")),this.getValueAtAddress(a,n)}}if(o.length==e.length){let s=e.indexOf("["),n=e.indexOf("]"),a=e.indexOf("{}"),o=e.indexOf("(");if(o>0&&i.DataFormat.stringCountEnclosures(e)>0){let s=e.substring(0,o).trim();if("function"==(t[s],!1))return!1;let n=i.DataFormat.stringGetSegments(i.DataFormat.stringGetEnclosureValueByIndex(e.substring(s.length),0),",");if(0==n.length||""==n[0])return t[s].apply(t);{let e=[],a=void 0===r?t:r;for(let t=0;t<n.length;t++)!(n[t].length>=2)||'"'!=n[t].charAt(0)&&"'"!=n[t].charAt(0)&&"`"!=n[t].charAt(0)||'"'!=n[t].charAt(n[t].length-1)&&"'"!=n[t].charAt(n[t].length-1)&&"`"!=n[t].charAt(n[t].length-1)?e.push(this.getValueAtAddress(a,n[t])):e.push(n[t].substring(1,n[t].length-1));return t[s].apply(t,e)}}if(s>0&&n>s&&n-s>1){let r=e.substring(0,s).trim();if("object"!=typeof t[r])return;let a=e.substring(s+1,n).trim(),i=parseInt(a,10);if(Array.isArray(t[r])==isNaN(i))return;return isNaN(i)?(a=this.cleanWrapCharacters('"',a),a=this.cleanWrapCharacters("`",a),a=this.cleanWrapCharacters("'",a),t[r][a]):t[r][i]}if(s>0&&n>s&&n-s==1){let r=e.substring(0,s).trim();if(!Array.isArray(t[r]))return!1;let n=t[r],a=[];for(let t=0;t<n.length;t++){this.checkRecordFilters(e,n[t])&&a.push(n[t])}return a}if(a>0){let s=e.substring(0,a).trim();return"object"==typeof t[s]&&t[s]}return null!=typeof t[e]?t[e]:void 0}{let s=o,c=e.substring(o.length+1),l=s.indexOf("["),h=s.indexOf("]"),f=s.indexOf("(");if(f>0&&i.DataFormat.stringCountEnclosures(s)>0){let e=s.substring(0,f).trim();if(n="".concat(n).concat(n.length>0?".":"").concat(s),"function"==(t[e],!1))return!1;let o=i.DataFormat.stringGetSegments(i.DataFormat.stringGetEnclosureValueByIndex(s.substring(e.length),0),",");if(0==o.length||""==o[0])return this.getValueAtAddress(t[e].apply(t),c,n,a);{let s=[],a=void 0===r?t:r;for(let t=0;t<o.length;t++)!(o[t].length>=2)||'"'!=o[t].charAt(0)&&"'"!=o[t].charAt(0)&&"`"!=o[t].charAt(0)||'"'!=o[t].charAt(o[t].length-1)&&"'"!=o[t].charAt(o[t].length-1)&&"`"!=o[t].charAt(o[t].length-1)?s.push(this.getValueAtAddress(a,o[t])):s.push(o[t].substring(1,o[t].length-1));return this.getValueAtAddress(t[e].apply(t,s),c,n,a)}}if(l>0&&h>l&&h-l>1){let e=s.substring(0,l).trim(),r=s.substring(l+1,h).trim(),i=parseInt(r,10);if(Array.isArray(t[e])==isNaN(i))return;if("object"!=typeof t[e])return;return isNaN(i)?(r=this.cleanWrapCharacters('"',r),r=this.cleanWrapCharacters("`",r),r=this.cleanWrapCharacters("'",r),n="".concat(n).concat(n.length>0?".":"").concat(s),this.getValueAtAddress(t[e][r],c,n,a)):(n="".concat(n).concat(n.length>0?".":"").concat(s),this.getValueAtAddress(t[e][i],c,n,a))}if(l>0&&h>l&&h-l==1){let s=e.substring(0,l).trim();if(!Array.isArray(t[s]))return!1;let r=t[s];n="".concat(n).concat(n.length>0?".":"").concat(s);let i={};for(let e=0;e<r.length;e++){let r="".concat(n,"[").concat(e,"]"),o=this.getValueAtAddress(t[s][e],c,r,a);i["".concat(r,".").concat(c)]=o}return i}let u=e.indexOf("{}");if(u>0){let s=e.substring(0,u).trim();if("object"!=typeof t[s])return!1;let r=t[s],i=Object.keys(r);n="".concat(n).concat(n.length>0?".":"").concat(s);let o={};for(let r=0;r<i.length;r++){let l="".concat(n,".").concat(i[r]),h=this.getValueAtAddress(t[s][i[r]],c,l,a);this.checkRecordFilters(e,h)&&(o["".concat(l,".").concat(c)]=h)}return o}return s in t&&"object"!=typeof t[s]?void 0:s in t?(n="".concat(n).concat(n.length>0?".":"").concat(s),this.getValueAtAddress(t[s],c,n,a)):(n="".concat(n).concat(n.length>0?".":"").concat(s),t[s]={},this.getValueAtAddress(t[s],c,n,a))}}}},{"../source/Manyfest-ParseConditionals.js":11,"./Manyfest-CleanWrapCharacters.js":2,"./Manyfest-LogToConsole.js":4,"./Manyfest-ObjectAddress-Parser.js":8}],8:[function(t,e,s){e.exports={stringCountSegments:(t,e,s,r)=>{let n="string"==typeof t?t:"",a="string"==typeof e?e:".",i="object"==typeof s?pEnclosureStart:{"{":0,"[":1,"(":2},o="object"==typeof r?pEnclosureEnd:{"}":0,"]":1,")":2};if(t.length<1)return 0;let c=1,l=[];for(let t=0;t<n.length;t++)n[t]==a&&0==l.length?c++:n[t]in i?l.push(i[n[t]]):n[t]in o&&o[n[t]]==l[l.length-1]&&l.pop();return c},stringGetFirstSegment:(t,e,s,r)=>{let n="string"==typeof t?t:"",a="string"==typeof e?e:".",i="object"==typeof s?pEnclosureStart:{"{":0,"[":1,"(":2},o="object"==typeof r?pEnclosureEnd:{"}":0,"]":1,")":2};if(t.length<1)return 0;let c=[];for(let t=0;t<n.length;t++){if(n[t]==a&&0==c.length)return n.substring(0,t);n[t]in i?c.push(i[n[t]]):n[t]in o&&o[n[t]]==c[c.length-1]&&c.pop()}return n},stringGetSegments:(t,e,s,r)=>{let n="string"==typeof t?t:"",a="string"==typeof e?e:".",i="object"==typeof s?pEnclosureStart:{"{":0,"[":1,"(":2},o="object"==typeof r?pEnclosureEnd:{"}":0,"]":1,")":2},c=0,l=[];if(t.length<1)return l;let h=[];for(let t=0;t<n.length;t++)n[t]==a&&0==h.length?(l.push(n.substring(c,t)),c=t+1):n[t]in i?h.push(i[n[t]]):n[t]in o&&o[n[t]]==h[h.length-1]&&h.pop();return c<n.length&&l.push(n.substring(c)),l},stringCountEnclosures:(t,e,s)=>{let r="string"==typeof t?t:"",n="string"==typeof e?e:"(",a="string"==typeof s?s:")",i=0,o=0;for(let t=0;t<r.length;t++)r[t]==n?(0==o&&i++,o++):r[t]==a&&o--;return i},stringGetEnclosureValueByIndex:(t,e,s,r)=>{let n="string"==typeof t?t:"",a="number"==typeof e?e:0,i="string"==typeof s?s:"(",o="string"==typeof r?r:")",c=0,l=0,h=!1,f=0,u=0;for(let t=0;t<n.length;t++)n[t]==i?(l++,1==l&&(c++,a==c-1&&(h=!0,f=t))):n[t]==o&&(l--,0==l&&h&&u<=f&&(u=t,h=!1));return c<=a?"":u>0&&u>f?n.substring(f+1,u):n.substring(f+1)}}},{}],9:[function(t,e,s){let r=t("./Manyfest-LogToConsole.js"),n=t("./Manyfest-CleanWrapCharacters.js");e.exports=class{constructor(t,e){this.logInfo="function"==typeof t?t:r,this.logError="function"==typeof e?e:r,this.cleanWrapCharacters=n}setValueAtAddress(t,e,s){if("object"!=typeof t)return!1;if("string"!=typeof e)return!1;let r=e.indexOf(".");if(-1==r){let r=e.indexOf("["),n=e.indexOf("]");if(r>0&&n>r&&n-r>1){let a=e.substring(0,r).trim();if("object"!=typeof t[a])return!1;let i=e.substring(r+1,n).trim(),o=parseInt(i,10);return Array.isArray(t[a])!=isNaN(o)&&(isNaN(o)?(i=this.cleanWrapCharacters('"',i),i=this.cleanWrapCharacters("`",i),i=this.cleanWrapCharacters("'",i),t[a][i]=s,!0):(t[a][o]=s,!0))}return t[e]=s,!0}{let n=e.substring(0,r),a=e.substring(r+1),i=n.indexOf("["),o=n.indexOf("]");if(i>0&&o>i&&o-i>1){let e=n.substring(0,i).trim(),r=n.substring(i+1,o).trim(),c=parseInt(r,10);return Array.isArray(t[e])!=isNaN(c)&&(isNaN(c)?(r=this.cleanWrapCharacters('"',r),r=this.cleanWrapCharacters("`",r),r=this.cleanWrapCharacters("'",r),this.setValueAtAddress(t[e][r],a,s)):this.setValueAtAddress(t[e][c],a,s))}return n in t&&"object"!=typeof t[n]?("__ERROR"in t||(t.__ERROR={}),t.__ERROR[e]=s,!1):(n in t||(t[n]={}),this.setValueAtAddress(t[n],a,s))}}}},{"./Manyfest-CleanWrapCharacters.js":2,"./Manyfest-LogToConsole.js":4}],10:[function(t,e,s){let r=t("./Manyfest-LogToConsole.js");e.exports=class{constructor(t,e){this.logInfo="function"==typeof t?t:r,this.logError="function"==typeof e?e:r}generateAddressses(t,e,s){let r="string"==typeof e?e:"",n="object"==typeof s?s:{},a=typeof t,i={Address:r,Hash:r,Name:r,InSchema:!1};switch("object"==a&&null==t&&(a="null"),a){case"string":i.DataType="String",i.Default=t,n[r]=i;break;case"number":case"bigint":i.DataType="Number",i.Default=t,n[r]=i;break;case"undefined":case"null":i.DataType="Any",i.Default=t,n[r]=i;break;case"object":if(Array.isArray(t)){i.DataType="Array",""!=r&&(n[r]=i);for(let e=0;e<t.length;e++)this.generateAddressses(t[e],"".concat(r,"[").concat(e,"]"),n)}else{i.DataType="Object",""!=r&&(n[r]=i,r+=".");let e=Object.keys(t);for(let s=0;s<e.length;s++)this.generateAddressses(t[e[s]],"".concat(r).concat(e[s]),n)}}return n}}},{"./Manyfest-LogToConsole.js":4}],11:[function(t,e,s){const r="<<~?",n="?~>>",a=(t,e,s,r,n)=>{switch(r){case"TRUE":return!0===t.getValueAtAddress(e,s);case"FALSE":return!1===t.getValueAtAddress(e,s);case"LNGT":case"LENGTH_GREATER_THAN":switch(typeof t.getValueAtAddress(e,s)){case"string":case"object":return t.getValueAtAddress(e,s).length>n;default:return!1}break;case"LNLT":case"LENGTH_LESS_THAN":switch(typeof t.getValueAtAddress(e,s)){case"string":case"object":return t.getValueAtAddress(e,s).length<n;default:return!1}break;case"!=":return t.getValueAtAddress(e,s)!=n;case"<":return t.getValueAtAddress(e,s)<n;case">":return t.getValueAtAddress(e,s)>n;case"<=":return t.getValueAtAddress(e,s)<=n;case">=":return t.getValueAtAddress(e,s)>=n;case"===":return t.getValueAtAddress(e,s)===n;default:return t.getValueAtAddress(e,s)==n}};e.exports=(t,e,s)=>{let i=!0,o=e.indexOf(r);for(;-1!=o;){let c=e.indexOf(n,o+4);if(-1!=c){let n=e.substring(o+4,c).split(","),l=n[0],h="EXISTS";n.length>1&&(h=n[1]);let f=!1;n.length>2&&(f=n[2]),i=i&&a(t,s,l,h,f),o=e.indexOf(r,c+4)}else o=-1}return i}},{}],12:[function(t,e,s){let r=t("./Manyfest-LogToConsole.js");e.exports=class{constructor(t,e){this.logInfo="function"==typeof t?t:r,this.logError="function"==typeof e?e:r}resolveAddressMappings(t,e){if("object"!=typeof t)return this.logError("Attempted to resolve address mapping but the descriptor was not an object."),!1;if("object"!=typeof e)return!0;let s=Object.keys(t),r={};return s.forEach((e=>{"Hash"in t[e]&&(r[t[e].Hash]=e)})),Object.keys(e).forEach((s=>{let n=e[s],a=!1,i=!1;s in t?a=s:s in r&&(a=r[s]),a?(i=t[a],delete t[a]):i={Hash:s},t[n]=i})),!0}safeResolveAddressMappings(t,e){let s=JSON.parse(JSON.stringify(t));return this.resolveAddressMappings(s,e),s}mergeAddressMappings(t,e){if("object"!=typeof e||"object"!=typeof t)return this.logError("Attempted to merge two schema descriptors but both were not objects."),!1;let s=JSON.parse(JSON.stringify(e)),r=JSON.parse(JSON.stringify(t));return Object.keys(s).forEach((t=>{t in r||(r[t]=s[t])})),r}}},{"./Manyfest-LogToConsole.js":4}],13:[function(t,e,s){const r=t("fable-serviceproviderbase");let n=t("./Manyfest-LogToConsole.js"),a=t("./Manyfest-HashTranslation.js"),i=t("./Manyfest-ObjectAddress-CheckAddressExists.js"),o=t("./Manyfest-ObjectAddress-GetValue.js"),c=t("./Manyfest-ObjectAddress-SetValue.js"),l=t("./Manyfest-ObjectAddress-DeleteValue.js"),h=t("./Manyfest-ObjectAddressGeneration.js"),f=t("./Manyfest-SchemaManipulation.js");const u={Scope:"DEFAULT",Descriptors:{}};class d extends r{constructor(t,e,s){void 0===t?super({}):super(t,e,s),this.serviceType="Manifest",this.logInfo=n,this.logError=n,this.objectAddressCheckAddressExists=new i(this.logInfo,this.logError),this.objectAddressGetValue=new o(this.logInfo,this.logError),this.objectAddressSetValue=new c(this.logInfo,this.logError),this.objectAddressDeleteValue=new l(this.logInfo,this.logError),"defaultValues"in this.options||(this.options.defaultValues={String:"",Number:0,Float:0,Integer:0,PreciseNumber:"0.0",Boolean:!1,Binary:0,DateTime:0,Array:[],Object:{},Null:null}),"strict"in this.options||(this.options.strict=!1),this.scope=void 0,this.elementAddresses=void 0,this.elementHashes=void 0,this.elementDescriptors=void 0,this.reset(),"object"==typeof this.options&&this.loadManifest(this.options),this.schemaManipulations=new f(this.logInfo,this.logError),this.objectAddressGeneration=new h(this.logInfo,this.logError),this.hashTranslations=new a(this.logInfo,this.logError),this.numberRegex=/^[+-]?(\d+(\.\d*)?|\.\d+)([eE][+-]?\d+)?$/}reset(){this.scope="DEFAULT",this.elementAddresses=[],this.elementHashes={},this.elementDescriptors={}}clone(){let t=JSON.parse(JSON.stringify(this.options)),e=new d(this.getManifest(),this.logInfo,this.logError,t);return e.hashTranslations.addTranslation(this.hashTranslations.translationTable),e}deserialize(t){return this.loadManifest(JSON.parse(t))}loadManifest(t){"object"!=typeof t&&this.logError("(".concat(this.scope,") Error loading manifest; expecting an object but parameter was type ").concat(typeof t,"."));let e="object"==typeof t?t:{},s=Object.keys(u);for(let t=0;t<s.length;t++)s[t]in e||(e[s[t]]=JSON.parse(JSON.stringify(u[s[t]])));if("Scope"in e?"string"==typeof e.Scope?this.scope=e.Scope:this.logError("(".concat(this.scope,") Error loading scope from manifest; expecting a string but property was type ").concat(typeof e.Scope,"."),e):this.logError("(".concat(this.scope,') Error loading scope from manifest object. Property "Scope" does not exist in the root of the object.'),e),"Descriptors"in e)if("object"==typeof e.Descriptors){let t=Object.keys(e.Descriptors);for(let s=0;s<t.length;s++)this.addDescriptor(t[s],e.Descriptors[t[s]])}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 e.Descriptors,"."),e);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.'),e);if("HashTranslations"in e&&"object"==typeof e.HashTranslations)for(let t=0;t<e.HashTranslations.length;t++);}serialize(){return JSON.stringify(this.getManifest())}getManifest(){return{Scope:this.scope,Descriptors:JSON.parse(JSON.stringify(this.elementDescriptors)),HashTranslations:JSON.parse(JSON.stringify(this.hashTranslations.translationTable))}}addDescriptor(t,e){return"object"==typeof e?("Address"in e||(e.Address=t),t in this.elementDescriptors||this.elementAddresses.push(t),this.elementDescriptors[t]=e,this.elementHashes[t]=t,"Hash"in e?this.elementHashes[e.Hash]=t:e.Hash=t,!0):(this.logError("(".concat(this.scope,") Error loading object descriptor for address '").concat(t,"' from manifest object. Expecting an object but property was type ").concat(typeof e,".")),!1)}getDescriptorByHash(t){return this.getDescriptor(this.resolveHashAddress(t))}getDescriptor(t){return this.elementDescriptors[t]}eachDescriptor(t){let e=Object.keys(this.elementDescriptors);for(let s=0;s<e.length;s++)t(this.elementDescriptors[e[s]])}checkAddressExistsByHash(t,e){return this.checkAddressExists(t,this.resolveHashAddress(e))}checkAddressExists(t,e){return this.objectAddressCheckAddressExists.checkAddressExists(t,e)}resolveHashAddress(t){let e,s=t in this.elementHashes,r=t in this.hashTranslations.translationTable;return e=s&&!r?this.elementHashes[t]:r&&this.hashTranslations.translate(t)in this.elementHashes?this.elementHashes[this.hashTranslations.translate(t)]:r?this.hashTranslations.translate(t):t,e}getValueByHash(t,e){let s=this.getValueAtAddress(t,this.resolveHashAddress(e));return void 0===s&&(s=this.getDefaultValue(this.getDescriptorByHash(e))),s}getValueAtAddress(t,e){let s=this.objectAddressGetValue.getValueAtAddress(t,e);return void 0===s&&(s=this.getDefaultValue(this.getDescriptor(e))),s}setValueByHash(t,e,s){return this.setValueAtAddress(t,this.resolveHashAddress(e),s)}setValueAtAddress(t,e,s){return this.objectAddressSetValue.setValueAtAddress(t,e,s)}deleteValueByHash(t,e,s){return this.deleteValueAtAddress(t,this.resolveHashAddress(e),s)}deleteValueAtAddress(t,e,s){return this.objectAddressDeleteValue.deleteValueAtAddress(t,e,s)}validate(t){let e={Error:null,Errors:[],MissingElements:[]};"object"!=typeof t&&(e.Error=!0,e.Errors.push("Expected passed in object to be type object but was passed in ".concat(typeof t)));let s=(t,s)=>{e.Error=!0,e.Errors.push('Element at address "'.concat(t,'" ').concat(s,"."))};for(let r=0;r<this.elementAddresses.length;r++){let n=this.getDescriptor(this.elementAddresses[r]),a=this.checkAddressExists(t,n.Address),i=this.getValueAtAddress(t,n.Address);if(void 0!==i&&a||(e.MissingElements.push(n.Address),(n.Required||this.options.strict)&&s(n.Address,"is flagged REQUIRED but is not set in the object")),n.DataType){let t=typeof i;switch(n.DataType.toString().trim().toLowerCase()){case"string":"string"!=t&&s(n.Address,"has a DataType ".concat(n.DataType," but is of the type ").concat(t));break;case"precisenumber":"string"!=t?s(n.Address,"has a DataType ".concat(n.DataType," but is of the type ").concat(t)):this.numberRegex.test(i)||s(n.Address,"has a DataType ".concat(n.DataType," but is not a valid number"));break;case"number":"number"!=t&&s(n.Address,"has a DataType ".concat(n.DataType," but is of the type ").concat(t));break;case"integer":if("number"!=t)s(n.Address,"has a DataType ".concat(n.DataType," but is of the type ").concat(t));else{i.toString().indexOf(".")>-1&&s(n.Address,"has a DataType ".concat(n.DataType," but has a decimal point in the number."))}break;case"float":"number"!=t&&s(n.Address,"has a DataType ".concat(n.DataType," but is of the type ").concat(t));break;case"datetime":"Invalid Date"==new Date(i).toString()&&s(n.Address,"has a DataType ".concat(n.DataType," but is not parsable as a Date by Javascript"));default:"string"!=t&&s(n.Address,"has a DataType ".concat(n.DataType," (which auto-converted to String because it was unrecognized) but is of the type ").concat(t))}}}return e}getDefaultValue(t){if("object"==typeof t){if("Default"in t)return t.Default;{let e="DataType"in t?t.DataType:"String";return e in this.options.defaultValues?this.options.defaultValues[e]:null}}}populateDefaults(t,e){return this.populateObject(t,e,(t=>"Default"in t))}populateObject(t,e,s){let r="object"==typeof t?t:{},n=void 0!==e&&e,a="function"==typeof s?s:t=>!0;return this.elementAddresses.forEach((t=>{let e=this.getDescriptor(t);a(e)&&(!n&&this.checkAddressExists(r,t)||this.setValueAtAddress(r,t,this.getDefaultValue(e)))})),r}}e.exports=d},{"./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":9,"./Manyfest-ObjectAddressGeneration.js":10,"./Manyfest-SchemaManipulation.js":12,"fable-serviceproviderbase":1}]},{},[13])(13)}));
2
2
  //# sourceMappingURL=manyfest.min.js.map