diff --git a/packages/@jsonql/client/package.json b/packages/@jsonql/client/package.json index 3adfaad0b732f4bb88231d658cf58995f2d9abf8..0807de539a71f188d2e147e48c6dfb8355686c07 100644 --- a/packages/@jsonql/client/package.json +++ b/packages/@jsonql/client/package.json @@ -49,15 +49,7 @@ }, "license": "MIT", "dependencies": { - "flyio": "^0.6.14", - "jsonql-constants": "^1.8.3", - "jsonql-errors": "^1.1.3", - "jsonql-jwt": "^1.3.2", - "jsonql-params-validator": "^1.4.11", - "jsonql-utils": "^0.6.10", - "lodash-es": "^4.17.15", - "nb-event-service": "^1.8.3", - "store": "^2.0.12" + }, "devDependencies": { "@jsonql/koa": "^0.2.6", diff --git a/packages/@jsonql/http-client/src/jsonql-utils.js b/packages/@jsonql/http-client/src/jsonql-utils.js index ed715d81f304ab72c48078a67d9da359d83553af..a6189da476e7d92b8349b1c17a127af70a967b0b 100644 --- a/packages/@jsonql/http-client/src/jsonql-utils.js +++ b/packages/@jsonql/http-client/src/jsonql-utils.js @@ -743,7 +743,7 @@ var inArray = function (arr, value) { return !!arr.filter(function (a) { return * @param {string} key target * @return {boolean} true on success */ -var isKeyInObject = function(obj, key) { +var isObjectHasKey = function(obj, key) { var keys = Object.keys(obj); return inArray(keys, key) }; @@ -1035,9 +1035,9 @@ var JsonqlError = /*@__PURE__*/(function (JsonqlBaseError) { function checkIsContract(contract) { return isPlainObject(contract) && ( - isKeyInObject(contract, QUERY_NAME) - || isKeyInObject(contract, MUTATION_NAME) - || isKeyInObject(contract, SOCKET_NAME) + isObjectHasKey(contract, QUERY_NAME) + || isObjectHasKey(contract, MUTATION_NAME) + || isObjectHasKey(contract, SOCKET_NAME) ) } @@ -1048,7 +1048,7 @@ function checkIsContract(contract) { * @return {object|boolean} false on failed */ function extractSocketPart(contract) { - if (isKeyInObject(contract, 'socket')) { + if (isObjectHasKey(contract, 'socket')) { return contract.socket; } return false; @@ -1355,7 +1355,7 @@ var packError = function(detail, className, statusCode, message) { * @return {object} strip the data part out, or if the error is presented */ var resultHandler = function (result) { return ( - (isKeyInObject(result, DATA_KEY) && !isKeyInObject(result, ERROR_KEY)) ? result[DATA_KEY] : result + (isObjectHasKey(result, DATA_KEY) && !isObjectHasKey(result, ERROR_KEY)) ? result[DATA_KEY] : result ); }; // exportfor ES modules @@ -1364,4 +1364,4 @@ var resultHandler = function (result) { return ( var isContract = checkIsContract; var VERSION = '0.6.9'; -export { VERSION, cacheBurst, cacheBurstUrl, chainFns, chainPromises, checkIsContract, createEvt, createMutation, createMutationStr, createQuery, createQueryStr, dasherize, extractArgsFromPayload, extractParamsFromContract, extractSocketPart, formatPayload, getCallMethod, getConfigValue, getMutationFromArgs, getMutationFromPayload, getNameFromPayload, getQueryFromArgs, getQueryFromPayload, groupByNamespace, inArray, injectToFn, isContract, isKeyInObject, isNotEmpty, objDefineProps, packError, packResult, resultHandler, timestamp, toPayload, urlParams }; +export { VERSION, cacheBurst, cacheBurstUrl, chainFns, chainPromises, checkIsContract, createEvt, createMutation, createMutationStr, createQuery, createQueryStr, dasherize, extractArgsFromPayload, extractParamsFromContract, extractSocketPart, formatPayload, getCallMethod, getConfigValue, getMutationFromArgs, getMutationFromPayload, getNameFromPayload, getQueryFromArgs, getQueryFromPayload, groupByNamespace, inArray, injectToFn, isContract, isObjectHasKey, isNotEmpty, objDefineProps, packError, packResult, resultHandler, timestamp, toPayload, urlParams }; diff --git a/packages/@jsonql/http-client/tests/fn.test.js b/packages/@jsonql/http-client/tests/fn.test.js index 3bcebfc21c3767bec1b3d62c088fd1a4080a0aff..c142e51599961336825c5971465a776fcc52a258 100644 --- a/packages/@jsonql/http-client/tests/fn.test.js +++ b/packages/@jsonql/http-client/tests/fn.test.js @@ -1,14 +1,14 @@ const test = require('ava') -const { isKeyInObject } = require('jsonql-params-validator') +const { isObjectHasKey } = require('jsonql-params-validator') -test('It should have isKeyInObject exported', t => { +test('It should have isObjectHasKey exported', t => { const obj = {query: false, mutation: null, auth: true} - t.true(isKeyInObject(obj, 'query')) - t.true(isKeyInObject(obj, 'mutation')) + t.true(isObjectHasKey(obj, 'query')) + t.true(isObjectHasKey(obj, 'mutation')) - t.false(isKeyInObject(obj, 'socket')) + t.false(isObjectHasKey(obj, 'socket')) }) diff --git a/packages/@jsonql/koa/src/contracts/helpers.js b/packages/@jsonql/koa/src/contracts/helpers.js index 48d9badd2d8fac085a88840975fbf1ce45d2815a..f05ffe5b424164076100e2ff57c240e945413c45 100644 --- a/packages/@jsonql/koa/src/contracts/helpers.js +++ b/packages/@jsonql/koa/src/contracts/helpers.js @@ -3,7 +3,7 @@ import { trim } from 'lodash' import { SHOW_CONTRACT_DESC_PARAM } from 'jsonql-constants' import { - isKeyInObject, + isObjectHasKey, getDebug, handleOutput, packResult, @@ -24,9 +24,9 @@ export const removeDesc = (showDesc, contract) => { let c = contract; for (let type in c) { for (let fn in c[type]) { - if (isKeyInObject(c[type][fn], 'description')) { + if (isObjectHasKey(c[type][fn], 'description')) { delete c[type][fn].description; - if (c[type][fn].returns && isKeyInObject(c[type][fn].returns, 'description')) { + if (c[type][fn].returns && isObjectHasKey(c[type][fn].returns, 'description')) { delete c[type][fn].returns.description; } } diff --git a/packages/@jsonql/koa/src/options/process-jwt-keys.js b/packages/@jsonql/koa/src/options/process-jwt-keys.js index ead53011bfc1bc9dc4c2a5320d491020179262a2..c8face1022a119082484555eee06ca9692c2480d 100644 --- a/packages/@jsonql/koa/src/options/process-jwt-keys.js +++ b/packages/@jsonql/koa/src/options/process-jwt-keys.js @@ -7,7 +7,7 @@ import _ from 'lodash' import fsx from 'fs-extra' import { jwtProcessKey } from './options' -import { isKeyInObject } from '../utils' +import { isObjectHasKey } from '../utils' import { isString } from 'jsonql-params-validator' /** @@ -38,7 +38,7 @@ const getKeysFromCache = (ctx, config) => { * @return {mixed} boolean on failed or object on success */ const getCreatedKeys = (ctx, config) => { - if (isKeyInObject(config, jwtProcessKey) && config[jwtProcessKey].then) { + if (isObjectHasKey(config, jwtProcessKey) && config[jwtProcessKey].then) { const { setter } = ctx.state.jsonql; return config[jwtProcessKey] .then( result => _.extend( config, _.mapValues(result, value => fsx.readFileSync(value) ) ) ) diff --git a/packages/@jsonql/koa/src/utils/index.js b/packages/@jsonql/koa/src/utils/index.js index 23ab40175e846828a5bd472b3e1d1e5340a509da..de5754550458abb8cfd05034b060fe4f3871d439 100644 --- a/packages/@jsonql/koa/src/utils/index.js +++ b/packages/@jsonql/koa/src/utils/index.js @@ -5,7 +5,7 @@ import { isObject, isArray } from 'jsonql-params-validator' import { getDebug } from './utils' import { - isKeyInObject, + isObjectHasKey, chainFns, inArray, headerParser, @@ -44,7 +44,7 @@ export { isObject, isArray, - isKeyInObject, + isObjectHasKey, chainFns, inArray, headerParser, diff --git a/packages/@jsonql/socketio/src/io/io-main-handler.js b/packages/@jsonql/socketio/src/io/io-main-handler.js index 341168929eba9eed604b135e08419bf08739856c..2ea6f1a7c2a3364782716ee5f9e992fc687c46ec 100644 --- a/packages/@jsonql/socketio/src/io/io-main-handler.js +++ b/packages/@jsonql/socketio/src/io/io-main-handler.js @@ -11,7 +11,7 @@ import { DATA_KEY, ON_READY_PROP_NAME } from 'jsonql-constants' -import { isKeyInObject } from 'jsonql-params-validator' +import { isObjectHasKey } from 'jsonql-params-validator' import { getDebug, createEvt, formatPayload } from '../utils' const debugFn = getDebug('io-main-handler') diff --git a/packages/@jsonql/ws/dist/jsonql-ws-client.cjs.js b/packages/@jsonql/ws/dist/jsonql-ws-client.cjs.js index 67093144e5a3a52b6ccad9ada0a2ffdc5b50ba42..5599426f05ef3a7d3455d30ad5a8a948d06a3048 100644 --- a/packages/@jsonql/ws/dist/jsonql-ws-client.cjs.js +++ b/packages/@jsonql/ws/dist/jsonql-ws-client.cjs.js @@ -1,2 +1,2 @@ -"use strict";function _interopDefault(e){return e&&"object"==typeof e&&"default"in e?e.default:e}var debug$2=_interopDefault(require("debug"));require("fs"),require("path");var WebSocket=_interopDefault(require("ws")),global$1="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},DATA_KEY="data",ERROR_KEY="error",JSONQL_PATH="jsonql",DEFAULT_TYPE="any",QUERY_NAME="query",MUTATION_NAME="mutation",SOCKET_NAME="socket",QUERY_ARG_NAME="args",KEY_WORD="continue",TYPE_KEY="type",OPTIONAL_KEY="optional",ENUM_KEY="enumv",ARGS_KEY="args",CHECKER_KEY="checker",ALIAS_KEY="alias",LOGIN_NAME="login",ISSUER_NAME=LOGIN_NAME,LOGOUT_NAME="logout",OR_SEPERATOR="|",STRING_TYPE="string",BOOLEAN_TYPE="boolean",ARRAY_TYPE="array",OBJECT_TYPE="object",NUMBER_TYPE="number",ARRAY_TYPE_LFT="array.<",ARRAY_TYPE_RGT=">",NO_ERROR_MSG="No message",NO_STATUS_CODE=-1,LOGIN_EVENT_NAME="__login__",LOGOUT_EVENT_NAME="__logout__",WS_REPLY_TYPE="__reply__",WS_EVT_NAME="__event__",WS_DATA_NAME="__data__",EMIT_REPLY_TYPE="emit",ACKNOWLEDGE_REPLY_TYPE="acknowledge",ERROR_TYPE="error",NSP_SET="nspSet",PUBLIC_NAMESPACE="publicNamespace",JS_WS_SOCKET_IO_NAME="socket.io",JS_WS_NAME="ws",ON_MESSAGE_PROP_NAME="onMessage",ON_RESULT_PROP_NAME="onResult",ON_ERROR_PROP_NAME="onError",ON_READY_PROP_NAME="onReady",ON_LOGIN_PROP_NAME="onLogin",SEND_MSG_PROP_NAME="send",NOT_LOGIN_ERR_MSG="NOT LOGIN",TOKEN_PARAM_NAME="token",SOCKET_IO=JS_WS_SOCKET_IO_NAME,MISSING_PROP_ERR="Missing property in contract!",EXPECT_FUNC_ERR="Expect a function!",EMIT_EVT=EMIT_REPLY_TYPE,UNKNOWN_RESULT="UKNNOWN RESULT!",MY_NAMESPACE="myNamespace";function isNull(e){return null===e}var freeGlobal="object"==typeof global$1&&global$1&&global$1.Object===Object&&global$1,freeSelf="object"==typeof self&&self&&self.Object===Object&&self,root=freeGlobal||freeSelf||Function("return this")(),Symbol=root.Symbol;function arrayMap(e,r){for(var t=-1,n=null==e?0:e.length,o=Array(n);++to?0:o+r),(t=t>o?o:t)<0&&(t+=o),o=r>t?0:t-r>>>0,r>>>=0;for(var a=Array(o);++n=n?e:baseSlice(e,r,t)}function baseFindIndex(e,r,t,n){for(var o=e.length,a=t+(n?1:-1);n?a--:++a-1;);return t}function charsStartIndex(e,r){for(var t=-1,n=e.length;++t-1;);return t}function asciiToArray(e){return e.split("")}var rsAstralRange="\\ud800-\\udfff",rsComboMarksRange="\\u0300-\\u036f",reComboHalfMarksRange="\\ufe20-\\ufe2f",rsComboSymbolsRange="\\u20d0-\\u20ff",rsComboRange=rsComboMarksRange+reComboHalfMarksRange+rsComboSymbolsRange,rsVarRange="\\ufe0e\\ufe0f",rsZWJ="\\u200d",reHasUnicode=RegExp("["+rsZWJ+rsAstralRange+rsComboRange+rsVarRange+"]");function hasUnicode(e){return reHasUnicode.test(e)}var rsAstralRange$1="\\ud800-\\udfff",rsComboMarksRange$1="\\u0300-\\u036f",reComboHalfMarksRange$1="\\ufe20-\\ufe2f",rsComboSymbolsRange$1="\\u20d0-\\u20ff",rsComboRange$1=rsComboMarksRange$1+reComboHalfMarksRange$1+rsComboSymbolsRange$1,rsVarRange$1="\\ufe0e\\ufe0f",rsAstral="["+rsAstralRange$1+"]",rsCombo="["+rsComboRange$1+"]",rsFitz="\\ud83c[\\udffb-\\udfff]",rsModifier="(?:"+rsCombo+"|"+rsFitz+")",rsNonAstral="[^"+rsAstralRange$1+"]",rsRegional="(?:\\ud83c[\\udde6-\\uddff]){2}",rsSurrPair="[\\ud800-\\udbff][\\udc00-\\udfff]",rsZWJ$1="\\u200d",reOptMod=rsModifier+"?",rsOptVar="["+rsVarRange$1+"]?",rsOptJoin="(?:"+rsZWJ$1+"(?:"+[rsNonAstral,rsRegional,rsSurrPair].join("|")+")"+rsOptVar+reOptMod+")*",rsSeq=rsOptVar+reOptMod+rsOptJoin,rsSymbol="(?:"+[rsNonAstral+rsCombo+"?",rsCombo,rsRegional,rsSurrPair,rsAstral].join("|")+")",reUnicode=RegExp(rsFitz+"(?="+rsFitz+")|"+rsSymbol+rsSeq,"g");function unicodeToArray(e){return e.match(reUnicode)||[]}function stringToArray(e){return hasUnicode(e)?unicodeToArray(e):asciiToArray(e)}function toString(e){return null==e?"":baseToString(e)}var reTrim=/^\s+|\s+$/g;function trim(e,r,t){if((e=toString(e))&&(t||void 0===r))return e.replace(reTrim,"");if(!e||!(r=baseToString(r)))return e;var n=stringToArray(e),o=stringToArray(r);return castSlice(n,charsStartIndex(n,o),charsEndIndex(n,o)+1).join("")}function isUndefined(e){return void 0===e}var boolTag="[object Boolean]";function isBoolean(e){return!0===e||!1===e||isObjectLike(e)&&baseGetTag(e)==boolTag}var numberTag="[object Number]";function isNumber(e){return"number"==typeof e||isObjectLike(e)&&baseGetTag(e)==numberTag}function isNaN(e){return isNumber(e)&&e!=+e}var stringTag="[object String]";function isString(e){return"string"==typeof e||!isArray(e)&&isObjectLike(e)&&baseGetTag(e)==stringTag}function overArg(e,r){return function(t){return e(r(t))}}var getPrototype=overArg(Object.getPrototypeOf,Object),objectTag="[object Object]",funcProto=Function.prototype,objectProto$2=Object.prototype,funcToString=funcProto.toString,hasOwnProperty$1=objectProto$2.hasOwnProperty,objectCtorString=funcToString.call(Object);function isPlainObject(e){if(!isObjectLike(e)||baseGetTag(e)!=objectTag)return!1;var r=getPrototype(e);if(null===r)return!0;var t=hasOwnProperty$1.call(r,"constructor")&&r.constructor;return"function"==typeof t&&t instanceof t&&funcToString.call(t)==objectCtorString}function arrayFilter(e,r){for(var t=-1,n=null==e?0:e.length,o=0,a=[];++t-1&&e%1==0&&e-1&&e%1==0&&e<=MAX_SAFE_INTEGER$1}var argsTag$1="[object Arguments]",arrayTag="[object Array]",boolTag$1="[object Boolean]",dateTag="[object Date]",errorTag="[object Error]",funcTag="[object Function]",mapTag="[object Map]",numberTag$1="[object Number]",objectTag$1="[object Object]",regexpTag="[object RegExp]",setTag="[object Set]",stringTag$1="[object String]",weakMapTag="[object WeakMap]",arrayBufferTag="[object ArrayBuffer]",dataViewTag="[object DataView]",float32Tag="[object Float32Array]",float64Tag="[object Float64Array]",int8Tag="[object Int8Array]",int16Tag="[object Int16Array]",int32Tag="[object Int32Array]",uint8Tag="[object Uint8Array]",uint8ClampedTag="[object Uint8ClampedArray]",uint16Tag="[object Uint16Array]",uint32Tag="[object Uint32Array]",typedArrayTags={};function baseIsTypedArray(e){return isObjectLike(e)&&isLength(e.length)&&!!typedArrayTags[baseGetTag(e)]}function baseUnary(e){return function(r){return e(r)}}typedArrayTags[float32Tag]=typedArrayTags[float64Tag]=typedArrayTags[int8Tag]=typedArrayTags[int16Tag]=typedArrayTags[int32Tag]=typedArrayTags[uint8Tag]=typedArrayTags[uint8ClampedTag]=typedArrayTags[uint16Tag]=typedArrayTags[uint32Tag]=!0,typedArrayTags[argsTag$1]=typedArrayTags[arrayTag]=typedArrayTags[arrayBufferTag]=typedArrayTags[boolTag$1]=typedArrayTags[dataViewTag]=typedArrayTags[dateTag]=typedArrayTags[errorTag]=typedArrayTags[funcTag]=typedArrayTags[mapTag]=typedArrayTags[numberTag$1]=typedArrayTags[objectTag$1]=typedArrayTags[regexpTag]=typedArrayTags[setTag]=typedArrayTags[stringTag$1]=typedArrayTags[weakMapTag]=!1;var freeExports$1="object"==typeof exports&&exports&&!exports.nodeType&&exports,freeModule$1=freeExports$1&&"object"==typeof module&&module&&!module.nodeType&&module,moduleExports$1=freeModule$1&&freeModule$1.exports===freeExports$1,freeProcess=moduleExports$1&&freeGlobal.process,nodeUtil=function(){try{var e=freeModule$1&&freeModule$1.require&&freeModule$1.require("util").types;return e||freeProcess&&freeProcess.binding&&freeProcess.binding("util")}catch(e){}}(),nodeIsTypedArray=nodeUtil&&nodeUtil.isTypedArray,isTypedArray=nodeIsTypedArray?baseUnary(nodeIsTypedArray):baseIsTypedArray,objectProto$4=Object.prototype,hasOwnProperty$3=objectProto$4.hasOwnProperty;function arrayLikeKeys(e,r){var t=isArray(e),n=!t&&isArguments(e),o=!t&&!n&&isBuffer(e),a=!t&&!n&&!o&&isTypedArray(e),i=t||n||o||a,s=i?baseTimes(e.length,String):[],c=s.length;for(var u in e)!r&&!hasOwnProperty$3.call(e,u)||i&&("length"==u||o&&("offset"==u||"parent"==u)||a&&("buffer"==u||"byteLength"==u||"byteOffset"==u)||isIndex(u,c))||s.push(u);return s}var objectProto$5=Object.prototype;function isPrototype(e){var r=e&&e.constructor;return e===("function"==typeof r&&r.prototype||objectProto$5)}var nativeKeys=overArg(Object.keys,Object),objectProto$6=Object.prototype,hasOwnProperty$4=objectProto$6.hasOwnProperty;function baseKeys(e){if(!isPrototype(e))return nativeKeys(e);var r=[];for(var t in Object(e))hasOwnProperty$4.call(e,t)&&"constructor"!=t&&r.push(t);return r}function isObject(e){var r=typeof e;return null!=e&&("object"==r||"function"==r)}var asyncTag="[object AsyncFunction]",funcTag$1="[object Function]",genTag="[object GeneratorFunction]",proxyTag="[object Proxy]";function isFunction(e){if(!isObject(e))return!1;var r=baseGetTag(e);return r==funcTag$1||r==genTag||r==asyncTag||r==proxyTag}function isArrayLike(e){return null!=e&&isLength(e.length)&&!isFunction(e)}function keys(e){return isArrayLike(e)?arrayLikeKeys(e):baseKeys(e)}function baseForOwn(e,r){return e&&baseFor(e,r,keys)}function listCacheClear(){this.__data__=[],this.size=0}function eq(e,r){return e===r||e!=e&&r!=r}function assocIndexOf(e,r){for(var t=e.length;t--;)if(eq(e[t][0],r))return t;return-1}var arrayProto=Array.prototype,splice=arrayProto.splice;function listCacheDelete(e){var r=this.__data__,t=assocIndexOf(r,e);return!(t<0)&&(t==r.length-1?r.pop():splice.call(r,t,1),--this.size,!0)}function listCacheGet(e){var r=this.__data__,t=assocIndexOf(r,e);return t<0?void 0:r[t][1]}function listCacheHas(e){return assocIndexOf(this.__data__,e)>-1}function listCacheSet(e,r){var t=this.__data__,n=assocIndexOf(t,e);return n<0?(++this.size,t.push([e,r])):t[n][1]=r,this}function ListCache(e){var r=-1,t=null==e?0:e.length;for(this.clear();++rs))return!1;var u=a.get(e);if(u&&a.get(r))return u==r;var l=-1,f=!0,p=t&COMPARE_UNORDERED_FLAG?new SetCache:void 0;for(a.set(e,r),a.set(r,e);++l0){if(++r>=HOT_COUNT)return arguments[0]}else r=0;return e.apply(void 0,arguments)}}var setToString=shortOut(baseSetToString);function baseRest(e,r){return setToString(overRest(e,r,identity),e+"")}function isIterateeCall(e,r,t){if(!isObject(t))return!1;var n=typeof r;return!!("number"==n?isArrayLike(t)&&isIndex(r,t.length):"string"==n&&r in t)&&eq(t[r],e)}function createAssigner(e){return baseRest((function(r,t){var n=-1,o=t.length,a=o>1?t[o-1]:void 0,i=o>2?t[2]:void 0;for(a=e.length>3&&"function"==typeof a?(o--,a):void 0,i&&isIterateeCall(t[0],t[1],i)&&(a=o<3?void 0:a,o=1),r=Object(r);++n0))},isArrayLike$1=function(e){if(e.indexOf(ARRAY_TYPE_LFT$1)>-1&&e.indexOf(ARRAY_TYPE_RGT$1)>-1){var r=e.replace(ARRAY_TYPE_LFT$1,"").replace(ARRAY_TYPE_RGT$1,"");return r.indexOf(OR_SEPERATOR$1)?r.split(OR_SEPERATOR$1):[r]}return!1},arrayTypeHandler=function(e,r){var t=e.arg;return r.length>1?!t.filter((function(e){return!(r.length>r.filter((function(r){return!combineFn(r)(e)})).length)})).length:r.length>r.filter((function(e){return!checkIsArray(t,e)})).length},checkIsObject=function(e,r){if(void 0===r&&(r=null),isPlainObject(e)){if(!r)return!0;if(checkIsArray(r))return!r.filter((function(r){var t=e[r.name];return!(r.type.length>r.type.filter((function(e){var r;return!!isUndefined(t)||(!1!==(r=isArrayLike$1(e))?!arrayTypeHandler({arg:t},r):!combineFn(e)(t))})).length)})).length}return!1},objectTypeHandler=function(e){var r=e.arg,t=e.param,n=[r];return Array.isArray(t.keys)&&t.keys.length&&n.push(t.keys),checkIsObject.apply(null,n)},Jsonql406Error=function(e){function r(){for(var t=[],n=arguments.length;n--;)t[n]=arguments[n];e.apply(this,t),this.message=t[0],this.detail=t[1],this.className=r.name,e.captureStackTrace&&e.captureStackTrace(this,r)}e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r;var t={statusCode:{configurable:!0},name:{configurable:!0}};return t.statusCode.get=function(){return 406},t.name.get=function(){return"Jsonql406Error"},Object.defineProperties(r,t),r}(Error),Jsonql500Error=function(e){function r(){for(var t=[],n=arguments.length;n--;)t[n]=arguments[n];e.apply(this,t),this.message=t[0],this.detail=t[1],this.className=r.name,e.captureStackTrace&&e.captureStackTrace(this,r)}e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r;var t={statusCode:{configurable:!0},name:{configurable:!0}};return t.statusCode.get=function(){return 500},t.name.get=function(){return"Jsonql500Error"},Object.defineProperties(r,t),r}(Error),JsonqlAuthorisationError=function(e){function r(){for(var t=[],n=arguments.length;n--;)t[n]=arguments[n];e.apply(this,t),this.message=t[0],this.detail=t[1],this.className=r.name,e.captureStackTrace&&e.captureStackTrace(this,r)}e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r;var t={statusCode:{configurable:!0},name:{configurable:!0}};return t.statusCode.get=function(){return 401},t.name.get=function(){return"JsonqlAuthorisationError"},Object.defineProperties(r,t),r}(Error),JsonqlContractAuthError=function(e){function r(){for(var t=[],n=arguments.length;n--;)t[n]=arguments[n];e.apply(this,t),this.message=t[0],this.detail=t[1],this.className=r.name,e.captureStackTrace&&e.captureStackTrace(this,r)}e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r;var t={statusCode:{configurable:!0},name:{configurable:!0}};return t.statusCode.get=function(){return 401},t.name.get=function(){return"JsonqlContractAuthError"},Object.defineProperties(r,t),r}(Error),JsonqlResolverAppError=function(e){function r(){for(var t=[],n=arguments.length;n--;)t[n]=arguments[n];e.apply(this,t),this.message=t[0],this.detail=t[1],this.className=r.name,e.captureStackTrace&&e.captureStackTrace(this,r)}e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r;var t={statusCode:{configurable:!0},name:{configurable:!0}};return t.statusCode.get=function(){return 500},t.name.get=function(){return"JsonqlResolverAppError"},Object.defineProperties(r,t),r}(Error),isBrowser=function(){try{if(window||document)return!0}catch(e){}return!1},isNode=function(){try{if(!isBrowser()&&global$1)return!0}catch(e){}return!1};function whereAmI(){return isBrowser()?"browser":isNode()?"node":"unknown"}var JsonqlBaseError=function(e){function r(){for(var r=[],t=arguments.length;t--;)r[t]=arguments[t];e.apply(this,r)}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.where=function(){return whereAmI()},r}(Error),JsonqlResolverNotFoundError=function(e){function r(){for(var t=[],n=arguments.length;n--;)t[n]=arguments[n];e.apply(this,t),this.message=t[0],this.detail=t[1],this.className=r.name,Error.captureStackTrace&&Error.captureStackTrace(this,r)}e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r;var t={statusCode:{configurable:!0},name:{configurable:!0}};return t.statusCode.get=function(){return 404},t.name.get=function(){return"JsonqlResolverNotFoundError"},Object.defineProperties(r,t),r}(JsonqlBaseError),JsonqlEnumError=function(e){function r(){for(var t=[],n=arguments.length;n--;)t[n]=arguments[n];e.apply(this,t),this.message=t[0],this.detail=t[1],this.className=r.name,e.captureStackTrace&&e.captureStackTrace(this,r)}e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r;var t={name:{configurable:!0}};return t.name.get=function(){return"JsonqlEnumError"},Object.defineProperties(r,t),r}(Error),JsonqlTypeError=function(e){function r(){for(var t=[],n=arguments.length;n--;)t[n]=arguments[n];e.apply(this,t),this.message=t[0],this.detail=t[1],this.className=r.name,e.captureStackTrace&&e.captureStackTrace(this,r)}e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r;var t={name:{configurable:!0}};return t.name.get=function(){return"JsonqlTypeError"},Object.defineProperties(r,t),r}(Error),JsonqlCheckerError=function(e){function r(){for(var t=[],n=arguments.length;n--;)t[n]=arguments[n];e.apply(this,t),this.message=t[0],this.detail=t[1],this.className=r.name,e.captureStackTrace&&e.captureStackTrace(this,r)}e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r;var t={name:{configurable:!0}};return t.name.get=function(){return"JsonqlCheckerError"},Object.defineProperties(r,t),r}(Error),JsonqlValidationError$1=function(e){function r(){for(var t=[],n=arguments.length;n--;)t[n]=arguments[n];e.apply(this,t),this.message=t[0],this.detail=t[1],this.className=r.name,Error.captureStackTrace&&Error.captureStackTrace(this,r)}e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r;var t={name:{configurable:!0}};return t.name.get=function(){return"JsonqlValidationError"},Object.defineProperties(r,t),r}(JsonqlBaseError),JsonqlError=function(e){function r(){for(var t=[],n=arguments.length;n--;)t[n]=arguments[n];e.apply(this,t),this.message=t[0],this.detail=t[1],this.className=r.name,Error.captureStackTrace&&Error.captureStackTrace(this,r)}e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r;var t={name:{configurable:!0},statusCode:{configurable:!0}};return t.name.get=function(){return"JsonqlError"},t.statusCode.get=function(){return NO_STATUS_CODE},Object.defineProperties(r,t),r}(JsonqlBaseError),JsonqlServerError=function(e){function r(t,n){e.call(this,n),this.statusCode=t,this.className=r.name}e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r;var t={name:{configurable:!0}};return t.name.get=function(){return"JsonqlServerError"},Object.defineProperties(r,t),r}(Error);function finalCatch(e){if(Array.isArray(e))throw new JsonqlValidationError$1("",e);var r=e.message||NO_ERROR_MSG,t=e.detail||e;switch(!0){case e instanceof Jsonql406Error:throw new Jsonql406Error(r,t);case e instanceof Jsonql500Error:throw new Jsonql500Error(r,t);case e instanceof JsonqlAuthorisationError:throw new JsonqlAuthorisationError(r,t);case e instanceof JsonqlContractAuthError:throw new JsonqlContractAuthError(r,t);case e instanceof JsonqlResolverAppError:throw new JsonqlResolverAppError(r,t);case e instanceof JsonqlResolverNotFoundError:throw new JsonqlResolverNotFoundError(r,t);case e instanceof JsonqlEnumError:throw new JsonqlEnumError(r,t);case e instanceof JsonqlTypeError:throw new JsonqlTypeError(r,t);case e instanceof JsonqlCheckerError:throw new JsonqlCheckerError(r,t);case e instanceof JsonqlValidationError$1:throw new JsonqlValidationError$1(r,t);case e instanceof JsonqlServerError:throw new JsonqlServerError(r,t);default:throw new JsonqlError(r,t)}}function log(){for(var e=[],r=arguments.length;r--;)e[r]=arguments[r];try{window&&window.console&&Reflect.apply(console.log,console,e)}catch(e){}}var optionalHandler=function(e){var r=e.arg,t=e.param;return!!notEmpty(r)&&!(t.type.length>t.type.filter((function(r){return validateHandler(r,e)})).length)},validateHandler=function(e,r){var t;switch(!0){case e===OBJECT_TYPE$1:return!objectTypeHandler(r);case e===ARRAY_TYPE$1:return!checkIsArray(r.arg);case!1!==(t=isArrayLike$1(e)):return!arrayTypeHandler(r,t);default:return!combineFn(e)(r.arg)}},getOptionalValue=function(e,r){return isUndefined(e)?!0!==r.optional||isUndefined(r.defaultvalue)?null:r.defaultvalue:e},normalizeArgs=function(e,r){if(!checkIsArray(r))throw new JsonqlError(PARAMS_NOT_ARRAY_ERR);if(0===r.length)return[];if(!checkIsArray(e))throw new JsonqlError(ARGS_NOT_ARRAY_ERR);switch(!0){case e.length==r.length:return log(1),e.map((function(e,t){return{arg:e,index:t,param:r[t]}}));case!0===r[0].variable:log(2);var t=r[0].type;return e.map((function(e,n){return{arg:e,index:n,param:r[n]||{type:t,name:"_"}}}));case e.lengthr.length:log(4);var n=r.length,o=[DEFAULT_TYPE$1];return e.map((function(e,t){var a=t>=n||!!r[t].optional,i=r[t]||{type:o,name:"_"+t};return{arg:a?getOptionalValue(e,i):e,index:t,param:i,optional:a}}));default:throw log(5),new JsonqlError(EXCEPTION_CASE_ERR,{args:e,params:r})}},processReturn=function(e){return e.map((function(e){return e.arg}))},validateSync=function(e,r,t){var n;void 0===t&&(t=!1);var o=normalizeArgs(e,r),a=o.filter((function(e){return!0===e.optional||!0===e.param.optional?optionalHandler(e):!(e.param.type.length>e.param.type.filter((function(r){return validateHandler(r,e)})).length)}));return t?((n={})[ERROR_KEY]=a,n[DATA_KEY]=processReturn(o),n):a},validateAsync=function(e,r,t){return void 0===t&&(t=!1),new Promise((function(n,o){var a=validateSync(e,r,t);return t?a[ERROR_KEY].length?o(a[ERROR_KEY]):n(a[DATA_KEY]):a.length?o(a):n([])}))},isInArray=function(e,r){return!!e.filter((function(e){return e===r})).length},isKeyInObject=function(e,r){var t=Object.keys(e);return isInArray(t,r)},isEmpty=function(e){return!notEmpty(e)};function mapAliasConfigKeys(e,r){var t=omitBy(r,(function(e,r){return!e[ALIAS_KEY$1]}));return isEqual(t,{})?e:mapKeys(e,(function(e,r){return findKey(t,(function(e){return e.alias===r}))||r}))}function preservePristineValues(e,r){var t=mapAliasConfigKeys(e,r);return{pristineValues:mapValues(omitBy(r,(function(e,r){return isKeyInObject(t,r)})),(function(e){return e.args})),checkAgainstAppProps:omitBy(r,(function(e,r){return!isKeyInObject(t,r)})),config:t}}function processConfigAction(e,r){return mapValues(r,(function(r,t){var n,o;return isUndefined(e[t])||!0===r[OPTIONAL_KEY$1]&&isEmpty(e[t])?merge({},r,((n={})[KEY_WORD$1]=!0,n)):((o={})[ARGS_KEY$1]=e[t],o[TYPE_KEY$1]=r[TYPE_KEY$1],o[OPTIONAL_KEY$1]=r[OPTIONAL_KEY$1]||!1,o[ENUM_KEY$1]=r[ENUM_KEY$1]||!1,o[CHECKER_KEY$1]=r[CHECKER_KEY$1]||!1,o)}))}function prepareArgsForValidation(e,r){var t=preservePristineValues(e,r),n=t.config,o=t.pristineValues;return[processConfigAction(n,t.checkAgainstAppProps),o]}var toArray=function(e){return checkIsArray(e)?e:[e]},inArray=function(e,r){return!!e.filter((function(e){return e===r})).length};function validateHandler$1(e,r){var t,n=[[e[ARGS_KEY$1]],[(t={},t[TYPE_KEY$1]=toArray(e[TYPE_KEY$1]),t[OPTIONAL_KEY$1]=e[OPTIONAL_KEY$1],t)]];return Reflect.apply(r,null,n)}var enumHandler=function(e,r){return!checkIsArray(r)||inArray(r,e)},checkerHandler=function(e,r){try{return!!isFunction(r)&&r.apply(null,[e])}catch(e){return!1}};function runValidationAction(e){return function(r,t){if(r[KEY_WORD$1])return r[ARGS_KEY$1];var n=validateHandler$1(r,e);if(n.length)throw log("runValidationAction",t,r),new JsonqlTypeError(t,n);if(!1!==r[ENUM_KEY$1]&&!enumHandler(r[ARGS_KEY$1],r[ENUM_KEY$1]))throw log(ENUM_KEY$1,r[ENUM_KEY$1]),new JsonqlEnumError(t);if(!1!==r[CHECKER_KEY$1]&&!checkerHandler(r[ARGS_KEY$1],r[CHECKER_KEY$1]))throw log(CHECKER_KEY$1,r[CHECKER_KEY$1]),new JsonqlCheckerError(t);return r[ARGS_KEY$1]}}function runValidation(e,r){var t=e[0],n=e[1],o=mapValues(t,runValidationAction(r));return merge(o,n)}var configToArgs=function(e,r){return Promise.resolve(prepareArgsForValidation(e,r))};function checkOptionsAsync(e,r,t,n){return void 0===e&&(e={}),configToArgs(e,r).then((function(e){return runValidation(e,n)})).then((function(e){return merge({},e,t)}))}function constructConfigFn(e,r,t,n,o,a){void 0===t&&(t=!1),void 0===n&&(n=!1),void 0===o&&(o=!1),void 0===a&&(a=!1);var i={};return i[ARGS_KEY]=e,i[TYPE_KEY]=r,!0===t&&(i[OPTIONAL_KEY]=!0),checkIsArray(n)&&(i[ENUM_KEY]=n),isFunction(o)&&(i[CHECKER_KEY]=o),isString(a)&&(i[ALIAS_KEY]=a),i}var createConfig=function(e,r,t){void 0===t&&(t={});var n=t[OPTIONAL_KEY],o=t[ENUM_KEY],a=t[CHECKER_KEY],i=t[ALIAS_KEY];return constructConfigFn.apply(null,[e,r,n,o,a,i])},checkConfigAsync=function(e){return function(r,t,n){return void 0===n&&(n={}),checkOptionsAsync(r,t,n,e)}},isString$1=checkIsString,validateAsync$1=validateAsync,createConfig$1=createConfig,checkConfigAsync$1=checkConfigAsync(validateSync),isKeyInObject$1=isKeyInObject,inArray$1=function(e,r){return!!e.filter((function(e){return e===r})).length},toArray$1=function(e){return isArray(e)?e:[e]},isKeyInObject$2=function(e,r){var t=Object.keys(e);return inArray$1(t,r)},createEvt=function(){for(var e=[],r=arguments.length;r--;)e[r]=arguments[r];return e.join("_")},chainFns=function(e){for(var r=[],t=arguments.length-1;t-- >0;)r[t]=arguments[t+1];return function(){for(var t=[],n=arguments.length;n--;)t[n]=arguments[n];return r.reduce((function(e,r){return Reflect.apply(r,null,toArray$1(e))}),Reflect.apply(e,null,t))}};function objDefineProps(e,r,t,n){return void 0===n&&(n=null),void 0===Object.getOwnPropertyDescriptor(e,r)&&Object.defineProperty(e,r,{set:t,get:null===n?function(){return null}:n}),e}function injectToFn(e,r,t,n){void 0===n&&(n=!1);var o=Object.getOwnPropertyDescriptor(e,r);return!1===n&&void 0!==o?e:(Object.defineProperty(e,r,{value:t,writable:n}),e)}function checkIsContract(e){return isPlainObject(e)&&(isKeyInObject$2(e,QUERY_NAME)||isKeyInObject$2(e,MUTATION_NAME)||isKeyInObject$2(e,SOCKET_NAME))}function extractSocketPart(e){return!!isKeyInObject$2(e,"socket")&&e.socket}function groupByNamespace(e,r){void 0===r&&(r=!1);var t=extractSocketPart(e);if(!1===t){if(r)return e;throw new JsonqlError("socket not found in contract!")}var n,o={},a=0;for(var i in t){var s=t[i],c=s.namespace;c&&(o[c]||(++a,o[c]={}),o[c][i]=s,n||s.public&&(n=c))}return{size:a,nspSet:o,publicNamespace:n}}function getNamespaceInOrder(e,r){var t=[];for(var n in e)n===r?t[1]=n:t[0]=n;return t}var formatPayload=function(e){var r;return(r={})[QUERY_ARG_NAME]=e,r};function getNameFromPayload(e){return Object.keys(e)[0]}function createQuery(e,r,t){var n;if(void 0===r&&(r=[]),void 0===t&&(t=!1),isString(e)&&isArray(r)){var o=formatPayload(r);return!0===t?o:((n={})[e]=o,n)}throw new JsonqlValidationError$1("[createQuery] expect resolverName to be string and args to be array!",{resolverName:e,args:r})}function createQueryStr(e,r,t){return void 0===r&&(r=[]),void 0===t&&(t=!1),JSON.stringify(createQuery(e,r,t))}var isContract=checkIsContract,BASE_NAME="jsonql-ws-client",getDebug=function(e){try{if(window.debug)return window.debug(BASE_NAME).extend(e)}catch(e){}try{if(global$1.debug)return global$1.debug(BASE_NAME).extend(e)}catch(e){}return function(){for(var r=[],t=arguments.length;t--;)r[t]=arguments[t];console.info.apply(null,[BASE_NAME,e].concat(r))}};try{window&&window.localStorage&&window.DEBUG&&localStorage.setItem("DEBUG",BASE_NAME+"*")}catch(e){}var NB_EVENT_SERVICE_PRIVATE_STORE=new WeakMap,NB_EVENT_SERVICE_PRIVATE_LAZY=new WeakMap;function hashCode(e){return e.split("").reduce((function(e,r){return(e=(e<<5)-e+r.charCodeAt(0))&e}),0)}var SuspendClass=function(){this.__suspend__=null,this.queueStore=new Set},prototypeAccessors={$suspend:{configurable:!0},$queues:{configurable:!0}};prototypeAccessors.$suspend.set=function(e){var r=this;if("boolean"!=typeof e)throw new Error("$suspend only accept Boolean value!");var t=this.__suspend__;this.__suspend__=e,this.logger("($suspend)","Change from "+t+" --\x3e "+e),!0===t&&!1===e&&setTimeout((function(){r.release()}),1)},SuspendClass.prototype.$queue=function(){for(var e=[],r=arguments.length;r--;)e[r]=arguments[r];return!0===this.__suspend__&&(this.logger("($queue)","added to $queue",e),this.queueStore.add(e)),this.__suspend__},prototypeAccessors.$queues.get=function(){var e=this.queueStore.size;return this.logger("($queues)","size: "+e),e>0?Array.from(this.queueStore):[]},SuspendClass.prototype.release=function(){var e=this,r=this.queueStore.size;if(this.logger("(release)","Release was called "+r),r>0){var t=Array.from(this.queueStore);this.queueStore.clear(),this.logger("queue",t),t.forEach((function(r){e.logger(r),Reflect.apply(e.$trigger,e,r)})),this.logger("Release size "+this.queueStore.size)}},Object.defineProperties(SuspendClass.prototype,prototypeAccessors);var NbEventServiceBase=function(e){function r(r){void 0===r&&(r={}),e.call(this),r.logger&&"function"==typeof r.logger&&(this.logger=r.logger),this.keep=r.keep,this.result=r.keep?[]:null,this.normalStore=new Map,this.lazyStore=new Map}e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r;var t={normalStore:{configurable:!0},lazyStore:{configurable:!0}};return r.prototype.validateEvt=function(){for(var e=this,r=[],t=arguments.length;t--;)r[t]=arguments[t];return r.forEach((function(r){if("string"!=typeof r)throw e.logger("(validateEvt)",r),new Error("event name must be string type!")})),!0},r.prototype.validate=function(e,r){if(this.validateEvt(e)&&"function"==typeof r)return!0;throw new Error("callback required to be function type!")},r.prototype.validateType=function(e){return!!["on","only","once","onlyOnce"].filter((function(r){return e===r})).length},r.prototype.run=function(e,r,t){this.logger("(run)",e,r,t),this.$done=Reflect.apply(e,t,this.toArray(r))},r.prototype.takeFromStore=function(e,r){void 0===r&&(r="lazyStore");var t=this[r];if(t){if(this.logger("(takeFromStore)",r,t),t.has(e)){var n=t.get(e);return this.logger("(takeFromStore)","has "+e,n),t.delete(e),n}return!1}throw new Error(r+" is not supported!")},r.prototype.addToStore=function(e,r){for(var t,n=[],o=arguments.length-2;o-- >0;)n[o]=arguments[o+2];if(e.has(r)?(this.logger("(addToStore)",r+" existed"),t=e.get(r)):(this.logger("(addToStore)","create new Set for "+r),t=new Set),n.length>2)if(Array.isArray(n[0])){var a=n[2];this.checkTypeInLazyStore(r,a)||t.add(n)}else this.checkContentExist(n,t)||(this.logger("(addToStore)","insert new",n),t.add(n));else t.add(n);return e.set(r,t),[e,t.size]},r.prototype.checkContentExist=function(e,r){return!!Array.from(r).filter((function(r){return r[0]===e[0]})).length},r.prototype.checkTypeInStore=function(e,r){this.validateEvt(e,r);var t=this.$get(e,!0);return!1===t||!t.filter((function(e){var t=e[3];return r!==t})).length},r.prototype.checkTypeInLazyStore=function(e,r){this.validateEvt(e,r);var t=this.lazyStore.get(e);return this.logger("(checkTypeInLazyStore)",t),!!t&&!!Array.from(t).filter((function(e){return e[2]!==r})).length},r.prototype.addToNormalStore=function(e,r,t,n){if(void 0===n&&(n=null),this.logger("(addToNormalStore)",e,r,"try to add to normal store"),this.checkTypeInStore(e,r)){this.logger("(addToNormalStore)",r+" can add to "+e+" normal store");var o=this.hashFnToKey(t),a=[this.normalStore,e,o,t,n,r],i=Reflect.apply(this.addToStore,this,a),s=i[0],c=i[1];return this.normalStore=s,c}return!1},r.prototype.addToLazyStore=function(e,r,t,n){void 0===r&&(r=[]),void 0===t&&(t=null),void 0===n&&(n=!1);var o=[this.lazyStore,e,this.toArray(r),t];n&&o.push(n);var a=Reflect.apply(this.addToStore,this,o),i=a[0],s=a[1];return this.lazyStore=i,s},r.prototype.toArray=function(e){return Array.isArray(e)?e:[e]},t.normalStore.set=function(e){NB_EVENT_SERVICE_PRIVATE_STORE.set(this,e)},t.normalStore.get=function(){return NB_EVENT_SERVICE_PRIVATE_STORE.get(this)},t.lazyStore.set=function(e){NB_EVENT_SERVICE_PRIVATE_LAZY.set(this,e)},t.lazyStore.get=function(){return NB_EVENT_SERVICE_PRIVATE_LAZY.get(this)},r.prototype.hashFnToKey=function(e){return hashCode(e.toString())+""},Object.defineProperties(r.prototype,t),r}(SuspendClass),EventService=function(e){function r(r){void 0===r&&(r={}),e.call(this,r)}e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r;var t={$done:{configurable:!0}};return r.prototype.logger=function(){},r.prototype.$on=function(e,r,t){var n=this;void 0===t&&(t=null);this.validate(e,r);var o=this.takeFromStore(e);if(!1===o)return this.logger("($on)",e+" callback is not in lazy store"),this.addToNormalStore(e,"on",r,t);this.logger("($on)",e+" found in lazy store");var a=0;return o.forEach((function(o){var i=o[0],s=o[1],c=o[2];if(c&&"on"!==c)throw new Error("You are trying to register an event already been taken by other type: "+c);n.logger("($on)","call run on "+e),n.run(r,i,t||s),a+=n.addToNormalStore(e,"on",r,t||s)})),a},r.prototype.$once=function(e,r,t){void 0===t&&(t=null),this.validate(e,r);var n=this.takeFromStore(e);this.normalStore;if(!1===n)return this.logger("($once)",e+" not in the lazy store"),this.addToNormalStore(e,"once",r,t);this.logger("($once)",n);var o=Array.from(n)[0],a=o[0],i=o[1],s=o[2];if(s&&"once"!==s)throw new Error("You are trying to register an event already been taken by other type: "+s);this.logger("($once)","call run for "+e),this.run(r,a,t||i),this.$off(e)},r.prototype.$only=function(e,r,t){var n=this;void 0===t&&(t=null),this.validate(e,r);var o=!1,a=this.takeFromStore(e);(this.normalStore.has(e)||(this.logger("($only)",e+" add to store"),o=this.addToNormalStore(e,"only",r,t)),!1!==a)&&(this.logger("($only)",e+" found data in lazy store to execute"),Array.from(a).forEach((function(o){var a=o[0],i=o[1],s=o[2];if(s&&"only"!==s)throw new Error("You are trying to register an event already been taken by other type: "+s);n.logger("($only)","call run for "+e),n.run(r,a,t||i)})));return o},r.prototype.$onlyOnce=function(e,r,t){void 0===t&&(t=null),this.validate(e,r);var n=!1,o=this.takeFromStore(e);if(this.normalStore.has(e)||(this.logger("($onlyOnce)",e+" add to store"),n=this.addToNormalStore(e,"onlyOnce",r,t)),!1!==o){this.logger("($onlyOnce)",o);var a=Array.from(o)[0],i=a[0],s=a[1],c=a[2];if(c&&"onlyOnce"!==c)throw new Error("You are trying to register an event already been taken by other type: "+c);this.logger("($onlyOnce)","call run for "+e),this.run(r,i,t||s),this.$off(e)}return n},r.prototype.$replace=function(e,r,t,n){if(void 0===t&&(t=null),void 0===n&&(n="on"),this.validateType(n)){this.$off(e);var o=this["$"+n];return this.logger("($replace)",e,r),Reflect.apply(o,this,[e,r,t])}throw new Error(n+" is not supported!")},r.prototype.$trigger=function(e,r,t,n){void 0===r&&(r=[]),void 0===t&&(t=null),void 0===n&&(n=!1),this.validateEvt(e);var o=0,a=this.normalStore;if(this.logger("($trigger)","normalStore",a),a.has(e)){var i=this.$queue(e,r,t,n);if(this.logger("($trigger)",e,"found; add to queue: ",i),!0===i)return this.logger("($trigger)",e,"not executed. Exit now."),!1;for(var s=Array.from(a.get(e)),c=s.length,u=!1,l=0;l-1?r.indexOf("https")>-1?r.replace("https","wss"):r.replace("http","ws"):r};function createWsClient(e,r){return void 0===r&&(r=!1),!1===r?function(r){return new e(fixWss$1(r))}:function(r,t){var n=fixWss$1(r),o=t&&"string"==typeof t?n+"?"+TOKEN_PARAM_NAME+"="+t:n;try{return new e(o)}catch(e){return console.error("WebSocket Connection Error",e),!1}}}function createNspClient(e,r){var t=r.hostname,n=r.wssPath,o=r.wsOptions;return(0,r.nspClient)(e?[t,e].join("/"):n,o)}function createNspAuthClient(e,r){var t=r.hostname,n=r.wssPath,o=r.token,a=r.wsOptions,i=r.nspAuthClient,s=e?[t,e].join("/"):n;if(o&&"string"!=typeof o)throw new Error("Expect token to be string, but got "+o);return i(s,o,a)}function triggerNamespacesOnError(e,r,t){r.forEach((function(r){e.$call(createEvt(r,ON_ERROR_PROP_NAME),[{message:t,namespace:r}])}))}var debugFn$5=getDebug("client-event-handler"),notLoginWsHandler=function(e,r){r.$only(createEvt(e,EMIT_EVT),(function(t,n){debugFn$5("noLoginHandler hijack the ws call",e,t,n);var o={message:NOT_LOGIN_ERR_MSG};r.$call(createEvt(e,t,ON_ERROR_PROP_NAME),[o]),r.$call(createEvt(e,t,ON_RESULT_PROP_NAME),[{error:o}])}))},getPrivateNamespace=function(e){return e.length>1&&e[0]};function clientEventHandler(e,r,t,n,o,a){var i=getPrivateNamespace(o),s=!1;o.forEach((function(o){if(s=i===o,a[o]){debugFn$5("call bindWsHandler",s,o);var c=[o,a[o],t,s];if(e.serverType===SOCKET_IO){var u=r.nspSet;c.push(u[o]),c.push(e)}Reflect.apply(n,null,c)}else notLoginWsHandler(o,t)})),t.$on(LOGOUT_EVENT_NAME,(function(){debugFn$5("LOGOUT_EVENT_NAME"),triggerNamespacesOnError(t,o,LOGOUT_EVENT_NAME),o.forEach((function(e){clearMainEmitEvt(t,e),a[e]=!1,notLoginWsHandler(e,t)}))}))}var keys$1=[WS_REPLY_TYPE,WS_EVT_NAME,WS_DATA_NAME],isWsReply=function(e){var r=e.data;return!!r&&(keys$1.filter((function(e){return isKeyInObject$1(r,e)})).length===keys$1.length&&r)},extractWsPayload=function(e){var r,t=e.data,n=isString$1(t)?JSON.parse(t):t;if(!1!==(r=isWsReply(n)))return{resolverName:r[WS_EVT_NAME],data:r[WS_DATA_NAME],type:r[WS_REPLY_TYPE]};throw new JsonqlError("payload can not be decoded",e)},debugFn$6=getDebug("ws-main-handler"),ON_MESSAGE_PROP_NAME$1=ON_MESSAGE_PROP_NAME,ON_RESULT_PROP_NAME$1=ON_RESULT_PROP_NAME,EMIT_EVT$1=EMIT_EVT,errorTypeHandler=function(e,r,t,n){var o=[r];t&&(debugFn$6("a global error on "+r),o.push(t)),o.push(ON_ERROR_PROP_NAME);var a=Reflect.apply(createEvt,null,o),i=n.data||n;e.$trigger(a,[i])};function wsMainHandler(e,r,t,n){r.onopen=function(){debugFn$6("ws.onopen listened"),t.$call(ON_READY_PROP_NAME,e),n&&(console.log("isPrivate and fire the ON_LOGIN_PROP_NAME "+ON_LOGIN_PROP_NAME),t.$call(ON_LOGIN_PROP_NAME,e)),t.$only(createEvt(e,EMIT_EVT$1),(function(e,t){debugFn$6("calling server",e,t),r.send(createQueryStr(e,t))}))},r.onmessage=function(r){try{var n=extractWsPayload(r),o=n.resolverName,a=n.type;switch(debugFn$6("Hear from server",a,n),a){case EMIT_REPLY_TYPE:var i=createEvt(e,o,ON_MESSAGE_PROP_NAME$1),s=t.$trigger(i,[n]);debugFn$6("EMIT_REPLY_TYPE",i,s);break;case ACKNOWLEDGE_REPLY_TYPE:var c=createEvt(e,o,ON_RESULT_PROP_NAME$1);t.$trigger(c,[n]);debugFn$6("ACKNOWLEDGE_REPLY_TYPE",c,n);break;case ERROR_TYPE:debugFn$6("ERROR_TYPE"),errorTypeHandler(t,e,o,n);break;default:debugFn$6("Unhandled event!",n),errorTypeHandler(t,e,o,n)}}catch(r){console.error("ws.onmessage error",r),errorTypeHandler(t,e,!1,r)}},r.onclose=function(){debugFn$6("ws.onclose callback")},t.$on(LOGOUT_EVENT_NAME,(function(){try{debugFn$6("terminate ws connection"),r.terminate()}catch(e){console.error("ws.terminate error",e)}}))}var debugFn$7=getDebug("ws-create-client"),createNsps=function(e,r,t){var n=r.nspSet,o=r.publicNamespace,a=!1,i=[],s={};if(e.enableAuth&&e.useJwt)a=!0,s=(i=getNamespaceInOrder(n,o)).map((function(r,n){var o,a,i;return 0===n?t?(e.token=t,(o={})[r]=createNspAuthClient(r,e),o):((a={})[r]=!1,a):((i={})[r]=createNspClient(r,e),i)})).reduce((function(e,r){return Object.assign(e,r)}),{});else{var c=getNameFromPayload(n);i.push(c),s[c]=createNspClient(!1,e)}return{nsps:s,namespaces:i,login:a}};function createClient(e,r,t){var n=[e,r,t,wsMainHandler],o=e.token,a=createNsps(e,r,o),i=a.nsps,s=a.namespaces,c=a.login;return Reflect.apply(clientEventHandler,null,n.concat([s,i])),c&&t.$only(LOGIN_EVENT_NAME,(function(o){clearMainEmitEvt(t,s);var a=createNsps(e,r,o);Reflect.apply(clientEventHandler,null,n.concat([a.namespaces,a.nsps]))})),{opts:e,nspMap:r,ee:t}}function createClientResolver(e){var r=createWsClient(e),t=createWsClient(e,!0);return function(e,n,o){return e.nspClient=r,e.nspAuthClient=t,createClient(e,n,o)}}var wsClientResolver=createClientResolver(WebSocket);global$1.debug=debug$2;var node=wsClient(wsClientResolver,constProps);module.exports=node; +"use strict";function _interopDefault(e){return e&&"object"==typeof e&&"default"in e?e.default:e}var debug$2=_interopDefault(require("debug"));require("fs"),require("path");var WebSocket=_interopDefault(require("ws")),global$1="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},Jsonql406Error=function(e){function r(){for(var t=[],n=arguments.length;n--;)t[n]=arguments[n];e.apply(this,t),this.message=t[0],this.detail=t[1],this.className=r.name,e.captureStackTrace&&e.captureStackTrace(this,r)}e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r;var t={statusCode:{configurable:!0},name:{configurable:!0}};return t.statusCode.get=function(){return 406},t.name.get=function(){return"Jsonql406Error"},Object.defineProperties(r,t),r}(Error),Jsonql500Error=function(e){function r(){for(var t=[],n=arguments.length;n--;)t[n]=arguments[n];e.apply(this,t),this.message=t[0],this.detail=t[1],this.className=r.name,e.captureStackTrace&&e.captureStackTrace(this,r)}e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r;var t={statusCode:{configurable:!0},name:{configurable:!0}};return t.statusCode.get=function(){return 500},t.name.get=function(){return"Jsonql500Error"},Object.defineProperties(r,t),r}(Error),JsonqlAuthorisationError=function(e){function r(){for(var t=[],n=arguments.length;n--;)t[n]=arguments[n];e.apply(this,t),this.message=t[0],this.detail=t[1],this.className=r.name,e.captureStackTrace&&e.captureStackTrace(this,r)}e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r;var t={statusCode:{configurable:!0},name:{configurable:!0}};return t.statusCode.get=function(){return 401},t.name.get=function(){return"JsonqlAuthorisationError"},Object.defineProperties(r,t),r}(Error),JsonqlContractAuthError=function(e){function r(){for(var t=[],n=arguments.length;n--;)t[n]=arguments[n];e.apply(this,t),this.message=t[0],this.detail=t[1],this.className=r.name,e.captureStackTrace&&e.captureStackTrace(this,r)}e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r;var t={statusCode:{configurable:!0},name:{configurable:!0}};return t.statusCode.get=function(){return 401},t.name.get=function(){return"JsonqlContractAuthError"},Object.defineProperties(r,t),r}(Error),JsonqlResolverAppError=function(e){function r(){for(var t=[],n=arguments.length;n--;)t[n]=arguments[n];e.apply(this,t),this.message=t[0],this.detail=t[1],this.className=r.name,e.captureStackTrace&&e.captureStackTrace(this,r)}e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r;var t={statusCode:{configurable:!0},name:{configurable:!0}};return t.statusCode.get=function(){return 500},t.name.get=function(){return"JsonqlResolverAppError"},Object.defineProperties(r,t),r}(Error),isBrowser=function(){try{if(window||document)return!0}catch(e){}return!1},isNode=function(){try{if(!isBrowser()&&global$1)return!0}catch(e){}return!1};function whereAmI(){return isBrowser()?"browser":isNode()?"node":"unknown"}var JsonqlBaseError=function(e){function r(){for(var r=[],t=arguments.length;t--;)r[t]=arguments[t];e.apply(this,r)}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.where=function(){return whereAmI()},r}(Error),JsonqlResolverNotFoundError=function(e){function r(){for(var t=[],n=arguments.length;n--;)t[n]=arguments[n];e.apply(this,t),this.message=t[0],this.detail=t[1],this.className=r.name,Error.captureStackTrace&&Error.captureStackTrace(this,r)}e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r;var t={statusCode:{configurable:!0},name:{configurable:!0}};return t.statusCode.get=function(){return 404},t.name.get=function(){return"JsonqlResolverNotFoundError"},Object.defineProperties(r,t),r}(JsonqlBaseError),JsonqlEnumError=function(e){function r(){for(var t=[],n=arguments.length;n--;)t[n]=arguments[n];e.apply(this,t),this.message=t[0],this.detail=t[1],this.className=r.name,e.captureStackTrace&&e.captureStackTrace(this,r)}e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r;var t={name:{configurable:!0}};return t.name.get=function(){return"JsonqlEnumError"},Object.defineProperties(r,t),r}(Error),JsonqlTypeError=function(e){function r(){for(var t=[],n=arguments.length;n--;)t[n]=arguments[n];e.apply(this,t),this.message=t[0],this.detail=t[1],this.className=r.name,e.captureStackTrace&&e.captureStackTrace(this,r)}e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r;var t={name:{configurable:!0}};return t.name.get=function(){return"JsonqlTypeError"},Object.defineProperties(r,t),r}(Error),JsonqlCheckerError=function(e){function r(){for(var t=[],n=arguments.length;n--;)t[n]=arguments[n];e.apply(this,t),this.message=t[0],this.detail=t[1],this.className=r.name,e.captureStackTrace&&e.captureStackTrace(this,r)}e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r;var t={name:{configurable:!0}};return t.name.get=function(){return"JsonqlCheckerError"},Object.defineProperties(r,t),r}(Error),JsonqlValidationError$1=function(e){function r(){for(var t=[],n=arguments.length;n--;)t[n]=arguments[n];e.apply(this,t),this.message=t[0],this.detail=t[1],this.className=r.name,Error.captureStackTrace&&Error.captureStackTrace(this,r)}e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r;var t={name:{configurable:!0}};return t.name.get=function(){return"JsonqlValidationError"},Object.defineProperties(r,t),r}(JsonqlBaseError),DATA_KEY="data",ERROR_KEY="error",JSONQL_PATH="jsonql",DEFAULT_TYPE="any",QUERY_NAME="query",MUTATION_NAME="mutation",SOCKET_NAME="socket",QUERY_ARG_NAME="args",KEY_WORD="continue",TYPE_KEY="type",OPTIONAL_KEY="optional",ENUM_KEY="enumv",ARGS_KEY="args",CHECKER_KEY="checker",ALIAS_KEY="alias",LOGIN_NAME="login",ISSUER_NAME=LOGIN_NAME,LOGOUT_NAME="logout",OR_SEPERATOR="|",STRING_TYPE="string",BOOLEAN_TYPE="boolean",ARRAY_TYPE="array",OBJECT_TYPE="object",NUMBER_TYPE="number",ARRAY_TYPE_LFT="array.<",ARRAY_TYPE_RGT=">",NO_ERROR_MSG="No message",NO_STATUS_CODE=-1,LOGIN_EVENT_NAME="__login__",LOGOUT_EVENT_NAME="__logout__",WS_REPLY_TYPE="__reply__",WS_EVT_NAME="__event__",WS_DATA_NAME="__data__",EMIT_REPLY_TYPE="emit",ACKNOWLEDGE_REPLY_TYPE="acknowledge",ERROR_TYPE="error",NSP_SET="nspSet",PUBLIC_NAMESPACE="publicNamespace",JS_WS_SOCKET_IO_NAME="socket.io",JS_WS_NAME="ws",ON_MESSAGE_PROP_NAME$1="onMessage",ON_RESULT_PROP_NAME$1="onResult",ON_ERROR_PROP_NAME$1="onError",ON_READY_PROP_NAME="onReady",ON_LOGIN_PROP_NAME="onLogin",SEND_MSG_PROP_NAME="send",MESSAGE_PROP_NAME="message",RESULT_PROP_NAME="result",ERROR_PROP_NAME="error",READY_PROP_NAME$1="ready",LOGIN_PROP_NAME="login",NOT_LOGIN_ERR_MSG="NOT LOGIN",TOKEN_PARAM_NAME="token",IO_ROUNDTRIP_LOGIN="roundtip",IO_HANDSHAKE_LOGIN="handshake",JsonqlError=function(e){function r(){for(var t=[],n=arguments.length;n--;)t[n]=arguments[n];e.apply(this,t),this.message=t[0],this.detail=t[1],this.className=r.name,Error.captureStackTrace&&Error.captureStackTrace(this,r)}e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r;var t={name:{configurable:!0},statusCode:{configurable:!0}};return t.name.get=function(){return"JsonqlError"},t.statusCode.get=function(){return NO_STATUS_CODE},Object.defineProperties(r,t),r}(JsonqlBaseError),JsonqlServerError=function(e){function r(t,n){e.call(this,n),this.statusCode=t,this.className=r.name}e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r;var t={name:{configurable:!0}};return t.name.get=function(){return"JsonqlServerError"},Object.defineProperties(r,t),r}(Error);function finalCatch(e){if(Array.isArray(e))throw new JsonqlValidationError$1("",e);var r=e.message||NO_ERROR_MSG,t=e.detail||e;switch(!0){case e instanceof Jsonql406Error:throw new Jsonql406Error(r,t);case e instanceof Jsonql500Error:throw new Jsonql500Error(r,t);case e instanceof JsonqlAuthorisationError:throw new JsonqlAuthorisationError(r,t);case e instanceof JsonqlContractAuthError:throw new JsonqlContractAuthError(r,t);case e instanceof JsonqlResolverAppError:throw new JsonqlResolverAppError(r,t);case e instanceof JsonqlResolverNotFoundError:throw new JsonqlResolverNotFoundError(r,t);case e instanceof JsonqlEnumError:throw new JsonqlEnumError(r,t);case e instanceof JsonqlTypeError:throw new JsonqlTypeError(r,t);case e instanceof JsonqlCheckerError:throw new JsonqlCheckerError(r,t);case e instanceof JsonqlValidationError$1:throw new JsonqlValidationError$1(r,t);case e instanceof JsonqlServerError:throw new JsonqlServerError(r,t);default:throw new JsonqlError(r,t)}}var SOCKET_IO=JS_WS_SOCKET_IO_NAME,MISSING_PROP_ERR="Missing property in contract!",EMIT_EVT=EMIT_REPLY_TYPE,UNKNOWN_RESULT="UKNNOWN RESULT!",MY_NAMESPACE="myNamespace",CB_FN_NAME="on",isArray=Array.isArray,freeGlobal="object"==typeof global$1&&global$1&&global$1.Object===Object&&global$1,freeSelf="object"==typeof self&&self&&self.Object===Object&&self,root=freeGlobal||freeSelf||Function("return this")(),Symbol=root.Symbol,objectProto=Object.prototype,hasOwnProperty=objectProto.hasOwnProperty,nativeObjectToString=objectProto.toString,symToStringTag=Symbol?Symbol.toStringTag:void 0;function getRawTag(e){var r=hasOwnProperty.call(e,symToStringTag),t=e[symToStringTag];try{e[symToStringTag]=void 0;var n=!0}catch(e){}var o=nativeObjectToString.call(e);return n&&(r?e[symToStringTag]=t:delete e[symToStringTag]),o}var objectProto$1=Object.prototype,nativeObjectToString$1=objectProto$1.toString;function objectToString(e){return nativeObjectToString$1.call(e)}var nullTag="[object Null]",undefinedTag="[object Undefined]",symToStringTag$1=Symbol?Symbol.toStringTag:void 0;function baseGetTag(e){return null==e?void 0===e?undefinedTag:nullTag:symToStringTag$1&&symToStringTag$1 in Object(e)?getRawTag(e):objectToString(e)}function overArg(e,r){return function(t){return e(r(t))}}var getPrototype=overArg(Object.getPrototypeOf,Object);function isObjectLike(e){return null!=e&&"object"==typeof e}var objectTag="[object Object]",funcProto=Function.prototype,objectProto$2=Object.prototype,funcToString=funcProto.toString,hasOwnProperty$1=objectProto$2.hasOwnProperty,objectCtorString=funcToString.call(Object);function isPlainObject(e){if(!isObjectLike(e)||baseGetTag(e)!=objectTag)return!1;var r=getPrototype(e);if(null===r)return!0;var t=hasOwnProperty$1.call(r,"constructor")&&r.constructor;return"function"==typeof t&&t instanceof t&&funcToString.call(t)==objectCtorString}function arrayMap(e,r){for(var t=-1,n=null==e?0:e.length,o=Array(n);++to?0:o+r),(t=t>o?o:t)<0&&(t+=o),o=r>t?0:t-r>>>0,r>>>=0;for(var a=Array(o);++n=n?e:baseSlice(e,r,t)}function baseFindIndex(e,r,t,n){for(var o=e.length,a=t+(n?1:-1);n?a--:++a-1;);return t}function charsStartIndex(e,r){for(var t=-1,n=e.length;++t-1;);return t}function asciiToArray(e){return e.split("")}var rsAstralRange="\\ud800-\\udfff",rsComboMarksRange="\\u0300-\\u036f",reComboHalfMarksRange="\\ufe20-\\ufe2f",rsComboSymbolsRange="\\u20d0-\\u20ff",rsComboRange=rsComboMarksRange+reComboHalfMarksRange+rsComboSymbolsRange,rsVarRange="\\ufe0e\\ufe0f",rsZWJ="\\u200d",reHasUnicode=RegExp("["+rsZWJ+rsAstralRange+rsComboRange+rsVarRange+"]");function hasUnicode(e){return reHasUnicode.test(e)}var rsAstralRange$1="\\ud800-\\udfff",rsComboMarksRange$1="\\u0300-\\u036f",reComboHalfMarksRange$1="\\ufe20-\\ufe2f",rsComboSymbolsRange$1="\\u20d0-\\u20ff",rsComboRange$1=rsComboMarksRange$1+reComboHalfMarksRange$1+rsComboSymbolsRange$1,rsVarRange$1="\\ufe0e\\ufe0f",rsAstral="["+rsAstralRange$1+"]",rsCombo="["+rsComboRange$1+"]",rsFitz="\\ud83c[\\udffb-\\udfff]",rsModifier="(?:"+rsCombo+"|"+rsFitz+")",rsNonAstral="[^"+rsAstralRange$1+"]",rsRegional="(?:\\ud83c[\\udde6-\\uddff]){2}",rsSurrPair="[\\ud800-\\udbff][\\udc00-\\udfff]",rsZWJ$1="\\u200d",reOptMod=rsModifier+"?",rsOptVar="["+rsVarRange$1+"]?",rsOptJoin="(?:"+rsZWJ$1+"(?:"+[rsNonAstral,rsRegional,rsSurrPair].join("|")+")"+rsOptVar+reOptMod+")*",rsSeq=rsOptVar+reOptMod+rsOptJoin,rsSymbol="(?:"+[rsNonAstral+rsCombo+"?",rsCombo,rsRegional,rsSurrPair,rsAstral].join("|")+")",reUnicode=RegExp(rsFitz+"(?="+rsFitz+")|"+rsSymbol+rsSeq,"g");function unicodeToArray(e){return e.match(reUnicode)||[]}function stringToArray(e){return hasUnicode(e)?unicodeToArray(e):asciiToArray(e)}function toString(e){return null==e?"":baseToString(e)}var reTrim=/^\s+|\s+$/g;function trim(e,r,t){if((e=toString(e))&&(t||void 0===r))return e.replace(reTrim,"");if(!e||!(r=baseToString(r)))return e;var n=stringToArray(e),o=stringToArray(r);return castSlice(n,charsStartIndex(n,o),charsEndIndex(n,o)+1).join("")}var inArray=function(e,r){return!!e.filter((function(e){return e===r})).length},toArray=function(e){return isArray(e)?e:[e]},isObjectHasKey=function(e,r){var t=Object.keys(e);return inArray(t,r)},createEvt=function(){for(var e=[],r=arguments.length;r--;)e[r]=arguments[r];return e.join("_")},isFunc=function(e){if("function"==typeof e)return!0;console.error("Expect to be Function type!")},chainFns=function(e){for(var r=[],t=arguments.length-1;t-- >0;)r[t]=arguments[t+1];return function(){for(var t=[],n=arguments.length;n--;)t[n]=arguments[n];return r.reduce((function(e,r){return Reflect.apply(r,null,toArray(e))}),Reflect.apply(e,null,t))}};function listCacheClear(){this.__data__=[],this.size=0}function eq(e,r){return e===r||e!=e&&r!=r}function assocIndexOf(e,r){for(var t=e.length;t--;)if(eq(e[t][0],r))return t;return-1}var arrayProto=Array.prototype,splice=arrayProto.splice;function listCacheDelete(e){var r=this.__data__,t=assocIndexOf(r,e);return!(t<0)&&(t==r.length-1?r.pop():splice.call(r,t,1),--this.size,!0)}function listCacheGet(e){var r=this.__data__,t=assocIndexOf(r,e);return t<0?void 0:r[t][1]}function listCacheHas(e){return assocIndexOf(this.__data__,e)>-1}function listCacheSet(e,r){var t=this.__data__,n=assocIndexOf(t,e);return n<0?(++this.size,t.push([e,r])):t[n][1]=r,this}function ListCache(e){var r=-1,t=null==e?0:e.length;for(this.clear();++r-1&&e%1==0&&e<=MAX_SAFE_INTEGER}function isArrayLike(e){return null!=e&&isLength(e.length)&&!isFunction(e)}function isArrayLikeObject(e){return isObjectLike(e)&&isArrayLike(e)}function stubFalse(){return!1}var freeExports$1="object"==typeof exports&&exports&&!exports.nodeType&&exports,freeModule$1=freeExports$1&&"object"==typeof module&&module&&!module.nodeType&&module,moduleExports$1=freeModule$1&&freeModule$1.exports===freeExports$1,Buffer$1=moduleExports$1?root.Buffer:void 0,nativeIsBuffer=Buffer$1?Buffer$1.isBuffer:void 0,isBuffer=nativeIsBuffer||stubFalse,argsTag$1="[object Arguments]",arrayTag="[object Array]",boolTag="[object Boolean]",dateTag="[object Date]",errorTag="[object Error]",funcTag$1="[object Function]",mapTag="[object Map]",numberTag="[object Number]",objectTag$1="[object Object]",regexpTag="[object RegExp]",setTag="[object Set]",stringTag="[object String]",weakMapTag="[object WeakMap]",arrayBufferTag="[object ArrayBuffer]",dataViewTag="[object DataView]",float32Tag="[object Float32Array]",float64Tag="[object Float64Array]",int8Tag="[object Int8Array]",int16Tag="[object Int16Array]",int32Tag="[object Int32Array]",uint8Tag="[object Uint8Array]",uint8ClampedTag="[object Uint8ClampedArray]",uint16Tag="[object Uint16Array]",uint32Tag="[object Uint32Array]",typedArrayTags={};function baseIsTypedArray(e){return isObjectLike(e)&&isLength(e.length)&&!!typedArrayTags[baseGetTag(e)]}function baseUnary(e){return function(r){return e(r)}}typedArrayTags[float32Tag]=typedArrayTags[float64Tag]=typedArrayTags[int8Tag]=typedArrayTags[int16Tag]=typedArrayTags[int32Tag]=typedArrayTags[uint8Tag]=typedArrayTags[uint8ClampedTag]=typedArrayTags[uint16Tag]=typedArrayTags[uint32Tag]=!0,typedArrayTags[argsTag$1]=typedArrayTags[arrayTag]=typedArrayTags[arrayBufferTag]=typedArrayTags[boolTag]=typedArrayTags[dataViewTag]=typedArrayTags[dateTag]=typedArrayTags[errorTag]=typedArrayTags[funcTag$1]=typedArrayTags[mapTag]=typedArrayTags[numberTag]=typedArrayTags[objectTag$1]=typedArrayTags[regexpTag]=typedArrayTags[setTag]=typedArrayTags[stringTag]=typedArrayTags[weakMapTag]=!1;var freeExports$2="object"==typeof exports&&exports&&!exports.nodeType&&exports,freeModule$2=freeExports$2&&"object"==typeof module&&module&&!module.nodeType&&module,moduleExports$2=freeModule$2&&freeModule$2.exports===freeExports$2,freeProcess=moduleExports$2&&freeGlobal.process,nodeUtil=function(){try{var e=freeModule$2&&freeModule$2.require&&freeModule$2.require("util").types;return e||freeProcess&&freeProcess.binding&&freeProcess.binding("util")}catch(e){}}(),nodeIsTypedArray=nodeUtil&&nodeUtil.isTypedArray,isTypedArray=nodeIsTypedArray?baseUnary(nodeIsTypedArray):baseIsTypedArray;function safeGet(e,r){if(("constructor"!==r||"function"!=typeof e[r])&&"__proto__"!=r)return e[r]}var objectProto$8=Object.prototype,hasOwnProperty$6=objectProto$8.hasOwnProperty;function assignValue(e,r,t){var n=e[r];hasOwnProperty$6.call(e,r)&&eq(n,t)&&(void 0!==t||r in e)||baseAssignValue(e,r,t)}function copyObject(e,r,t,n){var o=!t;t||(t={});for(var a=-1,i=r.length;++a-1&&e%1==0&&e0){if(++r>=HOT_COUNT)return arguments[0]}else r=0;return e.apply(void 0,arguments)}}var setToString=shortOut(baseSetToString);function baseRest(e,r){return setToString(overRest(e,r,identity),e+"")}function isIterateeCall(e,r,t){if(!isObject(t))return!1;var n=typeof r;return!!("number"==n?isArrayLike(t)&&isIndex(r,t.length):"string"==n&&r in t)&&eq(t[r],e)}function createAssigner(e){return baseRest((function(r,t){var n=-1,o=t.length,a=o>1?t[o-1]:void 0,i=o>2?t[2]:void 0;for(a=e.length>3&&"function"==typeof a?(o--,a):void 0,i&&isIterateeCall(t[0],t[1],i)&&(a=o<3?void 0:a,o=1),r=Object(r);++n0;)r[t]=arguments[t+1];return function(){for(var t=[],n=arguments.length;n--;)t[n]=arguments[n];return r.reduce((function(e,r){return e.then((function(e){return r(e)}))}),Reflect.apply(e,null,t))}}function objDefineProps(e,r,t,n){return void 0===n&&(n=null),void 0===Object.getOwnPropertyDescriptor(e,r)&&Object.defineProperty(e,r,{set:t,get:null===n?function(){return null}:n}),e}function injectToFn(e,r,t,n){void 0===n&&(n=!1);var o=Object.getOwnPropertyDescriptor(e,r);return!1===n&&void 0!==o?e:(Object.defineProperty(e,r,{value:t,writable:n}),e)}function checkIsContract(e){return isPlainObject(e)&&(isObjectHasKey(e,QUERY_NAME)||isObjectHasKey(e,MUTATION_NAME)||isObjectHasKey(e,SOCKET_NAME))}function extractSocketPart(e){return!!isObjectHasKey(e,"socket")&&e.socket}function groupByNamespace(e,r){void 0===r&&(r=!1);var t=extractSocketPart(e);if(!1===t){if(r)return e;throw new JsonqlError("socket not found in contract!")}var n,o={},a=0;for(var i in t){var s=t[i],c=s.namespace;c&&(o[c]||(++a,o[c]={}),o[c][i]=s,n||s.public&&(n=c))}return{size:a,nspSet:o,publicNamespace:n}}function getNamespaceInOrder(e,r){var t=[];for(var n in e)n===r?t[1]=n:t[0]=n;return t}var stringTag$1="[object String]";function isString(e){return"string"==typeof e||!isArray(e)&&isObjectLike(e)&&baseGetTag(e)==stringTag$1}var formatPayload=function(e){var r;return(r={})[QUERY_ARG_NAME]=e,r};function getNameFromPayload(e){return Object.keys(e)[0]}function createQuery(e,r,t){var n;if(void 0===r&&(r=[]),void 0===t&&(t=!1),isString(e)&&isArray(r)){var o=formatPayload(r);return!0===t?o:((n={})[e]=o,n)}throw new JsonqlValidationError$1("[createQuery] expect resolverName to be string and args to be array!",{resolverName:e,args:r})}function createQueryStr(e,r,t){return void 0===r&&(r=[]),void 0===t&&(t=!1),JSON.stringify(createQuery(e,r,t))}var isContract=checkIsContract;function isNull(e){return null===e}function isUndefined(e){return void 0===e}var boolTag$1="[object Boolean]";function isBoolean(e){return!0===e||!1===e||isObjectLike(e)&&baseGetTag(e)==boolTag$1}var numberTag$1="[object Number]";function isNumber(e){return"number"==typeof e||isObjectLike(e)&&baseGetTag(e)==numberTag$1}function isNaN(e){return isNumber(e)&&e!=+e}function arrayFilter(e,r){for(var t=-1,n=null==e?0:e.length,o=0,a=[];++ts))return!1;var u=a.get(e);if(u&&a.get(r))return u==r;var l=-1,f=!0,p=t&COMPARE_UNORDERED_FLAG?new SetCache:void 0;for(a.set(e,r),a.set(r,e);++l0))},isArrayLike$1=function(e){if(e.indexOf(ARRAY_TYPE_LFT$1)>-1&&e.indexOf(ARRAY_TYPE_RGT$1)>-1){var r=e.replace(ARRAY_TYPE_LFT$1,"").replace(ARRAY_TYPE_RGT$1,"");return r.indexOf(OR_SEPERATOR$1)?r.split(OR_SEPERATOR$1):[r]}return!1},arrayTypeHandler=function(e,r){var t=e.arg;return r.length>1?!t.filter((function(e){return!(r.length>r.filter((function(r){return!combineFn(r)(e)})).length)})).length:r.length>r.filter((function(e){return!checkIsArray(t,e)})).length},checkIsObject=function(e,r){if(void 0===r&&(r=null),isPlainObject(e)){if(!r)return!0;if(checkIsArray(r))return!r.filter((function(r){var t=e[r.name];return!(r.type.length>r.type.filter((function(e){var r;return!!isUndefined(t)||(!1!==(r=isArrayLike$1(e))?!arrayTypeHandler({arg:t},r):!combineFn(e)(t))})).length)})).length}return!1},objectTypeHandler=function(e){var r=e.arg,t=e.param,n=[r];return Array.isArray(t.keys)&&t.keys.length&&n.push(t.keys),checkIsObject.apply(null,n)};function log(){for(var e=[],r=arguments.length;r--;)e[r]=arguments[r];try{window&&window.console&&Reflect.apply(console.log,console,e)}catch(e){}}var optionalHandler=function(e){var r=e.arg,t=e.param;return!!notEmpty(r)&&!(t.type.length>t.type.filter((function(r){return validateHandler(r,e)})).length)},validateHandler=function(e,r){var t;switch(!0){case e===OBJECT_TYPE$1:return!objectTypeHandler(r);case e===ARRAY_TYPE$1:return!checkIsArray(r.arg);case!1!==(t=isArrayLike$1(e)):return!arrayTypeHandler(r,t);default:return!combineFn(e)(r.arg)}},getOptionalValue=function(e,r){return isUndefined(e)?!0!==r.optional||isUndefined(r.defaultvalue)?null:r.defaultvalue:e},normalizeArgs=function(e,r){if(!checkIsArray(r))throw new JsonqlError(PARAMS_NOT_ARRAY_ERR);if(0===r.length)return[];if(!checkIsArray(e))throw new JsonqlError(ARGS_NOT_ARRAY_ERR);switch(!0){case e.length==r.length:return log(1),e.map((function(e,t){return{arg:e,index:t,param:r[t]}}));case!0===r[0].variable:log(2);var t=r[0].type;return e.map((function(e,n){return{arg:e,index:n,param:r[n]||{type:t,name:"_"}}}));case e.lengthr.length:log(4);var n=r.length,o=[DEFAULT_TYPE$1];return e.map((function(e,t){var a=t>=n||!!r[t].optional,i=r[t]||{type:o,name:"_"+t};return{arg:a?getOptionalValue(e,i):e,index:t,param:i,optional:a}}));default:throw log(5),new JsonqlError(EXCEPTION_CASE_ERR,{args:e,params:r})}},processReturn=function(e){return e.map((function(e){return e.arg}))},validateSync=function(e,r,t){var n;void 0===t&&(t=!1);var o=normalizeArgs(e,r),a=o.filter((function(e){return!0===e.optional||!0===e.param.optional?optionalHandler(e):!(e.param.type.length>e.param.type.filter((function(r){return validateHandler(r,e)})).length)}));return t?((n={})[ERROR_KEY]=a,n[DATA_KEY]=processReturn(o),n):a},validateAsync=function(e,r,t){return void 0===t&&(t=!1),new Promise((function(n,o){var a=validateSync(e,r,t);return t?a[ERROR_KEY].length?o(a[ERROR_KEY]):n(a[DATA_KEY]):a.length?o(a):n([])}))},isInArray=function(e,r){return!!e.filter((function(e){return e===r})).length},isKeyInObject=function(e,r){var t=Object.keys(e);return isInArray(t,r)},isEmpty=function(e){return!notEmpty(e)};function mapAliasConfigKeys(e,r){var t=omitBy(r,(function(e,r){return!e[ALIAS_KEY$1]}));return isEqual(t,{})?e:mapKeys(e,(function(e,r){return findKey(t,(function(e){return e.alias===r}))||r}))}function preservePristineValues(e,r){var t=mapAliasConfigKeys(e,r);return{pristineValues:mapValues(omitBy(r,(function(e,r){return isKeyInObject(t,r)})),(function(e){return e.args})),checkAgainstAppProps:omitBy(r,(function(e,r){return!isKeyInObject(t,r)})),config:t}}function processConfigAction(e,r){return mapValues(r,(function(r,t){var n,o;return isUndefined(e[t])||!0===r[OPTIONAL_KEY$1]&&isEmpty(e[t])?merge({},r,((n={})[KEY_WORD$1]=!0,n)):((o={})[ARGS_KEY$1]=e[t],o[TYPE_KEY$1]=r[TYPE_KEY$1],o[OPTIONAL_KEY$1]=r[OPTIONAL_KEY$1]||!1,o[ENUM_KEY$1]=r[ENUM_KEY$1]||!1,o[CHECKER_KEY$1]=r[CHECKER_KEY$1]||!1,o)}))}function prepareArgsForValidation(e,r){var t=preservePristineValues(e,r),n=t.config,o=t.pristineValues;return[processConfigAction(n,t.checkAgainstAppProps),o]}var toArray$1=function(e){return checkIsArray(e)?e:[e]},inArray$1=function(e,r){return!!e.filter((function(e){return e===r})).length};function validateHandler$1(e,r){var t,n=[[e[ARGS_KEY$1]],[(t={},t[TYPE_KEY$1]=toArray$1(e[TYPE_KEY$1]),t[OPTIONAL_KEY$1]=e[OPTIONAL_KEY$1],t)]];return Reflect.apply(r,null,n)}var enumHandler=function(e,r){return!checkIsArray(r)||inArray$1(r,e)},checkerHandler=function(e,r){try{return!!isFunction(r)&&r.apply(null,[e])}catch(e){return!1}};function runValidationAction(e){return function(r,t){if(r[KEY_WORD$1])return r[ARGS_KEY$1];var n=validateHandler$1(r,e);if(n.length)throw log("runValidationAction",t,r),new JsonqlTypeError(t,n);if(!1!==r[ENUM_KEY$1]&&!enumHandler(r[ARGS_KEY$1],r[ENUM_KEY$1]))throw log(ENUM_KEY$1,r[ENUM_KEY$1]),new JsonqlEnumError(t);if(!1!==r[CHECKER_KEY$1]&&!checkerHandler(r[ARGS_KEY$1],r[CHECKER_KEY$1]))throw log(CHECKER_KEY$1,r[CHECKER_KEY$1]),new JsonqlCheckerError(t);return r[ARGS_KEY$1]}}function runValidation(e,r){var t=e[0],n=e[1],o=mapValues(t,runValidationAction(r));return merge(o,n)}var configToArgs=function(e,r){return Promise.resolve(prepareArgsForValidation(e,r))};function checkOptionsAsync(e,r,t,n){return void 0===e&&(e={}),configToArgs(e,r).then((function(e){return runValidation(e,n)})).then((function(e){return merge({},e,t)}))}function constructConfigFn(e,r,t,n,o,a){void 0===t&&(t=!1),void 0===n&&(n=!1),void 0===o&&(o=!1),void 0===a&&(a=!1);var i={};return i[ARGS_KEY]=e,i[TYPE_KEY]=r,!0===t&&(i[OPTIONAL_KEY]=!0),checkIsArray(n)&&(i[ENUM_KEY]=n),isFunction(o)&&(i[CHECKER_KEY]=o),isString(a)&&(i[ALIAS_KEY]=a),i}var createConfig=function(e,r,t){void 0===t&&(t={});var n=t[OPTIONAL_KEY],o=t[ENUM_KEY],a=t[CHECKER_KEY],i=t[ALIAS_KEY];return constructConfigFn.apply(null,[e,r,n,o,a,i])},checkConfigAsync=function(e){return function(r,t,n){return void 0===n&&(n={}),checkOptionsAsync(r,t,n,e)}},isString$1=checkIsString,validateAsync$1=validateAsync,createConfig$1=createConfig,checkConfigAsync$1=checkConfigAsync(validateSync),BASE_NAME="jsonql-ws-client",getDebug=function(e){try{if(window.debug)return window.debug(BASE_NAME).extend(e)}catch(e){}try{if(global$1.debug)return global$1.debug(BASE_NAME).extend(e)}catch(e){}return function(){for(var r=[],t=arguments.length;t--;)r[t]=arguments[t];console.info.apply(null,[BASE_NAME,e].concat(r))}};try{window&&window.localStorage&&window.DEBUG&&localStorage.setItem("DEBUG",BASE_NAME+"*")}catch(e){}var NB_EVENT_SERVICE_PRIVATE_STORE=new WeakMap,NB_EVENT_SERVICE_PRIVATE_LAZY=new WeakMap;function hashCode(e){return e.split("").reduce((function(e,r){return(e=(e<<5)-e+r.charCodeAt(0))&e}),0)}var SuspendClass=function(){this.__suspend__=null,this.queueStore=new Set},prototypeAccessors={$suspend:{configurable:!0},$queues:{configurable:!0}};prototypeAccessors.$suspend.set=function(e){var r=this;if("boolean"!=typeof e)throw new Error("$suspend only accept Boolean value!");var t=this.__suspend__;this.__suspend__=e,this.logger("($suspend)","Change from "+t+" --\x3e "+e),!0===t&&!1===e&&setTimeout((function(){r.release()}),1)},SuspendClass.prototype.$queue=function(){for(var e=[],r=arguments.length;r--;)e[r]=arguments[r];return!0===this.__suspend__&&(this.logger("($queue)","added to $queue",e),this.queueStore.add(e)),this.__suspend__},prototypeAccessors.$queues.get=function(){var e=this.queueStore.size;return this.logger("($queues)","size: "+e),e>0?Array.from(this.queueStore):[]},SuspendClass.prototype.release=function(){var e=this,r=this.queueStore.size;if(this.logger("(release)","Release was called "+r),r>0){var t=Array.from(this.queueStore);this.queueStore.clear(),this.logger("queue",t),t.forEach((function(r){e.logger(r),Reflect.apply(e.$trigger,e,r)})),this.logger("Release size "+this.queueStore.size)}},Object.defineProperties(SuspendClass.prototype,prototypeAccessors);var NbEventServiceBase=function(e){function r(r){void 0===r&&(r={}),e.call(this),r.logger&&"function"==typeof r.logger&&(this.logger=r.logger),this.keep=r.keep,this.result=r.keep?[]:null,this.normalStore=new Map,this.lazyStore=new Map}e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r;var t={normalStore:{configurable:!0},lazyStore:{configurable:!0}};return r.prototype.validateEvt=function(){for(var e=this,r=[],t=arguments.length;t--;)r[t]=arguments[t];return r.forEach((function(r){if("string"!=typeof r)throw e.logger("(validateEvt)",r),new Error("event name must be string type!")})),!0},r.prototype.validate=function(e,r){if(this.validateEvt(e)&&"function"==typeof r)return!0;throw new Error("callback required to be function type!")},r.prototype.validateType=function(e){return!!["on","only","once","onlyOnce"].filter((function(r){return e===r})).length},r.prototype.run=function(e,r,t){this.logger("(run)",e,r,t),this.$done=Reflect.apply(e,t,this.toArray(r))},r.prototype.takeFromStore=function(e,r){void 0===r&&(r="lazyStore");var t=this[r];if(t){if(this.logger("(takeFromStore)",r,t),t.has(e)){var n=t.get(e);return this.logger("(takeFromStore)","has "+e,n),t.delete(e),n}return!1}throw new Error(r+" is not supported!")},r.prototype.addToStore=function(e,r){for(var t,n=[],o=arguments.length-2;o-- >0;)n[o]=arguments[o+2];if(e.has(r)?(this.logger("(addToStore)",r+" existed"),t=e.get(r)):(this.logger("(addToStore)","create new Set for "+r),t=new Set),n.length>2)if(Array.isArray(n[0])){var a=n[2];this.checkTypeInLazyStore(r,a)||t.add(n)}else this.checkContentExist(n,t)||(this.logger("(addToStore)","insert new",n),t.add(n));else t.add(n);return e.set(r,t),[e,t.size]},r.prototype.checkContentExist=function(e,r){return!!Array.from(r).filter((function(r){return r[0]===e[0]})).length},r.prototype.checkTypeInStore=function(e,r){this.validateEvt(e,r);var t=this.$get(e,!0);return!1===t||!t.filter((function(e){var t=e[3];return r!==t})).length},r.prototype.checkTypeInLazyStore=function(e,r){this.validateEvt(e,r);var t=this.lazyStore.get(e);return this.logger("(checkTypeInLazyStore)",t),!!t&&!!Array.from(t).filter((function(e){return e[2]!==r})).length},r.prototype.addToNormalStore=function(e,r,t,n){if(void 0===n&&(n=null),this.logger("(addToNormalStore)",e,r,"try to add to normal store"),this.checkTypeInStore(e,r)){this.logger("(addToNormalStore)",r+" can add to "+e+" normal store");var o=this.hashFnToKey(t),a=[this.normalStore,e,o,t,n,r],i=Reflect.apply(this.addToStore,this,a),s=i[0],c=i[1];return this.normalStore=s,c}return!1},r.prototype.addToLazyStore=function(e,r,t,n){void 0===r&&(r=[]),void 0===t&&(t=null),void 0===n&&(n=!1);var o=[this.lazyStore,e,this.toArray(r),t];n&&o.push(n);var a=Reflect.apply(this.addToStore,this,o),i=a[0],s=a[1];return this.lazyStore=i,s},r.prototype.toArray=function(e){return Array.isArray(e)?e:[e]},t.normalStore.set=function(e){NB_EVENT_SERVICE_PRIVATE_STORE.set(this,e)},t.normalStore.get=function(){return NB_EVENT_SERVICE_PRIVATE_STORE.get(this)},t.lazyStore.set=function(e){NB_EVENT_SERVICE_PRIVATE_LAZY.set(this,e)},t.lazyStore.get=function(){return NB_EVENT_SERVICE_PRIVATE_LAZY.get(this)},r.prototype.hashFnToKey=function(e){return hashCode(e.toString())+""},Object.defineProperties(r.prototype,t),r}(SuspendClass),EventService=function(e){function r(r){void 0===r&&(r={}),e.call(this,r)}e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r;var t={$done:{configurable:!0}};return r.prototype.logger=function(){},r.prototype.$on=function(e,r,t){var n=this;void 0===t&&(t=null);this.validate(e,r);var o=this.takeFromStore(e);if(!1===o)return this.logger("($on)",e+" callback is not in lazy store"),this.addToNormalStore(e,"on",r,t);this.logger("($on)",e+" found in lazy store");var a=0;return o.forEach((function(o){var i=o[0],s=o[1],c=o[2];if(c&&"on"!==c)throw new Error("You are trying to register an event already been taken by other type: "+c);n.logger("($on)","call run on "+e),n.run(r,i,t||s),a+=n.addToNormalStore(e,"on",r,t||s)})),a},r.prototype.$once=function(e,r,t){void 0===t&&(t=null),this.validate(e,r);var n=this.takeFromStore(e);this.normalStore;if(!1===n)return this.logger("($once)",e+" not in the lazy store"),this.addToNormalStore(e,"once",r,t);this.logger("($once)",n);var o=Array.from(n)[0],a=o[0],i=o[1],s=o[2];if(s&&"once"!==s)throw new Error("You are trying to register an event already been taken by other type: "+s);this.logger("($once)","call run for "+e),this.run(r,a,t||i),this.$off(e)},r.prototype.$only=function(e,r,t){var n=this;void 0===t&&(t=null),this.validate(e,r);var o=!1,a=this.takeFromStore(e);(this.normalStore.has(e)||(this.logger("($only)",e+" add to store"),o=this.addToNormalStore(e,"only",r,t)),!1!==a)&&(this.logger("($only)",e+" found data in lazy store to execute"),Array.from(a).forEach((function(o){var a=o[0],i=o[1],s=o[2];if(s&&"only"!==s)throw new Error("You are trying to register an event already been taken by other type: "+s);n.logger("($only)","call run for "+e),n.run(r,a,t||i)})));return o},r.prototype.$onlyOnce=function(e,r,t){void 0===t&&(t=null),this.validate(e,r);var n=!1,o=this.takeFromStore(e);if(this.normalStore.has(e)||(this.logger("($onlyOnce)",e+" add to store"),n=this.addToNormalStore(e,"onlyOnce",r,t)),!1!==o){this.logger("($onlyOnce)",o);var a=Array.from(o)[0],i=a[0],s=a[1],c=a[2];if(c&&"onlyOnce"!==c)throw new Error("You are trying to register an event already been taken by other type: "+c);this.logger("($onlyOnce)","call run for "+e),this.run(r,i,t||s),this.$off(e)}return n},r.prototype.$replace=function(e,r,t,n){if(void 0===t&&(t=null),void 0===n&&(n="on"),this.validateType(n)){this.$off(e);var o=this["$"+n];return this.logger("($replace)",e,r),Reflect.apply(o,this,[e,r,t])}throw new Error(n+" is not supported!")},r.prototype.$trigger=function(e,r,t,n){void 0===r&&(r=[]),void 0===t&&(t=null),void 0===n&&(n=!1),this.validateEvt(e);var o=0,a=this.normalStore;if(this.logger("($trigger)","normalStore",a),a.has(e)){var i=this.$queue(e,r,t,n);if(this.logger("($trigger)",e,"found; add to queue: ",i),!0===i)return this.logger("($trigger)",e,"not executed. Exit now."),!1;for(var s=Array.from(a.get(e)),c=s.length,u=!1,l=0;l-1?r.indexOf("https")>-1?r.replace("https","wss"):r.replace("http","ws"):r};function createWsClient(e,r){return void 0===r&&(r=!1),!1===r?function(r){return new e(fixWss$1(r))}:function(r,t){var n=fixWss$1(r),o=t&&"string"==typeof t?n+"?"+TOKEN_PARAM_NAME+"="+t:n;try{return new e(o)}catch(e){return console.error("WebSocket Connection Error",e),!1}}}function createNspClient(e,r){var t=r.hostname,n=r.wssPath,o=r.wsOptions;return(0,r.nspClient)(e?[t,e].join("/"):n,o)}function createNspAuthClient(e,r){var t=r.hostname,n=r.wssPath,o=r.token,a=r.wsOptions,i=r.nspAuthClient,s=e?[t,e].join("/"):n;if(o&&"string"!=typeof o)throw new Error("Expect token to be string, but got "+o);return i(s,o,a)}function triggerNamespacesOnError(e,r,t,n){void 0===n&&(n={});var o=n.useCallbackStyle?ERROR_PROP_NAME:ON_ERROR_PROP_NAME$1;r.forEach((function(r){e.$call(createEvt(r,o),[{message:t,namespace:r}])}))}var debugFn$7=getDebug("client-event-handler"),notLoginWsHandler=function(e,r,t){var n=t.useCallbackStyle,o=n?ERROR_PROP_NAME:ON_ERROR_PROP_NAME$1,a=n?RESULT_PROP_NAME:ON_RESULT_PROP_NAME$1;r.$only(createEvt(e,EMIT_EVT),(function(t,n){debugFn$7("noLoginHandler hijack the ws call",e,t,n);var i={message:NOT_LOGIN_ERR_MSG};r.$call(createEvt(e,t,o),[i]),r.$call(createEvt(e,t,a),[{error:i}])}))},getPrivateNamespace=function(e){return e.length>1&&e[0]};function clientEventHandler(e,r,t,n,o,a){var i=getPrivateNamespace(o),s=!1;o.forEach((function(o){if(s=i===o,a[o]){debugFn$7("call bindWsHandler",s,o);var c=[o,a[o],t,s,e];if(e.serverType===SOCKET_IO){var u=r.nspSet;c.push(u[o])}Reflect.apply(n,null,c)}else notLoginWsHandler(o,t,e)})),t.$on(LOGOUT_EVENT_NAME,(function(){debugFn$7("LOGOUT_EVENT_NAME"),triggerNamespacesOnError(t,o,LOGOUT_EVENT_NAME),o.forEach((function(r){clearMainEmitEvt(t,r),a[r]=!1,notLoginWsHandler(r,t,e)}))}))}var keys$1=[WS_REPLY_TYPE,WS_EVT_NAME,WS_DATA_NAME],isWsReply=function(e){var r=e.data;return!!r&&(keys$1.filter((function(e){return isObjectHasKey(r,e)})).length===keys$1.length&&r)},extractWsPayload=function(e){var r,t=e.data,n=isString$1(t)?JSON.parse(t):t;if(!1!==(r=isWsReply(n)))return{resolverName:r[WS_EVT_NAME],data:r[WS_DATA_NAME],type:r[WS_REPLY_TYPE]};throw new JsonqlError("payload can not be decoded",e)},debugFn$8=getDebug("ws-main-handler"),errorTypeHandler=function(e,r,t,n,o){var a=[r];t&&(debugFn$8("a global error on "+r),a.push(t)),a.push(o);var i=Reflect.apply(createEvt,null,a),s=n.data||n;e.$trigger(i,[s])};function wsMainHandler(e,r,t,n,o){var a=o.useCallbackStyle,i=a?READY_PROP_NAME$1:ON_READY_PROP_NAME,s=a?LOGIN_PROP_NAME:ON_LOGIN_PROP_NAME,c=a?MESSAGE_PROP_NAME:ON_MESSAGE_PROP_NAME$1,u=a?RESULT_PROP_NAME:ON_RESULT_PROP_NAME$1,l=a?ERROR_PROP_NAME:ON_ERROR_PROP_NAME$1;r.onopen=function(){debugFn$8("ws.onopen listened"),t.$call(i,e),n&&(console.log("isPrivate and fire the "+s),t.$call(s,e)),t.$only(createEvt(e,EMIT_REPLY_TYPE),(function(e,t){debugFn$8("calling server",e,t),r.send(createQueryStr(e,t))}))},r.onmessage=function(r){try{var n=extractWsPayload(r),o=n.resolverName,a=n.type;switch(debugFn$8("Hear from server",a,n),a){case EMIT_REPLY_TYPE:var i=createEvt(e,o,c),s=t.$trigger(i,[n]);debugFn$8("EMIT_REPLY_TYPE",i,s);break;case ACKNOWLEDGE_REPLY_TYPE:var f=createEvt(e,o,u);t.$trigger(f,[n]);debugFn$8("ACKNOWLEDGE_REPLY_TYPE",f,n);break;case ERROR_TYPE:debugFn$8("ERROR_TYPE"),errorTypeHandler(t,e,o,n,l);break;default:debugFn$8("Unhandled event!",n),errorTypeHandler(t,e,o,n,l)}}catch(r){console.error("ws.onmessage error",r),errorTypeHandler(t,e,!1,r,l)}},r.onclose=function(){debugFn$8("ws.onclose callback")},t.$on(LOGOUT_EVENT_NAME,(function(){try{debugFn$8("terminate ws connection"),r.terminate()}catch(e){console.error("ws.terminate error",e)}}))}var debugFn$9=getDebug("ws-create-client"),createNsps=function(e,r,t){var n=r.nspSet,o=r.publicNamespace,a=!1,i=[],s={};if(e.enableAuth&&e.useJwt)a=!0,s=(i=getNamespaceInOrder(n,o)).map((function(r,n){var o,a,i;return 0===n?t?(e.token=t,(o={})[r]=createNspAuthClient(r,e),o):((a={})[r]=!1,a):((i={})[r]=createNspClient(r,e),i)})).reduce((function(e,r){return Object.assign(e,r)}),{});else{var c=getNameFromPayload(n);i.push(c),s[c]=createNspClient(!1,e)}return{nsps:s,namespaces:i,login:a}};function createClient(e,r,t){var n=[e,r,t,wsMainHandler],o=e.token,a=createNsps(e,r,o),i=a.nsps,s=a.namespaces,c=a.login;return Reflect.apply(clientEventHandler,null,n.concat([s,i])),c&&t.$only(LOGIN_EVENT_NAME,(function(o){clearMainEmitEvt(t,s);var a=createNsps(e,r,o);Reflect.apply(clientEventHandler,null,n.concat([a.namespaces,a.nsps]))})),{opts:e,nspMap:r,ee:t}}function createClientResolver(e){var r=createWsClient(e),t=createWsClient(e,!0);return function(e,n,o){return e.nspClient=r,e.nspAuthClient=t,createClient(e,n,o)}}var wsClientResolver=createClientResolver(WebSocket);global$1.debug=debug$2;var node=wsClient(wsClientResolver,constProps);module.exports=node; //# sourceMappingURL=jsonql-ws-client.cjs.js.map diff --git a/packages/@jsonql/ws/dist/jsonql-ws-client.umd.js b/packages/@jsonql/ws/dist/jsonql-ws-client.umd.js index 6feb18cd68b19fce5f12867f98935f88eb7dad91..105260e0cf155f6a700f53e9a35dcebc65860f0a 100644 --- a/packages/@jsonql/ws/dist/jsonql-ws-client.umd.js +++ b/packages/@jsonql/ws/dist/jsonql-ws-client.umd.js @@ -1,2 +1,2 @@ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("fs"),require("path")):"function"==typeof define&&define.amd?define(["fs","path"],e):(t=t||self).jsonqlWsClient=e(t.fs,t.path)}(this,(function(t,e){"use strict";t=t&&t.hasOwnProperty("default")?t.default:t;var r="data",n="error",o="jsonql",a="query",i="mutation",u="socket",c="type",s="optional",f="enumv",l="args",p="checker",h="alias",v="No message",d="__login__",g="__logout__",y="emit",b="acknowledge",_="error",m="nspSet",w="publicNamespace",j="onResult",O="onError",S="onReady",E="onLogin",k="token",$="socket.io",T=y,A="UKNNOWN RESULT!";var P="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},N="object"==typeof P&&P&&P.Object===Object&&P,z="object"==typeof self&&self&&self.Object===Object&&self,x=N||z||Function("return this")(),q=x.Symbol;function C(t,e){for(var r=-1,n=null==t?0:t.length,o=Array(n);++r=n?t:function(t,e,r){var n=-1,o=t.length;e<0&&(e=-e>o?0:o+e),(r=r>o?o:r)<0&&(r+=o),o=e>r?0:r-e>>>0,e>>>=0;for(var a=Array(o);++n-1;);return r}(n,o),function(t,e){for(var r=t.length;r--&&et(e,t[r],0)>-1;);return r}(n,o)+1).join("")}function yt(t){return void 0===t}var bt="[object Boolean]";var _t="[object Number]";function mt(t){return function(t){return"number"==typeof t||B(t)&&V(t)==_t}(t)&&t!=+t}var wt="[object String]";function jt(t){return"string"==typeof t||!R(t)&&B(t)&&V(t)==wt}function Ot(t,e){return function(r){return t(e(r))}}var St=Ot(Object.getPrototypeOf,Object),Et="[object Object]",kt=Function.prototype,$t=Object.prototype,Tt=kt.toString,At=$t.hasOwnProperty,Pt=Tt.call(Object);function Nt(t){if(!B(t)||V(t)!=Et)return!1;var e=St(t);if(null===e)return!0;var r=At.call(e,"constructor")&&e.constructor;return"function"==typeof r&&r instanceof r&&Tt.call(r)==Pt}var zt,xt=function(t,e,r){for(var n=-1,o=Object(t),a=r(t),i=a.length;i--;){var u=a[zt?i:++n];if(!1===e(o[u],u,o))break}return t};var qt="[object Arguments]";function Ct(t){return B(t)&&V(t)==qt}var Rt=Object.prototype,Mt=Rt.hasOwnProperty,Ft=Rt.propertyIsEnumerable,Lt=Ct(function(){return arguments}())?Ct:function(t){return B(t)&&Mt.call(t,"callee")&&!Ft.call(t,"callee")};var Wt="object"==typeof exports&&exports&&!exports.nodeType&&exports,Jt=Wt&&"object"==typeof module&&module&&!module.nodeType&&module,It=Jt&&Jt.exports===Wt?x.Buffer:void 0,Ut=(It?It.isBuffer:void 0)||function(){return!1},Dt=9007199254740991,Vt=/^(?:0|[1-9]\d*)$/;function Bt(t,e){var r=typeof t;return!!(e=null==e?Dt:e)&&("number"==r||"symbol"!=r&&Vt.test(t))&&t>-1&&t%1==0&&t-1&&t%1==0&&t<=Ht}var Gt={};Gt["[object Float32Array]"]=Gt["[object Float64Array]"]=Gt["[object Int8Array]"]=Gt["[object Int16Array]"]=Gt["[object Int32Array]"]=Gt["[object Uint8Array]"]=Gt["[object Uint8ClampedArray]"]=Gt["[object Uint16Array]"]=Gt["[object Uint32Array]"]=!0,Gt["[object Arguments]"]=Gt["[object Array]"]=Gt["[object ArrayBuffer]"]=Gt["[object Boolean]"]=Gt["[object DataView]"]=Gt["[object Date]"]=Gt["[object Error]"]=Gt["[object Function]"]=Gt["[object Map]"]=Gt["[object Number]"]=Gt["[object Object]"]=Gt["[object RegExp]"]=Gt["[object Set]"]=Gt["[object String]"]=Gt["[object WeakMap]"]=!1;var Kt,Qt="object"==typeof exports&&exports&&!exports.nodeType&&exports,Xt=Qt&&"object"==typeof module&&module&&!module.nodeType&&module,Zt=Xt&&Xt.exports===Qt&&N.process,te=function(){try{var t=Xt&&Xt.require&&Xt.require("util").types;return t||Zt&&Zt.binding&&Zt.binding("util")}catch(t){}}(),ee=te&&te.isTypedArray,re=ee?(Kt=ee,function(t){return Kt(t)}):function(t){return B(t)&&Yt(t.length)&&!!Gt[V(t)]},ne=Object.prototype.hasOwnProperty;function oe(t,e){var r=R(t),n=!r&&Lt(t),o=!r&&!n&&Ut(t),a=!r&&!n&&!o&&re(t),i=r||n||o||a,u=i?function(t,e){for(var r=-1,n=Array(t);++r-1},we.prototype.set=function(t,e){var r=this.__data__,n=_e(r,t);return n<0?(++this.size,r.push([t,e])):r[n][1]=e,this};var je,Oe=x["__core-js_shared__"],Se=(je=/[^.]+$/.exec(Oe&&Oe.keys&&Oe.keys.IE_PROTO||""))?"Symbol(src)_1."+je:"";var Ee=Function.prototype.toString;function ke(t){if(null!=t){try{return Ee.call(t)}catch(t){}try{return t+""}catch(t){}}return""}var $e=/^\[object .+?Constructor\]$/,Te=Function.prototype,Ae=Object.prototype,Pe=Te.toString,Ne=Ae.hasOwnProperty,ze=RegExp("^"+Pe.call(Ne).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function xe(t){return!(!se(t)||function(t){return!!Se&&Se in t}(t))&&(ve(t)?ze:$e).test(ke(t))}function qe(t,e){var r=function(t,e){return null==t?void 0:t[e]}(t,e);return xe(r)?r:void 0}var Ce=qe(x,"Map"),Re=qe(Object,"create");var Me="__lodash_hash_undefined__",Fe=Object.prototype.hasOwnProperty;var Le=Object.prototype.hasOwnProperty;var We="__lodash_hash_undefined__";function Je(t){var e=-1,r=null==t?0:t.length;for(this.clear();++eu))return!1;var s=a.get(t);if(s&&a.get(e))return s==e;var f=-1,l=!0,p=r&Ke?new He:void 0;for(a.set(t,e),a.set(e,t);++f0){if(++e>=Fn)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}(Mn);function In(t,e){return Jn(function(t,e,r){return e=Rn(void 0===e?t.length-1:e,0),function(){for(var n=arguments,o=-1,a=Rn(n.length-e,0),i=Array(a);++o1?e[n-1]:void 0,a=n>2?e[2]:void 0;for(o=Un.length>3&&"function"==typeof o?(n--,o):void 0,a&&function(t,e,r){if(!se(r))return!1;var n=typeof e;return!!("number"==n?de(r)&&Bt(e,r.length):"string"==n&&e in r)&&be(r[e],t)}(e[0],e[1],a)&&(o=n<3?void 0:o,n=1),t=Object(t);++r0))},lo=function(t){if(t.indexOf("array.<")>-1&&t.indexOf(">")>-1){var e=t.replace("array.<","").replace(">","");return e.indexOf("|")?e.split("|"):[e]}return!1},po=function(t,e){var r=t.arg;return e.length>1?!r.filter((function(t){return!(e.length>e.filter((function(e){return!so(e)(t)})).length)})).length:e.length>e.filter((function(t){return!fo(r,t)})).length},ho=function(t,e){if(void 0===e&&(e=null),Nt(t)){if(!e)return!0;if(fo(e))return!e.filter((function(e){var r=t[e.name];return!(e.type.length>e.type.filter((function(t){var e;return!!yt(r)||(!1!==(e=lo(t))?!po({arg:r},e):!so(t)(r))})).length)})).length}return!1},vo=function(t){var e=t.arg,r=t.param,n=[e];return Array.isArray(r.keys)&&r.keys.length&&n.push(r.keys),ho.apply(null,n)},go=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={statusCode:{configurable:!0},name:{configurable:!0}};return r.statusCode.get=function(){return 406},r.name.get=function(){return"Jsonql406Error"},Object.defineProperties(e,r),e}(Error),yo=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={statusCode:{configurable:!0},name:{configurable:!0}};return r.statusCode.get=function(){return 500},r.name.get=function(){return"Jsonql500Error"},Object.defineProperties(e,r),e}(Error),bo=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={statusCode:{configurable:!0},name:{configurable:!0}};return r.statusCode.get=function(){return 401},r.name.get=function(){return"JsonqlAuthorisationError"},Object.defineProperties(e,r),e}(Error),_o=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={statusCode:{configurable:!0},name:{configurable:!0}};return r.statusCode.get=function(){return 401},r.name.get=function(){return"JsonqlContractAuthError"},Object.defineProperties(e,r),e}(Error),mo=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={statusCode:{configurable:!0},name:{configurable:!0}};return r.statusCode.get=function(){return 500},r.name.get=function(){return"JsonqlResolverAppError"},Object.defineProperties(e,r),e}(Error),wo=function(){try{if(window||document)return!0}catch(t){}return!1},jo=function(){try{if(!wo()&&P)return!0}catch(t){}return!1};var Oo=function(t){function e(){for(var e=[],r=arguments.length;r--;)e[r]=arguments[r];t.apply(this,e)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.where=function(){return wo()?"browser":jo()?"node":"unknown"},e}(Error),So=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,Error.captureStackTrace&&Error.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={statusCode:{configurable:!0},name:{configurable:!0}};return r.statusCode.get=function(){return 404},r.name.get=function(){return"JsonqlResolverNotFoundError"},Object.defineProperties(e,r),e}(Oo),Eo=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0}};return r.name.get=function(){return"JsonqlEnumError"},Object.defineProperties(e,r),e}(Error),ko=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0}};return r.name.get=function(){return"JsonqlTypeError"},Object.defineProperties(e,r),e}(Error),$o=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0}};return r.name.get=function(){return"JsonqlCheckerError"},Object.defineProperties(e,r),e}(Error),To=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,Error.captureStackTrace&&Error.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0}};return r.name.get=function(){return"JsonqlValidationError"},Object.defineProperties(e,r),e}(Oo),Ao=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,Error.captureStackTrace&&Error.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0},statusCode:{configurable:!0}};return r.name.get=function(){return"JsonqlError"},r.statusCode.get=function(){return-1},Object.defineProperties(e,r),e}(Oo),Po=function(t){function e(r,n){t.call(this,n),this.statusCode=r,this.className=e.name}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0}};return r.name.get=function(){return"JsonqlServerError"},Object.defineProperties(e,r),e}(Error);function No(t){if(Array.isArray(t))throw new To("",t);var e=t.message||v,r=t.detail||t;switch(!0){case t instanceof go:throw new go(e,r);case t instanceof yo:throw new yo(e,r);case t instanceof bo:throw new bo(e,r);case t instanceof _o:throw new _o(e,r);case t instanceof mo:throw new mo(e,r);case t instanceof So:throw new So(e,r);case t instanceof Eo:throw new Eo(e,r);case t instanceof ko:throw new ko(e,r);case t instanceof $o:throw new $o(e,r);case t instanceof To:throw new To(e,r);case t instanceof Po:throw new Po(e,r);default:throw new Ao(e,r)}}function zo(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];try{window&&window.console&&Reflect.apply(console.log,console,t)}catch(t){}}var xo=function(t,e){var r;switch(!0){case"object"===t:return!vo(e);case"array"===t:return!fo(e.arg);case!1!==(r=lo(t)):return!po(e,r);default:return!so(t)(e.arg)}},qo=function(t,e){return yt(t)?!0!==e.optional||yt(e.defaultvalue)?null:e.defaultvalue:t},Co=function(t,e,o){var a;void 0===o&&(o=!1);var i=function(t,e){if(!fo(e))throw new Ao("params is not an array! Did something gone wrong when you generate the contract.json?");if(0===e.length)return[];if(!fo(t))throw new Ao("args is not an array! You might want to do: ES6 Array.from(arguments) or ES5 Array.prototype.slice.call(arguments)");switch(!0){case t.length==e.length:return zo(1),t.map((function(t,r){return{arg:t,index:r,param:e[r]}}));case!0===e[0].variable:zo(2);var r=e[0].type;return t.map((function(t,n){return{arg:t,index:n,param:e[n]||{type:r,name:"_"}}}));case t.lengthe.length:zo(4);var n=e.length,o=["any"];return t.map((function(t,r){var a=r>=n||!!e[r].optional,i=e[r]||{type:o,name:"_"+r};return{arg:a?qo(t,i):t,index:r,param:i,optional:a}}));default:throw zo(5),new Ao("Could not understand your arguments and parameter structure!",{args:t,params:e})}}(t,e),u=i.filter((function(t){return!0===t.optional||!0===t.param.optional?function(t){var e=t.arg,r=t.param;return!!Qn(e)&&!(r.type.length>r.type.filter((function(e){return xo(e,t)})).length)}(t):!(t.param.type.length>t.param.type.filter((function(e){return xo(e,t)})).length)}));return o?((a={})[n]=u,a[r]=i.map((function(t){return t.arg})),a):u},Ro=function(t,e){var r,n=Object.keys(t);return r=e,!!n.filter((function(t){return t===r})).length},Mo=function(t){return!Qn(t)};function Fo(t,e){var r=Kn(e,(function(t,e){return!t[uo]}));return Ir(r,{})?t:function(t,e){var r={};return e=dn(e),ye(t,(function(t,n,o){yn(r,e(t,n,o),t)})),r}(t,(function(t,e){return function(t,e,r){var n;return r(t,(function(t,r,o){if(e(t,r,o))return n=r,!1})),n}(r,dn((function(t){return t.alias===e})),ye)||e}))}function Lo(t,e){return Vn(e,(function(e,r){var n,o;return yt(t[r])||!0===e[no]&&Mo(t[r])?Dn({},e,((n={})[co]=!0,n)):((o={})[ao]=t[r],o[ro]=e[ro],o[no]=e[no]||!1,o[oo]=e[oo]||!1,o[io]=e[io]||!1,o)}))}function Wo(t,e){var r=function(t,e){var r=Fo(t,e);return{pristineValues:Vn(Kn(e,(function(t,e){return Ro(r,e)})),(function(t){return t.args})),checkAgainstAppProps:Kn(e,(function(t,e){return!Ro(r,e)})),config:r}}(t,e),n=r.config,o=r.pristineValues;return[Lo(n,r.checkAgainstAppProps),o]}var Jo=function(t){return fo(t)?t:[t]};var Io=function(t,e){return!fo(e)||function(t,e){return!!t.filter((function(t){return t===e})).length}(e,t)},Uo=function(t,e){try{return!!ve(e)&&e.apply(null,[t])}catch(t){return!1}};function Do(t){return function(e,r){if(e[co])return e[ao];var n=function(t,e){var r,n=[[t[ao]],[(r={},r[ro]=Jo(t[ro]),r[no]=t[no],r)]];return Reflect.apply(e,null,n)}(e,t);if(n.length)throw zo("runValidationAction",r,e),new ko(r,n);if(!1!==e[oo]&&!Io(e[ao],e[oo]))throw zo(oo,e[oo]),new Eo(r);if(!1!==e[io]&&!Uo(e[ao],e[io]))throw zo(io,e[io]),new $o(r);return e[ao]}}var Vo=function(t,e){return Promise.resolve(Wo(t,e))};function Bo(t,e,r,n){return void 0===t&&(t={}),Vo(t,e).then((function(t){return function(t,e){var r=t[0],n=t[1],o=Vn(r,Do(e));return Dn(o,n)}(t,n)})).then((function(t){return Dn({},t,r)}))}function Ho(t,e,r,n,o,a){void 0===r&&(r=!1),void 0===n&&(n=!1),void 0===o&&(o=!1),void 0===a&&(a=!1);var i={};return i[l]=t,i[c]=e,!0===r&&(i[s]=!0),fo(n)&&(i[f]=n),ve(o)&&(i[p]=o),jt(a)&&(i[h]=a),i}var Yo=Zn,Go=function(t,e,o){return void 0===o&&(o=!1),new Promise((function(a,i){var u=Co(t,e,o);return o?u[n].length?i(u[n]):a(u[r]):u.length?i(u):a([])}))},Ko=function(t,e,r){void 0===r&&(r={});var n=r[s],o=r[f],a=r[p],i=r[h];return Ho.apply(null,[t,e,n,o,a,i])},Qo=function(t){return function(e,r,n){return void 0===n&&(n={}),Bo(e,r,n,t)}}(Co),Xo=Ro,Zo=function(t){return R(t)?t:[t]},ta=function(t,e){var r,n=Object.keys(t);return r=e,!!n.filter((function(t){return t===r})).length},ea=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];return t.join("_")},ra=function(t){for(var e=[],r=arguments.length-1;r-- >0;)e[r]=arguments[r+1];return function(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];return e.reduce((function(t,e){return Reflect.apply(e,null,Zo(t))}),Reflect.apply(t,null,r))}};function na(t,e,r,n){return void 0===n&&(n=null),void 0===Object.getOwnPropertyDescriptor(t,e)&&Object.defineProperty(t,e,{set:r,get:null===n?function(){return null}:n}),t}function oa(t,e,r,n){void 0===n&&(n=!1);var o=Object.getOwnPropertyDescriptor(t,e);return!1===n&&void 0!==o?t:(Object.defineProperty(t,e,{value:r,writable:n}),t)}function aa(t){return!!ta(t,"socket")&&t.socket}var ia=function(t){var e;return(e={}).args=t,e};function ua(t,e,r){return void 0===e&&(e=[]),void 0===r&&(r=!1),JSON.stringify(function(t,e,r){var n;if(void 0===e&&(e=[]),void 0===r&&(r=!1),jt(t)&&R(e)){var o=ia(e);return!0===r?o:((n={})[t]=o,n)}throw new To("[createQuery] expect resolverName to be string and args to be array!",{resolverName:t,args:e})}(t,e,r))}var ca=function(t){return Nt(t)&&(ta(t,a)||ta(t,i)||ta(t,u))},sa="jsonql-ws-client",fa=function(t){try{if(window.debug)return window.debug(sa).extend(t)}catch(t){}try{if(P.debug)return P.debug(sa).extend(t)}catch(t){}return function(){for(var e=[],r=arguments.length;r--;)e[r]=arguments[r];console.info.apply(null,[sa,t].concat(e))}};try{window&&window.localStorage&&window.DEBUG&&localStorage.setItem("DEBUG",sa+"*")}catch(t){}var la=new WeakMap,pa=new WeakMap;var ha=function(){this.__suspend__=null,this.queueStore=new Set},va={$suspend:{configurable:!0},$queues:{configurable:!0}};va.$suspend.set=function(t){var e=this;if("boolean"!=typeof t)throw new Error("$suspend only accept Boolean value!");var r=this.__suspend__;this.__suspend__=t,this.logger("($suspend)","Change from "+r+" --\x3e "+t),!0===r&&!1===t&&setTimeout((function(){e.release()}),1)},ha.prototype.$queue=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];return!0===this.__suspend__&&(this.logger("($queue)","added to $queue",t),this.queueStore.add(t)),this.__suspend__},va.$queues.get=function(){var t=this.queueStore.size;return this.logger("($queues)","size: "+t),t>0?Array.from(this.queueStore):[]},ha.prototype.release=function(){var t=this,e=this.queueStore.size;if(this.logger("(release)","Release was called "+e),e>0){var r=Array.from(this.queueStore);this.queueStore.clear(),this.logger("queue",r),r.forEach((function(e){t.logger(e),Reflect.apply(t.$trigger,t,e)})),this.logger("Release size "+this.queueStore.size)}},Object.defineProperties(ha.prototype,va);var da=function(t){function e(){t.call(this,{logger:fa("nb-event-service")})}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0}};return r.name.get=function(){return"jsonql-ws-client"},Object.defineProperties(e.prototype,r),e}(function(t){function e(e){void 0===e&&(e={}),t.call(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={$done:{configurable:!0}};return e.prototype.logger=function(){},e.prototype.$on=function(t,e,r){var n=this;void 0===r&&(r=null);this.validate(t,e);var o=this.takeFromStore(t);if(!1===o)return this.logger("($on)",t+" callback is not in lazy store"),this.addToNormalStore(t,"on",e,r);this.logger("($on)",t+" found in lazy store");var a=0;return o.forEach((function(o){var i=o[0],u=o[1],c=o[2];if(c&&"on"!==c)throw new Error("You are trying to register an event already been taken by other type: "+c);n.logger("($on)","call run on "+t),n.run(e,i,r||u),a+=n.addToNormalStore(t,"on",e,r||u)})),a},e.prototype.$once=function(t,e,r){void 0===r&&(r=null),this.validate(t,e);var n=this.takeFromStore(t);this.normalStore;if(!1===n)return this.logger("($once)",t+" not in the lazy store"),this.addToNormalStore(t,"once",e,r);this.logger("($once)",n);var o=Array.from(n)[0],a=o[0],i=o[1],u=o[2];if(u&&"once"!==u)throw new Error("You are trying to register an event already been taken by other type: "+u);this.logger("($once)","call run for "+t),this.run(e,a,r||i),this.$off(t)},e.prototype.$only=function(t,e,r){var n=this;void 0===r&&(r=null),this.validate(t,e);var o=!1,a=this.takeFromStore(t);(this.normalStore.has(t)||(this.logger("($only)",t+" add to store"),o=this.addToNormalStore(t,"only",e,r)),!1!==a)&&(this.logger("($only)",t+" found data in lazy store to execute"),Array.from(a).forEach((function(o){var a=o[0],i=o[1],u=o[2];if(u&&"only"!==u)throw new Error("You are trying to register an event already been taken by other type: "+u);n.logger("($only)","call run for "+t),n.run(e,a,r||i)})));return o},e.prototype.$onlyOnce=function(t,e,r){void 0===r&&(r=null),this.validate(t,e);var n=!1,o=this.takeFromStore(t);if(this.normalStore.has(t)||(this.logger("($onlyOnce)",t+" add to store"),n=this.addToNormalStore(t,"onlyOnce",e,r)),!1!==o){this.logger("($onlyOnce)",o);var a=Array.from(o)[0],i=a[0],u=a[1],c=a[2];if(c&&"onlyOnce"!==c)throw new Error("You are trying to register an event already been taken by other type: "+c);this.logger("($onlyOnce)","call run for "+t),this.run(e,i,r||u),this.$off(t)}return n},e.prototype.$replace=function(t,e,r,n){if(void 0===r&&(r=null),void 0===n&&(n="on"),this.validateType(n)){this.$off(t);var o=this["$"+n];return this.logger("($replace)",t,e),Reflect.apply(o,this,[t,e,r])}throw new Error(n+" is not supported!")},e.prototype.$trigger=function(t,e,r,n){void 0===e&&(e=[]),void 0===r&&(r=null),void 0===n&&(n=!1),this.validateEvt(t);var o=0,a=this.normalStore;if(this.logger("($trigger)","normalStore",a),a.has(t)){var i=this.$queue(t,e,r,n);if(this.logger("($trigger)",t,"found; add to queue: ",i),!0===i)return this.logger("($trigger)",t,"not executed. Exit now."),!1;for(var u=Array.from(a.get(t)),c=u.length,s=!1,f=0;f0;)n[o]=arguments[o+2];if(t.has(e)?(this.logger("(addToStore)",e+" existed"),r=t.get(e)):(this.logger("(addToStore)","create new Set for "+e),r=new Set),n.length>2)if(Array.isArray(n[0])){var a=n[2];this.checkTypeInLazyStore(e,a)||r.add(n)}else this.checkContentExist(n,r)||(this.logger("(addToStore)","insert new",n),r.add(n));else r.add(n);return t.set(e,r),[t,r.size]},e.prototype.checkContentExist=function(t,e){return!!Array.from(e).filter((function(e){return e[0]===t[0]})).length},e.prototype.checkTypeInStore=function(t,e){this.validateEvt(t,e);var r=this.$get(t,!0);return!1===r||!r.filter((function(t){var r=t[3];return e!==r})).length},e.prototype.checkTypeInLazyStore=function(t,e){this.validateEvt(t,e);var r=this.lazyStore.get(t);return this.logger("(checkTypeInLazyStore)",r),!!r&&!!Array.from(r).filter((function(t){return t[2]!==e})).length},e.prototype.addToNormalStore=function(t,e,r,n){if(void 0===n&&(n=null),this.logger("(addToNormalStore)",t,e,"try to add to normal store"),this.checkTypeInStore(t,e)){this.logger("(addToNormalStore)",e+" can add to "+t+" normal store");var o=this.hashFnToKey(r),a=[this.normalStore,t,o,r,n,e],i=Reflect.apply(this.addToStore,this,a),u=i[0],c=i[1];return this.normalStore=u,c}return!1},e.prototype.addToLazyStore=function(t,e,r,n){void 0===e&&(e=[]),void 0===r&&(r=null),void 0===n&&(n=!1);var o=[this.lazyStore,t,this.toArray(e),r];n&&o.push(n);var a=Reflect.apply(this.addToStore,this,o),i=a[0],u=a[1];return this.lazyStore=i,u},e.prototype.toArray=function(t){return Array.isArray(t)?t:[t]},r.normalStore.set=function(t){la.set(this,t)},r.normalStore.get=function(){return la.get(this)},r.lazyStore.set=function(t){pa.set(this,t)},r.lazyStore.get=function(){return pa.get(this)},e.prototype.hashFnToKey=function(t){return t.toString().split("").reduce((function(t,e){return(t=(t<<5)-t+e.charCodeAt(0))&t}),0)+""},Object.defineProperties(e.prototype,r),e}(ha))),ga=(fa("process-contract"),function(t){var e=aa(t);if(!1!==e)return e;throw new So("Missing property in contract!")});function ya(t){var e,r,n=t.contract;return t.enableAuth?function(t,e){void 0===e&&(e=!1);var r=aa(t);if(!1===r){if(e)return t;throw new Ao("socket not found in contract!")}var n,o={},a=0;for(var i in r){var u=r[i],c=u.namespace;c&&(o[c]||(++a,o[c]={}),o[c][i]=u,n||u.public&&(n=c))}return{size:a,nspSet:o,publicNamespace:n}}(n):((r={})[m]=((e={})[o]=ga(n),e),r[w]=o,r)}var ba=function(t,e){return"ws"===e?t.replace("http://","ws://"):t},_a=function(){try{return[window.location.protocol,window.location.host].join("//")}catch(t){throw new JsonqlValidationError(t)}},ma=function(t,e){Zo(e).forEach((function(e){t.$off(ea(e,y))}))},wa=function(t){if("function"==typeof t)return!0;console.error("Expect a function!")},ja=fa("respondHandler");function Oa(t,e,o){ta(t,n)?(ja("-- rejecter called --",t[n]),o(t[n])):ta(t,r)?(ja("-- resolver called --",t[r]),e(t[r])):(ja("-- UNKNOWN_RESULT --",t),o({message:A,error:t}))}var Sa=fa("action-call");function Ea(t,e,r,n){void 0===n&&(n=[]);var o=ea(e,y);return Sa("actionCall: "+o+" --\x3e "+r,n),t.$trigger(o,[r,Zo(n)]),new Promise((function(n,o){t.$on(ea(e,r,j),(function(t){Sa("got the first result",t),Oa(t,n,o)}))}))}var ka=fa("setup-resolver"),$a=function(t,e,r,n,o){return[oa(t,"myNamespace",r),e,r,n,o]},Ta=function(t,e,r,n,o){return[na(t,j,(function(t){wa(t)&&e.$on(ea(r,n,j),(function(o){Oa(o,t,(function(t){e.$trigger(ea(r,n,O),t)}))}))})),e,r,n,o]},Aa=function(t,e,r,n,o){return[na(t,"onMessage",(function(t){if(wa(t)){e.$only(ea(r,n,"onMessage"),(function(o){Oa(o,t,(function(t){e.$trigger(ea(r,n,O),t)}))}))}})),e,r,n,o]},Pa=function(t,e,r,n,o){return[na(t,O,(function(t){wa(t)&&e.$only(ea(r,n,O),t)})),e,r,n,o]},Na=function(t,e,r,o,a){return na(t,"send",(function(t){ka("got payload for",t),Go(Zo(t),a.params,!0).then((function(a){a[n]&&a[n].length?(ka("got ERROR_KEY",a[n]),e.$call(ea(r,o,O),[JsonqlValidationError(o,a[n])])):Ea(e,r,o,t)})).catch((function(t){ka("error after validateAsync",t),e.$call(ea(r,o,O),[JsonqlValidationError(o,t)])}))}))};function za(t,e,r,n,o){var a=[n,o,t,e,r],i=ra($a,Ta,Aa,Pa,Na);return Reflect.apply(i,null,a)}var xa=fa("resolver-methods");function qa(t,e,r,n){return function(){for(var o=[],a=arguments.length;a--;)o[a]=arguments[a];return Go(o,n.params,!0).then((function(n){return Ea(t,e,r,n)})).catch(No)}}var Ca;fa("generator");function Ra(t,e,r){var n=e.nspSet;return function(t,e,r){var n={},o=e.nspSet;for(var a in o){var i=o[a];for(var u in i){var c=i[u],s=qa(r,a,u,c);n[u]=za(a,u,c,s,r)}}return n.devHelpers={getNsp:function(){return Object.keys(o)},getVer:function(){return t.version||"NOT SET"}},Promise.resolve(n)}(t,e,r).then((function(t){return function(t,e,r){return na(t,O,(function(t){if(wa(t))for(var n in r)e.$on(ea(n,O),t)}))}(t,r,n)})).then((function(t){return function(t,e,r){return na(t,S,(function(t){wa(t)&&e.$on(S,t)}))}(t,r)})).then((function(e){return function(t,e,r){return r.enableAuth?na(t,E,(function(t){wa(t)&&e.$only(E,t)})):t}(e,r,t)})).then((function(e){return function(t,e,r){return r.enableAuth&&(t[r.loginHandlerName]=function(t){if(xa(r.loginHandlerName,t),t&&Yo(t))return e.$trigger(d,[t]);throw new To(r.loginHandlerName)},t[r.logoutHandlerName]=function(){for(var t=[],r=arguments.length;r--;)t[r]=arguments[r];e.$trigger(g,t)}),t}(e,r,t)}))}var Ma={loginHandlerName:Ko("login",["string"]),logoutHandlerName:Ko("logout",["string"]),useJwt:Ko(!0,["boolean","string"]),hostname:Ko(!1,["string"]),namespace:Ko(o,["string"]),wsOptions:Ko({},["object"]),contract:Ko({},["object"],(Ca={},Ca[p]=ca,Ca)),enableAuth:Ko(!1,["boolean"]),token:Ko(!1,["string"])},Fa=fa("check-options"),La={eventEmitter:null,nspClient:null,nspAuthClient:null,wssPath:""};var Wa={version:"version: 0.5.0 module: umd",serverType:"ws"},Ja=null;"undefined"!=typeof WebSocket?Ja=WebSocket:"undefined"!=typeof MozWebSocket?Ja=MozWebSocket:void 0!==P?Ja=P.WebSocket||P.MozWebSocket:"undefined"!=typeof window?Ja=window.WebSocket||window.MozWebSocket:"undefined"!=typeof self&&(Ja=self.WebSocket||self.MozWebSocket);var Ia=Ja,Ua=function(t){var e=t.toLowerCase();return e.indexOf("http")>-1?e.indexOf("https")>-1?e.replace("https","wss"):e.replace("http","ws"):e};function Da(t,e){return void 0===e&&(e=!1),!1===e?function(e){return new t(Ua(e))}:function(e,r){var n=Ua(e),o=r&&"string"==typeof r?n+"?"+k+"="+r:n;try{return new t(o)}catch(t){return console.error("WebSocket Connection Error",t),!1}}}function Va(t,e){var r=e.hostname,n=e.wssPath,o=e.wsOptions;return(0,e.nspClient)(t?[r,t].join("/"):n,o)}var Ba=fa("client-event-handler"),Ha=function(t,e){e.$only(ea(t,T),(function(r,n){Ba("noLoginHandler hijack the ws call",t,r,n);var o={message:"NOT LOGIN"};e.$call(ea(t,r,O),[o]),e.$call(ea(t,r,j),[{error:o}])}))},Ya=function(t){return t.length>1&&t[0]};function Ga(t,e,r,n,o,a){var i=Ya(o),u=!1;o.forEach((function(o){if(u=i===o,a[o]){Ba("call bindWsHandler",u,o);var c=[o,a[o],r,u];if(t.serverType===$){var s=e.nspSet;c.push(s[o]),c.push(t)}Reflect.apply(n,null,c)}else Ha(o,r)})),r.$on(g,(function(){Ba("LOGOUT_EVENT_NAME"),function(t,e,r){e.forEach((function(e){t.$call(ea(e,O),[{message:r,namespace:e}])}))}(r,o,g),o.forEach((function(t){ma(r,t),a[t]=!1,Ha(t,r)}))}))}var Ka=["__reply__","__event__","__data__"],Qa=function(t){var e,r=t.data;if(!1!==(e=function(t){var e=t.data;return!!e&&(Ka.filter((function(t){return Xo(e,t)})).length===Ka.length&&e)}(Yo(r)?JSON.parse(r):r)))return{resolverName:e.__event__,data:e.__data__,type:e.__reply__};throw new Ao("payload can not be decoded",t)},Xa=fa("ws-main-handler"),Za="onMessage",ti=j,ei=T,ri=function(t,e,r,n){var o=[e];r&&(Xa("a global error on "+e),o.push(r)),o.push(O);var a=Reflect.apply(ea,null,o),i=n.data||n;t.$trigger(a,[i])};function ni(t,e,r,n){e.onopen=function(){Xa("ws.onopen listened"),r.$call(S,t),n&&(console.log("isPrivate and fire the ON_LOGIN_PROP_NAME "+E),r.$call(E,t)),r.$only(ea(t,ei),(function(t,r){Xa("calling server",t,r),e.send(ua(t,r))}))},e.onmessage=function(e){try{var n=Qa(e),o=n.resolverName,a=n.type;switch(Xa("Hear from server",a,n),a){case y:var i=ea(t,o,Za),u=r.$trigger(i,[n]);Xa("EMIT_REPLY_TYPE",i,u);break;case b:var c=ea(t,o,ti);r.$trigger(c,[n]);Xa("ACKNOWLEDGE_REPLY_TYPE",c,n);break;case _:Xa("ERROR_TYPE"),ri(r,t,o,n);break;default:Xa("Unhandled event!",n),ri(r,t,o,n)}}catch(e){console.error("ws.onmessage error",e),ri(r,t,!1,e)}},e.onclose=function(){Xa("ws.onclose callback")},r.$on(g,(function(){try{Xa("terminate ws connection"),e.terminate()}catch(t){console.error("ws.terminate error",t)}}))}fa("ws-create-client");var oi=function(t,e,r){var n,o=e.nspSet,a=e.publicNamespace,i=!1,u=[],c={};if(t.enableAuth&&t.useJwt)i=!0,c=(u=function(t,e){var r=[];for(var n in t)n===e?r[1]=n:r[0]=n;return r}(o,a)).map((function(e,n){var o,a,i;return 0===n?r?(t.token=r,(o={})[e]=function(t,e){var r=e.hostname,n=e.wssPath,o=e.token,a=e.wsOptions,i=e.nspAuthClient,u=t?[r,t].join("/"):n;if(o&&"string"!=typeof o)throw new Error("Expect token to be string, but got "+o);return i(u,o,a)}(e,t),o):((a={})[e]=!1,a):((i={})[e]=Va(e,t),i)})).reduce((function(t,e){return Object.assign(t,e)}),{});else{var s=(n=o,Object.keys(n)[0]);u.push(s),c[s]=Va(!1,t)}return{nsps:c,namespaces:u,login:i}};return function(t,e){return void 0===e&&(e={}),function(r){var n=r.eventEmitter;return function(t,e){return Qo(t,Ma,Object.assign(La,e)).then((function(t){return t.hostname||(t.hostname=_a()),t.wssPath=ba([t.hostname,t.namespace].join("/"),t.serverType),Fa("CONFIGURATION OPTIONS",t),t}))}(r,e).then((function(t){return{opts:t,nspMap:ya(t),ee:n||new da}})).then((function(e){var r=e.opts,n=e.nspMap,o=e.ee;return t(r,n,o)})).then((function(t){return Ra(t.opts,t.nspMap,t.ee)})).catch((function(t){console.error("jsonql-ws-client init error",t)}))}}(function(t){var e=Da(t),r=Da(t,!0);return function(t,n,o){return t.nspClient=e,t.nspAuthClient=r,function(t,e,r){var n=[t,e,r,ni],o=t.token,a=oi(t,e,o),i=a.nsps,u=a.namespaces,c=a.login;return Reflect.apply(Ga,null,n.concat([u,i])),c&&r.$only(d,(function(o){ma(r,u);var a=oi(t,e,o);Reflect.apply(Ga,null,n.concat([a.namespaces,a.nsps]))})),{opts:t,nspMap:e,ee:r}}(t,n,o)}}(Ia),Wa)})); +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("fs"),require("path")):"function"==typeof define&&define.amd?define(["fs","path"],e):(t=t||self).jsonqlWsClient=e(t.fs,t.path)}(this,(function(t,e){"use strict";t=t&&t.hasOwnProperty("default")?t.default:t;var r=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={statusCode:{configurable:!0},name:{configurable:!0}};return r.statusCode.get=function(){return 406},r.name.get=function(){return"Jsonql406Error"},Object.defineProperties(e,r),e}(Error),n=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={statusCode:{configurable:!0},name:{configurable:!0}};return r.statusCode.get=function(){return 500},r.name.get=function(){return"Jsonql500Error"},Object.defineProperties(e,r),e}(Error),o=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={statusCode:{configurable:!0},name:{configurable:!0}};return r.statusCode.get=function(){return 401},r.name.get=function(){return"JsonqlAuthorisationError"},Object.defineProperties(e,r),e}(Error),a=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={statusCode:{configurable:!0},name:{configurable:!0}};return r.statusCode.get=function(){return 401},r.name.get=function(){return"JsonqlContractAuthError"},Object.defineProperties(e,r),e}(Error),i=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={statusCode:{configurable:!0},name:{configurable:!0}};return r.statusCode.get=function(){return 500},r.name.get=function(){return"JsonqlResolverAppError"},Object.defineProperties(e,r),e}(Error),u="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},c=function(){try{if(window||document)return!0}catch(t){}return!1},f=function(){try{if(!c()&&u)return!0}catch(t){}return!1};var s=function(t){function e(){for(var e=[],r=arguments.length;r--;)e[r]=arguments[r];t.apply(this,e)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.where=function(){return c()?"browser":f()?"node":"unknown"},e}(Error),l=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,Error.captureStackTrace&&Error.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={statusCode:{configurable:!0},name:{configurable:!0}};return r.statusCode.get=function(){return 404},r.name.get=function(){return"JsonqlResolverNotFoundError"},Object.defineProperties(e,r),e}(s),p=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0}};return r.name.get=function(){return"JsonqlEnumError"},Object.defineProperties(e,r),e}(Error),h=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0}};return r.name.get=function(){return"JsonqlTypeError"},Object.defineProperties(e,r),e}(Error),v=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0}};return r.name.get=function(){return"JsonqlCheckerError"},Object.defineProperties(e,r),e}(Error),d=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,Error.captureStackTrace&&Error.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0}};return r.name.get=function(){return"JsonqlValidationError"},Object.defineProperties(e,r),e}(s),g="data",y="error",b="jsonql",_="query",m="mutation",w="socket",j="type",O="optional",S="enumv",k="args",E="checker",$="alias",A="No message",T="__login__",P="__logout__",N="emit",R="acknowledge",z="error",x="nspSet",C="publicNamespace",q="onMessage",M="onResult",F="onError",L="onReady",W="onLogin",U="message",I="result",J="error",D="ready",B="login",V="token",Y=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,Error.captureStackTrace&&Error.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0},statusCode:{configurable:!0}};return r.name.get=function(){return"JsonqlError"},r.statusCode.get=function(){return-1},Object.defineProperties(e,r),e}(s),H=function(t){function e(r,n){t.call(this,n),this.statusCode=r,this.className=e.name}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0}};return r.name.get=function(){return"JsonqlServerError"},Object.defineProperties(e,r),e}(Error);function G(t){if(Array.isArray(t))throw new d("",t);var e=t.message||A,u=t.detail||t;switch(!0){case t instanceof r:throw new r(e,u);case t instanceof n:throw new n(e,u);case t instanceof o:throw new o(e,u);case t instanceof a:throw new a(e,u);case t instanceof i:throw new i(e,u);case t instanceof l:throw new l(e,u);case t instanceof p:throw new p(e,u);case t instanceof h:throw new h(e,u);case t instanceof v:throw new v(e,u);case t instanceof d:throw new d(e,u);case t instanceof H:throw new H(e,u);default:throw new Y(e,u)}}var K="socket.io",Q=N,X="UKNNOWN RESULT!",Z="on",tt=Array.isArray,et="object"==typeof u&&u&&u.Object===Object&&u,rt="object"==typeof self&&self&&self.Object===Object&&self,nt=et||rt||Function("return this")(),ot=nt.Symbol,at=Object.prototype,it=at.hasOwnProperty,ut=at.toString,ct=ot?ot.toStringTag:void 0;var ft=Object.prototype.toString;var st="[object Null]",lt="[object Undefined]",pt=ot?ot.toStringTag:void 0;function ht(t){return null==t?void 0===t?lt:st:pt&&pt in Object(t)?function(t){var e=it.call(t,ct),r=t[ct];try{t[ct]=void 0;var n=!0}catch(t){}var o=ut.call(t);return n&&(e?t[ct]=r:delete t[ct]),o}(t):function(t){return ft.call(t)}(t)}function vt(t,e){return function(r){return t(e(r))}}var dt=vt(Object.getPrototypeOf,Object);function gt(t){return null!=t&&"object"==typeof t}var yt="[object Object]",bt=Function.prototype,_t=Object.prototype,mt=bt.toString,wt=_t.hasOwnProperty,jt=mt.call(Object);function Ot(t){if(!gt(t)||ht(t)!=yt)return!1;var e=dt(t);if(null===e)return!0;var r=wt.call(e,"constructor")&&e.constructor;return"function"==typeof r&&r instanceof r&&mt.call(r)==jt}function St(t,e){for(var r=-1,n=null==t?0:t.length,o=Array(n);++r=n?t:function(t,e,r){var n=-1,o=t.length;e<0&&(e=-e>o?0:o+e),(r=r>o?o:r)<0&&(r+=o),o=e>r?0:r-e>>>0,e>>>=0;for(var a=Array(o);++n-1;);return r}(n,o),function(t,e){for(var r=t.length;r--&&zt(e,t[r],0)>-1;);return r}(n,o)+1).join("")}var Gt=function(t){return tt(t)?t:[t]},Kt=function(t,e){var r,n=Object.keys(t);return r=e,!!n.filter((function(t){return t===r})).length},Qt=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];return t.join("_")},Xt=function(t){if("function"==typeof t)return!0;console.error("Expect to be Function type!")},Zt=function(t){for(var e=[],r=arguments.length-1;r-- >0;)e[r]=arguments[r+1];return function(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];return e.reduce((function(t,e){return Reflect.apply(e,null,Gt(t))}),Reflect.apply(t,null,r))}};function te(t,e){return t===e||t!=t&&e!=e}function ee(t,e){for(var r=t.length;r--;)if(te(t[r][0],e))return r;return-1}var re=Array.prototype.splice;function ne(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e-1},ne.prototype.set=function(t,e){var r=this.__data__,n=ee(r,t);return n<0?(++this.size,r.push([t,e])):r[n][1]=e,this};var ae="[object AsyncFunction]",ie="[object Function]",ue="[object GeneratorFunction]",ce="[object Proxy]";function fe(t){if(!oe(t))return!1;var e=ht(t);return e==ie||e==ue||e==ae||e==ce}var se,le=nt["__core-js_shared__"],pe=(se=/[^.]+$/.exec(le&&le.keys&&le.keys.IE_PROTO||""))?"Symbol(src)_1."+se:"";var he=Function.prototype.toString;function ve(t){if(null!=t){try{return he.call(t)}catch(t){}try{return t+""}catch(t){}}return""}var de=/^\[object .+?Constructor\]$/,ge=Function.prototype,ye=Object.prototype,be=ge.toString,_e=ye.hasOwnProperty,me=RegExp("^"+be.call(_e).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function we(t){return!(!oe(t)||(e=t,pe&&pe in e))&&(fe(t)?me:de).test(ve(t));var e}function je(t,e){var r=function(t,e){return null==t?void 0:t[e]}(t,e);return we(r)?r:void 0}var Oe=je(nt,"Map"),Se=je(Object,"create");var ke="__lodash_hash_undefined__",Ee=Object.prototype.hasOwnProperty;var $e=Object.prototype.hasOwnProperty;var Ae="__lodash_hash_undefined__";function Te(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e-1&&t%1==0&&t<=er}function nr(t){return null!=t&&rr(t.length)&&!fe(t)}var or="object"==typeof exports&&exports&&!exports.nodeType&&exports,ar=or&&"object"==typeof module&&module&&!module.nodeType&&module,ir=ar&&ar.exports===or?nt.Buffer:void 0,ur=(ir?ir.isBuffer:void 0)||function(){return!1},cr={};cr["[object Float32Array]"]=cr["[object Float64Array]"]=cr["[object Int8Array]"]=cr["[object Int16Array]"]=cr["[object Int32Array]"]=cr["[object Uint8Array]"]=cr["[object Uint8ClampedArray]"]=cr["[object Uint16Array]"]=cr["[object Uint32Array]"]=!0,cr["[object Arguments]"]=cr["[object Array]"]=cr["[object ArrayBuffer]"]=cr["[object Boolean]"]=cr["[object DataView]"]=cr["[object Date]"]=cr["[object Error]"]=cr["[object Function]"]=cr["[object Map]"]=cr["[object Number]"]=cr["[object Object]"]=cr["[object RegExp]"]=cr["[object Set]"]=cr["[object String]"]=cr["[object WeakMap]"]=!1;var fr,sr="object"==typeof exports&&exports&&!exports.nodeType&&exports,lr=sr&&"object"==typeof module&&module&&!module.nodeType&&module,pr=lr&&lr.exports===sr&&et.process,hr=function(){try{var t=lr&&lr.require&&lr.require("util").types;return t||pr&&pr.binding&&pr.binding("util")}catch(t){}}(),vr=hr&&hr.isTypedArray,dr=vr?(fr=vr,function(t){return fr(t)}):function(t){return gt(t)&&rr(t.length)&&!!cr[ht(t)]};function gr(t,e){if(("constructor"!==e||"function"!=typeof t[e])&&"__proto__"!=e)return t[e]}var yr=Object.prototype.hasOwnProperty;function br(t,e,r){var n=t[e];yr.call(t,e)&&te(n,r)&&(void 0!==r||e in t)||Ce(t,e,r)}var _r=9007199254740991,mr=/^(?:0|[1-9]\d*)$/;function wr(t,e){var r=typeof t;return!!(e=null==e?_r:e)&&("number"==r||"symbol"!=r&&mr.test(t))&&t>-1&&t%1==0&&t0){if(++e>=xr)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}(zr);function Fr(t,e){return Mr(function(t,e,r){return e=Rr(void 0===e?t.length-1:e,0),function(){for(var n=arguments,o=-1,a=Rr(n.length-e,0),i=Array(a);++o1?e[n-1]:void 0,a=n>2?e[2]:void 0;for(o=Lr.length>3&&"function"==typeof o?(n--,o):void 0,a&&function(t,e,r){if(!oe(r))return!1;var n=typeof e;return!!("number"==n?nr(r)&&wr(e,r.length):"string"==n&&e in r)&&te(r[e],t)}(e[0],e[1],a)&&(o=n<3?void 0:o,n=1),t=Object(t);++r0;)e[r]=arguments[r+1];return function(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];return e.reduce((function(t,e){return t.then((function(t){return e(t)}))}),Reflect.apply(t,null,r))}}function Ir(t,e,r,n){return void 0===n&&(n=null),void 0===Object.getOwnPropertyDescriptor(t,e)&&Object.defineProperty(t,e,{set:r,get:null===n?function(){return null}:n}),t}function Jr(t,e,r,n){void 0===n&&(n=!1);var o=Object.getOwnPropertyDescriptor(t,e);return!1===n&&void 0!==o?t:(Object.defineProperty(t,e,{value:r,writable:n}),t)}function Dr(t){return!!Kt(t,"socket")&&t.socket}var Br="[object String]";function Vr(t){return"string"==typeof t||!tt(t)&>(t)&&ht(t)==Br}var Yr=function(t){var e;return(e={}).args=t,e};function Hr(t,e,r){return void 0===e&&(e=[]),void 0===r&&(r=!1),JSON.stringify(function(t,e,r){var n;if(void 0===e&&(e=[]),void 0===r&&(r=!1),Vr(t)&&tt(e)){var o=Yr(e);return!0===r?o:((n={})[t]=o,n)}throw new d("[createQuery] expect resolverName to be string and args to be array!",{resolverName:t,args:e})}(t,e,r))}var Gr=function(t){return Ot(t)&&(Kt(t,_)||Kt(t,m)||Kt(t,w))};function Kr(t){return void 0===t}var Qr="[object Boolean]";var Xr="[object Number]";function Zr(t){return function(t){return"number"==typeof t||gt(t)&&ht(t)==Xr}(t)&&t!=+t}var tn=vt(Object.keys,Object),en=Object.prototype.hasOwnProperty;function rn(t){return nr(t)?Or(t):function(t){if(!He(t))return tn(t);var e=[];for(var r in Object(t))en.call(t,r)&&"constructor"!=r&&e.push(r);return e}(t)}function nn(t,e){return t&&Fe(t,e,rn)}var on="__lodash_hash_undefined__";function an(t){var e=-1,r=null==t?0:t.length;for(this.__data__=new Ne;++eu))return!1;var f=a.get(t);if(f&&a.get(e))return f==e;var s=-1,l=!0,p=r&fn?new an:void 0;for(a.set(t,e),a.set(e,t);++s0))},Yo=function(t){if(t.indexOf("array.<")>-1&&t.indexOf(">")>-1){var e=t.replace("array.<","").replace(">","");return e.indexOf("|")?e.split("|"):[e]}return!1},Ho=function(t,e){var r=t.arg;return e.length>1?!r.filter((function(t){return!(e.length>e.filter((function(e){return!Bo(e)(t)})).length)})).length:e.length>e.filter((function(t){return!Vo(r,t)})).length},Go=function(t,e){if(void 0===e&&(e=null),Ot(t)){if(!e)return!0;if(Vo(e))return!e.filter((function(e){var r=t[e.name];return!(e.type.length>e.type.filter((function(t){var e;return!!Kr(r)||(!1!==(e=Yo(t))?!Ho({arg:r},e):!Bo(t)(r))})).length)})).length}return!1},Ko=function(t){var e=t.arg,r=t.param,n=[e];return Array.isArray(r.keys)&&r.keys.length&&n.push(r.keys),Go.apply(null,n)};function Qo(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];try{window&&window.console&&Reflect.apply(console.log,console,t)}catch(t){}}var Xo=function(t,e){var r;switch(!0){case"object"===t:return!Ko(e);case"array"===t:return!Vo(e.arg);case!1!==(r=Yo(t)):return!Ho(e,r);default:return!Bo(t)(e.arg)}},Zo=function(t,e){return Kr(t)?!0!==e.optional||Kr(e.defaultvalue)?null:e.defaultvalue:t},ta=function(t,e,r){var n;void 0===r&&(r=!1);var o=function(t,e){if(!Vo(e))throw new Y("params is not an array! Did something gone wrong when you generate the contract.json?");if(0===e.length)return[];if(!Vo(t))throw new Y("args is not an array! You might want to do: ES6 Array.from(arguments) or ES5 Array.prototype.slice.call(arguments)");switch(!0){case t.length==e.length:return Qo(1),t.map((function(t,r){return{arg:t,index:r,param:e[r]}}));case!0===e[0].variable:Qo(2);var r=e[0].type;return t.map((function(t,n){return{arg:t,index:n,param:e[n]||{type:r,name:"_"}}}));case t.lengthe.length:Qo(4);var n=e.length,o=["any"];return t.map((function(t,r){var a=r>=n||!!e[r].optional,i=e[r]||{type:o,name:"_"+r};return{arg:a?Zo(t,i):t,index:r,param:i,optional:a}}));default:throw Qo(5),new Y("Could not understand your arguments and parameter structure!",{args:t,params:e})}}(t,e),a=o.filter((function(t){return!0===t.optional||!0===t.param.optional?function(t){var e=t.arg,r=t.param;return!!zo(e)&&!(r.type.length>r.type.filter((function(e){return Xo(e,t)})).length)}(t):!(t.param.type.length>t.param.type.filter((function(e){return Xo(e,t)})).length)}));return r?((n={})[y]=a,n[g]=o.map((function(t){return t.arg})),n):a},ea=function(t,e){var r,n=Object.keys(t);return r=e,!!n.filter((function(t){return t===r})).length},ra=function(t){return!zo(t)};function na(t,e){var r=Ro(e,(function(t,e){return!t[Jo]}));return to(r,{})?t:function(t,e){var r={};return e=Eo(e),nn(t,(function(t,n,o){Ce(r,e(t,n,o),t)})),r}(t,(function(t,e){return function(t,e,r){var n;return r(t,(function(t,r,o){if(e(t,r,o))return n=r,!1})),n}(r,Eo((function(t){return t.alias===e})),nn)||e}))}function oa(t,e){return $o(e,(function(e,r){var n,o;return Kr(t[r])||!0===e[Lo]&&ra(t[r])?Wr({},e,((n={})[Do]=!0,n)):((o={})[Uo]=t[r],o[Fo]=e[Fo],o[Lo]=e[Lo]||!1,o[Wo]=e[Wo]||!1,o[Io]=e[Io]||!1,o)}))}function aa(t,e){var r=function(t,e){var r=na(t,e);return{pristineValues:$o(Ro(e,(function(t,e){return ea(r,e)})),(function(t){return t.args})),checkAgainstAppProps:Ro(e,(function(t,e){return!ea(r,e)})),config:r}}(t,e),n=r.config,o=r.pristineValues;return[oa(n,r.checkAgainstAppProps),o]}var ia=function(t){return Vo(t)?t:[t]};var ua=function(t,e){return!Vo(e)||function(t,e){return!!t.filter((function(t){return t===e})).length}(e,t)},ca=function(t,e){try{return!!fe(e)&&e.apply(null,[t])}catch(t){return!1}};function fa(t){return function(e,r){if(e[Do])return e[Uo];var n=function(t,e){var r,n=[[t[Uo]],[(r={},r[Fo]=ia(t[Fo]),r[Lo]=t[Lo],r)]];return Reflect.apply(e,null,n)}(e,t);if(n.length)throw Qo("runValidationAction",r,e),new h(r,n);if(!1!==e[Wo]&&!ua(e[Uo],e[Wo]))throw Qo(Wo,e[Wo]),new p(r);if(!1!==e[Io]&&!ca(e[Uo],e[Io]))throw Qo(Io,e[Io]),new v(r);return e[Uo]}}var sa=function(t,e){return Promise.resolve(aa(t,e))};function la(t,e,r,n){return void 0===t&&(t={}),sa(t,e).then((function(t){return function(t,e){var r=t[0],n=t[1],o=$o(r,fa(e));return Wr(o,n)}(t,n)})).then((function(t){return Wr({},t,r)}))}function pa(t,e,r,n,o,a){void 0===r&&(r=!1),void 0===n&&(n=!1),void 0===o&&(o=!1),void 0===a&&(a=!1);var i={};return i[k]=t,i[j]=e,!0===r&&(i[O]=!0),Vo(n)&&(i[S]=n),fe(o)&&(i[E]=o),Vr(a)&&(i[$]=a),i}var ha=Co,va=function(t,e,r){return void 0===r&&(r=!1),new Promise((function(n,o){var a=ta(t,e,r);return r?a[y].length?o(a[y]):n(a[g]):a.length?o(a):n([])}))},da=function(t,e,r){void 0===r&&(r={});var n=r[O],o=r[S],a=r[E],i=r[$];return pa.apply(null,[t,e,n,o,a,i])},ga=function(t){return function(e,r,n){return void 0===n&&(n={}),la(e,r,n,t)}}(ta),ya="jsonql-ws-client",ba=function(t){try{if(window.debug)return window.debug(ya).extend(t)}catch(t){}try{if(u.debug)return u.debug(ya).extend(t)}catch(t){}return function(){for(var e=[],r=arguments.length;r--;)e[r]=arguments[r];console.info.apply(null,[ya,t].concat(e))}};try{window&&window.localStorage&&window.DEBUG&&localStorage.setItem("DEBUG",ya+"*")}catch(t){}var _a=new WeakMap,ma=new WeakMap;var wa=function(){this.__suspend__=null,this.queueStore=new Set},ja={$suspend:{configurable:!0},$queues:{configurable:!0}};ja.$suspend.set=function(t){var e=this;if("boolean"!=typeof t)throw new Error("$suspend only accept Boolean value!");var r=this.__suspend__;this.__suspend__=t,this.logger("($suspend)","Change from "+r+" --\x3e "+t),!0===r&&!1===t&&setTimeout((function(){e.release()}),1)},wa.prototype.$queue=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];return!0===this.__suspend__&&(this.logger("($queue)","added to $queue",t),this.queueStore.add(t)),this.__suspend__},ja.$queues.get=function(){var t=this.queueStore.size;return this.logger("($queues)","size: "+t),t>0?Array.from(this.queueStore):[]},wa.prototype.release=function(){var t=this,e=this.queueStore.size;if(this.logger("(release)","Release was called "+e),e>0){var r=Array.from(this.queueStore);this.queueStore.clear(),this.logger("queue",r),r.forEach((function(e){t.logger(e),Reflect.apply(t.$trigger,t,e)})),this.logger("Release size "+this.queueStore.size)}},Object.defineProperties(wa.prototype,ja);var Oa=function(t){function e(){t.call(this,{logger:ba("nb-event-service")})}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0}};return r.name.get=function(){return"jsonql-ws-client"},Object.defineProperties(e.prototype,r),e}(function(t){function e(e){void 0===e&&(e={}),t.call(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={$done:{configurable:!0}};return e.prototype.logger=function(){},e.prototype.$on=function(t,e,r){var n=this;void 0===r&&(r=null);this.validate(t,e);var o=this.takeFromStore(t);if(!1===o)return this.logger("($on)",t+" callback is not in lazy store"),this.addToNormalStore(t,"on",e,r);this.logger("($on)",t+" found in lazy store");var a=0;return o.forEach((function(o){var i=o[0],u=o[1],c=o[2];if(c&&"on"!==c)throw new Error("You are trying to register an event already been taken by other type: "+c);n.logger("($on)","call run on "+t),n.run(e,i,r||u),a+=n.addToNormalStore(t,"on",e,r||u)})),a},e.prototype.$once=function(t,e,r){void 0===r&&(r=null),this.validate(t,e);var n=this.takeFromStore(t);this.normalStore;if(!1===n)return this.logger("($once)",t+" not in the lazy store"),this.addToNormalStore(t,"once",e,r);this.logger("($once)",n);var o=Array.from(n)[0],a=o[0],i=o[1],u=o[2];if(u&&"once"!==u)throw new Error("You are trying to register an event already been taken by other type: "+u);this.logger("($once)","call run for "+t),this.run(e,a,r||i),this.$off(t)},e.prototype.$only=function(t,e,r){var n=this;void 0===r&&(r=null),this.validate(t,e);var o=!1,a=this.takeFromStore(t);(this.normalStore.has(t)||(this.logger("($only)",t+" add to store"),o=this.addToNormalStore(t,"only",e,r)),!1!==a)&&(this.logger("($only)",t+" found data in lazy store to execute"),Array.from(a).forEach((function(o){var a=o[0],i=o[1],u=o[2];if(u&&"only"!==u)throw new Error("You are trying to register an event already been taken by other type: "+u);n.logger("($only)","call run for "+t),n.run(e,a,r||i)})));return o},e.prototype.$onlyOnce=function(t,e,r){void 0===r&&(r=null),this.validate(t,e);var n=!1,o=this.takeFromStore(t);if(this.normalStore.has(t)||(this.logger("($onlyOnce)",t+" add to store"),n=this.addToNormalStore(t,"onlyOnce",e,r)),!1!==o){this.logger("($onlyOnce)",o);var a=Array.from(o)[0],i=a[0],u=a[1],c=a[2];if(c&&"onlyOnce"!==c)throw new Error("You are trying to register an event already been taken by other type: "+c);this.logger("($onlyOnce)","call run for "+t),this.run(e,i,r||u),this.$off(t)}return n},e.prototype.$replace=function(t,e,r,n){if(void 0===r&&(r=null),void 0===n&&(n="on"),this.validateType(n)){this.$off(t);var o=this["$"+n];return this.logger("($replace)",t,e),Reflect.apply(o,this,[t,e,r])}throw new Error(n+" is not supported!")},e.prototype.$trigger=function(t,e,r,n){void 0===e&&(e=[]),void 0===r&&(r=null),void 0===n&&(n=!1),this.validateEvt(t);var o=0,a=this.normalStore;if(this.logger("($trigger)","normalStore",a),a.has(t)){var i=this.$queue(t,e,r,n);if(this.logger("($trigger)",t,"found; add to queue: ",i),!0===i)return this.logger("($trigger)",t,"not executed. Exit now."),!1;for(var u=Array.from(a.get(t)),c=u.length,f=!1,s=0;s0;)n[o]=arguments[o+2];if(t.has(e)?(this.logger("(addToStore)",e+" existed"),r=t.get(e)):(this.logger("(addToStore)","create new Set for "+e),r=new Set),n.length>2)if(Array.isArray(n[0])){var a=n[2];this.checkTypeInLazyStore(e,a)||r.add(n)}else this.checkContentExist(n,r)||(this.logger("(addToStore)","insert new",n),r.add(n));else r.add(n);return t.set(e,r),[t,r.size]},e.prototype.checkContentExist=function(t,e){return!!Array.from(e).filter((function(e){return e[0]===t[0]})).length},e.prototype.checkTypeInStore=function(t,e){this.validateEvt(t,e);var r=this.$get(t,!0);return!1===r||!r.filter((function(t){var r=t[3];return e!==r})).length},e.prototype.checkTypeInLazyStore=function(t,e){this.validateEvt(t,e);var r=this.lazyStore.get(t);return this.logger("(checkTypeInLazyStore)",r),!!r&&!!Array.from(r).filter((function(t){return t[2]!==e})).length},e.prototype.addToNormalStore=function(t,e,r,n){if(void 0===n&&(n=null),this.logger("(addToNormalStore)",t,e,"try to add to normal store"),this.checkTypeInStore(t,e)){this.logger("(addToNormalStore)",e+" can add to "+t+" normal store");var o=this.hashFnToKey(r),a=[this.normalStore,t,o,r,n,e],i=Reflect.apply(this.addToStore,this,a),u=i[0],c=i[1];return this.normalStore=u,c}return!1},e.prototype.addToLazyStore=function(t,e,r,n){void 0===e&&(e=[]),void 0===r&&(r=null),void 0===n&&(n=!1);var o=[this.lazyStore,t,this.toArray(e),r];n&&o.push(n);var a=Reflect.apply(this.addToStore,this,o),i=a[0],u=a[1];return this.lazyStore=i,u},e.prototype.toArray=function(t){return Array.isArray(t)?t:[t]},r.normalStore.set=function(t){_a.set(this,t)},r.normalStore.get=function(){return _a.get(this)},r.lazyStore.set=function(t){ma.set(this,t)},r.lazyStore.get=function(){return ma.get(this)},e.prototype.hashFnToKey=function(t){return t.toString().split("").reduce((function(t,e){return(t=(t<<5)-t+e.charCodeAt(0))&t}),0)+""},Object.defineProperties(e.prototype,r),e}(wa))),Sa=(ba("process-contract"),function(t){var e=Dr(t);if(!1!==e)return e;throw new l("Missing property in contract!")});function ka(t){var e,r,n=t.contract;return t.enableAuth?function(t,e){void 0===e&&(e=!1);var r=Dr(t);if(!1===r){if(e)return t;throw new Y("socket not found in contract!")}var n,o={},a=0;for(var i in r){var u=r[i],c=u.namespace;c&&(o[c]||(++a,o[c]={}),o[c][i]=u,n||u.public&&(n=c))}return{size:a,nspSet:o,publicNamespace:n}}(n):((r={})[x]=((e={})[b]=Sa(n),e),r[C]=b,r)}var Ea=function(t,e){return"ws"===e?t.replace("http://","ws://"):t},$a=function(){try{return[window.location.protocol,window.location.host].join("//")}catch(t){throw new JsonqlValidationError(t)}},Aa=function(t,e){Gt(e).forEach((function(e){t.$off(Qt(e,N))}))},Ta=ba("respondHandler");function Pa(t,e,r){Kt(t,y)?(Ta("-- rejecter called --",t[y]),r(t[y])):Kt(t,g)?(Ta("-- resolver called --",t[g]),e(t[g])):(Ta("-- UNKNOWN_RESULT --",t),r({message:X,error:t}))}var Na=ba("action-call");function Ra(t,e,r,n,o){void 0===o&&(o=[]);var a=Qt(e,N),i=n?I:M;return Na("actionCall: "+a+" --\x3e "+r,o),t.$trigger(a,[r,Gt(o)]),new Promise((function(n,o){t.$on(Qt(e,r,i),(function(t){Na("got the first result",t),Pa(t,n,o)}))}))}var za=ba("setup-send"),xa=function(t,e,r,n,o,a){return Ir(t,"send",(function(t){var i=a?J:F;za("got payload for",t),va(Gt(t),o.params,!0).then((function(o){if(!o[y]||!o[y].length)return Ra(e,r,n,a,t);za("got ERROR_KEY",o[y]),e.$call(Qt(r,n,i),[new d(n,o[y])])})).catch((function(t){za("error after validateAsync",t),e.$call(Qt(r,n,i),[new d(n,t)])}))}),(function(){return function(){for(var t=[],i=arguments.length;i--;)t[i]=arguments[i];return va(t,o.params,!0).then((function(t){return Ra(e,r,n,a,t)})).catch(G)}}))};ba("setup-resolver");function Ca(t,e,r,n,o){return[Jr(t,Z,(function(t,o){if(ha(t)&&Xt(o))switch(t){case I:e.$on(Qt(r,n,ON_RESULT_PROP_NAME),(function(t){Pa(t,o,(function(t){e.$trigger(Qt(r,n,ON_ERROR_PROP_NAME),t)}))}));break;case U:e.$only(Qt(r,n,ON_MESSAGE_PROP_NAME),(function(t){Pa(t,o,(function(t){e.$trigger(Qt(r,n,ON_ERROR_PROP_NAME),t)}))}));break;case READY_PROP_NAME:e.$only(Qt(r,n,ON_ERROR_PROP_NAME),o);break;default:e.$trigger(Qt(r,n,ON_ERROR_PROP_NAME),new Y(n,"Unknown event name "+t+"!"))}})),e,r,n,o]}ba("setup-resolver");var qa=function(t,e,r,n,o,a){return[Jr(t,"myNamespace",r),e,r,n,o,a]},Ma=function(t,e,r,n,o,a){return[Ir(t,M,(function(t){Xt(t)&&e.$on(Qt(r,n,M),(function(o){Pa(o,t,(function(t){e.$trigger(Qt(r,n,F),t)}))}))})),e,r,n,o,a]},Fa=function(t,e,r,n,o,a){return[Ir(t,q,(function(t){if(Xt(t)){e.$only(Qt(r,n,q),(function(o){Pa(o,t,(function(t){e.$trigger(Qt(r,n,F),t)}))}))}})),e,r,n,o,a]},La=function(t,e,r,n,o,a){return[Ir(t,F,(function(t){Xt(t)&&e.$only(Qt(r,n,F),t)})),e,r,n,o,a]};function Wa(t,e,r,n,o,a){var i=[qa];a?i.push(Ca):i.push(Ma,Fa,La),i.push(xa);var u=Reflect.apply(Zt,null,i);return Reflect.apply(u,null,[n,o,t,e,r,a])}ba("resolver-methods");function Ua(t,e,r,n,o){return function(){for(var a=[],i=arguments.length;i--;)a[i]=arguments[i];return va(a,n.params,!0).then((function(n){return Ra(t,e,r,o,n)})).catch(G)}}var Ia=function(t,e,r){return[Jr(t,r.loginHandlerName,(function(t){if(t&&ha(t))return e.$trigger(T,[t]);throw new d(r.loginHandlerName,"Unexpected token "+t)})),e,r]},Ja=function(t,e,r){return Jr(t,r.logoutHandlerName,(function(){for(var t=[],r=arguments.length;r--;)t[r]=arguments[r];e.$trigger(P,t)}))};var Da,Ba;ba("generator");function Va(t,e,r){var n={},o=e.nspSet,a=t.useCallbackStyle;for(var i in o){var u=o[i];for(var c in u){var f=u[c];n=Jr(n,c,Wa(i,c,f,Ua(r,i,c,f,a),r,a))}}return n.devHelpers={getNsp:function(){return Object.keys(o)},getVer:function(){return t.version||"NOT SET"}},Promise.resolve(n)}function Ya(t,e,r){var n=e.nspSet,o=[Va];return t.useCallbackStyle?o.push((function(t){return function(t,e,r,n){return Jr(t,Z,(function(t,n){if(ha(t)&&Xt(n))switch(t){case J:for(var o in r)e.$on(Qt(o,J),n);break;case B:e.$only(B,n);break;case D:e.$on(D,n);break;default:e.$trigger(J,new Y(Z,"Unknown event name "+t+"!"))}}))}(t,r,n)})):o.push((function(t){return function(t,e,r){return Ir(t,F,(function(t){if(Xt(t))for(var n in r)e.$on(Qt(n,F),t)}))}(t,r,n)}),(function(t){return function(t,e,r){return Ir(t,L,(function(t){Xt(t)&&e.$on(L,t)}))}(t,r)}),(function(e){return function(t,e,r){return r.enableAuth?Ir(t,W,(function(t){Xt(t)&&e.$only(W,t)})):t}(e,r,t)})),o.push((function(e){return function(t,e,r){return r.enableAuth?Zt(Ia,Ja)(t,e,r):t}(e,r,t)})),Reflect.apply(Ur,null,o)(t,e,r)}var Ha=["roundtip","handshake"],Ga={useCallbackStyle:da(!1,["boolean"]),loginHandlerName:da("login",["string"]),logoutHandlerName:da("logout",["string"]),loginMethod:da("handshake",["string"],(Da={},Da[S]=Ha,Da)),useJwt:da(!0,["boolean","string"]),hostname:da(!1,["string"]),namespace:da(b,["string"]),wsOptions:da({},["object"]),contract:da({},["object"],(Ba={},Ba[E]=Gr,Ba)),enableAuth:da(!1,["boolean"]),token:da(!1,["string"])},Ka=ba("check-options"),Qa={eventEmitter:null,nspClient:null,nspAuthClient:null,wssPath:""};var Xa={version:"version: 0.8.0 module: umd",serverType:"ws"},Za=null;"undefined"!=typeof WebSocket?Za=WebSocket:"undefined"!=typeof MozWebSocket?Za=MozWebSocket:void 0!==u?Za=u.WebSocket||u.MozWebSocket:"undefined"!=typeof window?Za=window.WebSocket||window.MozWebSocket:"undefined"!=typeof self&&(Za=self.WebSocket||self.MozWebSocket);var ti=Za,ei=function(t){var e=t.toLowerCase();return e.indexOf("http")>-1?e.indexOf("https")>-1?e.replace("https","wss"):e.replace("http","ws"):e};function ri(t,e){return void 0===e&&(e=!1),!1===e?function(e){return new t(ei(e))}:function(e,r){var n=ei(e),o=r&&"string"==typeof r?n+"?"+V+"="+r:n;try{return new t(o)}catch(t){return console.error("WebSocket Connection Error",t),!1}}}function ni(t,e){var r=e.hostname,n=e.wssPath,o=e.wsOptions;return(0,e.nspClient)(t?[r,t].join("/"):n,o)}var oi=ba("client-event-handler"),ai=function(t,e,r){var n=r.useCallbackStyle,o=n?J:F,a=n?I:M;e.$only(Qt(t,Q),(function(r,n){oi("noLoginHandler hijack the ws call",t,r,n);var i={message:"NOT LOGIN"};e.$call(Qt(t,r,o),[i]),e.$call(Qt(t,r,a),[{error:i}])}))},ii=function(t){return t.length>1&&t[0]};function ui(t,e,r,n,o,a){var i=ii(o),u=!1;o.forEach((function(o){if(u=i===o,a[o]){oi("call bindWsHandler",u,o);var c=[o,a[o],r,u,t];if(t.serverType===K){var f=e.nspSet;c.push(f[o])}Reflect.apply(n,null,c)}else ai(o,r,t)})),r.$on(P,(function(){oi("LOGOUT_EVENT_NAME"),function(t,e,r,n){void 0===n&&(n={});var o=n.useCallbackStyle?J:F;e.forEach((function(e){t.$call(Qt(e,o),[{message:r,namespace:e}])}))}(r,o,P),o.forEach((function(e){Aa(r,e),a[e]=!1,ai(e,r,t)}))}))}var ci=["__reply__","__event__","__data__"],fi=function(t){var e,r=t.data;if(!1!==(e=function(t){var e=t.data;return!!e&&(ci.filter((function(t){return Kt(e,t)})).length===ci.length&&e)}(ha(r)?JSON.parse(r):r)))return{resolverName:e.__event__,data:e.__data__,type:e.__reply__};throw new Y("payload can not be decoded",t)},si=ba("ws-main-handler"),li=function(t,e,r,n,o){var a=[e];r&&(si("a global error on "+e),a.push(r)),a.push(o);var i=Reflect.apply(Qt,null,a),u=n.data||n;t.$trigger(i,[u])};function pi(t,e,r,n,o){var a=o.useCallbackStyle,i=a?D:L,u=a?B:W,c=a?U:q,f=a?I:M,s=a?J:F;e.onopen=function(){si("ws.onopen listened"),r.$call(i,t),n&&(console.log("isPrivate and fire the "+u),r.$call(u,t)),r.$only(Qt(t,N),(function(t,r){si("calling server",t,r),e.send(Hr(t,r))}))},e.onmessage=function(e){try{var n=fi(e),o=n.resolverName,a=n.type;switch(si("Hear from server",a,n),a){case N:var i=Qt(t,o,c),u=r.$trigger(i,[n]);si("EMIT_REPLY_TYPE",i,u);break;case R:var l=Qt(t,o,f);r.$trigger(l,[n]);si("ACKNOWLEDGE_REPLY_TYPE",l,n);break;case z:si("ERROR_TYPE"),li(r,t,o,n,s);break;default:si("Unhandled event!",n),li(r,t,o,n,s)}}catch(e){console.error("ws.onmessage error",e),li(r,t,!1,e,s)}},e.onclose=function(){si("ws.onclose callback")},r.$on(P,(function(){try{si("terminate ws connection"),e.terminate()}catch(t){console.error("ws.terminate error",t)}}))}ba("ws-create-client");var hi=function(t,e,r){var n,o=e.nspSet,a=e.publicNamespace,i=!1,u=[],c={};if(t.enableAuth&&t.useJwt)i=!0,c=(u=function(t,e){var r=[];for(var n in t)n===e?r[1]=n:r[0]=n;return r}(o,a)).map((function(e,n){var o,a,i;return 0===n?r?(t.token=r,(o={})[e]=function(t,e){var r=e.hostname,n=e.wssPath,o=e.token,a=e.wsOptions,i=e.nspAuthClient,u=t?[r,t].join("/"):n;if(o&&"string"!=typeof o)throw new Error("Expect token to be string, but got "+o);return i(u,o,a)}(e,t),o):((a={})[e]=!1,a):((i={})[e]=ni(e,t),i)})).reduce((function(t,e){return Object.assign(t,e)}),{});else{var f=(n=o,Object.keys(n)[0]);u.push(f),c[f]=ni(!1,t)}return{nsps:c,namespaces:u,login:i}};return function(t,e){return void 0===e&&(e={}),function(r){var n=r.eventEmitter;return function(t,e){return ga(t,Ga,Object.assign(Qa,e)).then((function(t){return t.hostname||(t.hostname=$a()),t.wssPath=Ea([t.hostname,t.namespace].join("/"),t.serverType),Ka("CONFIGURATION OPTIONS",t),t}))}(r,e).then((function(t){return{opts:t,nspMap:ka(t),ee:n||new Oa}})).then((function(e){var r=e.opts,n=e.nspMap,o=e.ee;return t(r,n,o)})).then((function(t){return Ya(t.opts,t.nspMap,t.ee)})).catch((function(t){console.error("jsonql-ws-client init error",t)}))}}(function(t){var e=ri(t),r=ri(t,!0);return function(t,n,o){return t.nspClient=e,t.nspAuthClient=r,function(t,e,r){var n=[t,e,r,pi],o=t.token,a=hi(t,e,o),i=a.nsps,u=a.namespaces,c=a.login;return Reflect.apply(ui,null,n.concat([u,i])),c&&r.$only(T,(function(o){Aa(r,u);var a=hi(t,e,o);Reflect.apply(ui,null,n.concat([a.namespaces,a.nsps]))})),{opts:t,nspMap:e,ee:r}}(t,n,o)}}(ti),Xa)})); //# sourceMappingURL=jsonql-ws-client.umd.js.map diff --git a/packages/@jsonql/ws/old/ws/extract-ws-payload.js b/packages/@jsonql/ws/old/ws/extract-ws-payload.js index 1a8412baaf4c8f551a55525043e906a3520d7bef..df05a6eabb5c680b24ac4c4adc20c5517232bb8b 100644 --- a/packages/@jsonql/ws/old/ws/extract-ws-payload.js +++ b/packages/@jsonql/ws/old/ws/extract-ws-payload.js @@ -1,6 +1,6 @@ // take the ws reply data for use import { WS_EVT_NAME, WS_DATA_NAME, WS_REPLY_TYPE } from 'jsonql-constants' -import { isString, isKeyInObject } from 'jsonql-params-validator' +import { isString, isObjectHasKey } from 'jsonql-params-validator' import { JsonqlError, clientErrorsHandler } from 'jsonql-errors' import getDebug from '../utils/get-debug' @@ -15,7 +15,7 @@ const keys = [ WS_REPLY_TYPE, WS_EVT_NAME, WS_DATA_NAME ] const isWsReply = payload => { const { data } = payload; if (data) { - let result = keys.filter(key => isKeyInObject(data, key)) + let result = keys.filter(key => isObjectHasKey(data, key)) return (result.length === keys.length) ? data : false; } return false; diff --git a/packages/@jsonql/ws/package.json b/packages/@jsonql/ws/package.json index aade9804381845a45da5f0ec3525cfd690e5870e..ab8ac2d33927ac7909f779f8f10201db02454733 100644 --- a/packages/@jsonql/ws/package.json +++ b/packages/@jsonql/ws/package.json @@ -1,6 +1,6 @@ { "name": "@jsonql/ws", - "version": "0.5.0", + "version": "0.8.0", "description": "WS (WebSocket) jsonql client module for browser / node", "main": "dist/jsonql-ws.cjs.js", "browser": "dist/jsonql-ws.umd.js", @@ -37,12 +37,12 @@ "license": "ISC", "homepage": "jsonql.org", "dependencies": { - "jsonql-constants": "^1.8.7", + "jsonql-constants": "^1.8.8", "jsonql-errors": "^1.1.3", "jsonql-jwt": "^1.3.3", "jsonql-params-validator": "^1.4.11", - "jsonql-utils": "^0.7.8", - "jsonql-ws-client": "^1.1.3", + "jsonql-utils": "^0.8.1", + "jsonql-ws-client": "^1.3.3", "ws": "^7.2.0" }, "devDependencies": { diff --git a/packages/@jsonql/ws/src/core/create-client.js b/packages/@jsonql/ws/src/core/create-client.js index b354dc4f0e3b71020c1753e7d89fc34b14b96840..44819e7d9123909cf5cbbaa4cba953397314b66f 100644 --- a/packages/@jsonql/ws/src/core/create-client.js +++ b/packages/@jsonql/ws/src/core/create-client.js @@ -14,12 +14,6 @@ import { wsMainHandler } from './ws-main-handler' const debugFn = getDebug('ws-create-client') -/* -import { - createNspClient, - createNspAuthClient -} from '../../tests/fixtures/create-login-clients' -*/ /** * Because the nsps can be throw away so it doesn't matter the scope * this will get reuse again diff --git a/packages/@jsonql/ws/src/core/extract-ws-payload.js b/packages/@jsonql/ws/src/core/extract-ws-payload.js index e223ed47244aa29080f506f534ecca856f518709..77e5a1ccd7e5c2ccea65e86cdf6a8e329bec061e 100644 --- a/packages/@jsonql/ws/src/core/extract-ws-payload.js +++ b/packages/@jsonql/ws/src/core/extract-ws-payload.js @@ -1,6 +1,7 @@ // take the ws reply data for use import { WS_EVT_NAME, WS_DATA_NAME, WS_REPLY_TYPE } from 'jsonql-constants' -import { isString, isKeyInObject } from 'jsonql-params-validator' +import { isString } from 'jsonql-params-validator' +import { isObjectHasKey } from 'jsonql-utils/module' import { JsonqlError, clientErrorsHandler } from 'jsonql-errors' const keys = [ WS_REPLY_TYPE, WS_EVT_NAME, WS_DATA_NAME ] @@ -12,7 +13,7 @@ const keys = [ WS_REPLY_TYPE, WS_EVT_NAME, WS_DATA_NAME ] const isWsReply = payload => { const { data } = payload; if (data) { - let result = keys.filter(key => isKeyInObject(data, key)) + let result = keys.filter(key => isObjectHasKey(data, key)) return (result.length === keys.length) ? data : false; } return false; diff --git a/packages/@jsonql/ws/src/core/ws-main-handler.js b/packages/@jsonql/ws/src/core/ws-main-handler.js index 9c83806d1e4c78b2f6312b3fd9ebc42aa5fb32d6..0f8b5d4b8ac08b5a8e622e58ddbf9370417e823b 100644 --- a/packages/@jsonql/ws/src/core/ws-main-handler.js +++ b/packages/@jsonql/ws/src/core/ws-main-handler.js @@ -1,25 +1,28 @@ // the WebSocket main handler -import { constants, getDebug } from 'jsonql-ws-client/share' +import { getDebug } from 'jsonql-ws-client/share' import { - ON_ERROR_PROP_NAME, LOGIN_EVENT_NAME, LOGOUT_EVENT_NAME, ACKNOWLEDGE_REPLY_TYPE, EMIT_REPLY_TYPE, ERROR_TYPE, + + ON_ERROR_PROP_NAME, + ON_MESSAGE_PROP_NAME, + ON_RESULT_PROP_NAME, ON_READY_PROP_NAME, - ON_LOGIN_PROP_NAME + ON_LOGIN_PROP_NAME, + + ERROR_PROP_NAME, + MESSAGE_PROP_NAME, + RESULT_PROP_NAME, + READY_PROP_NAME, + LOGIN_PROP_NAME } from 'jsonql-constants' import { createQueryStr, createEvt } from 'jsonql-utils/module' import extractWsPayload from './extract-ws-payload' - const debugFn = getDebug('ws-main-handler') -const { - ON_MESSAGE_PROP_NAME, - ON_RESULT_PROP_NAME, - EMIT_EVT -} = constants /** * under extremely circumstances we might not even have a resolverName, then @@ -28,14 +31,16 @@ const { * @param {string} namespace nsp * @param {string} resolverName resolver * @param {object} json decoded payload or error object + * @param {string} ERROR_EVT_NAME the error event name + * @return {undefined} nothing return */ -const errorTypeHandler = (ee, namespace, resolverName, json) => { +const errorTypeHandler = (ee, namespace, resolverName, json, ERROR_EVT_NAME) => { let evt = [namespace] if (resolverName) { debugFn(`a global error on ${namespace}`) evt.push(resolverName) } - evt.push(ON_ERROR_PROP_NAME) + evt.push(ERROR_EVT_NAME) let evtName = Reflect.apply(createEvt, null, evt) // test if there is a data field let payload = json.data || json; @@ -48,22 +53,29 @@ const errorTypeHandler = (ee, namespace, resolverName, json) => { * @param {object} ws the nsp * @param {object} ee EventEmitter * @param {boolean} isPrivate to id if this namespace is private or not + * @param {object} opts configuration * @return {object} promise resolve after the onopen event */ -export function wsMainHandler(namespace, ws, ee, isPrivate) { +export function wsMainHandler(namespace, ws, ee, isPrivate, opts) { + const { useCallbackStyle } = opts; + const READY_EVT_NAME = useCallbackStyle ? READY_PROP_NAME : ON_READY_PROP_NAME; + const LOGIN_EVT_NAME = useCallbackStyle ? LOGIN_PROP_NAME : ON_LOGIN_PROP_NAME; + const MESSAGE_EVT_NAME = useCallbackStyle ? MESSAGE_PROP_NAME : ON_MESSAGE_PROP_NAME; + const RESULT_EVT_NAME = useCallbackStyle ? RESULT_PROP_NAME : ON_RESULT_PROP_NAME; + const ERROR_EVT_NAME = useCallbackStyle ? ERROR_PROP_NAME : ON_ERROR_PROP_NAME; // connection open ws.onopen = function onOpenCallback() { debugFn('ws.onopen listened') // we just call the onReady - ee.$call(ON_READY_PROP_NAME, namespace) + ee.$call(READY_EVT_NAME, namespace) // need an extra parameter here to id the private nsp if (isPrivate) { - console.log(`isPrivate and fire the ON_LOGIN_PROP_NAME ${ON_LOGIN_PROP_NAME}`) - ee.$call(ON_LOGIN_PROP_NAME, namespace) + console.log(`isPrivate and fire the ${LOGIN_EVT_NAME}`) + ee.$call(LOGIN_EVT_NAME, namespace) } // add listener only after the open is called ee.$only( - createEvt(namespace, EMIT_EVT), + createEvt(namespace, EMIT_REPLY_TYPE), function wsMainOnEvtHandler(resolverName, args) { debugFn('calling server', resolverName, args) ws.send( @@ -84,12 +96,12 @@ export function wsMainHandler(namespace, ws, ee, isPrivate) { debugFn('Hear from server', type, json) switch (type) { case EMIT_REPLY_TYPE: - let e1 = createEvt(namespace, resolverName, ON_MESSAGE_PROP_NAME) + let e1 = createEvt(namespace, resolverName, MESSAGE_EVT_NAME) let r = ee.$trigger(e1, [json]) debugFn(`EMIT_REPLY_TYPE`, e1, r) break; case ACKNOWLEDGE_REPLY_TYPE: - let e2 = createEvt(namespace, resolverName, ON_RESULT_PROP_NAME) + let e2 = createEvt(namespace, resolverName, RESULT_EVT_NAME) let x = ee.$trigger(e2, [json]) debugFn(`ACKNOWLEDGE_REPLY_TYPE`, e2, json) break; @@ -97,19 +109,19 @@ export function wsMainHandler(namespace, ws, ee, isPrivate) { // this is handled error and we won't throw it // we need to extract the error from json debugFn(`ERROR_TYPE`) - errorTypeHandler(ee, namespace, resolverName, json) + errorTypeHandler(ee, namespace, resolverName, json, ERROR_EVT_NAME) break; // @TODO there should be an error type instead of roll into the other two types? TBC default: // if this happen then we should throw it and halt the operation all together debugFn('Unhandled event!', json) - errorTypeHandler(ee, namespace, resolverName, json) + errorTypeHandler(ee, namespace, resolverName, json, ERROR_EVT_NAME) // let error = {error: {'message': 'Unhandled event!', type}}; // ee.$trigger(createEvt(namespace, resolverName, ON_RESULT_PROP_NAME), [error]) } } catch(e) { console.error(`ws.onmessage error`, e) - errorTypeHandler(ee, namespace, false, e) + errorTypeHandler(ee, namespace, false, e, ERROR_EVT_NAME) } } // when the server close the connection diff --git a/packages/@jsonql/ws/tests/ws-client-basic.test.js b/packages/@jsonql/ws/tests/ws-client-basic.test.js index 92122024203895f74a956e2ed8ca553ff173f1a1..9e52d47e3419d1a41a8b8ae96b4c0b98841305d7 100644 --- a/packages/@jsonql/ws/tests/ws-client-basic.test.js +++ b/packages/@jsonql/ws/tests/ws-client-basic.test.js @@ -35,12 +35,9 @@ test.cb('It should able to connect to the ws server', t => { t.plan(2) let client = t.context.client - debug(client) + // debug(client) let ver = client.devHelpers.getVer() - - debug('version', ver) - t.truthy(ver) client.simple(100) @@ -79,7 +76,9 @@ test.cb('It should able to send message back while its talking to the server', t debug(c) if (c === 3) { debug(c) - client.continuous.send = 'terminate' + // client.continuous.send = 'terminate' + // use the new interface + client.continuous.send('terminate') t.pass() t.end() } diff --git a/packages/contract-cli/src/generator/helpers.js b/packages/contract-cli/src/generator/helpers.js index a65bf0ced425470708faaf162debe3fc931d7494..02f9b6ea59cac69b8e2a923d263c34809adfe895 100644 --- a/packages/contract-cli/src/generator/helpers.js +++ b/packages/contract-cli/src/generator/helpers.js @@ -2,7 +2,7 @@ const fsx = require('fs-extra') const { merge, extend, camelCase } = require('lodash') const { isObject } = require('jsonql-params-validator') -const { isKeyInObject, isContract } = require('jsonql-utils') +const { isObjectHasKey, isContract } = require('jsonql-utils') const { RESOLVER_TYPES, AUTH_TYPE, diff --git a/packages/errors/dist/jsonql-errors.cjs.js b/packages/errors/dist/jsonql-errors.cjs.js index 93be29ec0e0bbac849a8e4db6aba39c7588d7919..adcfd7b2962805fe313a1c1f8689bdc201d57ffb 100644 --- a/packages/errors/dist/jsonql-errors.cjs.js +++ b/packages/errors/dist/jsonql-errors.cjs.js @@ -1,2 +1,2 @@ -"use strict";function getErrorByStatus(r,o){switch(void 0===o&&(o=!1),r){case 401:return o?"JsonqlContractAuthError":"JsonqlAuthorisationError";case 403:return"JsonqlForbiddenError";case 404:return"JsonqlResolverNotFoundError";case 406:return"Jsonql406Error";case 500:return"Jsonql500Error";default:return"JsonqlError"}}Object.defineProperty(exports,"__esModule",{value:!0});var Jsonql406Error=function(r){function o(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];r.apply(this,e),this.message=e[0],this.detail=e[1],this.className=o.name,r.captureStackTrace&&r.captureStackTrace(this,o)}r&&(o.__proto__=r),o.prototype=Object.create(r&&r.prototype),o.prototype.constructor=o;var e={statusCode:{configurable:!0},name:{configurable:!0}};return e.statusCode.get=function(){return 406},e.name.get=function(){return"Jsonql406Error"},Object.defineProperties(o,e),o}(Error),Jsonql500Error=function(r){function o(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];r.apply(this,e),this.message=e[0],this.detail=e[1],this.className=o.name,r.captureStackTrace&&r.captureStackTrace(this,o)}r&&(o.__proto__=r),o.prototype=Object.create(r&&r.prototype),o.prototype.constructor=o;var e={statusCode:{configurable:!0},name:{configurable:!0}};return e.statusCode.get=function(){return 500},e.name.get=function(){return"Jsonql500Error"},Object.defineProperties(o,e),o}(Error),JsonqlAuthorisationError=function(r){function o(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];r.apply(this,e),this.message=e[0],this.detail=e[1],this.className=o.name,r.captureStackTrace&&r.captureStackTrace(this,o)}r&&(o.__proto__=r),o.prototype=Object.create(r&&r.prototype),o.prototype.constructor=o;var e={statusCode:{configurable:!0},name:{configurable:!0}};return e.statusCode.get=function(){return 401},e.name.get=function(){return"JsonqlAuthorisationError"},Object.defineProperties(o,e),o}(Error),JsonqlContractAuthError=function(r){function o(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];r.apply(this,e),this.message=e[0],this.detail=e[1],this.className=o.name,r.captureStackTrace&&r.captureStackTrace(this,o)}r&&(o.__proto__=r),o.prototype=Object.create(r&&r.prototype),o.prototype.constructor=o;var e={statusCode:{configurable:!0},name:{configurable:!0}};return e.statusCode.get=function(){return 401},e.name.get=function(){return"JsonqlContractAuthError"},Object.defineProperties(o,e),o}(Error),JsonqlResolverAppError=function(r){function o(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];r.apply(this,e),this.message=e[0],this.detail=e[1],this.className=o.name,r.captureStackTrace&&r.captureStackTrace(this,o)}r&&(o.__proto__=r),o.prototype=Object.create(r&&r.prototype),o.prototype.constructor=o;var e={statusCode:{configurable:!0},name:{configurable:!0}};return e.statusCode.get=function(){return 500},e.name.get=function(){return"JsonqlResolverAppError"},Object.defineProperties(o,e),o}(Error),global$1="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},isBrowser=function(){try{if(window||document)return!0}catch(r){}return!1},isNode=function(){try{if(!isBrowser()&&global$1)return!0}catch(r){}return!1};function whereAmI(){return isBrowser()?"browser":isNode()?"node":"unknown"}var JsonqlBaseError=function(r){function o(){for(var o=[],e=arguments.length;e--;)o[e]=arguments[e];r.apply(this,o)}return r&&(o.__proto__=r),o.prototype=Object.create(r&&r.prototype),o.prototype.constructor=o,o.where=function(){return whereAmI()},o}(Error),JsonqlResolverNotFoundError=function(r){function o(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];r.apply(this,e),this.message=e[0],this.detail=e[1],this.className=o.name,Error.captureStackTrace&&Error.captureStackTrace(this,o)}r&&(o.__proto__=r),o.prototype=Object.create(r&&r.prototype),o.prototype.constructor=o;var e={statusCode:{configurable:!0},name:{configurable:!0}};return e.statusCode.get=function(){return 404},e.name.get=function(){return"JsonqlResolverNotFoundError"},Object.defineProperties(o,e),o}(JsonqlBaseError),JsonqlEnumError=function(r){function o(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];r.apply(this,e),this.message=e[0],this.detail=e[1],this.className=o.name,r.captureStackTrace&&r.captureStackTrace(this,o)}r&&(o.__proto__=r),o.prototype=Object.create(r&&r.prototype),o.prototype.constructor=o;var e={name:{configurable:!0}};return e.name.get=function(){return"JsonqlEnumError"},Object.defineProperties(o,e),o}(Error),JsonqlTypeError=function(r){function o(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];r.apply(this,e),this.message=e[0],this.detail=e[1],this.className=o.name,r.captureStackTrace&&r.captureStackTrace(this,o)}r&&(o.__proto__=r),o.prototype=Object.create(r&&r.prototype),o.prototype.constructor=o;var e={name:{configurable:!0}};return e.name.get=function(){return"JsonqlTypeError"},Object.defineProperties(o,e),o}(Error),JsonqlCheckerError=function(r){function o(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];r.apply(this,e),this.message=e[0],this.detail=e[1],this.className=o.name,r.captureStackTrace&&r.captureStackTrace(this,o)}r&&(o.__proto__=r),o.prototype=Object.create(r&&r.prototype),o.prototype.constructor=o;var e={name:{configurable:!0}};return e.name.get=function(){return"JsonqlCheckerError"},Object.defineProperties(o,e),o}(Error),JsonqlValidationError=function(r){function o(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];r.apply(this,e),this.message=e[0],this.detail=e[1],this.className=o.name,Error.captureStackTrace&&Error.captureStackTrace(this,o)}r&&(o.__proto__=r),o.prototype=Object.create(r&&r.prototype),o.prototype.constructor=o;var e={name:{configurable:!0}};return e.name.get=function(){return"JsonqlValidationError"},Object.defineProperties(o,e),o}(JsonqlBaseError),NO_ERROR_MSG="No message",NO_STATUS_CODE=-1,JsonqlError=function(r){function o(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];r.apply(this,e),this.message=e[0],this.detail=e[1],this.className=o.name,Error.captureStackTrace&&Error.captureStackTrace(this,o)}r&&(o.__proto__=r),o.prototype=Object.create(r&&r.prototype),o.prototype.constructor=o;var e={name:{configurable:!0},statusCode:{configurable:!0}};return e.name.get=function(){return"JsonqlError"},e.statusCode.get=function(){return NO_STATUS_CODE},Object.defineProperties(o,e),o}(JsonqlBaseError),JsonqlServerError=function(r){function o(e,t){r.call(this,t),this.statusCode=e,this.className=o.name}r&&(o.__proto__=r),o.prototype=Object.create(r&&r.prototype),o.prototype.constructor=o;var e={name:{configurable:!0}};return e.name.get=function(){return"JsonqlServerError"},Object.defineProperties(o,e),o}(Error),errors=Object.freeze({Jsonql406Error:Jsonql406Error,Jsonql500Error:Jsonql500Error,JsonqlAuthorisationError:JsonqlAuthorisationError,JsonqlContractAuthError:JsonqlContractAuthError,JsonqlResolverAppError:JsonqlResolverAppError,JsonqlResolverNotFoundError:JsonqlResolverNotFoundError,JsonqlEnumError:JsonqlEnumError,JsonqlTypeError:JsonqlTypeError,JsonqlCheckerError:JsonqlCheckerError,JsonqlValidationError:JsonqlValidationError,JsonqlError:JsonqlError,JsonqlServerError:JsonqlServerError}),JsonqlError$1=JsonqlError,isKeyInObject=function(r,o){return!!Object.keys(r).filter(function(r){return o===r}).length};function clientErrorsHandler(r){if(isKeyInObject(r,"error")){var o=r.error,e=o.className,t=o.name,n=e||t,s=o.message||NO_ERROR_MSG,a=o.detail||o;if(n&&errors[n])throw new errors[e](s,a);throw new JsonqlError$1(s,a)}return r}var UNKNOWN_ERROR="unknown";function mapErrToName(r,o){return r.filter(function(r){return o instanceof r}).map(function(r){return r.name})}function getErrorNameByInstance(r,o){var e=mapErrToName(r,o);return e.length?e[0]:UNKNOWN_ERROR}function getErrorNameByInstanceWithDefault(r,o){var e=getErrorNameByInstance(r,o);return e===UNKNOWN_ERROR?"JsonqlError":e}function finalCatch(r){if(Array.isArray(r))throw new JsonqlValidationError("",r);var o=r.message||NO_ERROR_MSG,e=r.detail||r;switch(!0){case r instanceof Jsonql406Error:throw new Jsonql406Error(o,e);case r instanceof Jsonql500Error:throw new Jsonql500Error(o,e);case r instanceof JsonqlAuthorisationError:throw new JsonqlAuthorisationError(o,e);case r instanceof JsonqlContractAuthError:throw new JsonqlContractAuthError(o,e);case r instanceof JsonqlResolverAppError:throw new JsonqlResolverAppError(o,e);case r instanceof JsonqlResolverNotFoundError:throw new JsonqlResolverNotFoundError(o,e);case r instanceof JsonqlEnumError:throw new JsonqlEnumError(o,e);case r instanceof JsonqlTypeError:throw new JsonqlTypeError(o,e);case r instanceof JsonqlCheckerError:throw new JsonqlCheckerError(o,e);case r instanceof JsonqlValidationError:throw new JsonqlValidationError(o,e);case r instanceof JsonqlServerError:throw new JsonqlServerError(o,e);default:throw new JsonqlError(o,e)}}var JSONQL_ERRORS_INFO="version: 1.1.3 module: cjs";exports.JSONQL_ERRORS_INFO=JSONQL_ERRORS_INFO,exports.Jsonql406Error=Jsonql406Error,exports.Jsonql500Error=Jsonql500Error,exports.JsonqlAuthorisationError=JsonqlAuthorisationError,exports.JsonqlCheckerError=JsonqlCheckerError,exports.JsonqlContractAuthError=JsonqlContractAuthError,exports.JsonqlEnumError=JsonqlEnumError,exports.JsonqlError=JsonqlError,exports.JsonqlResolverAppError=JsonqlResolverAppError,exports.JsonqlResolverNotFoundError=JsonqlResolverNotFoundError,exports.JsonqlServerError=JsonqlServerError,exports.JsonqlTypeError=JsonqlTypeError,exports.JsonqlValidationError=JsonqlValidationError,exports.UNKNOWN_ERROR=UNKNOWN_ERROR,exports.clientErrorsHandler=clientErrorsHandler,exports.finalCatch=finalCatch,exports.getErrorByStatus=getErrorByStatus,exports.getErrorNameByInstance=getErrorNameByInstance,exports.getErrorNameByInstanceWithDefault=getErrorNameByInstanceWithDefault; +"use strict";function getErrorByStatus(r,o){switch(void 0===o&&(o=!1),r){case 401:return o?"JsonqlContractAuthError":"JsonqlAuthorisationError";case 403:return"JsonqlForbiddenError";case 404:return"JsonqlResolverNotFoundError";case 406:return"Jsonql406Error";case 500:return"Jsonql500Error";default:return"JsonqlError"}}Object.defineProperty(exports,"__esModule",{value:!0});var Jsonql406Error=function(r){function o(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];r.apply(this,e),this.message=e[0],this.detail=e[1],this.className=o.name,r.captureStackTrace&&r.captureStackTrace(this,o)}r&&(o.__proto__=r),o.prototype=Object.create(r&&r.prototype),o.prototype.constructor=o;var e={statusCode:{configurable:!0},name:{configurable:!0}};return e.statusCode.get=function(){return 406},e.name.get=function(){return"Jsonql406Error"},Object.defineProperties(o,e),o}(Error),Jsonql500Error=function(r){function o(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];r.apply(this,e),this.message=e[0],this.detail=e[1],this.className=o.name,r.captureStackTrace&&r.captureStackTrace(this,o)}r&&(o.__proto__=r),o.prototype=Object.create(r&&r.prototype),o.prototype.constructor=o;var e={statusCode:{configurable:!0},name:{configurable:!0}};return e.statusCode.get=function(){return 500},e.name.get=function(){return"Jsonql500Error"},Object.defineProperties(o,e),o}(Error),JsonqlAuthorisationError=function(r){function o(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];r.apply(this,e),this.message=e[0],this.detail=e[1],this.className=o.name,r.captureStackTrace&&r.captureStackTrace(this,o)}r&&(o.__proto__=r),o.prototype=Object.create(r&&r.prototype),o.prototype.constructor=o;var e={statusCode:{configurable:!0},name:{configurable:!0}};return e.statusCode.get=function(){return 401},e.name.get=function(){return"JsonqlAuthorisationError"},Object.defineProperties(o,e),o}(Error),JsonqlContractAuthError=function(r){function o(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];r.apply(this,e),this.message=e[0],this.detail=e[1],this.className=o.name,r.captureStackTrace&&r.captureStackTrace(this,o)}r&&(o.__proto__=r),o.prototype=Object.create(r&&r.prototype),o.prototype.constructor=o;var e={statusCode:{configurable:!0},name:{configurable:!0}};return e.statusCode.get=function(){return 401},e.name.get=function(){return"JsonqlContractAuthError"},Object.defineProperties(o,e),o}(Error),JsonqlResolverAppError=function(r){function o(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];r.apply(this,e),this.message=e[0],this.detail=e[1],this.className=o.name,r.captureStackTrace&&r.captureStackTrace(this,o)}r&&(o.__proto__=r),o.prototype=Object.create(r&&r.prototype),o.prototype.constructor=o;var e={statusCode:{configurable:!0},name:{configurable:!0}};return e.statusCode.get=function(){return 500},e.name.get=function(){return"JsonqlResolverAppError"},Object.defineProperties(o,e),o}(Error),global$1="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},isBrowser=function(){try{if(window||document)return!0}catch(r){}return!1},isNode=function(){try{if(!isBrowser()&&global$1)return!0}catch(r){}return!1};function whereAmI(){return isBrowser()?"browser":isNode()?"node":"unknown"}var JsonqlBaseError=function(r){function o(){for(var o=[],e=arguments.length;e--;)o[e]=arguments[e];r.apply(this,o)}return r&&(o.__proto__=r),o.prototype=Object.create(r&&r.prototype),o.prototype.constructor=o,o.where=function(){return whereAmI()},o}(Error),JsonqlResolverNotFoundError=function(r){function o(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];r.apply(this,e),this.message=e[0],this.detail=e[1],this.className=o.name,Error.captureStackTrace&&Error.captureStackTrace(this,o)}r&&(o.__proto__=r),o.prototype=Object.create(r&&r.prototype),o.prototype.constructor=o;var e={statusCode:{configurable:!0},name:{configurable:!0}};return e.statusCode.get=function(){return 404},e.name.get=function(){return"JsonqlResolverNotFoundError"},Object.defineProperties(o,e),o}(JsonqlBaseError),JsonqlEnumError=function(r){function o(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];r.apply(this,e),this.message=e[0],this.detail=e[1],this.className=o.name,r.captureStackTrace&&r.captureStackTrace(this,o)}r&&(o.__proto__=r),o.prototype=Object.create(r&&r.prototype),o.prototype.constructor=o;var e={name:{configurable:!0}};return e.name.get=function(){return"JsonqlEnumError"},Object.defineProperties(o,e),o}(Error),JsonqlTypeError=function(r){function o(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];r.apply(this,e),this.message=e[0],this.detail=e[1],this.className=o.name,r.captureStackTrace&&r.captureStackTrace(this,o)}r&&(o.__proto__=r),o.prototype=Object.create(r&&r.prototype),o.prototype.constructor=o;var e={name:{configurable:!0}};return e.name.get=function(){return"JsonqlTypeError"},Object.defineProperties(o,e),o}(Error),JsonqlCheckerError=function(r){function o(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];r.apply(this,e),this.message=e[0],this.detail=e[1],this.className=o.name,r.captureStackTrace&&r.captureStackTrace(this,o)}r&&(o.__proto__=r),o.prototype=Object.create(r&&r.prototype),o.prototype.constructor=o;var e={name:{configurable:!0}};return e.name.get=function(){return"JsonqlCheckerError"},Object.defineProperties(o,e),o}(Error),JsonqlValidationError=function(r){function o(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];r.apply(this,e),this.message=e[0],this.detail=e[1],this.className=o.name,Error.captureStackTrace&&Error.captureStackTrace(this,o)}r&&(o.__proto__=r),o.prototype=Object.create(r&&r.prototype),o.prototype.constructor=o;var e={name:{configurable:!0}};return e.name.get=function(){return"JsonqlValidationError"},Object.defineProperties(o,e),o}(JsonqlBaseError),NO_ERROR_MSG="No message",NO_STATUS_CODE=-1,JsonqlError=function(r){function o(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];r.apply(this,e),this.message=e[0],this.detail=e[1],this.className=o.name,Error.captureStackTrace&&Error.captureStackTrace(this,o)}r&&(o.__proto__=r),o.prototype=Object.create(r&&r.prototype),o.prototype.constructor=o;var e={name:{configurable:!0},statusCode:{configurable:!0}};return e.name.get=function(){return"JsonqlError"},e.statusCode.get=function(){return NO_STATUS_CODE},Object.defineProperties(o,e),o}(JsonqlBaseError),JsonqlServerError=function(r){function o(e,t){r.call(this,t),this.statusCode=e,this.className=o.name}r&&(o.__proto__=r),o.prototype=Object.create(r&&r.prototype),o.prototype.constructor=o;var e={name:{configurable:!0}};return e.name.get=function(){return"JsonqlServerError"},Object.defineProperties(o,e),o}(Error),errors=Object.freeze({Jsonql406Error:Jsonql406Error,Jsonql500Error:Jsonql500Error,JsonqlAuthorisationError:JsonqlAuthorisationError,JsonqlContractAuthError:JsonqlContractAuthError,JsonqlResolverAppError:JsonqlResolverAppError,JsonqlResolverNotFoundError:JsonqlResolverNotFoundError,JsonqlEnumError:JsonqlEnumError,JsonqlTypeError:JsonqlTypeError,JsonqlCheckerError:JsonqlCheckerError,JsonqlValidationError:JsonqlValidationError,JsonqlError:JsonqlError,JsonqlServerError:JsonqlServerError}),JsonqlError$1=JsonqlError,isObjectHasKey=function(r,o){return!!Object.keys(r).filter(function(r){return o===r}).length};function clientErrorsHandler(r){if(isObjectHasKey(r,"error")){var o=r.error,e=o.className,t=o.name,n=e||t,s=o.message||NO_ERROR_MSG,a=o.detail||o;if(n&&errors[n])throw new errors[e](s,a);throw new JsonqlError$1(s,a)}return r}var UNKNOWN_ERROR="unknown";function mapErrToName(r,o){return r.filter(function(r){return o instanceof r}).map(function(r){return r.name})}function getErrorNameByInstance(r,o){var e=mapErrToName(r,o);return e.length?e[0]:UNKNOWN_ERROR}function getErrorNameByInstanceWithDefault(r,o){var e=getErrorNameByInstance(r,o);return e===UNKNOWN_ERROR?"JsonqlError":e}function finalCatch(r){if(Array.isArray(r))throw new JsonqlValidationError("",r);var o=r.message||NO_ERROR_MSG,e=r.detail||r;switch(!0){case r instanceof Jsonql406Error:throw new Jsonql406Error(o,e);case r instanceof Jsonql500Error:throw new Jsonql500Error(o,e);case r instanceof JsonqlAuthorisationError:throw new JsonqlAuthorisationError(o,e);case r instanceof JsonqlContractAuthError:throw new JsonqlContractAuthError(o,e);case r instanceof JsonqlResolverAppError:throw new JsonqlResolverAppError(o,e);case r instanceof JsonqlResolverNotFoundError:throw new JsonqlResolverNotFoundError(o,e);case r instanceof JsonqlEnumError:throw new JsonqlEnumError(o,e);case r instanceof JsonqlTypeError:throw new JsonqlTypeError(o,e);case r instanceof JsonqlCheckerError:throw new JsonqlCheckerError(o,e);case r instanceof JsonqlValidationError:throw new JsonqlValidationError(o,e);case r instanceof JsonqlServerError:throw new JsonqlServerError(o,e);default:throw new JsonqlError(o,e)}}var JSONQL_ERRORS_INFO="version: 1.1.3 module: cjs";exports.JSONQL_ERRORS_INFO=JSONQL_ERRORS_INFO,exports.Jsonql406Error=Jsonql406Error,exports.Jsonql500Error=Jsonql500Error,exports.JsonqlAuthorisationError=JsonqlAuthorisationError,exports.JsonqlCheckerError=JsonqlCheckerError,exports.JsonqlContractAuthError=JsonqlContractAuthError,exports.JsonqlEnumError=JsonqlEnumError,exports.JsonqlError=JsonqlError,exports.JsonqlResolverAppError=JsonqlResolverAppError,exports.JsonqlResolverNotFoundError=JsonqlResolverNotFoundError,exports.JsonqlServerError=JsonqlServerError,exports.JsonqlTypeError=JsonqlTypeError,exports.JsonqlValidationError=JsonqlValidationError,exports.UNKNOWN_ERROR=UNKNOWN_ERROR,exports.clientErrorsHandler=clientErrorsHandler,exports.finalCatch=finalCatch,exports.getErrorByStatus=getErrorByStatus,exports.getErrorNameByInstance=getErrorNameByInstance,exports.getErrorNameByInstanceWithDefault=getErrorNameByInstanceWithDefault; //# sourceMappingURL=jsonql-errors.cjs.js.map diff --git a/packages/errors/src/client-errors-handler.js b/packages/errors/src/client-errors-handler.js index d802568916568afee55327b02dbfb99e142794fc..f157fdd946c88b208382b603234aa2ee4ef2fa07 100644 --- a/packages/errors/src/client-errors-handler.js +++ b/packages/errors/src/client-errors-handler.js @@ -11,7 +11,7 @@ const { JsonqlError } = errors; * @param {string} key we want to check if its exist or not * @return {boolean} true on found */ -const isKeyInObject = (obj, key) => { +const isObjectHasKey = (obj, key) => { const keys = Object.keys(obj) return !!keys.filter(k => key === k).length; } @@ -22,7 +22,7 @@ const isKeyInObject = (obj, key) => { * @return {object} this will just throw error */ export default function clientErrorsHandler(result) { - if (isKeyInObject(result, 'error')) { + if (isObjectHasKey(result, 'error')) { const { error } = result; const { className, name } = error; const errorName = className || name; diff --git a/packages/errors/tests/main.test.js b/packages/errors/tests/main.test.js index bb81a672417a6150cca1833b3871ae9761ed9c36..0d2a3484845cb6a4f954a0f0b6cd0fa1661d4611 100644 --- a/packages/errors/tests/main.test.js +++ b/packages/errors/tests/main.test.js @@ -10,15 +10,15 @@ const resolver = require('./fixtures/resolver') const debug = require('debug')('jsonql-errors:test:main') const justThrow = require('./helpers/throw-some-error') -const isKeyInObject = (obj, key) => { +const isObjectHasKey = (obj, key) => { const keys = Object.keys(obj); return !!keys.filter(k => key === k).length; } -test('Just need to test this isKeyInObject function', t => { +test('Just need to test this isObjectHasKey function', t => { let obj = {error: false}; - t.is(true, isKeyInObject(obj, 'error')); + t.is(true, isObjectHasKey(obj, 'error')); }) diff --git a/packages/http-client/core.js b/packages/http-client/core.js index 29161f5bb55d26d747a4f5d4450707ca290185c0..b23a87e8d000ffc4b02e78badfc0d448f981fb1a 100644 --- a/packages/http-client/core.js +++ b/packages/http-client/core.js @@ -1,2 +1,2 @@ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).jsonqlClient=e()}(this,(function(){"use strict";var t="application/vnd.api+json",e={Accept:t,"Content-Type":[t,"charset=utf-8"].join(";")},r=["POST","PUT"],n="continue",o="type",i="optional",a="enumv",u="args",c="checker",s="alias",f="login",l="logout",p={desc:"y"},h="No message";var d="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},v="object"==typeof d&&d&&d.Object===Object&&d,g="object"==typeof self&&self&&self.Object===Object&&self,y=v||g||Function("return this")(),b=y.Symbol;function m(t,e){for(var r=-1,n=null==t?0:t.length,o=Array(n);++r=n?t:function(t,e,r){var n=-1,o=t.length;e<0&&(e=-e>o?0:o+e),(r=r>o?o:r)<0&&(r+=o),o=e>r?0:r-e>>>0,e>>>=0;for(var i=Array(o);++n-1;);return r}(n,o),function(t,e){for(var r=t.length;r--&&R(e,t[r],0)>-1;);return r}(n,o)+1).join("")}function et(t){return void 0===t}var rt="[object Boolean]";var nt="[object Number]";function ot(t){return function(t){return"number"==typeof t||q(t)&&x(t)==nt}(t)&&t!=+t}var it="[object String]";function at(t){return"string"==typeof t||!_(t)&&q(t)&&x(t)==it}function ut(t,e){return function(r){return t(e(r))}}var ct=ut(Object.getPrototypeOf,Object),st="[object Object]",ft=Function.prototype,lt=Object.prototype,pt=ft.toString,ht=lt.hasOwnProperty,dt=pt.call(Object);function vt(t){if(!q(t)||x(t)!=st)return!1;var e=ct(t);if(null===e)return!0;var r=ht.call(e,"constructor")&&e.constructor;return"function"==typeof r&&r instanceof r&&pt.call(r)==dt}var gt,yt=function(t,e,r){for(var n=-1,o=Object(t),i=r(t),a=i.length;a--;){var u=i[gt?a:++n];if(!1===e(o[u],u,o))break}return t};var bt="[object Arguments]";function mt(t){return q(t)&&x(t)==bt}var _t=Object.prototype,wt=_t.hasOwnProperty,jt=_t.propertyIsEnumerable,St=mt(function(){return arguments}())?mt:function(t){return q(t)&&wt.call(t,"callee")&&!jt.call(t,"callee")};var Ot="object"==typeof exports&&exports&&!exports.nodeType&&exports,Et=Ot&&"object"==typeof module&&module&&!module.nodeType&&module,At=Et&&Et.exports===Ot?y.Buffer:void 0,kt=(At?At.isBuffer:void 0)||function(){return!1},Tt=9007199254740991,xt=/^(?:0|[1-9]\d*)$/;function qt(t,e){var r=typeof t;return!!(e=null==e?Tt:e)&&("number"==r||"symbol"!=r&&xt.test(t))&&t>-1&&t%1==0&&t-1&&t%1==0&&t<=Pt}var $t={};$t["[object Float32Array]"]=$t["[object Float64Array]"]=$t["[object Int8Array]"]=$t["[object Int16Array]"]=$t["[object Int32Array]"]=$t["[object Uint8Array]"]=$t["[object Uint8ClampedArray]"]=$t["[object Uint16Array]"]=$t["[object Uint32Array]"]=!0,$t["[object Arguments]"]=$t["[object Array]"]=$t["[object ArrayBuffer]"]=$t["[object Boolean]"]=$t["[object DataView]"]=$t["[object Date]"]=$t["[object Error]"]=$t["[object Function]"]=$t["[object Map]"]=$t["[object Number]"]=$t["[object Object]"]=$t["[object RegExp]"]=$t["[object Set]"]=$t["[object String]"]=$t["[object WeakMap]"]=!1;var zt,Nt="object"==typeof exports&&exports&&!exports.nodeType&&exports,Ft=Nt&&"object"==typeof module&&module&&!module.nodeType&&module,It=Ft&&Ft.exports===Nt&&v.process,Jt=function(){try{var t=Ft&&Ft.require&&Ft.require("util").types;return t||It&&It.binding&&It.binding("util")}catch(t){}}(),Rt=Jt&&Jt.isTypedArray,Mt=Rt?(zt=Rt,function(t){return zt(t)}):function(t){return q(t)&&Ct(t.length)&&!!$t[x(t)]},Ut=Object.prototype.hasOwnProperty;function Ht(t,e){var r=_(t),n=!r&&St(t),o=!r&&!n&&kt(t),i=!r&&!n&&!o&&Mt(t),a=r||n||o||i,u=a?function(t,e){for(var r=-1,n=Array(t);++r-1},ie.prototype.set=function(t,e){var r=this.__data__,n=ne(r,t);return n<0?(++this.size,r.push([t,e])):r[n][1]=e,this};var ae,ue=y["__core-js_shared__"],ce=(ae=/[^.]+$/.exec(ue&&ue.keys&&ue.keys.IE_PROTO||""))?"Symbol(src)_1."+ae:"";var se=Function.prototype.toString;function fe(t){if(null!=t){try{return se.call(t)}catch(t){}try{return t+""}catch(t){}}return""}var le=/^\[object .+?Constructor\]$/,pe=Function.prototype,he=Object.prototype,de=pe.toString,ve=he.hasOwnProperty,ge=RegExp("^"+de.call(ve).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function ye(t){return!(!Vt(t)||function(t){return!!ce&&ce in t}(t))&&(Xt(t)?ge:le).test(fe(t))}function be(t,e){var r=function(t,e){return null==t?void 0:t[e]}(t,e);return ye(r)?r:void 0}var me=be(y,"Map"),_e=be(Object,"create");var we="__lodash_hash_undefined__",je=Object.prototype.hasOwnProperty;var Se=Object.prototype.hasOwnProperty;var Oe="__lodash_hash_undefined__";function Ee(t){var e=-1,r=null==t?0:t.length;for(this.clear();++eu))return!1;var s=i.get(t);if(s&&i.get(e))return s==e;var f=-1,l=!0,p=r&ze?new Pe:void 0;for(i.set(t,e),i.set(e,t);++f0){if(++e>=jn)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}(wn);function An(t,e){return En(function(t,e,r){return e=_n(void 0===e?t.length-1:e,0),function(){for(var n=arguments,o=-1,i=_n(n.length-e,0),a=Array(i);++o1?e[n-1]:void 0,i=n>2?e[2]:void 0;for(o=kn.length>3&&"function"==typeof o?(n--,o):void 0,i&&function(t,e,r){if(!Vt(r))return!1;var n=typeof e;return!!("number"==n?Zt(r)&&qt(e,r.length):"string"==n&&e in r)&&re(r[e],t)}(e[0],e[1],i)&&(o=n<3?void 0:o,n=1),t=Object(t);++r0))},Yn=function(t){if(t.indexOf("array.<")>-1&&t.indexOf(">")>-1){var e=t.replace("array.<","").replace(">","");return e.indexOf("|")?e.split("|"):[e]}return!1},Wn=function(t,e){var r=t.arg;return e.length>1?!r.filter((function(t){return!(e.length>e.filter((function(e){return!Vn(e)(t)})).length)})).length:e.length>e.filter((function(t){return!Gn(r,t)})).length},Qn=function(t,e){if(void 0===e&&(e=null),vt(t)){if(!e)return!0;if(Gn(e))return!e.filter((function(e){var r=t[e.name];return!(e.type.length>e.type.filter((function(t){var e;return!!et(r)||(!1!==(e=Yn(t))?!Wn({arg:r},e):!Vn(t)(r))})).length)})).length}return!1},Xn=function(t){var e=t.arg,r=t.param,n=[e];return Array.isArray(r.keys)&&r.keys.length&&n.push(r.keys),Qn.apply(null,n)},Zn=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={statusCode:{configurable:!0},name:{configurable:!0}};return r.statusCode.get=function(){return 406},r.name.get=function(){return"Jsonql406Error"},Object.defineProperties(e,r),e}(Error),to=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={statusCode:{configurable:!0},name:{configurable:!0}};return r.statusCode.get=function(){return 500},r.name.get=function(){return"Jsonql500Error"},Object.defineProperties(e,r),e}(Error),eo=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={statusCode:{configurable:!0},name:{configurable:!0}};return r.statusCode.get=function(){return 401},r.name.get=function(){return"JsonqlAuthorisationError"},Object.defineProperties(e,r),e}(Error),ro=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={statusCode:{configurable:!0},name:{configurable:!0}};return r.statusCode.get=function(){return 401},r.name.get=function(){return"JsonqlContractAuthError"},Object.defineProperties(e,r),e}(Error),no=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={statusCode:{configurable:!0},name:{configurable:!0}};return r.statusCode.get=function(){return 500},r.name.get=function(){return"JsonqlResolverAppError"},Object.defineProperties(e,r),e}(Error),oo=function(){try{if(window||document)return!0}catch(t){}return!1},io=function(){try{if(!oo()&&d)return!0}catch(t){}return!1};var ao=function(t){function e(){for(var e=[],r=arguments.length;r--;)e[r]=arguments[r];t.apply(this,e)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.where=function(){return oo()?"browser":io()?"node":"unknown"},e}(Error),uo=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,Error.captureStackTrace&&Error.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={statusCode:{configurable:!0},name:{configurable:!0}};return r.statusCode.get=function(){return 404},r.name.get=function(){return"JsonqlResolverNotFoundError"},Object.defineProperties(e,r),e}(ao),co=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0}};return r.name.get=function(){return"JsonqlEnumError"},Object.defineProperties(e,r),e}(Error),so=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0}};return r.name.get=function(){return"JsonqlTypeError"},Object.defineProperties(e,r),e}(Error),fo=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0}};return r.name.get=function(){return"JsonqlCheckerError"},Object.defineProperties(e,r),e}(Error),lo=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,Error.captureStackTrace&&Error.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0}};return r.name.get=function(){return"JsonqlValidationError"},Object.defineProperties(e,r),e}(ao),po=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,Error.captureStackTrace&&Error.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0},statusCode:{configurable:!0}};return r.name.get=function(){return"JsonqlError"},r.statusCode.get=function(){return-1},Object.defineProperties(e,r),e}(ao),ho=function(t){function e(r,n){t.call(this,n),this.statusCode=r,this.className=e.name}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0}};return r.name.get=function(){return"JsonqlServerError"},Object.defineProperties(e,r),e}(Error),vo=Object.freeze({Jsonql406Error:Zn,Jsonql500Error:to,JsonqlAuthorisationError:eo,JsonqlContractAuthError:ro,JsonqlResolverAppError:no,JsonqlResolverNotFoundError:uo,JsonqlEnumError:co,JsonqlTypeError:so,JsonqlCheckerError:fo,JsonqlValidationError:lo,JsonqlError:po,JsonqlServerError:ho}),go=po,yo=function(t,e){return!!Object.keys(t).filter((function(t){return e===t})).length};function bo(t){if(yo(t,"error")){var e=t.error,r=e.className,n=e.name,o=r||n,i=e.message||h,a=e.detail||e;if(o&&vo[o])throw new vo[r](i,a);throw new go(i,a)}return t}function mo(t){if(Array.isArray(t))throw new lo("",t);var e=t.message||h,r=t.detail||t;switch(!0){case t instanceof Zn:throw new Zn(e,r);case t instanceof to:throw new to(e,r);case t instanceof eo:throw new eo(e,r);case t instanceof ro:throw new ro(e,r);case t instanceof no:throw new no(e,r);case t instanceof uo:throw new uo(e,r);case t instanceof co:throw new co(e,r);case t instanceof so:throw new so(e,r);case t instanceof fo:throw new fo(e,r);case t instanceof lo:throw new lo(e,r);case t instanceof ho:throw new ho(e,r);default:throw new po(e,r)}}function _o(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];try{window&&window.console&&Reflect.apply(console.log,console,t)}catch(t){}}var wo=function(t,e){var r;switch(!0){case"object"===t:return!Xn(e);case"array"===t:return!Gn(e.arg);case!1!==(r=Yn(t)):return!Wn(e,r);default:return!Vn(t)(e.arg)}},jo=function(t,e){return et(t)?!0!==e.optional||et(e.defaultvalue)?null:e.defaultvalue:t},So=function(t,e,r){var n;void 0===r&&(r=!1);var o=function(t,e){if(!Gn(e))throw new po("params is not an array! Did something gone wrong when you generate the contract.json?");if(0===e.length)return[];if(!Gn(t))throw new po("args is not an array! You might want to do: ES6 Array.from(arguments) or ES5 Array.prototype.slice.call(arguments)");switch(!0){case t.length==e.length:return _o(1),t.map((function(t,r){return{arg:t,index:r,param:e[r]}}));case!0===e[0].variable:_o(2);var r=e[0].type;return t.map((function(t,n){return{arg:t,index:n,param:e[n]||{type:r,name:"_"}}}));case t.lengthe.length:_o(4);var n=e.length,o=["any"];return t.map((function(t,r){var i=r>=n||!!e[r].optional,a=e[r]||{type:o,name:"_"+r};return{arg:i?jo(t,a):t,index:r,param:a,optional:i}}));default:throw _o(5),new po("Could not understand your arguments and parameter structure!",{args:t,params:e})}}(t,e),i=o.filter((function(t){return!0===t.optional||!0===t.param.optional?function(t){var e=t.arg,r=t.param;return!!Nn(e)&&!(r.type.length>r.type.filter((function(e){return wo(e,t)})).length)}(t):!(t.param.type.length>t.param.type.filter((function(e){return wo(e,t)})).length)}));return r?((n={}).error=i,n.data=o.map((function(t){return t.arg})),n):i},Oo=function(t,e){var r,n=Object.keys(t);return r=e,!!n.filter((function(t){return t===r})).length},Eo=function(t){return!Nn(t)};function Ao(t,e){var r=zn(e,(function(t,e){return!t[Bn]}));return Ar(r,{})?t:function(t,e){var r={};return e=Xr(e),ee(t,(function(t,n,o){tn(r,e(t,n,o),t)})),r}(t,(function(t,e){return function(t,e,r){var n;return r(t,(function(t,r,o){if(e(t,r,o))return n=r,!1})),n}(r,Xr((function(t){return t.alias===e})),ee)||e}))}function ko(t,e){return xn(e,(function(e,r){var n,o;return et(t[r])||!0===e[Un]&&Eo(t[r])?Tn({},e,((n={})[Kn]=!0,n)):((o={})[Dn]=t[r],o[Mn]=e[Mn],o[Un]=e[Un]||!1,o[Hn]=e[Hn]||!1,o[Ln]=e[Ln]||!1,o)}))}function To(t,e){var r=function(t,e){var r=Ao(t,e);return{pristineValues:xn(zn(e,(function(t,e){return Oo(r,e)})),(function(t){return t.args})),checkAgainstAppProps:zn(e,(function(t,e){return!Oo(r,e)})),config:r}}(t,e),n=r.config,o=r.pristineValues;return[ko(n,r.checkAgainstAppProps),o]}var xo=function(t){return Gn(t)?t:[t]};var qo=function(t,e){return!Gn(e)||function(t,e){return!!t.filter((function(t){return t===e})).length}(e,t)},Po=function(t,e){try{return!!Xt(e)&&e.apply(null,[t])}catch(t){return!1}};function Co(t){return function(e,r){if(e[Kn])return e[Dn];var n=function(t,e){var r,n=[[t[Dn]],[(r={},r[Mn]=xo(t[Mn]),r[Un]=t[Un],r)]];return Reflect.apply(e,null,n)}(e,t);if(n.length)throw _o("runValidationAction",r,e),new so(r,n);if(!1!==e[Hn]&&!qo(e[Dn],e[Hn]))throw _o(Hn,e[Hn]),new co(r);if(!1!==e[Ln]&&!Po(e[Dn],e[Ln]))throw _o(Ln,e[Ln]),new fo(r);return e[Dn]}}function $o(t,e){var r=t[0],n=t[1],o=xn(r,Co(e));return Tn(o,n)}var zo=function(t,e){return Promise.resolve(To(t,e))};function No(t,e,r,n,f,l){void 0===r&&(r=!1),void 0===n&&(n=!1),void 0===f&&(f=!1),void 0===l&&(l=!1);var p={};return p[u]=t,p[o]=e,!0===r&&(p[i]=!0),Gn(n)&&(p[a]=n),Xt(f)&&(p[c]=f),at(l)&&(p[s]=l),p}var Fo=In,Io=Gn,Jo=function(t,e,r){return void 0===r&&(r=!1),new Promise((function(n,o){var i=So(t,e,r);return r?i.error.length?o(i.error):n(i.data):i.length?o(i):n([])}))},Ro=function(t,e,r){void 0===r&&(r={});var n=r[i],o=r[a],u=r[c],f=r[s];return No.apply(null,[t,e,n,o,u,f])},Mo=function(t){return function(e,r,n){return void 0===n&&(n={}),function(t,e,r,n){return void 0===t&&(t={}),zo(t,e).then((function(t){return $o(t,n)})).then((function(t){return Tn({},t,r)}))}(e,r,n,t)}}(So),Uo=function(t){return function(e,r,n){return void 0===n&&(n={}),function(t,e,r,n){return void 0===t&&(t={}),Tn($o(To(t,e),n),r)}(e,r,n,t)}}(So),Ho="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};var Do=Object.assign?Object.assign:function(t,e,r,n){for(var o=arguments,i=1;i=0;e--){var r=li().key(e);t(pi(r),r)}},remove:function(t){return li().removeItem(t)},clearAll:function(){return li().clear()}};function li(){return si.localStorage}function pi(t){return li().getItem(t)}var hi=Vo.trim,di={name:"cookieStorage",read:function(t){if(!t||!bi(t))return null;var e="(?:^|.*;\\s*)"+escape(t).replace(/[\-\.\+\*]/g,"\\$&")+"\\s*\\=\\s*((?:[^;](?!;))*[^;]?).*";return unescape(vi.cookie.replace(new RegExp(e),"$1"))},write:function(t,e){if(!t)return;vi.cookie=escape(t)+"="+escape(e)+"; expires=Tue, 19 Jan 2038 03:14:07 GMT; path=/"},each:gi,remove:yi,clearAll:function(){gi((function(t,e){yi(e)}))}},vi=Vo.Global.document;function gi(t){for(var e=vi.cookie.split(/; ?/g),r=e.length-1;r>=0;r--)if(hi(e[r])){var n=e[r].split("="),o=unescape(n[0]);t(unescape(n[1]),o)}}function yi(t){t&&bi(t)&&(vi.cookie=escape(t)+"=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/")}function bi(t){return new RegExp("(?:^|;\\s*)"+escape(t).replace(/[\-\.\+\*]/g,"\\$&")+"\\s*\\=").test(vi.cookie)}var mi=function(){var t={};return{defaults:function(e,r){t=r},get:function(e,r){var n=e();return void 0!==n?n:t[r]}}};var _i="expire_mixin",wi=function(){var t=this.createStore(this.storage,null,this._namespacePrefix+_i);return{set:function(e,r,n,o){this.hasNamespace(_i)||t.set(r,o);return e()},get:function(t,r){this.hasNamespace(_i)||e.call(this,r);return t()},remove:function(e,r){this.hasNamespace(_i)||t.remove(r);return e()},getExpiration:function(e,r){return t.get(r)},removeExpiredKeys:function(t){var r=[];this.each((function(t,e){r.push(e)}));for(var n=0;n>>8,r[2*n+1]=a%256}return r},decompressFromUint8Array:function(e){if(null==e)return i.decompress(e);for(var r=new Array(e.length/2),n=0,o=r.length;n>=1}else{for(o=1,n=0;n>=1}0==--l&&(l=Math.pow(2,h),h++),delete u[f]}else for(o=a[f],n=0;n>=1;0==--l&&(l=Math.pow(2,h),h++),a[s]=p++,f=String(c)}if(""!==f){if(Object.prototype.hasOwnProperty.call(u,f)){if(f.charCodeAt(0)<256){for(n=0;n>=1}else{for(o=1,n=0;n>=1}0==--l&&(l=Math.pow(2,h),h++),delete u[f]}else for(o=a[f],n=0;n>=1;0==--l&&(l=Math.pow(2,h),h++)}for(o=2,n=0;n>=1;for(;;){if(v<<=1,g==e-1){d.push(r(v));break}g++}return d.join("")},decompress:function(t){return null==t?"":""==t?null:i._decompress(t.length,32768,(function(e){return t.charCodeAt(e)}))},_decompress:function(e,r,n){var o,i,a,u,c,s,f,l=[],p=4,h=4,d=3,v="",g=[],y={val:n(0),position:r,index:1};for(o=0;o<3;o+=1)l[o]=o;for(a=0,c=Math.pow(2,2),s=1;s!=c;)u=y.val&y.position,y.position>>=1,0==y.position&&(y.position=r,y.val=n(y.index++)),a|=(u>0?1:0)*s,s<<=1;switch(a){case 0:for(a=0,c=Math.pow(2,8),s=1;s!=c;)u=y.val&y.position,y.position>>=1,0==y.position&&(y.position=r,y.val=n(y.index++)),a|=(u>0?1:0)*s,s<<=1;f=t(a);break;case 1:for(a=0,c=Math.pow(2,16),s=1;s!=c;)u=y.val&y.position,y.position>>=1,0==y.position&&(y.position=r,y.val=n(y.index++)),a|=(u>0?1:0)*s,s<<=1;f=t(a);break;case 2:return""}for(l[3]=f,i=f,g.push(f);;){if(y.index>e)return"";for(a=0,c=Math.pow(2,d),s=1;s!=c;)u=y.val&y.position,y.position>>=1,0==y.position&&(y.position=r,y.val=n(y.index++)),a|=(u>0?1:0)*s,s<<=1;switch(f=a){case 0:for(a=0,c=Math.pow(2,8),s=1;s!=c;)u=y.val&y.position,y.position>>=1,0==y.position&&(y.position=r,y.val=n(y.index++)),a|=(u>0?1:0)*s,s<<=1;l[h++]=t(a),f=h-1,p--;break;case 1:for(a=0,c=Math.pow(2,16),s=1;s!=c;)u=y.val&y.position,y.position>>=1,0==y.position&&(y.position=r,y.val=n(y.index++)),a|=(u>0?1:0)*s,s<<=1;l[h++]=t(a),f=h-1,p--;break;case 2:return g.join("")}if(0==p&&(p=Math.pow(2,d),d++),l[f])v=l[f];else{if(f!==h)return null;v=i+i.charAt(0)}g.push(v),l[h++]=i+v.charAt(0),i=v,0==--p&&(p=Math.pow(2,d),d++)}}};return i}();null!=t&&(t.exports=e)}));var xi=[fi,di],qi=[mi,wi,Ai,function(){return{get:function(t,e){var r=t(e);if(!r)return r;var n=Ti.decompress(r);return null==n?r:this._deserialize(n)},set:function(t,e,r){var n=Ti.compress(this._serialize(r));t(e,n)}}}],Pi=ai.createStore(xi,qi),Ci=Vo.Global;function $i(){return Ci.sessionStorage}function zi(t){return $i().getItem(t)}var Ni=[{name:"sessionStorage",read:zi,write:function(t,e){return $i().setItem(t,e)},each:function(t){for(var e=$i().length-1;e>=0;e--){var r=$i().key(e);t(zi(r),r)}},remove:function(t){return $i().removeItem(t)},clearAll:function(){return $i().clear()}},di],Fi=[mi,wi],Ii=ai.createStore(Ni,Fi),Ji=Pi,Ri=Ii,Mi=Array.isArray,Ui=void 0!==d?d:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},Hi="object"==typeof Ui&&Ui&&Ui.Object===Object&&Ui,Di="object"==typeof self&&self&&self.Object===Object&&self,Li=(Hi||Di||Function("return this")()).Symbol,Bi=Object.prototype,Ki=Bi.hasOwnProperty,Vi=Bi.toString,Gi=Li?Li.toStringTag:void 0;var Yi=Object.prototype.toString;var Wi="[object Null]",Qi="[object Undefined]",Xi=Li?Li.toStringTag:void 0;function Zi(t){return null==t?void 0===t?Qi:Wi:Xi&&Xi in Object(t)?function(t){var e=Ki.call(t,Gi),r=t[Gi];try{t[Gi]=void 0;var n=!0}catch(t){}var o=Vi.call(t);return n&&(e?t[Gi]=r:delete t[Gi]),o}(t):function(t){return Yi.call(t)}(t)}var ta=function(t,e){return function(r){return t(e(r))}}(Object.getPrototypeOf,Object);function ea(t){return null!=t&&"object"==typeof t}var ra="[object Object]",na=Function.prototype,oa=Object.prototype,ia=na.toString,aa=oa.hasOwnProperty,ua=ia.call(Object);var ca=Li?Li.prototype:void 0,sa=(ca&&ca.toString,"[object String]");function fa(t){return"string"==typeof t||!Mi(t)&&ea(t)&&Zi(t)==sa}var la=function(t,e){return!!t.filter((function(t){return t===e})).length},pa=function(t,e){var r=Object.keys(t);return la(r,e)},ha=function(t){void 0===t&&(t=!1);var e=Date.now();return t?Math.floor(e/1e3):e},da="query",va="mutation",ga="socket",ya="payload",ba="condition",ma=function(){try{if(window||document)return!0}catch(t){}return!1},_a=function(){try{if(!ma()&&Ui)return!0}catch(t){}return!1};var wa=function(t){function e(){for(var r=arguments,n=[],o=arguments.length;o--;)n[o]=r[o];t.apply(this,n),this.message=n[0],this.detail=n[1],this.className=e.name,Error.captureStackTrace&&Error.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0}};return r.name.get=function(){return"JsonqlValidationError"},Object.defineProperties(e,r),e}(function(t){function e(){for(var e=arguments,r=[],n=arguments.length;n--;)r[n]=e[n];t.apply(this,r)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.where=function(){return ma()?"browser":_a()?"node":"unknown"},e}(Error));var ja=function(t){var e;return(e={}).args=t,e};var Sa=function(t){return pa(t,"data")&&!pa(t,"error")?t.data:t},Oa=function(t){return function(t){if(!ea(t)||Zi(t)!=ra)return!1;var e=ta(t);if(null===e)return!0;var r=aa.call(e,"constructor")&&e.constructor;return"function"==typeof r&&r instanceof r&&ia.call(r)==ua}(t)&&(pa(t,da)||pa(t,va)||pa(t,ga))},Ea=function(t,e){return void 0===e&&(e={}),Oa(e)?Promise.resolve(e):t.getContract()},Aa="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";function ka(t){this.message=t}ka.prototype=new Error,ka.prototype.name="InvalidCharacterError";var Ta="undefined"!=typeof window&&window.atob&&window.atob.bind(window)||function(t){var e=String(t).replace(/=+$/,"");if(e.length%4==1)throw new ka("'atob' failed: The string to be decoded is not correctly encoded.");for(var r,n,o=0,i=0,a="";n=e.charAt(i++);~n&&(r=o%4?64*r+n:n,o++%4)?a+=String.fromCharCode(255&r>>(-2*o&6)):0)n=Aa.indexOf(n);return a};var xa=function(t){var e=t.replace(/-/g,"+").replace(/_/g,"/");switch(e.length%4){case 0:break;case 2:e+="==";break;case 3:e+="=";break;default:throw"Illegal base64url string!"}try{return function(t){return decodeURIComponent(Ta(t).replace(/(.)/g,(function(t,e){var r=e.charCodeAt(0).toString(16).toUpperCase();return r.length<2&&(r="0"+r),"%"+r})))}(e)}catch(t){return Ta(e)}};function qa(t){this.message=t}qa.prototype=new Error,qa.prototype.name="InvalidTokenError";var Pa=function(t,e){if("string"!=typeof t)throw new qa("Invalid token specified");var r=!0===(e=e||{}).header?0:1;try{return JSON.parse(xa(t.split(".")[r]))}catch(t){throw new qa("Invalid token specified: "+t.message)}},Ca=qa;Pa.InvalidTokenError=Ca;var $a,za,Na,Fa,Ia,Ja,Ra,Ma,Ua,Ha=function(t){void 0===t&&(t=!1);var e=Date.now();return t?Math.floor(e/1e3):e};function Da(t){if(Fo(t))return function(t){var e=t.iat||Ha(!0);if(t.exp&&e>=t.exp){var r=new Date(t.exp).toISOString();throw new po("Token has expired on "+r,t)}return t}(Pa(t));throw new po("Token must be a string!")}Ro("HS256",["string"]),Ro(!1,["boolean","number","string"],(($a={})[s]="exp",$a[i]=!0,$a)),Ro(!1,["boolean","number","string"],((za={})[s]="nbf",za[i]=!0,za)),Ro(!1,["boolean","string"],((Na={})[s]="iss",Na[i]=!0,Na)),Ro(!1,["boolean","string"],((Fa={})[s]="sub",Fa[i]=!0,Fa)),Ro(!1,["boolean","string"],((Ia={})[s]="iss",Ia[i]=!0,Ia)),Ro(!1,["boolean"],((Ja={})[i]=!0,Ja)),Ro(!1,["boolean","string"],((Ra={})[i]=!0,Ra)),Ro(!1,["boolean","string"],((Ma={})[i]=!0,Ma)),Ro(!1,["boolean"],((Ua={})[i]=!0,Ua));var La=r[0],Ba=r[1],Ka=function(t){!function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];try{window&&window.console&&Reflect.apply(console.log,null,t)}catch(t){}}(t),this.fly=t.Fly?new t.Fly:new Fly,this.opts=t,this.extraHeader={},this.extraParams={},this.reqInterceptor(),this.resInterceptor()},Va={headers:{configurable:!0}};Va.headers.set=function(t){this.extraHeader=t},Ka.prototype.request=function(t,e,r){var n;void 0===e&&(e={}),void 0===r&&(r={}),this.headers=r;var o=Tn({},{_cb:ha()},this.extraParams);if(this.opts.enableJsonp){var i=function(t){return Object.keys(t)[0]}(t);o=Tn({},o,((n={}).jsonqlJsonpCallback=i,n)),t=t[i]}return this.fly.request(this.jsonqlEndpoint,t,Tn({},{method:La,params:o},e))},Ka.prototype.reqInterceptor=function(){var t=this;this.fly.interceptors.request.use((function(e){var r=t.getHeaders();for(var n in t.log("request interceptor call",r),r)e.headers[n]=r[n];return e}))},Ka.prototype.processJsonp=function(t){return Sa(t)},Ka.prototype.resInterceptor=function(){var t=this,e=this,r=e.opts.enableJsonp;this.fly.interceptors.response.use((function(n){t.log("response interceptor call"),e.cleanUp();var o=Fo(n.data)?JSON.parse(n.data):n.data;return r?e.processJsonp(o):Sa(o)}),(function(t){throw e.cleanUp(),console.error(t),new ho("Server side error",t)}))},Ka.prototype.getHeaders=function(){return this.opts.enableAuth?Tn({},e,this.getAuthHeader(),this.extraHeader):Tn({},e,this.extraHeader)},Ka.prototype.cleanUp=function(){this.extraHeader={},this.extraParams={}},Ka.prototype.get=function(){var t=this;return this.opts.showContractDesc&&(this.extraParams=Tn({},this.extraParams,p)),this.request({},{method:"GET"},this.contractHeader).then(bo).then((function(e){return t.log("get contract result",e),e.cache&&e.contract?e.contract:e}))},Ka.prototype.query=function(t,e){return void 0===e&&(e=[]),this.request(function(t,e,r){var n;if(void 0===e&&(e=[]),void 0===r&&(r=!1),fa(t)&&Mi(e)){var o=ja(e);return!0===r?o:((n={})[t]=o,n)}throw new wa("[createQuery] expect resolverName to be string and args to be array!",{resolverName:t,args:e})}(t,e)).then(bo)},Ka.prototype.mutation=function(t,e,r){return void 0===e&&(e={}),void 0===r&&(r={}),this.request(function(t,e,r,n){var o;void 0===r&&(r={}),void 0===n&&(n=!1);var i={};if(i[ya]=e,i[ba]=r,!0===n)return i;if(fa(t))return(o={})[t]=i,o;throw new wa("[createMutation] expect resolverName to be string!",{resolverName:t,payload:e,condition:r})}(t,e,r),{method:Ba}).then(bo)},Object.defineProperties(Ka.prototype,Va);var Ga=function(t){function e(e,r){void 0===r&&(r=null),r&&(e.Fly=r),t.call(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={storeIt:{configurable:!0},jsonqlEndpoint:{configurable:!0},jsonqlContract:{configurable:!0},jsonqlToken:{configurable:!0},jsonqlUserdata:{configurable:!0}};return r.storeIt.set=function(t){throw console.info("storeIt",t),Io(t)&&t.length>=2&&Reflect.apply(Ji.set,Ji,t),new lo("Expect argument to be array and least 2 items!")},r.jsonqlEndpoint.set=function(t){var e=Ji.get("endpoint")||[];la(e,t)||(e.push(t),this.storeId=["endpoint",e],this.endpointIndex=e.length-1)},r.jsonqlContract.set=function(t){var e=this.opts.storageKey,r=[e],n=t[0],o=t[1],i=Ji.get(e)||[];i[this.endpointIndex||0]=n,r.push(i),o&&r.push(o),this.opts.keepContract&&(this.storeIt=r)},r.jsonqlToken.set=function(t){var e="credential",r=localStorage.get(e)||[];if(!la(r,t)){var n=r.length-1;r[n]=t,this[e+"Index"]=n;var o=[e,r];if(this.opts.tokenExpired){var i=parseFloat(this.opts.tokenExpired);if(!isNaN(i)&&i>0){var a=ha();o.push(a+parseFloat(i))}}return this.storeIt=o,this.jsonqlUserdata=this.decoder(t),t}return!1},r.jsonqlUserdata.set=function(t){var e=["userdata",t];return t.exp&&e.push(t.exp),Reflect.apply(Ji.set,Ji,e)},r.jsonqlEndpoint.get=function(){var t=Ji.get("endpoint");if(!t){var e=this.opts,r=[e.hostname,e.jsonqlPath].join("/");return this.jsonqlEndpoint=r,r}return t[this.endpointIndex]},r.jsonqlContract.get=function(){var t=this.opts.storageKey;return(Ji.get(t)||[])[this.endpointIndex]||!1},r.jsonqlToken.get=function(){var t="credential",e=localStorage.get(t);return!!e&&e[this[t+"Index"]]},r.jsonqlUserdata.get=function(){return Ri.get("userdata")},e.prototype.log=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];!0===this.opts.debugOn&&Reflect.apply(console.info,console,t)},Object.defineProperties(e.prototype,r),e}(function(t){function e(e){t.call(this,e),e.enableAuth&&e.useJwt&&(this.setDecoder=Da)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={userdata:{configurable:!0},rawAuthToken:{configurable:!0},setDecoder:{configurable:!0}};return r.userdata.get=function(){return this.jsonqlUserdata},r.rawAuthToken.get=function(){return this.jsonqlToken},r.setDecoder.set=function(t){"function"==typeof t&&(this.decoder=t)},e.prototype.storeToken=function(t){return this.jsonqlToken=t},e.prototype.decoder=function(t){return t},e.prototype.getAuthHeader=function(){var t,e=this.rawAuthToken;return e?((t={})[this.opts.AUTH_HEADER]="Bearer "+e,t):{}},Object.defineProperties(e.prototype,r),e}(function(t){function e(e){t.call(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={contractHeader:{configurable:!0}};return e.prototype.getContract=function(){var t=this.readContract();if(this.log("getContract first call",t),t&&Array.isArray(t)){var e=t[this.endpointIndex||0];if(e)return Promise.resolve(e)}return this.get().then(this.storeContract.bind(this))},r.contractHeader.get=function(){var t={};return!1!==this.opts.contractKey&&(t[this.opts.contractKeyName]=this.opts.contractKey),t},e.prototype.storeContract=function(t){if(!Oa(t))throw new lo("Contract is malformed!");var e=[t];if(this.opts.contractExpired){var r=parseFloat(this.opts.contractExpired);!isNaN(r)&&r>0&&e.push(r)}return this.jsonqlContract=e,this.log("storeContract return result",t),t},e.prototype.readContract=function(){return Oa(this.opts.contract)?this.opts.contract:Ji.get(this.opts.storageKey)},Object.defineProperties(e.prototype,r),e}(Ka))),Ya=function(t,e,r,n){return function(){for(var r=[],o=arguments.length;o--;)r[o]=arguments[o];var i=n.auth[e].params,a=i.map((function(t,e){return r[e]})),u=r[i.length]||{};return Jo(r,i).then((function(){return t.query.apply(t,[e,a,u])})).catch(mo)}};var Wa=function(t,e,r,o){var i=function(t,e,r,o){var i={query:{},mutation:{}},a=function(e){i.query[e]=function(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];var i=o.query[e].params,a=i.map((function(t,e){return r[e]})),u=r[i.length]||{};return Jo(a,i).then((function(){return t.query.apply(t,[e,a,u])})).catch(mo)}};for(var u in o.query)a(u);var c=function(e){i.mutation[e]=function(r,n,i){void 0===i&&(i={});var a=[r,n],u=o.mutation[e].params;return Jo(a,u).then((function(){return t.mutation.apply(t,[e,r,n,i])})).catch(mo)}};for(var s in o.mutation)c(s);if(r.enableAuth&&o.auth){i.auth={};var p=r.loginHandlerName,h=r.logoutHandlerName;o.auth[p]&&(i.auth[p]=function(){for(var n=[],i=arguments.length;i--;)n[i]=arguments[i];var a=Ya(t,p,r,o);return a.apply(null,n).then(t.postLoginAction).then((function(t){return e.$trigger(f,t),t}))}),o.auth[h]?i.auth[h]=function(){for(var n=[],i=arguments.length;i--;)n[i]=arguments[i];var a=Ya(t,h,r,o);return a.apply(null,n).then(t.postLogoutAction).then((function(t){return e.$trigger(l,t),t}))}:i.auth[h]=function(){t.postLogoutAction(n),e.$trigger(l,n)}}return i}(t,o,e,r);return e.enableAuth&&(i.userdata=function(){return t.userdata}),i.getToken=function(){return t.rawAuthToken},e.exposeContract&&(i.getContract=function(){return t.get()}),i.eventEmitter=o,i.version="1.3.2",i},Qa={contract:!1,MUTATION_ARGS:["name","payload","conditions"],CONTENT_TYPE:t,BEARER:"Bearer",AUTH_HEADER:"Authorization"},Xa={hostname:Ro([window.location.protocol,window.location.host].join("//"),["string"]),jsonqlPath:Ro("jsonql",["string"]),loginHandlerName:Ro(f,["string"]),logoutHandlerName:Ro(l,["string"]),enableJsonp:Ro(!1,["boolean"]),enableAuth:Ro(!1,["boolean"]),useJwt:Ro(!0,["boolean"]),useLocalstorage:Ro(!0,["boolean"]),storageKey:Ro("storageKey",["string"]),authKey:Ro("authKey",["string"]),contractExpired:Ro(0,["number"]),keepContract:Ro(!0,["boolean"]),exposeContract:Ro(!1,["boolean"]),showContractDesc:Ro(!1,["boolean"]),contractKey:Ro(!1,["boolean"]),contractKeyName:Ro("X-JSONQL-CV-KEY",["string"]),enableTimeout:Ro(!1,["boolean"]),timeout:Ro(5e3,["number"]),returnInstance:Ro(!1,["boolean"]),allowReturnRawToken:Ro(!1,["boolean"]),debugOn:Ro(!1,["boolean"])};function Za(t,e,r){return void 0===e&&(e={}),void 0===r&&(r=null),function(t){var e=t.contract;return Mo(t,Xa,Qa).then((function(t){return t.contract=e,t}))}(e).then((function(t){return{baseClient:new Ga(t,r),opts:t}})).then((function(e){var r=e.baseClient,n=e.opts;return Ea(r,n.contract).then((function(e){return Wa(r,n,e,t)}))}))}var tu=new WeakMap,eu=new WeakMap;var ru=function(){this.__suspend__=null,this.queueStore=new Set},nu={$suspend:{configurable:!0},$queues:{configurable:!0}};nu.$suspend.set=function(t){var e=this;if("boolean"!=typeof t)throw new Error("$suspend only accept Boolean value!");var r=this.__suspend__;this.__suspend__=t,this.logger("($suspend)","Change from "+r+" --\x3e "+t),!0===r&&!1===t&&setTimeout((function(){e.release()}),1)},ru.prototype.$queue=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];return!0===this.__suspend__&&(this.logger("($queue)","added to $queue",t),this.queueStore.add(t)),this.__suspend__},nu.$queues.get=function(){var t=this.queueStore.size;return this.logger("($queues)","size: "+t),t>0?Array.from(this.queueStore):[]},ru.prototype.release=function(){var t=this,e=this.queueStore.size;if(this.logger("(release)","Release was called "+e),e>0){var r=Array.from(this.queueStore);this.queueStore.clear(),this.logger("queue",r),r.forEach((function(e){t.logger(e),Reflect.apply(t.$trigger,t,e)})),this.logger("Release size "+this.queueStore.size)}},Object.defineProperties(ru.prototype,nu);var ou=function(t){function e(e){void 0===e&&(e={}),t.call(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={$done:{configurable:!0}};return e.prototype.logger=function(){},e.prototype.$on=function(t,e,r){var n=this;void 0===r&&(r=null);this.validate(t,e);var o=this.takeFromStore(t);if(!1===o)return this.logger("($on)",t+" callback is not in lazy store"),this.addToNormalStore(t,"on",e,r);this.logger("($on)",t+" found in lazy store");var i=0;return o.forEach((function(o){var a=o[0],u=o[1],c=o[2];if(c&&"on"!==c)throw new Error("You are trying to register an event already been taken by other type: "+c);n.run(e,a,r||u),i+=n.addToNormalStore(t,"on",e,r||u)})),i},e.prototype.$once=function(t,e,r){void 0===r&&(r=null),this.validate(t,e);var n=this.takeFromStore(t);this.normalStore;if(!1===n)return this.logger("($once)",t+" not in the lazy store"),this.addToNormalStore(t,"once",e,r);this.logger("($once)",n);var o=Array.from(n)[0],i=o[0],a=o[1],u=o[2];if(u&&"once"!==u)throw new Error("You are trying to register an event already been taken by other type: "+u);this.run(e,i,r||a),this.$off(t)},e.prototype.$only=function(t,e,r){var n=this;void 0===r&&(r=null),this.validate(t,e);var o=!1,i=this.takeFromStore(t);(this.normalStore.has(t)||(this.logger("($only)",t+" add to store"),o=this.addToNormalStore(t,"only",e,r)),!1!==i)&&(this.logger("($only)",t+" found data in lazy store to execute"),Array.from(i).forEach((function(t){var o=t[0],i=t[1],a=t[2];if(a&&"only"!==a)throw new Error("You are trying to register an event already been taken by other type: "+a);n.run(e,o,r||i)})));return o},e.prototype.$onlyOnce=function(t,e,r){void 0===r&&(r=null),this.validate(t,e);var n=!1,o=this.takeFromStore(t);if(this.normalStore.has(t)||(this.logger("($onlyOnce)",t+" add to store"),n=this.addToNormalStore(t,"onlyOnce",e,r)),!1!==o){this.logger("($onlyOnce)",o);var i=Array.from(o)[0],a=i[0],u=i[1],c=i[2];if(c&&"onlyOnce"!==c)throw new Error("You are trying to register an event already been taken by other type: "+c);this.run(e,a,r||u),this.$off(t)}return n},e.prototype.$replace=function(t,e,r,n){if(void 0===r&&(r=null),void 0===n&&(n="on"),this.validateType(n)){this.$off(t);var o=this["$"+n];return Reflect.apply(o,this,[t,e,r])}throw new Error(n+" is not supported!")},e.prototype.$trigger=function(t,e,r,n){void 0===e&&(e=[]),void 0===r&&(r=null),void 0===n&&(n=!1),this.validateEvt(t);var o=0,i=this.normalStore;if(this.logger("($trigger)","normalStore",i),i.has(t)){var a=this.$queue(t,e,r,n);if(this.logger("($trigger)",t,"found; add to queue: ",a),!0===a)return!1;for(var u=Array.from(i.get(t)),c=u.length,s=!1,f=0;f0;)n[o]=arguments[o+2];if(t.has(e)?(this.logger("(addToStore)",e+" existed"),r=t.get(e)):(this.logger("(addToStore)","create new Set for "+e),r=new Set),n.length>2)if(Array.isArray(n[0])){var i=n[2];this.checkTypeInLazyStore(e,i)||r.add(n)}else this.checkContentExist(n,r)||(this.logger("(addToStore)","insert new",n),r.add(n));else r.add(n);return t.set(e,r),[t,r.size]},e.prototype.checkContentExist=function(t,e){return!!Array.from(e).filter((function(e){return e[0]===t[0]})).length},e.prototype.checkTypeInStore=function(t,e){this.validateEvt(t,e);var r=this.$get(t,!0);return!1===r||!r.filter((function(t){var r=t[3];return e!==r})).length},e.prototype.checkTypeInLazyStore=function(t,e){this.validateEvt(t,e);var r=this.lazyStore.get(t);return this.logger("(checkTypeInLazyStore)",r),!!r&&!!Array.from(r).filter((function(t){return t[2]!==e})).length},e.prototype.addToNormalStore=function(t,e,r,n){if(void 0===n&&(n=null),this.logger("(addToNormalStore)",t,e,"try to add to normal store"),this.checkTypeInStore(t,e)){this.logger("(addToNormalStore)",e+" can add to "+t+" normal store");var o=this.hashFnToKey(r),i=[this.normalStore,t,o,r,n,e],a=Reflect.apply(this.addToStore,this,i),u=a[0],c=a[1];return this.normalStore=u,c}return!1},e.prototype.addToLazyStore=function(t,e,r,n){void 0===e&&(e=[]),void 0===r&&(r=null),void 0===n&&(n=!1);var o=[this.lazyStore,t,this.toArray(e),r];n&&o.push(n);var i=Reflect.apply(this.addToStore,this,o),a=i[0],u=i[1];return this.lazyStore=a,u},e.prototype.toArray=function(t){return Array.isArray(t)?t:[t]},r.normalStore.set=function(t){tu.set(this,t)},r.normalStore.get=function(){return tu.get(this)},r.lazyStore.set=function(t){eu.set(this,t)},r.lazyStore.get=function(){return eu.get(this)},e.prototype.hashFnToKey=function(t){return t.toString().split("").reduce((function(t,e){return(t=(t<<5)-t+e.charCodeAt(0))&t}),0)+""},Object.defineProperties(e.prototype,r),e}(ru));function iu(t,e,r){var n=e.contract,o=function(t){return Uo(t,Xa,Qa)}(e),i=new Ga(o,r);return Wa(i,o,n,t)}return function(t,e){var r,n=(r=e.debugOn,new ou({logger:r?function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];t.unshift("[NBS]"),console.log.apply(null,t)}:void 0}));return e.contract&&Oa(e.contract)?iu(n,e,t):Za(n,e,t)}})); +!function(t,r){"object"==typeof exports&&"undefined"!=typeof module?module.exports=r():"function"==typeof define&&define.amd?define(r):(t=t||self).jsonqlClient=r()}(this,(function(){"use strict";var t="application/vnd.api+json",r={Accept:t,"Content-Type":[t,"charset=utf-8"].join(";")},e=["POST","PUT"],n="type",o="optional",i="enumv",a="args",u="checker",c="alias",s={desc:"y"},f="No message";var l="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},p="object"==typeof l&&l&&l.Object===Object&&l,h="object"==typeof self&&self&&self.Object===Object&&self,d=p||h||Function("return this")(),v=d.Symbol;function g(t,r){for(var e=-1,n=null==t?0:t.length,o=Array(n);++e=n?t:function(t,r,e){var n=-1,o=t.length;r<0&&(r=-r>o?0:o+r),(e=e>o?o:e)<0&&(e+=o),o=r>e?0:e-r>>>0,r>>>=0;for(var i=Array(o);++n-1;);return e}(n,o),function(t,r){for(var e=t.length;e--&&F(r,t[e],0)>-1;);return e}(n,o)+1).join("")}function X(t){return void 0===t}var Z="[object Boolean]";var tt="[object Number]";function rt(t){return function(t){return"number"==typeof t||k(t)&&A(t)==tt}(t)&&t!=+t}var et="[object String]";function nt(t){return"string"==typeof t||!y(t)&&k(t)&&A(t)==et}function ot(t,r){return function(e){return t(r(e))}}var it=ot(Object.getPrototypeOf,Object),at="[object Object]",ut=Function.prototype,ct=Object.prototype,st=ut.toString,ft=ct.hasOwnProperty,lt=st.call(Object);function pt(t){if(!k(t)||A(t)!=at)return!1;var r=it(t);if(null===r)return!0;var e=ft.call(r,"constructor")&&r.constructor;return"function"==typeof e&&e instanceof e&&st.call(e)==lt}var ht,dt=function(t,r,e){for(var n=-1,o=Object(t),i=e(t),a=i.length;a--;){var u=i[ht?a:++n];if(!1===r(o[u],u,o))break}return t};var vt="[object Arguments]";function gt(t){return k(t)&&A(t)==vt}var yt=Object.prototype,bt=yt.hasOwnProperty,mt=yt.propertyIsEnumerable,_t=gt(function(){return arguments}())?gt:function(t){return k(t)&&bt.call(t,"callee")&&!mt.call(t,"callee")};var wt="object"==typeof exports&&exports&&!exports.nodeType&&exports,jt=wt&&"object"==typeof module&&module&&!module.nodeType&&module,Ot=jt&&jt.exports===wt?d.Buffer:void 0,St=(Ot?Ot.isBuffer:void 0)||function(){return!1},Et=9007199254740991,At=/^(?:0|[1-9]\d*)$/;function kt(t,r){var e=typeof t;return!!(r=null==r?Et:r)&&("number"==e||"symbol"!=e&&At.test(t))&&t>-1&&t%1==0&&t-1&&t%1==0&&t<=Tt}var Pt={};Pt["[object Float32Array]"]=Pt["[object Float64Array]"]=Pt["[object Int8Array]"]=Pt["[object Int16Array]"]=Pt["[object Int32Array]"]=Pt["[object Uint8Array]"]=Pt["[object Uint8ClampedArray]"]=Pt["[object Uint16Array]"]=Pt["[object Uint32Array]"]=!0,Pt["[object Arguments]"]=Pt["[object Array]"]=Pt["[object ArrayBuffer]"]=Pt["[object Boolean]"]=Pt["[object DataView]"]=Pt["[object Date]"]=Pt["[object Error]"]=Pt["[object Function]"]=Pt["[object Map]"]=Pt["[object Number]"]=Pt["[object Object]"]=Pt["[object RegExp]"]=Pt["[object Set]"]=Pt["[object String]"]=Pt["[object WeakMap]"]=!1;var qt,Ct="object"==typeof exports&&exports&&!exports.nodeType&&exports,$t=Ct&&"object"==typeof module&&module&&!module.nodeType&&module,zt=$t&&$t.exports===Ct&&p.process,Nt=function(){try{var t=$t&&$t.require&&$t.require("util").types;return t||zt&&zt.binding&&zt.binding("util")}catch(t){}}(),Ft=Nt&&Nt.isTypedArray,It=Ft?(qt=Ft,function(t){return qt(t)}):function(t){return k(t)&&xt(t.length)&&!!Pt[A(t)]},Rt=Object.prototype.hasOwnProperty;function Jt(t,r){var e=y(t),n=!e&&_t(t),o=!e&&!n&&St(t),i=!e&&!n&&!o&&It(t),a=e||n||o||i,u=a?function(t,r){for(var e=-1,n=Array(t);++e-1},er.prototype.set=function(t,r){var e=this.__data__,n=tr(e,t);return n<0?(++this.size,e.push([t,r])):e[n][1]=r,this};var nr,or=d["__core-js_shared__"],ir=(nr=/[^.]+$/.exec(or&&or.keys&&or.keys.IE_PROTO||""))?"Symbol(src)_1."+nr:"";var ar=Function.prototype.toString;function ur(t){if(null!=t){try{return ar.call(t)}catch(t){}try{return t+""}catch(t){}}return""}var cr=/^\[object .+?Constructor\]$/,sr=Function.prototype,fr=Object.prototype,lr=sr.toString,pr=fr.hasOwnProperty,hr=RegExp("^"+lr.call(pr).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function dr(t){return!(!Lt(t)||function(t){return!!ir&&ir in t}(t))&&(Yt(t)?hr:cr).test(ur(t))}function vr(t,r){var e=function(t,r){return null==t?void 0:t[r]}(t,r);return dr(e)?e:void 0}var gr=vr(d,"Map"),yr=vr(Object,"create");var br="__lodash_hash_undefined__",mr=Object.prototype.hasOwnProperty;var _r=Object.prototype.hasOwnProperty;var wr="__lodash_hash_undefined__";function jr(t){var r=-1,e=null==t?0:t.length;for(this.clear();++ru))return!1;var s=i.get(t);if(s&&i.get(r))return s==r;var f=-1,l=!0,p=e&qr?new Tr:void 0;for(i.set(t,r),i.set(r,t);++f0){if(++r>=mn)return arguments[0]}else r=0;return t.apply(void 0,arguments)}}(bn);function On(t,r){return jn(function(t,r,e){return r=yn(void 0===r?t.length-1:r,0),function(){for(var n=arguments,o=-1,i=yn(n.length-r,0),a=Array(i);++o1?r[n-1]:void 0,i=n>2?r[2]:void 0;for(o=Sn.length>3&&"function"==typeof o?(n--,o):void 0,i&&function(t,r,e){if(!Lt(e))return!1;var n=typeof r;return!!("number"==n?Wt(e)&&kt(r,e.length):"string"==n&&r in e)&&Zt(e[r],t)}(r[0],r[1],i)&&(o=n<3?void 0:o,n=1),t=Object(t);++e0))},Kn=function(t){if(t.indexOf("array.<")>-1&&t.indexOf(">")>-1){var r=t.replace("array.<","").replace(">","");return r.indexOf("|")?r.split("|"):[r]}return!1},Vn=function(t,r){var e=t.arg;return r.length>1?!e.filter((function(t){return!(r.length>r.filter((function(r){return!Ln(r)(t)})).length)})).length:r.length>r.filter((function(t){return!Bn(e,t)})).length},Gn=function(t,r){if(void 0===r&&(r=null),pt(t)){if(!r)return!0;if(Bn(r))return!r.filter((function(r){var e=t[r.name];return!(r.type.length>r.type.filter((function(t){var r;return!!X(e)||(!1!==(r=Kn(t))?!Vn({arg:e},r):!Ln(t)(e))})).length)})).length}return!1},Yn=function(t){var r=t.arg,e=t.param,n=[r];return Array.isArray(e.keys)&&e.keys.length&&n.push(e.keys),Gn.apply(null,n)},Wn=function(t){function r(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];t.apply(this,e),this.message=e[0],this.detail=e[1],this.className=r.name,t.captureStackTrace&&t.captureStackTrace(this,r)}t&&(r.__proto__=t),r.prototype=Object.create(t&&t.prototype),r.prototype.constructor=r;var e={statusCode:{configurable:!0},name:{configurable:!0}};return e.statusCode.get=function(){return 406},e.name.get=function(){return"Jsonql406Error"},Object.defineProperties(r,e),r}(Error),Qn=function(t){function r(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];t.apply(this,e),this.message=e[0],this.detail=e[1],this.className=r.name,t.captureStackTrace&&t.captureStackTrace(this,r)}t&&(r.__proto__=t),r.prototype=Object.create(t&&t.prototype),r.prototype.constructor=r;var e={statusCode:{configurable:!0},name:{configurable:!0}};return e.statusCode.get=function(){return 500},e.name.get=function(){return"Jsonql500Error"},Object.defineProperties(r,e),r}(Error),Xn=function(t){function r(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];t.apply(this,e),this.message=e[0],this.detail=e[1],this.className=r.name,t.captureStackTrace&&t.captureStackTrace(this,r)}t&&(r.__proto__=t),r.prototype=Object.create(t&&t.prototype),r.prototype.constructor=r;var e={statusCode:{configurable:!0},name:{configurable:!0}};return e.statusCode.get=function(){return 401},e.name.get=function(){return"JsonqlAuthorisationError"},Object.defineProperties(r,e),r}(Error),Zn=function(t){function r(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];t.apply(this,e),this.message=e[0],this.detail=e[1],this.className=r.name,t.captureStackTrace&&t.captureStackTrace(this,r)}t&&(r.__proto__=t),r.prototype=Object.create(t&&t.prototype),r.prototype.constructor=r;var e={statusCode:{configurable:!0},name:{configurable:!0}};return e.statusCode.get=function(){return 401},e.name.get=function(){return"JsonqlContractAuthError"},Object.defineProperties(r,e),r}(Error),to=function(t){function r(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];t.apply(this,e),this.message=e[0],this.detail=e[1],this.className=r.name,t.captureStackTrace&&t.captureStackTrace(this,r)}t&&(r.__proto__=t),r.prototype=Object.create(t&&t.prototype),r.prototype.constructor=r;var e={statusCode:{configurable:!0},name:{configurable:!0}};return e.statusCode.get=function(){return 500},e.name.get=function(){return"JsonqlResolverAppError"},Object.defineProperties(r,e),r}(Error),ro=function(){try{if(window||document)return!0}catch(t){}return!1},eo=function(){try{if(!ro()&&l)return!0}catch(t){}return!1};var no=function(t){function r(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];t.apply(this,r)}return t&&(r.__proto__=t),r.prototype=Object.create(t&&t.prototype),r.prototype.constructor=r,r.where=function(){return ro()?"browser":eo()?"node":"unknown"},r}(Error),oo=function(t){function r(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];t.apply(this,e),this.message=e[0],this.detail=e[1],this.className=r.name,Error.captureStackTrace&&Error.captureStackTrace(this,r)}t&&(r.__proto__=t),r.prototype=Object.create(t&&t.prototype),r.prototype.constructor=r;var e={statusCode:{configurable:!0},name:{configurable:!0}};return e.statusCode.get=function(){return 404},e.name.get=function(){return"JsonqlResolverNotFoundError"},Object.defineProperties(r,e),r}(no),io=function(t){function r(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];t.apply(this,e),this.message=e[0],this.detail=e[1],this.className=r.name,t.captureStackTrace&&t.captureStackTrace(this,r)}t&&(r.__proto__=t),r.prototype=Object.create(t&&t.prototype),r.prototype.constructor=r;var e={name:{configurable:!0}};return e.name.get=function(){return"JsonqlEnumError"},Object.defineProperties(r,e),r}(Error),ao=function(t){function r(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];t.apply(this,e),this.message=e[0],this.detail=e[1],this.className=r.name,t.captureStackTrace&&t.captureStackTrace(this,r)}t&&(r.__proto__=t),r.prototype=Object.create(t&&t.prototype),r.prototype.constructor=r;var e={name:{configurable:!0}};return e.name.get=function(){return"JsonqlTypeError"},Object.defineProperties(r,e),r}(Error),uo=function(t){function r(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];t.apply(this,e),this.message=e[0],this.detail=e[1],this.className=r.name,t.captureStackTrace&&t.captureStackTrace(this,r)}t&&(r.__proto__=t),r.prototype=Object.create(t&&t.prototype),r.prototype.constructor=r;var e={name:{configurable:!0}};return e.name.get=function(){return"JsonqlCheckerError"},Object.defineProperties(r,e),r}(Error),co=function(t){function r(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];t.apply(this,e),this.message=e[0],this.detail=e[1],this.className=r.name,Error.captureStackTrace&&Error.captureStackTrace(this,r)}t&&(r.__proto__=t),r.prototype=Object.create(t&&t.prototype),r.prototype.constructor=r;var e={name:{configurable:!0}};return e.name.get=function(){return"JsonqlValidationError"},Object.defineProperties(r,e),r}(no),so=function(t){function r(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];t.apply(this,e),this.message=e[0],this.detail=e[1],this.className=r.name,Error.captureStackTrace&&Error.captureStackTrace(this,r)}t&&(r.__proto__=t),r.prototype=Object.create(t&&t.prototype),r.prototype.constructor=r;var e={name:{configurable:!0},statusCode:{configurable:!0}};return e.name.get=function(){return"JsonqlError"},e.statusCode.get=function(){return-1},Object.defineProperties(r,e),r}(no),fo=function(t){function r(e,n){t.call(this,n),this.statusCode=e,this.className=r.name}t&&(r.__proto__=t),r.prototype=Object.create(t&&t.prototype),r.prototype.constructor=r;var e={name:{configurable:!0}};return e.name.get=function(){return"JsonqlServerError"},Object.defineProperties(r,e),r}(Error),lo=Object.freeze({__proto__:null,Jsonql406Error:Wn,Jsonql500Error:Qn,JsonqlAuthorisationError:Xn,JsonqlContractAuthError:Zn,JsonqlResolverAppError:to,JsonqlResolverNotFoundError:oo,JsonqlEnumError:io,JsonqlTypeError:ao,JsonqlCheckerError:uo,JsonqlValidationError:co,JsonqlError:so,JsonqlServerError:fo}),po=so,ho=function(t,r){return!!Object.keys(t).filter((function(t){return r===t})).length};function vo(t){if(ho(t,"error")){var r=t.error,e=r.className,n=r.name,o=e||n,i=r.message||f,a=r.detail||r;if(o&&lo[o])throw new lo[e](i,a);throw new po(i,a)}return t}function go(t){if(Array.isArray(t))throw new co("",t);var r=t.message||f,e=t.detail||t;switch(!0){case t instanceof Wn:throw new Wn(r,e);case t instanceof Qn:throw new Qn(r,e);case t instanceof Xn:throw new Xn(r,e);case t instanceof Zn:throw new Zn(r,e);case t instanceof to:throw new to(r,e);case t instanceof oo:throw new oo(r,e);case t instanceof io:throw new io(r,e);case t instanceof ao:throw new ao(r,e);case t instanceof uo:throw new uo(r,e);case t instanceof co:throw new co(r,e);case t instanceof fo:throw new fo(r,e);default:throw new so(r,e)}}function yo(){for(var t=[],r=arguments.length;r--;)t[r]=arguments[r];try{window&&window.console&&Reflect.apply(console.log,console,t)}catch(t){}}var bo=function(t,r){var e;switch(!0){case"object"===t:return!Yn(r);case"array"===t:return!Bn(r.arg);case!1!==(e=Kn(t)):return!Vn(r,e);default:return!Ln(t)(r.arg)}},mo=function(t,r){return X(t)?!0!==r.optional||X(r.defaultvalue)?null:r.defaultvalue:t},_o=function(t,r,e){var n;void 0===e&&(e=!1);var o=function(t,r){if(!Bn(r))throw new so("params is not an array! Did something gone wrong when you generate the contract.json?");if(0===r.length)return[];if(!Bn(t))throw new so("args is not an array! You might want to do: ES6 Array.from(arguments) or ES5 Array.prototype.slice.call(arguments)");switch(!0){case t.length==r.length:return yo(1),t.map((function(t,e){return{arg:t,index:e,param:r[e]}}));case!0===r[0].variable:yo(2);var e=r[0].type;return t.map((function(t,n){return{arg:t,index:n,param:r[n]||{type:e,name:"_"}}}));case t.lengthr.length:yo(4);var n=r.length,o=["any"];return t.map((function(t,e){var i=e>=n||!!r[e].optional,a=r[e]||{type:o,name:"_"+e};return{arg:i?mo(t,a):t,index:e,param:a,optional:i}}));default:throw yo(5),new so("Could not understand your arguments and parameter structure!",{args:t,params:r})}}(t,r),i=o.filter((function(t){return!0===t.optional||!0===t.param.optional?function(t){var r=t.arg,e=t.param;return!!Cn(r)&&!(e.type.length>e.type.filter((function(r){return bo(r,t)})).length)}(t):!(t.param.type.length>t.param.type.filter((function(r){return bo(r,t)})).length)}));return e?((n={}).error=i,n.data=o.map((function(t){return t.arg})),n):i},wo=function(t,r){var e,n=Object.keys(t);return e=r,!!n.filter((function(t){return t===e})).length},jo=function(t){return!Cn(t)};function Oo(t,r){var e=qn(r,(function(t,r){return!t[Dn]}));return Oe(e,{})?t:function(t,r){var e={};return r=Ye(r),Xt(t,(function(t,n,o){Qe(e,r(t,n,o),t)})),e}(t,(function(t,r){return function(t,r,e){var n;return e(t,(function(t,e,o){if(r(t,e,o))return n=e,!1})),n}(e,Ye((function(t){return t.alias===r})),Xt)||r}))}function So(t,r){return An(r,(function(r,e){var n,o;return X(t[e])||!0===r[Rn]&&jo(t[e])?En({},r,((n={})[Hn]=!0,n)):((o={})[Mn]=t[e],o[In]=r[In],o[Rn]=r[Rn]||!1,o[Jn]=r[Jn]||!1,o[Un]=r[Un]||!1,o)}))}function Eo(t,r){var e=function(t,r){var e=Oo(t,r);return{pristineValues:An(qn(r,(function(t,r){return wo(e,r)})),(function(t){return t.args})),checkAgainstAppProps:qn(r,(function(t,r){return!wo(e,r)})),config:e}}(t,r),n=e.config,o=e.pristineValues;return[So(n,e.checkAgainstAppProps),o]}var Ao=function(t){return Bn(t)?t:[t]};var ko=function(t,r){return!Bn(r)||function(t,r){return!!t.filter((function(t){return t===r})).length}(r,t)},To=function(t,r){try{return!!Yt(r)&&r.apply(null,[t])}catch(t){return!1}};function xo(t){return function(r,e){if(r[Hn])return r[Mn];var n=function(t,r){var e,n=[[t[Mn]],[(e={},e[In]=Ao(t[In]),e[Rn]=t[Rn],e)]];return Reflect.apply(r,null,n)}(r,t);if(n.length)throw yo("runValidationAction",e,r),new ao(e,n);if(!1!==r[Jn]&&!ko(r[Mn],r[Jn]))throw yo(Jn,r[Jn]),new io(e);if(!1!==r[Un]&&!To(r[Mn],r[Un]))throw yo(Un,r[Un]),new uo(e);return r[Mn]}}var Po=function(t,r){return Promise.resolve(Eo(t,r))};function qo(t,r,e,n){return void 0===t&&(t={}),Po(t,r).then((function(t){return function(t,r){var e=t[0],n=t[1],o=An(e,xo(r));return En(o,n)}(t,n)})).then((function(t){return En({},t,e)}))}function Co(t,r,e,s,f,l){void 0===e&&(e=!1),void 0===s&&(s=!1),void 0===f&&(f=!1),void 0===l&&(l=!1);var p={};return p[a]=t,p[n]=r,!0===e&&(p[o]=!0),Bn(s)&&(p[i]=s),Yt(f)&&(p[u]=f),nt(l)&&(p[c]=l),p}var $o=zn,zo=Bn,No=function(t,r,e){return void 0===e&&(e=!1),new Promise((function(n,o){var i=_o(t,r,e);return e?i.error.length?o(i.error):n(i.data):i.length?o(i):n([])}))},Fo=function(t,r,e){void 0===e&&(e={});var n=e[o],a=e[i],s=e[u],f=e[c];return Co.apply(null,[t,r,n,a,s,f])},Io=function(t){return function(r,e,n){return void 0===n&&(n={}),qo(r,e,n,t)}}(_o),Ro="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};var Jo=Object.assign?Object.assign:function(t,r,e,n){for(var o=arguments,i=1;i=0;r--){var e=ui().key(r);t(ci(e),e)}},remove:function(t){return ui().removeItem(t)},clearAll:function(){return ui().clear()}};function ui(){return ii.localStorage}function ci(t){return ui().getItem(t)}var si=Ho.trim,fi={name:"cookieStorage",read:function(t){if(!t||!di(t))return null;var r="(?:^|.*;\\s*)"+escape(t).replace(/[\-\.\+\*]/g,"\\$&")+"\\s*\\=\\s*((?:[^;](?!;))*[^;]?).*";return unescape(li.cookie.replace(new RegExp(r),"$1"))},write:function(t,r){if(!t)return;li.cookie=escape(t)+"="+escape(r)+"; expires=Tue, 19 Jan 2038 03:14:07 GMT; path=/"},each:pi,remove:hi,clearAll:function(){pi((function(t,r){hi(r)}))}},li=Ho.Global.document;function pi(t){for(var r=li.cookie.split(/; ?/g),e=r.length-1;e>=0;e--)if(si(r[e])){var n=r[e].split("="),o=unescape(n[0]);t(unescape(n[1]),o)}}function hi(t){t&&di(t)&&(li.cookie=escape(t)+"=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/")}function di(t){return new RegExp("(?:^|;\\s*)"+escape(t).replace(/[\-\.\+\*]/g,"\\$&")+"\\s*\\=").test(li.cookie)}var vi=function(){var t={};return{defaults:function(r,e){t=e},get:function(r,e){var n=r();return void 0!==n?n:t[e]}}};var gi="expire_mixin",yi=function(){var t=this.createStore(this.storage,null,this._namespacePrefix+gi);return{set:function(r,e,n,o){this.hasNamespace(gi)||t.set(e,o);return r()},get:function(t,e){this.hasNamespace(gi)||r.call(this,e);return t()},remove:function(r,e){this.hasNamespace(gi)||t.remove(e);return r()},getExpiration:function(r,e){return t.get(e)},removeExpiredKeys:function(t){var e=[];this.each((function(t,r){e.push(r)}));for(var n=0;n>>8,e[2*n+1]=a%256}return e},decompressFromUint8Array:function(r){if(null==r)return i.decompress(r);for(var e=new Array(r.length/2),n=0,o=e.length;n>=1}else{for(o=1,n=0;n>=1}0==--l&&(l=Math.pow(2,h),h++),delete u[f]}else for(o=a[f],n=0;n>=1;0==--l&&(l=Math.pow(2,h),h++),a[s]=p++,f=String(c)}if(""!==f){if(Object.prototype.hasOwnProperty.call(u,f)){if(f.charCodeAt(0)<256){for(n=0;n>=1}else{for(o=1,n=0;n>=1}0==--l&&(l=Math.pow(2,h),h++),delete u[f]}else for(o=a[f],n=0;n>=1;0==--l&&(l=Math.pow(2,h),h++)}for(o=2,n=0;n>=1;for(;;){if(v<<=1,g==r-1){d.push(e(v));break}g++}return d.join("")},decompress:function(t){return null==t?"":""==t?null:i._decompress(t.length,32768,(function(r){return t.charCodeAt(r)}))},_decompress:function(r,e,n){var o,i,a,u,c,s,f,l=[],p=4,h=4,d=3,v="",g=[],y={val:n(0),position:e,index:1};for(o=0;o<3;o+=1)l[o]=o;for(a=0,c=Math.pow(2,2),s=1;s!=c;)u=y.val&y.position,y.position>>=1,0==y.position&&(y.position=e,y.val=n(y.index++)),a|=(u>0?1:0)*s,s<<=1;switch(a){case 0:for(a=0,c=Math.pow(2,8),s=1;s!=c;)u=y.val&y.position,y.position>>=1,0==y.position&&(y.position=e,y.val=n(y.index++)),a|=(u>0?1:0)*s,s<<=1;f=t(a);break;case 1:for(a=0,c=Math.pow(2,16),s=1;s!=c;)u=y.val&y.position,y.position>>=1,0==y.position&&(y.position=e,y.val=n(y.index++)),a|=(u>0?1:0)*s,s<<=1;f=t(a);break;case 2:return""}for(l[3]=f,i=f,g.push(f);;){if(y.index>r)return"";for(a=0,c=Math.pow(2,d),s=1;s!=c;)u=y.val&y.position,y.position>>=1,0==y.position&&(y.position=e,y.val=n(y.index++)),a|=(u>0?1:0)*s,s<<=1;switch(f=a){case 0:for(a=0,c=Math.pow(2,8),s=1;s!=c;)u=y.val&y.position,y.position>>=1,0==y.position&&(y.position=e,y.val=n(y.index++)),a|=(u>0?1:0)*s,s<<=1;l[h++]=t(a),f=h-1,p--;break;case 1:for(a=0,c=Math.pow(2,16),s=1;s!=c;)u=y.val&y.position,y.position>>=1,0==y.position&&(y.position=e,y.val=n(y.index++)),a|=(u>0?1:0)*s,s<<=1;l[h++]=t(a),f=h-1,p--;break;case 2:return g.join("")}if(0==p&&(p=Math.pow(2,d),d++),l[f])v=l[f];else{if(f!==h)return null;v=i+i.charAt(0)}g.push(v),l[h++]=i+v.charAt(0),i=v,0==--p&&(p=Math.pow(2,d),d++)}}};return i}();null!=t&&(t.exports=r)}));var Ei=[ai,fi],Ai=[vi,yi,ji,function(){return{get:function(t,r){var e=t(r);if(!e)return e;var n=Si.decompress(e);return null==n?e:this._deserialize(n)},set:function(t,r,e){var n=Si.compress(this._serialize(e));t(r,n)}}}],ki=ei.createStore(Ei,Ai),Ti=Ho.Global;function xi(){return Ti.sessionStorage}function Pi(t){return xi().getItem(t)}var qi=[{name:"sessionStorage",read:Pi,write:function(t,r){return xi().setItem(t,r)},each:function(t){for(var r=xi().length-1;r>=0;r--){var e=xi().key(r);t(Pi(e),e)}},remove:function(t){return xi().removeItem(t)},clearAll:function(){return xi().clear()}},fi],Ci=[vi,yi],$i=ei.createStore(qi,Ci),zi=ki,Ni=$i,Fi=Array.isArray,Ii=void 0!==l?l:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},Ri="object"==typeof Ii&&Ii&&Ii.Object===Object&&Ii,Ji="object"==typeof self&&self&&self.Object===Object&&self,Mi=(Ri||Ji||Function("return this")()).Symbol,Ui=Object.prototype,Di=Ui.hasOwnProperty,Hi=Ui.toString,Li=Mi?Mi.toStringTag:void 0;var Bi=Object.prototype.toString;var Ki="[object Null]",Vi="[object Undefined]",Gi=Mi?Mi.toStringTag:void 0;function Yi(t){return null==t?void 0===t?Vi:Ki:Gi&&Gi in Object(t)?function(t){var r=Di.call(t,Li),e=t[Li];try{t[Li]=void 0;var n=!0}catch(t){}var o=Hi.call(t);return n&&(r?t[Li]=e:delete t[Li]),o}(t):function(t){return Bi.call(t)}(t)}var Wi=function(t,r){return function(e){return t(r(e))}}(Object.getPrototypeOf,Object);function Qi(t){return null!=t&&"object"==typeof t}var Xi="[object Object]",Zi=Function.prototype,ta=Object.prototype,ra=Zi.toString,ea=ta.hasOwnProperty,na=ra.call(Object);var oa=Mi?Mi.prototype:void 0,ia=(oa&&oa.toString,"[object String]");function aa(t){return"string"==typeof t||!Fi(t)&&Qi(t)&&Yi(t)==ia}var ua=function(t,r){return!!t.filter((function(t){return t===r})).length},ca=function(t,r){var e=Object.keys(t);return ua(e,r)},sa=function(t){void 0===t&&(t=!1);var r=Date.now();return t?Math.floor(r/1e3):r},fa="query",la="mutation",pa="socket",ha="payload",da="condition",va=function(){try{if(window||document)return!0}catch(t){}return!1},ga=function(){try{if(!va()&&Ii)return!0}catch(t){}return!1};var ya=function(t){function r(){for(var e=arguments,n=[],o=arguments.length;o--;)n[o]=e[o];t.apply(this,n),this.message=n[0],this.detail=n[1],this.className=r.name,Error.captureStackTrace&&Error.captureStackTrace(this,r)}t&&(r.__proto__=t),r.prototype=Object.create(t&&t.prototype),r.prototype.constructor=r;var e={name:{configurable:!0}};return e.name.get=function(){return"JsonqlValidationError"},Object.defineProperties(r,e),r}(function(t){function r(){for(var r=arguments,e=[],n=arguments.length;n--;)e[n]=r[n];t.apply(this,e)}return t&&(r.__proto__=t),r.prototype=Object.create(t&&t.prototype),r.prototype.constructor=r,r.where=function(){return va()?"browser":ga()?"node":"unknown"},r}(Error));var ba=function(t){var r;return(r={}).args=t,r};var ma=function(t){return ca(t,"data")&&!ca(t,"error")?t.data:t},_a=function(t){return function(t){if(!Qi(t)||Yi(t)!=Xi)return!1;var r=Wi(t);if(null===r)return!0;var e=ea.call(r,"constructor")&&r.constructor;return"function"==typeof e&&e instanceof e&&ra.call(e)==na}(t)&&(ca(t,fa)||ca(t,la)||ca(t,pa))},wa=function(t,r){return void 0===r&&(r={}),_a(r)?Promise.resolve(r):t.getContract()},ja="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";function Oa(t){this.message=t}Oa.prototype=new Error,Oa.prototype.name="InvalidCharacterError";var Sa="undefined"!=typeof window&&window.atob&&window.atob.bind(window)||function(t){var r=String(t).replace(/=+$/,"");if(r.length%4==1)throw new Oa("'atob' failed: The string to be decoded is not correctly encoded.");for(var e,n,o=0,i=0,a="";n=r.charAt(i++);~n&&(e=o%4?64*e+n:n,o++%4)?a+=String.fromCharCode(255&e>>(-2*o&6)):0)n=ja.indexOf(n);return a};var Ea=function(t){var r=t.replace(/-/g,"+").replace(/_/g,"/");switch(r.length%4){case 0:break;case 2:r+="==";break;case 3:r+="=";break;default:throw"Illegal base64url string!"}try{return function(t){return decodeURIComponent(Sa(t).replace(/(.)/g,(function(t,r){var e=r.charCodeAt(0).toString(16).toUpperCase();return e.length<2&&(e="0"+e),"%"+e})))}(r)}catch(t){return Sa(r)}};function Aa(t){this.message=t}Aa.prototype=new Error,Aa.prototype.name="InvalidTokenError";var ka=function(t,r){if("string"!=typeof t)throw new Aa("Invalid token specified");var e=!0===(r=r||{}).header?0:1;try{return JSON.parse(Ea(t.split(".")[e]))}catch(t){throw new Aa("Invalid token specified: "+t.message)}},Ta=Aa;ka.InvalidTokenError=Ta;var xa,Pa,qa,Ca,$a,za,Na,Fa,Ia,Ra=function(t){void 0===t&&(t=!1);var r=Date.now();return t?Math.floor(r/1e3):r};function Ja(t){if($o(t))return function(t){var r=t.iat||Ra(!0);if(t.exp&&r>=t.exp){var e=new Date(t.exp).toISOString();throw new so("Token has expired on "+e,t)}return t}(ka(t));throw new so("Token must be a string!")}Fo("HS256",["string"]),Fo(!1,["boolean","number","string"],((xa={})[c]="exp",xa[o]=!0,xa)),Fo(!1,["boolean","number","string"],((Pa={})[c]="nbf",Pa[o]=!0,Pa)),Fo(!1,["boolean","string"],((qa={})[c]="iss",qa[o]=!0,qa)),Fo(!1,["boolean","string"],((Ca={})[c]="sub",Ca[o]=!0,Ca)),Fo(!1,["boolean","string"],(($a={})[c]="iss",$a[o]=!0,$a)),Fo(!1,["boolean"],((za={})[o]=!0,za)),Fo(!1,["boolean","string"],((Na={})[o]=!0,Na)),Fo(!1,["boolean","string"],((Fa={})[o]=!0,Fa)),Fo(!1,["boolean"],((Ia={})[o]=!0,Ia));var Ma=e[0],Ua=e[1],Da=function(t){!function(){for(var t=[],r=arguments.length;r--;)t[r]=arguments[r];try{window&&window.console&&Reflect.apply(console.log,null,t)}catch(t){}}(t),this.fly=t.Fly?new t.Fly:new Fly,this.opts=t,this.extraHeader={},this.extraParams={},this.reqInterceptor(),this.resInterceptor()},Ha={headers:{configurable:!0}};Ha.headers.set=function(t){this.extraHeader=t},Da.prototype.request=function(t,r,e){var n;void 0===r&&(r={}),void 0===e&&(e={}),this.headers=e;var o=En({},{_cb:sa()},this.extraParams);if(this.opts.enableJsonp){var i=function(t){return Object.keys(t)[0]}(t);o=En({},o,((n={}).jsonqlJsonpCallback=i,n)),t=t[i]}return this.fly.request(this.jsonqlEndpoint,t,En({},{method:Ma,params:o},r))},Da.prototype.reqInterceptor=function(){var t=this;this.fly.interceptors.request.use((function(r){var e=t.getHeaders();for(var n in t.log("request interceptor call",e),e)r.headers[n]=e[n];return r}))},Da.prototype.processJsonp=function(t){return ma(t)},Da.prototype.resInterceptor=function(){var t=this,r=this,e=r.opts.enableJsonp;this.fly.interceptors.response.use((function(n){t.log("response interceptor call"),r.cleanUp();var o=$o(n.data)?JSON.parse(n.data):n.data;return e?r.processJsonp(o):ma(o)}),(function(t){throw r.cleanUp(),console.error(t),new fo("Server side error",t)}))},Da.prototype.getHeaders=function(){return this.opts.enableAuth?En({},r,this.getAuthHeader(),this.extraHeader):En({},r,this.extraHeader)},Da.prototype.cleanUp=function(){this.extraHeader={},this.extraParams={}},Da.prototype.get=function(){var t=this;return this.opts.showContractDesc&&(this.extraParams=En({},this.extraParams,s)),this.request({},{method:"GET"},this.contractHeader).then(vo).then((function(r){return t.log("get contract result",r),r.cache&&r.contract?r.contract:r}))},Da.prototype.query=function(t,r){return void 0===r&&(r=[]),this.request(function(t,r,e){var n;if(void 0===r&&(r=[]),void 0===e&&(e=!1),aa(t)&&Fi(r)){var o=ba(r);return!0===e?o:((n={})[t]=o,n)}throw new ya("[createQuery] expect resolverName to be string and args to be array!",{resolverName:t,args:r})}(t,r)).then(vo)},Da.prototype.mutation=function(t,r,e){return void 0===r&&(r={}),void 0===e&&(e={}),this.request(function(t,r,e,n){var o;void 0===e&&(e={}),void 0===n&&(n=!1);var i={};if(i[ha]=r,i[da]=e,!0===n)return i;if(aa(t))return(o={})[t]=i,o;throw new ya("[createMutation] expect resolverName to be string!",{resolverName:t,payload:r,condition:e})}(t,r,e),{method:Ua}).then(vo)},Object.defineProperties(Da.prototype,Ha);var La=function(t){function r(r,e){void 0===e&&(e=null),e&&(r.Fly=e),t.call(this,r)}t&&(r.__proto__=t),r.prototype=Object.create(t&&t.prototype),r.prototype.constructor=r;var e={storeIt:{configurable:!0},jsonqlEndpoint:{configurable:!0},jsonqlContract:{configurable:!0},jsonqlToken:{configurable:!0},jsonqlUserdata:{configurable:!0}};return e.storeIt.set=function(t){throw console.info("storeIt",t),zo(t)&&t.length>=2&&Reflect.apply(zi.set,zi,t),new co("Expect argument to be array and least 2 items!")},e.jsonqlEndpoint.set=function(t){var r=zi.get("endpoint")||[];ua(r,t)||(r.push(t),this.storeId=["endpoint",r],this.endpointIndex=r.length-1)},e.jsonqlContract.set=function(t){var r=this.opts.storageKey,e=[r],n=t[0],o=t[1],i=zi.get(r)||[];i[this.endpointIndex||0]=n,e.push(i),o&&e.push(o),this.opts.keepContract&&(this.storeIt=e)},e.jsonqlToken.set=function(t){var r="credential",e=localStorage.get(r)||[];if(!ua(e,t)){var n=e.length-1;e[n]=t,this[r+"Index"]=n;var o=[r,e];if(this.opts.tokenExpired){var i=parseFloat(this.opts.tokenExpired);if(!isNaN(i)&&i>0){var a=sa();o.push(a+parseFloat(i))}}return this.storeIt=o,this.jsonqlUserdata=this.decoder(t),t}return!1},e.jsonqlUserdata.set=function(t){var r=["userdata",t];return t.exp&&r.push(t.exp),Reflect.apply(zi.set,zi,r)},e.jsonqlEndpoint.get=function(){var t=zi.get("endpoint");if(!t){var r=this.opts,e=[r.hostname,r.jsonqlPath].join("/");return this.jsonqlEndpoint=e,e}return t[this.endpointIndex]},e.jsonqlContract.get=function(){var t=this.opts.storageKey;return(zi.get(t)||[])[this.endpointIndex]||!1},e.jsonqlToken.get=function(){var t="credential",r=localStorage.get(t);return!!r&&r[this[t+"Index"]]},e.jsonqlUserdata.get=function(){return Ni.get("userdata")},r.prototype.log=function(){for(var t=[],r=arguments.length;r--;)t[r]=arguments[r];!0===this.opts.debugOn&&Reflect.apply(console.info,console,t)},Object.defineProperties(r.prototype,e),r}(function(t){function r(r){t.call(this,r),r.enableAuth&&r.useJwt&&(this.setDecoder=Ja)}t&&(r.__proto__=t),r.prototype=Object.create(t&&t.prototype),r.prototype.constructor=r;var e={userdata:{configurable:!0},rawAuthToken:{configurable:!0},setDecoder:{configurable:!0}};return e.userdata.get=function(){return this.jsonqlUserdata},e.rawAuthToken.get=function(){return this.jsonqlToken},e.setDecoder.set=function(t){"function"==typeof t&&(this.decoder=t)},r.prototype.storeToken=function(t){return this.jsonqlToken=t},r.prototype.decoder=function(t){return t},r.prototype.getAuthHeader=function(){var t,r=this.rawAuthToken;return r?((t={})[this.opts.AUTH_HEADER]="Bearer "+r,t):{}},Object.defineProperties(r.prototype,e),r}(function(t){function r(r){t.call(this,r)}t&&(r.__proto__=t),r.prototype=Object.create(t&&t.prototype),r.prototype.constructor=r;var e={contractHeader:{configurable:!0}};return r.prototype.getContract=function(){var t=this.readContract();if(this.log("getContract first call",t),t&&Array.isArray(t)){var r=t[this.endpointIndex||0];if(r)return Promise.resolve(r)}return this.get().then(this.storeContract.bind(this))},e.contractHeader.get=function(){var t={};return!1!==this.opts.contractKey&&(t[this.opts.contractKeyName]=this.opts.contractKey),t},r.prototype.storeContract=function(t){if(!_a(t))throw new co("Contract is malformed!");var r=[t];if(this.opts.contractExpired){var e=parseFloat(this.opts.contractExpired);!isNaN(e)&&e>0&&r.push(e)}return this.jsonqlContract=r,this.log("storeContract return result",t),t},r.prototype.readContract=function(){return _a(this.opts.contract)?this.opts.contract:zi.get(this.opts.storageKey)},Object.defineProperties(r.prototype,e),r}(Da))),Ba=function(t){return y(t)?t:[t]},Ka=function(t){for(var r=[],e=arguments.length-1;e-- >0;)r[e]=arguments[e+1];return function(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];return r.reduce((function(t,r){return Reflect.apply(r,null,Ba(t))}),Reflect.apply(t,null,e))}};function Va(t,r,e,n){void 0===n&&(n=!1);var o=Object.getOwnPropertyDescriptor(t,r);return!1===n&&void 0!==o?t:(Object.defineProperty(t,r,{value:e,writable:n}),t)}var Ga=function(t,r,e,n){return function(){for(var e=[],o=arguments.length;o--;)e[o]=arguments[o];var i=n.auth[r].params,a=i.map((function(t,r){return e[r]})),u=e[i.length]||{};return No(e,i).then((function(){return t.query.apply(t,[r,a,u])})).catch(go)}},Ya=function(t,r,e,n,o){var i={},a=function(t){i=Va(i,t,(function(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];var i=o.query[t].params,a=i.map((function(t,r){return e[r]})),u=e[i.length]||{};return No(a,i).then((function(){return r.query.apply(r,[t,a,u])})).catch(go)}))};for(var u in o.query)a(u);return t.query=i,[t,r,e,n,o]},Wa=function(t,r,e,n,o){var i={},a=function(t){i=Va(i,t,(function(e,n,i){void 0===i&&(i={});var a=[e,n],u=o.mutation[t].params;return No(a,u).then((function(){return r.mutation.apply(r,[t,e,n,i])})).catch(go)}))};for(var u in o.mutation)a(u);return t.mutation=i,[t,r,e,n,o]},Qa=function(t,r,e,n,o){if(n.enableAuth&&o.auth){var i={},a=n.loginHandlerName,u=n.logoutHandlerName;o.auth[a]&&(i[a]=function(){for(var t=[],n=arguments.length;n--;)t[n]=arguments[n];var i=Ga(r,a,0,o);return i.apply(null,t).then(r.postLoginAction).then((function(t){return e.$trigger("login",t),t}))}),o.auth[u]?i[u]=function(){for(var t=[],n=arguments.length;n--;)t[n]=arguments[n];var i=Ga(r,u,0,o);return i.apply(null,t).then(r.postLogoutAction).then((function(t){return e.$trigger("logout",t),t}))}:i[u]=function(){r.postLogoutAction("continue"),e.$trigger("logout","continue")},t.auth=i}return t};var Xa=function(t,r,e,n){var o=function(t,r,e,n){return Ka(Ya,Wa,Qa)({},t,r,e,n)}(t,n,r,e);return r.enableAuth&&(o.userdata=function(){return t.userdata}),o.getToken=function(){return t.rawAuthToken},r.exposeContract&&(o.getContract=function(){return t.getContract()}),o.eventEmitter=n,o.version="1.4.0",o},Za={contract:!1,MUTATION_ARGS:["name","payload","conditions"],CONTENT_TYPE:t,BEARER:"Bearer",AUTH_HEADER:"Authorization"},tu={hostname:Fo([window.location.protocol,window.location.host].join("//"),["string"]),jsonqlPath:Fo("jsonql",["string"]),loginHandlerName:Fo("login",["string"]),logoutHandlerName:Fo("logout",["string"]),enableJsonp:Fo(!1,["boolean"]),enableAuth:Fo(!1,["boolean"]),useJwt:Fo(!0,["boolean"]),useLocalstorage:Fo(!0,["boolean"]),storageKey:Fo("storageKey",["string"]),authKey:Fo("authKey",["string"]),contractExpired:Fo(0,["number"]),keepContract:Fo(!0,["boolean"]),exposeContract:Fo(!1,["boolean"]),showContractDesc:Fo(!1,["boolean"]),contractKey:Fo(!1,["boolean"]),contractKeyName:Fo("X-JSONQL-CV-KEY",["string"]),enableTimeout:Fo(!1,["boolean"]),timeout:Fo(5e3,["number"]),returnInstance:Fo(!1,["boolean"]),allowReturnRawToken:Fo(!1,["boolean"]),debugOn:Fo(!1,["boolean"])};function ru(t,r,e){return void 0===r&&(r={}),void 0===e&&(e=null),function(t){var r=t.contract;return Io(t,tu,Za).then((function(t){return t.contract=r,t}))}(r).then((function(t){return{baseClient:new La(t,e),opts:t}})).then((function(r){var e=r.baseClient,n=r.opts;return wa(e,n.contract).then((function(r){return Xa(e,n,r,t)}))}))}var eu=new WeakMap,nu=new WeakMap;var ou=function(){this.__suspend__=null,this.queueStore=new Set},iu={$suspend:{configurable:!0},$queues:{configurable:!0}};iu.$suspend.set=function(t){var r=this;if("boolean"!=typeof t)throw new Error("$suspend only accept Boolean value!");var e=this.__suspend__;this.__suspend__=t,this.logger("($suspend)","Change from "+e+" --\x3e "+t),!0===e&&!1===t&&setTimeout((function(){r.release()}),1)},ou.prototype.$queue=function(){for(var t=[],r=arguments.length;r--;)t[r]=arguments[r];return!0===this.__suspend__&&(this.logger("($queue)","added to $queue",t),this.queueStore.add(t)),this.__suspend__},iu.$queues.get=function(){var t=this.queueStore.size;return this.logger("($queues)","size: "+t),t>0?Array.from(this.queueStore):[]},ou.prototype.release=function(){var t=this,r=this.queueStore.size;if(this.logger("(release)","Release was called "+r),r>0){var e=Array.from(this.queueStore);this.queueStore.clear(),this.logger("queue",e),e.forEach((function(r){t.logger(r),Reflect.apply(t.$trigger,t,r)})),this.logger("Release size "+this.queueStore.size)}},Object.defineProperties(ou.prototype,iu);var au=function(t){function r(r){void 0===r&&(r={}),t.call(this,r)}t&&(r.__proto__=t),r.prototype=Object.create(t&&t.prototype),r.prototype.constructor=r;var e={$done:{configurable:!0}};return r.prototype.logger=function(){},r.prototype.$on=function(t,r,e){var n=this;void 0===e&&(e=null);this.validate(t,r);var o=this.takeFromStore(t);if(!1===o)return this.logger("($on)",t+" callback is not in lazy store"),this.addToNormalStore(t,"on",r,e);this.logger("($on)",t+" found in lazy store");var i=0;return o.forEach((function(o){var a=o[0],u=o[1],c=o[2];if(c&&"on"!==c)throw new Error("You are trying to register an event already been taken by other type: "+c);n.logger("($on)","call run on "+t),n.run(r,a,e||u),i+=n.addToNormalStore(t,"on",r,e||u)})),i},r.prototype.$once=function(t,r,e){void 0===e&&(e=null),this.validate(t,r);var n=this.takeFromStore(t);this.normalStore;if(!1===n)return this.logger("($once)",t+" not in the lazy store"),this.addToNormalStore(t,"once",r,e);this.logger("($once)",n);var o=Array.from(n)[0],i=o[0],a=o[1],u=o[2];if(u&&"once"!==u)throw new Error("You are trying to register an event already been taken by other type: "+u);this.logger("($once)","call run for "+t),this.run(r,i,e||a),this.$off(t)},r.prototype.$only=function(t,r,e){var n=this;void 0===e&&(e=null),this.validate(t,r);var o=!1,i=this.takeFromStore(t);(this.normalStore.has(t)||(this.logger("($only)",t+" add to store"),o=this.addToNormalStore(t,"only",r,e)),!1!==i)&&(this.logger("($only)",t+" found data in lazy store to execute"),Array.from(i).forEach((function(o){var i=o[0],a=o[1],u=o[2];if(u&&"only"!==u)throw new Error("You are trying to register an event already been taken by other type: "+u);n.logger("($only)","call run for "+t),n.run(r,i,e||a)})));return o},r.prototype.$onlyOnce=function(t,r,e){void 0===e&&(e=null),this.validate(t,r);var n=!1,o=this.takeFromStore(t);if(this.normalStore.has(t)||(this.logger("($onlyOnce)",t+" add to store"),n=this.addToNormalStore(t,"onlyOnce",r,e)),!1!==o){this.logger("($onlyOnce)",o);var i=Array.from(o)[0],a=i[0],u=i[1],c=i[2];if(c&&"onlyOnce"!==c)throw new Error("You are trying to register an event already been taken by other type: "+c);this.logger("($onlyOnce)","call run for "+t),this.run(r,a,e||u),this.$off(t)}return n},r.prototype.$replace=function(t,r,e,n){if(void 0===e&&(e=null),void 0===n&&(n="on"),this.validateType(n)){this.$off(t);var o=this["$"+n];return this.logger("($replace)",t,r),Reflect.apply(o,this,[t,r,e])}throw new Error(n+" is not supported!")},r.prototype.$trigger=function(t,r,e,n){void 0===r&&(r=[]),void 0===e&&(e=null),void 0===n&&(n=!1),this.validateEvt(t);var o=0,i=this.normalStore;if(this.logger("($trigger)","normalStore",i),i.has(t)){var a=this.$queue(t,r,e,n);if(this.logger("($trigger)",t,"found; add to queue: ",a),!0===a)return this.logger("($trigger)",t,"not executed. Exit now."),!1;for(var u=Array.from(i.get(t)),c=u.length,s=!1,f=0;f0;)n[o]=arguments[o+2];if(t.has(r)?(this.logger("(addToStore)",r+" existed"),e=t.get(r)):(this.logger("(addToStore)","create new Set for "+r),e=new Set),n.length>2)if(Array.isArray(n[0])){var i=n[2];this.checkTypeInLazyStore(r,i)||e.add(n)}else this.checkContentExist(n,e)||(this.logger("(addToStore)","insert new",n),e.add(n));else e.add(n);return t.set(r,e),[t,e.size]},r.prototype.checkContentExist=function(t,r){return!!Array.from(r).filter((function(r){return r[0]===t[0]})).length},r.prototype.checkTypeInStore=function(t,r){this.validateEvt(t,r);var e=this.$get(t,!0);return!1===e||!e.filter((function(t){var e=t[3];return r!==e})).length},r.prototype.checkTypeInLazyStore=function(t,r){this.validateEvt(t,r);var e=this.lazyStore.get(t);return this.logger("(checkTypeInLazyStore)",e),!!e&&!!Array.from(e).filter((function(t){return t[2]!==r})).length},r.prototype.addToNormalStore=function(t,r,e,n){if(void 0===n&&(n=null),this.logger("(addToNormalStore)",t,r,"try to add to normal store"),this.checkTypeInStore(t,r)){this.logger("(addToNormalStore)",r+" can add to "+t+" normal store");var o=this.hashFnToKey(e),i=[this.normalStore,t,o,e,n,r],a=Reflect.apply(this.addToStore,this,i),u=a[0],c=a[1];return this.normalStore=u,c}return!1},r.prototype.addToLazyStore=function(t,r,e,n){void 0===r&&(r=[]),void 0===e&&(e=null),void 0===n&&(n=!1);var o=[this.lazyStore,t,this.toArray(r),e];n&&o.push(n);var i=Reflect.apply(this.addToStore,this,o),a=i[0],u=i[1];return this.lazyStore=a,u},r.prototype.toArray=function(t){return Array.isArray(t)?t:[t]},e.normalStore.set=function(t){eu.set(this,t)},e.normalStore.get=function(){return eu.get(this)},e.lazyStore.set=function(t){nu.set(this,t)},e.lazyStore.get=function(){return nu.get(this)},r.prototype.hashFnToKey=function(t){return t.toString().split("").reduce((function(t,r){return(t=(t<<5)-t+r.charCodeAt(0))&t}),0)+""},Object.defineProperties(r.prototype,e),r}(ou));return function(t,r){var e;return ru((e=r.debugOn,new au({logger:e?function(){for(var t=[],r=arguments.length;r--;)t[r]=arguments[r];t.unshift("[NBS]"),console.log.apply(null,t)}:void 0})),r,t)}})); //# sourceMappingURL=core.js.map diff --git a/packages/http-client/core.js.map b/packages/http-client/core.js.map index e1676ff95c76e6732e6cf29ad0710ae5d293c6a7..1ca5f5bd4272129bc8bc67163d3b365280fd2023 100644 --- a/packages/http-client/core.js.map +++ b/packages/http-client/core.js.map @@ -1 +1 @@ -{"version":3,"file":"core.js","sources":["node_modules/store/plugins/defaults.js","node_modules/store/plugins/expire.js"],"sourcesContent":["module.exports = defaultsPlugin\n\nfunction defaultsPlugin() {\n\tvar defaultValues = {}\n\t\n\treturn {\n\t\tdefaults: defaults,\n\t\tget: get\n\t}\n\t\n\tfunction defaults(_, values) {\n\t\tdefaultValues = values\n\t}\n\t\n\tfunction get(super_fn, key) {\n\t\tvar val = super_fn()\n\t\treturn (val !== undefined ? val : defaultValues[key])\n\t}\n}\n","var namespace = 'expire_mixin'\n\nmodule.exports = expirePlugin\n\nfunction expirePlugin() {\n\tvar expirations = this.createStore(this.storage, null, this._namespacePrefix+namespace)\n\t\n\treturn {\n\t\tset: expire_set,\n\t\tget: expire_get,\n\t\tremove: expire_remove,\n\t\tgetExpiration: getExpiration,\n\t\tremoveExpiredKeys: removeExpiredKeys\n\t}\n\t\n\tfunction expire_set(super_fn, key, val, expiration) {\n\t\tif (!this.hasNamespace(namespace)) {\n\t\t\texpirations.set(key, expiration)\n\t\t}\n\t\treturn super_fn()\n\t}\n\t\n\tfunction expire_get(super_fn, key) {\n\t\tif (!this.hasNamespace(namespace)) {\n\t\t\t_checkExpiration.call(this, key)\n\t\t}\n\t\treturn super_fn()\n\t}\n\t\n\tfunction expire_remove(super_fn, key) {\n\t\tif (!this.hasNamespace(namespace)) {\n\t\t\texpirations.remove(key)\n\t\t}\n\t\treturn super_fn()\n\t}\n\t\n\tfunction getExpiration(_, key) {\n\t\treturn expirations.get(key)\n\t}\n\t\n\tfunction removeExpiredKeys(_) {\n\t\tvar keys = []\n\t\tthis.each(function(val, key) {\n\t\t\tkeys.push(key)\n\t\t})\n\t\tfor (var i=0; i0&&(t+=(-1===t.indexOf("?")?"?":"&")+w.join("&")),a.open(r.method,t);try{a.withCredentials=!!r.withCredentials,a.timeout=r.timeout||0,"stream"!==y&&(a.responseType=y)}catch(t){}var j=r.headers[u]||r.headers[c],O="application/x-www-form-urlencoded";for(var S in o.trim((j||"").toLowerCase())===O?e=o.formatParams(e):o.isFormData(e)||-1===["object","array"].indexOf(o.type(e))||(O="application/json;charset=utf-8",e=JSON.stringify(e)),j||b||(r.headers[u]=O),r.headers)if(S===u&&o.isFormData(e))delete r.headers[S];else try{a.setRequestHeader(S,r.headers[S])}catch(t){}function E(t,e,n){v(l.p,(function(){if(t){n&&(e.request=r);var o=t.call(l,e,Promise);e=void 0===o?e:o}d(e)||(e=Promise[0===n?"resolve":"reject"](e)),e.then((function(t){s(t)})).catch((function(t){h(t)}))}))}function k(t){t.engine=a,E(l.onerror,t,-1)}function A(t,e){this.message=t,this.status=e}a.onload=function(){try{var t=a.response||a.responseText;t&&r.parseJson&&-1!==(a.getResponseHeader(u)||"").indexOf("json")&&!o.isObject(t)&&(t=JSON.parse(t));var e=a.responseHeaders;if(!e){e={};var n=(a.getAllResponseHeaders()||"").split("\r\n");n.pop(),n.forEach((function(t){if(t){var r=t.split(":")[0];e[r]=a.getResponseHeader(r)}}))}var i=a.status,c=a.statusText,s={data:t,headers:e,status:i,statusText:c};if(o.merge(s,a._response),i>=200&&i<300||304===i)s.engine=a,s.request=r,E(l.handler,s,0);else{var f=new A(c,i);f.response=s,k(f)}}catch(f){k(new A(f.msg,a.status))}},a.onerror=function(t){k(new A(t.msg||"Network Error",0))},a.ontimeout=function(){k(new A("timeout [ "+a.timeout+"ms ]",1))},a._options=r,setTimeout((function(){a.send(b?null:e)}),0)}(n):s(n)}),(function(t){h(t)}))}))}));return h.engine=a,h}},{key:"all",value:function(t){return Promise.all(t)}},{key:"spread",value:function(t){return function(e){return t.apply(null,e)}}}]),t}();a.default=a,["get","post","put","patch","head","delete"].forEach((function(t){a.prototype[t]=function(e,r,n){return this.request(e,r,o.merge({method:t},n))}})),["lock","unlock","clear"].forEach((function(t){a.prototype[t]=function(){this.interceptors.request[t]()}})),t.exports=a}])},t.exports=r()})),o=(r=n)&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r,i="application/vnd.api+json",a={Accept:i,"Content-Type":[i,"charset=utf-8"].join(";")},u=["POST","PUT"],c="continue",s="type",f="optional",l="enumv",p="args",h="checker",d="alias",v="login",g="logout",y={desc:"y"},b="No message",m="onResult",_="onError";var w="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},j="object"==typeof w&&w&&w.Object===Object&&w,O="object"==typeof self&&self&&self.Object===Object&&self,S=j||O||Function("return this")(),E=S.Symbol;function k(t,e){for(var r=-1,n=null==t?0:t.length,o=Array(n);++r=n?t:function(t,e,r){var n=-1,o=t.length;e<0&&(e=-e>o?0:o+e),(r=r>o?o:r)<0&&(r+=o),o=e>r?0:r-e>>>0,e>>>=0;for(var i=Array(o);++n-1;);return r}(n,o),function(t,e){for(var r=t.length;r--&&K(e,t[r],0)>-1;);return r}(n,o)+1).join("")}function ct(t){return void 0===t}var st="[object Boolean]";var ft="[object Number]";function lt(t){return function(t){return"number"==typeof t||R(t)&&F(t)==ft}(t)&&t!=+t}var pt="[object String]";function ht(t){return"string"==typeof t||!A(t)&&R(t)&&F(t)==pt}function dt(t,e){return function(r){return t(e(r))}}var vt=dt(Object.getPrototypeOf,Object),gt="[object Object]",yt=Function.prototype,bt=Object.prototype,mt=yt.toString,_t=bt.hasOwnProperty,wt=mt.call(Object);function jt(t){if(!R(t)||F(t)!=gt)return!1;var e=vt(t);if(null===e)return!0;var r=_t.call(e,"constructor")&&e.constructor;return"function"==typeof r&&r instanceof r&&mt.call(r)==wt}var Ot,St=function(t,e,r){for(var n=-1,o=Object(t),i=r(t),a=i.length;a--;){var u=i[Ot?a:++n];if(!1===e(o[u],u,o))break}return t};var Et="[object Arguments]";function kt(t){return R(t)&&F(t)==Et}var At=Object.prototype,xt=At.hasOwnProperty,Tt=At.propertyIsEnumerable,Pt=kt(function(){return arguments}())?kt:function(t){return R(t)&&xt.call(t,"callee")&&!Tt.call(t,"callee")};var qt="object"==typeof exports&&exports&&!exports.nodeType&&exports,Ct=qt&&"object"==typeof module&&module&&!module.nodeType&&module,$t=Ct&&Ct.exports===qt?S.Buffer:void 0,Nt=($t?$t.isBuffer:void 0)||function(){return!1},zt=9007199254740991,Ft=/^(?:0|[1-9]\d*)$/;function Rt(t,e){var r=typeof t;return!!(e=null==e?zt:e)&&("number"==r||"symbol"!=r&&Ft.test(t))&&t>-1&&t%1==0&&t-1&&t%1==0&&t<=It}var Mt={};Mt["[object Float32Array]"]=Mt["[object Float64Array]"]=Mt["[object Int8Array]"]=Mt["[object Int16Array]"]=Mt["[object Int32Array]"]=Mt["[object Uint8Array]"]=Mt["[object Uint8ClampedArray]"]=Mt["[object Uint16Array]"]=Mt["[object Uint32Array]"]=!0,Mt["[object Arguments]"]=Mt["[object Array]"]=Mt["[object ArrayBuffer]"]=Mt["[object Boolean]"]=Mt["[object DataView]"]=Mt["[object Date]"]=Mt["[object Error]"]=Mt["[object Function]"]=Mt["[object Map]"]=Mt["[object Number]"]=Mt["[object Object]"]=Mt["[object RegExp]"]=Mt["[object Set]"]=Mt["[object String]"]=Mt["[object WeakMap]"]=!1;var Ut,Dt="object"==typeof exports&&exports&&!exports.nodeType&&exports,Ht=Dt&&"object"==typeof module&&module&&!module.nodeType&&module,Lt=Ht&&Ht.exports===Dt&&j.process,Bt=function(){try{var t=Ht&&Ht.require&&Ht.require("util").types;return t||Lt&&Lt.binding&&Lt.binding("util")}catch(t){}}(),Kt=Bt&&Bt.isTypedArray,Vt=Kt?(Ut=Kt,function(t){return Ut(t)}):function(t){return R(t)&&Jt(t.length)&&!!Mt[F(t)]},Gt=Object.prototype.hasOwnProperty;function Yt(t,e){var r=A(t),n=!r&&Pt(t),o=!r&&!n&&Nt(t),i=!r&&!n&&!o&&Vt(t),a=r||n||o||i,u=a?function(t,e){for(var r=-1,n=Array(t);++r-1},pe.prototype.set=function(t,e){var r=this.__data__,n=fe(r,t);return n<0?(++this.size,r.push([t,e])):r[n][1]=e,this};var he,de=S["__core-js_shared__"],ve=(he=/[^.]+$/.exec(de&&de.keys&&de.keys.IE_PROTO||""))?"Symbol(src)_1."+he:"";var ge=Function.prototype.toString;function ye(t){if(null!=t){try{return ge.call(t)}catch(t){}try{return t+""}catch(t){}}return""}var be=/^\[object .+?Constructor\]$/,me=Function.prototype,_e=Object.prototype,we=me.toString,je=_e.hasOwnProperty,Oe=RegExp("^"+we.call(je).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Se(t){return!(!te(t)||function(t){return!!ve&&ve in t}(t))&&(ie(t)?Oe:be).test(ye(t))}function Ee(t,e){var r=function(t,e){return null==t?void 0:t[e]}(t,e);return Se(r)?r:void 0}var ke=Ee(S,"Map"),Ae=Ee(Object,"create");var xe="__lodash_hash_undefined__",Te=Object.prototype.hasOwnProperty;var Pe=Object.prototype.hasOwnProperty;var qe="__lodash_hash_undefined__";function Ce(t){var e=-1,r=null==t?0:t.length;for(this.clear();++eu))return!1;var s=i.get(t);if(s&&i.get(e))return s==e;var f=-1,l=!0,p=r&Ue?new Ie:void 0;for(i.set(t,e),i.set(e,t);++f0){if(++e>=Tn)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}(xn);function $n(t,e){return Cn(function(t,e,r){return e=An(void 0===e?t.length-1:e,0),function(){for(var n=arguments,o=-1,i=An(n.length-e,0),a=Array(i);++o1?e[n-1]:void 0,i=n>2?e[2]:void 0;for(o=Nn.length>3&&"function"==typeof o?(n--,o):void 0,i&&function(t,e,r){if(!te(r))return!1;var n=typeof e;return!!("number"==n?ae(r)&&Rt(e,r.length):"string"==n&&e in r)&&se(r[e],t)}(e[0],e[1],i)&&(o=n<3?void 0:o,n=1),t=Object(t);++r0))},ro=function(t){if(t.indexOf("array.<")>-1&&t.indexOf(">")>-1){var e=t.replace("array.<","").replace(">","");return e.indexOf("|")?e.split("|"):[e]}return!1},no=function(t,e){var r=t.arg;return e.length>1?!r.filter((function(t){return!(e.length>e.filter((function(e){return!to(e)(t)})).length)})).length:e.length>e.filter((function(t){return!eo(r,t)})).length},oo=function(t,e){if(void 0===e&&(e=null),jt(t)){if(!e)return!0;if(eo(e))return!e.filter((function(e){var r=t[e.name];return!(e.type.length>e.type.filter((function(t){var e;return!!ct(r)||(!1!==(e=ro(t))?!no({arg:r},e):!to(t)(r))})).length)})).length}return!1},io=function(t){var e=t.arg,r=t.param,n=[e];return Array.isArray(r.keys)&&r.keys.length&&n.push(r.keys),oo.apply(null,n)},ao=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={statusCode:{configurable:!0},name:{configurable:!0}};return r.statusCode.get=function(){return 406},r.name.get=function(){return"Jsonql406Error"},Object.defineProperties(e,r),e}(Error),uo=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={statusCode:{configurable:!0},name:{configurable:!0}};return r.statusCode.get=function(){return 500},r.name.get=function(){return"Jsonql500Error"},Object.defineProperties(e,r),e}(Error),co=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={statusCode:{configurable:!0},name:{configurable:!0}};return r.statusCode.get=function(){return 401},r.name.get=function(){return"JsonqlAuthorisationError"},Object.defineProperties(e,r),e}(Error),so=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={statusCode:{configurable:!0},name:{configurable:!0}};return r.statusCode.get=function(){return 401},r.name.get=function(){return"JsonqlContractAuthError"},Object.defineProperties(e,r),e}(Error),fo=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={statusCode:{configurable:!0},name:{configurable:!0}};return r.statusCode.get=function(){return 500},r.name.get=function(){return"JsonqlResolverAppError"},Object.defineProperties(e,r),e}(Error),lo=function(){try{if(window||document)return!0}catch(t){}return!1},po=function(){try{if(!lo()&&w)return!0}catch(t){}return!1};var ho=function(t){function e(){for(var e=[],r=arguments.length;r--;)e[r]=arguments[r];t.apply(this,e)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.where=function(){return lo()?"browser":po()?"node":"unknown"},e}(Error),vo=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,Error.captureStackTrace&&Error.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={statusCode:{configurable:!0},name:{configurable:!0}};return r.statusCode.get=function(){return 404},r.name.get=function(){return"JsonqlResolverNotFoundError"},Object.defineProperties(e,r),e}(ho),go=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0}};return r.name.get=function(){return"JsonqlEnumError"},Object.defineProperties(e,r),e}(Error),yo=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0}};return r.name.get=function(){return"JsonqlTypeError"},Object.defineProperties(e,r),e}(Error),bo=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0}};return r.name.get=function(){return"JsonqlCheckerError"},Object.defineProperties(e,r),e}(Error),mo=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,Error.captureStackTrace&&Error.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0}};return r.name.get=function(){return"JsonqlValidationError"},Object.defineProperties(e,r),e}(ho),_o=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,Error.captureStackTrace&&Error.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0},statusCode:{configurable:!0}};return r.name.get=function(){return"JsonqlError"},r.statusCode.get=function(){return-1},Object.defineProperties(e,r),e}(ho),wo=function(t){function e(r,n){t.call(this,n),this.statusCode=r,this.className=e.name}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0}};return r.name.get=function(){return"JsonqlServerError"},Object.defineProperties(e,r),e}(Error),jo=Object.freeze({Jsonql406Error:ao,Jsonql500Error:uo,JsonqlAuthorisationError:co,JsonqlContractAuthError:so,JsonqlResolverAppError:fo,JsonqlResolverNotFoundError:vo,JsonqlEnumError:go,JsonqlTypeError:yo,JsonqlCheckerError:bo,JsonqlValidationError:mo,JsonqlError:_o,JsonqlServerError:wo}),Oo=_o,So=function(t,e){return!!Object.keys(t).filter((function(t){return e===t})).length};function Eo(t){if(So(t,"error")){var e=t.error,r=e.className,n=e.name,o=r||n,i=e.message||b,a=e.detail||e;if(o&&jo[o])throw new jo[r](i,a);throw new Oo(i,a)}return t}function ko(t){if(Array.isArray(t))throw new mo("",t);var e=t.message||b,r=t.detail||t;switch(!0){case t instanceof ao:throw new ao(e,r);case t instanceof uo:throw new uo(e,r);case t instanceof co:throw new co(e,r);case t instanceof so:throw new so(e,r);case t instanceof fo:throw new fo(e,r);case t instanceof vo:throw new vo(e,r);case t instanceof go:throw new go(e,r);case t instanceof yo:throw new yo(e,r);case t instanceof bo:throw new bo(e,r);case t instanceof mo:throw new mo(e,r);case t instanceof wo:throw new wo(e,r);default:throw new _o(e,r)}}function Ao(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];try{window&&window.console&&Reflect.apply(console.log,console,t)}catch(t){}}var xo=function(t,e){var r;switch(!0){case"object"===t:return!io(e);case"array"===t:return!eo(e.arg);case!1!==(r=ro(t)):return!no(e,r);default:return!to(t)(e.arg)}},To=function(t,e){return ct(t)?!0!==e.optional||ct(e.defaultvalue)?null:e.defaultvalue:t},Po=function(t,e,r){var n;void 0===r&&(r=!1);var o=function(t,e){if(!eo(e))throw new _o("params is not an array! Did something gone wrong when you generate the contract.json?");if(0===e.length)return[];if(!eo(t))throw new _o("args is not an array! You might want to do: ES6 Array.from(arguments) or ES5 Array.prototype.slice.call(arguments)");switch(!0){case t.length==e.length:return Ao(1),t.map((function(t,r){return{arg:t,index:r,param:e[r]}}));case!0===e[0].variable:Ao(2);var r=e[0].type;return t.map((function(t,n){return{arg:t,index:n,param:e[n]||{type:r,name:"_"}}}));case t.lengthe.length:Ao(4);var n=e.length,o=["any"];return t.map((function(t,r){var i=r>=n||!!e[r].optional,a=e[r]||{type:o,name:"_"+r};return{arg:i?To(t,a):t,index:r,param:a,optional:i}}));default:throw Ao(5),new _o("Could not understand your arguments and parameter structure!",{args:t,params:e})}}(t,e),i=o.filter((function(t){return!0===t.optional||!0===t.param.optional?function(t){var e=t.arg,r=t.param;return!!Dn(e)&&!(r.type.length>r.type.filter((function(e){return xo(e,t)})).length)}(t):!(t.param.type.length>t.param.type.filter((function(e){return xo(e,t)})).length)}));return r?((n={}).error=i,n.data=o.map((function(t){return t.arg})),n):i},qo=function(t,e){var r,n=Object.keys(t);return r=e,!!n.filter((function(t){return t===r})).length},Co=function(t){return!Dn(t)};function $o(t,e){var r=Un(e,(function(t,e){return!t[Qn]}));return $r(r,{})?t:function(t,e){var r={};return e=an(e),ce(t,(function(t,n,o){cn(r,e(t,n,o),t)})),r}(t,(function(t,e){return function(t,e,r){var n;return r(t,(function(t,r,o){if(e(t,r,o))return n=r,!1})),n}(r,an((function(t){return t.alias===e})),ce)||e}))}function No(t,e){return Fn(e,(function(e,r){var n,o;return ct(t[r])||!0===e[Gn]&&Co(t[r])?zn({},e,((n={})[Zn]=!0,n)):((o={})[Wn]=t[r],o[Vn]=e[Vn],o[Gn]=e[Gn]||!1,o[Yn]=e[Yn]||!1,o[Xn]=e[Xn]||!1,o)}))}function zo(t,e){var r=function(t,e){var r=$o(t,e);return{pristineValues:Fn(Un(e,(function(t,e){return qo(r,e)})),(function(t){return t.args})),checkAgainstAppProps:Un(e,(function(t,e){return!qo(r,e)})),config:r}}(t,e),n=r.config,o=r.pristineValues;return[No(n,r.checkAgainstAppProps),o]}var Fo=function(t){return eo(t)?t:[t]};var Ro=function(t,e){return!eo(e)||function(t,e){return!!t.filter((function(t){return t===e})).length}(e,t)},Io=function(t,e){try{return!!ie(e)&&e.apply(null,[t])}catch(t){return!1}};function Jo(t){return function(e,r){if(e[Zn])return e[Wn];var n=function(t,e){var r,n=[[t[Wn]],[(r={},r[Vn]=Fo(t[Vn]),r[Gn]=t[Gn],r)]];return Reflect.apply(e,null,n)}(e,t);if(n.length)throw Ao("runValidationAction",r,e),new yo(r,n);if(!1!==e[Yn]&&!Ro(e[Wn],e[Yn]))throw Ao(Yn,e[Yn]),new go(r);if(!1!==e[Xn]&&!Io(e[Wn],e[Xn]))throw Ao(Xn,e[Xn]),new bo(r);return e[Wn]}}function Mo(t,e,r,n){return void 0===t&&(t={}),zn(function(t,e){var r=t[0],n=t[1],o=Fn(r,Jo(e));return zn(o,n)}(zo(t,e),n),r)}function Uo(t,e,r,n,o,i){void 0===r&&(r=!1),void 0===n&&(n=!1),void 0===o&&(o=!1),void 0===i&&(i=!1);var a={};return a[p]=t,a[s]=e,!0===r&&(a[f]=!0),eo(n)&&(a[l]=n),ie(o)&&(a[h]=o),ht(i)&&(a[d]=i),a}var Do=Ln,Ho=eo,Lo=function(t,e,r){return void 0===r&&(r=!1),new Promise((function(n,o){var i=Po(t,e,r);return r?i.error.length?o(i.error):n(i.data):i.length?o(i):n([])}))},Bo=function(t,e,r){void 0===r&&(r={});var n=r[f],o=r[l],i=r[h],a=r[d];return Uo.apply(null,[t,e,n,o,i,a])},Ko=function(t){return function(e,r,n){return void 0===n&&(n={}),Mo(e,r,n,t)}}(Po),Vo=function(t,e,r,n){return function(){for(var r=[],o=arguments.length;o--;)r[o]=arguments[o];var i=n.auth[e].params,a=i.map((function(t,e){return r[e]})),u=r[i.length]||{};return Lo(r,i).then((function(){return t.query.apply(t,[e,a,u])})).catch(ko)}};var Go=Array.isArray,Yo=void 0!==w?w:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},Wo="object"==typeof Yo&&Yo&&Yo.Object===Object&&Yo,Xo="object"==typeof self&&self&&self.Object===Object&&self,Qo=(Wo||Xo||Function("return this")()).Symbol,Zo=Object.prototype,ti=Zo.hasOwnProperty,ei=Zo.toString,ri=Qo?Qo.toStringTag:void 0;var ni=Object.prototype.toString;var oi="[object Null]",ii="[object Undefined]",ai=Qo?Qo.toStringTag:void 0;function ui(t){return null==t?void 0===t?ii:oi:ai&&ai in Object(t)?function(t){var e=ti.call(t,ri),r=t[ri];try{t[ri]=void 0;var n=!0}catch(t){}var o=ei.call(t);return n&&(e?t[ri]=r:delete t[ri]),o}(t):function(t){return ni.call(t)}(t)}var ci=function(t,e){return function(r){return t(e(r))}}(Object.getPrototypeOf,Object);function si(t){return null!=t&&"object"==typeof t}var fi="[object Object]",li=Function.prototype,pi=Object.prototype,hi=li.toString,di=pi.hasOwnProperty,vi=hi.call(Object);var gi=Qo?Qo.prototype:void 0,yi=(gi&&gi.toString,"[object String]");function bi(t){return"string"==typeof t||!Go(t)&&si(t)&&ui(t)==yi}var mi=function(t,e){return!!t.filter((function(t){return t===e})).length},_i=function(t,e){var r=Object.keys(t);return mi(r,e)},wi=function(){for(var t=arguments,e=[],r=arguments.length;r--;)e[r]=t[r];return e.join("_")},ji=function(t){void 0===t&&(t=!1);var e=Date.now();return t?Math.floor(e/1e3):e},Oi="query",Si="mutation",Ei="socket",ki="payload",Ai="condition",xi=function(){try{if(window||document)return!0}catch(t){}return!1},Ti=function(){try{if(!xi()&&Yo)return!0}catch(t){}return!1};var Pi=function(t){function e(){for(var r=arguments,n=[],o=arguments.length;o--;)n[o]=r[o];t.apply(this,n),this.message=n[0],this.detail=n[1],this.className=e.name,Error.captureStackTrace&&Error.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0}};return r.name.get=function(){return"JsonqlValidationError"},Object.defineProperties(e,r),e}(function(t){function e(){for(var e=arguments,r=[],n=arguments.length;n--;)r[n]=e[n];t.apply(this,r)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.where=function(){return xi()?"browser":Ti()?"node":"unknown"},e}(Error));var qi=function(t){var e;return(e={}).args=t,e};var Ci=function(t){return _i(t,"data")&&!_i(t,"error")?t.data:t},$i=function(t){return function(t){if(!si(t)||ui(t)!=fi)return!1;var e=ci(t);if(null===e)return!0;var r=di.call(e,"constructor")&&e.constructor;return"function"==typeof r&&r instanceof r&&hi.call(r)==vi}(t)&&(_i(t,Oi)||_i(t,Si)||_i(t,Ei))},Ni=function(t,e){return void 0===e&&(e={}),$i(e)?Promise.resolve(e):t.getContract()},zi=function(t,e){return function(r){for(var n=[],o=arguments.length-1;o-- >0;)n[o]=arguments[o+1];return new Promise((function(o,i){t.$only(wi(e,r,m),o),t.$only(wi(e,r,_),i),t.$trigger(e,{resolverName:r,args:n})}))}},Fi=function(t,e,r){var n=t.$queues,o=r.debugOn;o&&console.info("(validateRegisteredEvents)","storedEvt",n),n.forEach((function(t){var r=t[0],n=t[1].resolverName;if(o&&console.info("(validateRegisteredEvents)",r,n),!e[r][n])throw new Error(r+"."+n+" not existed in contract!")}))};function Ri(t,e,r,n){var o=function(t,e,r,n){var o={query:{},mutation:{}},i=function(e){o.query[e]=function(){for(var r=[],o=arguments.length;o--;)r[o]=arguments[o];var i=n.query[e].params,a=i.map((function(t,e){return r[e]})),u=r[i.length]||{};return Lo(a,i).then((function(){return t.query.apply(t,[e,a,u])})).catch(ko)}};for(var a in n.query)i(a);var u=function(e){o.mutation[e]=function(r,o,i){void 0===i&&(i={});var a=[r,o],u=n.mutation[e].params;return Lo(a,u).then((function(){return t.mutation.apply(t,[e,r,o,i])})).catch(ko)}};for(var s in n.mutation)u(s);if(r.enableAuth&&n.auth){o.auth={};var f=r.loginHandlerName,l=r.logoutHandlerName;n.auth[f]&&(o.auth[f]=function(){for(var o=[],i=arguments.length;i--;)o[i]=arguments[i];var a=Vo(t,f,r,n);return a.apply(null,o).then(t.postLoginAction).then((function(t){return e.$trigger(v,t),t}))}),n.auth[l]?o.auth[l]=function(){for(var o=[],i=arguments.length;i--;)o[i]=arguments[i];var a=Vo(t,l,r,n);return a.apply(null,o).then(t.postLogoutAction).then((function(t){return e.$trigger(g,t),t}))}:o.auth[l]=function(){t.postLogoutAction(c),e.$trigger(g,c)}}return o}(t,e,r,n);Fi(e,n,r);var i=function(t){e.$only(t,(function(r){var n=r.resolverName,i=r.args;o[t][n]?Reflect.apply(o[t][n],null,i).then((function(r){e.$trigger(wi(t,n,m),r)})).catch((function(r){e.$trigger(wi(t,n,_),r)})):console.error(n+" is not defined in the contract!")}))};for(var a in o)i(a);setTimeout((function(){e.$suspend=!1}),1)}var Ii=function(t,e,r,n){n.$suspend=!0,r.then((function(r){Ri(t,n,e,r)}));var o={query:zi(n,"query"),mutation:zi(n,"mutation"),auth:zi(n,"auth"),getToken:function(){return t.rawAuthToken}};return e.exposeContract&&(o.getContract=function(){return t.get()}),e.enableAuth&&(o.userdata=function(){return t.userdata}),o.version="1.3.2",o},Ji=Object.assign?Object.assign:function(t,e,r,n){for(var o=arguments,i=1;i=0;e--){var r=ua().key(e);t(ca(r),r)}},remove:function(t){return ua().removeItem(t)},clearAll:function(){return ua().clear()}};function ua(){return ia.localStorage}function ca(t){return ua().getItem(t)}var sa=Hi.trim,fa={name:"cookieStorage",read:function(t){if(!t||!da(t))return null;var e="(?:^|.*;\\s*)"+escape(t).replace(/[\-\.\+\*]/g,"\\$&")+"\\s*\\=\\s*((?:[^;](?!;))*[^;]?).*";return unescape(la.cookie.replace(new RegExp(e),"$1"))},write:function(t,e){if(!t)return;la.cookie=escape(t)+"="+escape(e)+"; expires=Tue, 19 Jan 2038 03:14:07 GMT; path=/"},each:pa,remove:ha,clearAll:function(){pa((function(t,e){ha(e)}))}},la=Hi.Global.document;function pa(t){for(var e=la.cookie.split(/; ?/g),r=e.length-1;r>=0;r--)if(sa(e[r])){var n=e[r].split("="),o=unescape(n[0]);t(unescape(n[1]),o)}}function ha(t){t&&da(t)&&(la.cookie=escape(t)+"=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/")}function da(t){return new RegExp("(?:^|;\\s*)"+escape(t).replace(/[\-\.\+\*]/g,"\\$&")+"\\s*\\=").test(la.cookie)}var va=function(){var t={};return{defaults:function(e,r){t=r},get:function(e,r){var n=e();return void 0!==n?n:t[r]}}};var ga="expire_mixin",ya=function(){var t=this.createStore(this.storage,null,this._namespacePrefix+ga);return{set:function(e,r,n,o){this.hasNamespace(ga)||t.set(r,o);return e()},get:function(t,r){this.hasNamespace(ga)||e.call(this,r);return t()},remove:function(e,r){this.hasNamespace(ga)||t.remove(r);return e()},getExpiration:function(e,r){return t.get(r)},removeExpiredKeys:function(t){var r=[];this.each((function(t,e){r.push(e)}));for(var n=0;n>>8,r[2*n+1]=a%256}return r},decompressFromUint8Array:function(e){if(null==e)return i.decompress(e);for(var r=new Array(e.length/2),n=0,o=r.length;n>=1}else{for(o=1,n=0;n>=1}0==--l&&(l=Math.pow(2,h),h++),delete u[f]}else for(o=a[f],n=0;n>=1;0==--l&&(l=Math.pow(2,h),h++),a[s]=p++,f=String(c)}if(""!==f){if(Object.prototype.hasOwnProperty.call(u,f)){if(f.charCodeAt(0)<256){for(n=0;n>=1}else{for(o=1,n=0;n>=1}0==--l&&(l=Math.pow(2,h),h++),delete u[f]}else for(o=a[f],n=0;n>=1;0==--l&&(l=Math.pow(2,h),h++)}for(o=2,n=0;n>=1;for(;;){if(v<<=1,g==e-1){d.push(r(v));break}g++}return d.join("")},decompress:function(t){return null==t?"":""==t?null:i._decompress(t.length,32768,(function(e){return t.charCodeAt(e)}))},_decompress:function(e,r,n){var o,i,a,u,c,s,f,l=[],p=4,h=4,d=3,v="",g=[],y={val:n(0),position:r,index:1};for(o=0;o<3;o+=1)l[o]=o;for(a=0,c=Math.pow(2,2),s=1;s!=c;)u=y.val&y.position,y.position>>=1,0==y.position&&(y.position=r,y.val=n(y.index++)),a|=(u>0?1:0)*s,s<<=1;switch(a){case 0:for(a=0,c=Math.pow(2,8),s=1;s!=c;)u=y.val&y.position,y.position>>=1,0==y.position&&(y.position=r,y.val=n(y.index++)),a|=(u>0?1:0)*s,s<<=1;f=t(a);break;case 1:for(a=0,c=Math.pow(2,16),s=1;s!=c;)u=y.val&y.position,y.position>>=1,0==y.position&&(y.position=r,y.val=n(y.index++)),a|=(u>0?1:0)*s,s<<=1;f=t(a);break;case 2:return""}for(l[3]=f,i=f,g.push(f);;){if(y.index>e)return"";for(a=0,c=Math.pow(2,d),s=1;s!=c;)u=y.val&y.position,y.position>>=1,0==y.position&&(y.position=r,y.val=n(y.index++)),a|=(u>0?1:0)*s,s<<=1;switch(f=a){case 0:for(a=0,c=Math.pow(2,8),s=1;s!=c;)u=y.val&y.position,y.position>>=1,0==y.position&&(y.position=r,y.val=n(y.index++)),a|=(u>0?1:0)*s,s<<=1;l[h++]=t(a),f=h-1,p--;break;case 1:for(a=0,c=Math.pow(2,16),s=1;s!=c;)u=y.val&y.position,y.position>>=1,0==y.position&&(y.position=r,y.val=n(y.index++)),a|=(u>0?1:0)*s,s<<=1;l[h++]=t(a),f=h-1,p--;break;case 2:return g.join("")}if(0==p&&(p=Math.pow(2,d),d++),l[f])v=l[f];else{if(f!==h)return null;v=i+i.charAt(0)}g.push(v),l[h++]=i+v.charAt(0),i=v,0==--p&&(p=Math.pow(2,d),d++)}}};return i}();null!=t&&(t.exports=e)}));var Ea=[aa,fa],ka=[va,ya,ja,function(){return{get:function(t,e){var r=t(e);if(!r)return r;var n=Sa.decompress(r);return null==n?r:this._deserialize(n)},set:function(t,e,r){var n=Sa.compress(this._serialize(r));t(e,n)}}}],Aa=ra.createStore(Ea,ka),xa=Hi.Global;function Ta(){return xa.sessionStorage}function Pa(t){return Ta().getItem(t)}var qa=[{name:"sessionStorage",read:Pa,write:function(t,e){return Ta().setItem(t,e)},each:function(t){for(var e=Ta().length-1;e>=0;e--){var r=Ta().key(e);t(Pa(r),r)}},remove:function(t){return Ta().removeItem(t)},clearAll:function(){return Ta().clear()}},fa],Ca=[va,ya],$a=ra.createStore(qa,Ca),Na=Aa,za=$a,Fa="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";function Ra(t){this.message=t}Ra.prototype=new Error,Ra.prototype.name="InvalidCharacterError";var Ia="undefined"!=typeof window&&window.atob&&window.atob.bind(window)||function(t){var e=String(t).replace(/=+$/,"");if(e.length%4==1)throw new Ra("'atob' failed: The string to be decoded is not correctly encoded.");for(var r,n,o=0,i=0,a="";n=e.charAt(i++);~n&&(r=o%4?64*r+n:n,o++%4)?a+=String.fromCharCode(255&r>>(-2*o&6)):0)n=Fa.indexOf(n);return a};var Ja=function(t){var e=t.replace(/-/g,"+").replace(/_/g,"/");switch(e.length%4){case 0:break;case 2:e+="==";break;case 3:e+="=";break;default:throw"Illegal base64url string!"}try{return function(t){return decodeURIComponent(Ia(t).replace(/(.)/g,(function(t,e){var r=e.charCodeAt(0).toString(16).toUpperCase();return r.length<2&&(r="0"+r),"%"+r})))}(e)}catch(t){return Ia(e)}};function Ma(t){this.message=t}Ma.prototype=new Error,Ma.prototype.name="InvalidTokenError";var Ua=function(t,e){if("string"!=typeof t)throw new Ma("Invalid token specified");var r=!0===(e=e||{}).header?0:1;try{return JSON.parse(Ja(t.split(".")[r]))}catch(t){throw new Ma("Invalid token specified: "+t.message)}},Da=Ma;Ua.InvalidTokenError=Da;var Ha,La,Ba,Ka,Va,Ga,Ya,Wa,Xa,Qa=function(t){void 0===t&&(t=!1);var e=Date.now();return t?Math.floor(e/1e3):e};function Za(t){if(Do(t))return function(t){var e=t.iat||Qa(!0);if(t.exp&&e>=t.exp){var r=new Date(t.exp).toISOString();throw new _o("Token has expired on "+r,t)}return t}(Ua(t));throw new _o("Token must be a string!")}Bo("HS256",["string"]),Bo(!1,["boolean","number","string"],((Ha={})[d]="exp",Ha[f]=!0,Ha)),Bo(!1,["boolean","number","string"],((La={})[d]="nbf",La[f]=!0,La)),Bo(!1,["boolean","string"],((Ba={})[d]="iss",Ba[f]=!0,Ba)),Bo(!1,["boolean","string"],((Ka={})[d]="sub",Ka[f]=!0,Ka)),Bo(!1,["boolean","string"],((Va={})[d]="iss",Va[f]=!0,Va)),Bo(!1,["boolean"],((Ga={})[f]=!0,Ga)),Bo(!1,["boolean","string"],((Ya={})[f]=!0,Ya)),Bo(!1,["boolean","string"],((Wa={})[f]=!0,Wa)),Bo(!1,["boolean"],((Xa={})[f]=!0,Xa));var tu=u[0],eu=u[1],ru=function(t){!function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];try{window&&window.console&&Reflect.apply(console.log,null,t)}catch(t){}}(t),this.fly=t.Fly?new t.Fly:new Fly,this.opts=t,this.extraHeader={},this.extraParams={},this.reqInterceptor(),this.resInterceptor()},nu={headers:{configurable:!0}};nu.headers.set=function(t){this.extraHeader=t},ru.prototype.request=function(t,e,r){var n;void 0===e&&(e={}),void 0===r&&(r={}),this.headers=r;var o=zn({},{_cb:ji()},this.extraParams);if(this.opts.enableJsonp){var i=function(t){return Object.keys(t)[0]}(t);o=zn({},o,((n={}).jsonqlJsonpCallback=i,n)),t=t[i]}return this.fly.request(this.jsonqlEndpoint,t,zn({},{method:tu,params:o},e))},ru.prototype.reqInterceptor=function(){var t=this;this.fly.interceptors.request.use((function(e){var r=t.getHeaders();for(var n in t.log("request interceptor call",r),r)e.headers[n]=r[n];return e}))},ru.prototype.processJsonp=function(t){return Ci(t)},ru.prototype.resInterceptor=function(){var t=this,e=this,r=e.opts.enableJsonp;this.fly.interceptors.response.use((function(n){t.log("response interceptor call"),e.cleanUp();var o=Do(n.data)?JSON.parse(n.data):n.data;return r?e.processJsonp(o):Ci(o)}),(function(t){throw e.cleanUp(),console.error(t),new wo("Server side error",t)}))},ru.prototype.getHeaders=function(){return this.opts.enableAuth?zn({},a,this.getAuthHeader(),this.extraHeader):zn({},a,this.extraHeader)},ru.prototype.cleanUp=function(){this.extraHeader={},this.extraParams={}},ru.prototype.get=function(){var t=this;return this.opts.showContractDesc&&(this.extraParams=zn({},this.extraParams,y)),this.request({},{method:"GET"},this.contractHeader).then(Eo).then((function(e){return t.log("get contract result",e),e.cache&&e.contract?e.contract:e}))},ru.prototype.query=function(t,e){return void 0===e&&(e=[]),this.request(function(t,e,r){var n;if(void 0===e&&(e=[]),void 0===r&&(r=!1),bi(t)&&Go(e)){var o=qi(e);return!0===r?o:((n={})[t]=o,n)}throw new Pi("[createQuery] expect resolverName to be string and args to be array!",{resolverName:t,args:e})}(t,e)).then(Eo)},ru.prototype.mutation=function(t,e,r){return void 0===e&&(e={}),void 0===r&&(r={}),this.request(function(t,e,r,n){var o;void 0===r&&(r={}),void 0===n&&(n=!1);var i={};if(i[ki]=e,i[Ai]=r,!0===n)return i;if(bi(t))return(o={})[t]=i,o;throw new Pi("[createMutation] expect resolverName to be string!",{resolverName:t,payload:e,condition:r})}(t,e,r),{method:eu}).then(Eo)},Object.defineProperties(ru.prototype,nu);var ou=function(t){function e(e,r){void 0===r&&(r=null),r&&(e.Fly=r),t.call(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={storeIt:{configurable:!0},jsonqlEndpoint:{configurable:!0},jsonqlContract:{configurable:!0},jsonqlToken:{configurable:!0},jsonqlUserdata:{configurable:!0}};return r.storeIt.set=function(t){throw console.info("storeIt",t),Ho(t)&&t.length>=2&&Reflect.apply(Na.set,Na,t),new mo("Expect argument to be array and least 2 items!")},r.jsonqlEndpoint.set=function(t){var e=Na.get("endpoint")||[];mi(e,t)||(e.push(t),this.storeId=["endpoint",e],this.endpointIndex=e.length-1)},r.jsonqlContract.set=function(t){var e=this.opts.storageKey,r=[e],n=t[0],o=t[1],i=Na.get(e)||[];i[this.endpointIndex||0]=n,r.push(i),o&&r.push(o),this.opts.keepContract&&(this.storeIt=r)},r.jsonqlToken.set=function(t){var e="credential",r=localStorage.get(e)||[];if(!mi(r,t)){var n=r.length-1;r[n]=t,this[e+"Index"]=n;var o=[e,r];if(this.opts.tokenExpired){var i=parseFloat(this.opts.tokenExpired);if(!isNaN(i)&&i>0){var a=ji();o.push(a+parseFloat(i))}}return this.storeIt=o,this.jsonqlUserdata=this.decoder(t),t}return!1},r.jsonqlUserdata.set=function(t){var e=["userdata",t];return t.exp&&e.push(t.exp),Reflect.apply(Na.set,Na,e)},r.jsonqlEndpoint.get=function(){var t=Na.get("endpoint");if(!t){var e=this.opts,r=[e.hostname,e.jsonqlPath].join("/");return this.jsonqlEndpoint=r,r}return t[this.endpointIndex]},r.jsonqlContract.get=function(){var t=this.opts.storageKey;return(Na.get(t)||[])[this.endpointIndex]||!1},r.jsonqlToken.get=function(){var t="credential",e=localStorage.get(t);return!!e&&e[this[t+"Index"]]},r.jsonqlUserdata.get=function(){return za.get("userdata")},e.prototype.log=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];!0===this.opts.debugOn&&Reflect.apply(console.info,console,t)},Object.defineProperties(e.prototype,r),e}(function(t){function e(e){t.call(this,e),e.enableAuth&&e.useJwt&&(this.setDecoder=Za)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={userdata:{configurable:!0},rawAuthToken:{configurable:!0},setDecoder:{configurable:!0}};return r.userdata.get=function(){return this.jsonqlUserdata},r.rawAuthToken.get=function(){return this.jsonqlToken},r.setDecoder.set=function(t){"function"==typeof t&&(this.decoder=t)},e.prototype.storeToken=function(t){return this.jsonqlToken=t},e.prototype.decoder=function(t){return t},e.prototype.getAuthHeader=function(){var t,e=this.rawAuthToken;return e?((t={})[this.opts.AUTH_HEADER]="Bearer "+e,t):{}},Object.defineProperties(e.prototype,r),e}(function(t){function e(e){t.call(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={contractHeader:{configurable:!0}};return e.prototype.getContract=function(){var t=this.readContract();if(this.log("getContract first call",t),t&&Array.isArray(t)){var e=t[this.endpointIndex||0];if(e)return Promise.resolve(e)}return this.get().then(this.storeContract.bind(this))},r.contractHeader.get=function(){var t={};return!1!==this.opts.contractKey&&(t[this.opts.contractKeyName]=this.opts.contractKey),t},e.prototype.storeContract=function(t){if(!$i(t))throw new mo("Contract is malformed!");var e=[t];if(this.opts.contractExpired){var r=parseFloat(this.opts.contractExpired);!isNaN(r)&&r>0&&e.push(r)}return this.jsonqlContract=e,this.log("storeContract return result",t),t},e.prototype.readContract=function(){return $i(this.opts.contract)?this.opts.contract:Na.get(this.opts.storageKey)},Object.defineProperties(e.prototype,r),e}(ru))),iu={contract:!1,MUTATION_ARGS:["name","payload","conditions"],CONTENT_TYPE:i,BEARER:"Bearer",AUTH_HEADER:"Authorization"},au={hostname:Bo([window.location.protocol,window.location.host].join("//"),["string"]),jsonqlPath:Bo("jsonql",["string"]),loginHandlerName:Bo(v,["string"]),logoutHandlerName:Bo(g,["string"]),enableJsonp:Bo(!1,["boolean"]),enableAuth:Bo(!1,["boolean"]),useJwt:Bo(!0,["boolean"]),useLocalstorage:Bo(!0,["boolean"]),storageKey:Bo("storageKey",["string"]),authKey:Bo("authKey",["string"]),contractExpired:Bo(0,["number"]),keepContract:Bo(!0,["boolean"]),exposeContract:Bo(!1,["boolean"]),showContractDesc:Bo(!1,["boolean"]),contractKey:Bo(!1,["boolean"]),contractKeyName:Bo("X-JSONQL-CV-KEY",["string"]),enableTimeout:Bo(!1,["boolean"]),timeout:Bo(5e3,["number"]),returnInstance:Bo(!1,["boolean"]),allowReturnRawToken:Bo(!1,["boolean"]),debugOn:Bo(!1,["boolean"])};var uu=new WeakMap,cu=new WeakMap;var su=function(){this.__suspend__=null,this.queueStore=new Set},fu={$suspend:{configurable:!0},$queues:{configurable:!0}};fu.$suspend.set=function(t){var e=this;if("boolean"!=typeof t)throw new Error("$suspend only accept Boolean value!");var r=this.__suspend__;this.__suspend__=t,this.logger("($suspend)","Change from "+r+" --\x3e "+t),!0===r&&!1===t&&setTimeout((function(){e.release()}),1)},su.prototype.$queue=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];return!0===this.__suspend__&&(this.logger("($queue)","added to $queue",t),this.queueStore.add(t)),this.__suspend__},fu.$queues.get=function(){var t=this.queueStore.size;return this.logger("($queues)","size: "+t),t>0?Array.from(this.queueStore):[]},su.prototype.release=function(){var t=this,e=this.queueStore.size;if(this.logger("(release)","Release was called "+e),e>0){var r=Array.from(this.queueStore);this.queueStore.clear(),this.logger("queue",r),r.forEach((function(e){t.logger(e),Reflect.apply(t.$trigger,t,e)})),this.logger("Release size "+this.queueStore.size)}},Object.defineProperties(su.prototype,fu);var lu=function(t){function e(e){void 0===e&&(e={}),t.call(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={$done:{configurable:!0}};return e.prototype.logger=function(){},e.prototype.$on=function(t,e,r){var n=this;void 0===r&&(r=null);this.validate(t,e);var o=this.takeFromStore(t);if(!1===o)return this.logger("($on)",t+" callback is not in lazy store"),this.addToNormalStore(t,"on",e,r);this.logger("($on)",t+" found in lazy store");var i=0;return o.forEach((function(o){var a=o[0],u=o[1],c=o[2];if(c&&"on"!==c)throw new Error("You are trying to register an event already been taken by other type: "+c);n.run(e,a,r||u),i+=n.addToNormalStore(t,"on",e,r||u)})),i},e.prototype.$once=function(t,e,r){void 0===r&&(r=null),this.validate(t,e);var n=this.takeFromStore(t);this.normalStore;if(!1===n)return this.logger("($once)",t+" not in the lazy store"),this.addToNormalStore(t,"once",e,r);this.logger("($once)",n);var o=Array.from(n)[0],i=o[0],a=o[1],u=o[2];if(u&&"once"!==u)throw new Error("You are trying to register an event already been taken by other type: "+u);this.run(e,i,r||a),this.$off(t)},e.prototype.$only=function(t,e,r){var n=this;void 0===r&&(r=null),this.validate(t,e);var o=!1,i=this.takeFromStore(t);(this.normalStore.has(t)||(this.logger("($only)",t+" add to store"),o=this.addToNormalStore(t,"only",e,r)),!1!==i)&&(this.logger("($only)",t+" found data in lazy store to execute"),Array.from(i).forEach((function(t){var o=t[0],i=t[1],a=t[2];if(a&&"only"!==a)throw new Error("You are trying to register an event already been taken by other type: "+a);n.run(e,o,r||i)})));return o},e.prototype.$onlyOnce=function(t,e,r){void 0===r&&(r=null),this.validate(t,e);var n=!1,o=this.takeFromStore(t);if(this.normalStore.has(t)||(this.logger("($onlyOnce)",t+" add to store"),n=this.addToNormalStore(t,"onlyOnce",e,r)),!1!==o){this.logger("($onlyOnce)",o);var i=Array.from(o)[0],a=i[0],u=i[1],c=i[2];if(c&&"onlyOnce"!==c)throw new Error("You are trying to register an event already been taken by other type: "+c);this.run(e,a,r||u),this.$off(t)}return n},e.prototype.$replace=function(t,e,r,n){if(void 0===r&&(r=null),void 0===n&&(n="on"),this.validateType(n)){this.$off(t);var o=this["$"+n];return Reflect.apply(o,this,[t,e,r])}throw new Error(n+" is not supported!")},e.prototype.$trigger=function(t,e,r,n){void 0===e&&(e=[]),void 0===r&&(r=null),void 0===n&&(n=!1),this.validateEvt(t);var o=0,i=this.normalStore;if(this.logger("($trigger)","normalStore",i),i.has(t)){var a=this.$queue(t,e,r,n);if(this.logger("($trigger)",t,"found; add to queue: ",a),!0===a)return!1;for(var u=Array.from(i.get(t)),c=u.length,s=!1,f=0;f0;)n[o]=arguments[o+2];if(t.has(e)?(this.logger("(addToStore)",e+" existed"),r=t.get(e)):(this.logger("(addToStore)","create new Set for "+e),r=new Set),n.length>2)if(Array.isArray(n[0])){var i=n[2];this.checkTypeInLazyStore(e,i)||r.add(n)}else this.checkContentExist(n,r)||(this.logger("(addToStore)","insert new",n),r.add(n));else r.add(n);return t.set(e,r),[t,r.size]},e.prototype.checkContentExist=function(t,e){return!!Array.from(e).filter((function(e){return e[0]===t[0]})).length},e.prototype.checkTypeInStore=function(t,e){this.validateEvt(t,e);var r=this.$get(t,!0);return!1===r||!r.filter((function(t){var r=t[3];return e!==r})).length},e.prototype.checkTypeInLazyStore=function(t,e){this.validateEvt(t,e);var r=this.lazyStore.get(t);return this.logger("(checkTypeInLazyStore)",r),!!r&&!!Array.from(r).filter((function(t){return t[2]!==e})).length},e.prototype.addToNormalStore=function(t,e,r,n){if(void 0===n&&(n=null),this.logger("(addToNormalStore)",t,e,"try to add to normal store"),this.checkTypeInStore(t,e)){this.logger("(addToNormalStore)",e+" can add to "+t+" normal store");var o=this.hashFnToKey(r),i=[this.normalStore,t,o,r,n,e],a=Reflect.apply(this.addToStore,this,i),u=a[0],c=a[1];return this.normalStore=u,c}return!1},e.prototype.addToLazyStore=function(t,e,r,n){void 0===e&&(e=[]),void 0===r&&(r=null),void 0===n&&(n=!1);var o=[this.lazyStore,t,this.toArray(e),r];n&&o.push(n);var i=Reflect.apply(this.addToStore,this,o),a=i[0],u=i[1];return this.lazyStore=a,u},e.prototype.toArray=function(t){return Array.isArray(t)?t:[t]},r.normalStore.set=function(t){uu.set(this,t)},r.normalStore.get=function(){return uu.get(this)},r.lazyStore.set=function(t){cu.set(this,t)},r.lazyStore.get=function(){return cu.get(this)},e.prototype.hashFnToKey=function(t){return t.toString().split("").reduce((function(t,e){return(t=(t<<5)-t+e.charCodeAt(0))&t}),0)+""},Object.defineProperties(e.prototype,r),e}(su));function pu(t,e){void 0===e&&(e={});var r,n=e.contract,o=function(t){return Ko(t,au,iu)}(e),i=new ou(o,t),a=Ni(i,n),u=(r=o.debugOn,new lu({logger:r?function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];t.unshift("[NBS]"),console.log.apply(null,t)}:void 0})),c=Ii(i,o,a,u);return c.eventEmitter=u,c}return function(t){return void 0===t&&(t={}),pu(o,t)}})); +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).jsonqlClientStatic=e()}(this,(function(){"use strict";var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function e(t,e){return t(e={exports:{}},e.exports),e.exports}var r,n=e((function(t,e){var r;r=function(){return function(t){var e={};function r(n){if(e[n])return e[n].exports;var o=e[n]={i:n,l:!1,exports:{}};return t[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=t,r.c=e,r.i=function(t){return t},r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:n})},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=2)}([function(t,e,r){var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};t.exports={type:function(t){return Object.prototype.toString.call(t).slice(8,-1).toLowerCase()},isObject:function(t,e){return e?"object"===this.type(t):t&&"object"===(void 0===t?"undefined":n(t))},isFormData:function(t){return"undefined"!=typeof FormData&&t instanceof FormData},trim:function(t){return t.replace(/(^\s*)|(\s*$)/g,"")},encode:function(t){return encodeURIComponent(t).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")},formatParams:function(t){var e="",r=!0,n=this;return this.isObject(t)?(function t(o,i){var a=n.encode,u=n.type(o);if("array"==u)o.forEach((function(e,r){n.isObject(e)||(r=""),t(e,i+"%5B"+r+"%5D")}));else if("object"==u)for(var c in o)t(o[c],i?i+"%5B"+a(c)+"%5D":a(c));else r||(e+="&"),r=!1,e+=i+"="+a(o)}(t,""),e):t},merge:function(t,e){for(var r in e)t.hasOwnProperty(r)?this.isObject(e[r],1)&&this.isObject(t[r],1)&&this.merge(t[r],e[r]):t[r]=e[r];return t}}},,function(t,e,r){var n=function(){function t(t,e){for(var r=0;r0&&(t+=(-1===t.indexOf("?")?"?":"&")+w.join("&")),a.open(r.method,t);try{a.withCredentials=!!r.withCredentials,a.timeout=r.timeout||0,"stream"!==y&&(a.responseType=y)}catch(t){}var j=r.headers[u]||r.headers[c],O="application/x-www-form-urlencoded";for(var S in o.trim((j||"").toLowerCase())===O?e=o.formatParams(e):o.isFormData(e)||-1===["object","array"].indexOf(o.type(e))||(O="application/json;charset=utf-8",e=JSON.stringify(e)),j||b||(r.headers[u]=O),r.headers)if(S===u&&o.isFormData(e))delete r.headers[S];else try{a.setRequestHeader(S,r.headers[S])}catch(t){}function E(t,e,n){v(l.p,(function(){if(t){n&&(e.request=r);var o=t.call(l,e,Promise);e=void 0===o?e:o}d(e)||(e=Promise[0===n?"resolve":"reject"](e)),e.then((function(t){s(t)})).catch((function(t){h(t)}))}))}function k(t){t.engine=a,E(l.onerror,t,-1)}function A(t,e){this.message=t,this.status=e}a.onload=function(){try{var t=a.response||a.responseText;t&&r.parseJson&&-1!==(a.getResponseHeader(u)||"").indexOf("json")&&!o.isObject(t)&&(t=JSON.parse(t));var e=a.responseHeaders;if(!e){e={};var n=(a.getAllResponseHeaders()||"").split("\r\n");n.pop(),n.forEach((function(t){if(t){var r=t.split(":")[0];e[r]=a.getResponseHeader(r)}}))}var i=a.status,c=a.statusText,s={data:t,headers:e,status:i,statusText:c};if(o.merge(s,a._response),i>=200&&i<300||304===i)s.engine=a,s.request=r,E(l.handler,s,0);else{var f=new A(c,i);f.response=s,k(f)}}catch(f){k(new A(f.msg,a.status))}},a.onerror=function(t){k(new A(t.msg||"Network Error",0))},a.ontimeout=function(){k(new A("timeout [ "+a.timeout+"ms ]",1))},a._options=r,setTimeout((function(){a.send(b?null:e)}),0)}(n):s(n)}),(function(t){h(t)}))}))}));return h.engine=a,h}},{key:"all",value:function(t){return Promise.all(t)}},{key:"spread",value:function(t){return function(e){return t.apply(null,e)}}}]),t}();a.default=a,["get","post","put","patch","head","delete"].forEach((function(t){a.prototype[t]=function(e,r,n){return this.request(e,r,o.merge({method:t},n))}})),["lock","unlock","clear"].forEach((function(t){a.prototype[t]=function(){this.interceptors.request[t]()}})),t.exports=a}])},t.exports=r()})),o=(r=n)&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r,i="application/vnd.api+json",a={Accept:i,"Content-Type":[i,"charset=utf-8"].join(";")},u=["POST","PUT"],c="type",s="optional",f="enumv",l="args",p="checker",h="alias",d={desc:"y"},v="No message",g="onResult",y="onError",b=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={statusCode:{configurable:!0},name:{configurable:!0}};return r.statusCode.get=function(){return 406},r.name.get=function(){return"Jsonql406Error"},Object.defineProperties(e,r),e}(Error),m=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={statusCode:{configurable:!0},name:{configurable:!0}};return r.statusCode.get=function(){return 500},r.name.get=function(){return"Jsonql500Error"},Object.defineProperties(e,r),e}(Error),_=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={statusCode:{configurable:!0},name:{configurable:!0}};return r.statusCode.get=function(){return 401},r.name.get=function(){return"JsonqlAuthorisationError"},Object.defineProperties(e,r),e}(Error),w=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={statusCode:{configurable:!0},name:{configurable:!0}};return r.statusCode.get=function(){return 401},r.name.get=function(){return"JsonqlContractAuthError"},Object.defineProperties(e,r),e}(Error),j=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={statusCode:{configurable:!0},name:{configurable:!0}};return r.statusCode.get=function(){return 500},r.name.get=function(){return"JsonqlResolverAppError"},Object.defineProperties(e,r),e}(Error),O="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},S=function(){try{if(window||document)return!0}catch(t){}return!1},E=function(){try{if(!S()&&O)return!0}catch(t){}return!1};var k=function(t){function e(){for(var e=[],r=arguments.length;r--;)e[r]=arguments[r];t.apply(this,e)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.where=function(){return S()?"browser":E()?"node":"unknown"},e}(Error),A=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,Error.captureStackTrace&&Error.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={statusCode:{configurable:!0},name:{configurable:!0}};return r.statusCode.get=function(){return 404},r.name.get=function(){return"JsonqlResolverNotFoundError"},Object.defineProperties(e,r),e}(k),x=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0}};return r.name.get=function(){return"JsonqlEnumError"},Object.defineProperties(e,r),e}(Error),T=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0}};return r.name.get=function(){return"JsonqlTypeError"},Object.defineProperties(e,r),e}(Error),P=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0}};return r.name.get=function(){return"JsonqlCheckerError"},Object.defineProperties(e,r),e}(Error),q=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,Error.captureStackTrace&&Error.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0}};return r.name.get=function(){return"JsonqlValidationError"},Object.defineProperties(e,r),e}(k),C=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,Error.captureStackTrace&&Error.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0},statusCode:{configurable:!0}};return r.name.get=function(){return"JsonqlError"},r.statusCode.get=function(){return-1},Object.defineProperties(e,r),e}(k),$=function(t){function e(r,n){t.call(this,n),this.statusCode=r,this.className=e.name}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0}};return r.name.get=function(){return"JsonqlServerError"},Object.defineProperties(e,r),e}(Error),N=Object.freeze({__proto__:null,Jsonql406Error:b,Jsonql500Error:m,JsonqlAuthorisationError:_,JsonqlContractAuthError:w,JsonqlResolverAppError:j,JsonqlResolverNotFoundError:A,JsonqlEnumError:x,JsonqlTypeError:T,JsonqlCheckerError:P,JsonqlValidationError:q,JsonqlError:C,JsonqlServerError:$}),z=C,F=function(t,e){return!!Object.keys(t).filter((function(t){return e===t})).length};function R(t){if(F(t,"error")){var e=t.error,r=e.className,n=e.name,o=r||n,i=e.message||v,a=e.detail||e;if(o&&N[o])throw new N[r](i,a);throw new z(i,a)}return t}function I(t){if(Array.isArray(t))throw new q("",t);var e=t.message||v,r=t.detail||t;switch(!0){case t instanceof b:throw new b(e,r);case t instanceof m:throw new m(e,r);case t instanceof _:throw new _(e,r);case t instanceof w:throw new w(e,r);case t instanceof j:throw new j(e,r);case t instanceof A:throw new A(e,r);case t instanceof x:throw new x(e,r);case t instanceof T:throw new T(e,r);case t instanceof P:throw new P(e,r);case t instanceof q:throw new q(e,r);case t instanceof $:throw new $(e,r);default:throw new C(e,r)}}var J="object"==typeof O&&O&&O.Object===Object&&O,M="object"==typeof self&&self&&self.Object===Object&&self,U=J||M||Function("return this")(),D=U.Symbol;function H(t,e){for(var r=-1,n=null==t?0:t.length,o=Array(n);++r=n?t:function(t,e,r){var n=-1,o=t.length;e<0&&(e=-e>o?0:o+e),(r=r>o?o:r)<0&&(r+=o),o=e>r?0:r-e>>>0,e>>>=0;for(var i=Array(o);++n-1;);return r}(n,o),function(t,e){for(var r=t.length;r--&&st(e,t[r],0)>-1;);return r}(n,o)+1).join("")}function Et(t){return void 0===t}var kt="[object Boolean]";var At="[object Number]";function xt(t){return function(t){return"number"==typeof t||tt(t)&&Z(t)==At}(t)&&t!=+t}var Tt="[object String]";function Pt(t){return"string"==typeof t||!L(t)&&tt(t)&&Z(t)==Tt}function qt(t,e){return function(r){return t(e(r))}}var Ct=qt(Object.getPrototypeOf,Object),$t="[object Object]",Nt=Function.prototype,zt=Object.prototype,Ft=Nt.toString,Rt=zt.hasOwnProperty,It=Ft.call(Object);function Jt(t){if(!tt(t)||Z(t)!=$t)return!1;var e=Ct(t);if(null===e)return!0;var r=Rt.call(e,"constructor")&&e.constructor;return"function"==typeof r&&r instanceof r&&Ft.call(r)==It}var Mt,Ut=function(t,e,r){for(var n=-1,o=Object(t),i=r(t),a=i.length;a--;){var u=i[Mt?a:++n];if(!1===e(o[u],u,o))break}return t};var Dt="[object Arguments]";function Ht(t){return tt(t)&&Z(t)==Dt}var Lt=Object.prototype,Bt=Lt.hasOwnProperty,Kt=Lt.propertyIsEnumerable,Vt=Ht(function(){return arguments}())?Ht:function(t){return tt(t)&&Bt.call(t,"callee")&&!Kt.call(t,"callee")};var Gt="object"==typeof exports&&exports&&!exports.nodeType&&exports,Yt=Gt&&"object"==typeof module&&module&&!module.nodeType&&module,Wt=Yt&&Yt.exports===Gt?U.Buffer:void 0,Xt=(Wt?Wt.isBuffer:void 0)||function(){return!1},Qt=9007199254740991,Zt=/^(?:0|[1-9]\d*)$/;function te(t,e){var r=typeof t;return!!(e=null==e?Qt:e)&&("number"==r||"symbol"!=r&&Zt.test(t))&&t>-1&&t%1==0&&t-1&&t%1==0&&t<=ee}var ne={};ne["[object Float32Array]"]=ne["[object Float64Array]"]=ne["[object Int8Array]"]=ne["[object Int16Array]"]=ne["[object Int32Array]"]=ne["[object Uint8Array]"]=ne["[object Uint8ClampedArray]"]=ne["[object Uint16Array]"]=ne["[object Uint32Array]"]=!0,ne["[object Arguments]"]=ne["[object Array]"]=ne["[object ArrayBuffer]"]=ne["[object Boolean]"]=ne["[object DataView]"]=ne["[object Date]"]=ne["[object Error]"]=ne["[object Function]"]=ne["[object Map]"]=ne["[object Number]"]=ne["[object Object]"]=ne["[object RegExp]"]=ne["[object Set]"]=ne["[object String]"]=ne["[object WeakMap]"]=!1;var oe,ie="object"==typeof exports&&exports&&!exports.nodeType&&exports,ae=ie&&"object"==typeof module&&module&&!module.nodeType&&module,ue=ae&&ae.exports===ie&&J.process,ce=function(){try{var t=ae&&ae.require&&ae.require("util").types;return t||ue&&ue.binding&&ue.binding("util")}catch(t){}}(),se=ce&&ce.isTypedArray,fe=se?(oe=se,function(t){return oe(t)}):function(t){return tt(t)&&re(t.length)&&!!ne[Z(t)]},le=Object.prototype.hasOwnProperty;function pe(t,e){var r=L(t),n=!r&&Vt(t),o=!r&&!n&&Xt(t),i=!r&&!n&&!o&&fe(t),a=r||n||o||i,u=a?function(t,e){for(var r=-1,n=Array(t);++r-1},Te.prototype.set=function(t,e){var r=this.__data__,n=Ae(r,t);return n<0?(++this.size,r.push([t,e])):r[n][1]=e,this};var Pe,qe=U["__core-js_shared__"],Ce=(Pe=/[^.]+$/.exec(qe&&qe.keys&&qe.keys.IE_PROTO||""))?"Symbol(src)_1."+Pe:"";var $e=Function.prototype.toString;function Ne(t){if(null!=t){try{return $e.call(t)}catch(t){}try{return t+""}catch(t){}}return""}var ze=/^\[object .+?Constructor\]$/,Fe=Function.prototype,Re=Object.prototype,Ie=Fe.toString,Je=Re.hasOwnProperty,Me=RegExp("^"+Ie.call(Je).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Ue(t){return!(!ye(t)||function(t){return!!Ce&&Ce in t}(t))&&(je(t)?Me:ze).test(Ne(t))}function De(t,e){var r=function(t,e){return null==t?void 0:t[e]}(t,e);return Ue(r)?r:void 0}var He=De(U,"Map"),Le=De(Object,"create");var Be="__lodash_hash_undefined__",Ke=Object.prototype.hasOwnProperty;var Ve=Object.prototype.hasOwnProperty;var Ge="__lodash_hash_undefined__";function Ye(t){var e=-1,r=null==t?0:t.length;for(this.clear();++eu))return!1;var s=i.get(t);if(s&&i.get(e))return s==e;var f=-1,l=!0,p=r&or?new er:void 0;for(i.set(t,e),i.set(e,t);++f0){if(++e>=Kn)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}(Bn);function Wn(t,e){return Yn(function(t,e,r){return e=Ln(void 0===e?t.length-1:e,0),function(){for(var n=arguments,o=-1,i=Ln(n.length-e,0),a=Array(i);++o1?e[n-1]:void 0,i=n>2?e[2]:void 0;for(o=Xn.length>3&&"function"==typeof o?(n--,o):void 0,i&&function(t,e,r){if(!ye(r))return!1;var n=typeof e;return!!("number"==n?Oe(r)&&te(e,r.length):"string"==n&&e in r)&&ke(r[e],t)}(e[0],e[1],i)&&(o=n<3?void 0:o,n=1),t=Object(t);++r0))},_o=function(t){if(t.indexOf("array.<")>-1&&t.indexOf(">")>-1){var e=t.replace("array.<","").replace(">","");return e.indexOf("|")?e.split("|"):[e]}return!1},wo=function(t,e){var r=t.arg;return e.length>1?!r.filter((function(t){return!(e.length>e.filter((function(e){return!bo(e)(t)})).length)})).length:e.length>e.filter((function(t){return!mo(r,t)})).length},jo=function(t,e){if(void 0===e&&(e=null),Jt(t)){if(!e)return!0;if(mo(e))return!e.filter((function(e){var r=t[e.name];return!(e.type.length>e.type.filter((function(t){var e;return!!Et(r)||(!1!==(e=_o(t))?!wo({arg:r},e):!bo(t)(r))})).length)})).length}return!1},Oo=function(t){var e=t.arg,r=t.param,n=[e];return Array.isArray(r.keys)&&r.keys.length&&n.push(r.keys),jo.apply(null,n)};function So(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];try{window&&window.console&&Reflect.apply(console.log,console,t)}catch(t){}}var Eo=function(t,e){var r;switch(!0){case"object"===t:return!Oo(e);case"array"===t:return!mo(e.arg);case!1!==(r=_o(t)):return!wo(e,r);default:return!bo(t)(e.arg)}},ko=function(t,e){return Et(t)?!0!==e.optional||Et(e.defaultvalue)?null:e.defaultvalue:t},Ao=function(t,e,r){var n;void 0===r&&(r=!1);var o=function(t,e){if(!mo(e))throw new C("params is not an array! Did something gone wrong when you generate the contract.json?");if(0===e.length)return[];if(!mo(t))throw new C("args is not an array! You might want to do: ES6 Array.from(arguments) or ES5 Array.prototype.slice.call(arguments)");switch(!0){case t.length==e.length:return So(1),t.map((function(t,r){return{arg:t,index:r,param:e[r]}}));case!0===e[0].variable:So(2);var r=e[0].type;return t.map((function(t,n){return{arg:t,index:n,param:e[n]||{type:r,name:"_"}}}));case t.lengthe.length:So(4);var n=e.length,o=["any"];return t.map((function(t,r){var i=r>=n||!!e[r].optional,a=e[r]||{type:o,name:"_"+r};return{arg:i?ko(t,a):t,index:r,param:a,optional:i}}));default:throw So(5),new C("Could not understand your arguments and parameter structure!",{args:t,params:e})}}(t,e),i=o.filter((function(t){return!0===t.optional||!0===t.param.optional?function(t){var e=t.arg,r=t.param;return!!io(e)&&!(r.type.length>r.type.filter((function(e){return Eo(e,t)})).length)}(t):!(t.param.type.length>t.param.type.filter((function(e){return Eo(e,t)})).length)}));return r?((n={}).error=i,n.data=o.map((function(t){return t.arg})),n):i},xo=function(t,e){var r,n=Object.keys(t);return r=e,!!n.filter((function(t){return t===r})).length},To=function(t){return!io(t)};function Po(t,e){var r=oo(e,(function(t,e){return!t[go]}));return Wr(r,{})?t:function(t,e){var r={};return e=On(e),Ee(t,(function(t,n,o){En(r,e(t,n,o),t)})),r}(t,(function(t,e){return function(t,e,r){var n;return r(t,(function(t,r,o){if(e(t,r,o))return n=r,!1})),n}(r,On((function(t){return t.alias===e})),Ee)||e}))}function qo(t,e){return Zn(e,(function(e,r){var n,o;return Et(t[r])||!0===e[lo]&&To(t[r])?Qn({},e,((n={})[yo]=!0,n)):((o={})[ho]=t[r],o[fo]=e[fo],o[lo]=e[lo]||!1,o[po]=e[po]||!1,o[vo]=e[vo]||!1,o)}))}function Co(t,e){var r=function(t,e){var r=Po(t,e);return{pristineValues:Zn(oo(e,(function(t,e){return xo(r,e)})),(function(t){return t.args})),checkAgainstAppProps:oo(e,(function(t,e){return!xo(r,e)})),config:r}}(t,e),n=r.config,o=r.pristineValues;return[qo(n,r.checkAgainstAppProps),o]}var $o=function(t){return mo(t)?t:[t]};var No=function(t,e){return!mo(e)||function(t,e){return!!t.filter((function(t){return t===e})).length}(e,t)},zo=function(t,e){try{return!!je(e)&&e.apply(null,[t])}catch(t){return!1}};function Fo(t){return function(e,r){if(e[yo])return e[ho];var n=function(t,e){var r,n=[[t[ho]],[(r={},r[fo]=$o(t[fo]),r[lo]=t[lo],r)]];return Reflect.apply(e,null,n)}(e,t);if(n.length)throw So("runValidationAction",r,e),new T(r,n);if(!1!==e[po]&&!No(e[ho],e[po]))throw So(po,e[po]),new x(r);if(!1!==e[vo]&&!zo(e[ho],e[vo]))throw So(vo,e[vo]),new P(r);return e[ho]}}function Ro(t,e,r,n){return void 0===t&&(t={}),Qn(function(t,e){var r=t[0],n=t[1],o=Zn(r,Fo(e));return Qn(o,n)}(Co(t,e),n),r)}function Io(t,e,r,n,o,i){void 0===r&&(r=!1),void 0===n&&(n=!1),void 0===o&&(o=!1),void 0===i&&(i=!1);var a={};return a[l]=t,a[c]=e,!0===r&&(a[s]=!0),mo(n)&&(a[f]=n),je(o)&&(a[p]=o),Pt(i)&&(a[h]=i),a}var Jo=uo,Mo=mo,Uo=function(t,e,r){return void 0===r&&(r=!1),new Promise((function(n,o){var i=Ao(t,e,r);return r?i.error.length?o(i.error):n(i.data):i.length?o(i):n([])}))},Do=function(t,e,r){void 0===r&&(r={});var n=r[s],o=r[f],i=r[p],a=r[h];return Io.apply(null,[t,e,n,o,i,a])},Ho=function(t){return function(e,r,n){return void 0===n&&(n={}),Ro(e,r,n,t)}}(Ao),Lo=function(t){return L(t)?t:[t]},Bo=function(t){for(var e=[],r=arguments.length-1;r-- >0;)e[r]=arguments[r+1];return function(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];return e.reduce((function(t,e){return Reflect.apply(e,null,Lo(t))}),Reflect.apply(t,null,r))}};function Ko(t,e,r,n){void 0===n&&(n=!1);var o=Object.getOwnPropertyDescriptor(t,e);return!1===n&&void 0!==o?t:(Object.defineProperty(t,e,{value:r,writable:n}),t)}var Vo=function(t,e,r,n){return function(){for(var r=[],o=arguments.length;o--;)r[o]=arguments[o];var i=n.auth[e].params,a=i.map((function(t,e){return r[e]})),u=r[i.length]||{};return Uo(r,i).then((function(){return t.query.apply(t,[e,a,u])})).catch(I)}},Go=function(t,e,r,n,o){var i={},a=function(t){i=Ko(i,t,(function(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];var i=o.query[t].params,a=i.map((function(t,e){return r[e]})),u=r[i.length]||{};return Uo(a,i).then((function(){return e.query.apply(e,[t,a,u])})).catch(I)}))};for(var u in o.query)a(u);return t.query=i,[t,e,r,n,o]},Yo=function(t,e,r,n,o){var i={},a=function(t){i=Ko(i,t,(function(r,n,i){void 0===i&&(i={});var a=[r,n],u=o.mutation[t].params;return Uo(a,u).then((function(){return e.mutation.apply(e,[t,r,n,i])})).catch(I)}))};for(var u in o.mutation)a(u);return t.mutation=i,[t,e,r,n,o]},Wo=function(t,e,r,n,o){if(n.enableAuth&&o.auth){var i={},a=n.loginHandlerName,u=n.logoutHandlerName;o.auth[a]&&(i[a]=function(){for(var t=[],n=arguments.length;n--;)t[n]=arguments[n];var i=Vo(e,a,0,o);return i.apply(null,t).then(e.postLoginAction).then((function(t){return r.$trigger("login",t),t}))}),o.auth[u]?i[u]=function(){for(var t=[],n=arguments.length;n--;)t[n]=arguments[n];var i=Vo(e,u,0,o);return i.apply(null,t).then(e.postLogoutAction).then((function(t){return r.$trigger("logout",t),t}))}:i[u]=function(){e.postLogoutAction("continue"),r.$trigger("logout","continue")},t.auth=i}return t};var Xo=Array.isArray,Qo=void 0!==O?O:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},Zo="object"==typeof Qo&&Qo&&Qo.Object===Object&&Qo,ti="object"==typeof self&&self&&self.Object===Object&&self,ei=(Zo||ti||Function("return this")()).Symbol,ri=Object.prototype,ni=ri.hasOwnProperty,oi=ri.toString,ii=ei?ei.toStringTag:void 0;var ai=Object.prototype.toString;var ui="[object Null]",ci="[object Undefined]",si=ei?ei.toStringTag:void 0;function fi(t){return null==t?void 0===t?ci:ui:si&&si in Object(t)?function(t){var e=ni.call(t,ii),r=t[ii];try{t[ii]=void 0;var n=!0}catch(t){}var o=oi.call(t);return n&&(e?t[ii]=r:delete t[ii]),o}(t):function(t){return ai.call(t)}(t)}var li=function(t,e){return function(r){return t(e(r))}}(Object.getPrototypeOf,Object);function pi(t){return null!=t&&"object"==typeof t}var hi="[object Object]",di=Function.prototype,vi=Object.prototype,gi=di.toString,yi=vi.hasOwnProperty,bi=gi.call(Object);var mi=ei?ei.prototype:void 0,_i=(mi&&mi.toString,"[object String]");function wi(t){return"string"==typeof t||!Xo(t)&&pi(t)&&fi(t)==_i}var ji=function(t,e){return!!t.filter((function(t){return t===e})).length},Oi=function(t,e){var r=Object.keys(t);return ji(r,e)},Si=function(){for(var t=arguments,e=[],r=arguments.length;r--;)e[r]=t[r];return e.join("_")},Ei=function(t){void 0===t&&(t=!1);var e=Date.now();return t?Math.floor(e/1e3):e},ki="query",Ai="mutation",xi="socket",Ti="payload",Pi="condition",qi=function(){try{if(window||document)return!0}catch(t){}return!1},Ci=function(){try{if(!qi()&&Qo)return!0}catch(t){}return!1};var $i=function(t){function e(){for(var r=arguments,n=[],o=arguments.length;o--;)n[o]=r[o];t.apply(this,n),this.message=n[0],this.detail=n[1],this.className=e.name,Error.captureStackTrace&&Error.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0}};return r.name.get=function(){return"JsonqlValidationError"},Object.defineProperties(e,r),e}(function(t){function e(){for(var e=arguments,r=[],n=arguments.length;n--;)r[n]=e[n];t.apply(this,r)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.where=function(){return qi()?"browser":Ci()?"node":"unknown"},e}(Error));var Ni=function(t){var e;return(e={}).args=t,e};var zi=function(t){return Oi(t,"data")&&!Oi(t,"error")?t.data:t},Fi=function(t){return function(t){if(!pi(t)||fi(t)!=hi)return!1;var e=li(t);if(null===e)return!0;var r=yi.call(e,"constructor")&&e.constructor;return"function"==typeof r&&r instanceof r&&gi.call(r)==bi}(t)&&(Oi(t,ki)||Oi(t,Ai)||Oi(t,xi))},Ri=function(t,e){return void 0===e&&(e={}),Fi(e)?Promise.resolve(e):t.getContract()},Ii=function(t,e){return function(r){for(var n=[],o=arguments.length-1;o-- >0;)n[o]=arguments[o+1];return new Promise((function(o,i){t.$only(Si(e,r,g),o),t.$only(Si(e,r,y),i),t.$trigger(e,{resolverName:r,args:n})}))}},Ji=function(t,e,r){var n=t.$queues,o=r.debugOn;o&&console.info("(validateRegisteredEvents)","storedEvt",n),n.forEach((function(t){var r=t[0],n=t[1].resolverName;if(o&&console.info("(validateRegisteredEvents)",r,n),!e[r][n])throw new Error(r+"."+n+" not existed in contract!")}))};function Mi(t,e,r,n){var o=function(t,e,r,n){return Bo(Go,Yo,Wo)({},t,e,r,n)}(t,e,r,n);Ji(e,n,r);var i=function(t){e.$only(t,(function(r){var n=r.resolverName,i=r.args;o[t][n]?Reflect.apply(o[t][n],null,i).then((function(r){e.$trigger(Si(t,n,g),r)})).catch((function(r){e.$trigger(Si(t,n,y),r)})):console.error(n+" is not defined in the contract!")}))};for(var a in o)i(a);setTimeout((function(){e.$suspend=!1}),1)}var Ui=function(t,e,r,n){n.$suspend=!0,r.then((function(r){Mi(t,n,e,r)}));var o={query:Ii(n,"query"),mutation:Ii(n,"mutation"),auth:Ii(n,"auth"),getToken:function(){return t.rawAuthToken}};return e.exposeContract&&(o.getContract=function(){return t.get()}),e.enableAuth&&(o.userdata=function(){return t.userdata}),o.version="1.4.0",o},Di=Object.assign?Object.assign:function(t,e,r,n){for(var o=arguments,i=1;i=0;e--){var r=fa().key(e);t(la(r),r)}},remove:function(t){return fa().removeItem(t)},clearAll:function(){return fa().clear()}};function fa(){return ca.localStorage}function la(t){return fa().getItem(t)}var pa=Ki.trim,ha={name:"cookieStorage",read:function(t){if(!t||!ya(t))return null;var e="(?:^|.*;\\s*)"+escape(t).replace(/[\-\.\+\*]/g,"\\$&")+"\\s*\\=\\s*((?:[^;](?!;))*[^;]?).*";return unescape(da.cookie.replace(new RegExp(e),"$1"))},write:function(t,e){if(!t)return;da.cookie=escape(t)+"="+escape(e)+"; expires=Tue, 19 Jan 2038 03:14:07 GMT; path=/"},each:va,remove:ga,clearAll:function(){va((function(t,e){ga(e)}))}},da=Ki.Global.document;function va(t){for(var e=da.cookie.split(/; ?/g),r=e.length-1;r>=0;r--)if(pa(e[r])){var n=e[r].split("="),o=unescape(n[0]);t(unescape(n[1]),o)}}function ga(t){t&&ya(t)&&(da.cookie=escape(t)+"=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/")}function ya(t){return new RegExp("(?:^|;\\s*)"+escape(t).replace(/[\-\.\+\*]/g,"\\$&")+"\\s*\\=").test(da.cookie)}var ba=function(){var t={};return{defaults:function(e,r){t=r},get:function(e,r){var n=e();return void 0!==n?n:t[r]}}};var ma="expire_mixin",_a=function(){var t=this.createStore(this.storage,null,this._namespacePrefix+ma);return{set:function(e,r,n,o){this.hasNamespace(ma)||t.set(r,o);return e()},get:function(t,r){this.hasNamespace(ma)||e.call(this,r);return t()},remove:function(e,r){this.hasNamespace(ma)||t.remove(r);return e()},getExpiration:function(e,r){return t.get(r)},removeExpiredKeys:function(t){var r=[];this.each((function(t,e){r.push(e)}));for(var n=0;n>>8,r[2*n+1]=a%256}return r},decompressFromUint8Array:function(e){if(null==e)return i.decompress(e);for(var r=new Array(e.length/2),n=0,o=r.length;n>=1}else{for(o=1,n=0;n>=1}0==--l&&(l=Math.pow(2,h),h++),delete u[f]}else for(o=a[f],n=0;n>=1;0==--l&&(l=Math.pow(2,h),h++),a[s]=p++,f=String(c)}if(""!==f){if(Object.prototype.hasOwnProperty.call(u,f)){if(f.charCodeAt(0)<256){for(n=0;n>=1}else{for(o=1,n=0;n>=1}0==--l&&(l=Math.pow(2,h),h++),delete u[f]}else for(o=a[f],n=0;n>=1;0==--l&&(l=Math.pow(2,h),h++)}for(o=2,n=0;n>=1;for(;;){if(v<<=1,g==e-1){d.push(r(v));break}g++}return d.join("")},decompress:function(t){return null==t?"":""==t?null:i._decompress(t.length,32768,(function(e){return t.charCodeAt(e)}))},_decompress:function(e,r,n){var o,i,a,u,c,s,f,l=[],p=4,h=4,d=3,v="",g=[],y={val:n(0),position:r,index:1};for(o=0;o<3;o+=1)l[o]=o;for(a=0,c=Math.pow(2,2),s=1;s!=c;)u=y.val&y.position,y.position>>=1,0==y.position&&(y.position=r,y.val=n(y.index++)),a|=(u>0?1:0)*s,s<<=1;switch(a){case 0:for(a=0,c=Math.pow(2,8),s=1;s!=c;)u=y.val&y.position,y.position>>=1,0==y.position&&(y.position=r,y.val=n(y.index++)),a|=(u>0?1:0)*s,s<<=1;f=t(a);break;case 1:for(a=0,c=Math.pow(2,16),s=1;s!=c;)u=y.val&y.position,y.position>>=1,0==y.position&&(y.position=r,y.val=n(y.index++)),a|=(u>0?1:0)*s,s<<=1;f=t(a);break;case 2:return""}for(l[3]=f,i=f,g.push(f);;){if(y.index>e)return"";for(a=0,c=Math.pow(2,d),s=1;s!=c;)u=y.val&y.position,y.position>>=1,0==y.position&&(y.position=r,y.val=n(y.index++)),a|=(u>0?1:0)*s,s<<=1;switch(f=a){case 0:for(a=0,c=Math.pow(2,8),s=1;s!=c;)u=y.val&y.position,y.position>>=1,0==y.position&&(y.position=r,y.val=n(y.index++)),a|=(u>0?1:0)*s,s<<=1;l[h++]=t(a),f=h-1,p--;break;case 1:for(a=0,c=Math.pow(2,16),s=1;s!=c;)u=y.val&y.position,y.position>>=1,0==y.position&&(y.position=r,y.val=n(y.index++)),a|=(u>0?1:0)*s,s<<=1;l[h++]=t(a),f=h-1,p--;break;case 2:return g.join("")}if(0==p&&(p=Math.pow(2,d),d++),l[f])v=l[f];else{if(f!==h)return null;v=i+i.charAt(0)}g.push(v),l[h++]=i+v.charAt(0),i=v,0==--p&&(p=Math.pow(2,d),d++)}}};return i}();null!=t&&(t.exports=e)}));var xa=[sa,ha],Ta=[ba,_a,Ea,function(){return{get:function(t,e){var r=t(e);if(!r)return r;var n=Aa.decompress(r);return null==n?r:this._deserialize(n)},set:function(t,e,r){var n=Aa.compress(this._serialize(r));t(e,n)}}}],Pa=ia.createStore(xa,Ta),qa=Ki.Global;function Ca(){return qa.sessionStorage}function $a(t){return Ca().getItem(t)}var Na=[{name:"sessionStorage",read:$a,write:function(t,e){return Ca().setItem(t,e)},each:function(t){for(var e=Ca().length-1;e>=0;e--){var r=Ca().key(e);t($a(r),r)}},remove:function(t){return Ca().removeItem(t)},clearAll:function(){return Ca().clear()}},ha],za=[ba,_a],Fa=ia.createStore(Na,za),Ra=Pa,Ia=Fa,Ja="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";function Ma(t){this.message=t}Ma.prototype=new Error,Ma.prototype.name="InvalidCharacterError";var Ua="undefined"!=typeof window&&window.atob&&window.atob.bind(window)||function(t){var e=String(t).replace(/=+$/,"");if(e.length%4==1)throw new Ma("'atob' failed: The string to be decoded is not correctly encoded.");for(var r,n,o=0,i=0,a="";n=e.charAt(i++);~n&&(r=o%4?64*r+n:n,o++%4)?a+=String.fromCharCode(255&r>>(-2*o&6)):0)n=Ja.indexOf(n);return a};var Da=function(t){var e=t.replace(/-/g,"+").replace(/_/g,"/");switch(e.length%4){case 0:break;case 2:e+="==";break;case 3:e+="=";break;default:throw"Illegal base64url string!"}try{return function(t){return decodeURIComponent(Ua(t).replace(/(.)/g,(function(t,e){var r=e.charCodeAt(0).toString(16).toUpperCase();return r.length<2&&(r="0"+r),"%"+r})))}(e)}catch(t){return Ua(e)}};function Ha(t){this.message=t}Ha.prototype=new Error,Ha.prototype.name="InvalidTokenError";var La=function(t,e){if("string"!=typeof t)throw new Ha("Invalid token specified");var r=!0===(e=e||{}).header?0:1;try{return JSON.parse(Da(t.split(".")[r]))}catch(t){throw new Ha("Invalid token specified: "+t.message)}},Ba=Ha;La.InvalidTokenError=Ba;var Ka,Va,Ga,Ya,Wa,Xa,Qa,Za,tu,eu=function(t){void 0===t&&(t=!1);var e=Date.now();return t?Math.floor(e/1e3):e};function ru(t){if(Jo(t))return function(t){var e=t.iat||eu(!0);if(t.exp&&e>=t.exp){var r=new Date(t.exp).toISOString();throw new C("Token has expired on "+r,t)}return t}(La(t));throw new C("Token must be a string!")}Do("HS256",["string"]),Do(!1,["boolean","number","string"],((Ka={})[h]="exp",Ka[s]=!0,Ka)),Do(!1,["boolean","number","string"],((Va={})[h]="nbf",Va[s]=!0,Va)),Do(!1,["boolean","string"],((Ga={})[h]="iss",Ga[s]=!0,Ga)),Do(!1,["boolean","string"],((Ya={})[h]="sub",Ya[s]=!0,Ya)),Do(!1,["boolean","string"],((Wa={})[h]="iss",Wa[s]=!0,Wa)),Do(!1,["boolean"],((Xa={})[s]=!0,Xa)),Do(!1,["boolean","string"],((Qa={})[s]=!0,Qa)),Do(!1,["boolean","string"],((Za={})[s]=!0,Za)),Do(!1,["boolean"],((tu={})[s]=!0,tu));var nu=u[0],ou=u[1],iu=function(t){!function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];try{window&&window.console&&Reflect.apply(console.log,null,t)}catch(t){}}(t),this.fly=t.Fly?new t.Fly:new Fly,this.opts=t,this.extraHeader={},this.extraParams={},this.reqInterceptor(),this.resInterceptor()},au={headers:{configurable:!0}};au.headers.set=function(t){this.extraHeader=t},iu.prototype.request=function(t,e,r){var n;void 0===e&&(e={}),void 0===r&&(r={}),this.headers=r;var o=Qn({},{_cb:Ei()},this.extraParams);if(this.opts.enableJsonp){var i=function(t){return Object.keys(t)[0]}(t);o=Qn({},o,((n={}).jsonqlJsonpCallback=i,n)),t=t[i]}return this.fly.request(this.jsonqlEndpoint,t,Qn({},{method:nu,params:o},e))},iu.prototype.reqInterceptor=function(){var t=this;this.fly.interceptors.request.use((function(e){var r=t.getHeaders();for(var n in t.log("request interceptor call",r),r)e.headers[n]=r[n];return e}))},iu.prototype.processJsonp=function(t){return zi(t)},iu.prototype.resInterceptor=function(){var t=this,e=this,r=e.opts.enableJsonp;this.fly.interceptors.response.use((function(n){t.log("response interceptor call"),e.cleanUp();var o=Jo(n.data)?JSON.parse(n.data):n.data;return r?e.processJsonp(o):zi(o)}),(function(t){throw e.cleanUp(),console.error(t),new $("Server side error",t)}))},iu.prototype.getHeaders=function(){return this.opts.enableAuth?Qn({},a,this.getAuthHeader(),this.extraHeader):Qn({},a,this.extraHeader)},iu.prototype.cleanUp=function(){this.extraHeader={},this.extraParams={}},iu.prototype.get=function(){var t=this;return this.opts.showContractDesc&&(this.extraParams=Qn({},this.extraParams,d)),this.request({},{method:"GET"},this.contractHeader).then(R).then((function(e){return t.log("get contract result",e),e.cache&&e.contract?e.contract:e}))},iu.prototype.query=function(t,e){return void 0===e&&(e=[]),this.request(function(t,e,r){var n;if(void 0===e&&(e=[]),void 0===r&&(r=!1),wi(t)&&Xo(e)){var o=Ni(e);return!0===r?o:((n={})[t]=o,n)}throw new $i("[createQuery] expect resolverName to be string and args to be array!",{resolverName:t,args:e})}(t,e)).then(R)},iu.prototype.mutation=function(t,e,r){return void 0===e&&(e={}),void 0===r&&(r={}),this.request(function(t,e,r,n){var o;void 0===r&&(r={}),void 0===n&&(n=!1);var i={};if(i[Ti]=e,i[Pi]=r,!0===n)return i;if(wi(t))return(o={})[t]=i,o;throw new $i("[createMutation] expect resolverName to be string!",{resolverName:t,payload:e,condition:r})}(t,e,r),{method:ou}).then(R)},Object.defineProperties(iu.prototype,au);var uu=function(t){function e(e,r){void 0===r&&(r=null),r&&(e.Fly=r),t.call(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={storeIt:{configurable:!0},jsonqlEndpoint:{configurable:!0},jsonqlContract:{configurable:!0},jsonqlToken:{configurable:!0},jsonqlUserdata:{configurable:!0}};return r.storeIt.set=function(t){throw console.info("storeIt",t),Mo(t)&&t.length>=2&&Reflect.apply(Ra.set,Ra,t),new q("Expect argument to be array and least 2 items!")},r.jsonqlEndpoint.set=function(t){var e=Ra.get("endpoint")||[];ji(e,t)||(e.push(t),this.storeId=["endpoint",e],this.endpointIndex=e.length-1)},r.jsonqlContract.set=function(t){var e=this.opts.storageKey,r=[e],n=t[0],o=t[1],i=Ra.get(e)||[];i[this.endpointIndex||0]=n,r.push(i),o&&r.push(o),this.opts.keepContract&&(this.storeIt=r)},r.jsonqlToken.set=function(t){var e="credential",r=localStorage.get(e)||[];if(!ji(r,t)){var n=r.length-1;r[n]=t,this[e+"Index"]=n;var o=[e,r];if(this.opts.tokenExpired){var i=parseFloat(this.opts.tokenExpired);if(!isNaN(i)&&i>0){var a=Ei();o.push(a+parseFloat(i))}}return this.storeIt=o,this.jsonqlUserdata=this.decoder(t),t}return!1},r.jsonqlUserdata.set=function(t){var e=["userdata",t];return t.exp&&e.push(t.exp),Reflect.apply(Ra.set,Ra,e)},r.jsonqlEndpoint.get=function(){var t=Ra.get("endpoint");if(!t){var e=this.opts,r=[e.hostname,e.jsonqlPath].join("/");return this.jsonqlEndpoint=r,r}return t[this.endpointIndex]},r.jsonqlContract.get=function(){var t=this.opts.storageKey;return(Ra.get(t)||[])[this.endpointIndex]||!1},r.jsonqlToken.get=function(){var t="credential",e=localStorage.get(t);return!!e&&e[this[t+"Index"]]},r.jsonqlUserdata.get=function(){return Ia.get("userdata")},e.prototype.log=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];!0===this.opts.debugOn&&Reflect.apply(console.info,console,t)},Object.defineProperties(e.prototype,r),e}(function(t){function e(e){t.call(this,e),e.enableAuth&&e.useJwt&&(this.setDecoder=ru)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={userdata:{configurable:!0},rawAuthToken:{configurable:!0},setDecoder:{configurable:!0}};return r.userdata.get=function(){return this.jsonqlUserdata},r.rawAuthToken.get=function(){return this.jsonqlToken},r.setDecoder.set=function(t){"function"==typeof t&&(this.decoder=t)},e.prototype.storeToken=function(t){return this.jsonqlToken=t},e.prototype.decoder=function(t){return t},e.prototype.getAuthHeader=function(){var t,e=this.rawAuthToken;return e?((t={})[this.opts.AUTH_HEADER]="Bearer "+e,t):{}},Object.defineProperties(e.prototype,r),e}(function(t){function e(e){t.call(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={contractHeader:{configurable:!0}};return e.prototype.getContract=function(){var t=this.readContract();if(this.log("getContract first call",t),t&&Array.isArray(t)){var e=t[this.endpointIndex||0];if(e)return Promise.resolve(e)}return this.get().then(this.storeContract.bind(this))},r.contractHeader.get=function(){var t={};return!1!==this.opts.contractKey&&(t[this.opts.contractKeyName]=this.opts.contractKey),t},e.prototype.storeContract=function(t){if(!Fi(t))throw new q("Contract is malformed!");var e=[t];if(this.opts.contractExpired){var r=parseFloat(this.opts.contractExpired);!isNaN(r)&&r>0&&e.push(r)}return this.jsonqlContract=e,this.log("storeContract return result",t),t},e.prototype.readContract=function(){return Fi(this.opts.contract)?this.opts.contract:Ra.get(this.opts.storageKey)},Object.defineProperties(e.prototype,r),e}(iu))),cu={contract:!1,MUTATION_ARGS:["name","payload","conditions"],CONTENT_TYPE:i,BEARER:"Bearer",AUTH_HEADER:"Authorization"},su={hostname:Do([window.location.protocol,window.location.host].join("//"),["string"]),jsonqlPath:Do("jsonql",["string"]),loginHandlerName:Do("login",["string"]),logoutHandlerName:Do("logout",["string"]),enableJsonp:Do(!1,["boolean"]),enableAuth:Do(!1,["boolean"]),useJwt:Do(!0,["boolean"]),useLocalstorage:Do(!0,["boolean"]),storageKey:Do("storageKey",["string"]),authKey:Do("authKey",["string"]),contractExpired:Do(0,["number"]),keepContract:Do(!0,["boolean"]),exposeContract:Do(!1,["boolean"]),showContractDesc:Do(!1,["boolean"]),contractKey:Do(!1,["boolean"]),contractKeyName:Do("X-JSONQL-CV-KEY",["string"]),enableTimeout:Do(!1,["boolean"]),timeout:Do(5e3,["number"]),returnInstance:Do(!1,["boolean"]),allowReturnRawToken:Do(!1,["boolean"]),debugOn:Do(!1,["boolean"])};var fu=new WeakMap,lu=new WeakMap;var pu=function(){this.__suspend__=null,this.queueStore=new Set},hu={$suspend:{configurable:!0},$queues:{configurable:!0}};hu.$suspend.set=function(t){var e=this;if("boolean"!=typeof t)throw new Error("$suspend only accept Boolean value!");var r=this.__suspend__;this.__suspend__=t,this.logger("($suspend)","Change from "+r+" --\x3e "+t),!0===r&&!1===t&&setTimeout((function(){e.release()}),1)},pu.prototype.$queue=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];return!0===this.__suspend__&&(this.logger("($queue)","added to $queue",t),this.queueStore.add(t)),this.__suspend__},hu.$queues.get=function(){var t=this.queueStore.size;return this.logger("($queues)","size: "+t),t>0?Array.from(this.queueStore):[]},pu.prototype.release=function(){var t=this,e=this.queueStore.size;if(this.logger("(release)","Release was called "+e),e>0){var r=Array.from(this.queueStore);this.queueStore.clear(),this.logger("queue",r),r.forEach((function(e){t.logger(e),Reflect.apply(t.$trigger,t,e)})),this.logger("Release size "+this.queueStore.size)}},Object.defineProperties(pu.prototype,hu);var du=function(t){function e(e){void 0===e&&(e={}),t.call(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={$done:{configurable:!0}};return e.prototype.logger=function(){},e.prototype.$on=function(t,e,r){var n=this;void 0===r&&(r=null);this.validate(t,e);var o=this.takeFromStore(t);if(!1===o)return this.logger("($on)",t+" callback is not in lazy store"),this.addToNormalStore(t,"on",e,r);this.logger("($on)",t+" found in lazy store");var i=0;return o.forEach((function(o){var a=o[0],u=o[1],c=o[2];if(c&&"on"!==c)throw new Error("You are trying to register an event already been taken by other type: "+c);n.logger("($on)","call run on "+t),n.run(e,a,r||u),i+=n.addToNormalStore(t,"on",e,r||u)})),i},e.prototype.$once=function(t,e,r){void 0===r&&(r=null),this.validate(t,e);var n=this.takeFromStore(t);this.normalStore;if(!1===n)return this.logger("($once)",t+" not in the lazy store"),this.addToNormalStore(t,"once",e,r);this.logger("($once)",n);var o=Array.from(n)[0],i=o[0],a=o[1],u=o[2];if(u&&"once"!==u)throw new Error("You are trying to register an event already been taken by other type: "+u);this.logger("($once)","call run for "+t),this.run(e,i,r||a),this.$off(t)},e.prototype.$only=function(t,e,r){var n=this;void 0===r&&(r=null),this.validate(t,e);var o=!1,i=this.takeFromStore(t);(this.normalStore.has(t)||(this.logger("($only)",t+" add to store"),o=this.addToNormalStore(t,"only",e,r)),!1!==i)&&(this.logger("($only)",t+" found data in lazy store to execute"),Array.from(i).forEach((function(o){var i=o[0],a=o[1],u=o[2];if(u&&"only"!==u)throw new Error("You are trying to register an event already been taken by other type: "+u);n.logger("($only)","call run for "+t),n.run(e,i,r||a)})));return o},e.prototype.$onlyOnce=function(t,e,r){void 0===r&&(r=null),this.validate(t,e);var n=!1,o=this.takeFromStore(t);if(this.normalStore.has(t)||(this.logger("($onlyOnce)",t+" add to store"),n=this.addToNormalStore(t,"onlyOnce",e,r)),!1!==o){this.logger("($onlyOnce)",o);var i=Array.from(o)[0],a=i[0],u=i[1],c=i[2];if(c&&"onlyOnce"!==c)throw new Error("You are trying to register an event already been taken by other type: "+c);this.logger("($onlyOnce)","call run for "+t),this.run(e,a,r||u),this.$off(t)}return n},e.prototype.$replace=function(t,e,r,n){if(void 0===r&&(r=null),void 0===n&&(n="on"),this.validateType(n)){this.$off(t);var o=this["$"+n];return this.logger("($replace)",t,e),Reflect.apply(o,this,[t,e,r])}throw new Error(n+" is not supported!")},e.prototype.$trigger=function(t,e,r,n){void 0===e&&(e=[]),void 0===r&&(r=null),void 0===n&&(n=!1),this.validateEvt(t);var o=0,i=this.normalStore;if(this.logger("($trigger)","normalStore",i),i.has(t)){var a=this.$queue(t,e,r,n);if(this.logger("($trigger)",t,"found; add to queue: ",a),!0===a)return this.logger("($trigger)",t,"not executed. Exit now."),!1;for(var u=Array.from(i.get(t)),c=u.length,s=!1,f=0;f0;)n[o]=arguments[o+2];if(t.has(e)?(this.logger("(addToStore)",e+" existed"),r=t.get(e)):(this.logger("(addToStore)","create new Set for "+e),r=new Set),n.length>2)if(Array.isArray(n[0])){var i=n[2];this.checkTypeInLazyStore(e,i)||r.add(n)}else this.checkContentExist(n,r)||(this.logger("(addToStore)","insert new",n),r.add(n));else r.add(n);return t.set(e,r),[t,r.size]},e.prototype.checkContentExist=function(t,e){return!!Array.from(e).filter((function(e){return e[0]===t[0]})).length},e.prototype.checkTypeInStore=function(t,e){this.validateEvt(t,e);var r=this.$get(t,!0);return!1===r||!r.filter((function(t){var r=t[3];return e!==r})).length},e.prototype.checkTypeInLazyStore=function(t,e){this.validateEvt(t,e);var r=this.lazyStore.get(t);return this.logger("(checkTypeInLazyStore)",r),!!r&&!!Array.from(r).filter((function(t){return t[2]!==e})).length},e.prototype.addToNormalStore=function(t,e,r,n){if(void 0===n&&(n=null),this.logger("(addToNormalStore)",t,e,"try to add to normal store"),this.checkTypeInStore(t,e)){this.logger("(addToNormalStore)",e+" can add to "+t+" normal store");var o=this.hashFnToKey(r),i=[this.normalStore,t,o,r,n,e],a=Reflect.apply(this.addToStore,this,i),u=a[0],c=a[1];return this.normalStore=u,c}return!1},e.prototype.addToLazyStore=function(t,e,r,n){void 0===e&&(e=[]),void 0===r&&(r=null),void 0===n&&(n=!1);var o=[this.lazyStore,t,this.toArray(e),r];n&&o.push(n);var i=Reflect.apply(this.addToStore,this,o),a=i[0],u=i[1];return this.lazyStore=a,u},e.prototype.toArray=function(t){return Array.isArray(t)?t:[t]},r.normalStore.set=function(t){fu.set(this,t)},r.normalStore.get=function(){return fu.get(this)},r.lazyStore.set=function(t){lu.set(this,t)},r.lazyStore.get=function(){return lu.get(this)},e.prototype.hashFnToKey=function(t){return t.toString().split("").reduce((function(t,e){return(t=(t<<5)-t+e.charCodeAt(0))&t}),0)+""},Object.defineProperties(e.prototype,r),e}(pu));function vu(t,e){void 0===e&&(e={});var r,n=e.contract,o=function(t){return Ho(t,su,cu)}(e),i=new uu(o,t),a=Ri(i,n),u=(r=o.debugOn,new du({logger:r?function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];t.unshift("[NBS]"),console.log.apply(null,t)}:void 0})),c=Ui(i,o,a,u);return c.eventEmitter=u,c}return function(t){return void 0===t&&(t={}),vu(o,t)}})); //# sourceMappingURL=jsonql-client.static.js.map diff --git a/packages/http-client/dist/jsonql-client.static.js.map b/packages/http-client/dist/jsonql-client.static.js.map index d2ad6dc9eb4dd8939086a60d3c8b1178890a33a0..8ad92573d802250351e3a325559e9b3715753e28 100644 --- a/packages/http-client/dist/jsonql-client.static.js.map +++ b/packages/http-client/dist/jsonql-client.static.js.map @@ -1 +1 @@ -{"version":3,"file":"jsonql-client.static.js","sources":["../node_modules/store/plugins/defaults.js","../node_modules/store/plugins/expire.js"],"sourcesContent":["module.exports = defaultsPlugin\n\nfunction defaultsPlugin() {\n\tvar defaultValues = {}\n\t\n\treturn {\n\t\tdefaults: defaults,\n\t\tget: get\n\t}\n\t\n\tfunction defaults(_, values) {\n\t\tdefaultValues = values\n\t}\n\t\n\tfunction get(super_fn, key) {\n\t\tvar val = super_fn()\n\t\treturn (val !== undefined ? val : defaultValues[key])\n\t}\n}\n","var namespace = 'expire_mixin'\n\nmodule.exports = expirePlugin\n\nfunction expirePlugin() {\n\tvar expirations = this.createStore(this.storage, null, this._namespacePrefix+namespace)\n\t\n\treturn {\n\t\tset: expire_set,\n\t\tget: expire_get,\n\t\tremove: expire_remove,\n\t\tgetExpiration: getExpiration,\n\t\tremoveExpiredKeys: removeExpiredKeys\n\t}\n\t\n\tfunction expire_set(super_fn, key, val, expiration) {\n\t\tif (!this.hasNamespace(namespace)) {\n\t\t\texpirations.set(key, expiration)\n\t\t}\n\t\treturn super_fn()\n\t}\n\t\n\tfunction expire_get(super_fn, key) {\n\t\tif (!this.hasNamespace(namespace)) {\n\t\t\t_checkExpiration.call(this, key)\n\t\t}\n\t\treturn super_fn()\n\t}\n\t\n\tfunction expire_remove(super_fn, key) {\n\t\tif (!this.hasNamespace(namespace)) {\n\t\t\texpirations.remove(key)\n\t\t}\n\t\treturn super_fn()\n\t}\n\t\n\tfunction getExpiration(_, key) {\n\t\treturn expirations.get(key)\n\t}\n\t\n\tfunction removeExpiredKeys(_) {\n\t\tvar keys = []\n\t\tthis.each(function(val, key) {\n\t\t\tkeys.push(key)\n\t\t})\n\t\tfor (var i=0; i0&&(t+=(-1===t.indexOf("?")?"?":"&")+w.join("&")),a.open(r.method,t);try{a.withCredentials=!!r.withCredentials,a.timeout=r.timeout||0,"stream"!==y&&(a.responseType=y)}catch(t){}var j=r.headers[u]||r.headers[c],O="application/x-www-form-urlencoded";for(var S in o.trim((j||"").toLowerCase())===O?e=o.formatParams(e):o.isFormData(e)||-1===["object","array"].indexOf(o.type(e))||(O="application/json;charset=utf-8",e=JSON.stringify(e)),j||b||(r.headers[u]=O),r.headers)if(S===u&&o.isFormData(e))delete r.headers[S];else try{a.setRequestHeader(S,r.headers[S])}catch(t){}function E(t,e,n){v(l.p,(function(){if(t){n&&(e.request=r);var o=t.call(l,e,Promise);e=void 0===o?e:o}d(e)||(e=Promise[0===n?"resolve":"reject"](e)),e.then((function(t){s(t)})).catch((function(t){h(t)}))}))}function k(t){t.engine=a,E(l.onerror,t,-1)}function A(t,e){this.message=t,this.status=e}a.onload=function(){try{var t=a.response||a.responseText;t&&r.parseJson&&-1!==(a.getResponseHeader(u)||"").indexOf("json")&&!o.isObject(t)&&(t=JSON.parse(t));var e=a.responseHeaders;if(!e){e={};var n=(a.getAllResponseHeaders()||"").split("\r\n");n.pop(),n.forEach((function(t){if(t){var r=t.split(":")[0];e[r]=a.getResponseHeader(r)}}))}var i=a.status,c=a.statusText,s={data:t,headers:e,status:i,statusText:c};if(o.merge(s,a._response),i>=200&&i<300||304===i)s.engine=a,s.request=r,E(l.handler,s,0);else{var f=new A(c,i);f.response=s,k(f)}}catch(f){k(new A(f.msg,a.status))}},a.onerror=function(t){k(new A(t.msg||"Network Error",0))},a.ontimeout=function(){k(new A("timeout [ "+a.timeout+"ms ]",1))},a._options=r,setTimeout((function(){a.send(b?null:e)}),0)}(n):s(n)}),(function(t){h(t)}))}))}));return h.engine=a,h}},{key:"all",value:function(t){return Promise.all(t)}},{key:"spread",value:function(t){return function(e){return t.apply(null,e)}}}]),t}();a.default=a,["get","post","put","patch","head","delete"].forEach((function(t){a.prototype[t]=function(e,r,n){return this.request(e,r,o.merge({method:t},n))}})),["lock","unlock","clear"].forEach((function(t){a.prototype[t]=function(){this.interceptors.request[t]()}})),t.exports=a}])},t.exports=r()})),o=(r=n)&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r,i="application/vnd.api+json",a={Accept:i,"Content-Type":[i,"charset=utf-8"].join(";")},u=["POST","PUT"],c="continue",s="type",f="optional",l="enumv",p="args",h="checker",d="alias",v="login",g="logout",y={desc:"y"},b="No message";var m="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},_="object"==typeof m&&m&&m.Object===Object&&m,w="object"==typeof self&&self&&self.Object===Object&&self,j=_||w||Function("return this")(),O=j.Symbol;function S(t,e){for(var r=-1,n=null==t?0:t.length,o=Array(n);++r=n?t:function(t,e,r){var n=-1,o=t.length;e<0&&(e=-e>o?0:o+e),(r=r>o?o:r)<0&&(r+=o),o=e>r?0:r-e>>>0,e>>>=0;for(var i=Array(o);++n-1;);return r}(n,o),function(t,e){for(var r=t.length;r--&&L(e,t[r],0)>-1;);return r}(n,o)+1).join("")}function at(t){return void 0===t}var ut="[object Boolean]";var ct="[object Number]";function st(t){return function(t){return"number"==typeof t||z(t)&&$(t)==ct}(t)&&t!=+t}var ft="[object String]";function lt(t){return"string"==typeof t||!E(t)&&z(t)&&$(t)==ft}function pt(t,e){return function(r){return t(e(r))}}var ht=pt(Object.getPrototypeOf,Object),dt="[object Object]",vt=Function.prototype,gt=Object.prototype,yt=vt.toString,bt=gt.hasOwnProperty,mt=yt.call(Object);function _t(t){if(!z(t)||$(t)!=dt)return!1;var e=ht(t);if(null===e)return!0;var r=bt.call(e,"constructor")&&e.constructor;return"function"==typeof r&&r instanceof r&&yt.call(r)==mt}var wt,jt=function(t,e,r){for(var n=-1,o=Object(t),i=r(t),a=i.length;a--;){var u=i[wt?a:++n];if(!1===e(o[u],u,o))break}return t};var Ot="[object Arguments]";function St(t){return z(t)&&$(t)==Ot}var Et=Object.prototype,kt=Et.hasOwnProperty,At=Et.propertyIsEnumerable,xt=St(function(){return arguments}())?St:function(t){return z(t)&&kt.call(t,"callee")&&!At.call(t,"callee")};var Tt="object"==typeof exports&&exports&&!exports.nodeType&&exports,Pt=Tt&&"object"==typeof module&&module&&!module.nodeType&&module,qt=Pt&&Pt.exports===Tt?j.Buffer:void 0,Ct=(qt?qt.isBuffer:void 0)||function(){return!1},Nt=9007199254740991,$t=/^(?:0|[1-9]\d*)$/;function zt(t,e){var r=typeof t;return!!(e=null==e?Nt:e)&&("number"==r||"symbol"!=r&&$t.test(t))&&t>-1&&t%1==0&&t-1&&t%1==0&&t<=Ft}var Rt={};Rt["[object Float32Array]"]=Rt["[object Float64Array]"]=Rt["[object Int8Array]"]=Rt["[object Int16Array]"]=Rt["[object Int32Array]"]=Rt["[object Uint8Array]"]=Rt["[object Uint8ClampedArray]"]=Rt["[object Uint16Array]"]=Rt["[object Uint32Array]"]=!0,Rt["[object Arguments]"]=Rt["[object Array]"]=Rt["[object ArrayBuffer]"]=Rt["[object Boolean]"]=Rt["[object DataView]"]=Rt["[object Date]"]=Rt["[object Error]"]=Rt["[object Function]"]=Rt["[object Map]"]=Rt["[object Number]"]=Rt["[object Object]"]=Rt["[object RegExp]"]=Rt["[object Set]"]=Rt["[object String]"]=Rt["[object WeakMap]"]=!1;var Jt,Mt="object"==typeof exports&&exports&&!exports.nodeType&&exports,Ut=Mt&&"object"==typeof module&&module&&!module.nodeType&&module,Dt=Ut&&Ut.exports===Mt&&_.process,Ht=function(){try{var t=Ut&&Ut.require&&Ut.require("util").types;return t||Dt&&Dt.binding&&Dt.binding("util")}catch(t){}}(),Lt=Ht&&Ht.isTypedArray,Bt=Lt?(Jt=Lt,function(t){return Jt(t)}):function(t){return z(t)&&It(t.length)&&!!Rt[$(t)]},Kt=Object.prototype.hasOwnProperty;function Vt(t,e){var r=E(t),n=!r&&xt(t),o=!r&&!n&&Ct(t),i=!r&&!n&&!o&&Bt(t),a=r||n||o||i,u=a?function(t,e){for(var r=-1,n=Array(t);++r-1},fe.prototype.set=function(t,e){var r=this.__data__,n=ce(r,t);return n<0?(++this.size,r.push([t,e])):r[n][1]=e,this};var le,pe=j["__core-js_shared__"],he=(le=/[^.]+$/.exec(pe&&pe.keys&&pe.keys.IE_PROTO||""))?"Symbol(src)_1."+le:"";var de=Function.prototype.toString;function ve(t){if(null!=t){try{return de.call(t)}catch(t){}try{return t+""}catch(t){}}return""}var ge=/^\[object .+?Constructor\]$/,ye=Function.prototype,be=Object.prototype,me=ye.toString,_e=be.hasOwnProperty,we=RegExp("^"+me.call(_e).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function je(t){return!(!Qt(t)||function(t){return!!he&&he in t}(t))&&(ne(t)?we:ge).test(ve(t))}function Oe(t,e){var r=function(t,e){return null==t?void 0:t[e]}(t,e);return je(r)?r:void 0}var Se=Oe(j,"Map"),Ee=Oe(Object,"create");var ke="__lodash_hash_undefined__",Ae=Object.prototype.hasOwnProperty;var xe=Object.prototype.hasOwnProperty;var Te="__lodash_hash_undefined__";function Pe(t){var e=-1,r=null==t?0:t.length;for(this.clear();++eu))return!1;var s=i.get(t);if(s&&i.get(e))return s==e;var f=-1,l=!0,p=r&Je?new Fe:void 0;for(i.set(t,e),i.set(e,t);++f0){if(++e>=An)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}(kn);function qn(t,e){return Pn(function(t,e,r){return e=En(void 0===e?t.length-1:e,0),function(){for(var n=arguments,o=-1,i=En(n.length-e,0),a=Array(i);++o1?e[n-1]:void 0,i=n>2?e[2]:void 0;for(o=Cn.length>3&&"function"==typeof o?(n--,o):void 0,i&&function(t,e,r){if(!Qt(r))return!1;var n=typeof e;return!!("number"==n?oe(r)&&zt(e,r.length):"string"==n&&e in r)&&ue(r[e],t)}(e[0],e[1],i)&&(o=n<3?void 0:o,n=1),t=Object(t);++r0))},to=function(t){if(t.indexOf("array.<")>-1&&t.indexOf(">")>-1){var e=t.replace("array.<","").replace(">","");return e.indexOf("|")?e.split("|"):[e]}return!1},eo=function(t,e){var r=t.arg;return e.length>1?!r.filter((function(t){return!(e.length>e.filter((function(e){return!Qn(e)(t)})).length)})).length:e.length>e.filter((function(t){return!Zn(r,t)})).length},ro=function(t,e){if(void 0===e&&(e=null),_t(t)){if(!e)return!0;if(Zn(e))return!e.filter((function(e){var r=t[e.name];return!(e.type.length>e.type.filter((function(t){var e;return!!at(r)||(!1!==(e=to(t))?!eo({arg:r},e):!Qn(t)(r))})).length)})).length}return!1},no=function(t){var e=t.arg,r=t.param,n=[e];return Array.isArray(r.keys)&&r.keys.length&&n.push(r.keys),ro.apply(null,n)},oo=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={statusCode:{configurable:!0},name:{configurable:!0}};return r.statusCode.get=function(){return 406},r.name.get=function(){return"Jsonql406Error"},Object.defineProperties(e,r),e}(Error),io=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={statusCode:{configurable:!0},name:{configurable:!0}};return r.statusCode.get=function(){return 500},r.name.get=function(){return"Jsonql500Error"},Object.defineProperties(e,r),e}(Error),ao=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={statusCode:{configurable:!0},name:{configurable:!0}};return r.statusCode.get=function(){return 401},r.name.get=function(){return"JsonqlAuthorisationError"},Object.defineProperties(e,r),e}(Error),uo=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={statusCode:{configurable:!0},name:{configurable:!0}};return r.statusCode.get=function(){return 401},r.name.get=function(){return"JsonqlContractAuthError"},Object.defineProperties(e,r),e}(Error),co=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={statusCode:{configurable:!0},name:{configurable:!0}};return r.statusCode.get=function(){return 500},r.name.get=function(){return"JsonqlResolverAppError"},Object.defineProperties(e,r),e}(Error),so=function(){try{if(window||document)return!0}catch(t){}return!1},fo=function(){try{if(!so()&&m)return!0}catch(t){}return!1};var lo=function(t){function e(){for(var e=[],r=arguments.length;r--;)e[r]=arguments[r];t.apply(this,e)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.where=function(){return so()?"browser":fo()?"node":"unknown"},e}(Error),po=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,Error.captureStackTrace&&Error.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={statusCode:{configurable:!0},name:{configurable:!0}};return r.statusCode.get=function(){return 404},r.name.get=function(){return"JsonqlResolverNotFoundError"},Object.defineProperties(e,r),e}(lo),ho=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0}};return r.name.get=function(){return"JsonqlEnumError"},Object.defineProperties(e,r),e}(Error),vo=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0}};return r.name.get=function(){return"JsonqlTypeError"},Object.defineProperties(e,r),e}(Error),go=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0}};return r.name.get=function(){return"JsonqlCheckerError"},Object.defineProperties(e,r),e}(Error),yo=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,Error.captureStackTrace&&Error.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0}};return r.name.get=function(){return"JsonqlValidationError"},Object.defineProperties(e,r),e}(lo),bo=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,Error.captureStackTrace&&Error.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0},statusCode:{configurable:!0}};return r.name.get=function(){return"JsonqlError"},r.statusCode.get=function(){return-1},Object.defineProperties(e,r),e}(lo),mo=function(t){function e(r,n){t.call(this,n),this.statusCode=r,this.className=e.name}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0}};return r.name.get=function(){return"JsonqlServerError"},Object.defineProperties(e,r),e}(Error),_o=Object.freeze({Jsonql406Error:oo,Jsonql500Error:io,JsonqlAuthorisationError:ao,JsonqlContractAuthError:uo,JsonqlResolverAppError:co,JsonqlResolverNotFoundError:po,JsonqlEnumError:ho,JsonqlTypeError:vo,JsonqlCheckerError:go,JsonqlValidationError:yo,JsonqlError:bo,JsonqlServerError:mo}),wo=bo,jo=function(t,e){return!!Object.keys(t).filter((function(t){return e===t})).length};function Oo(t){if(jo(t,"error")){var e=t.error,r=e.className,n=e.name,o=r||n,i=e.message||b,a=e.detail||e;if(o&&_o[o])throw new _o[r](i,a);throw new wo(i,a)}return t}function So(t){if(Array.isArray(t))throw new yo("",t);var e=t.message||b,r=t.detail||t;switch(!0){case t instanceof oo:throw new oo(e,r);case t instanceof io:throw new io(e,r);case t instanceof ao:throw new ao(e,r);case t instanceof uo:throw new uo(e,r);case t instanceof co:throw new co(e,r);case t instanceof po:throw new po(e,r);case t instanceof ho:throw new ho(e,r);case t instanceof vo:throw new vo(e,r);case t instanceof go:throw new go(e,r);case t instanceof yo:throw new yo(e,r);case t instanceof mo:throw new mo(e,r);default:throw new bo(e,r)}}function Eo(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];try{window&&window.console&&Reflect.apply(console.log,console,t)}catch(t){}}var ko=function(t,e){var r;switch(!0){case"object"===t:return!no(e);case"array"===t:return!Zn(e.arg);case!1!==(r=to(t)):return!eo(e,r);default:return!Qn(t)(e.arg)}},Ao=function(t,e){return at(t)?!0!==e.optional||at(e.defaultvalue)?null:e.defaultvalue:t},xo=function(t,e,r){var n;void 0===r&&(r=!1);var o=function(t,e){if(!Zn(e))throw new bo("params is not an array! Did something gone wrong when you generate the contract.json?");if(0===e.length)return[];if(!Zn(t))throw new bo("args is not an array! You might want to do: ES6 Array.from(arguments) or ES5 Array.prototype.slice.call(arguments)");switch(!0){case t.length==e.length:return Eo(1),t.map((function(t,r){return{arg:t,index:r,param:e[r]}}));case!0===e[0].variable:Eo(2);var r=e[0].type;return t.map((function(t,n){return{arg:t,index:n,param:e[n]||{type:r,name:"_"}}}));case t.lengthe.length:Eo(4);var n=e.length,o=["any"];return t.map((function(t,r){var i=r>=n||!!e[r].optional,a=e[r]||{type:o,name:"_"+r};return{arg:i?Ao(t,a):t,index:r,param:a,optional:i}}));default:throw Eo(5),new bo("Could not understand your arguments and parameter structure!",{args:t,params:e})}}(t,e),i=o.filter((function(t){return!0===t.optional||!0===t.param.optional?function(t){var e=t.arg,r=t.param;return!!Mn(e)&&!(r.type.length>r.type.filter((function(e){return ko(e,t)})).length)}(t):!(t.param.type.length>t.param.type.filter((function(e){return ko(e,t)})).length)}));return r?((n={}).error=i,n.data=o.map((function(t){return t.arg})),n):i},To=function(t,e){var r,n=Object.keys(t);return r=e,!!n.filter((function(t){return t===r})).length},Po=function(t){return!Mn(t)};function qo(t,e){var r=Jn(e,(function(t,e){return!t[Wn]}));return qr(r,{})?t:function(t,e){var r={};return e=nn(e),ae(t,(function(t,n,o){an(r,e(t,n,o),t)})),r}(t,(function(t,e){return function(t,e,r){var n;return r(t,(function(t,r,o){if(e(t,r,o))return n=r,!1})),n}(r,nn((function(t){return t.alias===e})),ae)||e}))}function Co(t,e){return $n(e,(function(e,r){var n,o;return at(t[r])||!0===e[Kn]&&Po(t[r])?Nn({},e,((n={})[Xn]=!0,n)):((o={})[Gn]=t[r],o[Bn]=e[Bn],o[Kn]=e[Kn]||!1,o[Vn]=e[Vn]||!1,o[Yn]=e[Yn]||!1,o)}))}function No(t,e){var r=function(t,e){var r=qo(t,e);return{pristineValues:$n(Jn(e,(function(t,e){return To(r,e)})),(function(t){return t.args})),checkAgainstAppProps:Jn(e,(function(t,e){return!To(r,e)})),config:r}}(t,e),n=r.config,o=r.pristineValues;return[Co(n,r.checkAgainstAppProps),o]}var $o=function(t){return Zn(t)?t:[t]};var zo=function(t,e){return!Zn(e)||function(t,e){return!!t.filter((function(t){return t===e})).length}(e,t)},Fo=function(t,e){try{return!!ne(e)&&e.apply(null,[t])}catch(t){return!1}};function Io(t){return function(e,r){if(e[Xn])return e[Gn];var n=function(t,e){var r,n=[[t[Gn]],[(r={},r[Bn]=$o(t[Bn]),r[Kn]=t[Kn],r)]];return Reflect.apply(e,null,n)}(e,t);if(n.length)throw Eo("runValidationAction",r,e),new vo(r,n);if(!1!==e[Vn]&&!zo(e[Gn],e[Vn]))throw Eo(Vn,e[Vn]),new ho(r);if(!1!==e[Yn]&&!Fo(e[Gn],e[Yn]))throw Eo(Yn,e[Yn]),new go(r);return e[Gn]}}function Ro(t,e){var r=t[0],n=t[1],o=$n(r,Io(e));return Nn(o,n)}var Jo=function(t,e){return Promise.resolve(No(t,e))};function Mo(t,e,r,n,o,i){void 0===r&&(r=!1),void 0===n&&(n=!1),void 0===o&&(o=!1),void 0===i&&(i=!1);var a={};return a[p]=t,a[s]=e,!0===r&&(a[f]=!0),Zn(n)&&(a[l]=n),ne(o)&&(a[h]=o),lt(i)&&(a[d]=i),a}var Uo=Dn,Do=Zn,Ho=function(t,e,r){return void 0===r&&(r=!1),new Promise((function(n,o){var i=xo(t,e,r);return r?i.error.length?o(i.error):n(i.data):i.length?o(i):n([])}))},Lo=function(t,e,r){void 0===r&&(r={});var n=r[f],o=r[l],i=r[h],a=r[d];return Mo.apply(null,[t,e,n,o,i,a])},Bo=function(t){return function(e,r,n){return void 0===n&&(n={}),function(t,e,r,n){return void 0===t&&(t={}),Jo(t,e).then((function(t){return Ro(t,n)})).then((function(t){return Nn({},t,r)}))}(e,r,n,t)}}(xo),Ko=function(t){return function(e,r,n){return void 0===n&&(n={}),function(t,e,r,n){return void 0===t&&(t={}),Nn(Ro(No(t,e),n),r)}(e,r,n,t)}}(xo),Vo=Object.assign?Object.assign:function(t,e,r,n){for(var o=arguments,i=1;i=0;e--){var r=vi().key(e);t(gi(r),r)}},remove:function(t){return vi().removeItem(t)},clearAll:function(){return vi().clear()}};function vi(){return hi.localStorage}function gi(t){return vi().getItem(t)}var yi=Xo.trim,bi={name:"cookieStorage",read:function(t){if(!t||!ji(t))return null;var e="(?:^|.*;\\s*)"+escape(t).replace(/[\-\.\+\*]/g,"\\$&")+"\\s*\\=\\s*((?:[^;](?!;))*[^;]?).*";return unescape(mi.cookie.replace(new RegExp(e),"$1"))},write:function(t,e){if(!t)return;mi.cookie=escape(t)+"="+escape(e)+"; expires=Tue, 19 Jan 2038 03:14:07 GMT; path=/"},each:_i,remove:wi,clearAll:function(){_i((function(t,e){wi(e)}))}},mi=Xo.Global.document;function _i(t){for(var e=mi.cookie.split(/; ?/g),r=e.length-1;r>=0;r--)if(yi(e[r])){var n=e[r].split("="),o=unescape(n[0]);t(unescape(n[1]),o)}}function wi(t){t&&ji(t)&&(mi.cookie=escape(t)+"=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/")}function ji(t){return new RegExp("(?:^|;\\s*)"+escape(t).replace(/[\-\.\+\*]/g,"\\$&")+"\\s*\\=").test(mi.cookie)}var Oi=function(){var t={};return{defaults:function(e,r){t=r},get:function(e,r){var n=e();return void 0!==n?n:t[r]}}};var Si="expire_mixin",Ei=function(){var t=this.createStore(this.storage,null,this._namespacePrefix+Si);return{set:function(e,r,n,o){this.hasNamespace(Si)||t.set(r,o);return e()},get:function(t,r){this.hasNamespace(Si)||e.call(this,r);return t()},remove:function(e,r){this.hasNamespace(Si)||t.remove(r);return e()},getExpiration:function(e,r){return t.get(r)},removeExpiredKeys:function(t){var r=[];this.each((function(t,e){r.push(e)}));for(var n=0;n>>8,r[2*n+1]=a%256}return r},decompressFromUint8Array:function(e){if(null==e)return i.decompress(e);for(var r=new Array(e.length/2),n=0,o=r.length;n>=1}else{for(o=1,n=0;n>=1}0==--l&&(l=Math.pow(2,h),h++),delete u[f]}else for(o=a[f],n=0;n>=1;0==--l&&(l=Math.pow(2,h),h++),a[s]=p++,f=String(c)}if(""!==f){if(Object.prototype.hasOwnProperty.call(u,f)){if(f.charCodeAt(0)<256){for(n=0;n>=1}else{for(o=1,n=0;n>=1}0==--l&&(l=Math.pow(2,h),h++),delete u[f]}else for(o=a[f],n=0;n>=1;0==--l&&(l=Math.pow(2,h),h++)}for(o=2,n=0;n>=1;for(;;){if(v<<=1,g==e-1){d.push(r(v));break}g++}return d.join("")},decompress:function(t){return null==t?"":""==t?null:i._decompress(t.length,32768,(function(e){return t.charCodeAt(e)}))},_decompress:function(e,r,n){var o,i,a,u,c,s,f,l=[],p=4,h=4,d=3,v="",g=[],y={val:n(0),position:r,index:1};for(o=0;o<3;o+=1)l[o]=o;for(a=0,c=Math.pow(2,2),s=1;s!=c;)u=y.val&y.position,y.position>>=1,0==y.position&&(y.position=r,y.val=n(y.index++)),a|=(u>0?1:0)*s,s<<=1;switch(a){case 0:for(a=0,c=Math.pow(2,8),s=1;s!=c;)u=y.val&y.position,y.position>>=1,0==y.position&&(y.position=r,y.val=n(y.index++)),a|=(u>0?1:0)*s,s<<=1;f=t(a);break;case 1:for(a=0,c=Math.pow(2,16),s=1;s!=c;)u=y.val&y.position,y.position>>=1,0==y.position&&(y.position=r,y.val=n(y.index++)),a|=(u>0?1:0)*s,s<<=1;f=t(a);break;case 2:return""}for(l[3]=f,i=f,g.push(f);;){if(y.index>e)return"";for(a=0,c=Math.pow(2,d),s=1;s!=c;)u=y.val&y.position,y.position>>=1,0==y.position&&(y.position=r,y.val=n(y.index++)),a|=(u>0?1:0)*s,s<<=1;switch(f=a){case 0:for(a=0,c=Math.pow(2,8),s=1;s!=c;)u=y.val&y.position,y.position>>=1,0==y.position&&(y.position=r,y.val=n(y.index++)),a|=(u>0?1:0)*s,s<<=1;l[h++]=t(a),f=h-1,p--;break;case 1:for(a=0,c=Math.pow(2,16),s=1;s!=c;)u=y.val&y.position,y.position>>=1,0==y.position&&(y.position=r,y.val=n(y.index++)),a|=(u>0?1:0)*s,s<<=1;l[h++]=t(a),f=h-1,p--;break;case 2:return g.join("")}if(0==p&&(p=Math.pow(2,d),d++),l[f])v=l[f];else{if(f!==h)return null;v=i+i.charAt(0)}g.push(v),l[h++]=i+v.charAt(0),i=v,0==--p&&(p=Math.pow(2,d),d++)}}};return i}();null!=t&&(t.exports=e)}));var Ni=[di,bi],$i=[Oi,Ei,Pi,function(){return{get:function(t,e){var r=t(e);if(!r)return r;var n=Ci.decompress(r);return null==n?r:this._deserialize(n)},set:function(t,e,r){var n=Ci.compress(this._serialize(r));t(e,n)}}}],zi=fi.createStore(Ni,$i),Fi=Xo.Global;function Ii(){return Fi.sessionStorage}function Ri(t){return Ii().getItem(t)}var Ji=[{name:"sessionStorage",read:Ri,write:function(t,e){return Ii().setItem(t,e)},each:function(t){for(var e=Ii().length-1;e>=0;e--){var r=Ii().key(e);t(Ri(r),r)}},remove:function(t){return Ii().removeItem(t)},clearAll:function(){return Ii().clear()}},bi],Mi=[Oi,Ei],Ui=fi.createStore(Ji,Mi),Di=zi,Hi=Ui,Li=Array.isArray,Bi=void 0!==m?m:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},Ki="object"==typeof Bi&&Bi&&Bi.Object===Object&&Bi,Vi="object"==typeof self&&self&&self.Object===Object&&self,Gi=(Ki||Vi||Function("return this")()).Symbol,Yi=Object.prototype,Wi=Yi.hasOwnProperty,Xi=Yi.toString,Qi=Gi?Gi.toStringTag:void 0;var Zi=Object.prototype.toString;var ta="[object Null]",ea="[object Undefined]",ra=Gi?Gi.toStringTag:void 0;function na(t){return null==t?void 0===t?ea:ta:ra&&ra in Object(t)?function(t){var e=Wi.call(t,Qi),r=t[Qi];try{t[Qi]=void 0;var n=!0}catch(t){}var o=Xi.call(t);return n&&(e?t[Qi]=r:delete t[Qi]),o}(t):function(t){return Zi.call(t)}(t)}var oa=function(t,e){return function(r){return t(e(r))}}(Object.getPrototypeOf,Object);function ia(t){return null!=t&&"object"==typeof t}var aa="[object Object]",ua=Function.prototype,ca=Object.prototype,sa=ua.toString,fa=ca.hasOwnProperty,la=sa.call(Object);var pa=Gi?Gi.prototype:void 0,ha=(pa&&pa.toString,"[object String]");function da(t){return"string"==typeof t||!Li(t)&&ia(t)&&na(t)==ha}var va=function(t,e){return!!t.filter((function(t){return t===e})).length},ga=function(t,e){var r=Object.keys(t);return va(r,e)},ya=function(t){void 0===t&&(t=!1);var e=Date.now();return t?Math.floor(e/1e3):e},ba="query",ma="mutation",_a="socket",wa="payload",ja="condition",Oa=function(){try{if(window||document)return!0}catch(t){}return!1},Sa=function(){try{if(!Oa()&&Bi)return!0}catch(t){}return!1};var Ea=function(t){function e(){for(var r=arguments,n=[],o=arguments.length;o--;)n[o]=r[o];t.apply(this,n),this.message=n[0],this.detail=n[1],this.className=e.name,Error.captureStackTrace&&Error.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0}};return r.name.get=function(){return"JsonqlValidationError"},Object.defineProperties(e,r),e}(function(t){function e(){for(var e=arguments,r=[],n=arguments.length;n--;)r[n]=e[n];t.apply(this,r)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.where=function(){return Oa()?"browser":Sa()?"node":"unknown"},e}(Error));var ka=function(t){var e;return(e={}).args=t,e};var Aa=function(t){return ga(t,"data")&&!ga(t,"error")?t.data:t},xa=function(t){return function(t){if(!ia(t)||na(t)!=aa)return!1;var e=oa(t);if(null===e)return!0;var r=fa.call(e,"constructor")&&e.constructor;return"function"==typeof r&&r instanceof r&&sa.call(r)==la}(t)&&(ga(t,ba)||ga(t,ma)||ga(t,_a))},Ta=function(t,e){return void 0===e&&(e={}),xa(e)?Promise.resolve(e):t.getContract()},Pa="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";function qa(t){this.message=t}qa.prototype=new Error,qa.prototype.name="InvalidCharacterError";var Ca="undefined"!=typeof window&&window.atob&&window.atob.bind(window)||function(t){var e=String(t).replace(/=+$/,"");if(e.length%4==1)throw new qa("'atob' failed: The string to be decoded is not correctly encoded.");for(var r,n,o=0,i=0,a="";n=e.charAt(i++);~n&&(r=o%4?64*r+n:n,o++%4)?a+=String.fromCharCode(255&r>>(-2*o&6)):0)n=Pa.indexOf(n);return a};var Na=function(t){var e=t.replace(/-/g,"+").replace(/_/g,"/");switch(e.length%4){case 0:break;case 2:e+="==";break;case 3:e+="=";break;default:throw"Illegal base64url string!"}try{return function(t){return decodeURIComponent(Ca(t).replace(/(.)/g,(function(t,e){var r=e.charCodeAt(0).toString(16).toUpperCase();return r.length<2&&(r="0"+r),"%"+r})))}(e)}catch(t){return Ca(e)}};function $a(t){this.message=t}$a.prototype=new Error,$a.prototype.name="InvalidTokenError";var za=function(t,e){if("string"!=typeof t)throw new $a("Invalid token specified");var r=!0===(e=e||{}).header?0:1;try{return JSON.parse(Na(t.split(".")[r]))}catch(t){throw new $a("Invalid token specified: "+t.message)}},Fa=$a;za.InvalidTokenError=Fa;var Ia,Ra,Ja,Ma,Ua,Da,Ha,La,Ba,Ka=function(t){void 0===t&&(t=!1);var e=Date.now();return t?Math.floor(e/1e3):e};function Va(t){if(Uo(t))return function(t){var e=t.iat||Ka(!0);if(t.exp&&e>=t.exp){var r=new Date(t.exp).toISOString();throw new bo("Token has expired on "+r,t)}return t}(za(t));throw new bo("Token must be a string!")}Lo("HS256",["string"]),Lo(!1,["boolean","number","string"],((Ia={})[d]="exp",Ia[f]=!0,Ia)),Lo(!1,["boolean","number","string"],((Ra={})[d]="nbf",Ra[f]=!0,Ra)),Lo(!1,["boolean","string"],((Ja={})[d]="iss",Ja[f]=!0,Ja)),Lo(!1,["boolean","string"],((Ma={})[d]="sub",Ma[f]=!0,Ma)),Lo(!1,["boolean","string"],((Ua={})[d]="iss",Ua[f]=!0,Ua)),Lo(!1,["boolean"],((Da={})[f]=!0,Da)),Lo(!1,["boolean","string"],((Ha={})[f]=!0,Ha)),Lo(!1,["boolean","string"],((La={})[f]=!0,La)),Lo(!1,["boolean"],((Ba={})[f]=!0,Ba));var Ga=u[0],Ya=u[1],Wa=function(t){!function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];try{window&&window.console&&Reflect.apply(console.log,null,t)}catch(t){}}(t),this.fly=t.Fly?new t.Fly:new Fly,this.opts=t,this.extraHeader={},this.extraParams={},this.reqInterceptor(),this.resInterceptor()},Xa={headers:{configurable:!0}};Xa.headers.set=function(t){this.extraHeader=t},Wa.prototype.request=function(t,e,r){var n;void 0===e&&(e={}),void 0===r&&(r={}),this.headers=r;var o=Nn({},{_cb:ya()},this.extraParams);if(this.opts.enableJsonp){var i=function(t){return Object.keys(t)[0]}(t);o=Nn({},o,((n={}).jsonqlJsonpCallback=i,n)),t=t[i]}return this.fly.request(this.jsonqlEndpoint,t,Nn({},{method:Ga,params:o},e))},Wa.prototype.reqInterceptor=function(){var t=this;this.fly.interceptors.request.use((function(e){var r=t.getHeaders();for(var n in t.log("request interceptor call",r),r)e.headers[n]=r[n];return e}))},Wa.prototype.processJsonp=function(t){return Aa(t)},Wa.prototype.resInterceptor=function(){var t=this,e=this,r=e.opts.enableJsonp;this.fly.interceptors.response.use((function(n){t.log("response interceptor call"),e.cleanUp();var o=Uo(n.data)?JSON.parse(n.data):n.data;return r?e.processJsonp(o):Aa(o)}),(function(t){throw e.cleanUp(),console.error(t),new mo("Server side error",t)}))},Wa.prototype.getHeaders=function(){return this.opts.enableAuth?Nn({},a,this.getAuthHeader(),this.extraHeader):Nn({},a,this.extraHeader)},Wa.prototype.cleanUp=function(){this.extraHeader={},this.extraParams={}},Wa.prototype.get=function(){var t=this;return this.opts.showContractDesc&&(this.extraParams=Nn({},this.extraParams,y)),this.request({},{method:"GET"},this.contractHeader).then(Oo).then((function(e){return t.log("get contract result",e),e.cache&&e.contract?e.contract:e}))},Wa.prototype.query=function(t,e){return void 0===e&&(e=[]),this.request(function(t,e,r){var n;if(void 0===e&&(e=[]),void 0===r&&(r=!1),da(t)&&Li(e)){var o=ka(e);return!0===r?o:((n={})[t]=o,n)}throw new Ea("[createQuery] expect resolverName to be string and args to be array!",{resolverName:t,args:e})}(t,e)).then(Oo)},Wa.prototype.mutation=function(t,e,r){return void 0===e&&(e={}),void 0===r&&(r={}),this.request(function(t,e,r,n){var o;void 0===r&&(r={}),void 0===n&&(n=!1);var i={};if(i[wa]=e,i[ja]=r,!0===n)return i;if(da(t))return(o={})[t]=i,o;throw new Ea("[createMutation] expect resolverName to be string!",{resolverName:t,payload:e,condition:r})}(t,e,r),{method:Ya}).then(Oo)},Object.defineProperties(Wa.prototype,Xa);var Qa=function(t){function e(e,r){void 0===r&&(r=null),r&&(e.Fly=r),t.call(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={storeIt:{configurable:!0},jsonqlEndpoint:{configurable:!0},jsonqlContract:{configurable:!0},jsonqlToken:{configurable:!0},jsonqlUserdata:{configurable:!0}};return r.storeIt.set=function(t){throw console.info("storeIt",t),Do(t)&&t.length>=2&&Reflect.apply(Di.set,Di,t),new yo("Expect argument to be array and least 2 items!")},r.jsonqlEndpoint.set=function(t){var e=Di.get("endpoint")||[];va(e,t)||(e.push(t),this.storeId=["endpoint",e],this.endpointIndex=e.length-1)},r.jsonqlContract.set=function(t){var e=this.opts.storageKey,r=[e],n=t[0],o=t[1],i=Di.get(e)||[];i[this.endpointIndex||0]=n,r.push(i),o&&r.push(o),this.opts.keepContract&&(this.storeIt=r)},r.jsonqlToken.set=function(t){var e="credential",r=localStorage.get(e)||[];if(!va(r,t)){var n=r.length-1;r[n]=t,this[e+"Index"]=n;var o=[e,r];if(this.opts.tokenExpired){var i=parseFloat(this.opts.tokenExpired);if(!isNaN(i)&&i>0){var a=ya();o.push(a+parseFloat(i))}}return this.storeIt=o,this.jsonqlUserdata=this.decoder(t),t}return!1},r.jsonqlUserdata.set=function(t){var e=["userdata",t];return t.exp&&e.push(t.exp),Reflect.apply(Di.set,Di,e)},r.jsonqlEndpoint.get=function(){var t=Di.get("endpoint");if(!t){var e=this.opts,r=[e.hostname,e.jsonqlPath].join("/");return this.jsonqlEndpoint=r,r}return t[this.endpointIndex]},r.jsonqlContract.get=function(){var t=this.opts.storageKey;return(Di.get(t)||[])[this.endpointIndex]||!1},r.jsonqlToken.get=function(){var t="credential",e=localStorage.get(t);return!!e&&e[this[t+"Index"]]},r.jsonqlUserdata.get=function(){return Hi.get("userdata")},e.prototype.log=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];!0===this.opts.debugOn&&Reflect.apply(console.info,console,t)},Object.defineProperties(e.prototype,r),e}(function(t){function e(e){t.call(this,e),e.enableAuth&&e.useJwt&&(this.setDecoder=Va)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={userdata:{configurable:!0},rawAuthToken:{configurable:!0},setDecoder:{configurable:!0}};return r.userdata.get=function(){return this.jsonqlUserdata},r.rawAuthToken.get=function(){return this.jsonqlToken},r.setDecoder.set=function(t){"function"==typeof t&&(this.decoder=t)},e.prototype.storeToken=function(t){return this.jsonqlToken=t},e.prototype.decoder=function(t){return t},e.prototype.getAuthHeader=function(){var t,e=this.rawAuthToken;return e?((t={})[this.opts.AUTH_HEADER]="Bearer "+e,t):{}},Object.defineProperties(e.prototype,r),e}(function(t){function e(e){t.call(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={contractHeader:{configurable:!0}};return e.prototype.getContract=function(){var t=this.readContract();if(this.log("getContract first call",t),t&&Array.isArray(t)){var e=t[this.endpointIndex||0];if(e)return Promise.resolve(e)}return this.get().then(this.storeContract.bind(this))},r.contractHeader.get=function(){var t={};return!1!==this.opts.contractKey&&(t[this.opts.contractKeyName]=this.opts.contractKey),t},e.prototype.storeContract=function(t){if(!xa(t))throw new yo("Contract is malformed!");var e=[t];if(this.opts.contractExpired){var r=parseFloat(this.opts.contractExpired);!isNaN(r)&&r>0&&e.push(r)}return this.jsonqlContract=e,this.log("storeContract return result",t),t},e.prototype.readContract=function(){return xa(this.opts.contract)?this.opts.contract:Di.get(this.opts.storageKey)},Object.defineProperties(e.prototype,r),e}(Wa))),Za=function(t,e,r,n){return function(){for(var r=[],o=arguments.length;o--;)r[o]=arguments[o];var i=n.auth[e].params,a=i.map((function(t,e){return r[e]})),u=r[i.length]||{};return Ho(r,i).then((function(){return t.query.apply(t,[e,a,u])})).catch(So)}};var tu=function(t,e,r,n){var o=function(t,e,r,n){var o={query:{},mutation:{}},i=function(e){o.query[e]=function(){for(var r=[],o=arguments.length;o--;)r[o]=arguments[o];var i=n.query[e].params,a=i.map((function(t,e){return r[e]})),u=r[i.length]||{};return Ho(a,i).then((function(){return t.query.apply(t,[e,a,u])})).catch(So)}};for(var a in n.query)i(a);var u=function(e){o.mutation[e]=function(r,o,i){void 0===i&&(i={});var a=[r,o],u=n.mutation[e].params;return Ho(a,u).then((function(){return t.mutation.apply(t,[e,r,o,i])})).catch(So)}};for(var s in n.mutation)u(s);if(r.enableAuth&&n.auth){o.auth={};var f=r.loginHandlerName,l=r.logoutHandlerName;n.auth[f]&&(o.auth[f]=function(){for(var o=[],i=arguments.length;i--;)o[i]=arguments[i];var a=Za(t,f,r,n);return a.apply(null,o).then(t.postLoginAction).then((function(t){return e.$trigger(v,t),t}))}),n.auth[l]?o.auth[l]=function(){for(var o=[],i=arguments.length;i--;)o[i]=arguments[i];var a=Za(t,l,r,n);return a.apply(null,o).then(t.postLogoutAction).then((function(t){return e.$trigger(g,t),t}))}:o.auth[l]=function(){t.postLogoutAction(c),e.$trigger(g,c)}}return o}(t,n,e,r);return e.enableAuth&&(o.userdata=function(){return t.userdata}),o.getToken=function(){return t.rawAuthToken},e.exposeContract&&(o.getContract=function(){return t.get()}),o.eventEmitter=n,o.version="1.3.2",o},eu={contract:!1,MUTATION_ARGS:["name","payload","conditions"],CONTENT_TYPE:i,BEARER:"Bearer",AUTH_HEADER:"Authorization"},ru={hostname:Lo([window.location.protocol,window.location.host].join("//"),["string"]),jsonqlPath:Lo("jsonql",["string"]),loginHandlerName:Lo(v,["string"]),logoutHandlerName:Lo(g,["string"]),enableJsonp:Lo(!1,["boolean"]),enableAuth:Lo(!1,["boolean"]),useJwt:Lo(!0,["boolean"]),useLocalstorage:Lo(!0,["boolean"]),storageKey:Lo("storageKey",["string"]),authKey:Lo("authKey",["string"]),contractExpired:Lo(0,["number"]),keepContract:Lo(!0,["boolean"]),exposeContract:Lo(!1,["boolean"]),showContractDesc:Lo(!1,["boolean"]),contractKey:Lo(!1,["boolean"]),contractKeyName:Lo("X-JSONQL-CV-KEY",["string"]),enableTimeout:Lo(!1,["boolean"]),timeout:Lo(5e3,["number"]),returnInstance:Lo(!1,["boolean"]),allowReturnRawToken:Lo(!1,["boolean"]),debugOn:Lo(!1,["boolean"])};function nu(t,e,r){return void 0===e&&(e={}),void 0===r&&(r=null),function(t){var e=t.contract;return Bo(t,ru,eu).then((function(t){return t.contract=e,t}))}(e).then((function(t){return{baseClient:new Qa(t,r),opts:t}})).then((function(e){var r=e.baseClient,n=e.opts;return Ta(r,n.contract).then((function(e){return tu(r,n,e,t)}))}))}var ou=new WeakMap,iu=new WeakMap;var au=function(){this.__suspend__=null,this.queueStore=new Set},uu={$suspend:{configurable:!0},$queues:{configurable:!0}};uu.$suspend.set=function(t){var e=this;if("boolean"!=typeof t)throw new Error("$suspend only accept Boolean value!");var r=this.__suspend__;this.__suspend__=t,this.logger("($suspend)","Change from "+r+" --\x3e "+t),!0===r&&!1===t&&setTimeout((function(){e.release()}),1)},au.prototype.$queue=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];return!0===this.__suspend__&&(this.logger("($queue)","added to $queue",t),this.queueStore.add(t)),this.__suspend__},uu.$queues.get=function(){var t=this.queueStore.size;return this.logger("($queues)","size: "+t),t>0?Array.from(this.queueStore):[]},au.prototype.release=function(){var t=this,e=this.queueStore.size;if(this.logger("(release)","Release was called "+e),e>0){var r=Array.from(this.queueStore);this.queueStore.clear(),this.logger("queue",r),r.forEach((function(e){t.logger(e),Reflect.apply(t.$trigger,t,e)})),this.logger("Release size "+this.queueStore.size)}},Object.defineProperties(au.prototype,uu);var cu=function(t){function e(e){void 0===e&&(e={}),t.call(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={$done:{configurable:!0}};return e.prototype.logger=function(){},e.prototype.$on=function(t,e,r){var n=this;void 0===r&&(r=null);this.validate(t,e);var o=this.takeFromStore(t);if(!1===o)return this.logger("($on)",t+" callback is not in lazy store"),this.addToNormalStore(t,"on",e,r);this.logger("($on)",t+" found in lazy store");var i=0;return o.forEach((function(o){var a=o[0],u=o[1],c=o[2];if(c&&"on"!==c)throw new Error("You are trying to register an event already been taken by other type: "+c);n.run(e,a,r||u),i+=n.addToNormalStore(t,"on",e,r||u)})),i},e.prototype.$once=function(t,e,r){void 0===r&&(r=null),this.validate(t,e);var n=this.takeFromStore(t);this.normalStore;if(!1===n)return this.logger("($once)",t+" not in the lazy store"),this.addToNormalStore(t,"once",e,r);this.logger("($once)",n);var o=Array.from(n)[0],i=o[0],a=o[1],u=o[2];if(u&&"once"!==u)throw new Error("You are trying to register an event already been taken by other type: "+u);this.run(e,i,r||a),this.$off(t)},e.prototype.$only=function(t,e,r){var n=this;void 0===r&&(r=null),this.validate(t,e);var o=!1,i=this.takeFromStore(t);(this.normalStore.has(t)||(this.logger("($only)",t+" add to store"),o=this.addToNormalStore(t,"only",e,r)),!1!==i)&&(this.logger("($only)",t+" found data in lazy store to execute"),Array.from(i).forEach((function(t){var o=t[0],i=t[1],a=t[2];if(a&&"only"!==a)throw new Error("You are trying to register an event already been taken by other type: "+a);n.run(e,o,r||i)})));return o},e.prototype.$onlyOnce=function(t,e,r){void 0===r&&(r=null),this.validate(t,e);var n=!1,o=this.takeFromStore(t);if(this.normalStore.has(t)||(this.logger("($onlyOnce)",t+" add to store"),n=this.addToNormalStore(t,"onlyOnce",e,r)),!1!==o){this.logger("($onlyOnce)",o);var i=Array.from(o)[0],a=i[0],u=i[1],c=i[2];if(c&&"onlyOnce"!==c)throw new Error("You are trying to register an event already been taken by other type: "+c);this.run(e,a,r||u),this.$off(t)}return n},e.prototype.$replace=function(t,e,r,n){if(void 0===r&&(r=null),void 0===n&&(n="on"),this.validateType(n)){this.$off(t);var o=this["$"+n];return Reflect.apply(o,this,[t,e,r])}throw new Error(n+" is not supported!")},e.prototype.$trigger=function(t,e,r,n){void 0===e&&(e=[]),void 0===r&&(r=null),void 0===n&&(n=!1),this.validateEvt(t);var o=0,i=this.normalStore;if(this.logger("($trigger)","normalStore",i),i.has(t)){var a=this.$queue(t,e,r,n);if(this.logger("($trigger)",t,"found; add to queue: ",a),!0===a)return!1;for(var u=Array.from(i.get(t)),c=u.length,s=!1,f=0;f0;)n[o]=arguments[o+2];if(t.has(e)?(this.logger("(addToStore)",e+" existed"),r=t.get(e)):(this.logger("(addToStore)","create new Set for "+e),r=new Set),n.length>2)if(Array.isArray(n[0])){var i=n[2];this.checkTypeInLazyStore(e,i)||r.add(n)}else this.checkContentExist(n,r)||(this.logger("(addToStore)","insert new",n),r.add(n));else r.add(n);return t.set(e,r),[t,r.size]},e.prototype.checkContentExist=function(t,e){return!!Array.from(e).filter((function(e){return e[0]===t[0]})).length},e.prototype.checkTypeInStore=function(t,e){this.validateEvt(t,e);var r=this.$get(t,!0);return!1===r||!r.filter((function(t){var r=t[3];return e!==r})).length},e.prototype.checkTypeInLazyStore=function(t,e){this.validateEvt(t,e);var r=this.lazyStore.get(t);return this.logger("(checkTypeInLazyStore)",r),!!r&&!!Array.from(r).filter((function(t){return t[2]!==e})).length},e.prototype.addToNormalStore=function(t,e,r,n){if(void 0===n&&(n=null),this.logger("(addToNormalStore)",t,e,"try to add to normal store"),this.checkTypeInStore(t,e)){this.logger("(addToNormalStore)",e+" can add to "+t+" normal store");var o=this.hashFnToKey(r),i=[this.normalStore,t,o,r,n,e],a=Reflect.apply(this.addToStore,this,i),u=a[0],c=a[1];return this.normalStore=u,c}return!1},e.prototype.addToLazyStore=function(t,e,r,n){void 0===e&&(e=[]),void 0===r&&(r=null),void 0===n&&(n=!1);var o=[this.lazyStore,t,this.toArray(e),r];n&&o.push(n);var i=Reflect.apply(this.addToStore,this,o),a=i[0],u=i[1];return this.lazyStore=a,u},e.prototype.toArray=function(t){return Array.isArray(t)?t:[t]},r.normalStore.set=function(t){ou.set(this,t)},r.normalStore.get=function(){return ou.get(this)},r.lazyStore.set=function(t){iu.set(this,t)},r.lazyStore.get=function(){return iu.get(this)},e.prototype.hashFnToKey=function(t){return t.toString().split("").reduce((function(t,e){return(t=(t<<5)-t+e.charCodeAt(0))&t}),0)+""},Object.defineProperties(e.prototype,r),e}(au));function su(t,e,r){var n=e.contract,o=function(t){return Ko(t,ru,eu)}(e),i=new Qa(o,r);return tu(i,o,n,t)}function fu(t,e){var r,n=(r=e.debugOn,new cu({logger:r?function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];t.unshift("[NBS]"),console.log.apply(null,t)}:void 0}));return e.contract&&xa(e.contract)?su(n,e,t):nu(n,e,t)}return function(t){return void 0===t&&(t={}),fu(o,t)}})); +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).jsonqlClient=e()}(this,(function(){"use strict";var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function e(t,e){return t(e={exports:{}},e.exports),e.exports}var r,n=e((function(t,e){var r;r=function(){return function(t){var e={};function r(n){if(e[n])return e[n].exports;var o=e[n]={i:n,l:!1,exports:{}};return t[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=t,r.c=e,r.i=function(t){return t},r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:n})},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=2)}([function(t,e,r){var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};t.exports={type:function(t){return Object.prototype.toString.call(t).slice(8,-1).toLowerCase()},isObject:function(t,e){return e?"object"===this.type(t):t&&"object"===(void 0===t?"undefined":n(t))},isFormData:function(t){return"undefined"!=typeof FormData&&t instanceof FormData},trim:function(t){return t.replace(/(^\s*)|(\s*$)/g,"")},encode:function(t){return encodeURIComponent(t).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")},formatParams:function(t){var e="",r=!0,n=this;return this.isObject(t)?(function t(o,i){var a=n.encode,u=n.type(o);if("array"==u)o.forEach((function(e,r){n.isObject(e)||(r=""),t(e,i+"%5B"+r+"%5D")}));else if("object"==u)for(var c in o)t(o[c],i?i+"%5B"+a(c)+"%5D":a(c));else r||(e+="&"),r=!1,e+=i+"="+a(o)}(t,""),e):t},merge:function(t,e){for(var r in e)t.hasOwnProperty(r)?this.isObject(e[r],1)&&this.isObject(t[r],1)&&this.merge(t[r],e[r]):t[r]=e[r];return t}}},,function(t,e,r){var n=function(){function t(t,e){for(var r=0;r0&&(t+=(-1===t.indexOf("?")?"?":"&")+w.join("&")),a.open(r.method,t);try{a.withCredentials=!!r.withCredentials,a.timeout=r.timeout||0,"stream"!==y&&(a.responseType=y)}catch(t){}var j=r.headers[u]||r.headers[c],O="application/x-www-form-urlencoded";for(var S in o.trim((j||"").toLowerCase())===O?e=o.formatParams(e):o.isFormData(e)||-1===["object","array"].indexOf(o.type(e))||(O="application/json;charset=utf-8",e=JSON.stringify(e)),j||b||(r.headers[u]=O),r.headers)if(S===u&&o.isFormData(e))delete r.headers[S];else try{a.setRequestHeader(S,r.headers[S])}catch(t){}function E(t,e,n){v(l.p,(function(){if(t){n&&(e.request=r);var o=t.call(l,e,Promise);e=void 0===o?e:o}d(e)||(e=Promise[0===n?"resolve":"reject"](e)),e.then((function(t){s(t)})).catch((function(t){h(t)}))}))}function k(t){t.engine=a,E(l.onerror,t,-1)}function A(t,e){this.message=t,this.status=e}a.onload=function(){try{var t=a.response||a.responseText;t&&r.parseJson&&-1!==(a.getResponseHeader(u)||"").indexOf("json")&&!o.isObject(t)&&(t=JSON.parse(t));var e=a.responseHeaders;if(!e){e={};var n=(a.getAllResponseHeaders()||"").split("\r\n");n.pop(),n.forEach((function(t){if(t){var r=t.split(":")[0];e[r]=a.getResponseHeader(r)}}))}var i=a.status,c=a.statusText,s={data:t,headers:e,status:i,statusText:c};if(o.merge(s,a._response),i>=200&&i<300||304===i)s.engine=a,s.request=r,E(l.handler,s,0);else{var f=new A(c,i);f.response=s,k(f)}}catch(f){k(new A(f.msg,a.status))}},a.onerror=function(t){k(new A(t.msg||"Network Error",0))},a.ontimeout=function(){k(new A("timeout [ "+a.timeout+"ms ]",1))},a._options=r,setTimeout((function(){a.send(b?null:e)}),0)}(n):s(n)}),(function(t){h(t)}))}))}));return h.engine=a,h}},{key:"all",value:function(t){return Promise.all(t)}},{key:"spread",value:function(t){return function(e){return t.apply(null,e)}}}]),t}();a.default=a,["get","post","put","patch","head","delete"].forEach((function(t){a.prototype[t]=function(e,r,n){return this.request(e,r,o.merge({method:t},n))}})),["lock","unlock","clear"].forEach((function(t){a.prototype[t]=function(){this.interceptors.request[t]()}})),t.exports=a}])},t.exports=r()})),o=(r=n)&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r,i="application/vnd.api+json",a={Accept:i,"Content-Type":[i,"charset=utf-8"].join(";")},u=["POST","PUT"],c="type",s="optional",f="enumv",l="args",p="checker",h="alias",d={desc:"y"},v="No message";var g="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},y="object"==typeof g&&g&&g.Object===Object&&g,b="object"==typeof self&&self&&self.Object===Object&&self,m=y||b||Function("return this")(),_=m.Symbol;function w(t,e){for(var r=-1,n=null==t?0:t.length,o=Array(n);++r=n?t:function(t,e,r){var n=-1,o=t.length;e<0&&(e=-e>o?0:o+e),(r=r>o?o:r)<0&&(r+=o),o=e>r?0:r-e>>>0,e>>>=0;for(var i=Array(o);++n-1;);return r}(n,o),function(t,e){for(var r=t.length;r--&&U(e,t[r],0)>-1;);return r}(n,o)+1).join("")}function nt(t){return void 0===t}var ot="[object Boolean]";var it="[object Number]";function at(t){return function(t){return"number"==typeof t||C(t)&&q(t)==it}(t)&&t!=+t}var ut="[object String]";function ct(t){return"string"==typeof t||!j(t)&&C(t)&&q(t)==ut}function st(t,e){return function(r){return t(e(r))}}var ft=st(Object.getPrototypeOf,Object),lt="[object Object]",pt=Function.prototype,ht=Object.prototype,dt=pt.toString,vt=ht.hasOwnProperty,gt=dt.call(Object);function yt(t){if(!C(t)||q(t)!=lt)return!1;var e=ft(t);if(null===e)return!0;var r=vt.call(e,"constructor")&&e.constructor;return"function"==typeof r&&r instanceof r&&dt.call(r)==gt}var bt,mt=function(t,e,r){for(var n=-1,o=Object(t),i=r(t),a=i.length;a--;){var u=i[bt?a:++n];if(!1===e(o[u],u,o))break}return t};var _t="[object Arguments]";function wt(t){return C(t)&&q(t)==_t}var jt=Object.prototype,Ot=jt.hasOwnProperty,St=jt.propertyIsEnumerable,Et=wt(function(){return arguments}())?wt:function(t){return C(t)&&Ot.call(t,"callee")&&!St.call(t,"callee")};var kt="object"==typeof exports&&exports&&!exports.nodeType&&exports,At=kt&&"object"==typeof module&&module&&!module.nodeType&&module,xt=At&&At.exports===kt?m.Buffer:void 0,Tt=(xt?xt.isBuffer:void 0)||function(){return!1},Pt=9007199254740991,qt=/^(?:0|[1-9]\d*)$/;function Ct(t,e){var r=typeof t;return!!(e=null==e?Pt:e)&&("number"==r||"symbol"!=r&&qt.test(t))&&t>-1&&t%1==0&&t-1&&t%1==0&&t<=$t}var zt={};zt["[object Float32Array]"]=zt["[object Float64Array]"]=zt["[object Int8Array]"]=zt["[object Int16Array]"]=zt["[object Int32Array]"]=zt["[object Uint8Array]"]=zt["[object Uint8ClampedArray]"]=zt["[object Uint16Array]"]=zt["[object Uint32Array]"]=!0,zt["[object Arguments]"]=zt["[object Array]"]=zt["[object ArrayBuffer]"]=zt["[object Boolean]"]=zt["[object DataView]"]=zt["[object Date]"]=zt["[object Error]"]=zt["[object Function]"]=zt["[object Map]"]=zt["[object Number]"]=zt["[object Object]"]=zt["[object RegExp]"]=zt["[object Set]"]=zt["[object String]"]=zt["[object WeakMap]"]=!1;var Ft,Rt="object"==typeof exports&&exports&&!exports.nodeType&&exports,It=Rt&&"object"==typeof module&&module&&!module.nodeType&&module,Jt=It&&It.exports===Rt&&y.process,Mt=function(){try{var t=It&&It.require&&It.require("util").types;return t||Jt&&Jt.binding&&Jt.binding("util")}catch(t){}}(),Ut=Mt&&Mt.isTypedArray,Dt=Ut?(Ft=Ut,function(t){return Ft(t)}):function(t){return C(t)&&Nt(t.length)&&!!zt[q(t)]},Ht=Object.prototype.hasOwnProperty;function Lt(t,e){var r=j(t),n=!r&&Et(t),o=!r&&!n&&Tt(t),i=!r&&!n&&!o&&Dt(t),a=r||n||o||i,u=a?function(t,e){for(var r=-1,n=Array(t);++r-1},ue.prototype.set=function(t,e){var r=this.__data__,n=ie(r,t);return n<0?(++this.size,r.push([t,e])):r[n][1]=e,this};var ce,se=m["__core-js_shared__"],fe=(ce=/[^.]+$/.exec(se&&se.keys&&se.keys.IE_PROTO||""))?"Symbol(src)_1."+ce:"";var le=Function.prototype.toString;function pe(t){if(null!=t){try{return le.call(t)}catch(t){}try{return t+""}catch(t){}}return""}var he=/^\[object .+?Constructor\]$/,de=Function.prototype,ve=Object.prototype,ge=de.toString,ye=ve.hasOwnProperty,be=RegExp("^"+ge.call(ye).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function me(t){return!(!Yt(t)||function(t){return!!fe&&fe in t}(t))&&(te(t)?be:he).test(pe(t))}function _e(t,e){var r=function(t,e){return null==t?void 0:t[e]}(t,e);return me(r)?r:void 0}var we=_e(m,"Map"),je=_e(Object,"create");var Oe="__lodash_hash_undefined__",Se=Object.prototype.hasOwnProperty;var Ee=Object.prototype.hasOwnProperty;var ke="__lodash_hash_undefined__";function Ae(t){var e=-1,r=null==t?0:t.length;for(this.clear();++eu))return!1;var s=i.get(t);if(s&&i.get(e))return s==e;var f=-1,l=!0,p=r&Fe?new $e:void 0;for(i.set(t,e),i.set(e,t);++f0){if(++e>=Sn)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}(On);function xn(t,e){return An(function(t,e,r){return e=jn(void 0===e?t.length-1:e,0),function(){for(var n=arguments,o=-1,i=jn(n.length-e,0),a=Array(i);++o1?e[n-1]:void 0,i=n>2?e[2]:void 0;for(o=Tn.length>3&&"function"==typeof o?(n--,o):void 0,i&&function(t,e,r){if(!Yt(r))return!1;var n=typeof e;return!!("number"==n?ee(r)&&Ct(e,r.length):"string"==n&&e in r)&&oe(r[e],t)}(e[0],e[1],i)&&(o=n<3?void 0:o,n=1),t=Object(t);++r0))},Xn=function(t){if(t.indexOf("array.<")>-1&&t.indexOf(">")>-1){var e=t.replace("array.<","").replace(">","");return e.indexOf("|")?e.split("|"):[e]}return!1},Qn=function(t,e){var r=t.arg;return e.length>1?!r.filter((function(t){return!(e.length>e.filter((function(e){return!Yn(e)(t)})).length)})).length:e.length>e.filter((function(t){return!Wn(r,t)})).length},Zn=function(t,e){if(void 0===e&&(e=null),yt(t)){if(!e)return!0;if(Wn(e))return!e.filter((function(e){var r=t[e.name];return!(e.type.length>e.type.filter((function(t){var e;return!!nt(r)||(!1!==(e=Xn(t))?!Qn({arg:r},e):!Yn(t)(r))})).length)})).length}return!1},to=function(t){var e=t.arg,r=t.param,n=[e];return Array.isArray(r.keys)&&r.keys.length&&n.push(r.keys),Zn.apply(null,n)},eo=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={statusCode:{configurable:!0},name:{configurable:!0}};return r.statusCode.get=function(){return 406},r.name.get=function(){return"Jsonql406Error"},Object.defineProperties(e,r),e}(Error),ro=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={statusCode:{configurable:!0},name:{configurable:!0}};return r.statusCode.get=function(){return 500},r.name.get=function(){return"Jsonql500Error"},Object.defineProperties(e,r),e}(Error),no=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={statusCode:{configurable:!0},name:{configurable:!0}};return r.statusCode.get=function(){return 401},r.name.get=function(){return"JsonqlAuthorisationError"},Object.defineProperties(e,r),e}(Error),oo=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={statusCode:{configurable:!0},name:{configurable:!0}};return r.statusCode.get=function(){return 401},r.name.get=function(){return"JsonqlContractAuthError"},Object.defineProperties(e,r),e}(Error),io=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={statusCode:{configurable:!0},name:{configurable:!0}};return r.statusCode.get=function(){return 500},r.name.get=function(){return"JsonqlResolverAppError"},Object.defineProperties(e,r),e}(Error),ao=function(){try{if(window||document)return!0}catch(t){}return!1},uo=function(){try{if(!ao()&&g)return!0}catch(t){}return!1};var co=function(t){function e(){for(var e=[],r=arguments.length;r--;)e[r]=arguments[r];t.apply(this,e)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.where=function(){return ao()?"browser":uo()?"node":"unknown"},e}(Error),so=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,Error.captureStackTrace&&Error.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={statusCode:{configurable:!0},name:{configurable:!0}};return r.statusCode.get=function(){return 404},r.name.get=function(){return"JsonqlResolverNotFoundError"},Object.defineProperties(e,r),e}(co),fo=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0}};return r.name.get=function(){return"JsonqlEnumError"},Object.defineProperties(e,r),e}(Error),lo=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0}};return r.name.get=function(){return"JsonqlTypeError"},Object.defineProperties(e,r),e}(Error),po=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0}};return r.name.get=function(){return"JsonqlCheckerError"},Object.defineProperties(e,r),e}(Error),ho=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,Error.captureStackTrace&&Error.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0}};return r.name.get=function(){return"JsonqlValidationError"},Object.defineProperties(e,r),e}(co),vo=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,Error.captureStackTrace&&Error.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0},statusCode:{configurable:!0}};return r.name.get=function(){return"JsonqlError"},r.statusCode.get=function(){return-1},Object.defineProperties(e,r),e}(co),go=function(t){function e(r,n){t.call(this,n),this.statusCode=r,this.className=e.name}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0}};return r.name.get=function(){return"JsonqlServerError"},Object.defineProperties(e,r),e}(Error),yo=Object.freeze({__proto__:null,Jsonql406Error:eo,Jsonql500Error:ro,JsonqlAuthorisationError:no,JsonqlContractAuthError:oo,JsonqlResolverAppError:io,JsonqlResolverNotFoundError:so,JsonqlEnumError:fo,JsonqlTypeError:lo,JsonqlCheckerError:po,JsonqlValidationError:ho,JsonqlError:vo,JsonqlServerError:go}),bo=vo,mo=function(t,e){return!!Object.keys(t).filter((function(t){return e===t})).length};function _o(t){if(mo(t,"error")){var e=t.error,r=e.className,n=e.name,o=r||n,i=e.message||v,a=e.detail||e;if(o&&yo[o])throw new yo[r](i,a);throw new bo(i,a)}return t}function wo(t){if(Array.isArray(t))throw new ho("",t);var e=t.message||v,r=t.detail||t;switch(!0){case t instanceof eo:throw new eo(e,r);case t instanceof ro:throw new ro(e,r);case t instanceof no:throw new no(e,r);case t instanceof oo:throw new oo(e,r);case t instanceof io:throw new io(e,r);case t instanceof so:throw new so(e,r);case t instanceof fo:throw new fo(e,r);case t instanceof lo:throw new lo(e,r);case t instanceof po:throw new po(e,r);case t instanceof ho:throw new ho(e,r);case t instanceof go:throw new go(e,r);default:throw new vo(e,r)}}function jo(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];try{window&&window.console&&Reflect.apply(console.log,console,t)}catch(t){}}var Oo=function(t,e){var r;switch(!0){case"object"===t:return!to(e);case"array"===t:return!Wn(e.arg);case!1!==(r=Xn(t)):return!Qn(e,r);default:return!Yn(t)(e.arg)}},So=function(t,e){return nt(t)?!0!==e.optional||nt(e.defaultvalue)?null:e.defaultvalue:t},Eo=function(t,e,r){var n;void 0===r&&(r=!1);var o=function(t,e){if(!Wn(e))throw new vo("params is not an array! Did something gone wrong when you generate the contract.json?");if(0===e.length)return[];if(!Wn(t))throw new vo("args is not an array! You might want to do: ES6 Array.from(arguments) or ES5 Array.prototype.slice.call(arguments)");switch(!0){case t.length==e.length:return jo(1),t.map((function(t,r){return{arg:t,index:r,param:e[r]}}));case!0===e[0].variable:jo(2);var r=e[0].type;return t.map((function(t,n){return{arg:t,index:n,param:e[n]||{type:r,name:"_"}}}));case t.lengthe.length:jo(4);var n=e.length,o=["any"];return t.map((function(t,r){var i=r>=n||!!e[r].optional,a=e[r]||{type:o,name:"_"+r};return{arg:i?So(t,a):t,index:r,param:a,optional:i}}));default:throw jo(5),new vo("Could not understand your arguments and parameter structure!",{args:t,params:e})}}(t,e),i=o.filter((function(t){return!0===t.optional||!0===t.param.optional?function(t){var e=t.arg,r=t.param;return!!Rn(e)&&!(r.type.length>r.type.filter((function(e){return Oo(e,t)})).length)}(t):!(t.param.type.length>t.param.type.filter((function(e){return Oo(e,t)})).length)}));return r?((n={}).error=i,n.data=o.map((function(t){return t.arg})),n):i},ko=function(t,e){var r,n=Object.keys(t);return r=e,!!n.filter((function(t){return t===r})).length},Ao=function(t){return!Rn(t)};function xo(t,e){var r=Fn(e,(function(t,e){return!t[Vn]}));return xr(r,{})?t:function(t,e){var r={};return e=tn(e),ne(t,(function(t,n,o){rn(r,e(t,n,o),t)})),r}(t,(function(t,e){return function(t,e,r){var n;return r(t,(function(t,r,o){if(e(t,r,o))return n=r,!1})),n}(r,tn((function(t){return t.alias===e})),ne)||e}))}function To(t,e){return qn(e,(function(e,r){var n,o;return nt(t[r])||!0===e[Hn]&&Ao(t[r])?Pn({},e,((n={})[Gn]=!0,n)):((o={})[Bn]=t[r],o[Dn]=e[Dn],o[Hn]=e[Hn]||!1,o[Ln]=e[Ln]||!1,o[Kn]=e[Kn]||!1,o)}))}function Po(t,e){var r=function(t,e){var r=xo(t,e);return{pristineValues:qn(Fn(e,(function(t,e){return ko(r,e)})),(function(t){return t.args})),checkAgainstAppProps:Fn(e,(function(t,e){return!ko(r,e)})),config:r}}(t,e),n=r.config,o=r.pristineValues;return[To(n,r.checkAgainstAppProps),o]}var qo=function(t){return Wn(t)?t:[t]};var Co=function(t,e){return!Wn(e)||function(t,e){return!!t.filter((function(t){return t===e})).length}(e,t)},$o=function(t,e){try{return!!te(e)&&e.apply(null,[t])}catch(t){return!1}};function No(t){return function(e,r){if(e[Gn])return e[Bn];var n=function(t,e){var r,n=[[t[Bn]],[(r={},r[Dn]=qo(t[Dn]),r[Hn]=t[Hn],r)]];return Reflect.apply(e,null,n)}(e,t);if(n.length)throw jo("runValidationAction",r,e),new lo(r,n);if(!1!==e[Ln]&&!Co(e[Bn],e[Ln]))throw jo(Ln,e[Ln]),new fo(r);if(!1!==e[Kn]&&!$o(e[Bn],e[Kn]))throw jo(Kn,e[Kn]),new po(r);return e[Bn]}}var zo=function(t,e){return Promise.resolve(Po(t,e))};function Fo(t,e,r,n){return void 0===t&&(t={}),zo(t,e).then((function(t){return function(t,e){var r=t[0],n=t[1],o=qn(r,No(e));return Pn(o,n)}(t,n)})).then((function(t){return Pn({},t,r)}))}function Ro(t,e,r,n,o,i){void 0===r&&(r=!1),void 0===n&&(n=!1),void 0===o&&(o=!1),void 0===i&&(i=!1);var a={};return a[l]=t,a[c]=e,!0===r&&(a[s]=!0),Wn(n)&&(a[f]=n),te(o)&&(a[p]=o),ct(i)&&(a[h]=i),a}var Io=Jn,Jo=Wn,Mo=function(t,e,r){return void 0===r&&(r=!1),new Promise((function(n,o){var i=Eo(t,e,r);return r?i.error.length?o(i.error):n(i.data):i.length?o(i):n([])}))},Uo=function(t,e,r){void 0===r&&(r={});var n=r[s],o=r[f],i=r[p],a=r[h];return Ro.apply(null,[t,e,n,o,i,a])},Do=function(t){return function(e,r,n){return void 0===n&&(n={}),Fo(e,r,n,t)}}(Eo),Ho=Object.assign?Object.assign:function(t,e,r,n){for(var o=arguments,i=1;i=0;e--){var r=li().key(e);t(pi(r),r)}},remove:function(t){return li().removeItem(t)},clearAll:function(){return li().clear()}};function li(){return si.localStorage}function pi(t){return li().getItem(t)}var hi=Vo.trim,di={name:"cookieStorage",read:function(t){if(!t||!bi(t))return null;var e="(?:^|.*;\\s*)"+escape(t).replace(/[\-\.\+\*]/g,"\\$&")+"\\s*\\=\\s*((?:[^;](?!;))*[^;]?).*";return unescape(vi.cookie.replace(new RegExp(e),"$1"))},write:function(t,e){if(!t)return;vi.cookie=escape(t)+"="+escape(e)+"; expires=Tue, 19 Jan 2038 03:14:07 GMT; path=/"},each:gi,remove:yi,clearAll:function(){gi((function(t,e){yi(e)}))}},vi=Vo.Global.document;function gi(t){for(var e=vi.cookie.split(/; ?/g),r=e.length-1;r>=0;r--)if(hi(e[r])){var n=e[r].split("="),o=unescape(n[0]);t(unescape(n[1]),o)}}function yi(t){t&&bi(t)&&(vi.cookie=escape(t)+"=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/")}function bi(t){return new RegExp("(?:^|;\\s*)"+escape(t).replace(/[\-\.\+\*]/g,"\\$&")+"\\s*\\=").test(vi.cookie)}var mi=function(){var t={};return{defaults:function(e,r){t=r},get:function(e,r){var n=e();return void 0!==n?n:t[r]}}};var _i="expire_mixin",wi=function(){var t=this.createStore(this.storage,null,this._namespacePrefix+_i);return{set:function(e,r,n,o){this.hasNamespace(_i)||t.set(r,o);return e()},get:function(t,r){this.hasNamespace(_i)||e.call(this,r);return t()},remove:function(e,r){this.hasNamespace(_i)||t.remove(r);return e()},getExpiration:function(e,r){return t.get(r)},removeExpiredKeys:function(t){var r=[];this.each((function(t,e){r.push(e)}));for(var n=0;n>>8,r[2*n+1]=a%256}return r},decompressFromUint8Array:function(e){if(null==e)return i.decompress(e);for(var r=new Array(e.length/2),n=0,o=r.length;n>=1}else{for(o=1,n=0;n>=1}0==--l&&(l=Math.pow(2,h),h++),delete u[f]}else for(o=a[f],n=0;n>=1;0==--l&&(l=Math.pow(2,h),h++),a[s]=p++,f=String(c)}if(""!==f){if(Object.prototype.hasOwnProperty.call(u,f)){if(f.charCodeAt(0)<256){for(n=0;n>=1}else{for(o=1,n=0;n>=1}0==--l&&(l=Math.pow(2,h),h++),delete u[f]}else for(o=a[f],n=0;n>=1;0==--l&&(l=Math.pow(2,h),h++)}for(o=2,n=0;n>=1;for(;;){if(v<<=1,g==e-1){d.push(r(v));break}g++}return d.join("")},decompress:function(t){return null==t?"":""==t?null:i._decompress(t.length,32768,(function(e){return t.charCodeAt(e)}))},_decompress:function(e,r,n){var o,i,a,u,c,s,f,l=[],p=4,h=4,d=3,v="",g=[],y={val:n(0),position:r,index:1};for(o=0;o<3;o+=1)l[o]=o;for(a=0,c=Math.pow(2,2),s=1;s!=c;)u=y.val&y.position,y.position>>=1,0==y.position&&(y.position=r,y.val=n(y.index++)),a|=(u>0?1:0)*s,s<<=1;switch(a){case 0:for(a=0,c=Math.pow(2,8),s=1;s!=c;)u=y.val&y.position,y.position>>=1,0==y.position&&(y.position=r,y.val=n(y.index++)),a|=(u>0?1:0)*s,s<<=1;f=t(a);break;case 1:for(a=0,c=Math.pow(2,16),s=1;s!=c;)u=y.val&y.position,y.position>>=1,0==y.position&&(y.position=r,y.val=n(y.index++)),a|=(u>0?1:0)*s,s<<=1;f=t(a);break;case 2:return""}for(l[3]=f,i=f,g.push(f);;){if(y.index>e)return"";for(a=0,c=Math.pow(2,d),s=1;s!=c;)u=y.val&y.position,y.position>>=1,0==y.position&&(y.position=r,y.val=n(y.index++)),a|=(u>0?1:0)*s,s<<=1;switch(f=a){case 0:for(a=0,c=Math.pow(2,8),s=1;s!=c;)u=y.val&y.position,y.position>>=1,0==y.position&&(y.position=r,y.val=n(y.index++)),a|=(u>0?1:0)*s,s<<=1;l[h++]=t(a),f=h-1,p--;break;case 1:for(a=0,c=Math.pow(2,16),s=1;s!=c;)u=y.val&y.position,y.position>>=1,0==y.position&&(y.position=r,y.val=n(y.index++)),a|=(u>0?1:0)*s,s<<=1;l[h++]=t(a),f=h-1,p--;break;case 2:return g.join("")}if(0==p&&(p=Math.pow(2,d),d++),l[f])v=l[f];else{if(f!==h)return null;v=i+i.charAt(0)}g.push(v),l[h++]=i+v.charAt(0),i=v,0==--p&&(p=Math.pow(2,d),d++)}}};return i}();null!=t&&(t.exports=e)}));var Ti=[fi,di],Pi=[mi,wi,ki,function(){return{get:function(t,e){var r=t(e);if(!r)return r;var n=xi.decompress(r);return null==n?r:this._deserialize(n)},set:function(t,e,r){var n=xi.compress(this._serialize(r));t(e,n)}}}],qi=ai.createStore(Ti,Pi),Ci=Vo.Global;function $i(){return Ci.sessionStorage}function Ni(t){return $i().getItem(t)}var zi=[{name:"sessionStorage",read:Ni,write:function(t,e){return $i().setItem(t,e)},each:function(t){for(var e=$i().length-1;e>=0;e--){var r=$i().key(e);t(Ni(r),r)}},remove:function(t){return $i().removeItem(t)},clearAll:function(){return $i().clear()}},di],Fi=[mi,wi],Ri=ai.createStore(zi,Fi),Ii=qi,Ji=Ri,Mi=Array.isArray,Ui=void 0!==g?g:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},Di="object"==typeof Ui&&Ui&&Ui.Object===Object&&Ui,Hi="object"==typeof self&&self&&self.Object===Object&&self,Li=(Di||Hi||Function("return this")()).Symbol,Bi=Object.prototype,Ki=Bi.hasOwnProperty,Vi=Bi.toString,Gi=Li?Li.toStringTag:void 0;var Yi=Object.prototype.toString;var Wi="[object Null]",Xi="[object Undefined]",Qi=Li?Li.toStringTag:void 0;function Zi(t){return null==t?void 0===t?Xi:Wi:Qi&&Qi in Object(t)?function(t){var e=Ki.call(t,Gi),r=t[Gi];try{t[Gi]=void 0;var n=!0}catch(t){}var o=Vi.call(t);return n&&(e?t[Gi]=r:delete t[Gi]),o}(t):function(t){return Yi.call(t)}(t)}var ta=function(t,e){return function(r){return t(e(r))}}(Object.getPrototypeOf,Object);function ea(t){return null!=t&&"object"==typeof t}var ra="[object Object]",na=Function.prototype,oa=Object.prototype,ia=na.toString,aa=oa.hasOwnProperty,ua=ia.call(Object);var ca=Li?Li.prototype:void 0,sa=(ca&&ca.toString,"[object String]");function fa(t){return"string"==typeof t||!Mi(t)&&ea(t)&&Zi(t)==sa}var la=function(t,e){return!!t.filter((function(t){return t===e})).length},pa=function(t,e){var r=Object.keys(t);return la(r,e)},ha=function(t){void 0===t&&(t=!1);var e=Date.now();return t?Math.floor(e/1e3):e},da="query",va="mutation",ga="socket",ya="payload",ba="condition",ma=function(){try{if(window||document)return!0}catch(t){}return!1},_a=function(){try{if(!ma()&&Ui)return!0}catch(t){}return!1};var wa=function(t){function e(){for(var r=arguments,n=[],o=arguments.length;o--;)n[o]=r[o];t.apply(this,n),this.message=n[0],this.detail=n[1],this.className=e.name,Error.captureStackTrace&&Error.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0}};return r.name.get=function(){return"JsonqlValidationError"},Object.defineProperties(e,r),e}(function(t){function e(){for(var e=arguments,r=[],n=arguments.length;n--;)r[n]=e[n];t.apply(this,r)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.where=function(){return ma()?"browser":_a()?"node":"unknown"},e}(Error));var ja=function(t){var e;return(e={}).args=t,e};var Oa=function(t){return pa(t,"data")&&!pa(t,"error")?t.data:t},Sa=function(t){return function(t){if(!ea(t)||Zi(t)!=ra)return!1;var e=ta(t);if(null===e)return!0;var r=aa.call(e,"constructor")&&e.constructor;return"function"==typeof r&&r instanceof r&&ia.call(r)==ua}(t)&&(pa(t,da)||pa(t,va)||pa(t,ga))},Ea=function(t,e){return void 0===e&&(e={}),Sa(e)?Promise.resolve(e):t.getContract()},ka="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";function Aa(t){this.message=t}Aa.prototype=new Error,Aa.prototype.name="InvalidCharacterError";var xa="undefined"!=typeof window&&window.atob&&window.atob.bind(window)||function(t){var e=String(t).replace(/=+$/,"");if(e.length%4==1)throw new Aa("'atob' failed: The string to be decoded is not correctly encoded.");for(var r,n,o=0,i=0,a="";n=e.charAt(i++);~n&&(r=o%4?64*r+n:n,o++%4)?a+=String.fromCharCode(255&r>>(-2*o&6)):0)n=ka.indexOf(n);return a};var Ta=function(t){var e=t.replace(/-/g,"+").replace(/_/g,"/");switch(e.length%4){case 0:break;case 2:e+="==";break;case 3:e+="=";break;default:throw"Illegal base64url string!"}try{return function(t){return decodeURIComponent(xa(t).replace(/(.)/g,(function(t,e){var r=e.charCodeAt(0).toString(16).toUpperCase();return r.length<2&&(r="0"+r),"%"+r})))}(e)}catch(t){return xa(e)}};function Pa(t){this.message=t}Pa.prototype=new Error,Pa.prototype.name="InvalidTokenError";var qa=function(t,e){if("string"!=typeof t)throw new Pa("Invalid token specified");var r=!0===(e=e||{}).header?0:1;try{return JSON.parse(Ta(t.split(".")[r]))}catch(t){throw new Pa("Invalid token specified: "+t.message)}},Ca=Pa;qa.InvalidTokenError=Ca;var $a,Na,za,Fa,Ra,Ia,Ja,Ma,Ua,Da=function(t){void 0===t&&(t=!1);var e=Date.now();return t?Math.floor(e/1e3):e};function Ha(t){if(Io(t))return function(t){var e=t.iat||Da(!0);if(t.exp&&e>=t.exp){var r=new Date(t.exp).toISOString();throw new vo("Token has expired on "+r,t)}return t}(qa(t));throw new vo("Token must be a string!")}Uo("HS256",["string"]),Uo(!1,["boolean","number","string"],(($a={})[h]="exp",$a[s]=!0,$a)),Uo(!1,["boolean","number","string"],((Na={})[h]="nbf",Na[s]=!0,Na)),Uo(!1,["boolean","string"],((za={})[h]="iss",za[s]=!0,za)),Uo(!1,["boolean","string"],((Fa={})[h]="sub",Fa[s]=!0,Fa)),Uo(!1,["boolean","string"],((Ra={})[h]="iss",Ra[s]=!0,Ra)),Uo(!1,["boolean"],((Ia={})[s]=!0,Ia)),Uo(!1,["boolean","string"],((Ja={})[s]=!0,Ja)),Uo(!1,["boolean","string"],((Ma={})[s]=!0,Ma)),Uo(!1,["boolean"],((Ua={})[s]=!0,Ua));var La=u[0],Ba=u[1],Ka=function(t){!function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];try{window&&window.console&&Reflect.apply(console.log,null,t)}catch(t){}}(t),this.fly=t.Fly?new t.Fly:new Fly,this.opts=t,this.extraHeader={},this.extraParams={},this.reqInterceptor(),this.resInterceptor()},Va={headers:{configurable:!0}};Va.headers.set=function(t){this.extraHeader=t},Ka.prototype.request=function(t,e,r){var n;void 0===e&&(e={}),void 0===r&&(r={}),this.headers=r;var o=Pn({},{_cb:ha()},this.extraParams);if(this.opts.enableJsonp){var i=function(t){return Object.keys(t)[0]}(t);o=Pn({},o,((n={}).jsonqlJsonpCallback=i,n)),t=t[i]}return this.fly.request(this.jsonqlEndpoint,t,Pn({},{method:La,params:o},e))},Ka.prototype.reqInterceptor=function(){var t=this;this.fly.interceptors.request.use((function(e){var r=t.getHeaders();for(var n in t.log("request interceptor call",r),r)e.headers[n]=r[n];return e}))},Ka.prototype.processJsonp=function(t){return Oa(t)},Ka.prototype.resInterceptor=function(){var t=this,e=this,r=e.opts.enableJsonp;this.fly.interceptors.response.use((function(n){t.log("response interceptor call"),e.cleanUp();var o=Io(n.data)?JSON.parse(n.data):n.data;return r?e.processJsonp(o):Oa(o)}),(function(t){throw e.cleanUp(),console.error(t),new go("Server side error",t)}))},Ka.prototype.getHeaders=function(){return this.opts.enableAuth?Pn({},a,this.getAuthHeader(),this.extraHeader):Pn({},a,this.extraHeader)},Ka.prototype.cleanUp=function(){this.extraHeader={},this.extraParams={}},Ka.prototype.get=function(){var t=this;return this.opts.showContractDesc&&(this.extraParams=Pn({},this.extraParams,d)),this.request({},{method:"GET"},this.contractHeader).then(_o).then((function(e){return t.log("get contract result",e),e.cache&&e.contract?e.contract:e}))},Ka.prototype.query=function(t,e){return void 0===e&&(e=[]),this.request(function(t,e,r){var n;if(void 0===e&&(e=[]),void 0===r&&(r=!1),fa(t)&&Mi(e)){var o=ja(e);return!0===r?o:((n={})[t]=o,n)}throw new wa("[createQuery] expect resolverName to be string and args to be array!",{resolverName:t,args:e})}(t,e)).then(_o)},Ka.prototype.mutation=function(t,e,r){return void 0===e&&(e={}),void 0===r&&(r={}),this.request(function(t,e,r,n){var o;void 0===r&&(r={}),void 0===n&&(n=!1);var i={};if(i[ya]=e,i[ba]=r,!0===n)return i;if(fa(t))return(o={})[t]=i,o;throw new wa("[createMutation] expect resolverName to be string!",{resolverName:t,payload:e,condition:r})}(t,e,r),{method:Ba}).then(_o)},Object.defineProperties(Ka.prototype,Va);var Ga=function(t){function e(e,r){void 0===r&&(r=null),r&&(e.Fly=r),t.call(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={storeIt:{configurable:!0},jsonqlEndpoint:{configurable:!0},jsonqlContract:{configurable:!0},jsonqlToken:{configurable:!0},jsonqlUserdata:{configurable:!0}};return r.storeIt.set=function(t){throw console.info("storeIt",t),Jo(t)&&t.length>=2&&Reflect.apply(Ii.set,Ii,t),new ho("Expect argument to be array and least 2 items!")},r.jsonqlEndpoint.set=function(t){var e=Ii.get("endpoint")||[];la(e,t)||(e.push(t),this.storeId=["endpoint",e],this.endpointIndex=e.length-1)},r.jsonqlContract.set=function(t){var e=this.opts.storageKey,r=[e],n=t[0],o=t[1],i=Ii.get(e)||[];i[this.endpointIndex||0]=n,r.push(i),o&&r.push(o),this.opts.keepContract&&(this.storeIt=r)},r.jsonqlToken.set=function(t){var e="credential",r=localStorage.get(e)||[];if(!la(r,t)){var n=r.length-1;r[n]=t,this[e+"Index"]=n;var o=[e,r];if(this.opts.tokenExpired){var i=parseFloat(this.opts.tokenExpired);if(!isNaN(i)&&i>0){var a=ha();o.push(a+parseFloat(i))}}return this.storeIt=o,this.jsonqlUserdata=this.decoder(t),t}return!1},r.jsonqlUserdata.set=function(t){var e=["userdata",t];return t.exp&&e.push(t.exp),Reflect.apply(Ii.set,Ii,e)},r.jsonqlEndpoint.get=function(){var t=Ii.get("endpoint");if(!t){var e=this.opts,r=[e.hostname,e.jsonqlPath].join("/");return this.jsonqlEndpoint=r,r}return t[this.endpointIndex]},r.jsonqlContract.get=function(){var t=this.opts.storageKey;return(Ii.get(t)||[])[this.endpointIndex]||!1},r.jsonqlToken.get=function(){var t="credential",e=localStorage.get(t);return!!e&&e[this[t+"Index"]]},r.jsonqlUserdata.get=function(){return Ji.get("userdata")},e.prototype.log=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];!0===this.opts.debugOn&&Reflect.apply(console.info,console,t)},Object.defineProperties(e.prototype,r),e}(function(t){function e(e){t.call(this,e),e.enableAuth&&e.useJwt&&(this.setDecoder=Ha)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={userdata:{configurable:!0},rawAuthToken:{configurable:!0},setDecoder:{configurable:!0}};return r.userdata.get=function(){return this.jsonqlUserdata},r.rawAuthToken.get=function(){return this.jsonqlToken},r.setDecoder.set=function(t){"function"==typeof t&&(this.decoder=t)},e.prototype.storeToken=function(t){return this.jsonqlToken=t},e.prototype.decoder=function(t){return t},e.prototype.getAuthHeader=function(){var t,e=this.rawAuthToken;return e?((t={})[this.opts.AUTH_HEADER]="Bearer "+e,t):{}},Object.defineProperties(e.prototype,r),e}(function(t){function e(e){t.call(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={contractHeader:{configurable:!0}};return e.prototype.getContract=function(){var t=this.readContract();if(this.log("getContract first call",t),t&&Array.isArray(t)){var e=t[this.endpointIndex||0];if(e)return Promise.resolve(e)}return this.get().then(this.storeContract.bind(this))},r.contractHeader.get=function(){var t={};return!1!==this.opts.contractKey&&(t[this.opts.contractKeyName]=this.opts.contractKey),t},e.prototype.storeContract=function(t){if(!Sa(t))throw new ho("Contract is malformed!");var e=[t];if(this.opts.contractExpired){var r=parseFloat(this.opts.contractExpired);!isNaN(r)&&r>0&&e.push(r)}return this.jsonqlContract=e,this.log("storeContract return result",t),t},e.prototype.readContract=function(){return Sa(this.opts.contract)?this.opts.contract:Ii.get(this.opts.storageKey)},Object.defineProperties(e.prototype,r),e}(Ka))),Ya=function(t){return j(t)?t:[t]},Wa=function(t){for(var e=[],r=arguments.length-1;r-- >0;)e[r]=arguments[r+1];return function(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];return e.reduce((function(t,e){return Reflect.apply(e,null,Ya(t))}),Reflect.apply(t,null,r))}};function Xa(t,e,r,n){void 0===n&&(n=!1);var o=Object.getOwnPropertyDescriptor(t,e);return!1===n&&void 0!==o?t:(Object.defineProperty(t,e,{value:r,writable:n}),t)}var Qa=function(t,e,r,n){return function(){for(var r=[],o=arguments.length;o--;)r[o]=arguments[o];var i=n.auth[e].params,a=i.map((function(t,e){return r[e]})),u=r[i.length]||{};return Mo(r,i).then((function(){return t.query.apply(t,[e,a,u])})).catch(wo)}},Za=function(t,e,r,n,o){var i={},a=function(t){i=Xa(i,t,(function(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];var i=o.query[t].params,a=i.map((function(t,e){return r[e]})),u=r[i.length]||{};return Mo(a,i).then((function(){return e.query.apply(e,[t,a,u])})).catch(wo)}))};for(var u in o.query)a(u);return t.query=i,[t,e,r,n,o]},tu=function(t,e,r,n,o){var i={},a=function(t){i=Xa(i,t,(function(r,n,i){void 0===i&&(i={});var a=[r,n],u=o.mutation[t].params;return Mo(a,u).then((function(){return e.mutation.apply(e,[t,r,n,i])})).catch(wo)}))};for(var u in o.mutation)a(u);return t.mutation=i,[t,e,r,n,o]},eu=function(t,e,r,n,o){if(n.enableAuth&&o.auth){var i={},a=n.loginHandlerName,u=n.logoutHandlerName;o.auth[a]&&(i[a]=function(){for(var t=[],n=arguments.length;n--;)t[n]=arguments[n];var i=Qa(e,a,0,o);return i.apply(null,t).then(e.postLoginAction).then((function(t){return r.$trigger("login",t),t}))}),o.auth[u]?i[u]=function(){for(var t=[],n=arguments.length;n--;)t[n]=arguments[n];var i=Qa(e,u,0,o);return i.apply(null,t).then(e.postLogoutAction).then((function(t){return r.$trigger("logout",t),t}))}:i[u]=function(){e.postLogoutAction("continue"),r.$trigger("logout","continue")},t.auth=i}return t};var ru=function(t,e,r,n){var o=function(t,e,r,n){return Wa(Za,tu,eu)({},t,e,r,n)}(t,n,e,r);return e.enableAuth&&(o.userdata=function(){return t.userdata}),o.getToken=function(){return t.rawAuthToken},e.exposeContract&&(o.getContract=function(){return t.getContract()}),o.eventEmitter=n,o.version="1.4.0",o},nu={contract:!1,MUTATION_ARGS:["name","payload","conditions"],CONTENT_TYPE:i,BEARER:"Bearer",AUTH_HEADER:"Authorization"},ou={hostname:Uo([window.location.protocol,window.location.host].join("//"),["string"]),jsonqlPath:Uo("jsonql",["string"]),loginHandlerName:Uo("login",["string"]),logoutHandlerName:Uo("logout",["string"]),enableJsonp:Uo(!1,["boolean"]),enableAuth:Uo(!1,["boolean"]),useJwt:Uo(!0,["boolean"]),useLocalstorage:Uo(!0,["boolean"]),storageKey:Uo("storageKey",["string"]),authKey:Uo("authKey",["string"]),contractExpired:Uo(0,["number"]),keepContract:Uo(!0,["boolean"]),exposeContract:Uo(!1,["boolean"]),showContractDesc:Uo(!1,["boolean"]),contractKey:Uo(!1,["boolean"]),contractKeyName:Uo("X-JSONQL-CV-KEY",["string"]),enableTimeout:Uo(!1,["boolean"]),timeout:Uo(5e3,["number"]),returnInstance:Uo(!1,["boolean"]),allowReturnRawToken:Uo(!1,["boolean"]),debugOn:Uo(!1,["boolean"])};function iu(t,e,r){return void 0===e&&(e={}),void 0===r&&(r=null),function(t){var e=t.contract;return Do(t,ou,nu).then((function(t){return t.contract=e,t}))}(e).then((function(t){return{baseClient:new Ga(t,r),opts:t}})).then((function(e){var r=e.baseClient,n=e.opts;return Ea(r,n.contract).then((function(e){return ru(r,n,e,t)}))}))}var au=new WeakMap,uu=new WeakMap;var cu=function(){this.__suspend__=null,this.queueStore=new Set},su={$suspend:{configurable:!0},$queues:{configurable:!0}};su.$suspend.set=function(t){var e=this;if("boolean"!=typeof t)throw new Error("$suspend only accept Boolean value!");var r=this.__suspend__;this.__suspend__=t,this.logger("($suspend)","Change from "+r+" --\x3e "+t),!0===r&&!1===t&&setTimeout((function(){e.release()}),1)},cu.prototype.$queue=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];return!0===this.__suspend__&&(this.logger("($queue)","added to $queue",t),this.queueStore.add(t)),this.__suspend__},su.$queues.get=function(){var t=this.queueStore.size;return this.logger("($queues)","size: "+t),t>0?Array.from(this.queueStore):[]},cu.prototype.release=function(){var t=this,e=this.queueStore.size;if(this.logger("(release)","Release was called "+e),e>0){var r=Array.from(this.queueStore);this.queueStore.clear(),this.logger("queue",r),r.forEach((function(e){t.logger(e),Reflect.apply(t.$trigger,t,e)})),this.logger("Release size "+this.queueStore.size)}},Object.defineProperties(cu.prototype,su);var fu=function(t){function e(e){void 0===e&&(e={}),t.call(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={$done:{configurable:!0}};return e.prototype.logger=function(){},e.prototype.$on=function(t,e,r){var n=this;void 0===r&&(r=null);this.validate(t,e);var o=this.takeFromStore(t);if(!1===o)return this.logger("($on)",t+" callback is not in lazy store"),this.addToNormalStore(t,"on",e,r);this.logger("($on)",t+" found in lazy store");var i=0;return o.forEach((function(o){var a=o[0],u=o[1],c=o[2];if(c&&"on"!==c)throw new Error("You are trying to register an event already been taken by other type: "+c);n.logger("($on)","call run on "+t),n.run(e,a,r||u),i+=n.addToNormalStore(t,"on",e,r||u)})),i},e.prototype.$once=function(t,e,r){void 0===r&&(r=null),this.validate(t,e);var n=this.takeFromStore(t);this.normalStore;if(!1===n)return this.logger("($once)",t+" not in the lazy store"),this.addToNormalStore(t,"once",e,r);this.logger("($once)",n);var o=Array.from(n)[0],i=o[0],a=o[1],u=o[2];if(u&&"once"!==u)throw new Error("You are trying to register an event already been taken by other type: "+u);this.logger("($once)","call run for "+t),this.run(e,i,r||a),this.$off(t)},e.prototype.$only=function(t,e,r){var n=this;void 0===r&&(r=null),this.validate(t,e);var o=!1,i=this.takeFromStore(t);(this.normalStore.has(t)||(this.logger("($only)",t+" add to store"),o=this.addToNormalStore(t,"only",e,r)),!1!==i)&&(this.logger("($only)",t+" found data in lazy store to execute"),Array.from(i).forEach((function(o){var i=o[0],a=o[1],u=o[2];if(u&&"only"!==u)throw new Error("You are trying to register an event already been taken by other type: "+u);n.logger("($only)","call run for "+t),n.run(e,i,r||a)})));return o},e.prototype.$onlyOnce=function(t,e,r){void 0===r&&(r=null),this.validate(t,e);var n=!1,o=this.takeFromStore(t);if(this.normalStore.has(t)||(this.logger("($onlyOnce)",t+" add to store"),n=this.addToNormalStore(t,"onlyOnce",e,r)),!1!==o){this.logger("($onlyOnce)",o);var i=Array.from(o)[0],a=i[0],u=i[1],c=i[2];if(c&&"onlyOnce"!==c)throw new Error("You are trying to register an event already been taken by other type: "+c);this.logger("($onlyOnce)","call run for "+t),this.run(e,a,r||u),this.$off(t)}return n},e.prototype.$replace=function(t,e,r,n){if(void 0===r&&(r=null),void 0===n&&(n="on"),this.validateType(n)){this.$off(t);var o=this["$"+n];return this.logger("($replace)",t,e),Reflect.apply(o,this,[t,e,r])}throw new Error(n+" is not supported!")},e.prototype.$trigger=function(t,e,r,n){void 0===e&&(e=[]),void 0===r&&(r=null),void 0===n&&(n=!1),this.validateEvt(t);var o=0,i=this.normalStore;if(this.logger("($trigger)","normalStore",i),i.has(t)){var a=this.$queue(t,e,r,n);if(this.logger("($trigger)",t,"found; add to queue: ",a),!0===a)return this.logger("($trigger)",t,"not executed. Exit now."),!1;for(var u=Array.from(i.get(t)),c=u.length,s=!1,f=0;f0;)n[o]=arguments[o+2];if(t.has(e)?(this.logger("(addToStore)",e+" existed"),r=t.get(e)):(this.logger("(addToStore)","create new Set for "+e),r=new Set),n.length>2)if(Array.isArray(n[0])){var i=n[2];this.checkTypeInLazyStore(e,i)||r.add(n)}else this.checkContentExist(n,r)||(this.logger("(addToStore)","insert new",n),r.add(n));else r.add(n);return t.set(e,r),[t,r.size]},e.prototype.checkContentExist=function(t,e){return!!Array.from(e).filter((function(e){return e[0]===t[0]})).length},e.prototype.checkTypeInStore=function(t,e){this.validateEvt(t,e);var r=this.$get(t,!0);return!1===r||!r.filter((function(t){var r=t[3];return e!==r})).length},e.prototype.checkTypeInLazyStore=function(t,e){this.validateEvt(t,e);var r=this.lazyStore.get(t);return this.logger("(checkTypeInLazyStore)",r),!!r&&!!Array.from(r).filter((function(t){return t[2]!==e})).length},e.prototype.addToNormalStore=function(t,e,r,n){if(void 0===n&&(n=null),this.logger("(addToNormalStore)",t,e,"try to add to normal store"),this.checkTypeInStore(t,e)){this.logger("(addToNormalStore)",e+" can add to "+t+" normal store");var o=this.hashFnToKey(r),i=[this.normalStore,t,o,r,n,e],a=Reflect.apply(this.addToStore,this,i),u=a[0],c=a[1];return this.normalStore=u,c}return!1},e.prototype.addToLazyStore=function(t,e,r,n){void 0===e&&(e=[]),void 0===r&&(r=null),void 0===n&&(n=!1);var o=[this.lazyStore,t,this.toArray(e),r];n&&o.push(n);var i=Reflect.apply(this.addToStore,this,o),a=i[0],u=i[1];return this.lazyStore=a,u},e.prototype.toArray=function(t){return Array.isArray(t)?t:[t]},r.normalStore.set=function(t){au.set(this,t)},r.normalStore.get=function(){return au.get(this)},r.lazyStore.set=function(t){uu.set(this,t)},r.lazyStore.get=function(){return uu.get(this)},e.prototype.hashFnToKey=function(t){return t.toString().split("").reduce((function(t,e){return(t=(t<<5)-t+e.charCodeAt(0))&t}),0)+""},Object.defineProperties(e.prototype,r),e}(cu));function lu(t,e){var r;return iu((r=e.debugOn,new fu({logger:r?function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];t.unshift("[NBS]"),console.log.apply(null,t)}:void 0})),e,t)}return function(t){return void 0===t&&(t={}),lu(o,t)}})); //# sourceMappingURL=jsonql-client.umd.js.map diff --git a/packages/http-client/dist/jsonql-client.umd.js.map b/packages/http-client/dist/jsonql-client.umd.js.map index acff920b68eb79c57cc1617057a6cf70cb2b68fc..afdcdd37023eea10087409b0e1c798073227cfa8 100644 --- a/packages/http-client/dist/jsonql-client.umd.js.map +++ b/packages/http-client/dist/jsonql-client.umd.js.map @@ -1 +1 @@ -{"version":3,"file":"jsonql-client.umd.js","sources":["../node_modules/store/plugins/defaults.js","../node_modules/store/plugins/expire.js"],"sourcesContent":["module.exports = defaultsPlugin\n\nfunction defaultsPlugin() {\n\tvar defaultValues = {}\n\t\n\treturn {\n\t\tdefaults: defaults,\n\t\tget: get\n\t}\n\t\n\tfunction defaults(_, values) {\n\t\tdefaultValues = values\n\t}\n\t\n\tfunction get(super_fn, key) {\n\t\tvar val = super_fn()\n\t\treturn (val !== undefined ? val : defaultValues[key])\n\t}\n}\n","var namespace = 'expire_mixin'\n\nmodule.exports = expirePlugin\n\nfunction expirePlugin() {\n\tvar expirations = this.createStore(this.storage, null, this._namespacePrefix+namespace)\n\t\n\treturn {\n\t\tset: expire_set,\n\t\tget: expire_get,\n\t\tremove: expire_remove,\n\t\tgetExpiration: getExpiration,\n\t\tremoveExpiredKeys: removeExpiredKeys\n\t}\n\t\n\tfunction expire_set(super_fn, key, val, expiration) {\n\t\tif (!this.hasNamespace(namespace)) {\n\t\t\texpirations.set(key, expiration)\n\t\t}\n\t\treturn super_fn()\n\t}\n\t\n\tfunction expire_get(super_fn, key) {\n\t\tif (!this.hasNamespace(namespace)) {\n\t\t\t_checkExpiration.call(this, key)\n\t\t}\n\t\treturn super_fn()\n\t}\n\t\n\tfunction expire_remove(super_fn, key) {\n\t\tif (!this.hasNamespace(namespace)) {\n\t\t\texpirations.remove(key)\n\t\t}\n\t\treturn super_fn()\n\t}\n\t\n\tfunction getExpiration(_, key) {\n\t\treturn expirations.get(key)\n\t}\n\t\n\tfunction removeExpiredKeys(_) {\n\t\tvar keys = []\n\t\tthis.each(function(val, key) {\n\t\t\tkeys.push(key)\n\t\t})\n\t\tfor (var i=0; i { + client[SOCKET_NAME] = sc; + return client; + }) + } else { + throw new JsonqlError(`initSocketClient`, `socketClient is missing!`) + } + } + return client; +} + +/** + * When pass a static contract then it return a static interface + * otherwise it will become the async interface + * @param {object} Fly the http engine + * @param {object} config configuration + * @return {object} jsonqlClient + */ +export default function jsonqlClient(Fly, config) { + // @NOTE we pass the socket client via the config, that save us the headache to try to dynamicly load the dep + const { contract, socketClient, debugOn } = config; + const ee = getEventEmitter(debugOn) + // this one try to get the contract dynamicly so we need to call the getContract here + return jsonqlAsync(ee, config, Fly) + .then(client => ( + { + client, + contract: contract && isContract(contract) ? contract : client.getContract() + }) + ) + .then(({client, contract}) => initSocketClient(client, contract, config, socketClient)) +} diff --git a/packages/http-client/package.json b/packages/http-client/package.json index b19ed59674ca7ec6d1d6863633b86f843055def2..032421774eeda62439207b46711052a8e2b00025 100755 --- a/packages/http-client/package.json +++ b/packages/http-client/package.json @@ -1,19 +1,22 @@ { "name": "jsonql-client", - "version": "1.3.2", + "version": "1.4.0", "description": "jsonql http browser client using Fly.js", - "main": "dist/jsonql-client.umd.js", + "main": "core.js", "module": "index.js", "browser": "dist/jsonql-client.umd.js", "types": "jsonql-client.types.ts", "files": [ "src", "dist", + "core.js", "index.js", - "static.js" + "static.js", + "module.js", + "sync.js" ], "scripts": { - "test": "npm run build && npm run test:browser", + "test": "npm run build:test && npm run test:browser", "_publish": "npm publish --access public", "prepare": "npm run build", "test:utils": "node ./main.js", @@ -23,11 +26,12 @@ "test:fn": "ava ./tests/fn.test.js", "run:browser": "DEBUG=jsonql-* node ./tests/fixtures/run.js", "start": "rollup -c -w --environment NODE_ENV:dev", - "build": "npm run build:umd && npm run build:browser && npm run build:static && npm run build:full", + "build": "NODE_ENV=production npm run build:umd && NODE_ENV=production npm run build:browser && NODE_ENV=production npm run build:static && NODE_ENV=production npm run build:full", + "build:test": "npm run build:browser && npm run build:full", "build:umd": "rollup -c", - "build:browser": "NODE_ENV=BROWSER rollup -c", - "build:static": "NODE_ENV=STATIC rollup -c", - "build:full": "NODE_ENV=FULL rollup -c", + "build:browser": "TARGET=BROWSER rollup -c", + "build:static": "TARGET=STATIC rollup -c", + "build:full": "TARGET=FULL rollup -c", "_build:stores": "NODE_ENV=stores rollup --config ./rollup.test.config.js", "contract:file": "node ./tests/fixtures/contract.js", "contract": "npm run contract:base && npm run contract:public", @@ -55,13 +59,13 @@ "license": "MIT", "dependencies": { "flyio": "^0.6.14", - "jsonql-constants": "^1.8.3", + "jsonql-constants": "^1.8.8", "jsonql-errors": "^1.1.3", - "jsonql-jwt": "^1.3.2", + "jsonql-jwt": "^1.3.3", "jsonql-params-validator": "^1.4.11", - "jsonql-utils": "^0.6.10", + "jsonql-utils": "^0.8.1", "lodash-es": "^4.17.15", - "nb-event-service": "^1.8.3", + "nb-event-service": "^1.8.5", "store": "^2.0.12" }, "devDependencies": { @@ -69,14 +73,14 @@ "browser-env": "^3.2.6", "debug": "^4.1.1", "esm": "^3.2.25", - "glob": "^7.1.4", - "jsonql-koa": "^1.3.8", + "glob": "^7.1.5", + "jsonql-koa": "^1.3.10", "koa-favicon": "^2.0.1", "nyc": "^14.1.1", "promise-polyfill": "8.1.3", - "qunit": "^2.9.2", - "rollup": "^1.21.4", - "rollup-plugin-alias": "^2.0.0", + "qunit": "^2.9.3", + "rollup": "^1.26.0", + "rollup-plugin-alias": "^2.2.0", "rollup-plugin-analyzer": "^3.2.1", "rollup-plugin-async": "^1.2.0", "rollup-plugin-buble": "^0.19.8", diff --git a/packages/http-client/rollup.config.js b/packages/http-client/rollup.config.js index d8fa19e7f1cc9a6284a25335f63072f08064a891..a73ef6dc33eb109727e25d72b24a3fa7dd7a9df4 100644 --- a/packages/http-client/rollup.config.js +++ b/packages/http-client/rollup.config.js @@ -15,6 +15,7 @@ import async from 'rollup-plugin-async' import pkg from './package.json' const env = process.env.NODE_ENV; +const target = process.env.TARGET; // 1.4.0 add new prop to control the build let plugins = [ buble({ @@ -36,8 +37,6 @@ let plugins = [ }) ] - - let globals = { 'debug': 'debug', 'promise-polyfill': 'Promise', @@ -56,7 +55,7 @@ let external = [ let moduleName = 'jsonqlClient' let sourceFile = 'index.js' let distFile = 'core.js' -switch (env) { +switch (target) { case 'BROWSER': sourceFile = 'full.js' distFile = join('dist', 'jsonql-client.umd.js') @@ -75,7 +74,9 @@ switch (env) { sourceFile = 'index.js' } -plugins.push(terser()) +if (env === 'production') { + plugins.push(terser()) +} plugins.push(size()) let config = { diff --git a/packages/http-client/src/core/jsonql-api-generator.js b/packages/http-client/src/core/jsonql-api-generator.js index 97e652b1e6a060265366ba37e47bc7f3ddf16874..a299b4aa5069cc3bd2682bd4da4ea756f457c6f8 100644 --- a/packages/http-client/src/core/jsonql-api-generator.js +++ b/packages/http-client/src/core/jsonql-api-generator.js @@ -26,28 +26,29 @@ import methodsGenerator from './methods-generator' */ const generator = (jsonqlInstance, config, contract, ee) => { // V1.3.0 - now everything wrap inside this method - let obj = methodsGenerator(jsonqlInstance, ee, config, contract) + let client = methodsGenerator(jsonqlInstance, ee, config, contract) // create the rest of the methods if (config.enableAuth) { /** * new method to allow retrieve the current login user data * @return {*} userdata */ - obj.userdata = () => jsonqlInstance.userdata; + client.userdata = () => jsonqlInstance.userdata; } // allow getting the token for valdiate agains the socket - obj.getToken = () => jsonqlInstance.rawAuthToken; + client.getToken = () => jsonqlInstance.rawAuthToken; // this will pass to the ws-client if needed - // obj.eventEmitter = ee; + // client.eventEmitter = ee; // this will require a param if (config.exposeContract) { - obj.getContract = () => jsonqlInstance.get() + // 1.4.0 change from the get (raw) to the getContract cache and raw version + client.getContract = () => jsonqlInstance.getContract() } // this is for the ws to use later - obj.eventEmitter = ee; - obj.version = '__VERSION__'; + client.eventEmitter = ee; + client.version = '__VERSION__'; // output - return obj; + return client; }; export default generator; diff --git a/packages/http-client/src/core/methods-generator.js b/packages/http-client/src/core/methods-generator.js index d4309924b2175edd5a157691bb06e3abb2a4323c..4bfe27311a62d6f8f87c798c037b632e974f4995 100644 --- a/packages/http-client/src/core/methods-generator.js +++ b/packages/http-client/src/core/methods-generator.js @@ -1,12 +1,13 @@ // breaking out the inner methods generator in here -import { validateAsync } from 'jsonql-params-validator' import { JsonqlValidationError, JsonqlError, clientErrorsHandler, finalCatch } from 'jsonql-errors' +import { validateAsync } from 'jsonql-params-validator' import { LOGOUT_NAME, ISSUER_NAME, KEY_WORD } from 'jsonql-constants' +import { injectToFn, chainFns } from 'jsonql-utils/module' /** * generate authorisation specific methods @@ -31,21 +32,22 @@ const authMethodGenerator = (jsonqlInstance, name, opts, contract) => { } /** - * Here just generate the methods calls - * @param {object} jsonqlInstance what it said - * @param {object} ee event emitter + * Break up the different type each - create query methods + * @param {object} obj to hold all the objects + * @param {object} jsonqlInstance jsonql class instance + * @param {object} ee eventEmitter * @param {object} config configuration - * @param {object} contract the map - * @return {object} with mapped methods + * @param {object} contract json + * @return {object} modified output for next op */ -export default function methodsGenerator(jsonqlInstance, ee, config, contract) { - let obj = {query: {}, mutation: {}} - // process the query first +const createQueryMethods = (obj, jsonqlInstance, ee, config, contract) => { + let query = {} for (let queryFn in contract.query) { // to keep it clean we use a param to id the auth method // const fn = (_contract.query[queryFn].auth === true) ? 'auth' : queryFn; // generate the query method - obj.query[queryFn] = (...args) => { + query = injectToFn(query, queryFn, function queryFnHandler(...args) { + // obj.query[queryFn] = (...args) => { const params = contract.query[queryFn].params; const _args = params.map((param, i) => args[i]) // debug('query', queryFn, _params); @@ -59,13 +61,29 @@ export default function methodsGenerator(jsonqlInstance, ee, config, contract) { .apply(jsonqlInstance, [queryFn, _args, header]) ) .catch(finalCatch) - } + }) } + obj.query = query; + return [ obj, jsonqlInstance, ee, config, contract ] +} + +/** + * create mutation methods + * @param {object} obj to hold all the objects + * @param {object} jsonqlInstance jsonql class instance + * @param {object} ee eventEmitter + * @param {object} config configuration + * @param {object} contract json + * @return {object} modified output for next op + */ +const createMutationMethods = (obj, jsonqlInstance, ee, config, contract) => { + let mutation = {} // process the mutation, the reason the mutation has a fixed number of parameters // there is only the payload, and conditions parameters // plus a header at the end for (let mutationFn in contract.mutation) { - obj.mutation[mutationFn] = (payload, conditions, header = {}) => { + mutation = injectToFn(mutation, mutationFn, function mutationFnHandler(payload, conditions, header = {}) { + //obj.mutation[mutationFn] = (payload, conditions, header = {}) => { const args = [payload, conditions]; const params = contract.mutation[mutationFn].params; return validateAsync(args, params) @@ -74,15 +92,28 @@ export default function methodsGenerator(jsonqlInstance, ee, config, contract) { .apply(jsonqlInstance, [mutationFn, payload, conditions, header]) ) .catch(finalCatch) - } + }) } - // there is only one call issuer we want here + obj.mutation = mutation; + return [ obj, jsonqlInstance, ee, config, contract ] +} + +/** + * create auth methods + * @param {object} obj to hold all the objects + * @param {object} jsonqlInstance jsonql class instance + * @param {object} ee eventEmitter + * @param {object} config configuration + * @param {object} contract json + * @return {object} modified output for next op + */ +const createAuthMethods = (obj, jsonqlInstance, ee, config, contract) => { if (config.enableAuth && contract.auth) { - obj.auth = {} // v1.3.1 add back the auth prop name + let auth = {} // v1.3.1 add back the auth prop name in contract const { loginHandlerName, logoutHandlerName } = config; if (contract.auth[loginHandlerName]) { // changing to the name the config specify - obj.auth[loginHandlerName] = (...args) => { + auth[loginHandlerName] = function loginHandlerFn(...args) { const fn = authMethodGenerator(jsonqlInstance, loginHandlerName, config, contract) return fn.apply(null, args) .then(jsonqlInstance.postLoginAction) @@ -93,7 +124,7 @@ export default function methodsGenerator(jsonqlInstance, ee, config, contract) { } } if (contract.auth[logoutHandlerName]) { - obj.auth[logoutHandlerName] = (...args) => { + auth[logoutHandlerName] = function logoutHandlerFn(...args) { const fn = authMethodGenerator(jsonqlInstance, logoutHandlerName, config, contract) return fn.apply(null, args) .then(jsonqlInstance.postLogoutAction) @@ -103,11 +134,26 @@ export default function methodsGenerator(jsonqlInstance, ee, config, contract) { }) } } else { - obj.auth[logoutHandlerName] = () => { + auth[logoutHandlerName] = function logoutHandlerFn() { jsonqlInstance.postLogoutAction(KEY_WORD) ee.$trigger(LOGOUT_NAME, KEY_WORD) } } + obj.auth = auth; } return obj; } + +/** + * Here just generate the methods calls + * @param {object} jsonqlInstance what it said + * @param {object} ee event emitter + * @param {object} config configuration + * @param {object} contract the map + * @return {object} with mapped methods + */ +export default function methodsGenerator(jsonqlInstance, ee, config, contract) { + let obj = {} + const executor = chainFns(createQueryMethods, createMutationMethods, createAuthMethods) + return executor(obj, jsonqlInstance, ee, config, contract) +} diff --git a/packages/http-client/src/jsonql-utils.js b/packages/http-client/src/jsonql-utils.js index ed715d81f304ab72c48078a67d9da359d83553af..a6189da476e7d92b8349b1c17a127af70a967b0b 100644 --- a/packages/http-client/src/jsonql-utils.js +++ b/packages/http-client/src/jsonql-utils.js @@ -743,7 +743,7 @@ var inArray = function (arr, value) { return !!arr.filter(function (a) { return * @param {string} key target * @return {boolean} true on success */ -var isKeyInObject = function(obj, key) { +var isObjectHasKey = function(obj, key) { var keys = Object.keys(obj); return inArray(keys, key) }; @@ -1035,9 +1035,9 @@ var JsonqlError = /*@__PURE__*/(function (JsonqlBaseError) { function checkIsContract(contract) { return isPlainObject(contract) && ( - isKeyInObject(contract, QUERY_NAME) - || isKeyInObject(contract, MUTATION_NAME) - || isKeyInObject(contract, SOCKET_NAME) + isObjectHasKey(contract, QUERY_NAME) + || isObjectHasKey(contract, MUTATION_NAME) + || isObjectHasKey(contract, SOCKET_NAME) ) } @@ -1048,7 +1048,7 @@ function checkIsContract(contract) { * @return {object|boolean} false on failed */ function extractSocketPart(contract) { - if (isKeyInObject(contract, 'socket')) { + if (isObjectHasKey(contract, 'socket')) { return contract.socket; } return false; @@ -1355,7 +1355,7 @@ var packError = function(detail, className, statusCode, message) { * @return {object} strip the data part out, or if the error is presented */ var resultHandler = function (result) { return ( - (isKeyInObject(result, DATA_KEY) && !isKeyInObject(result, ERROR_KEY)) ? result[DATA_KEY] : result + (isObjectHasKey(result, DATA_KEY) && !isObjectHasKey(result, ERROR_KEY)) ? result[DATA_KEY] : result ); }; // exportfor ES modules @@ -1364,4 +1364,4 @@ var resultHandler = function (result) { return ( var isContract = checkIsContract; var VERSION = '0.6.9'; -export { VERSION, cacheBurst, cacheBurstUrl, chainFns, chainPromises, checkIsContract, createEvt, createMutation, createMutationStr, createQuery, createQueryStr, dasherize, extractArgsFromPayload, extractParamsFromContract, extractSocketPart, formatPayload, getCallMethod, getConfigValue, getMutationFromArgs, getMutationFromPayload, getNameFromPayload, getQueryFromArgs, getQueryFromPayload, groupByNamespace, inArray, injectToFn, isContract, isKeyInObject, isNotEmpty, objDefineProps, packError, packResult, resultHandler, timestamp, toPayload, urlParams }; +export { VERSION, cacheBurst, cacheBurstUrl, chainFns, chainPromises, checkIsContract, createEvt, createMutation, createMutationStr, createQuery, createQueryStr, dasherize, extractArgsFromPayload, extractParamsFromContract, extractSocketPart, formatPayload, getCallMethod, getConfigValue, getMutationFromArgs, getMutationFromPayload, getNameFromPayload, getQueryFromArgs, getQueryFromPayload, groupByNamespace, inArray, injectToFn, isContract, isObjectHasKey, isNotEmpty, objDefineProps, packError, packResult, resultHandler, timestamp, toPayload, urlParams }; diff --git a/packages/http-client/src/utils.js b/packages/http-client/src/utils.js index 3937b776039768e29762e1fa96aa8b8aacc519ff..abff5f3e033e5c5fa255ca780e850df20f2f3a03 100644 --- a/packages/http-client/src/utils.js +++ b/packages/http-client/src/utils.js @@ -13,8 +13,10 @@ import { isContract, timestamp, - inArray + inArray, + isObjectHasKey } from './jsonql-utils' // this should point to the module.js + /** * @param {object} jsonqlInstance the init instance of jsonql client * @param {object} contract the static contract @@ -33,6 +35,9 @@ const getContractFromConfig = function(jsonqlInstance, contract = {}) { const ENDPOINT_TABLE = 'endpoint'; const USERDATA_TABLE = 'userdata'; +// simple util to check if an object has any properties +const hasProp = obj => isObject(obj) && Object.keys(obj).length + // export export { getContractFromConfig, @@ -49,5 +54,7 @@ export { isContract, timestamp, - inArray + inArray, + isObjectHasKey, + hasProp } diff --git a/packages/http-client/static.js b/packages/http-client/static.js index 836c227c1e8eee82f0cacaacb9a5a3ac3d2682aa..26c426d339a0ac05869b284598081012ef83efdd 100644 --- a/packages/http-client/static.js +++ b/packages/http-client/static.js @@ -1,2 +1,2 @@ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).jsonqlClientStatic=e()}(this,(function(){"use strict";var t="application/vnd.api+json",e={Accept:t,"Content-Type":[t,"charset=utf-8"].join(";")},r=["POST","PUT"],n="continue",o="type",i="optional",a="enumv",u="args",c="checker",s="alias",f="login",l="logout",p={desc:"y"},h="No message",d="onResult",v="onError";var g="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},y="object"==typeof g&&g&&g.Object===Object&&g,b="object"==typeof self&&self&&self.Object===Object&&self,m=y||b||Function("return this")(),_=m.Symbol;function w(t,e){for(var r=-1,n=null==t?0:t.length,o=Array(n);++r=n?t:function(t,e,r){var n=-1,o=t.length;e<0&&(e=-e>o?0:o+e),(r=r>o?o:r)<0&&(r+=o),o=e>r?0:r-e>>>0,e>>>=0;for(var i=Array(o);++n-1;);return r}(n,o),function(t,e){for(var r=t.length;r--&&U(e,t[r],0)>-1;);return r}(n,o)+1).join("")}function nt(t){return void 0===t}var ot="[object Boolean]";var it="[object Number]";function at(t){return function(t){return"number"==typeof t||C(t)&&P(t)==it}(t)&&t!=+t}var ut="[object String]";function ct(t){return"string"==typeof t||!j(t)&&C(t)&&P(t)==ut}function st(t,e){return function(r){return t(e(r))}}var ft=st(Object.getPrototypeOf,Object),lt="[object Object]",pt=Function.prototype,ht=Object.prototype,dt=pt.toString,vt=ht.hasOwnProperty,gt=dt.call(Object);function yt(t){if(!C(t)||P(t)!=lt)return!1;var e=ft(t);if(null===e)return!0;var r=vt.call(e,"constructor")&&e.constructor;return"function"==typeof r&&r instanceof r&&dt.call(r)==gt}var bt,mt=function(t,e,r){for(var n=-1,o=Object(t),i=r(t),a=i.length;a--;){var u=i[bt?a:++n];if(!1===e(o[u],u,o))break}return t};var _t="[object Arguments]";function wt(t){return C(t)&&P(t)==_t}var jt=Object.prototype,St=jt.hasOwnProperty,Ot=jt.propertyIsEnumerable,Et=wt(function(){return arguments}())?wt:function(t){return C(t)&&St.call(t,"callee")&&!Ot.call(t,"callee")};var At="object"==typeof exports&&exports&&!exports.nodeType&&exports,kt=At&&"object"==typeof module&&module&&!module.nodeType&&module,Tt=kt&&kt.exports===At?m.Buffer:void 0,xt=(Tt?Tt.isBuffer:void 0)||function(){return!1},qt=9007199254740991,Pt=/^(?:0|[1-9]\d*)$/;function Ct(t,e){var r=typeof t;return!!(e=null==e?qt:e)&&("number"==r||"symbol"!=r&&Pt.test(t))&&t>-1&&t%1==0&&t-1&&t%1==0&&t<=$t}var zt={};zt["[object Float32Array]"]=zt["[object Float64Array]"]=zt["[object Int8Array]"]=zt["[object Int16Array]"]=zt["[object Int32Array]"]=zt["[object Uint8Array]"]=zt["[object Uint8ClampedArray]"]=zt["[object Uint16Array]"]=zt["[object Uint32Array]"]=!0,zt["[object Arguments]"]=zt["[object Array]"]=zt["[object ArrayBuffer]"]=zt["[object Boolean]"]=zt["[object DataView]"]=zt["[object Date]"]=zt["[object Error]"]=zt["[object Function]"]=zt["[object Map]"]=zt["[object Number]"]=zt["[object Object]"]=zt["[object RegExp]"]=zt["[object Set]"]=zt["[object String]"]=zt["[object WeakMap]"]=!1;var Ft,It="object"==typeof exports&&exports&&!exports.nodeType&&exports,Rt=It&&"object"==typeof module&&module&&!module.nodeType&&module,Jt=Rt&&Rt.exports===It&&y.process,Mt=function(){try{var t=Rt&&Rt.require&&Rt.require("util").types;return t||Jt&&Jt.binding&&Jt.binding("util")}catch(t){}}(),Ut=Mt&&Mt.isTypedArray,Ht=Ut?(Ft=Ut,function(t){return Ft(t)}):function(t){return C(t)&&Nt(t.length)&&!!zt[P(t)]},Dt=Object.prototype.hasOwnProperty;function Lt(t,e){var r=j(t),n=!r&&Et(t),o=!r&&!n&&xt(t),i=!r&&!n&&!o&&Ht(t),a=r||n||o||i,u=a?function(t,e){for(var r=-1,n=Array(t);++r-1},ue.prototype.set=function(t,e){var r=this.__data__,n=ie(r,t);return n<0?(++this.size,r.push([t,e])):r[n][1]=e,this};var ce,se=m["__core-js_shared__"],fe=(ce=/[^.]+$/.exec(se&&se.keys&&se.keys.IE_PROTO||""))?"Symbol(src)_1."+ce:"";var le=Function.prototype.toString;function pe(t){if(null!=t){try{return le.call(t)}catch(t){}try{return t+""}catch(t){}}return""}var he=/^\[object .+?Constructor\]$/,de=Function.prototype,ve=Object.prototype,ge=de.toString,ye=ve.hasOwnProperty,be=RegExp("^"+ge.call(ye).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function me(t){return!(!Yt(t)||function(t){return!!fe&&fe in t}(t))&&(te(t)?be:he).test(pe(t))}function _e(t,e){var r=function(t,e){return null==t?void 0:t[e]}(t,e);return me(r)?r:void 0}var we=_e(m,"Map"),je=_e(Object,"create");var Se="__lodash_hash_undefined__",Oe=Object.prototype.hasOwnProperty;var Ee=Object.prototype.hasOwnProperty;var Ae="__lodash_hash_undefined__";function ke(t){var e=-1,r=null==t?0:t.length;for(this.clear();++eu))return!1;var s=i.get(t);if(s&&i.get(e))return s==e;var f=-1,l=!0,p=r&Fe?new $e:void 0;for(i.set(t,e),i.set(e,t);++f0){if(++e>=On)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}(Sn);function Tn(t,e){return kn(function(t,e,r){return e=jn(void 0===e?t.length-1:e,0),function(){for(var n=arguments,o=-1,i=jn(n.length-e,0),a=Array(i);++o1?e[n-1]:void 0,i=n>2?e[2]:void 0;for(o=xn.length>3&&"function"==typeof o?(n--,o):void 0,i&&function(t,e,r){if(!Yt(r))return!1;var n=typeof e;return!!("number"==n?ee(r)&&Ct(e,r.length):"string"==n&&e in r)&&oe(r[e],t)}(e[0],e[1],i)&&(o=n<3?void 0:o,n=1),t=Object(t);++r0))},Qn=function(t){if(t.indexOf("array.<")>-1&&t.indexOf(">")>-1){var e=t.replace("array.<","").replace(">","");return e.indexOf("|")?e.split("|"):[e]}return!1},Xn=function(t,e){var r=t.arg;return e.length>1?!r.filter((function(t){return!(e.length>e.filter((function(e){return!Yn(e)(t)})).length)})).length:e.length>e.filter((function(t){return!Wn(r,t)})).length},Zn=function(t,e){if(void 0===e&&(e=null),yt(t)){if(!e)return!0;if(Wn(e))return!e.filter((function(e){var r=t[e.name];return!(e.type.length>e.type.filter((function(t){var e;return!!nt(r)||(!1!==(e=Qn(t))?!Xn({arg:r},e):!Yn(t)(r))})).length)})).length}return!1},to=function(t){var e=t.arg,r=t.param,n=[e];return Array.isArray(r.keys)&&r.keys.length&&n.push(r.keys),Zn.apply(null,n)},eo=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={statusCode:{configurable:!0},name:{configurable:!0}};return r.statusCode.get=function(){return 406},r.name.get=function(){return"Jsonql406Error"},Object.defineProperties(e,r),e}(Error),ro=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={statusCode:{configurable:!0},name:{configurable:!0}};return r.statusCode.get=function(){return 500},r.name.get=function(){return"Jsonql500Error"},Object.defineProperties(e,r),e}(Error),no=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={statusCode:{configurable:!0},name:{configurable:!0}};return r.statusCode.get=function(){return 401},r.name.get=function(){return"JsonqlAuthorisationError"},Object.defineProperties(e,r),e}(Error),oo=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={statusCode:{configurable:!0},name:{configurable:!0}};return r.statusCode.get=function(){return 401},r.name.get=function(){return"JsonqlContractAuthError"},Object.defineProperties(e,r),e}(Error),io=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={statusCode:{configurable:!0},name:{configurable:!0}};return r.statusCode.get=function(){return 500},r.name.get=function(){return"JsonqlResolverAppError"},Object.defineProperties(e,r),e}(Error),ao=function(){try{if(window||document)return!0}catch(t){}return!1},uo=function(){try{if(!ao()&&g)return!0}catch(t){}return!1};var co=function(t){function e(){for(var e=[],r=arguments.length;r--;)e[r]=arguments[r];t.apply(this,e)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.where=function(){return ao()?"browser":uo()?"node":"unknown"},e}(Error),so=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,Error.captureStackTrace&&Error.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={statusCode:{configurable:!0},name:{configurable:!0}};return r.statusCode.get=function(){return 404},r.name.get=function(){return"JsonqlResolverNotFoundError"},Object.defineProperties(e,r),e}(co),fo=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0}};return r.name.get=function(){return"JsonqlEnumError"},Object.defineProperties(e,r),e}(Error),lo=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0}};return r.name.get=function(){return"JsonqlTypeError"},Object.defineProperties(e,r),e}(Error),po=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0}};return r.name.get=function(){return"JsonqlCheckerError"},Object.defineProperties(e,r),e}(Error),ho=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,Error.captureStackTrace&&Error.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0}};return r.name.get=function(){return"JsonqlValidationError"},Object.defineProperties(e,r),e}(co),vo=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,Error.captureStackTrace&&Error.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0},statusCode:{configurable:!0}};return r.name.get=function(){return"JsonqlError"},r.statusCode.get=function(){return-1},Object.defineProperties(e,r),e}(co),go=function(t){function e(r,n){t.call(this,n),this.statusCode=r,this.className=e.name}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0}};return r.name.get=function(){return"JsonqlServerError"},Object.defineProperties(e,r),e}(Error),yo=Object.freeze({Jsonql406Error:eo,Jsonql500Error:ro,JsonqlAuthorisationError:no,JsonqlContractAuthError:oo,JsonqlResolverAppError:io,JsonqlResolverNotFoundError:so,JsonqlEnumError:fo,JsonqlTypeError:lo,JsonqlCheckerError:po,JsonqlValidationError:ho,JsonqlError:vo,JsonqlServerError:go}),bo=vo,mo=function(t,e){return!!Object.keys(t).filter((function(t){return e===t})).length};function _o(t){if(mo(t,"error")){var e=t.error,r=e.className,n=e.name,o=r||n,i=e.message||h,a=e.detail||e;if(o&&yo[o])throw new yo[r](i,a);throw new bo(i,a)}return t}function wo(t){if(Array.isArray(t))throw new ho("",t);var e=t.message||h,r=t.detail||t;switch(!0){case t instanceof eo:throw new eo(e,r);case t instanceof ro:throw new ro(e,r);case t instanceof no:throw new no(e,r);case t instanceof oo:throw new oo(e,r);case t instanceof io:throw new io(e,r);case t instanceof so:throw new so(e,r);case t instanceof fo:throw new fo(e,r);case t instanceof lo:throw new lo(e,r);case t instanceof po:throw new po(e,r);case t instanceof ho:throw new ho(e,r);case t instanceof go:throw new go(e,r);default:throw new vo(e,r)}}function jo(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];try{window&&window.console&&Reflect.apply(console.log,console,t)}catch(t){}}var So=function(t,e){var r;switch(!0){case"object"===t:return!to(e);case"array"===t:return!Wn(e.arg);case!1!==(r=Qn(t)):return!Xn(e,r);default:return!Yn(t)(e.arg)}},Oo=function(t,e){return nt(t)?!0!==e.optional||nt(e.defaultvalue)?null:e.defaultvalue:t},Eo=function(t,e,r){var n;void 0===r&&(r=!1);var o=function(t,e){if(!Wn(e))throw new vo("params is not an array! Did something gone wrong when you generate the contract.json?");if(0===e.length)return[];if(!Wn(t))throw new vo("args is not an array! You might want to do: ES6 Array.from(arguments) or ES5 Array.prototype.slice.call(arguments)");switch(!0){case t.length==e.length:return jo(1),t.map((function(t,r){return{arg:t,index:r,param:e[r]}}));case!0===e[0].variable:jo(2);var r=e[0].type;return t.map((function(t,n){return{arg:t,index:n,param:e[n]||{type:r,name:"_"}}}));case t.lengthe.length:jo(4);var n=e.length,o=["any"];return t.map((function(t,r){var i=r>=n||!!e[r].optional,a=e[r]||{type:o,name:"_"+r};return{arg:i?Oo(t,a):t,index:r,param:a,optional:i}}));default:throw jo(5),new vo("Could not understand your arguments and parameter structure!",{args:t,params:e})}}(t,e),i=o.filter((function(t){return!0===t.optional||!0===t.param.optional?function(t){var e=t.arg,r=t.param;return!!In(e)&&!(r.type.length>r.type.filter((function(e){return So(e,t)})).length)}(t):!(t.param.type.length>t.param.type.filter((function(e){return So(e,t)})).length)}));return r?((n={}).error=i,n.data=o.map((function(t){return t.arg})),n):i},Ao=function(t,e){var r,n=Object.keys(t);return r=e,!!n.filter((function(t){return t===r})).length},ko=function(t){return!In(t)};function To(t,e){var r=Fn(e,(function(t,e){return!t[Vn]}));return Tr(r,{})?t:function(t,e){var r={};return e=tn(e),ne(t,(function(t,n,o){rn(r,e(t,n,o),t)})),r}(t,(function(t,e){return function(t,e,r){var n;return r(t,(function(t,r,o){if(e(t,r,o))return n=r,!1})),n}(r,tn((function(t){return t.alias===e})),ne)||e}))}function xo(t,e){return Pn(e,(function(e,r){var n,o;return nt(t[r])||!0===e[Dn]&&ko(t[r])?qn({},e,((n={})[Gn]=!0,n)):((o={})[Bn]=t[r],o[Hn]=e[Hn],o[Dn]=e[Dn]||!1,o[Ln]=e[Ln]||!1,o[Kn]=e[Kn]||!1,o)}))}function qo(t,e){var r=function(t,e){var r=To(t,e);return{pristineValues:Pn(Fn(e,(function(t,e){return Ao(r,e)})),(function(t){return t.args})),checkAgainstAppProps:Fn(e,(function(t,e){return!Ao(r,e)})),config:r}}(t,e),n=r.config,o=r.pristineValues;return[xo(n,r.checkAgainstAppProps),o]}var Po=function(t){return Wn(t)?t:[t]};var Co=function(t,e){return!Wn(e)||function(t,e){return!!t.filter((function(t){return t===e})).length}(e,t)},$o=function(t,e){try{return!!te(e)&&e.apply(null,[t])}catch(t){return!1}};function No(t){return function(e,r){if(e[Gn])return e[Bn];var n=function(t,e){var r,n=[[t[Bn]],[(r={},r[Hn]=Po(t[Hn]),r[Dn]=t[Dn],r)]];return Reflect.apply(e,null,n)}(e,t);if(n.length)throw jo("runValidationAction",r,e),new lo(r,n);if(!1!==e[Ln]&&!Co(e[Bn],e[Ln]))throw jo(Ln,e[Ln]),new fo(r);if(!1!==e[Kn]&&!$o(e[Bn],e[Kn]))throw jo(Kn,e[Kn]),new po(r);return e[Bn]}}function zo(t,e,r,n){return void 0===t&&(t={}),qn(function(t,e){var r=t[0],n=t[1],o=Pn(r,No(e));return qn(o,n)}(qo(t,e),n),r)}function Fo(t,e,r,n,f,l){void 0===r&&(r=!1),void 0===n&&(n=!1),void 0===f&&(f=!1),void 0===l&&(l=!1);var p={};return p[u]=t,p[o]=e,!0===r&&(p[i]=!0),Wn(n)&&(p[a]=n),te(f)&&(p[c]=f),ct(l)&&(p[s]=l),p}var Io=Jn,Ro=Wn,Jo=function(t,e,r){return void 0===r&&(r=!1),new Promise((function(n,o){var i=Eo(t,e,r);return r?i.error.length?o(i.error):n(i.data):i.length?o(i):n([])}))},Mo=function(t,e,r){void 0===r&&(r={});var n=r[i],o=r[a],u=r[c],f=r[s];return Fo.apply(null,[t,e,n,o,u,f])},Uo=function(t){return function(e,r,n){return void 0===n&&(n={}),zo(e,r,n,t)}}(Eo),Ho=function(t,e,r,n){return function(){for(var r=[],o=arguments.length;o--;)r[o]=arguments[o];var i=n.auth[e].params,a=i.map((function(t,e){return r[e]})),u=r[i.length]||{};return Jo(r,i).then((function(){return t.query.apply(t,[e,a,u])})).catch(wo)}};var Do=Array.isArray,Lo=void 0!==g?g:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},Bo="object"==typeof Lo&&Lo&&Lo.Object===Object&&Lo,Ko="object"==typeof self&&self&&self.Object===Object&&self,Vo=(Bo||Ko||Function("return this")()).Symbol,Go=Object.prototype,Yo=Go.hasOwnProperty,Wo=Go.toString,Qo=Vo?Vo.toStringTag:void 0;var Xo=Object.prototype.toString;var Zo="[object Null]",ti="[object Undefined]",ei=Vo?Vo.toStringTag:void 0;function ri(t){return null==t?void 0===t?ti:Zo:ei&&ei in Object(t)?function(t){var e=Yo.call(t,Qo),r=t[Qo];try{t[Qo]=void 0;var n=!0}catch(t){}var o=Wo.call(t);return n&&(e?t[Qo]=r:delete t[Qo]),o}(t):function(t){return Xo.call(t)}(t)}var ni=function(t,e){return function(r){return t(e(r))}}(Object.getPrototypeOf,Object);function oi(t){return null!=t&&"object"==typeof t}var ii="[object Object]",ai=Function.prototype,ui=Object.prototype,ci=ai.toString,si=ui.hasOwnProperty,fi=ci.call(Object);var li=Vo?Vo.prototype:void 0,pi=(li&&li.toString,"[object String]");function hi(t){return"string"==typeof t||!Do(t)&&oi(t)&&ri(t)==pi}var di=function(t,e){return!!t.filter((function(t){return t===e})).length},vi=function(t,e){var r=Object.keys(t);return di(r,e)},gi=function(){for(var t=arguments,e=[],r=arguments.length;r--;)e[r]=t[r];return e.join("_")},yi=function(t){void 0===t&&(t=!1);var e=Date.now();return t?Math.floor(e/1e3):e},bi="query",mi="mutation",_i="socket",wi="payload",ji="condition",Si=function(){try{if(window||document)return!0}catch(t){}return!1},Oi=function(){try{if(!Si()&&Lo)return!0}catch(t){}return!1};var Ei=function(t){function e(){for(var r=arguments,n=[],o=arguments.length;o--;)n[o]=r[o];t.apply(this,n),this.message=n[0],this.detail=n[1],this.className=e.name,Error.captureStackTrace&&Error.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0}};return r.name.get=function(){return"JsonqlValidationError"},Object.defineProperties(e,r),e}(function(t){function e(){for(var e=arguments,r=[],n=arguments.length;n--;)r[n]=e[n];t.apply(this,r)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.where=function(){return Si()?"browser":Oi()?"node":"unknown"},e}(Error));var Ai=function(t){var e;return(e={}).args=t,e};var ki=function(t){return vi(t,"data")&&!vi(t,"error")?t.data:t},Ti=function(t){return function(t){if(!oi(t)||ri(t)!=ii)return!1;var e=ni(t);if(null===e)return!0;var r=si.call(e,"constructor")&&e.constructor;return"function"==typeof r&&r instanceof r&&ci.call(r)==fi}(t)&&(vi(t,bi)||vi(t,mi)||vi(t,_i))},xi=function(t,e){return void 0===e&&(e={}),Ti(e)?Promise.resolve(e):t.getContract()},qi=function(t,e){return function(r){for(var n=[],o=arguments.length-1;o-- >0;)n[o]=arguments[o+1];return new Promise((function(o,i){t.$only(gi(e,r,d),o),t.$only(gi(e,r,v),i),t.$trigger(e,{resolverName:r,args:n})}))}},Pi=function(t,e,r){var n=t.$queues,o=r.debugOn;o&&console.info("(validateRegisteredEvents)","storedEvt",n),n.forEach((function(t){var r=t[0],n=t[1].resolverName;if(o&&console.info("(validateRegisteredEvents)",r,n),!e[r][n])throw new Error(r+"."+n+" not existed in contract!")}))};function Ci(t,e,r,o){var i=function(t,e,r,o){var i={query:{},mutation:{}},a=function(e){i.query[e]=function(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];var i=o.query[e].params,a=i.map((function(t,e){return r[e]})),u=r[i.length]||{};return Jo(a,i).then((function(){return t.query.apply(t,[e,a,u])})).catch(wo)}};for(var u in o.query)a(u);var c=function(e){i.mutation[e]=function(r,n,i){void 0===i&&(i={});var a=[r,n],u=o.mutation[e].params;return Jo(a,u).then((function(){return t.mutation.apply(t,[e,r,n,i])})).catch(wo)}};for(var s in o.mutation)c(s);if(r.enableAuth&&o.auth){i.auth={};var p=r.loginHandlerName,h=r.logoutHandlerName;o.auth[p]&&(i.auth[p]=function(){for(var n=[],i=arguments.length;i--;)n[i]=arguments[i];var a=Ho(t,p,r,o);return a.apply(null,n).then(t.postLoginAction).then((function(t){return e.$trigger(f,t),t}))}),o.auth[h]?i.auth[h]=function(){for(var n=[],i=arguments.length;i--;)n[i]=arguments[i];var a=Ho(t,h,r,o);return a.apply(null,n).then(t.postLogoutAction).then((function(t){return e.$trigger(l,t),t}))}:i.auth[h]=function(){t.postLogoutAction(n),e.$trigger(l,n)}}return i}(t,e,r,o);Pi(e,o,r);var a=function(t){e.$only(t,(function(r){var n=r.resolverName,o=r.args;i[t][n]?Reflect.apply(i[t][n],null,o).then((function(r){e.$trigger(gi(t,n,d),r)})).catch((function(r){e.$trigger(gi(t,n,v),r)})):console.error(n+" is not defined in the contract!")}))};for(var u in i)a(u);setTimeout((function(){e.$suspend=!1}),1)}var $i=function(t,e,r,n){n.$suspend=!0,r.then((function(r){Ci(t,n,e,r)}));var o={query:qi(n,"query"),mutation:qi(n,"mutation"),auth:qi(n,"auth"),getToken:function(){return t.rawAuthToken}};return e.exposeContract&&(o.getContract=function(){return t.get()}),e.enableAuth&&(o.userdata=function(){return t.userdata}),o.version="1.3.2",o},Ni="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};var zi=Object.assign?Object.assign:function(t,e,r,n){for(var o=arguments,i=1;i=0;e--){var r=na().key(e);t(oa(r),r)}},remove:function(t){return na().removeItem(t)},clearAll:function(){return na().clear()}};function na(){return ea.localStorage}function oa(t){return na().getItem(t)}var ia=Ji.trim,aa={name:"cookieStorage",read:function(t){if(!t||!fa(t))return null;var e="(?:^|.*;\\s*)"+escape(t).replace(/[\-\.\+\*]/g,"\\$&")+"\\s*\\=\\s*((?:[^;](?!;))*[^;]?).*";return unescape(ua.cookie.replace(new RegExp(e),"$1"))},write:function(t,e){if(!t)return;ua.cookie=escape(t)+"="+escape(e)+"; expires=Tue, 19 Jan 2038 03:14:07 GMT; path=/"},each:ca,remove:sa,clearAll:function(){ca((function(t,e){sa(e)}))}},ua=Ji.Global.document;function ca(t){for(var e=ua.cookie.split(/; ?/g),r=e.length-1;r>=0;r--)if(ia(e[r])){var n=e[r].split("="),o=unescape(n[0]);t(unescape(n[1]),o)}}function sa(t){t&&fa(t)&&(ua.cookie=escape(t)+"=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/")}function fa(t){return new RegExp("(?:^|;\\s*)"+escape(t).replace(/[\-\.\+\*]/g,"\\$&")+"\\s*\\=").test(ua.cookie)}var la=function(){var t={};return{defaults:function(e,r){t=r},get:function(e,r){var n=e();return void 0!==n?n:t[r]}}};var pa="expire_mixin",ha=function(){var t=this.createStore(this.storage,null,this._namespacePrefix+pa);return{set:function(e,r,n,o){this.hasNamespace(pa)||t.set(r,o);return e()},get:function(t,r){this.hasNamespace(pa)||e.call(this,r);return t()},remove:function(e,r){this.hasNamespace(pa)||t.remove(r);return e()},getExpiration:function(e,r){return t.get(r)},removeExpiredKeys:function(t){var r=[];this.each((function(t,e){r.push(e)}));for(var n=0;n>>8,r[2*n+1]=a%256}return r},decompressFromUint8Array:function(e){if(null==e)return i.decompress(e);for(var r=new Array(e.length/2),n=0,o=r.length;n>=1}else{for(o=1,n=0;n>=1}0==--l&&(l=Math.pow(2,h),h++),delete u[f]}else for(o=a[f],n=0;n>=1;0==--l&&(l=Math.pow(2,h),h++),a[s]=p++,f=String(c)}if(""!==f){if(Object.prototype.hasOwnProperty.call(u,f)){if(f.charCodeAt(0)<256){for(n=0;n>=1}else{for(o=1,n=0;n>=1}0==--l&&(l=Math.pow(2,h),h++),delete u[f]}else for(o=a[f],n=0;n>=1;0==--l&&(l=Math.pow(2,h),h++)}for(o=2,n=0;n>=1;for(;;){if(v<<=1,g==e-1){d.push(r(v));break}g++}return d.join("")},decompress:function(t){return null==t?"":""==t?null:i._decompress(t.length,32768,(function(e){return t.charCodeAt(e)}))},_decompress:function(e,r,n){var o,i,a,u,c,s,f,l=[],p=4,h=4,d=3,v="",g=[],y={val:n(0),position:r,index:1};for(o=0;o<3;o+=1)l[o]=o;for(a=0,c=Math.pow(2,2),s=1;s!=c;)u=y.val&y.position,y.position>>=1,0==y.position&&(y.position=r,y.val=n(y.index++)),a|=(u>0?1:0)*s,s<<=1;switch(a){case 0:for(a=0,c=Math.pow(2,8),s=1;s!=c;)u=y.val&y.position,y.position>>=1,0==y.position&&(y.position=r,y.val=n(y.index++)),a|=(u>0?1:0)*s,s<<=1;f=t(a);break;case 1:for(a=0,c=Math.pow(2,16),s=1;s!=c;)u=y.val&y.position,y.position>>=1,0==y.position&&(y.position=r,y.val=n(y.index++)),a|=(u>0?1:0)*s,s<<=1;f=t(a);break;case 2:return""}for(l[3]=f,i=f,g.push(f);;){if(y.index>e)return"";for(a=0,c=Math.pow(2,d),s=1;s!=c;)u=y.val&y.position,y.position>>=1,0==y.position&&(y.position=r,y.val=n(y.index++)),a|=(u>0?1:0)*s,s<<=1;switch(f=a){case 0:for(a=0,c=Math.pow(2,8),s=1;s!=c;)u=y.val&y.position,y.position>>=1,0==y.position&&(y.position=r,y.val=n(y.index++)),a|=(u>0?1:0)*s,s<<=1;l[h++]=t(a),f=h-1,p--;break;case 1:for(a=0,c=Math.pow(2,16),s=1;s!=c;)u=y.val&y.position,y.position>>=1,0==y.position&&(y.position=r,y.val=n(y.index++)),a|=(u>0?1:0)*s,s<<=1;l[h++]=t(a),f=h-1,p--;break;case 2:return g.join("")}if(0==p&&(p=Math.pow(2,d),d++),l[f])v=l[f];else{if(f!==h)return null;v=i+i.charAt(0)}g.push(v),l[h++]=i+v.charAt(0),i=v,0==--p&&(p=Math.pow(2,d),d++)}}};return i}();null!=t&&(t.exports=e)}));var wa=[ra,aa],ja=[la,ha,ba,function(){return{get:function(t,e){var r=t(e);if(!r)return r;var n=_a.decompress(r);return null==n?r:this._deserialize(n)},set:function(t,e,r){var n=_a.compress(this._serialize(r));t(e,n)}}}],Sa=Xi.createStore(wa,ja),Oa=Ji.Global;function Ea(){return Oa.sessionStorage}function Aa(t){return Ea().getItem(t)}var ka=[{name:"sessionStorage",read:Aa,write:function(t,e){return Ea().setItem(t,e)},each:function(t){for(var e=Ea().length-1;e>=0;e--){var r=Ea().key(e);t(Aa(r),r)}},remove:function(t){return Ea().removeItem(t)},clearAll:function(){return Ea().clear()}},aa],Ta=[la,ha],xa=Xi.createStore(ka,Ta),qa=Sa,Pa=xa,Ca="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";function $a(t){this.message=t}$a.prototype=new Error,$a.prototype.name="InvalidCharacterError";var Na="undefined"!=typeof window&&window.atob&&window.atob.bind(window)||function(t){var e=String(t).replace(/=+$/,"");if(e.length%4==1)throw new $a("'atob' failed: The string to be decoded is not correctly encoded.");for(var r,n,o=0,i=0,a="";n=e.charAt(i++);~n&&(r=o%4?64*r+n:n,o++%4)?a+=String.fromCharCode(255&r>>(-2*o&6)):0)n=Ca.indexOf(n);return a};var za=function(t){var e=t.replace(/-/g,"+").replace(/_/g,"/");switch(e.length%4){case 0:break;case 2:e+="==";break;case 3:e+="=";break;default:throw"Illegal base64url string!"}try{return function(t){return decodeURIComponent(Na(t).replace(/(.)/g,(function(t,e){var r=e.charCodeAt(0).toString(16).toUpperCase();return r.length<2&&(r="0"+r),"%"+r})))}(e)}catch(t){return Na(e)}};function Fa(t){this.message=t}Fa.prototype=new Error,Fa.prototype.name="InvalidTokenError";var Ia=function(t,e){if("string"!=typeof t)throw new Fa("Invalid token specified");var r=!0===(e=e||{}).header?0:1;try{return JSON.parse(za(t.split(".")[r]))}catch(t){throw new Fa("Invalid token specified: "+t.message)}},Ra=Fa;Ia.InvalidTokenError=Ra;var Ja,Ma,Ua,Ha,Da,La,Ba,Ka,Va,Ga=function(t){void 0===t&&(t=!1);var e=Date.now();return t?Math.floor(e/1e3):e};function Ya(t){if(Io(t))return function(t){var e=t.iat||Ga(!0);if(t.exp&&e>=t.exp){var r=new Date(t.exp).toISOString();throw new vo("Token has expired on "+r,t)}return t}(Ia(t));throw new vo("Token must be a string!")}Mo("HS256",["string"]),Mo(!1,["boolean","number","string"],((Ja={})[s]="exp",Ja[i]=!0,Ja)),Mo(!1,["boolean","number","string"],((Ma={})[s]="nbf",Ma[i]=!0,Ma)),Mo(!1,["boolean","string"],((Ua={})[s]="iss",Ua[i]=!0,Ua)),Mo(!1,["boolean","string"],((Ha={})[s]="sub",Ha[i]=!0,Ha)),Mo(!1,["boolean","string"],((Da={})[s]="iss",Da[i]=!0,Da)),Mo(!1,["boolean"],((La={})[i]=!0,La)),Mo(!1,["boolean","string"],((Ba={})[i]=!0,Ba)),Mo(!1,["boolean","string"],((Ka={})[i]=!0,Ka)),Mo(!1,["boolean"],((Va={})[i]=!0,Va));var Wa=r[0],Qa=r[1],Xa=function(t){!function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];try{window&&window.console&&Reflect.apply(console.log,null,t)}catch(t){}}(t),this.fly=t.Fly?new t.Fly:new Fly,this.opts=t,this.extraHeader={},this.extraParams={},this.reqInterceptor(),this.resInterceptor()},Za={headers:{configurable:!0}};Za.headers.set=function(t){this.extraHeader=t},Xa.prototype.request=function(t,e,r){var n;void 0===e&&(e={}),void 0===r&&(r={}),this.headers=r;var o=qn({},{_cb:yi()},this.extraParams);if(this.opts.enableJsonp){var i=function(t){return Object.keys(t)[0]}(t);o=qn({},o,((n={}).jsonqlJsonpCallback=i,n)),t=t[i]}return this.fly.request(this.jsonqlEndpoint,t,qn({},{method:Wa,params:o},e))},Xa.prototype.reqInterceptor=function(){var t=this;this.fly.interceptors.request.use((function(e){var r=t.getHeaders();for(var n in t.log("request interceptor call",r),r)e.headers[n]=r[n];return e}))},Xa.prototype.processJsonp=function(t){return ki(t)},Xa.prototype.resInterceptor=function(){var t=this,e=this,r=e.opts.enableJsonp;this.fly.interceptors.response.use((function(n){t.log("response interceptor call"),e.cleanUp();var o=Io(n.data)?JSON.parse(n.data):n.data;return r?e.processJsonp(o):ki(o)}),(function(t){throw e.cleanUp(),console.error(t),new go("Server side error",t)}))},Xa.prototype.getHeaders=function(){return this.opts.enableAuth?qn({},e,this.getAuthHeader(),this.extraHeader):qn({},e,this.extraHeader)},Xa.prototype.cleanUp=function(){this.extraHeader={},this.extraParams={}},Xa.prototype.get=function(){var t=this;return this.opts.showContractDesc&&(this.extraParams=qn({},this.extraParams,p)),this.request({},{method:"GET"},this.contractHeader).then(_o).then((function(e){return t.log("get contract result",e),e.cache&&e.contract?e.contract:e}))},Xa.prototype.query=function(t,e){return void 0===e&&(e=[]),this.request(function(t,e,r){var n;if(void 0===e&&(e=[]),void 0===r&&(r=!1),hi(t)&&Do(e)){var o=Ai(e);return!0===r?o:((n={})[t]=o,n)}throw new Ei("[createQuery] expect resolverName to be string and args to be array!",{resolverName:t,args:e})}(t,e)).then(_o)},Xa.prototype.mutation=function(t,e,r){return void 0===e&&(e={}),void 0===r&&(r={}),this.request(function(t,e,r,n){var o;void 0===r&&(r={}),void 0===n&&(n=!1);var i={};if(i[wi]=e,i[ji]=r,!0===n)return i;if(hi(t))return(o={})[t]=i,o;throw new Ei("[createMutation] expect resolverName to be string!",{resolverName:t,payload:e,condition:r})}(t,e,r),{method:Qa}).then(_o)},Object.defineProperties(Xa.prototype,Za);var tu=function(t){function e(e,r){void 0===r&&(r=null),r&&(e.Fly=r),t.call(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={storeIt:{configurable:!0},jsonqlEndpoint:{configurable:!0},jsonqlContract:{configurable:!0},jsonqlToken:{configurable:!0},jsonqlUserdata:{configurable:!0}};return r.storeIt.set=function(t){throw console.info("storeIt",t),Ro(t)&&t.length>=2&&Reflect.apply(qa.set,qa,t),new ho("Expect argument to be array and least 2 items!")},r.jsonqlEndpoint.set=function(t){var e=qa.get("endpoint")||[];di(e,t)||(e.push(t),this.storeId=["endpoint",e],this.endpointIndex=e.length-1)},r.jsonqlContract.set=function(t){var e=this.opts.storageKey,r=[e],n=t[0],o=t[1],i=qa.get(e)||[];i[this.endpointIndex||0]=n,r.push(i),o&&r.push(o),this.opts.keepContract&&(this.storeIt=r)},r.jsonqlToken.set=function(t){var e="credential",r=localStorage.get(e)||[];if(!di(r,t)){var n=r.length-1;r[n]=t,this[e+"Index"]=n;var o=[e,r];if(this.opts.tokenExpired){var i=parseFloat(this.opts.tokenExpired);if(!isNaN(i)&&i>0){var a=yi();o.push(a+parseFloat(i))}}return this.storeIt=o,this.jsonqlUserdata=this.decoder(t),t}return!1},r.jsonqlUserdata.set=function(t){var e=["userdata",t];return t.exp&&e.push(t.exp),Reflect.apply(qa.set,qa,e)},r.jsonqlEndpoint.get=function(){var t=qa.get("endpoint");if(!t){var e=this.opts,r=[e.hostname,e.jsonqlPath].join("/");return this.jsonqlEndpoint=r,r}return t[this.endpointIndex]},r.jsonqlContract.get=function(){var t=this.opts.storageKey;return(qa.get(t)||[])[this.endpointIndex]||!1},r.jsonqlToken.get=function(){var t="credential",e=localStorage.get(t);return!!e&&e[this[t+"Index"]]},r.jsonqlUserdata.get=function(){return Pa.get("userdata")},e.prototype.log=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];!0===this.opts.debugOn&&Reflect.apply(console.info,console,t)},Object.defineProperties(e.prototype,r),e}(function(t){function e(e){t.call(this,e),e.enableAuth&&e.useJwt&&(this.setDecoder=Ya)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={userdata:{configurable:!0},rawAuthToken:{configurable:!0},setDecoder:{configurable:!0}};return r.userdata.get=function(){return this.jsonqlUserdata},r.rawAuthToken.get=function(){return this.jsonqlToken},r.setDecoder.set=function(t){"function"==typeof t&&(this.decoder=t)},e.prototype.storeToken=function(t){return this.jsonqlToken=t},e.prototype.decoder=function(t){return t},e.prototype.getAuthHeader=function(){var t,e=this.rawAuthToken;return e?((t={})[this.opts.AUTH_HEADER]="Bearer "+e,t):{}},Object.defineProperties(e.prototype,r),e}(function(t){function e(e){t.call(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={contractHeader:{configurable:!0}};return e.prototype.getContract=function(){var t=this.readContract();if(this.log("getContract first call",t),t&&Array.isArray(t)){var e=t[this.endpointIndex||0];if(e)return Promise.resolve(e)}return this.get().then(this.storeContract.bind(this))},r.contractHeader.get=function(){var t={};return!1!==this.opts.contractKey&&(t[this.opts.contractKeyName]=this.opts.contractKey),t},e.prototype.storeContract=function(t){if(!Ti(t))throw new ho("Contract is malformed!");var e=[t];if(this.opts.contractExpired){var r=parseFloat(this.opts.contractExpired);!isNaN(r)&&r>0&&e.push(r)}return this.jsonqlContract=e,this.log("storeContract return result",t),t},e.prototype.readContract=function(){return Ti(this.opts.contract)?this.opts.contract:qa.get(this.opts.storageKey)},Object.defineProperties(e.prototype,r),e}(Xa))),eu={contract:!1,MUTATION_ARGS:["name","payload","conditions"],CONTENT_TYPE:t,BEARER:"Bearer",AUTH_HEADER:"Authorization"},ru={hostname:Mo([window.location.protocol,window.location.host].join("//"),["string"]),jsonqlPath:Mo("jsonql",["string"]),loginHandlerName:Mo(f,["string"]),logoutHandlerName:Mo(l,["string"]),enableJsonp:Mo(!1,["boolean"]),enableAuth:Mo(!1,["boolean"]),useJwt:Mo(!0,["boolean"]),useLocalstorage:Mo(!0,["boolean"]),storageKey:Mo("storageKey",["string"]),authKey:Mo("authKey",["string"]),contractExpired:Mo(0,["number"]),keepContract:Mo(!0,["boolean"]),exposeContract:Mo(!1,["boolean"]),showContractDesc:Mo(!1,["boolean"]),contractKey:Mo(!1,["boolean"]),contractKeyName:Mo("X-JSONQL-CV-KEY",["string"]),enableTimeout:Mo(!1,["boolean"]),timeout:Mo(5e3,["number"]),returnInstance:Mo(!1,["boolean"]),allowReturnRawToken:Mo(!1,["boolean"]),debugOn:Mo(!1,["boolean"])};var nu=new WeakMap,ou=new WeakMap;var iu=function(){this.__suspend__=null,this.queueStore=new Set},au={$suspend:{configurable:!0},$queues:{configurable:!0}};au.$suspend.set=function(t){var e=this;if("boolean"!=typeof t)throw new Error("$suspend only accept Boolean value!");var r=this.__suspend__;this.__suspend__=t,this.logger("($suspend)","Change from "+r+" --\x3e "+t),!0===r&&!1===t&&setTimeout((function(){e.release()}),1)},iu.prototype.$queue=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];return!0===this.__suspend__&&(this.logger("($queue)","added to $queue",t),this.queueStore.add(t)),this.__suspend__},au.$queues.get=function(){var t=this.queueStore.size;return this.logger("($queues)","size: "+t),t>0?Array.from(this.queueStore):[]},iu.prototype.release=function(){var t=this,e=this.queueStore.size;if(this.logger("(release)","Release was called "+e),e>0){var r=Array.from(this.queueStore);this.queueStore.clear(),this.logger("queue",r),r.forEach((function(e){t.logger(e),Reflect.apply(t.$trigger,t,e)})),this.logger("Release size "+this.queueStore.size)}},Object.defineProperties(iu.prototype,au);var uu=function(t){function e(e){void 0===e&&(e={}),t.call(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={$done:{configurable:!0}};return e.prototype.logger=function(){},e.prototype.$on=function(t,e,r){var n=this;void 0===r&&(r=null);this.validate(t,e);var o=this.takeFromStore(t);if(!1===o)return this.logger("($on)",t+" callback is not in lazy store"),this.addToNormalStore(t,"on",e,r);this.logger("($on)",t+" found in lazy store");var i=0;return o.forEach((function(o){var a=o[0],u=o[1],c=o[2];if(c&&"on"!==c)throw new Error("You are trying to register an event already been taken by other type: "+c);n.run(e,a,r||u),i+=n.addToNormalStore(t,"on",e,r||u)})),i},e.prototype.$once=function(t,e,r){void 0===r&&(r=null),this.validate(t,e);var n=this.takeFromStore(t);this.normalStore;if(!1===n)return this.logger("($once)",t+" not in the lazy store"),this.addToNormalStore(t,"once",e,r);this.logger("($once)",n);var o=Array.from(n)[0],i=o[0],a=o[1],u=o[2];if(u&&"once"!==u)throw new Error("You are trying to register an event already been taken by other type: "+u);this.run(e,i,r||a),this.$off(t)},e.prototype.$only=function(t,e,r){var n=this;void 0===r&&(r=null),this.validate(t,e);var o=!1,i=this.takeFromStore(t);(this.normalStore.has(t)||(this.logger("($only)",t+" add to store"),o=this.addToNormalStore(t,"only",e,r)),!1!==i)&&(this.logger("($only)",t+" found data in lazy store to execute"),Array.from(i).forEach((function(t){var o=t[0],i=t[1],a=t[2];if(a&&"only"!==a)throw new Error("You are trying to register an event already been taken by other type: "+a);n.run(e,o,r||i)})));return o},e.prototype.$onlyOnce=function(t,e,r){void 0===r&&(r=null),this.validate(t,e);var n=!1,o=this.takeFromStore(t);if(this.normalStore.has(t)||(this.logger("($onlyOnce)",t+" add to store"),n=this.addToNormalStore(t,"onlyOnce",e,r)),!1!==o){this.logger("($onlyOnce)",o);var i=Array.from(o)[0],a=i[0],u=i[1],c=i[2];if(c&&"onlyOnce"!==c)throw new Error("You are trying to register an event already been taken by other type: "+c);this.run(e,a,r||u),this.$off(t)}return n},e.prototype.$replace=function(t,e,r,n){if(void 0===r&&(r=null),void 0===n&&(n="on"),this.validateType(n)){this.$off(t);var o=this["$"+n];return Reflect.apply(o,this,[t,e,r])}throw new Error(n+" is not supported!")},e.prototype.$trigger=function(t,e,r,n){void 0===e&&(e=[]),void 0===r&&(r=null),void 0===n&&(n=!1),this.validateEvt(t);var o=0,i=this.normalStore;if(this.logger("($trigger)","normalStore",i),i.has(t)){var a=this.$queue(t,e,r,n);if(this.logger("($trigger)",t,"found; add to queue: ",a),!0===a)return!1;for(var u=Array.from(i.get(t)),c=u.length,s=!1,f=0;f0;)n[o]=arguments[o+2];if(t.has(e)?(this.logger("(addToStore)",e+" existed"),r=t.get(e)):(this.logger("(addToStore)","create new Set for "+e),r=new Set),n.length>2)if(Array.isArray(n[0])){var i=n[2];this.checkTypeInLazyStore(e,i)||r.add(n)}else this.checkContentExist(n,r)||(this.logger("(addToStore)","insert new",n),r.add(n));else r.add(n);return t.set(e,r),[t,r.size]},e.prototype.checkContentExist=function(t,e){return!!Array.from(e).filter((function(e){return e[0]===t[0]})).length},e.prototype.checkTypeInStore=function(t,e){this.validateEvt(t,e);var r=this.$get(t,!0);return!1===r||!r.filter((function(t){var r=t[3];return e!==r})).length},e.prototype.checkTypeInLazyStore=function(t,e){this.validateEvt(t,e);var r=this.lazyStore.get(t);return this.logger("(checkTypeInLazyStore)",r),!!r&&!!Array.from(r).filter((function(t){return t[2]!==e})).length},e.prototype.addToNormalStore=function(t,e,r,n){if(void 0===n&&(n=null),this.logger("(addToNormalStore)",t,e,"try to add to normal store"),this.checkTypeInStore(t,e)){this.logger("(addToNormalStore)",e+" can add to "+t+" normal store");var o=this.hashFnToKey(r),i=[this.normalStore,t,o,r,n,e],a=Reflect.apply(this.addToStore,this,i),u=a[0],c=a[1];return this.normalStore=u,c}return!1},e.prototype.addToLazyStore=function(t,e,r,n){void 0===e&&(e=[]),void 0===r&&(r=null),void 0===n&&(n=!1);var o=[this.lazyStore,t,this.toArray(e),r];n&&o.push(n);var i=Reflect.apply(this.addToStore,this,o),a=i[0],u=i[1];return this.lazyStore=a,u},e.prototype.toArray=function(t){return Array.isArray(t)?t:[t]},r.normalStore.set=function(t){nu.set(this,t)},r.normalStore.get=function(){return nu.get(this)},r.lazyStore.set=function(t){ou.set(this,t)},r.lazyStore.get=function(){return ou.get(this)},e.prototype.hashFnToKey=function(t){return t.toString().split("").reduce((function(t,e){return(t=(t<<5)-t+e.charCodeAt(0))&t}),0)+""},Object.defineProperties(e.prototype,r),e}(iu));return function(t,e){void 0===e&&(e={});var r,n=e.contract,o=function(t){return Uo(t,ru,eu)}(e),i=new tu(o,t),a=xi(i,n),u=(r=o.debugOn,new uu({logger:r?function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];t.unshift("[NBS]"),console.log.apply(null,t)}:void 0})),c=$i(i,o,a,u);return c.eventEmitter=u,c}})); +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).jsonqlClientStatic=e()}(this,(function(){"use strict";var t="application/vnd.api+json",e={Accept:t,"Content-Type":[t,"charset=utf-8"].join(";")},r=["POST","PUT"],n="type",o="optional",i="enumv",a="args",u="checker",c="alias",s={desc:"y"},f="No message",l="onResult",p="onError",h=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={statusCode:{configurable:!0},name:{configurable:!0}};return r.statusCode.get=function(){return 406},r.name.get=function(){return"Jsonql406Error"},Object.defineProperties(e,r),e}(Error),d=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={statusCode:{configurable:!0},name:{configurable:!0}};return r.statusCode.get=function(){return 500},r.name.get=function(){return"Jsonql500Error"},Object.defineProperties(e,r),e}(Error),v=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={statusCode:{configurable:!0},name:{configurable:!0}};return r.statusCode.get=function(){return 401},r.name.get=function(){return"JsonqlAuthorisationError"},Object.defineProperties(e,r),e}(Error),g=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={statusCode:{configurable:!0},name:{configurable:!0}};return r.statusCode.get=function(){return 401},r.name.get=function(){return"JsonqlContractAuthError"},Object.defineProperties(e,r),e}(Error),y=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={statusCode:{configurable:!0},name:{configurable:!0}};return r.statusCode.get=function(){return 500},r.name.get=function(){return"JsonqlResolverAppError"},Object.defineProperties(e,r),e}(Error),b="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},m=function(){try{if(window||document)return!0}catch(t){}return!1},_=function(){try{if(!m()&&b)return!0}catch(t){}return!1};var w=function(t){function e(){for(var e=[],r=arguments.length;r--;)e[r]=arguments[r];t.apply(this,e)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.where=function(){return m()?"browser":_()?"node":"unknown"},e}(Error),j=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,Error.captureStackTrace&&Error.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={statusCode:{configurable:!0},name:{configurable:!0}};return r.statusCode.get=function(){return 404},r.name.get=function(){return"JsonqlResolverNotFoundError"},Object.defineProperties(e,r),e}(w),O=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0}};return r.name.get=function(){return"JsonqlEnumError"},Object.defineProperties(e,r),e}(Error),S=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0}};return r.name.get=function(){return"JsonqlTypeError"},Object.defineProperties(e,r),e}(Error),E=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,t.captureStackTrace&&t.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0}};return r.name.get=function(){return"JsonqlCheckerError"},Object.defineProperties(e,r),e}(Error),A=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,Error.captureStackTrace&&Error.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0}};return r.name.get=function(){return"JsonqlValidationError"},Object.defineProperties(e,r),e}(w),k=function(t){function e(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t.apply(this,r),this.message=r[0],this.detail=r[1],this.className=e.name,Error.captureStackTrace&&Error.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0},statusCode:{configurable:!0}};return r.name.get=function(){return"JsonqlError"},r.statusCode.get=function(){return-1},Object.defineProperties(e,r),e}(w),T=function(t){function e(r,n){t.call(this,n),this.statusCode=r,this.className=e.name}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0}};return r.name.get=function(){return"JsonqlServerError"},Object.defineProperties(e,r),e}(Error),x=Object.freeze({__proto__:null,Jsonql406Error:h,Jsonql500Error:d,JsonqlAuthorisationError:v,JsonqlContractAuthError:g,JsonqlResolverAppError:y,JsonqlResolverNotFoundError:j,JsonqlEnumError:O,JsonqlTypeError:S,JsonqlCheckerError:E,JsonqlValidationError:A,JsonqlError:k,JsonqlServerError:T}),q=k,P=function(t,e){return!!Object.keys(t).filter((function(t){return e===t})).length};function C(t){if(P(t,"error")){var e=t.error,r=e.className,n=e.name,o=r||n,i=e.message||f,a=e.detail||e;if(o&&x[o])throw new x[r](i,a);throw new q(i,a)}return t}function $(t){if(Array.isArray(t))throw new A("",t);var e=t.message||f,r=t.detail||t;switch(!0){case t instanceof h:throw new h(e,r);case t instanceof d:throw new d(e,r);case t instanceof v:throw new v(e,r);case t instanceof g:throw new g(e,r);case t instanceof y:throw new y(e,r);case t instanceof j:throw new j(e,r);case t instanceof O:throw new O(e,r);case t instanceof S:throw new S(e,r);case t instanceof E:throw new E(e,r);case t instanceof A:throw new A(e,r);case t instanceof T:throw new T(e,r);default:throw new k(e,r)}}var N="object"==typeof b&&b&&b.Object===Object&&b,z="object"==typeof self&&self&&self.Object===Object&&self,F=N||z||Function("return this")(),I=F.Symbol;function R(t,e){for(var r=-1,n=null==t?0:t.length,o=Array(n);++r=n?t:function(t,e,r){var n=-1,o=t.length;e<0&&(e=-e>o?0:o+e),(r=r>o?o:r)<0&&(r+=o),o=e>r?0:r-e>>>0,e>>>=0;for(var i=Array(o);++n-1;);return r}(n,o),function(t,e){for(var r=t.length;r--&&ot(e,t[r],0)>-1;);return r}(n,o)+1).join("")}function _t(t){return void 0===t}var wt="[object Boolean]";var jt="[object Number]";function Ot(t){return function(t){return"number"==typeof t||Y(t)&&G(t)==jt}(t)&&t!=+t}var St="[object String]";function Et(t){return"string"==typeof t||!J(t)&&Y(t)&&G(t)==St}function At(t,e){return function(r){return t(e(r))}}var kt=At(Object.getPrototypeOf,Object),Tt="[object Object]",xt=Function.prototype,qt=Object.prototype,Pt=xt.toString,Ct=qt.hasOwnProperty,$t=Pt.call(Object);function Nt(t){if(!Y(t)||G(t)!=Tt)return!1;var e=kt(t);if(null===e)return!0;var r=Ct.call(e,"constructor")&&e.constructor;return"function"==typeof r&&r instanceof r&&Pt.call(r)==$t}var zt,Ft=function(t,e,r){for(var n=-1,o=Object(t),i=r(t),a=i.length;a--;){var u=i[zt?a:++n];if(!1===e(o[u],u,o))break}return t};var It="[object Arguments]";function Rt(t){return Y(t)&&G(t)==It}var Jt=Object.prototype,Mt=Jt.hasOwnProperty,Ut=Jt.propertyIsEnumerable,Dt=Rt(function(){return arguments}())?Rt:function(t){return Y(t)&&Mt.call(t,"callee")&&!Ut.call(t,"callee")};var Ht="object"==typeof exports&&exports&&!exports.nodeType&&exports,Lt=Ht&&"object"==typeof module&&module&&!module.nodeType&&module,Bt=Lt&&Lt.exports===Ht?F.Buffer:void 0,Kt=(Bt?Bt.isBuffer:void 0)||function(){return!1},Vt=9007199254740991,Gt=/^(?:0|[1-9]\d*)$/;function Yt(t,e){var r=typeof t;return!!(e=null==e?Vt:e)&&("number"==r||"symbol"!=r&&Gt.test(t))&&t>-1&&t%1==0&&t-1&&t%1==0&&t<=Wt}var Xt={};Xt["[object Float32Array]"]=Xt["[object Float64Array]"]=Xt["[object Int8Array]"]=Xt["[object Int16Array]"]=Xt["[object Int32Array]"]=Xt["[object Uint8Array]"]=Xt["[object Uint8ClampedArray]"]=Xt["[object Uint16Array]"]=Xt["[object Uint32Array]"]=!0,Xt["[object Arguments]"]=Xt["[object Array]"]=Xt["[object ArrayBuffer]"]=Xt["[object Boolean]"]=Xt["[object DataView]"]=Xt["[object Date]"]=Xt["[object Error]"]=Xt["[object Function]"]=Xt["[object Map]"]=Xt["[object Number]"]=Xt["[object Object]"]=Xt["[object RegExp]"]=Xt["[object Set]"]=Xt["[object String]"]=Xt["[object WeakMap]"]=!1;var Zt,te="object"==typeof exports&&exports&&!exports.nodeType&&exports,ee=te&&"object"==typeof module&&module&&!module.nodeType&&module,re=ee&&ee.exports===te&&N.process,ne=function(){try{var t=ee&&ee.require&&ee.require("util").types;return t||re&&re.binding&&re.binding("util")}catch(t){}}(),oe=ne&&ne.isTypedArray,ie=oe?(Zt=oe,function(t){return Zt(t)}):function(t){return Y(t)&&Qt(t.length)&&!!Xt[G(t)]},ae=Object.prototype.hasOwnProperty;function ue(t,e){var r=J(t),n=!r&&Dt(t),o=!r&&!n&&Kt(t),i=!r&&!n&&!o&&ie(t),a=r||n||o||i,u=a?function(t,e){for(var r=-1,n=Array(t);++r-1},Se.prototype.set=function(t,e){var r=this.__data__,n=je(r,t);return n<0?(++this.size,r.push([t,e])):r[n][1]=e,this};var Ee,Ae=F["__core-js_shared__"],ke=(Ee=/[^.]+$/.exec(Ae&&Ae.keys&&Ae.keys.IE_PROTO||""))?"Symbol(src)_1."+Ee:"";var Te=Function.prototype.toString;function xe(t){if(null!=t){try{return Te.call(t)}catch(t){}try{return t+""}catch(t){}}return""}var qe=/^\[object .+?Constructor\]$/,Pe=Function.prototype,Ce=Object.prototype,$e=Pe.toString,Ne=Ce.hasOwnProperty,ze=RegExp("^"+$e.call(Ne).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Fe(t){return!(!pe(t)||function(t){return!!ke&&ke in t}(t))&&(ye(t)?ze:qe).test(xe(t))}function Ie(t,e){var r=function(t,e){return null==t?void 0:t[e]}(t,e);return Fe(r)?r:void 0}var Re=Ie(F,"Map"),Je=Ie(Object,"create");var Me="__lodash_hash_undefined__",Ue=Object.prototype.hasOwnProperty;var De=Object.prototype.hasOwnProperty;var He="__lodash_hash_undefined__";function Le(t){var e=-1,r=null==t?0:t.length;for(this.clear();++eu))return!1;var s=i.get(t);if(s&&i.get(e))return s==e;var f=-1,l=!0,p=r&Ze?new We:void 0;for(i.set(t,e),i.set(e,t);++f0){if(++e>=Un)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}(Mn);function Bn(t,e){return Ln(function(t,e,r){return e=Jn(void 0===e?t.length-1:e,0),function(){for(var n=arguments,o=-1,i=Jn(n.length-e,0),a=Array(i);++o1?e[n-1]:void 0,i=n>2?e[2]:void 0;for(o=Kn.length>3&&"function"==typeof o?(n--,o):void 0,i&&function(t,e,r){if(!pe(r))return!1;var n=typeof e;return!!("number"==n?be(r)&&Yt(e,r.length):"string"==n&&e in r)&&we(r[e],t)}(e[0],e[1],i)&&(o=n<3?void 0:o,n=1),t=Object(t);++r0))},vo=function(t){if(t.indexOf("array.<")>-1&&t.indexOf(">")>-1){var e=t.replace("array.<","").replace(">","");return e.indexOf("|")?e.split("|"):[e]}return!1},go=function(t,e){var r=t.arg;return e.length>1?!r.filter((function(t){return!(e.length>e.filter((function(e){return!po(e)(t)})).length)})).length:e.length>e.filter((function(t){return!ho(r,t)})).length},yo=function(t,e){if(void 0===e&&(e=null),Nt(t)){if(!e)return!0;if(ho(e))return!e.filter((function(e){var r=t[e.name];return!(e.type.length>e.type.filter((function(t){var e;return!!_t(r)||(!1!==(e=vo(t))?!go({arg:r},e):!po(t)(r))})).length)})).length}return!1},bo=function(t){var e=t.arg,r=t.param,n=[e];return Array.isArray(r.keys)&&r.keys.length&&n.push(r.keys),yo.apply(null,n)};function mo(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];try{window&&window.console&&Reflect.apply(console.log,console,t)}catch(t){}}var _o=function(t,e){var r;switch(!0){case"object"===t:return!bo(e);case"array"===t:return!ho(e.arg);case!1!==(r=vo(t)):return!go(e,r);default:return!po(t)(e.arg)}},wo=function(t,e){return _t(t)?!0!==e.optional||_t(e.defaultvalue)?null:e.defaultvalue:t},jo=function(t,e,r){var n;void 0===r&&(r=!1);var o=function(t,e){if(!ho(e))throw new k("params is not an array! Did something gone wrong when you generate the contract.json?");if(0===e.length)return[];if(!ho(t))throw new k("args is not an array! You might want to do: ES6 Array.from(arguments) or ES5 Array.prototype.slice.call(arguments)");switch(!0){case t.length==e.length:return mo(1),t.map((function(t,r){return{arg:t,index:r,param:e[r]}}));case!0===e[0].variable:mo(2);var r=e[0].type;return t.map((function(t,n){return{arg:t,index:n,param:e[n]||{type:r,name:"_"}}}));case t.lengthe.length:mo(4);var n=e.length,o=["any"];return t.map((function(t,r){var i=r>=n||!!e[r].optional,a=e[r]||{type:o,name:"_"+r};return{arg:i?wo(t,a):t,index:r,param:a,optional:i}}));default:throw mo(5),new k("Could not understand your arguments and parameter structure!",{args:t,params:e})}}(t,e),i=o.filter((function(t){return!0===t.optional||!0===t.param.optional?function(t){var e=t.arg,r=t.param;return!!to(e)&&!(r.type.length>r.type.filter((function(e){return _o(e,t)})).length)}(t):!(t.param.type.length>t.param.type.filter((function(e){return _o(e,t)})).length)}));return r?((n={}).error=i,n.data=o.map((function(t){return t.arg})),n):i},Oo=function(t,e){var r,n=Object.keys(t);return r=e,!!n.filter((function(t){return t===r})).length},So=function(t){return!to(t)};function Eo(t,e){var r=Zn(e,(function(t,e){return!t[fo]}));return Br(r,{})?t:function(t,e){var r={};return e=bn(e),_e(t,(function(t,n,o){_n(r,e(t,n,o),t)})),r}(t,(function(t,e){return function(t,e,r){var n;return r(t,(function(t,r,o){if(e(t,r,o))return n=r,!1})),n}(r,bn((function(t){return t.alias===e})),_e)||e}))}function Ao(t,e){return Gn(e,(function(e,r){var n,o;return _t(t[r])||!0===e[ao]&&So(t[r])?Vn({},e,((n={})[lo]=!0,n)):((o={})[co]=t[r],o[io]=e[io],o[ao]=e[ao]||!1,o[uo]=e[uo]||!1,o[so]=e[so]||!1,o)}))}function ko(t,e){var r=function(t,e){var r=Eo(t,e);return{pristineValues:Gn(Zn(e,(function(t,e){return Oo(r,e)})),(function(t){return t.args})),checkAgainstAppProps:Zn(e,(function(t,e){return!Oo(r,e)})),config:r}}(t,e),n=r.config,o=r.pristineValues;return[Ao(n,r.checkAgainstAppProps),o]}var To=function(t){return ho(t)?t:[t]};var xo=function(t,e){return!ho(e)||function(t,e){return!!t.filter((function(t){return t===e})).length}(e,t)},qo=function(t,e){try{return!!ye(e)&&e.apply(null,[t])}catch(t){return!1}};function Po(t){return function(e,r){if(e[lo])return e[co];var n=function(t,e){var r,n=[[t[co]],[(r={},r[io]=To(t[io]),r[ao]=t[ao],r)]];return Reflect.apply(e,null,n)}(e,t);if(n.length)throw mo("runValidationAction",r,e),new S(r,n);if(!1!==e[uo]&&!xo(e[co],e[uo]))throw mo(uo,e[uo]),new O(r);if(!1!==e[so]&&!qo(e[co],e[so]))throw mo(so,e[so]),new E(r);return e[co]}}function Co(t,e,r,n){return void 0===t&&(t={}),Vn(function(t,e){var r=t[0],n=t[1],o=Gn(r,Po(e));return Vn(o,n)}(ko(t,e),n),r)}function $o(t,e,r,s,f,l){void 0===r&&(r=!1),void 0===s&&(s=!1),void 0===f&&(f=!1),void 0===l&&(l=!1);var p={};return p[a]=t,p[n]=e,!0===r&&(p[o]=!0),ho(s)&&(p[i]=s),ye(f)&&(p[u]=f),Et(l)&&(p[c]=l),p}var No=ro,zo=ho,Fo=function(t,e,r){return void 0===r&&(r=!1),new Promise((function(n,o){var i=jo(t,e,r);return r?i.error.length?o(i.error):n(i.data):i.length?o(i):n([])}))},Io=function(t,e,r){void 0===r&&(r={});var n=r[o],a=r[i],s=r[u],f=r[c];return $o.apply(null,[t,e,n,a,s,f])},Ro=function(t){return function(e,r,n){return void 0===n&&(n={}),Co(e,r,n,t)}}(jo),Jo=function(t){return J(t)?t:[t]},Mo=function(t){for(var e=[],r=arguments.length-1;r-- >0;)e[r]=arguments[r+1];return function(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];return e.reduce((function(t,e){return Reflect.apply(e,null,Jo(t))}),Reflect.apply(t,null,r))}};function Uo(t,e,r,n){void 0===n&&(n=!1);var o=Object.getOwnPropertyDescriptor(t,e);return!1===n&&void 0!==o?t:(Object.defineProperty(t,e,{value:r,writable:n}),t)}var Do=function(t,e,r,n){return function(){for(var r=[],o=arguments.length;o--;)r[o]=arguments[o];var i=n.auth[e].params,a=i.map((function(t,e){return r[e]})),u=r[i.length]||{};return Fo(r,i).then((function(){return t.query.apply(t,[e,a,u])})).catch($)}},Ho=function(t,e,r,n,o){var i={},a=function(t){i=Uo(i,t,(function(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];var i=o.query[t].params,a=i.map((function(t,e){return r[e]})),u=r[i.length]||{};return Fo(a,i).then((function(){return e.query.apply(e,[t,a,u])})).catch($)}))};for(var u in o.query)a(u);return t.query=i,[t,e,r,n,o]},Lo=function(t,e,r,n,o){var i={},a=function(t){i=Uo(i,t,(function(r,n,i){void 0===i&&(i={});var a=[r,n],u=o.mutation[t].params;return Fo(a,u).then((function(){return e.mutation.apply(e,[t,r,n,i])})).catch($)}))};for(var u in o.mutation)a(u);return t.mutation=i,[t,e,r,n,o]},Bo=function(t,e,r,n,o){if(n.enableAuth&&o.auth){var i={},a=n.loginHandlerName,u=n.logoutHandlerName;o.auth[a]&&(i[a]=function(){for(var t=[],n=arguments.length;n--;)t[n]=arguments[n];var i=Do(e,a,0,o);return i.apply(null,t).then(e.postLoginAction).then((function(t){return r.$trigger("login",t),t}))}),o.auth[u]?i[u]=function(){for(var t=[],n=arguments.length;n--;)t[n]=arguments[n];var i=Do(e,u,0,o);return i.apply(null,t).then(e.postLogoutAction).then((function(t){return r.$trigger("logout",t),t}))}:i[u]=function(){e.postLogoutAction("continue"),r.$trigger("logout","continue")},t.auth=i}return t};var Ko=Array.isArray,Vo=void 0!==b?b:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},Go="object"==typeof Vo&&Vo&&Vo.Object===Object&&Vo,Yo="object"==typeof self&&self&&self.Object===Object&&self,Wo=(Go||Yo||Function("return this")()).Symbol,Qo=Object.prototype,Xo=Qo.hasOwnProperty,Zo=Qo.toString,ti=Wo?Wo.toStringTag:void 0;var ei=Object.prototype.toString;var ri="[object Null]",ni="[object Undefined]",oi=Wo?Wo.toStringTag:void 0;function ii(t){return null==t?void 0===t?ni:ri:oi&&oi in Object(t)?function(t){var e=Xo.call(t,ti),r=t[ti];try{t[ti]=void 0;var n=!0}catch(t){}var o=Zo.call(t);return n&&(e?t[ti]=r:delete t[ti]),o}(t):function(t){return ei.call(t)}(t)}var ai=function(t,e){return function(r){return t(e(r))}}(Object.getPrototypeOf,Object);function ui(t){return null!=t&&"object"==typeof t}var ci="[object Object]",si=Function.prototype,fi=Object.prototype,li=si.toString,pi=fi.hasOwnProperty,hi=li.call(Object);var di=Wo?Wo.prototype:void 0,vi=(di&&di.toString,"[object String]");function gi(t){return"string"==typeof t||!Ko(t)&&ui(t)&&ii(t)==vi}var yi=function(t,e){return!!t.filter((function(t){return t===e})).length},bi=function(t,e){var r=Object.keys(t);return yi(r,e)},mi=function(){for(var t=arguments,e=[],r=arguments.length;r--;)e[r]=t[r];return e.join("_")},_i=function(t){void 0===t&&(t=!1);var e=Date.now();return t?Math.floor(e/1e3):e},wi="query",ji="mutation",Oi="socket",Si="payload",Ei="condition",Ai=function(){try{if(window||document)return!0}catch(t){}return!1},ki=function(){try{if(!Ai()&&Vo)return!0}catch(t){}return!1};var Ti=function(t){function e(){for(var r=arguments,n=[],o=arguments.length;o--;)n[o]=r[o];t.apply(this,n),this.message=n[0],this.detail=n[1],this.className=e.name,Error.captureStackTrace&&Error.captureStackTrace(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={name:{configurable:!0}};return r.name.get=function(){return"JsonqlValidationError"},Object.defineProperties(e,r),e}(function(t){function e(){for(var e=arguments,r=[],n=arguments.length;n--;)r[n]=e[n];t.apply(this,r)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.where=function(){return Ai()?"browser":ki()?"node":"unknown"},e}(Error));var xi=function(t){var e;return(e={}).args=t,e};var qi=function(t){return bi(t,"data")&&!bi(t,"error")?t.data:t},Pi=function(t){return function(t){if(!ui(t)||ii(t)!=ci)return!1;var e=ai(t);if(null===e)return!0;var r=pi.call(e,"constructor")&&e.constructor;return"function"==typeof r&&r instanceof r&&li.call(r)==hi}(t)&&(bi(t,wi)||bi(t,ji)||bi(t,Oi))},Ci=function(t,e){return void 0===e&&(e={}),Pi(e)?Promise.resolve(e):t.getContract()},$i=function(t,e){return function(r){for(var n=[],o=arguments.length-1;o-- >0;)n[o]=arguments[o+1];return new Promise((function(o,i){t.$only(mi(e,r,l),o),t.$only(mi(e,r,p),i),t.$trigger(e,{resolverName:r,args:n})}))}},Ni=function(t,e,r){var n=t.$queues,o=r.debugOn;o&&console.info("(validateRegisteredEvents)","storedEvt",n),n.forEach((function(t){var r=t[0],n=t[1].resolverName;if(o&&console.info("(validateRegisteredEvents)",r,n),!e[r][n])throw new Error(r+"."+n+" not existed in contract!")}))};function zi(t,e,r,n){var o=function(t,e,r,n){return Mo(Ho,Lo,Bo)({},t,e,r,n)}(t,e,r,n);Ni(e,n,r);var i=function(t){e.$only(t,(function(r){var n=r.resolverName,i=r.args;o[t][n]?Reflect.apply(o[t][n],null,i).then((function(r){e.$trigger(mi(t,n,l),r)})).catch((function(r){e.$trigger(mi(t,n,p),r)})):console.error(n+" is not defined in the contract!")}))};for(var a in o)i(a);setTimeout((function(){e.$suspend=!1}),1)}var Fi=function(t,e,r,n){n.$suspend=!0,r.then((function(r){zi(t,n,e,r)}));var o={query:$i(n,"query"),mutation:$i(n,"mutation"),auth:$i(n,"auth"),getToken:function(){return t.rawAuthToken}};return e.exposeContract&&(o.getContract=function(){return t.get()}),e.enableAuth&&(o.userdata=function(){return t.userdata}),o.version="1.4.0",o},Ii="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};var Ri=Object.assign?Object.assign:function(t,e,r,n){for(var o=arguments,i=1;i=0;e--){var r=aa().key(e);t(ua(r),r)}},remove:function(t){return aa().removeItem(t)},clearAll:function(){return aa().clear()}};function aa(){return oa.localStorage}function ua(t){return aa().getItem(t)}var ca=Di.trim,sa={name:"cookieStorage",read:function(t){if(!t||!ha(t))return null;var e="(?:^|.*;\\s*)"+escape(t).replace(/[\-\.\+\*]/g,"\\$&")+"\\s*\\=\\s*((?:[^;](?!;))*[^;]?).*";return unescape(fa.cookie.replace(new RegExp(e),"$1"))},write:function(t,e){if(!t)return;fa.cookie=escape(t)+"="+escape(e)+"; expires=Tue, 19 Jan 2038 03:14:07 GMT; path=/"},each:la,remove:pa,clearAll:function(){la((function(t,e){pa(e)}))}},fa=Di.Global.document;function la(t){for(var e=fa.cookie.split(/; ?/g),r=e.length-1;r>=0;r--)if(ca(e[r])){var n=e[r].split("="),o=unescape(n[0]);t(unescape(n[1]),o)}}function pa(t){t&&ha(t)&&(fa.cookie=escape(t)+"=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/")}function ha(t){return new RegExp("(?:^|;\\s*)"+escape(t).replace(/[\-\.\+\*]/g,"\\$&")+"\\s*\\=").test(fa.cookie)}var da=function(){var t={};return{defaults:function(e,r){t=r},get:function(e,r){var n=e();return void 0!==n?n:t[r]}}};var va="expire_mixin",ga=function(){var t=this.createStore(this.storage,null,this._namespacePrefix+va);return{set:function(e,r,n,o){this.hasNamespace(va)||t.set(r,o);return e()},get:function(t,r){this.hasNamespace(va)||e.call(this,r);return t()},remove:function(e,r){this.hasNamespace(va)||t.remove(r);return e()},getExpiration:function(e,r){return t.get(r)},removeExpiredKeys:function(t){var r=[];this.each((function(t,e){r.push(e)}));for(var n=0;n>>8,r[2*n+1]=a%256}return r},decompressFromUint8Array:function(e){if(null==e)return i.decompress(e);for(var r=new Array(e.length/2),n=0,o=r.length;n>=1}else{for(o=1,n=0;n>=1}0==--l&&(l=Math.pow(2,h),h++),delete u[f]}else for(o=a[f],n=0;n>=1;0==--l&&(l=Math.pow(2,h),h++),a[s]=p++,f=String(c)}if(""!==f){if(Object.prototype.hasOwnProperty.call(u,f)){if(f.charCodeAt(0)<256){for(n=0;n>=1}else{for(o=1,n=0;n>=1}0==--l&&(l=Math.pow(2,h),h++),delete u[f]}else for(o=a[f],n=0;n>=1;0==--l&&(l=Math.pow(2,h),h++)}for(o=2,n=0;n>=1;for(;;){if(v<<=1,g==e-1){d.push(r(v));break}g++}return d.join("")},decompress:function(t){return null==t?"":""==t?null:i._decompress(t.length,32768,(function(e){return t.charCodeAt(e)}))},_decompress:function(e,r,n){var o,i,a,u,c,s,f,l=[],p=4,h=4,d=3,v="",g=[],y={val:n(0),position:r,index:1};for(o=0;o<3;o+=1)l[o]=o;for(a=0,c=Math.pow(2,2),s=1;s!=c;)u=y.val&y.position,y.position>>=1,0==y.position&&(y.position=r,y.val=n(y.index++)),a|=(u>0?1:0)*s,s<<=1;switch(a){case 0:for(a=0,c=Math.pow(2,8),s=1;s!=c;)u=y.val&y.position,y.position>>=1,0==y.position&&(y.position=r,y.val=n(y.index++)),a|=(u>0?1:0)*s,s<<=1;f=t(a);break;case 1:for(a=0,c=Math.pow(2,16),s=1;s!=c;)u=y.val&y.position,y.position>>=1,0==y.position&&(y.position=r,y.val=n(y.index++)),a|=(u>0?1:0)*s,s<<=1;f=t(a);break;case 2:return""}for(l[3]=f,i=f,g.push(f);;){if(y.index>e)return"";for(a=0,c=Math.pow(2,d),s=1;s!=c;)u=y.val&y.position,y.position>>=1,0==y.position&&(y.position=r,y.val=n(y.index++)),a|=(u>0?1:0)*s,s<<=1;switch(f=a){case 0:for(a=0,c=Math.pow(2,8),s=1;s!=c;)u=y.val&y.position,y.position>>=1,0==y.position&&(y.position=r,y.val=n(y.index++)),a|=(u>0?1:0)*s,s<<=1;l[h++]=t(a),f=h-1,p--;break;case 1:for(a=0,c=Math.pow(2,16),s=1;s!=c;)u=y.val&y.position,y.position>>=1,0==y.position&&(y.position=r,y.val=n(y.index++)),a|=(u>0?1:0)*s,s<<=1;l[h++]=t(a),f=h-1,p--;break;case 2:return g.join("")}if(0==p&&(p=Math.pow(2,d),d++),l[f])v=l[f];else{if(f!==h)return null;v=i+i.charAt(0)}g.push(v),l[h++]=i+v.charAt(0),i=v,0==--p&&(p=Math.pow(2,d),d++)}}};return i}();null!=t&&(t.exports=e)}));var Sa=[ia,sa],Ea=[da,ga,wa,function(){return{get:function(t,e){var r=t(e);if(!r)return r;var n=Oa.decompress(r);return null==n?r:this._deserialize(n)},set:function(t,e,r){var n=Oa.compress(this._serialize(r));t(e,n)}}}],Aa=ea.createStore(Sa,Ea),ka=Di.Global;function Ta(){return ka.sessionStorage}function xa(t){return Ta().getItem(t)}var qa=[{name:"sessionStorage",read:xa,write:function(t,e){return Ta().setItem(t,e)},each:function(t){for(var e=Ta().length-1;e>=0;e--){var r=Ta().key(e);t(xa(r),r)}},remove:function(t){return Ta().removeItem(t)},clearAll:function(){return Ta().clear()}},sa],Pa=[da,ga],Ca=ea.createStore(qa,Pa),$a=Aa,Na=Ca,za="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";function Fa(t){this.message=t}Fa.prototype=new Error,Fa.prototype.name="InvalidCharacterError";var Ia="undefined"!=typeof window&&window.atob&&window.atob.bind(window)||function(t){var e=String(t).replace(/=+$/,"");if(e.length%4==1)throw new Fa("'atob' failed: The string to be decoded is not correctly encoded.");for(var r,n,o=0,i=0,a="";n=e.charAt(i++);~n&&(r=o%4?64*r+n:n,o++%4)?a+=String.fromCharCode(255&r>>(-2*o&6)):0)n=za.indexOf(n);return a};var Ra=function(t){var e=t.replace(/-/g,"+").replace(/_/g,"/");switch(e.length%4){case 0:break;case 2:e+="==";break;case 3:e+="=";break;default:throw"Illegal base64url string!"}try{return function(t){return decodeURIComponent(Ia(t).replace(/(.)/g,(function(t,e){var r=e.charCodeAt(0).toString(16).toUpperCase();return r.length<2&&(r="0"+r),"%"+r})))}(e)}catch(t){return Ia(e)}};function Ja(t){this.message=t}Ja.prototype=new Error,Ja.prototype.name="InvalidTokenError";var Ma=function(t,e){if("string"!=typeof t)throw new Ja("Invalid token specified");var r=!0===(e=e||{}).header?0:1;try{return JSON.parse(Ra(t.split(".")[r]))}catch(t){throw new Ja("Invalid token specified: "+t.message)}},Ua=Ja;Ma.InvalidTokenError=Ua;var Da,Ha,La,Ba,Ka,Va,Ga,Ya,Wa,Qa=function(t){void 0===t&&(t=!1);var e=Date.now();return t?Math.floor(e/1e3):e};function Xa(t){if(No(t))return function(t){var e=t.iat||Qa(!0);if(t.exp&&e>=t.exp){var r=new Date(t.exp).toISOString();throw new k("Token has expired on "+r,t)}return t}(Ma(t));throw new k("Token must be a string!")}Io("HS256",["string"]),Io(!1,["boolean","number","string"],((Da={})[c]="exp",Da[o]=!0,Da)),Io(!1,["boolean","number","string"],((Ha={})[c]="nbf",Ha[o]=!0,Ha)),Io(!1,["boolean","string"],((La={})[c]="iss",La[o]=!0,La)),Io(!1,["boolean","string"],((Ba={})[c]="sub",Ba[o]=!0,Ba)),Io(!1,["boolean","string"],((Ka={})[c]="iss",Ka[o]=!0,Ka)),Io(!1,["boolean"],((Va={})[o]=!0,Va)),Io(!1,["boolean","string"],((Ga={})[o]=!0,Ga)),Io(!1,["boolean","string"],((Ya={})[o]=!0,Ya)),Io(!1,["boolean"],((Wa={})[o]=!0,Wa));var Za=r[0],tu=r[1],eu=function(t){!function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];try{window&&window.console&&Reflect.apply(console.log,null,t)}catch(t){}}(t),this.fly=t.Fly?new t.Fly:new Fly,this.opts=t,this.extraHeader={},this.extraParams={},this.reqInterceptor(),this.resInterceptor()},ru={headers:{configurable:!0}};ru.headers.set=function(t){this.extraHeader=t},eu.prototype.request=function(t,e,r){var n;void 0===e&&(e={}),void 0===r&&(r={}),this.headers=r;var o=Vn({},{_cb:_i()},this.extraParams);if(this.opts.enableJsonp){var i=function(t){return Object.keys(t)[0]}(t);o=Vn({},o,((n={}).jsonqlJsonpCallback=i,n)),t=t[i]}return this.fly.request(this.jsonqlEndpoint,t,Vn({},{method:Za,params:o},e))},eu.prototype.reqInterceptor=function(){var t=this;this.fly.interceptors.request.use((function(e){var r=t.getHeaders();for(var n in t.log("request interceptor call",r),r)e.headers[n]=r[n];return e}))},eu.prototype.processJsonp=function(t){return qi(t)},eu.prototype.resInterceptor=function(){var t=this,e=this,r=e.opts.enableJsonp;this.fly.interceptors.response.use((function(n){t.log("response interceptor call"),e.cleanUp();var o=No(n.data)?JSON.parse(n.data):n.data;return r?e.processJsonp(o):qi(o)}),(function(t){throw e.cleanUp(),console.error(t),new T("Server side error",t)}))},eu.prototype.getHeaders=function(){return this.opts.enableAuth?Vn({},e,this.getAuthHeader(),this.extraHeader):Vn({},e,this.extraHeader)},eu.prototype.cleanUp=function(){this.extraHeader={},this.extraParams={}},eu.prototype.get=function(){var t=this;return this.opts.showContractDesc&&(this.extraParams=Vn({},this.extraParams,s)),this.request({},{method:"GET"},this.contractHeader).then(C).then((function(e){return t.log("get contract result",e),e.cache&&e.contract?e.contract:e}))},eu.prototype.query=function(t,e){return void 0===e&&(e=[]),this.request(function(t,e,r){var n;if(void 0===e&&(e=[]),void 0===r&&(r=!1),gi(t)&&Ko(e)){var o=xi(e);return!0===r?o:((n={})[t]=o,n)}throw new Ti("[createQuery] expect resolverName to be string and args to be array!",{resolverName:t,args:e})}(t,e)).then(C)},eu.prototype.mutation=function(t,e,r){return void 0===e&&(e={}),void 0===r&&(r={}),this.request(function(t,e,r,n){var o;void 0===r&&(r={}),void 0===n&&(n=!1);var i={};if(i[Si]=e,i[Ei]=r,!0===n)return i;if(gi(t))return(o={})[t]=i,o;throw new Ti("[createMutation] expect resolverName to be string!",{resolverName:t,payload:e,condition:r})}(t,e,r),{method:tu}).then(C)},Object.defineProperties(eu.prototype,ru);var nu=function(t){function e(e,r){void 0===r&&(r=null),r&&(e.Fly=r),t.call(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={storeIt:{configurable:!0},jsonqlEndpoint:{configurable:!0},jsonqlContract:{configurable:!0},jsonqlToken:{configurable:!0},jsonqlUserdata:{configurable:!0}};return r.storeIt.set=function(t){throw console.info("storeIt",t),zo(t)&&t.length>=2&&Reflect.apply($a.set,$a,t),new A("Expect argument to be array and least 2 items!")},r.jsonqlEndpoint.set=function(t){var e=$a.get("endpoint")||[];yi(e,t)||(e.push(t),this.storeId=["endpoint",e],this.endpointIndex=e.length-1)},r.jsonqlContract.set=function(t){var e=this.opts.storageKey,r=[e],n=t[0],o=t[1],i=$a.get(e)||[];i[this.endpointIndex||0]=n,r.push(i),o&&r.push(o),this.opts.keepContract&&(this.storeIt=r)},r.jsonqlToken.set=function(t){var e="credential",r=localStorage.get(e)||[];if(!yi(r,t)){var n=r.length-1;r[n]=t,this[e+"Index"]=n;var o=[e,r];if(this.opts.tokenExpired){var i=parseFloat(this.opts.tokenExpired);if(!isNaN(i)&&i>0){var a=_i();o.push(a+parseFloat(i))}}return this.storeIt=o,this.jsonqlUserdata=this.decoder(t),t}return!1},r.jsonqlUserdata.set=function(t){var e=["userdata",t];return t.exp&&e.push(t.exp),Reflect.apply($a.set,$a,e)},r.jsonqlEndpoint.get=function(){var t=$a.get("endpoint");if(!t){var e=this.opts,r=[e.hostname,e.jsonqlPath].join("/");return this.jsonqlEndpoint=r,r}return t[this.endpointIndex]},r.jsonqlContract.get=function(){var t=this.opts.storageKey;return($a.get(t)||[])[this.endpointIndex]||!1},r.jsonqlToken.get=function(){var t="credential",e=localStorage.get(t);return!!e&&e[this[t+"Index"]]},r.jsonqlUserdata.get=function(){return Na.get("userdata")},e.prototype.log=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];!0===this.opts.debugOn&&Reflect.apply(console.info,console,t)},Object.defineProperties(e.prototype,r),e}(function(t){function e(e){t.call(this,e),e.enableAuth&&e.useJwt&&(this.setDecoder=Xa)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={userdata:{configurable:!0},rawAuthToken:{configurable:!0},setDecoder:{configurable:!0}};return r.userdata.get=function(){return this.jsonqlUserdata},r.rawAuthToken.get=function(){return this.jsonqlToken},r.setDecoder.set=function(t){"function"==typeof t&&(this.decoder=t)},e.prototype.storeToken=function(t){return this.jsonqlToken=t},e.prototype.decoder=function(t){return t},e.prototype.getAuthHeader=function(){var t,e=this.rawAuthToken;return e?((t={})[this.opts.AUTH_HEADER]="Bearer "+e,t):{}},Object.defineProperties(e.prototype,r),e}(function(t){function e(e){t.call(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={contractHeader:{configurable:!0}};return e.prototype.getContract=function(){var t=this.readContract();if(this.log("getContract first call",t),t&&Array.isArray(t)){var e=t[this.endpointIndex||0];if(e)return Promise.resolve(e)}return this.get().then(this.storeContract.bind(this))},r.contractHeader.get=function(){var t={};return!1!==this.opts.contractKey&&(t[this.opts.contractKeyName]=this.opts.contractKey),t},e.prototype.storeContract=function(t){if(!Pi(t))throw new A("Contract is malformed!");var e=[t];if(this.opts.contractExpired){var r=parseFloat(this.opts.contractExpired);!isNaN(r)&&r>0&&e.push(r)}return this.jsonqlContract=e,this.log("storeContract return result",t),t},e.prototype.readContract=function(){return Pi(this.opts.contract)?this.opts.contract:$a.get(this.opts.storageKey)},Object.defineProperties(e.prototype,r),e}(eu))),ou={contract:!1,MUTATION_ARGS:["name","payload","conditions"],CONTENT_TYPE:t,BEARER:"Bearer",AUTH_HEADER:"Authorization"},iu={hostname:Io([window.location.protocol,window.location.host].join("//"),["string"]),jsonqlPath:Io("jsonql",["string"]),loginHandlerName:Io("login",["string"]),logoutHandlerName:Io("logout",["string"]),enableJsonp:Io(!1,["boolean"]),enableAuth:Io(!1,["boolean"]),useJwt:Io(!0,["boolean"]),useLocalstorage:Io(!0,["boolean"]),storageKey:Io("storageKey",["string"]),authKey:Io("authKey",["string"]),contractExpired:Io(0,["number"]),keepContract:Io(!0,["boolean"]),exposeContract:Io(!1,["boolean"]),showContractDesc:Io(!1,["boolean"]),contractKey:Io(!1,["boolean"]),contractKeyName:Io("X-JSONQL-CV-KEY",["string"]),enableTimeout:Io(!1,["boolean"]),timeout:Io(5e3,["number"]),returnInstance:Io(!1,["boolean"]),allowReturnRawToken:Io(!1,["boolean"]),debugOn:Io(!1,["boolean"])};var au=new WeakMap,uu=new WeakMap;var cu=function(){this.__suspend__=null,this.queueStore=new Set},su={$suspend:{configurable:!0},$queues:{configurable:!0}};su.$suspend.set=function(t){var e=this;if("boolean"!=typeof t)throw new Error("$suspend only accept Boolean value!");var r=this.__suspend__;this.__suspend__=t,this.logger("($suspend)","Change from "+r+" --\x3e "+t),!0===r&&!1===t&&setTimeout((function(){e.release()}),1)},cu.prototype.$queue=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];return!0===this.__suspend__&&(this.logger("($queue)","added to $queue",t),this.queueStore.add(t)),this.__suspend__},su.$queues.get=function(){var t=this.queueStore.size;return this.logger("($queues)","size: "+t),t>0?Array.from(this.queueStore):[]},cu.prototype.release=function(){var t=this,e=this.queueStore.size;if(this.logger("(release)","Release was called "+e),e>0){var r=Array.from(this.queueStore);this.queueStore.clear(),this.logger("queue",r),r.forEach((function(e){t.logger(e),Reflect.apply(t.$trigger,t,e)})),this.logger("Release size "+this.queueStore.size)}},Object.defineProperties(cu.prototype,su);var fu=function(t){function e(e){void 0===e&&(e={}),t.call(this,e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={$done:{configurable:!0}};return e.prototype.logger=function(){},e.prototype.$on=function(t,e,r){var n=this;void 0===r&&(r=null);this.validate(t,e);var o=this.takeFromStore(t);if(!1===o)return this.logger("($on)",t+" callback is not in lazy store"),this.addToNormalStore(t,"on",e,r);this.logger("($on)",t+" found in lazy store");var i=0;return o.forEach((function(o){var a=o[0],u=o[1],c=o[2];if(c&&"on"!==c)throw new Error("You are trying to register an event already been taken by other type: "+c);n.logger("($on)","call run on "+t),n.run(e,a,r||u),i+=n.addToNormalStore(t,"on",e,r||u)})),i},e.prototype.$once=function(t,e,r){void 0===r&&(r=null),this.validate(t,e);var n=this.takeFromStore(t);this.normalStore;if(!1===n)return this.logger("($once)",t+" not in the lazy store"),this.addToNormalStore(t,"once",e,r);this.logger("($once)",n);var o=Array.from(n)[0],i=o[0],a=o[1],u=o[2];if(u&&"once"!==u)throw new Error("You are trying to register an event already been taken by other type: "+u);this.logger("($once)","call run for "+t),this.run(e,i,r||a),this.$off(t)},e.prototype.$only=function(t,e,r){var n=this;void 0===r&&(r=null),this.validate(t,e);var o=!1,i=this.takeFromStore(t);(this.normalStore.has(t)||(this.logger("($only)",t+" add to store"),o=this.addToNormalStore(t,"only",e,r)),!1!==i)&&(this.logger("($only)",t+" found data in lazy store to execute"),Array.from(i).forEach((function(o){var i=o[0],a=o[1],u=o[2];if(u&&"only"!==u)throw new Error("You are trying to register an event already been taken by other type: "+u);n.logger("($only)","call run for "+t),n.run(e,i,r||a)})));return o},e.prototype.$onlyOnce=function(t,e,r){void 0===r&&(r=null),this.validate(t,e);var n=!1,o=this.takeFromStore(t);if(this.normalStore.has(t)||(this.logger("($onlyOnce)",t+" add to store"),n=this.addToNormalStore(t,"onlyOnce",e,r)),!1!==o){this.logger("($onlyOnce)",o);var i=Array.from(o)[0],a=i[0],u=i[1],c=i[2];if(c&&"onlyOnce"!==c)throw new Error("You are trying to register an event already been taken by other type: "+c);this.logger("($onlyOnce)","call run for "+t),this.run(e,a,r||u),this.$off(t)}return n},e.prototype.$replace=function(t,e,r,n){if(void 0===r&&(r=null),void 0===n&&(n="on"),this.validateType(n)){this.$off(t);var o=this["$"+n];return this.logger("($replace)",t,e),Reflect.apply(o,this,[t,e,r])}throw new Error(n+" is not supported!")},e.prototype.$trigger=function(t,e,r,n){void 0===e&&(e=[]),void 0===r&&(r=null),void 0===n&&(n=!1),this.validateEvt(t);var o=0,i=this.normalStore;if(this.logger("($trigger)","normalStore",i),i.has(t)){var a=this.$queue(t,e,r,n);if(this.logger("($trigger)",t,"found; add to queue: ",a),!0===a)return this.logger("($trigger)",t,"not executed. Exit now."),!1;for(var u=Array.from(i.get(t)),c=u.length,s=!1,f=0;f0;)n[o]=arguments[o+2];if(t.has(e)?(this.logger("(addToStore)",e+" existed"),r=t.get(e)):(this.logger("(addToStore)","create new Set for "+e),r=new Set),n.length>2)if(Array.isArray(n[0])){var i=n[2];this.checkTypeInLazyStore(e,i)||r.add(n)}else this.checkContentExist(n,r)||(this.logger("(addToStore)","insert new",n),r.add(n));else r.add(n);return t.set(e,r),[t,r.size]},e.prototype.checkContentExist=function(t,e){return!!Array.from(e).filter((function(e){return e[0]===t[0]})).length},e.prototype.checkTypeInStore=function(t,e){this.validateEvt(t,e);var r=this.$get(t,!0);return!1===r||!r.filter((function(t){var r=t[3];return e!==r})).length},e.prototype.checkTypeInLazyStore=function(t,e){this.validateEvt(t,e);var r=this.lazyStore.get(t);return this.logger("(checkTypeInLazyStore)",r),!!r&&!!Array.from(r).filter((function(t){return t[2]!==e})).length},e.prototype.addToNormalStore=function(t,e,r,n){if(void 0===n&&(n=null),this.logger("(addToNormalStore)",t,e,"try to add to normal store"),this.checkTypeInStore(t,e)){this.logger("(addToNormalStore)",e+" can add to "+t+" normal store");var o=this.hashFnToKey(r),i=[this.normalStore,t,o,r,n,e],a=Reflect.apply(this.addToStore,this,i),u=a[0],c=a[1];return this.normalStore=u,c}return!1},e.prototype.addToLazyStore=function(t,e,r,n){void 0===e&&(e=[]),void 0===r&&(r=null),void 0===n&&(n=!1);var o=[this.lazyStore,t,this.toArray(e),r];n&&o.push(n);var i=Reflect.apply(this.addToStore,this,o),a=i[0],u=i[1];return this.lazyStore=a,u},e.prototype.toArray=function(t){return Array.isArray(t)?t:[t]},r.normalStore.set=function(t){au.set(this,t)},r.normalStore.get=function(){return au.get(this)},r.lazyStore.set=function(t){uu.set(this,t)},r.lazyStore.get=function(){return uu.get(this)},e.prototype.hashFnToKey=function(t){return t.toString().split("").reduce((function(t,e){return(t=(t<<5)-t+e.charCodeAt(0))&t}),0)+""},Object.defineProperties(e.prototype,r),e}(cu));return function(t,e){void 0===e&&(e={});var r,n=e.contract,o=function(t){return Ro(t,iu,ou)}(e),i=new nu(o,t),a=Ci(i,n),u=(r=o.debugOn,new fu({logger:r?function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];t.unshift("[NBS]"),console.log.apply(null,t)}:void 0})),c=Fi(i,o,a,u);return c.eventEmitter=u,c}})); //# sourceMappingURL=static.js.map diff --git a/packages/http-client/static.js.map b/packages/http-client/static.js.map index 09044d5a6ed5d827e7e081f275cdb8a4f177d33f..b8c301683744302feed477970b6abe35907ef1dc 100644 --- a/packages/http-client/static.js.map +++ b/packages/http-client/static.js.map @@ -1 +1 @@ -{"version":3,"file":"static.js","sources":["node_modules/store/plugins/defaults.js","node_modules/store/plugins/expire.js"],"sourcesContent":["module.exports = defaultsPlugin\n\nfunction defaultsPlugin() {\n\tvar defaultValues = {}\n\t\n\treturn {\n\t\tdefaults: defaults,\n\t\tget: get\n\t}\n\t\n\tfunction defaults(_, values) {\n\t\tdefaultValues = values\n\t}\n\t\n\tfunction get(super_fn, key) {\n\t\tvar val = super_fn()\n\t\treturn (val !== undefined ? val : defaultValues[key])\n\t}\n}\n","var namespace = 'expire_mixin'\n\nmodule.exports = expirePlugin\n\nfunction expirePlugin() {\n\tvar expirations = this.createStore(this.storage, null, this._namespacePrefix+namespace)\n\t\n\treturn {\n\t\tset: expire_set,\n\t\tget: expire_get,\n\t\tremove: expire_remove,\n\t\tgetExpiration: getExpiration,\n\t\tremoveExpiredKeys: removeExpiredKeys\n\t}\n\t\n\tfunction expire_set(super_fn, key, val, expiration) {\n\t\tif (!this.hasNamespace(namespace)) {\n\t\t\texpirations.set(key, expiration)\n\t\t}\n\t\treturn super_fn()\n\t}\n\t\n\tfunction expire_get(super_fn, key) {\n\t\tif (!this.hasNamespace(namespace)) {\n\t\t\t_checkExpiration.call(this, key)\n\t\t}\n\t\treturn super_fn()\n\t}\n\t\n\tfunction expire_remove(super_fn, key) {\n\t\tif (!this.hasNamespace(namespace)) {\n\t\t\texpirations.remove(key)\n\t\t}\n\t\treturn super_fn()\n\t}\n\t\n\tfunction getExpiration(_, key) {\n\t\treturn expirations.get(key)\n\t}\n\t\n\tfunction removeExpiredKeys(_) {\n\t\tvar keys = []\n\t\tthis.each(function(val, key) {\n\t\t\tkeys.push(key)\n\t\t})\n\t\tfor (var i=0; i { +test('It should have isObjectHasKey exported', t => { const obj = {query: false, mutation: null, auth: true} - t.true(isKeyInObject(obj, 'query')) - t.true(isKeyInObject(obj, 'mutation')) + t.true(isObjectHasKey(obj, 'query')) + t.true(isObjectHasKey(obj, 'mutation')) - t.false(isKeyInObject(obj, 'socket')) + t.false(isObjectHasKey(obj, 'socket')) }) diff --git a/packages/http-client/tests/qunit/run-qunit-setup.js b/packages/http-client/tests/qunit/run-qunit-setup.js index 45bd02a1b8651276a824a17ff094176d90c43e68..39c8891492351500cdd0eb3bbfc2b13ce233b66d 100644 --- a/packages/http-client/tests/qunit/run-qunit-setup.js +++ b/packages/http-client/tests/qunit/run-qunit-setup.js @@ -3,9 +3,10 @@ const glob = require('glob') const { join, resolve } = require('path') const serverIoCore = require('server-io-core') -const jsonqlKoaMiddleware = require('@jsonql/koa') const jsonqlKoaDir = join(__dirname, '..', 'fixtures') -const jsonqlKoa = jsonqlKoaMiddleware.default + +const { jsonqlKoa } = require('jsonql-koa') +// const jsonqlKoa = jsonqlKoaMiddleware.default /** * @param {object} config configuration * @return {object} promise resolve the config for server-io-core diff --git a/packages/koa/previous/cjs-src/contract-middleware.js b/packages/koa/previous/cjs-src/contract-middleware.js index 06b61c6d4ca4527962f94f0a306b36a395e93f93..e6b4e0c4f319216389490f71488f61a75b8b4c20 100755 --- a/packages/koa/previous/cjs-src/contract-middleware.js +++ b/packages/koa/previous/cjs-src/contract-middleware.js @@ -8,7 +8,7 @@ const { join } = require('path') const { trim } = require('lodash') const { CONTRACT_NAME, SHOW_CONTRACT_DESC_PARAM } = require('jsonql-constants') const { JsonqlContractAuthError } = require('jsonql-errors') -const { isKeyInObject } = require('jsonql-utils') +const { isObjectHasKey } = require('jsonql-utils') const { getDebug, getContract, @@ -34,9 +34,9 @@ const removeDesc = (showDesc, contract) => { let c = contract; for (let type in c) { for (let fn in c[type]) { - if (isKeyInObject(c[type][fn], 'description')) { + if (isObjectHasKey(c[type][fn], 'description')) { delete c[type][fn].description; - if (c[type][fn].returns && isKeyInObject(c[type][fn].returns, 'description')) { + if (c[type][fn].returns && isObjectHasKey(c[type][fn].returns, 'description')) { delete c[type][fn].returns.description; } } diff --git a/packages/koa/previous/cjs-src/lib/config-check/process-jwt-keys.js b/packages/koa/previous/cjs-src/lib/config-check/process-jwt-keys.js index 49195dd2f3714a7b18588979a171cc8a54a0c67b..3be7ef9308486cdccb50c136d57e852066d4674a 100644 --- a/packages/koa/previous/cjs-src/lib/config-check/process-jwt-keys.js +++ b/packages/koa/previous/cjs-src/lib/config-check/process-jwt-keys.js @@ -7,7 +7,7 @@ const _ = require('lodash') const fsx = require('fs-extra') const { jwtProcessKey } = require('./options') -const { isKeyInObject } = require('jsonql-utils') +const { isObjectHasKey } = require('jsonql-utils') const { isString } = require('jsonql-params-validator') const debug = require('debug')('jsonql-koa:process-jwt-keys') @@ -39,7 +39,7 @@ const getKeysFromCache = (ctx, config) => { * @return {mixed} boolean on failed or object on success */ const getCreatedKeys = (ctx, config) => { - if (isKeyInObject(config, jwtProcessKey) && config[jwtProcessKey].then) { + if (isObjectHasKey(config, jwtProcessKey) && config[jwtProcessKey].then) { const { setter } = ctx.state.jsonql; return config[jwtProcessKey] .then( result => _.extend( config, _.mapValues(result, value => fsx.readFileSync(value) ) ) ) diff --git a/packages/koa/src/contracts/helpers.js b/packages/koa/src/contracts/helpers.js index 0b54066a451f1c853ae325a2f50004a48b4aa423..89e90d9128e17e82b9a67ad37083ece4e3030abb 100644 --- a/packages/koa/src/contracts/helpers.js +++ b/packages/koa/src/contracts/helpers.js @@ -3,7 +3,7 @@ import { trim } from 'lodash' import { SHOW_CONTRACT_DESC_PARAM } from 'jsonql-constants' import { - isKeyInObject, + isObjectHasKey, getDebug, handleOutput, packResult, @@ -26,9 +26,9 @@ export const removeDesc = (showDesc, contract) => { let c = contract; for (let type in c) { for (let fn in c[type]) { - if (isKeyInObject(c[type][fn], keyword)) { + if (isObjectHasKey(c[type][fn], keyword)) { delete c[type][fn].description; - if (c[type][fn].returns && isKeyInObject(c[type][fn].returns, keyword)) { + if (c[type][fn].returns && isObjectHasKey(c[type][fn].returns, keyword)) { delete c[type][fn].returns.description; } } diff --git a/packages/koa/src/options/process-jwt-keys.js b/packages/koa/src/options/process-jwt-keys.js index ead53011bfc1bc9dc4c2a5320d491020179262a2..c8face1022a119082484555eee06ca9692c2480d 100644 --- a/packages/koa/src/options/process-jwt-keys.js +++ b/packages/koa/src/options/process-jwt-keys.js @@ -7,7 +7,7 @@ import _ from 'lodash' import fsx from 'fs-extra' import { jwtProcessKey } from './options' -import { isKeyInObject } from '../utils' +import { isObjectHasKey } from '../utils' import { isString } from 'jsonql-params-validator' /** @@ -38,7 +38,7 @@ const getKeysFromCache = (ctx, config) => { * @return {mixed} boolean on failed or object on success */ const getCreatedKeys = (ctx, config) => { - if (isKeyInObject(config, jwtProcessKey) && config[jwtProcessKey].then) { + if (isObjectHasKey(config, jwtProcessKey) && config[jwtProcessKey].then) { const { setter } = ctx.state.jsonql; return config[jwtProcessKey] .then( result => _.extend( config, _.mapValues(result, value => fsx.readFileSync(value) ) ) ) diff --git a/packages/koa/src/utils/index.js b/packages/koa/src/utils/index.js index 23ab40175e846828a5bd472b3e1d1e5340a509da..de5754550458abb8cfd05034b060fe4f3871d439 100644 --- a/packages/koa/src/utils/index.js +++ b/packages/koa/src/utils/index.js @@ -5,7 +5,7 @@ import { isObject, isArray } from 'jsonql-params-validator' import { getDebug } from './utils' import { - isKeyInObject, + isObjectHasKey, chainFns, inArray, headerParser, @@ -44,7 +44,7 @@ export { isObject, isArray, - isKeyInObject, + isObjectHasKey, chainFns, inArray, headerParser, diff --git a/packages/node-client/src/utils.js b/packages/node-client/src/utils.js index 1cd71a5899ee96a05e492b1464681788530e4388..d93a7e587cbe7526713757fab3c720874a10068f 100755 --- a/packages/node-client/src/utils.js +++ b/packages/node-client/src/utils.js @@ -1,6 +1,6 @@ const { inspect } = require('util') const debug = require('debug') -const { isKeyInObject, resultHandler } = require('jsonql-utils') +const { isObjectHasKey, resultHandler } = require('jsonql-utils') const MODULE_NAME = 'jsonql-node-client' const display = (data, full = false) => ( @@ -10,7 +10,7 @@ const display = (data, full = false) => ( // export module.exports = { display, - isKeyInObject, + isObjectHasKey, resultHandler, getDebug: function(name) { return debug(MODULE_NAME).extend(name) diff --git a/packages/utils/README.md b/packages/utils/README.md index fea2ab7b1322b059ec47f95f08e815239345695e..6cf016b11ca7ff45103b13ed7cee34c11a59ba26 100644 --- a/packages/utils/README.md +++ b/packages/utils/README.md @@ -16,7 +16,7 @@ Please check [jsonql](https://jsonql.js.org) for more information. - printError - getDebug - inArray -- isKeyInObject +- isObjectHasKey - isJsonqlPath - isJsonqlRequest - isJsonqlConsoleUrl diff --git a/packages/utils/browser.js b/packages/utils/browser.js index 853012b365048b8a6f1eaf2d70de337c4a85175b..2796d229a95985e068eeb4ecf631d5f15a020c66 100644 --- a/packages/utils/browser.js +++ b/packages/utils/browser.js @@ -1,2 +1,2 @@ -!function(t,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports):"function"==typeof define&&define.amd?define(["exports"],r):r((t=t||self).jsonqlUtils={})}(this,(function(t){"use strict";var r=Array.isArray,e="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},n="object"==typeof e&&e&&e.Object===Object&&e,o="object"==typeof self&&self&&self.Object===Object&&self,u=n||o||Function("return this")(),i=u.Symbol,a=Object.prototype,c=a.hasOwnProperty,f=a.toString,s=i?i.toStringTag:void 0;var l=Object.prototype.toString;var p="[object Null]",v="[object Undefined]",d=i?i.toStringTag:void 0;function y(t){return null==t?void 0===t?v:p:d&&d in Object(t)?function(t){var r=c.call(t,s),e=t[s];try{t[s]=void 0;var n=!0}catch(t){}var o=f.call(t);return n&&(r?t[s]=e:delete t[s]),o}(t):function(t){return l.call(t)}(t)}var h,b,g=(h=Object.getPrototypeOf,b=Object,function(t){return h(b(t))});function _(t){return null!=t&&"object"==typeof t}var j="[object Object]",m=Function.prototype,O=Object.prototype,w=m.toString,P=O.hasOwnProperty,S=w.call(Object);function A(t){if(!_(t)||y(t)!=j)return!1;var r=g(t);if(null===r)return!0;var e=P.call(r,"constructor")&&r.constructor;return"function"==typeof e&&e instanceof e&&w.call(e)==S}var N="[object Symbol]";var E=1/0,k=i?i.prototype:void 0,z=k?k.toString:void 0;function F(t){if("string"==typeof t)return t;if(r(t))return function(t,r){for(var e=-1,n=null==t?0:t.length,o=Array(n);++e=n?t:function(t,r,e){var n=-1,o=t.length;r<0&&(r=-r>o?0:o+r),(e=e>o?o:e)<0&&(e+=o),o=r>e?0:e-r>>>0,r>>>=0;for(var u=Array(o);++n-1;);return e}(o,u),function(t,r){for(var e=t.length;e--&&C(r,t[e],0)>-1;);return e}(o,u)+1).join("")}var K=function(t,r){return!!t.filter((function(t){return t===r})).length},W=function(t){return r(t)?t:[t]},Z=function(t,r){var e=Object.keys(t);return K(e,r)},X=function(t){void 0===t&&(t=!1);var r=Date.now();return t?Math.floor(r/1e3):r},Y=function(t,r){var e=[];for(var n in r)e.push([n,r[n]].join("="));return[t,e.join("&")].join("?")},tt=function(){return{_cb:X()}};function rt(t,r){return t===r||t!=t&&r!=r}function et(t,r){for(var e=t.length;e--;)if(rt(t[e][0],r))return e;return-1}var nt=Array.prototype.splice;function ot(t){var r=-1,e=null==t?0:t.length;for(this.clear();++r-1},ot.prototype.set=function(t,r){var e=this.__data__,n=et(e,t);return n<0?(++this.size,e.push([t,r])):e[n][1]=r,this};var it="[object AsyncFunction]",at="[object Function]",ct="[object GeneratorFunction]",ft="[object Proxy]";function st(t){if(!ut(t))return!1;var r=y(t);return r==at||r==ct||r==it||r==ft}var lt,pt=u["__core-js_shared__"],vt=(lt=/[^.]+$/.exec(pt&&pt.keys&&pt.keys.IE_PROTO||""))?"Symbol(src)_1."+lt:"";var dt=Function.prototype.toString;var yt=/^\[object .+?Constructor\]$/,ht=Function.prototype,bt=Object.prototype,gt=ht.toString,_t=bt.hasOwnProperty,jt=RegExp("^"+gt.call(_t).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function mt(t){return!(!ut(t)||function(t){return!!vt&&vt in t}(t))&&(st(t)?jt:yt).test(function(t){if(null!=t){try{return dt.call(t)}catch(t){}try{return t+""}catch(t){}}return""}(t))}function Ot(t,r){var e=function(t,r){return null==t?void 0:t[r]}(t,r);return mt(e)?e:void 0}var wt=Ot(u,"Map"),Pt=Ot(Object,"create");var St="__lodash_hash_undefined__",At=Object.prototype.hasOwnProperty;var Nt=Object.prototype.hasOwnProperty;var Et="__lodash_hash_undefined__";function kt(t){var r=-1,e=null==t?0:t.length;for(this.clear();++r-1&&t%1==0&&t<=rr}function nr(t){return null!=t&&er(t.length)&&!st(t)}var or="object"==typeof t&&t&&!t.nodeType&&t,ur=or&&"object"==typeof module&&module&&!module.nodeType&&module,ir=ur&&ur.exports===or?u.Buffer:void 0,ar=(ir?ir.isBuffer:void 0)||function(){return!1},cr={};cr["[object Float32Array]"]=cr["[object Float64Array]"]=cr["[object Int8Array]"]=cr["[object Int16Array]"]=cr["[object Int32Array]"]=cr["[object Uint8Array]"]=cr["[object Uint8ClampedArray]"]=cr["[object Uint16Array]"]=cr["[object Uint32Array]"]=!0,cr["[object Arguments]"]=cr["[object Array]"]=cr["[object ArrayBuffer]"]=cr["[object Boolean]"]=cr["[object DataView]"]=cr["[object Date]"]=cr["[object Error]"]=cr["[object Function]"]=cr["[object Map]"]=cr["[object Number]"]=cr["[object Object]"]=cr["[object RegExp]"]=cr["[object Set]"]=cr["[object String]"]=cr["[object WeakMap]"]=!1;var fr="object"==typeof t&&t&&!t.nodeType&&t,sr=fr&&"object"==typeof module&&module&&!module.nodeType&&module,lr=sr&&sr.exports===fr&&n.process,pr=function(){try{var t=sr&&sr.require&&sr.require("util").types;return t||lr&&lr.binding&&lr.binding("util")}catch(t){}}(),vr=pr&&pr.isTypedArray,dr=vr?function(t){return function(r){return t(r)}}(vr):function(t){return _(t)&&er(t.length)&&!!cr[y(t)]};function yr(t,r){if(("constructor"!==r||"function"!=typeof t[r])&&"__proto__"!=r)return t[r]}var hr=Object.prototype.hasOwnProperty;function br(t,r,e){var n=t[r];hr.call(t,r)&&rt(n,e)&&(void 0!==e||r in t)||Jt(t,r,e)}var gr=9007199254740991,_r=/^(?:0|[1-9]\d*)$/;function jr(t,r){var e=typeof t;return!!(r=null==r?gr:r)&&("number"==e||"symbol"!=e&&_r.test(t))&&t>-1&&t%1==0&&t0){if(++r>=Tr)return arguments[0]}else r=0;return t.apply(void 0,arguments)}}(xr);function Rr(t,r){return Mr(function(t,r,e){return r=Fr(void 0===r?t.length-1:r,0),function(){for(var n=arguments,o=-1,u=Fr(n.length-r,0),i=Array(u);++o1?r[n-1]:void 0,u=n>2?r[2]:void 0;for(o=Ur.length>3&&"function"==typeof o?(n--,o):void 0,u&&function(t,r,e){if(!ut(e))return!1;var n=typeof r;return!!("number"==n?nr(e)&&jr(r,e.length):"string"==n&&r in e)&&rt(e[r],t)}(r[0],r[1],u)&&(o=n<3?void 0:o,n=1),t=Object(t);++e0;)r[e]=arguments[e+1];return function(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];return r.reduce((function(t,r){return Reflect.apply(r,null,W(t))}),Reflect.apply(t,null,e))}},t.chainPromises=function(t,r){return void 0===r&&(r=!1),t.reduce((function(t,e){return t.then((function(t){return e.then((function(e){return!1===r?t.concat([e]):qr(t,e)}))}))}),Promise.resolve(!1===r?[]:A(r)?r:{}))},t.checkIsContract=te,t.createEvt=function(){for(var t=[],r=arguments.length;r--;)t[r]=arguments[r];return t.join("_")},t.createMutation=ce,t.createMutationStr=function(t,r,e,n){return void 0===e&&(e={}),void 0===n&&(n=!1),JSON.stringify(ce(t,r,e,n))},t.createQuery=ae,t.createQueryStr=function(t,r,e){return void 0===r&&(r=[]),void 0===e&&(e=!1),JSON.stringify(ae(t,r,e))},t.dasherize=function(t){return H(t).replace(/([A-Z])/g,"-$1").replace(/[-_\s]+/g,"-").toLowerCase()},t.extractArgsFromPayload=function(t,r){switch(r){case Ir:return t[Lr];case $r:return[t[Dr],t[Qr]];default:throw new Yr("Unknown "+r+" to extract argument from!")}},t.extractParamsFromContract=function(t,r,e){try{var n=t[r][e];if(!n)throw new Zr(e,r);return n}catch(t){throw new Zr(e,t)}},t.extractSocketPart=re,t.formatPayload=ue,t.getCallMethod=function(t){switch(!0){case t===Gr[0]:return Ir;case t===Gr[1]:return $r;default:return!1}},t.getConfigValue=function(t,r){return r&&A(r)&&t in r?r[t]:void 0},t.getMutationFromArgs=le,t.getMutationFromPayload=function(t){var r=se(t,le);if(!1!==r)return r;throw new Xr("[getMutationArgs] Payload is malformed!",t)},t.getNameFromPayload=ie,t.getNamespaceInOrder=function(t,r){var e=[];for(var n in t)n===r?e[1]=n:e[0]=n;return e},t.getQueryFromArgs=fe,t.getQueryFromPayload=function(t){var r=se(t,fe);if(!1!==r)return r;throw new Xr("[getQueryArgs] Payload is malformed!",t)},t.groupByNamespace=function(t,r){void 0===r&&(r=!1);var e=re(t);if(!1===e){if(r)return t;throw new Yr("socket not found in contract!")}var n,o={},u=0;for(var i in e){var a=e[i],c=a.namespace;c&&(o[c]||(++u,o[c]={}),o[c][i]=a,n||a.public&&(n=c))}return{size:u,nspSet:o,publicNamespace:n}},t.inArray=K,t.injectToFn=function(t,r,e,n){void 0===n&&(n=!1);var o=Object.getOwnPropertyDescriptor(t,r);return!1===n&&void 0!==o?t:(Object.defineProperty(t,r,{value:e,writable:n}),t)},t.isContract=ve,t.isJsonqlErrorObj=pe,t.isKeyInObject=Z,t.isNotEmpty=function(t){return void 0!==t&&!1!==t&&null!==t&&""!==H(t)},t.objDefineProps=function(t,r,e,n){return void 0===n&&(n=null),void 0===Object.getOwnPropertyDescriptor(t,r)&&Object.defineProperty(t,r,{set:e,get:null===n?function(){return null}:n}),t},t.packError=function(t,r,e,n){var o;void 0===r&&(r="JsonqlError"),void 0===e&&(e=0),void 0===n&&(n="");var u={detail:t,className:r,statusCode:e,message:n};return JSON.stringify(((o={}).error=pe(t)||u,o))},t.packResult=function(t){var r;return JSON.stringify(((r={}).data=t,r))},t.resultHandler=function(t){return Z(t,"data")&&!Z(t,"error")?t.data:t},t.timestamp=X,t.toArray=W,t.toJson=function(t){return"string"==typeof t?function(t){try{return JSON.parse(t)}catch(r){return t}}(t):JSON.parse(JSON.stringify(t))},t.toPayload=oe,t.urlParams=Y,Object.defineProperty(t,"__esModule",{value:!0})})); +!function(t,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports):"function"==typeof define&&define.amd?define(["exports"],r):r((t=t||self).jsonqlUtils={})}(this,(function(t){"use strict";var r=Array.isArray,e="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},n="object"==typeof e&&e&&e.Object===Object&&e,o="object"==typeof self&&self&&self.Object===Object&&self,u=n||o||Function("return this")(),i=u.Symbol,a=Object.prototype,c=a.hasOwnProperty,f=a.toString,s=i?i.toStringTag:void 0;var l=Object.prototype.toString;var p="[object Null]",v="[object Undefined]",d=i?i.toStringTag:void 0;function y(t){return null==t?void 0===t?v:p:d&&d in Object(t)?function(t){var r=c.call(t,s),e=t[s];try{t[s]=void 0;var n=!0}catch(t){}var o=f.call(t);return n&&(r?t[s]=e:delete t[s]),o}(t):function(t){return l.call(t)}(t)}var h,b,g=(h=Object.getPrototypeOf,b=Object,function(t){return h(b(t))});function _(t){return null!=t&&"object"==typeof t}var j="[object Object]",m=Function.prototype,O=Object.prototype,w=m.toString,P=O.hasOwnProperty,S=w.call(Object);function A(t){if(!_(t)||y(t)!=j)return!1;var r=g(t);if(null===r)return!0;var e=P.call(r,"constructor")&&r.constructor;return"function"==typeof e&&e instanceof e&&w.call(e)==S}var N="[object Symbol]";var E=1/0,k=i?i.prototype:void 0,z=k?k.toString:void 0;function F(t){if("string"==typeof t)return t;if(r(t))return function(t,r){for(var e=-1,n=null==t?0:t.length,o=Array(n);++e=n?t:function(t,r,e){var n=-1,o=t.length;r<0&&(r=-r>o?0:o+r),(e=e>o?o:e)<0&&(e+=o),o=r>e?0:e-r>>>0,r>>>=0;for(var u=Array(o);++n-1;);return e}(o,u),function(t,r){for(var e=t.length;e--&&C(r,t[e],0)>-1;);return e}(o,u)+1).join("")}var K=function(t,r){return!!t.filter((function(t){return t===r})).length},W=function(t){return r(t)?t:[t]},Z=function(t,r){var e=Object.keys(t);return K(e,r)},X=function(t){void 0===t&&(t=!1);var r=Date.now();return t?Math.floor(r/1e3):r},Y=function(t,r){var e=[];for(var n in r)e.push([n,r[n]].join("="));return[t,e.join("&")].join("?")},tt=function(){return{_cb:X()}};function rt(t,r){return t===r||t!=t&&r!=r}function et(t,r){for(var e=t.length;e--;)if(rt(t[e][0],r))return e;return-1}var nt=Array.prototype.splice;function ot(t){var r=-1,e=null==t?0:t.length;for(this.clear();++r-1},ot.prototype.set=function(t,r){var e=this.__data__,n=et(e,t);return n<0?(++this.size,e.push([t,r])):e[n][1]=r,this};var it="[object AsyncFunction]",at="[object Function]",ct="[object GeneratorFunction]",ft="[object Proxy]";function st(t){if(!ut(t))return!1;var r=y(t);return r==at||r==ct||r==it||r==ft}var lt,pt=u["__core-js_shared__"],vt=(lt=/[^.]+$/.exec(pt&&pt.keys&&pt.keys.IE_PROTO||""))?"Symbol(src)_1."+lt:"";var dt=Function.prototype.toString;var yt=/^\[object .+?Constructor\]$/,ht=Function.prototype,bt=Object.prototype,gt=ht.toString,_t=bt.hasOwnProperty,jt=RegExp("^"+gt.call(_t).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function mt(t){return!(!ut(t)||function(t){return!!vt&&vt in t}(t))&&(st(t)?jt:yt).test(function(t){if(null!=t){try{return dt.call(t)}catch(t){}try{return t+""}catch(t){}}return""}(t))}function Ot(t,r){var e=function(t,r){return null==t?void 0:t[r]}(t,r);return mt(e)?e:void 0}var wt=Ot(u,"Map"),Pt=Ot(Object,"create");var St="__lodash_hash_undefined__",At=Object.prototype.hasOwnProperty;var Nt=Object.prototype.hasOwnProperty;var Et="__lodash_hash_undefined__";function kt(t){var r=-1,e=null==t?0:t.length;for(this.clear();++r-1&&t%1==0&&t<=rr}function nr(t){return null!=t&&er(t.length)&&!st(t)}var or="object"==typeof t&&t&&!t.nodeType&&t,ur=or&&"object"==typeof module&&module&&!module.nodeType&&module,ir=ur&&ur.exports===or?u.Buffer:void 0,ar=(ir?ir.isBuffer:void 0)||function(){return!1},cr={};cr["[object Float32Array]"]=cr["[object Float64Array]"]=cr["[object Int8Array]"]=cr["[object Int16Array]"]=cr["[object Int32Array]"]=cr["[object Uint8Array]"]=cr["[object Uint8ClampedArray]"]=cr["[object Uint16Array]"]=cr["[object Uint32Array]"]=!0,cr["[object Arguments]"]=cr["[object Array]"]=cr["[object ArrayBuffer]"]=cr["[object Boolean]"]=cr["[object DataView]"]=cr["[object Date]"]=cr["[object Error]"]=cr["[object Function]"]=cr["[object Map]"]=cr["[object Number]"]=cr["[object Object]"]=cr["[object RegExp]"]=cr["[object Set]"]=cr["[object String]"]=cr["[object WeakMap]"]=!1;var fr="object"==typeof t&&t&&!t.nodeType&&t,sr=fr&&"object"==typeof module&&module&&!module.nodeType&&module,lr=sr&&sr.exports===fr&&n.process,pr=function(){try{var t=sr&&sr.require&&sr.require("util").types;return t||lr&&lr.binding&&lr.binding("util")}catch(t){}}(),vr=pr&&pr.isTypedArray,dr=vr?function(t){return function(r){return t(r)}}(vr):function(t){return _(t)&&er(t.length)&&!!cr[y(t)]};function yr(t,r){if(("constructor"!==r||"function"!=typeof t[r])&&"__proto__"!=r)return t[r]}var hr=Object.prototype.hasOwnProperty;function br(t,r,e){var n=t[r];hr.call(t,r)&&rt(n,e)&&(void 0!==e||r in t)||Jt(t,r,e)}var gr=9007199254740991,_r=/^(?:0|[1-9]\d*)$/;function jr(t,r){var e=typeof t;return!!(r=null==r?gr:r)&&("number"==e||"symbol"!=e&&_r.test(t))&&t>-1&&t%1==0&&t0){if(++r>=Tr)return arguments[0]}else r=0;return t.apply(void 0,arguments)}}(xr);function Rr(t,r){return Mr(function(t,r,e){return r=Fr(void 0===r?t.length-1:r,0),function(){for(var n=arguments,o=-1,u=Fr(n.length-r,0),i=Array(u);++o1?r[n-1]:void 0,u=n>2?r[2]:void 0;for(o=Ur.length>3&&"function"==typeof o?(n--,o):void 0,u&&function(t,r,e){if(!ut(e))return!1;var n=typeof r;return!!("number"==n?nr(e)&&jr(r,e.length):"string"==n&&r in e)&&rt(e[r],t)}(r[0],r[1],u)&&(o=n<3?void 0:o,n=1),t=Object(t);++e0;)r[e]=arguments[e+1];return function(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];return r.reduce((function(t,r){return Reflect.apply(r,null,W(t))}),Reflect.apply(t,null,e))}},t.chainProcessPromises=function(t){for(var r=[],e=arguments.length-1;e-- >0;)r[e]=arguments[e+1];return function(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];return r.reduce((function(t,r){return t.then((function(t){return r(t)}))}),Reflect.apply(t,null,e))}},t.chainPromises=function(t,r){return void 0===r&&(r=!1),t.reduce((function(t,e){return t.then((function(t){return e.then((function(e){return!1===r?t.concat([e]):qr(t,e)}))}))}),Promise.resolve(!1===r?[]:A(r)?r:{}))},t.checkIsContract=te,t.createEvt=function(){for(var t=[],r=arguments.length;r--;)t[r]=arguments[r];return t.join("_")},t.createMutation=ce,t.createMutationStr=function(t,r,e,n){return void 0===e&&(e={}),void 0===n&&(n=!1),JSON.stringify(ce(t,r,e,n))},t.createQuery=ae,t.createQueryStr=function(t,r,e){return void 0===r&&(r=[]),void 0===e&&(e=!1),JSON.stringify(ae(t,r,e))},t.dasherize=function(t){return G(t).replace(/([A-Z])/g,"-$1").replace(/[-_\s]+/g,"-").toLowerCase()},t.extractArgsFromPayload=function(t,r){switch(r){case $r:return t[Lr];case Br:return[t[Dr],t[Qr]];default:throw new Yr("Unknown "+r+" to extract argument from!")}},t.extractParamsFromContract=function(t,r,e){try{var n=t[r][e];if(!n)throw new Zr(e,r);return n}catch(t){throw new Zr(e,t)}},t.extractSocketPart=re,t.formatPayload=ue,t.getCallMethod=function(t){switch(!0){case t===Hr[0]:return $r;case t===Hr[1]:return Br;default:return!1}},t.getConfigValue=function(t,r){return r&&A(r)&&t in r?r[t]:void 0},t.getMutationFromArgs=le,t.getMutationFromPayload=function(t){var r=se(t,le);if(!1!==r)return r;throw new Xr("[getMutationArgs] Payload is malformed!",t)},t.getNameFromPayload=ie,t.getNamespaceInOrder=function(t,r){var e=[];for(var n in t)n===r?e[1]=n:e[0]=n;return e},t.getQueryFromArgs=fe,t.getQueryFromPayload=function(t){var r=se(t,fe);if(!1!==r)return r;throw new Xr("[getQueryArgs] Payload is malformed!",t)},t.groupByNamespace=function(t,r){void 0===r&&(r=!1);var e=re(t);if(!1===e){if(r)return t;throw new Yr("socket not found in contract!")}var n,o={},u=0;for(var i in e){var a=e[i],c=a.namespace;c&&(o[c]||(++u,o[c]={}),o[c][i]=a,n||a.public&&(n=c))}return{size:u,nspSet:o,publicNamespace:n}},t.inArray=K,t.injectToFn=function(t,r,e,n){void 0===n&&(n=!1);var o=Object.getOwnPropertyDescriptor(t,r);return!1===n&&void 0!==o?t:(Object.defineProperty(t,r,{value:e,writable:n}),t)},t.isContract=ve,t.isFunc=function(t){if("function"==typeof t)return!0;console.error("Expect to be Function type!")},t.isJsonqlErrorObj=pe,t.isNotEmpty=function(t){return void 0!==t&&!1!==t&&null!==t&&""!==G(t)},t.isObjectHasKey=Z,t.objDefineProps=function(t,r,e,n){return void 0===n&&(n=null),void 0===Object.getOwnPropertyDescriptor(t,r)&&Object.defineProperty(t,r,{set:e,get:null===n?function(){return null}:n}),t},t.packError=function(t,r,e,n){var o;void 0===r&&(r="JsonqlError"),void 0===e&&(e=0),void 0===n&&(n="");var u={detail:t,className:r,statusCode:e,message:n};return JSON.stringify(((o={}).error=pe(t)||u,o))},t.packResult=function(t){var r;return JSON.stringify(((r={}).data=t,r))},t.resultHandler=function(t){return Z(t,"data")&&!Z(t,"error")?t.data:t},t.timestamp=X,t.toArray=W,t.toJson=function(t){return"string"==typeof t?function(t){try{return JSON.parse(t)}catch(r){return t}}(t):JSON.parse(JSON.stringify(t))},t.toPayload=oe,t.urlParams=Y,Object.defineProperty(t,"__esModule",{value:!0})})); //# sourceMappingURL=browser.js.map diff --git a/packages/utils/index.js b/packages/utils/index.js index 7173ae84e121020dcc5085f651b0515c7f7b4358..bac07494bb3c47ba438669e8585fabb4d472cf02 100644 --- a/packages/utils/index.js +++ b/packages/utils/index.js @@ -17,7 +17,7 @@ import { // generic inArray, toArray, - isKeyInObject, + isObjectHasKey, dasherize, createEvt, timestamp, @@ -110,7 +110,7 @@ export { // generic inArray, toArray, - isKeyInObject, + isObjectHasKey, dasherize, createEvt, timestamp, diff --git a/packages/utils/main.js b/packages/utils/main.js index 72e60a33f72c2e00285318262648c1f4da01f714..08880352bafff6ecf781833a7a68eaa4fbcc562f 100644 --- a/packages/utils/main.js +++ b/packages/utils/main.js @@ -1,2 +1,2 @@ -"use strict";function _interopDefault(r){return r&&"object"==typeof r&&"default"in r?r.default:r}Object.defineProperty(exports,"__esModule",{value:!0});var fs=_interopDefault(require("fs")),path=require("path"),isArray=Array.isArray,global$1="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},freeGlobal="object"==typeof global$1&&global$1&&global$1.Object===Object&&global$1,freeSelf="object"==typeof self&&self&&self.Object===Object&&self,root=freeGlobal||freeSelf||Function("return this")(),Symbol=root.Symbol,objectProto=Object.prototype,hasOwnProperty=objectProto.hasOwnProperty,nativeObjectToString=objectProto.toString,symToStringTag=Symbol?Symbol.toStringTag:void 0;function getRawTag(r){var t=hasOwnProperty.call(r,symToStringTag),e=r[symToStringTag];try{r[symToStringTag]=void 0;var n=!0}catch(r){}var o=nativeObjectToString.call(r);return n&&(t?r[symToStringTag]=e:delete r[symToStringTag]),o}var objectProto$1=Object.prototype,nativeObjectToString$1=objectProto$1.toString;function objectToString(r){return nativeObjectToString$1.call(r)}var nullTag="[object Null]",undefinedTag="[object Undefined]",symToStringTag$1=Symbol?Symbol.toStringTag:void 0;function baseGetTag(r){return null==r?void 0===r?undefinedTag:nullTag:symToStringTag$1&&symToStringTag$1 in Object(r)?getRawTag(r):objectToString(r)}function overArg(r,t){return function(e){return r(t(e))}}var getPrototype=overArg(Object.getPrototypeOf,Object);function isObjectLike(r){return null!=r&&"object"==typeof r}var objectTag="[object Object]",funcProto=Function.prototype,objectProto$2=Object.prototype,funcToString=funcProto.toString,hasOwnProperty$1=objectProto$2.hasOwnProperty,objectCtorString=funcToString.call(Object);function isPlainObject(r){if(!isObjectLike(r)||baseGetTag(r)!=objectTag)return!1;var t=getPrototype(r);if(null===t)return!0;var e=hasOwnProperty$1.call(t,"constructor")&&t.constructor;return"function"==typeof e&&e instanceof e&&funcToString.call(e)==objectCtorString}function arrayMap(r,t){for(var e=-1,n=null==r?0:r.length,o=Array(n);++eo?0:o+t),(e=e>o?o:e)<0&&(e+=o),o=t>e?0:e-t>>>0,t>>>=0;for(var a=Array(o);++n=n?r:baseSlice(r,t,e)}function baseFindIndex(r,t,e,n){for(var o=r.length,a=e+(n?1:-1);n?a--:++a-1;);return e}function charsStartIndex(r,t){for(var e=-1,n=r.length;++e-1;);return e}function asciiToArray(r){return r.split("")}var rsAstralRange="\\ud800-\\udfff",rsComboMarksRange="\\u0300-\\u036f",reComboHalfMarksRange="\\ufe20-\\ufe2f",rsComboSymbolsRange="\\u20d0-\\u20ff",rsComboRange=rsComboMarksRange+reComboHalfMarksRange+rsComboSymbolsRange,rsVarRange="\\ufe0e\\ufe0f",rsZWJ="\\u200d",reHasUnicode=RegExp("["+rsZWJ+rsAstralRange+rsComboRange+rsVarRange+"]");function hasUnicode(r){return reHasUnicode.test(r)}var rsAstralRange$1="\\ud800-\\udfff",rsComboMarksRange$1="\\u0300-\\u036f",reComboHalfMarksRange$1="\\ufe20-\\ufe2f",rsComboSymbolsRange$1="\\u20d0-\\u20ff",rsComboRange$1=rsComboMarksRange$1+reComboHalfMarksRange$1+rsComboSymbolsRange$1,rsVarRange$1="\\ufe0e\\ufe0f",rsAstral="["+rsAstralRange$1+"]",rsCombo="["+rsComboRange$1+"]",rsFitz="\\ud83c[\\udffb-\\udfff]",rsModifier="(?:"+rsCombo+"|"+rsFitz+")",rsNonAstral="[^"+rsAstralRange$1+"]",rsRegional="(?:\\ud83c[\\udde6-\\uddff]){2}",rsSurrPair="[\\ud800-\\udbff][\\udc00-\\udfff]",rsZWJ$1="\\u200d",reOptMod=rsModifier+"?",rsOptVar="["+rsVarRange$1+"]?",rsOptJoin="(?:"+rsZWJ$1+"(?:"+[rsNonAstral,rsRegional,rsSurrPair].join("|")+")"+rsOptVar+reOptMod+")*",rsSeq=rsOptVar+reOptMod+rsOptJoin,rsSymbol="(?:"+[rsNonAstral+rsCombo+"?",rsCombo,rsRegional,rsSurrPair,rsAstral].join("|")+")",reUnicode=RegExp(rsFitz+"(?="+rsFitz+")|"+rsSymbol+rsSeq,"g");function unicodeToArray(r){return r.match(reUnicode)||[]}function stringToArray(r){return hasUnicode(r)?unicodeToArray(r):asciiToArray(r)}function toString(r){return null==r?"":baseToString(r)}var reTrim=/^\s+|\s+$/g;function trim(r,t,e){if((r=toString(r))&&(e||void 0===t))return r.replace(reTrim,"");if(!r||!(t=baseToString(t)))return r;var n=stringToArray(r),o=stringToArray(t);return castSlice(n,charsStartIndex(n,o),charsEndIndex(n,o)+1).join("")}var inArray=function(r,t){return!!r.filter((function(r){return r===t})).length},toArray=function(r){return isArray(r)?r:[r]},parse=function(r){try{return JSON.parse(r)}catch(t){return r}},isKeyInObject=function(r,t){var e=Object.keys(r);return inArray(e,t)},createEvt=function(){for(var r=[],t=arguments.length;t--;)r[t]=arguments[t];return r.join("_")},timestamp=function(r){void 0===r&&(r=!1);var t=Date.now();return r?Math.floor(t/1e3):t},urlParams=function(r,t){var e=[];for(var n in t)e.push([n,t[n]].join("="));return[r,e.join("&")].join("?")},cacheBurstUrl=function(r){return urlParams(r,cacheBurst())},cacheBurst=function(){return{_cb:timestamp()}},dasherize=function(r){return trim(r).replace(/([A-Z])/g,"-$1").replace(/[-_\s]+/g,"-").toLowerCase()},getConfigValue=function(r,t){return t&&isPlainObject(t)&&r in t?t[r]:void 0},toJson=function(r){return"string"==typeof r?parse(r):JSON.parse(JSON.stringify(r))},isNotEmpty=function(r){return void 0!==r&&!1!==r&&null!==r&&""!==trim(r)},chainFns=function(r){for(var t=[],e=arguments.length-1;e-- >0;)t[e]=arguments[e+1];return function(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];return t.reduce((function(r,t){return Reflect.apply(t,null,toArray(r))}),Reflect.apply(r,null,e))}};function listCacheClear(){this.__data__=[],this.size=0}function eq(r,t){return r===t||r!=r&&t!=t}function assocIndexOf(r,t){for(var e=r.length;e--;)if(eq(r[e][0],t))return e;return-1}var arrayProto=Array.prototype,splice=arrayProto.splice;function listCacheDelete(r){var t=this.__data__,e=assocIndexOf(t,r);return!(e<0)&&(e==t.length-1?t.pop():splice.call(t,e,1),--this.size,!0)}function listCacheGet(r){var t=this.__data__,e=assocIndexOf(t,r);return e<0?void 0:t[e][1]}function listCacheHas(r){return assocIndexOf(this.__data__,r)>-1}function listCacheSet(r,t){var e=this.__data__,n=assocIndexOf(e,r);return n<0?(++this.size,e.push([r,t])):e[n][1]=t,this}function ListCache(r){var t=-1,e=null==r?0:r.length;for(this.clear();++t-1&&r%1==0&&r<=MAX_SAFE_INTEGER}function isArrayLike(r){return null!=r&&isLength(r.length)&&!isFunction(r)}function isArrayLikeObject(r){return isObjectLike(r)&&isArrayLike(r)}function stubFalse(){return!1}var freeExports$1="object"==typeof exports&&exports&&!exports.nodeType&&exports,freeModule$1=freeExports$1&&"object"==typeof module&&module&&!module.nodeType&&module,moduleExports$1=freeModule$1&&freeModule$1.exports===freeExports$1,Buffer$1=moduleExports$1?root.Buffer:void 0,nativeIsBuffer=Buffer$1?Buffer$1.isBuffer:void 0,isBuffer=nativeIsBuffer||stubFalse,argsTag$1="[object Arguments]",arrayTag="[object Array]",boolTag="[object Boolean]",dateTag="[object Date]",errorTag="[object Error]",funcTag$1="[object Function]",mapTag="[object Map]",numberTag="[object Number]",objectTag$1="[object Object]",regexpTag="[object RegExp]",setTag="[object Set]",stringTag="[object String]",weakMapTag="[object WeakMap]",arrayBufferTag="[object ArrayBuffer]",dataViewTag="[object DataView]",float32Tag="[object Float32Array]",float64Tag="[object Float64Array]",int8Tag="[object Int8Array]",int16Tag="[object Int16Array]",int32Tag="[object Int32Array]",uint8Tag="[object Uint8Array]",uint8ClampedTag="[object Uint8ClampedArray]",uint16Tag="[object Uint16Array]",uint32Tag="[object Uint32Array]",typedArrayTags={};function baseIsTypedArray(r){return isObjectLike(r)&&isLength(r.length)&&!!typedArrayTags[baseGetTag(r)]}function baseUnary(r){return function(t){return r(t)}}typedArrayTags[float32Tag]=typedArrayTags[float64Tag]=typedArrayTags[int8Tag]=typedArrayTags[int16Tag]=typedArrayTags[int32Tag]=typedArrayTags[uint8Tag]=typedArrayTags[uint8ClampedTag]=typedArrayTags[uint16Tag]=typedArrayTags[uint32Tag]=!0,typedArrayTags[argsTag$1]=typedArrayTags[arrayTag]=typedArrayTags[arrayBufferTag]=typedArrayTags[boolTag]=typedArrayTags[dataViewTag]=typedArrayTags[dateTag]=typedArrayTags[errorTag]=typedArrayTags[funcTag$1]=typedArrayTags[mapTag]=typedArrayTags[numberTag]=typedArrayTags[objectTag$1]=typedArrayTags[regexpTag]=typedArrayTags[setTag]=typedArrayTags[stringTag]=typedArrayTags[weakMapTag]=!1;var freeExports$2="object"==typeof exports&&exports&&!exports.nodeType&&exports,freeModule$2=freeExports$2&&"object"==typeof module&&module&&!module.nodeType&&module,moduleExports$2=freeModule$2&&freeModule$2.exports===freeExports$2,freeProcess=moduleExports$2&&freeGlobal.process,nodeUtil=function(){try{var r=freeModule$2&&freeModule$2.require&&freeModule$2.require("util").types;return r||freeProcess&&freeProcess.binding&&freeProcess.binding("util")}catch(r){}}(),nodeIsTypedArray=nodeUtil&&nodeUtil.isTypedArray,isTypedArray=nodeIsTypedArray?baseUnary(nodeIsTypedArray):baseIsTypedArray;function safeGet(r,t){if(("constructor"!==t||"function"!=typeof r[t])&&"__proto__"!=t)return r[t]}var objectProto$8=Object.prototype,hasOwnProperty$6=objectProto$8.hasOwnProperty;function assignValue(r,t,e){var n=r[t];hasOwnProperty$6.call(r,t)&&eq(n,e)&&(void 0!==e||t in r)||baseAssignValue(r,t,e)}function copyObject(r,t,e,n){var o=!e;e||(e={});for(var a=-1,i=t.length;++a-1&&r%1==0&&r0){if(++t>=HOT_COUNT)return arguments[0]}else t=0;return r.apply(void 0,arguments)}}var setToString=shortOut(baseSetToString);function baseRest(r,t){return setToString(overRest(r,t,identity),r+"")}function isIterateeCall(r,t,e){if(!isObject(e))return!1;var n=typeof t;return!!("number"==n?isArrayLike(e)&&isIndex(t,e.length):"string"==n&&t in e)&&eq(e[t],r)}function createAssigner(r){return baseRest((function(t,e){var n=-1,o=e.length,a=o>1?e[o-1]:void 0,i=o>2?e[2]:void 0;for(a=r.length>3&&"function"==typeof a?(o--,a):void 0,i&&isIterateeCall(e[0],e[1],i)&&(a=o<3?void 0:a,o=1),t=Object(t);++n0)throw new Error("Invalid string. Length must be a multiple of 4");a="="===r[s-2]?2:"="===r[s-1]?1:0,i=new Arr(3*s/4-a),n=a>0?s-4:s;var u=0;for(t=0,e=0;t>16&255,i[u++]=o>>8&255,i[u++]=255&o;return 2===a?(o=revLookup[r.charCodeAt(t)]<<2|revLookup[r.charCodeAt(t+1)]>>4,i[u++]=255&o):1===a&&(o=revLookup[r.charCodeAt(t)]<<10|revLookup[r.charCodeAt(t+1)]<<4|revLookup[r.charCodeAt(t+2)]>>2,i[u++]=o>>8&255,i[u++]=255&o),i}function tripletToBase64(r){return lookup[r>>18&63]+lookup[r>>12&63]+lookup[r>>6&63]+lookup[63&r]}function encodeChunk(r,t,e){for(var n,o=[],a=t;as?s:i+16383));return 1===n?(t=r[e-1],o+=lookup[t>>2],o+=lookup[t<<4&63],o+="=="):2===n&&(t=(r[e-2]<<8)+r[e-1],o+=lookup[t>>10],o+=lookup[t>>4&63],o+=lookup[t<<2&63],o+="="),a.push(o),a.join("")}function read(r,t,e,n,o){var a,i,s=8*o-n-1,u=(1<>1,c=-7,l=e?o-1:0,p=e?-1:1,h=r[t+l];for(l+=p,a=h&(1<<-c)-1,h>>=-c,c+=s;c>0;a=256*a+r[t+l],l+=p,c-=8);for(i=a&(1<<-c)-1,a>>=-c,c+=n;c>0;i=256*i+r[t+l],l+=p,c-=8);if(0===a)a=1-f;else{if(a===u)return i?NaN:1/0*(h?-1:1);i+=Math.pow(2,n),a-=f}return(h?-1:1)*i*Math.pow(2,a-n)}function write(r,t,e,n,o,a){var i,s,u,f=8*a-o-1,c=(1<>1,p=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,h=n?0:a-1,g=n?1:-1,y=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,i=c):(i=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-i))<1&&(i--,u*=2),(t+=i+l>=1?p/u:p*Math.pow(2,1-l))*u>=2&&(i++,u/=2),i+l>=c?(s=0,i=c):i+l>=1?(s=(t*u-1)*Math.pow(2,o),i+=l):(s=t*Math.pow(2,l-1)*Math.pow(2,o),i=0));o>=8;r[e+h]=255&s,h+=g,s/=256,o-=8);for(i=i<0;r[e+h]=255&i,h+=g,i/=256,f-=8);r[e+h-g]|=128*y}var toString$1={}.toString,isArray$1=Array.isArray||function(r){return"[object Array]"==toString$1.call(r)},INSPECT_MAX_BYTES=50;function kMaxLength(){return Buffer$2.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function createBuffer(r,t){if(kMaxLength()=kMaxLength())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+kMaxLength().toString(16)+" bytes");return 0|r}function internalIsBuffer(r){return!(null==r||!r._isBuffer)}function byteLength(r,t){if(internalIsBuffer(r))return r.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(r)||r instanceof ArrayBuffer))return r.byteLength;"string"!=typeof r&&(r=""+r);var e=r.length;if(0===e)return 0;for(var n=!1;;)switch(t){case"ascii":case"latin1":case"binary":return e;case"utf8":case"utf-8":case void 0:return utf8ToBytes(r).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*e;case"hex":return e>>>1;case"base64":return base64ToBytes(r).length;default:if(n)return utf8ToBytes(r).length;t=(""+t).toLowerCase(),n=!0}}function slowToString(r,t,e){var n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===e||e>this.length)&&(e=this.length),e<=0)return"";if((e>>>=0)<=(t>>>=0))return"";for(r||(r="utf8");;)switch(r){case"hex":return hexSlice(this,t,e);case"utf8":case"utf-8":return utf8Slice(this,t,e);case"ascii":return asciiSlice(this,t,e);case"latin1":case"binary":return latin1Slice(this,t,e);case"base64":return base64Slice(this,t,e);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return utf16leSlice(this,t,e);default:if(n)throw new TypeError("Unknown encoding: "+r);r=(r+"").toLowerCase(),n=!0}}function swap(r,t,e){var n=r[t];r[t]=r[e],r[e]=n}function bidirectionalIndexOf(r,t,e,n,o){if(0===r.length)return-1;if("string"==typeof e?(n=e,e=0):e>2147483647?e=2147483647:e<-2147483648&&(e=-2147483648),e=+e,isNaN(e)&&(e=o?0:r.length-1),e<0&&(e=r.length+e),e>=r.length){if(o)return-1;e=r.length-1}else if(e<0){if(!o)return-1;e=0}if("string"==typeof t&&(t=Buffer$2.from(t,n)),internalIsBuffer(t))return 0===t.length?-1:arrayIndexOf(r,t,e,n,o);if("number"==typeof t)return t&=255,Buffer$2.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(r,t,e):Uint8Array.prototype.lastIndexOf.call(r,t,e):arrayIndexOf(r,[t],e,n,o);throw new TypeError("val must be string, number or Buffer")}function arrayIndexOf(r,t,e,n,o){var a,i=1,s=r.length,u=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(r.length<2||t.length<2)return-1;i=2,s/=2,u/=2,e/=2}function f(r,t){return 1===i?r[t]:r.readUInt16BE(t*i)}if(o){var c=-1;for(a=e;as&&(e=s-u),a=e;a>=0;a--){for(var l=!0,p=0;po&&(n=o):n=o;var a=t.length;if(a%2!=0)throw new TypeError("Invalid hex string");n>a/2&&(n=a/2);for(var i=0;i239?4:f>223?3:f>191?2:1;if(o+l<=e)switch(l){case 1:f<128&&(c=f);break;case 2:128==(192&(a=r[o+1]))&&(u=(31&f)<<6|63&a)>127&&(c=u);break;case 3:a=r[o+1],i=r[o+2],128==(192&a)&&128==(192&i)&&(u=(15&f)<<12|(63&a)<<6|63&i)>2047&&(u<55296||u>57343)&&(c=u);break;case 4:a=r[o+1],i=r[o+2],s=r[o+3],128==(192&a)&&128==(192&i)&&128==(192&s)&&(u=(15&f)<<18|(63&a)<<12|(63&i)<<6|63&s)>65535&&u<1114112&&(c=u)}null===c?(c=65533,l=1):c>65535&&(c-=65536,n.push(c>>>10&1023|55296),c=56320|1023&c),n.push(c),o+=l}return decodeCodePointsArray(n)}Buffer$2.TYPED_ARRAY_SUPPORT=void 0===global$1.TYPED_ARRAY_SUPPORT||global$1.TYPED_ARRAY_SUPPORT,Buffer$2.poolSize=8192,Buffer$2._augment=function(r){return r.__proto__=Buffer$2.prototype,r},Buffer$2.from=function(r,t,e){return from(null,r,t,e)},Buffer$2.TYPED_ARRAY_SUPPORT&&(Buffer$2.prototype.__proto__=Uint8Array.prototype,Buffer$2.__proto__=Uint8Array),Buffer$2.alloc=function(r,t,e){return alloc(null,r,t,e)},Buffer$2.allocUnsafe=function(r){return allocUnsafe$1(null,r)},Buffer$2.allocUnsafeSlow=function(r){return allocUnsafe$1(null,r)},Buffer$2.isBuffer=isBuffer$1,Buffer$2.compare=function(r,t){if(!internalIsBuffer(r)||!internalIsBuffer(t))throw new TypeError("Arguments must be Buffers");if(r===t)return 0;for(var e=r.length,n=t.length,o=0,a=Math.min(e,n);o0&&(r=this.toString("hex",0,t).match(/.{2}/g).join(" "),this.length>t&&(r+=" ... ")),""},Buffer$2.prototype.compare=function(r,t,e,n,o){if(!internalIsBuffer(r))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===e&&(e=r?r.length:0),void 0===n&&(n=0),void 0===o&&(o=this.length),t<0||e>r.length||n<0||o>this.length)throw new RangeError("out of range index");if(n>=o&&t>=e)return 0;if(n>=o)return-1;if(t>=e)return 1;if(this===r)return 0;for(var a=(o>>>=0)-(n>>>=0),i=(e>>>=0)-(t>>>=0),s=Math.min(a,i),u=this.slice(n,o),f=r.slice(t,e),c=0;co)&&(e=o),r.length>0&&(e<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var a=!1;;)switch(n){case"hex":return hexWrite(this,r,t,e);case"utf8":case"utf-8":return utf8Write(this,r,t,e);case"ascii":return asciiWrite(this,r,t,e);case"latin1":case"binary":return latin1Write(this,r,t,e);case"base64":return base64Write(this,r,t,e);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ucs2Write(this,r,t,e);default:if(a)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),a=!0}},Buffer$2.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var MAX_ARGUMENTS_LENGTH=4096;function decodeCodePointsArray(r){var t=r.length;if(t<=MAX_ARGUMENTS_LENGTH)return String.fromCharCode.apply(String,r);for(var e="",n=0;nn)&&(e=n);for(var o="",a=t;ae)throw new RangeError("Trying to access beyond buffer length")}function checkInt(r,t,e,n,o,a){if(!internalIsBuffer(r))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||tr.length)throw new RangeError("Index out of range")}function objectWriteUInt16(r,t,e,n){t<0&&(t=65535+t+1);for(var o=0,a=Math.min(r.length-e,2);o>>8*(n?o:1-o)}function objectWriteUInt32(r,t,e,n){t<0&&(t=4294967295+t+1);for(var o=0,a=Math.min(r.length-e,4);o>>8*(n?o:3-o)&255}function checkIEEE754(r,t,e,n,o,a){if(e+n>r.length)throw new RangeError("Index out of range");if(e<0)throw new RangeError("Index out of range")}function writeFloat(r,t,e,n,o){return o||checkIEEE754(r,t,e,4),write(r,t,e,n,23,4),e+4}function writeDouble(r,t,e,n,o){return o||checkIEEE754(r,t,e,8),write(r,t,e,n,52,8),e+8}Buffer$2.prototype.slice=function(r,t){var e,n=this.length;if((r=~~r)<0?(r+=n)<0&&(r=0):r>n&&(r=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t0&&(o*=256);)n+=this[r+--t]*o;return n},Buffer$2.prototype.readUInt8=function(r,t){return t||checkOffset(r,1,this.length),this[r]},Buffer$2.prototype.readUInt16LE=function(r,t){return t||checkOffset(r,2,this.length),this[r]|this[r+1]<<8},Buffer$2.prototype.readUInt16BE=function(r,t){return t||checkOffset(r,2,this.length),this[r]<<8|this[r+1]},Buffer$2.prototype.readUInt32LE=function(r,t){return t||checkOffset(r,4,this.length),(this[r]|this[r+1]<<8|this[r+2]<<16)+16777216*this[r+3]},Buffer$2.prototype.readUInt32BE=function(r,t){return t||checkOffset(r,4,this.length),16777216*this[r]+(this[r+1]<<16|this[r+2]<<8|this[r+3])},Buffer$2.prototype.readIntLE=function(r,t,e){r|=0,t|=0,e||checkOffset(r,t,this.length);for(var n=this[r],o=1,a=0;++a=(o*=128)&&(n-=Math.pow(2,8*t)),n},Buffer$2.prototype.readIntBE=function(r,t,e){r|=0,t|=0,e||checkOffset(r,t,this.length);for(var n=t,o=1,a=this[r+--n];n>0&&(o*=256);)a+=this[r+--n]*o;return a>=(o*=128)&&(a-=Math.pow(2,8*t)),a},Buffer$2.prototype.readInt8=function(r,t){return t||checkOffset(r,1,this.length),128&this[r]?-1*(255-this[r]+1):this[r]},Buffer$2.prototype.readInt16LE=function(r,t){t||checkOffset(r,2,this.length);var e=this[r]|this[r+1]<<8;return 32768&e?4294901760|e:e},Buffer$2.prototype.readInt16BE=function(r,t){t||checkOffset(r,2,this.length);var e=this[r+1]|this[r]<<8;return 32768&e?4294901760|e:e},Buffer$2.prototype.readInt32LE=function(r,t){return t||checkOffset(r,4,this.length),this[r]|this[r+1]<<8|this[r+2]<<16|this[r+3]<<24},Buffer$2.prototype.readInt32BE=function(r,t){return t||checkOffset(r,4,this.length),this[r]<<24|this[r+1]<<16|this[r+2]<<8|this[r+3]},Buffer$2.prototype.readFloatLE=function(r,t){return t||checkOffset(r,4,this.length),read(this,r,!0,23,4)},Buffer$2.prototype.readFloatBE=function(r,t){return t||checkOffset(r,4,this.length),read(this,r,!1,23,4)},Buffer$2.prototype.readDoubleLE=function(r,t){return t||checkOffset(r,8,this.length),read(this,r,!0,52,8)},Buffer$2.prototype.readDoubleBE=function(r,t){return t||checkOffset(r,8,this.length),read(this,r,!1,52,8)},Buffer$2.prototype.writeUIntLE=function(r,t,e,n){(r=+r,t|=0,e|=0,n)||checkInt(this,r,t,e,Math.pow(2,8*e)-1,0);var o=1,a=0;for(this[t]=255&r;++a=0&&(a*=256);)this[t+o]=r/a&255;return t+e},Buffer$2.prototype.writeUInt8=function(r,t,e){return r=+r,t|=0,e||checkInt(this,r,t,1,255,0),Buffer$2.TYPED_ARRAY_SUPPORT||(r=Math.floor(r)),this[t]=255&r,t+1},Buffer$2.prototype.writeUInt16LE=function(r,t,e){return r=+r,t|=0,e||checkInt(this,r,t,2,65535,0),Buffer$2.TYPED_ARRAY_SUPPORT?(this[t]=255&r,this[t+1]=r>>>8):objectWriteUInt16(this,r,t,!0),t+2},Buffer$2.prototype.writeUInt16BE=function(r,t,e){return r=+r,t|=0,e||checkInt(this,r,t,2,65535,0),Buffer$2.TYPED_ARRAY_SUPPORT?(this[t]=r>>>8,this[t+1]=255&r):objectWriteUInt16(this,r,t,!1),t+2},Buffer$2.prototype.writeUInt32LE=function(r,t,e){return r=+r,t|=0,e||checkInt(this,r,t,4,4294967295,0),Buffer$2.TYPED_ARRAY_SUPPORT?(this[t+3]=r>>>24,this[t+2]=r>>>16,this[t+1]=r>>>8,this[t]=255&r):objectWriteUInt32(this,r,t,!0),t+4},Buffer$2.prototype.writeUInt32BE=function(r,t,e){return r=+r,t|=0,e||checkInt(this,r,t,4,4294967295,0),Buffer$2.TYPED_ARRAY_SUPPORT?(this[t]=r>>>24,this[t+1]=r>>>16,this[t+2]=r>>>8,this[t+3]=255&r):objectWriteUInt32(this,r,t,!1),t+4},Buffer$2.prototype.writeIntLE=function(r,t,e,n){if(r=+r,t|=0,!n){var o=Math.pow(2,8*e-1);checkInt(this,r,t,e,o-1,-o)}var a=0,i=1,s=0;for(this[t]=255&r;++a>0)-s&255;return t+e},Buffer$2.prototype.writeIntBE=function(r,t,e,n){if(r=+r,t|=0,!n){var o=Math.pow(2,8*e-1);checkInt(this,r,t,e,o-1,-o)}var a=e-1,i=1,s=0;for(this[t+a]=255&r;--a>=0&&(i*=256);)r<0&&0===s&&0!==this[t+a+1]&&(s=1),this[t+a]=(r/i>>0)-s&255;return t+e},Buffer$2.prototype.writeInt8=function(r,t,e){return r=+r,t|=0,e||checkInt(this,r,t,1,127,-128),Buffer$2.TYPED_ARRAY_SUPPORT||(r=Math.floor(r)),r<0&&(r=255+r+1),this[t]=255&r,t+1},Buffer$2.prototype.writeInt16LE=function(r,t,e){return r=+r,t|=0,e||checkInt(this,r,t,2,32767,-32768),Buffer$2.TYPED_ARRAY_SUPPORT?(this[t]=255&r,this[t+1]=r>>>8):objectWriteUInt16(this,r,t,!0),t+2},Buffer$2.prototype.writeInt16BE=function(r,t,e){return r=+r,t|=0,e||checkInt(this,r,t,2,32767,-32768),Buffer$2.TYPED_ARRAY_SUPPORT?(this[t]=r>>>8,this[t+1]=255&r):objectWriteUInt16(this,r,t,!1),t+2},Buffer$2.prototype.writeInt32LE=function(r,t,e){return r=+r,t|=0,e||checkInt(this,r,t,4,2147483647,-2147483648),Buffer$2.TYPED_ARRAY_SUPPORT?(this[t]=255&r,this[t+1]=r>>>8,this[t+2]=r>>>16,this[t+3]=r>>>24):objectWriteUInt32(this,r,t,!0),t+4},Buffer$2.prototype.writeInt32BE=function(r,t,e){return r=+r,t|=0,e||checkInt(this,r,t,4,2147483647,-2147483648),r<0&&(r=4294967295+r+1),Buffer$2.TYPED_ARRAY_SUPPORT?(this[t]=r>>>24,this[t+1]=r>>>16,this[t+2]=r>>>8,this[t+3]=255&r):objectWriteUInt32(this,r,t,!1),t+4},Buffer$2.prototype.writeFloatLE=function(r,t,e){return writeFloat(this,r,t,!0,e)},Buffer$2.prototype.writeFloatBE=function(r,t,e){return writeFloat(this,r,t,!1,e)},Buffer$2.prototype.writeDoubleLE=function(r,t,e){return writeDouble(this,r,t,!0,e)},Buffer$2.prototype.writeDoubleBE=function(r,t,e){return writeDouble(this,r,t,!1,e)},Buffer$2.prototype.copy=function(r,t,e,n){if(e||(e=0),n||0===n||(n=this.length),t>=r.length&&(t=r.length),t||(t=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),r.length-t=0;--o)r[o+t]=this[o+e];else if(a<1e3||!Buffer$2.TYPED_ARRAY_SUPPORT)for(o=0;o>>=0,e=void 0===e?this.length:e>>>0,r||(r=0),"number"==typeof r)for(a=t;a55295&&e<57344){if(!o){if(e>56319){(t-=3)>-1&&a.push(239,191,189);continue}if(i+1===n){(t-=3)>-1&&a.push(239,191,189);continue}o=e;continue}if(e<56320){(t-=3)>-1&&a.push(239,191,189),o=e;continue}e=65536+(o-55296<<10|e-56320)}else o&&(t-=3)>-1&&a.push(239,191,189);if(o=null,e<128){if((t-=1)<0)break;a.push(e)}else if(e<2048){if((t-=2)<0)break;a.push(e>>6|192,63&e|128)}else if(e<65536){if((t-=3)<0)break;a.push(e>>12|224,e>>6&63|128,63&e|128)}else{if(!(e<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;a.push(e>>18|240,e>>12&63|128,e>>6&63|128,63&e|128)}}return a}function asciiToBytes(r){for(var t=[],e=0;e>8,o=e%256,a.push(o),a.push(n);return a}function base64ToBytes(r){return toByteArray(base64clean(r))}function blitBuffer(r,t,e,n){for(var o=0;o=t.length||o>=r.length);++o)t[o+e]=r[o];return o}function isnan(r){return r!=r}function isBuffer$1(r){return null!=r&&(!!r._isBuffer||isFastBuffer(r)||isSlowBuffer(r))}function isFastBuffer(r){return!!r.constructor&&"function"==typeof r.constructor.isBuffer&&r.constructor.isBuffer(r)}function isSlowBuffer(r){return"function"==typeof r.readFloatLE&&"function"==typeof r.slice&&isFastBuffer(r.slice(0,0))}function buff(r,t){return void 0===t&&(t=BASE64_FORMAT),isBuffer$1(r)?r:new Buffer$2.from(r,t)}var replaceErrors=function(r,t){if(t instanceof Error){var e={};return Object.getOwnPropertyNames(t).forEach((function(r){e[r]=t[r]})),e}return t},printError=function(r){return JSON.stringify(r,replaceErrors)};function findFromContract(r,t,e){return!!(e[r]&&e[r][t]&&e[r][t].file&&fs.existsSync(e[r][t].file))&&e[r][t].file}var DOT=".",getDocLen=function(r){return Buffer$2.byteLength(r,"utf8")},headerParser=function(r,t){try{var e=r.headers.accept.split(",");return t?e.filter((function(r){return r===t})):e}catch(r){return[]}},isHeaderPresent=function(r,t){return!!headerParser(r,t).length},getPathToFn=function(r,t,e){var n=e.resolverDir,o=dasherize(r),a=[];e.contract&&e.contract[t]&&e.contract[t].path&&a.push(e.contract[t].path),a.push(path.join(n,t,o,[INDEX_KEY,EXT].join(DOT))),a.push(path.join(n,t,[o,EXT].join(DOT)));for(var i=a.length,s=0;so?0:o+t),(e=e>o?o:e)<0&&(e+=o),o=t>e?0:e-t>>>0,t>>>=0;for(var a=Array(o);++n=n?r:baseSlice(r,t,e)}function baseFindIndex(r,t,e,n){for(var o=r.length,a=e+(n?1:-1);n?a--:++a-1;);return e}function charsStartIndex(r,t){for(var e=-1,n=r.length;++e-1;);return e}function asciiToArray(r){return r.split("")}var rsAstralRange="\\ud800-\\udfff",rsComboMarksRange="\\u0300-\\u036f",reComboHalfMarksRange="\\ufe20-\\ufe2f",rsComboSymbolsRange="\\u20d0-\\u20ff",rsComboRange=rsComboMarksRange+reComboHalfMarksRange+rsComboSymbolsRange,rsVarRange="\\ufe0e\\ufe0f",rsZWJ="\\u200d",reHasUnicode=RegExp("["+rsZWJ+rsAstralRange+rsComboRange+rsVarRange+"]");function hasUnicode(r){return reHasUnicode.test(r)}var rsAstralRange$1="\\ud800-\\udfff",rsComboMarksRange$1="\\u0300-\\u036f",reComboHalfMarksRange$1="\\ufe20-\\ufe2f",rsComboSymbolsRange$1="\\u20d0-\\u20ff",rsComboRange$1=rsComboMarksRange$1+reComboHalfMarksRange$1+rsComboSymbolsRange$1,rsVarRange$1="\\ufe0e\\ufe0f",rsAstral="["+rsAstralRange$1+"]",rsCombo="["+rsComboRange$1+"]",rsFitz="\\ud83c[\\udffb-\\udfff]",rsModifier="(?:"+rsCombo+"|"+rsFitz+")",rsNonAstral="[^"+rsAstralRange$1+"]",rsRegional="(?:\\ud83c[\\udde6-\\uddff]){2}",rsSurrPair="[\\ud800-\\udbff][\\udc00-\\udfff]",rsZWJ$1="\\u200d",reOptMod=rsModifier+"?",rsOptVar="["+rsVarRange$1+"]?",rsOptJoin="(?:"+rsZWJ$1+"(?:"+[rsNonAstral,rsRegional,rsSurrPair].join("|")+")"+rsOptVar+reOptMod+")*",rsSeq=rsOptVar+reOptMod+rsOptJoin,rsSymbol="(?:"+[rsNonAstral+rsCombo+"?",rsCombo,rsRegional,rsSurrPair,rsAstral].join("|")+")",reUnicode=RegExp(rsFitz+"(?="+rsFitz+")|"+rsSymbol+rsSeq,"g");function unicodeToArray(r){return r.match(reUnicode)||[]}function stringToArray(r){return hasUnicode(r)?unicodeToArray(r):asciiToArray(r)}function toString(r){return null==r?"":baseToString(r)}var reTrim=/^\s+|\s+$/g;function trim(r,t,e){if((r=toString(r))&&(e||void 0===t))return r.replace(reTrim,"");if(!r||!(t=baseToString(t)))return r;var n=stringToArray(r),o=stringToArray(t);return castSlice(n,charsStartIndex(n,o),charsEndIndex(n,o)+1).join("")}var inArray=function(r,t){return!!r.filter((function(r){return r===t})).length},toArray=function(r){return isArray(r)?r:[r]},parse=function(r){try{return JSON.parse(r)}catch(t){return r}},isObjectHasKey=function(r,t){var e=Object.keys(r);return inArray(e,t)},createEvt=function(){for(var r=[],t=arguments.length;t--;)r[t]=arguments[t];return r.join("_")},timestamp=function(r){void 0===r&&(r=!1);var t=Date.now();return r?Math.floor(t/1e3):t},urlParams=function(r,t){var e=[];for(var n in t)e.push([n,t[n]].join("="));return[r,e.join("&")].join("?")},cacheBurstUrl=function(r){return urlParams(r,cacheBurst())},cacheBurst=function(){return{_cb:timestamp()}},dasherize=function(r){return trim(r).replace(/([A-Z])/g,"-$1").replace(/[-_\s]+/g,"-").toLowerCase()},getConfigValue=function(r,t){return t&&isPlainObject(t)&&r in t?t[r]:void 0},toJson=function(r){return"string"==typeof r?parse(r):JSON.parse(JSON.stringify(r))},isNotEmpty=function(r){return void 0!==r&&!1!==r&&null!==r&&""!==trim(r)},chainFns=function(r){for(var t=[],e=arguments.length-1;e-- >0;)t[e]=arguments[e+1];return function(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];return t.reduce((function(r,t){return Reflect.apply(t,null,toArray(r))}),Reflect.apply(r,null,e))}};function listCacheClear(){this.__data__=[],this.size=0}function eq(r,t){return r===t||r!=r&&t!=t}function assocIndexOf(r,t){for(var e=r.length;e--;)if(eq(r[e][0],t))return e;return-1}var arrayProto=Array.prototype,splice=arrayProto.splice;function listCacheDelete(r){var t=this.__data__,e=assocIndexOf(t,r);return!(e<0)&&(e==t.length-1?t.pop():splice.call(t,e,1),--this.size,!0)}function listCacheGet(r){var t=this.__data__,e=assocIndexOf(t,r);return e<0?void 0:t[e][1]}function listCacheHas(r){return assocIndexOf(this.__data__,r)>-1}function listCacheSet(r,t){var e=this.__data__,n=assocIndexOf(e,r);return n<0?(++this.size,e.push([r,t])):e[n][1]=t,this}function ListCache(r){var t=-1,e=null==r?0:r.length;for(this.clear();++t-1&&r%1==0&&r<=MAX_SAFE_INTEGER}function isArrayLike(r){return null!=r&&isLength(r.length)&&!isFunction(r)}function isArrayLikeObject(r){return isObjectLike(r)&&isArrayLike(r)}function stubFalse(){return!1}var freeExports$1="object"==typeof exports&&exports&&!exports.nodeType&&exports,freeModule$1=freeExports$1&&"object"==typeof module&&module&&!module.nodeType&&module,moduleExports$1=freeModule$1&&freeModule$1.exports===freeExports$1,Buffer$1=moduleExports$1?root.Buffer:void 0,nativeIsBuffer=Buffer$1?Buffer$1.isBuffer:void 0,isBuffer=nativeIsBuffer||stubFalse,argsTag$1="[object Arguments]",arrayTag="[object Array]",boolTag="[object Boolean]",dateTag="[object Date]",errorTag="[object Error]",funcTag$1="[object Function]",mapTag="[object Map]",numberTag="[object Number]",objectTag$1="[object Object]",regexpTag="[object RegExp]",setTag="[object Set]",stringTag="[object String]",weakMapTag="[object WeakMap]",arrayBufferTag="[object ArrayBuffer]",dataViewTag="[object DataView]",float32Tag="[object Float32Array]",float64Tag="[object Float64Array]",int8Tag="[object Int8Array]",int16Tag="[object Int16Array]",int32Tag="[object Int32Array]",uint8Tag="[object Uint8Array]",uint8ClampedTag="[object Uint8ClampedArray]",uint16Tag="[object Uint16Array]",uint32Tag="[object Uint32Array]",typedArrayTags={};function baseIsTypedArray(r){return isObjectLike(r)&&isLength(r.length)&&!!typedArrayTags[baseGetTag(r)]}function baseUnary(r){return function(t){return r(t)}}typedArrayTags[float32Tag]=typedArrayTags[float64Tag]=typedArrayTags[int8Tag]=typedArrayTags[int16Tag]=typedArrayTags[int32Tag]=typedArrayTags[uint8Tag]=typedArrayTags[uint8ClampedTag]=typedArrayTags[uint16Tag]=typedArrayTags[uint32Tag]=!0,typedArrayTags[argsTag$1]=typedArrayTags[arrayTag]=typedArrayTags[arrayBufferTag]=typedArrayTags[boolTag]=typedArrayTags[dataViewTag]=typedArrayTags[dateTag]=typedArrayTags[errorTag]=typedArrayTags[funcTag$1]=typedArrayTags[mapTag]=typedArrayTags[numberTag]=typedArrayTags[objectTag$1]=typedArrayTags[regexpTag]=typedArrayTags[setTag]=typedArrayTags[stringTag]=typedArrayTags[weakMapTag]=!1;var freeExports$2="object"==typeof exports&&exports&&!exports.nodeType&&exports,freeModule$2=freeExports$2&&"object"==typeof module&&module&&!module.nodeType&&module,moduleExports$2=freeModule$2&&freeModule$2.exports===freeExports$2,freeProcess=moduleExports$2&&freeGlobal.process,nodeUtil=function(){try{var r=freeModule$2&&freeModule$2.require&&freeModule$2.require("util").types;return r||freeProcess&&freeProcess.binding&&freeProcess.binding("util")}catch(r){}}(),nodeIsTypedArray=nodeUtil&&nodeUtil.isTypedArray,isTypedArray=nodeIsTypedArray?baseUnary(nodeIsTypedArray):baseIsTypedArray;function safeGet(r,t){if(("constructor"!==t||"function"!=typeof r[t])&&"__proto__"!=t)return r[t]}var objectProto$8=Object.prototype,hasOwnProperty$6=objectProto$8.hasOwnProperty;function assignValue(r,t,e){var n=r[t];hasOwnProperty$6.call(r,t)&&eq(n,e)&&(void 0!==e||t in r)||baseAssignValue(r,t,e)}function copyObject(r,t,e,n){var o=!e;e||(e={});for(var a=-1,i=t.length;++a-1&&r%1==0&&r0){if(++t>=HOT_COUNT)return arguments[0]}else t=0;return r.apply(void 0,arguments)}}var setToString=shortOut(baseSetToString);function baseRest(r,t){return setToString(overRest(r,t,identity),r+"")}function isIterateeCall(r,t,e){if(!isObject(e))return!1;var n=typeof t;return!!("number"==n?isArrayLike(e)&&isIndex(t,e.length):"string"==n&&t in e)&&eq(e[t],r)}function createAssigner(r){return baseRest((function(t,e){var n=-1,o=e.length,a=o>1?e[o-1]:void 0,i=o>2?e[2]:void 0;for(a=r.length>3&&"function"==typeof a?(o--,a):void 0,i&&isIterateeCall(e[0],e[1],i)&&(a=o<3?void 0:a,o=1),t=Object(t);++n0)throw new Error("Invalid string. Length must be a multiple of 4");a="="===r[s-2]?2:"="===r[s-1]?1:0,i=new Arr(3*s/4-a),n=a>0?s-4:s;var u=0;for(t=0,e=0;t>16&255,i[u++]=o>>8&255,i[u++]=255&o;return 2===a?(o=revLookup[r.charCodeAt(t)]<<2|revLookup[r.charCodeAt(t+1)]>>4,i[u++]=255&o):1===a&&(o=revLookup[r.charCodeAt(t)]<<10|revLookup[r.charCodeAt(t+1)]<<4|revLookup[r.charCodeAt(t+2)]>>2,i[u++]=o>>8&255,i[u++]=255&o),i}function tripletToBase64(r){return lookup[r>>18&63]+lookup[r>>12&63]+lookup[r>>6&63]+lookup[63&r]}function encodeChunk(r,t,e){for(var n,o=[],a=t;as?s:i+16383));return 1===n?(t=r[e-1],o+=lookup[t>>2],o+=lookup[t<<4&63],o+="=="):2===n&&(t=(r[e-2]<<8)+r[e-1],o+=lookup[t>>10],o+=lookup[t>>4&63],o+=lookup[t<<2&63],o+="="),a.push(o),a.join("")}function read(r,t,e,n,o){var a,i,s=8*o-n-1,u=(1<>1,c=-7,l=e?o-1:0,p=e?-1:1,h=r[t+l];for(l+=p,a=h&(1<<-c)-1,h>>=-c,c+=s;c>0;a=256*a+r[t+l],l+=p,c-=8);for(i=a&(1<<-c)-1,a>>=-c,c+=n;c>0;i=256*i+r[t+l],l+=p,c-=8);if(0===a)a=1-f;else{if(a===u)return i?NaN:1/0*(h?-1:1);i+=Math.pow(2,n),a-=f}return(h?-1:1)*i*Math.pow(2,a-n)}function write(r,t,e,n,o,a){var i,s,u,f=8*a-o-1,c=(1<>1,p=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,h=n?0:a-1,g=n?1:-1,y=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,i=c):(i=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-i))<1&&(i--,u*=2),(t+=i+l>=1?p/u:p*Math.pow(2,1-l))*u>=2&&(i++,u/=2),i+l>=c?(s=0,i=c):i+l>=1?(s=(t*u-1)*Math.pow(2,o),i+=l):(s=t*Math.pow(2,l-1)*Math.pow(2,o),i=0));o>=8;r[e+h]=255&s,h+=g,s/=256,o-=8);for(i=i<0;r[e+h]=255&i,h+=g,i/=256,f-=8);r[e+h-g]|=128*y}var toString$1={}.toString,isArray$1=Array.isArray||function(r){return"[object Array]"==toString$1.call(r)},INSPECT_MAX_BYTES=50;function kMaxLength(){return Buffer$2.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function createBuffer(r,t){if(kMaxLength()=kMaxLength())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+kMaxLength().toString(16)+" bytes");return 0|r}function internalIsBuffer(r){return!(null==r||!r._isBuffer)}function byteLength(r,t){if(internalIsBuffer(r))return r.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(r)||r instanceof ArrayBuffer))return r.byteLength;"string"!=typeof r&&(r=""+r);var e=r.length;if(0===e)return 0;for(var n=!1;;)switch(t){case"ascii":case"latin1":case"binary":return e;case"utf8":case"utf-8":case void 0:return utf8ToBytes(r).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*e;case"hex":return e>>>1;case"base64":return base64ToBytes(r).length;default:if(n)return utf8ToBytes(r).length;t=(""+t).toLowerCase(),n=!0}}function slowToString(r,t,e){var n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===e||e>this.length)&&(e=this.length),e<=0)return"";if((e>>>=0)<=(t>>>=0))return"";for(r||(r="utf8");;)switch(r){case"hex":return hexSlice(this,t,e);case"utf8":case"utf-8":return utf8Slice(this,t,e);case"ascii":return asciiSlice(this,t,e);case"latin1":case"binary":return latin1Slice(this,t,e);case"base64":return base64Slice(this,t,e);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return utf16leSlice(this,t,e);default:if(n)throw new TypeError("Unknown encoding: "+r);r=(r+"").toLowerCase(),n=!0}}function swap(r,t,e){var n=r[t];r[t]=r[e],r[e]=n}function bidirectionalIndexOf(r,t,e,n,o){if(0===r.length)return-1;if("string"==typeof e?(n=e,e=0):e>2147483647?e=2147483647:e<-2147483648&&(e=-2147483648),e=+e,isNaN(e)&&(e=o?0:r.length-1),e<0&&(e=r.length+e),e>=r.length){if(o)return-1;e=r.length-1}else if(e<0){if(!o)return-1;e=0}if("string"==typeof t&&(t=Buffer$2.from(t,n)),internalIsBuffer(t))return 0===t.length?-1:arrayIndexOf(r,t,e,n,o);if("number"==typeof t)return t&=255,Buffer$2.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(r,t,e):Uint8Array.prototype.lastIndexOf.call(r,t,e):arrayIndexOf(r,[t],e,n,o);throw new TypeError("val must be string, number or Buffer")}function arrayIndexOf(r,t,e,n,o){var a,i=1,s=r.length,u=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(r.length<2||t.length<2)return-1;i=2,s/=2,u/=2,e/=2}function f(r,t){return 1===i?r[t]:r.readUInt16BE(t*i)}if(o){var c=-1;for(a=e;as&&(e=s-u),a=e;a>=0;a--){for(var l=!0,p=0;po&&(n=o):n=o;var a=t.length;if(a%2!=0)throw new TypeError("Invalid hex string");n>a/2&&(n=a/2);for(var i=0;i239?4:f>223?3:f>191?2:1;if(o+l<=e)switch(l){case 1:f<128&&(c=f);break;case 2:128==(192&(a=r[o+1]))&&(u=(31&f)<<6|63&a)>127&&(c=u);break;case 3:a=r[o+1],i=r[o+2],128==(192&a)&&128==(192&i)&&(u=(15&f)<<12|(63&a)<<6|63&i)>2047&&(u<55296||u>57343)&&(c=u);break;case 4:a=r[o+1],i=r[o+2],s=r[o+3],128==(192&a)&&128==(192&i)&&128==(192&s)&&(u=(15&f)<<18|(63&a)<<12|(63&i)<<6|63&s)>65535&&u<1114112&&(c=u)}null===c?(c=65533,l=1):c>65535&&(c-=65536,n.push(c>>>10&1023|55296),c=56320|1023&c),n.push(c),o+=l}return decodeCodePointsArray(n)}Buffer$2.TYPED_ARRAY_SUPPORT=void 0===global$1.TYPED_ARRAY_SUPPORT||global$1.TYPED_ARRAY_SUPPORT,Buffer$2.poolSize=8192,Buffer$2._augment=function(r){return r.__proto__=Buffer$2.prototype,r},Buffer$2.from=function(r,t,e){return from(null,r,t,e)},Buffer$2.TYPED_ARRAY_SUPPORT&&(Buffer$2.prototype.__proto__=Uint8Array.prototype,Buffer$2.__proto__=Uint8Array),Buffer$2.alloc=function(r,t,e){return alloc(null,r,t,e)},Buffer$2.allocUnsafe=function(r){return allocUnsafe$1(null,r)},Buffer$2.allocUnsafeSlow=function(r){return allocUnsafe$1(null,r)},Buffer$2.isBuffer=isBuffer$1,Buffer$2.compare=function(r,t){if(!internalIsBuffer(r)||!internalIsBuffer(t))throw new TypeError("Arguments must be Buffers");if(r===t)return 0;for(var e=r.length,n=t.length,o=0,a=Math.min(e,n);o0&&(r=this.toString("hex",0,t).match(/.{2}/g).join(" "),this.length>t&&(r+=" ... ")),""},Buffer$2.prototype.compare=function(r,t,e,n,o){if(!internalIsBuffer(r))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===e&&(e=r?r.length:0),void 0===n&&(n=0),void 0===o&&(o=this.length),t<0||e>r.length||n<0||o>this.length)throw new RangeError("out of range index");if(n>=o&&t>=e)return 0;if(n>=o)return-1;if(t>=e)return 1;if(this===r)return 0;for(var a=(o>>>=0)-(n>>>=0),i=(e>>>=0)-(t>>>=0),s=Math.min(a,i),u=this.slice(n,o),f=r.slice(t,e),c=0;co)&&(e=o),r.length>0&&(e<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var a=!1;;)switch(n){case"hex":return hexWrite(this,r,t,e);case"utf8":case"utf-8":return utf8Write(this,r,t,e);case"ascii":return asciiWrite(this,r,t,e);case"latin1":case"binary":return latin1Write(this,r,t,e);case"base64":return base64Write(this,r,t,e);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ucs2Write(this,r,t,e);default:if(a)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),a=!0}},Buffer$2.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var MAX_ARGUMENTS_LENGTH=4096;function decodeCodePointsArray(r){var t=r.length;if(t<=MAX_ARGUMENTS_LENGTH)return String.fromCharCode.apply(String,r);for(var e="",n=0;nn)&&(e=n);for(var o="",a=t;ae)throw new RangeError("Trying to access beyond buffer length")}function checkInt(r,t,e,n,o,a){if(!internalIsBuffer(r))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||tr.length)throw new RangeError("Index out of range")}function objectWriteUInt16(r,t,e,n){t<0&&(t=65535+t+1);for(var o=0,a=Math.min(r.length-e,2);o>>8*(n?o:1-o)}function objectWriteUInt32(r,t,e,n){t<0&&(t=4294967295+t+1);for(var o=0,a=Math.min(r.length-e,4);o>>8*(n?o:3-o)&255}function checkIEEE754(r,t,e,n,o,a){if(e+n>r.length)throw new RangeError("Index out of range");if(e<0)throw new RangeError("Index out of range")}function writeFloat(r,t,e,n,o){return o||checkIEEE754(r,t,e,4),write(r,t,e,n,23,4),e+4}function writeDouble(r,t,e,n,o){return o||checkIEEE754(r,t,e,8),write(r,t,e,n,52,8),e+8}Buffer$2.prototype.slice=function(r,t){var e,n=this.length;if((r=~~r)<0?(r+=n)<0&&(r=0):r>n&&(r=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t0&&(o*=256);)n+=this[r+--t]*o;return n},Buffer$2.prototype.readUInt8=function(r,t){return t||checkOffset(r,1,this.length),this[r]},Buffer$2.prototype.readUInt16LE=function(r,t){return t||checkOffset(r,2,this.length),this[r]|this[r+1]<<8},Buffer$2.prototype.readUInt16BE=function(r,t){return t||checkOffset(r,2,this.length),this[r]<<8|this[r+1]},Buffer$2.prototype.readUInt32LE=function(r,t){return t||checkOffset(r,4,this.length),(this[r]|this[r+1]<<8|this[r+2]<<16)+16777216*this[r+3]},Buffer$2.prototype.readUInt32BE=function(r,t){return t||checkOffset(r,4,this.length),16777216*this[r]+(this[r+1]<<16|this[r+2]<<8|this[r+3])},Buffer$2.prototype.readIntLE=function(r,t,e){r|=0,t|=0,e||checkOffset(r,t,this.length);for(var n=this[r],o=1,a=0;++a=(o*=128)&&(n-=Math.pow(2,8*t)),n},Buffer$2.prototype.readIntBE=function(r,t,e){r|=0,t|=0,e||checkOffset(r,t,this.length);for(var n=t,o=1,a=this[r+--n];n>0&&(o*=256);)a+=this[r+--n]*o;return a>=(o*=128)&&(a-=Math.pow(2,8*t)),a},Buffer$2.prototype.readInt8=function(r,t){return t||checkOffset(r,1,this.length),128&this[r]?-1*(255-this[r]+1):this[r]},Buffer$2.prototype.readInt16LE=function(r,t){t||checkOffset(r,2,this.length);var e=this[r]|this[r+1]<<8;return 32768&e?4294901760|e:e},Buffer$2.prototype.readInt16BE=function(r,t){t||checkOffset(r,2,this.length);var e=this[r+1]|this[r]<<8;return 32768&e?4294901760|e:e},Buffer$2.prototype.readInt32LE=function(r,t){return t||checkOffset(r,4,this.length),this[r]|this[r+1]<<8|this[r+2]<<16|this[r+3]<<24},Buffer$2.prototype.readInt32BE=function(r,t){return t||checkOffset(r,4,this.length),this[r]<<24|this[r+1]<<16|this[r+2]<<8|this[r+3]},Buffer$2.prototype.readFloatLE=function(r,t){return t||checkOffset(r,4,this.length),read(this,r,!0,23,4)},Buffer$2.prototype.readFloatBE=function(r,t){return t||checkOffset(r,4,this.length),read(this,r,!1,23,4)},Buffer$2.prototype.readDoubleLE=function(r,t){return t||checkOffset(r,8,this.length),read(this,r,!0,52,8)},Buffer$2.prototype.readDoubleBE=function(r,t){return t||checkOffset(r,8,this.length),read(this,r,!1,52,8)},Buffer$2.prototype.writeUIntLE=function(r,t,e,n){(r=+r,t|=0,e|=0,n)||checkInt(this,r,t,e,Math.pow(2,8*e)-1,0);var o=1,a=0;for(this[t]=255&r;++a=0&&(a*=256);)this[t+o]=r/a&255;return t+e},Buffer$2.prototype.writeUInt8=function(r,t,e){return r=+r,t|=0,e||checkInt(this,r,t,1,255,0),Buffer$2.TYPED_ARRAY_SUPPORT||(r=Math.floor(r)),this[t]=255&r,t+1},Buffer$2.prototype.writeUInt16LE=function(r,t,e){return r=+r,t|=0,e||checkInt(this,r,t,2,65535,0),Buffer$2.TYPED_ARRAY_SUPPORT?(this[t]=255&r,this[t+1]=r>>>8):objectWriteUInt16(this,r,t,!0),t+2},Buffer$2.prototype.writeUInt16BE=function(r,t,e){return r=+r,t|=0,e||checkInt(this,r,t,2,65535,0),Buffer$2.TYPED_ARRAY_SUPPORT?(this[t]=r>>>8,this[t+1]=255&r):objectWriteUInt16(this,r,t,!1),t+2},Buffer$2.prototype.writeUInt32LE=function(r,t,e){return r=+r,t|=0,e||checkInt(this,r,t,4,4294967295,0),Buffer$2.TYPED_ARRAY_SUPPORT?(this[t+3]=r>>>24,this[t+2]=r>>>16,this[t+1]=r>>>8,this[t]=255&r):objectWriteUInt32(this,r,t,!0),t+4},Buffer$2.prototype.writeUInt32BE=function(r,t,e){return r=+r,t|=0,e||checkInt(this,r,t,4,4294967295,0),Buffer$2.TYPED_ARRAY_SUPPORT?(this[t]=r>>>24,this[t+1]=r>>>16,this[t+2]=r>>>8,this[t+3]=255&r):objectWriteUInt32(this,r,t,!1),t+4},Buffer$2.prototype.writeIntLE=function(r,t,e,n){if(r=+r,t|=0,!n){var o=Math.pow(2,8*e-1);checkInt(this,r,t,e,o-1,-o)}var a=0,i=1,s=0;for(this[t]=255&r;++a>0)-s&255;return t+e},Buffer$2.prototype.writeIntBE=function(r,t,e,n){if(r=+r,t|=0,!n){var o=Math.pow(2,8*e-1);checkInt(this,r,t,e,o-1,-o)}var a=e-1,i=1,s=0;for(this[t+a]=255&r;--a>=0&&(i*=256);)r<0&&0===s&&0!==this[t+a+1]&&(s=1),this[t+a]=(r/i>>0)-s&255;return t+e},Buffer$2.prototype.writeInt8=function(r,t,e){return r=+r,t|=0,e||checkInt(this,r,t,1,127,-128),Buffer$2.TYPED_ARRAY_SUPPORT||(r=Math.floor(r)),r<0&&(r=255+r+1),this[t]=255&r,t+1},Buffer$2.prototype.writeInt16LE=function(r,t,e){return r=+r,t|=0,e||checkInt(this,r,t,2,32767,-32768),Buffer$2.TYPED_ARRAY_SUPPORT?(this[t]=255&r,this[t+1]=r>>>8):objectWriteUInt16(this,r,t,!0),t+2},Buffer$2.prototype.writeInt16BE=function(r,t,e){return r=+r,t|=0,e||checkInt(this,r,t,2,32767,-32768),Buffer$2.TYPED_ARRAY_SUPPORT?(this[t]=r>>>8,this[t+1]=255&r):objectWriteUInt16(this,r,t,!1),t+2},Buffer$2.prototype.writeInt32LE=function(r,t,e){return r=+r,t|=0,e||checkInt(this,r,t,4,2147483647,-2147483648),Buffer$2.TYPED_ARRAY_SUPPORT?(this[t]=255&r,this[t+1]=r>>>8,this[t+2]=r>>>16,this[t+3]=r>>>24):objectWriteUInt32(this,r,t,!0),t+4},Buffer$2.prototype.writeInt32BE=function(r,t,e){return r=+r,t|=0,e||checkInt(this,r,t,4,2147483647,-2147483648),r<0&&(r=4294967295+r+1),Buffer$2.TYPED_ARRAY_SUPPORT?(this[t]=r>>>24,this[t+1]=r>>>16,this[t+2]=r>>>8,this[t+3]=255&r):objectWriteUInt32(this,r,t,!1),t+4},Buffer$2.prototype.writeFloatLE=function(r,t,e){return writeFloat(this,r,t,!0,e)},Buffer$2.prototype.writeFloatBE=function(r,t,e){return writeFloat(this,r,t,!1,e)},Buffer$2.prototype.writeDoubleLE=function(r,t,e){return writeDouble(this,r,t,!0,e)},Buffer$2.prototype.writeDoubleBE=function(r,t,e){return writeDouble(this,r,t,!1,e)},Buffer$2.prototype.copy=function(r,t,e,n){if(e||(e=0),n||0===n||(n=this.length),t>=r.length&&(t=r.length),t||(t=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),r.length-t=0;--o)r[o+t]=this[o+e];else if(a<1e3||!Buffer$2.TYPED_ARRAY_SUPPORT)for(o=0;o>>=0,e=void 0===e?this.length:e>>>0,r||(r=0),"number"==typeof r)for(a=t;a55295&&e<57344){if(!o){if(e>56319){(t-=3)>-1&&a.push(239,191,189);continue}if(i+1===n){(t-=3)>-1&&a.push(239,191,189);continue}o=e;continue}if(e<56320){(t-=3)>-1&&a.push(239,191,189),o=e;continue}e=65536+(o-55296<<10|e-56320)}else o&&(t-=3)>-1&&a.push(239,191,189);if(o=null,e<128){if((t-=1)<0)break;a.push(e)}else if(e<2048){if((t-=2)<0)break;a.push(e>>6|192,63&e|128)}else if(e<65536){if((t-=3)<0)break;a.push(e>>12|224,e>>6&63|128,63&e|128)}else{if(!(e<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;a.push(e>>18|240,e>>12&63|128,e>>6&63|128,63&e|128)}}return a}function asciiToBytes(r){for(var t=[],e=0;e>8,o=e%256,a.push(o),a.push(n);return a}function base64ToBytes(r){return toByteArray(base64clean(r))}function blitBuffer(r,t,e,n){for(var o=0;o=t.length||o>=r.length);++o)t[o+e]=r[o];return o}function isnan(r){return r!=r}function isBuffer$1(r){return null!=r&&(!!r._isBuffer||isFastBuffer(r)||isSlowBuffer(r))}function isFastBuffer(r){return!!r.constructor&&"function"==typeof r.constructor.isBuffer&&r.constructor.isBuffer(r)}function isSlowBuffer(r){return"function"==typeof r.readFloatLE&&"function"==typeof r.slice&&isFastBuffer(r.slice(0,0))}function buff(r,t){return void 0===t&&(t=BASE64_FORMAT),isBuffer$1(r)?r:new Buffer$2.from(r,t)}var replaceErrors=function(r,t){if(t instanceof Error){var e={};return Object.getOwnPropertyNames(t).forEach((function(r){e[r]=t[r]})),e}return t},printError=function(r){return JSON.stringify(r,replaceErrors)};function findFromContract(r,t,e){return!!(e[r]&&e[r][t]&&e[r][t].file&&fs.existsSync(e[r][t].file))&&e[r][t].file}var DOT=".",getDocLen=function(r){return Buffer$2.byteLength(r,"utf8")},headerParser=function(r,t){try{var e=r.headers.accept.split(",");return t?e.filter((function(r){return r===t})):e}catch(r){return[]}},isHeaderPresent=function(r,t){return!!headerParser(r,t).length},getPathToFn=function(r,t,e){var n=e.resolverDir,o=dasherize(r),a=[];e.contract&&e.contract[t]&&e.contract[t].path&&a.push(e.contract[t].path),a.push(path.join(n,t,o,[INDEX_KEY,EXT].join(DOT))),a.push(path.join(n,t,[o,EXT].join(DOT)));for(var i=a.length,s=0;s e instanceof err)\n .map(err => err.name)\n}\n\n/**\n * @param {array} errs list of errors to compare from\n * @param {object} e the error captured\n * @return {string} name of the error object\n */\nfunction getErrorNameByInstance(errs, e) {\n let error = mapErrToName(errs, e)\n return error.length ? error[0] : UNKNOWN_ERROR\n}\n\n/**\n * the same as above with a default JsonqlError as default\n * @param {array} errs same\n * @param {object} e error itself\n * @return {string} the name of the error\n */\nfunction getErrorNameByInstanceWithDefault(errs, e) {\n let name = getErrorNameByInstance(errs, e)\n return name === UNKNOWN_ERROR ? 'JsonqlError' : name;\n}\n\n\nexport {\n getErrorNameByInstanceWithDefault,\n getErrorNameByInstance,\n UNKNOWN_ERROR\n}\n","var toString = {}.toString;\n\nexport default Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n"],"names":["const"],"mappings":"+q4BAAAA,m0QCAA"} \ No newline at end of file +{"version":3,"file":"main.js","sources":["node_modules/jsonql-errors/src/get-error-name-by-instance.js","node_modules/buffer-es6/isArray.js"],"sourcesContent":["const UNKNOWN_ERROR = 'unknown'\n\n/**\n * @param {array} errs list of errors to compare from\n * @param {object} e the error captured\n * @return {array} filtered with name as value\n */\nfunction mapErrToName(errs, e) {\n return errs.filter(err => e instanceof err)\n .map(err => err.name)\n}\n\n/**\n * @param {array} errs list of errors to compare from\n * @param {object} e the error captured\n * @return {string} name of the error object\n */\nfunction getErrorNameByInstance(errs, e) {\n let error = mapErrToName(errs, e)\n return error.length ? error[0] : UNKNOWN_ERROR\n}\n\n/**\n * the same as above with a default JsonqlError as default\n * @param {array} errs same\n * @param {object} e error itself\n * @return {string} the name of the error\n */\nfunction getErrorNameByInstanceWithDefault(errs, e) {\n let name = getErrorNameByInstance(errs, e)\n return name === UNKNOWN_ERROR ? 'JsonqlError' : name;\n}\n\n\nexport {\n getErrorNameByInstanceWithDefault,\n getErrorNameByInstance,\n UNKNOWN_ERROR\n}\n","var toString = {}.toString;\n\nexport default Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n"],"names":["const"],"mappings":"4q4BAAAA,20QCAA"} \ No newline at end of file diff --git a/packages/utils/module.js b/packages/utils/module.js index 9e181843c793314c443c55954626177765d662c3..4bc2b782c38bf57b62b765886ab43375a521cdf9 100644 --- a/packages/utils/module.js +++ b/packages/utils/module.js @@ -1,7 +1,7 @@ // exportfor ES modules // ported from jsonql-params-validator import { chainFns } from './src/chain-fns' -import { chainPromises } from './src/chain-promises' +import { chainPromises, chainProcessPromises } from './src/chain-promises' import { injectToFn, objDefineProps } from './src/obj-define-props' import { checkIsContract, @@ -14,7 +14,7 @@ import { import { inArray, toArray, - isKeyInObject, + isObjectHasKey, createEvt, timestamp, urlParams, @@ -23,7 +23,8 @@ import { dasherize, getConfigValue, isNotEmpty, - toJson + toJson, + isFunc } from './src/generic' import { toPayload, @@ -59,6 +60,7 @@ export { // chain-fns chainFns, chainPromises, + chainProcessPromises, // contract extractArgsFromPayload, extractParamsFromContract, @@ -70,7 +72,7 @@ export { // generic inArray, toArray, - isKeyInObject, + isObjectHasKey, dasherize, createEvt, timestamp, @@ -80,6 +82,7 @@ export { getConfigValue, isNotEmpty, toJson, + isFunc, // params-api toPayload, formatPayload, diff --git a/packages/utils/package.json b/packages/utils/package.json index 62709ff89fc985f55bd74dc4bec2bb9bdecff316..5fa8e8b003b3ef45ed995e6dfaed6382758b8336 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -1,6 +1,6 @@ { "name": "jsonql-utils", - "version": "0.7.8", + "version": "0.8.1", "description": "This is a jsonql dependency module, not for generate use.", "main": "main.js", "module": "index.js", diff --git a/packages/utils/src/chain-promises.js b/packages/utils/src/chain-promises.js index 30889daef2f9425d42fcf23dd49a9c3271dc59e8..89cf4de0e73b33c4ea3955fb7c6df5935656d366 100644 --- a/packages/utils/src/chain-promises.js +++ b/packages/utils/src/chain-promises.js @@ -3,6 +3,7 @@ // according to this discussion https://github.com/lodash/lodash/issues/3298 import isPlainObject from 'lodash-es/isPlainObject' import merge from 'lodash-es/merge' + /** * previously we already make sure the order of the namespaces * and attach the auth client to it @@ -21,3 +22,22 @@ export function chainPromises(promises, asObject = false) { asObject === false ? [] : (isPlainObject(asObject) ? asObject : {}) )) } + + +/** + * This one return a different result from the chainPromises + * it will be the same like chainFns that take one promise resolve as the next fn parameter + * @param {function} initPromise a function that accept param and resolve result + * @param {array} promises array of function pass that resolve promises + * @return {promise} resolve the processed result + */ +export function chainProcessPromises(initPromise, ...promises) { + return (...args) => ( + promises.reduce((promiseChain, currentTask) => ( + promiseChain.then(chainResult => ( + currentTask(chainResult) + ) + ) + ), Reflect.apply(initPromise, null, args)) + ) +} diff --git a/packages/utils/src/contract.js b/packages/utils/src/contract.js index 1a61d47439f5e50aef93f30085c0499394f6eae6..a3afa34e0f1ae9673e92b78e5775a2958ef54efe 100644 --- a/packages/utils/src/contract.js +++ b/packages/utils/src/contract.js @@ -1,5 +1,5 @@ // split the contract into the node side and the generic side -import { isKeyInObject } from './generic' +import { isObjectHasKey } from './generic' import isPlainObject from 'lodash-es/isPlainObject' import { QUERY_NAME, @@ -18,9 +18,9 @@ import { JsonqlError, JsonqlResolverNotFoundError } from 'jsonql-errors' export function checkIsContract(contract) { return isPlainObject(contract) && ( - isKeyInObject(contract, QUERY_NAME) - || isKeyInObject(contract, MUTATION_NAME) - || isKeyInObject(contract, SOCKET_NAME) + isObjectHasKey(contract, QUERY_NAME) + || isObjectHasKey(contract, MUTATION_NAME) + || isObjectHasKey(contract, SOCKET_NAME) ) } @@ -31,7 +31,7 @@ export function checkIsContract(contract) { * @return {object|boolean} false on failed */ export function extractSocketPart(contract) { - if (isKeyInObject(contract, 'socket')) { + if (isObjectHasKey(contract, 'socket')) { return contract.socket; } return false; diff --git a/packages/utils/src/generic.js b/packages/utils/src/generic.js index bea579b09f39f0853fb6a74b354f1b5eb4ad6473..b73a25c2601139ebd3803559e667d806cc119204 100644 --- a/packages/utils/src/generic.js +++ b/packages/utils/src/generic.js @@ -34,7 +34,7 @@ const parse = function(n) { * @param {string} key target * @return {boolean} true on success */ -export const isKeyInObject = function(obj, key) { +export const isObjectHasKey = function(obj, key) { const keys = Object.keys(obj) return inArray(keys, key) } @@ -124,3 +124,15 @@ export const toJson = (n) => { export const isNotEmpty = function(param) { return param !== undefined && param !== false && param !== null && trim(param) !== ''; } + +/** + * Simple check if the prop is function + * @param {*} prop input + * @return {boolean} true on success + */ +export const isFunc = prop => { + if (typeof prop === 'function') { + return true; + } + console.error(`Expect to be Function type!`) +} diff --git a/packages/utils/src/node-middleware.js b/packages/utils/src/node-middleware.js index 9b53bad4ebae206315472211a793b8c4eeaf2327..9599f409a2254f8f248ad559ef58433beda0d21d 100644 --- a/packages/utils/src/node-middleware.js +++ b/packages/utils/src/node-middleware.js @@ -17,7 +17,7 @@ import { EXT } from 'jsonql-constants' const DOT = '.' -import { isKeyInObject, timestamp, dasherize } from './generic' +import { isObjectHasKey, timestamp, dasherize } from './generic' /** * Get document (string) byte length for use in header diff --git a/packages/utils/src/results.js b/packages/utils/src/results.js index 1e5021ec6d8b981a3cb702002b23dbf1cb822198..27f3c4f7b6e62299c7c527dfbafa0e34724895b0 100644 --- a/packages/utils/src/results.js +++ b/packages/utils/src/results.js @@ -12,7 +12,7 @@ import { INDEX_KEY, EXT } from 'jsonql-constants' -import { isKeyInObject } from './generic' +import { isObjectHasKey } from './generic' import merge from 'lodash-es/merge' /** * getting what is calling after the above check @@ -47,10 +47,10 @@ export const packResult = function(result) { */ export const isJsonqlErrorObj = e => { const searchFields = ['detail', 'className'] - const test = !!searchFields.filter(field => isKeyInObject(e, field)).length + const test = !!searchFields.filter(field => isObjectHasKey(e, field)).length if (test) { return ['className', 'message', 'statusCode'] - .filter(field => isKeyInObject(e, field)) + .filter(field => isObjectHasKey(e, field)) .map(field => ( { [field]: typeof e[field] === 'object' ? e[field].toString() : e[field] @@ -85,5 +85,5 @@ export const packError = function(detail, className = 'JsonqlError', statusCode * @return {object} strip the data part out, or if the error is presented */ export const resultHandler = result => ( - (isKeyInObject(result, DATA_KEY) && !isKeyInObject(result, ERROR_KEY)) ? result[DATA_KEY] : result + (isObjectHasKey(result, DATA_KEY) && !isObjectHasKey(result, ERROR_KEY)) ? result[DATA_KEY] : result ) diff --git a/packages/utils/tests/chain-fn.test.js b/packages/utils/tests/chain-fn.test.js index 7161e761a16032e8af67ff6bfe628c5a48cb8428..f49e17e41dee594bbc1ccd52c21fba468822812c 100644 --- a/packages/utils/tests/chain-fn.test.js +++ b/packages/utils/tests/chain-fn.test.js @@ -1,7 +1,7 @@ // need to test the chain-fns because of the way we change the lodash import const test = require('ava') const { chainFns } = require('../src/chain-fns') -const { chainPromises } = require('../src/chain-promises') +const { chainPromises, chainProcessPromises } = require('../src/chain-promises') const debug = require('debug')('jsonql-utils:test:chain-fn') test('It should able to accept more than one functions after the first one', t => { @@ -32,7 +32,6 @@ test(`It should able to accept the last array return as spread input`, t => { }) - test(`It should able to merge the promise result together as one object`, async t => { let ps = [] for (let i = 0; i < 3; ++i) { @@ -45,3 +44,27 @@ test(`It should able to merge the promise result together as one object`, async t.truthy( result['key1'] ) t.true( result.x === 'y' ) }) + +test(`It should able to take one promise result as the next promise result parameter and return one result`, async t => { + // init function + const fn = (x, y) => { + return Promise.resolve({x, y}) + } + + // expect an object + const fn1 = ({x, y}) => { + debug('x', x, 'y', y) + return Promise.resolve({x: ++x, y: ++y, z: 1}) + } + + const fn2 = ({x, y, z}) => { + debug('x', x, 'y', y, 'z', z) + return Promise.resolve(x + y + z) + } + + const executor = chainProcessPromises(fn, fn1, fn2) + const result = await executor(1,2) + + t.is(result, 6) + +}) diff --git a/packages/utils/tests/construct.test.js b/packages/utils/tests/construct.test.js index 998a0367d75c35499a4a808ede022c3308000de1..0e8c38352e8c31cbae908f8f8e1cce1e8ad82cb1 100644 --- a/packages/utils/tests/construct.test.js +++ b/packages/utils/tests/construct.test.js @@ -1,6 +1,6 @@ // this is ported back from jsonql-params-validator const test = require('ava') -const { isContract, isKeyInObject } = require('../main') +const { isContract, isObjectHasKey } = require('../main') test("It should able to check if an object is contract or not", t => { @@ -10,12 +10,12 @@ test("It should able to check if an object is contract or not", t => { t.true(isContract({query: {getSomething: {}}})) }) -test("Test isKeyInObject is exported or not", t => { +test("Test isObjectHasKey is exported or not", t => { const client = {query: {}, mutation: false, socket: null}; - t.true(isKeyInObject(client, 'mutation')) - t.true(isKeyInObject(client, 'socket')) + t.true(isObjectHasKey(client, 'mutation')) + t.true(isObjectHasKey(client, 'socket')) - t.false(isKeyInObject(client, 'auth')) + t.false(isObjectHasKey(client, 'auth')) }) diff --git a/packages/validator/dist/jsonql-params-validator.cjs.js b/packages/validator/dist/jsonql-params-validator.cjs.js index 9370a9f1e6c287d2d8b81ab87d166686ac512415..ce08bd471030204bec17535c97fd7e7e4334734d 100644 --- a/packages/validator/dist/jsonql-params-validator.cjs.js +++ b/packages/validator/dist/jsonql-params-validator.cjs.js @@ -1,2 +1,2 @@ -"use strict";function isNull(e){return null===e}Object.defineProperty(exports,"__esModule",{value:!0});var global$1="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},freeGlobal="object"==typeof global$1&&global$1&&global$1.Object===Object&&global$1,freeSelf="object"==typeof self&&self&&self.Object===Object&&self,root=freeGlobal||freeSelf||Function("return this")(),Symbol=root.Symbol;function arrayMap(e,r){for(var t=-1,n=null==e?0:e.length,a=Array(n);++t>>0,r>>>=0;for(var o=Array(a);++n=HOT_COUNT)return arguments[0]}else n=0;return t.apply(void 0,arguments)}}var setToString=shortOut(baseSetToString);function baseRest(e,r){return setToString(overRest(e,r,identity),e+"")}function isIterateeCall(e,r,t){if(!isObject(t))return!1;var n=typeof r;return!!("number"==n?isArrayLike(t)&&isIndex(r,t.length):"string"==n&&r in t)&&eq(t[r],e)}function createAssigner(s){return baseRest(function(e,r){var t=-1,n=r.length,a=1",NO_STATUS_CODE=-1,ARGS_NOT_ARRAY_ERR="args is not an array! You might want to do: ES6 Array.from(arguments) or ES5 Array.prototype.slice.call(arguments)",PARAMS_NOT_ARRAY_ERR="params is not an array! Did something gone wrong when you generate the contract.json?",EXCEPTION_CASE_ERR="Could not understand your arguments and parameter structure!",DEFAULT_TYPE$1=DEFAULT_TYPE,ARRAY_TYPE_LFT$1=ARRAY_TYPE_LFT,ARRAY_TYPE_RGT$1=ARRAY_TYPE_RGT,TYPE_KEY$1=TYPE_KEY,OPTIONAL_KEY$1=OPTIONAL_KEY,ENUM_KEY$1=ENUM_KEY,ARGS_KEY$1=ARGS_KEY,CHECKER_KEY$1=CHECKER_KEY,ALIAS_KEY$1=ALIAS_KEY,ARRAY_TYPE$1=ARRAY_TYPE,OBJECT_TYPE$1=OBJECT_TYPE,STRING_TYPE$1=STRING_TYPE,BOOLEAN_TYPE$1=BOOLEAN_TYPE,NUMBER_TYPE$1=NUMBER_TYPE,KEY_WORD$1=KEY_WORD,OR_SEPERATOR$1=OR_SEPERATOR,combineFn=function(e){switch(e){case NUMBER_TYPE$1:return checkIsNumber;case STRING_TYPE$1:return checkIsString;case BOOLEAN_TYPE$1:return checkIsBoolean;default:return checkIsAny}},checkIsArray=function(e,r){return void 0===r&&(r=""),!!isArray(e)&&(""===r||""===trim(r)||!(0t.filter(function(e){return!combineFn(e)(r)}).length)}).length:t.length>t.filter(function(e){return!checkIsArray(r,e)}).length},checkIsObject=function(r,e){if(void 0===e&&(e=null),isPlainObject(r)){if(!e)return!0;if(checkIsArray(e))return!e.filter(function(e){var t=r[e.name];return!(e.type.length>e.type.filter(function(e){var r;return!!isUndefined(t)||(!1!==(r=isArrayLike$1(e))?!arrayTypeHandler({arg:t},r):!combineFn(e)(t))}).length)}).length}return!1},objectTypeHandler=function(e){var r=e.arg,t=e.param,n=[r];return Array.isArray(t.keys)&&t.keys.length&&n.push(t.keys),checkIsObject.apply(null,n)},isBrowser=function(){try{if(window||document)return!0}catch(e){}return!1},isNode=function(){try{if(!isBrowser()&&global$1)return!0}catch(e){}return!1};function whereAmI(){return isBrowser()?"browser":isNode()?"node":"unknown"}var JsonqlBaseError=function(t){function e(){for(var e=[],r=arguments.length;r--;)e[r]=arguments[r];t.apply(this,e)}return t&&(e.__proto__=t),((e.prototype=Object.create(t&&t.prototype)).constructor=e).where=function(){return whereAmI()},e}(Error),JsonqlEnumError=function(t){function n(){for(var e=[],r=arguments.length;r--;)e[r]=arguments[r];t.apply(this,e),this.message=e[0],this.detail=e[1],this.className=n.name,t.captureStackTrace&&t.captureStackTrace(this,n)}t&&(n.__proto__=t),(n.prototype=Object.create(t&&t.prototype)).constructor=n;var e={name:{configurable:!0}};return e.name.get=function(){return"JsonqlEnumError"},Object.defineProperties(n,e),n}(Error),JsonqlTypeError=function(t){function n(){for(var e=[],r=arguments.length;r--;)e[r]=arguments[r];t.apply(this,e),this.message=e[0],this.detail=e[1],this.className=n.name,t.captureStackTrace&&t.captureStackTrace(this,n)}t&&(n.__proto__=t),(n.prototype=Object.create(t&&t.prototype)).constructor=n;var e={name:{configurable:!0}};return e.name.get=function(){return"JsonqlTypeError"},Object.defineProperties(n,e),n}(Error),JsonqlCheckerError=function(t){function n(){for(var e=[],r=arguments.length;r--;)e[r]=arguments[r];t.apply(this,e),this.message=e[0],this.detail=e[1],this.className=n.name,t.captureStackTrace&&t.captureStackTrace(this,n)}t&&(n.__proto__=t),(n.prototype=Object.create(t&&t.prototype)).constructor=n;var e={name:{configurable:!0}};return e.name.get=function(){return"JsonqlCheckerError"},Object.defineProperties(n,e),n}(Error),JsonqlError=function(t){function n(){for(var e=[],r=arguments.length;r--;)e[r]=arguments[r];t.apply(this,e),this.message=e[0],this.detail=e[1],this.className=n.name,Error.captureStackTrace&&Error.captureStackTrace(this,n)}t&&(n.__proto__=t),(n.prototype=Object.create(t&&t.prototype)).constructor=n;var e={name:{configurable:!0},statusCode:{configurable:!0}};return e.name.get=function(){return"JsonqlError"},e.statusCode.get=function(){return NO_STATUS_CODE},Object.defineProperties(n,e),n}(JsonqlBaseError);function log(){for(var e=[],r=arguments.length;r--;)e[r]=arguments[r];try{window&&window.console&&Reflect.apply(console.log,console,e)}catch(e){}}var optionalHandler=function(r){var e=r.arg,t=r.param;return!!notEmpty(e)&&!(t.type.length>t.type.filter(function(e){return validateHandler(e,r)}).length)},validateHandler=function(e,r){var t;switch(!0){case e===OBJECT_TYPE$1:return!objectTypeHandler(r);case e===ARRAY_TYPE$1:return!checkIsArray(r.arg);case!1!==(t=isArrayLike$1(e)):return!arrayTypeHandler(r,t);default:return!combineFn(e)(r.arg)}},getOptionalValue=function(e,r){return isUndefined(e)?!0!==r.optional||isUndefined(r.defaultvalue)?null:r.defaultvalue:e},normalizeArgs=function(t,a){if(!checkIsArray(a))throw new JsonqlError(PARAMS_NOT_ARRAY_ERR);if(0===a.length)return[];if(!checkIsArray(t))throw new JsonqlError(ARGS_NOT_ARRAY_ERR);switch(!0){case t.length==a.length:return log(1),t.map(function(e,r){return{arg:e,index:r,param:a[r]}});case!0===a[0].variable:log(2);var n=a[0].type;return t.map(function(e,r){return{arg:e,index:r,param:a[r]||{type:n,name:"_"}}});case t.lengtha.length:log(4);var o=a.length,i=[DEFAULT_TYPE$1];return t.map(function(e,r){var t=o<=r||!!a[r].optional,n=a[r]||{type:i,name:"_"+r};return{arg:t?getOptionalValue(e,n):e,index:r,param:n,optional:t}});default:throw log(5),new JsonqlError(EXCEPTION_CASE_ERR,{args:t,params:a})}},processReturn=function(e){return e.map(function(e){return e.arg})},validateSync=function(e,r,t){var n;void 0===t&&(t=!1);var a=normalizeArgs(e,r),o=a.filter(function(r){return!0===r.optional||!0===r.param.optional?optionalHandler(r):!(r.param.type.length>r.param.type.filter(function(e){return validateHandler(e,r)}).length)});return t?((n={})[ERROR_KEY]=o,n[DATA_KEY]=processReturn(a),n):o},validateAsync=function(n,a,o){return void 0===o&&(o=!1),new Promise(function(e,r){var t=validateSync(n,a,o);return o?t[ERROR_KEY].length?r(t[ERROR_KEY]):e(t[DATA_KEY]):t.length?r(t):e([])})},isInArray=function(e,r){return!!e.filter(function(e){return e===r}).length},isKeyInObject=function(e,r){var t=Object.keys(e);return isInArray(t,r)},isEmpty=function(e){return!notEmpty(e)};function mapAliasConfigKeys(e,r){var t=omitBy(r,function(e,r){return!e[ALIAS_KEY$1]});return isEqual(t,{})?e:mapKeys(e,function(e,r){return findKey(t,function(e){return e.alias===r})||r})}function preservePristineValues(e,r){var t=mapAliasConfigKeys(e,r);return{pristineValues:mapValues(omitBy(r,function(e,r){return isKeyInObject(t,r)}),function(e){return e.args}),checkAgainstAppProps:omitBy(r,function(e,r){return!isKeyInObject(t,r)}),config:t}}function processConfigAction(a,e){return mapValues(e,function(e,r){var t,n;return isUndefined(a[r])||!0===e[OPTIONAL_KEY$1]&&isEmpty(a[r])?merge({},e,((t={})[KEY_WORD$1]=!0,t)):((n={})[ARGS_KEY$1]=a[r],n[TYPE_KEY$1]=e[TYPE_KEY$1],n[OPTIONAL_KEY$1]=e[OPTIONAL_KEY$1]||!1,n[ENUM_KEY$1]=e[ENUM_KEY$1]||!1,n[CHECKER_KEY$1]=e[CHECKER_KEY$1]||!1,n)})}function prepareArgsForValidation(e,r){var t=preservePristineValues(e,r),n=t.config,a=t.pristineValues;return[processConfigAction(n,t.checkAgainstAppProps),a]}var toArray=function(e){return checkIsArray(e)?e:[e]},inArray=function(e,r){return!!e.filter(function(e){return e===r}).length};function validateHandler$1(e,r){var t,n=[[e[ARGS_KEY$1]],[(t={},t[TYPE_KEY$1]=toArray(e[TYPE_KEY$1]),t[OPTIONAL_KEY$1]=e[OPTIONAL_KEY$1],t)]];return Reflect.apply(r,null,n)}var enumHandler=function(e,r){return!checkIsArray(r)||inArray(r,e)},checkerHandler=function(e,r){try{return!!isFunction(r)&&r.apply(null,[e])}catch(e){return!1}};function runValidationAction(n){return function(e,r){if(e[KEY_WORD$1])return e[ARGS_KEY$1];var t=validateHandler$1(e,n);if(t.length)throw log("runValidationAction",r,e),new JsonqlTypeError(r,t);if(!1!==e[ENUM_KEY$1]&&!enumHandler(e[ARGS_KEY$1],e[ENUM_KEY$1]))throw log(ENUM_KEY$1,e[ENUM_KEY$1]),new JsonqlEnumError(r);if(!1!==e[CHECKER_KEY$1]&&!checkerHandler(e[ARGS_KEY$1],e[CHECKER_KEY$1]))throw log(CHECKER_KEY$1,e[CHECKER_KEY$1]),new JsonqlCheckerError(r);return e[ARGS_KEY$1]}}function runValidation(e,r){var t=e[0],n=e[1],a=mapValues(t,runValidationAction(r));return merge(a,n)}var configToArgs=function(e,r){return Promise.resolve(prepareArgsForValidation(e,r))};function checkOptionsAsync(e,r,t,n){return void 0===e&&(e={}),configToArgs(e,r).then(function(e){return runValidation(e,n)}).then(function(e){return merge({},e,t)})}function checkOptionsSync(e,r,t,n){return void 0===e&&(e={}),merge(runValidation(prepareArgsForValidation(e,r),n),t)}function constructConfigFn(e,r,t,n,a,o){void 0===t&&(t=!1),void 0===n&&(n=!1),void 0===a&&(a=!1),void 0===o&&(o=!1);var i={};return i[ARGS_KEY]=e,i[TYPE_KEY]=r,!0===t&&(i[OPTIONAL_KEY]=!0),checkIsArray(n)&&(i[ENUM_KEY]=n),isFunction(a)&&(i[CHECKER_KEY]=a),isString(o)&&(i[ALIAS_KEY]=o),i}var createConfig=function(e,r,t){void 0===t&&(t={});var n=t[OPTIONAL_KEY],a=t[ENUM_KEY],o=t[CHECKER_KEY],i=t[ALIAS_KEY];return constructConfigFn.apply(null,[e,r,n,a,o,i])},JSONQL_PARAMS_VALIDATOR_INFO="version: 1.4.11 module: cjs",checkConfigAsync=function(n){return function(e,r,t){return void 0===t&&(t={}),checkOptionsAsync(e,r,t,n)}},checkConfig=function(n){return function(e,r,t){return void 0===t&&(t={}),checkOptionsSync(e,r,t,n)}},isObject$1=checkIsObject,isAny=checkIsAny,isString$1=checkIsString,isBoolean$1=checkIsBoolean,isNumber$1=checkIsNumber,isArray$1=checkIsArray,isNotEmpty=notEmpty,normalizeArgs$1=normalizeArgs,validateSync$1=validateSync,validateAsync$1=validateAsync,JSONQL_PARAMS_VALIDATOR_INFO$1=JSONQL_PARAMS_VALIDATOR_INFO,createConfig$1=createConfig,constructConfig=constructConfigFn,checkConfigAsync$1=checkConfigAsync(validateSync),checkConfig$1=checkConfig(validateSync),inArray$1=isInArray,isKeyInObject$1=isKeyInObject;exports.JSONQL_PARAMS_VALIDATOR_INFO=JSONQL_PARAMS_VALIDATOR_INFO$1,exports.checkConfig=checkConfig$1,exports.checkConfigAsync=checkConfigAsync$1,exports.constructConfig=constructConfig,exports.createConfig=createConfig$1,exports.inArray=inArray$1,exports.isAny=isAny,exports.isArray=isArray$1,exports.isBoolean=isBoolean$1,exports.isKeyInObject=isKeyInObject$1,exports.isNotEmpty=isNotEmpty,exports.isNumber=isNumber$1,exports.isObject=isObject$1,exports.isString=isString$1,exports.normalizeArgs=normalizeArgs$1,exports.validateAsync=validateAsync$1,exports.validateSync=validateSync$1; +"use strict";function isNull(e){return null===e}Object.defineProperty(exports,"__esModule",{value:!0});var global$1="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},freeGlobal="object"==typeof global$1&&global$1&&global$1.Object===Object&&global$1,freeSelf="object"==typeof self&&self&&self.Object===Object&&self,root=freeGlobal||freeSelf||Function("return this")(),Symbol=root.Symbol;function arrayMap(e,r){for(var t=-1,n=null==e?0:e.length,a=Array(n);++t>>0,r>>>=0;for(var o=Array(a);++n=HOT_COUNT)return arguments[0]}else n=0;return t.apply(void 0,arguments)}}var setToString=shortOut(baseSetToString);function baseRest(e,r){return setToString(overRest(e,r,identity),e+"")}function isIterateeCall(e,r,t){if(!isObject(t))return!1;var n=typeof r;return!!("number"==n?isArrayLike(t)&&isIndex(r,t.length):"string"==n&&r in t)&&eq(t[r],e)}function createAssigner(s){return baseRest(function(e,r){var t=-1,n=r.length,a=1",NO_STATUS_CODE=-1,ARGS_NOT_ARRAY_ERR="args is not an array! You might want to do: ES6 Array.from(arguments) or ES5 Array.prototype.slice.call(arguments)",PARAMS_NOT_ARRAY_ERR="params is not an array! Did something gone wrong when you generate the contract.json?",EXCEPTION_CASE_ERR="Could not understand your arguments and parameter structure!",DEFAULT_TYPE$1=DEFAULT_TYPE,ARRAY_TYPE_LFT$1=ARRAY_TYPE_LFT,ARRAY_TYPE_RGT$1=ARRAY_TYPE_RGT,TYPE_KEY$1=TYPE_KEY,OPTIONAL_KEY$1=OPTIONAL_KEY,ENUM_KEY$1=ENUM_KEY,ARGS_KEY$1=ARGS_KEY,CHECKER_KEY$1=CHECKER_KEY,ALIAS_KEY$1=ALIAS_KEY,ARRAY_TYPE$1=ARRAY_TYPE,OBJECT_TYPE$1=OBJECT_TYPE,STRING_TYPE$1=STRING_TYPE,BOOLEAN_TYPE$1=BOOLEAN_TYPE,NUMBER_TYPE$1=NUMBER_TYPE,KEY_WORD$1=KEY_WORD,OR_SEPERATOR$1=OR_SEPERATOR,combineFn=function(e){switch(e){case NUMBER_TYPE$1:return checkIsNumber;case STRING_TYPE$1:return checkIsString;case BOOLEAN_TYPE$1:return checkIsBoolean;default:return checkIsAny}},checkIsArray=function(e,r){return void 0===r&&(r=""),!!isArray(e)&&(""===r||""===trim(r)||!(0t.filter(function(e){return!combineFn(e)(r)}).length)}).length:t.length>t.filter(function(e){return!checkIsArray(r,e)}).length},checkIsObject=function(r,e){if(void 0===e&&(e=null),isPlainObject(r)){if(!e)return!0;if(checkIsArray(e))return!e.filter(function(e){var t=r[e.name];return!(e.type.length>e.type.filter(function(e){var r;return!!isUndefined(t)||(!1!==(r=isArrayLike$1(e))?!arrayTypeHandler({arg:t},r):!combineFn(e)(t))}).length)}).length}return!1},objectTypeHandler=function(e){var r=e.arg,t=e.param,n=[r];return Array.isArray(t.keys)&&t.keys.length&&n.push(t.keys),checkIsObject.apply(null,n)},isBrowser=function(){try{if(window||document)return!0}catch(e){}return!1},isNode=function(){try{if(!isBrowser()&&global$1)return!0}catch(e){}return!1};function whereAmI(){return isBrowser()?"browser":isNode()?"node":"unknown"}var JsonqlBaseError=function(t){function e(){for(var e=[],r=arguments.length;r--;)e[r]=arguments[r];t.apply(this,e)}return t&&(e.__proto__=t),((e.prototype=Object.create(t&&t.prototype)).constructor=e).where=function(){return whereAmI()},e}(Error),JsonqlEnumError=function(t){function n(){for(var e=[],r=arguments.length;r--;)e[r]=arguments[r];t.apply(this,e),this.message=e[0],this.detail=e[1],this.className=n.name,t.captureStackTrace&&t.captureStackTrace(this,n)}t&&(n.__proto__=t),(n.prototype=Object.create(t&&t.prototype)).constructor=n;var e={name:{configurable:!0}};return e.name.get=function(){return"JsonqlEnumError"},Object.defineProperties(n,e),n}(Error),JsonqlTypeError=function(t){function n(){for(var e=[],r=arguments.length;r--;)e[r]=arguments[r];t.apply(this,e),this.message=e[0],this.detail=e[1],this.className=n.name,t.captureStackTrace&&t.captureStackTrace(this,n)}t&&(n.__proto__=t),(n.prototype=Object.create(t&&t.prototype)).constructor=n;var e={name:{configurable:!0}};return e.name.get=function(){return"JsonqlTypeError"},Object.defineProperties(n,e),n}(Error),JsonqlCheckerError=function(t){function n(){for(var e=[],r=arguments.length;r--;)e[r]=arguments[r];t.apply(this,e),this.message=e[0],this.detail=e[1],this.className=n.name,t.captureStackTrace&&t.captureStackTrace(this,n)}t&&(n.__proto__=t),(n.prototype=Object.create(t&&t.prototype)).constructor=n;var e={name:{configurable:!0}};return e.name.get=function(){return"JsonqlCheckerError"},Object.defineProperties(n,e),n}(Error),JsonqlError=function(t){function n(){for(var e=[],r=arguments.length;r--;)e[r]=arguments[r];t.apply(this,e),this.message=e[0],this.detail=e[1],this.className=n.name,Error.captureStackTrace&&Error.captureStackTrace(this,n)}t&&(n.__proto__=t),(n.prototype=Object.create(t&&t.prototype)).constructor=n;var e={name:{configurable:!0},statusCode:{configurable:!0}};return e.name.get=function(){return"JsonqlError"},e.statusCode.get=function(){return NO_STATUS_CODE},Object.defineProperties(n,e),n}(JsonqlBaseError);function log(){for(var e=[],r=arguments.length;r--;)e[r]=arguments[r];try{window&&window.console&&Reflect.apply(console.log,console,e)}catch(e){}}var optionalHandler=function(r){var e=r.arg,t=r.param;return!!notEmpty(e)&&!(t.type.length>t.type.filter(function(e){return validateHandler(e,r)}).length)},validateHandler=function(e,r){var t;switch(!0){case e===OBJECT_TYPE$1:return!objectTypeHandler(r);case e===ARRAY_TYPE$1:return!checkIsArray(r.arg);case!1!==(t=isArrayLike$1(e)):return!arrayTypeHandler(r,t);default:return!combineFn(e)(r.arg)}},getOptionalValue=function(e,r){return isUndefined(e)?!0!==r.optional||isUndefined(r.defaultvalue)?null:r.defaultvalue:e},normalizeArgs=function(t,a){if(!checkIsArray(a))throw new JsonqlError(PARAMS_NOT_ARRAY_ERR);if(0===a.length)return[];if(!checkIsArray(t))throw new JsonqlError(ARGS_NOT_ARRAY_ERR);switch(!0){case t.length==a.length:return log(1),t.map(function(e,r){return{arg:e,index:r,param:a[r]}});case!0===a[0].variable:log(2);var n=a[0].type;return t.map(function(e,r){return{arg:e,index:r,param:a[r]||{type:n,name:"_"}}});case t.lengtha.length:log(4);var o=a.length,i=[DEFAULT_TYPE$1];return t.map(function(e,r){var t=o<=r||!!a[r].optional,n=a[r]||{type:i,name:"_"+r};return{arg:t?getOptionalValue(e,n):e,index:r,param:n,optional:t}});default:throw log(5),new JsonqlError(EXCEPTION_CASE_ERR,{args:t,params:a})}},processReturn=function(e){return e.map(function(e){return e.arg})},validateSync=function(e,r,t){var n;void 0===t&&(t=!1);var a=normalizeArgs(e,r),o=a.filter(function(r){return!0===r.optional||!0===r.param.optional?optionalHandler(r):!(r.param.type.length>r.param.type.filter(function(e){return validateHandler(e,r)}).length)});return t?((n={})[ERROR_KEY]=o,n[DATA_KEY]=processReturn(a),n):o},validateAsync=function(n,a,o){return void 0===o&&(o=!1),new Promise(function(e,r){var t=validateSync(n,a,o);return o?t[ERROR_KEY].length?r(t[ERROR_KEY]):e(t[DATA_KEY]):t.length?r(t):e([])})},isInArray=function(e,r){return!!e.filter(function(e){return e===r}).length},isObjectHasKey=function(e,r){var t=Object.keys(e);return isInArray(t,r)},isEmpty=function(e){return!notEmpty(e)};function mapAliasConfigKeys(e,r){var t=omitBy(r,function(e,r){return!e[ALIAS_KEY$1]});return isEqual(t,{})?e:mapKeys(e,function(e,r){return findKey(t,function(e){return e.alias===r})||r})}function preservePristineValues(e,r){var t=mapAliasConfigKeys(e,r);return{pristineValues:mapValues(omitBy(r,function(e,r){return isObjectHasKey(t,r)}),function(e){return e.args}),checkAgainstAppProps:omitBy(r,function(e,r){return!isObjectHasKey(t,r)}),config:t}}function processConfigAction(a,e){return mapValues(e,function(e,r){var t,n;return isUndefined(a[r])||!0===e[OPTIONAL_KEY$1]&&isEmpty(a[r])?merge({},e,((t={})[KEY_WORD$1]=!0,t)):((n={})[ARGS_KEY$1]=a[r],n[TYPE_KEY$1]=e[TYPE_KEY$1],n[OPTIONAL_KEY$1]=e[OPTIONAL_KEY$1]||!1,n[ENUM_KEY$1]=e[ENUM_KEY$1]||!1,n[CHECKER_KEY$1]=e[CHECKER_KEY$1]||!1,n)})}function prepareArgsForValidation(e,r){var t=preservePristineValues(e,r),n=t.config,a=t.pristineValues;return[processConfigAction(n,t.checkAgainstAppProps),a]}var toArray=function(e){return checkIsArray(e)?e:[e]},inArray=function(e,r){return!!e.filter(function(e){return e===r}).length};function validateHandler$1(e,r){var t,n=[[e[ARGS_KEY$1]],[(t={},t[TYPE_KEY$1]=toArray(e[TYPE_KEY$1]),t[OPTIONAL_KEY$1]=e[OPTIONAL_KEY$1],t)]];return Reflect.apply(r,null,n)}var enumHandler=function(e,r){return!checkIsArray(r)||inArray(r,e)},checkerHandler=function(e,r){try{return!!isFunction(r)&&r.apply(null,[e])}catch(e){return!1}};function runValidationAction(n){return function(e,r){if(e[KEY_WORD$1])return e[ARGS_KEY$1];var t=validateHandler$1(e,n);if(t.length)throw log("runValidationAction",r,e),new JsonqlTypeError(r,t);if(!1!==e[ENUM_KEY$1]&&!enumHandler(e[ARGS_KEY$1],e[ENUM_KEY$1]))throw log(ENUM_KEY$1,e[ENUM_KEY$1]),new JsonqlEnumError(r);if(!1!==e[CHECKER_KEY$1]&&!checkerHandler(e[ARGS_KEY$1],e[CHECKER_KEY$1]))throw log(CHECKER_KEY$1,e[CHECKER_KEY$1]),new JsonqlCheckerError(r);return e[ARGS_KEY$1]}}function runValidation(e,r){var t=e[0],n=e[1],a=mapValues(t,runValidationAction(r));return merge(a,n)}var configToArgs=function(e,r){return Promise.resolve(prepareArgsForValidation(e,r))};function checkOptionsAsync(e,r,t,n){return void 0===e&&(e={}),configToArgs(e,r).then(function(e){return runValidation(e,n)}).then(function(e){return merge({},e,t)})}function checkOptionsSync(e,r,t,n){return void 0===e&&(e={}),merge(runValidation(prepareArgsForValidation(e,r),n),t)}function constructConfigFn(e,r,t,n,a,o){void 0===t&&(t=!1),void 0===n&&(n=!1),void 0===a&&(a=!1),void 0===o&&(o=!1);var i={};return i[ARGS_KEY]=e,i[TYPE_KEY]=r,!0===t&&(i[OPTIONAL_KEY]=!0),checkIsArray(n)&&(i[ENUM_KEY]=n),isFunction(a)&&(i[CHECKER_KEY]=a),isString(o)&&(i[ALIAS_KEY]=o),i}var createConfig=function(e,r,t){void 0===t&&(t={});var n=t[OPTIONAL_KEY],a=t[ENUM_KEY],o=t[CHECKER_KEY],i=t[ALIAS_KEY];return constructConfigFn.apply(null,[e,r,n,a,o,i])},JSONQL_PARAMS_VALIDATOR_INFO="version: 1.4.11 module: cjs",checkConfigAsync=function(n){return function(e,r,t){return void 0===t&&(t={}),checkOptionsAsync(e,r,t,n)}},checkConfig=function(n){return function(e,r,t){return void 0===t&&(t={}),checkOptionsSync(e,r,t,n)}},isObject$1=checkIsObject,isAny=checkIsAny,isString$1=checkIsString,isBoolean$1=checkIsBoolean,isNumber$1=checkIsNumber,isArray$1=checkIsArray,isNotEmpty=notEmpty,normalizeArgs$1=normalizeArgs,validateSync$1=validateSync,validateAsync$1=validateAsync,JSONQL_PARAMS_VALIDATOR_INFO$1=JSONQL_PARAMS_VALIDATOR_INFO,createConfig$1=createConfig,constructConfig=constructConfigFn,checkConfigAsync$1=checkConfigAsync(validateSync),checkConfig$1=checkConfig(validateSync),inArray$1=isInArray,isObjectHasKey$1=isObjectHasKey;exports.JSONQL_PARAMS_VALIDATOR_INFO=JSONQL_PARAMS_VALIDATOR_INFO$1,exports.checkConfig=checkConfig$1,exports.checkConfigAsync=checkConfigAsync$1,exports.constructConfig=constructConfig,exports.createConfig=createConfig$1,exports.inArray=inArray$1,exports.isAny=isAny,exports.isArray=isArray$1,exports.isBoolean=isBoolean$1,exports.isObjectHasKey=isObjectHasKey$1,exports.isNotEmpty=isNotEmpty,exports.isNumber=isNumber$1,exports.isObject=isObject$1,exports.isString=isString$1,exports.normalizeArgs=normalizeArgs$1,exports.validateAsync=validateAsync$1,exports.validateSync=validateSync$1; //# sourceMappingURL=jsonql-params-validator.cjs.js.map diff --git a/packages/validator/dist/jsonql-params-validator.umd.js b/packages/validator/dist/jsonql-params-validator.umd.js index 0a1f235fc859ea74ae93eef67e8f41a7851b535c..782746b6437b5718cfd27197a18937cf8becb80b 100644 --- a/packages/validator/dist/jsonql-params-validator.umd.js +++ b/packages/validator/dist/jsonql-params-validator.umd.js @@ -1,2 +1,2 @@ -!function(t,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports):"function"==typeof define&&define.amd?define(["exports"],r):r((t=t||self).jsonqlParamsValidator={})}(this,function(t){"use strict";var r="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},n="object"==typeof r&&r&&r.Object===Object&&r,e="object"==typeof self&&self&&self.Object===Object&&self,o=n||e||Function("return this")(),u=o.Symbol;function i(t,r){for(var n=-1,e=null==t?0:t.length,o=Array(e);++n>>0,r>>>=0;for(var u=Array(o);++e")){var r=t.replace(Ve,"").replace(">","");return r.indexOf("|")?r.split("|"):[r]}return!1}function Fe(t,n){var r=t.arg;return 1n.filter(function(t){return!xe(t)(r)}).length)}).length:n.length>n.filter(function(t){return!Te(r,t)}).length}function Ne(r,t){if(void 0===t&&(t=null),et(r)){if(!t)return!0;if(Te(t))return!t.filter(function(t){var n=r[t.name];return!(t.type.length>t.type.filter(function(t){var r;return!!U(n)||(!1!==(r=Ce(t))?!Fe({arg:n},r):!xe(t)(n))}).length)}).length}return!1}function $e(){try{if(window||document)return!0}catch(t){}return!1}var Be="error",Me="optional",Re="enumv",De="checker",Ie="alias",Ve="array.<",Le="type",qe=Me,Ue=Re,Je="args",We=De,Ge=Ie,Ke="continue";function Qe(){return $e()?"browser":function(){try{if(!$e()&&r)return!0}catch(t){}return!1}()?"node":"unknown"}var Ye=function(n){function t(){for(var t=[],r=arguments.length;r--;)t[r]=arguments[r];n.apply(this,t)}return n&&(t.__proto__=n),((t.prototype=Object.create(n&&n.prototype)).constructor=t).where=function(){return Qe()},t}(Error),He=function(n){function e(){for(var t=[],r=arguments.length;r--;)t[r]=arguments[r];n.apply(this,t),this.message=t[0],this.detail=t[1],this.className=e.name,n.captureStackTrace&&n.captureStackTrace(this,e)}n&&(e.__proto__=n),(e.prototype=Object.create(n&&n.prototype)).constructor=e;var t={name:{configurable:!0}};return t.name.get=function(){return"JsonqlEnumError"},Object.defineProperties(e,t),e}(Error),Xe=function(n){function e(){for(var t=[],r=arguments.length;r--;)t[r]=arguments[r];n.apply(this,t),this.message=t[0],this.detail=t[1],this.className=e.name,n.captureStackTrace&&n.captureStackTrace(this,e)}n&&(e.__proto__=n),(e.prototype=Object.create(n&&n.prototype)).constructor=e;var t={name:{configurable:!0}};return t.name.get=function(){return"JsonqlTypeError"},Object.defineProperties(e,t),e}(Error),Ze=function(n){function e(){for(var t=[],r=arguments.length;r--;)t[r]=arguments[r];n.apply(this,t),this.message=t[0],this.detail=t[1],this.className=e.name,n.captureStackTrace&&n.captureStackTrace(this,e)}n&&(e.__proto__=n),(e.prototype=Object.create(n&&n.prototype)).constructor=e;var t={name:{configurable:!0}};return t.name.get=function(){return"JsonqlCheckerError"},Object.defineProperties(e,t),e}(Error),to=function(n){function e(){for(var t=[],r=arguments.length;r--;)t[r]=arguments[r];n.apply(this,t),this.message=t[0],this.detail=t[1],this.className=e.name,Error.captureStackTrace&&Error.captureStackTrace(this,e)}n&&(e.__proto__=n),(e.prototype=Object.create(n&&n.prototype)).constructor=e;var t={name:{configurable:!0},statusCode:{configurable:!0}};return t.name.get=function(){return"JsonqlError"},t.statusCode.get=function(){return-1},Object.defineProperties(e,t),e}(Ye);function ro(){for(var t=[],r=arguments.length;r--;)t[r]=arguments[r];try{window&&window.console&&Reflect.apply(console.log,console,t)}catch(t){}}function no(t,r){return U(t)?!0!==r.optional||U(r.defaultvalue)?null:r.defaultvalue:t}function eo(n,o){if(!Te(o))throw new to("params is not an array! Did something gone wrong when you generate the contract.json?");if(0===o.length)return[];if(!Te(n))throw new to("args is not an array! You might want to do: ES6 Array.from(arguments) or ES5 Array.prototype.slice.call(arguments)");switch(!0){case n.length==o.length:return ro(1),n.map(function(t,r){return{arg:t,index:r,param:o[r]}});case!0===o[0].variable:ro(2);var e=o[0].type;return n.map(function(t,r){return{arg:t,index:r,param:o[r]||{type:e,name:"_"}}});case n.lengtho.length:ro(4);var u=o.length,i=["any"];return n.map(function(t,r){var n=u<=r||!!o[r].optional,e=o[r]||{type:i,name:"_"+r};return{arg:n?no(t,e):t,index:r,param:e,optional:n}});default:throw ro(5),new to("Could not understand your arguments and parameter structure!",{args:n,params:o})}}function oo(t,r,n){var e;void 0===n&&(n=!1);var o=eo(t,r),u=o.filter(function(r){return!0===r.optional||!0===r.param.optional?function(r){var t=r.arg,n=r.param;return!!Se(t)&&!(n.type.length>n.type.filter(function(t){return io(t,r)}).length)}(r):!(r.param.type.length>r.param.type.filter(function(t){return io(t,r)}).length)});return n?((e={})[Be]=u,e.data=function(t){return t.map(function(t){return t.arg})}(o),e):u}function uo(t,r){return!!t.filter(function(t){return t===r}).length}var io=function(t,r){var n;switch(!0){case"object"===t:return!function(t){var r=t.arg,n=t.param,e=[r];return Array.isArray(n.keys)&&n.keys.length&&e.push(n.keys),Ne.apply(null,e)}(r);case"array"===t:return!Te(r.arg);case!1!==(n=Ce(t)):return!Fe(r,n);default:return!xe(t)(r.arg)}},ao=function(t,r){var n=Object.keys(t);return uo(n,r)},co=function(t){return!Se(t)};function fo(t,r){var n=Ae(r,function(t,r){return!t[Ge]});return function(t,r){return yn(t,r)}(n,{})?t:function(t,e){var o={};return e=Ln(e),Lt(t,function(t,r,n){Un(o,e(t,r,n),t)}),o}(t,function(t,r){return function(t,r){return function(t,e,r){var o;return r(t,function(t,r,n){if(e(t,r,n))return o=r,!1}),o}(t,Ln(r),Lt)}(n,function(t){return t.alias===r})||r})}function lo(t,r){var n=function(t,r){var n=fo(t,r);return{pristineValues:_e(Ae(r,function(t,r){return ao(n,r)}),function(t){return t.args}),checkAgainstAppProps:Ae(r,function(t,r){return!ao(n,r)}),config:n}}(t,r),e=n.config,o=n.pristineValues;return[function(o,t){return _e(t,function(t,r){var n,e;return U(o[r])||!0===t[qe]&&co(o[r])?be({},t,((n={})[Ke]=!0,n)):((e={})[Je]=o[r],e[Le]=t[Le],e[qe]=t[qe]||!1,e[Ue]=t[Ue]||!1,e[We]=t[We]||!1,e)})}(e,n.checkAgainstAppProps),o]}var so=function(t){return Te(t)?t:[t]};var po=function(t,r){return!Te(r)||function(t,r){return!!t.filter(function(t){return t===r}).length}(r,t)},vo=function(t,r){try{return!!Dt(r)&&r.apply(null,[t])}catch(t){return!1}};function ho(e){return function(t,r){if(t[Ke])return t[Je];var n=function(t,r){var n,e=[[t[Je]],[(n={},n[Le]=so(t[Le]),n[qe]=t[qe],n)]];return Reflect.apply(r,null,e)}(t,e);if(n.length)throw ro("runValidationAction",r,t),new Xe(r,n);if(!1!==t[Ue]&&!po(t[Je],t[Ue]))throw ro(Ue,t[Ue]),new He(r);if(!1!==t[We]&&!vo(t[Je],t[We]))throw ro(We,t[We]),new Ze(r);return t[Je]}}function yo(t,r){var n=t[0],e=t[1],o=_e(n,ho(r));return be(o,e)}function go(t,r,n,e){return void 0===t&&(t={}),function(t,r){return Promise.resolve(lo(t,r))}(t,r).then(function(t){return yo(t,e)}).then(function(t){return be({},t,n)})}function bo(t,r,n,e,o,u){void 0===n&&(n=!1),void 0===e&&(e=!1),void 0===o&&(o=!1),void 0===u&&(u=!1);var i={};return i.args=t,i.type=r,!0===n&&(i[Me]=!0),Te(e)&&(i[Re]=e),Dt(o)&&(i[De]=o),K(u)&&(i[Ie]=u),i}function _o(e,o,u){return void 0===u&&(u=!1),new Promise(function(t,r){var n=oo(e,o,u);return u?n[Be].length?r(n[Be]):t(n.data):n.length?r(n):t([])})}function jo(t,r,n){void 0===n&&(n={});var e=n[Me],o=n[Re],u=n[De],i=n[Ie];return bo.apply(null,[t,r,e,o,u,i])}var mo,wo,Oo=Ne,Ao=ze,So=ke,Po=Ee,ko=Pe,Eo=Te,zo=Se,xo=eo,To=oo,Co=bo,Fo=(mo=oo,function(t,r,n){return void 0===n&&(n={}),go(t,r,n,mo)}),No=(wo=oo,function(t,r,n){return void 0===n&&(n={}),function(t,r,n,e){return void 0===t&&(t={}),be(yo(lo(t,r),e),n)}(t,r,n,wo)}),$o=uo,Bo=ao;t.JSONQL_PARAMS_VALIDATOR_INFO="version: 1.4.11 module: umd",t.checkConfig=No,t.checkConfigAsync=Fo,t.constructConfig=Co,t.createConfig=jo,t.inArray=$o,t.isAny=Ao,t.isArray=Eo,t.isBoolean=Po,t.isKeyInObject=Bo,t.isNotEmpty=zo,t.isNumber=ko,t.isObject=Oo,t.isString=So,t.normalizeArgs=xo,t.validateAsync=_o,t.validateSync=To,Object.defineProperty(t,"__esModule",{value:!0})}); +!function(t,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports):"function"==typeof define&&define.amd?define(["exports"],r):r((t=t||self).jsonqlParamsValidator={})}(this,function(t){"use strict";var r="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},n="object"==typeof r&&r&&r.Object===Object&&r,e="object"==typeof self&&self&&self.Object===Object&&self,o=n||e||Function("return this")(),u=o.Symbol;function i(t,r){for(var n=-1,e=null==t?0:t.length,o=Array(e);++n>>0,r>>>=0;for(var u=Array(o);++e")){var r=t.replace(Ve,"").replace(">","");return r.indexOf("|")?r.split("|"):[r]}return!1}function Fe(t,n){var r=t.arg;return 1n.filter(function(t){return!xe(t)(r)}).length)}).length:n.length>n.filter(function(t){return!Te(r,t)}).length}function Ne(r,t){if(void 0===t&&(t=null),et(r)){if(!t)return!0;if(Te(t))return!t.filter(function(t){var n=r[t.name];return!(t.type.length>t.type.filter(function(t){var r;return!!U(n)||(!1!==(r=Ce(t))?!Fe({arg:n},r):!xe(t)(n))}).length)}).length}return!1}function $e(){try{if(window||document)return!0}catch(t){}return!1}var Be="error",Me="optional",Re="enumv",De="checker",Ie="alias",Ve="array.<",Le="type",qe=Me,Ue=Re,Je="args",We=De,Ge=Ie,Ke="continue";function Qe(){return $e()?"browser":function(){try{if(!$e()&&r)return!0}catch(t){}return!1}()?"node":"unknown"}var Ye=function(n){function t(){for(var t=[],r=arguments.length;r--;)t[r]=arguments[r];n.apply(this,t)}return n&&(t.__proto__=n),((t.prototype=Object.create(n&&n.prototype)).constructor=t).where=function(){return Qe()},t}(Error),He=function(n){function e(){for(var t=[],r=arguments.length;r--;)t[r]=arguments[r];n.apply(this,t),this.message=t[0],this.detail=t[1],this.className=e.name,n.captureStackTrace&&n.captureStackTrace(this,e)}n&&(e.__proto__=n),(e.prototype=Object.create(n&&n.prototype)).constructor=e;var t={name:{configurable:!0}};return t.name.get=function(){return"JsonqlEnumError"},Object.defineProperties(e,t),e}(Error),Xe=function(n){function e(){for(var t=[],r=arguments.length;r--;)t[r]=arguments[r];n.apply(this,t),this.message=t[0],this.detail=t[1],this.className=e.name,n.captureStackTrace&&n.captureStackTrace(this,e)}n&&(e.__proto__=n),(e.prototype=Object.create(n&&n.prototype)).constructor=e;var t={name:{configurable:!0}};return t.name.get=function(){return"JsonqlTypeError"},Object.defineProperties(e,t),e}(Error),Ze=function(n){function e(){for(var t=[],r=arguments.length;r--;)t[r]=arguments[r];n.apply(this,t),this.message=t[0],this.detail=t[1],this.className=e.name,n.captureStackTrace&&n.captureStackTrace(this,e)}n&&(e.__proto__=n),(e.prototype=Object.create(n&&n.prototype)).constructor=e;var t={name:{configurable:!0}};return t.name.get=function(){return"JsonqlCheckerError"},Object.defineProperties(e,t),e}(Error),to=function(n){function e(){for(var t=[],r=arguments.length;r--;)t[r]=arguments[r];n.apply(this,t),this.message=t[0],this.detail=t[1],this.className=e.name,Error.captureStackTrace&&Error.captureStackTrace(this,e)}n&&(e.__proto__=n),(e.prototype=Object.create(n&&n.prototype)).constructor=e;var t={name:{configurable:!0},statusCode:{configurable:!0}};return t.name.get=function(){return"JsonqlError"},t.statusCode.get=function(){return-1},Object.defineProperties(e,t),e}(Ye);function ro(){for(var t=[],r=arguments.length;r--;)t[r]=arguments[r];try{window&&window.console&&Reflect.apply(console.log,console,t)}catch(t){}}function no(t,r){return U(t)?!0!==r.optional||U(r.defaultvalue)?null:r.defaultvalue:t}function eo(n,o){if(!Te(o))throw new to("params is not an array! Did something gone wrong when you generate the contract.json?");if(0===o.length)return[];if(!Te(n))throw new to("args is not an array! You might want to do: ES6 Array.from(arguments) or ES5 Array.prototype.slice.call(arguments)");switch(!0){case n.length==o.length:return ro(1),n.map(function(t,r){return{arg:t,index:r,param:o[r]}});case!0===o[0].variable:ro(2);var e=o[0].type;return n.map(function(t,r){return{arg:t,index:r,param:o[r]||{type:e,name:"_"}}});case n.lengtho.length:ro(4);var u=o.length,i=["any"];return n.map(function(t,r){var n=u<=r||!!o[r].optional,e=o[r]||{type:i,name:"_"+r};return{arg:n?no(t,e):t,index:r,param:e,optional:n}});default:throw ro(5),new to("Could not understand your arguments and parameter structure!",{args:n,params:o})}}function oo(t,r,n){var e;void 0===n&&(n=!1);var o=eo(t,r),u=o.filter(function(r){return!0===r.optional||!0===r.param.optional?function(r){var t=r.arg,n=r.param;return!!Se(t)&&!(n.type.length>n.type.filter(function(t){return io(t,r)}).length)}(r):!(r.param.type.length>r.param.type.filter(function(t){return io(t,r)}).length)});return n?((e={})[Be]=u,e.data=function(t){return t.map(function(t){return t.arg})}(o),e):u}function uo(t,r){return!!t.filter(function(t){return t===r}).length}var io=function(t,r){var n;switch(!0){case"object"===t:return!function(t){var r=t.arg,n=t.param,e=[r];return Array.isArray(n.keys)&&n.keys.length&&e.push(n.keys),Ne.apply(null,e)}(r);case"array"===t:return!Te(r.arg);case!1!==(n=Ce(t)):return!Fe(r,n);default:return!xe(t)(r.arg)}},ao=function(t,r){var n=Object.keys(t);return uo(n,r)},co=function(t){return!Se(t)};function fo(t,r){var n=Ae(r,function(t,r){return!t[Ge]});return function(t,r){return yn(t,r)}(n,{})?t:function(t,e){var o={};return e=Ln(e),Lt(t,function(t,r,n){Un(o,e(t,r,n),t)}),o}(t,function(t,r){return function(t,r){return function(t,e,r){var o;return r(t,function(t,r,n){if(e(t,r,n))return o=r,!1}),o}(t,Ln(r),Lt)}(n,function(t){return t.alias===r})||r})}function lo(t,r){var n=function(t,r){var n=fo(t,r);return{pristineValues:_e(Ae(r,function(t,r){return ao(n,r)}),function(t){return t.args}),checkAgainstAppProps:Ae(r,function(t,r){return!ao(n,r)}),config:n}}(t,r),e=n.config,o=n.pristineValues;return[function(o,t){return _e(t,function(t,r){var n,e;return U(o[r])||!0===t[qe]&&co(o[r])?be({},t,((n={})[Ke]=!0,n)):((e={})[Je]=o[r],e[Le]=t[Le],e[qe]=t[qe]||!1,e[Ue]=t[Ue]||!1,e[We]=t[We]||!1,e)})}(e,n.checkAgainstAppProps),o]}var so=function(t){return Te(t)?t:[t]};var po=function(t,r){return!Te(r)||function(t,r){return!!t.filter(function(t){return t===r}).length}(r,t)},vo=function(t,r){try{return!!Dt(r)&&r.apply(null,[t])}catch(t){return!1}};function ho(e){return function(t,r){if(t[Ke])return t[Je];var n=function(t,r){var n,e=[[t[Je]],[(n={},n[Le]=so(t[Le]),n[qe]=t[qe],n)]];return Reflect.apply(r,null,e)}(t,e);if(n.length)throw ro("runValidationAction",r,t),new Xe(r,n);if(!1!==t[Ue]&&!po(t[Je],t[Ue]))throw ro(Ue,t[Ue]),new He(r);if(!1!==t[We]&&!vo(t[Je],t[We]))throw ro(We,t[We]),new Ze(r);return t[Je]}}function yo(t,r){var n=t[0],e=t[1],o=_e(n,ho(r));return be(o,e)}function go(t,r,n,e){return void 0===t&&(t={}),function(t,r){return Promise.resolve(lo(t,r))}(t,r).then(function(t){return yo(t,e)}).then(function(t){return be({},t,n)})}function bo(t,r,n,e,o,u){void 0===n&&(n=!1),void 0===e&&(e=!1),void 0===o&&(o=!1),void 0===u&&(u=!1);var i={};return i.args=t,i.type=r,!0===n&&(i[Me]=!0),Te(e)&&(i[Re]=e),Dt(o)&&(i[De]=o),K(u)&&(i[Ie]=u),i}function _o(e,o,u){return void 0===u&&(u=!1),new Promise(function(t,r){var n=oo(e,o,u);return u?n[Be].length?r(n[Be]):t(n.data):n.length?r(n):t([])})}function jo(t,r,n){void 0===n&&(n={});var e=n[Me],o=n[Re],u=n[De],i=n[Ie];return bo.apply(null,[t,r,e,o,u,i])}var mo,wo,Oo=Ne,Ao=ze,So=ke,Po=Ee,ko=Pe,Eo=Te,zo=Se,xo=eo,To=oo,Co=bo,Fo=(mo=oo,function(t,r,n){return void 0===n&&(n={}),go(t,r,n,mo)}),No=(wo=oo,function(t,r,n){return void 0===n&&(n={}),function(t,r,n,e){return void 0===t&&(t={}),be(yo(lo(t,r),e),n)}(t,r,n,wo)}),$o=uo,Bo=ao;t.JSONQL_PARAMS_VALIDATOR_INFO="version: 1.4.11 module: umd",t.checkConfig=No,t.checkConfigAsync=Fo,t.constructConfig=Co,t.createConfig=jo,t.inArray=$o,t.isAny=Ao,t.isArray=Eo,t.isBoolean=Po,t.isObjectHasKey=Bo,t.isNotEmpty=zo,t.isNumber=ko,t.isObject=Oo,t.isString=So,t.normalizeArgs=xo,t.validateAsync=_o,t.validateSync=To,Object.defineProperty(t,"__esModule",{value:!0})}); //# sourceMappingURL=jsonql-params-validator.umd.js.map diff --git a/packages/validator/index.js b/packages/validator/index.js index e144ab026e68efd4954b3b634f9bcf0685fc74b0..4f6f86109220b86c19614f107a0d79009b68ea09 100644 --- a/packages/validator/index.js +++ b/packages/validator/index.js @@ -37,7 +37,7 @@ export const checkConfig = jsonqlOptions.checkConfig(validator.validateSync) // export the two extra functions import isInArray from './src/is-in-array' -import isKeyInObjectFn from './src/is-key-in-object' +import isObjectHasKeyFn from './src/is-key-in-object' export const inArray = isInArray; -export const isKeyInObject = isKeyInObjectFn; +export const isObjectHasKey = isObjectHasKeyFn; diff --git a/packages/validator/src/is-key-in-object.js b/packages/validator/src/is-key-in-object.js index 097c97e903b7ccc2fb2eadaa7421074ea393de7c..b8e8c278545a8a85b02be7c6cdceab5ab23b09c0 100644 --- a/packages/validator/src/is-key-in-object.js +++ b/packages/validator/src/is-key-in-object.js @@ -1,9 +1,9 @@ import isInArray from './is-in-array' -const isKeyInObject = function(obj, key) { +const isObjectHasKey = function(obj, key) { const keys = Object.keys(obj) return isInArray(keys, key) } -export default isKeyInObject; +export default isObjectHasKey; diff --git a/packages/validator/src/options/prepare-args-for-validation.js b/packages/validator/src/options/prepare-args-for-validation.js index 36266c19ef7e0311c036d302f0bfebce32872c90..dbcc49c3f2e60e6fb68d7bc96abf67a6d36a69ac 100644 --- a/packages/validator/src/options/prepare-args-for-validation.js +++ b/packages/validator/src/options/prepare-args-for-validation.js @@ -19,7 +19,7 @@ import { } from '../constants' import notEmpty from '../not-empty' import { checkIsObject } from '../object' -import isKeyInObject from '../is-key-in-object' +import isObjectHasKey from '../is-key-in-object' // just not to make my head hurt const isEmpty = value => !notEmpty(value) @@ -53,11 +53,11 @@ export function preservePristineValues(config, appProps) { const _config = mapAliasConfigKeys(config, appProps) // take the default value out const pristineValues = mapValues( - omitBy(appProps, (value, key) => isKeyInObject(_config, key)), + omitBy(appProps, (value, key) => isObjectHasKey(_config, key)), value => value.args ) // for testing the value - const checkAgainstAppProps = omitBy(appProps, (value, key) => !isKeyInObject(_config, key)) + const checkAgainstAppProps = omitBy(appProps, (value, key) => !isObjectHasKey(_config, key)) // output return { pristineValues, diff --git a/packages/ws-base/src/client/generator.js b/packages/ws-base/src/client/generator.js index 9279f19c1a21dc70dada50948440165dd5df785b..5549619c0155b0113345a0d843eee93d6767e7d0 100644 --- a/packages/ws-base/src/client/generator.js +++ b/packages/ws-base/src/client/generator.js @@ -15,7 +15,7 @@ import { import { validateAsync, validateSync, - isKeyInObject, + isObjectHasKey, isString } from 'jsonql-params-validator' import { @@ -110,10 +110,10 @@ function actionCall(ee, namespace, resolverName, args = []) { * @return {void} nothing */ function respondHandler(data, resolver, rejecter) { - if (isKeyInObject(data, ERROR_KEY)) { + if (isObjectHasKey(data, ERROR_KEY)) { debugFn('rejecter called', data[ERROR_KEY]) rejecter(data[ERROR_KEY]) - } else if (isKeyInObject(data, DATA_KEY)) { + } else if (isObjectHasKey(data, DATA_KEY)) { debugFn('resolver called', data[DATA_KEY]) resolver(data[DATA_KEY]) } else { diff --git a/packages/ws-base/src/client/node/main.cjs.js b/packages/ws-base/src/client/node/main.cjs.js index c85f14bfea205f3440de97c4ebf13d8da72b7971..9882b7c28ee871f1fee9c79078c0bd2a620f6fb1 100644 --- a/packages/ws-base/src/client/node/main.cjs.js +++ b/packages/ws-base/src/client/node/main.cjs.js @@ -5632,7 +5632,7 @@ var createConfig$1 = createConfig; var checkConfigAsync$1 = checkConfigAsync(validateSync); -var isKeyInObject = checkKeyInObject; +var isObjectHasKey = checkKeyInObject; var isContract = checkIsContract; var createQueryStr$1 = createQueryStr; @@ -6577,7 +6577,7 @@ var JsonqlWsEvt = /*@__PURE__*/(function (NBEventService) { // This is ported back from ws-server and it will get use in the server / client side function extractSocketPart(contract) { - if (isKeyInObject(contract, 'socket')) { + if (isObjectHasKey(contract, 'socket')) { return contract.socket; } return contract; @@ -6915,7 +6915,7 @@ var keys$1 = [ WS_REPLY_TYPE, WS_EVT_NAME, WS_DATA_NAME ]; var isWsReply = function (payload) { var data = payload.data; if (data) { - var result = keys$1.filter(function (key) { return isKeyInObject(data, key); }); + var result = keys$1.filter(function (key) { return isObjectHasKey(data, key); }); return (result.length === keys$1.length) ? data : false; } return false; @@ -7441,10 +7441,10 @@ function actionCall(ee, namespace, resolverName, args) { * @return {void} nothing */ function respondHandler(data, resolver, rejecter) { - if (isKeyInObject(data, 'error')) { + if (isObjectHasKey(data, 'error')) { debugFn$7('rejecter called', data.error); rejecter(data.error); - } else if (isKeyInObject(data, 'data')) { + } else if (isObjectHasKey(data, 'data')) { debugFn$7('resolver called', data.data); resolver(data.data); } else { diff --git a/packages/ws-base/src/server/share/helpers.js b/packages/ws-base/src/server/share/helpers.js index 05d84083b8c3c69d33317e88fd21639fcbc78bbd..c494305732b0040681e0691cda802ae1ce756f41 100644 --- a/packages/ws-base/src/server/share/helpers.js +++ b/packages/ws-base/src/server/share/helpers.js @@ -10,7 +10,7 @@ const { } = require('jsonql-constants') const { isString, - isKeyInObject + isObjectHasKey } = require('jsonql-params-validator') const { JsonqlError, @@ -35,7 +35,7 @@ const isWsReply = payload => { const json = isString(payload) ? JSON.parse(payload) : payload; const { data } = json; if (data) { - let result = keys.filter(key => isKeyInObject(data, key)) + let result = keys.filter(key => isObjectHasKey(data, key)) return (result.length === keys.length) ? data : false; } return false; diff --git a/packages/ws-client/package.json b/packages/ws-client/package.json index 59c67b94ccc153ce0c454c510b42fd0ef62a2010..343b6fe21c5844677db77198102dbeb2855f3fd4 100755 --- a/packages/ws-client/package.json +++ b/packages/ws-client/package.json @@ -1,6 +1,6 @@ { "name": "jsonql-ws-client", - "version": "1.1.3", + "version": "1.3.3", "description": "This is the Web Socket client base library for Node and Browser. Not for direct use.", "main": "main.js", "module": "index.js", @@ -13,12 +13,11 @@ "scripts": { "test": "ava --verbose", "prepare": "npm run test", - "test:evt": "DEBUG=jsonql-ws-* ava --verbose ./tests/event.test.js", + "test:evt": "ava --verbose ./tests/event.test.js", "test:node": "DEBUG=jsonql-ws-* ava --verbose ./tests/test-node.test.js", "test:opt": "DEBUG=jsonql-ws-* ava --verbose ./tests/options.test.js", "contract": "node ./node_modules/jsonql-contract/cmd.js configFile ./tests/fixtures/contract-config.js", - "contract:auth": "node ./node_modules/jsonql-contract/cmd.js configFile ./tests/fixtures/contract-config-auth.js", - "test:evt": "DEBUG=jsonql-ws-* ava ./tests/event.test.js" + "contract:auth": "node ./node_modules/jsonql-contract/cmd.js configFile ./tests/fixtures/contract-config-auth.js" }, "keywords": [ "jsonql", @@ -50,11 +49,11 @@ "node": ">=8" }, "dependencies": { - "jsonql-constants": "^1.8.7", + "jsonql-constants": "^1.8.8", "jsonql-errors": "^1.1.3", "jsonql-jwt": "^1.3.3", "jsonql-params-validator": "^1.4.11", - "jsonql-utils": "^0.7.8", + "jsonql-utils": "^0.8.1", "nb-event-service": "^1.8.5" }, "devDependencies": { diff --git a/packages/ws-client/src/core/action-call.js b/packages/ws-client/src/core/action-call.js index 9000d9168296e9c864a202b6dda49fb7447284fc..8e474e9e2b4e05dbdaaabd9bebd76872302ec51e 100644 --- a/packages/ws-client/src/core/action-call.js +++ b/packages/ws-client/src/core/action-call.js @@ -1,5 +1,5 @@ // the actual trigger call method -import { ON_RESULT_PROP_NAME, EMIT_REPLY_TYPE } from 'jsonql-constants' +import { ON_RESULT_PROP_NAME, RESULT_PROP_NAME, EMIT_REPLY_TYPE } from 'jsonql-constants' import { createEvt, toArray } from 'jsonql-utils/module' import { respondHandler } from './respond-handler' import { getDebug } from '../utils' @@ -10,11 +10,13 @@ const debugFn = getDebug(`action-call`) * @param {object} ee EventEmitter * @param {string} namespace where this belongs * @param {string} resolverName resolver + * @param {boolean} useCallbackStyle use on or not * @param {array} args arguments * @return {void} nothing */ -export function actionCall(ee, namespace, resolverName, args = []) { +export function actionCall(ee, namespace, resolverName, useCallbackStyle, args = []) { const eventName = createEvt(namespace, EMIT_REPLY_TYPE) + const RESULT_SUBFIX = useCallbackStyle ? RESULT_PROP_NAME : ON_RESULT_PROP_NAME debugFn(`actionCall: ${eventName} --> ${resolverName}`, args) ee.$trigger(eventName, [resolverName, toArray(args)]) // once we trigger there is nothing return from the resolve @@ -22,7 +24,7 @@ export function actionCall(ee, namespace, resolverName, args = []) { // then we need to listen to the event callback here as well return new Promise((resolver, rejecter) => { ee.$on( - createEvt(namespace, resolverName, ON_RESULT_PROP_NAME), + createEvt(namespace, resolverName, RESULT_SUBFIX), function actionCallResultHandler(result) { debugFn(`got the first result`, result) respondHandler(result, resolver, rejecter) diff --git a/packages/ws-client/src/core/generator.js b/packages/ws-client/src/core/generator.js index 5406a29be05c8362a0622738821c7c565022ca3f..4b9479888399797603f6c6ab82e602725d41470b 100644 --- a/packages/ws-client/src/core/generator.js +++ b/packages/ws-client/src/core/generator.js @@ -7,9 +7,10 @@ import { createNamespaceErrorHandler, createOnReadyhandler, createOnLoginhandler, - createAuthMethods + createCallbackHandler } from './resolver-methods' -import { getDebug } from '../utils' +import { createAuthMethods } from './setup-auth-methods' +import { getDebug, injectToFn, chainProcessPromises } from '../utils' const debugFn = getDebug('generator') /** @@ -21,23 +22,32 @@ const debugFn = getDebug('generator') */ function getMappedObj(opts, nspMap, ee) { let obj = {}; + // let resolverNames = []; const { nspSet } = nspMap; + const { useCallbackStyle } = opts; // @1.2.1 for (let namespace in nspSet) { let list = nspSet[namespace] for (let resolverName in list) { + // resolverNames.push(resolverName) let params = list[resolverName] - let fn = createResolver(ee, namespace, resolverName, params) - obj[resolverName] = setupResolver(namespace, resolverName, params, fn, ee) + let fn = createResolver(ee, namespace, resolverName, params, useCallbackStyle) + // this should set as a getter therefore can not be overwrite by accident + // obj[resolverName] = setupResolver(namespace, resolverName, params, fn, ee) + obj = injectToFn(obj, resolverName, setupResolver(namespace, resolverName, params, fn, ee, useCallbackStyle)) } } // move this two method down to helpers + // we want these methods visible in debug or console.log obj.devHelpers = { // this is a helper method for the developer to know the namespace inside getNsp: () => Object.keys(nspSet), // simple get version trick getVer: () => opts.version || 'NOT SET' + // not really necessary because the dev can query the contract + // getResolverNames: () => resolverNames } // resolve the obj to start the chain + // chain the result to allow the chain processing return Promise.resolve(obj) } @@ -51,6 +61,23 @@ function getMappedObj(opts, nspMap, ee) { */ export function generator(opts, nspMap, ee) { const { nspSet } = nspMap + const { useCallbackStyle } = opts; + let args = [getMappedObj] + if (useCallbackStyle) { + args.push(obj => createCallbackHandler(obj, ee, nspSet, opts)) + } else { + args.push( + obj1 => createNamespaceErrorHandler(obj1, ee, nspSet), + obj2 => createOnReadyhandler(obj2, ee, nspSet), + obj3 => createOnLoginhandler(obj3, ee, opts), + ) + } + args.push(obj4 => createAuthMethods(obj4, ee, opts)) + // run it + const executor = Reflect.apply(chainProcessPromises, null, args) + return executor(opts, nspMap, ee) + + /* return getMappedObj(opts, nspMap, ee) // add error handler .then(obj1 => createNamespaceErrorHandler(obj1, ee, nspSet)) @@ -60,4 +87,5 @@ export function generator(opts, nspMap, ee) { .then(obj3 => createOnLoginhandler(obj3, ee, opts)) // Auth related methods -- this is optional .then(obj4 => createAuthMethods(obj4, ee, opts)) + */ } diff --git a/packages/ws-client/src/core/resolver-methods.js b/packages/ws-client/src/core/resolver-methods.js index 648e130717a4a117df7bc63407ed33a34365b02f..e716479cc4814885a08e67c05a411508240f0966 100644 --- a/packages/ws-client/src/core/resolver-methods.js +++ b/packages/ws-client/src/core/resolver-methods.js @@ -7,37 +7,16 @@ // callable api for the developer to setup their front end // the only thing is - when they call they might get an error or // NOT_LOGIN_IN and they can react to this error accordingly +import { JsonqlError, JsonqlValidationError, finalCatch } from 'jsonql-errors' +import { validateAsync } from 'jsonql-params-validator' import { - JsonqlResolverNotFoundError, - JsonqlValidationError, - JsonqlError, - finalCatch -} from 'jsonql-errors' -import { - validateAsync, - isKeyInObject, - isString -} from 'jsonql-params-validator' -import { - ERROR_TYPE, - DATA_KEY, - ERROR_KEY, + ERROR_PROP_NAME, + LOGIN_PROP_NAME, + READY_PROP_NAME, ON_ERROR_PROP_NAME, - ON_MESSAGE_PROP_NAME, - ON_RESULT_PROP_NAME, ON_LOGIN_PROP_NAME, - SEND_MSG_PROP_NAME, - LOGIN_EVENT_NAME, - ON_READY_PROP_NAME, - LOGOUT_EVENT_NAME + ON_READY_PROP_NAME } from 'jsonql-constants' -import { - EMIT_EVT, - NOT_ALLOW_OP, - UNKNOWN_RESULT, - MY_NAMESPACE, - EXPECT_FUNC_ERR -} from '../options/constants' import { actionCall } from './action-call' import { getDebug, @@ -45,8 +24,12 @@ import { toArray, injectToFn, objDefineProps, - isFunc + chainFns, + isString, + isFunc, + isObjectHasKey } from '../utils' +import { CB_FN_NAME } from '../options/constants' const debugFn = getDebug('resolver-methods') /** @@ -55,13 +38,14 @@ const debugFn = getDebug('resolver-methods') * @param {string} namespace this resolver end point * @param {string} resolverName name of resolver as event name * @param {object} params from contract + * @param {boolean} useCallbackStyle on style or not * @return {function} resolver */ -export function createResolver(ee, namespace, resolverName, params) { +export function createResolver(ee, namespace, resolverName, params, useCallbackStyle) { // note we pass the new withResult=true option return function(...args) { return validateAsync(args, params.params, true) - .then(_args => actionCall(ee, namespace, resolverName, _args)) + .then(_args => actionCall(ee, namespace, resolverName, useCallbackStyle, _args)) .catch(finalCatch) } } @@ -72,13 +56,14 @@ export function createResolver(ee, namespace, resolverName, params) { * @param {object} obj the client itself * @param {object} ee Event Emitter * @param {object} nspSet namespace keys + * @param {boolean} useCallbackStyle use cb or not * @return {object} obj with onError prop */ export function createNamespaceErrorHandler(obj, ee, nspSet) { // using the onError as name // @TODO we should follow the convention earlier // make this a setter for the obj itself - return objDefineProps(obj, ON_ERROR_PROP_NAME, function(namespaceErrorHandler) { + return objDefineProps(obj, ON_ERROR_PROP_NAME, function namespaceErrorCallbackHandler(namespaceErrorHandler) { if (isFunc(namespaceErrorHandler)) { // please note ON_ERROR_PROP_NAME can add multiple listners for (let namespace in nspSet) { @@ -98,7 +83,7 @@ export function createNamespaceErrorHandler(obj, ee, nspSet) { * @return {object} obj with onReady prop */ export function createOnReadyhandler(obj, ee, nspSet) { - return objDefineProps(obj, ON_READY_PROP_NAME, function(onReadyCallback) { + return objDefineProps(obj, ON_READY_PROP_NAME, function onReadyCallbackHandler(onReadyCallback) { if (isFunc(onReadyCallback)) { // reduce it down to just one flat level ee.$on(ON_READY_PROP_NAME, onReadyCallback) @@ -116,7 +101,7 @@ export function createOnReadyhandler(obj, ee, nspSet) { */ export function createOnLoginhandler(obj, ee, opts) { if (opts.enableAuth) { - return objDefineProps(obj, ON_LOGIN_PROP_NAME, function(onLoginCallback) { + return objDefineProps(obj, ON_LOGIN_PROP_NAME, function onLoginCallbackHandler(onLoginCallback) { if (isFunc(onLoginCallback)) { // only one callback can registered with it, TBC ee.$only(ON_LOGIN_PROP_NAME, onLoginCallback) @@ -128,27 +113,34 @@ export function createOnLoginhandler(obj, ee, opts) { } /** - * Create auth related methods - * @param {object} obj the client itself - * @param {object} ee Event Emitter + * when useCallbackStyle=true use this instead of the above method + * @param {object} obj the base object to attach to + * @param {object} ee EventEmitter + * @param {object} nspSet the map * @param {object} opts configuration - * @return {object} obj with auth methods if any + * @return {object} obj */ -export function createAuthMethods(obj, ee, opts) { - if (opts.enableAuth) { - // create an additonal login handler - // we require the token - obj[opts.loginHandlerName] = (token) => { - debugFn(opts.loginHandlerName, token) - if (token && isString(token)) { - return ee.$trigger(LOGIN_EVENT_NAME, [token]) +export function createCallbackHandler(obj, ee, nspSet, opts) { + return injectToFn(obj, CB_FN_NAME, function onHandler(evtName, callback) { + if (isString(evtName) && isFunc(callback)) { + switch (evtName) { + case ERROR_PROP_NAME: + for (let namespace in nspSet) { + // this one is very tricky, we need to make sure the trigger is calling + // with the namespace as well as the error + ee.$on(createEvt(namespace, ERROR_PROP_NAME), callback) + } + break; + case LOGIN_PROP_NAME: + ee.$only(LOGIN_PROP_NAME, callback) + break; + case READY_PROP_NAME: + ee.$on(READY_PROP_NAME, callback) + break; + default: + ee.$trigger(ERROR_PROP_NAME, new JsonqlError(CB_FN_NAME, `Unknown event name ${evtName}!`)) } - throw new JsonqlValidationError(opts.loginHandlerName) - } - // logout event handler - obj[opts.logoutHandlerName] = (...args) => { - ee.$trigger(LOGOUT_EVENT_NAME, args) } - } - return obj; + // @TODO need to issue another error here! + }) } diff --git a/packages/ws-client/src/core/respond-handler.js b/packages/ws-client/src/core/respond-handler.js index 4b793285b3b3957d3c38bbdb5fc3de96368e2ff3..aff9443c463e66aed91654b0ba26e994cd151335 100644 --- a/packages/ws-client/src/core/respond-handler.js +++ b/packages/ws-client/src/core/respond-handler.js @@ -1,8 +1,7 @@ // breaking it up further to share between methods import { DATA_KEY, ERROR_KEY } from 'jsonql-constants' import { UNKNOWN_RESULT } from '../options/constants' -import { isKeyInObject } from 'jsonql-utils/module' -import { getDebug } from '../utils' +import { getDebug, isObjectHasKey } from '../utils' const debugFn = getDebug('respondHandler') /** * break out to use in different places to handle the return from server @@ -12,10 +11,10 @@ const debugFn = getDebug('respondHandler') * @return {void} nothing */ export function respondHandler(data, resolver, rejecter) { - if (isKeyInObject(data, ERROR_KEY)) { + if (isObjectHasKey(data, ERROR_KEY)) { debugFn('-- rejecter called --', data[ERROR_KEY]) rejecter(data[ERROR_KEY]) - } else if (isKeyInObject(data, DATA_KEY)) { + } else if (isObjectHasKey(data, DATA_KEY)) { debugFn('-- resolver called --', data[DATA_KEY]) resolver(data[DATA_KEY]) } else { diff --git a/packages/ws-client/src/core/setup-auth-methods.js b/packages/ws-client/src/core/setup-auth-methods.js new file mode 100644 index 0000000000000000000000000000000000000000..e15af8c65a879fc196d0596f6c74ed1fc4ceec6b --- /dev/null +++ b/packages/ws-client/src/core/setup-auth-methods.js @@ -0,0 +1,49 @@ +// take out from the resolver-methods +import { LOGIN_EVENT_NAME, LOGOUT_EVENT_NAME } from 'jsonql-constants' +import { JsonqlValidationError } from 'jsonql-errors' +import { injectToFn, chainFns, isString } from '../utils' +/** + * break out from createAuthMethods to allow chaining call + * @param {object} obj the main client object + * @param {object} ee event emitter + * @param {object} opts configuration + * @return {array} modified input + */ +const setupLoginHandler = (obj, ee, opts) => [ + injectToFn(obj, opts.loginHandlerName, function loginHandler(token) { + if (token && isString(token)) { + return ee.$trigger(LOGIN_EVENT_NAME, [token]) + } + // should trigger a global error instead @TODO + throw new JsonqlValidationError(opts.loginHandlerName, `Unexpected token ${token}`) + }), + ee, + opts +] + +/** + * break out from createAuthMethods to allow chaining call - final in chain + * @param {object} obj the main client object + * @param {object} ee event emitter + * @param {object} opts configuration + * @return {object} the modified obj + */ +const setupLogoutHandler = (obj, ee, opts) => ( + injectToFn(obj, opts.logoutHandlerName, function logoutHandler(...args) { + ee.$trigger(LOGOUT_EVENT_NAME, args) + }) +) + +/** + * Create auth related methods + * @param {object} obj the client itself + * @param {object} ee Event Emitter + * @param {object} opts configuration + * @return {object} obj with auth methods if any + */ +export function createAuthMethods(obj, ee, opts) { + if (opts.enableAuth) { + return chainFns(setupLoginHandler, setupLogoutHandler)(obj, ee, opts) + } + return obj; +} diff --git a/packages/ws-client/src/core/setup-callback-api.js b/packages/ws-client/src/core/setup-callback-api.js new file mode 100644 index 0000000000000000000000000000000000000000..e26c7f7cd1717deb33b1818ec0a6e55789a9580c --- /dev/null +++ b/packages/ws-client/src/core/setup-callback-api.js @@ -0,0 +1,75 @@ +// @TODO using the obj.on syntax to do the same thing +/* +The new callback style `useCallbackStyle` set to true then use this one +client.resolverName.on(EVENT_NAME, cb) +*/ +import { JsonqlValidationError, JsonqlError, finalCatch } from 'jsonql-errors' +import { + ERROR_TYPE, + DATA_KEY, + ERROR_KEY, + ERROR_PROP_NAME, + MESSAGE_PROP_NAME, + RESULT_PROP_NAME +} from 'jsonql-constants' +import { CB_FN_NAME } from '../options/constants' + +import { respondHandler } from './respond-handler' +import { getDebug, chainFns, injectToFn, createEvt, toArray, isFunc, isString } from '../utils' +const debugFn = getDebug('setup-resolver') + +/** + * Add extra property to the resolver via the getter + * @param {function} fn the resolver itself + * @param {object} ee event emitter + * @param {string} namespace the namespace this belongs to + * @param {string} resolverName resolver namee + * @param {object} params from the contract + * @return {array} same as what goes in + */ +export function setupCallbackApi(fn, ee, namespace, resolverName, params) { + return [ + injectToFn(fn, CB_FN_NAME, function(evtName, callback) { + if (isString(evtName) && isFunc(callback)) { + switch(evtName) { + case RESULT_PROP_NAME: + ee.$on( + createEvt(namespace, resolverName, ON_RESULT_PROP_NAME), + function resultHandler(result) { + respondHandler(result, callback, (error) => { + ee.$trigger(createEvt(namespace, resolverName, ON_ERROR_PROP_NAME), error) + }) + } + ) + break; + // register the handler for this message event + case MESSAGE_PROP_NAME: + ee.$only( + createEvt(namespace, resolverName, ON_MESSAGE_PROP_NAME), + function onMessageCallback(args) { + respondHandler(args, callback, (error) => { + ee.$trigger(createEvt(namespace, resolverName, ON_ERROR_PROP_NAME), error) + }) + } + ) + break; + case READY_PROP_NAME: + ee.$only( + createEvt(namespace, resolverName, ON_ERROR_PROP_NAME), + callback + ) + break; + default: + ee.$trigger( + createEvt(namespace, resolverName, ON_ERROR_PROP_NAME), + new JsonqlError(resolverName, `Unknown event name ${evtName}!`) + ) + } + } + }), + ee, + namespace, + resolverName, + params + ] +} diff --git a/packages/ws-client/src/core/setup-resolver.js b/packages/ws-client/src/core/setup-resolver.js index f3f895e5a720a2cb72b9ea5fccf2814975750205..6c476dd65c654ef4f84df1bf09c70b60c9d562a2 100644 --- a/packages/ws-client/src/core/setup-resolver.js +++ b/packages/ws-client/src/core/setup-resolver.js @@ -1,44 +1,38 @@ // break up the original setup resolver method here +import { JsonqlValidationError, finalCatch } from 'jsonql-errors' import { ERROR_TYPE, DATA_KEY, ERROR_KEY, ON_ERROR_PROP_NAME, ON_MESSAGE_PROP_NAME, - ON_RESULT_PROP_NAME, - SEND_MSG_PROP_NAME, - LOGIN_EVENT_NAME, - ON_READY_PROP_NAME, - LOGOUT_EVENT_NAME + ON_RESULT_PROP_NAME } from 'jsonql-constants' -import { - EMIT_EVT, - NOT_ALLOW_OP, - UNKNOWN_RESULT, - MY_NAMESPACE, - EXPECT_FUNC_ERR -} from '../options/constants' -import { validateAsync } from 'jsonql-params-validator' -import { chainFns, objDefineProps, injectToFn, createEvt, toArray } from 'jsonql-utils/module' -import { actionCall } from './action-call' +import { MY_NAMESPACE } from '../options/constants' +import { chainFns, objDefineProps, injectToFn, createEvt, toArray, isFunc } from 'jsonql-utils/module' + import { respondHandler } from './respond-handler' -import { getDebug, isFunc } from '../utils' +import { getDebug } from '../utils' const debugFn = getDebug('setup-resolver') +import { setupSend } from './setup-send' +import { setupCallbackApi } from './setup-callback-api' + /** * The first one in the chain * @return {array} */ -const setupNamespace = (fn, ee, namespace, resolverName, params) => [ +const setupNamespace = (fn, ee, namespace, resolverName, params, useCallbackStyle) => [ injectToFn(fn, MY_NAMESPACE, namespace), ee, namespace, resolverName, - params + params, + useCallbackStyle ] // onResult handler -const setupOnResult = (fn, ee, namespace, resolverName, params) => [ +const setupOnResult = (fn, ee, namespace, resolverName, params, useCallbackStyle) => [ objDefineProps(fn, ON_RESULT_PROP_NAME, function(resultCallback) { if (isFunc(resultCallback)) { ee.$on( @@ -54,12 +48,13 @@ const setupOnResult = (fn, ee, namespace, resolverName, params) => [ ee, namespace, resolverName, - params + params, + useCallbackStyle ] // we do need to add the send prop back because it's the only way to deal with // bi-directional data stream -const setupOnMessage = (fn, ee, namespace, resolverName, params) => [ +const setupOnMessage = (fn, ee, namespace, resolverName, params, useCallbackStyle) => [ objDefineProps(fn, ON_MESSAGE_PROP_NAME, function(messageCallback) { // we expect this to be a function if (isFunc(messageCallback)) { @@ -76,11 +71,12 @@ const setupOnMessage = (fn, ee, namespace, resolverName, params) => [ ee, namespace, resolverName, - params + params, + useCallbackStyle ] // add an ON_ERROR_PROP_NAME handler -const setupOnError = (fn, ee, namespace, resolverName, params) => [ +const setupOnError = (fn, ee, namespace, resolverName, params, useCallbackStyle) => [ objDefineProps(fn, ON_ERROR_PROP_NAME, function(resolverErrorHandler) { if (isFunc(resolverErrorHandler)) { // please note ON_ERROR_PROP_NAME can add multiple listners @@ -90,40 +86,10 @@ const setupOnError = (fn, ee, namespace, resolverName, params) => [ ee, namespace, resolverName, - params + params, + useCallbackStyle ] -// pairing with the server vesrion SEND_MSG_PROP_NAME -// last of the chain so only return the resolver (fn) -const setupSend = (fn, ee, namespace, resolverName, params) => ( - objDefineProps(fn, SEND_MSG_PROP_NAME, function(messagePayload) { - debugFn('got payload for', messagePayload) - // @NOTE change from sync interface to async @ 1.0.0 - // this way we will able to catch all the error(s) - validateAsync(toArray(messagePayload), params.params, true) - .then(result => { - // here is the different we don't throw error instead we trigger onError - if (result[ERROR_KEY] && result[ERROR_KEY].length) { - debugFn(`got ERROR_KEY`, result[ERROR_KEY]) - ee.$call( - createEvt(namespace, resolverName, ON_ERROR_PROP_NAME), - [JsonqlValidationError(resolverName, result[ERROR_KEY])] - ) - } else { - // there is no return only an action call - actionCall(ee, namespace, resolverName, messagePayload) - } - }) - .catch(err => { - debugFn(`error after validateAsync`, err) - ee.$call( - createEvt(namespace, resolverName, ON_ERROR_PROP_NAME), - [JsonqlValidationError(resolverName, err)] - ) - }) - }) -) - /** * Add extra property to the resolver * @param {string} namespace where this belongs @@ -131,12 +97,16 @@ const setupSend = (fn, ee, namespace, resolverName, params) => ( * @param {object} params from contract * @param {function} fn resolver function * @param {object} ee EventEmitter + * @param {boolean} useCallbackStyle new callback style * @return {function} resolver */ -export function setupResolver(namespace, resolverName, params, fn, ee) { +export function setupResolver(namespace, resolverName, params, fn, ee, useCallbackStyle) { // also need to setup a getter to get back the namespace of this resolver - const args = [fn, ee, namespace, resolverName, params] - const exe = chainFns(setupNamespace, setupOnResult, setupOnMessage, setupOnError, setupSend) + let args = [setupNamespace] + useCallbackStyle ? args.push(setupCallbackApi) : args.push(setupOnResult, setupOnMessage, setupOnError) + args.push(setupSend) + // get the executor + const executor = Reflect.apply(chainFns, null, args) // debug(exe) - return Reflect.apply(exe, null, args) + return Reflect.apply(executor, null, [fn, ee, namespace, resolverName, params, useCallbackStyle]) } diff --git a/packages/ws-client/src/core/setup-send.js b/packages/ws-client/src/core/setup-send.js new file mode 100644 index 0000000000000000000000000000000000000000..ec5f4adff72a451e9a462a14fa7ebb9c3dfb8f6c --- /dev/null +++ b/packages/ws-client/src/core/setup-send.js @@ -0,0 +1,52 @@ +import { JsonqlValidationError, finalCatch } from 'jsonql-errors' +import { + ERROR_TYPE, + DATA_KEY, + ERROR_KEY, + ON_ERROR_PROP_NAME, + ERROR_PROP_NAME, + SEND_MSG_PROP_NAME +} from 'jsonql-constants' +import { validateAsync } from 'jsonql-params-validator' +import { chainFns, objDefineProps, injectToFn, createEvt, toArray, isFunc } from 'jsonql-utils/module' +import { actionCall } from './action-call' +import { getDebug } from '../utils' +const debugFn = getDebug('setup-send') + +// pairing with the server vesrion SEND_MSG_PROP_NAME +// last of the chain so only return the resolver (fn) +export const setupSend = (fn, ee, namespace, resolverName, params, useCallbackStyle) => ( + objDefineProps(fn, SEND_MSG_PROP_NAME, function sendSetter(messagePayload) { + const ERROR_SUBFIX = useCallbackStyle ? ERROR_PROP_NAME : ON_ERROR_PROP_NAME + debugFn('got payload for', messagePayload) + // @NOTE change from sync interface to async @ 1.0.0 + // this way we will able to catch all the error(s) + validateAsync(toArray(messagePayload), params.params, true) + .then(result => { + // here is the different we don't throw error instead we trigger onError + if (result[ERROR_KEY] && result[ERROR_KEY].length) { + debugFn(`got ERROR_KEY`, result[ERROR_KEY]) + ee.$call( + createEvt(namespace, resolverName, ERROR_SUBFIX), + [new JsonqlValidationError(resolverName, result[ERROR_KEY])] + ) + } else { + // return it just for the catch to work - if any + return actionCall(ee, namespace, resolverName, useCallbackStyle, messagePayload) + } + }) + .catch(err => { + debugFn(`error after validateAsync`, err) + ee.$call( + createEvt(namespace, resolverName, ERROR_SUBFIX), + [new JsonqlValidationError(resolverName, err)] + ) + }) + }, function sendGetter() { // add in 1.1.4 + return function sendGetterAction(...args) { + return validateAsync(args, params.params, true) + .then(_args => actionCall(ee, namespace, resolverName, useCallbackStyle, _args)) + .catch(finalCatch) + } + }) +) diff --git a/packages/ws-client/src/options/constants.js b/packages/ws-client/src/options/constants.js index 7d7478045df4f729975b6b3cddc82363bd37461e..34a9b5fc6f0e0189b485d5f9bc7df869e5381eba 100644 --- a/packages/ws-client/src/options/constants.js +++ b/packages/ws-client/src/options/constants.js @@ -21,8 +21,6 @@ const MISSING_PROP_ERR = 'Missing property in contract!'; const UNKNOWN_CLIENT_ERR = 'Unknown client type!'; -const EXPECT_FUNC_ERR = `Expect a function!` - const EMIT_EVT = EMIT_REPLY_TYPE; const NAMESPACE_KEY = 'namespaceMap'; @@ -33,6 +31,8 @@ const NOT_ALLOW_OP = 'This operation is not allow!'; const MY_NAMESPACE = 'myNamespace' +const CB_FN_NAME = 'on' + export { SOCKET_IO, WS, @@ -48,5 +48,5 @@ export { UNKNOWN_RESULT, NOT_ALLOW_OP, MY_NAMESPACE, - EXPECT_FUNC_ERR + CB_FN_NAME } diff --git a/packages/ws-client/src/options/defaults.js b/packages/ws-client/src/options/defaults.js index 66f78f0d77027050c7a4e592178453ad63d28412..f4a309232af9a70e950d1e1f06a9221739047c6a 100644 --- a/packages/ws-client/src/options/defaults.js +++ b/packages/ws-client/src/options/defaults.js @@ -10,13 +10,19 @@ import { CHECKER_KEY, JSONQL_PATH, ISSUER_NAME, - LOGOUT_NAME + LOGOUT_NAME, + IO_ROUNDTRIP_LOGIN, + IO_HANDSHAKE_LOGIN } from 'jsonql-constants' import { AVAILABLE_SERVERS } from './constants' +const AVAILABLE_METHODS = [IO_ROUNDTRIP_LOGIN, IO_HANDSHAKE_LOGIN] const defaultOptions = { + useCallbackStyle: createConfig(false, [BOOLEAN_TYPE]), loginHandlerName: createConfig(ISSUER_NAME, [STRING_TYPE]), logoutHandlerName: createConfig(LOGOUT_NAME, [STRING_TYPE]), + // this is for socket.io + loginMethod: createConfig(IO_HANDSHAKE_LOGIN, [STRING_TYPE], {[ENUM_KEY]: AVAILABLE_METHODS}), // we will use this for determine the socket.io client type as well useJwt: createConfig(true, [BOOLEAN_TYPE, STRING_TYPE]), hostname: createConfig(false, [STRING_TYPE]), diff --git a/packages/ws-client/src/share/client-event-handler.js b/packages/ws-client/src/share/client-event-handler.js index 703f32cd4214c2b89a1abd7170963574fd76d621..4fc1777433172b7327f86b8f93ee36123ac655d2 100644 --- a/packages/ws-client/src/share/client-event-handler.js +++ b/packages/ws-client/src/share/client-event-handler.js @@ -4,18 +4,16 @@ // @TODO port what is in the ws-main-handler // because all the client side call are via the ee // and that makes it re-usable between different client setup +import { EMIT_EVT, SOCKET_IO, WS } from '../options/constants' import { - ON_MESSAGE_PROP_NAME, - ON_RESULT_PROP_NAME, - EMIT_EVT, - SOCKET_IO, - WS -} from '../options/constants' -import { + ERROR_PROP_NAME, + RESULT_PROP_NAME, LOGIN_EVENT_NAME, LOGOUT_EVENT_NAME, NOT_LOGIN_ERR_MSG, - ON_ERROR_PROP_NAME + ON_ERROR_PROP_NAME, + ON_RESULT_PROP_NAME, + ON_MESSAGE_PROP_NAME, } from 'jsonql-constants' import { getDebug, createEvt, clearMainEmitEvt } from '../utils' @@ -26,9 +24,13 @@ const debugFn = getDebug('client-event-handler') * A fake ee handler * @param {string} namespace nsp * @param {object} ee EventEmitter + * @param {object} opts configuration * @return {void} */ -const notLoginWsHandler = (namespace, ee) => { +const notLoginWsHandler = (namespace, ee, opts) => { + const { useCallbackStyle } = opts; + const ERROR_SUBFIX = useCallbackStyle ? ERROR_PROP_NAME : ON_ERROR_PROP_NAME; + const RESULT_SUBFIX = useCallbackStyle ? RESULT_PROP_NAME : ON_RESULT_PROP_NAME; ee.$only( createEvt(namespace, EMIT_EVT), function notLoginHandlerCallback(resolverName, args) { @@ -38,9 +40,9 @@ const notLoginWsHandler = (namespace, ee) => { } // It should just throw error here and should not call the result // because that's channel for handling normal event not the fake one - ee.$call(createEvt(namespace, resolverName, ON_ERROR_PROP_NAME), [error]) + ee.$call(createEvt(namespace, resolverName, ERROR_SUBFIX), [error]) // also trigger the result handler, but wrap inside the error key - ee.$call(createEvt(namespace, resolverName, ON_RESULT_PROP_NAME), [{ error }]) + ee.$call(createEvt(namespace, resolverName, RESULT_SUBFIX), [{ error }]) } ) } @@ -77,16 +79,15 @@ export function clientEventHandler(opts, nspMap, ee, bindWsHandler, namespaces, isPrivate = privateNamespace === namespace; if (nsps[namespace]) { debugFn('call bindWsHandler', isPrivate, namespace) - let args = [namespace, nsps[namespace], ee, isPrivate] + let args = [namespace, nsps[namespace], ee, isPrivate, opts] if (opts.serverType === SOCKET_IO) { let { nspSet } = nspMap; args.push(nspSet[namespace]) - args.push(opts) } Reflect.apply(bindWsHandler, null, args) } else { // a dummy placeholder - notLoginWsHandler(namespace, ee) + notLoginWsHandler(namespace, ee, opts) } }) // this will be available regardless enableAuth @@ -102,7 +103,7 @@ export function clientEventHandler(opts, nspMap, ee, bindWsHandler, namespaces, // clear out the nsp nsps[namespace] = false; // add a NOT LOGIN error if call - notLoginWsHandler(namespace, ee) + notLoginWsHandler(namespace, ee, opts) }) }) } diff --git a/packages/ws-client/src/share/trigger-namespaces-on-error.js b/packages/ws-client/src/share/trigger-namespaces-on-error.js index 50fb90b4819ebd87a73092644c1c2eff34447d06..907fb415863dcbc40bc4910b8f3b5178a7a3f566 100644 --- a/packages/ws-client/src/share/trigger-namespaces-on-error.js +++ b/packages/ws-client/src/share/trigger-namespaces-on-error.js @@ -1,15 +1,19 @@ // this use by client-event-handler -import { ON_ERROR_PROP_NAME } from 'jsonql-constants' +import { ON_ERROR_PROP_NAME, ERROR_PROP_NAME } from 'jsonql-constants' import { createEvt } from 'jsonql-utils' + /** * trigger errors on all the namespace onError handler * @param {object} ee Event Emitter * @param {array} namespaces nsps string * @param {string} message optional + * @param {object} opts configuration * @return {void} */ -export function triggerNamespacesOnError(ee, namespaces, message) { +export function triggerNamespacesOnError(ee, namespaces, message, opts = {}) { + const { useCallbackStyle } = opts; + const ERROR_SUBFIX = useCallbackStyle ? ERROR_PROP_NAME : ON_ERROR_PROP_NAME; namespaces.forEach( namespace => { - ee.$call(createEvt(namespace, ON_ERROR_PROP_NAME), [{ message, namespace }]) + ee.$call(createEvt(namespace, ERROR_SUBFIX), [{ message, namespace }]) }) } diff --git a/packages/ws-client/src/utils/helpers.js b/packages/ws-client/src/utils/helpers.js index 2f35ec67baa04cdbb8d362b626de95b03b0e34da..44c7a64fb7dcd3739bad00d3cd176feba062db94 100644 --- a/packages/ws-client/src/utils/helpers.js +++ b/packages/ws-client/src/utils/helpers.js @@ -1,6 +1,5 @@ // group all the small functions here import { JS_WS_SOCKET_IO_NAME, JS_WS_NAME, EMIT_REPLY_TYPE } from 'jsonql-constants' -import { EXPECT_FUNC_ERR } from '../options/constants' import { toArray, createEvt } from 'jsonql-utils/module' // import { getDebug } from './get-debug'; // const debug = getDebug('helpers') @@ -57,15 +56,3 @@ export const disconnect = (nsps, type = JS_WS_SOCKET_IO_NAME) => { console.error('Disconnect call failed', e) } } - -/** - * Simple check if the prop is function - * @param {*} prop input - * @return {boolean} true on success - */ -export const isFunc = prop => { - if (typeof prop === 'function') { - return true; - } - console.error(EXPECT_FUNC_ERR) -} diff --git a/packages/ws-client/src/utils/index.js b/packages/ws-client/src/utils/index.js index a2e829f240a74790451aa1842f1b30521df45b7e..4a3ce52109a5acd2c62d4011de23689d2fabb182 100644 --- a/packages/ws-client/src/utils/index.js +++ b/packages/ws-client/src/utils/index.js @@ -1,7 +1,17 @@ // export the util methods -import { isArray } from 'jsonql-params-validator' +import { isArray, isString } from 'jsonql-params-validator' // moved to jsonql-utils -import { toArray, createEvt, injectToFn, objDefineProps } from 'jsonql-utils/module' +import { + toArray, + createEvt, + injectToFn, + objDefineProps, + isFunc, + isObjectHasKey, + chainFns, + chainPromises, + chainProcessPromises +} from 'jsonql-utils/module' import ee from './ee' import getDebug from './get-debug' @@ -10,19 +20,24 @@ import { fixWss, getHostName, clearMainEmitEvt, - disconnect, - isFunc + disconnect } from './helpers' // export export { isArray, + isString, toArray, createEvt, injectToFn, objDefineProps, - + isFunc, + isObjectHasKey, + chainFns, + chainPromises, + chainProcessPromises, + ee, getDebug, processContract, @@ -30,6 +45,5 @@ export { fixWss, getHostName, clearMainEmitEvt, - disconnect, - isFunc + disconnect } diff --git a/packages/ws-client/tests/event.test.js b/packages/ws-client/tests/event.test.js index 0b409e73b7394f86f85f04cffbb7db814329209f..126ab1e301915ca269b72984544009af91854bc0 100644 --- a/packages/ws-client/tests/event.test.js +++ b/packages/ws-client/tests/event.test.js @@ -2,7 +2,14 @@ const test = require('ava') const NbEventService = require('nb-event-service') const debug = require('debug')('jsonql-ws-client:test:event') -const { objDefineProps } = require('jsonql-utils') +const { objDefineProps, injectToFn } = require('jsonql-utils') + +// share methods between two test +const getter = function() { + return function(...args) { + return args.reduce((a, b) => a + b, 0) + } +} test.before(t => { t.context.evt = new NbEventService({logger: debug}) @@ -41,7 +48,7 @@ test.cb(`Test the object getter to return a function to create a new on interfac const getter = function() { return function(value, callback) { - console.log(value, callback) + // console.log(value, callback) if (typeof callback === 'function') { callback(value) } @@ -52,8 +59,30 @@ test.cb(`Test the object getter to return a function to create a new on interfac obj = objDefineProps(obj, 'on', setter, getter) obj.on('yes', function cb(value) { - t.is('yes', value) + t.is('yes', value, 'yes is the value') t.end() }) +}) + + +// 1 +test(`Test another way to pass parameters to the getter then try to get a value back`, t => { + const setter = function(value) { + console.log(value) + } + let obj = {} + obj = objDefineProps(obj, 'add', setter, getter) + const result = obj.add(1,2) + t.is(3, result, '1+2=3') +}) + +// 2 +test(`Try to use the injectToFn to set the on as just a value getter`, t => { + let obj = {} + // The different is - we can directly add a function instead of func return func + obj = injectToFn(obj, 'add', getter()) + + const result = obj.add(1,1) + t.is(2, result, '1+1=2') }) diff --git a/packages/ws-client/tests/fixtures/beta/src/generator.js b/packages/ws-client/tests/fixtures/beta/src/generator.js index 0228923bd34172932b33d2fb5232809a54f909f3..b445fff7b8fba4424b77bd4320d287d8dfda005b 100644 --- a/packages/ws-client/tests/fixtures/beta/src/generator.js +++ b/packages/ws-client/tests/fixtures/beta/src/generator.js @@ -15,7 +15,7 @@ import { import { validateAsync, validateSync, - isKeyInObject, + isObjectHasKey, isString } from 'jsonql-params-validator' import { @@ -108,10 +108,10 @@ function actionCall(ee, namespace, resolverName, args = []) { * @return {void} nothing */ function respondHandler(data, resolver, rejecter) { - if (isKeyInObject(data, 'error')) { + if (isObjectHasKey(data, 'error')) { debugFn('rejecter called', data.error) rejecter(data.error) - } else if (isKeyInObject(data, 'data')) { + } else if (isObjectHasKey(data, 'data')) { debugFn('resolver called', data.data) resolver(data.data) } else { diff --git a/packages/ws-client/tests/fixtures/beta/src/io/io-main-handler.js b/packages/ws-client/tests/fixtures/beta/src/io/io-main-handler.js index 341168929eba9eed604b135e08419bf08739856c..2ea6f1a7c2a3364782716ee5f9e992fc687c46ec 100644 --- a/packages/ws-client/tests/fixtures/beta/src/io/io-main-handler.js +++ b/packages/ws-client/tests/fixtures/beta/src/io/io-main-handler.js @@ -11,7 +11,7 @@ import { DATA_KEY, ON_READY_PROP_NAME } from 'jsonql-constants' -import { isKeyInObject } from 'jsonql-params-validator' +import { isObjectHasKey } from 'jsonql-params-validator' import { getDebug, createEvt, formatPayload } from '../utils' const debugFn = getDebug('io-main-handler') diff --git a/packages/ws-client/tests/fixtures/beta/src/node/main.cjs.js b/packages/ws-client/tests/fixtures/beta/src/node/main.cjs.js index 7108ecfd725995491ebd2cb285f070dac9d79189..11f07114eb054599dbbb52a62720cb5c2d04bd6c 100644 --- a/packages/ws-client/tests/fixtures/beta/src/node/main.cjs.js +++ b/packages/ws-client/tests/fixtures/beta/src/node/main.cjs.js @@ -5618,7 +5618,7 @@ var createConfig$1 = createConfig; var checkConfigAsync$1 = checkConfigAsync(validateSync); -var isKeyInObject = checkKeyInObject; +var isObjectHasKey = checkKeyInObject; var isContract = checkIsContract; var createQueryStr$1 = createQueryStr; @@ -6430,7 +6430,7 @@ var JsonqlWsEvt = /*@__PURE__*/(function (NBEventService) { // This is ported back from ws-server and it will get use in the server / client side function extractSocketPart(contract) { - if (isKeyInObject(contract, 'socket')) { + if (isObjectHasKey(contract, 'socket')) { return contract.socket; } return contract; @@ -6768,7 +6768,7 @@ var keys$1 = [ WS_REPLY_TYPE, WS_EVT_NAME, WS_DATA_NAME ]; var isWsReply = function (payload) { var data = payload.data; if (data) { - var result = keys$1.filter(function (key) { return isKeyInObject(data, key); }); + var result = keys$1.filter(function (key) { return isObjectHasKey(data, key); }); return (result.length === keys$1.length) ? data : false; } return false; @@ -7294,10 +7294,10 @@ function actionCall(ee, namespace, resolverName, args) { * @return {void} nothing */ function respondHandler(data, resolver, rejecter) { - if (isKeyInObject(data, 'error')) { + if (isObjectHasKey(data, 'error')) { debugFn$7('rejecter called', data.error); rejecter(data.error); - } else if (isKeyInObject(data, 'data')) { + } else if (isObjectHasKey(data, 'data')) { debugFn$7('resolver called', data.data); resolver(data.data); } else { diff --git a/packages/ws-client/tests/fixtures/beta/src/ws/extract-ws-payload.js b/packages/ws-client/tests/fixtures/beta/src/ws/extract-ws-payload.js index e223ed47244aa29080f506f534ecca856f518709..77e5a1ccd7e5c2ccea65e86cdf6a8e329bec061e 100644 --- a/packages/ws-client/tests/fixtures/beta/src/ws/extract-ws-payload.js +++ b/packages/ws-client/tests/fixtures/beta/src/ws/extract-ws-payload.js @@ -1,6 +1,7 @@ // take the ws reply data for use import { WS_EVT_NAME, WS_DATA_NAME, WS_REPLY_TYPE } from 'jsonql-constants' -import { isString, isKeyInObject } from 'jsonql-params-validator' +import { isString } from 'jsonql-params-validator' +import { isObjectHasKey } from 'jsonql-utils/module' import { JsonqlError, clientErrorsHandler } from 'jsonql-errors' const keys = [ WS_REPLY_TYPE, WS_EVT_NAME, WS_DATA_NAME ] @@ -12,7 +13,7 @@ const keys = [ WS_REPLY_TYPE, WS_EVT_NAME, WS_DATA_NAME ] const isWsReply = payload => { const { data } = payload; if (data) { - let result = keys.filter(key => isKeyInObject(data, key)) + let result = keys.filter(key => isObjectHasKey(data, key)) return (result.length === keys.length) ? data : false; } return false; diff --git a/packages/ws-client/tests/on.test.js b/packages/ws-client/tests/on.test.js new file mode 100644 index 0000000000000000000000000000000000000000..2a5401a8c6b15a98fe07e679e65d641bc8fcfd8b --- /dev/null +++ b/packages/ws-client/tests/on.test.js @@ -0,0 +1,139 @@ +// test the new on api + +/// breaking things apart and try to figure out what went wrong at the last step +const test = require('ava') +const debug = require('debug')('jsonql-ws-client:test:node') +global.debug = debug; +/// SERVER SETUP /// +const { join } = require('path') +const fsx = require('fs-extra') + +const serverSetup = require('./fixtures/server-setup') +const genToken = require('./fixtures/token') + +const jsonqlWsClient = require('./fixtures/beta/jsonql-ws-client') +const wsClient = jsonqlWsClient.default || jsonqlWsClient + +const contractDir = join(__dirname, 'fixtures', 'contract', 'auth') +const contract = fsx.readJsonSync(join(contractDir, 'contract.json')) +const publicContract = fsx.readJsonSync(join(contractDir, 'public-contract.json')) + +import { + NOT_LOGIN_ERR_MSG, + JS_WS_NAME, + + ERROR_TYPE, + DATA_KEY, + ERROR_KEY, + ON_ERROR_PROP_NAME, + ON_MESSAGE_PROP_NAME, + ON_RESULT_PROP_NAME, + + ERROR_PROP_NAME, + MESSAGE_PROP_NAME, + RESULT_PROP_NAME, + + ON_LOGIN_PROP_NAME, + SEND_MSG_PROP_NAME, + LOGIN_EVENT_NAME, + ON_READY_PROP_NAME, + LOGOUT_EVENT_NAME +} from 'jsonql-constants' + + +const payload = {name: 'Joel'}; +const token = genToken(payload) +const port = 8011; +const url = `ws://localhost:${port}` + +/// PREPARE TEST /// +test.before(async t => { + const { io, app } = await serverSetup({ + contract, + contractDir, + resolverDir: join(__dirname, 'fixtures', 'resolvers'), + serverType: JS_WS_NAME, + enableAuth: true, + keysDir: join(__dirname, 'fixtures', 'keys') + }) + + t.context.server = app.listen(port) + + t.context.client = await wsClient({ + contract, + hostname: url, + enableAuth: true, + useCallbackStyle: true + }) +}) + +test.after( t => { + t.context.server.close() +}) + +// real test start here +test.serial.skip('It should able to create the WebSocket client object', t => { + + const client = t.context.client; + + t.truthy(client) + t.true(typeof client.pinging === 'function') + /// test individual properties + t.falsy( Object.getOwnPropertyDescriptor(client.pinging, ON_ERROR_PROP_NAME), `has ${ON_ERROR_PROP_NAME} prop`) + t.falsy( Object.getOwnPropertyDescriptor(client.pinging, ON_MESSAGE_PROP_NAME), `has ${ON_MESSAGE_PROP_NAME} prop`) + t.falsy( Object.getOwnPropertyDescriptor(client.pinging, ON_RESULT_PROP_NAME), `has ${ON_RESULT_PROP_NAME} prop`) + + t.truthy( Object.getOwnPropertyDescriptor(client.pinging, SEND_MSG_PROP_NAME), `has ${SEND_MSG_PROP_NAME} prop`) + + t.falsy( Object.getOwnPropertyDescriptor(client, ON_READY_PROP_NAME), `the client object should have ${ON_READY_PROP_NAME} prop`) + t.falsy( Object.getOwnPropertyDescriptor(client, ON_LOGIN_PROP_NAME), `the client object should have ${ON_LOGIN_PROP_NAME} prop`) + +}) + +test.serial.cb.skip('The ws client can connect to the WebSocket server public interface', t => { + t.plan(3) + let ctn = 0; + const client = t.context.client; + + client.onReady = function testOnReadyCallback() { + debug(`onReady executed`) + } + + client.pinging.onResult = function testonResultCallback(result) { + ++ctn + debug(`[${ctn}] result`, result) + t.pass() + } + + client.pinging.onError = function testOnErrorCallback(err) { + ++ctn; + debug(`[got error]`, err.error.detail[0]) + t.pass() + } + + debug(`${ON_MESSAGE_PROP_NAME}`) + client.pinging.onMessage = function testOnMessageCallback(msg) { + ++ctn; + debug(`[${ctn}] ${ON_MESSAGE_PROP_NAME}`, msg) + t.pass() + t.end() + } + + client.pinging('xxx') + .then(msg => { + ++ctn; + // @NOTE perhaps I should consider when return the + // the promise, I could also return the socket object for use as well + debug(`${ctn} Success`, msg) + t.pass() + // t.end() + + client.pinging.send = 'ping' + + }) + .catch(err => { + debug('ERROR!', err) + t.pass() + // t.end() + }) +}) diff --git a/packages/ws-client/tests/options.test.js b/packages/ws-client/tests/options.test.js index 28de4e0c20cbbb59e12e689948f7e52915172782..e37b7cf8eb79be679b7bbdad1954e2a20bae2031 100644 --- a/packages/ws-client/tests/options.test.js +++ b/packages/ws-client/tests/options.test.js @@ -33,3 +33,7 @@ test(`test the objDefineProps if it return a new prop`, t => { t.is(obj.prop1, prop1) }) + +test(`Test the chainPromises for the new way to handle the final output of the client`, t => { + +}) diff --git a/packages/ws-client/tests/test-node.test.js b/packages/ws-client/tests/test-node.test.js index 68bd053abe3450ab88f9d63a887fd721acea3707..68543e0aa9de25f5f1be5b2476638145f7ac5dc4 100644 --- a/packages/ws-client/tests/test-node.test.js +++ b/packages/ws-client/tests/test-node.test.js @@ -66,12 +66,14 @@ test.after( t => { // real test start here test.serial('It should able to create the WebSocket client object', t => { - const client = t.context.client; - + // debug(client) t.truthy(client) + // debug('what type is the propety now?', typeof client.pinging) t.true(typeof client.pinging === 'function') /// test individual properties + // debug(Object.getOwnPropertyDescriptor(client, 'pinging')) + t.truthy( Object.getOwnPropertyDescriptor(client.pinging, ON_ERROR_PROP_NAME), `has ${ON_ERROR_PROP_NAME} prop`) t.truthy( Object.getOwnPropertyDescriptor(client.pinging, ON_MESSAGE_PROP_NAME), `has ${ON_MESSAGE_PROP_NAME} prop`) t.truthy( Object.getOwnPropertyDescriptor(client.pinging, ON_RESULT_PROP_NAME), `has ${ON_RESULT_PROP_NAME} prop`) diff --git a/packages/ws-server/src/share/helpers.js b/packages/ws-server/src/share/helpers.js index ada86cfbbecf6deb9f7ef5b68fdea0d190a7ef7a..2291071a1faeab56ae0ab1dc94b11d313d27a599 100644 --- a/packages/ws-server/src/share/helpers.js +++ b/packages/ws-server/src/share/helpers.js @@ -10,7 +10,7 @@ const { } = require('jsonql-constants') const { isString, - isKeyInObject + isObjectHasKey } = require('jsonql-params-validator') const { JsonqlError, @@ -52,7 +52,7 @@ const isWsReply = payload => { const json = isString(payload) ? JSON.parse(payload) : payload; const { data } = json; if (data) { - let result = WS_KEYS.filter(key => isKeyInObject(data, key)) + let result = WS_KEYS.filter(key => isObjectHasKey(data, key)) return (result.length === WS_KEYS.length) ? data : false; } return false;