@nlabs/arkhamjs 3.31.7 → 3.31.8
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/lib/Flux/Flux.d.ts +1 -1
- package/lib/index.d.ts +3 -3
- package/package.json +2 -2
- package/lib/Flux/Flux.js +0 -5
- package/lib/Flux/Flux.types.js +0 -3
- package/lib/constants/ArkhamConstants.js +0 -4
- package/lib/index.js +0 -4
package/lib/Flux/Flux.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { EventEmitter } from 'events';
|
|
2
|
-
import type { FluxAction, FluxMiddlewareType, FluxOptions, FluxStore } from './Flux.types';
|
|
2
|
+
import type { FluxAction, FluxMiddlewareType, FluxOptions, FluxStore } from './Flux.types.js';
|
|
3
3
|
export declare class FluxFramework extends EventEmitter {
|
|
4
4
|
static initFlux: boolean;
|
|
5
5
|
isInit: boolean;
|
package/lib/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Copyright (c) 2018-Present, Nitrogen Labs, Inc.
|
|
3
3
|
* Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
|
|
4
4
|
*/
|
|
5
|
-
import { ArkhamConstants } from './constants/ArkhamConstants';
|
|
6
|
-
import { Flux, FluxFramework } from './Flux/Flux';
|
|
7
|
-
export * from './Flux/Flux.types';
|
|
5
|
+
import { ArkhamConstants } from './constants/ArkhamConstants.js';
|
|
6
|
+
import { Flux, FluxFramework } from './Flux/Flux.js';
|
|
7
|
+
export * from './Flux/Flux.types.js';
|
|
8
8
|
export { ArkhamConstants, Flux, FluxFramework };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nlabs/arkhamjs",
|
|
3
|
-
"version": "3.31.
|
|
3
|
+
"version": "3.31.8",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
"update": "lex update --interactive"
|
|
70
70
|
},
|
|
71
71
|
"dependencies": {
|
|
72
|
-
"@nlabs/utils": "2.8.
|
|
72
|
+
"@nlabs/utils": "2.8.4",
|
|
73
73
|
"events": "^3.3.0"
|
|
74
74
|
},
|
|
75
75
|
"files": [
|
package/lib/Flux/Flux.js
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/* ArkhamJS - Optimized Build */
|
|
2
|
-
var y=Object.defineProperty;var S=(c,h,t)=>h in c?y(c,h,{enumerable:!0,configurable:!0,writable:!0,value:t}):c[h]=t;var n=(c,h,t)=>S(c,typeof h!="symbol"?h+"":h,t);import{cloneDeep as l,debounceCompact as x,get as v,merge as F,parseStack as k,set as A}from"@nlabs/utils";import{EventEmitter as T}from"events";import{ArkhamConstants as g}from"../constants/ArkhamConstants";const u=new Map,b=100;class f extends T{constructor(){super();n(this,"isInit",!1);n(this,"pluginTypes",["preDispatch","postDispatch"]);n(this,"state",{});n(this,"storeActions",{});n(this,"defaultOptions",{name:"arkhamjs",routerType:"browser",scrollToTop:!0,storageWait:300,stores:[],title:"ArkhamJS"});n(this,"middleware",{});n(this,"options",this.defaultOptions);n(this,"stateCache",new Map);n(this,"stateChanged",!1);n(this,"updateStorage",()=>Promise.resolve(!1));this.addMiddleware=this.addMiddleware.bind(this),this.addStores=this.addStores.bind(this),this.clearAppData=this.clearAppData.bind(this),this.clearMiddleware=this.clearMiddleware.bind(this),this.deregister=this.deregister.bind(this),this.dispatch=this.dispatch.bind(this),this.getOptions=this.getOptions.bind(this),this.getState=this.getState.bind(this),this.getStore=this.getStore.bind(this),this.init=this.init.bind(this),this.off=this.off.bind(this),this.register=this.register.bind(this),this.removeMiddleware=this.removeMiddleware.bind(this),this.removeStores=this.removeStores.bind(this),this.reset=this.reset.bind(this),this.setState=this.setState.bind(this),this.pluginTypes.forEach(t=>this.middleware[`${t}List`]=[])}addMiddleware(t){t.forEach(e=>{if(!e||typeof e!="function"&&typeof e!="object")throw Error("Unknown middleware is not configured properly. Cannot add to Flux.");const s=e.name||"";if(!s)throw Error("Unknown middleware is not configured properly. Requires name property. Cannot add to Flux.");this.middleware.preDispatchList?.find(r=>r.name===s)||this.middleware.postDispatchList?.find(r=>r.name===s)||this.pluginTypes.forEach(r=>{const a=e[r];if(a&&typeof a=="function"){const o={method:a,name:s};this.middleware[`${r}List`]=this.addPlugin(r,o)}})})}clearAppData(){Object.keys(this.storeActions).forEach(s=>{const i=this.storeActions[s];i&&(this.state[i.name]=i.initialState)}),this.stateCache.clear(),this.stateChanged=!0;const{name:t,storage:e}=this.options;return e?.setStorageData?e.setStorageData(t??"arkhamjs",this.state):Promise.resolve(!0)}clearMiddleware(){return Object.keys(this.middleware).forEach(t=>{this.middleware[t]=[]}),!0}removeStores(t){t.forEach(e=>this.deregister(e))}async dispatch(t,e=!1){if(!t)throw new Error("ArkhamJS Error: Flux.dispatch requires an action.");const s=Date.now();let i=l(t),r=[];this.options.debug&&(r=this.getCachedStack());const a={duration:0,options:this.options,stack:r},{postDispatchList:o=[],preDispatchList:p=[]}=this.middleware;p.length&&(i=await this.processMiddleware(p,i,a));const{type:d,...m}=i;if(!d||d==="")return Promise.resolve(i);if(this.updateStoresState(d,m),this.stateChanged&&this.options.storage&&this.updateStorage)try{await this.updateStorage(),this.stateChanged=!1}catch{}const w=Date.now()-s;return a.duration=w,o.length&&(i=await this.processMiddleware(o,i,a)),e||(this.emit(d,i),this.emit("arkhamjs",this.state)),Promise.resolve(i)}getOptions(){return this.options}getState(t="",e){const s=Array.isArray(t)?t.join("."):t;if(this.stateCache.has(s))return this.stateCache.get(s);let i;t?i=v(this.state,t):i=this.state||{};const r=i&&l(i),a=r===void 0?e:r;return this.stateCache.set(s,a),a}getStore(t=""){return this.storeActions[t]}async init(t={},e=!1){e&&(this.isInit=!1,await this.reset(!1));const s={...t};this.isInit&&this.options.name&&(s.name=this.options.name),this.options={...this.defaultOptions,...s};const{debug:i,middleware:r,name:a,stores:o}=this.options;try{await this.useStorage(a??"arkhamjs")}catch(d){throw d}if(o?.length)try{await this.addStores(o)}catch(d){throw d}r?.length&&this.addMiddleware(r);const p="arkhamjs";return i?window[p]=this:delete window[p],this.isInit=!0,this.emit(g.INIT),this}onInit(t){this.on(g.INIT,t),this.isInit&&t()}offInit(t){this.off(g.INIT,t)}off(t,e){return this.removeListener(t,e)}on(t,e){return this.addListener(t,e)}async addStores(t){const e=t.map(r=>this.register(r)),{name:s,storage:i}=this.options;if(i?.setStorageData)try{await i.setStorageData(s??"arkhamjs",this.state)}catch(r){throw r}return e}removeMiddleware(t){t.forEach(e=>{this.pluginTypes.forEach(s=>{this.middleware[`${s}List`]=this.removePlugin(s,e)})})}async reset(t=!0){const{name:e,storage:s}=this.options;if(s&&t)try{await s.setStorageData?.(e??"arkhamjs",{})}catch(i){throw i}this.middleware={},this.options={...this.defaultOptions},this.state={},this.storeActions={},this.stateCache.clear(),this.stateChanged=!1,this.isInit=!1,this.pluginTypes.forEach(i=>this.middleware[`${i}List`]=[])}setState(t="",e){if(t){this.state=A(this.state,t,l(e)),this.stateChanged=!0;const s=Array.isArray(t)?t.join("."):t;this.stateCache.delete(s)}return this.options.storage&&this.updateStorage?this.updateStorage():Promise.resolve(!1)}async processMiddleware(t,e,s){return Promise.all(t.map(i=>i.method(l(e),l(this.state),s))).then(i=>i.reduce((r,a)=>F(r,a),e)).catch(i=>{throw i})}updateStoresState(t,e){Object.keys(this.storeActions).forEach(s=>{const i=this.storeActions[s];if(i){const r=this.state[s]||i.initialState||{},a=i.action(t,e,r);a!==r&&(this.state[s]=l(a)||r,this.stateChanged=!0)}})}getCachedStack(){const t=new Error().stack?.split(`
|
|
3
|
-
`)[2]||"";if(u.has(t))return u.get(t);let e=[];try{const s="stackTraceLimit",i=Error.stackTraceLimit;if(Error[s]=1/0,e=k(new Error),Error[s]=i,u.size>=b){const r=u.keys().next().value;r&&u.delete(r)}u.set(t,e)}catch{}return e}addPlugin(t,e){const s=this.middleware[`${t}List`]||[],{method:i,name:r}=e;if(i&&typeof i=="function")s.some(o=>o.name===r)||s.push({method:i,name:r});else if(i!==void 0)throw Error(`${e.name} middleware is not configured properly. Method is not a function.`);return s}deregister(t=""){delete this.storeActions[t],delete this.state[t],this.stateCache.clear()}register(t){if(!t)throw Error("Store is undefined. Cannot register with Flux.");let e,s,i;if(typeof t=="function")e=t.name||"anonymous",s=t,i=t();else if(typeof t?.action=="function")e=t.name||"anonymous",s=t.action,i=t.initialState||t.action();else throw Error(`${t} is not a valid store. Must be a function or object with action method.`);if(!e||e==="anonymous")return;const r={action:s,initialState:i,name:e};return this.storeActions[e]||(this.storeActions[e]=r,this.state[e]||(this.state[e]=l(i||{}))),this.storeActions[e]}removePlugin(t,e){return(this.middleware[`${t}List`]||[]).filter(i=>i.name!==e)}async useStorage(t){const{storage:e,state:s,storageWait:i}=this.options;if(e)try{this.state=s||await e?.getStorageData?.(t)||{},this.updateStorage=x(()=>e?.setStorageData?.(t,this.state),i??300)}catch(r){throw r}else this.state=s||{}}}n(f,"initFlux",!1);const I=new f;export{I as Flux,f as FluxFramework};
|
|
4
|
-
/* End ArkhamJS */
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL0ZsdXgvRmx1eC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7Y2xvbmVEZWVwLCBkZWJvdW5jZUNvbXBhY3QsIGdldCwgbWVyZ2UsIHBhcnNlU3RhY2ssIHNldH0gZnJvbSAnQG5sYWJzL3V0aWxzJztcbmltcG9ydCB7RXZlbnRFbWl0dGVyfSBmcm9tICdldmVudHMnO1xuXG5pbXBvcnQge0Fya2hhbUNvbnN0YW50c30gZnJvbSAnLi4vY29uc3RhbnRzL0Fya2hhbUNvbnN0YW50cyc7XG5cbmltcG9ydCB0eXBlIHtGbHV4QWN0aW9uLCBGbHV4TWlkZGxld2FyZVR5cGUsIEZsdXhPcHRpb25zLCBGbHV4UGx1Z2luVHlwZSwgRmx1eFN0b3JlfSBmcm9tICcuL0ZsdXgudHlwZXMnO1xuXG5jb25zdCBTVEFDS19DQUNIRSA9IG5ldyBNYXA8c3RyaW5nLCBhbnlbXT4oKTtcbmNvbnN0IFNUQUNLX0NBQ0hFX1NJWkUgPSAxMDA7XG5cbmV4cG9ydCBjbGFzcyBGbHV4RnJhbWV3b3JrIGV4dGVuZHMgRXZlbnRFbWl0dGVyIHtcbiAgc3RhdGljIGluaXRGbHV4OiBib29sZWFuID0gZmFsc2U7XG4gIGlzSW5pdDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHJlYWRvbmx5IHBsdWdpblR5cGVzOiByZWFkb25seSBzdHJpbmdbXSA9IFsncHJlRGlzcGF0Y2gnLCAncG9zdERpc3BhdGNoJ10gYXMgY29uc3Q7XG5cbiAgcHJpdmF0ZSBzdGF0ZTogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuICBwcml2YXRlIHN0b3JlQWN0aW9uczogUmVjb3JkPHN0cmluZywgRmx1eFN0b3JlPiA9IHt9O1xuICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRPcHRpb25zOiBGbHV4T3B0aW9ucyA9IHtcbiAgICBuYW1lOiAnYXJraGFtanMnLFxuICAgIHJvdXRlclR5cGU6ICdicm93c2VyJyxcbiAgICBzY3JvbGxUb1RvcDogdHJ1ZSxcbiAgICBzdG9yYWdlV2FpdDogMzAwLFxuICAgIHN0b3JlczogW10sXG4gICAgdGl0bGU6ICdBcmtoYW1KUydcbiAgfTtcbiAgcHJpdmF0ZSBtaWRkbGV3YXJlOiBSZWNvcmQ8c3RyaW5nLCBGbHV4UGx1Z2luVHlwZVtdPiA9IHt9O1xuICBwcml2YXRlIG9wdGlvbnM6IEZsdXhPcHRpb25zID0gdGhpcy5kZWZhdWx0T3B0aW9ucztcbiAgcHJpdmF0ZSBzdGF0ZUNhY2hlOiBNYXA8c3RyaW5nLCBhbnk+ID0gbmV3IE1hcCgpO1xuICBwcml2YXRlIHN0YXRlQ2hhbmdlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG5cbiAgICAvLyBCaW5kIG1ldGhvZHMgb25jZSBpbiBjb25zdHJ1Y3RvciBmb3IgYmV0dGVyIHBlcmZvcm1hbmNlXG4gICAgdGhpcy5hZGRNaWRkbGV3YXJlID0gdGhpcy5hZGRNaWRkbGV3YXJlLmJpbmQodGhpcyk7XG4gICAgdGhpcy5hZGRTdG9yZXMgPSB0aGlzLmFkZFN0b3Jlcy5iaW5kKHRoaXMpO1xuICAgIHRoaXMuY2xlYXJBcHBEYXRhID0gdGhpcy5jbGVhckFwcERhdGEuYmluZCh0aGlzKTtcbiAgICB0aGlzLmNsZWFyTWlkZGxld2FyZSA9IHRoaXMuY2xlYXJNaWRkbGV3YXJlLmJpbmQodGhpcyk7XG4gICAgdGhpcy5kZXJlZ2lzdGVyID0gdGhpcy5kZXJlZ2lzdGVyLmJpbmQodGhpcyk7XG4gICAgdGhpcy5kaXNwYXRjaCA9IHRoaXMuZGlzcGF0Y2guYmluZCh0aGlzKTtcbiAgICB0aGlzLmdldE9wdGlvbnMgPSB0aGlzLmdldE9wdGlvbnMuYmluZCh0aGlzKTtcbiAgICB0aGlzLmdldFN0YXRlID0gdGhpcy5nZXRTdGF0ZS5iaW5kKHRoaXMpO1xuICAgIHRoaXMuZ2V0U3RvcmUgPSB0aGlzLmdldFN0b3JlLmJpbmQodGhpcyk7XG4gICAgdGhpcy5pbml0ID0gdGhpcy5pbml0LmJpbmQodGhpcyk7XG4gICAgdGhpcy5vZmYgPSB0aGlzLm9mZi5iaW5kKHRoaXMpO1xuICAgIHRoaXMucmVnaXN0ZXIgPSB0aGlzLnJlZ2lzdGVyLmJpbmQodGhpcyk7XG4gICAgdGhpcy5yZW1vdmVNaWRkbGV3YXJlID0gdGhpcy5yZW1vdmVNaWRkbGV3YXJlLmJpbmQodGhpcyk7XG4gICAgdGhpcy5yZW1vdmVTdG9yZXMgPSB0aGlzLnJlbW92ZVN0b3Jlcy5iaW5kKHRoaXMpO1xuICAgIHRoaXMucmVzZXQgPSB0aGlzLnJlc2V0LmJpbmQodGhpcyk7XG4gICAgdGhpcy5zZXRTdGF0ZSA9IHRoaXMuc2V0U3RhdGUuYmluZCh0aGlzKTtcblxuICAgIHRoaXMucGx1Z2luVHlwZXMuZm9yRWFjaCgodHlwZTogc3RyaW5nKSA9PiB0aGlzLm1pZGRsZXdhcmVbYCR7dHlwZX1MaXN0YF0gPSBbXSk7XG4gIH1cblxuICBhZGRNaWRkbGV3YXJlKG1pZGRsZXdhcmU6IEZsdXhNaWRkbGV3YXJlVHlwZVtdKTogdm9pZCB7XG4gICAgbWlkZGxld2FyZS5mb3JFYWNoKChtaWRkbGVPYmo6IEZsdXhNaWRkbGV3YXJlVHlwZSkgPT4ge1xuICAgICAgaWYoIW1pZGRsZU9iaiB8fCAodHlwZW9mIG1pZGRsZU9iaiAhPT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgbWlkZGxlT2JqICE9PSAnb2JqZWN0JykpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoJ1Vua25vd24gbWlkZGxld2FyZSBpcyBub3QgY29uZmlndXJlZCBwcm9wZXJseS4gQ2Fubm90IGFkZCB0byBGbHV4LicpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBtaWRkbGVOYW1lOiBzdHJpbmcgPSBtaWRkbGVPYmoubmFtZSB8fCAnJztcbiAgICAgIGlmKCFtaWRkbGVOYW1lKSB7XG4gICAgICAgIHRocm93IEVycm9yKCdVbmtub3duIG1pZGRsZXdhcmUgaXMgbm90IGNvbmZpZ3VyZWQgcHJvcGVybHkuIFJlcXVpcmVzIG5hbWUgcHJvcGVydHkuIENhbm5vdCBhZGQgdG8gRmx1eC4nKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZXhpc3RpbmdNaWRkbGV3YXJlID0gdGhpcy5taWRkbGV3YXJlLnByZURpc3BhdGNoTGlzdD8uZmluZCgobSkgPT4gbS5uYW1lID09PSBtaWRkbGVOYW1lKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1pZGRsZXdhcmUucG9zdERpc3BhdGNoTGlzdD8uZmluZCgobSkgPT4gbS5uYW1lID09PSBtaWRkbGVOYW1lKTtcblxuICAgICAgaWYoZXhpc3RpbmdNaWRkbGV3YXJlKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgIGNvbnNvbGUud2FybihgTWlkZGxld2FyZSBcIiR7bWlkZGxlTmFtZX1cIiBhbHJlYWR5IGV4aXN0cy4gU2tpcHBpbmcgZHVwbGljYXRlLmApO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRoaXMucGx1Z2luVHlwZXMuZm9yRWFjaCgodHlwZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IG1ldGhvZCA9IG1pZGRsZU9ialt0eXBlIGFzIGtleW9mIEZsdXhNaWRkbGV3YXJlVHlwZV07XG4gICAgICAgIGlmKG1ldGhvZCAmJiB0eXBlb2YgbWV0aG9kID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgY29uc3QgcGx1Z2luOiBGbHV4UGx1Z2luVHlwZSA9IHttZXRob2QsIG5hbWU6IG1pZGRsZU5hbWV9O1xuICAgICAgICAgIHRoaXMubWlkZGxld2FyZVtgJHt0eXBlfUxpc3RgXSA9IHRoaXMuYWRkUGx1Z2luKHR5cGUsIHBsdWdpbik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgY2xlYXJBcHBEYXRhKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIE9iamVjdC5rZXlzKHRoaXMuc3RvcmVBY3Rpb25zKS5mb3JFYWNoKChzdG9yZU5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3Qgc3RvcmVGbiA9IHRoaXMuc3RvcmVBY3Rpb25zW3N0b3JlTmFtZV07XG4gICAgICBpZihzdG9yZUZuKSB7XG4gICAgICAgIHRoaXMuc3RhdGVbc3RvcmVGbi5uYW1lXSA9IHN0b3JlRm4uaW5pdGlhbFN0YXRlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5zdGF0ZUNhY2hlLmNsZWFyKCk7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZWQgPSB0cnVlO1xuXG4gICAgY29uc3Qge25hbWUsIHN0b3JhZ2V9ID0gdGhpcy5vcHRpb25zO1xuICAgIGlmKHN0b3JhZ2U/LnNldFN0b3JhZ2VEYXRhKSB7XG4gICAgICByZXR1cm4gc3RvcmFnZS5zZXRTdG9yYWdlRGF0YShuYW1lID8/ICdhcmtoYW1qcycsIHRoaXMuc3RhdGUpO1xuICAgIH1cblxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodHJ1ZSk7XG4gIH1cblxuICBjbGVhck1pZGRsZXdhcmUoKTogYm9vbGVhbiB7XG4gICAgT2JqZWN0LmtleXModGhpcy5taWRkbGV3YXJlKS5mb3JFYWNoKChwbHVnaW5UeXBlOiBzdHJpbmcpID0+IHtcbiAgICAgIHRoaXMubWlkZGxld2FyZVtwbHVnaW5UeXBlXSA9IFtdO1xuICAgIH0pO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcmVtb3ZlU3RvcmVzKHN0b3JlTmFtZXM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgc3RvcmVOYW1lcy5mb3JFYWNoKChuYW1lOiBzdHJpbmcpID0+IHRoaXMuZGVyZWdpc3RlcihuYW1lKSk7XG4gIH1cblxuICBhc3luYyBkaXNwYXRjaChhY3Rpb246IEZsdXhBY3Rpb24sIHNpbGVudDogYm9vbGVhbiA9IGZhbHNlKTogUHJvbWlzZTxGbHV4QWN0aW9uPiB7XG4gICAgaWYoIWFjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBcmtoYW1KUyBFcnJvcjogRmx1eC5kaXNwYXRjaCByZXF1aXJlcyBhbiBhY3Rpb24uJyk7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RhcnRUaW1lOiBudW1iZXIgPSBEYXRlLm5vdygpO1xuXG4gICAgbGV0IGNsb25lZEFjdGlvbjogRmx1eEFjdGlvbiA9IGNsb25lRGVlcChhY3Rpb24pO1xuXG4gICAgbGV0IHN0YWNrOiBhbnlbXSA9IFtdO1xuICAgIGlmKHRoaXMub3B0aW9ucy5kZWJ1Zykge1xuICAgICAgc3RhY2sgPSB0aGlzLmdldENhY2hlZFN0YWNrKCk7XG4gICAgfVxuXG4gICAgY29uc3QgYXBwSW5mbyA9IHtcbiAgICAgIGR1cmF0aW9uOiAwLFxuICAgICAgb3B0aW9uczogdGhpcy5vcHRpb25zLFxuICAgICAgc3RhY2tcbiAgICB9O1xuXG4gICAgY29uc3Qge3Bvc3REaXNwYXRjaExpc3QgPSBbXSwgcHJlRGlzcGF0Y2hMaXN0ID0gW119ID0gdGhpcy5taWRkbGV3YXJlO1xuXG4gICAgaWYocHJlRGlzcGF0Y2hMaXN0Lmxlbmd0aCkge1xuICAgICAgY2xvbmVkQWN0aW9uID0gYXdhaXQgdGhpcy5wcm9jZXNzTWlkZGxld2FyZShwcmVEaXNwYXRjaExpc3QsIGNsb25lZEFjdGlvbiwgYXBwSW5mbyk7XG4gICAgfVxuXG4gICAgY29uc3Qge3R5cGUsIC4uLmRhdGF9ID0gY2xvbmVkQWN0aW9uO1xuXG4gICAgaWYoIXR5cGUgfHwgdHlwZSA9PT0gJycpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlLndhcm4oJ0Fya2hhbUpTIFdhcm5pbmc6IEZsdXguZGlzcGF0Y2ggaXMgbWlzc2luZyBhbiBhY3Rpb24gdHlwZSBmb3IgdGhlIHBheWxvYWQ6JywgZGF0YSk7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGNsb25lZEFjdGlvbik7XG4gICAgfVxuXG4gICAgdGhpcy51cGRhdGVTdG9yZXNTdGF0ZSh0eXBlLCBkYXRhKTtcblxuICAgIGlmKHRoaXMuc3RhdGVDaGFuZ2VkICYmIHRoaXMub3B0aW9ucy5zdG9yYWdlICYmIHRoaXMudXBkYXRlU3RvcmFnZSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgdGhpcy51cGRhdGVTdG9yYWdlKCk7XG4gICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VkID0gZmFsc2U7XG4gICAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ1N0b3JhZ2UgdXBkYXRlIGZhaWxlZDonLCBlcnJvcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZHVyYXRpb246IG51bWJlciA9IERhdGUubm93KCkgLSBzdGFydFRpbWU7XG4gICAgYXBwSW5mby5kdXJhdGlvbiA9IGR1cmF0aW9uO1xuXG4gICAgaWYocG9zdERpc3BhdGNoTGlzdC5sZW5ndGgpIHtcbiAgICAgIGNsb25lZEFjdGlvbiA9IGF3YWl0IHRoaXMucHJvY2Vzc01pZGRsZXdhcmUocG9zdERpc3BhdGNoTGlzdCwgY2xvbmVkQWN0aW9uLCBhcHBJbmZvKTtcbiAgICB9XG5cbiAgICBpZighc2lsZW50KSB7XG4gICAgICB0aGlzLmVtaXQodHlwZSwgY2xvbmVkQWN0aW9uKTtcbiAgICAgIHRoaXMuZW1pdCgnYXJraGFtanMnLCB0aGlzLnN0YXRlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGNsb25lZEFjdGlvbik7XG4gIH1cblxuICBnZXRPcHRpb25zKCk6IEZsdXhPcHRpb25zIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zO1xuICB9XG5cbiAgZ2V0U3RhdGU8VCA9IHVua25vd24+KHBhdGg6IHN0cmluZyB8IHN0cmluZ1tdID0gJycsIGRlZmF1bHRWYWx1ZT86IFQpOiBUIHtcbiAgICBjb25zdCBwYXRoS2V5ID0gQXJyYXkuaXNBcnJheShwYXRoKSA/IHBhdGguam9pbignLicpIDogcGF0aDtcblxuICAgIGlmKHRoaXMuc3RhdGVDYWNoZS5oYXMocGF0aEtleSkpIHtcbiAgICAgIHJldHVybiB0aGlzLnN0YXRlQ2FjaGUuZ2V0KHBhdGhLZXkpIGFzIFQ7XG4gICAgfVxuXG4gICAgbGV0IHN0b3JlVmFsdWU6IHVua25vd247XG4gICAgaWYoIXBhdGgpIHtcbiAgICAgIHN0b3JlVmFsdWUgPSB0aGlzLnN0YXRlIHx8IHt9O1xuICAgIH0gZWxzZSB7XG4gICAgICBzdG9yZVZhbHVlID0gZ2V0KHRoaXMuc3RhdGUsIHBhdGgpO1xuICAgIH1cblxuICAgIGNvbnN0IHZhbHVlID0gc3RvcmVWYWx1ZSA/IGNsb25lRGVlcChzdG9yZVZhbHVlKSA6IHN0b3JlVmFsdWU7XG4gICAgY29uc3QgcmVzdWx0ID0gdmFsdWUgPT09IHVuZGVmaW5lZCA/IGRlZmF1bHRWYWx1ZSA6IHZhbHVlO1xuXG4gICAgdGhpcy5zdGF0ZUNhY2hlLnNldChwYXRoS2V5LCByZXN1bHQpO1xuXG4gICAgcmV0dXJuIHJlc3VsdCBhcyBUO1xuICB9XG5cbiAgZ2V0U3RvcmUobmFtZTogc3RyaW5nID0gJycpOiBGbHV4U3RvcmUgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnN0b3JlQWN0aW9uc1tuYW1lXTtcbiAgfVxuXG4gIGFzeW5jIGluaXQob3B0aW9uczogRmx1eE9wdGlvbnMgPSB7fSwgcmVzZXQ6IGJvb2xlYW4gPSBmYWxzZSk6IFByb21pc2U8Rmx1eEZyYW1ld29yaz4ge1xuICAgIGlmKHJlc2V0KSB7XG4gICAgICB0aGlzLmlzSW5pdCA9IGZhbHNlO1xuICAgICAgYXdhaXQgdGhpcy5yZXNldChmYWxzZSk7XG4gICAgfVxuXG4gICAgY29uc3QgdXBkYXRlZE9wdGlvbnMgPSB7Li4ub3B0aW9uc307XG4gICAgaWYodGhpcy5pc0luaXQgJiYgdGhpcy5vcHRpb25zLm5hbWUpIHtcbiAgICAgIHVwZGF0ZWRPcHRpb25zLm5hbWUgPSB0aGlzLm9wdGlvbnMubmFtZTtcbiAgICB9XG5cbiAgICB0aGlzLm9wdGlvbnMgPSB7Li4udGhpcy5kZWZhdWx0T3B0aW9ucywgLi4udXBkYXRlZE9wdGlvbnN9O1xuICAgIGNvbnN0IHtkZWJ1ZywgbWlkZGxld2FyZSwgbmFtZSwgc3RvcmVzfSA9IHRoaXMub3B0aW9ucztcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLnVzZVN0b3JhZ2UobmFtZSA/PyAnYXJraGFtanMnKTtcbiAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgY29uc29sZS5lcnJvcignQXJraGFtIEVycm9yOiBUaGVyZSB3YXMgYW4gZXJyb3Igd2hpbGUgdXNpbmcgc3RvcmFnZS4nLCBuYW1lKTtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cblxuICAgIGlmKHN0b3Jlcz8ubGVuZ3RoKSB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCB0aGlzLmFkZFN0b3JlcyhzdG9yZXMpO1xuICAgICAgfSBjYXRjaChlcnJvcikge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICBjb25zb2xlLmVycm9yKCdBcmtoYW0gRXJyb3I6IFRoZXJlIHdhcyBhbiBlcnJvciB3aGlsZSBhZGRpbmcgc3RvcmVzLicsIHN0b3Jlcyk7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmKG1pZGRsZXdhcmU/Lmxlbmd0aCkge1xuICAgICAgdGhpcy5hZGRNaWRkbGV3YXJlKG1pZGRsZXdhcmUpO1xuICAgIH1cblxuICAgIGNvbnN0IHdpbmRvd1Byb3BlcnR5OiBzdHJpbmcgPSAnYXJraGFtanMnO1xuICAgIGlmKGRlYnVnKSB7XG4gICAgICAod2luZG93IGFzIGFueSlbd2luZG93UHJvcGVydHldID0gdGhpcztcbiAgICB9IGVsc2Uge1xuICAgICAgZGVsZXRlICh3aW5kb3cgYXMgYW55KVt3aW5kb3dQcm9wZXJ0eV07XG4gICAgfVxuXG4gICAgdGhpcy5pc0luaXQgPSB0cnVlO1xuICAgIHRoaXMuZW1pdChBcmtoYW1Db25zdGFudHMuSU5JVCk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIG9uSW5pdChsaXN0ZW5lcjogKC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vbihBcmtoYW1Db25zdGFudHMuSU5JVCwgbGlzdGVuZXIpO1xuXG4gICAgaWYodGhpcy5pc0luaXQpIHtcbiAgICAgIGxpc3RlbmVyKCk7XG4gICAgfVxuICB9XG5cbiAgb2ZmSW5pdChsaXN0ZW5lcjogKC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vZmYoQXJraGFtQ29uc3RhbnRzLklOSVQsIGxpc3RlbmVyKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG9mZihldmVudFR5cGU6IHN0cmluZywgbGlzdGVuZXI6ICguLi5hcmdzOiBhbnlbXSkgPT4gdm9pZCk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLnJlbW92ZUxpc3RlbmVyKGV2ZW50VHlwZSwgbGlzdGVuZXIpO1xuICB9XG5cbiAgb3ZlcnJpZGUgb24oZXZlbnRUeXBlOiBzdHJpbmcsIGxpc3RlbmVyOiAoLi4uYXJnczogYW55W10pID0+IHZvaWQpOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5hZGRMaXN0ZW5lcihldmVudFR5cGUsIGxpc3RlbmVyKTtcbiAgfVxuXG4gIGFzeW5jIGFkZFN0b3JlcyhzdG9yZXM6IEZsdXhTdG9yZVtdKTogUHJvbWlzZTxGbHV4U3RvcmVbXT4ge1xuICAgIGNvbnN0IHJlZ2lzdGVyZWRTdG9yZXM6IEZsdXhTdG9yZVtdID0gc3RvcmVzLm1hcCgoc3RvcmU6IEZsdXhTdG9yZSkgPT4gdGhpcy5yZWdpc3RlcihzdG9yZSkpO1xuICAgIGNvbnN0IHtuYW1lLCBzdG9yYWdlfSA9IHRoaXMub3B0aW9ucztcblxuICAgIGlmKHN0b3JhZ2U/LnNldFN0b3JhZ2VEYXRhKSB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBzdG9yYWdlLnNldFN0b3JhZ2VEYXRhKG5hbWUgPz8gJ2Fya2hhbWpzJywgdGhpcy5zdGF0ZSk7XG4gICAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZWdpc3RlcmVkU3RvcmVzO1xuICB9XG5cbiAgcmVtb3ZlTWlkZGxld2FyZShuYW1lczogc3RyaW5nW10pOiB2b2lkIHtcbiAgICBuYW1lcy5mb3JFYWNoKChuYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgIHRoaXMucGx1Z2luVHlwZXMuZm9yRWFjaCgodHlwZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIHRoaXMubWlkZGxld2FyZVtgJHt0eXBlfUxpc3RgXSA9IHRoaXMucmVtb3ZlUGx1Z2luKHR5cGUsIG5hbWUpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyByZXNldChjbGVhclN0b3JhZ2U6IGJvb2xlYW4gPSB0cnVlKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3Qge25hbWUsIHN0b3JhZ2V9ID0gdGhpcy5vcHRpb25zO1xuXG4gICAgaWYoc3RvcmFnZSAmJiBjbGVhclN0b3JhZ2UpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHN0b3JhZ2Uuc2V0U3RvcmFnZURhdGE/LihuYW1lID8/ICdhcmtoYW1qcycsIHt9KTtcbiAgICAgIH0gY2F0Y2goZXJyb3IpIHtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5taWRkbGV3YXJlID0ge307XG4gICAgdGhpcy5vcHRpb25zID0gey4uLnRoaXMuZGVmYXVsdE9wdGlvbnN9O1xuICAgIHRoaXMuc3RhdGUgPSB7fTtcbiAgICB0aGlzLnN0b3JlQWN0aW9ucyA9IHt9O1xuICAgIHRoaXMuc3RhdGVDYWNoZS5jbGVhcigpO1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VkID0gZmFsc2U7XG4gICAgdGhpcy5pc0luaXQgPSBmYWxzZTtcblxuICAgIHRoaXMucGx1Z2luVHlwZXMuZm9yRWFjaCgodHlwZTogc3RyaW5nKSA9PiB0aGlzLm1pZGRsZXdhcmVbYCR7dHlwZX1MaXN0YF0gPSBbXSk7XG4gIH1cblxuICBzZXRTdGF0ZShwYXRoOiBzdHJpbmcgfCBzdHJpbmdbXSA9ICcnLCB2YWx1ZTogdW5rbm93bik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGlmKHBhdGgpIHtcbiAgICAgIHRoaXMuc3RhdGUgPSBzZXQodGhpcy5zdGF0ZSwgcGF0aCwgY2xvbmVEZWVwKHZhbHVlKSk7XG4gICAgICB0aGlzLnN0YXRlQ2hhbmdlZCA9IHRydWU7XG5cbiAgICAgIGNvbnN0IHBhdGhLZXkgPSBBcnJheS5pc0FycmF5KHBhdGgpID8gcGF0aC5qb2luKCcuJykgOiBwYXRoO1xuICAgICAgdGhpcy5zdGF0ZUNhY2hlLmRlbGV0ZShwYXRoS2V5KTtcbiAgICB9XG5cbiAgICBpZih0aGlzLm9wdGlvbnMuc3RvcmFnZSAmJiB0aGlzLnVwZGF0ZVN0b3JhZ2UpIHtcbiAgICAgIHJldHVybiB0aGlzLnVwZGF0ZVN0b3JhZ2UoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGZhbHNlKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcHJvY2Vzc01pZGRsZXdhcmUoXG4gICAgbWlkZGxld2FyZUxpc3Q6IEZsdXhQbHVnaW5UeXBlW10sXG4gICAgYWN0aW9uOiBGbHV4QWN0aW9uLFxuICAgIGFwcEluZm86IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gICk6IFByb21pc2U8Rmx1eEFjdGlvbj4ge1xuICAgIHJldHVybiBQcm9taXNlXG4gICAgICAuYWxsKFxuICAgICAgICBtaWRkbGV3YXJlTGlzdC5tYXAoKHBsdWdpbjogRmx1eFBsdWdpblR5cGUpID0+XG4gICAgICAgICAgcGx1Z2luLm1ldGhvZChjbG9uZURlZXAoYWN0aW9uKSwgY2xvbmVEZWVwKHRoaXMuc3RhdGUpLCBhcHBJbmZvKVxuICAgICAgICApXG4gICAgICApXG4gICAgICAudGhlbihcbiAgICAgICAgKGFjdGlvbnMpID0+IGFjdGlvbnMucmVkdWNlKCh1cGRhdGVkQWN0aW9uLCBhY3Rpb24pID0+XG4gICAgICAgICAgbWVyZ2UodXBkYXRlZEFjdGlvbiwgYWN0aW9uKSwgYWN0aW9uKSBhcyBGbHV4QWN0aW9uXG4gICAgICApXG4gICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVN0b3JhZ2U6ICgpID0+IFByb21pc2U8Ym9vbGVhbj4gPSAoKSA9PiBQcm9taXNlLnJlc29sdmUoZmFsc2UpO1xuXG4gIHByaXZhdGUgdXBkYXRlU3RvcmVzU3RhdGUodHlwZTogc3RyaW5nLCBkYXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IHZvaWQge1xuICAgIE9iamVjdC5rZXlzKHRoaXMuc3RvcmVBY3Rpb25zKS5mb3JFYWNoKChzdG9yZU5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3Qgc3RvcmVGbiA9IHRoaXMuc3RvcmVBY3Rpb25zW3N0b3JlTmFtZV07XG4gICAgICBpZihzdG9yZUZuKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRTdGF0ZSA9IHRoaXMuc3RhdGVbc3RvcmVOYW1lXSB8fCBzdG9yZUZuLmluaXRpYWxTdGF0ZSB8fCB7fTtcblxuICAgICAgICBjb25zdCBuZXdTdGF0ZSA9IHN0b3JlRm4uYWN0aW9uKHR5cGUsIGRhdGEsIGN1cnJlbnRTdGF0ZSk7XG4gICAgICAgIGlmKG5ld1N0YXRlICE9PSBjdXJyZW50U3RhdGUpIHtcbiAgICAgICAgICB0aGlzLnN0YXRlW3N0b3JlTmFtZV0gPSBjbG9uZURlZXAobmV3U3RhdGUpIHx8IGN1cnJlbnRTdGF0ZTtcbiAgICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2FjaGVkU3RhY2soKTogdW5rbm93bltdIHtcbiAgICBjb25zdCBjYWNoZUtleSA9IG5ldyBFcnJvcigpLnN0YWNrPy5zcGxpdCgnXFxuJylbMl0gfHwgJyc7XG5cbiAgICBpZihTVEFDS19DQUNIRS5oYXMoY2FjaGVLZXkpKSB7XG4gICAgICByZXR1cm4gU1RBQ0tfQ0FDSEUuZ2V0KGNhY2hlS2V5KSE7XG4gICAgfVxuXG4gICAgbGV0IHN0YWNrOiB1bmtub3duW10gPSBbXTtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgc3RhY2tQcm9wZXJ0eSA9ICdzdGFja1RyYWNlTGltaXQnO1xuICAgICAgY29uc3Qgb3JpZ2luYWxMaW1pdCA9IChFcnJvciBhcyBhbnkpLnN0YWNrVHJhY2VMaW1pdDtcbiAgICAgIChFcnJvciBhcyBhbnkpW3N0YWNrUHJvcGVydHldID0gSW5maW5pdHk7XG4gICAgICBzdGFjayA9IHBhcnNlU3RhY2sobmV3IEVycm9yKCkpO1xuICAgICAgKEVycm9yIGFzIGFueSlbc3RhY2tQcm9wZXJ0eV0gPSBvcmlnaW5hbExpbWl0O1xuXG4gICAgICBpZihTVEFDS19DQUNIRS5zaXplID49IFNUQUNLX0NBQ0hFX1NJWkUpIHtcbiAgICAgICAgY29uc3QgZmlyc3RLZXkgPSBTVEFDS19DQUNIRS5rZXlzKCkubmV4dCgpLnZhbHVlO1xuICAgICAgICBpZihmaXJzdEtleSkge1xuICAgICAgICAgIFNUQUNLX0NBQ0hFLmRlbGV0ZShmaXJzdEtleSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIFNUQUNLX0NBQ0hFLnNldChjYWNoZUtleSwgc3RhY2spO1xuICAgIH0gY2F0Y2goZXJyb3IpIHtcbiAgICB9XG5cbiAgICByZXR1cm4gc3RhY2s7XG4gIH1cblxuICBwcml2YXRlIGFkZFBsdWdpbih0eXBlOiBzdHJpbmcsIHBsdWdpbjogRmx1eFBsdWdpblR5cGUpOiBGbHV4UGx1Z2luVHlwZVtdIHtcbiAgICBjb25zdCBsaXN0ID0gdGhpcy5taWRkbGV3YXJlW2Ake3R5cGV9TGlzdGBdIHx8IFtdO1xuICAgIGNvbnN0IHttZXRob2QsIG5hbWV9ID0gcGx1Z2luO1xuXG4gICAgaWYobWV0aG9kICYmIHR5cGVvZiBtZXRob2QgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGNvbnN0IGV4aXN0czogYm9vbGVhbiA9IGxpc3Quc29tZSgob2JqOiBGbHV4UGx1Z2luVHlwZSkgPT4gb2JqLm5hbWUgPT09IG5hbWUpO1xuICAgICAgaWYoIWV4aXN0cykge1xuICAgICAgICBsaXN0LnB1c2goe21ldGhvZCwgbmFtZX0pO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZihtZXRob2QgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgRXJyb3IoYCR7cGx1Z2luLm5hbWV9IG1pZGRsZXdhcmUgaXMgbm90IGNvbmZpZ3VyZWQgcHJvcGVybHkuIE1ldGhvZCBpcyBub3QgYSBmdW5jdGlvbi5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbGlzdDtcbiAgfVxuXG4gIHByaXZhdGUgZGVyZWdpc3RlcihuYW1lOiBzdHJpbmcgPSAnJyk6IHZvaWQge1xuICAgIGRlbGV0ZSB0aGlzLnN0b3JlQWN0aW9uc1tuYW1lXTtcbiAgICBkZWxldGUgdGhpcy5zdGF0ZVtuYW1lXTtcbiAgICB0aGlzLnN0YXRlQ2FjaGUuY2xlYXIoKTsgLy8gQ2xlYXIgY2FjaGUgd2hlbiBzdG9yZXMgY2hhbmdlXG4gIH1cblxuICBwcml2YXRlIHJlZ2lzdGVyKHN0b3JlOiBhbnkpOiBGbHV4U3RvcmUge1xuICAgIGlmKCFzdG9yZSkge1xuICAgICAgdGhyb3cgRXJyb3IoJ1N0b3JlIGlzIHVuZGVmaW5lZC4gQ2Fubm90IHJlZ2lzdGVyIHdpdGggRmx1eC4nKTtcbiAgICB9XG5cbiAgICBsZXQgc3RvcmVOYW1lOiBzdHJpbmc7XG4gICAgbGV0IHN0b3JlQWN0aW9uOiAodHlwZTogc3RyaW5nLCBkYXRhOiB1bmtub3duLCBzdGF0ZTogdW5rbm93bikgPT4gdW5rbm93bjtcbiAgICBsZXQgaW5pdGlhbFN0YXRlOiB1bmtub3duO1xuXG4gICAgaWYodHlwZW9mIHN0b3JlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAvLyBGdW5jdGlvbiBzdG9yZSAtIGV4dHJhY3QgbmFtZSBmcm9tIGZ1bmN0aW9uLm5hbWVcbiAgICAgIHN0b3JlTmFtZSA9IHN0b3JlLm5hbWUgfHwgJ2Fub255bW91cyc7XG4gICAgICBzdG9yZUFjdGlvbiA9IHN0b3JlO1xuICAgICAgaW5pdGlhbFN0YXRlID0gc3RvcmUoKTtcbiAgICB9IGVsc2UgaWYodHlwZW9mIHN0b3JlPy5hY3Rpb24gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIC8vIE9iamVjdCBzdG9yZSB3aXRoIGFjdGlvbiBtZXRob2RcbiAgICAgIHN0b3JlTmFtZSA9IHN0b3JlLm5hbWUgfHwgJ2Fub255bW91cyc7XG4gICAgICBzdG9yZUFjdGlvbiA9IHN0b3JlLmFjdGlvbjtcbiAgICAgIGluaXRpYWxTdGF0ZSA9IHN0b3JlLmluaXRpYWxTdGF0ZSB8fCBzdG9yZS5hY3Rpb24oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgRXJyb3IoYCR7c3RvcmV9IGlzIG5vdCBhIHZhbGlkIHN0b3JlLiBNdXN0IGJlIGEgZnVuY3Rpb24gb3Igb2JqZWN0IHdpdGggYWN0aW9uIG1ldGhvZC5gKTtcbiAgICB9XG5cbiAgICBpZighc3RvcmVOYW1lIHx8IHN0b3JlTmFtZSA9PT0gJ2Fub255bW91cycpIHtcbiAgICAgIC8vIFNpbGVudGx5IGlnbm9yZSBhbm9ueW1vdXMgc3RvcmVzIC0gcmV0dXJuIHVuZGVmaW5lZFxuICAgICAgcmV0dXJuIHVuZGVmaW5lZCBhcyBhbnk7XG4gICAgfVxuXG4gICAgY29uc3QgZmx1eFN0b3JlOiBGbHV4U3RvcmUgPSB7XG4gICAgICBhY3Rpb246IHN0b3JlQWN0aW9uLFxuICAgICAgaW5pdGlhbFN0YXRlLFxuICAgICAgbmFtZTogc3RvcmVOYW1lXG4gICAgfTtcblxuICAgIGlmKCF0aGlzLnN0b3JlQWN0aW9uc1tzdG9yZU5hbWVdKSB7XG4gICAgICB0aGlzLnN0b3JlQWN0aW9uc1tzdG9yZU5hbWVdID0gZmx1eFN0b3JlO1xuXG4gICAgICBpZighdGhpcy5zdGF0ZVtzdG9yZU5hbWVdKSB7XG4gICAgICAgIHRoaXMuc3RhdGVbc3RvcmVOYW1lXSA9IGNsb25lRGVlcChpbml0aWFsU3RhdGUgfHwge30pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnN0b3JlQWN0aW9uc1tzdG9yZU5hbWVdITtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlUGx1Z2luKHR5cGU6IHN0cmluZywgbmFtZTogc3RyaW5nKTogRmx1eFBsdWdpblR5cGVbXSB7XG4gICAgY29uc3QgbGlzdCA9IHRoaXMubWlkZGxld2FyZVtgJHt0eXBlfUxpc3RgXSB8fCBbXTtcbiAgICByZXR1cm4gbGlzdC5maWx0ZXIoKG9iajogRmx1eFBsdWdpblR5cGUpID0+IG9iai5uYW1lICE9PSBuYW1lKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdXNlU3RvcmFnZShuYW1lOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7c3RvcmFnZSwgc3RhdGUsIHN0b3JhZ2VXYWl0fSA9IHRoaXMub3B0aW9ucztcblxuICAgIGlmKHN0b3JhZ2UpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBzdGF0ZSB8fCBhd2FpdCBzdG9yYWdlPy5nZXRTdG9yYWdlRGF0YT8uKG5hbWUpIHx8IHt9O1xuICAgICAgICB0aGlzLnVwZGF0ZVN0b3JhZ2UgPSBkZWJvdW5jZUNvbXBhY3QoXG4gICAgICAgICAgKCkgPT4gc3RvcmFnZT8uc2V0U3RvcmFnZURhdGE/LihuYW1lLCB0aGlzLnN0YXRlKSxcbiAgICAgICAgICBzdG9yYWdlV2FpdCA/PyAzMDBcbiAgICAgICAgKSBhcyBhbnk7XG4gICAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYEFya2hhbUpTIEVycm9yOiBVc2luZyBzdG9yYWdlLCBcIiR7bmFtZX1cIi5gKTtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3RhdGUgPSBzdGF0ZSB8fCB7fTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IEZsdXg6IEZsdXhGcmFtZXdvcmsgPSBuZXcgRmx1eEZyYW1ld29yaygpO1xuIl0sCiAgIm1hcHBpbmdzIjogIjtvS0FJQSxPQUFRLGFBQUFBLEVBQVcsbUJBQUFDLEVBQWlCLE9BQUFDLEVBQUssU0FBQUMsRUFBTyxjQUFBQyxFQUFZLE9BQUFDLE1BQVUsZUFDdEUsT0FBUSxnQkFBQUMsTUFBbUIsU0FFM0IsT0FBUSxtQkFBQUMsTUFBc0IsK0JBSTlCLE1BQU1DLEVBQWMsSUFBSSxJQUNsQkMsRUFBbUIsSUFFbEIsTUFBTUMsVUFBc0JDLENBQWEsQ0FxQjlDLGFBQWMsQ0FDWixNQUFNLEVBcEJSQyxFQUFBLGNBQWtCLElBRWxCQSxFQUFBLEtBQVMsY0FBaUMsQ0FBQyxjQUFlLGNBQWMsR0FFeEVBLEVBQUEsS0FBUSxRQUE2QixDQUFDLEdBQ3RDQSxFQUFBLEtBQVEsZUFBMEMsQ0FBQyxHQUNuREEsRUFBQSxLQUFpQixpQkFBOEIsQ0FDN0MsS0FBTSxXQUNOLFdBQVksVUFDWixZQUFhLEdBQ2IsWUFBYSxJQUNiLE9BQVEsQ0FBQyxFQUNULE1BQU8sVUFDVCxHQUNBQSxFQUFBLEtBQVEsYUFBK0MsQ0FBQyxHQUN4REEsRUFBQSxLQUFRLFVBQXVCLEtBQUssZ0JBQ3BDQSxFQUFBLEtBQVEsYUFBK0IsSUFBSSxLQUMzQ0EsRUFBQSxLQUFRLGVBQXdCLElBdVVoQ0EsRUFBQSxLQUFRLGdCQUF3QyxJQUFNLFFBQVEsUUFBUSxFQUFLLEdBalV6RSxLQUFLLGNBQWdCLEtBQUssY0FBYyxLQUFLLElBQUksRUFDakQsS0FBSyxVQUFZLEtBQUssVUFBVSxLQUFLLElBQUksRUFDekMsS0FBSyxhQUFlLEtBQUssYUFBYSxLQUFLLElBQUksRUFDL0MsS0FB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QUUzQixDQUNGLENBamVFL0QsRUFEV0YsRUFDSixXQUFvQixJQW1ldEIsTUFBTW9FLEVBQXNCLElBQUlwRSIsCiAgIm5hbWVzIjogWyJjbG9uZURlZXAiLCAiZGVib3VuY2VDb21wYWN0IiwgImdldCIsICJtZXJnZSIsICJwYXJzZVN0YWNrIiwgInNldCIsICJFdmVudEVtaXR0ZXIiLCAiQXJraGFtQ29uc3RhbnRzIiwgIlNUQUNLX0NBQ0hFIiwgIlNUQUNLX0NBQ0hFX1NJWkUiLCAiRmx1eEZyYW1ld29yayIsICJFdmVudEVtaXR0ZXIiLCAiX19wdWJsaWNGaWVsZCIsICJ0eXBlIiwgIm1pZGRsZXdhcmUiLCAibWlkZGxlT2JqIiwgIm1pZGRsZU5hbWUiLCAibSIsICJtZXRob2QiLCAicGx1Z2luIiwgInN0b3JlTmFtZSIsICJzdG9yZUZuIiwgIm5hbWUiLCAic3RvcmFnZSIsICJwbHVnaW5UeXBlIiwgInN0b3JlTmFtZXMiLCAiYWN0aW9uIiwgInNpbGVudCIsICJzdGFydFRpbWUiLCAiY2xvbmVkQWN0aW9uIiwgImNsb25lRGVlcCIsICJzdGFjayIsICJhcHBJbmZvIiwgInBvc3REaXNwYXRjaExpc3QiLCAicHJlRGlzcGF0Y2hMaXN0IiwgImRhdGEiLCAiZHVyYXRpb24iLCAicGF0aCIsICJkZWZhdWx0VmFsdWUiLCAicGF0aEtleSIsICJzdG9yZVZhbHVlIiwgImdldCIsICJ2YWx1ZSIsICJyZXN1bHQiLCAib3B0aW9ucyIsICJyZXNldCIsICJ1cGRhdGVkT3B0aW9ucyIsICJkZWJ1ZyIsICJzdG9yZXMiLCAiZXJyb3IiLCAid2luZG93UHJvcGVydHkiLCAiQXJraGFtQ29uc3RhbnRzIiwgImxpc3RlbmVyIiwgImV2ZW50VHlwZSIsICJyZWdpc3RlcmVkU3RvcmVzIiwgInN0b3JlIiwgIm5hbWVzIiwgImNsZWFyU3RvcmFnZSIsICJzZXQiLCAibWlkZGxld2FyZUxpc3QiLCAiYWN0aW9ucyIsICJ1cGRhdGVkQWN0aW9uIiwgIm1lcmdlIiwgImN1cnJlbnRTdGF0ZSIsICJuZXdTdGF0ZSIsICJjYWNoZUtleSIsICJzdGFja1Byb3BlcnR5IiwgIm9yaWdpbmFsTGltaXQiLCAicGFyc2VTdGFjayIsICJmaXJzdEtleSIsICJsaXN0IiwgIm9iaiIsICJzdG9yZUFjdGlvbiIsICJpbml0aWFsU3RhdGUiLCAiZmx1eFN0b3JlIiwgInN0YXRlIiwgInN0b3JhZ2VXYWl0IiwgImRlYm91bmNlQ29tcGFjdCIsICJGbHV4Il0KfQo=
|
package/lib/Flux/Flux.types.js
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/* ArkhamJS - Optimized Build */
|
|
2
|
-
var t=Object.defineProperty;var r=(i,A,T)=>A in i?t(i,A,{enumerable:!0,configurable:!0,writable:!0,value:T}):i[A]=T;var _=(i,A,T)=>r(i,typeof A!="symbol"?A+"":A,T);class E{}_(E,"GO_BACK","ARKHAM_GO_BACK"),_(E,"GO_REPLACE","ARKHAM_GO_REPLACE"),_(E,"GOTO","ARKHAM_GOTO"),_(E,"INIT","ARKHAM_INIT"),_(E,"UPDATE_TITLE","ARKHAM_UPDATE_TITLE"),_(E,"UPDATE_VIEW","ARKHAM_UPDATE_VIEW");export{E as ArkhamConstants};
|
|
3
|
-
/* End ArkhamJS */
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2NvbnN0YW50cy9BcmtoYW1Db25zdGFudHMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5cbmV4cG9ydCBjbGFzcyBBcmtoYW1Db25zdGFudHMge1xuICBzdGF0aWMgcmVhZG9ubHkgR09fQkFDSzogc3RyaW5nID0gJ0FSS0hBTV9HT19CQUNLJztcbiAgc3RhdGljIHJlYWRvbmx5IEdPX1JFUExBQ0U6IHN0cmluZyA9ICdBUktIQU1fR09fUkVQTEFDRSc7XG4gIHN0YXRpYyByZWFkb25seSBHT1RPOiBzdHJpbmcgPSAnQVJLSEFNX0dPVE8nO1xuICBzdGF0aWMgcmVhZG9ubHkgSU5JVDogc3RyaW5nID0gJ0FSS0hBTV9JTklUJztcbiAgc3RhdGljIHJlYWRvbmx5IFVQREFURV9USVRMRTogc3RyaW5nID0gJ0FSS0hBTV9VUERBVEVfVElUTEUnO1xuICBzdGF0aWMgcmVhZG9ubHkgVVBEQVRFX1ZJRVc6IHN0cmluZyA9ICdBUktIQU1fVVBEQVRFX1ZJRVcnO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjtvS0FLTyxNQUFNQSxDQUFnQixDQU83QixDQU5FQyxFQURXRCxFQUNLLFVBQWtCLGtCQUNsQ0MsRUFGV0QsRUFFSyxhQUFxQixxQkFDckNDLEVBSFdELEVBR0ssT0FBZSxlQUMvQkMsRUFKV0QsRUFJSyxPQUFlLGVBQy9CQyxFQUxXRCxFQUtLLGVBQXVCLHVCQUN2Q0MsRUFOV0QsRUFNSyxjQUFzQiIsCiAgIm5hbWVzIjogWyJBcmtoYW1Db25zdGFudHMiLCAiX19wdWJsaWNGaWVsZCJdCn0K
|
package/lib/index.js
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/* ArkhamJS - Optimized Build */
|
|
2
|
-
import{ArkhamConstants as o}from"./constants/ArkhamConstants";import{Flux as t,FluxFramework as p}from"./Flux/Flux";export*from"./Flux/Flux.types";export{o as ArkhamConstants,t as Flux,p as FluxFramework};
|
|
3
|
-
/* End ArkhamJS */
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOC1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtBcmtoYW1Db25zdGFudHN9IGZyb20gJy4vY29uc3RhbnRzL0Fya2hhbUNvbnN0YW50cyc7XG5pbXBvcnQge0ZsdXgsIEZsdXhGcmFtZXdvcmt9IGZyb20gJy4vRmx1eC9GbHV4JztcblxuZXhwb3J0ICogZnJvbSAnLi9GbHV4L0ZsdXgudHlwZXMnO1xuZXhwb3J0IHtBcmtoYW1Db25zdGFudHMsIEZsdXgsIEZsdXhGcmFtZXdvcmt9O1xuIl0sCiAgIm1hcHBpbmdzIjogIjtBQUlBLE9BQVEsbUJBQUFBLE1BQXNCLDhCQUM5QixPQUFRLFFBQUFDLEVBQU0saUJBQUFDLE1BQW9CLGNBRWxDLFdBQWMiLAogICJuYW1lcyI6IFsiQXJraGFtQ29uc3RhbnRzIiwgIkZsdXgiLCAiRmx1eEZyYW1ld29yayJdCn0K
|