@metapages/metapage 0.13.8 → 0.13.10-alpha1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.mjs +2157 -0
- package/dist/index.mjs.map +1 -0
- package/dist/metapage/Metaframe.d.ts +2 -2
- package/dist/metapage/Metaframe.d.ts.map +1 -1
- package/dist/metapage/MetapageIFrameRpcClient.d.ts +5 -5
- package/dist/metapage/MetapageIFrameRpcClient.d.ts.map +1 -1
- package/dist/metapage/data.d.ts.map +1 -1
- package/package.json +13 -15
- package/src/metapage/Metaframe.ts +30 -21
- package/src/metapage/MetapageIFrameRpcClient.ts +46 -30
- package/src/metapage/data.ts +12 -14
- package/src/metapage/types/definitions.d.ts +0 -1
- package/dist/browser/metaframe/index.js +0 -31
- package/dist/browser/metaframe/index.js.map +0 -1
- package/dist/browser/metapage/index.js +0 -37
- package/dist/browser/metapage/index.js.map +0 -1
- package/dist/index.js +0 -8
- package/dist/index.js.map +0 -1
- package/dist/metapage/Constants.js +0 -7
- package/dist/metapage/Constants.js.map +0 -1
- package/dist/metapage/Metaframe.js +0 -346
- package/dist/metapage/Metaframe.js.map +0 -1
- package/dist/metapage/Metapage.js +0 -797
- package/dist/metapage/Metapage.js.map +0 -1
- package/dist/metapage/MetapageIFrameRpcClient.js +0 -363
- package/dist/metapage/MetapageIFrameRpcClient.js.map +0 -1
- package/dist/metapage/MetapageTools.js +0 -273
- package/dist/metapage/MetapageTools.js.map +0 -1
- package/dist/metapage/Shared.js +0 -32
- package/dist/metapage/Shared.js.map +0 -1
- package/dist/metapage/data.js +0 -112
- package/dist/metapage/data.js.map +0 -1
- package/dist/metapage/errors/MissingMetaframeJson.js +0 -7
- package/dist/metapage/errors/MissingMetaframeJson.js.map +0 -1
- package/dist/metapage/errors/RootMetapageError.js +0 -7
- package/dist/metapage/errors/RootMetapageError.js.map +0 -1
- package/dist/metapage/jsonrpc2.js +0 -25
- package/dist/metapage/jsonrpc2.js.map +0 -1
- package/dist/metapage/v0_0_1/all.js +0 -16
- package/dist/metapage/v0_0_1/all.js.map +0 -1
- package/dist/metapage/v0_1_0/all.js +0 -16
- package/dist/metapage/v0_1_0/all.js.map +0 -1
- package/dist/metapage/v0_2/all.js +0 -3
- package/dist/metapage/v0_2/all.js.map +0 -1
- package/dist/metapage/v0_3/JsonRpcMethods.js +0 -20
- package/dist/metapage/v0_3/JsonRpcMethods.js.map +0 -1
- package/dist/metapage/v0_3/all.js +0 -2
- package/dist/metapage/v0_3/all.js.map +0 -1
- package/dist/metapage/v0_4/core.js +0 -2
- package/dist/metapage/v0_4/core.js.map +0 -1
- package/dist/metapage/v0_4/events.js +0 -12
- package/dist/metapage/v0_4/events.js.map +0 -1
- package/dist/metapage/v0_4/index.js +0 -7
- package/dist/metapage/v0_4/index.js.map +0 -1
- package/dist/metapage/v0_4/jsonrpc.js +0 -20
- package/dist/metapage/v0_4/jsonrpc.js.map +0 -1
- package/dist/metapage/v0_4/metaframe.js +0 -2
- package/dist/metapage/v0_4/metaframe.js.map +0 -1
- package/dist/metapage/v0_4/metapage.js +0 -2
- package/dist/metapage/v0_4/metapage.js.map +0 -1
- package/dist/metapage/v0_4/versions.js +0 -17
- package/dist/metapage/v0_4/versions.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../node_modules/object-hash/dist/object_hash.js","v0_4/versions.ts","v0_4/core.ts","v0_4/events.ts","v0_4/jsonrpc.ts","v0_4/index.ts","Constants.ts","../../node_modules/compare-versions/index.mjs","../../node_modules/eventemitter3/index.js","Shared.ts","MetapageTools.ts","../../node_modules/unibabel/index.js","data.ts","MetapageIFrameRpcClient.ts","Metapage.ts"],"names":["e","t","exports","module","define","amd","window","global","self","objectHash","r","o","i","u","s","n","require","a","Error","call","length","w","b","m","c","d","h","p","g","y","algorithm","createHash","l","write","update","end","f","dispatch","digest","encoding","read","toString","sha1","keys","excludeValues","MD5","keysMD5","getHashes","slice","push","toLowerCase","ignoreUnknown","respectType","respectFunctionNames","respectFunctionProperties","unorderedArrays","unorderedSets","unorderedObjects","replacer","excludeKeys","indexOf","join","exec","Function","prototype","_object","Object","isBuffer","sort","splice","filter","forEach","_array","map","concat","_date","toJSON","_symbol","_error","_boolean","_string","_function","String","name","_number","_xml","_null","_undefined","_regexp","_uint8array","Array","_uint8clampedarray","_int8array","_uint16array","_int16array","_uint32array","_int32array","_float32array","_float64array","_arraybuffer","Uint8Array","_url","_map","from","_set","_file","size","type","lastModfied","_blob","_domwindow","_bigint","_process","_timer","_pipe","_tcp","_udp","_tty","_statwatcher","_securecontext","_connection","_zlib","_context","_nodescript","_httpparser","_dataview","_signal","_fsevent","_tlswrap","buf","writeToStream","Buffer","arguments","buffer","crypto","lYpoI2","charCodeAt","toByteArray","charAt","fromByteArray","base64js","O","H","trim","replace","j","byteLength","_useTypedArrays","_augment","_isBuffer","C","readUInt8","_","E","I","A","Y","Math","min","B","F","L","U","D","x","SlowBuffer","INSPECT_MAX_BYTES","poolSize","ArrayBuffer","foo","subarray","isEncoding","T","M","copy","isFinite","Number","parseInt","substr","isNaN","_charsWritten","k","N","fromCharCode","v","data","_arr","S","get","console","log","set","writeUInt8","readUInt16LE","readUInt16BE","readUInt32LE","readUInt32BE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","fill","inspect","toArrayBuffer","ceil","isArray","encodeURIComponent","split","decodeURIComponent","floor","_get","toLocaleString","ieee754","hash","sha256","md5","createHmac","randomBytes","random","NaN","pow","abs","LN2","nextTick","setImmediate","postMessage","addEventListener","source","stopPropagation","shift","setTimeout","title","browser","env","argv","on","addListener","once","off","removeListener","removeAllListeners","emit","binding","cwd","chdir","compareVersions","v1","v2","n1","validateAndParse","n2","p1","pop","p2","compareSegments","validate","test","semver","compare","operator","assertValidOperator","res","operatorResMap","includes","satisfies","match","op","v3","r1","r2","r3","compareStrings","TypeError","isWildcard","tryParse","forceType","ap","bp","max","allowedOperators"],"mappings":"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","file":"index.js","sourceRoot":"../../../src/metapage","sourcesContent":["!function(e){var t;\"object\"==typeof exports?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(\"undefined\"!=typeof window?t=window:\"undefined\"!=typeof global?t=global:\"undefined\"!=typeof self&&(t=self),t.objectHash=e())}(function(){return function r(o,i,u){function s(n,e){if(!i[n]){if(!o[n]){var t=\"function\"==typeof require&&require;if(!e&&t)return t(n,!0);if(a)return a(n,!0);throw new Error(\"Cannot find module '\"+n+\"'\")}e=i[n]={exports:{}};o[n][0].call(e.exports,function(e){var t=o[n][1][e];return s(t||e)},e,e.exports,r,o,i,u)}return i[n].exports}for(var a=\"function\"==typeof require&&require,e=0;e<u.length;e++)s(u[e]);return s}({1:[function(w,b,m){!function(e,n,s,c,d,h,p,g,y){\"use strict\";var r=w(\"crypto\");function t(e,t){t=u(e,t);var n;return void 0===(n=\"passthrough\"!==t.algorithm?r.createHash(t.algorithm):new l).write&&(n.write=n.update,n.end=n.update),f(t,n).dispatch(e),n.update||n.end(\"\"),n.digest?n.digest(\"buffer\"===t.encoding?void 0:t.encoding):(e=n.read(),\"buffer\"!==t.encoding?e.toString(t.encoding):e)}(m=b.exports=t).sha1=function(e){return t(e)},m.keys=function(e){return t(e,{excludeValues:!0,algorithm:\"sha1\",encoding:\"hex\"})},m.MD5=function(e){return t(e,{algorithm:\"md5\",encoding:\"hex\"})},m.keysMD5=function(e){return t(e,{algorithm:\"md5\",encoding:\"hex\",excludeValues:!0})};var o=r.getHashes?r.getHashes().slice():[\"sha1\",\"md5\"],i=(o.push(\"passthrough\"),[\"buffer\",\"hex\",\"binary\",\"base64\"]);function u(e,t){var n={};if(n.algorithm=(t=t||{}).algorithm||\"sha1\",n.encoding=t.encoding||\"hex\",n.excludeValues=!!t.excludeValues,n.algorithm=n.algorithm.toLowerCase(),n.encoding=n.encoding.toLowerCase(),n.ignoreUnknown=!0===t.ignoreUnknown,n.respectType=!1!==t.respectType,n.respectFunctionNames=!1!==t.respectFunctionNames,n.respectFunctionProperties=!1!==t.respectFunctionProperties,n.unorderedArrays=!0===t.unorderedArrays,n.unorderedSets=!1!==t.unorderedSets,n.unorderedObjects=!1!==t.unorderedObjects,n.replacer=t.replacer||void 0,n.excludeKeys=t.excludeKeys||void 0,void 0===e)throw new Error(\"Object argument required.\");for(var r=0;r<o.length;++r)o[r].toLowerCase()===n.algorithm.toLowerCase()&&(n.algorithm=o[r]);if(-1===o.indexOf(n.algorithm))throw new Error('Algorithm \"'+n.algorithm+'\" not supported. supported values: '+o.join(\", \"));if(-1===i.indexOf(n.encoding)&&\"passthrough\"!==n.algorithm)throw new Error('Encoding \"'+n.encoding+'\" not supported. supported values: '+i.join(\", \"));return n}function a(e){if(\"function\"==typeof e)return null!=/^function\\s+\\w*\\s*\\(\\s*\\)\\s*{\\s+\\[native code\\]\\s+}$/i.exec(Function.prototype.toString.call(e))}function f(o,t,i){i=i||[];function u(e){return t.update?t.update(e,\"utf8\"):t.write(e,\"utf8\")}return{dispatch:function(e){return this[\"_\"+(null===(e=o.replacer?o.replacer(e):e)?\"null\":typeof e)](e)},_object:function(t){var n,e=Object.prototype.toString.call(t),r=/\\[object (.*)\\]/i.exec(e);r=(r=r?r[1]:\"unknown:[\"+e+\"]\").toLowerCase();if(0<=(e=i.indexOf(t)))return this.dispatch(\"[CIRCULAR:\"+e+\"]\");if(i.push(t),void 0!==s&&s.isBuffer&&s.isBuffer(t))return u(\"buffer:\"),u(t);if(\"object\"===r||\"function\"===r||\"asyncfunction\"===r)return e=Object.keys(t),o.unorderedObjects&&(e=e.sort()),!1===o.respectType||a(t)||e.splice(0,0,\"prototype\",\"__proto__\",\"constructor\"),o.excludeKeys&&(e=e.filter(function(e){return!o.excludeKeys(e)})),u(\"object:\"+e.length+\":\"),n=this,e.forEach(function(e){n.dispatch(e),u(\":\"),o.excludeValues||n.dispatch(t[e]),u(\",\")});if(!this[\"_\"+r]){if(o.ignoreUnknown)return u(\"[\"+r+\"]\");throw new Error('Unknown object type \"'+r+'\"')}this[\"_\"+r](t)},_array:function(e,t){t=void 0!==t?t:!1!==o.unorderedArrays;var n=this;if(u(\"array:\"+e.length+\":\"),!t||e.length<=1)return e.forEach(function(e){return n.dispatch(e)});var r=[],t=e.map(function(e){var t=new l,n=i.slice();return f(o,t,n).dispatch(e),r=r.concat(n.slice(i.length)),t.read().toString()});return i=i.concat(r),t.sort(),this._array(t,!1)},_date:function(e){return u(\"date:\"+e.toJSON())},_symbol:function(e){return u(\"symbol:\"+e.toString())},_error:function(e){return u(\"error:\"+e.toString())},_boolean:function(e){return u(\"bool:\"+e.toString())},_string:function(e){u(\"string:\"+e.length+\":\"),u(e.toString())},_function:function(e){u(\"fn:\"),a(e)?this.dispatch(\"[native]\"):this.dispatch(e.toString()),!1!==o.respectFunctionNames&&this.dispatch(\"function-name:\"+String(e.name)),o.respectFunctionProperties&&this._object(e)},_number:function(e){return u(\"number:\"+e.toString())},_xml:function(e){return u(\"xml:\"+e.toString())},_null:function(){return u(\"Null\")},_undefined:function(){return u(\"Undefined\")},_regexp:function(e){return u(\"regex:\"+e.toString())},_uint8array:function(e){return u(\"uint8array:\"),this.dispatch(Array.prototype.slice.call(e))},_uint8clampedarray:function(e){return u(\"uint8clampedarray:\"),this.dispatch(Array.prototype.slice.call(e))},_int8array:function(e){return u(\"int8array:\"),this.dispatch(Array.prototype.slice.call(e))},_uint16array:function(e){return u(\"uint16array:\"),this.dispatch(Array.prototype.slice.call(e))},_int16array:function(e){return u(\"int16array:\"),this.dispatch(Array.prototype.slice.call(e))},_uint32array:function(e){return u(\"uint32array:\"),this.dispatch(Array.prototype.slice.call(e))},_int32array:function(e){return u(\"int32array:\"),this.dispatch(Array.prototype.slice.call(e))},_float32array:function(e){return u(\"float32array:\"),this.dispatch(Array.prototype.slice.call(e))},_float64array:function(e){return u(\"float64array:\"),this.dispatch(Array.prototype.slice.call(e))},_arraybuffer:function(e){return u(\"arraybuffer:\"),this.dispatch(new Uint8Array(e))},_url:function(e){return u(\"url:\"+e.toString())},_map:function(e){u(\"map:\");e=Array.from(e);return this._array(e,!1!==o.unorderedSets)},_set:function(e){u(\"set:\");e=Array.from(e);return this._array(e,!1!==o.unorderedSets)},_file:function(e){return u(\"file:\"),this.dispatch([e.name,e.size,e.type,e.lastModfied])},_blob:function(){if(o.ignoreUnknown)return u(\"[blob]\");throw Error('Hashing Blob objects is currently not supported\\n(see https://github.com/puleos/object-hash/issues/26)\\nUse \"options.replacer\" or \"options.ignoreUnknown\"\\n')},_domwindow:function(){return u(\"domwindow\")},_bigint:function(e){return u(\"bigint:\"+e.toString())},_process:function(){return u(\"process\")},_timer:function(){return u(\"timer\")},_pipe:function(){return u(\"pipe\")},_tcp:function(){return u(\"tcp\")},_udp:function(){return u(\"udp\")},_tty:function(){return u(\"tty\")},_statwatcher:function(){return u(\"statwatcher\")},_securecontext:function(){return u(\"securecontext\")},_connection:function(){return u(\"connection\")},_zlib:function(){return u(\"zlib\")},_context:function(){return u(\"context\")},_nodescript:function(){return u(\"nodescript\")},_httpparser:function(){return u(\"httpparser\")},_dataview:function(){return u(\"dataview\")},_signal:function(){return u(\"signal\")},_fsevent:function(){return u(\"fsevent\")},_tlswrap:function(){return u(\"tlswrap\")}}}function l(){return{buf:\"\",write:function(e){this.buf+=e},end:function(e){this.buf+=e},read:function(){return this.buf}}}m.writeToStream=function(e,t,n){return void 0===n&&(n=t,t={}),f(t=u(e,t),n).dispatch(e)}}.call(this,w(\"lYpoI2\"),\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{},w(\"buffer\").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],\"/fake_9a5aa49d.js\",\"/\")},{buffer:3,crypto:5,lYpoI2:11}],2:[function(e,t,f){!function(e,t,n,r,o,i,u,s,a){!function(e){\"use strict\";var a=\"undefined\"!=typeof Uint8Array?Uint8Array:Array,t=\"+\".charCodeAt(0),n=\"/\".charCodeAt(0),r=\"0\".charCodeAt(0),o=\"a\".charCodeAt(0),i=\"A\".charCodeAt(0),u=\"-\".charCodeAt(0),s=\"_\".charCodeAt(0);function f(e){e=e.charCodeAt(0);return e===t||e===u?62:e===n||e===s?63:e<r?-1:e<r+10?e-r+26+26:e<i+26?e-i:e<o+26?e-o+26:void 0}e.toByteArray=function(e){var t,n;if(0<e.length%4)throw new Error(\"Invalid string. Length must be a multiple of 4\");var r=e.length,r=\"=\"===e.charAt(r-2)?2:\"=\"===e.charAt(r-1)?1:0,o=new a(3*e.length/4-r),i=0<r?e.length-4:e.length,u=0;function s(e){o[u++]=e}for(t=0;t<i;t+=4,0)s((16711680&(n=f(e.charAt(t))<<18|f(e.charAt(t+1))<<12|f(e.charAt(t+2))<<6|f(e.charAt(t+3))))>>16),s((65280&n)>>8),s(255&n);return 2==r?s(255&(n=f(e.charAt(t))<<2|f(e.charAt(t+1))>>4)):1==r&&(s((n=f(e.charAt(t))<<10|f(e.charAt(t+1))<<4|f(e.charAt(t+2))>>2)>>8&255),s(255&n)),o},e.fromByteArray=function(e){var t,n,r,o,i=e.length%3,u=\"\";function s(e){return\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\".charAt(e)}for(t=0,r=e.length-i;t<r;t+=3)n=(e[t]<<16)+(e[t+1]<<8)+e[t+2],u+=s((o=n)>>18&63)+s(o>>12&63)+s(o>>6&63)+s(63&o);switch(i){case 1:u=(u+=s((n=e[e.length-1])>>2))+s(n<<4&63)+\"==\";break;case 2:u=(u=(u+=s((n=(e[e.length-2]<<8)+e[e.length-1])>>10))+s(n>>4&63))+s(n<<2&63)+\"=\"}return u}}(void 0===f?this.base64js={}:f)}.call(this,e(\"lYpoI2\"),\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{},e(\"buffer\").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],\"/node_modules/gulp-browserify/node_modules/base64-js/lib/b64.js\",\"/node_modules/gulp-browserify/node_modules/base64-js/lib\")},{buffer:3,lYpoI2:11}],3:[function(O,e,H){!function(e,n,f,r,h,p,g,y,w){var a=O(\"base64-js\"),i=O(\"ieee754\");function f(e,t,n){if(!(this instanceof f))return new f(e,t,n);var r,o,i,u,s=typeof e;if(\"base64\"===t&&\"string\"==s)for(e=(u=e).trim?u.trim():u.replace(/^\\s+|\\s+$/g,\"\");e.length%4!=0;)e+=\"=\";if(\"number\"==s)r=j(e);else if(\"string\"==s)r=f.byteLength(e,t);else{if(\"object\"!=s)throw new Error(\"First argument needs to be a number, array or string.\");r=j(e.length)}if(f._useTypedArrays?o=f._augment(new Uint8Array(r)):((o=this).length=r,o._isBuffer=!0),f._useTypedArrays&&\"number\"==typeof e.byteLength)o._set(e);else if(C(u=e)||f.isBuffer(u)||u&&\"object\"==typeof u&&\"number\"==typeof u.length)for(i=0;i<r;i++)f.isBuffer(e)?o[i]=e.readUInt8(i):o[i]=e[i];else if(\"string\"==s)o.write(e,0,t);else if(\"number\"==s&&!f._useTypedArrays&&!n)for(i=0;i<r;i++)o[i]=0;return o}function b(e,t,n,r){return f._charsWritten=c(function(e){for(var t=[],n=0;n<e.length;n++)t.push(255&e.charCodeAt(n));return t}(t),e,n,r)}function m(e,t,n,r){return f._charsWritten=c(function(e){for(var t,n,r=[],o=0;o<e.length;o++)n=e.charCodeAt(o),t=n>>8,n=n%256,r.push(n),r.push(t);return r}(t),e,n,r)}function v(e,t,n){var r=\"\";n=Math.min(e.length,n);for(var o=t;o<n;o++)r+=String.fromCharCode(e[o]);return r}function o(e,t,n,r){r||(d(\"boolean\"==typeof n,\"missing or invalid endian\"),d(null!=t,\"missing offset\"),d(t+1<e.length,\"Trying to read beyond buffer length\"));var o,r=e.length;if(!(r<=t))return n?(o=e[t],t+1<r&&(o|=e[t+1]<<8)):(o=e[t]<<8,t+1<r&&(o|=e[t+1])),o}function u(e,t,n,r){r||(d(\"boolean\"==typeof n,\"missing or invalid endian\"),d(null!=t,\"missing offset\"),d(t+3<e.length,\"Trying to read beyond buffer length\"));var o,r=e.length;if(!(r<=t))return n?(t+2<r&&(o=e[t+2]<<16),t+1<r&&(o|=e[t+1]<<8),o|=e[t],t+3<r&&(o+=e[t+3]<<24>>>0)):(t+1<r&&(o=e[t+1]<<16),t+2<r&&(o|=e[t+2]<<8),t+3<r&&(o|=e[t+3]),o+=e[t]<<24>>>0),o}function _(e,t,n,r){if(r||(d(\"boolean\"==typeof n,\"missing or invalid endian\"),d(null!=t,\"missing offset\"),d(t+1<e.length,\"Trying to read beyond buffer length\")),!(e.length<=t))return r=o(e,t,n,!0),32768&r?-1*(65535-r+1):r}function E(e,t,n,r){if(r||(d(\"boolean\"==typeof n,\"missing or invalid endian\"),d(null!=t,\"missing offset\"),d(t+3<e.length,\"Trying to read beyond buffer length\")),!(e.length<=t))return r=u(e,t,n,!0),2147483648&r?-1*(4294967295-r+1):r}function I(e,t,n,r){return r||(d(\"boolean\"==typeof n,\"missing or invalid endian\"),d(t+3<e.length,\"Trying to read beyond buffer length\")),i.read(e,t,n,23,4)}function A(e,t,n,r){return r||(d(\"boolean\"==typeof n,\"missing or invalid endian\"),d(t+7<e.length,\"Trying to read beyond buffer length\")),i.read(e,t,n,52,8)}function s(e,t,n,r,o){o||(d(null!=t,\"missing value\"),d(\"boolean\"==typeof r,\"missing or invalid endian\"),d(null!=n,\"missing offset\"),d(n+1<e.length,\"trying to write beyond buffer length\"),Y(t,65535));o=e.length;if(!(o<=n))for(var i=0,u=Math.min(o-n,2);i<u;i++)e[n+i]=(t&255<<8*(r?i:1-i))>>>8*(r?i:1-i)}function l(e,t,n,r,o){o||(d(null!=t,\"missing value\"),d(\"boolean\"==typeof r,\"missing or invalid endian\"),d(null!=n,\"missing offset\"),d(n+3<e.length,\"trying to write beyond buffer length\"),Y(t,4294967295));o=e.length;if(!(o<=n))for(var i=0,u=Math.min(o-n,4);i<u;i++)e[n+i]=t>>>8*(r?i:3-i)&255}function B(e,t,n,r,o){o||(d(null!=t,\"missing value\"),d(\"boolean\"==typeof r,\"missing or invalid endian\"),d(null!=n,\"missing offset\"),d(n+1<e.length,\"Trying to write beyond buffer length\"),F(t,32767,-32768)),e.length<=n||s(e,0<=t?t:65535+t+1,n,r,o)}function L(e,t,n,r,o){o||(d(null!=t,\"missing value\"),d(\"boolean\"==typeof r,\"missing or invalid endian\"),d(null!=n,\"missing offset\"),d(n+3<e.length,\"Trying to write beyond buffer length\"),F(t,2147483647,-2147483648)),e.length<=n||l(e,0<=t?t:4294967295+t+1,n,r,o)}function U(e,t,n,r,o){o||(d(null!=t,\"missing value\"),d(\"boolean\"==typeof r,\"missing or invalid endian\"),d(null!=n,\"missing offset\"),d(n+3<e.length,\"Trying to write beyond buffer length\"),D(t,34028234663852886e22,-34028234663852886e22)),e.length<=n||i.write(e,t,n,r,23,4)}function x(e,t,n,r,o){o||(d(null!=t,\"missing value\"),d(\"boolean\"==typeof r,\"missing or invalid endian\"),d(null!=n,\"missing offset\"),d(n+7<e.length,\"Trying to write beyond buffer length\"),D(t,17976931348623157e292,-17976931348623157e292)),e.length<=n||i.write(e,t,n,r,52,8)}H.Buffer=f,H.SlowBuffer=f,H.INSPECT_MAX_BYTES=50,f.poolSize=8192,f._useTypedArrays=function(){try{var e=new ArrayBuffer(0),t=new Uint8Array(e);return t.foo=function(){return 42},42===t.foo()&&\"function\"==typeof t.subarray}catch(e){return!1}}(),f.isEncoding=function(e){switch(String(e).toLowerCase()){case\"hex\":case\"utf8\":case\"utf-8\":case\"ascii\":case\"binary\":case\"base64\":case\"raw\":case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return!0;default:return!1}},f.isBuffer=function(e){return!(null==e||!e._isBuffer)},f.byteLength=function(e,t){var n;switch(e+=\"\",t||\"utf8\"){case\"hex\":n=e.length/2;break;case\"utf8\":case\"utf-8\":n=T(e).length;break;case\"ascii\":case\"binary\":case\"raw\":n=e.length;break;case\"base64\":n=M(e).length;break;case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":n=2*e.length;break;default:throw new Error(\"Unknown encoding\")}return n},f.concat=function(e,t){if(d(C(e),\"Usage: Buffer.concat(list, [totalLength])\\nlist should be an Array.\"),0===e.length)return new f(0);if(1===e.length)return e[0];if(\"number\"!=typeof t)for(o=t=0;o<e.length;o++)t+=e[o].length;for(var n=new f(t),r=0,o=0;o<e.length;o++){var i=e[o];i.copy(n,r),r+=i.length}return n},f.prototype.write=function(e,t,n,r){isFinite(t)?isFinite(n)||(r=n,n=void 0):(a=r,r=t,t=n,n=a),t=Number(t)||0;var o,i,u,s,a=this.length-t;switch((!n||a<(n=Number(n)))&&(n=a),r=String(r||\"utf8\").toLowerCase()){case\"hex\":o=function(e,t,n,r){n=Number(n)||0;var o=e.length-n;(!r||o<(r=Number(r)))&&(r=o),d((o=t.length)%2==0,\"Invalid hex string\"),o/2<r&&(r=o/2);for(var i=0;i<r;i++){var u=parseInt(t.substr(2*i,2),16);d(!isNaN(u),\"Invalid hex string\"),e[n+i]=u}return f._charsWritten=2*i,i}(this,e,t,n);break;case\"utf8\":case\"utf-8\":i=this,u=t,s=n,o=f._charsWritten=c(T(e),i,u,s);break;case\"ascii\":case\"binary\":o=b(this,e,t,n);break;case\"base64\":i=this,u=t,s=n,o=f._charsWritten=c(M(e),i,u,s);break;case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":o=m(this,e,t,n);break;default:throw new Error(\"Unknown encoding\")}return o},f.prototype.toString=function(e,t,n){var r,o,i,u,s=this;if(e=String(e||\"utf8\").toLowerCase(),t=Number(t)||0,(n=void 0!==n?Number(n):s.length)===t)return\"\";switch(e){case\"hex\":r=function(e,t,n){var r=e.length;(!t||t<0)&&(t=0);(!n||n<0||r<n)&&(n=r);for(var o=\"\",i=t;i<n;i++)o+=k(e[i]);return o}(s,t,n);break;case\"utf8\":case\"utf-8\":r=function(e,t,n){var r=\"\",o=\"\";n=Math.min(e.length,n);for(var i=t;i<n;i++)e[i]<=127?(r+=N(o)+String.fromCharCode(e[i]),o=\"\"):o+=\"%\"+e[i].toString(16);return r+N(o)}(s,t,n);break;case\"ascii\":case\"binary\":r=v(s,t,n);break;case\"base64\":o=s,u=n,r=0===(i=t)&&u===o.length?a.fromByteArray(o):a.fromByteArray(o.slice(i,u));break;case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":r=function(e,t,n){for(var r=e.slice(t,n),o=\"\",i=0;i<r.length;i+=2)o+=String.fromCharCode(r[i]+256*r[i+1]);return o}(s,t,n);break;default:throw new Error(\"Unknown encoding\")}return r},f.prototype.toJSON=function(){return{type:\"Buffer\",data:Array.prototype.slice.call(this._arr||this,0)}},f.prototype.copy=function(e,t,n,r){if(t=t||0,(r=r||0===r?r:this.length)!==(n=n||0)&&0!==e.length&&0!==this.length){d(n<=r,\"sourceEnd < sourceStart\"),d(0<=t&&t<e.length,\"targetStart out of bounds\"),d(0<=n&&n<this.length,\"sourceStart out of bounds\"),d(0<=r&&r<=this.length,\"sourceEnd out of bounds\"),r>this.length&&(r=this.length);var o=(r=e.length-t<r-n?e.length-t+n:r)-n;if(o<100||!f._useTypedArrays)for(var i=0;i<o;i++)e[i+t]=this[i+n];else e._set(this.subarray(n,n+o),t)}},f.prototype.slice=function(e,t){var n=this.length;if(e=S(e,n,0),t=S(t,n,n),f._useTypedArrays)return f._augment(this.subarray(e,t));for(var r=t-e,o=new f(r,void 0,!0),i=0;i<r;i++)o[i]=this[i+e];return o},f.prototype.get=function(e){return console.log(\".get() is deprecated. Access using array indexes instead.\"),this.readUInt8(e)},f.prototype.set=function(e,t){return console.log(\".set() is deprecated. Access using array indexes instead.\"),this.writeUInt8(e,t)},f.prototype.readUInt8=function(e,t){if(t||(d(null!=e,\"missing offset\"),d(e<this.length,\"Trying to read beyond buffer length\")),!(e>=this.length))return this[e]},f.prototype.readUInt16LE=function(e,t){return o(this,e,!0,t)},f.prototype.readUInt16BE=function(e,t){return o(this,e,!1,t)},f.prototype.readUInt32LE=function(e,t){return u(this,e,!0,t)},f.prototype.readUInt32BE=function(e,t){return u(this,e,!1,t)},f.prototype.readInt8=function(e,t){if(t||(d(null!=e,\"missing offset\"),d(e<this.length,\"Trying to read beyond buffer length\")),!(e>=this.length))return 128&this[e]?-1*(255-this[e]+1):this[e]},f.prototype.readInt16LE=function(e,t){return _(this,e,!0,t)},f.prototype.readInt16BE=function(e,t){return _(this,e,!1,t)},f.prototype.readInt32LE=function(e,t){return E(this,e,!0,t)},f.prototype.readInt32BE=function(e,t){return E(this,e,!1,t)},f.prototype.readFloatLE=function(e,t){return I(this,e,!0,t)},f.prototype.readFloatBE=function(e,t){return I(this,e,!1,t)},f.prototype.readDoubleLE=function(e,t){return A(this,e,!0,t)},f.prototype.readDoubleBE=function(e,t){return A(this,e,!1,t)},f.prototype.writeUInt8=function(e,t,n){n||(d(null!=e,\"missing value\"),d(null!=t,\"missing offset\"),d(t<this.length,\"trying to write beyond buffer length\"),Y(e,255)),t>=this.length||(this[t]=e)},f.prototype.writeUInt16LE=function(e,t,n){s(this,e,t,!0,n)},f.prototype.writeUInt16BE=function(e,t,n){s(this,e,t,!1,n)},f.prototype.writeUInt32LE=function(e,t,n){l(this,e,t,!0,n)},f.prototype.writeUInt32BE=function(e,t,n){l(this,e,t,!1,n)},f.prototype.writeInt8=function(e,t,n){n||(d(null!=e,\"missing value\"),d(null!=t,\"missing offset\"),d(t<this.length,\"Trying to write beyond buffer length\"),F(e,127,-128)),t>=this.length||(0<=e?this.writeUInt8(e,t,n):this.writeUInt8(255+e+1,t,n))},f.prototype.writeInt16LE=function(e,t,n){B(this,e,t,!0,n)},f.prototype.writeInt16BE=function(e,t,n){B(this,e,t,!1,n)},f.prototype.writeInt32LE=function(e,t,n){L(this,e,t,!0,n)},f.prototype.writeInt32BE=function(e,t,n){L(this,e,t,!1,n)},f.prototype.writeFloatLE=function(e,t,n){U(this,e,t,!0,n)},f.prototype.writeFloatBE=function(e,t,n){U(this,e,t,!1,n)},f.prototype.writeDoubleLE=function(e,t,n){x(this,e,t,!0,n)},f.prototype.writeDoubleBE=function(e,t,n){x(this,e,t,!1,n)},f.prototype.fill=function(e,t,n){if(t=t||0,n=n||this.length,d(\"number\"==typeof(e=\"string\"==typeof(e=e||0)?e.charCodeAt(0):e)&&!isNaN(e),\"value is not a number\"),d(t<=n,\"end < start\"),n!==t&&0!==this.length){d(0<=t&&t<this.length,\"start out of bounds\"),d(0<=n&&n<=this.length,\"end out of bounds\");for(var r=t;r<n;r++)this[r]=e}},f.prototype.inspect=function(){for(var e=[],t=this.length,n=0;n<t;n++)if(e[n]=k(this[n]),n===H.INSPECT_MAX_BYTES){e[n+1]=\"...\";break}return\"<Buffer \"+e.join(\" \")+\">\"},f.prototype.toArrayBuffer=function(){if(\"undefined\"==typeof Uint8Array)throw new Error(\"Buffer.toArrayBuffer not supported in this browser\");if(f._useTypedArrays)return new f(this).buffer;for(var e=new Uint8Array(this.length),t=0,n=e.length;t<n;t+=1)e[t]=this[t];return e.buffer};var t=f.prototype;function S(e,t,n){return\"number\"!=typeof e?n:t<=(e=~~e)?t:0<=e||0<=(e+=t)?e:0}function j(e){return(e=~~Math.ceil(+e))<0?0:e}function C(e){return(Array.isArray||function(e){return\"[object Array]\"===Object.prototype.toString.call(e)})(e)}function k(e){return e<16?\"0\"+e.toString(16):e.toString(16)}function T(e){for(var t=[],n=0;n<e.length;n++){var r=e.charCodeAt(n);if(r<=127)t.push(e.charCodeAt(n));else for(var o=n,i=(55296<=r&&r<=57343&&n++,encodeURIComponent(e.slice(o,n+1)).substr(1).split(\"%\")),u=0;u<i.length;u++)t.push(parseInt(i[u],16))}return t}function M(e){return a.toByteArray(e)}function c(e,t,n,r){for(var o=0;o<r&&!(o+n>=t.length||o>=e.length);o++)t[o+n]=e[o];return o}function N(e){try{return decodeURIComponent(e)}catch(e){return String.fromCharCode(65533)}}function Y(e,t){d(\"number\"==typeof e,\"cannot write a non-number as a number\"),d(0<=e,\"specified a negative value for writing an unsigned value\"),d(e<=t,\"value is larger than maximum value for type\"),d(Math.floor(e)===e,\"value has a fractional component\")}function F(e,t,n){d(\"number\"==typeof e,\"cannot write a non-number as a number\"),d(e<=t,\"value larger than maximum allowed value\"),d(n<=e,\"value smaller than minimum allowed value\"),d(Math.floor(e)===e,\"value has a fractional component\")}function D(e,t,n){d(\"number\"==typeof e,\"cannot write a non-number as a number\"),d(e<=t,\"value larger than maximum allowed value\"),d(n<=e,\"value smaller than minimum allowed value\")}function d(e,t){if(!e)throw new Error(t||\"Failed assertion\")}f._augment=function(e){return e._isBuffer=!0,e._get=e.get,e._set=e.set,e.get=t.get,e.set=t.set,e.write=t.write,e.toString=t.toString,e.toLocaleString=t.toString,e.toJSON=t.toJSON,e.copy=t.copy,e.slice=t.slice,e.readUInt8=t.readUInt8,e.readUInt16LE=t.readUInt16LE,e.readUInt16BE=t.readUInt16BE,e.readUInt32LE=t.readUInt32LE,e.readUInt32BE=t.readUInt32BE,e.readInt8=t.readInt8,e.readInt16LE=t.readInt16LE,e.readInt16BE=t.readInt16BE,e.readInt32LE=t.readInt32LE,e.readInt32BE=t.readInt32BE,e.readFloatLE=t.readFloatLE,e.readFloatBE=t.readFloatBE,e.readDoubleLE=t.readDoubleLE,e.readDoubleBE=t.readDoubleBE,e.writeUInt8=t.writeUInt8,e.writeUInt16LE=t.writeUInt16LE,e.writeUInt16BE=t.writeUInt16BE,e.writeUInt32LE=t.writeUInt32LE,e.writeUInt32BE=t.writeUInt32BE,e.writeInt8=t.writeInt8,e.writeInt16LE=t.writeInt16LE,e.writeInt16BE=t.writeInt16BE,e.writeInt32LE=t.writeInt32LE,e.writeInt32BE=t.writeInt32BE,e.writeFloatLE=t.writeFloatLE,e.writeFloatBE=t.writeFloatBE,e.writeDoubleLE=t.writeDoubleLE,e.writeDoubleBE=t.writeDoubleBE,e.fill=t.fill,e.inspect=t.inspect,e.toArrayBuffer=t.toArrayBuffer,e}}.call(this,O(\"lYpoI2\"),\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{},O(\"buffer\").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],\"/node_modules/gulp-browserify/node_modules/buffer/index.js\",\"/node_modules/gulp-browserify/node_modules/buffer\")},{\"base64-js\":2,buffer:3,ieee754:10,lYpoI2:11}],4:[function(c,d,e){!function(e,t,a,n,r,o,i,u,s){var a=c(\"buffer\").Buffer,f=4,l=new a(f);l.fill(0);d.exports={hash:function(e,t,n,r){for(var o=t(function(e,t){e.length%f!=0&&(n=e.length+(f-e.length%f),e=a.concat([e,l],n));for(var n,r=[],o=t?e.readInt32BE:e.readInt32LE,i=0;i<e.length;i+=f)r.push(o.call(e,i));return r}(e=a.isBuffer(e)?e:new a(e),r),8*e.length),t=r,i=new a(n),u=t?i.writeInt32BE:i.writeInt32LE,s=0;s<o.length;s++)u.call(i,o[s],4*s,!0);return i}}}.call(this,c(\"lYpoI2\"),\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{},c(\"buffer\").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],\"/node_modules/gulp-browserify/node_modules/crypto-browserify/helpers.js\",\"/node_modules/gulp-browserify/node_modules/crypto-browserify\")},{buffer:3,lYpoI2:11}],5:[function(v,e,_){!function(l,c,u,d,h,p,g,y,w){var u=v(\"buffer\").Buffer,e=v(\"./sha\"),t=v(\"./sha256\"),n=v(\"./rng\"),b={sha1:e,sha256:t,md5:v(\"./md5\")},s=64,a=new u(s);function r(e,n){var r=b[e=e||\"sha1\"],o=[];return r||i(\"algorithm:\",e,\"is not yet supported\"),{update:function(e){return u.isBuffer(e)||(e=new u(e)),o.push(e),e.length,this},digest:function(e){var t=u.concat(o),t=n?function(e,t,n){u.isBuffer(t)||(t=new u(t)),u.isBuffer(n)||(n=new u(n)),t.length>s?t=e(t):t.length<s&&(t=u.concat([t,a],s));for(var r=new u(s),o=new u(s),i=0;i<s;i++)r[i]=54^t[i],o[i]=92^t[i];return n=e(u.concat([r,n])),e(u.concat([o,n]))}(r,n,t):r(t);return o=null,e?t.toString(e):t}}}function i(){var e=[].slice.call(arguments).join(\" \");throw new Error([e,\"we accept pull requests\",\"http://github.com/dominictarr/crypto-browserify\"].join(\"\\n\"))}a.fill(0),_.createHash=function(e){return r(e)},_.createHmac=r,_.randomBytes=function(e,t){if(!t||!t.call)return new u(n(e));try{t.call(this,void 0,new u(n(e)))}catch(e){t(e)}};var o,f=[\"createCredentials\",\"createCipher\",\"createCipheriv\",\"createDecipher\",\"createDecipheriv\",\"createSign\",\"createVerify\",\"createDiffieHellman\",\"pbkdf2\"],m=function(e){_[e]=function(){i(\"sorry,\",e,\"is not implemented yet\")}};for(o in f)m(f[o],o)}.call(this,v(\"lYpoI2\"),\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{},v(\"buffer\").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],\"/node_modules/gulp-browserify/node_modules/crypto-browserify/index.js\",\"/node_modules/gulp-browserify/node_modules/crypto-browserify\")},{\"./md5\":6,\"./rng\":7,\"./sha\":8,\"./sha256\":9,buffer:3,lYpoI2:11}],6:[function(w,b,e){!function(e,r,o,i,u,a,f,l,y){var t=w(\"./helpers\");function n(e,t){e[t>>5]|=128<<t%32,e[14+(t+64>>>9<<4)]=t;for(var n=1732584193,r=-271733879,o=-1732584194,i=271733878,u=0;u<e.length;u+=16){var s=n,a=r,f=o,l=i,n=c(n,r,o,i,e[u+0],7,-680876936),i=c(i,n,r,o,e[u+1],12,-389564586),o=c(o,i,n,r,e[u+2],17,606105819),r=c(r,o,i,n,e[u+3],22,-1044525330);n=c(n,r,o,i,e[u+4],7,-176418897),i=c(i,n,r,o,e[u+5],12,1200080426),o=c(o,i,n,r,e[u+6],17,-1473231341),r=c(r,o,i,n,e[u+7],22,-45705983),n=c(n,r,o,i,e[u+8],7,1770035416),i=c(i,n,r,o,e[u+9],12,-1958414417),o=c(o,i,n,r,e[u+10],17,-42063),r=c(r,o,i,n,e[u+11],22,-1990404162),n=c(n,r,o,i,e[u+12],7,1804603682),i=c(i,n,r,o,e[u+13],12,-40341101),o=c(o,i,n,r,e[u+14],17,-1502002290),n=d(n,r=c(r,o,i,n,e[u+15],22,1236535329),o,i,e[u+1],5,-165796510),i=d(i,n,r,o,e[u+6],9,-1069501632),o=d(o,i,n,r,e[u+11],14,643717713),r=d(r,o,i,n,e[u+0],20,-373897302),n=d(n,r,o,i,e[u+5],5,-701558691),i=d(i,n,r,o,e[u+10],9,38016083),o=d(o,i,n,r,e[u+15],14,-660478335),r=d(r,o,i,n,e[u+4],20,-405537848),n=d(n,r,o,i,e[u+9],5,568446438),i=d(i,n,r,o,e[u+14],9,-1019803690),o=d(o,i,n,r,e[u+3],14,-187363961),r=d(r,o,i,n,e[u+8],20,1163531501),n=d(n,r,o,i,e[u+13],5,-1444681467),i=d(i,n,r,o,e[u+2],9,-51403784),o=d(o,i,n,r,e[u+7],14,1735328473),n=h(n,r=d(r,o,i,n,e[u+12],20,-1926607734),o,i,e[u+5],4,-378558),i=h(i,n,r,o,e[u+8],11,-2022574463),o=h(o,i,n,r,e[u+11],16,1839030562),r=h(r,o,i,n,e[u+14],23,-35309556),n=h(n,r,o,i,e[u+1],4,-1530992060),i=h(i,n,r,o,e[u+4],11,1272893353),o=h(o,i,n,r,e[u+7],16,-155497632),r=h(r,o,i,n,e[u+10],23,-1094730640),n=h(n,r,o,i,e[u+13],4,681279174),i=h(i,n,r,o,e[u+0],11,-358537222),o=h(o,i,n,r,e[u+3],16,-722521979),r=h(r,o,i,n,e[u+6],23,76029189),n=h(n,r,o,i,e[u+9],4,-640364487),i=h(i,n,r,o,e[u+12],11,-421815835),o=h(o,i,n,r,e[u+15],16,530742520),n=p(n,r=h(r,o,i,n,e[u+2],23,-995338651),o,i,e[u+0],6,-198630844),i=p(i,n,r,o,e[u+7],10,1126891415),o=p(o,i,n,r,e[u+14],15,-1416354905),r=p(r,o,i,n,e[u+5],21,-57434055),n=p(n,r,o,i,e[u+12],6,1700485571),i=p(i,n,r,o,e[u+3],10,-1894986606),o=p(o,i,n,r,e[u+10],15,-1051523),r=p(r,o,i,n,e[u+1],21,-2054922799),n=p(n,r,o,i,e[u+8],6,1873313359),i=p(i,n,r,o,e[u+15],10,-30611744),o=p(o,i,n,r,e[u+6],15,-1560198380),r=p(r,o,i,n,e[u+13],21,1309151649),n=p(n,r,o,i,e[u+4],6,-145523070),i=p(i,n,r,o,e[u+11],10,-1120210379),o=p(o,i,n,r,e[u+2],15,718787259),r=p(r,o,i,n,e[u+9],21,-343485551),n=g(n,s),r=g(r,a),o=g(o,f),i=g(i,l)}return Array(n,r,o,i)}function s(e,t,n,r,o,i){return g((t=g(g(t,e),g(r,i)))<<o|t>>>32-o,n)}function c(e,t,n,r,o,i,u){return s(t&n|~t&r,e,t,o,i,u)}function d(e,t,n,r,o,i,u){return s(t&r|n&~r,e,t,o,i,u)}function h(e,t,n,r,o,i,u){return s(t^n^r,e,t,o,i,u)}function p(e,t,n,r,o,i,u){return s(n^(t|~r),e,t,o,i,u)}function g(e,t){var n=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(n>>16)<<16|65535&n}b.exports=function(e){return t.hash(e,n,16)}}.call(this,w(\"lYpoI2\"),\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{},w(\"buffer\").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],\"/node_modules/gulp-browserify/node_modules/crypto-browserify/md5.js\",\"/node_modules/gulp-browserify/node_modules/crypto-browserify\")},{\"./helpers\":4,buffer:3,lYpoI2:11}],7:[function(e,l,t){!function(e,t,n,r,o,i,u,s,f){var a;l.exports=a||function(e){for(var t,n=new Array(e),r=0;r<e;r++)0==(3&r)&&(t=4294967296*Math.random()),n[r]=t>>>((3&r)<<3)&255;return n}}.call(this,e(\"lYpoI2\"),\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{},e(\"buffer\").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],\"/node_modules/gulp-browserify/node_modules/crypto-browserify/rng.js\",\"/node_modules/gulp-browserify/node_modules/crypto-browserify\")},{buffer:3,lYpoI2:11}],8:[function(c,d,e){!function(e,t,n,r,o,s,a,f,l){var i=c(\"./helpers\");function u(l,c){l[c>>5]|=128<<24-c%32,l[15+(c+64>>9<<4)]=c;for(var e,t,n,r=Array(80),o=1732584193,i=-271733879,u=-1732584194,s=271733878,d=-1009589776,h=0;h<l.length;h+=16){for(var p=o,g=i,y=u,w=s,b=d,a=0;a<80;a++){r[a]=a<16?l[h+a]:v(r[a-3]^r[a-8]^r[a-14]^r[a-16],1);var f=m(m(v(o,5),(f=i,t=u,n=s,(e=a)<20?f&t|~f&n:!(e<40)&&e<60?f&t|f&n|t&n:f^t^n)),m(m(d,r[a]),(e=a)<20?1518500249:e<40?1859775393:e<60?-1894007588:-899497514)),d=s,s=u,u=v(i,30),i=o,o=f}o=m(o,p),i=m(i,g),u=m(u,y),s=m(s,w),d=m(d,b)}return Array(o,i,u,s,d)}function m(e,t){var n=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(n>>16)<<16|65535&n}function v(e,t){return e<<t|e>>>32-t}d.exports=function(e){return i.hash(e,u,20,!0)}}.call(this,c(\"lYpoI2\"),\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{},c(\"buffer\").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],\"/node_modules/gulp-browserify/node_modules/crypto-browserify/sha.js\",\"/node_modules/gulp-browserify/node_modules/crypto-browserify\")},{\"./helpers\":4,buffer:3,lYpoI2:11}],9:[function(c,d,e){!function(e,t,n,r,u,s,a,f,l){function b(e,t){var n=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(n>>16)<<16|65535&n}function o(e,l){var c,d=new Array(1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298),t=new Array(1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225),n=new Array(64);e[l>>5]|=128<<24-l%32,e[15+(l+64>>9<<4)]=l;for(var r,o,h=0;h<e.length;h+=16){for(var i=t[0],u=t[1],s=t[2],p=t[3],a=t[4],g=t[5],y=t[6],w=t[7],f=0;f<64;f++)n[f]=f<16?e[f+h]:b(b(b((o=n[f-2],m(o,17)^m(o,19)^v(o,10)),n[f-7]),(o=n[f-15],m(o,7)^m(o,18)^v(o,3))),n[f-16]),c=b(b(b(b(w,m(o=a,6)^m(o,11)^m(o,25)),a&g^~a&y),d[f]),n[f]),r=b(m(r=i,2)^m(r,13)^m(r,22),i&u^i&s^u&s),w=y,y=g,g=a,a=b(p,c),p=s,s=u,u=i,i=b(c,r);t[0]=b(i,t[0]),t[1]=b(u,t[1]),t[2]=b(s,t[2]),t[3]=b(p,t[3]),t[4]=b(a,t[4]),t[5]=b(g,t[5]),t[6]=b(y,t[6]),t[7]=b(w,t[7])}return t}var i=c(\"./helpers\"),m=function(e,t){return e>>>t|e<<32-t},v=function(e,t){return e>>>t};d.exports=function(e){return i.hash(e,o,32,!0)}}.call(this,c(\"lYpoI2\"),\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{},c(\"buffer\").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],\"/node_modules/gulp-browserify/node_modules/crypto-browserify/sha256.js\",\"/node_modules/gulp-browserify/node_modules/crypto-browserify\")},{\"./helpers\":4,buffer:3,lYpoI2:11}],10:[function(e,t,f){!function(e,t,n,r,o,i,u,s,a){f.read=function(e,t,n,r,o){var i,u,l=8*o-r-1,c=(1<<l)-1,d=c>>1,s=-7,a=n?o-1:0,f=n?-1:1,o=e[t+a];for(a+=f,i=o&(1<<-s)-1,o>>=-s,s+=l;0<s;i=256*i+e[t+a],a+=f,s-=8);for(u=i&(1<<-s)-1,i>>=-s,s+=r;0<s;u=256*u+e[t+a],a+=f,s-=8);if(0===i)i=1-d;else{if(i===c)return u?NaN:1/0*(o?-1:1);u+=Math.pow(2,r),i-=d}return(o?-1:1)*u*Math.pow(2,i-r)},f.write=function(e,t,l,n,r,c){var o,i,u=8*c-r-1,s=(1<<u)-1,a=s>>1,d=23===r?Math.pow(2,-24)-Math.pow(2,-77):0,f=n?0:c-1,h=n?1:-1,c=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(i=isNaN(t)?1:0,o=s):(o=Math.floor(Math.log(t)/Math.LN2),t*(n=Math.pow(2,-o))<1&&(o--,n*=2),2<=(t+=1<=o+a?d/n:d*Math.pow(2,1-a))*n&&(o++,n/=2),s<=o+a?(i=0,o=s):1<=o+a?(i=(t*n-1)*Math.pow(2,r),o+=a):(i=t*Math.pow(2,a-1)*Math.pow(2,r),o=0));8<=r;e[l+f]=255&i,f+=h,i/=256,r-=8);for(o=o<<r|i,u+=r;0<u;e[l+f]=255&o,f+=h,o/=256,u-=8);e[l+f-h]|=128*c}}.call(this,e(\"lYpoI2\"),\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{},e(\"buffer\").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],\"/node_modules/gulp-browserify/node_modules/ieee754/index.js\",\"/node_modules/gulp-browserify/node_modules/ieee754\")},{buffer:3,lYpoI2:11}],11:[function(e,h,t){!function(e,t,n,r,o,f,l,c,d){var i,u,s;function a(){}(e=h.exports={}).nextTick=(u=\"undefined\"!=typeof window&&window.setImmediate,s=\"undefined\"!=typeof window&&window.postMessage&&window.addEventListener,u?function(e){return window.setImmediate(e)}:s?(i=[],window.addEventListener(\"message\",function(e){var t=e.source;t!==window&&null!==t||\"process-tick\"!==e.data||(e.stopPropagation(),0<i.length&&i.shift()())},!0),function(e){i.push(e),window.postMessage(\"process-tick\",\"*\")}):function(e){setTimeout(e,0)}),e.title=\"browser\",e.browser=!0,e.env={},e.argv=[],e.on=a,e.addListener=a,e.once=a,e.off=a,e.removeListener=a,e.removeAllListeners=a,e.emit=a,e.binding=function(e){throw new Error(\"process.binding is not supported\")},e.cwd=function(){return\"/\"},e.chdir=function(e){throw new Error(\"process.chdir is not supported\")}}.call(this,e(\"lYpoI2\"),\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{},e(\"buffer\").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],\"/node_modules/gulp-browserify/node_modules/process/browser.js\",\"/node_modules/gulp-browserify/node_modules/process\")},{buffer:3,lYpoI2:11}]},{},[1])(1)});","// There used to be a single version, but there's no reason to upgrade both versions\n// simultaneously. Same vesions are an ideal, but forcing it is also bad\n\nexport enum VersionsMetaframe {\n\tV0_3 = \"0.3\",\n\tV0_4 = \"0.4\",\n\tV0_5 = \"0.5\",\n\t// Mostly just metadata changes for viewing and editing\n\tV0_6 = \"0.6\",\n}\n\nexport enum VersionsMetapage {\n\tV0_2 = \"0.2\",\n\tV0_3 = \"0.3\",\n}\n\nexport const MetaframeVersionsAll = Object.keys(VersionsMetaframe);\n\nexport const MetaframeVersionCurrent = VersionsMetaframe.V0_6;\n\nexport const MetapageVersionsAll = Object.keys(VersionsMetapage);\n\nexport const MetapageVersionCurrent = VersionsMetapage.V0_3;\n","export { MetaframeVersionCurrent, MetapageVersionCurrent, MetaframeVersionsAll, MetapageVersionsAll } from './versions';\nexport type Url = string;\nexport type MetaframePipeId = string;\nexport type MetaframeId = string;\nexport type MetapageId = string;\n","import { MetaframeId, MetapageDefinitionV3 } from \".\";\nimport { MetapageIFrameRpcClient } from \"../MetapageIFrameRpcClient\";\n\nexport enum MetapageEvents {\n Inputs = \"inputs\",\n Outputs = \"outputs\",\n State = \"state\",\n // The definition has already changed e.g. a metaframe changes its hash params\n // so the current definition now contains that change\n Definition = \"definition\",\n // A plugin is requesting to modify the definition\n // This is not automatically processed, the context of the metapage decides what\n // to do with this update (apply, recreate metapage, ignore etc)\n DefinitionUpdateRequest = \"definitionupdaterequest\",\n Error = \"error\",\n // when a metaframe wants to tell the metapage of the new URL (for saving state/config)\n UrlHashUpdate = \"urlhashupdate\",\n // general event, all events are emitted in their raw form to this namespace\n Message = \"Message\",\n}\n\nexport interface MetapageEventDefinition {\n definition: MetapageDefinitionV3;\n metaframes: {\n [key: string]: MetapageIFrameRpcClient;\n };\n plugins?: {\n [key: string]: MetapageIFrameRpcClient;\n };\n}\n\nexport type MetapageEventUrlHashUpdate = {\n metaframe: MetaframeId;\n hash: string;\n};\n","import { MetaframeId, MetapageId } from \"./core\";\nimport { VersionsMetaframe, VersionsMetapage } from \"./versions\";\nimport { MetaframeInputMap} from \"./metapage\";\nimport { JsonRpcRequest } from '../jsonrpc2';\n\nexport enum JsonRpcMethodsFromChild {\n InputsUpdate = \"InputsUpdate\",\n OutputsUpdate = \"OutputsUpdate\",\n SetupIframeClientRequest = \"SetupIframeClientRequest\",\n SetupIframeServerResponseAck = \"SetupIframeServerResponseAck\",\n // Plugin API\n PluginRequest = \"SetupIframeServerPluginRequestResponseAck\", // See further definitions: ApiPayloadPluginRequest*\n // Experimental feature\n HashParamsUpdate = \"HashParamsUpdate\",\n}\n\nexport enum JsonRpcMethodsFromParent {\n InputsUpdate = \"InputsUpdate\",\n MessageAck = \"MessageAck\",\n SetupIframeServerResponse = \"SetupIframeServerResponse\"\n}\n\nexport interface SetupIframeServerResponseData {\n iframeId: MetaframeId;\n parentId: MetapageId;\n state: {\n inputs: MetaframeInputMap\n };\n // Allow newer metaframes to handle older metapage versions\n version: VersionsMetapage;\n //is this metaframe a plugin?\n plugin: boolean;\n}\n\nexport interface MinimumClientMessage<T> extends JsonRpcRequest<T> {\n iframeId: MetaframeId | undefined;\n parentId: MetapageId | undefined;\n}\n\nexport interface SetupIframeClientAckData<T> extends MinimumClientMessage<T> {\n version: VersionsMetaframe;\n}\n\nexport interface ClientMessageRecievedAck<T> {\n message: MinimumClientMessage<T>;\n}\n\n// Plugin API definitions\nexport enum ApiPayloadPluginRequestMethod {\n State = \"metapage/state\"\n}\n\nexport interface ApiPayloadPluginRequest {\n method: ApiPayloadPluginRequestMethod;\n}\n","export * from \"./core\";\nexport * from \"./events\";\nexport * from \"./jsonrpc\";\nexport * from \"./metaframe\";\nexport * from \"./metapage\";\nexport * from \"./versions\";\n","import {MetapageVersionsAll, MetaframeVersionsAll} from \"./v0_4\";\n\nexport const METAFRAME_JSON_FILE = \"metaframe.json\";\nexport const METAPAGE_KEY_DEFINITION = \"metapage/definition\";\nexport const METAPAGE_KEY_STATE = \"metapage/state\";\n\nexport const VERSION_METAPAGE = MetapageVersionsAll[MetapageVersionsAll.length - 1];\nexport const VERSION_METAFRAME = MetaframeVersionsAll[MetaframeVersionsAll.length - 1];\n","export default function compareVersions(v1, v2) {\n // validate input and split into segments\n const n1 = validateAndParse(v1);\n const n2 = validateAndParse(v2);\n\n // pop off the patch\n const p1 = n1.pop();\n const p2 = n2.pop();\n\n // validate numbers\n const r = compareSegments(n1, n2);\n if (r !== 0) return r;\n\n // validate pre-release\n if (p1 && p2) {\n return compareSegments(p1.split('.'), p2.split('.'));\n } else if (p1 || p2) {\n return p1 ? -1 : 1;\n }\n\n return 0;\n}\n\nexport const validate = (v) =>\n typeof v === 'string' && /^[v\\d]/.test(v) && semver.test(v);\n\nexport const compare = (v1, v2, operator) => {\n // validate input operator\n assertValidOperator(operator);\n\n // since result of compareVersions can only be -1 or 0 or 1\n // a simple map can be used to replace switch\n const res = compareVersions(v1, v2);\n\n return operatorResMap[operator].includes(res);\n};\n\nexport const satisfies = (v, r) => {\n // if no range operator then \"=\"\n const m = r.match(/^([<>=~^]+)/);\n const op = m ? m[1] : '=';\n\n // if gt/lt/eq then operator compare\n if (op !== '^' && op !== '~') return compare(v, r, op);\n\n // else range of either \"~\" or \"^\" is assumed\n const [v1, v2, v3] = validateAndParse(v);\n const [r1, r2, r3] = validateAndParse(r);\n if (compareStrings(v1, r1) !== 0) return false;\n if (op === '^') {\n return compareSegments([v2, v3], [r2, r3]) >= 0;\n }\n if (compareStrings(v2, r2) !== 0) return false;\n return compareStrings(v3, r3) >= 0;\n};\n\n// export CJS style for parity\ncompareVersions.validate = validate;\ncompareVersions.compare = compare;\ncompareVersions.satisfies = satisfies;\n\nconst semver =\n /^[v^~<>=]*?(\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+))?(?:-([\\da-z\\-]+(?:\\.[\\da-z\\-]+)*))?(?:\\+[\\da-z\\-]+(?:\\.[\\da-z\\-]+)*)?)?)?$/i;\n\nconst validateAndParse = (v) => {\n if (typeof v !== 'string') {\n throw new TypeError('Invalid argument expected string');\n }\n const match = v.match(semver);\n if (!match) {\n throw new Error(`Invalid argument not valid semver ('${v}' received)`);\n }\n match.shift();\n return match;\n};\n\nconst isWildcard = (s) => s === '*' || s === 'x' || s === 'X';\n\nconst tryParse = (v) => {\n const n = parseInt(v, 10);\n return isNaN(n) ? v : n;\n};\n\nconst forceType = (a, b) =>\n typeof a !== typeof b ? [String(a), String(b)] : [a, b];\n\nconst compareStrings = (a, b) => {\n if (isWildcard(a) || isWildcard(b)) return 0;\n const [ap, bp] = forceType(tryParse(a), tryParse(b));\n if (ap > bp) return 1;\n if (ap < bp) return -1;\n return 0;\n};\n\nconst compareSegments = (a, b) => {\n for (let i = 0; i < Math.max(a.length, b.length); i++) {\n const r = compareStrings(a[i] || 0, b[i] || 0);\n if (r !== 0) return r;\n }\n return 0;\n};\n\nconst operatorResMap = {\n '>': [1],\n '>=': [0, 1],\n '=': [0],\n '<=': [-1, 0],\n '<': [-1],\n};\n\nconst allowedOperators = Object.keys(operatorResMap);\n\nconst assertValidOperator = (op) => {\n if (typeof op !== 'string') {\n throw new TypeError(\n `Invalid operator type, expected string but got ${typeof op}`\n );\n }\n if (allowedOperators.indexOf(op) === -1) {\n throw new Error(\n `Invalid operator, expected one of ${allowedOperators.join('|')}`\n );\n }\n};\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","import { EventEmitter } from \"eventemitter3\";\nimport {\n JsonRpcMethodsFromParent,\n MetapageDefinitionV3,\n MetapageVersionCurrent,\n} from \"./v0_4\";\nimport { MetapageEvents } from \"./v0_4/events\";\n\nexport enum MetapageHashParams {\n mp_debug = \"mp_debug\",\n}\n\nexport const isIframe = (): boolean => {\n //http://stackoverflow.com/questions/326069/how-to-identify-if-a-webpage-is-being-loaded-inside-an-iframe-or-directly-into-t\n try {\n return window !== window.top;\n } catch (ignored) {\n return false;\n }\n};\n\nexport const INITIAL_NULL_METAPAGE_DEFINITION: MetapageDefinitionV3 = {\n version: MetapageVersionCurrent,\n metaframes: {},\n};\n\nexport class MetapageShared extends EventEmitter<\n MetapageEvents | JsonRpcMethodsFromParent\n> {\n // Easier to ensure this value is never null|undefined\n _definition: MetapageDefinitionV3 = INITIAL_NULL_METAPAGE_DEFINITION;\n\n constructor() {\n super();\n this.getDefinition = this.getDefinition.bind(this);\n }\n\n public error(err: any) {\n throw \"Subclass should implement\";\n }\n public getDefinition(): MetapageDefinitionV3 {\n return this._definition;\n }\n}\n","import { compare } from \"compare-versions\";\nimport { MetapageHashParams } from \"./Shared\";\nimport {\n MetaframeInputMap,\n MetaframeId,\n MetapageId,\n VersionsMetapage,\n MetapageVersionCurrent,\n MetaframeDefinitionV5,\n VersionsMetaframe,\n MetaframeDefinitionV4,\n MetapageDefinitionV3,\n MetaframeDefinitionV6,\n MetaframeMetadataV6,\n MetaframeEditTypeMetapage,\n MetaframeEditTypeMetaframe,\n MetaframeEditTypeMetapageV6,\n MetaframeEditTypeUrlV6,\n MetaframeMetadataV4,\n MetaframeMetadataV5,\n} from \"./v0_4\";\nimport { MetapageDefinition as V0_2MetapageDefinition } from \"./v0_2/all\";\nimport { MetapageDefinition as V0_3MetapageDefinition } from \"./v0_3/all\";\n\nexport const convertMetapageDefinitionToCurrentVersion = (\n def: any | MetapageDefinitionV3\n): MetapageDefinitionV3 => {\n if (def === null) {\n throw \"Metapage definition cannot be null\";\n }\n if (typeof def === \"string\") {\n try {\n def = JSON.parse(def);\n } catch (err) {\n throw `Cannot parse into JSON:\\n${def}`;\n }\n }\n\n if (!def.version) {\n throw 'Missing \"version\" key in metapage definition';\n }\n\n // Recursively convert up the version\n let updatedDefinition: MetapageDefinitionV3;\n\n switch (getMatchingVersion(def.version)) {\n case VersionsMetapage.V0_2: {\n updatedDefinition = convertMetapageDefinitionToCurrentVersion(\n definition_v0_2_to_v0_3(def as V0_2MetapageDefinition)\n );\n break;\n }\n case VersionsMetapage.V0_3: {\n updatedDefinition = def as MetapageDefinitionV3; // Latest\n break;\n }\n default: // Latest\n console.warn(\n `Metapage definition version=${def.version} but we only know up to version ${MetapageVersionCurrent}. Assuming the definition is compatible, but it's the future!`\n );\n updatedDefinition = def as MetapageDefinitionV3;\n break;\n }\n return updatedDefinition;\n};\n\nexport const convertMetaframeJsonToCurrentVersion = (\n m:\n | MetaframeDefinitionV5\n | MetaframeDefinitionV4\n | MetaframeDefinitionV5\n | MetaframeDefinitionV6\n | undefined,\n opts?: { errorIfUnknownVersion?: boolean }\n): MetaframeDefinitionV6 | undefined => {\n if (!m) {\n return undefined;\n }\n switch (m.version) {\n case undefined:\n case VersionsMetaframe.V0_3:\n case VersionsMetaframe.V0_4:\n return convertMetaframeJsonToCurrentVersion(\n convertMetaframeJsonV4ToV5(m as MetaframeDefinitionV4)\n );\n case VersionsMetaframe.V0_5:\n return convertMetaframeJsonV5ToV6(m as MetaframeDefinitionV5);\n case VersionsMetaframe.V0_6:\n return m as MetaframeDefinitionV6;\n default:\n if (opts && opts.errorIfUnknownVersion) {\n throw `Unsupported metaframe version. Please upgrade to a new version: npm i @metapages/metapage@latest\\n ${JSON.stringify(\n m\n )}\\n${window.location.href}`;\n } else {\n console.error(\n `Unsupported metaframe version. Not throwing an error because you might not be able to upgrade. Please upgrade to a new version: npm i @metapages/metapage@latest\\n ${JSON.stringify(\n m\n )}\\n${window.location.href}`\n );\n return m as MetaframeDefinitionV6;\n }\n }\n};\n\nconst convertMetaframeJsonV4ToV5 = (source: MetaframeDefinitionV4) => {\n const {\n version,\n inputs,\n outputs,\n allow,\n metadata,\n ...restOfDefinitionProps\n } = source;\n const metadataV4: MetaframeMetadataV4 = metadata;\n const {\n title,\n author,\n image,\n descriptionUrl,\n keywords,\n iconUrl,\n ...restOfMetadataProps\n } = metadataV4;\n\n const metadataV5: MetaframeMetadataV5 = {\n name: title,\n author,\n description: descriptionUrl,\n image,\n tags: keywords,\n ...restOfMetadataProps,\n };\n\n const metaframeDefV5: MetaframeDefinitionV5 = {\n version: VersionsMetaframe.V0_5,\n inputs: inputs,\n outputs: outputs,\n allow: allow,\n metadata: metadataV5,\n ...restOfDefinitionProps,\n };\n return metaframeDefV5;\n};\n\n// The only difference between v5 and v6 is the metadata operations field\nconst convertMetaframeJsonV5ToV6 = (source: MetaframeDefinitionV5) => {\n // Process the metadata separately\n const { metadata, ...restOfDefinitionProps } = source;\n\n // apart from metadata, the rest of the definition is the same as v5\n const metaframeDefV6: MetaframeDefinitionV6 = {\n ...restOfDefinitionProps,\n version: VersionsMetaframe.V0_6,\n };\n\n if (metadata) {\n const { edit, ...restOfMetadataProps } = metadata;\n const metaframeMetaV6: MetaframeMetadataV6 = { ...restOfMetadataProps };\n metaframeDefV6.metadata = metaframeMetaV6;\n\n if (edit && !(metaframeMetaV6 && metaframeMetaV6.operations && metaframeMetaV6.operations.edit)) {\n if (!metaframeMetaV6.operations) {\n metaframeMetaV6.operations = {};\n }\n\n switch (edit.type) {\n case \"metapage\":\n const metaPageEditPreviousMetapage =\n edit.value as MetaframeEditTypeMetapage;\n const editOperationMetapage: MetaframeEditTypeMetapageV6 = {\n type: \"metapage\",\n metapage: metaPageEditPreviousMetapage.definition,\n metaframe: metaPageEditPreviousMetapage.key || \"edit\",\n };\n\n metaframeMetaV6.operations.edit = editOperationMetapage;\n break;\n\n case \"metaframe\":\n const metaPageEditPreviousMetaframe =\n edit.value as MetaframeEditTypeMetaframe;\n const editOperationMetaframe: MetaframeEditTypeUrlV6 = {\n type: \"url\",\n url: metaPageEditPreviousMetaframe.url,\n params: metaPageEditPreviousMetaframe.params\n ? metaPageEditPreviousMetaframe.params.map((p) => ({\n to: p.to,\n from: p.from,\n // path doesn't work, how can we know where to put the path token?\n toType: p.toType === \"path\" ? undefined : p.toType,\n }))\n : undefined,\n };\n metaframeMetaV6.operations.edit = editOperationMetaframe;\n break;\n default:\n throw `Unsupported edit type: ${\n edit.type\n } in metadata for metaframe ${JSON.stringify(metadata)}`;\n }\n }\n }\n\n return metaframeDefV6;\n};\n\nconst definition_v0_2_to_v0_3 = (\n old: V0_2MetapageDefinition\n): V0_3MetapageDefinition => {\n // Exactly the same except v0.3 has plugins\n old.version = VersionsMetapage.V0_3;\n return old;\n};\n\n/**\n * Merges new values into the current object.\n * Does NOT check if there are actually new keys.\n * Does NOT check values against each other. This means you\n * can keep sending the same value, and the message will\n * be passed in.\n * Returns true if the original map was modified.\n */\nexport const merge = (\n current: MetaframeInputMap,\n newInputs: MetaframeInputMap\n): boolean => {\n if (!newInputs) {\n return false;\n }\n let modified = false;\n Object.keys(newInputs).forEach((pipeId: string) => {\n modified = true;\n // undefined means remove the key\n // null means keep the key, but set to null\n if (newInputs[pipeId] === undefined) {\n delete current[pipeId];\n } else {\n current[pipeId] = newInputs[pipeId];\n }\n });\n return modified;\n};\n\nexport const getMatchingVersion = (version: string): VersionsMetapage => {\n if (version === \"latest\") {\n return MetapageVersionCurrent;\n } else if (compare(version, \"0.2\", \"<\")) {\n throw `Unknown version: ${version}`;\n } else if (\n compare(version, \"0.2\", \">=\") &&\n compare(version, VersionsMetapage.V0_3, \"<\")\n ) {\n return VersionsMetapage.V0_2;\n } else if (compare(version, \"0.3\", \">=\")) {\n return VersionsMetapage.V0_3;\n } else {\n // Return something, assume latest\n console.log(\n `Could not match version=${version} to any known version, assuming ${MetapageVersionCurrent}`\n );\n return MetapageVersionCurrent;\n }\n};\n\nexport const getUrlParam = (key: MetapageHashParams): string | null => {\n if (!window.location.search) {\n return null;\n }\n return new URLSearchParams(window.location.search).get(key);\n};\n\nexport const getUrlParamDebug = (): boolean => {\n return new URLSearchParams(window.location.search).has(\n MetapageHashParams.mp_debug\n );\n};\n\nexport const isDebugFromUrlsParams = (): boolean => {\n const param = new URLSearchParams(window.location.search).get(\n MetapageHashParams.mp_debug\n );\n return param === \"true\" || param === \"1\";\n};\n\nexport const existsAnyUrlParam = (k: string[]): boolean => {\n const members = k.filter((param: string) => {\n return new URLSearchParams(window.location.search).has(param);\n });\n return members.length > 0;\n};\n\nexport const generateMetaframeId = (length: number = 8): MetaframeId => {\n return generateId(length);\n};\n\nexport const generateMetapageId = (length: number = 8): MetapageId => {\n return generateId(length);\n};\n\nexport const generateNonce = (length: number = 8): string => {\n return generateId(length);\n};\n\nconst LETTERS = \"abcdefghijklmnopqrstuvwxyz0123456789\";\nexport const generateId = (length: number = 8): string => {\n var result = \"\";\n var characters =\n \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\n var charactersLength = LETTERS.length;\n for (var i = 0; i < length; i++) {\n result += LETTERS.charAt(Math.floor(Math.random() * charactersLength));\n }\n return result;\n};\n\nexport const log = (o: any, color?: string, backgroundColor?: string) => {\n color = color ? color : \"000\";\n if (color && color.trim() == \"\") {\n color = undefined;\n }\n let s: string;\n if (typeof o === \"string\") {\n s = o as string;\n } else if (typeof o === \"number\") {\n s = o + \"\";\n } else {\n s = JSON.stringify(o, null, \" \");\n }\n\n if (color && color.trim() != \"\") {\n var cssstring = `color: #${color}`;\n if (backgroundColor) {\n cssstring = `${cssstring}; background: #${backgroundColor}`;\n }\n s = `%c${s}`;\n window.console.log(s, cssstring);\n } else {\n window.console.log(s);\n }\n};\n\nexport const stringToRgb = (str: string): string => {\n return intToRGB(hashCode(str));\n};\n\nexport const hashCode = (str: string): number => {\n // java string#hashCode\n var hash = 0;\n for (let i = 0; i < str.length; i++) {\n hash = str.charCodeAt(i) + ((hash << 5) - hash);\n }\n return hash;\n};\n\nexport const intToRGB = (i: number): string => {\n var c = (i & 0x00ffffff).toString(16).toUpperCase();\n return \"00000\".substring(0, 6 - c.length) + c;\n};\n\nexport const isPageLoaded = (): boolean => {\n return (\n document.readyState == \"complete\" || document.readyState == \"interactive\"\n );\n // https://stackoverflow.com/questions/13364613/how-to-know-if-window-load-event-was-fired-already/28093606\n // // TODO ugh casting here but I can't seem to get the right type with the loadEventEnd\n // return window.performance.getEntriesByType(\"navigation\").every((e) => { return (e as PerformanceNavigationTiming).loadEventEnd > 0 });\n};\n\nexport const pageLoaded = async (): Promise<void> => {\n if (isPageLoaded()) {\n return Promise.resolve();\n }\n return new Promise((resolve) => {\n if (isPageLoaded()) {\n resolve();\n return;\n }\n let loaded = false;\n window.addEventListener(\"load\", () => {\n if (loaded) {\n return;\n }\n loaded = true;\n resolve();\n });\n // tiny chance of missing the document.readyState === \"loaded\"\n const timer = setTimeout(() => {\n if (!loaded && isPageLoaded()) {\n loaded = true;\n resolve();\n }\n }, 200);\n });\n};\n","(function (exports) {\n'use strict';\n\nfunction utf8ToBinaryString(str) {\n var escstr = encodeURIComponent(str);\n // replaces any uri escape sequence, such as %0A,\n // with binary escape, such as 0x0A\n var binstr = escstr.replace(/%([0-9A-F]{2})/g, function(match, p1) {\n return String.fromCharCode(parseInt(p1, 16));\n });\n\n return binstr;\n}\n\nfunction utf8ToBuffer(str) {\n var binstr = utf8ToBinaryString(str);\n var buf = binaryStringToBuffer(binstr);\n return buf;\n}\n\nfunction utf8ToBase64(str) {\n var binstr = utf8ToBinaryString(str);\n return btoa(binstr);\n}\n\nfunction binaryStringToUtf8(binstr) {\n var escstr = binstr.replace(/(.)/g, function (m, p) {\n var code = p.charCodeAt(0).toString(16).toUpperCase();\n if (code.length < 2) {\n code = '0' + code;\n }\n return '%' + code;\n });\n\n return decodeURIComponent(escstr);\n}\n\nfunction bufferToUtf8(buf) {\n var binstr = bufferToBinaryString(buf);\n\n return binaryStringToUtf8(binstr);\n}\n\nfunction base64ToUtf8(b64) {\n var binstr = atob(b64);\n\n return binaryStringToUtf8(binstr);\n}\n\nfunction bufferToBinaryString(buf) {\n var binstr = Array.prototype.map.call(buf, function (ch) {\n return String.fromCharCode(ch);\n }).join('');\n\n return binstr;\n}\n\nfunction bufferToBase64(arr) {\n var binstr = bufferToBinaryString(arr);\n return btoa(binstr);\n}\n\nfunction binaryStringToBuffer(binstr) {\n var buf;\n\n if ('undefined' !== typeof Uint8Array) {\n buf = new Uint8Array(binstr.length);\n } else {\n buf = [];\n }\n\n Array.prototype.forEach.call(binstr, function (ch, i) {\n buf[i] = ch.charCodeAt(0);\n });\n\n return buf;\n}\n\nfunction base64ToBuffer(base64) {\n var binstr = atob(base64);\n var buf = binaryStringToBuffer(binstr);\n return buf;\n}\n\nexports.Unibabel = {\n utf8ToBinaryString: utf8ToBinaryString\n, utf8ToBuffer: utf8ToBuffer\n, utf8ToBase64: utf8ToBase64\n, binaryStringToUtf8: binaryStringToUtf8\n, bufferToUtf8: bufferToUtf8\n, base64ToUtf8: base64ToUtf8\n, bufferToBinaryString: bufferToBinaryString\n, bufferToBase64: bufferToBase64\n, binaryStringToBuffer: binaryStringToBuffer\n, base64ToBuffer: base64ToBuffer\n\n// compat\n, strToUtf8Arr: utf8ToBuffer\n, utf8ArrToStr: bufferToUtf8\n, arrToBase64: bufferToBase64\n, base64ToArr: base64ToBuffer\n};\n\n}('undefined' !== typeof exports && exports || 'undefined' !== typeof window && window || global));\n","import { MetaframeInputMap } from \"./v0_4\";\nimport { Unibabel } from \"unibabel\";\n\n/**\n * Modifies in place!!!\n * @param inputs\n * @returns\n */\nexport const serializeInputs = async (\n inputs: MetaframeInputMap\n): Promise<MetaframeInputMap> => {\n // only serialize one level deep\n for (const key of Object.keys(inputs)) {\n const maybeNewObject = await possiblySerializeValueToDataref(inputs[key]);\n inputs[key] = maybeNewObject;\n }\n\n return inputs;\n};\n\n/**\n * Modifies in place!!!\n * @param inputs\n * @returns\n */\nexport const deserializeInputs = async (\n inputs: MetaframeInputMap\n): Promise<MetaframeInputMap> => {\n // only deserialize one level deep\n for (const key of Object.keys(inputs)) {\n const maybeNewObject = await possiblyDeserializeDatarefToValue(inputs[key]);\n inputs[key] = maybeNewObject;\n }\n return inputs;\n};\n\nexport type DataRefSerialized = {\n // This means it's a serialized DataRef\n _s: true;\n // constructor\n _c: string;\n // value is base64 encoded\n value: string;\n size: number;\n};\n\nexport type DataRefSerializedTypedArray = DataRefSerialized & {\n // Typed arrays are from ArrayBufferView\n byteLength: number;\n byteOffset: number;\n};\n\nexport type DataRefSerializedBlob = DataRefSerialized & {\n fileType?: string;\n};\n\nexport type DataRefSerializedFile = DataRefSerializedBlob & {\n name: string;\n lastModified?: number;\n};\n\nexport const possiblySerializeValueToDataref = async <T>(\n value: T\n): Promise<T | DataRefSerialized> => {\n if (\n value instanceof Int8Array ||\n value instanceof Uint8Array ||\n value instanceof Uint8ClampedArray ||\n value instanceof Int16Array ||\n value instanceof Uint16Array ||\n value instanceof Int32Array ||\n value instanceof Uint32Array ||\n value instanceof Float32Array ||\n value instanceof Float64Array\n ) {\n const typedValue = value as ArrayBufferView;\n const replacement: DataRefSerializedTypedArray = {\n _s: true,\n _c: value.constructor.name,\n value: Unibabel.bufferToBase64(new Uint8Array(typedValue.buffer)),\n byteLength: typedValue.byteLength,\n byteOffset: typedValue.byteOffset,\n size: typedValue.byteLength,\n };\n return Promise.resolve(replacement);\n } else if (value instanceof File) {\n const typedValue = value as File;\n const arrayBuffer = await typedValue.arrayBuffer();\n const replacement: DataRefSerializedFile = {\n _s: true,\n _c: File.name,\n value: Unibabel.bufferToBase64(new Uint8Array(arrayBuffer)),\n name: typedValue.name,\n fileType: typedValue.type,\n lastModified: typedValue.lastModified,\n size: arrayBuffer.byteLength,\n };\n return replacement;\n } else if (value instanceof Blob) {\n const typedValue = value as Blob;\n const arrayBuffer = await typedValue.arrayBuffer();\n const replacement: DataRefSerializedBlob = {\n _s: true,\n _c: Blob.name,\n value: Unibabel.bufferToBase64(new Uint8Array(arrayBuffer)),\n fileType: typedValue.type,\n size: arrayBuffer.byteLength,\n };\n return replacement;\n } else if (value instanceof ArrayBuffer) {\n const typedValue = value as ArrayBuffer;\n const replacement: DataRefSerialized = {\n _s: true,\n _c: ArrayBuffer.name,\n value: Unibabel.bufferToBase64(new Uint8Array(typedValue)),\n size: typedValue.byteLength,\n };\n return Promise.resolve(replacement);\n }\n return Promise.resolve(value);\n};\n\nexport const possiblyDeserializeDatarefToValue = (value: any): any => {\n if (\n !(\n value &&\n typeof value === \"object\" &&\n (value as DataRefSerialized)._s === true\n )\n ) {\n return value;\n }\n const serializedRef = value as DataRefSerialized;\n const _c: string = serializedRef._c;\n if (_c === Blob.name) {\n const serializedRefBlob = value as DataRefSerializedBlob;\n const blob = new Blob(\n [Unibabel.base64ToBuffer(serializedRef.value) as Uint8Array],\n {\n type: serializedRefBlob.fileType,\n }\n );\n return blob;\n } else if (_c === File.name) {\n const serializedRefFile = value as DataRefSerializedFile;\n const file = new File(\n [Unibabel.base64ToBuffer(serializedRef.value) as Uint8Array],\n serializedRefFile.name,\n {\n type: serializedRefFile.fileType,\n lastModified: serializedRefFile.lastModified,\n }\n );\n return file;\n } else if (_c === ArrayBuffer.name) {\n const arrayBuffer: ArrayBuffer = (\n Unibabel.base64ToBuffer(serializedRef.value) as Uint8Array\n ).buffer;\n return arrayBuffer;\n }\n // Assume typed array\n const serializedRefTypedArray = value as DataRefSerializedTypedArray;\n\n const arrayBuffer: ArrayBuffer = Unibabel.base64ToBuffer(\n serializedRefTypedArray.value\n ) as Uint8Array;\n const constructorName: string = serializedRefTypedArray._c;\n\n try {\n // @ts-ignore\n const typedArray: ArrayBufferView = new globalThis[constructorName](\n arrayBuffer,\n serializedRefTypedArray.byteOffset,\n serializedRefTypedArray.byteLength\n );\n return typedArray;\n } catch (e) {}\n return value;\n};\n","import { EventEmitter, ListenerFn } from \"eventemitter3\";\nimport {\n VERSION_METAPAGE,\n METAPAGE_KEY_STATE,\n METAPAGE_KEY_DEFINITION,\n} from \"./Constants\";\nimport {\n JsonRpcMethodsFromParent,\n SetupIframeServerResponseData,\n MinimumClientMessage,\n ClientMessageRecievedAck,\n MetaframeInputMap,\n MetaframePipeId,\n MetaframeId,\n MetapageId,\n MetapageInstanceInputs,\n VersionsMetapage,\n VersionsMetaframe,\n MetaframeDefinitionV6,\n} from \"./v0_4\";\nimport {\n stringToRgb,\n log as MetapageToolsLog,\n merge,\n pageLoaded,\n convertMetaframeJsonToCurrentVersion,\n} from \"./MetapageTools\";\nimport { JsonRpcRequest } from \"./jsonrpc2\";\nimport { MetapageShared, MetapageHashParams } from \"./Shared\";\nimport { MetapageEvents } from \"./v0_4/events\";\nimport { serializeInputs } from \"./data\";\n\n/**\n * Initialization sequence:\n * 1. the child iframe object waits until its page loads\n * 2. the child iframe object sends SetupIframeClientRequest\n * - this marks the iframe as ready\n */\nexport class MetapageIFrameRpcClient extends EventEmitter<\n JsonRpcMethodsFromParent | MetapageEvents\n> {\n iframe: Promise<HTMLIFrameElement>;\n _iframe: HTMLIFrameElement;\n id: MetaframeId;\n version: VersionsMetaframe | undefined;\n // Used for securing postMessage\n url: string;\n _color: string;\n _consoleBackgroundColor: string;\n inputs: MetaframeInputMap = {};\n outputs: MetaframeInputMap = {};\n _disposables: (() => void)[] = [];\n _rpcListeners: ((r: JsonRpcRequest<any>) => void)[] = [];\n _loaded: boolean = false;\n _onLoaded: (() => void)[] = [];\n _parentId: MetapageId;\n _debug: boolean;\n _sendInputsAfterRegistration: boolean = false;\n _definition: MetaframeDefinitionV6 | undefined;\n _plugin: boolean = false;\n\n _metapage: MetapageShared;\n\n constructor(\n metapage: MetapageShared,\n url: string,\n iframeId: MetaframeId,\n parentId: MetapageId,\n consoleBackgroundColor: string,\n debug: boolean = false\n ) {\n super();\n // Url sanitation\n // Urls can be relative paths, if so, turn them into absolute URLs\n // Also local development often skips the \"http:\" part, so add that\n // on so the origin is valid\n if (!url.startsWith(\"http\")) {\n while (url.startsWith(\"/\")) {\n url = url.substring(1);\n }\n url =\n window.location.protocol +\n \"//\" +\n window.location.hostname +\n (window.location.port && window.location.port != \"\"\n ? \":\" + window.location.port\n : \"\") +\n \"/\" +\n url;\n }\n this.url = url;\n this._metapage = metapage;\n\n // Add the custom URL params\n var urlBlob = new URL(this.url);\n if (debug) {\n urlBlob.searchParams.set(MetapageHashParams.mp_debug, \"true\");\n }\n this.url = urlBlob.href;\n\n this.id = iframeId;\n\n this._debug = debug;\n\n this._parentId = parentId;\n this._color = stringToRgb(this.id);\n this._consoleBackgroundColor = consoleBackgroundColor;\n\n // Create but do not attach to the dom until the src attribute is set https://github.com/metapages/metapage/issues/91\n this._iframe = document.createElement(\"iframe\");\n this._iframe.name = this.id;\n const selfThis = this;\n this.iframe = new Promise((resolve) => {\n // wait until the metapage page is loaded, otherwise\n // communication errors will likely occur\n pageLoaded().then(async () => {\n // parent page loaded, set the iframe src to start loading\n // get the definition in case we need to set allow permissions\n if (selfThis._iframe) {\n // possibly already disposed\n const metaframeDef = await selfThis.getDefinition();\n if (!selfThis._iframe) {\n // possibly already disposed\n return;\n }\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/Feature_Policy/Using_Feature_Policy#the_iframe_allow_attribute\n if (metaframeDef && metaframeDef.allow) {\n selfThis._iframe.allow = metaframeDef.allow;\n }\n selfThis._iframe.src = this.url;\n resolve(selfThis._iframe);\n }\n });\n });\n\n this.ack = this.ack.bind(this);\n this.dispose = this.dispose.bind(this);\n this.getDefinition = this.getDefinition.bind(this);\n this.getDefinitionUrl = this.getDefinitionUrl.bind(this);\n this.setPlugin = this.setPlugin.bind(this);\n this.hasPermissionsDefinition = this.hasPermissionsDefinition.bind(this);\n this.hasPermissionsState = this.hasPermissionsState.bind(this);\n this.log = this.log.bind(this);\n this.logInternal = this.logInternal.bind(this);\n this.onInput = this.onInput.bind(this);\n this.onInputs = this.onInputs.bind(this);\n this.onOutput = this.onOutput.bind(this);\n this.onOutputs = this.onOutputs.bind(this);\n this.register = this.register.bind(this);\n this.registered = this.registered.bind(this);\n this.sendInputs = this.sendInputs.bind(this);\n this.sendOrBufferPostMessage = this.sendOrBufferPostMessage.bind(this);\n this.sendRpc = this.sendRpc.bind(this);\n this.sendRpcInternal = this.sendRpcInternal.bind(this);\n this.setInput = this.setInput.bind(this);\n this.setInputs = this.setInputs.bind(this);\n this.setMetapage = this.setMetapage.bind(this);\n this.setOutput = this.setOutput.bind(this);\n this.setOutputs = this.setOutputs.bind(this);\n this.setPlugin = this.setPlugin.bind(this);\n this.addListenerReturnDisposer = this.addListenerReturnDisposer.bind(this);\n this.isDisposed = this.isDisposed.bind(this);\n }\n\n addListenerReturnDisposer(\n event: JsonRpcMethodsFromParent | MetapageEvents,\n listener: ListenerFn<any[]>\n ): () => void {\n super.addListener(event, listener);\n const disposer = () => {\n super.removeListener(event, listener);\n };\n return disposer;\n }\n\n public setPlugin(): MetapageIFrameRpcClient {\n if (this._loaded) {\n throw \"Cannot setPlugin after MetapageIFrameRpcClient already loaded\";\n }\n this._plugin = true;\n return this;\n }\n\n public setMetapage(metapage: MetapageShared): MetapageIFrameRpcClient {\n this._metapage = metapage;\n return this;\n }\n\n public hasPermissionsState(): boolean {\n return (\n this._definition !== undefined &&\n this._definition.inputs !== undefined &&\n this._definition.inputs![METAPAGE_KEY_STATE] !== undefined\n );\n }\n\n public hasPermissionsDefinition(): boolean {\n return (\n this._definition !== undefined &&\n this._definition.inputs !== undefined &&\n this._definition.inputs![METAPAGE_KEY_DEFINITION] !== undefined\n );\n }\n\n public getDefinitionUrl(): string {\n var url = new URL(this.url);\n url.pathname =\n url.pathname +\n (url.pathname.endsWith(\"/\") ? \"metaframe.json\" : \"/metaframe.json\");\n return url.href;\n }\n\n /**\n * Cached in memory. Fetches <metaframe url>/metaframe.json\n * metaframe.json defines inputs/outputs and other metadata\n * (how to operate and connect the metaframe)\n * It is optional in that the metaframe will still work without it\n * but advanced features e.g. allow permissions won't work and\n * anything relying on metadata.\n */\n public async getDefinition(): Promise<MetaframeDefinitionV6 | undefined> {\n if (this._definition) {\n return this._definition;\n }\n var url = this.getDefinitionUrl();\n try {\n // this should be retried?\n const response = await window.fetch(url);\n if (response.ok) {\n const metaframeDef = await response.json();\n\n const metaframeDefCurrent =\n convertMetaframeJsonToCurrentVersion(metaframeDef);\n this._definition = metaframeDefCurrent;\n return this._definition;\n } else {\n this.emit(\n MetapageEvents.Error,\n `Failed to fetch: ${url}\\nStatus: ${response.status}\\nStatus text: ${response.statusText}`\n );\n }\n } catch (err) {\n // hmm silent on failures to load the metaframe.json?\n this.emit(\n MetapageEvents.Error,\n `Failed to fetch or convert: ${url}\\nError: ${err}`\n );\n }\n }\n\n public setInput(name: MetaframePipeId, inputBlob: any) {\n console.assert(!!name);\n var inputs: MetaframeInputMap = {};\n inputs[name] = inputBlob;\n this.setInputs(inputs);\n }\n\n /**\n * Sends the updated inputs to the iframe\n */\n _cachedEventInputsUpdate: {\n iframeId: string | undefined;\n inputs: MetaframeInputMap | undefined;\n } = {\n iframeId: undefined,\n inputs: undefined,\n };\n public setInputs(maybeNewInputs: MetaframeInputMap): MetapageIFrameRpcClient {\n this.log({ m: \"MetapageIFrameRpcClient\", inputs: maybeNewInputs });\n if (!merge(this.inputs, maybeNewInputs)) {\n return this;\n }\n if (!this._loaded) {\n this._sendInputsAfterRegistration = true;\n }\n // Only send the new inputs to the actual metaframe iframe\n // if it's not registered, don't worry, inputs are merged,\n // and when the metaframe is registered, current inputs will\n // be sent\n if (this._iframe.parentNode && this._loaded) {\n this.sendInputs(maybeNewInputs);\n }\n\n // Notify\n this.emit(MetapageEvents.Inputs, this.inputs);\n if (this._metapage.listenerCount(MetapageEvents.Inputs) > 0) {\n var inputUpdate: MetapageInstanceInputs = {};\n inputUpdate[this.id] = maybeNewInputs;\n this._metapage.emit(MetapageEvents.Inputs, inputUpdate);\n }\n // //TODO is this really used anymore?\n // this._cachedEventInputsUpdate.iframeId = this.id;\n // this._cachedEventInputsUpdate.inputs = this.inputs;\n // this._metapage.emit(JsonRpcMethodsFromParent.InputsUpdate, this._cachedEventInputsUpdate);\n\n return this;\n }\n\n public setOutput(pipeId: MetaframePipeId, updateBlob: any) {\n console.assert(!!pipeId);\n var outputs: MetaframeInputMap = {};\n outputs[pipeId] = updateBlob;\n this.setOutputs(outputs);\n }\n\n _cachedEventOutputsUpdate = {\n iframeId: null,\n inputs: null,\n };\n public setOutputs(maybeNewOutputs: MetaframeInputMap) {\n if (!merge(this.outputs, maybeNewOutputs)) {\n return;\n }\n this.emit(MetapageEvents.Outputs, maybeNewOutputs);\n\n if (this._metapage.listenerCount(MetapageEvents.Outputs) > 0) {\n var outputsUpdate: MetapageInstanceInputs = {};\n outputsUpdate[this.id] = this.outputs;\n this._metapage.emit(MetapageEvents.Outputs, outputsUpdate);\n }\n }\n\n public onInputs(f: (m: MetaframeInputMap) => void): () => void {\n return this.addListenerReturnDisposer(MetapageEvents.Inputs, f);\n }\n\n public onInput(pipeName: MetaframePipeId, f: (_: any) => void): () => void {\n var fWrap = function (inputs: MetaframeInputMap) {\n if (inputs.hasOwnProperty(pipeName)) {\n f(inputs[pipeName]);\n }\n };\n return this.addListenerReturnDisposer(MetapageEvents.Inputs, fWrap);\n }\n\n public onOutputs(f: (m: MetaframeInputMap) => void): () => void {\n return this.addListenerReturnDisposer(MetapageEvents.Outputs, f);\n }\n\n public onOutput(pipeName: MetaframePipeId, f: (_: any) => void): () => void {\n var fWrap = function (outputs: MetaframeInputMap) {\n if (outputs.hasOwnProperty(pipeName)) {\n f(outputs[pipeName]);\n }\n };\n return this.addListenerReturnDisposer(MetapageEvents.Outputs, fWrap);\n }\n\n public isDisposed() {\n return this.inputs === undefined;\n }\n\n public dispose() {\n super.removeAllListeners();\n while (this._disposables && this._disposables.length > 0) {\n const val = this._disposables.pop();\n if (val) {\n val();\n }\n }\n // @ts-ignore\n this._rpcListeners = undefined;\n // @ts-ignore\n this.inputs = undefined;\n // @ts-ignore\n this.outputs = undefined;\n // @ts-ignore\n if (this._iframe && this._iframe.parentNode) {\n this._iframe.parentNode.removeChild(this._iframe);\n }\n // @ts-ignore\n this._iframe = undefined;\n // @ts-ignore\n this._bufferMessages = undefined;\n if (this._bufferTimeout) {\n window.clearInterval(this._bufferTimeout);\n // @ts-ignore\n this._bufferTimeout = undefined;\n }\n // @ts-ignore\n this._metapage = undefined;\n }\n\n /**\n * Request that the parent metapage tell us what our id is.\n * The iframe might send this message more than once (it reloads for some reason)\n * so we can't gate this request if we think the metaframe\n * is already registered.\n */\n public register() {\n var response: SetupIframeServerResponseData = {\n iframeId: this.id,\n parentId: this._parentId,\n plugin: this._plugin,\n state: {\n inputs: this.inputs,\n },\n version: VERSION_METAPAGE as VersionsMetapage,\n };\n this.sendRpcInternal(\n JsonRpcMethodsFromParent.SetupIframeServerResponse,\n response\n );\n }\n\n public registered(version: VersionsMetaframe) {\n this.log({ m: \"MetapageIFrameRpcClient.registered\", inputs: this.inputs });\n if (this._loaded) {\n return;\n }\n if (!version) {\n throw \"Cannot register without a version\";\n }\n this.version = version;\n this._loaded = true;\n while (this._onLoaded && this._onLoaded.length > 0) {\n this._onLoaded.pop()!();\n }\n // You still need to set the inputs even though they\n // may have been set initially, because the inputs may\n // have been been updated before the metaframe internal\n // returned its server ack.\n if (this._sendInputsAfterRegistration) {\n this.sendInputs(this.inputs);\n }\n }\n\n async sendInputs(inputs: MetaframeInputMap) {\n inputs = await serializeInputs(inputs);\n this.sendRpc(JsonRpcMethodsFromParent.InputsUpdate, {\n inputs: inputs,\n parentId: this._parentId,\n });\n }\n\n public sendRpc(method: string, params: any) {\n if (this._iframe.parentNode && this._loaded) {\n this.sendRpcInternal(method, params);\n } else {\n this._metapage.error(\"sending rpc later\");\n const thing = this;\n this._onLoaded.push(() => {\n thing.sendRpcInternal(method, params);\n });\n }\n }\n\n public ack(message: any) {\n this.log(\"⚒ ⚒ ⚒ calling ack\");\n if (this._debug) {\n this.log(\"⚒ ⚒ ⚒ sending ack from client to frame\");\n var payload: ClientMessageRecievedAck<any> = {\n message: message,\n };\n this.sendRpc(JsonRpcMethodsFromParent.MessageAck, payload);\n } else {\n this.log(\n \"⚒ ⚒ ⚒ NOT sending ack from client to frame since not debug mode\"\n );\n }\n }\n\n public log(o: any) {\n if (!this._debug) {\n return;\n }\n this.logInternal(o);\n }\n\n logInternal(o: any) {\n let s: string;\n if (typeof o === \"string\") {\n s = o as string;\n } else if (typeof o === \"string\") {\n s = o + \"\";\n } else {\n s = JSON.stringify(o);\n }\n MetapageToolsLog(\n `Metapage[${this._parentId}] Metaframe[${this.id}] ${s}`,\n this._color,\n this._consoleBackgroundColor\n );\n }\n\n sendRpcInternal(method: string, params: any) {\n const messageJSON: MinimumClientMessage<any> = {\n id: \"_\",\n iframeId: this.id,\n jsonrpc: \"2.0\",\n method: method,\n params: params,\n parentId: this._parentId,\n };\n if (this._iframe) {\n this.sendOrBufferPostMessage(messageJSON);\n } else {\n this._metapage.error(\n `Cannot send to child iframe messageJSON=${JSON.stringify(\n messageJSON\n ).substring(0, 200)}`\n );\n }\n }\n\n _bufferMessages: any[] | undefined;\n _bufferTimeout: number | undefined;\n sendOrBufferPostMessage(message: any) {\n if (this._iframe && this._iframe.contentWindow) {\n this._iframe.contentWindow.postMessage(message, this.url);\n } else {\n if (!this._bufferMessages) {\n this._bufferMessages = [message];\n const thing = this;\n this._bufferTimeout = window.setInterval(function () {\n if (thing._iframe && thing._iframe.contentWindow) {\n thing._bufferMessages!.forEach((m) =>\n thing._iframe!.contentWindow!.postMessage(m, thing.url)\n );\n window.clearInterval(thing._bufferTimeout);\n thing._bufferTimeout = undefined;\n thing._bufferMessages = undefined;\n }\n }, 0);\n } else {\n this._bufferMessages.push(message);\n }\n }\n }\n}\n","import { ListenerFn } from \"eventemitter3\";\nimport * as objectHash from \"object-hash\";\nimport {\n VERSION_METAPAGE,\n METAPAGE_KEY_STATE,\n METAPAGE_KEY_DEFINITION,\n} from \"./Constants\";\nimport {\n JsonRpcMethodsFromChild,\n MinimumClientMessage,\n SetupIframeClientAckData,\n MetaframeInstance,\n PipeInput,\n MetapageOptions,\n MetaframeInputMap,\n MetaframePipeId,\n MetaframeId,\n MetapageId,\n MetapageInstanceInputs,\n MetapageDefinitionV3,\n VersionsMetapage,\n} from \"./v0_4\";\nimport {\n log as MetapageToolsLog,\n getMatchingVersion,\n generateMetapageId,\n existsAnyUrlParam,\n pageLoaded,\n isDebugFromUrlsParams,\n convertMetapageDefinitionToCurrentVersion,\n} from \"./MetapageTools\";\nimport { INITIAL_NULL_METAPAGE_DEFINITION, MetapageShared } from \"./Shared\";\nimport {\n MetapageEvents,\n MetapageEventDefinition,\n MetapageEventUrlHashUpdate,\n} from \"./v0_4/events\";\nimport { MetapageIFrameRpcClient } from \"./MetapageIFrameRpcClient\";\nimport { deserializeInputs, serializeInputs } from \"./data\";\n\nexport enum MetapageEventStateType {\n all = \"all\",\n delta = \"delta\",\n}\n\ninterface MetapageStatePartial {\n inputs: MetapageInstanceInputs;\n outputs: MetapageInstanceInputs;\n}\n\nexport interface MetapageState {\n metaframes: MetapageStatePartial;\n plugins: MetapageStatePartial;\n}\n\ntype Url = string;\n// type Listener = (a1? : any, a2? : any) => void;\n\nconst emptyState = (): MetapageState => {\n return {\n metaframes: {\n inputs: {},\n outputs: {},\n },\n plugins: {\n inputs: {},\n outputs: {},\n },\n };\n};\nexport const getLibraryVersionMatching = (\n version: string\n): VersionsMetapage => {\n return getMatchingVersion(version);\n};\n\nexport const matchPipe = (\n outputPipeName: string,\n inputPipeName?: string\n): boolean => {\n if (!inputPipeName || inputPipeName === \"*\") {\n return true;\n }\n\n if (outputPipeName === inputPipeName) {\n return true;\n }\n\n if (inputPipeName.endsWith(\"*\")) {\n return outputPipeName.startsWith(inputPipeName.slice(0, -1));\n }\n\n if (inputPipeName.startsWith(\"*\")) {\n return outputPipeName.endsWith(inputPipeName.slice(1));\n }\n\n return false;\n};\n\ntype MetaframeInputTargetsFromOutput = {\n metaframe: MetaframeId;\n pipe: MetaframePipeId;\n};\n\nconst CONSOLE_BACKGROUND_COLOR_DEFAULT = \"bcbcbc\";\n\n// export class Metapage extends EventEmitter<MetapageEvents | JsonRpcMethodsFromParent | OtherEvents> {\nexport class Metapage extends MetapageShared {\n // The current version is always the latest\n public static readonly version = VERSION_METAPAGE;\n\n // Event literals for users to listen to events\n public static readonly DEFINITION = MetapageEvents.Definition;\n public static readonly DEFINITION_UPDATE_REQUEST =\n MetapageEvents.DefinitionUpdateRequest;\n public static readonly ERROR = MetapageEvents.Error;\n public static readonly INPUTS = MetapageEvents.Inputs;\n public static readonly MESSAGE = MetapageEvents.Message;\n public static readonly OUTPUTS = MetapageEvents.Outputs;\n public static readonly STATE = MetapageEvents.State;\n\n public static deserializeInputs = deserializeInputs;\n public static serializeInputs = serializeInputs;\n\n public static from(metaPageDef: any, inputs?: any): Metapage {\n if (metaPageDef == null) {\n throw \"Metapage definition cannot be null\";\n }\n if (typeof metaPageDef === \"string\") {\n try {\n metaPageDef = JSON.parse(metaPageDef);\n } catch (err) {\n throw \"Cannot parse into JSON:\\n${metaPageDef}\";\n }\n }\n\n var metapage = new Metapage();\n return metapage.setDefinition(metaPageDef);\n }\n\n _id: MetapageId;\n _state: MetapageState = emptyState();\n _metaframes: {\n [key: string]: MetapageIFrameRpcClient;\n } = {}; //<MetaframeId, MetapageIFrameRpcClient>\n _plugins: {\n [key: string]: MetapageIFrameRpcClient;\n } = {}; // <Url, MetapageIFrameRpcClient>\n _pluginOrder: Url[] = [];\n\n debug: boolean = isDebugFromUrlsParams();\n _consoleBackgroundColor: string;\n\n // Useful for debugging duplicate messages\n _internalReceivedMessageCounter: number = 0;\n\n // for caching input lookups\n _cachedInputLookupMap: {\n [key: string]: {\n // metaframeId\n [key: string]: MetaframeInputTargetsFromOutput[]; // <metaframeId, MetaframeInputTargetsFromOutput[]>\n };\n } = {};\n _inputMap: {\n [key: string]: PipeInput[];\n } = {};\n // Example:\n // \t{\n // \"version\": \"0.1.0\",\n // \"metaframes\": {\n // \"metaframe1\": {\n // \"url\": \"{{site.baseurl}}/metaframes/example00_iframe1/\",\n // \"inputs\": [\n // {\n // \"metaframe\":\"metaframe2\",\n // \"source\": \"barOut\",\n // \"target\": \"barIn\",\n // }\n // ]\n // },\n // \"metaframe2\": {\n // \"url\": \"{{site.baseurl}}/metaframes/example00_iframe2/\",\n // \"inputs\": [\n // {\n // \"metaframe\":\"metaframe1\",\n // \"source\": \"fooOut\",\n // \"target\": \"fooIn\",\n // }\n // ]\n // }\n // }\n // }\n\n constructor(opts?: MetapageOptions) {\n super();\n this._id = opts && opts.id ? opts.id : generateMetapageId();\n this._consoleBackgroundColor =\n opts && opts.color ? opts.color : CONSOLE_BACKGROUND_COLOR_DEFAULT;\n\n this.addPipe = this.addPipe.bind(this);\n this.dispose = this.dispose.bind(this);\n // this.getDefinition = this.getDefinition.bind(this);\n this.addMetaframe = this.addMetaframe.bind(this);\n this.addPlugin = this.addPlugin.bind(this);\n this.getInputsFromOutput = this.getInputsFromOutput.bind(this);\n this.getMetaframe = this.getMetaframe.bind(this);\n this.getMetaframeIds = this.getMetaframeIds.bind(this);\n this.getMetaframeOrPlugin = this.getMetaframeOrPlugin.bind(this);\n this.getMetaframes = this.getMetaframes.bind(this);\n this.getPlugin = this.getPlugin.bind(this);\n this.getPluginIds = this.getPluginIds.bind(this);\n this.getState = this.getState.bind(this);\n this.getStateMetaframes = this.getStateMetaframes.bind(this);\n this.isValidJSONRpcMessage = this.isValidJSONRpcMessage.bind(this);\n this.log = this.log.bind(this);\n this.logInternal = this.logInternal.bind(this);\n this.metaframeIds = this.metaframeIds.bind(this);\n this.metaframes = this.metaframes.bind(this);\n this.onMessage = this.onMessage.bind(this);\n this.pluginIds = this.pluginIds.bind(this);\n this.plugins = this.plugins.bind(this);\n this.removeAll = this.removeAll.bind(this);\n this.removeMetaframe = this.removeMetaframe.bind(this);\n this.removePlugin = this.removePlugin.bind(this);\n this.setDebugFromUrlParams = this.setDebugFromUrlParams.bind(this);\n this.setDefinition = this.setDefinition.bind(this);\n this.setInput = this.setInput.bind(this);\n this.setInputs = this.setInputs.bind(this);\n this.setInputStateOnly = this.setInputStateOnly.bind(this);\n this.setMetaframeClientInputAndSentClientEvent =\n this.setMetaframeClientInputAndSentClientEvent.bind(this);\n this.setOutputStateOnly = this.setOutputStateOnly.bind(this);\n this.setState = this.setState.bind(this);\n this.isDisposed = this.isDisposed.bind(this);\n // TODO is updatePluginsWithDefinition necessary with the emitDefinitionEvent?\n this.updatePluginsWithDefinition =\n this.updatePluginsWithDefinition.bind(this);\n this._emitDefinitionEvent = this._emitDefinitionEvent.bind(this);\n\n // see ARCHITECTURE.md\n // when the page is loaded, only then start listening to messages from metaframes\n pageLoaded().then(() => {\n if (this.isDisposed()) {\n return;\n }\n window.addEventListener(\"message\", this.onMessage);\n this.log(\"Initialized\");\n });\n }\n\n public isDisposed() {\n return this._metaframes === undefined;\n }\n\n addListenerReturnDisposer(\n event: MetapageEvents,\n listener: ListenerFn<any[]>\n ): () => void {\n super.addListener(event, listener);\n const disposer = () => {\n super.removeListener(event, listener);\n };\n return disposer;\n }\n\n public setDebugFromUrlParams(): Metapage {\n this.debug = existsAnyUrlParam([\"MP_DEBUG\", \"DEBUG\", \"debug\", \"mp_debug\"]);\n return this;\n }\n\n public getState(): MetapageState {\n return this._state;\n }\n\n public setState(newState: MetapageState) {\n this._state = newState;\n this.getMetaframeIds().forEach((metaframeId) => {\n this.getMetaframe(metaframeId).setInputs(\n this._state.metaframes.inputs[metaframeId]\n );\n this.getMetaframe(metaframeId).setOutputs(\n this._state.metaframes.outputs[metaframeId]\n );\n });\n this.getPluginIds().forEach((pluginId: string) => {\n this.getPlugin(pluginId).setInputs(this._state.plugins.inputs[pluginId]);\n this.getPlugin(pluginId).setOutputs(\n this._state.plugins.outputs[pluginId]\n );\n });\n this.emit(MetapageEvents.State, this._state);\n }\n\n public getStateMetaframes(): MetapageStatePartial {\n return this._state.metaframes;\n }\n\n public getDefinition(): MetapageDefinitionV3 {\n return this._definition;\n }\n\n public setDefinition(def: any, state?: MetapageState): Metapage {\n // Some validation\n // can metaframes and plugins share IDs? No.\n\n if (!def.version) {\n throw \"Metapage definition must have a version\";\n }\n\n const newDefinition: MetapageDefinitionV3 =\n convertMetapageDefinitionToCurrentVersion(def);\n\n if (newDefinition.metaframes) {\n Object.keys(newDefinition.metaframes).forEach((metaframeId) => {\n if (\n newDefinition.plugins &&\n newDefinition.plugins.includes(metaframeId)\n ) {\n this.emitErrorMessage(\n `Plugin with url=${metaframeId} matches metaframe. Metaframe ids and plugin urls are not allowed to collide`\n );\n throw `Plugin with url=${metaframeId} matches metaframe. Metaframe ids and plugin urls are not allowed to collide`;\n }\n\n var metaframeDefinition = newDefinition.metaframes[metaframeId];\n if (typeof metaframeDefinition !== \"object\") {\n this.emitErrorMessage(`Metaframe \"${metaframeId}\" is not an object`);\n throw `Metaframe \"${metaframeId}\" is not an object`;\n }\n\n if (!metaframeDefinition.url) {\n this.emitErrorMessage(\n `Metaframe \"${metaframeId}\" missing field: url`\n );\n throw `Metaframe \"${metaframeId}\" missing field: url`;\n }\n });\n }\n\n // If there is not an earlier definition, we don't fire an event\n const previousDefinition = this._definition;\n\n this._definition = newDefinition;\n // try to be efficient with the new definition.\n // destroy any metaframes not in the new definition\n Object.keys(this._metaframes).forEach((metaframeId) => {\n // Doesn't exist? Destroy it\n if (!newDefinition.metaframes || !newDefinition.metaframes[metaframeId]) {\n // this removes the metaframe, pipes, inputs, caches\n this.removeMetaframe(metaframeId);\n }\n });\n\n // destroy any plugins not in the new definition\n Object.keys(this._plugins).forEach((url) => {\n // Doesn't exist? Destroy it\n if (newDefinition.plugins && !newDefinition.plugins.includes(url)) {\n this.removePlugin(url);\n }\n });\n\n // the plugin order\n this._pluginOrder = newDefinition.plugins ? newDefinition.plugins : [];\n\n // if the state is updated, set that now\n if (state) {\n this._state = state;\n }\n\n // Create any new metaframes needed\n if (newDefinition.metaframes) {\n Object.keys(newDefinition.metaframes).forEach((newMetaframeId) => {\n if (!this._metaframes.hasOwnProperty(newMetaframeId)) {\n const metaframeDefinition = newDefinition.metaframes[newMetaframeId];\n this.addMetaframe(newMetaframeId, metaframeDefinition);\n }\n });\n }\n\n // Create any new plugins\n if (newDefinition.plugins) {\n newDefinition.plugins.forEach((url) => {\n if (!this._plugins.hasOwnProperty(url)) {\n this.addPlugin(url);\n }\n });\n }\n\n // TODO set the state of the new pieces? That should happen in the addMetaframe/addPlugin methods I think\n\n // Only fire a definition update event IF this is not the first\n // time the definition is externally set\n if (previousDefinition !== INITIAL_NULL_METAPAGE_DEFINITION) {\n // Send the event on the next loop to give listeners time to re-add\n // after this method returns.\n window.setTimeout(() => {\n if (!this.isDisposed() && newDefinition === this._definition) {\n this._emitDefinitionEvent();\n if (state) {\n this.emit(MetapageEvents.State, this._state);\n }\n }\n }, 0);\n }\n\n return this;\n }\n\n // Convenience method\n _emitDefinitionEvent() {\n const event: MetapageEventDefinition = {\n definition: this._definition,\n metaframes: this._metaframes,\n plugins: this._plugins,\n };\n this.emit(MetapageEvents.Definition, event);\n }\n\n // do not expose, change definition instead\n addPipe(target: MetaframeId, input: PipeInput) {\n // Do all the cache checking\n if (!this._inputMap[target]) {\n this._inputMap[target] = [];\n }\n this._inputMap[target].push(input);\n }\n\n // do not expose, change definition instead\n removeMetaframe(metaframeId: MetaframeId) {\n if (!this._metaframes[metaframeId]) {\n return;\n }\n\n this._metaframes[metaframeId].dispose();\n delete this._metaframes[metaframeId];\n delete this._state.metaframes.inputs[metaframeId];\n delete this._state.metaframes.outputs[metaframeId];\n\n delete this._inputMap[metaframeId];\n Object.keys(this._inputMap).forEach((otherMetaframeId) => {\n const inputPipes = this._inputMap[otherMetaframeId];\n let index = 0;\n while (index <= inputPipes.length) {\n if (inputPipes[index] && inputPipes[index].metaframe === metaframeId) {\n inputPipes.splice(index, 1);\n } else {\n index++;\n }\n }\n });\n\n // This will regenerate, simpler than surgery\n this._cachedInputLookupMap = {};\n }\n\n // do not expose, change definition instead\n // to add/remove\n removePlugin(url: Url): void {\n if (!this._plugins[url]) {\n return;\n }\n\n this._plugins[url].dispose();\n delete this._plugins[url];\n delete this._state.plugins.inputs[url];\n delete this._state.plugins.outputs[url];\n }\n\n // do not expose, change definition instead\n // to add/remove\n removeAll(): void {\n Object.keys(this._metaframes).forEach((id) =>\n this._metaframes[id].dispose()\n );\n Object.keys(this._plugins).forEach((id) => this._plugins[id].dispose());\n this._metaframes = {};\n this._plugins = {};\n this._state = emptyState();\n this._inputMap = {};\n this._cachedInputLookupMap = {};\n }\n\n public metaframes() {\n return this.getMetaframes();\n }\n\n public metaframeIds(): MetaframeId[] {\n return this.getMetaframeIds();\n }\n\n public getMetaframeIds(): MetaframeId[] {\n return Object.keys(this._metaframes);\n }\n\n public getMetaframes(): {\n [key: string]: MetapageIFrameRpcClient;\n } {\n //<MetaframeId,MetapageIFrameRpcClient>\n return Object.assign({}, this._metaframes);\n }\n\n public plugins(): {\n [key: string]: MetapageIFrameRpcClient;\n } {\n //<Url,MetapageIFrameRpcClient>\n return Object.assign({}, this._plugins);\n }\n\n public pluginIds(): Array<Url> {\n return this.getPluginIds();\n }\n\n public getPluginIds(): Array<Url> {\n return this._pluginOrder.slice(0);\n }\n\n public getMetaframe(id: MetaframeId): MetapageIFrameRpcClient {\n return this._metaframes[id];\n }\n\n public getPlugin(url: string): MetapageIFrameRpcClient {\n return this._plugins[url];\n }\n\n // do not expose, change definition instead\n addMetaframe(\n metaframeId: MetaframeId,\n definition: MetaframeInstance\n ): MetapageIFrameRpcClient {\n if (!metaframeId) {\n throw \"addMetaframe missing metaframeId\";\n }\n\n if (!definition) {\n throw \"addMetaframe missing definition\";\n }\n\n if (this._metaframes[metaframeId]) {\n this.emitErrorMessage(`Existing metaframe for id=${metaframeId}`);\n throw `Existing metaframe for id=${metaframeId}`;\n }\n\n if (!definition.url) {\n this.emitErrorMessage(\n `Metaframe definition missing url id=${metaframeId}`\n );\n throw `Metaframe definition missing url id=${metaframeId}`;\n }\n\n var iframeClient = new MetapageIFrameRpcClient(\n this,\n definition.url,\n metaframeId,\n this._id,\n this._consoleBackgroundColor,\n this.debug\n ).setMetapage(this);\n this._metaframes[metaframeId] = iframeClient;\n\n iframeClient.addListener(MetapageEvents.Error, (err) => {\n // These can be displayed\n this.emit(MetapageEvents.Error, {\n metaframeId: iframeClient.id,\n metaframeUrl: iframeClient.url,\n error: err,\n });\n });\n\n // add the pipes\n if (definition.inputs) {\n definition.inputs.forEach((input) => this.addPipe(metaframeId, input));\n }\n\n // set the initial inputs\n iframeClient.setInputs(this._state.metaframes.inputs[metaframeId]);\n\n return iframeClient;\n }\n\n // do not expose, change definition instead\n addPlugin(url: Url): MetapageIFrameRpcClient {\n if (!url) {\n throw \"Plugin missing url\";\n }\n\n const iframeClient = new MetapageIFrameRpcClient(\n this,\n url,\n url,\n this._id,\n this._consoleBackgroundColor,\n this.debug\n )\n .setInputs(this._state.plugins.inputs[url])\n .setMetapage(this)\n .setPlugin();\n bindPlugin(this, iframeClient);\n this._plugins[url] = iframeClient;\n\n return iframeClient;\n }\n\n public dispose() {\n this.log(\"disposing\");\n super.removeAllListeners();\n window.removeEventListener(\"message\", this.onMessage);\n if (this._metaframes) {\n Object.keys(this._metaframes).forEach((metaframeId) =>\n this._metaframes[metaframeId].dispose()\n );\n }\n if (this._plugins) {\n Object.keys(this._plugins).forEach((pluginId) =>\n this._plugins[pluginId].dispose()\n );\n }\n\n // help the gc remove references but ignore the TS warnings as this object is now gone so don't touch it\n // @ts-ignore\n this._id = undefined;\n // @ts-ignore\n this._metaframes = undefined;\n // @ts-ignore\n this._plugins = undefined;\n // @ts-ignore\n this._state = undefined;\n // @ts-ignore\n this._cachedInputLookupMap = undefined;\n // @ts-ignore\n this._inputMap = undefined;\n }\n\n public log(o: any, color?: string, backgroundColor?: string) {\n if (!this.debug) {\n return;\n }\n this.logInternal(o, color, backgroundColor);\n }\n\n public error(err: any) {\n this.logInternal(err, \"f00\", this._consoleBackgroundColor);\n this.emitErrorMessage(`${err}`);\n }\n\n public emitErrorMessage(err: string) {\n this.emit(MetapageEvents.Error, err);\n }\n\n // This call is cached\n getInputsFromOutput(\n source: MetaframeId,\n outputPipeId: MetaframePipeId\n ): MetaframeInputTargetsFromOutput[] {\n // Do all the cache checking\n if (!this._cachedInputLookupMap[source]) {\n this._cachedInputLookupMap[source] = {};\n }\n\n if (!this._cachedInputLookupMap[source][outputPipeId]) {\n var targets: MetaframeInputTargetsFromOutput[] = [];\n this._cachedInputLookupMap[source][outputPipeId] = targets;\n // Go through the data structure, getting all the matching inputs that match this output\n Object.keys(this._inputMap).forEach((metaframeId) => {\n if (metaframeId === source) {\n // No self pipes, does not make sense\n return;\n }\n this._inputMap[metaframeId].forEach((inputPipe) => {\n // At least the source metaframe matches, now check pipes\n if (inputPipe.metaframe == source) {\n // Check the kind of source string\n // it could be a basic string, or a glob?\n if (matchPipe(outputPipeId, inputPipe.source)) {\n // A match, now figure out the actual input pipe name\n // since it might be * or absent meaning that the input\n // field name is the same as the incoming\n var targetName = inputPipe.target;\n if (\n !inputPipe.target ||\n inputPipe.target.startsWith(\"*\") ||\n inputPipe.target === \"\"\n ) {\n targetName = outputPipeId;\n }\n targets.push({ metaframe: metaframeId, pipe: targetName });\n }\n }\n });\n });\n }\n\n return this._cachedInputLookupMap[source][outputPipeId];\n }\n\n isValidJSONRpcMessage(message: MinimumClientMessage<any>) {\n if (message.jsonrpc !== \"2.0\") {\n // do not even log messages that we do not recogize. We cannot control random scripts sending messages on\n // the only communications channel\n return false;\n }\n const method = message.method as JsonRpcMethodsFromChild;\n switch (method) {\n case JsonRpcMethodsFromChild.SetupIframeClientRequest:\n //No validation possible here\n return true;\n default:\n // TODO: check origin+source\n var iframeId: MetaframeId | undefined = message.iframeId;\n if (\n iframeId &&\n !(\n message.parentId === this._id &&\n (this._metaframes[iframeId] || this._plugins[iframeId])\n )\n ) {\n // if (iframeId && !(message.parentId === this._id && this._metaframes[iframeId])) {\n // this.error(`message.parentId=${message.parentId} this._id=${this._id} message.iframeId=${iframeId} this._metaframes.hasOwnProperty(message.iframeId)=${this._metaframes[iframeId] !== undefined} this._plugins.hasOwnProperty(message.iframeId)=${this._plugins[iframeId] !== undefined} message=${JSON.stringify(message).substr(0, 200)}`);\n return false;\n }\n return true;\n }\n }\n\n /**\n * Sets inputs\n * First update internal state, so any events that check get the new value\n * Then update the metaframe clients\n * Fire events\n * @param iframeId Can be an object of {metaframeId:{pipeId:value}} or the metaframe/plugin id\n * @param inputPipeId If the above is a string id, then inputPipeId can be the pipe id or an object {pipeId:value}\n * @param value If the above is a pipe id, then the is the value.\n */\n public setInput(iframeId: any, inputPipeId?: any, value?: any) {\n this.setInputStateOnly(iframeId, inputPipeId, value);\n this.setMetaframeClientInputAndSentClientEvent(\n iframeId,\n inputPipeId,\n value\n );\n // finally send the main events\n this.emit(MetapageEvents.State, this._state);\n this.emit(MetapageEvents.Inputs, this._state);\n }\n\n // this is\n setMetaframeClientInputAndSentClientEvent(\n iframeId: any,\n inputPipeId?: any,\n value?: any\n ) {\n if (typeof iframeId === \"object\") {\n if (inputPipeId || value) {\n throw \"bad arguments, see API docs\";\n }\n const inputs: any = iframeId;\n Object.keys(inputs).forEach((id) => {\n var metaframeId: MetaframeId = id;\n var metaframeInputs = inputs[metaframeId];\n if (typeof metaframeInputs !== \"object\") {\n throw \"bad arguments, see API docs\";\n }\n var iframeClient = this._metaframes[metaframeId];\n if (iframeClient) {\n iframeClient.setInputs(metaframeInputs);\n } else {\n this.error(\"No iframe id=$metaframeId\");\n }\n });\n } else if (typeof iframeId === \"string\") {\n const iframeClient = this._metaframes[iframeId];\n if (iframeClient == null) {\n this.error(`No iframe id=${iframeId}`);\n }\n if (typeof inputPipeId === \"string\") {\n iframeClient.setInput(inputPipeId, value);\n } else if (typeof inputPipeId === \"object\") {\n iframeClient.setInputs(inputPipeId);\n } else {\n throw \"bad arguments, see API docs\";\n }\n } else {\n throw \"bad arguments, see API docs\";\n }\n }\n\n public setInputs(iframeId: any, inputPipeId?: any, value?: any) {\n this.setInput(iframeId, inputPipeId, value);\n }\n\n setOutputStateOnly(iframeId: any, inputPipeId?: any, value?: any) {\n this._setStateOnly(false, iframeId, inputPipeId, value);\n }\n\n // Set the global inputs cache\n setInputStateOnly(iframeId: any, inputPipeId?: any, value?: any) {\n this._setStateOnly(true, iframeId, inputPipeId, value);\n }\n\n // need to set the boolean first because we don't know the metaframe/pluginId until we dig into\n // the object. but it might not be an object. this flexibility might not be worth it, although\n // the logic is reasonble to test\n _setStateOnly(\n isInputs: boolean,\n iframeId: any,\n inputPipeId?: any,\n value?: any\n ) {\n if (typeof iframeId === \"object\") {\n // it's an object of metaframeIds to pipeIds to values [metaframeId][pipeId]\n // so the other fields should be undefined\n if (inputPipeId || value) {\n throw \"If first argument is an object, subsequent args should be undefined\";\n }\n const inputsMetaframesNew: MetapageInstanceInputs = iframeId;\n Object.keys(inputsMetaframesNew).forEach((metaframeId) => {\n var metaframeValuesNew: MetaframeInputMap =\n inputsMetaframesNew[metaframeId];\n if (typeof metaframeValuesNew !== \"object\") {\n throw \"Object values must be objects\";\n }\n\n const isMetaframe = this._metaframes.hasOwnProperty(metaframeId);\n if (!isMetaframe && !this._plugins.hasOwnProperty(metaframeId)) {\n throw \"No metaframe or plugin: ${metaframeId}\";\n }\n\n const inputOrOutputState = isMetaframe\n ? isInputs\n ? this._state.metaframes.inputs\n : this._state.metaframes.outputs\n : isInputs\n ? this._state.plugins.inputs\n : this._state.plugins.outputs;\n\n // Ensure a map\n inputOrOutputState[metaframeId] = inputOrOutputState[metaframeId]\n ? inputOrOutputState[metaframeId]\n : ({} as MetaframeInstance);\n\n Object.keys(metaframeValuesNew).forEach((metaframePipedId) => {\n // A key with a value of undefined means remove the key from the state object\n if (metaframeValuesNew[metaframePipedId] === undefined) {\n delete inputOrOutputState[metaframeId][metaframePipedId];\n } else {\n // otherwise set the new value\n inputOrOutputState[metaframeId][metaframePipedId] =\n metaframeValuesNew[metaframePipedId];\n }\n });\n });\n } else if (typeof iframeId === \"string\") {\n const metaframeId: MetaframeId = iframeId;\n const isMetaframe = this._metaframes.hasOwnProperty(metaframeId);\n if (!isMetaframe && !this._plugins.hasOwnProperty(metaframeId)) {\n throw `No metaframe or plugin: ${metaframeId}`;\n }\n const inputOrOutputState = isMetaframe\n ? isInputs\n ? this._state.metaframes.inputs\n : this._state.metaframes.outputs\n : isInputs\n ? this._state.plugins.inputs\n : this._state.plugins.outputs;\n\n if (typeof inputPipeId === \"string\") {\n // Ensure a map\n inputOrOutputState[metaframeId] = inputOrOutputState[metaframeId]\n ? inputOrOutputState[metaframeId]\n : ({} as MetaframeInstance);\n\n const metaframePipeId: MetaframePipeId = inputPipeId;\n\n // A key with a value of undefined means remove the key from the state object\n if (value === undefined) {\n delete inputOrOutputState[metaframeId][metaframePipeId];\n } else {\n // otherwise set the new value\n inputOrOutputState[metaframeId][metaframePipeId] = value;\n }\n } else if (typeof inputPipeId === \"object\") {\n // Ensure a map\n inputOrOutputState[metaframeId] = inputOrOutputState[metaframeId]\n ? inputOrOutputState[metaframeId]\n : ({} as MetaframeInstance);\n\n const metaframeValuesNew: MetaframeInputMap = inputPipeId;\n\n Object.keys(metaframeValuesNew).forEach((metaframePipedId) => {\n // A key with a value of undefined means remove the key from the state object\n if (metaframeValuesNew[metaframePipedId] === undefined) {\n delete inputOrOutputState[metaframeId][metaframePipedId];\n } else {\n // otherwise set the new value\n inputOrOutputState[metaframeId][metaframePipedId] =\n metaframeValuesNew[metaframePipedId];\n }\n });\n } else {\n throw \"Second argument must be a string or an object\";\n }\n } else {\n throw \"First argument must be a string or an object\";\n }\n }\n\n getMetaframeOrPlugin(key: string): MetapageIFrameRpcClient {\n // TODO: this is not good, it will lead to subtle bugs, fix it\n var val = this._metaframes[key];\n if (!val) {\n val = this._plugins[key];\n }\n return val;\n }\n\n onMessage(e: MessageEvent) {\n // any other type of messages are ignored\n // maybe in the future we can pass around strings or ArrayBuffers\n if (typeof e.data === \"object\") {\n const jsonrpc = e.data as MinimumClientMessage<any>;\n if (!this.isValidJSONRpcMessage(jsonrpc)) {\n return;\n }\n //Verify here\n var method = jsonrpc.method as JsonRpcMethodsFromChild;\n const metaframeId = jsonrpc.iframeId;\n // The metaframe gets its id from the window.name field so the iframe knows\n // its id from the very beginning\n if (!metaframeId) {\n // so if it's missing, bail early\n return;\n }\n\n const metaframeOrPlugin = this.getMetaframeOrPlugin(metaframeId);\n const isPlugin = this._plugins[metaframeId]!!;\n\n // debugging: track messsages internally\n (jsonrpc as any)[\"_messageCount\"] = ++this\n ._internalReceivedMessageCounter;\n\n if (this.debug) {\n this.log(\n `processing ${JSON.stringify(jsonrpc, null, \" \").substr(0, 500)}`\n );\n }\n\n switch (method) {\n /**\n * An iframe is sending a connection request.\n * Here we register it to set up a secure\n * communication channel.\n */\n case JsonRpcMethodsFromChild.SetupIframeClientRequest:\n if (metaframeOrPlugin) {\n metaframeOrPlugin.register();\n }\n break;\n\n /* A client iframe responded */\n case JsonRpcMethodsFromChild.SetupIframeServerResponseAck:\n /* Send all inputs when a client has registered. */\n if (metaframeOrPlugin) {\n const params = jsonrpc.params as SetupIframeClientAckData<any>;\n metaframeOrPlugin.registered(params.version);\n }\n break;\n\n case JsonRpcMethodsFromChild.OutputsUpdate:\n const outputs: MetaframeInputMap = jsonrpc.params;\n\n if (this._metaframes[metaframeId]) {\n var iframe = this._metaframes[metaframeId];\n\n // set the internal state, no event yet, nor downstream inputs update (yet)\n this.setOutputStateOnly(metaframeId, outputs);\n // iframe outputs, metaframe only event sent\n iframe.setOutputs(outputs);\n // now sent metapage event\n this.emit(MetapageEvents.State, this._state);\n\n // cached lookup of where those outputs are going\n // Multiple outputs going to multiple inputs on the same metaframe must\n // arrive as a single blob\n var modified = false;\n const outputKeys = Object.keys(outputs);\n const collectedOutputs: { [key in string]: MetaframeInputMap } = {};\n outputKeys.forEach((outputKey, i) => {\n const targets: MetaframeInputTargetsFromOutput[] =\n this.getInputsFromOutput(metaframeId!, outputKey);\n if (targets.length > 0) {\n targets.forEach((target) => {\n if (!collectedOutputs[target.metaframe]) {\n collectedOutputs[target.metaframe] = {};\n }\n collectedOutputs[target.metaframe][target.pipe] =\n outputs[outputKey];\n // update the metapage state first (no events)\n this.setInputStateOnly(\n target.metaframe,\n target.pipe,\n outputs[outputKey]\n );\n // setting the individual inputs sends an event\n modified = true;\n });\n }\n });\n // then actually set the inputs once collected\n Object.keys(collectedOutputs).forEach((metaframeId) => {\n this._metaframes[metaframeId].setInputs(\n collectedOutputs[metaframeId]\n );\n });\n // only send a state event if downstream inputs were modified\n if (modified) {\n this.emit(MetapageEvents.State, this._state);\n }\n if (this.debug) {\n iframe.ack({ jsonrpc: jsonrpc, state: this._state });\n }\n } else if (this._plugins[metaframeId]) {\n // the metapage state special pipes (definition and global state)\n // are not persisted in the plugin state\n const outputPersistanceAllowed =\n !outputs[METAPAGE_KEY_STATE] && !outputs[METAPAGE_KEY_DEFINITION];\n if (outputPersistanceAllowed) {\n this.setOutputStateOnly(metaframeId, outputs);\n }\n // it might not seem meaningful to set the plugin outputs, since plugin outputs\n // do not flow into other plugin inputs. However, the outputs are specifically\n // listened to, for the purposes of e.g. setting the definition or state\n this._plugins[metaframeId].setOutputs(outputs);\n\n // TODO: question\n // I'm not sure if plugin outputs should trigger a state event, since it's not\n // metaframe state.\n if (outputPersistanceAllowed) {\n this.emit(MetapageEvents.State, this._state);\n }\n if (this.debug) {\n this._plugins[metaframeId].ack({\n jsonrpc: jsonrpc,\n state: this._state,\n });\n }\n } else {\n this.error(`missing metaframe/plugin=$metaframeId`);\n }\n\n break;\n\n case JsonRpcMethodsFromChild.InputsUpdate:\n // This is triggered by the metaframe itself, meaning the metaframe\n // decided to save this state info.\n // We store it in the local state, then send it back so\n // the metaframe is notified of its input state.\n var inputs: MetaframeInputMap = jsonrpc.params;\n if (this.debug)\n this.log(`inputs ${JSON.stringify(inputs)} from ${metaframeId}`);\n if (this._metaframes[metaframeId]) {\n // Set the internal inputs state first so that anything that\n // responds to events will get the updated state if requested\n // Currently on for setting metaframe inputs that haven't loaded yet\n this.setInputStateOnly(metaframeId, inputs);\n this._metaframes[metaframeId].setInputs(inputs);\n this.emit(MetapageEvents.State, this._state);\n if (this.debug) {\n this._metaframes[metaframeId].ack({\n jsonrpc: jsonrpc,\n state: this._state,\n });\n }\n } else if (this._plugins[metaframeId]) {\n // the metapage state special pipes (definition and global state)\n // are not persisted in the plugin state\n const inputPersistanceAllowed =\n !inputs[METAPAGE_KEY_STATE] && !inputs[METAPAGE_KEY_DEFINITION];\n if (inputPersistanceAllowed) {\n this.setInputStateOnly(metaframeId, inputs);\n }\n this._plugins[metaframeId].setInputs(inputs);\n if (inputPersistanceAllowed) {\n this.emit(MetapageEvents.State, this._state);\n }\n if (this.debug) {\n this._plugins[metaframeId].ack({\n jsonrpc: jsonrpc,\n state: this._state,\n });\n }\n } else {\n console.error(\n `InputsUpdate failed no metaframe or plugin id: \"${metaframeId}\"`\n );\n this.error(\n `InputsUpdate failed no metaframe or plugin id: \"${metaframeId}\"`\n );\n }\n break;\n case JsonRpcMethodsFromChild.PluginRequest:\n if (isPlugin && metaframeOrPlugin) {\n if (metaframeOrPlugin.hasPermissionsState()) {\n metaframeOrPlugin.setInput(METAPAGE_KEY_STATE, this._state);\n if (this.debug) {\n metaframeOrPlugin.ack({ jsonrpc: jsonrpc, state: this._state });\n }\n }\n }\n break;\n case JsonRpcMethodsFromChild.HashParamsUpdate:\n // Not really sure how to \"automatically\" process this right here\n // It's a potential automatic security concern, IF we want to put credentials\n // in the hash params (and we do)\n // So for now, just emit an event, and let the parent context handle it\n // In the current use case this app: https://github.com/metapages/metapage-app\n // will listen for the event and update the definition accordingly\n if (!isPlugin && metaframeOrPlugin) {\n // Update in place the local references to the new metaframe URL with the\n // new hash params:\n // - if you call metapage.getDefinition() it will include the new URL\n // - compare metapage.getDefinition() with any updates outside of this\n // context to decide wether to re-render or recreate\n const hashParamsUpdatePayload: MetapageEventUrlHashUpdate =\n jsonrpc.params;\n const url = new URL(metaframeOrPlugin.url);\n url.hash = hashParamsUpdatePayload.hash;\n // Update the local metaframe client reference\n metaframeOrPlugin.url = url.href;\n // Update the definition in place\n this._definition.metaframes[hashParamsUpdatePayload.metaframe].url =\n url.href;\n this._emitDefinitionEvent();\n }\n break;\n default:\n if (this.debug) {\n this.log(`Unknown RPC method: \"${method}\"`);\n }\n }\n this.emit(MetapageEvents.Message, jsonrpc);\n }\n }\n\n updatePluginsWithDefinition() {\n const currentMetapageDef = this.getDefinition();\n Object.values(this._plugins).forEach((plugin) => {\n if (plugin.hasPermissionsDefinition()) {\n updatePluginWithDefinition(plugin);\n }\n });\n }\n\n logInternal(o: any, color?: string, backgroundColor?: string) {\n backgroundColor = backgroundColor\n ? backgroundColor\n : this._consoleBackgroundColor;\n let s: string;\n if (typeof o === \"string\") {\n s = o as string;\n } else if (typeof o === \"number\") {\n s = o + \"\";\n } else {\n s = JSON.stringify(o);\n }\n s = this._id ? `Metapage[${this._id}] ${s}` : s;\n MetapageToolsLog(s, color, backgroundColor);\n }\n}\n\n/**\n * Plugins can get and set the metapage definition and state.\n * The inputs/outputs of the plugin MUST define those inputs\n * otherwise the\n * @return Promise<boolean>\n */\nconst bindPlugin = async (\n metapage: Metapage,\n plugin: MetapageIFrameRpcClient\n) => {\n // 1) check for metapage/definition inputs and outputs\n //\t\t- if found, wire up listeners and responses and send current definition\n // 2) check for metapage/state inputs and outputs\n //\t\t- if found, listen for JSON-RPC events from that plugin and send the state.\n // - if found, set the entire state on 'metapage/state' output\n try {\n const metaframeDef = await plugin.getDefinition();\n if (!metaframeDef) {\n throw `${plugin.url}`;\n }\n // A new definition can be loaded before the above finishes\n if (plugin.isDisposed()) {\n return;\n }\n // definition get/set\n // send the metapage/definition immediately\n // on getting a metapage/definition value, set that\n // value on the metapage itself.\n if (plugin.hasPermissionsDefinition()) {\n var disposer = metapage.addListenerReturnDisposer(\n MetapageEvents.Definition,\n (definition) => {\n plugin.setInput(METAPAGE_KEY_DEFINITION, definition.definition);\n }\n );\n plugin._disposables.push(disposer);\n // we do not need to send the current actual definition, because\n // a MetapageEvents.Definition event will be fired subsequent to adding this\n // Set the metapage definition now, otherwise it will not ever get\n // the event.\n var currentMetapageDef = metapage.getDefinition();\n if (currentMetapageDef) {\n plugin.setInput(METAPAGE_KEY_DEFINITION, currentMetapageDef);\n\n if (metaframeDef.outputs) {\n var disposer = plugin.onOutput(\n METAPAGE_KEY_DEFINITION,\n (definition) => {\n if (\n objectHash.sha1(definition) !==\n objectHash.sha1(currentMetapageDef)\n ) {\n // It's a REQUEST to update the metapage definition, it cannot force it\n // because that would open up an interesting ability that could be hidden\n // from users (third party site modifying the definition)\n metapage.emit(\n MetapageEvents.DefinitionUpdateRequest,\n definition\n );\n }\n }\n );\n plugin._disposables.push(disposer);\n }\n }\n }\n\n if (plugin.hasPermissionsState()) {\n // if the plugin sets the metapage state, set it here\n if (metaframeDef.outputs) {\n var disposer = plugin.onOutput(METAPAGE_KEY_STATE, (state) => {\n metapage.setState(state);\n });\n plugin._disposables.push(disposer);\n }\n }\n } catch (err) {\n console.error(err);\n metapage.emit(\n MetapageEvents.Error,\n `Failed to get plugin definition from \"${plugin.getDefinitionUrl()}\", error=${err}`\n );\n }\n};\n\nconst updatePluginWithDefinition = (plugin: MetapageIFrameRpcClient) => {\n const currentMetapageDef = plugin._metapage.getDefinition();\n plugin.setInput(METAPAGE_KEY_DEFINITION, currentMetapageDef);\n};\n\n// const ERROR_MESSAGE_PAGE_NOT_LOADED = `\n// The page must be loaded before metaframes(iframes) can be created:\n// import { pageLoaded } from \"@metapages/metapage\";\n// // somewhere in your code\n// await pageLoaded();\n// Metapage.from(... <definition>...)\n// `\n"]}
|
package/dist/index.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export * from "./metapage/Metapage";
|
|
2
|
-
export * from "./metapage/Metaframe";
|
|
3
|
-
export * from "./metapage/MetapageTools";
|
|
4
|
-
export * from "./metapage/Shared";
|
|
5
|
-
export * from "./metapage/MetapageIFrameRpcClient";
|
|
6
|
-
export * from "./metapage/v0_4";
|
|
7
|
-
export * from "./metapage/data";
|
|
8
|
-
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oCAAoC,CAAC;AACnD,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { MetapageVersionsAll, MetaframeVersionsAll } from "./v0_4";
|
|
2
|
-
export const METAFRAME_JSON_FILE = "metaframe.json";
|
|
3
|
-
export const METAPAGE_KEY_DEFINITION = "metapage/definition";
|
|
4
|
-
export const METAPAGE_KEY_STATE = "metapage/state";
|
|
5
|
-
export const VERSION_METAPAGE = MetapageVersionsAll[MetapageVersionsAll.length - 1];
|
|
6
|
-
export const VERSION_METAFRAME = MetaframeVersionsAll[MetaframeVersionsAll.length - 1];
|
|
7
|
-
//# sourceMappingURL=Constants.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Constants.js","sourceRoot":"","sources":["../../src/metapage/Constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAE,oBAAoB,EAAC,MAAM,QAAQ,CAAC;AAEjE,MAAM,CAAC,MAAM,mBAAmB,GAAG,gBAAgB,CAAC;AACpD,MAAM,CAAC,MAAM,uBAAuB,GAAG,qBAAqB,CAAC;AAC7D,MAAM,CAAC,MAAM,kBAAkB,GAAG,gBAAgB,CAAC;AAEnD,MAAM,CAAC,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACpF,MAAM,CAAC,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC"}
|