Comparing version 5.0.3 to 5.1.0
@@ -1,1 +0,1 @@ | ||
!function(e){function r(t){if(n[t])return n[t].exports;var i=n[t]={exports:{},id:t,loaded:!1};return e[t].call(i.exports,i,i.exports,r),i.loaded=!0,i.exports}var n={};return r.m=e,r.c=n,r.p="",r(0)}([function(e,r,n){"use strict";function t(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(r,"__esModule",{value:!0});var i=n(1),o=t(i);!function(){(0,o["default"])()}(),r.createCache=o["default"]},function(e,r,n){"use strict";function t(e){if(e&&e.__esModule)return e;var r={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r["default"]=e,r}function i(e){return e&&e.__esModule?e:{"default":e}}function o(e){if(Array.isArray(e)){for(var r=0,n=Array(e.length);r<e.length;r++)n[r]=e[r];return n}return Array.from(e)}function u(){var e=arguments.length<=0||void 0===arguments[0]?!0:arguments[0],r=arguments.length<=1||void 0===arguments[1]?"One":arguments[1];return window?(void 0===window[r]&&(window[r]=a(e)),window[r]):a(e)}function a(){function e(e){return"undefined"==typeof e?!1:void 0!=E[e]}function r(r){if("undefined"==typeof r)throw new ReferenceError("Cannot create thread. Missing thread id");if(e(r))return E[r];var t=n(r);return E[r]=t,t}function n(e){var r=u();return r.id=e,r.current=-1,r.nodes=[],r}function t(){return E[O]}function i(){var e=u();return e.id=g,g+=1,p.set(e.id,e),e}function u(){var e={};return Object.defineProperty(e,"length",{value:0,enumerable:!1,writable:!0}),Object.defineProperty(e,"addThread",{value:function(r,n){return e[r]?!1:(e[r]=n,e.length+=1,!0)},enumerable:!1,writable:!1}),Object.defineProperty(e,"removeThread",{value:function(r){return"undefined"!=typeof e[r]?(e[r]=void 0,e.length-=1,!0):!1},enumerable:!1,writable:!1}),e}function a(e,r){for(var n,t,i=0,o=e.length-1;o>=i;)if(n=(i+o)/2|0,t=e[n],r>t)i=n+1;else{if(!(t>r))return n;o=n-1}return-1}function c(){var e=arguments.length<=0||void 0===arguments[0]?O:arguments[0],r=E[e],n=r?r.nodes[r.current]:void 0;return n>=0?s(n):void 0}function s(e){return p.get(e)}var v=arguments.length<=0||void 0===arguments[0]?!1:arguments[0],O="main",g=0,p=new Map,E=u(),F=[],R=u(),T=u(),y=function(){R=u(),E=u(),p.clear(),r(O),g=0};y();for(var _=function(){var e=arguments.length<=0||void 0===arguments[0]?O:arguments[0],r=E[e];return r&&e!==O?r.current+1:-1},b=function(e){if(Ae()>0)throw new Error("You may only configure an empty cache. Please clear the cache first and then configure.");d.config(e)},m=function(e){var r=arguments.length<=1||void 0===arguments[1]?O:arguments[1],n=arguments.length<=2||void 0===arguments[2]?!0:arguments[2];if(r=j(r,!0),r.indexOf(O)<0&&r.unshift(O),(0,f.isArray)(e)||(0,f.isObject)(e)){var t=new Map,i=new Map;t.set(l.UPDATED_KEY,!1),Z(e,t,null,i,n),L(t);var u=t.get(l.UPDATED_KEY);t["delete"](l.UPDATED_KEY);var a=!1;return t.size>0&&u&&(xe(r),pe([].concat(o(t.values())),r,i),Le(),a=!0),Ne(a)}return e},j=function(e){var r=arguments.length<=1||void 0===arguments[1]?!1:arguments[1],n=void 0,t=r===!0;if((0,f.isArray)(e))t&&e.forEach(function(e){M(e)}),n=e;else if("string"==typeof e)t&&M(e),n=[e];else{if("number"!=typeof e)throw new TypeError("Thread id must be one of 'string', 'number' or an array of strings or numbers");e=String(e),t&&M(e),n=[e]}return n},M=function(n){e(n)||r(n)},w=function(e){var r=arguments.length<=1||void 0===arguments[1]?O:arguments[1];if("undefined"==typeof e)throw new TypeError("Cannot close thread. Missing thread id");return S(e,!0,r)},N=function(e){var r=arguments.length<=1||void 0===arguments[1]?O:arguments[1];if("undefined"==typeof e)throw new TypeError("Cannot merge thread. Missing threadId");return S(e,!1,r)},P=function(e){if(e===O)throw new TypeError("You may not cancel the main thread. Pfft.");if("undefined"==typeof e)return Ne(!1);var r=E[e];if(!r)return Ne(!1);var n=r.nodes,t=[];return n.forEach(function(r){var n=p.get(r);n&&(n.threads.removeThread(e),n.threads.length<=1&&t.push(r))}),z(t),E.removeThread(e),Ne(!0)},S=function(e){var r=arguments.length<=1||void 0===arguments[1]?!0:arguments[1],n=arguments.length<=2||void 0===arguments[2]?O:arguments[2];if("undefined"!=typeof e){if(e===O)throw new TypeError("You may not remove the main thread");var t=E[e];if(t){var i=Ye(e)-1,o=t.current;if(o>=0){var u=function(){var u=[];return r===!0?t.nodes=t.nodes.reduce(function(r,t,a){var f=s(t);return 0==a||a==o?(f.threads.removeThread(e),Je(f,n),r.push(t)):i>=a&&(f.threads.removeThread(e),f.threads.length<=1&&u.push(t)),r},[]):t.nodes.forEach(function(r,t){var i=p.get(r);i&&(i.threads.removeThread(e),o>=t?Je(i,n):i.threads.length<=1&&u.push(r))}),z(u),E.removeThread(e),{v:Ne(!0)}}();if("object"==typeof u)return u.v}}}},z=function(e){var r=E[O];e.forEach(function(e){var n=a(r.nodes,e);r.nodes.splice(n,1),p["delete"](e),r.current-=1})},A=function(e){var r=E[e];if(!r)return!1;var n=c(O);return r&&I(e,n)},Y=function(){var e=[];for(var r in E)E.hasOwnProperty(r)&&E[r]&&e.push(r);return e},I=function(e,r){return r.threads&&void 0!==r.threads[e]},x=function(e){function r(e,r){if((0,f.hasUid)(e)){var t=e[d.prop.uidName],i=R[t];!n&&i||!n&&H(t)||(K(t)||(R.length+=1),R[t]=e,r.push(t))}}var n=arguments.length<=1||void 0===arguments[1]?!1:arguments[1],t=[];(0,f.isArray)(e)?e.forEach(function(e){r(e,t)}):(0,f.isObject)(e)&&r(e,t);var i=t.length>0;return i&&Le(t),t.length},U=function(e){var r=Fe(e);if(r)return R[r]?(R[r]=void 0,R.length>0&&(R.length-=1),!0):!1},C=function(e){var r=arguments.length<=1||void 0===arguments[1]?!1:arguments[1];if(R.length>0){var n=[];for(var t in R)R.hasOwnProperty(t)&&n.push(R[t]);var i=m(n,e,r);return i.success===!0&&(R=u()),i}return Ne(!1)},D=function(e){e&&(0,f.hasUid)(e)&&(T[e[d.prop.uidName]]=e)},K=function(e){var r=Fe(e);if(r)return R[r]},J=function(){return Object.keys(R).length>0},q=function(){return Object.keys(T).length>0},Q=function(){return J()||q()},H=function(e){var r=arguments.length<=1||void 0===arguments[1]?O:arguments[1];if(!e)throw new TypeError("Cache-uid get(): requires a uid to retrieve an item from the cache.");return(0,f.isArray)(e)?e.map(function(e){return Ee(e,r)}).filter(function(e){return null!==e&&void 0!==e}):Ee(e,r)},k=function(e){var r=G(e);if(0==r.length)return!1;var n=ge(),t=r.some(function(e){return n&&n.has(String(e))});if(!t)return!1;var i=new Map;n.forEach(function(e,r){i.set(r,e)}),xe();var o=new Map,u=new Map;return r.forEach(function(e){V(e,o,u),u.set(e,null),W(e,o)}),o.forEach(function(e,r){i.set(r,e)}),u.forEach(function(e,r){i["delete"](r)}),De(i,O),Le(),!0},G=function(e){var r=[];if((0,f.isArray)(e))e.forEach(function(e){(0,f.hasUid)(e)?r.push(String(e[d.prop.uidName])):r.push(String(e))});else{var n=e;if((0,f.isObject)(e)&&(n=e[d.prop.uidName]),void 0===n)return!1;r.push(String(n))}return r},L=function(e){var r=new Map;e.forEach(function(r,n){if(n!==l.UPDATED_KEY){var t=r[l.REF_FROM];for(var i in t)if(t.hasOwnProperty(i)){var o=t[i],u=e.get(i);if(u||(u=qe(i)),u&&o.length>0){var a=o[0],c=h.get(u[l.ENTITY],a),s=c&&c!==r[l.ENTITY];s===!0&&(u=_e(u[l.ENTITY],e),u[l.ENTITY]=(0,f.deepClone)(u[l.ENTITY],r[l.ENTITY],!0,!0))}}}}),r.forEach(function(r,n){e.set(n,r)})},Z=function(e,r,n,t,i){(0,f.hasUid)(e)?B(e,r,n,t,i):((0,f.isArray)(e)?he(e,r,n,t,i):ce(e,r,n,t,i),Object.freeze(e))},B=function(e,r,n,t,i){var o=String(e[d.prop.uidName]);se(e)!==!0&&(r.has(o)?ce(e,r,n,t):(_e(e,r),n=String(o),ce(e,r,n,t),Object.isFrozen(e)||Object.freeze(e)),$(o,r,t))},V=function er(e,r,n){var t=qe(e);if(t){var i=t[l.REF_TO];for(var o in i)if(i.hasOwnProperty(o)){var u=X(o,r);u&&(ue(u,e),0===u[l.REF_FROM].length?(er(o,r,n),n.set(o,u)):r.set(o,u))}}},W=function(e,r){var n=X(e,r);if(n){var t=n[l.REF_FROM];for(var i in t)if(t.hasOwnProperty(i)){var o=X(i,r);if(o){var u=ae(o,e);u===!0&&r.set(i,o)}}}},X=function(e,r){if(e){e=String(e);var n=r.get(e);return n||(n=qe(e)),Object.isFrozen(n)&&(n=me(n)),n}},$=function(e,r,n){var t=X(e,r);if(t){var i=t[l.REF_TO],o=function(o){if(i.hasOwnProperty(o)){var u=i[o],a=u.map(function(i){var u=h.get(t[l.ENTITY],i);if(u){var a=u[d.prop.uidName];if(a){var f=a==o;if(f===!0)return i}}re(e,o,i,r,n)}).filter(function(e){return null!==e&&void 0!==e});Object.isFrozen(t[l.REF_TO])&&ne(t,l.REF_TO),a.length>0?t[l.REF_TO][o]=a:(t[l.REF_TO][o]=void 0,delete t[l.REF_TO][o])}};for(var u in i)o(u)}},ee=function(e){Object.freeze(e),Object.freeze(e[l.ENTITY]),Object.freeze(e[l.REF_TO]),Object.freeze(e[l.REF_FROM])},re=function(e,r,n,t,i){var o=X(r,t);o&&(o=Object.assign({},o),ne(o,l.REF_FROM),o[l.REF_FROM].hasOwnProperty(e)&&(oe(o,e,n),0===o[l.REF_FROM].length?(i.set(r,o),t["delete"](r)):(t.set(r,o),i["delete"](r))))},ne=function(e,r){var n=e[r].length;e[r]=Object.assign(u(),e[r]),e[r].length=n},te=function(e,r,n){Object.isFrozen(e)&&(e=me(e));var t=e[l.REF_TO];e[l.REF_TO][r]||(Object.isFrozen(e[l.REF_TO])&&(e[l.REF_TO]=Object.assign(u(),e[l.REF_TO]),t=e[l.REF_TO]),e[l.REF_TO][r]=[],e[l.REF_TO].length+=1);var i=t[r];return Object.isFrozen(i)&&(t[r]=i.slice(),i=t[r]),i.indexOf(n)<0&&i.push(n),e},ie=function(e,r,n){Object.isFrozen(e)&&(e=me(e));var t=e[l.REF_FROM];e[l.REF_FROM][r]||(Object.isFrozen(e[l.REF_FROM])&&(e[l.REF_FROM]=Object.assign(u(),e[l.REF_FROM]),t=e[l.REF_FROM]),e[l.REF_FROM][r]=[],e[l.REF_FROM].length+=1);var i=t[r];return Object.isFrozen(i)&&(t[r]=i.slice(),i=t[r]),i.indexOf(n)<0&&i.push(n),e},oe=function(e,r,n){var t=e[l.REF_FROM][r];if(t){var i=t.indexOf(n);0>i||(t=t.slice(),t.splice(i,1),e[l.REF_FROM][r]=t,0==t.length&&(e[l.REF_FROM][r]=void 0,delete e[l.REF_FROM][r],e[l.REF_FROM].length-=1))}},ue=function(e,r){var n=e[l.REF_FROM][r];n&&(ne(e,l.REF_FROM),e[l.REF_FROM][r]=void 0,delete e[l.REF_FROM][r],e[l.REF_FROM].length>0&&(e[l.REF_FROM].length-=1))},ae=function(e,r){var n=e[l.REF_TO][r];if(!n)return!1;var t=e[l.ENTITY];Object.isFrozen(t)&&(t=Re(t[d.prop.uidName]),e[l.ENTITY]=t);var i=e[l.REF_TO][r];return i.forEach(function(e){h.del(t,e)}),Object.isFrozen(t)||Object.freeze(t),e[l.ENTITY]=t,ne(e,l.REF_TO),e[l.REF_TO][r]=void 0,delete e[l.REF_TO][r],e[l.REF_TO].length>0&&(e[l.REF_TO].length-=1),!0},fe=function(e){R[e]&&(R[e]=void 0,R.length>0&&(R.length-=1))},ce=function(e,r,n,t,i,o){void 0===i&&(i="");for(var u in e){if(e.hasOwnProperty(u)){i=Oe(i,u);var a=e[u];(0,f.isArray)(a)?he(a,r,n,t,i,o):(0,f.isObject)(a)&&de(a,r,n,t,i,o),Object.freeze(a)}i=""}},se=function(e){var r=arguments.length<=1||void 0===arguments[1]?O:arguments[1],n=arguments.length<=2||void 0===arguments[2]?!0:arguments[2];if(!(0,f.hasUid)(e))return!1;var t=e[d.prop.uidName],i=qe(t,r);return n===!0?i&&i[l.ENTITY]===e:!!i},de=function(e,r,n,t){var i=arguments.length<=4||void 0===arguments[4]?"":arguments[4];if((0,f.hasUid)(e)){var o=_e(e,r);if(o){ve(o,n,i,r);var u=se(e);if(u===!0)return;o[l.ENTITY]=e,n=String(e[d.prop.uidName]),Z(e,r,n,t)}}else ce(e,r,n,t,i);Object.freeze(e)},ve=function(e,r,n,t){var i=X(r,t);i&&n&&""!==n&&le(i,e,n)},he=function rr(e,r,n,t){var i=arguments.length<=4||void 0===arguments[4]?"":arguments[4],o=void 0;e.forEach(function(e,u){o=i+"."+u,(0,f.isArray)(e)?rr(e,r,n,t,o):(0,f.isObject)(e)&&de(e,r,n,t,o)}),Object.freeze(e)},le=function(e,r,n){if(!e)throw new ReferenceError("Cannot assign reference. Missing parent item.");if(!r)throw new ReferenceError("Cannot assign reference. Missing reference item.");if(!n||""===n)throw new TypeError("Cannot assign reference. Missing property name. prop: "+n);var t=e[l.ENTITY][d.prop.uidName],i=r[l.ENTITY][d.prop.uidName];te(e,i,n),ie(r,t,n)},Oe=function(e,r){return e=""===e?r:e+"."+r},ge=function(){var e=c(O);return e?e.items:new Map},pe=function(e,r,n){var t=new Map,i=ge();i.forEach(function(e,r){t.set(r,e)}),e.forEach(function(e){var r=e[l.ENTITY][d.prop.uidName];if(void 0!==r){var n=qe(r);if(n){var i=n[l.REF_TO],o=e[l.REF_TO];for(var u in i)if(i.hasOwnProperty(u)){var a=i[u],f=0;if(o.hasOwnProperty(u)&&(f=o[u]),a>0&&0==f){var c=t.get(u);Object.isFrozen(c)&&(c=be(c[l.ENTITY],c[l.REF_FROM],c[l.REF_TO]),t.set(u,c)),c[l.REF_FROM]["delete"](String(r)),0==c[l.REF_FROM].size&&t["delete"](u)}}}ee(e),t.set(String(r),e)}}),n.size>0&&n.forEach(function(e,r){t["delete"](String(r))}),De(t,r)},Ee=function(e){var r=arguments.length<=1||void 0===arguments[1]?O:arguments[1];if(e){var n=Fe(e);if(n){var t=qe(n,r);if(void 0!==t)return t[l.ENTITY];var i=R[n];if(i)return i}}},Fe=function(e){return"string"==typeof e?e:"number"==typeof e?String(e):(0,f.isObject)(e)&&(0,f.hasUid)(e)?e[d.prop.uidName]:void 0},Re=function(e){return(0,f.isArray)(e)?e.map(function(e){return ye(e)}).filter(function(e){return null!==e&void 0!==e}):ye(e)},Te=function(r){return"undefined"==typeof r&&(r=O),e(r)?E[r].current:-1},ye=function(e){if(e){var r=Fe(e);if(r){if(K(e))return R[r];var n=H(r);if(n)return(0,f.deepClone)(n,void 0,!1)}}},_e=function(e,r){if(void 0!==e){var n=String(e[d.prop.uidName]),t=r.get(n);if(t)return t;t={};var i=qe(n);return t[l.ENTITY]=e,void 0!==i?(t=Object.assign(t,i),t[l.ENTITY]=e,t[l.REF_FROM]=Object.assign(u(),i[l.REF_FROM]),t[l.REF_FROM].length=i[l.REF_FROM].length,t[l.REF_TO]=Object.assign(u(),i[l.REF_TO]),t[l.REF_TO].length=i[l.REF_TO].length):(t[l.REF_FROM]=u(),t[l.REF_TO]=u()),r.set(n,t),r.set(l.UPDATED_KEY,!0),fe(n),t}},be=function(e,r,n){var t={};t[l.ENTITY]=e;var i=r;void 0===i&&(i=u()),t[l.REF_FROM]=i;var o=n;return void 0===o&&(o=u()),t[l.REF_TO]=o,t},me=function(e){var r=Object.assign({},e);return ne(r,l.REF_FROM),ne(r,l.REF_TO),r},je=function(e){return(0,f.hasUid)(e)?"undefined"!=typeof qe(e[d.prop.uidName]):!1},Me=function(){var e=arguments.length<=0||void 0===arguments[0]?O:arguments[0],r=E[e],n=!1;return r&&ze(e)&&(r.current-=1,n=!0),Ne(n,e)},we=function(){var e=arguments.length<=0||void 0===arguments[0]?O:arguments[0],r=E[e],n=!1;return r&&Se(e)&&(r.current+=1,n=!0),Ne(n,e)},Ne=function(e,r){if(r&&"string"!=typeof r&&"number"!=typeof r)throw new TypeError("Get history state errror: The thread id must be a string or a number: "+r+":"+typeof r);var n={threads:{}};n.success=e;var t=void 0;return t=void 0===r||r===O?Y():[O,r],t.forEach(function(e){Pe(n,e)}),n},Pe=function(e,r){if(E[r]){var n=Te(r),t=Ye(r);e.threads[r]={currentIndex:n,length:t,hasPrev:n>0,hasNext:t-1>n}}},Se=function(){var e=arguments.length<=0||void 0===arguments[0]?O:arguments[0],r=E[e];return r?r.current<r.nodes.length-1:!1},ze=function(){var e=arguments.length<=0||void 0===arguments[0]?O:arguments[0],r=E[e];return r?r.current>0:!1},Ae=function(){var e=arguments.length<=0||void 0===arguments[0]?O:arguments[0],r=E[e];if(r){var n=c(e);return n?n.items.size:0}return 0},Ye=function(){var r=arguments.length<=0||void 0===arguments[0]?O:arguments[0];return e(r)?E[r].nodes.length:0},Ie=function(){return{queue:R.length}},xe=function(){var e=arguments.length<=0||void 0===arguments[0]?O:arguments[0],r=j(e,!1);r.forEach(function(e){Ue(e)})},Ue=function(){var e=arguments.length<=0||void 0===arguments[0]?O:arguments[0];if(Se(e)){var r=E[e];if(r)if(e===O){if(r.current<r.nodes.length-1){var n=r.nodes.slice(r.current+1,r.nodes.length);r.nodes=r.nodes.slice(0,r.current+1),r.current=r.nodes.length-1,Ce(n)}}else!function(){var n=[],t=r.nodes.length;r.nodes=r.nodes.filter(function(i,o){if(o>r.current&&t>o){var u=p.get(i);return u.threads.removeThread(e),u.threads.length<=1&&n.push(i),!1}return!0}),z(n)}()}},Ce=function(e){e.forEach(function(e){var r=p.get(e);if(r){var n=r.threads;for(var t in n)if(n.hasOwnProperty(t)){var i=n[t];i>=0&&console.log("TRUNCATE AFTER "+i+" threadId"+t)}}p["delete"](e)})},De=function(e,r){null!==e&&!function(){Object.freeze(e);var n=i();if(n.items=e,"undefined"!=typeof r){void 0===n.threads&&(n.threads=u());var t=Ke(r);t.forEach(function(e){Je(n,e)})}}()},Ke=function(e){var r=void 0;return"string"==typeof e?r=[e]:(0,f.isArray)(e)&&(r=e),r.indexOf(O)<0&&r.unshift(O),r},Je=function(e,n){if("undefined"!=typeof n&&void 0!==e){var t=E[n];t||(t=r(n)),e.threads.addThread(n,_(n))&&(t.nodes.push(e.id),t.current+=1)}},qe=function(e){var r=arguments.length<=1||void 0===arguments[1]?O:arguments[1],n=c(r);return n?n.items.get(String(e)):void 0},Qe=function(){var e="",r=0,n=t(),i=n.current;n.nodes.map(function(n){var t="",o=p.get(n);o.threads&&(t=JSON.stringify(o.threads));var u=r+":"+t+"\n["+He(o.items)+"],\n\n";r===i&&(u="-> "+u),e+=u,r++}),e=e.substring(0,e.length-2),r=0,console.log("\n------ One -------\nSTACK:\n"+e+"\n\nCONFIG:"+JSON.stringify(d,null,2)+"\n\nQUEUE:"+JSON.stringify(R,null,2)+"\n\nTHREADS:"+JSON.stringify(E,null,2)+"\n\nREPO SIZE:"+p.size+"\n===================\n")},He=function(e){var r="",n=[].concat(o(e.values()));return n.map(function(e){var n=void 0;try{n=JSON.stringify(e,null,2)+",\n"}catch(t){return void console.log("CYCLICAL STRUCTURE - to fix: "+t.message)}n.indexOf(l.REF_FROM)>=0&&e[l.REF_FROM]&&(n=n.replace('"'+l.REF_FROM+'": {}','"'+l.REF_FROM+'": '+JSON.stringify([].concat(o(e[l.REF_FROM]))))),n.indexOf(l.REF_TO)>=0&&e[l.REF_TO]&&(n=n.replace('"'+l.REF_TO+'": {}','"'+l.REF_TO+'": '+JSON.stringify(e[l.REF_TO]))),r+=n}),r=""===r?"{}":r.substring(0,r.length-2)},ke=function(e){if(!(0,f.hasUid)(e))return!0;var r=e[d.prop.uidName],n=H(r);return n?n!==e:!0},Ge=function(e){F.push(e);var r=!0;return function(){if(r){r=!1;var n=F.indexOf(e);F.splice(n,1)}}},Le=function(e){F.slice().forEach(function(r){r(e)})},Ze=[],Be=0;256>Be;Be++)Ze[Be]=(16>Be?"0":"")+Be.toString(16);var Ve=function(){var e=4294967296*Math.random()|0,r=4294967296*Math.random()|0,n=4294967296*Math.random()|0,t=4294967296*Math.random()|0;return Ze[255&e]+Ze[e>>8&255]+Ze[e>>16&255]+Ze[e>>24&255]+"-"+Ze[255&r]+Ze[r>>8&255]+"-"+Ze[r>>16&15|64]+Ze[r>>24&255]+"-"+Ze[63&n|128]+Ze[n>>8&255]+"-"+Ze[n>>16&255]+Ze[n>>24&255]+Ze[255&t]+Ze[t>>8&255]+Ze[t>>16&255]+Ze[t>>24&255]},We=function(e){var r=qe(e);return r[l.REF_FROM]},Xe=function(e){var r=qe(e);return r[l.REF_TO]},$e={put:m,get:H,getEdit:Re,evict:k,reset:y,queue:x,unQueue:U,queueEvict:D,getQueued:K,commit:C,closeThread:w,mergeThread:N,cutThread:P,hasThread:e,onThread:A,listThreads:Y,undo:Me,redo:we,getHistoryState:Ne,getCurrentIndex:Te,isDirty:ke,uuid:Ve,contains:je,config:b,subscribe:Ge};return v===!0&&($e.getCurrentNode=c,$e.hasQueue=Q,$e.refFrom=We,$e.refTo=Xe,$e.size=Ae,$e.length=Ye,$e.pending=Ie,$e.print=Qe),$e}Object.defineProperty(r,"__esModule",{value:!0}),r["default"]=u;var f=n(2),c=n(4),s=(i(c),n(3)),d=t(s),v=n(5),h=t(v),l=n(6);e.exports=r["default"]},function(e,r,n){"use strict";function t(e){if(e&&e.__esModule)return e;var r={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r["default"]=e,r}function i(e){if(Array.isArray(e)){for(var r=0,n=Array(e.length);r<e.length;r++)n[r]=e[r];return n}return Array.from(e)}function o(e,r){var n=arguments.length<=2||void 0===arguments[2]?!0:arguments[2],t=arguments.length<=3||void 0===arguments[3]?!1:arguments[3];if(!e||!c(e)&&!s(e))return e;if(n&&r&&!Object.isFrozen(r)&&Object.freeze(r),r&&a(e)&&e[O.prop.uidName]===r[O.prop.uidName])return r;var i,f=Object.assign({},e);for(i in f)if(f.hasOwnProperty(i)){var d=f[i];if(d)if(s(d))f[i]=u(d,r,t);else if(v(d)){var h=new Date(d.getTime());n&&Object.freeze(h),f[i]=h}else c(d)&&(a(d)?(f[i]=d,r&&a(r)&&d!==r&&d.uid===r.uid&&d!==r&&(f[i]=r)):f[i]=o(d,r,n,t))}return n&&!Object.isFrozen(f)&&Object.freeze(f),f}function u(e,r,n){return e.map(function(e){return s(e)?u(e,r,n):c(e)?a(e)&&n===!1?e:o(e,r,!0,n):e})}function a(e){if(!e)return!1;if(!c(e))return!1;if("undefined"==typeof e[O.prop.uidName])return!1;var r=e[O.prop.uidName];return 0!==r.length}function f(e){var r=e||new Set;return new Set([].concat(i(r)))}function c(e){return"[object Array]"===Object.prototype.toString.call(e)?!1:null!==e&&"object"==typeof e}function s(e){return e&&null!==e?Array.isArray(e)||e&&"object"==typeof e&&"number"==typeof e.length&&"function"==typeof e.splice&&!e.propertyIsEnumerable("length"):!1}function d(e){return Object.prototype.toString.call(e)}function v(e){return c(e)&&"[object Date]"===d(e)}function h(e){return c(e)&&"[object RegExp]"===d(e)}Object.defineProperty(r,"__esModule",{value:!0}),r.deepClone=o,r.hasUid=a,r.cloneSet=f,r.isObject=c,r.isArray=s,r.isDate=v,r.isRegExp=h;var l=n(3),O=t(l)},function(e,r){"use strict";function n(e){for(var r in t)t.hasOwnProperty(r)&&e.hasOwnProperty(r)&&(t[r]=e[r])}Object.defineProperty(r,"__esModule",{value:!0}),r.config=n;var t={uidName:"uid",maxHistoryStates:1e3};r.prop=t},function(e,r){"use strict";function n(e){return e?(Object.freeze(e),Object.getOwnPropertyNames(e).forEach(function(r){!e.hasOwnProperty(r)||null===e[r]||"object"!=typeof e[r]&&"function"!=typeof e[r]||Object.isFrozen(e[r])||n(e[r])}),e):void 0}Object.defineProperty(r,"__esModule",{value:!0}),r["default"]=n,e.exports=r["default"]},function(e,r,n){"use strict";function t(e){return"number"==typeof e||"[object Number]"===toString(e)}function i(e){return"string"==typeof e||"[object String]"===toString(e)}function o(e){if(!e)return!0;if((0,c.isArray)(e)&&0===e.length)return!0;if(!i(e)){for(var r in e)if(s.call(e,r))return!1;return!0}return!1}function u(e,r){var n=!0;e:for(;n;){var u=e,a=r;if(n=!1,t(a)&&(a=[a]),o(u))return;if(o(a))return u;if(!i(a)){var s=f(a[0]),d=u[s];if(1===a.length)void 0!==d&&((0,c.isArray)(u)?u.splice(s,1):delete u[s]);else if(void 0!==u[s]){e=u[s],r=a.slice(1),n=!0,s=d=void 0;continue e}return u}e=u,r=a.split("."),n=!0}}function a(e,r,n){for(var u=!0;u;){var a=e,c=r,s=n;if(u=!1,t(c)&&(c=[c]),o(c))return a;if(o(a))return s;if(i(c))e=a,r=c.split("."),n=s,u=!0;else{var d=f(c[0]);if(1===c.length)return void 0===a[d]?s:a[d];e=a[d],r=c.slice(1),n=s,u=!0,d=void 0}}}function f(e){var r=parseInt(e);return r.toString()===e?r:e}Object.defineProperty(r,"__esModule",{value:!0}),r.del=u,r.get=a;var c=n(2),s=Object.prototype.hasOwnProperty},function(e,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n="entity";r.ENTITY=n;var t="ref_from";r.REF_FROM=t;var i="ref_to";r.REF_TO=i;var o="mapUpdatedKey";r.UPDATED_KEY=o}]); | ||
!function(e){function n(t){if(r[t])return r[t].exports;var i=r[t]={exports:{},id:t,loaded:!1};return e[t].call(i.exports,i,i.exports,n),i.loaded=!0,i.exports}var r={};return n.m=e,n.c=r,n.p="",n(0)}([function(e,n,r){"use strict";function t(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(n,"__esModule",{value:!0});var i=r(1),u=t(i);!function(){(0,u["default"])()}(),n.createCache=u["default"]},function(e,n,r){"use strict";function t(e){if(e&&e.__esModule)return e;var n={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n["default"]=e,n}function i(e){return e&&e.__esModule?e:{"default":e}}function u(e){if(Array.isArray(e)){for(var n=0,r=Array(e.length);n<e.length;n++)r[n]=e[n];return r}return Array.from(e)}function o(){var e=arguments.length<=0||void 0===arguments[0]?!0:arguments[0],n=arguments.length<=1||void 0===arguments[1]?"One":arguments[1];return window?(void 0===window[n]&&(window[n]=f(e)),window[n]):f(e)}function f(){function e(){return c||(c=r(),c.current=-1,c.nodes=[]),c}function n(){var e=r();return e.id=s,s+=1,l.set(e.id,e),e}function r(){var e={};return Object.defineProperty(e,"length",{value:0,enumerable:!1,writable:!0}),e}function t(e,n){for(var r,t,i=0,u=e.length-1;u>=i;)if(r=(i+u)/2|0,t=e[r],n>t)i=r+1;else{if(!(t>n))return r;u=r-1}return-1}function i(){var e=c.nodes[c.current];return e>=0?o(e):void 0}function o(e){return l.get(e)}var f=arguments.length<=0||void 0===arguments[0]?!1:arguments[0],c=void 0,s=0,l=new Map,O=r(),h=r(),E=[],g=function(){O=r(),l.clear(),c=void 0,c=e(),s=0};g();for(var F=function(e){if(pe()>0)throw new Error("You may only configure an empty cache. Please clear the cache first and then configure.");d.config(e)},R=function(e){var n=arguments.length<=1||void 0===arguments[1]?!0:arguments[1];if((0,a.isArray)(e)||(0,a.isObject)(e)){var r=new Map,t=new Map;r.set(p.UPDATED_KEY,!1),S(e,r,null,t,n),w(r);var i=r.get(p.UPDATED_KEY);r["delete"](p.UPDATED_KEY);var o=!1;return r.size>0&&i&&(Ee(),$([].concat(u(r.values())),t),me(),o=!0),de(o)}return de(!1)},_=function(e){function n(e,n){if((0,a.hasUid)(e)){var t=e[d.prop.uidName],i=O[t];!r&&i||!r&&M(t)||(m(t)||(O.length+=1),O[t]=e,n.push(t))}}var r=arguments.length<=1||void 0===arguments[1]?!1:arguments[1],t=[];(0,a.isArray)(e)?e.forEach(function(e){n(e,t)}):(0,a.isObject)(e)&&n(e,t);var i=t.length>0;return i&&me(t),t.length},y=function(e){var n=ne(e);if(n)return O[n]?(O[n]=void 0,O.length>0&&(O.length-=1),!0):!1},T=function(e){var n=arguments.length<=1||void 0===arguments[1]?!1:arguments[1];if(O.length>0){var t=[];for(var i in O)O.hasOwnProperty(i)&&t.push(O[i]);var u=R(t,e,n);return u.success===!0&&(O=r()),u}return de(!1)},b=function(e){return e&&(0,a.hasUid)(e)?(h[e[d.prop.uidName]]=e,!0):!1},m=function(e){var n=ne(e);if(n)return O[n]},M=function(e){if(!e)throw new TypeError("Cache-uid get(): requires a uid to retrieve an item from the cache.");return(0,a.isArray)(e)?e.map(function(e){return ee(e)}).filter(function(e){return null!==e&&void 0!==e}):ee(e)},j=function(e){var n=N(e);if(0==n.length)return!1;var r=X(),t=n.some(function(e){return r&&r.has(String(e))});if(!t)return!1;var i=new Map;r.forEach(function(e,n){i.set(n,e)}),Ee();var u=new Map,o=new Map;return n.forEach(function(e){Y(e,u,o),o.set(e,null),z(e,u)}),u.forEach(function(e,n){i.set(n,e)}),o.forEach(function(e,n){i["delete"](n)}),Fe(i),me(),!0},N=function(e){var n=[];if((0,a.isArray)(e))e.forEach(function(e){(0,a.hasUid)(e)?n.push(String(e[d.prop.uidName])):"string"!=typeof e&&"number"!=typeof e||n.push(String(e))});else{var r=e;if((0,a.isObject)(e)&&(r=e[d.prop.uidName]),void 0===r)return n;n.push(String(r))}return n},w=function(e){e.forEach(function(n,r){if(r!==p.UPDATED_KEY){var t=n[p.REF_FROM];for(var i in t)if(t.hasOwnProperty(i)){var u=t[i],o=e.get(i);if(o||(o=Re(i)),o&&u.length>0){var f=u[0],c=v.get(o[p.ENTITY],f),s=c&&c!==n[p.ENTITY];s===!0&&(o=oe(o[p.ENTITY],e),o[p.ENTITY]=(0,a.deepClone)(o[p.ENTITY],n[p.ENTITY],!0,!0))}}}})},S=function(e,n,r,t,i){(0,a.hasUid)(e)?P(e,n,r,t,i):((0,a.isArray)(e)?L(e,n,r,t,i):G(e,n,r,t,i),Object.freeze(e))},P=function(e,n,r,t,i){var u=String(e[d.prop.uidName]);Z(e)!==!0&&(n.has(u)?G(e,n,r,t):(oe(e,n),r=String(u),G(e,n,r,t),Object.isFrozen(e)||Object.freeze(e)),A(u,n,t))},Y=function Ye(e,n,r){var t=Re(e);if(t){var i=t[p.REF_TO];for(var u in i)if(i.hasOwnProperty(u)){var o=I(u,n);o&&(q(o,e),0===o[p.REF_FROM].length?(Ye(u,n,r),r.set(u,o)):n.set(u,o))}}},z=function(e,n){var r=I(e,n);if(r){var t=r[p.REF_FROM];for(var i in t)if(t.hasOwnProperty(i)){var u=I(i,n);if(u){var o=H(u,e);o===!0&&n.set(i,u)}}}},I=function(e,n){if(e){e=String(e);var r=n.get(e);return r||(r=Re(e)),Object.isFrozen(r)&&(r=fe(r)),r}},A=function(e,n,r){var t=I(e,n);if(t){var i=t[p.REF_TO],u=function(u){if(i.hasOwnProperty(u)){var o=i[u],f=o.map(function(i){var o=v.get(t[p.ENTITY],i);if(o){var f=o[d.prop.uidName];if(f){var a=f==u;if(a===!0)return i}}U(e,u,i,n,r)}).filter(function(e){return null!==e&&void 0!==e});f.length>0?t[p.REF_TO][u]=f:(t[p.REF_TO][u]=void 0,delete t[p.REF_TO][u])}};for(var o in i)u(o)}},x=function(e){Object.freeze(e),Object.freeze(e[p.ENTITY]),Object.freeze(e[p.REF_TO]),Object.freeze(e[p.REF_FROM])},U=function(e,n,r,t,i){var u=I(n,t);u&&(u=Object.assign({},u),D(u,p.REF_FROM),u[p.REF_FROM].hasOwnProperty(e)&&(J(u,e,r),0===u[p.REF_FROM].length?(i.set(n,u),t["delete"](n)):(t.set(n,u),i["delete"](n))))},D=function(e,n){var t=e[n].length;e[n]=Object.assign(r(),e[n]),e[n].length=t},C=function(e,n,r){var t=e[p.REF_TO];e[p.REF_TO][n]||(e[p.REF_TO][n]=[],e[p.REF_TO].length+=1);var i=t[n];return i.indexOf(r)<0&&i.push(r),e},K=function(e,n,r){var t=e[p.REF_FROM];e[p.REF_FROM][n]||(e[p.REF_FROM][n]=[],e[p.REF_FROM].length+=1);var i=t[n];return i.indexOf(r)<0&&i.push(r),e},J=function(e,n,r){var t=e[p.REF_FROM][n],i=t.indexOf(r);t=t.slice(),t.splice(i,1),e[p.REF_FROM][n]=t,0==t.length&&(e[p.REF_FROM][n]=void 0,delete e[p.REF_FROM][n],e[p.REF_FROM].length-=1)},q=function(e,n){var r=e[p.REF_FROM][n];r&&(D(e,p.REF_FROM),e[p.REF_FROM][n]=void 0,delete e[p.REF_FROM][n],e[p.REF_FROM].length>0&&(e[p.REF_FROM].length-=1))},H=function(e,n){var r=e[p.ENTITY];Object.isFrozen(r)&&(r=re(r[d.prop.uidName]),e[p.ENTITY]=r);var t=e[p.REF_TO][n];return t.forEach(function(e){v.del(r,e)}),Object.isFrozen(r)||Object.freeze(r),e[p.ENTITY]=r,D(e,p.REF_TO),e[p.REF_TO][n]=void 0,delete e[p.REF_TO][n],e[p.REF_TO].length>0&&(e[p.REF_TO].length-=1),!0},Q=function(e){O[e]&&(O[e]=void 0,O.length>0&&(O.length-=1))},G=function(e,n,r,t,i,u){void 0===i&&(i="");for(var o in e){if(e.hasOwnProperty(o)){i=W(i,o);var f=e[o];(0,a.isArray)(f)?L(f,n,r,t,i,u):(0,a.isObject)(f)&&k(f,n,r,t,i,u),Object.freeze(f)}i=""}},Z=function(e){var n=e[d.prop.uidName],r=Re(n);return r&&r[p.ENTITY]===e},k=function(e,n,r,t){var i=arguments.length<=4||void 0===arguments[4]?"":arguments[4];if((0,a.hasUid)(e)){var u=oe(e,n);if(u){B(u,r,i,n);var o=Z(e);if(o===!0)return;u[p.ENTITY]=e,r=String(e[d.prop.uidName]),S(e,n,r,t)}}else G(e,n,r,t,i);Object.freeze(e)},B=function(e,n,r,t){var i=I(n,t);i&&r&&""!==r&&V(i,e,r)},L=function ze(e,n,r,t){var i=arguments.length<=4||void 0===arguments[4]?"":arguments[4],u=void 0;e.forEach(function(e,o){u=i+"."+o,(0,a.isArray)(e)?ze(e,n,r,t,u):(0,a.isObject)(e)&&k(e,n,r,t,u)}),Object.freeze(e)},V=function(e,n,r){var t=e[p.ENTITY][d.prop.uidName],i=n[p.ENTITY][d.prop.uidName];C(e,i,r),K(n,t,r)},W=function(e,n){return e=""===e?n:e+"."+n},X=function(){var e=i();return e?e.items:new Map},$=function(e,n){var r=new Map,t=X();t.forEach(function(e,n){r.set(n,e)}),e.forEach(function(e){var n=e[p.ENTITY][d.prop.uidName];x(e),r.set(String(n),e)}),n.size>0&&n.forEach(function(e,n){r["delete"](String(n))}),Fe(r)},ee=function(e){var n=ne(e);if(n){var r=Re(n);if(void 0!==r)return r[p.ENTITY];var t=O[n];if(t)return t}},ne=function(e){return"string"==typeof e?e:"number"==typeof e?String(e):(0,a.isObject)(e)&&(0,a.hasUid)(e)?e[d.prop.uidName]:void 0},re=function(e){return(0,a.isArray)(e)?e.map(function(e){return ue(e)}).filter(function(e){return null!==e&void 0!==e}):ue(e)},te=function(e){if((0,a.isNumber)(e)===!0){if(c.current!==e){if(!(e>=0&&e<Oe()))throw new TypeError("Index out of bounds");return c.current=e,me(),!0}return!1}return c.current},ie=function(e){if("undefined"==typeof e){var n=i();return n?n.id:-1}if(!(0,a.isNumber)(e))throw new TypeError("The node id must be a number.");var r=o(e);return r?(c.current=t(c.nodes,e),de(!0)):de(!1)},ue=function(e){var n=ne(e);if(m(n))return O[n];var r=M(n);if(r)return(0,a.deepClone)(r,void 0,!1)},oe=function(e,n){var t=String(e[d.prop.uidName]),i=n.get(t);if(i)return i;i={};var u=Re(t);return i[p.ENTITY]=e,void 0!==u?(i=Object.assign(i,u),i[p.ENTITY]=e,i[p.REF_FROM]=Object.assign(r(),u[p.REF_FROM]),i[p.REF_FROM].length=u[p.REF_FROM].length,i[p.REF_TO]=Object.assign(r(),u[p.REF_TO]),i[p.REF_TO].length=u[p.REF_TO].length):(i[p.REF_FROM]=r(),i[p.REF_TO]=r()),n.set(t,i),n.set(p.UPDATED_KEY,!0),Q(t),i},fe=function(e){var n=Object.assign({},e);return D(n,p.REF_FROM),D(n,p.REF_TO),n},ae=function(e){return(0,a.hasUid)(e)?"undefined"!=typeof Re(e[d.prop.uidName]):!1},ce=function(){var e=!1;return ve()&&(c.current-=1,e=!0),de(e)},se=function(){var e=!1;return le()&&(c.current+=1,e=!0),de(e)},de=function(e){var n={};return n.success=e,n.index=te(),n.node=ie(),n.length=Oe(),n.hasPrev=n.index>0,n.hasNext=n.index<n.length-1,n},le=function(){return c.current<c.nodes.length-1},ve=function(){return c.current>0},pe=function(){var e=i();return e?e.items.size:0},Oe=function(){return c.nodes.length},he=function(){return{queue:O.length}},Ee=function(){if(c.current<c.nodes.length-1){var e=c.nodes.slice(c.current+1,c.nodes.length);c.nodes=c.nodes.slice(0,c.current+1),c.current=c.nodes.length-1,ge(e)}},ge=function(e){e.forEach(function(e){var n=l.get(e);n&&l["delete"](e)})},Fe=function(e,r){if(null!==e){Object.freeze(e);var t=n();t.items=e,c.nodes.indexOf(t.id)<0&&(c.nodes.push(t.id),c.current+=1)}},Re=function(e){var n=i();return n?n.items.get(String(e)):void 0},_e=function(){var e="",n=0,r=c.current;c.nodes.map(function(t){var i="",u=l.get(t),o=n+":"+i+"\n["+ye(u.items)+"],\n\n";n===r&&(o="-> "+o),e+=o,n++}),e=e.substring(0,e.length-2),n=0,console.log("\n------ One -------\nSTACK:\n"+e+"\n\nCONFIG:"+JSON.stringify(d,null,2)+"\n\nQUEUE:"+JSON.stringify(O,null,2)+"\n\nHISTORY:"+JSON.stringify(de(),null,2)+"\n\nREPO SIZE:"+l.size+"\n===================\n")},ye=function(e){var n="",r=[].concat(u(e.values()));return r.map(function(e){var r=void 0;r=JSON.stringify(e,null,2)+",\n",r.indexOf(p.REF_FROM)>=0&&e[p.REF_FROM]&&(r=r.replace('"'+p.REF_FROM+'": {}','"'+p.REF_FROM+'": '+JSON.stringify([].concat(u(e[p.REF_FROM]))))),r.indexOf(p.REF_TO)>=0&&e[p.REF_TO]&&(r=r.replace('"'+p.REF_TO+'": {}','"'+p.REF_TO+'": '+JSON.stringify(e[p.REF_TO]))),n+=r}),n.length>2&&(n=n.substring(0,n.length-2)),n},Te=function(e){if(!(0,a.hasUid)(e))return!0;var n=e[d.prop.uidName],r=M(n);return r?r!==e:!0},be=function(e){E.push(e);var n=!0;return function(){if(n){n=!1;var r=E.indexOf(e);E.splice(r,1)}}},me=function(e){E.slice().forEach(function(n){n(e)})},Me=[],je=0;256>je;je++)Me[je]=(16>je?"0":"")+je.toString(16);var Ne=function(){var e=4294967296*Math.random()|0,n=4294967296*Math.random()|0,r=4294967296*Math.random()|0,t=4294967296*Math.random()|0;return Me[255&e]+Me[e>>8&255]+Me[e>>16&255]+Me[e>>24&255]+"-"+Me[255&n]+Me[n>>8&255]+"-"+Me[n>>16&15|64]+Me[n>>24&255]+"-"+Me[63&r|128]+Me[r>>8&255]+"-"+Me[r>>16&255]+Me[r>>24&255]+Me[255&t]+Me[t>>8&255]+Me[t>>16&255]+Me[t>>24&255]},we=function(e){var n=Re(e);return n[p.REF_FROM]},Se=function(e){var n=Re(e);return n[p.REF_TO]},Pe={put:R,get:M,getEdit:re,evict:j,reset:g,queue:_,unQueue:y,queueEvict:b,getQueued:m,commit:T,undo:ce,redo:se,index:te,node:ie,getHistoryState:de,isDirty:Te,uuid:Ne,contains:ae,config:F,subscribe:be};return f===!0&&(Pe.getCurrentNode=i,Pe.refFrom=we,Pe.refTo=Se,Pe.size=pe,Pe.length=Oe,Pe.pending=he,Pe.print=_e),Pe}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=o;var a=r(2),c=r(4),s=(i(c),r(3)),d=t(s),l=r(5),v=t(l),p=r(6);e.exports=n["default"]},function(e,n,r){"use strict";function t(e){if(e&&e.__esModule)return e;var n={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n["default"]=e,n}function i(e){return"number"==typeof e||"[object Number]"===toString(e)}function u(e){return"string"==typeof e||"[object String]"===toString(e)}function o(e){if(!e)return!0;if(d(e)&&0===e.length)return!0;if(!u(e)){for(var n in e)if(h.call(e,n))return!1;return!0}return!1}function f(e,n){var r=arguments.length<=2||void 0===arguments[2]?!0:arguments[2],t=arguments.length<=3||void 0===arguments[3]?!1:arguments[3];if(!e||!s(e)&&!d(e))return e;if(r===!0&&n&&!Object.isFrozen(n)&&Object.freeze(n),n&&c(e)&&e[O.prop.uidName]===n[O.prop.uidName])return n;var i=Object.assign({},e);for(var u in i)if(i.hasOwnProperty(u)){var o=i[u];if(o)if(d(o))i[u]=a(o,n,t);else if(v(o)){var l=new Date(o.getTime());r===!0&&Object.freeze(l),i[u]=l}else s(o)&&(c(o)?(i[u]=o,n&&c(n)&&o!==n&&o.uid===n.uid&&o!==n&&(i[u]=n)):i[u]=f(o,n,r,t))}return r!==!0||Object.isFrozen(i)||Object.freeze(i),i}function a(e,n,r){return e.map(function(e){return d(e)?a(e,n,r):s(e)?c(e)&&r===!1?e:f(e,n,r):e})}function c(e){if(!e)return!1;if(!s(e))return!1;if("undefined"==typeof e[O.prop.uidName])return!1;var n=e[O.prop.uidName];return 0!==n.length}function s(e){return"[object Array]"===Object.prototype.toString.call(e)?!1:null!==e&&"object"==typeof e}function d(e){return e&&null!==e?Array.isArray(e)||e&&"object"==typeof e&&"number"==typeof e.length&&"function"==typeof e.splice&&!e.propertyIsEnumerable("length"):!1}function l(e){return Object.prototype.toString.call(e)}function v(e){return s(e)&&"[object Date]"===l(e)}Object.defineProperty(n,"__esModule",{value:!0}),n.isNumber=i,n.isString=u,n.isEmpty=o,n.deepClone=f,n.hasUid=c,n.isObject=s,n.isArray=d,n.isDate=v;var p=r(3),O=t(p),h=Object.prototype.hasOwnProperty},function(e,n){"use strict";function r(e){for(var n in t)t.hasOwnProperty(n)&&e.hasOwnProperty(n)&&(t[n]=e[n])}Object.defineProperty(n,"__esModule",{value:!0}),n.config=r;var t={uidName:"uid",maxHistoryStates:1e3};n.prop=t},function(e,n){"use strict";function r(e){return e?(Object.freeze(e),Object.getOwnPropertyNames(e).forEach(function(n){!e.hasOwnProperty(n)||null===e[n]||"object"!=typeof e[n]&&"function"!=typeof e[n]||Object.isFrozen(e[n])||r(e[n])}),e):void 0}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r,e.exports=n["default"]},function(e,n,r){"use strict";function t(e){var n=parseInt(e);return n.toString()===e?n:e}function i(e,n){var r=!0;e:for(;r;){var i=e,u=n;if(r=!1,(0,o.isNumber)(u)&&(u=[u]),(0,o.isEmpty)(i))return;if((0,o.isEmpty)(u))return i;if(!(0,o.isString)(u)){var f=t(u[0]),a=i[f];if(1===u.length)void 0!==a&&((0,o.isArray)(i)?i.splice(f,1):delete i[f]);else if(void 0!==i[f]){e=i[f],n=u.slice(1),r=!0,f=a=void 0;continue e}return i}e=i,n=u.split("."),r=!0}}function u(e,n,r){for(var i=!0;i;){var u=e,f=n,a=r;if(i=!1,(0,o.isNumber)(f)&&(f=[f]),(0,o.isEmpty)(f))return u;if((0,o.isEmpty)(u))return a;if((0,o.isString)(f))e=u,n=f.split("."),r=a,i=!0;else{var c=t(f[0]);if(1===f.length)return void 0===u[c]?a:u[c];e=u[c],n=f.slice(1),r=a,i=!0,c=void 0}}}Object.defineProperty(n,"__esModule",{value:!0}),n.del=i,n.get=u;var o=r(2)},function(e,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r="entity";n.ENTITY=r;var t="ref_from";n.REF_FROM=t;var i="ref_to";n.REF_TO=i;var u="mapUpdatedKey";n.UPDATED_KEY=u}]); |
@@ -9,14 +9,13 @@ /** | ||
}); | ||
exports.isNumber = isNumber; | ||
exports.isString = isString; | ||
exports.isEmpty = isEmpty; | ||
exports.deepClone = deepClone; | ||
exports.hasUid = hasUid; | ||
exports.cloneSet = cloneSet; | ||
exports.isObject = isObject; | ||
exports.isArray = isArray; | ||
exports.isDate = isDate; | ||
exports.isRegExp = isRegExp; | ||
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } } | ||
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; return arr2; } else { return Array.from(arr); } } | ||
var _config = require('./config'); | ||
@@ -26,2 +25,29 @@ | ||
var _hasOwnProperty = Object.prototype.hasOwnProperty; | ||
function isNumber(value) { | ||
return typeof value === 'number' || toString(value) === "[object Number]"; | ||
} | ||
function isString(obj) { | ||
return typeof obj === 'string' || toString(obj) === "[object String]"; | ||
} | ||
function isEmpty(value) { | ||
if (!value) { | ||
return true; | ||
} | ||
if (isArray(value) && value.length === 0) { | ||
return true; | ||
} else if (!isString(value)) { | ||
for (var i in value) { | ||
if (_hasOwnProperty.call(value, i)) { | ||
return false; | ||
} | ||
} | ||
return true; | ||
} | ||
return false; | ||
} | ||
/** | ||
@@ -44,3 +70,3 @@ * | ||
if (freeze && uidReference && !Object.isFrozen(uidReference)) { | ||
if (freeze === true && uidReference && !Object.isFrozen(uidReference)) { | ||
Object.freeze(uidReference); | ||
@@ -56,4 +82,3 @@ } | ||
var result = Object.assign({}, obj); | ||
var propName; | ||
for (propName in result) { | ||
for (var propName in result) { | ||
if (result.hasOwnProperty(propName)) { | ||
@@ -66,3 +91,3 @@ var value = result[propName]; | ||
var date = new Date(value.getTime()); | ||
if (freeze) { | ||
if (freeze === true) { | ||
Object.freeze(date); | ||
@@ -89,3 +114,3 @@ } | ||
} | ||
if (freeze && !Object.isFrozen(result)) { | ||
if (freeze === true && !Object.isFrozen(result)) { | ||
Object.freeze(result); | ||
@@ -101,6 +126,7 @@ } | ||
} else if (isObject(item)) { | ||
// *** keep items inside clones as we're not editing them = must getEdit on item | ||
if (hasUid(item) && force === false) { | ||
return item; | ||
} else { | ||
return deepClone(item, uidReference, true, force); | ||
return deepClone(item, uidReference, force); | ||
} | ||
@@ -131,12 +157,2 @@ } else { | ||
/** | ||
* Copies a set's values into another set (shallow) | ||
* @param set | ||
*/ | ||
function cloneSet(set) { | ||
var prevSet = set || new Set(); | ||
return new Set([].concat(_toConsumableArray(prevSet))); | ||
} | ||
/** | ||
* Checks if argument is an object | ||
@@ -157,4 +173,2 @@ * @param mixed_var | ||
; | ||
/** | ||
@@ -174,4 +188,2 @@ * checks if argument is an array | ||
; | ||
/** | ||
@@ -194,12 +206,2 @@ * | ||
return isObject(value) && objToStr(value) === '[object Date]'; | ||
} | ||
/** | ||
* | ||
* @param value | ||
* @returns {boolean} | ||
*/ | ||
function isRegExp(value) { | ||
return isObject(value) && objToStr(value) === '[object RegExp]'; | ||
} |
@@ -16,27 +16,8 @@ /** | ||
var _hasOwnProperty = Object.prototype.hasOwnProperty; | ||
function isNumber(value) { | ||
return typeof value === 'number' || toString(value) === "[object Number]"; | ||
} | ||
function isString(obj) { | ||
return typeof obj === 'string' || toString(obj) === "[object String]"; | ||
} | ||
function isEmpty(value) { | ||
if (!value) { | ||
return true; | ||
function getKey(key) { | ||
var intKey = parseInt(key); | ||
if (intKey.toString() === key) { | ||
return intKey; | ||
} | ||
if ((0, _clone.isArray)(value) && value.length === 0) { | ||
return true; | ||
} else if (!isString(value)) { | ||
for (var i in value) { | ||
if (_hasOwnProperty.call(value, i)) { | ||
return false; | ||
} | ||
} | ||
return true; | ||
} | ||
return false; | ||
return key; | ||
} | ||
@@ -52,14 +33,14 @@ | ||
if (isNumber(path)) { | ||
if ((0, _clone.isNumber)(path)) { | ||
path = [path]; | ||
} | ||
if (isEmpty(obj)) { | ||
if ((0, _clone.isEmpty)(obj)) { | ||
return void 0; | ||
} | ||
if (isEmpty(path)) { | ||
if ((0, _clone.isEmpty)(path)) { | ||
return obj; | ||
} | ||
if (isString(path)) { | ||
if ((0, _clone.isString)(path)) { | ||
_x = obj; | ||
@@ -105,12 +86,12 @@ _x2 = path.split('.'); | ||
if (isNumber(path)) { | ||
if ((0, _clone.isNumber)(path)) { | ||
path = [path]; | ||
} | ||
if (isEmpty(path)) { | ||
if ((0, _clone.isEmpty)(path)) { | ||
return obj; | ||
} | ||
if (isEmpty(obj)) { | ||
if ((0, _clone.isEmpty)(obj)) { | ||
return defaultValue; | ||
} | ||
if (isString(path)) { | ||
if ((0, _clone.isString)(path)) { | ||
_x3 = obj; | ||
@@ -139,67 +120,2 @@ _x4 = path.split('.'); | ||
} | ||
} | ||
function getKey(key) { | ||
var intKey = parseInt(key); | ||
if (intKey.toString() === key) { | ||
return intKey; | ||
} | ||
return key; | ||
} | ||
//export default function opath() { | ||
// | ||
// | ||
// | ||
// | ||
// | ||
// function getKey(key) { | ||
// var intKey = parseInt(key); | ||
// if (intKey.toString() === key) { | ||
// return intKey; | ||
// } | ||
// return key; | ||
// } | ||
// | ||
// var objectPath = function (obj) { | ||
// return Object.keys(objectPath).reduce(function (proxy, prop) { | ||
// if (typeof objectPath[prop] === 'function') { | ||
// proxy[prop] = objectPath[prop].bind(objectPath, obj); | ||
// } | ||
// | ||
// return proxy; | ||
// }, {}); | ||
// }; | ||
// | ||
// objectPath.get = function (obj, path, defaultValue) { | ||
// if (isNumber(path)) { | ||
// path = [path]; | ||
// } | ||
// if (isEmpty(path)) { | ||
// return obj; | ||
// } | ||
// if (isEmpty(obj)) { | ||
// return defaultValue; | ||
// } | ||
// if (isString(path)) { | ||
// return objectPath.get(obj, path.split('.'), defaultValue); | ||
// } | ||
// | ||
// var currentPath = getKey(path[0]); | ||
// | ||
// if (path.length === 1) { | ||
// if (obj[currentPath] === void 0) { | ||
// return defaultValue; | ||
// } | ||
// return obj[currentPath]; | ||
// } | ||
// | ||
// return objectPath.get(obj[currentPath], path.slice(1), defaultValue); | ||
// }; | ||
// | ||
// objectPath.del = function (obj, path) { | ||
// return del(obj, path); | ||
// }; | ||
// | ||
// return objectPath; | ||
//} | ||
} |
{ | ||
"name": "one", | ||
"version": "5.0.3", | ||
"version": "5.1.0", | ||
"description": "Browser application cache. It guarantees entity uniqueness across the entire cache.", | ||
@@ -9,3 +9,3 @@ "main": "lib/index.js", | ||
"test": "istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage", | ||
"cov": "istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec", | ||
"cov": "istanbul cover ./node_modules/mocha/bin/_mocha -- -R spec", | ||
"build:js": "webpack --config webpack.config.js", | ||
@@ -15,2 +15,3 @@ "build:js:min": "webpack --config webpack.config.production.js", | ||
"build": "npm run build:lib && npm run build:js && npm run build:js:min", | ||
"tt": "webpack --config webpack.tt.config.js && webpack --config webpack.st.config.js", | ||
"prepub": "npm run clean && npm run build" | ||
@@ -25,3 +26,4 @@ }, | ||
"id", | ||
"time travel" | ||
"time travel", | ||
"pure" | ||
], | ||
@@ -28,0 +30,0 @@ "author": "Dan Maier", |
@@ -13,3 +13,3 @@ # One | ||
``` | ||
npm install one --save-dev | ||
npm install one --save | ||
``` | ||
@@ -45,42 +45,2 @@ | ||
###Threading | ||
```One``` can place entities on separate [threads](https://maierson.gitbooks.io/one/content/threads.html) for a granular control of the time travelling mechanism. | ||
```js | ||
let item1 = {uid:1} | ||
One.put(item1, "thread1") // item1 is on 2 threads "main" and "thread1" | ||
let editable = One.get(1) | ||
editable.text = "background" | ||
One.put(editable) // editable is on "main" thread only | ||
let otherEditable = One.get(1) | ||
otherEditable.text = "thread1Edited" | ||
One.put(otherEditable, "thread1") // otherEditable is on "main" and "thread1" | ||
// time travel can now be done on either "main" thread or "thread1" | ||
// on thread1 | ||
One.get(1).text // "thread1Edited" | ||
// also | ||
One.get(1, "thread1").text // "thread1Edited" both threads are left on their last put operation | ||
// travel back on thread1 = to the first put operation | ||
One.undo("thread1") | ||
One.get(1, "thread1").text // undefined (jumped straight to the first node) | ||
// but | ||
One.get(1).text // still "thread1Edited" as the main thread is still positioned at the last node where we left it | ||
// now travel on main thread. "main" thread is left | ||
// where it was after the last put operation | ||
// (threads can travel separately) | ||
One.undo() | ||
One.get(1).text // "background" | ||
One.undo() | ||
One.get(1).text // undefined | ||
One.redo() | ||
One.get(1).text // "background" | ||
``` | ||
###Immutable | ||
@@ -136,3 +96,2 @@ All data is immutable. Once an item enters the cache it freezes and cannot change. This is to enable quick identity checks against immutable entities (ie React identity check). | ||
###Motivation | ||
@@ -160,2 +119,9 @@ More an more applications are giving users the ability to edit data in the browser. | ||
###Release Notes | ||
5.1.0 | ||
* remove thread api, time travel works on main thread only to prevent mixing data from different cache nodes | ||
* ```getCurrentIndex()``` change to ```index()``` with dual nature to get or set the current index. | ||
* add ```node()``` api in order to locate cache nodes by their id | ||
Replaces the threading option in a much simpler and intuitive manner since threads are only a way of jumping around in time on the cache. | ||
###Documentation | ||
@@ -167,5 +133,4 @@ * [Immutable data](https://maierson.gitbooks.io/one/content/immutable_data.html) | ||
* [Evict](https://maierson.gitbooks.io/one/content/evict.html) | ||
* [Threads](https://maierson.gitbooks.io/one/content/threads.html) | ||
* [Time travel](https://maierson.gitbooks.io/one/content/time_travel.html) | ||
@@ -6,2 +6,29 @@ /** | ||
var _hasOwnProperty = Object.prototype.hasOwnProperty; | ||
export function isNumber(value) { | ||
return typeof value === 'number' || toString(value) === "[object Number]"; | ||
} | ||
export function isString(obj) { | ||
return typeof obj === 'string' || toString(obj) === "[object String]"; | ||
} | ||
export function isEmpty(value) { | ||
if (!value) { | ||
return true; | ||
} | ||
if (isArray(value) && value.length === 0) { | ||
return true; | ||
} else if (!isString(value)) { | ||
for (var i in value) { | ||
if (_hasOwnProperty.call(value, i)) { | ||
return false; | ||
} | ||
} | ||
return true; | ||
} | ||
return false; | ||
} | ||
/** | ||
@@ -102,11 +129,2 @@ * | ||
/** | ||
* Copies a set's values into another set (shallow) | ||
* @param set | ||
*/ | ||
export function cloneSet(set) { | ||
let prevSet = set || new Set(); | ||
return new Set([...prevSet]); | ||
} | ||
/** | ||
* Checks if argument is an object | ||
@@ -162,10 +180,1 @@ * @param mixed_var | ||
/** | ||
* | ||
* @param value | ||
* @returns {boolean} | ||
*/ | ||
export function isRegExp(value) { | ||
return isObject(value) && objToStr(value) === '[object RegExp]'; | ||
} | ||
@@ -8,31 +8,4 @@ /** | ||
import {isObject, isArray} from './clone'; | ||
import {isObject, isArray, isString, isNumber, isEmpty} from './clone'; | ||
var _hasOwnProperty = Object.prototype.hasOwnProperty; | ||
function isNumber(value) { | ||
return typeof value === 'number' || toString(value) === "[object Number]"; | ||
} | ||
function isString(obj) { | ||
return typeof obj === 'string' || toString(obj) === "[object String]"; | ||
} | ||
function isEmpty(value) { | ||
if (!value) { | ||
return true; | ||
} | ||
if (isArray(value) && value.length === 0) { | ||
return true; | ||
} else if (!isString(value)) { | ||
for (var i in value) { | ||
if (_hasOwnProperty.call(value, i)) { | ||
return false; | ||
} | ||
} | ||
return true; | ||
} | ||
return false; | ||
} | ||
function getKey(key) { | ||
@@ -39,0 +12,0 @@ var intKey = parseInt(key); |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
242381
5532
132