manyfest 1.0.31 → 1.0.32
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/debug/Harness.js +12 -14
- package/dist/manyfest.compatible.js +502 -66
- package/dist/manyfest.compatible.min.js +1 -1
- package/dist/manyfest.compatible.min.js.map +1 -1
- package/dist/manyfest.js +491 -54
- package/dist/manyfest.min.js +1 -1
- package/dist/manyfest.min.js.map +1 -1
- package/package.json +1 -1
- package/source/Manyfest-ObjectAddress-GetValue.js +16 -2
- package/test/Manyfest_Object_Read_tests.js +45 -0
package/dist/manyfest.min.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";function _defineProperty(e,t,s){return(t=_toPropertyKey(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,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 s=e[Symbol.toPrimitive];if(void 0!==s){var r=s.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}!function(e){if("object"==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,s,r){function a(o,i){if(!s[o]){if(!t[o]){var c="function"==typeof require&&require;if(!i&&c)return c(o,!0);if(n)return n(o,!0);var l=new Error("Cannot find module '"+o+"'");throw l.code="MODULE_NOT_FOUND",l}var h=s[o]={exports:{}};t[o][0].call(h.exports,(function(e){return a(t[o][1][e]||e)}),h,h.exports,e,t,s,r)}return s[o].exports}for(var n="function"==typeof require&&require,o=0;o<r.length;o++)a(r[o]);return a}({1:[function(e,t,s){class r{constructor(e,t,s){"object"==typeof e&&e.isFable?this.connectFable(e):this.fable=!1,this.fable?(this.UUID=e.getUUID(),this.options="object"==typeof t?t:{}):(this.options="object"!=typeof e||e.isFable?"object"==typeof t?t:{}:e,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 t?"".concat(this.UUID):t}connectFable(e){if("object"!=typeof e||!e.isFable){let 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(r,"isFableService",!0),t.exports=r,t.exports.CoreServiceProviderBase=r},{}],2:[function(e,t,s){t.exports=(e,t)=>t.startsWith(e)&&t.endsWith(e)?t.substring(1,t.length-1):t},{}],3:[function(e,t,s){let r=e("./Manyfest-LogToConsole.js");t.exports=class{constructor(e,t){this.logInfo="function"==typeof e?e:r,this.logError="function"==typeof t?t:r,this.translationTable={}}translationCount(){return Object.keys(this.translationTable).length}addTranslation(e){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((t=>{"string"!=typeof e[t]?this.logError("Hash translation addTranslation expected a translation destination hash for [".concat(t,"] to be a string but the referrant was a ").concat(typeof e[t])):this.translationTable[t]=e[t]}))}removeTranslationHash(e){this.translationTable.hasOwnProperty(e)&&delete this.translationTable[e]}removeTranslation(e){if("string"==typeof e)return this.removeTranslationHash(e),!0;if("object"==typeof e){return Object.keys(e).forEach((e=>{this.removeTranslation(e)})),!0}return this.logError("Hash translation removeTranslation expected either a string or an object but the passed-in translation was type ".concat(typeof e)),!1}clearTranslations(){this.translationTable={}}translate(e){return this.translationTable.hasOwnProperty(e)?this.translationTable[e]:e}}},{"./Manyfest-LogToConsole.js":4}],4:[function(e,t,s){t.exports=(e,t)=>{let s="string"==typeof e?e:"";console.log("[Manyfest] ".concat(s)),t&&console.log(JSON.stringify(t))}},{}],5:[function(e,t,s){e("./Manyfest-LogToConsole.js");t.exports=class{constructor(){}checkAddressExists(e,t){if("object"!=typeof e)return!1;if("string"!=typeof t)return!1;let s=t.indexOf(".");if(-1==s){let s=t.indexOf("["),r=t.indexOf("]");if(s>0&&r>s&&r-s>1){let a=t.substring(0,s).trim();if("object"!=typeof e[a])return!1;let n=t.substring(s+1,r).trim(),o=parseInt(n,10);return Array.isArray(e[a])!=isNaN(o)&&(isNaN(o)?(n=this.cleanWrapCharacters('"',n),n=this.cleanWrapCharacters("`",n),n=this.cleanWrapCharacters("'",n),e[a].hasOwnProperty(n)):o in e[a])}return e.hasOwnProperty(t)}{let r=t.substring(0,s),a=t.substring(s+1),n=r.indexOf("["),o=r.indexOf("]");if(n>0&&o>n&&o-n>1){let t=r.substring(0,n).trim(),s=r.substring(n+1,o).trim(),i=parseInt(s,10);return Array.isArray(e[t])!=isNaN(i)&&(isNaN(i)?(s=this.cleanWrapCharacters('"',s),s=this.cleanWrapCharacters("`",s),s=this.cleanWrapCharacters("'",s),this.checkAddressExists(e[t][s],a)):this.checkAddressExists(e[t][i],a))}return(!e.hasOwnProperty(r)||"object"==typeof e[r])&&(e.hasOwnProperty(r)||(e[r]={}),this.checkAddressExists(e[r],a))}}}},{"./Manyfest-LogToConsole.js":4}],6:[function(e,t,s){let r=e("./Manyfest-LogToConsole.js"),a=e("./Manyfest-CleanWrapCharacters.js"),n=e("../source/Manyfest-ParseConditionals.js");t.exports=class{constructor(e,t){this.logInfo="function"==typeof e?e:r,this.logError="function"==typeof t?t:r,this.cleanWrapCharacters=a}checkRecordFilters(e,t){return n(this,e,t)}deleteValueAtAddress(e,t,s){if("object"!=typeof e)return;if("string"!=typeof t)return;let r="";"string"==typeof s&&(r=s);let a=t.indexOf(".");if(-1==a){let s=t.indexOf("["),r=t.indexOf("]"),a=t.indexOf("{}");if(s>0&&r>s&&r-s>1){let a=t.substring(0,s).trim();if("object"!=typeof e[a])return!1;let n=t.substring(s+1,r).trim(),o=parseInt(n,10);return Array.isArray(e[a])!=isNaN(o)&&(isNaN(o)?(n=this.cleanWrapCharacters('"',n),n=this.cleanWrapCharacters("`",n),n=this.cleanWrapCharacters("'",n),delete e[a][n],!0):(delete e[a][o],!0))}if(s>0&&r>s&&r-s==1){let r=t.substring(0,s).trim();if(!Array.isArray(e[r]))return!1;let a=e[r];for(let e=a.length-1;e>=0;e--){this.checkRecordFilters(t,a[e])&&a.splice(e,1)}return!0}if(a>0){let s=t.substring(0,a).trim();return"object"==typeof e[s]&&(delete e[s],!0)}return delete e[t],!0}{let s=t.substring(0,a),n=t.substring(a+1),o=s.indexOf("["),i=s.indexOf("]");if(o>0&&i>o&&i-o>1){let t=s.substring(0,o).trim(),a=s.substring(o+1,i).trim(),c=parseInt(a,10);return Array.isArray(e[t])!=isNaN(c)&&("object"==typeof e[t]&&(isNaN(c)?(a=this.cleanWrapCharacters('"',a),a=this.cleanWrapCharacters("`",a),a=this.cleanWrapCharacters("'",a),r="".concat(r).concat(r.length>0?".":"").concat(s),this.deleteValueAtAddress(e[t][a],n,r)):(r="".concat(r).concat(r.length>0?".":"").concat(s),this.deleteValueAtAddress(e[t][c],n,r))))}if(o>0&&i>o&&i-o==1){let s=t.substring(0,o).trim();if(!Array.isArray(e[s]))return!1;let a=e[s];r="".concat(r).concat(r.length>0?".":"").concat(s);let i={};for(let t=0;t<a.length;t++){let a="".concat(r,"[").concat(t,"]"),o=this.deleteValueAtAddress(e[s][t],n,a);i["".concat(a,".").concat(n)]=o}return i}let c=t.indexOf("{}");if(c>0){let s=t.substring(0,c).trim();if("object"!=typeof e[s])return!1;let a=e[s],o=Object.keys(a);r="".concat(r).concat(r.length>0?".":"").concat(s);let i={};for(let a=0;a<o.length;a++){let c="".concat(r,".").concat(o[a]),l=this.deleteValueAtAddress(e[s][o[a]],n,c);this.checkRecordFilters(t,l)&&(i["".concat(c,".").concat(n)]=l)}return i}return e.hasOwnProperty(s)&&"object"!=typeof e[s]?void 0:e.hasOwnProperty(s)?(r="".concat(r).concat(r.length>0?".":"").concat(s),this.deleteValueAtAddress(e[s],n,r)):(r="".concat(r).concat(r.length>0?".":"").concat(s),e[s]={},this.deleteValueAtAddress(e[s],n,r))}}}},{"../source/Manyfest-ParseConditionals.js":10,"./Manyfest-CleanWrapCharacters.js":2,"./Manyfest-LogToConsole.js":4}],7:[function(e,t,s){let r=e("./Manyfest-LogToConsole.js"),a=e("./Manyfest-CleanWrapCharacters.js"),n=e("../source/Manyfest-ParseConditionals.js");t.exports=class{constructor(e,t){this.logInfo="function"==typeof e?e:r,this.logError="function"==typeof t?t:r,this.cleanWrapCharacters=a}checkRecordFilters(e,t){return n(this,e,t)}getValueAtAddress(e,t,s,r){if("object"!=typeof e)return;if("string"!=typeof t)return;let a="";"string"==typeof s&&(a=s);let n=void 0===r?e:r,o=t.indexOf(".");if(0==o){let e=a.split("."),s=0;for(let e=0;e<t.length&&"."==t.charAt(e);e++)s++;let r=e.length-s;if(r<0)return;{let a=t.slice(s);return r>0&&(a="".concat(e.slice(0,r).join("."),".").concat(a)),this.logInfo("Back-navigation detected. Recursing back to address [".concat(a,"]")),this.getValueAtAddress(n,a)}}if(-1==o){let s=t.indexOf("["),r=t.indexOf("]"),a=t.indexOf("{}");if(s>0&&r>s&&r-s>1){let a=t.substring(0,s).trim();if("object"!=typeof e[a])return;let n=t.substring(s+1,r).trim(),o=parseInt(n,10);if(Array.isArray(e[a])==isNaN(o))return;return isNaN(o)?(n=this.cleanWrapCharacters('"',n),n=this.cleanWrapCharacters("`",n),n=this.cleanWrapCharacters("'",n),e[a][n]):e[a][o]}if(s>0&&r>s&&r-s==1){let r=t.substring(0,s).trim();if(!Array.isArray(e[r]))return!1;let a=e[r],n=[];for(let e=0;e<a.length;e++){this.checkRecordFilters(t,a[e])&&n.push(a[e])}return n}if(a>0){let s=t.substring(0,a).trim();return"object"==typeof e[s]&&e[s]}return null!=typeof e[t]?e[t]:void 0}{let s=t.substring(0,o),r=t.substring(o+1),i=s.indexOf("["),c=s.indexOf("]");if(i>0&&c>i&&c-i>1){let t=s.substring(0,i).trim(),o=s.substring(i+1,c).trim(),l=parseInt(o,10);if(Array.isArray(e[t])==isNaN(l))return;if("object"!=typeof e[t])return;return isNaN(l)?(o=this.cleanWrapCharacters('"',o),o=this.cleanWrapCharacters("`",o),o=this.cleanWrapCharacters("'",o),a="".concat(a).concat(a.length>0?".":"").concat(s),this.getValueAtAddress(e[t][o],r,a,n)):(a="".concat(a).concat(a.length>0?".":"").concat(s),this.getValueAtAddress(e[t][l],r,a,n))}if(i>0&&c>i&&c-i==1){let s=t.substring(0,i).trim();if(!Array.isArray(e[s]))return!1;let o=e[s];a="".concat(a).concat(a.length>0?".":"").concat(s);let c={};for(let t=0;t<o.length;t++){let o="".concat(a,"[").concat(t,"]"),i=this.getValueAtAddress(e[s][t],r,o,n);c["".concat(o,".").concat(r)]=i}return c}let l=t.indexOf("{}");if(l>0){let s=t.substring(0,l).trim();if("object"!=typeof e[s])return!1;let o=e[s],i=Object.keys(o);a="".concat(a).concat(a.length>0?".":"").concat(s);let c={};for(let o=0;o<i.length;o++){let l="".concat(a,".").concat(i[o]),h=this.getValueAtAddress(e[s][i[o]],r,l,n);this.checkRecordFilters(t,h)&&(c["".concat(l,".").concat(r)]=h)}return c}return e.hasOwnProperty(s)&&"object"!=typeof e[s]?void 0:e.hasOwnProperty(s)?(a="".concat(a).concat(a.length>0?".":"").concat(s),this.getValueAtAddress(e[s],r,a,n)):(a="".concat(a).concat(a.length>0?".":"").concat(s),e[s]={},this.getValueAtAddress(e[s],r,a,n))}}}},{"../source/Manyfest-ParseConditionals.js":10,"./Manyfest-CleanWrapCharacters.js":2,"./Manyfest-LogToConsole.js":4}],8:[function(e,t,s){let r=e("./Manyfest-LogToConsole.js"),a=e("./Manyfest-CleanWrapCharacters.js");t.exports=class{constructor(e,t){this.logInfo="function"==typeof e?e:r,this.logError="function"==typeof t?t:r,this.cleanWrapCharacters=a}setValueAtAddress(e,t,s){if("object"!=typeof e)return!1;if("string"!=typeof t)return!1;let r=t.indexOf(".");if(-1==r){let r=t.indexOf("["),a=t.indexOf("]");if(r>0&&a>r&&a-r>1){let n=t.substring(0,r).trim();if("object"!=typeof e[n])return!1;let o=t.substring(r+1,a).trim(),i=parseInt(o,10);return Array.isArray(e[n])!=isNaN(i)&&(isNaN(i)?(o=this.cleanWrapCharacters('"',o),o=this.cleanWrapCharacters("`",o),o=this.cleanWrapCharacters("'",o),e[n][o]=s,!0):(e[n][i]=s,!0))}return e[t]=s,!0}{let a=t.substring(0,r),n=t.substring(r+1),o=a.indexOf("["),i=a.indexOf("]");if(o>0&&i>o&&i-o>1){let t=a.substring(0,o).trim(),r=a.substring(o+1,i).trim(),c=parseInt(r,10);return Array.isArray(e[t])!=isNaN(c)&&(isNaN(c)?(r=this.cleanWrapCharacters('"',r),r=this.cleanWrapCharacters("`",r),r=this.cleanWrapCharacters("'",r),this.setValueAtAddress(e[t][r],n,s)):this.setValueAtAddress(e[t][c],n,s))}return e.hasOwnProperty(a)&&"object"!=typeof e[a]?(e.hasOwnProperty("__ERROR")||(e.__ERROR={}),e.__ERROR[t]=s,!1):(e.hasOwnProperty(a)||(e[a]={}),this.setValueAtAddress(e[a],n,s))}}}},{"./Manyfest-CleanWrapCharacters.js":2,"./Manyfest-LogToConsole.js":4}],9:[function(e,t,s){let r=e("./Manyfest-LogToConsole.js");t.exports=class{constructor(e,t){this.logInfo="function"==typeof e?e:r,this.logError="function"==typeof t?t:r}generateAddressses(e,t,s){let r="string"==typeof t?t:"",a="object"==typeof s?s:{},n=typeof e,o={Address:r,Hash:r,Name:r,InSchema:!1};switch("object"==n&&null==e&&(n="null"),n){case"string":o.DataType="String",o.Default=e,a[r]=o;break;case"number":case"bigint":o.DataType="Number",o.Default=e,a[r]=o;break;case"undefined":case"null":o.DataType="Any",o.Default=e,a[r]=o;break;case"object":if(Array.isArray(e)){o.DataType="Array",""!=r&&(a[r]=o);for(let t=0;t<e.length;t++)this.generateAddressses(e[t],"".concat(r,"[").concat(t,"]"),a)}else{o.DataType="Object",""!=r&&(a[r]=o,r+=".");let t=Object.keys(e);for(let s=0;s<t.length;s++)this.generateAddressses(e[t[s]],"".concat(r).concat(t[s]),a)}}return a}}},{"./Manyfest-LogToConsole.js":4}],10:[function(e,t,s){const r="<<~?",a="?~>>";let n=new(e("./Manyfest-ObjectAddress-CheckAddressExists.js"));const o=(e,t,s,r,a)=>{switch(r){case"TRUE":return!0===e.getValueAtAddress(t,s);case"FALSE":case"FALSE":return!1===e.getValueAtAddress(t,s);case"LNGT":case"LENGTH_GREATER_THAN":switch(typeof typeof e.getValueAtAddress(t,s)){case"string":case"object":return e.getValueAtAddress(t,s).length>a;default:return!1}break;case"LNLT":case"LENGTH_LESS_THAN":switch(typeof typeof e.getValueAtAddress(t,s)){case"string":case"object":return e.getValueAtAddress(t,s).length<a;default:return!1}break;case"EX":case"EXISTS":return n.checkAddressExists(t,s);case"DNEX":case"DOES_NOT_EXIST":return!n.checkAddressExists(t,s);case"!=":return e.getValueAtAddress(t,s)!=a;case"<":return e.getValueAtAddress(t,s)<a;case">":return e.getValueAtAddress(t,s)>a;case"<=":return e.getValueAtAddress(t,s)<=a;case">=":return e.getValueAtAddress(t,s)>=a;case"===":return e.getValueAtAddress(t,s)===a;default:return e.getValueAtAddress(t,s)==a}};t.exports=(e,t,s)=>{let n=!0,i=t.indexOf(r);for(;-1!=i;){let c=t.indexOf(a,i+4);if(-1!=c){let a=t.substring(i+4,c).split(","),l=a[0],h="EXISTS";a.length>1&&(h=a[1]);let d=!1;a.length>2&&(d=a[2]),n=n&&o(e,s,l,h,d),i=t.indexOf(r,c+4)}else i=-1}return n}},{"./Manyfest-ObjectAddress-CheckAddressExists.js":5}],11:[function(e,t,s){let r=e("./Manyfest-LogToConsole.js");t.exports=class{constructor(e,t){this.logInfo="function"==typeof e?e:r,this.logError="function"==typeof t?t:r}resolveAddressMappings(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;let s=Object.keys(e),r={};return s.forEach((t=>{e[t].hasOwnProperty("Hash")&&(r[e[t].Hash]=t)})),Object.keys(t).forEach((s=>{let a=t[s],n=!1,o=!1;e.hasOwnProperty(s)?n=s:r.hasOwnProperty(s)&&(n=r[s]),n?(o=e[n],delete e[n]):o={Hash:s},e[a]=o})),!0}safeResolveAddressMappings(e,t){let s=JSON.parse(JSON.stringify(e));return this.resolveAddressMappings(s,t),s}mergeAddressMappings(e,t){if("object"!=typeof t||"object"!=typeof e)return this.logError("Attempted to merge two schema descriptors but both were not objects."),!1;let s=JSON.parse(JSON.stringify(t)),r=JSON.parse(JSON.stringify(e));return Object.keys(s).forEach((e=>{r.hasOwnProperty(e)||(r[e]=s[e])})),r}}},{"./Manyfest-LogToConsole.js":4}],12:[function(e,t,s){const r=e("fable-serviceproviderbase");let a=e("./Manyfest-LogToConsole.js"),n=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"),h=e("./Manyfest-ObjectAddressGeneration.js"),d=e("./Manyfest-SchemaManipulation.js");const f={Scope:"DEFAULT",Descriptors:{}};class p extends r{constructor(e,t,s){void 0===e?super({}):super(e,t,s),this.serviceType="Manifest",this.logInfo=a,this.logError=a,this.objectAddressCheckAddressExists=new o(this.logInfo,this.logError),this.objectAddressGetValue=new i(this.logInfo,this.logError),this.objectAddressSetValue=new c(this.logInfo,this.logError),this.objectAddressDeleteValue=new l(this.logInfo,this.logError),this.options.hasOwnProperty("defaultValues")||(this.options.defaultValues={String:"",Number:0,Float:0,Integer:0,Boolean:!1,Binary:0,DateTime:0,Array:[],Object:{},Null:null}),this.options.hasOwnProperty("strict")||(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 d(this.logInfo,this.logError),this.objectAddressGeneration=new h(this.logInfo,this.logError),this.hashTranslations=new n(this.logInfo,this.logError)}reset(){this.scope="DEFAULT",this.elementAddresses=[],this.elementHashes={},this.elementDescriptors={}}clone(){let e=JSON.parse(JSON.stringify(this.options)),t=new p(this.getManifest(),this.logInfo,this.logError,e);return t.hashTranslations.addTranslation(this.hashTranslations.translationTable),t}deserialize(e){return this.loadManifest(JSON.parse(e))}loadManifest(e){"object"!=typeof e&&this.logError("(".concat(this.scope,") Error loading manifest; expecting an object but parameter was type ").concat(typeof e,"."));let t="object"==typeof e?e:{},s=Object.keys(f);for(let e=0;e<s.length;e++)t.hasOwnProperty(s[e])||(t[s[e]]=JSON.parse(JSON.stringify(f[s[e]])));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){let e=Object.keys(t.Descriptors);for(let s=0;s<e.length;s++)this.addDescriptor(e[s],t.Descriptors[e[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 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(let e=0;e<t.HashTranslations.length;e++);}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(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)}getDescriptorByHash(e){return this.getDescriptor(this.resolveHashAddress(e))}getDescriptor(e){return this.elementDescriptors[e]}eachDescriptor(e){let t=Object.keys(this.elementDescriptors);for(let s=0;s<t.length;s++)e(this.elementDescriptors[t[s]])}checkAddressExistsByHash(e,t){return this.checkAddressExists(e,this.resolveHashAddress(t))}checkAddressExists(e,t){return this.objectAddressCheckAddressExists.checkAddressExists(e,t)}resolveHashAddress(e){let t,s=this.elementHashes.hasOwnProperty(e),r=this.hashTranslations.translationTable.hasOwnProperty(e);return t=s&&!r?this.elementHashes[e]:r&&this.elementHashes.hasOwnProperty(this.hashTranslations.translate(e))?this.elementHashes[this.hashTranslations.translate(e)]:r?this.hashTranslations.translate(e):e,t}getValueByHash(e,t){let s=this.getValueAtAddress(e,this.resolveHashAddress(t));return void 0===s&&(s=this.getDefaultValue(this.getDescriptorByHash(t))),s}getValueAtAddress(e,t){let s=this.objectAddressGetValue.getValueAtAddress(e,t);return void 0===s&&(s=this.getDefaultValue(this.getDescriptor(t))),s}setValueByHash(e,t,s){return this.setValueAtAddress(e,this.resolveHashAddress(t),s)}setValueAtAddress(e,t,s){return this.objectAddressSetValue.setValueAtAddress(e,t,s)}deleteValueByHash(e,t,s){return this.deleteValueAtAddress(e,this.resolveHashAddress(t),s)}deleteValueAtAddress(e,t,s){return this.objectAddressDeleteValue.deleteValueAtAddress(e,t,s)}validate(e){let 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)));let s=(e,s)=>{t.Error=!0,t.Errors.push('Element at address "'.concat(e,'" ').concat(s,"."))};for(let r=0;r<this.elementAddresses.length;r++){let a=this.getDescriptor(this.elementAddresses[r]),n=this.checkAddressExists(e,a.Address),o=this.getValueAtAddress(e,a.Address);if(void 0!==o&&n||(t.MissingElements.push(a.Address),(a.Required||this.options.strict)&&s(a.Address,"is flagged REQUIRED but is not set in the object")),a.DataType){let e=typeof o;switch(a.DataType.toString().trim().toLowerCase()){case"string":"string"!=e&&s(a.Address,"has a DataType ".concat(a.DataType," but is of the type ").concat(e));break;case"number":"number"!=e&&s(a.Address,"has a DataType ".concat(a.DataType," but is of the type ").concat(e));break;case"integer":if("number"!=e)s(a.Address,"has a DataType ".concat(a.DataType," but is of the type ").concat(e));else{o.toString().indexOf(".")>-1&&s(a.Address,"has a DataType ".concat(a.DataType," but has a decimal point in the number."))}break;case"float":"number"!=e&&s(a.Address,"has a DataType ".concat(a.DataType," but is of the type ").concat(e));break;case"DateTime":"Invalid Date"==new Date(o).toString()&&s(a.Address,"has a DataType ".concat(a.DataType," but is not parsable as a Date by Javascript"));default:"string"!=e&&s(a.Address,"has a DataType ".concat(a.DataType," (which auto-converted to String because it was unrecognized) but is of the type ").concat(e))}}}return t}getDefaultValue(e){if("object"==typeof e){if(e.hasOwnProperty("Default"))return e.Default;{let t=e.hasOwnProperty("DataType")?e.DataType:"String";return this.options.defaultValues.hasOwnProperty(t)?this.options.defaultValues[t]:null}}}populateDefaults(e,t){return this.populateObject(e,t,(e=>e.hasOwnProperty("Default")))}populateObject(e,t,s){let r="object"==typeof e?e:{},a=void 0!==t&&t,n="function"==typeof s?s:e=>!0;return this.elementAddresses.forEach((e=>{let t=this.getDescriptor(e);n(t)&&(!a&&this.checkAddressExists(r,e)||this.setValueAtAddress(r,e,this.getDefaultValue(t)))})),r}}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 _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(o,i){if(!s[o]){if(!e[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 h=s[o]={exports:{}};e[o][0].call(h.exports,(function(t){return n(e[o][1][t]||t)}),h,h.exports,t,e,s,r)}return s[o].exports}for(var a="function"==typeof require&&require,o=0;o<r.length;o++)n(r[o]);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){this.translationTable.hasOwnProperty(t)&&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 this.translationTable.hasOwnProperty(t)?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!(!t.hasOwnProperty(s)||"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(),o=parseInt(a,10);return Array.isArray(t[n])!=isNaN(o)&&(isNaN(o)?(a=this.cleanWrapCharacters('"',a),a=this.cleanWrapCharacters("`",a),a=this.cleanWrapCharacters("'",a),t[n].hasOwnProperty(a)):o in t[n])}return t.hasOwnProperty(e)}{let o=n,i=e.substring(n.length+1),c=o.indexOf("["),l=o.indexOf("]"),h=o.indexOf("(");if(h>0&&a.DataFormat.stringCountEnclosures(o)>0){let e=o.substring(0,h).trim();if("function"==(t[e],!1))return!1;let n=a.DataFormat.stringGetSegments(a.DataFormat.stringGetEnclosureValueByIndex(o.substring(e.length),0),",");if(0==n.length||""==n[0])return this.checkAddressExists(t[e].apply(t),i,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),i,a)}}if(c>0&&l>c&&l-c>1){let e=o.substring(0,c).trim(),s=o.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],i,r)):this.checkAddressExists(t[e][n],i,r))}return(!t.hasOwnProperty(o)||"object"==typeof t[o])&&(t.hasOwnProperty(o)||(t[o]={}),this.checkAddressExists(t[o],i,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(),o=parseInt(a,10);return Array.isArray(t[n])!=isNaN(o)&&(isNaN(o)?(a=this.cleanWrapCharacters('"',a),a=this.cleanWrapCharacters("`",a),a=this.cleanWrapCharacters("'",a),delete t[n][a],!0):(delete t[n][o],!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),o=s.indexOf("["),i=s.indexOf("]");if(o>0&&i>o&&i-o>1){let e=s.substring(0,o).trim(),n=s.substring(o+1,i).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(o>0&&i>o&&i-o==1){let s=e.substring(0,o).trim();if(!Array.isArray(t[s]))return!1;let n=t[s];r="".concat(r).concat(r.length>0?".":"").concat(s);let i={};for(let e=0;e<n.length;e++){let n="".concat(r,"[").concat(e,"]"),o=this.deleteValueAtAddress(t[s][e],a,n);i["".concat(n,".").concat(a)]=o}return i}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],o=Object.keys(n);r="".concat(r).concat(r.length>0?".":"").concat(s);let i={};for(let n=0;n<o.length;n++){let c="".concat(r,".").concat(o[n]),l=this.deleteValueAtAddress(t[s][o[n]],a,c);this.checkRecordFilters(e,l)&&(i["".concat(c,".").concat(a)]=l)}return i}return t.hasOwnProperty(s)&&"object"!=typeof t[s]?void 0:t.hasOwnProperty(s)?(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"),o={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,i=o.DataFormat.stringGetFirstSegment(e);if(""==i){let t=o.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(i.length==e.length){let s=e.indexOf("["),n=e.indexOf("]"),a=e.indexOf("{}"),i=e.indexOf("(");if(i>0&&o.DataFormat.stringCountEnclosures(e)>0){let s=e.substring(0,i).trim();if("function"==(t[s],!1))return!1;let n=o.DataFormat.stringGetSegments(o.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][0]&&"'"==n[t][n[t].length-1]||'"'==n[t][0]&&'"'==n[t][n[t].length-1]||"`"==n[t][0]&&"`"==n[t][n[t].length-1]?e.push(n[t].substring(1,n[t].length-1)):e.push(this.getValueAtAddress(a,n[t]));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(),o=parseInt(a,10);if(Array.isArray(t[r])==isNaN(o))return;return isNaN(o)?(a=this.cleanWrapCharacters('"',a),a=this.cleanWrapCharacters("`",a),a=this.cleanWrapCharacters("'",a),t[r][a]):t[r][o]}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=i,c=e.substring(i.length+1),l=s.indexOf("["),h=s.indexOf("]"),f=s.indexOf("(");if(f>0&&o.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 i=o.DataFormat.stringGetSegments(o.DataFormat.stringGetEnclosureValueByIndex(s.substring(e.length),0),",");if(0==i.length||""==i[0])return this.getValueAtAddress(t[e].apply(t),c,n,a);{let s=[],a=void 0===r?t:r;for(let t=0;t<i.length;t++)s.push(this.getValueAtAddress(a,i[t]));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(),o=parseInt(r,10);if(Array.isArray(t[e])==isNaN(o))return;if("object"!=typeof t[e])return;return isNaN(o)?(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][o],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 o={};for(let e=0;e<r.length;e++){let r="".concat(n,"[").concat(e,"]"),i=this.getValueAtAddress(t[s][e],c,r,a);o["".concat(r,".").concat(c)]=i}return o}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],o=Object.keys(r);n="".concat(n).concat(n.length>0?".":"").concat(s);let i={};for(let r=0;r<o.length;r++){let l="".concat(n,".").concat(o[r]),h=this.getValueAtAddress(t[s][o[r]],c,l,a);this.checkRecordFilters(e,h)&&(i["".concat(l,".").concat(c)]=h)}return i}return t.hasOwnProperty(s)&&"object"!=typeof t[s]?void 0:t.hasOwnProperty(s)?(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:".",o="object"==typeof s?pEnclosureStart:{"{":0,"[":1,"(":2},i="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++:o.hasOwnProperty(n[t])?l.push(o[n[t]]):i.hasOwnProperty(n[t])&&i[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:".",o="object"==typeof s?pEnclosureStart:{"{":0,"[":1,"(":2},i="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);o.hasOwnProperty(n[t])?c.push(o[n[t]]):i.hasOwnProperty(n[t])&&i[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:".",o="object"==typeof s?pEnclosureStart:{"{":0,"[":1,"(":2},i="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):o.hasOwnProperty(n[t])?h.push(o[n[t]]):i.hasOwnProperty(n[t])&&i[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:")",o=0,i=0;for(let t=0;t<r.length;t++)r[t]==n?(0==i&&o++,i++):r[t]==a&&i--;return o},stringGetEnclosureValueByIndex:(t,e,s,r)=>{let n="string"==typeof t?t:"",a="number"==typeof e?e:0,o="string"==typeof s?s:"(",i="string"==typeof r?r:")",c=0,l=0,h=!1,f=0,u=0;for(let t=0;t<n.length;t++)n[t]==o?(l++,1==l&&(c++,a==c-1&&(h=!0,f=t))):n[t]==i&&(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 o=e.substring(r+1,n).trim(),i=parseInt(o,10);return Array.isArray(t[a])!=isNaN(i)&&(isNaN(i)?(o=this.cleanWrapCharacters('"',o),o=this.cleanWrapCharacters("`",o),o=this.cleanWrapCharacters("'",o),t[a][o]=s,!0):(t[a][i]=s,!0))}return t[e]=s,!0}{let n=e.substring(0,r),a=e.substring(r+1),o=n.indexOf("["),i=n.indexOf("]");if(o>0&&i>o&&i-o>1){let e=n.substring(0,o).trim(),r=n.substring(o+1,i).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 t.hasOwnProperty(n)&&"object"!=typeof t[n]?(t.hasOwnProperty("__ERROR")||(t.__ERROR={}),t.__ERROR[e]=s,!1):(t.hasOwnProperty(n)||(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,o={Address:r,Hash:r,Name:r,InSchema:!1};switch("object"==a&&null==t&&(a="null"),a){case"string":o.DataType="String",o.Default=t,n[r]=o;break;case"number":case"bigint":o.DataType="Number",o.Default=t,n[r]=o;break;case"undefined":case"null":o.DataType="Any",o.Default=t,n[r]=o;break;case"object":if(Array.isArray(t)){o.DataType="Array",""!=r&&(n[r]=o);for(let e=0;e<t.length;e++)this.generateAddressses(t[e],"".concat(r,"[").concat(e,"]"),n)}else{o.DataType="Object",""!=r&&(n[r]=o,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 o=!0,i=e.indexOf(r);for(;-1!=i;){let c=e.indexOf(n,i+4);if(-1!=c){let n=e.substring(i+4,c).split(","),l=n[0],h="EXISTS";n.length>1&&(h=n[1]);let f=!1;n.length>2&&(f=n[2]),o=o&&a(t,s,l,h,f),i=e.indexOf(r,c+4)}else i=-1}return o}},{}],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=>{t[e].hasOwnProperty("Hash")&&(r[t[e].Hash]=e)})),Object.keys(e).forEach((s=>{let n=e[s],a=!1,o=!1;t.hasOwnProperty(s)?a=s:r.hasOwnProperty(s)&&(a=r[s]),a?(o=t[a],delete t[a]):o={Hash:s},t[n]=o})),!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=>{r.hasOwnProperty(t)||(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"),o=t("./Manyfest-ObjectAddress-CheckAddressExists.js"),i=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 o(this.logInfo,this.logError),this.objectAddressGetValue=new i(this.logInfo,this.logError),this.objectAddressSetValue=new c(this.logInfo,this.logError),this.objectAddressDeleteValue=new l(this.logInfo,this.logError),this.options.hasOwnProperty("defaultValues")||(this.options.defaultValues={String:"",Number:0,Float:0,Integer:0,Boolean:!1,Binary:0,DateTime:0,Array:[],Object:{},Null:null}),this.options.hasOwnProperty("strict")||(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++)e.hasOwnProperty(s[t])||(e[s[t]]=JSON.parse(JSON.stringify(u[s[t]])));if(e.hasOwnProperty("Scope")?"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),e.hasOwnProperty("Descriptors"))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(e.hasOwnProperty("HashTranslations")&&"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?(e.hasOwnProperty("Address")||(e.Address=t),this.elementDescriptors.hasOwnProperty(t)||this.elementAddresses.push(t),this.elementDescriptors[t]=e,this.elementHashes[t]=t,e.hasOwnProperty("Hash")?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=this.elementHashes.hasOwnProperty(t),r=this.hashTranslations.translationTable.hasOwnProperty(t);return e=s&&!r?this.elementHashes[t]:r&&this.elementHashes.hasOwnProperty(this.hashTranslations.translate(t))?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),o=this.getValueAtAddress(t,n.Address);if(void 0!==o&&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 o;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{o.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(o).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(t.hasOwnProperty("Default"))return t.Default;{let e=t.hasOwnProperty("DataType")?t.DataType:"String";return this.options.defaultValues.hasOwnProperty(e)?this.options.defaultValues[e]:null}}}populateDefaults(t,e){return this.populateObject(t,e,(t=>t.hasOwnProperty("Default")))}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
|