utiller 1.0.403 → 1.0.405
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/pooller/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports["default"]=void 0;var _regenerator=_interopRequireDefault(require("@babel/runtime/regenerator"));var _typeof2=_interopRequireDefault(require("@babel/runtime/helpers/typeof"));var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));var _lodash=_interopRequireDefault(require("lodash"));var _index2=require("../index.js");var _configerer=require("configerer");var _exceptioner=_interopRequireDefault(require("../exceptioner"));function _createForOfIteratorHelper(r,e){var t="undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(!t){if(Array.isArray(r)||(t=_unsupportedIterableToArray(r))||e&&r&&"number"==typeof r.length){t&&(r=t);var _n=0,F=function F(){};return{s:F,n:function n(){return _n>=r.length?{done:!0}:{done:!1,value:r[_n++]}},e:function e(r){throw r},f:F}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,u=!1;return{s:function s(){t=t.call(r)},n:function n(){var r=t.next();return a=r.done,r},e:function e(r){u=!0,o=r},f:function f(){try{a||null==t["return"]||t["return"]()}finally{if(u)throw o}}}}function _unsupportedIterableToArray(r,a){if(r){if("string"==typeof r)return _arrayLikeToArray(r,a);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0}}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n}function _classPrivateFieldInitSpec(e,t,a){_checkPrivateRedeclaration(e,t),t.set(e,a)}function _checkPrivateRedeclaration(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}function _classPrivateFieldGet(s,a){return s.get(_assertClassBrand(s,a))}function _assertClassBrand(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}var SPECIFICITY_DEBUG=false;var _run=new WeakMap;var InfinitePool=function(){function InfinitePool(){var _this=this;var maxWorkers=arguments.length>0&&arguments[0]!==undefined?arguments[0]:_configerer.configerer.POOLLER_WORKER_DEFAULT;var name=arguments.length>1&&arguments[1]!==undefined?arguments[1]:_index2.utiller.getRandomValue(0,100000000000);(0,_classCallCheck2["default"])(this,InfinitePool);(0,_defineProperty2["default"])(this,"isRunInBackgroundMode",false);(0,_defineProperty2["default"])(this,"state",_configerer.configerer.POOLLER_STATE.RUN_BY_EACH_TASK);(0,_defineProperty2["default"])(this,"enableOfTaskSleepByInterval",_configerer.configerer.POOLLER_ENABLE_TASK_SLEEP_BY_INTERVAL);(0,_defineProperty2["default"])(this,"taskSleepInterval",_configerer.configerer.POOLLER_TASK_OF_INTERVAL_DEFAULT);(0,_defineProperty2["default"])(this,"enableOfTaskTimeout",_configerer.configerer.POOLLER_ENABLE_TIMEOUT);(0,_defineProperty2["default"])(this,"timeOfTaskTimeout",_configerer.configerer.POOLLER_TASK_TIMEOUT_DEFAULT);(0,_defineProperty2["default"])(this,"handlerOfAssignTaskFail",undefined);(0,_defineProperty2["default"])(this,"maximumOfWorker",void 0);(0,_defineProperty2["default"])(this,"disableFirstRun",false);(0,_defineProperty2["default"])(this,"queueOfWaitingParam",[]);(0,_defineProperty2["default"])(this,"countsOfRunByTimes",-1);(0,_defineProperty2["default"])(this,"queueOfAssignTask",{});(0,_defineProperty2["default"])(this,"queueOfExecutingTask",[]);(0,_defineProperty2["default"])(this,"isQueuePolling",false);(0,_defineProperty2["default"])(this,"initialTaskCompleted",false);(0,_defineProperty2["default"])(this,"mapOfHashNTask",{});(0,_defineProperty2["default"])(this,"mapOfHashNCallbackWrapper",{});(0,_defineProperty2["default"])(this,"nameOfCurrentPool","");(0,_defineProperty2["default"])(this,"setPoolId",function(){var id=arguments.length>0&&arguments[0]!==undefined?arguments[0]:_this.nameOfCurrentPool;_this.nameOfCurrentPool=id});(0,_defineProperty2["default"])(this,"getPoolId",function(){return _this.nameOfCurrentPool});(0,_defineProperty2["default"])(this,"stopInBackground",(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee(){var attempts,maxAttempts;return _regenerator["default"].wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:_this.terminate();attempts=0;maxAttempts=30;case 3:if(!(_lodash["default"].size(_this.queueOfExecutingTask)>0&&attempts<maxAttempts)){_context.next=11;break}_context.next=6;return _index2.utiller.syncDelay(500);case 6:_this.printLogMessage("784512, \u54AC\u5728 stopInBackground \u51FA\u4E0D\u4F86,".concat(_this.getLogMessageOfExecutingTaskQueueCount()));_this.showState();attempts++;_context.next=3;break;case 11:return _context.abrupt("return",true);case 12:case"end":return _context.stop()}},_callee)})));(0,_defineProperty2["default"])(this,"isRunning",function(){return _this.isQueuePolling});(0,_defineProperty2["default"])(this,"getCountOfAssignTaskInQueue",function(){var size=0;var _iterator=_createForOfIteratorHelper(_configerer.configerer.POOLLER_PRIORITY),_step;try{for(_iterator.s();!(_step=_iterator.n()).done;){var prior=_step.value;size+=_this.queueOfAssignTask[prior].length}}catch(err){_iterator.e(err)}finally{_iterator.f()}return size});(0,_defineProperty2["default"])(this,"add",function(task){var priority=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"low";if(typeof task==="function"){if(_configerer.configerer.POOLLER_PRIORITY.indexOf(priority)<0){throw new _exceptioner["default"](4001,"priority can't be ".concat(priority))}var hash=_index2.utiller.getRandomHash();var taskInfo={task:task,hash:hash};_this.appendHashTaskMap(taskInfo);_this.queueOfAssignTask[priority].push(taskInfo);return hash}else{throw new _exceptioner["default"](4002,"task can't be ".concat((0,_typeof2["default"])(task)))}});(0,_defineProperty2["default"])(this,"updateExecuteTaskState",function(hash){var self=_this;var task=_lodash["default"].find(_this.queueOfExecutingTask,function(each){return _lodash["default"].isEqual(each.hash,hash)});if(task){_this.printLogMessage("847875153, \u5BA2\u7AEF\u59D4\u8A17\u7684\u4EFB\u52D9: ".concat(hash,",\u66F4\u6539\u72C0\u614B\u70BA 'ING'"));task.state="ING"}});(0,_defineProperty2["default"])(this,"taskWrapper",function(assignedTask,hashOfTask,param){return function(){var self=_this;var timeoutHash="";var assignedTaskResult;var assignedTaskError;var isAssignedTaskCompleted=true;return new Promise(function(resolve,reject){if(self.enableOfTaskTimeout){timeoutHash=setTimeout(function(){try{_this.printLogMessage("982532, taskWrapper\u57F7\u884C\u4E2D,\u767C\u751Ftimout: ".concat(self.timeOfTaskTimeout," ms"));throw new _exceptioner["default"](4010,self.getPoollerLogFormat("TASK HASH:".concat(hashOfTask," IS TIMEOUT ").concat(self.timeOfTaskTimeout," ms ").concat(param?",PARAMS IS ".concat(JSON.stringify(param)):"")))}catch(error){reject(error)}},self.timeOfTaskTimeout)}_this.printLogMessage("984135, \u5BA2\u7AEF\u59D4\u8A17\u7684task\u958B\u59CB\u57F7\u884C ".concat(hashOfTask));self.updateExecuteTaskState(hashOfTask);assignedTask(param).then(function(result){_this.printLogMessage("984545, \u5BA2\u7AEF\u59D4\u8A17\u7684\u4EFB\u52D9(TASK HASH:".concat(hashOfTask,"),resolve\u56DE\u61C9: ").concat(result));assignedTaskResult=result;isAssignedTaskCompleted=true})["catch"](function(error){_this.printLogMessage("989652, \u5BA2\u7AEF\u59D4\u8A17\u7684\u4EFB\u52D9,reject\u56DE\u61C9: ".concat(error.message),true,error);assignedTaskError=error;isAssignedTaskCompleted=false})["finally"](function(){clearTimeout(timeoutHash);resolve();_this.printLogMessage("98942,(TASK HASH:".concat(hashOfTask,") taskWrapper()\u88E1\u9762\u7B2C\u4E00\u500Bpromise(\u70BA\u4E86timeout\u8A2D\u8A08)\u5B8C\u6210\u4E86"))})}).then(function(result){if(!isAssignedTaskCompleted){throw assignedTaskError}else{_this.printLogMessage("9894841,(TASK HASH:".concat(hashOfTask,") taskWrapper()\u88E1\u9762\u7B2C\u4E8C\u500Bpromise(\u6574\u500B\u4EFB\u52D9)\u5B8C\u6210\u4E86"));return"".concat(_this.getLogMessageOfTaskHash(hashOfTask)," completed")}})["catch"](function(error){isAssignedTaskCompleted=false;assignedTaskError=error;if(!self.isWait4ResultTask(hashOfTask)){if(self.handlerOfAssignTaskFail!==undefined){self.handlerOfAssignTaskFail(assignedTaskError)}else throw assignedTaskError}})["finally"](function(){var result={assignedTaskCompleted:isAssignedTaskCompleted,resolve:assignedTaskResult,reject:assignedTaskError};self.removeResolveOrRejectPromiseByHash(hashOfTask,result);_this.printLogMessage("98943213, ".concat(_this.getLogMessageOfTaskHash(hashOfTask)," taskWrapper()\u88E1\u9762\u7B2C2\u500Bpromise\u5B8C\u6210\u4E86"),false,result)})}});(0,_defineProperty2["default"])(this,"adds",function(tasks){var priority=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"low";var hashes=[];if(_lodash["default"].isArray(tasks)){var _iterator2=_createForOfIteratorHelper(tasks),_step2;try{for(_iterator2.s();!(_step2=_iterator2.n()).done;){var task=_step2.value;hashes.push(_this.add(task,priority))}}catch(err){_iterator2.e(err)}finally{_iterator2.f()}}else{throw new _exceptioner["default"](4003,"should be async function array, not ".concat((0,_typeof2["default"])(tasks)))}return hashes});(0,_defineProperty2["default"])(this,"removeTaskMapByHash",function(hash){delete _this.mapOfHashNTask[hash]});(0,_defineProperty2["default"])(this,"beforeRun",function(){_this.isQueuePolling=true});(0,_defineProperty2["default"])(this,"afterRun",function(){_this.clearCache()});(0,_defineProperty2["default"])(this,"runInInfinite",(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee2(){var task,interval,_args2=arguments;return _regenerator["default"].wrap(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:task=_args2.length>0&&_args2[0]!==undefined?_args2[0]:[];interval=_args2.length>1?_args2[1]:undefined;_this.beforeRun();if(!_lodash["default"].isFunction(task)){_context2.next=7;break}_this.add(task);_context2.next=12;break;case 7:if(!_lodash["default"].isArray(task)){_context2.next=11;break}_this.adds(task);_context2.next=12;break;case 11:throw new _exceptioner["default"](4006,"type of task is ===> ".concat((0,_typeof2["default"])(task)));case 12:_this.enableTaskSleepInterval(_lodash["default"].isNumber(interval),interval);_this.setState(_configerer.configerer.POOLLER_STATE.RUN_INFINITE);case 14:if(_this.ruleOfStopInfiniteRun()){_context2.next=20;break}_this.printLogMessage("415123, runInInfinite() \u6B63\u5728\u7121\u9650Loop\u4E2D, ".concat(_this.getLogMessageOfExecutingTaskQueueCount()));_context2.next=18;return _classPrivateFieldGet(_run,_this).call(_this);case 18:_context2.next=14;break;case 20:case"end":return _context2.stop()}},_callee2)})));(0,_defineProperty2["default"])(this,"ruleOfStopInfiniteRun",function(){return!_this.isRunning()&&_this.isExecutingTaskQueueEmpty()});(0,_defineProperty2["default"])(this,"isExecutingTaskQueueEmpty",function(){return _lodash["default"].size(_this.queueOfExecutingTask)===0});(0,_defineProperty2["default"])(this,"appendParamInToQueue",function(){var _this$queueOfWaitingP;_this.triggerBgInstance();(_this$queueOfWaitingP=_this.queueOfWaitingParam).push.apply(_this$queueOfWaitingP,arguments)});(0,_defineProperty2["default"])(this,"runByParams",function(){var _ref3=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee3(functionOfAsyncTask){var _len,params,_key,_args3=arguments;return _regenerator["default"].wrap(function _callee3$(_context3){while(1)switch(_context3.prev=_context3.next){case 0:for(_len=_args3.length,params=new Array(_len>1?_len-1:0),_key=1;_key<_len;_key++){params[_key-1]=_args3[_key]}if(functionOfAsyncTask===undefined){functionOfAsyncTask=_this.queueOfAssignTask["low"].shift().task}if(_lodash["default"].isFunction(functionOfAsyncTask)){_context3.next=4;break}throw new _exceptioner["default"](4006,"runByParams error, typeof task can't be ".concat((0,_typeof2["default"])(functionOfAsyncTask)));case 4:if(_lodash["default"].isArray(params)){_context3.next=6;break}throw new _exceptioner["default"](4006,"runByParams error, typeof params can't be ".concat((0,_typeof2["default"])(params)));case 6:_this.beforeRun();_this.add(functionOfAsyncTask);_this.appendParamInToQueue.apply(_this,params);_this.setState(_configerer.configerer.POOLLER_STATE.RUN_BY_PARAMS);case 10:if(!(!_this.ruleOfStopInfiniteRun()&&_lodash["default"].size(_this.queueOfWaitingParam)>0)){_context3.next=15;break}_context3.next=13;return _classPrivateFieldGet(_run,_this).call(_this);case 13:_context3.next=10;break;case 15:case"end":return _context3.stop()}},_callee3)}));return function(_x){return _ref3.apply(this,arguments)}}());(0,_defineProperty2["default"])(this,"runByEachTask",(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee4(){var tasks,self,_args4=arguments;return _regenerator["default"].wrap(function _callee4$(_context4){while(1)switch(_context4.prev=_context4.next){case 0:tasks=_args4.length>0&&_args4[0]!==undefined?_args4[0]:[];self=_this;_this.id=_index2.utiller.getRandomHash(15);_this.beforeRun();_this.adds(tasks);_this.setState(_configerer.configerer.POOLLER_STATE.RUN_BY_EACH_TASK);case 6:if(_this.ruleOfStopInfiniteRun()){_context4.next=15;break}_context4.next=9;return _classPrivateFieldGet(_run,_this).call(_this,_this.id);case 9:if(_this.getCountOfAssignTaskInQueue()<=0){_this.terminate();_this.printLogMessage("788121, runByEachTask() \u56E0\u70BA taskOfWaitingQueue \u6E05\u7A7A\u800C\u505C\u6B62")}_context4.next=12;return _index2.utiller.syncDelay(10);case 12:_this.printLogMessage("788143, runByEachTask() \u70BA\u4E86\u8B93while\u4E0D\u8981\u505C\u6B62\u904B\u7B97");_context4.next=6;break;case 15:_this.printLogMessage("7881952, runByEachTask() \u7D50\u675F\u4E86while()");case 16:case"end":return _context4.stop()}},_callee4)})));(0,_defineProperty2["default"])(this,"runByTimes",function(){var _ref5=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee5(functionOfAsyncTask){var times,_args5=arguments;return _regenerator["default"].wrap(function _callee5$(_context5){while(1)switch(_context5.prev=_context5.next){case 0:times=_args5.length>1&&_args5[1]!==undefined?_args5[1]:1;_this.countsOfRunByTimes=times;_this.add(functionOfAsyncTask);_this.beforeRun();_this.setState(_configerer.configerer.POOLLER_STATE.RUN_BY_TIMES);case 5:if(!(!_this.ruleOfStopInfiniteRun()&&_this.countsOfRunByTimes>0)){_context5.next=10;break}_context5.next=8;return _classPrivateFieldGet(_run,_this).call(_this);case 8:_context5.next=5;break;case 10:case"end":return _context5.stop()}},_callee5)}));return function(_x2){return _ref5.apply(this,arguments)}}());(0,_defineProperty2["default"])(this,"runInBackGround",function(asyncfunc){for(var _len2=arguments.length,params=new Array(_len2>1?_len2-1:0),_key2=1;_key2<_len2;_key2++){params[_key2-1]=arguments[_key2]}_this.isRunInBackgroundMode=true;if(!(typeof asyncfunc==="function")){throw new _exceptioner["default"](4002,"_asyncfunc can't be ".concat((0,_typeof2["default"])(asyncfunc)))}return setTimeout((0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee6(){return _regenerator["default"].wrap(function _callee6$(_context6){while(1)switch(_context6.prev=_context6.next){case 0:_context6.prev=0;_context6.next=3;return asyncfunc.apply(_this,params);case 3:_context6.next=12;break;case 5:_context6.prev=5;_context6.t0=_context6["catch"](0);if(!(_context6.t0 instanceof _exceptioner["default"])){_context6.next=11;break}_this.printLogMessage("7812123, runInBackGround() \u57F7\u884C\u932F\u8AA4: ".concat(_context6.t0.message),true,_context6.t0);_context6.next=12;break;case 11:throw new _exceptioner["default"](4009,{message:"".concat(_this.getPoollerLogFormat(""))},_context6.t0);case 12:_context6.prev=12;_this.terminate();_this.printLogMessage("7812123, runInBackGround() \u8D70\u5230finally");return _context6.finish(12);case 16:case"end":return _context6.stop()}},_callee6,null,[[0,5,12,16]])})),1)});(0,_defineProperty2["default"])(this,"getPoollerLogFormat",function(msg){return"POOLLER NAME: ".concat(_this.getPoolId()).concat(_lodash["default"].isEmpty(msg)?"":" , ").concat(msg)});(0,_defineProperty2["default"])(this,"setTaskFailHandler",function(){var listener=arguments.length>0&&arguments[0]!==undefined?arguments[0]:function(error){return console.log(error.message)};_this.handlerOfAssignTaskFail=listener});(0,_defineProperty2["default"])(this,"rulesOfAppendToExecutingTask",function(){switch(_this.state){case _configerer.configerer.POOLLER_STATE.RUN_BY_EACH_TASK:return _this.isRunning()&&!_this.isExecutingQueueFull()&&_this.getCountOfAssignTaskInQueue()>0;case _configerer.configerer.POOLLER_STATE.RUN_BY_PARAMS:return _this.isRunning()&&!_this.isExecutingQueueFull()&&_lodash["default"].size(_this.queueOfWaitingParam)>0;case _configerer.configerer.POOLLER_STATE.RUN_BY_TIMES:case _configerer.configerer.POOLLER_STATE.RUN_INFINITE:return _this.isRunning()&&!_this.isExecutingQueueFull()&&_this.getCountOfAssignTaskInQueue()>0;default:throw new _exceptioner["default"](4005,"this.state ==> ".concat(_this.state))}});(0,_defineProperty2["default"])(this,"appendTaskToExecuteQueue",function(hash,promise){if(_lodash["default"].isEqual(_this.state,_configerer.configerer.POOLLER_STATE.RUN_BY_TIMES)){_this.countsOfRunByTimes=_this.countsOfRunByTimes-1}var task={state:"NOT",hash:hash,task:promise};_this.printLogMessage("4484451, \u589E\u52A0\u4E86\u4E00\u500BassignedTask ".concat(_this.getLogMessageOfTaskHash(hash)," \u5230 QueueOfExecutingTask ,").concat(_this.getLogMessageOfExecutingTaskQueueCount),false,task);_this.queueOfExecutingTask.push(task)});(0,_defineProperty2["default"])(this,"getLogMessageOfExecutingTaskQueueCount",function(){return"ExecutingTaskQueueCount: ".concat(_lodash["default"].size(_this.queueOfExecutingTask))});(0,_defineProperty2["default"])(this,"getLogMessageOfAssignTaskQueueCount",function(){return"AssignTaskQueueCount: ".concat(_this.getCountOfAssignTaskInQueue())});(0,_defineProperty2["default"])(this,"getLogMessageOfTaskHash",function(hash){return"TASK HASH: ".concat(hash)});(0,_defineProperty2["default"])(this,"showState",function(){_index2.utiller.appendInfo(_this.getPoollerLogFormat("workerCount: ".concat(_this.maximumOfWorker)));_index2.utiller.appendInfo(_this.getPoollerLogFormat("taskQueue(\u9084\u5728\u6392\u968A\u7684Task): ".concat(_this.getCountOfAssignTaskInQueue())));_index2.utiller.appendInfo(_this.getPoollerLogFormat("QueueOfExecutingTask(\u6B63\u5728\u57F7\u884C\u7684AsyncTask, \u8D85\u904EworkerCount\u5C31\u662Fbug): ".concat(_lodash["default"].size(_this.queueOfExecutingTask))));_index2.utiller.appendInfo(_this.getPoollerLogFormat("mapOfHashNTask(\u9084\u6C92\u57F7\u884C\u5230\u7684AsyncTask reference\u7684\u66AB\u5B58\u5340): ".concat(_lodash["default"].size(_this.mapOfHashNTask))))});_classPrivateFieldInitSpec(this,_run,(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee9(){var self,execute,_execute,emptyTask,_emptyTask,task;return _regenerator["default"].wrap(function _callee9$(_context9){while(1)switch(_context9.prev=_context9.next){case 0:_emptyTask=function _emptyTask3(){_emptyTask=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee8(){return _regenerator["default"].wrap(function _callee8$(_context8){while(1)switch(_context8.prev=_context8.next){case 0:self.printLogMessage("\u56E0\u70BAmax count of worker\u70BA0\uFF0C\u6240\u4EE5\u6307\u6D3E\u4E00\u500B\u7C21\u55AE\u7684\u4EFB\u52D9");_context8.next=3;return _index2.utiller.syncDelay(10);case 3:case"end":return _context8.stop()}},_callee8)}));return _emptyTask.apply(this,arguments)};emptyTask=function _emptyTask2(){return _emptyTask.apply(this,arguments)};_execute=function _execute3(){_execute=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee7(){var tasks,result;return _regenerator["default"].wrap(function _callee7$(_context7){while(1)switch(_context7.prev=_context7.next){case 0:tasks=_lodash["default"].filter(self.queueOfExecutingTask,function(each){return _lodash["default"].isEqual(each.state,"NOT")}).map(function(each){var taskWrapper=each.task;return taskWrapper()});self.printLogMessage("454652321, \u958B\u59CB\u4EFB\u52D9(taskWrapper): run() \u88E1\u9762\u7684execute\u958B\u59CB\u57F7\u884C, task(state = NOT)\u7684\u9577\u5EA6 ".concat(_lodash["default"].size(tasks)));if(!(_lodash["default"].size(tasks)>0)){_context7.next=8;break}_context7.next=5;return Promise.race(tasks);case 5:_context7.t0=_context7.sent;_context7.next=9;break;case 8:_context7.t0="4542131684, task is empty";case 9:result=_context7.t0;self.printLogMessage("54121445161, \u7D50\u675F\u4EFB\u52D9(taskWrapper): run() \u88E1\u9762\u7684execute\u7D50\u675F\u57F7\u884C");return _context7.abrupt("return",result);case 12:case"end":return _context7.stop()}},_callee7)}));return _execute.apply(this,arguments)};execute=function _execute2(){return _execute.apply(this,arguments)};self=_this;_context9.next=7;return _this.syncTaskDispatcher();case 7:if(!(_this.maximumOfWorker===0)){_context9.next=12;break}_context9.next=10;return emptyTask();case 10:_context9.next=21;break;case 12:if(_this.isExecutingTaskQueueEmpty()){_context9.next=20;break}_this.printLogMessage("4512211, \u958B\u59CB\u4EFB\u52D9(taskWrapper): ".concat(_this.getLogMessageOfExecutingTaskQueueCount()));_context9.next=16;return execute();case 16:task=_context9.sent;_this.printLogMessage("4512213 \u5B8C\u7562\u4EFB\u52D9(taskWrapper:".concat(task,"), ").concat(_this.getLogMessageOfExecutingTaskQueueCount(),", ").concat(_this.getLogMessageOfAssignTaskQueueCount()));_context9.next=21;break;case 20:_this.printLogMessage("4574152 \u4E0D\u61C9\u8A72\u8D70\u5230\u9019\u88CF,\u4F46\u662F minor issue",true);case 21:if(_this.queueOfExecutingTask.length>_this.maximumOfWorker)_this.printLogMessage("4512214 \u4E00\u5B9A\u662F\u6539\u58DE\u4E86!!!!!!!!!!, ".concat(_this.getLogMessageOfExecutingTaskQueueCount," "),true);self.printLogMessage("5478421212, \u96E2\u958B run()");case 23:case"end":return _context9.stop()}},_callee9)})));(0,_defineProperty2["default"])(this,"getTaskInfoForRepetitiveRun",function(originalTaskInfo){var newTaskInfo={task:originalTaskInfo.task,hash:_index2.utiller.getRandomHash()};_this.appendHashTaskMap(newTaskInfo);return newTaskInfo});(0,_defineProperty2["default"])(this,"getTaskInfoDependOnPriority",function(){var _iterator3=_createForOfIteratorHelper(_configerer.configerer.POOLLER_PRIORITY),_step3;try{for(_iterator3.s();!(_step3=_iterator3.n()).done;){var prior=_step3.value;if(_this.queueOfAssignTask[prior].length>0){switch(_this.state){case _configerer.configerer.POOLLER_STATE.RUN_BY_EACH_TASK:return _this.queueOfAssignTask[prior].shift();case _configerer.configerer.POOLLER_STATE.RUN_BY_PARAMS:case _configerer.configerer.POOLLER_STATE.RUN_BY_TIMES:case _configerer.configerer.POOLLER_STATE.RUN_INFINITE:var originalTaskInfo=_this.queueOfAssignTask[prior][0];return _this.getTaskInfoForRepetitiveRun(originalTaskInfo);default:throw new _exceptioner["default"](4005,"this.state ==> ".concat(_this.state))}}}}catch(err){_iterator3.e(err)}finally{_iterator3.f()}if(!_lodash["default"].isEqual(_this.state,_configerer.configerer.POOLLER_STATE.RUN_BY_EACH_TASK))throw new _exceptioner["default"](4007)});(0,_defineProperty2["default"])(this,"removeResolveOrRejectPromiseByHash",function(hash,result){var callbackWrapper=_this.mapOfHashNCallbackWrapper[hash];if(callbackWrapper!==undefined){_this.printLogMessage("5644153248, removeResolveOrRejectPromiseByHash \u62FF\u6389\u4E86\u5B8C\u6210\u7684\u4EFB\u52D9(".concat(_this.getLogMessageOfTaskHash(hash),")"));callbackWrapper(result);delete _this.mapOfHashNCallbackWrapper[hash]}_this.removePromiseFromExecutingQueue(hash)});(0,_defineProperty2["default"])(this,"removePromiseFromExecutingQueue",function(hash){_this.printLogMessage("56448412, QueueOfExecutingTask \u62FF\u6389\u4E86\u5B8C\u6210\u7684\u4EFB\u52D9 ".concat(_this.getLogMessageOfTaskHash(hash)));_lodash["default"].remove(_this.queueOfExecutingTask,function(each){return _lodash["default"].isEqual(hash,each.hash)})});(0,_defineProperty2["default"])(this,"runInfiniteInBackground",function(functionOfAsyncTask,interval){_this.invokeInstanceOfBackground(_this.runInInfinite,functionOfAsyncTask,interval)});(0,_defineProperty2["default"])(this,"runByParamInBackGround",function(functionOfAsyncTask){for(var _len3=arguments.length,params=new Array(_len3>1?_len3-1:0),_key3=1;_key3<_len3;_key3++){params[_key3-1]=arguments[_key3]}return _this.invokeInstanceOfBackground.apply(_this,[_this.runByParams,functionOfAsyncTask].concat(params))});(0,_defineProperty2["default"])(this,"runByTimesInBackGround",function(functionOfAsyncTask,times){_this.invokeInstanceOfBackground(_this.runByTimes,functionOfAsyncTask,times);return _this});(0,_defineProperty2["default"])(this,"runByEachTaskInBackGround",function(){for(var _len4=arguments.length,params=new Array(_len4),_key4=0;_key4<_len4;_key4++){params[_key4]=arguments[_key4]}return _this.invokeInstanceOfBackground.apply(_this,[_this.runByEachTask].concat(params))});(0,_defineProperty2["default"])(this,"invokeInstanceOfBackground",function(state){if(_this.atomicBgInstance!==undefined)clearTimeout(_this.atomicBgInstance);for(var _len5=arguments.length,params=new Array(_len5>1?_len5-1:0),_key5=1;_key5<_len5;_key5++){params[_key5-1]=arguments[_key5]}_this.atomicBgInstance=_this.runInBackGround.apply(_this,[state].concat(params));return _this});this.maximumOfWorker=maxWorkers;this.setPoolId(_lodash["default"].toString(name));var _iterator4=_createForOfIteratorHelper(_configerer.configerer.POOLLER_PRIORITY),_step4;try{for(_iterator4.s();!(_step4=_iterator4.n()).done;){var prior=_step4.value;this.queueOfAssignTask[prior]=[]}}catch(err){_iterator4.e(err)}finally{_iterator4.f()}}return(0,_createClass2["default"])(InfinitePool,[{key:"enableQueueTerminateBySleepCount",value:function enableQueueTerminateBySleepCount(){var enable=arguments.length>0&&arguments[0]!==undefined?arguments[0]:true;var interval=arguments.length>1&&arguments[1]!==undefined?arguments[1]:_configerer.configerer.POOLLER_QUEUE_TIME_OF_SLEEP_INTERVAL_DEFAULT;var times=arguments.length>2&&arguments[2]!==undefined?arguments[2]:_configerer.configerer.POOLLER_QUEUE_MAX_SLEEP_COUNTS_DEFAULT;this.enableOfQueueTerminateSleepCount=enable;this.queueMaxSleepCounts=times;this.intervalOfQueueSleep=interval}},{key:"clearCache",value:function clearCache(){this.queueOfExecutingTask.length=0;this.mapOfHashNTask={};this.queueOfAssignTask={}}},{key:"terminate",value:function terminate(){this.isQueuePolling=false}},{key:"printLogMessage",value:function printLogMessage(message){var error=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;for(var _len6=arguments.length,infos=new Array(_len6>2?_len6-2:0),_key6=2;_key6<_len6;_key6++){infos[_key6-2]=arguments[_key6]}if(SPECIFICITY_DEBUG)_index2.utiller.printLogMessage.apply(_index2.utiller,[this.getPoollerLogFormat(message),error].concat(infos))}},{key:"setWorker",value:function setWorker(counts){this.maximumOfWorker=counts}},{key:"cleanTaskInterval",value:function cleanTaskInterval(){this.taskSleepInterval={min:0,max:0}}},{key:"enableTaskSleepInterval",value:function enableTaskSleepInterval(){var enable=arguments.length>0&&arguments[0]!==undefined?arguments[0]:true;var interval=arguments.length>1&&arguments[1]!==undefined?arguments[1]:_configerer.configerer.POOLLER_TASK_OF_INTERVAL_DEFAULT;this.enableOfTaskSleepByInterval=enable;if(_lodash["default"].isNumber(interval)){interval={min:interval,max:interval}}this.taskSleepInterval=interval}},{key:"enableTaskTimeout",value:function enableTaskTimeout(){var enable=arguments.length>0&&arguments[0]!==undefined?arguments[0]:true;var millionSec=arguments.length>1&&arguments[1]!==undefined?arguments[1]:_configerer.configerer.POOLLER_TASK_TIMEOUT_DEFAULT;this.enableOfTaskTimeout=enable;this.timeOfTaskTimeout=millionSec}},{key:"addTaskAndWait4Result",value:function(){var _addTaskAndWait4Result=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee10(asyncTask){var _this2=this;var priority,taskName,_args10=arguments;return _regenerator["default"].wrap(function _callee10$(_context10){while(1)switch(_context10.prev=_context10.next){case 0:priority=_args10.length>1&&_args10[1]!==undefined?_args10[1]:"low";taskName=_args10.length>2&&_args10[2]!==undefined?_args10[2]:"noName";this.triggerBgInstance();return _context10.abrupt("return",new Promise(function(resolve,reject){var callbackWrapper=function callbackWrapper(result){if(result.assignedTaskCompleted){resolve(result.resolve)}else{reject(result.reject)}};var hash=_this2.add(asyncTask,priority);_this2.registerHash4Result(hash,callbackWrapper)}));case 4:case"end":return _context10.stop()}},_callee10,this)}));function addTaskAndWait4Result(_x3){return _addTaskAndWait4Result.apply(this,arguments)}return addTaskAndWait4Result}()},{key:"registerHash4Result",value:function registerHash4Result(hash,callback){this.mapOfHashNCallbackWrapper[hash]=callback}},{key:"appendHashTaskMap",value:function appendHashTaskMap(taskInfo){this.mapOfHashNTask[taskInfo.hash]=taskInfo}},{key:"getTaskInfoByHash",value:function getTaskInfoByHash(hash){return this.mapOfHashNTask[hash]}},{key:"remove",value:function remove(hash){var taskInfo=this.getTaskInfoByHash(hash);if(taskInfo){var _iterator5=_createForOfIteratorHelper(_configerer.configerer.POOLLER_PRIORITY),_step5;try{for(_iterator5.s();!(_step5=_iterator5.n()).done;){var prior=_step5.value;var _index=_lodash["default"].indexOf(this.queueOfAssignTask[prior],taskInfo);if(_index>0){this.queueOfAssignTask[prior].splice(_index,1);this.removeTaskMapByHash(hash);return true}}}catch(err){_iterator5.e(err)}finally{_iterator5.f()}return false}else{throw new _exceptioner["default"](4004,hash)}}},{key:"setState",value:function setState(_state){this.state=_state}},{key:"checkAndMarkInitialTaskStatus",value:function checkAndMarkInitialTaskStatus(){if(!this.initialTaskCompleted){this.initialTaskCompleted=true;return false}return this.initialTaskCompleted}},{key:"setDisableFirstRun",value:function setDisableFirstRun(){var disable=arguments.length>0&&arguments[0]!==undefined?arguments[0]:true;this.disableFirstRun=disable}},{key:"triggerBgInstance",value:function triggerBgInstance(){if(!this.isRunInBackgroundMode||this.isQueuePolling){return}if(this.state===_configerer.configerer.POOLLER_STATE.RUN_BY_EACH_TASK){this.runByEachTaskInBackGround();return}else if(this.state===_configerer.configerer.POOLLER_STATE.RUN_BY_PARAMS){this.runByParamInBackGround();return}throw new _exceptioner["default"](4011,"this.state is ==> ".concat(_index2.utiller.getItsKeyByValue(_configerer.configerer.POOLLER_STATE,this.state)))}},{key:"isExecutingQueueFull",value:function isExecutingQueueFull(){return _lodash["default"].size(this.queueOfExecutingTask)>=this.maximumOfWorker}},{key:"isTaskQueueEmpty",value:function isTaskQueueEmpty(){return this.getCountOfAssignTaskInQueue()===0}},{key:"syncTaskDispatcher",value:(function(){var _syncTaskDispatcher=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee11(){var initialTaskShouldNotRun,isExecutingTaskAlmostFull,comparison,restInInterval,taskInfo,promise;return _regenerator["default"].wrap(function _callee11$(_context11){while(1)switch(_context11.prev=_context11.next){case 0:this.printLogMessage("448984466, \u8D70\u9032\u4F86\u4E86 syncTaskDispatcher()");initialTaskShouldNotRun=this.disableFirstRun&&!this.checkAndMarkInitialTaskStatus();isExecutingTaskAlmostFull=this.queueOfExecutingTask.length>=this.maximumOfWorker-1;comparison=this.checkAndMarkInitialTaskStatus()&&isExecutingTaskAlmostFull&&this.enableOfTaskSleepByInterval;if(!(initialTaskShouldNotRun||comparison)){_context11.next=9;break}_context11.next=7;return _index2.utiller.syncDelayRandom(this.taskSleepInterval.min,this.taskSleepInterval.max);case 7:restInInterval=_context11.sent;this.printLogMessage("4484121, \u8D70\u5230\u7761\u89BA\u5340 enableOfTaskSleepByInterval:".concat(this.enableOfTaskSleepByInterval," || ").concat(restInInterval," ms"));case 9:if(!this.rulesOfAppendToExecutingTask()){_context11.next=21;break}taskInfo=this.getTaskInfoDependOnPriority();if(!taskInfo){_context11.next=17;break}promise=this.taskWrapper(taskInfo.task,taskInfo.hash,this.queueOfWaitingParam.shift());if(this.state===_configerer.configerer.POOLLER_STATE.RUN_BY_EACH_TASK){this.removeTaskMapByHash(taskInfo.hash)}else{}this.appendTaskToExecuteQueue(taskInfo.hash,promise);_context11.next=19;break;case 17:this.printLogMessage("848451 \u4E5F\u8A31\u6709\u672A\u77E5\u7684isssue,\u4FDD\u96AA\u8D77\u898Bbreak,\u662F\u4E0D\u662F\u5728\u9019\u88E1\u7121\u9650\u8FF4\u5708\u8DD1\u8DD1\u8DD1",true);return _context11.abrupt("break",21);case 19:_context11.next=9;break;case 21:this.printLogMessage("4489844821, \u96E2\u958B\u4E86 syncTaskDispatcher()");case 22:case"end":return _context11.stop()}},_callee11,this)}));function syncTaskDispatcher(){return _syncTaskDispatcher.apply(this,arguments)}return syncTaskDispatcher}())},{key:"isWait4ResultTask",value:function isWait4ResultTask(hash){return this.mapOfHashNCallbackWrapper[hash]!==undefined}}])}();var _default=exports["default"]=InfinitePool;
|
|
1
|
+
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports["default"]=void 0;var _regenerator=_interopRequireDefault(require("@babel/runtime/regenerator"));var _typeof2=_interopRequireDefault(require("@babel/runtime/helpers/typeof"));var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));var _lodash=_interopRequireDefault(require("lodash"));var _index2=require("../index.js");var _configerer=require("configerer");var _exceptioner=_interopRequireDefault(require("../exceptioner"));function _createForOfIteratorHelper(r,e){var t="undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(!t){if(Array.isArray(r)||(t=_unsupportedIterableToArray(r))||e&&r&&"number"==typeof r.length){t&&(r=t);var _n=0,F=function F(){};return{s:F,n:function n(){return _n>=r.length?{done:!0}:{done:!1,value:r[_n++]}},e:function e(r){throw r},f:F}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,u=!1;return{s:function s(){t=t.call(r)},n:function n(){var r=t.next();return a=r.done,r},e:function e(r){u=!0,o=r},f:function f(){try{a||null==t["return"]||t["return"]()}finally{if(u)throw o}}}}function _unsupportedIterableToArray(r,a){if(r){if("string"==typeof r)return _arrayLikeToArray(r,a);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0}}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n}function _classPrivateFieldInitSpec(e,t,a){_checkPrivateRedeclaration(e,t),t.set(e,a)}function _checkPrivateRedeclaration(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}function _classPrivateFieldGet(s,a){return s.get(_assertClassBrand(s,a))}function _assertClassBrand(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}var SPECIFICITY_DEBUG=false;var _run=new WeakMap;var InfinitePool=function(){function InfinitePool(){var _this=this;var maxWorkers=arguments.length>0&&arguments[0]!==undefined?arguments[0]:_configerer.configerer.POOLLER_WORKER_DEFAULT;var name=arguments.length>1&&arguments[1]!==undefined?arguments[1]:_index2.utiller.getRandomValue(0,100000000000);(0,_classCallCheck2["default"])(this,InfinitePool);(0,_defineProperty2["default"])(this,"isRunInBackgroundMode",false);(0,_defineProperty2["default"])(this,"state",_configerer.configerer.POOLLER_STATE.RUN_BY_EACH_TASK);(0,_defineProperty2["default"])(this,"enableOfTaskSleepByInterval",_configerer.configerer.POOLLER_ENABLE_TASK_SLEEP_BY_INTERVAL);(0,_defineProperty2["default"])(this,"taskSleepInterval",_configerer.configerer.POOLLER_TASK_OF_INTERVAL_DEFAULT);(0,_defineProperty2["default"])(this,"enableOfTaskTimeout",_configerer.configerer.POOLLER_ENABLE_TIMEOUT);(0,_defineProperty2["default"])(this,"timeOfTaskTimeout",_configerer.configerer.POOLLER_TASK_TIMEOUT_DEFAULT);(0,_defineProperty2["default"])(this,"handlerOfAssignTaskFail",undefined);(0,_defineProperty2["default"])(this,"maximumOfWorker",void 0);(0,_defineProperty2["default"])(this,"disableFirstRun",false);(0,_defineProperty2["default"])(this,"queueOfWaitingParam",[]);(0,_defineProperty2["default"])(this,"countsOfRunByTimes",-1);(0,_defineProperty2["default"])(this,"queueOfAssignTask",{});(0,_defineProperty2["default"])(this,"queueOfExecutingTask",[]);(0,_defineProperty2["default"])(this,"isQueuePolling",false);(0,_defineProperty2["default"])(this,"initialTaskCompleted",false);(0,_defineProperty2["default"])(this,"mapOfHashNTask",{});(0,_defineProperty2["default"])(this,"mapOfHashNCallbackWrapper",{});(0,_defineProperty2["default"])(this,"nameOfCurrentPool","");(0,_defineProperty2["default"])(this,"setPoolId",function(){var id=arguments.length>0&&arguments[0]!==undefined?arguments[0]:_this.nameOfCurrentPool;_this.nameOfCurrentPool=id});(0,_defineProperty2["default"])(this,"getPoolId",function(){return _this.nameOfCurrentPool});(0,_defineProperty2["default"])(this,"stopInBackground",(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee(){var attempts,maxAttempts;return _regenerator["default"].wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:_this.terminate();attempts=0;maxAttempts=30;case 3:if(!(_lodash["default"].size(_this.queueOfExecutingTask)>0&&attempts<maxAttempts)){_context.next=11;break}_context.next=6;return _index2.utiller.syncDelay(500);case 6:_this.printLogMessage("784512, \u54AC\u5728 stopInBackground \u51FA\u4E0D\u4F86,".concat(_this.getLogMessageOfExecutingTaskQueueCount()));_this.showState();attempts++;_context.next=3;break;case 11:return _context.abrupt("return",true);case 12:case"end":return _context.stop()}},_callee)})));(0,_defineProperty2["default"])(this,"isRunning",function(){return _this.isQueuePolling});(0,_defineProperty2["default"])(this,"getCountOfAssignTaskInQueue",function(){var size=0;var _iterator=_createForOfIteratorHelper(_configerer.configerer.POOLLER_PRIORITY),_step;try{for(_iterator.s();!(_step=_iterator.n()).done;){var prior=_step.value;size+=_this.queueOfAssignTask[prior].length}}catch(err){_iterator.e(err)}finally{_iterator.f()}return size});(0,_defineProperty2["default"])(this,"add",function(task){var priority=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"low";if(typeof task==="function"){if(_configerer.configerer.POOLLER_PRIORITY.indexOf(priority)<0){throw new _exceptioner["default"](4001,"priority can't be ".concat(priority))}var hash=_index2.utiller.getRandomHash();var taskInfo={task:task,hash:hash};_this.appendHashTaskMap(taskInfo);_this.queueOfAssignTask[priority].push(taskInfo);return hash}else{throw new _exceptioner["default"](4002,"task can't be ".concat((0,_typeof2["default"])(task)))}});(0,_defineProperty2["default"])(this,"updateExecuteTaskState",function(hash){var self=_this;var task=_lodash["default"].find(_this.queueOfExecutingTask,function(each){return _lodash["default"].isEqual(each.hash,hash)});if(task){_this.printLogMessage("847875153, \u5BA2\u7AEF\u59D4\u8A17\u7684\u4EFB\u52D9: ".concat(hash,",\u66F4\u6539\u72C0\u614B\u70BA 'ING'"));task.state="ING"}});(0,_defineProperty2["default"])(this,"taskWrapper",function(assignedTask,hashOfTask,param){return function(){var self=_this;var timeoutHash="";var assignedTaskResult;var assignedTaskError;var isAssignedTaskCompleted=true;return new Promise(function(resolve,reject){if(self.enableOfTaskTimeout){timeoutHash=setTimeout(function(){try{_this.printLogMessage("982532, taskWrapper\u57F7\u884C\u4E2D,\u767C\u751Ftimout: ".concat(self.timeOfTaskTimeout," ms"));throw new _exceptioner["default"](4010,self.getPoollerLogFormat("TASK HASH:".concat(hashOfTask," IS TIMEOUT ").concat(self.timeOfTaskTimeout," ms ").concat(param?",PARAMS IS ".concat(JSON.stringify(param)):"")))}catch(error){reject(error)}},self.timeOfTaskTimeout)}_this.printLogMessage("984135, \u5BA2\u7AEF\u59D4\u8A17\u7684task\u958B\u59CB\u57F7\u884C ".concat(hashOfTask));self.updateExecuteTaskState(hashOfTask);assignedTask(param).then(function(result){_this.printLogMessage("984545, \u5BA2\u7AEF\u59D4\u8A17\u7684\u4EFB\u52D9(TASK HASH:".concat(hashOfTask,"),resolve\u56DE\u61C9: ").concat(result));assignedTaskResult=result;isAssignedTaskCompleted=true})["catch"](function(error){_this.printLogMessage("989652, \u5BA2\u7AEF\u59D4\u8A17\u7684\u4EFB\u52D9,reject\u56DE\u61C9: ".concat(error.message),true,error);assignedTaskError=error;isAssignedTaskCompleted=false})["finally"](function(){clearTimeout(timeoutHash);resolve();_this.printLogMessage("98942,(TASK HASH:".concat(hashOfTask,") taskWrapper()\u88E1\u9762\u7B2C\u4E00\u500Bpromise(\u70BA\u4E86timeout\u8A2D\u8A08)\u5B8C\u6210\u4E86"))})}).then(function(result){if(!isAssignedTaskCompleted){throw assignedTaskError}else{_this.printLogMessage("9894841,(TASK HASH:".concat(hashOfTask,") taskWrapper()\u88E1\u9762\u7B2C\u4E8C\u500Bpromise(\u6574\u500B\u4EFB\u52D9)\u5B8C\u6210\u4E86"));return"".concat(_this.getLogMessageOfTaskHash(hashOfTask)," completed")}})["catch"](function(error){isAssignedTaskCompleted=false;assignedTaskError=error;if(!self.isWait4ResultTask(hashOfTask)){if(self.handlerOfAssignTaskFail!==undefined){self.handlerOfAssignTaskFail(assignedTaskError)}else throw assignedTaskError}})["finally"](function(){var result={assignedTaskCompleted:isAssignedTaskCompleted,resolve:assignedTaskResult,reject:assignedTaskError};self.removeResolveOrRejectPromiseByHash(hashOfTask,result);_this.printLogMessage("98943213, ".concat(_this.getLogMessageOfTaskHash(hashOfTask)," taskWrapper()\u88E1\u9762\u7B2C2\u500Bpromise\u5B8C\u6210\u4E86"),false,result)})}});(0,_defineProperty2["default"])(this,"adds",function(tasks){var priority=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"low";var hashes=[];if(_lodash["default"].isArray(tasks)){var _iterator2=_createForOfIteratorHelper(tasks),_step2;try{for(_iterator2.s();!(_step2=_iterator2.n()).done;){var task=_step2.value;hashes.push(_this.add(task,priority))}}catch(err){_iterator2.e(err)}finally{_iterator2.f()}}else{throw new _exceptioner["default"](4003,"should be async function array, not ".concat((0,_typeof2["default"])(tasks)))}return hashes});(0,_defineProperty2["default"])(this,"removeTaskMapByHash",function(hash){delete _this.mapOfHashNTask[hash]});(0,_defineProperty2["default"])(this,"beforeRun",function(){_this.isQueuePolling=true});(0,_defineProperty2["default"])(this,"afterRun",function(){_this.clearCache()});(0,_defineProperty2["default"])(this,"runInInfinite",(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee2(){var task,interval,_args2=arguments;return _regenerator["default"].wrap(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:task=_args2.length>0&&_args2[0]!==undefined?_args2[0]:[];interval=_args2.length>1?_args2[1]:undefined;_this.beforeRun();if(!_lodash["default"].isFunction(task)){_context2.next=7;break}_this.add(task);_context2.next=12;break;case 7:if(!_lodash["default"].isArray(task)){_context2.next=11;break}_this.adds(task);_context2.next=12;break;case 11:throw new _exceptioner["default"](4006,"type of task is ===> ".concat((0,_typeof2["default"])(task)));case 12:_this.enableTaskSleepInterval(_lodash["default"].isNumber(interval),interval);_this.setState(_configerer.configerer.POOLLER_STATE.RUN_INFINITE);case 14:if(_this.ruleOfStopInfiniteRun()){_context2.next=20;break}_this.printLogMessage("415123, runInInfinite() \u6B63\u5728\u7121\u9650Loop\u4E2D, ".concat(_this.getLogMessageOfExecutingTaskQueueCount()));_context2.next=18;return _classPrivateFieldGet(_run,_this).call(_this);case 18:_context2.next=14;break;case 20:case"end":return _context2.stop()}},_callee2)})));(0,_defineProperty2["default"])(this,"ruleOfStopInfiniteRun",function(){return!_this.isRunning()&&_this.isExecutingTaskQueueEmpty()});(0,_defineProperty2["default"])(this,"isExecutingTaskQueueEmpty",function(){return _lodash["default"].size(_this.queueOfExecutingTask)===0});(0,_defineProperty2["default"])(this,"appendParamInToQueue",function(){var _this$queueOfWaitingP;_this.triggerBgInstance();(_this$queueOfWaitingP=_this.queueOfWaitingParam).push.apply(_this$queueOfWaitingP,arguments)});(0,_defineProperty2["default"])(this,"runByParams",function(){var _ref3=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee3(functionOfAsyncTask){var _len,params,_key,_args3=arguments;return _regenerator["default"].wrap(function _callee3$(_context3){while(1)switch(_context3.prev=_context3.next){case 0:for(_len=_args3.length,params=new Array(_len>1?_len-1:0),_key=1;_key<_len;_key++){params[_key-1]=_args3[_key]}if(functionOfAsyncTask===undefined){functionOfAsyncTask=_this.queueOfAssignTask["low"].shift().task}if(_lodash["default"].isFunction(functionOfAsyncTask)){_context3.next=4;break}throw new _exceptioner["default"](4006,"runByParams error, typeof task can't be ".concat((0,_typeof2["default"])(functionOfAsyncTask)));case 4:if(_lodash["default"].isArray(params)){_context3.next=6;break}throw new _exceptioner["default"](4006,"runByParams error, typeof params can't be ".concat((0,_typeof2["default"])(params)));case 6:_this.beforeRun();_this.add(functionOfAsyncTask);_this.appendParamInToQueue.apply(_this,params);_this.setState(_configerer.configerer.POOLLER_STATE.RUN_BY_PARAMS);case 10:if(!(!_this.ruleOfStopInfiniteRun()&&_lodash["default"].size(_this.queueOfWaitingParam)>0)){_context3.next=15;break}_context3.next=13;return _classPrivateFieldGet(_run,_this).call(_this);case 13:_context3.next=10;break;case 15:case"end":return _context3.stop()}},_callee3)}));return function(_x){return _ref3.apply(this,arguments)}}());(0,_defineProperty2["default"])(this,"runByEachTask",(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee4(){var tasks,self,_args4=arguments;return _regenerator["default"].wrap(function _callee4$(_context4){while(1)switch(_context4.prev=_context4.next){case 0:tasks=_args4.length>0&&_args4[0]!==undefined?_args4[0]:[];self=_this;_this.id=_index2.utiller.getRandomHash(15);_this.beforeRun();_this.adds(tasks);_this.setState(_configerer.configerer.POOLLER_STATE.RUN_BY_EACH_TASK);case 6:if(_this.ruleOfStopInfiniteRun()){_context4.next=15;break}_context4.next=9;return _classPrivateFieldGet(_run,_this).call(_this,_this.id);case 9:if(_this.getCountOfAssignTaskInQueue()<=0){_this.terminate();_this.printLogMessage("788121, runByEachTask() \u56E0\u70BA taskOfWaitingQueue \u6E05\u7A7A\u800C\u505C\u6B62")}_context4.next=12;return _index2.utiller.syncDelay(10);case 12:_this.printLogMessage("788143, runByEachTask() \u70BA\u4E86\u8B93while\u4E0D\u8981\u505C\u6B62\u904B\u7B97");_context4.next=6;break;case 15:_this.printLogMessage("7881952, runByEachTask() \u7D50\u675F\u4E86while()");case 16:case"end":return _context4.stop()}},_callee4)})));(0,_defineProperty2["default"])(this,"runByTimes",function(){var _ref5=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee5(functionOfAsyncTask){var times,_args5=arguments;return _regenerator["default"].wrap(function _callee5$(_context5){while(1)switch(_context5.prev=_context5.next){case 0:times=_args5.length>1&&_args5[1]!==undefined?_args5[1]:1;_this.countsOfRunByTimes=times;_this.add(functionOfAsyncTask);_this.beforeRun();_this.setState(_configerer.configerer.POOLLER_STATE.RUN_BY_TIMES);case 5:if(!(!_this.ruleOfStopInfiniteRun()&&_this.countsOfRunByTimes>0)){_context5.next=10;break}_context5.next=8;return _classPrivateFieldGet(_run,_this).call(_this);case 8:_context5.next=5;break;case 10:case"end":return _context5.stop()}},_callee5)}));return function(_x2){return _ref5.apply(this,arguments)}}());(0,_defineProperty2["default"])(this,"runInBackGround",function(asyncfunc){for(var _len2=arguments.length,params=new Array(_len2>1?_len2-1:0),_key2=1;_key2<_len2;_key2++){params[_key2-1]=arguments[_key2]}_this.isRunInBackgroundMode=true;if(!(typeof asyncfunc==="function")){throw new _exceptioner["default"](4002,"_asyncfunc can't be ".concat((0,_typeof2["default"])(asyncfunc)))}return setTimeout((0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee6(){return _regenerator["default"].wrap(function _callee6$(_context6){while(1)switch(_context6.prev=_context6.next){case 0:_context6.prev=0;_context6.next=3;return asyncfunc.apply(_this,params);case 3:_context6.next=12;break;case 5:_context6.prev=5;_context6.t0=_context6["catch"](0);if(!(_context6.t0 instanceof _exceptioner["default"])){_context6.next=11;break}_this.printLogMessage("7812123, runInBackGround() \u57F7\u884C\u932F\u8AA4: ".concat(_context6.t0.message),true,_context6.t0);_context6.next=12;break;case 11:throw new _exceptioner["default"](4009,{message:"".concat(_this.getPoollerLogFormat(""))},_context6.t0);case 12:_context6.prev=12;_this.terminate();_this.printLogMessage("7812123, runInBackGround() \u8D70\u5230finally");return _context6.finish(12);case 16:case"end":return _context6.stop()}},_callee6,null,[[0,5,12,16]])})),1)});(0,_defineProperty2["default"])(this,"getPoollerLogFormat",function(msg){return"POOLLER NAME: ".concat(_this.getPoolId()).concat(_lodash["default"].isEmpty(msg)?"":" , ").concat(msg)});(0,_defineProperty2["default"])(this,"setTaskFailHandler",function(){var listener=arguments.length>0&&arguments[0]!==undefined?arguments[0]:function(error){return console.log(error.message)};_this.handlerOfAssignTaskFail=listener});(0,_defineProperty2["default"])(this,"rulesOfAppendToExecutingTask",function(){switch(_this.state){case _configerer.configerer.POOLLER_STATE.RUN_BY_EACH_TASK:return _this.isRunning()&&!_this.isExecutingQueueFull()&&_this.getCountOfAssignTaskInQueue()>0;case _configerer.configerer.POOLLER_STATE.RUN_BY_PARAMS:return _this.isRunning()&&!_this.isExecutingQueueFull()&&_lodash["default"].size(_this.queueOfWaitingParam)>0;case _configerer.configerer.POOLLER_STATE.RUN_BY_TIMES:case _configerer.configerer.POOLLER_STATE.RUN_INFINITE:return _this.isRunning()&&!_this.isExecutingQueueFull()&&_this.getCountOfAssignTaskInQueue()>0;default:throw new _exceptioner["default"](4005,"this.state ==> ".concat(_this.state))}});(0,_defineProperty2["default"])(this,"appendTaskToExecuteQueue",function(hash,promise){if(_lodash["default"].isEqual(_this.state,_configerer.configerer.POOLLER_STATE.RUN_BY_TIMES)){_this.countsOfRunByTimes=_this.countsOfRunByTimes-1}var task={state:"NOT",hash:hash,task:promise};_this.printLogMessage("4484451, \u589E\u52A0\u4E86\u4E00\u500BassignedTask ".concat(_this.getLogMessageOfTaskHash(hash)," \u5230 QueueOfExecutingTask ,").concat(_this.getLogMessageOfExecutingTaskQueueCount),false,task);_this.queueOfExecutingTask.push(task)});(0,_defineProperty2["default"])(this,"getLogMessageOfExecutingTaskQueueCount",function(){return"ExecutingTaskQueueCount: ".concat(_lodash["default"].size(_this.queueOfExecutingTask))});(0,_defineProperty2["default"])(this,"getLogMessageOfAssignTaskQueueCount",function(){return"AssignTaskQueueCount: ".concat(_this.getCountOfAssignTaskInQueue())});(0,_defineProperty2["default"])(this,"getLogMessageOfTaskHash",function(hash){return"TASK HASH: ".concat(hash)});(0,_defineProperty2["default"])(this,"showState",function(){_index2.utiller.appendInfo(_this.getPoollerLogFormat("workerCount: ".concat(_this.maximumOfWorker)));_index2.utiller.appendInfo(_this.getPoollerLogFormat("taskQueue(\u9084\u5728\u6392\u968A\u7684Task): ".concat(_this.getCountOfAssignTaskInQueue())));_index2.utiller.appendInfo(_this.getPoollerLogFormat("QueueOfExecutingTask(\u6B63\u5728\u57F7\u884C\u7684AsyncTask, \u8D85\u904EworkerCount\u5C31\u662Fbug): ".concat(_lodash["default"].size(_this.queueOfExecutingTask))));_index2.utiller.appendInfo(_this.getPoollerLogFormat("mapOfHashNTask(\u9084\u6C92\u57F7\u884C\u5230\u7684AsyncTask reference\u7684\u66AB\u5B58\u5340): ".concat(_lodash["default"].size(_this.mapOfHashNTask))))});_classPrivateFieldInitSpec(this,_run,(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee9(){var self,execute,_execute,emptyTask,_emptyTask,task;return _regenerator["default"].wrap(function _callee9$(_context9){while(1)switch(_context9.prev=_context9.next){case 0:_emptyTask=function _emptyTask3(){_emptyTask=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee8(){return _regenerator["default"].wrap(function _callee8$(_context8){while(1)switch(_context8.prev=_context8.next){case 0:self.printLogMessage("\u56E0\u70BAmax count of worker\u70BA0\uFF0C\u6240\u4EE5\u6307\u6D3E\u4E00\u500B\u7C21\u55AE\u7684\u4EFB\u52D9");_context8.next=3;return _index2.utiller.syncDelay(10);case 3:case"end":return _context8.stop()}},_callee8)}));return _emptyTask.apply(this,arguments)};emptyTask=function _emptyTask2(){return _emptyTask.apply(this,arguments)};_execute=function _execute3(){_execute=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee7(){var tasks,result;return _regenerator["default"].wrap(function _callee7$(_context7){while(1)switch(_context7.prev=_context7.next){case 0:tasks=_lodash["default"].filter(self.queueOfExecutingTask,function(each){return _lodash["default"].isEqual(each.state,"NOT")}).map(function(each){var taskWrapper=each.task;return taskWrapper()});self.printLogMessage("454652321, \u958B\u59CB\u4EFB\u52D9(taskWrapper): run() \u88E1\u9762\u7684execute\u958B\u59CB\u57F7\u884C, task(state = NOT)\u7684\u9577\u5EA6 ".concat(_lodash["default"].size(tasks)));if(!(_lodash["default"].size(tasks)>0)){_context7.next=8;break}_context7.next=5;return Promise.race(tasks);case 5:_context7.t0=_context7.sent;_context7.next=9;break;case 8:_context7.t0="4542131684, task is empty";case 9:result=_context7.t0;self.printLogMessage("54121445161, \u7D50\u675F\u4EFB\u52D9(taskWrapper): run() \u88E1\u9762\u7684execute\u7D50\u675F\u57F7\u884C");return _context7.abrupt("return",result);case 12:case"end":return _context7.stop()}},_callee7)}));return _execute.apply(this,arguments)};execute=function _execute2(){return _execute.apply(this,arguments)};self=_this;_context9.next=7;return _this.syncTaskDispatcher();case 7:if(!(_this.maximumOfWorker===0)){_context9.next=12;break}_context9.next=10;return emptyTask();case 10:_context9.next=21;break;case 12:if(_this.isExecutingTaskQueueEmpty()){_context9.next=20;break}_this.printLogMessage("4512211, \u958B\u59CB\u4EFB\u52D9(taskWrapper): ".concat(_this.getLogMessageOfExecutingTaskQueueCount()));_context9.next=16;return execute();case 16:task=_context9.sent;_this.printLogMessage("4512213 \u5B8C\u7562\u4EFB\u52D9(taskWrapper:".concat(task,"), ").concat(_this.getLogMessageOfExecutingTaskQueueCount(),", ").concat(_this.getLogMessageOfAssignTaskQueueCount()));_context9.next=21;break;case 20:_this.printLogMessage("4574152 \u4E0D\u61C9\u8A72\u8D70\u5230\u9019\u88CF,\u4F46\u662F minor issue",true);case 21:if(_this.queueOfExecutingTask.length>_this.maximumOfWorker)_this.printLogMessage("4512214 \u4E00\u5B9A\u662F\u6539\u58DE\u4E86!!!!!!!!!!, ".concat(_this.getLogMessageOfExecutingTaskQueueCount," "),true);self.printLogMessage("5478421212, \u96E2\u958B run()");case 23:case"end":return _context9.stop()}},_callee9)})));(0,_defineProperty2["default"])(this,"getTaskInfoForRepetitiveRun",function(originalTaskInfo){var newTaskInfo={task:originalTaskInfo.task,hash:_index2.utiller.getRandomHash()};_this.appendHashTaskMap(newTaskInfo);return newTaskInfo});(0,_defineProperty2["default"])(this,"getTaskInfoDependOnPriority",function(){var _iterator3=_createForOfIteratorHelper(_configerer.configerer.POOLLER_PRIORITY),_step3;try{for(_iterator3.s();!(_step3=_iterator3.n()).done;){var prior=_step3.value;if(_this.queueOfAssignTask[prior].length>0){switch(_this.state){case _configerer.configerer.POOLLER_STATE.RUN_BY_EACH_TASK:return _this.queueOfAssignTask[prior].shift();case _configerer.configerer.POOLLER_STATE.RUN_BY_PARAMS:case _configerer.configerer.POOLLER_STATE.RUN_BY_TIMES:case _configerer.configerer.POOLLER_STATE.RUN_INFINITE:var originalTaskInfo=_this.queueOfAssignTask[prior][0];return _this.getTaskInfoForRepetitiveRun(originalTaskInfo);default:throw new _exceptioner["default"](4005,"this.state ==> ".concat(_this.state))}}}}catch(err){_iterator3.e(err)}finally{_iterator3.f()}if(!_lodash["default"].isEqual(_this.state,_configerer.configerer.POOLLER_STATE.RUN_BY_EACH_TASK))throw new _exceptioner["default"](4007)});(0,_defineProperty2["default"])(this,"removeResolveOrRejectPromiseByHash",function(hash,result){var callbackWrapper=_this.mapOfHashNCallbackWrapper[hash];if(callbackWrapper!==undefined){_this.printLogMessage("5644153248, removeResolveOrRejectPromiseByHash \u62FF\u6389\u4E86\u5B8C\u6210\u7684\u4EFB\u52D9(".concat(_this.getLogMessageOfTaskHash(hash),")"));callbackWrapper(result);delete _this.mapOfHashNCallbackWrapper[hash]}_this.removePromiseFromExecutingQueue(hash)});(0,_defineProperty2["default"])(this,"removePromiseFromExecutingQueue",function(hash){_this.printLogMessage("56448412, QueueOfExecutingTask \u62FF\u6389\u4E86\u5B8C\u6210\u7684\u4EFB\u52D9 ".concat(_this.getLogMessageOfTaskHash(hash)));_lodash["default"].remove(_this.queueOfExecutingTask,function(each){return _lodash["default"].isEqual(hash,each.hash)})});(0,_defineProperty2["default"])(this,"runInfiniteInBackground",function(functionOfAsyncTask,interval){_this.invokeInstanceOfBackground(_this.runInInfinite,functionOfAsyncTask,interval)});(0,_defineProperty2["default"])(this,"runByParamInBackGround",function(functionOfAsyncTask){for(var _len3=arguments.length,params=new Array(_len3>1?_len3-1:0),_key3=1;_key3<_len3;_key3++){params[_key3-1]=arguments[_key3]}return _this.invokeInstanceOfBackground.apply(_this,[_this.runByParams,functionOfAsyncTask].concat(params))});(0,_defineProperty2["default"])(this,"runByTimesInBackGround",function(functionOfAsyncTask,times){_this.invokeInstanceOfBackground(_this.runByTimes,functionOfAsyncTask,times);return _this});(0,_defineProperty2["default"])(this,"runByEachTaskInBackGround",function(){for(var _len4=arguments.length,params=new Array(_len4),_key4=0;_key4<_len4;_key4++){params[_key4]=arguments[_key4]}return _this.invokeInstanceOfBackground.apply(_this,[_this.runByEachTask].concat(params))});(0,_defineProperty2["default"])(this,"invokeInstanceOfBackground",function(state){if(_this.atomicBgInstance!==undefined)clearTimeout(_this.atomicBgInstance);for(var _len5=arguments.length,params=new Array(_len5>1?_len5-1:0),_key5=1;_key5<_len5;_key5++){params[_key5-1]=arguments[_key5]}_this.atomicBgInstance=_this.runInBackGround.apply(_this,[state].concat(params));return _this});this.maximumOfWorker=maxWorkers;this.setPoolId(_lodash["default"].toString(name));var _iterator4=_createForOfIteratorHelper(_configerer.configerer.POOLLER_PRIORITY),_step4;try{for(_iterator4.s();!(_step4=_iterator4.n()).done;){var prior=_step4.value;this.queueOfAssignTask[prior]=[]}}catch(err){_iterator4.e(err)}finally{_iterator4.f()}}return(0,_createClass2["default"])(InfinitePool,[{key:"enableQueueTerminateBySleepCount",value:function enableQueueTerminateBySleepCount(){var enable=arguments.length>0&&arguments[0]!==undefined?arguments[0]:true;var interval=arguments.length>1&&arguments[1]!==undefined?arguments[1]:_configerer.configerer.POOLLER_QUEUE_TIME_OF_SLEEP_INTERVAL_DEFAULT;var times=arguments.length>2&&arguments[2]!==undefined?arguments[2]:_configerer.configerer.POOLLER_QUEUE_MAX_SLEEP_COUNTS_DEFAULT;this.enableOfQueueTerminateSleepCount=enable;this.queueMaxSleepCounts=times;this.intervalOfQueueSleep=interval}},{key:"clearCache",value:function clearCache(){this.queueOfExecutingTask.length=0;this.mapOfHashNTask={};this.queueOfAssignTask={}}},{key:"terminate",value:function terminate(){this.isQueuePolling=false}},{key:"printLogMessage",value:function printLogMessage(message){var error=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;for(var _len6=arguments.length,infos=new Array(_len6>2?_len6-2:0),_key6=2;_key6<_len6;_key6++){infos[_key6-2]=arguments[_key6]}if(SPECIFICITY_DEBUG)_index2.utiller.printLogMessage.apply(_index2.utiller,[this.getPoollerLogFormat(message),error].concat(infos))}},{key:"setWorker",value:function setWorker(counts){this.maximumOfWorker=counts}},{key:"cleanTaskInterval",value:function cleanTaskInterval(){this.taskSleepInterval={min:0,max:0}}},{key:"enableTaskSleepInterval",value:function enableTaskSleepInterval(){var enable=arguments.length>0&&arguments[0]!==undefined?arguments[0]:true;var interval=arguments.length>1&&arguments[1]!==undefined?arguments[1]:_configerer.configerer.POOLLER_TASK_OF_INTERVAL_DEFAULT;this.enableOfTaskSleepByInterval=enable;if(_lodash["default"].isNumber(interval)){interval={min:interval,max:interval}}this.taskSleepInterval=interval}},{key:"enableTaskTimeout",value:function enableTaskTimeout(){var enable=arguments.length>0&&arguments[0]!==undefined?arguments[0]:true;var millionSec=arguments.length>1&&arguments[1]!==undefined?arguments[1]:_configerer.configerer.POOLLER_TASK_TIMEOUT_DEFAULT;this.enableOfTaskTimeout=enable;this.timeOfTaskTimeout=millionSec}},{key:"addTaskAndWait4Result",value:function(){var _addTaskAndWait4Result=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee0(asyncTask){var _this2=this;var priority,taskName,_args0=arguments;return _regenerator["default"].wrap(function _callee0$(_context0){while(1)switch(_context0.prev=_context0.next){case 0:priority=_args0.length>1&&_args0[1]!==undefined?_args0[1]:"low";taskName=_args0.length>2&&_args0[2]!==undefined?_args0[2]:"noName";this.triggerBgInstance();return _context0.abrupt("return",new Promise(function(resolve,reject){var callbackWrapper=function callbackWrapper(result){if(result.assignedTaskCompleted){resolve(result.resolve)}else{reject(result.reject)}};var hash=_this2.add(asyncTask,priority);_this2.registerHash4Result(hash,callbackWrapper)}));case 4:case"end":return _context0.stop()}},_callee0,this)}));function addTaskAndWait4Result(_x3){return _addTaskAndWait4Result.apply(this,arguments)}return addTaskAndWait4Result}()},{key:"registerHash4Result",value:function registerHash4Result(hash,callback){this.mapOfHashNCallbackWrapper[hash]=callback}},{key:"appendHashTaskMap",value:function appendHashTaskMap(taskInfo){this.mapOfHashNTask[taskInfo.hash]=taskInfo}},{key:"getTaskInfoByHash",value:function getTaskInfoByHash(hash){return this.mapOfHashNTask[hash]}},{key:"remove",value:function remove(hash){var taskInfo=this.getTaskInfoByHash(hash);if(taskInfo){var _iterator5=_createForOfIteratorHelper(_configerer.configerer.POOLLER_PRIORITY),_step5;try{for(_iterator5.s();!(_step5=_iterator5.n()).done;){var prior=_step5.value;var _index=_lodash["default"].indexOf(this.queueOfAssignTask[prior],taskInfo);if(_index>0){this.queueOfAssignTask[prior].splice(_index,1);this.removeTaskMapByHash(hash);return true}}}catch(err){_iterator5.e(err)}finally{_iterator5.f()}return false}else{throw new _exceptioner["default"](4004,hash)}}},{key:"setState",value:function setState(_state){this.state=_state}},{key:"checkAndMarkInitialTaskStatus",value:function checkAndMarkInitialTaskStatus(){if(!this.initialTaskCompleted){this.initialTaskCompleted=true;return false}return this.initialTaskCompleted}},{key:"setDisableFirstRun",value:function setDisableFirstRun(){var disable=arguments.length>0&&arguments[0]!==undefined?arguments[0]:true;this.disableFirstRun=disable}},{key:"triggerBgInstance",value:function triggerBgInstance(){if(!this.isRunInBackgroundMode||this.isQueuePolling){return}if(this.state===_configerer.configerer.POOLLER_STATE.RUN_BY_EACH_TASK){this.runByEachTaskInBackGround();return}else if(this.state===_configerer.configerer.POOLLER_STATE.RUN_BY_PARAMS){this.runByParamInBackGround();return}throw new _exceptioner["default"](4011,"this.state is ==> ".concat(_index2.utiller.getItsKeyByValue(_configerer.configerer.POOLLER_STATE,this.state)))}},{key:"isExecutingQueueFull",value:function isExecutingQueueFull(){return _lodash["default"].size(this.queueOfExecutingTask)>=this.maximumOfWorker}},{key:"isTaskQueueEmpty",value:function isTaskQueueEmpty(){return this.getCountOfAssignTaskInQueue()===0}},{key:"syncTaskDispatcher",value:(function(){var _syncTaskDispatcher=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee1(){var initialTaskShouldNotRun,isExecutingTaskAlmostFull,comparison,restInInterval,taskInfo,promise;return _regenerator["default"].wrap(function _callee1$(_context1){while(1)switch(_context1.prev=_context1.next){case 0:this.printLogMessage("448984466, \u8D70\u9032\u4F86\u4E86 syncTaskDispatcher()");initialTaskShouldNotRun=this.disableFirstRun&&!this.checkAndMarkInitialTaskStatus();isExecutingTaskAlmostFull=this.queueOfExecutingTask.length>=this.maximumOfWorker-1;comparison=this.checkAndMarkInitialTaskStatus()&&isExecutingTaskAlmostFull&&this.enableOfTaskSleepByInterval;if(!(initialTaskShouldNotRun||comparison)){_context1.next=9;break}_context1.next=7;return _index2.utiller.syncDelayRandom(this.taskSleepInterval.min,this.taskSleepInterval.max);case 7:restInInterval=_context1.sent;this.printLogMessage("4484121, \u8D70\u5230\u7761\u89BA\u5340 enableOfTaskSleepByInterval:".concat(this.enableOfTaskSleepByInterval," || ").concat(restInInterval," ms"));case 9:if(!this.rulesOfAppendToExecutingTask()){_context1.next=21;break}taskInfo=this.getTaskInfoDependOnPriority();if(!taskInfo){_context1.next=17;break}promise=this.taskWrapper(taskInfo.task,taskInfo.hash,this.queueOfWaitingParam.shift());if(this.state===_configerer.configerer.POOLLER_STATE.RUN_BY_EACH_TASK){this.removeTaskMapByHash(taskInfo.hash)}else{}this.appendTaskToExecuteQueue(taskInfo.hash,promise);_context1.next=19;break;case 17:this.printLogMessage("848451 \u4E5F\u8A31\u6709\u672A\u77E5\u7684isssue,\u4FDD\u96AA\u8D77\u898Bbreak,\u662F\u4E0D\u662F\u5728\u9019\u88E1\u7121\u9650\u8FF4\u5708\u8DD1\u8DD1\u8DD1",true);return _context1.abrupt("break",21);case 19:_context1.next=9;break;case 21:this.printLogMessage("4489844821, \u96E2\u958B\u4E86 syncTaskDispatcher()");case 22:case"end":return _context1.stop()}},_callee1,this)}));function syncTaskDispatcher(){return _syncTaskDispatcher.apply(this,arguments)}return syncTaskDispatcher}())},{key:"isWait4ResultTask",value:function isWait4ResultTask(hash){return this.mapOfHashNCallbackWrapper[hash]!==undefined}}])}();var _default=exports["default"]=InfinitePool;
|
package/lib/utiller/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports["default"]=void 0;var _regenerator=_interopRequireDefault(require("@babel/runtime/regenerator"));var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _typeof2=_interopRequireDefault(require("@babel/runtime/helpers/typeof"));var _toConsumableArray2=_interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));var _lodash=_interopRequireDefault(require("lodash"));var _cryptoJs=_interopRequireDefault(require("crypto-js"));var _configerer=require("configerer");var _exceptioner=_interopRequireDefault(require("../exceptioner"));var _momentTimezone=_interopRequireDefault(require("moment-timezone"));var _uuid=require("uuid");var _words=require("../words");var _nodeHtmlParser=require("node-html-parser");function _createForOfIteratorHelper(r,e){var t="undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(!t){if(Array.isArray(r)||(t=_unsupportedIterableToArray(r))||e&&r&&"number"==typeof r.length){t&&(r=t);var _n=0,F=function F(){};return{s:F,n:function n(){return _n>=r.length?{done:!0}:{done:!1,value:r[_n++]}},e:function e(r){throw r},f:F}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,u=!1;return{s:function s(){t=t.call(r)},n:function n(){var r=t.next();return a=r.done,r},e:function e(r){u=!0,o=r},f:function f(){try{a||null==t["return"]||t["return"]()}finally{if(u)throw o}}}}function _unsupportedIterableToArray(r,a){if(r){if("string"==typeof r)return _arrayLikeToArray(r,a);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0}}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n}function ownKeys(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})),t.push.apply(t,o)}return t}function _objectSpread(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?ownKeys(Object(t),!0).forEach(function(r){(0,_defineProperty2["default"])(e,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})}return e}String.format=function(){var param=[];for(var i=0,l=arguments.length;i<l;i++){param.push(arguments[i])}var statment=param[0];param.shift();return statment.replace(/\{(\d+)\}/g,function(m,n){return param[n]})};var Utiller=function(){function Utiller(){var _this=this;(0,_classCallCheck2["default"])(this,Utiller);(0,_defineProperty2["default"])(this,"mapOfIdNTimeoutId",{});(0,_defineProperty2["default"])(this,"getEnvironment",function(){return _this.env});(0,_defineProperty2["default"])(this,"isProductionEnvironment",function(){return _lodash["default"].isEqual(_this.getEnvironment(),"prod")});(0,_defineProperty2["default"])(this,"asyncUnitTaskFunction",function(){var millionSec=arguments.length>0&&arguments[0]!==undefined?arguments[0]:2000;var _funparam=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"\u9810\u8A2D\u7684param";var errorSimulator=arguments.length>2?arguments[2]:undefined;return(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee(){var param,randomValue,symbol,_args=arguments;return _regenerator["default"].wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:param=_args.length>0&&_args[0]!==undefined?_args[0]:_this.getRandomHash(10);randomValue=_this.getRandomValue(millionSec,millionSec*1.2);_context.prev=2;symbol=randomValue;_this.appendInfo("before executed ===> i'm symbol of ".concat(symbol,", ready to be executed, inner param = ").concat(_funparam));_context.next=7;return _this.syncDelay(randomValue);case 7:if(!(_lodash["default"].isFunction(errorSimulator)&&errorSimulator(param))){_context.next=9;break}throw Error("force to made error happen");case 9:_this.appendInfo("after executed ===> i'm symbol of ".concat(symbol,", the task cost ").concat(randomValue," million-seconds ").concat(param?"i hav params ===> ".concat(param):""));return _context.abrupt("return",{randomValue:randomValue,symbol:symbol,param:param});case 13:_context.prev=13;_context.t0=_context["catch"](2);_this.appendError(new Error("asyncUnitTask() catch error ".concat(_context.t0.message)));case 16:_context.prev=16;_this.appendInfo("wow.... finally got you");return _context.finish(16);case 19:case"end":return _context.stop()}},_callee,null,[[2,13,16,19]])}))});(0,_defineProperty2["default"])(this,"test",function(word){return(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee2(){return _regenerator["default"].wrap(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:_context2.next=2;return Util.syncDelay(3000);case 2:console.log("\u7D93\u904E\u4E86\u4E09\u79D2");_context2.next=5;return Util.syncDelay(4000);case 5:console.log("\u7D93\u904E\u4E86\u56DB\u79D2");_context2.next=8;return Util.syncDelay(5000);case 8:console.log("\u7D93\u904E\u4E86\u4E94\u79D2");_context2.next=11;return Util.syncDelay(6000);case 11:console.log("\u7D93\u904E\u4E86\u516D\u79D2");return _context2.abrupt("return","3423809432804 ".concat(word));case 13:case"end":return _context2.stop()}},_callee2)}))});(0,_defineProperty2["default"])(this,"findLowestValue",function(items){var key=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"price";var minPrice=_lodash["default"].minBy(items,key)[key];return Math.floor(minPrice)});(0,_defineProperty2["default"])(this,"findHighestValue",function(items){var key=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"price";var maxPrice=_lodash["default"].maxBy(items,key)[key];return Math.floor(maxPrice)});(0,_defineProperty2["default"])(this,"getStringOfValueRange",function(items){var key=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"price";var sign=arguments.length>2&&arguments[2]!==undefined?arguments[2]:"$";var minV=_lodash["default"].minBy(items,key)[key];var maxV=_lodash["default"].maxBy(items,key)[key];return maxV===minV?"$".concat(minV):"".concat(sign).concat(minV," - ").concat(sign).concat(maxV)});(0,_defineProperty2["default"])(this,"getCallersName",function(){var callerName;try{throw new Error}catch(e){var re=/(\w+)@|at (\w+) \(/g,st=e.stack,m;re.exec(st),m=re.exec(st);if(!_lodash["default"].isNull(m))callerName=m[1]||m[2]}if(_lodash["default"].startsWith("asyncGeneratorStep",callerName))callerName="";return callerName});(0,_defineProperty2["default"])(this,"getRandomValue",function(min,max){min=Math.ceil(min);max=Math.floor(max);return Math.floor(Math.random()*(max-min+1))+min});(0,_defineProperty2["default"])(this,"insertToArray",function(array,index){if(!Array.isArray(array)){throw new Error("First argument must be an array.")}var insertAt=Math.max(0,Math.min(index+1,array.length));for(var _len=arguments.length,items=new Array(_len>2?_len-2:0),_key2=2;_key2<_len;_key2++){items[_key2-2]=arguments[_key2]}array.splice.apply(array,[insertAt,0].concat(items))});(0,_defineProperty2["default"])(this,"getStringOfYearADConvertToMinguoYear",function(gregorianYear){var full=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;var minguoYear=gregorianYear-1911;if(minguoYear>0){return"".concat(full?"\u6C11\u570B":"").concat(minguoYear).concat(full?"\u5E74":"")}else{return"".concat(full?"\u6C11\u570B":"","\u524D").concat(Math.abs(minguoYear)).concat(full?"\u5E74":"")}});(0,_defineProperty2["default"])(this,"convertDateToTimestamp",function(date){return(0,_momentTimezone["default"])(date).valueOf()});(0,_defineProperty2["default"])(this,"measureExecutionTime",function(){var _ref3=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee3(fn){var startTime,_len2,param,_key3,endTime,durationInMilliseconds,duration,hours,minutes,seconds,milliseconds,totalSeconds,_args3=arguments;return _regenerator["default"].wrap(function _callee3$(_context3){while(1)switch(_context3.prev=_context3.next){case 0:startTime=Date.now();for(_len2=_args3.length,param=new Array(_len2>1?_len2-1:0),_key3=1;_key3<_len2;_key3++){param[_key3-1]=_args3[_key3]}_context3.next=4;return fn.apply(void 0,param);case 4:endTime=Date.now();durationInMilliseconds=endTime-startTime;duration=_momentTimezone["default"].duration(durationInMilliseconds,"milliseconds");hours=Math.floor(duration.asHours());minutes=duration.minutes();seconds=duration.seconds();milliseconds=duration.milliseconds();totalSeconds=(durationInMilliseconds/1000).toFixed(3);_this.appendInfo("".concat(hours,"\u5C0F\u6642 ").concat(minutes,"\u5206 ").concat(seconds,".").concat(milliseconds.toString().padStart(3,"0"),"\u79D2 (\u5408\u8A08 ").concat(totalSeconds," \u79D2)"));case 13:case"end":return _context3.stop()}},_callee3)}));return function(_x){return _ref3.apply(this,arguments)}}());(0,_defineProperty2["default"])(this,"formatPriceWithCurrency",function(number,locale){if(typeof number!=="number"||typeof locale!=="string"){throw new TypeError("Invalid input: number must be a number and locale must be a string.")}return new Intl.NumberFormat(locale,{style:"currency",currency:new Intl.Locale(locale).maximize().currency||"USD",minimumFractionDigits:0}).format(number)});(0,_defineProperty2["default"])(this,"formatPrice",function(number,locale){if(typeof number!=="number"){throw new TypeError("Invalid input: number must be a number.")}if(!locale){return number.toLocaleString("en-US")}return new Intl.NumberFormat(locale,{style:"currency",currency:new Intl.Locale(locale).maximize().currency||"USD",minimumFractionDigits:0}).format(number)});(0,_defineProperty2["default"])(this,"generateUniversalKeywords",function(sentence){var maxLength=arguments.length>1&&arguments[1]!==undefined?arguments[1]:50;var maxNgramLength=arguments.length>2&&arguments[2]!==undefined?arguments[2]:4;if(!sentence||typeof sentence!=="string"){return[]}if(typeof _lodash["default"]==="undefined"){console.error("Lodash is not available. Please ensure it is imported.");return[]}var textToProcess=sentence.trim();var keywords=[];maxNgramLength=Math.max(2,maxNgramLength);if(textToProcess.length>maxLength){console.warn("\u8B66\u544A\uFF1A\u8F38\u5165\u5B57\u4E32\u9577\u5EA6\u70BA ".concat(textToProcess.length,"\uFF0C\u5DF2\u6839\u64DA maxLength: ").concat(maxLength," \u622A\u65B7\u3002"));textToProcess=textToProcess.substring(0,maxLength)}var englishWords=textToProcess.match(/[a-zA-Z]+/g)||[];englishWords.forEach(function(word){if(word.length>=2){keywords.push(word.toUpperCase());keywords.push(word.toLowerCase());var capitalized=word.charAt(0).toUpperCase()+word.slice(1).toLowerCase();keywords.push(capitalized)}});var specKeywordsRegex=/\b[0-9]+[a-zA-Z]{1,4}\b|\b[0-9]{1,3}(w|ml|g|oz|k)\b|[\u4e00-\u9fa5a-zA-Z0-9]{1,4}(色|號)[\u4e00-\u9fa5a-zA-Z0-9]{0,2}/gi;var specKeywords=(textToProcess.match(specKeywordsRegex)||[]).filter(function(k){return k.length>=2}).map(function(k){return k.toLowerCase()});keywords.push.apply(keywords,(0,_toConsumableArray2["default"])(specKeywords));var cleanText=textToProcess.toLowerCase();cleanText=cleanText.replace(/[0-9]+([\u4e00-\u9fa5a-z]{1,4}|[\/\-\~\\])/g," ").replace(/\b[a-z]{1,4}\b/g," ").replace(/\b[0-9]{1,3}\b/g," ");cleanText=cleanText.replace(/[!@#$%^&*()_+={}\[\]:;"'<>,.?\/\\|`~]/g," ").replace(/系列|一組|單色|多款|套組|全套|專用|迷你|頂級|高品質|超閃|奢華|最新|款式|新款|超亮|的|與|和|閃|美甲/g," ").replace(/\s+/g,"").trim();var minLength=2;for(var len=minLength;len<=maxNgramLength;len++){for(var i=0;i<=cleanText.length-len;i++){var keyword=cleanText.substring(i,i+len);keywords.push(keyword)}}var finalKeywords=_lodash["default"].chain(keywords).filter(function(k){return k.length>=2}).filter(function(k){return k.length>2||!/^[\u4e00-\u9fa5a-z0-9]$/.test(k)}).uniq().sortBy().value();return finalKeywords});(0,_defineProperty2["default"])(this,"mutateIndexOfArrayItem",function(array,object){var index=arguments.length>2&&arguments[2]!==undefined?arguments[2]:0;if(!Array.isArray(array)||!_lodash["default"].isObject(object))return array;var currentIndex=_lodash["default"].findIndex(array,function(item){return _lodash["default"].isEqual(item,object)});if(currentIndex===-1)return array;array.splice(currentIndex,1);var targetIndex=_lodash["default"].clamp(index,0,array.length);array.splice(targetIndex,0,object);return array});(0,_defineProperty2["default"])(this,"getArrayOfModifyObject2Index",function(array,object){var index=arguments.length>2&&arguments[2]!==undefined?arguments[2]:0;if(!Array.isArray(array)||!_lodash["default"].isObject(object))return array;var cloned=_lodash["default"].cloneDeep(array);var currentIndex=_lodash["default"].findIndex(cloned,function(item){return _lodash["default"].isEqual(item,object)});if(currentIndex===-1)return array;cloned.splice(currentIndex,1);var targetIndex=_lodash["default"].clamp(index,0,cloned.length);cloned.splice(targetIndex,0,object);return cloned});(0,_defineProperty2["default"])(this,"generateLabelValuePairsWithOrigin",function(){var origin=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[{label:"aa",value:1203},{label:"cc",value:1204},{label:"gg",value:2}];var latest=arguments.length>1&&arguments[1]!==undefined?arguments[1]:["aa","bb"];var usedValues=new Set(origin.map(function(o){return o.value}));return _lodash["default"].chain(latest).uniq().map(function(label){var originItem=_lodash["default"].find(origin,{label:label});if(originItem){return{label:label,value:originItem.value}}var value;do{value=_lodash["default"].random(2,999999999)}while(usedValues.has(value));usedValues.add(value);return{label:label,value:value}}).value()});(0,_defineProperty2["default"])(this,"getItemsOfMarkMatching",function(){var sourceArray=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[];var values=arguments.length>1&&arguments[1]!==undefined?arguments[1]:[];var valueKey=arguments.length>2&&arguments[2]!==undefined?arguments[2]:"value";var flagKey=arguments.length>3&&arguments[3]!==undefined?arguments[3]:"belong";var valuesSet=new Set(values);return _lodash["default"].map(sourceArray,function(item){return _objectSpread(_objectSpread({},item),{},(0,_defineProperty2["default"])({},flagKey,valuesSet.has(item[valueKey])))})});(0,_defineProperty2["default"])(this,"generateVariants",function(arrays){var labelSeparator=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"\uFF5C";var valueSeparator=arguments.length>2&&arguments[2]!==undefined?arguments[2]:"-";var nonEmptyArrays=arrays.filter(function(arr){return arr.length>0});if(nonEmptyArrays.length===0)return[];if(nonEmptyArrays.length===1){return nonEmptyArrays[0].map(function(item){return{label:item.label,value:item.value}})}var combinations=_lodash["default"].reduce(nonEmptyArrays,function(acc,curr){return _lodash["default"].flatMap(acc,function(a){return curr.map(function(b){return[].concat((0,_toConsumableArray2["default"])(a),[b])})})},[[]]);return combinations.map(function(comb){return{label:comb.map(function(item){return item.label}).join(labelSeparator),value:comb.map(function(item){return item.value}).join(valueSeparator)}})});(0,_defineProperty2["default"])(this,"renameKeysInArray",function(arr){for(var _len3=arguments.length,keyMappings=new Array(_len3>1?_len3-1:0),_key4=1;_key4<_len3;_key4++){keyMappings[_key4-1]=arguments[_key4]}var mapping=Object.fromEntries(keyMappings);return arr.map(function(item){return _lodash["default"].mapKeys(item,function(value,key){return mapping[key]||key})})});(0,_defineProperty2["default"])(this,"getArrayOfMergeBySpecificId",function(array1,array2){var idKey=arguments.length>2&&arguments[2]!==undefined?arguments[2]:"id";if(!Array.isArray(array2))return array1;var map2=_lodash["default"].keyBy(array2,function(item){return _lodash["default"].get(item,idKey)});return array1.map(function(item){var id=_lodash["default"].get(item,idKey);var match=map2[id];return match?_lodash["default"].merge({},item,match):item})});(0,_defineProperty2["default"])(this,"toPercentageDecimal",function(num){if(_lodash["default"].isNil(num))return 1;if(_lodash["default"].isString(num)){num=num.replace(/%/g,"").trim()}var parsed=_lodash["default"].toNumber(num);if(!_lodash["default"].isFinite(parsed))return 1;return _lodash["default"].round(parsed/100,10)});(0,_defineProperty2["default"])(this,"getNumberOfMultiplyCeil",function(a,b){var precision=arguments.length>2&&arguments[2]!==undefined?arguments[2]:0;var factor=Math.pow(10,precision);return Math.ceil(a*b*factor)/factor});(0,_defineProperty2["default"])(this,"generateGoogleCalendarLink",function(_ref4){var title=_ref4.title,startDate=_ref4.startDate,startTime=_ref4.startTime,endDate=_ref4.endDate,endTime=_ref4.endTime,location=_ref4.location,details=_ref4.details;var startDateTime=(0,_momentTimezone["default"])("".concat(startDate," ").concat(startTime),"YYYY/MM/DD HH:mm").format("YYYYMMDDTHHmmss");var endDateTime=(0,_momentTimezone["default"])("".concat(endDate," ").concat(endTime),"YYYY/MM/DD HH:mm").format("YYYYMMDDTHHmmss");var params=new URLSearchParams;if(title)params.append("text",title);if(startDateTime&&endDateTime)params.append("dates","".concat(startDateTime,"/").concat(endDateTime));if(details)params.append("details",details);if(location)params.append("location",location);params.append("ctz","Asia/Taipei");params.append("trp","true");return"https://calendar.google.com/calendar/r/eventedit?".concat(params.toString())});(0,_defineProperty2["default"])(this,"generateTimeTreeLink",function(_ref5){var title=_ref5.title,startDate=_ref5.startDate,startTime=_ref5.startTime,endDate=_ref5.endDate,endTime=_ref5.endTime,location=_ref5.location,memo=_ref5.memo;var params=new URLSearchParams;if(title)params.append("title",title);if(startDate)params.append("start_date",startDate.replace(/\//g,"-"));if(startTime)params.append("start_time",startTime);if(endDate)params.append("end_date",endDate.replace(/\//g,"-"));if(endTime)params.append("end_time",endTime);if(location)params.append("location",location);if(memo)params.append("memo",memo);return"https://timetreeapp.com/plans/new?".concat(params.toString())});(0,_defineProperty2["default"])(this,"generateIcsContent",function(_ref6){var title=_ref6.title,startDate=_ref6.startDate,startTime=_ref6.startTime,endDate=_ref6.endDate,endTime=_ref6.endTime,location=_ref6.location,details=_ref6.details;var startDateTime=_momentTimezone["default"].tz("".concat(startDate," ").concat(startTime),"YYYY/MM/DD HH:mm","Asia/Taipei").format("YYYYMMDDTHHmmss");var endDateTime=_momentTimezone["default"].tz("".concat(endDate," ").concat(endTime),"YYYY/MM/DD HH:mm","Asia/Taipei").format("YYYYMMDDTHHmmss");var stamp=(0,_momentTimezone["default"])().utc().format("YYYYMMDDTHHmmss")+"Z";var uid=Date.now().toString(36)+Math.random().toString(36).substring(2,5)+"@gemini-app.com";var escapeIcs=function escapeIcs(text){return text.replace(/\\/g,"\\\\").replace(/,/g,"\\,").replace(/;/g,"\\;").replace(/\n/g,"\\n")};var lines=["BEGIN:VCALENDAR","VERSION:2.0","PRODID:-//Gemini AI//NONSGML v1.0//EN","BEGIN:VEVENT","UID:".concat(uid),"DTSTAMP:".concat(stamp)];if(startDateTime)lines.push("DTSTART;TZID=Asia/Taipei:".concat(startDateTime));if(endDateTime)lines.push("DTEND;TZID=Asia/Taipei:".concat(endDateTime));if(title)lines.push("SUMMARY:".concat(escapeIcs(title)));if(location)lines.push("LOCATION:".concat(escapeIcs(location)));if(details)lines.push("DESCRIPTION:".concat(escapeIcs(details)));lines.push("END:VEVENT","END:VCALENDAR");return lines.join("\r\n")});(0,_defineProperty2["default"])(this,"generateAllCalendarLinks",function(event){var googleLink=_this.generateGoogleCalendarLink(event);var timeTreeEvent=_objectSpread(_objectSpread({},event),{},{memo:event.details});var timeTreeLink=_this.generateTimeTreeLink(timeTreeEvent);var icsContent=_this.generateIcsContent(event);var icsLink="data:text/calendar;charset=utf8,".concat(encodeURIComponent(icsContent));return{google:googleLink,timeTree:timeTreeLink,ics:icsLink}});(0,_defineProperty2["default"])(this,"getArrayOfMappingRef",function(current,reference){return _lodash["default"].map(current,function(currentObj){var referenceObj=_lodash["default"].find(reference,{value:currentObj.value});return referenceObj?_lodash["default"].merge({},currentObj,referenceObj):currentObj})});(0,_defineProperty2["default"])(this,"areAllValuesTheSameOnKeys",function(array){for(var _len4=arguments.length,keys=new Array(_len4>1?_len4-1:0),_key5=1;_key5<_len4;_key5++){keys[_key5-1]=arguments[_key5]}if(!array||array.length<=1||keys.length===0){return true}var _loop=function _loop(){var _array$;var keyName=_keys[_i];var firstValue=(_array$=array[0])===null||_array$===void 0?void 0:_array$[keyName];var isCurrentKeySame=_lodash["default"].every(array,function(item){return item[keyName]===firstValue});if(!isCurrentKeySame){return{v:false}}},_ret;for(var _i=0,_keys=keys;_i<_keys.length;_i++){_ret=_loop();if(_ret)return _ret.v}return true});this.init();this.env="dev"}return(0,_createClass2["default"])(Utiller,[{key:"removeAttributeBy",value:function removeAttributeBy(object){var predicate=arguments.length>1&&arguments[1]!==undefined?arguments[1]:function(value){return _lodash["default"].isUndefined(value)};for(var _key6 in object){if(predicate(object[_key6])){delete object[_key6]}}}},{key:"getNumberOfNormalize",value:function getNumberOfNormalize(value){var defaultValue=arguments.length>1&&arguments[1]!==undefined?arguments[1]:0;if(_lodash["default"].isNumber(value))return value;try{var force=_lodash["default"].toNumber(value);return _lodash["default"].isNumber(force)&&!isNaN(force)?force:defaultValue}catch(error){Util.appendError("448561684561 ".concat(error.message))}return defaultValue}},{key:"getBooleanOfNormalize",value:function getBooleanOfNormalize(value){var defaultValue=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;if(_lodash["default"].isBoolean(value))return value;if(_lodash["default"].isNumber(value)&&_lodash["default"].isEqual(value,1))return true;if(_lodash["default"].isNumber(value)&&_lodash["default"].isEqual(value,0))return true;try{var force=JSON.parse(_lodash["default"].toString(value).toLowerCase());return _lodash["default"].isBoolean(force)?force:defaultValue}catch(error){Util.appendError("448561684562 ".concat(error.message))}return defaultValue}},{key:"getStringOfNormalize",value:function getStringOfNormalize(value){var defaultValue=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"";var trim=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;if(_lodash["default"].isString(value))return trim?_lodash["default"].trim(value):value;try{var force=_lodash["default"].toString(value);return this.isOrEquals(force,"","undefined")?defaultValue:trim?_lodash["default"].trim(force):force}catch(error){Util.appendError("448616845453 ".concat(error.message))}return defaultValue}},{key:"isValidVersionOfString",value:function isValidVersionOfString(versionName){if(this.isUndefinedNullEmpty(versionName)){return false}var numbers=versionName.split(".");var _iterator=_createForOfIteratorHelper(numbers),_step;try{for(_iterator.s();!(_step=_iterator.n()).done;){var number=_step.value;var toNum=_lodash["default"].toNumber(number);if(!_lodash["default"].isNumber(toNum)||isNaN(toNum))return false}}catch(err){_iterator.e(err)}finally{_iterator.f()}return true}},{key:"getSeparatorOfUnique",value:function getSeparatorOfUnique(){return"\u0F0D\u0F0D"}},{key:"getStringOfVersionIncrement",value:function getStringOfVersionIncrement(stringOfVersion){var delta=arguments.length>1&&arguments[1]!==undefined?arguments[1]:1;var numbers=stringOfVersion.split(".").map(function(each){return _lodash["default"].toNumber(each)});var last=numbers.length-1;numbers[last]=numbers[last]+delta;return numbers.join(".")}},{key:"setLocaleOfMoment",value:function setLocaleOfMoment(){var locale=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"en";_momentTimezone["default"].locale(locale)}},{key:"getUuidOfV4",value:function getUuidOfV4(){return(0,_uuid.v4)()}},{key:"performActionWithoutTimingIssue",value:function performActionWithoutTimingIssue(){var task=arguments.length>0&&arguments[0]!==undefined?arguments[0]:function(){return true};var wait=arguments.length>1&&arguments[1]!==undefined?arguments[1]:10;this.syncDelay(wait).then(function(){return task()})}},{key:"executeTimeoutTask",value:function executeTimeoutTask(functionOfAsyncTask){var ms=arguments.length>1&&arguments[1]!==undefined?arguments[1]:1000;var id=arguments.length>2&&arguments[2]!==undefined?arguments[2]:this.getRandomHash();var self=this;var idOfCurrentTimeoutTask=this.mapOfIdNTimeoutId[id];if(idOfCurrentTimeoutTask)clearTimeout(idOfCurrentTimeoutTask);for(var _len5=arguments.length,params=new Array(_len5>3?_len5-3:0),_key7=3;_key7<_len5;_key7++){params[_key7-3]=arguments[_key7]}var idOfTimeoutTask=setTimeout.apply(void 0,[(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee4(){return _regenerator["default"].wrap(function _callee4$(_context4){while(1)switch(_context4.prev=_context4.next){case 0:_context4.next=2;return functionOfAsyncTask();case 2:delete self.mapOfIdNTimeoutId[id];case 3:case"end":return _context4.stop()}},_callee4)})),ms].concat(params));self.mapOfIdNTimeoutId[id]=idOfTimeoutTask}},{key:"printLogMessage",value:function printLogMessage(message){var error=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;if(!this.isProductionEnvironment()){for(var _len6=arguments.length,infos=new Array(_len6>2?_len6-2:0),_key8=2;_key8<_len6;_key8++){infos[_key8-2]=arguments[_key8]}if(error){this.appendError.apply(this,[message].concat(infos))}else{this.appendInfo.apply(this,[message].concat(infos))}}}},{key:"init",value:function init(){}},{key:"setEnvironment",value:function setEnvironment(env){this.env=env}},{key:"appendInfo",value:function appendInfo(){var _console;if(this.isProductionEnvironment())return;(_console=console).log.apply(_console,arguments)}},{key:"appendError",value:function appendError(){var _console2;if(this.isProductionEnvironment())return;(_console2=console).error.apply(_console2,arguments)}},{key:"syncDelay",value:function(){var _syncDelay=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee5(){var delayInms,_args5=arguments;return _regenerator["default"].wrap(function _callee5$(_context5){while(1)switch(_context5.prev=_context5.next){case 0:delayInms=_args5.length>0&&_args5[0]!==undefined?_args5[0]:2000;return _context5.abrupt("return",new Promise(function(resolve){setTimeout(function(){resolve(delayInms)},delayInms)}));case 2:case"end":return _context5.stop()}},_callee5)}));function syncDelay(){return _syncDelay.apply(this,arguments)}return syncDelay}()},{key:"startWithRegex",value:function startWithRegex(){var string=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"";var rule=arguments.length>1&&arguments[1]!==undefined?arguments[1]:".";var pattern=new RegExp("^".concat(rule),"i");return pattern.test(string)}},{key:"accumulate",value:function accumulate(target,conditions){var beginning=target;var _iterator2=_createForOfIteratorHelper(conditions),_step2;try{for(_iterator2.s();!(_step2=_iterator2.n()).done;){var condition=_step2.value;if(condition!==undefined&&_lodash["default"].isFunction(condition)){beginning=condition(beginning)}}}catch(err){_iterator2.e(err)}finally{_iterator2.f()}return beginning}},{key:"isOrEquals",value:function isOrEquals(target){for(var _len7=arguments.length,several=new Array(_len7>1?_len7-1:0),_key9=1;_key9<_len7;_key9++){several[_key9-1]=arguments[_key9]}for(var _i2=0,_several=several;_i2<_several.length;_i2++){var each=_several[_i2];if(_lodash["default"].isEqual(target,each))return true}return false}},{key:"isAndEquals",value:function isAndEquals(){for(var _len8=arguments.length,predicates=new Array(_len8),_key10=0;_key10<_len8;_key10++){predicates[_key10]=arguments[_key10]}for(var _i3=0,_predicates=predicates;_i3<_predicates.length;_i3++){var predicate=_predicates[_i3];if(!predicate()){return false}}return true}},{key:"getStringOfHeadMatch",value:function getStringOfHeadMatch(string,regex){var flag=arguments.length>2&&arguments[2]!==undefined?arguments[2]:"g";var result=string.match(new RegExp(regex,flag));return this.isUndefinedNullEmpty(result)?undefined:result[0]}},{key:"or",value:function or(){for(var _len9=arguments.length,booleans=new Array(_len9),_key11=0;_key11<_len9;_key11++){booleans[_key11]=arguments[_key11]}for(var _i4=0,_booleans=booleans;_i4<_booleans.length;_i4++){var boo=_booleans[_i4];if(_lodash["default"].isBoolean(boo)&&boo)return true}return false}},{key:"and",value:function and(){for(var _len10=arguments.length,booleans=new Array(_len10),_key12=0;_key12<_len10;_key12++){booleans[_key12]=arguments[_key12]}for(var _i5=0,_booleans2=booleans;_i5<_booleans2.length;_i5++){var boo=_booleans2[_i5];if(!!!boo)return false}return true}},{key:"nth",value:function nth(array){var index=arguments.length>1&&arguments[1]!==undefined?arguments[1]:-1;return _lodash["default"].nth(array,index%_lodash["default"].size(array))}},{key:"getExistOne",value:function getExistOne(){for(var _len11=arguments.length,candidates=new Array(_len11),_key13=0;_key13<_len11;_key13++){candidates[_key13]=arguments[_key13]}for(var _i6=0,_candidates=candidates;_i6<_candidates.length;_i6++){var candidate=_candidates[_i6];if(candidate)return candidate}}},{key:"getStringOfDropHeadSign",value:function getStringOfDropHeadSign(string,sign){return _lodash["default"].dropWhile(Array.from(string),function(each){return _lodash["default"].isEqual(each,sign)}).join("")}},{key:"isAndWith",value:function isAndWith(self,predicate){for(var _len12=arguments.length,several=new Array(_len12>2?_len12-2:0),_key14=2;_key14<_len12;_key14++){several[_key14-2]=arguments[_key14]}for(var _i7=0,_several2=several;_i7<_several2.length;_i7++){var each=_several2[_i7];if(!predicate(self,each))return false}return true}},{key:"syncDelayRandom",value:function(){var _syncDelayRandom=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee6(){var min,max,random,_args6=arguments;return _regenerator["default"].wrap(function _callee6$(_context6){while(1)switch(_context6.prev=_context6.next){case 0:min=_args6.length>0&&_args6[0]!==undefined?_args6[0]:3000;max=_args6.length>1&&_args6[1]!==undefined?_args6[1]:5000;random=this.getRandomValue(min,max);_context6.next=5;return this.syncDelay(random);case 5:return _context6.abrupt("return",random);case 6:case"end":return _context6.stop()}},_callee6,this)}));function syncDelayRandom(){return _syncDelayRandom.apply(this,arguments)}return syncDelayRandom}()},{key:"has",value:function has(collection,item){var precisely=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;if(_lodash["default"].isArray(collection)){if(precisely)return _lodash["default"].findIndex(collection,function(each){return _lodash["default"].isEqual(item,each)})>-1;else return _lodash["default"].indexOf(collection,item)>-1}if(_lodash["default"].isObject(item)){return collection[item]}if(_lodash["default"].isString(collection)){return collection.indexOf(item)>-1}return false}},{key:"containsBy",value:function containsBy(array,item){return _lodash["default"].findIndex(array,function(each){return _lodash["default"].isEqual(each,item)})>=0}},{key:"getStringOfInsideParentheses",value:function getStringOfInsideParentheses(string){var rule=arguments.length>1&&arguments[1]!==undefined?arguments[1]:".";return this.getStringOfRule(string,rule,"(",")")}},{key:"getStringOfInsideBrackets",value:function getStringOfInsideBrackets(string){var rule=arguments.length>1&&arguments[1]!==undefined?arguments[1]:".";return this.getStringOfRule(string,rule,"[","]")}},{key:"getStringOfInsideBraces",value:function getStringOfInsideBraces(string){var rule=arguments.length>1&&arguments[1]!==undefined?arguments[1]:".";return this.getStringOfRule(string,rule,"{","}")}},{key:"getStringOfRule",value:function getStringOfRule(string){var rule=arguments.length>1&&arguments[1]!==undefined?arguments[1]:".";var left=arguments.length>2&&arguments[2]!==undefined?arguments[2]:"{";var right=arguments.length>3&&arguments[3]!==undefined?arguments[3]:"}";return this.getStringOfHeadMatch(string,"(?<=\\".concat(left,")").concat(rule,"+?(?=\\").concat(right,")"))}},{key:"getRandomHash",value:function getRandomHash(){var length=arguments.length>0&&arguments[0]!==undefined?arguments[0]:20;var randomBytes=_cryptoJs["default"].lib.WordArray.random(length);var base64String=_cryptoJs["default"].enc.Base64.stringify(randomBytes);return base64String.substring(0,length)}},{key:"getRandomHashV2",value:function getRandomHashV2(length){var characters="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";var result="";for(var i=0;i<length;i++){var randomIndex=Math.floor(Math.random()*characters.length);result+=characters.charAt(randomIndex)}return result}},{key:"getEncryptString",value:function getEncryptString(texts){var key=arguments.length>1&&arguments[1]!==undefined?arguments[1]:_configerer.configerer.ENCRYPT_KEY;var alwaysTheSame=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;var maxLengthOfKey=22;if(key.length>maxLengthOfKey)throw new _exceptioner["default"](8010,_lodash["default"].size(key));var ivOfCrypto=_cryptoJs["default"].enc.Base64.parse("thisIsIVWeNeedToGenerateTheSameValue");var keyOfCrypto=alwaysTheSame?_cryptoJs["default"].enc.Base64.parse("".concat(key).concat(_lodash["default"].range(0,maxLengthOfKey-key.length).join(""))):key;return _cryptoJs["default"].AES.encrypt(texts,keyOfCrypto,{iv:ivOfCrypto}).toString()}},{key:"getEncryptStringV2",value:function getEncryptStringV2(texts){var key=arguments.length>1&&arguments[1]!==undefined?arguments[1]:_configerer.configerer.ENCRYPT_KEY;var alwaysTheSame=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;var maxLengthOfKey=22;if(key.length>maxLengthOfKey)throw new _exceptioner["default"](8010,_lodash["default"].size(key));var ivOfCrypto=_cryptoJs["default"].enc.Base64.parse("thisIsIVWeNeedToGenerateTheSameValue");var keyOfCrypto=alwaysTheSame?_cryptoJs["default"].enc.Base64.parse("".concat(key).concat(_lodash["default"].range(0,maxLengthOfKey-key.length).join(""))):key;return _cryptoJs["default"].AES.encrypt(JSON.stringify({content:texts}),keyOfCrypto,{iv:ivOfCrypto}).toString()}},{key:"getDecryptString",value:function getDecryptString(ciphertext){var key=arguments.length>1&&arguments[1]!==undefined?arguments[1]:_configerer.configerer.ENCRYPT_KEY;var maxLengthOfKey=22;if(key.length>maxLengthOfKey)throw new _exceptioner["default"](8010,_lodash["default"].size(key));var ivOfCrypto=_cryptoJs["default"].enc.Base64.parse("thisIsIVWeNeedToGenerateTheSameValue");try{var value=_cryptoJs["default"].AES.decrypt(ciphertext,key,{iv:ivOfCrypto}).toString(_cryptoJs["default"].enc.Utf8);if(!_lodash["default"].isEmpty(value.trim()))return value}catch(e){}return _cryptoJs["default"].AES.decrypt(ciphertext,_cryptoJs["default"].enc.Base64.parse("".concat(key).concat(_lodash["default"].range(0,maxLengthOfKey-key.length).join(""))),{iv:ivOfCrypto}).toString(_cryptoJs["default"].enc.Utf8)}},{key:"getDecryptStringV2",value:function getDecryptStringV2(ciphertext){var key=arguments.length>1&&arguments[1]!==undefined?arguments[1]:_configerer.configerer.ENCRYPT_KEY;var maxLengthOfKey=22;if(key.length>maxLengthOfKey)throw new _exceptioner["default"](8010,_lodash["default"].size(key));var ivOfCrypto=_cryptoJs["default"].enc.Base64.parse("thisIsIVWeNeedToGenerateTheSameValue");try{var _stringOfObj=_cryptoJs["default"].AES.decrypt(ciphertext,key,{iv:ivOfCrypto}).toString(_cryptoJs["default"].enc.Utf8);if(!_lodash["default"].isEmpty(_stringOfObj.trim())){var _obj2=JSON.parse(_stringOfObj);return _obj2.content}}catch(e){}var stringOfObj=_cryptoJs["default"].AES.decrypt(ciphertext,_cryptoJs["default"].enc.Base64.parse("".concat(key).concat(_lodash["default"].range(0,maxLengthOfKey-key.length).join(""))),{iv:ivOfCrypto}).toString(_cryptoJs["default"].enc.Utf8);var obj=JSON.parse(stringOfObj);return obj.content}},{key:"getFirebaseFormattedString",value:function getFirebaseFormattedString(texts){return _lodash["default"].replace(texts,/[\.\#\$\[\]]/g,"-").trim()}},{key:"formalizeNamesToArray",value:function formalizeNamesToArray(singerString){var normalize=singerString;normalize=normalize.split(_configerer.configerer.SEPARATE_TONE_SINGER)[0].trim();normalize=_lodash["default"].replace(normalize,/[,\/#!$%\^&\*;:{}=_`、~()()]/g,"_").trim();normalize=this.getFirebaseFormattedString(normalize);normalize=_lodash["default"].replace(normalize,/\_\_+/g,"_").trim();while(_lodash["default"].endsWith(normalize,"_")){normalize=normalize.slice(0,-1).trim()}var words=normalize.split("_");return _lodash["default"].map(words,function(word){return _lodash["default"].trim(word)})}},{key:"getShuffledArrayWithLimitCountHighPerformance",value:function getShuffledArrayWithLimitCountHighPerformance(arr,n){var result=new Array(n),len=arr.length,taken=new Array(len);if(n>len)n=len;while(n--){var x=Math.floor(Math.random()*len);result[n]=arr[x in taken?taken[x]:x];taken[x]=--len in taken?taken[len]:len}return result}},{key:"getFileNameFromPath",value:function getFileNameFromPath(path){var extension=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;var segments=path.split("/");var target=segments.pop();return extension?target:target.split(".").shift()}},{key:"getFileNameExtensionFromPath",value:function getFileNameExtensionFromPath(path){var name=path.split("/").pop();return name}},{key:"getPathOfReplaceLastDir",value:function getPathOfReplaceLastDir(path,name){var split=path.split("/");split.pop();split.push(name);return split.join("/")}},{key:"getExtensionFromPath",value:function getExtensionFromPath(path){var name=path.split("/").pop();var segments=name.split(".");return _lodash["default"].size(segments)>1?segments.pop():""}},{key:"getFolderPathOfSpecificPath",value:function getFolderPathOfSpecificPath(path){var split=path.split("/");split.pop();return split.join("/")}},{key:"getFolderNameOfFilePath",value:function getFolderNameOfFilePath(path){if(this.isValidFilePath(path)){var splits=path.split("/");return _lodash["default"].nth(splits,-2)}else{throw new _exceptioner["default"](9999,"64255615 path is not valid '".concat(path,"'"))}}},{key:"isUnderTargetPath",value:function isUnderTargetPath(absolute,target){var segments=absolute.split("/");return this.has(segments,target)}},{key:"getFileDirPath",value:function getFileDirPath(path){var slash=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;return _lodash["default"].join(_lodash["default"].initial(_lodash["default"].split(path,"/")),"/")+(slash?"/":"")}},{key:"isPathEqualsFileType",value:function isPathEqualsFileType(path,type){var extension=path.split(".").pop();return _lodash["default"].isEqual(extension,type)}},{key:"isValidFilePath",value:function isValidFilePath(path){var extension=this.getExtensionFromPath(path);return _lodash["default"].size(extension)>0}},{key:"getArrayOfSize",value:function getArrayOfSize(array){var n=arguments.length>1&&arguments[1]!==undefined?arguments[1]:1;return _lodash["default"].take(array,n)}},{key:"getShuffledArrayWithLimitCount",value:function getShuffledArrayWithLimitCount(arr,n){return this.getShuffledArrayWithLimitCountHighPerformance(arr,n)}},{key:"getRandomItemOfArray",value:function getRandomItemOfArray(array){if(!_lodash["default"].isArray(array))throw new _exceptioner["default"](9999,"why are you so stupid, typeof array should be array, not ==> ".concat(array," "));for(var _len13=arguments.length,ignores=new Array(_len13>1?_len13-1:0),_key15=1;_key15<_len13;_key15++){ignores[_key15-1]=arguments[_key15]}var filter=_lodash["default"].without.apply(_lodash["default"],[array].concat(ignores));var target=_lodash["default"].size(filter)>0?filter:array;var item=this.getShuffledArrayWithLimitCount(target,1);return item.length>0?item[0]:undefined}},{key:"appendMapOfKeyArray",value:function appendMapOfKeyArray(object,key){for(var _len14=arguments.length,value=new Array(_len14>2?_len14-2:0),_key16=2;_key16<_len14;_key16++){value[_key16-2]=arguments[_key16]}if(this.isUndefinedNullEmpty(object[key])){object[key]=[].concat(value)}else{var _object$key;(_object$key=object[key]).push.apply(_object$key,value)}}},{key:"getMergedArrayBy",value:function getMergedArrayBy(){var major=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[];var sub=arguments.length>1&&arguments[1]!==undefined?arguments[1]:[];var key=arguments.length>2?arguments[2]:undefined;if(!key||major.length===0||sub.length===0){return(0,_toConsumableArray2["default"])(major)}var subMap=new Map(sub.map(function(item){return[item[key],item]}));return major.map(function(majorItem){var subItem=subMap.get(majorItem[key]);return _objectSpread(_objectSpread({},subItem||{}),majorItem)})}},{key:"getShuffledItemFromArray",value:function getShuffledItemFromArray(arr){var shuffled=_lodash["default"].shuffle(arr);return shuffled[0]}},{key:"getShuffledArray",value:function getShuffledArray(arr){var shuffled=_lodash["default"].shuffle(arr);return shuffled}},{key:"isJson",value:function isJson(item){item=typeof item!=="string"?JSON.stringify(item):item;try{item=JSON.parse(item)}catch(e){return false}if((0,_typeof2["default"])(item)==="object"&&item!==null){return true}return false}},{key:"getObjectValue",value:function getObjectValue(obj){if(_lodash["default"].isObject(obj)){return Object.values(obj)[0]}return""}},{key:"getObject",value:function getObject(key,value){var object={};object[key]=value;return object}},{key:"getStringOfCreditCardFormatted",value:function getStringOfCreditCardFormatted(){var string=arguments.length>0&&arguments[0]!==undefined?arguments[0]:0;var inputValue=string.replace(/\D/g,"");var result=inputValue.replace(/(\d{4})(?=\d)/g,"$1-");return result.slice(0,19)}},{key:"getObjectKey",value:function getObjectKey(obj){if(_lodash["default"].isObject(obj)){return Object.keys(obj)[0]}return""}},{key:"printf",value:function printf(){this.appendInfo("i can use in web || react.js")}},{key:"isKeywordRule",value:function isKeywordRule(constraint){if(_lodash["default"].isUndefined(constraint)||_lodash["default"].isEmpty(constraint))throw new Error("PARAMS CAN NOT BE EMPTY");if(!_lodash["default"].isString(constraint))throw new Error("PARAMS SHOULD BE STRING");if(constraint.length>20)throw new Error("EXCEED 20 WORDS IS NOT ALLOWED")}},{key:"getItsKeyByValue",value:function getItsKeyByValue(object,value){return Object.keys(object).find(function(key){return object[key]===value})}},{key:"startWiths",value:function startWiths(string){var key=arguments.length>1&&arguments[1]!==undefined?arguments[1]:[];var _iterator3=_createForOfIteratorHelper(key),_step3;try{for(_iterator3.s();!(_step3=_iterator3.n()).done;){var _key=_step3.value;if(_lodash["default"].startsWith(string,_key)){return true}}}catch(err){_iterator3.e(err)}finally{_iterator3.f()}return false}},{key:"replaceAll",value:function replaceAll(string,patten,to){return _lodash["default"].replace(string,new RegExp("".concat(patten),"g"),to)}},{key:"replaceAllWithSets",value:function replaceAllWithSets(){var string=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"";var after=string;for(var _len15=arguments.length,patterns=new Array(_len15>1?_len15-1:0),_key17=1;_key17<_len15;_key17++){patterns[_key17-1]=arguments[_key17]}for(var _i8=0,_patterns=patterns;_i8<_patterns.length;_i8++){var pattern=_patterns[_i8];if(this.isOrEquals(undefined,pattern.from,pattern.to)){throw(0,_exceptioner["default"])(9999,"from or to can't be empty")}after=this.replaceAll(after,pattern.from,pattern.to)}return after}},{key:"replaceArrayByContentIndex",value:function replaceArrayByContentIndex(array,current,latest){var index=_lodash["default"].indexOf(array,current);array[index]=latest}},{key:"deepFlat",value:function deepFlat(collection){var sign=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"_";var result="";var stack=[[collection,""]];while(stack.length>0){var _stack$pop=stack.pop(),_stack$pop2=(0,_slicedToArray2["default"])(_stack$pop,2),current=_stack$pop2[0],prefix=_stack$pop2[1];if(_lodash["default"].isArray(current)){for(var i=current.length-1;i>=0;i--){stack.push([current[i],prefix])}}else if(_lodash["default"].isObject(current)){var keys=Object.keys(current);for(var _i9=keys.length-1;_i9>=0;_i9--){var _key18=keys[_i9];stack.push([current[_key18],prefix+_key18+sign])}}else{var valueString=_lodash["default"].trim(String(current));if(valueString.length>0){result+=(result.length>0?sign:"")+prefix+valueString}else if(prefix.length>0&&result.length>0){result+=sign}else if(prefix.length>0&&result.length===0){result+=prefix.endsWith(sign)?prefix.slice(0,-sign.length):prefix}}}if(result.endsWith(sign)){result=result.slice(0,-sign.length)}return result}},{key:"joinEscapeChar",value:function joinEscapeChar(str){return(str+"").replace(/[\\"']/g,"\\$&").replace(/\u0000/g,"\\0")}},{key:"getValueWithIntegerType",value:function getValueWithIntegerType(whatever){try{var value=parseInt(whatever);return isNaN(value)?0:value}catch(error){return 0}}},{key:"getValueOfPriority",value:function getValueOfPriority(){for(var _len16=arguments.length,compares=new Array(_len16),_key19=0;_key19<_len16;_key19++){compares[_key19]=arguments[_key19]}for(var _i10=0,_compares=compares;_i10<_compares.length;_i10++){var compare=_compares[_i10];if(!this.isUndefinedNullEmpty(compare))return compare}return undefined}},{key:"asyncPool",value:function(){var _asyncPool=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee7(poolLimit,array,iteratorFn){var ret,executing,_iterator4,_step4,_loop2;return _regenerator["default"].wrap(function _callee7$(_context8){while(1)switch(_context8.prev=_context8.next){case 0:ret=[];executing=[];_iterator4=_createForOfIteratorHelper(array);_context8.prev=3;_loop2=_regenerator["default"].mark(function _loop2(){var item,p,e;return _regenerator["default"].wrap(function _loop2$(_context7){while(1)switch(_context7.prev=_context7.next){case 0:item=_step4.value;p=Promise.resolve().then(function(){return iteratorFn(item,array)});ret.push(p);if(!(poolLimit<=array.length)){_context7.next=9;break}e=p.then(function(){return executing.splice(executing.indexOf(e),1)});executing.push(e);if(!(executing.length>=poolLimit)){_context7.next=9;break}_context7.next=9;return Promise.race(executing);case 9:case"end":return _context7.stop()}},_loop2)});_iterator4.s();case 6:if((_step4=_iterator4.n()).done){_context8.next=10;break}return _context8.delegateYield(_loop2(),"t0",8);case 8:_context8.next=6;break;case 10:_context8.next=15;break;case 12:_context8.prev=12;_context8.t1=_context8["catch"](3);_iterator4.e(_context8.t1);case 15:_context8.prev=15;_iterator4.f();return _context8.finish(15);case 18:return _context8.abrupt("return",Promise.all(ret));case 19:case"end":return _context8.stop()}},_callee7,null,[[3,12,15,18]])}));function asyncPool(_x2,_x3,_x4){return _asyncPool.apply(this,arguments)}return asyncPool}()},{key:"getAttrValueInSequence",value:function getAttrValueInSequence(info){for(var _len17=arguments.length,attrs=new Array(_len17>1?_len17-1:0),_key20=1;_key20<_len17;_key20++){attrs[_key20-1]=arguments[_key20]}for(var _i11=0,_attrs=attrs;_i11<_attrs.length;_i11++){var attr=_attrs[_i11];if(!_lodash["default"].isEmpty(info[attr])){return info[attr]}}return info}},{key:"toDBC",value:function toDBC(txtstring){var tmp="";for(var i=0;i<txtstring.length;i++){if(txtstring.charCodeAt(i)===32){tmp=tmp+String.fromCharCode(12288)}if(txtstring.charCodeAt(i)<127){tmp=tmp+String.fromCharCode(txtstring.charCodeAt(i)+65248)}}return tmp}},{key:"toCDB",value:function toCDB(str){var tmp="";for(var i=0;i<str.length;i++){if(str.charCodeAt(i)===12288){tmp+=String.fromCharCode(str.charCodeAt(i)-12256);continue}if(str.charCodeAt(i)>65280&&str.charCodeAt(i)<65375){tmp+=String.fromCharCode(str.charCodeAt(i)-65248)}else{tmp+=String.fromCharCode(str.charCodeAt(i))}}return tmp}},{key:"findIndexes",value:function findIndexes(array,predicate){var indexes=[];var hasIndex=true;var indexOfLatest=0;while(hasIndex){indexOfLatest=_lodash["default"].findIndex(array,predicate,indexOfLatest+1);if(indexOfLatest>-1){indexes.push(indexOfLatest)}else{hasIndex=false}}return indexes}},{key:"getSliceArrayOfSpecificIndexes",value:function getSliceArrayOfSpecificIndexes(array){var items=[];var size=_lodash["default"].size(array);for(var _len18=arguments.length,indexes=new Array(_len18>1?_len18-1:0),_key21=1;_key21<_len18;_key21++){indexes[_key21-1]=arguments[_key21]}for(var _i12=0,_indexes=indexes;_i12<_indexes.length;_i12++){var index=_indexes[_i12];if(!_lodash["default"].isNumber(index))throw new _exceptioner["default"](9999,"59941278 index should be number => ".concat(index,", ").concat(array));if(index>size-1)throw new _exceptioner["default"](9999,"5994123 index=>".concat(index," is not valid, exceed than array size=").concat(size,", ").concat(array));items.push(_lodash["default"].nth(array,index))}return items}},{key:"indexesOf",value:function indexesOf(arr,val){var indexes=[];var i=-1;while((i=arr.indexOf(val,i+1))!==-1){indexes.push(i)}return indexes}},{key:"getIndexOfContext",value:function getIndexOfContext(context,stmt){return _lodash["default"].findIndex(context,function(per){return _lodash["default"].isEqual(per.trim(),stmt)})}},{key:"toOneLineString",value:function toOneLineString(string){return _lodash["default"].join(_lodash["default"].split(string,"\n"),"")}},{key:"toSpaceLessString",value:function toSpaceLessString(string){return _lodash["default"].split(string,"").map(function(each){return _lodash["default"].trim(each)}).join("")}},{key:"toNewLineLessString",value:function toNewLineLessString(string){return _lodash["default"].split(string,"\n").map(function(each){return _lodash["default"].trim(each)}).join("")}},{key:"exist",value:function exist(obj){return!_lodash["default"].isNull(obj)&&!_lodash["default"].isUndefined(obj)}},{key:"isUndefinedNullEmpty",value:function isUndefinedNullEmpty(obj){var first=obj===undefined||obj===null;var second=_lodash["default"].isString(obj)||_lodash["default"].isArray(obj)||_lodash["default"].isObject(obj)?_lodash["default"].isEmpty(obj):false;return first||second}},{key:"isAndConditionOfUndefinedNullEmpty",value:function isAndConditionOfUndefinedNullEmpty(){for(var _len19=arguments.length,objs=new Array(_len19),_key22=0;_key22<_len19;_key22++){objs[_key22]=arguments[_key22]}for(var _i13=0,_objs=objs;_i13<_objs.length;_i13++){var obj=_objs[_i13];if(!this.isUndefinedNullEmpty(obj))return false}return true}},{key:"isOrConditionOfUndefinedNullEmpty",value:function isOrConditionOfUndefinedNullEmpty(){for(var _len20=arguments.length,objs=new Array(_len20),_key23=0;_key23<_len20;_key23++){objs[_key23]=arguments[_key23]}for(var _i14=0,_objs2=objs;_i14<_objs2.length;_i14++){var obj=_objs2[_i14];if(this.isUndefinedNullEmpty(obj))return true}return false}},{key:"getStringHandledByEachLine",value:function getStringHandledByEachLine(string){var predict=arguments.length>1&&arguments[1]!==undefined?arguments[1]:function(segment,index,segments){return true};var separator=arguments.length>2&&arguments[2]!==undefined?arguments[2]:"\n";var segments=string.split(separator);var _iterator5=_createForOfIteratorHelper(segments),_step5;try{for(_iterator5.s();!(_step5=_iterator5.n()).done;){var segment=_step5.value;predict(segment,_lodash["default"].indexOf(segments,segment),segments)}}catch(err){_iterator5.e(err)}finally{_iterator5.f()}return segments.join(separator)}},{key:"getSegmentsOfEachLine",value:function getSegmentsOfEachLine(string){return string.split("\n")}},{key:"getNormalizedStringEndWith",value:function getNormalizedStringEndWith(string,predicate){string=this.toCDB(string);predicate=this.toCDB(predicate);var after=_lodash["default"].join(_lodash["default"].dropRightWhile(string,function(each){return!_lodash["default"].isEqual(each,predicate)}),"");return _lodash["default"].isEmpty(after)?string:after}},{key:"getNormalizedStringNotStartWith",value:function getNormalizedStringNotStartWith(string){var _this2=this;for(var _len21=arguments.length,predicate=new Array(_len21>1?_len21-1:0),_key24=1;_key24<_len21;_key24++){predicate[_key24-1]=arguments[_key24]}string=this.toCDB(string);var after=_lodash["default"].join(_lodash["default"].dropWhile(string,function(each){return _this2.has(predicate,each)}),"");return _lodash["default"].isEmpty(after)?string:after}},{key:"getNormalizedStringNotEndWith",value:function getNormalizedStringNotEndWith(string){var _this3=this;for(var _len22=arguments.length,predicate=new Array(_len22>1?_len22-1:0),_key25=1;_key25<_len22;_key25++){predicate[_key25-1]=arguments[_key25]}string=this.toCDB(string);var after=_lodash["default"].join(_lodash["default"].dropRightWhile(string,function(each){return _this3.has(predicate,each)}),"");return _lodash["default"].isEmpty(after)?string:after}},{key:"getTodayTimeFormat",value:function getTodayTimeFormat(ts){return(0,_momentTimezone["default"])(ts?ts:this.getCurrentTimeStamp()).format("YYYY-MM-DD")}},{key:"getCustomFormatOfDatePresent",value:function getCustomFormatOfDatePresent(ts){var format=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"YY/MM";return(0,_momentTimezone["default"])(ts?ts:this.getCurrentTimeStamp()).format(format)}},{key:"getSimpleDateYYMMDDFormat",value:function getSimpleDateYYMMDDFormat(ts){return(0,_momentTimezone["default"])(ts?ts:this.getCurrentTimeStamp()).format("YY/MM/DD")}},{key:"getSimpleTimeYYMMDDHHmmFormat",value:function getSimpleTimeYYMMDDHHmmFormat(ts){return(0,_momentTimezone["default"])(ts?ts:this.getCurrentTimeStamp()).format("YY/MM/DD HH:mm")}},{key:"getECPayCurrentTimeFormat",value:function getECPayCurrentTimeFormat(ts){return(0,_momentTimezone["default"])(ts?ts:this.getCurrentTimeStamp()).format("YYYY/MM/DD HH:mm:ss")}},{key:"getCurrentTimeFormatV2",value:function getCurrentTimeFormatV2(ts){return(0,_momentTimezone["default"])(ts?ts:this.getCurrentTimeStamp()).format("YYYY/MM/DD HH:mm:ss")}},{key:"getCurrentTimeFormatYMDHM",value:function getCurrentTimeFormatYMDHM(ts){return(0,_momentTimezone["default"])(ts?ts:this.getCurrentTimeStamp()).format("YYYY/MM/DD HH:mm")}},{key:"getCurrentTimeFormatYMDHMS",value:function getCurrentTimeFormatYMDHMS(ts){return(0,_momentTimezone["default"])(ts?ts:this.getCurrentTimeStamp()).format("YYYY/MM/DD HH:mm:ss")}},{key:"getCurrentTimeFormat",value:function getCurrentTimeFormat(ts){return(0,_momentTimezone["default"])(ts?ts:this.getCurrentTimeStamp()).format("YYYY-MM-DD-HH-mm-ss")}},{key:"getCurrentMillionSecTimeFormat",value:function getCurrentMillionSecTimeFormat(ts){return(0,_momentTimezone["default"])(ts?ts:undefined).format("YYYY-MM-DD-HH-mm-ss-SSS")}},{key:"isBetweenTimeStamp",value:function isBetweenTimeStamp(){var target=arguments.length>0&&arguments[0]!==undefined?arguments[0]:this.getCurrentTimeStamp();var min=arguments.length>1?arguments[1]:undefined;var max=arguments.length>2?arguments[2]:undefined;return(0,_momentTimezone["default"])(target).isBetween(min,max)}},{key:"isBeforeTimeStamp",value:function isBeforeTimeStamp(){var target=arguments.length>0&&arguments[0]!==undefined?arguments[0]:this.getCurrentTimeStamp();var time=arguments.length>1?arguments[1]:undefined;return(0,_momentTimezone["default"])(target).isBefore(time)}},{key:"isAfterTimeStamp",value:function isAfterTimeStamp(){var target=arguments.length>0&&arguments[0]!==undefined?arguments[0]:this.getCurrentTimeStamp();var time=arguments.length>1?arguments[1]:undefined;return(0,_momentTimezone["default"])(target).isAfter(time)}},{key:"formatTimeByLocale",value:function formatTimeByLocale(ts){var location=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"zh-TW";var timezone=arguments.length>2&&arguments[2]!==undefined?arguments[2]:"Asia/Taipei";var use24Hour=arguments.length>3&&arguments[3]!==undefined?arguments[3]:true;_momentTimezone["default"].locale(location);var m=(0,_momentTimezone["default"])(ts).tz(timezone);var formatStr=use24Hour?"YYYY/MM/DD HH:mm":"YYYY/MM/DD hh:mm A";return m.format(formatStr)}},{key:"getTimeStampWithConditions",value:function getTimeStampWithConditions(){var param=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{days:0,months:0,years:0,minutes:0,seconds:0,hours:0};var target=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this.getCurrentTimeStamp();var base=(0,_momentTimezone["default"])(target);for(var each in param){var number=param[each];var unit=each;if(number>0){base=base.add(number,unit)}if(number<0){base=base.subtract(Math.abs(number),unit)}}return base.valueOf()}},{key:"getTimeStampByStringFormat",value:function getTimeStampByStringFormat(string){return this.getTimeStampFromSpecificFormat(string,"YYYY/MM/DD HH:mm:ss").valueOf()}},{key:"getTimeStampFromSpecificFormat",value:function getTimeStampFromSpecificFormat(string){var format=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"YYYY/MM/DD HH:mm:ss";return(0,_momentTimezone["default"])(string,format).valueOf()}},{key:"getTimeStampFromECPayStringFormat",value:function getTimeStampFromECPayStringFormat(string){return this.getTimeStampFromSpecificFormat(string,"YYYY/MM/DD HH:mm:ss").valueOf()}},{key:"getTimeFormatOfDurationToMillionSecond",value:function getTimeFormatOfDurationToMillionSecond(duration){return _momentTimezone["default"].utc(duration).format("HH\u5C0F\u6642mm\u5206\u9418ss\u79D2SSS")}},{key:"getTimeFormatOfDurationToSecond",value:function getTimeFormatOfDurationToSecond(duration){return _momentTimezone["default"].utc(duration).format("HH\u5C0F\u6642mm\u5206\u9418ss\u79D2")}},{key:"getTimeFormatOfDurationToDay",value:function getTimeFormatOfDurationToDay(duration){return _momentTimezone["default"].utc(duration).format("DD\u5929HH\u5C0F\u6642mm\u5206\u9418ss\u79D2")}},{key:"getChineseTimeFormat",value:function getChineseTimeFormat(ts){_momentTimezone["default"].locale("zh-TW");return(0,_momentTimezone["default"])(ts).format("LLLL")}},{key:"getMinuteFormatOfDuration",value:function getMinuteFormatOfDuration(ds){return _momentTimezone["default"].duration(ds).asMinutes()}},{key:"getSecondFormatOfDuration",value:function getSecondFormatOfDuration(ds){return _momentTimezone["default"].duration(ds).asSeconds()}},{key:"getDayFormatOfDuration",value:function getDayFormatOfDuration(ds){return _momentTimezone["default"].duration(ds).asDays()}},{key:"getDurationOfMillionSec",value:function getDurationOfMillionSec(dateOrTimeStamp){var currentTimestamp=this.getCurrentTimeStamp();var targetTimeStamp=(0,_momentTimezone["default"])(dateOrTimeStamp).valueOf();var queue=_lodash["default"].sortBy([{ts:currentTimestamp},{ts:targetTimeStamp}],function(each){return each.ts}).map(function(each){return each.ts});var after=(0,_momentTimezone["default"])(queue.pop());var before=(0,_momentTimezone["default"])(queue.shift());var duration=_momentTimezone["default"].duration(after.diff(before));var ms=duration.asMilliseconds();return ms}},{key:"getCurrentTimeStamp",value:function getCurrentTimeStamp(){return(0,_momentTimezone["default"])().valueOf()}},{key:"isStringContainInLines",value:function isStringContainInLines(context,key){var _iterator6=_createForOfIteratorHelper(_lodash["default"].split(context,"\n")),_step6;try{for(_iterator6.s();!(_step6=_iterator6.n()).done;){var each=_step6.value;if(this.has(each,key))return true}}catch(err){_iterator6.e(err)}finally{_iterator6.f()}return false}},{key:"camel",value:function camel(){for(var _len23=arguments.length,words=new Array(_len23),_key26=0;_key26<_len23;_key26++){words[_key26]=arguments[_key26]}return _lodash["default"].camelCase(words.join("_"))}},{key:"upperCamel",value:function upperCamel(){return _lodash["default"].upperFirst(this.camel.apply(this,arguments))}},{key:"array2Obj",value:function array2Obj(array){var obj={};var _iterator7=_createForOfIteratorHelper(array),_step7;try{for(_iterator7.s();!(_step7=_iterator7.n()).done;){var each=_step7.value;obj["".concat(this.getObjectKey(each))]=this.getObjectValue(each)}}catch(err){_iterator7.e(err)}finally{_iterator7.f()}return obj}},{key:"arrayToObjWith",value:function arrayToObjWith(array,predicate){var obj={};var _iterator8=_createForOfIteratorHelper(array),_step8;try{for(_iterator8.s();!(_step8=_iterator8.n()).done;){var item=_step8.value;var _key27=predicate(item);var content=obj[_key27];if(content&&_lodash["default"].isArray(content)){content.push(item)}else{obj[_key27]=[item]}}}catch(err){_iterator8.e(err)}finally{_iterator8.f()}return obj}},{key:"isEmptyString",value:function isEmptyString(string){return _lodash["default"].isEqual(_lodash["default"].trim(string),"")}},{key:"mergeObject",value:function mergeObject(){return _lodash["default"].merge.apply(_lodash["default"],arguments)}},{key:"syncSetTimeout",value:function syncSetTimeout(func,ms){var callback=arguments.length>2&&arguments[2]!==undefined?arguments[2]:function(){};(function sync(done){if(!done){setTimeout(function(){func();sync(true)},ms);return}callback()})()}},{key:"mergeArrayBy",value:function mergeArrayBy(){var identifier=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"id";for(var _len24=arguments.length,array=new Array(_len24>1?_len24-1:0),_key28=1;_key28<_len24;_key28++){array[_key28-1]=arguments[_key28]}return Object.values(array.flat().reduce(function(acc,item){if(item[identifier])acc[item[identifier]]=_objectSpread(_objectSpread({},acc[item[identifier]]||{}),item);return acc},{}))}},{key:"getRelativePath",value:function getRelativePath(pathName,rootName){return _lodash["default"].dropWhile(pathName,function(each,index){return _lodash["default"].isEqual(each,rootName[index])}).join("")}},{key:"dropItemsByIndex",value:function dropItemsByIndex(array,from,end){_lodash["default"].remove(array,function(value,index,array){return end>=index&&index>=from})}},{key:"isEven",value:function isEven(n){return n%2===0}},{key:"isOdd",value:function isOdd(n){return Math.abs(n%2)===1}},{key:"enrichZhTw",value:function enrichZhTw(){_momentTimezone["default"].locale("zh-tw",{months:"\u4E00\u6708_\u4E8C\u6708_\u4E09\u6708_\u56DB\u6708_\u4E94\u6708_\u516D\u6708_\u4E03\u6708_\u516B\u6708_\u4E5D\u6708_\u5341\u6708_\u5341\u4E00\u6708_\u5341\u4E8C\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u661F\u671F\u65E5_\u661F\u671F\u4E00_\u661F\u671F\u4E8C_\u661F\u671F\u4E09_\u661F\u671F\u56DB_\u661F\u671F\u4E94_\u661F\u671F\u516D".split("_"),weekdaysShort:"\u5468\u65E5_\u5468\u4E00_\u5468\u4E8C_\u5468\u4E09_\u5468\u56DB_\u5468\u4E94_\u5468\u516D".split("_"),weekdaysMin:"\u65E5_\u4E00_\u4E8C_\u4E09_\u56DB_\u4E94_\u516D".split("_"),longDateFormat:{LT:"Ah\u9EDEmm\u5206",LTS:"Ah\u9EDEm\u5206s\u79D2",L:"YYYY-MM-DD",LL:"YYYY\u5E74MMMD\u65E5",LLL:"YYYY\u5E74MMMD\u65E5Ah\u9EDEmm\u5206",LLLL:"YYYY\u5E74MMMD\u65E5ddddAh\u9EDEmm\u5206",l:"YYYY-MM-DD",ll:"YYYY\u5E74MMMD\u65E5",lll:"YYYY\u5E74MMMD\u65E5Ah\u9EDEmm\u5206",llll:"YYYY\u5E74MMMD\u65E5ddddAh\u9EDEmm\u5206"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function meridiemHour(h,meridiem){var hour=h;if(hour===12){hour=0}if(meridiem==="\u51CC\u6668"||meridiem==="\u65E9\u4E0A"||meridiem==="\u4E0A\u5348"){return hour}else if(meridiem==="\u4E0B\u5348"||meridiem==="\u665A\u4E0A"){return hour+12}else{return hour>=11?hour:hour+12}},meridiem:function meridiem(hour,minute,isLower){var hm=hour*100+minute;if(hm<600){return"\u51CC\u6668"}else if(hm<900){return"\u65E9\u4E0A"}else if(hm<1130){return"\u4E0A\u5348"}else if(hm<1230){return"\u4E2D\u5348"}else if(hm<1800){return"\u4E0B\u5348"}else{return"\u665A\u4E0A"}},calendar:{sameDay:function sameDay(){return this.minutes()===0?"[\u4ECA\u5929]Ah[\u9EDE\u6574]":"[\u4ECA\u5929]LT"},nextDay:function nextDay(){return this.minutes()===0?"[\u660E\u5929]Ah[\u9EDE\u6574]":"[\u660E\u5929]LT"},lastDay:function lastDay(){return this.minutes()===0?"[\u6628\u5929]Ah[\u9EDE\u6574]":"[\u6628\u5929]LT"},nextWeek:function nextWeek(){var startOfWeek,prefix;startOfWeek=(0,_momentTimezone["default"])().startOf("week");prefix=this.diff(startOfWeek,"days")>=7?"[\u4E0B]":"[\u672C]";return this.minutes()===0?prefix+"dddA\u9EDE\u6574":prefix+"dddAh\u9EDEmm"},lastWeek:function lastWeek(){var startOfWeek,prefix;startOfWeek=(0,_momentTimezone["default"])().startOf("week");prefix=this.unix()<startOfWeek.unix()?"[\u4E0A]":"[\u672C]";return this.minutes()===0?prefix+"dddAh\u9EDE\u6574":prefix+"dddAh\u9EDEmm"},sameElse:"LL"},ordinalParse:/\d{1,2}(日|月|周)/,ordinal:function ordinal(number,period){switch(period){case"d":case"D":case"DDD":return number+"\u65E5";case"M":return number+"\u6708";case"w":case"W":return number+"\u5468";default:return number}},relativeTime:{future:"%s\u5185",past:"%s\u524D",s:"\u5E7E\u79D2",m:"1 \u5206\u9418",mm:"%d \u5206\u9418",h:"1 \u5C0F\u6642",hh:"%d \u5C0F\u6642",d:"1 \u5929",dd:"%d \u5929",M:"1 \u500B\u6708",MM:"%d \u4E2A\u6708",y:"1 \u5E74",yy:"%d \u5E74"},week:{dow:1,doy:4}})}},{key:"getVisibleOrHidden",value:function getVisibleOrHidden(judgement){return{visibility:judgement?"visible":"hidden"}}},{key:"getNumberOfPercentageToFloat",value:function getNumberOfPercentageToFloat(percentage){var cleanedPercentage=percentage.replace("%","");var floatNumber=parseFloat(cleanedPercentage)/100;return floatNumber}},{key:"getVisibleOrNone",value:function getVisibleOrNone(judgement){var flex=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;return{display:judgement?flex?"flex":"inherit":"none"}}},{key:"stringToInteger",value:function stringToInteger(string){string=_lodash["default"].toUpper(string);switch(string){case"A":return 0;case"B":return 1;case"C":return 2;case"D":return 3;case"E":return 4;case"F":return 5;case"G":return 6;case"H":return 7;case"I":return 8;case"J":return 9;case"K":return 10;case"L":return 11;case"M":return 12;case"N":return 13;default:return 101}}},{key:"integerToString",value:function integerToString(integer){switch(integer){case 0:return"A";case 1:return"B";case 2:return"C";case 3:return"D";case 4:return"E";case 5:return"F";case 6:return"G";case 7:return"H";case 8:return"I";case 9:return"J";case 10:return"K";case 11:return"L";case 12:return"M";case 13:return"N";default:return"Z"}}},{key:"toObjectMap",value:function toObjectMap(array){var newbies=[];for(var _len25=arguments.length,rules=new Array(_len25>1?_len25-1:0),_key29=1;_key29<_len25;_key29++){rules[_key29-1]=arguments[_key29]}var _iterator9=_createForOfIteratorHelper(array),_step9;try{for(_iterator9.s();!(_step9=_iterator9.n()).done;){var each=_step9.value;var object={};var _iterator10=_createForOfIteratorHelper(rules),_step10;try{for(_iterator10.s();!(_step10=_iterator10.n()).done;){var rule=_step10.value;var func=rule.func?rule.func:function(stmt){return stmt};object[rule.to]=this.isUndefinedNullEmpty(rule.from)||!_lodash["default"].isObject(each)?func(each):func(each[rule.from])}}catch(err){_iterator10.e(err)}finally{_iterator10.f()}newbies.push(object)}}catch(err){_iterator9.e(err)}finally{_iterator9.f()}return newbies}},{key:"exeAll",value:function exeAll(collection){for(var _len26=arguments.length,funcs=new Array(_len26>1?_len26-1:0),_key30=1;_key30<_len26;_key30++){funcs[_key30-1]=arguments[_key30]}if(_lodash["default"].isArray(collection)){var _iterator11=_createForOfIteratorHelper(collection),_step11;try{for(_iterator11.s();!(_step11=_iterator11.n()).done;){var each=_step11.value;var _iterator12=_createForOfIteratorHelper(funcs),_step12;try{for(_iterator12.s();!(_step12=_iterator12.n()).done;){var func=_step12.value;func(each)}}catch(err){_iterator12.e(err)}finally{_iterator12.f()}}}catch(err){_iterator11.e(err)}finally{_iterator11.f()}}else if(_lodash["default"].isObject(collection)){for(var _each in collection){var _iterator13=_createForOfIteratorHelper(funcs),_step13;try{for(_iterator13.s();!(_step13=_iterator13.n()).done;){var _func=_step13.value;collection[_each]=_func(collection[_each])}}catch(err){_iterator13.e(err)}finally{_iterator13.f()}}}else{throw new _exceptioner["default"](9999,"7841212 type can't be array or object")}return collection}},{key:"getObjectWhile",value:function getObjectWhile(major,minor){var predicate=arguments.length>2&&arguments[2]!==undefined?arguments[2]:function(target){return true};var collection={};for(var _key31 in major){if(predicate(major,minor,_key31)){collection[_key31]=major[_key31]}}return collection}},{key:"getIntersectionObject",value:function getIntersectionObject(objOfMajor,objOfMinor){return this.getObjectWhile(objOfMajor,objOfMinor,function(major,minor,key){return minor[key]!==undefined})}},{key:"getDifferenceObject",value:function getDifferenceObject(objOfMajor,objOfMinor){return this.getObjectWhile(objOfMajor,objOfMinor,function(major,minor,key){return minor[key]===undefined})}},{key:"isObjectContainAndEqual",value:function isObjectContainAndEqual(targetObject,mainObject){var equal=true;for(var _key32 in targetObject){if(mainObject[_key32]===undefined||mainObject[_key32]!==targetObject[_key32]){equal=false;break}}return equal}},{key:"getStringOfPop",value:function getStringOfPop(string,separator){if(!_lodash["default"].isString(string)){throw new _exceptioner["default"](9999,"445115,type should be string but ==> ".concat((0,_typeof2["default"])(string)))}var segments=string.split(separator);segments.pop();return segments.join(separator)}},{key:"getStringOfShift",value:function getStringOfShift(string,separator){if(!_lodash["default"].isString(string)){throw new _exceptioner["default"](9999,"445116,type should be string but ==> ".concat((0,_typeof2["default"])(string)))}var segments=string.split(separator);segments.shift();return segments.join(separator)}},{key:"toObjectWithAttributeKey",value:function toObjectWithAttributeKey(array,attrKeyOfPK){var object={};var _iterator14=_createForOfIteratorHelper(array),_step14;try{for(_iterator14.s();!(_step14=_iterator14.n()).done;){var each=_step14.value;var pk=each[attrKeyOfPK];if(this.isUndefinedNullEmpty(pk)){throw new _exceptioner["default"](9999,"48157232 pk can't be empty => '".concat(pk,"'"))}object[pk]=each}}catch(err){_iterator14.e(err)}finally{_iterator14.f()}return object}},{key:"getObjectOfArraySpecifyAttr",value:function getObjectOfArraySpecifyAttr(array,attr){return this.toObjectWithAttributeKey(array,attr)}},{key:"getStateOfStringContainsSign",value:function getStateOfStringContainsSign(string){for(var _len27=arguments.length,signs=new Array(_len27>1?_len27-1:0),_key33=1;_key33<_len27;_key33++){signs[_key33-1]=arguments[_key33]}for(var _i15=0,_signs=signs;_i15<_signs.length;_i15++){var sign=_signs[_i15];if(this.has(string,sign)){return{exists:true,sign:sign}}}return{exists:false}}},{key:"constraintOfParam",value:function constraintOfParam(collection,type){var result=false;for(var _len28=arguments.length,others=new Array(_len28>2?_len28-2:0),_key34=2;_key34<_len28;_key34++){others[_key34-2]=arguments[_key34]}var validOfOthersCondition=_lodash["default"].isEmpty(others)?true:this.and.apply(this,(0,_toConsumableArray2["default"])(others.map(function(each){return each.logic})));switch(type){case"array":if(_lodash["default"].isArray(collection)&&validOfOthersCondition)result=true;break;case"object":if(_lodash["default"].isObject(collection)&&validOfOthersCondition)result=true;break;case"string":if(_lodash["default"].isString(collection)&&validOfOthersCondition)result=true;break;case"number":if(_lodash["default"].isNumber(collection)&&validOfOthersCondition)result=true;break;case"other":if(validOfOthersCondition)return true}var stringOfRules=_lodash["default"].isEmpty(others)?"":", ".concat(others.map(function(each){return each.message}).join(" | "));if(result===false){throw new _exceptioner["default"](9999,"7474423 type should be ".concat(type," but get '").concat((0,_typeof2["default"])(type),"' ").concat(stringOfRules," "))}}},{key:"getSliceArrayWithMutate",value:function getSliceArrayWithMutate(array,n){var slice=_lodash["default"].remove(array,function(each,index){return index<n});return slice}},{key:"getArrayOfInteraction",value:function getArrayOfInteraction(one,two){return one.filter(function(element){return!two.includes(element)})}},{key:"getArrayOfMoveToSpecificIndex",value:function getArrayOfMoveToSpecificIndex(array,from,to){if(!Array.isArray(array)){throw new Error("First argument must be an array.")}var length=array.length;if(from<0||from>=length||to<0||to>=length){console.warn("Invalid 'from' or 'to' index for getArrayOfMoveToSpecificIndexOptimized.");return(0,_toConsumableArray2["default"])(array)}if(from===to){return(0,_toConsumableArray2["default"])(array)}var copy=(0,_toConsumableArray2["default"])(array);var _copy$splice=copy.splice(from,1),_copy$splice2=(0,_slicedToArray2["default"])(_copy$splice,1),item=_copy$splice2[0];copy.splice(to,0,item);return copy}},{key:"getArrayOfMoveItemToSpecificIndex",value:function getArrayOfMoveItemToSpecificIndex(array,item,indexOfDestination){var indexOfItem=_lodash["default"].indexOf(array,item);return this.getArrayOfMoveToSpecificIndex(array,indexOfItem,indexOfDestination)}},{key:"getArrayOfMoveSpecificItemToAside",value:function getArrayOfMoveSpecificItemToAside(array,item){var toTail=arguments.length>2&&arguments[2]!==undefined?arguments[2]:true;var indexOfItem=_lodash["default"].indexOf(array,item);return this.getArrayOfMoveSpecificIndexToAside(array,indexOfItem,toTail)}},{key:"getArrayOfMoveSpecificIndexToAside",value:function getArrayOfMoveSpecificIndexToAside(array,index){var toTail=arguments.length>2&&arguments[2]!==undefined?arguments[2]:true;var indexOfLast=_lodash["default"].size(array)-1;return this.getArrayOfMoveToSpecificIndex(array,index,toTail?indexOfLast:0)}},{key:"getECPayCheckMacValue",value:function getECPayCheckMacValue(data){var hashKey=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"5294y06JbISpM5x9";var hashIV=arguments.length>2&&arguments[2]!==undefined?arguments[2]:"v77hoKGq4kWxNNIS";var clone=_lodash["default"].cloneDeep(data);delete clone.CheckMacValue;var keys=Object.keys(clone).sort(function(l,r){return l>r?1:-1});var checkValue="";var _iterator15=_createForOfIteratorHelper(keys),_step15;try{for(_iterator15.s();!(_step15=_iterator15.n()).done;){var _key35=_step15.value;checkValue+="".concat(_key35,"=").concat(clone[_key35],"&")}}catch(err){_iterator15.e(err)}finally{_iterator15.f()}checkValue="HashKey=".concat(hashKey,"&").concat(checkValue,"HashIV=").concat(hashIV);checkValue=encodeURIComponent(checkValue).toLowerCase();checkValue=checkValue.replace(/%20/g,"+").replace(/%2d/g,"-").replace(/%5f/g,"_").replace(/%2e/g,".").replace(/%21/g,"!").replace(/%2a/g,"*").replace(/%28/g,"(").replace(/%29/g,")").replace(/%20/g,"+");return _lodash["default"].toUpper(_cryptoJs["default"].SHA256(checkValue).toString(_cryptoJs["default"].enc.Hex))}},{key:"getStringOfHandledHtml",value:function getStringOfHandledHtml(htmlString){var predicate=arguments.length>1&&arguments[1]!==undefined?arguments[1]:function(document){console.log(document)};var document=(0,_nodeHtmlParser.parse)(htmlString);predicate(document);return document.toString()}},{key:"getSpecifyObjectBy",value:function getSpecifyObjectBy(array,predicate){var _iterator16=_createForOfIteratorHelper(array),_step16;try{for(_iterator16.s();!(_step16=_iterator16.n()).done;){var item=_step16.value;if(predicate(item))return item}}catch(err){_iterator16.e(err)}finally{_iterator16.f()}}},{key:"validatePayloadObjectValid",value:function validatePayloadObjectValid(content){var rules=arguments.length>1&&arguments[1]!==undefined?arguments[1]:[];var idOfError=arguments.length>2&&arguments[2]!==undefined?arguments[2]:this.getRandomHash(10);if(this.isUndefinedNullEmpty(content)){throw new _exceptioner["default"](9999,"".concat(idOfError," content(pay-load) is undefined || empty"))}var _iterator17=_createForOfIteratorHelper(rules),_step17;try{for(_iterator17.s();!(_step17=_iterator17.n()).done;){var rule=_step17.value;if(_lodash["default"].isString(rule)){if(this.isUndefinedNullEmpty(content[rule])){throw new _exceptioner["default"](9999,"".concat(idOfError," ATTRIBUTE:'").concat(rule,"' is not Exist"))}}else if(_lodash["default"].isObject(rule)){var _key36=this.getObjectKey(rule);var predicate=this.getObjectValue(rule);if(!predicate(content[_key36])){throw new _exceptioner["default"](9999,"".concat(idOfError," ATTRIBUTE:'").concat(_key36,"' is not valid of custom rule"))}}}}catch(err){_iterator17.e(err)}finally{_iterator17.f()}return true}},{key:"getArrayOfSummarizeBy",value:function getArrayOfSummarizeBy(array,keyOfId,keyOfSum){var obj={};var _iterator18=_createForOfIteratorHelper(array),_step18;try{for(_iterator18.s();!(_step18=_iterator18.n()).done;){var item=_step18.value;var _key38=item[keyOfId];if(obj[_key38]!==undefined){obj[_key38]=obj[_key38]+item[keyOfSum]}else{obj[_key38]=item[keyOfSum]}}}catch(err){_iterator18.e(err)}finally{_iterator18.f()}var items=[];for(var _key37 in obj){var _obj={};_obj[keyOfId]=_key37;_obj[keyOfSum]=obj[_key37];items.push(_obj)}return items}},{key:"getHeadStringSplitBy",value:function getHeadStringSplitBy(string){var sign=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this.getSeparatorOfUnique();return _lodash["default"].split(string,sign).shift()}},{key:"getTailStringSplitBy",value:function getTailStringSplitBy(string){var sign=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this.getSeparatorOfUnique();return _lodash["default"].split(string,sign).pop()}},{key:"getSlicesByIndexes",value:function getSlicesByIndexes(){var array=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[];var indexes=arguments.length>1&&arguments[1]!==undefined?arguments[1]:[];var slices=[];_lodash["default"].each(indexes,function(each,index,arrayOfIndexes){if(_lodash["default"].isEqual(index,indexes.length-1))return false;var slice=_lodash["default"].slice(array,each,indexes[index+1]);slices.push(slice)});return slices}},{key:"getRandomName",value:function getRandomName(){var options=arguments.length>0&&arguments[0]!==undefined?arguments[0]:undefined;return(0,_words.generate)(options)}},{key:"getRandomCount",value:function getRandomCount(){var options=arguments.length>0&&arguments[0]!==undefined?arguments[0]:undefined;return(0,_words.count)(options)}},{key:"isOverSpecificAge",value:function isOverSpecificAge(birthDate){var target=arguments.length>1&&arguments[1]!==undefined?arguments[1]:18;var age=(0,_momentTimezone["default"])().diff((0,_momentTimezone["default"])(birthDate,"YYYY-MM-DD"),"years");return age>=target}},{key:"isValidEmail",value:function isValidEmail(email){var emailRegex=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;return emailRegex.test(email)}},{key:"isValidTaiwaneseID",value:function isValidTaiwaneseID(idNumber){var idRegex=/^[A-Z][1-2]\d{8}$/;if(!idRegex.test(idNumber)){return false}var weight=[1,9,8,7,6,5,4,3,2,1];var firstChar=idNumber.charCodeAt(0)-65;var sum=firstChar*10+parseInt(idNumber.slice(1));for(var i=0;i<weight.length;i++){sum+=parseInt(idNumber.charAt(i+1))*weight[i]}return sum%10===0}},{key:"validatePersonalInfoInput",value:function validatePersonalInfoInput(name,email,idNumber,phoneNumber,birthday){var ageOfQualify=arguments.length>5&&arguments[5]!==undefined?arguments[5]:12;if(name.length<2){return{valid:false,message:"\u59D3\u540D\u81F3\u5C11\u8981\u5169\u500B\u5B57"}}var emailRegex=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;if(!emailRegex.test(email)){return{valid:false,message:"\u96FB\u5B50\u90F5\u4EF6\u683C\u5F0F\u4E0D\u6B63\u78BA"}}var idRegex=/^[A-Z][1-2]\d{8}$/;if(!idRegex.test(idNumber)){return{valid:false,message:"\u8EAB\u5206\u8B49\u865F\u78BC\u683C\u5F0F\u4E0D\u6B63\u78BA"}}var phoneRegex=/^09\d{8}$/;if(!phoneRegex.test(phoneNumber)){return{valid:false,message:"\u624B\u6A5F\u865F\u78BC\u683C\u5F0F\u4E0D\u6B63\u78BA"}}if(this.isUndefinedNullEmpty(birthday))return{valid:false,message:"\u51FA\u751F\u65E5\u671F\u683C\u5F0F\u4E0D\u6B63\u78BA"};var now=(0,_momentTimezone["default"])();var age=now.diff(birthday,"years");if(age<ageOfQualify){return{valid:false,message:"\u5E74\u9F61\u4E0D\u5F97\u5C0F\u65BC ".concat(ageOfQualify," \u6B72")}}return{valid:true,message:"\u683C\u5F0F\u6AA2\u67E5\u901A\u904E"}}},{key:"getStringOfFormatTimestampRange",value:function getStringOfFormatTimestampRange(startTimestamp,endTimestamp){var startDate=(0,_momentTimezone["default"])(startTimestamp);var endDate=(0,_momentTimezone["default"])(endTimestamp);var formatDate=function formatDate(date){return date.format("YY/MM/DD")};var startYear=startDate.year();var endYear=endDate.year();if(startYear===endYear){return"".concat(formatDate(startDate)," - ").concat(endDate.format("MM/DD"))}else{return"".concat(formatDate(startDate)," - ").concat(formatDate(endDate))}}},{key:"getStringOfCalculateClassTime",value:function getStringOfCalculateClassTime(startTimestamp,endTimestamp,weeklyMinutes){var startDate=(0,_momentTimezone["default"])(startTimestamp);var endDate=(0,_momentTimezone["default"])(endTimestamp);var totalDays=endDate.diff(startDate,"days")+1;var totalWeeks=Math.ceil(totalDays/7);var totalMinutes=totalWeeks*weeklyMinutes;var hours=Math.floor(totalMinutes/60);var minutes=totalMinutes%60;if(minutes===0){return"".concat(hours,"\u5C0F\u6642")}else{return"".concat(hours,"\u5C0F\u6642").concat(minutes,"\u5206\u9418")}}},{key:"getNumberOfPeriodMinute",value:function getNumberOfPeriodMinute(startTimestamp,endTimestamp){var startTime=(0,_momentTimezone["default"])(startTimestamp).format("HH:mm");var endTime=(0,_momentTimezone["default"])(endTimestamp).format("HH:mm");var startDate=(0,_momentTimezone["default"])(startTime,"HH:mm");var endDate=(0,_momentTimezone["default"])(endTime,"HH:mm");var durationInMinutes=_momentTimezone["default"].duration(endDate.diff(startDate)).asMinutes();return durationInMinutes}},{key:"getStringOfWeekTime",value:function getStringOfWeekTime(day,startTimestamp,endTimestamp){var daysOfWeek={1:"\u9031\u4E00",2:"\u9031\u4E8C",3:"\u9031\u4E09",4:"\u9031\u56DB",5:"\u9031\u4E94",6:"\u9031\u516D",7:"\u9031\u65E5"};if(day<1||day>7){throw new Error("day \u5FC5\u9808\u5728 1 \u5230 7 \u4E4B\u9593")}var startTime=(0,_momentTimezone["default"])(startTimestamp).format("HH:mm");var endTime=(0,_momentTimezone["default"])(endTimestamp).format("HH:mm");return"".concat(daysOfWeek[day]," ").concat(startTime,"-").concat(endTime)}},{key:"extractNumber",value:function extractNumber(str){if(this.isUndefinedNullEmpty(str))return-1;var match=str.match(/\d+/);return match?Number(match[0]):-1}},{key:"fetchElementAttribute",value:(function(){var _fetchElementAttribute=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee8(dom){var attr,defaultValue,_args9=arguments;return _regenerator["default"].wrap(function _callee8$(_context9){while(1)switch(_context9.prev=_context9.next){case 0:attr=_args9.length>1&&_args9[1]!==undefined?_args9[1]:"innerText";defaultValue=_args9.length>2&&_args9[2]!==undefined?_args9[2]:"";_context9.next=4;return dom.evaluate(function(el){return el[attr]});case 4:return _context9.abrupt("return",_context9.sent);case 5:case"end":return _context9.stop()}},_callee8)}));function fetchElementAttribute(_x5){return _fetchElementAttribute.apply(this,arguments)}return fetchElementAttribute}())},{key:"fetchElementAttributes",value:(function(){var _fetchElementAttributes=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee9(dom,stringOfTrait){var defaultValue,element,_len29,attributes,_key39,_args10=arguments;return _regenerator["default"].wrap(function _callee9$(_context10){while(1)switch(_context10.prev=_context10.next){case 0:defaultValue=_args10.length>2&&_args10[2]!==undefined?_args10[2]:"";_context10.next=3;return dom.$(stringOfTrait);case 3:element=_context10.sent;if(this.isUndefinedNullEmpty(element)){_context10.next=16;break}for(_len29=_args10.length,attributes=new Array(_len29>3?_len29-3:0),_key39=3;_key39<_len29;_key39++){attributes[_key39-3]=_args10[_key39]}_context10.prev=6;_context10.next=9;return element.evaluate(function(el,attributes){if(attributes.length===1)return el[attributes.shift()];return _objectSpread({},attributes.map(function(attr){return el[attr]}))},attributes);case 9:return _context10.abrupt("return",_context10.sent);case 12:_context10.prev=12;_context10.t0=_context10["catch"](6);this.appendError("1581532 ".concat(stringOfTrait," fetch ").concat(JSON.stringify(attributes)," fail, element is not found"));return _context10.abrupt("return",defaultValue);case 16:return _context10.abrupt("return",defaultValue);case 17:case"end":return _context10.stop()}},_callee9,this,[[6,12]])}));function fetchElementAttributes(_x6,_x7){return _fetchElementAttributes.apply(this,arguments)}return fetchElementAttributes}())},{key:"writeElementAttributes",value:(function(){var _writeElementAttributes=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee10(dom,stringOfTrait){var element,_len30,attributes,_key40,_args11=arguments;return _regenerator["default"].wrap(function _callee10$(_context11){while(1)switch(_context11.prev=_context11.next){case 0:_context11.next=2;return dom.$(stringOfTrait);case 2:element=_context11.sent;for(_len30=_args11.length,attributes=new Array(_len30>2?_len30-2:0),_key40=2;_key40<_len30;_key40++){attributes[_key40-2]=_args11[_key40]}if(this.isUndefinedNullEmpty(element)){_context11.next=9;break}_context11.next=7;return element.evaluate(function(element,attributes){attributes.map(function(attr){var entries=Object.entries(attr);var key=entries[0][0];var value=entries[0][1];element[key]=value})},attributes);case 7:_context11.next=10;break;case 9:this.appendError("1231232 ".concat(stringOfTrait," fetch ").concat(JSON.stringify(attributes)," fail, element is not found"));case 10:case"end":return _context11.stop()}},_callee10,this)}));function writeElementAttributes(_x8,_x9){return _writeElementAttributes.apply(this,arguments)}return writeElementAttributes}())},{key:"getSliceArrayOfUnique",value:function getSliceArrayOfUnique(array){if(!Array.isArray(array)||array.length===0){return[]}var firstElement=array[0];if(_lodash["default"].isObject(firstElement)&&key){var uniqueMap=new Map(array.map(function(item){return[item[key],item]}));return Array.from(uniqueMap.values())}else if(_lodash["default"].isObject(firstElement)){console.warn("getSliceArrayOfUniqueOptimized: No key provided for object array, using potentially slow deep comparison.");return _lodash["default"].uniqWith(array,_lodash["default"].isEqual)}else{return Array.from(new Set(array))}}},{key:"getUniqueValuesBy",value:function getUniqueValuesBy(array){var key=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"valueOfType";return _lodash["default"].uniq(array.map(function(item){return item[key]}))}},{key:"generateCombinations",value:function generateCombinations(){for(var _len31=arguments.length,attributes=new Array(_len31),_key41=0;_key41<_len31;_key41++){attributes[_key41]=arguments[_key41]}var keys=attributes.map(function(attr){return attr.key});var labelMap=_lodash["default"].keyBy(attributes,"key");var optionArrays=attributes.map(function(attr){return attr.options.map(function(option){return{key:attr.key,value:option.value,label:option.label}})});var cartesianProduct=_lodash["default"].reduce(optionArrays,function(acc,curr){return _lodash["default"].flatMap(acc,function(a){return curr.map(function(b){return[].concat((0,_toConsumableArray2["default"])(a),[b])})})},[[]]);var results=cartesianProduct.map(function(combination){var trait={};var idParts=[];var contentParts=[];var _iterator19=_createForOfIteratorHelper(combination),_step19;try{for(_iterator19.s();!(_step19=_iterator19.n()).done;){var _step19$value=_step19.value,_key42=_step19$value.key,value=_step19$value.value,label=_step19$value.label;trait[_key42]=value;idParts.push("".concat(_key42,"_").concat(value));contentParts.push("".concat(label))}}catch(err){_iterator19.e(err)}finally{_iterator19.f()}return{trait:trait,id:idParts.join("_"),content:contentParts.join("\uFF5C")}});return _lodash["default"].sortBy(results,function(item){return keys.map(function(key){return item.trait[key]})})}},{key:"extractStaticSegments",value:function extractStaticSegments(path){var rules=arguments.length>1&&arguments[1]!==undefined?arguments[1]:[":"];return path.trim().replace(/^\.?\/*|\/*$/g,"").split("/").filter(function(segment){return segment&&!rules.some(function(rule){return segment.startsWith(rule)})})}},{key:"mutateRemoveKeys",value:function mutateRemoveKeys(array,keysToRemove){_lodash["default"].forEach(array,function(obj,index){var filtered=Object.fromEntries(Object.entries(obj).filter(function(_ref8){var _ref9=(0,_slicedToArray2["default"])(_ref8,1),key=_ref9[0];return!keysToRemove.includes(key)}));Object.keys(obj).forEach(function(k){return delete obj[k]});Object.assign(obj,filtered)})}},{key:"removeKeysFromArrayObjects",value:function removeKeysFromArrayObjects(array,keysToRemove){return _lodash["default"].map(array,function(obj){return Object.fromEntries(Object.entries(obj).filter(function(_ref10){var _ref11=(0,_slicedToArray2["default"])(_ref10,1),key=_ref11[0];return!keysToRemove.includes(key)}))})}},{key:"formatTextWithEllipsis",value:function formatTextWithEllipsis(originalText,maxLength){var ellipsis="......";var ellipsisLength=ellipsis.length;if(_lodash["default"].size(originalText)<=maxLength)return originalText;if(maxLength<=ellipsisLength)return"";var remainingLength=maxLength-ellipsisLength;var frontLength=Math.floor(remainingLength/2);var backLength=remainingLength-frontLength;var front=_lodash["default"].truncate(originalText,{length:frontLength,omission:""});var back=_lodash["default"].takeRight(originalText,backLength).join("");return"".concat(front).concat(ellipsis).concat(back)}},{key:"getObjectBy",value:function getObjectBy(obj){var predict=arguments.length>1&&arguments[1]!==undefined?arguments[1]:function(attr){return attr.checked!==true};return _lodash["default"].fromPairs(_lodash["default"].toPairs(obj).filter(function(_ref12){var _ref13=(0,_slicedToArray2["default"])(_ref12,2),_=_ref13[0],value=_ref13[1];return predict(value)}))}},{key:"mutateBy",value:function mutateBy(array){var predict=arguments.length>1&&arguments[1]!==undefined?arguments[1]:function(item){return item};var sorted=_lodash["default"].sortBy(array,predict);array.splice.apply(array,[0,array.length].concat((0,_toConsumableArray2["default"])(sorted)))}},{key:"findUniqueStrings",value:function findUniqueStrings(){for(var _len32=arguments.length,arrays=new Array(_len32),_key43=0;_key43<_len32;_key43++){arrays[_key43]=arguments[_key43]}var allStrings=_lodash["default"].flatten(arrays);var grouped=_lodash["default"].countBy(allStrings);return _lodash["default"].chain(grouped).pickBy(function(count){return count===1}).keys().compact().value()}},{key:"getObjectOfSpecifyKey",value:function getObjectOfSpecifyKey(value,key){var object={};object[key]=value;return object}},{key:"findUniqueNonReferenceStrings",value:function findUniqueNonReferenceStrings(){for(var _len33=arguments.length,arrays=new Array(_len33),_key44=0;_key44<_len33;_key44++){arrays[_key44]=arguments[_key44]}if(arrays.length===0)return[];var reference=arrays[0],rest=arrays.slice(1);var allExceptRef=_lodash["default"].flatten(rest);var counted=_lodash["default"].countBy(allExceptRef);return _lodash["default"].chain(counted).pickBy(function(count,str){return count===1&&!reference.includes(str)}).keys().compact().value()}},{key:"getArrayOfFillMissingValues",value:function getArrayOfFillMissingValues(array){var charset="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";var generateRandomValue=function generateRandomValue(){return _lodash["default"].times(8,function(){return _lodash["default"].sample(charset)}).join("")};var usedValues=new Set(array.map(function(item){return item.value}).filter(Boolean));return array.map(function(item){if(_lodash["default"].isEmpty(item.value)){var newValue;do{newValue=generateRandomValue()}while(usedValues.has(newValue));usedValues.add(newValue);return _objectSpread(_objectSpread({},item),{},{value:newValue})}return item})}},{key:"isFirestoreAutoId",value:function isFirestoreAutoId(id){return _lodash["default"].isString(id)&&id.length===20&&/^[A-Za-z0-9]{20}$/.test(id)}},{key:"getAutoIdOfFirestore",value:function getAutoIdOfFirestore(){return this.getRandomHashV2(20)}},{key:"getStringOfConvertTimeRange",value:function getStringOfConvertTimeRange(input){var _input$split=input.split("\uFF5C"),_input$split2=(0,_slicedToArray2["default"])(_input$split,2),datePart=_input$split2[0],timeRange=_input$split2[1];var dateStr=datePart.split("(")[0];var _timeRange$split=timeRange.split("-"),_timeRange$split2=(0,_slicedToArray2["default"])(_timeRange$split,2),start=_timeRange$split2[0],end=_timeRange$split2[1];var formatDate=function formatDate(time){return(0,_momentTimezone["default"])("".concat(dateStr," ").concat(time),"YYYY/MM/DD HH:mm").format("YYYYMMDDHHmm")};return"".concat(formatDate(start),"-").concat(formatDate(end))}},{key:"getTSOfSpecificDate",value:function getTSOfSpecificDate(dateStr){var _ref14=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},_ref14$end=_ref14.end,end=_ref14$end===void 0?false:_ref14$end;return Number((0,_lodash["default"])(dateStr).thru(function(str){return(0,_momentTimezone["default"])(str.split("(")[0],"YYYY/MM/DD")}).thru(function(m){return end?m.endOf("day"):m.startOf("day")}).value().format("YYYYMMDDHHmmss"))}},{key:"isHttpsURL",value:function isHttpsURL(url){if(!_lodash["default"].isString(url))return false;try{var decoded=decodeURIComponent(url.trim());var parsed=new URL(decoded);return parsed.protocol==="https:"}catch(e){return false}}},{key:"generateUniqueCodeMap",value:function generateUniqueCodeMap(array){var length=arguments.length>1&&arguments[1]!==undefined?arguments[1]:3;if(length<2){throw new Error("\u4EE3\u78BC\u9577\u5EA6\u6700\u5C11\u5FC5\u9808\u70BA 2\u3002")}var usedCodes=new Set;var usedKeys=new Set;var generateRandomCode=function generateRandomCode(){var letters="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";var chars=letters+"0123456789";var code;do{code=letters[Math.floor(Math.random()*letters.length)];for(var i=1;i<length;i++){code+=chars[Math.floor(Math.random()*chars.length)]}}while(usedCodes.has(code));usedCodes.add(code);return code};return _lodash["default"].transform(array,function(result,key){if(usedKeys.has(key)){throw new Error("23125453 Duplicate key detected: \"".concat(key,"\""))}usedKeys.add(key);result[key]=generateRandomCode()},{})}},{key:"getPriceOfPercentageBehavior",value:function getPriceOfPercentageBehavior(price,percentage){var discount=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;var decimal=this.toPercentageDecimal(percentage);return this.getNumberOfMultiplyCeil(price,discount?1-decimal:1+decimal)}},{key:"getFeeOfDiscount",value:function getFeeOfDiscount(origin,percentage){return Math.round(_lodash["default"].multiply(origin,percentage))}},{key:"mergeArrayByKey",value:function mergeArrayByKey(array){if(!Array.isArray(array))return array;var resultMap={};var _iterator20=_createForOfIteratorHelper(array),_step20;try{for(_iterator20.s();!(_step20=_iterator20.n()).done;){var obj=_step20.value;if(!_lodash["default"].isPlainObject(obj))continue;for(var _i16=0,_Object$entries=Object.entries(obj);_i16<_Object$entries.length;_i16++){var _Object$entries$_i=(0,_slicedToArray2["default"])(_Object$entries[_i16],2),_key45=_Object$entries$_i[0],value=_Object$entries$_i[1];if(!resultMap[_key45]){resultMap[_key45]=_lodash["default"].cloneDeep(value)}else{_lodash["default"].merge(resultMap[_key45],value)}}}}catch(err){_iterator20.e(err)}finally{_iterator20.f()}array.length=0;Object.entries(resultMap).forEach(function(_ref15){var _ref16=(0,_slicedToArray2["default"])(_ref15,2),key=_ref16[0],value=_ref16[1];array.push((0,_defineProperty2["default"])({},key,value))});return array}},{key:"getObjectOfStartEndDateTime",value:function getObjectOfStartEndDateTime(input){if(!input||typeof input!=="string"){return{startDate:"",startTime:"",endDate:"",endTime:""}}var cleaned=input.replace(/|/g," ").replace(/-/g,"-").replace(/\s+/g," ").trim();var crossDatePattern=/(\d{4}\/\d{1,2}\/\d{1,2})(?:\s*\([^)]*\))?\s*(\d{2}:\d{2})\s*-\s*(\d{4}\/\d{1,2}\/\d{1,2})(?:\s*\([^)]*\))?\s*(\d{2}:\d{2})/;var sameDatePattern=/(\d{4}\/\d{1,2}\/\d{1,2})(?:\s*\([^)]*\))?\s*(\d{2}:\d{2})\s*-\s*(\d{2}:\d{2})/;var startDate,startTime,endDate,endTime;if(crossDatePattern.test(cleaned)){var _cleaned$match=cleaned.match(crossDatePattern);var _cleaned$match2=(0,_slicedToArray2["default"])(_cleaned$match,5);startDate=_cleaned$match2[1];startTime=_cleaned$match2[2];endDate=_cleaned$match2[3];endTime=_cleaned$match2[4]}else if(sameDatePattern.test(cleaned)){var _cleaned$match3=cleaned.match(sameDatePattern);var _cleaned$match4=(0,_slicedToArray2["default"])(_cleaned$match3,4);startDate=_cleaned$match4[1];startTime=_cleaned$match4[2];endTime=_cleaned$match4[3];endDate=startDate}else{return{startDate:"",startTime:"",endDate:"",endTime:""}}var start=new Date("".concat(startDate," ").concat(startTime));var end=new Date("".concat(endDate," ").concat(endTime));if(end<start){throw new Error("End time cannot be earlier than start time: ".concat(input))}return{startDate:startDate,startTime:startTime,endDate:endDate,endTime:endTime}}},{key:"getFilteredHeraPeriods",value:function getFilteredHeraPeriods(arr,idOfCurrentBooze){return _lodash["default"].chain(arr).filter(function(item){return item.idOfBooze!==idOfCurrentBooze}).uniqBy(function(item){return"".concat(item.idOfBooze,"_").concat(item.idOfVariant)}).value()}},{key:"checkPeriodConflict",value:function checkPeriodConflict(newTask,existingTasks){var resourceCount=arguments.length>2&&arguments[2]!==undefined?arguments[2]:1;var _newTask$content$spli=newTask.content.split("\uFF5C"),_newTask$content$spli2=(0,_slicedToArray2["default"])(_newTask$content$spli,2),datePart=_newTask$content$spli2[0],timePart=_newTask$content$spli2[1];var date=(0,_momentTimezone["default"])(datePart.split(" ")[0],"YYYY/MM/DD");var _timePart$split=timePart.split("-"),_timePart$split2=(0,_slicedToArray2["default"])(_timePart$split,2),startTimeStr=_timePart$split2[0],endTimeStr=_timePart$split2[1];var start=(0,_momentTimezone["default"])("".concat(date.format("YYYY/MM/DD")," ").concat(startTimeStr),"YYYY/MM/DD HH:mm");var end=(0,_momentTimezone["default"])("".concat(date.format("YYYY/MM/DD")," ").concat(endTimeStr),"YYYY/MM/DD HH:mm");var conflictItems=_lodash["default"].filter(existingTasks,function(task){var _task$period$split=task.period.split("-"),_task$period$split2=(0,_slicedToArray2["default"])(_task$period$split,2),pStartStr=_task$period$split2[0],pEndStr=_task$period$split2[1];var pStart=(0,_momentTimezone["default"])(pStartStr,"YYYYMMDDHHmm");var pEnd=(0,_momentTimezone["default"])(pEndStr,"YYYYMMDDHHmm");return start.isBefore(pEnd)&&end.isAfter(pStart)});var conflict=conflictItems.length>=resourceCount;return{conflict:conflict,items:conflictItems}}}])}();var _default=exports["default"]=Utiller;
|
|
1
|
+
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports["default"]=void 0;var _regenerator=_interopRequireDefault(require("@babel/runtime/regenerator"));var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _typeof2=_interopRequireDefault(require("@babel/runtime/helpers/typeof"));var _toConsumableArray2=_interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));var _lodash=_interopRequireDefault(require("lodash"));var _cryptoJs=_interopRequireDefault(require("crypto-js"));var _configerer=require("configerer");var _exceptioner=_interopRequireDefault(require("../exceptioner"));var _momentTimezone=_interopRequireDefault(require("moment-timezone"));var _uuid=require("uuid");var _words=require("../words");var _nodeHtmlParser=require("node-html-parser");function _createForOfIteratorHelper(r,e){var t="undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(!t){if(Array.isArray(r)||(t=_unsupportedIterableToArray(r))||e&&r&&"number"==typeof r.length){t&&(r=t);var _n=0,F=function F(){};return{s:F,n:function n(){return _n>=r.length?{done:!0}:{done:!1,value:r[_n++]}},e:function e(r){throw r},f:F}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,u=!1;return{s:function s(){t=t.call(r)},n:function n(){var r=t.next();return a=r.done,r},e:function e(r){u=!0,o=r},f:function f(){try{a||null==t["return"]||t["return"]()}finally{if(u)throw o}}}}function _unsupportedIterableToArray(r,a){if(r){if("string"==typeof r)return _arrayLikeToArray(r,a);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0}}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n}function ownKeys(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})),t.push.apply(t,o)}return t}function _objectSpread(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?ownKeys(Object(t),!0).forEach(function(r){(0,_defineProperty2["default"])(e,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})}return e}String.format=function(){var param=[];for(var i=0,l=arguments.length;i<l;i++){param.push(arguments[i])}var statment=param[0];param.shift();return statment.replace(/\{(\d+)\}/g,function(m,n){return param[n]})};var Utiller=function(){function Utiller(){var _this=this;(0,_classCallCheck2["default"])(this,Utiller);(0,_defineProperty2["default"])(this,"mapOfIdNTimeoutId",{});(0,_defineProperty2["default"])(this,"getEnvironment",function(){return _this.env});(0,_defineProperty2["default"])(this,"isProductionEnvironment",function(){return _lodash["default"].isEqual(_this.getEnvironment(),"prod")});(0,_defineProperty2["default"])(this,"asyncUnitTaskFunction",function(){var millionSec=arguments.length>0&&arguments[0]!==undefined?arguments[0]:2000;var _funparam=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"\u9810\u8A2D\u7684param";var errorSimulator=arguments.length>2?arguments[2]:undefined;return(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee(){var param,randomValue,symbol,_args=arguments;return _regenerator["default"].wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:param=_args.length>0&&_args[0]!==undefined?_args[0]:_this.getRandomHash(10);randomValue=_this.getRandomValue(millionSec,millionSec*1.2);_context.prev=2;symbol=randomValue;_this.appendInfo("before executed ===> i'm symbol of ".concat(symbol,", ready to be executed, inner param = ").concat(_funparam));_context.next=7;return _this.syncDelay(randomValue);case 7:if(!(_lodash["default"].isFunction(errorSimulator)&&errorSimulator(param))){_context.next=9;break}throw Error("force to made error happen");case 9:_this.appendInfo("after executed ===> i'm symbol of ".concat(symbol,", the task cost ").concat(randomValue," million-seconds ").concat(param?"i hav params ===> ".concat(param):""));return _context.abrupt("return",{randomValue:randomValue,symbol:symbol,param:param});case 13:_context.prev=13;_context.t0=_context["catch"](2);_this.appendError(new Error("asyncUnitTask() catch error ".concat(_context.t0.message)));case 16:_context.prev=16;_this.appendInfo("wow.... finally got you");return _context.finish(16);case 19:case"end":return _context.stop()}},_callee,null,[[2,13,16,19]])}))});(0,_defineProperty2["default"])(this,"test",function(word){return(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee2(){return _regenerator["default"].wrap(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:_context2.next=2;return Util.syncDelay(3000);case 2:console.log("\u7D93\u904E\u4E86\u4E09\u79D2");_context2.next=5;return Util.syncDelay(4000);case 5:console.log("\u7D93\u904E\u4E86\u56DB\u79D2");_context2.next=8;return Util.syncDelay(5000);case 8:console.log("\u7D93\u904E\u4E86\u4E94\u79D2");_context2.next=11;return Util.syncDelay(6000);case 11:console.log("\u7D93\u904E\u4E86\u516D\u79D2");return _context2.abrupt("return","3423809432804 ".concat(word));case 13:case"end":return _context2.stop()}},_callee2)}))});(0,_defineProperty2["default"])(this,"findLowestValue",function(items){var key=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"price";var minPrice=_lodash["default"].minBy(items,key)[key];return Math.floor(minPrice)});(0,_defineProperty2["default"])(this,"findHighestValue",function(items){var key=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"price";var maxPrice=_lodash["default"].maxBy(items,key)[key];return Math.floor(maxPrice)});(0,_defineProperty2["default"])(this,"getStringOfValueRange",function(items){var key=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"price";var sign=arguments.length>2&&arguments[2]!==undefined?arguments[2]:"$";var minV=_lodash["default"].minBy(items,key)[key];var maxV=_lodash["default"].maxBy(items,key)[key];return maxV===minV?"$".concat(minV):"".concat(sign).concat(minV," - ").concat(sign).concat(maxV)});(0,_defineProperty2["default"])(this,"getCallersName",function(){var callerName;try{throw new Error}catch(e){var re=/(\w+)@|at (\w+) \(/g,st=e.stack,m;re.exec(st),m=re.exec(st);if(!_lodash["default"].isNull(m))callerName=m[1]||m[2]}if(_lodash["default"].startsWith("asyncGeneratorStep",callerName))callerName="";return callerName});(0,_defineProperty2["default"])(this,"getRandomValue",function(min,max){min=Math.ceil(min);max=Math.floor(max);return Math.floor(Math.random()*(max-min+1))+min});(0,_defineProperty2["default"])(this,"insertToArray",function(array,index){if(!Array.isArray(array)){throw new Error("First argument must be an array.")}var insertAt=Math.max(0,Math.min(index+1,array.length));for(var _len=arguments.length,items=new Array(_len>2?_len-2:0),_key2=2;_key2<_len;_key2++){items[_key2-2]=arguments[_key2]}array.splice.apply(array,[insertAt,0].concat(items))});(0,_defineProperty2["default"])(this,"getStringOfYearADConvertToMinguoYear",function(gregorianYear){var full=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;var minguoYear=gregorianYear-1911;if(minguoYear>0){return"".concat(full?"\u6C11\u570B":"").concat(minguoYear).concat(full?"\u5E74":"")}else{return"".concat(full?"\u6C11\u570B":"","\u524D").concat(Math.abs(minguoYear)).concat(full?"\u5E74":"")}});(0,_defineProperty2["default"])(this,"convertDateToTimestamp",function(date){return(0,_momentTimezone["default"])(date).valueOf()});(0,_defineProperty2["default"])(this,"measureExecutionTime",function(){var _ref3=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee3(fn){var startTime,_len2,param,_key3,endTime,durationInMilliseconds,duration,hours,minutes,seconds,milliseconds,totalSeconds,_args3=arguments;return _regenerator["default"].wrap(function _callee3$(_context3){while(1)switch(_context3.prev=_context3.next){case 0:startTime=Date.now();for(_len2=_args3.length,param=new Array(_len2>1?_len2-1:0),_key3=1;_key3<_len2;_key3++){param[_key3-1]=_args3[_key3]}_context3.next=4;return fn.apply(void 0,param);case 4:endTime=Date.now();durationInMilliseconds=endTime-startTime;duration=_momentTimezone["default"].duration(durationInMilliseconds,"milliseconds");hours=Math.floor(duration.asHours());minutes=duration.minutes();seconds=duration.seconds();milliseconds=duration.milliseconds();totalSeconds=(durationInMilliseconds/1000).toFixed(3);_this.appendInfo("".concat(hours,"\u5C0F\u6642 ").concat(minutes,"\u5206 ").concat(seconds,".").concat(milliseconds.toString().padStart(3,"0"),"\u79D2 (\u5408\u8A08 ").concat(totalSeconds," \u79D2)"));case 13:case"end":return _context3.stop()}},_callee3)}));return function(_x){return _ref3.apply(this,arguments)}}());(0,_defineProperty2["default"])(this,"formatPriceWithCurrency",function(number,locale){if(typeof number!=="number"||typeof locale!=="string"){throw new TypeError("Invalid input: number must be a number and locale must be a string.")}return new Intl.NumberFormat(locale,{style:"currency",currency:new Intl.Locale(locale).maximize().currency||"USD",minimumFractionDigits:0}).format(number)});(0,_defineProperty2["default"])(this,"formatPrice",function(number,locale){if(typeof number!=="number"){throw new TypeError("Invalid input: number must be a number.")}if(!locale){return number.toLocaleString("en-US")}return new Intl.NumberFormat(locale,{style:"currency",currency:new Intl.Locale(locale).maximize().currency||"USD",minimumFractionDigits:0}).format(number)});(0,_defineProperty2["default"])(this,"generateUniversalKeywords",function(sentence){var maxLength=arguments.length>1&&arguments[1]!==undefined?arguments[1]:50;var maxNgramLength=arguments.length>2&&arguments[2]!==undefined?arguments[2]:4;if(!sentence||typeof sentence!=="string"){return[]}if(typeof _lodash["default"]==="undefined"){console.error("Lodash is not available. Please ensure it is imported.");return[]}var textToProcess=sentence.trim();var keywords=[];maxNgramLength=Math.max(2,maxNgramLength);if(textToProcess.length>maxLength){console.warn("\u8B66\u544A\uFF1A\u8F38\u5165\u5B57\u4E32\u9577\u5EA6\u70BA ".concat(textToProcess.length,"\uFF0C\u5DF2\u6839\u64DA maxLength: ").concat(maxLength," \u622A\u65B7\u3002"));textToProcess=textToProcess.substring(0,maxLength)}var englishWords=textToProcess.match(/[a-zA-Z]+/g)||[];englishWords.forEach(function(word){if(word.length>=2){keywords.push(word.toUpperCase());keywords.push(word.toLowerCase());var capitalized=word.charAt(0).toUpperCase()+word.slice(1).toLowerCase();keywords.push(capitalized)}});var specKeywordsRegex=/\b[0-9]+[a-zA-Z]{1,4}\b|\b[0-9]{1,3}(w|ml|g|oz|k)\b|[\u4e00-\u9fa5a-zA-Z0-9]{1,4}(色|號)[\u4e00-\u9fa5a-zA-Z0-9]{0,2}/gi;var specKeywords=(textToProcess.match(specKeywordsRegex)||[]).filter(function(k){return k.length>=2}).map(function(k){return k.toLowerCase()});keywords.push.apply(keywords,(0,_toConsumableArray2["default"])(specKeywords));var cleanText=textToProcess.toLowerCase();cleanText=cleanText.replace(/[0-9]+([\u4e00-\u9fa5a-z]{1,4}|[\/\-\~\\])/g," ").replace(/\b[a-z]{1,4}\b/g," ").replace(/\b[0-9]{1,3}\b/g," ");cleanText=cleanText.replace(/[!@#$%^&*()_+={}\[\]:;"'<>,.?\/\\|`~]/g," ").replace(/系列|一組|單色|多款|套組|全套|專用|迷你|頂級|高品質|超閃|奢華|最新|款式|新款|超亮|的|與|和|閃|美甲/g," ").replace(/\s+/g,"").trim();var minLength=2;for(var len=minLength;len<=maxNgramLength;len++){for(var i=0;i<=cleanText.length-len;i++){var keyword=cleanText.substring(i,i+len);keywords.push(keyword)}}var finalKeywords=_lodash["default"].chain(keywords).filter(function(k){return k.length>=2}).filter(function(k){return k.length>2||!/^[\u4e00-\u9fa5a-z0-9]$/.test(k)}).uniq().sortBy().value();return finalKeywords});(0,_defineProperty2["default"])(this,"mutateIndexOfArrayItem",function(array,object){var index=arguments.length>2&&arguments[2]!==undefined?arguments[2]:0;if(!Array.isArray(array)||!_lodash["default"].isObject(object))return array;var currentIndex=_lodash["default"].findIndex(array,function(item){return _lodash["default"].isEqual(item,object)});if(currentIndex===-1)return array;array.splice(currentIndex,1);var targetIndex=_lodash["default"].clamp(index,0,array.length);array.splice(targetIndex,0,object);return array});(0,_defineProperty2["default"])(this,"getArrayOfModifyObject2Index",function(array,object){var index=arguments.length>2&&arguments[2]!==undefined?arguments[2]:0;if(!Array.isArray(array)||!_lodash["default"].isObject(object))return array;var cloned=_lodash["default"].cloneDeep(array);var currentIndex=_lodash["default"].findIndex(cloned,function(item){return _lodash["default"].isEqual(item,object)});if(currentIndex===-1)return array;cloned.splice(currentIndex,1);var targetIndex=_lodash["default"].clamp(index,0,cloned.length);cloned.splice(targetIndex,0,object);return cloned});(0,_defineProperty2["default"])(this,"generateLabelValuePairsWithOrigin",function(){var origin=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[{label:"aa",value:1203},{label:"cc",value:1204},{label:"gg",value:2}];var latest=arguments.length>1&&arguments[1]!==undefined?arguments[1]:["aa","bb"];var usedValues=new Set(origin.map(function(o){return o.value}));return _lodash["default"].chain(latest).uniq().map(function(label){var originItem=_lodash["default"].find(origin,{label:label});if(originItem){return{label:label,value:originItem.value}}var value;do{value=_lodash["default"].random(2,999999999)}while(usedValues.has(value));usedValues.add(value);return{label:label,value:value}}).value()});(0,_defineProperty2["default"])(this,"getItemsOfMarkMatching",function(){var sourceArray=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[];var values=arguments.length>1&&arguments[1]!==undefined?arguments[1]:[];var valueKey=arguments.length>2&&arguments[2]!==undefined?arguments[2]:"value";var flagKey=arguments.length>3&&arguments[3]!==undefined?arguments[3]:"belong";var valuesSet=new Set(values);return _lodash["default"].map(sourceArray,function(item){return _objectSpread(_objectSpread({},item),{},(0,_defineProperty2["default"])({},flagKey,valuesSet.has(item[valueKey])))})});(0,_defineProperty2["default"])(this,"generateVariants",function(arrays){var labelSeparator=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"\uFF5C";var valueSeparator=arguments.length>2&&arguments[2]!==undefined?arguments[2]:"-";var nonEmptyArrays=arrays.filter(function(arr){return arr.length>0});if(nonEmptyArrays.length===0)return[];if(nonEmptyArrays.length===1){return nonEmptyArrays[0].map(function(item){return{label:item.label,value:item.value}})}var combinations=_lodash["default"].reduce(nonEmptyArrays,function(acc,curr){return _lodash["default"].flatMap(acc,function(a){return curr.map(function(b){return[].concat((0,_toConsumableArray2["default"])(a),[b])})})},[[]]);return combinations.map(function(comb){return{label:comb.map(function(item){return item.label}).join(labelSeparator),value:comb.map(function(item){return item.value}).join(valueSeparator)}})});(0,_defineProperty2["default"])(this,"renameKeysInArray",function(arr){for(var _len3=arguments.length,keyMappings=new Array(_len3>1?_len3-1:0),_key4=1;_key4<_len3;_key4++){keyMappings[_key4-1]=arguments[_key4]}var mapping=Object.fromEntries(keyMappings);return arr.map(function(item){return _lodash["default"].mapKeys(item,function(value,key){return mapping[key]||key})})});(0,_defineProperty2["default"])(this,"getArrayOfMergeBySpecificId",function(array1,array2){var idKey=arguments.length>2&&arguments[2]!==undefined?arguments[2]:"id";if(!Array.isArray(array2))return array1;var map2=_lodash["default"].keyBy(array2,function(item){return _lodash["default"].get(item,idKey)});return array1.map(function(item){var id=_lodash["default"].get(item,idKey);var match=map2[id];return match?_lodash["default"].merge({},item,match):item})});(0,_defineProperty2["default"])(this,"toPercentageDecimal",function(num){if(_lodash["default"].isNil(num))return 1;if(_lodash["default"].isString(num)){num=num.replace(/%/g,"").trim()}var parsed=_lodash["default"].toNumber(num);if(!_lodash["default"].isFinite(parsed))return 1;return _lodash["default"].round(parsed/100,10)});(0,_defineProperty2["default"])(this,"getNumberOfMultiplyCeil",function(a,b){var precision=arguments.length>2&&arguments[2]!==undefined?arguments[2]:0;var factor=Math.pow(10,precision);return Math.ceil(a*b*factor)/factor});(0,_defineProperty2["default"])(this,"generateGoogleCalendarLink",function(_ref4){var title=_ref4.title,startDate=_ref4.startDate,startTime=_ref4.startTime,endDate=_ref4.endDate,endTime=_ref4.endTime,location=_ref4.location,details=_ref4.details;var startDateTime=(0,_momentTimezone["default"])("".concat(startDate," ").concat(startTime),"YYYY/MM/DD HH:mm").format("YYYYMMDDTHHmmss");var endDateTime=(0,_momentTimezone["default"])("".concat(endDate," ").concat(endTime),"YYYY/MM/DD HH:mm").format("YYYYMMDDTHHmmss");var params=new URLSearchParams;if(title)params.append("text",title);if(startDateTime&&endDateTime)params.append("dates","".concat(startDateTime,"/").concat(endDateTime));if(details)params.append("details",details);if(location)params.append("location",location);params.append("ctz","Asia/Taipei");params.append("trp","true");return"https://calendar.google.com/calendar/r/eventedit?".concat(params.toString())});(0,_defineProperty2["default"])(this,"generateTimeTreeLink",function(_ref5){var title=_ref5.title,startDate=_ref5.startDate,startTime=_ref5.startTime,endDate=_ref5.endDate,endTime=_ref5.endTime,location=_ref5.location,memo=_ref5.memo;var params=new URLSearchParams;if(title)params.append("title",title);if(startDate)params.append("start_date",startDate.replace(/\//g,"-"));if(startTime)params.append("start_time",startTime);if(endDate)params.append("end_date",endDate.replace(/\//g,"-"));if(endTime)params.append("end_time",endTime);if(location)params.append("location",location);if(memo)params.append("memo",memo);return"https://timetreeapp.com/plans/new?".concat(params.toString())});(0,_defineProperty2["default"])(this,"generateIcsContent",function(_ref6){var title=_ref6.title,startDate=_ref6.startDate,startTime=_ref6.startTime,endDate=_ref6.endDate,endTime=_ref6.endTime,location=_ref6.location,details=_ref6.details;var startDateTime=_momentTimezone["default"].tz("".concat(startDate," ").concat(startTime),"YYYY/MM/DD HH:mm","Asia/Taipei").format("YYYYMMDDTHHmmss");var endDateTime=_momentTimezone["default"].tz("".concat(endDate," ").concat(endTime),"YYYY/MM/DD HH:mm","Asia/Taipei").format("YYYYMMDDTHHmmss");var stamp=(0,_momentTimezone["default"])().utc().format("YYYYMMDDTHHmmss")+"Z";var uid=Date.now().toString(36)+Math.random().toString(36).substring(2,5)+"@gemini-app.com";var escapeIcs=function escapeIcs(text){return text.replace(/\\/g,"\\\\").replace(/,/g,"\\,").replace(/;/g,"\\;").replace(/\n/g,"\\n")};var lines=["BEGIN:VCALENDAR","VERSION:2.0","PRODID:-//Gemini AI//NONSGML v1.0//EN","BEGIN:VEVENT","UID:".concat(uid),"DTSTAMP:".concat(stamp)];if(startDateTime)lines.push("DTSTART;TZID=Asia/Taipei:".concat(startDateTime));if(endDateTime)lines.push("DTEND;TZID=Asia/Taipei:".concat(endDateTime));if(title)lines.push("SUMMARY:".concat(escapeIcs(title)));if(location)lines.push("LOCATION:".concat(escapeIcs(location)));if(details)lines.push("DESCRIPTION:".concat(escapeIcs(details)));lines.push("END:VEVENT","END:VCALENDAR");return lines.join("\r\n")});(0,_defineProperty2["default"])(this,"generateAllCalendarLinks",function(event){var googleLink=_this.generateGoogleCalendarLink(event);var timeTreeEvent=_objectSpread(_objectSpread({},event),{},{memo:event.details});var timeTreeLink=_this.generateTimeTreeLink(timeTreeEvent);var icsContent=_this.generateIcsContent(event);var icsLink="data:text/calendar;charset=utf8,".concat(encodeURIComponent(icsContent));return{google:googleLink,timeTree:timeTreeLink,ics:icsLink}});(0,_defineProperty2["default"])(this,"getArrayOfMappingRef",function(current,reference){return _lodash["default"].map(current,function(currentObj){var referenceObj=_lodash["default"].find(reference,{value:currentObj.value});return referenceObj?_lodash["default"].merge({},currentObj,referenceObj):currentObj})});(0,_defineProperty2["default"])(this,"areAllValuesTheSameOnKeys",function(array){for(var _len4=arguments.length,keys=new Array(_len4>1?_len4-1:0),_key5=1;_key5<_len4;_key5++){keys[_key5-1]=arguments[_key5]}if(!array||array.length<=1||keys.length===0){return true}var _loop=function _loop(){var _array$;var keyName=_keys[_i];var firstValue=(_array$=array[0])===null||_array$===void 0?void 0:_array$[keyName];var isCurrentKeySame=_lodash["default"].every(array,function(item){return item[keyName]===firstValue});if(!isCurrentKeySame){return{v:false}}},_ret;for(var _i=0,_keys=keys;_i<_keys.length;_i++){_ret=_loop();if(_ret)return _ret.v}return true});this.init();this.env="dev"}return(0,_createClass2["default"])(Utiller,[{key:"removeAttributeBy",value:function removeAttributeBy(object){var predicate=arguments.length>1&&arguments[1]!==undefined?arguments[1]:function(value){return _lodash["default"].isUndefined(value)};for(var _key6 in object){if(predicate(object[_key6])){delete object[_key6]}}}},{key:"getNumberOfNormalize",value:function getNumberOfNormalize(value){var defaultValue=arguments.length>1&&arguments[1]!==undefined?arguments[1]:0;if(_lodash["default"].isNumber(value))return value;try{var force=_lodash["default"].toNumber(value);return _lodash["default"].isNumber(force)&&!isNaN(force)?force:defaultValue}catch(error){Util.appendError("448561684561 ".concat(error.message))}return defaultValue}},{key:"getBooleanOfNormalize",value:function getBooleanOfNormalize(value){var defaultValue=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;if(_lodash["default"].isBoolean(value))return value;if(_lodash["default"].isNumber(value)&&_lodash["default"].isEqual(value,1))return true;if(_lodash["default"].isNumber(value)&&_lodash["default"].isEqual(value,0))return true;try{var force=JSON.parse(_lodash["default"].toString(value).toLowerCase());return _lodash["default"].isBoolean(force)?force:defaultValue}catch(error){Util.appendError("448561684562 ".concat(error.message))}return defaultValue}},{key:"getStringOfNormalize",value:function getStringOfNormalize(value){var defaultValue=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"";var trim=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;if(_lodash["default"].isString(value))return trim?_lodash["default"].trim(value):value;try{var force=_lodash["default"].toString(value);return this.isOrEquals(force,"","undefined")?defaultValue:trim?_lodash["default"].trim(force):force}catch(error){Util.appendError("448616845453 ".concat(error.message))}return defaultValue}},{key:"isValidVersionOfString",value:function isValidVersionOfString(versionName){if(this.isUndefinedNullEmpty(versionName)){return false}var numbers=versionName.split(".");var _iterator=_createForOfIteratorHelper(numbers),_step;try{for(_iterator.s();!(_step=_iterator.n()).done;){var number=_step.value;var toNum=_lodash["default"].toNumber(number);if(!_lodash["default"].isNumber(toNum)||isNaN(toNum))return false}}catch(err){_iterator.e(err)}finally{_iterator.f()}return true}},{key:"getSeparatorOfUnique",value:function getSeparatorOfUnique(){return"\u0F0D\u0F0D"}},{key:"getStringOfVersionIncrement",value:function getStringOfVersionIncrement(stringOfVersion){var delta=arguments.length>1&&arguments[1]!==undefined?arguments[1]:1;var numbers=stringOfVersion.split(".").map(function(each){return _lodash["default"].toNumber(each)});var last=numbers.length-1;numbers[last]=numbers[last]+delta;return numbers.join(".")}},{key:"setLocaleOfMoment",value:function setLocaleOfMoment(){var locale=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"en";_momentTimezone["default"].locale(locale)}},{key:"getUuidOfV4",value:function getUuidOfV4(){return(0,_uuid.v4)()}},{key:"performActionWithoutTimingIssue",value:function performActionWithoutTimingIssue(){var task=arguments.length>0&&arguments[0]!==undefined?arguments[0]:function(){return true};var wait=arguments.length>1&&arguments[1]!==undefined?arguments[1]:10;this.syncDelay(wait).then(function(){return task()})}},{key:"executeTimeoutTask",value:function executeTimeoutTask(functionOfAsyncTask){var ms=arguments.length>1&&arguments[1]!==undefined?arguments[1]:1000;var id=arguments.length>2&&arguments[2]!==undefined?arguments[2]:this.getRandomHash();var self=this;var idOfCurrentTimeoutTask=this.mapOfIdNTimeoutId[id];if(idOfCurrentTimeoutTask)clearTimeout(idOfCurrentTimeoutTask);for(var _len5=arguments.length,params=new Array(_len5>3?_len5-3:0),_key7=3;_key7<_len5;_key7++){params[_key7-3]=arguments[_key7]}var idOfTimeoutTask=setTimeout.apply(void 0,[(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee4(){return _regenerator["default"].wrap(function _callee4$(_context4){while(1)switch(_context4.prev=_context4.next){case 0:_context4.next=2;return functionOfAsyncTask();case 2:delete self.mapOfIdNTimeoutId[id];case 3:case"end":return _context4.stop()}},_callee4)})),ms].concat(params));self.mapOfIdNTimeoutId[id]=idOfTimeoutTask}},{key:"printLogMessage",value:function printLogMessage(message){var error=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;if(!this.isProductionEnvironment()){for(var _len6=arguments.length,infos=new Array(_len6>2?_len6-2:0),_key8=2;_key8<_len6;_key8++){infos[_key8-2]=arguments[_key8]}if(error){this.appendError.apply(this,[message].concat(infos))}else{this.appendInfo.apply(this,[message].concat(infos))}}}},{key:"init",value:function init(){}},{key:"setEnvironment",value:function setEnvironment(env){this.env=env}},{key:"appendInfo",value:function appendInfo(){var _console;if(this.isProductionEnvironment())return;(_console=console).log.apply(_console,arguments)}},{key:"appendError",value:function appendError(){var _console2;if(this.isProductionEnvironment())return;(_console2=console).error.apply(_console2,arguments)}},{key:"syncDelay",value:function(){var _syncDelay=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee5(){var delayInms,_args5=arguments;return _regenerator["default"].wrap(function _callee5$(_context5){while(1)switch(_context5.prev=_context5.next){case 0:delayInms=_args5.length>0&&_args5[0]!==undefined?_args5[0]:2000;return _context5.abrupt("return",new Promise(function(resolve){setTimeout(function(){resolve(delayInms)},delayInms)}));case 2:case"end":return _context5.stop()}},_callee5)}));function syncDelay(){return _syncDelay.apply(this,arguments)}return syncDelay}()},{key:"startWithRegex",value:function startWithRegex(){var string=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"";var rule=arguments.length>1&&arguments[1]!==undefined?arguments[1]:".";var pattern=new RegExp("^".concat(rule),"i");return pattern.test(string)}},{key:"accumulate",value:function accumulate(target,conditions){var beginning=target;var _iterator2=_createForOfIteratorHelper(conditions),_step2;try{for(_iterator2.s();!(_step2=_iterator2.n()).done;){var condition=_step2.value;if(condition!==undefined&&_lodash["default"].isFunction(condition)){beginning=condition(beginning)}}}catch(err){_iterator2.e(err)}finally{_iterator2.f()}return beginning}},{key:"isOrEquals",value:function isOrEquals(target){for(var _len7=arguments.length,several=new Array(_len7>1?_len7-1:0),_key9=1;_key9<_len7;_key9++){several[_key9-1]=arguments[_key9]}for(var _i2=0,_several=several;_i2<_several.length;_i2++){var each=_several[_i2];if(_lodash["default"].isEqual(target,each))return true}return false}},{key:"isAndEquals",value:function isAndEquals(){for(var _len8=arguments.length,predicates=new Array(_len8),_key0=0;_key0<_len8;_key0++){predicates[_key0]=arguments[_key0]}for(var _i3=0,_predicates=predicates;_i3<_predicates.length;_i3++){var predicate=_predicates[_i3];if(!predicate()){return false}}return true}},{key:"getStringOfHeadMatch",value:function getStringOfHeadMatch(string,regex){var flag=arguments.length>2&&arguments[2]!==undefined?arguments[2]:"g";var result=string.match(new RegExp(regex,flag));return this.isUndefinedNullEmpty(result)?undefined:result[0]}},{key:"or",value:function or(){for(var _len9=arguments.length,booleans=new Array(_len9),_key1=0;_key1<_len9;_key1++){booleans[_key1]=arguments[_key1]}for(var _i4=0,_booleans=booleans;_i4<_booleans.length;_i4++){var boo=_booleans[_i4];if(_lodash["default"].isBoolean(boo)&&boo)return true}return false}},{key:"and",value:function and(){for(var _len0=arguments.length,booleans=new Array(_len0),_key10=0;_key10<_len0;_key10++){booleans[_key10]=arguments[_key10]}for(var _i5=0,_booleans2=booleans;_i5<_booleans2.length;_i5++){var boo=_booleans2[_i5];if(!!!boo)return false}return true}},{key:"nth",value:function nth(array){var index=arguments.length>1&&arguments[1]!==undefined?arguments[1]:-1;return _lodash["default"].nth(array,index%_lodash["default"].size(array))}},{key:"getExistOne",value:function getExistOne(){for(var _len1=arguments.length,candidates=new Array(_len1),_key11=0;_key11<_len1;_key11++){candidates[_key11]=arguments[_key11]}for(var _i6=0,_candidates=candidates;_i6<_candidates.length;_i6++){var candidate=_candidates[_i6];if(candidate)return candidate}}},{key:"getStringOfDropHeadSign",value:function getStringOfDropHeadSign(string,sign){return _lodash["default"].dropWhile(Array.from(string),function(each){return _lodash["default"].isEqual(each,sign)}).join("")}},{key:"isAndWith",value:function isAndWith(self,predicate){for(var _len10=arguments.length,several=new Array(_len10>2?_len10-2:0),_key12=2;_key12<_len10;_key12++){several[_key12-2]=arguments[_key12]}for(var _i7=0,_several2=several;_i7<_several2.length;_i7++){var each=_several2[_i7];if(!predicate(self,each))return false}return true}},{key:"syncDelayRandom",value:function(){var _syncDelayRandom=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee6(){var min,max,random,_args6=arguments;return _regenerator["default"].wrap(function _callee6$(_context6){while(1)switch(_context6.prev=_context6.next){case 0:min=_args6.length>0&&_args6[0]!==undefined?_args6[0]:3000;max=_args6.length>1&&_args6[1]!==undefined?_args6[1]:5000;random=this.getRandomValue(min,max);_context6.next=5;return this.syncDelay(random);case 5:return _context6.abrupt("return",random);case 6:case"end":return _context6.stop()}},_callee6,this)}));function syncDelayRandom(){return _syncDelayRandom.apply(this,arguments)}return syncDelayRandom}()},{key:"has",value:function has(collection,item){var precisely=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;if(_lodash["default"].isArray(collection)){if(precisely)return _lodash["default"].findIndex(collection,function(each){return _lodash["default"].isEqual(item,each)})>-1;else return _lodash["default"].indexOf(collection,item)>-1}if(_lodash["default"].isObject(item)){return collection[item]}if(_lodash["default"].isString(collection)){return collection.indexOf(item)>-1}return false}},{key:"containsBy",value:function containsBy(array,item){return _lodash["default"].findIndex(array,function(each){return _lodash["default"].isEqual(each,item)})>=0}},{key:"getStringOfInsideParentheses",value:function getStringOfInsideParentheses(string){var rule=arguments.length>1&&arguments[1]!==undefined?arguments[1]:".";return this.getStringOfRule(string,rule,"(",")")}},{key:"getStringOfInsideBrackets",value:function getStringOfInsideBrackets(string){var rule=arguments.length>1&&arguments[1]!==undefined?arguments[1]:".";return this.getStringOfRule(string,rule,"[","]")}},{key:"getStringOfInsideBraces",value:function getStringOfInsideBraces(string){var rule=arguments.length>1&&arguments[1]!==undefined?arguments[1]:".";return this.getStringOfRule(string,rule,"{","}")}},{key:"getStringOfRule",value:function getStringOfRule(string){var rule=arguments.length>1&&arguments[1]!==undefined?arguments[1]:".";var left=arguments.length>2&&arguments[2]!==undefined?arguments[2]:"{";var right=arguments.length>3&&arguments[3]!==undefined?arguments[3]:"}";return this.getStringOfHeadMatch(string,"(?<=\\".concat(left,")").concat(rule,"+?(?=\\").concat(right,")"))}},{key:"getRandomHash",value:function getRandomHash(){var length=arguments.length>0&&arguments[0]!==undefined?arguments[0]:20;var randomBytes=_cryptoJs["default"].lib.WordArray.random(length);var base64String=_cryptoJs["default"].enc.Base64.stringify(randomBytes);return base64String.substring(0,length)}},{key:"getRandomHashV2",value:function getRandomHashV2(length){var characters="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";var result="";for(var i=0;i<length;i++){var randomIndex=Math.floor(Math.random()*characters.length);result+=characters.charAt(randomIndex)}return result}},{key:"getEncryptString",value:function getEncryptString(texts){var key=arguments.length>1&&arguments[1]!==undefined?arguments[1]:_configerer.configerer.ENCRYPT_KEY;var alwaysTheSame=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;var maxLengthOfKey=22;if(key.length>maxLengthOfKey)throw new _exceptioner["default"](8010,_lodash["default"].size(key));var ivOfCrypto=_cryptoJs["default"].enc.Base64.parse("thisIsIVWeNeedToGenerateTheSameValue");var keyOfCrypto=alwaysTheSame?_cryptoJs["default"].enc.Base64.parse("".concat(key).concat(_lodash["default"].range(0,maxLengthOfKey-key.length).join(""))):key;return _cryptoJs["default"].AES.encrypt(texts,keyOfCrypto,{iv:ivOfCrypto}).toString()}},{key:"getEncryptStringV2",value:function getEncryptStringV2(texts){var key=arguments.length>1&&arguments[1]!==undefined?arguments[1]:_configerer.configerer.ENCRYPT_KEY;var alwaysTheSame=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;var maxLengthOfKey=22;if(key.length>maxLengthOfKey)throw new _exceptioner["default"](8010,_lodash["default"].size(key));var ivOfCrypto=_cryptoJs["default"].enc.Base64.parse("thisIsIVWeNeedToGenerateTheSameValue");var keyOfCrypto=alwaysTheSame?_cryptoJs["default"].enc.Base64.parse("".concat(key).concat(_lodash["default"].range(0,maxLengthOfKey-key.length).join(""))):key;return _cryptoJs["default"].AES.encrypt(JSON.stringify({content:texts}),keyOfCrypto,{iv:ivOfCrypto}).toString()}},{key:"getDecryptString",value:function getDecryptString(ciphertext){var key=arguments.length>1&&arguments[1]!==undefined?arguments[1]:_configerer.configerer.ENCRYPT_KEY;var maxLengthOfKey=22;if(key.length>maxLengthOfKey)throw new _exceptioner["default"](8010,_lodash["default"].size(key));var ivOfCrypto=_cryptoJs["default"].enc.Base64.parse("thisIsIVWeNeedToGenerateTheSameValue");try{var value=_cryptoJs["default"].AES.decrypt(ciphertext,key,{iv:ivOfCrypto}).toString(_cryptoJs["default"].enc.Utf8);if(!_lodash["default"].isEmpty(value.trim()))return value}catch(e){}return _cryptoJs["default"].AES.decrypt(ciphertext,_cryptoJs["default"].enc.Base64.parse("".concat(key).concat(_lodash["default"].range(0,maxLengthOfKey-key.length).join(""))),{iv:ivOfCrypto}).toString(_cryptoJs["default"].enc.Utf8)}},{key:"getDecryptStringV2",value:function getDecryptStringV2(ciphertext){var key=arguments.length>1&&arguments[1]!==undefined?arguments[1]:_configerer.configerer.ENCRYPT_KEY;var maxLengthOfKey=22;if(key.length>maxLengthOfKey)throw new _exceptioner["default"](8010,_lodash["default"].size(key));var ivOfCrypto=_cryptoJs["default"].enc.Base64.parse("thisIsIVWeNeedToGenerateTheSameValue");try{var _stringOfObj=_cryptoJs["default"].AES.decrypt(ciphertext,key,{iv:ivOfCrypto}).toString(_cryptoJs["default"].enc.Utf8);if(!_lodash["default"].isEmpty(_stringOfObj.trim())){var _obj2=JSON.parse(_stringOfObj);return _obj2.content}}catch(e){}var stringOfObj=_cryptoJs["default"].AES.decrypt(ciphertext,_cryptoJs["default"].enc.Base64.parse("".concat(key).concat(_lodash["default"].range(0,maxLengthOfKey-key.length).join(""))),{iv:ivOfCrypto}).toString(_cryptoJs["default"].enc.Utf8);var obj=JSON.parse(stringOfObj);return obj.content}},{key:"getFirebaseFormattedString",value:function getFirebaseFormattedString(texts){return _lodash["default"].replace(texts,/[\.\#\$\[\]]/g,"-").trim()}},{key:"formalizeNamesToArray",value:function formalizeNamesToArray(singerString){var normalize=singerString;normalize=normalize.split(_configerer.configerer.SEPARATE_TONE_SINGER)[0].trim();normalize=_lodash["default"].replace(normalize,/[,\/#!$%\^&\*;:{}=_`、~()()]/g,"_").trim();normalize=this.getFirebaseFormattedString(normalize);normalize=_lodash["default"].replace(normalize,/\_\_+/g,"_").trim();while(_lodash["default"].endsWith(normalize,"_")){normalize=normalize.slice(0,-1).trim()}var words=normalize.split("_");return _lodash["default"].map(words,function(word){return _lodash["default"].trim(word)})}},{key:"getShuffledArrayWithLimitCountHighPerformance",value:function getShuffledArrayWithLimitCountHighPerformance(arr,n){var result=new Array(n),len=arr.length,taken=new Array(len);if(n>len)n=len;while(n--){var x=Math.floor(Math.random()*len);result[n]=arr[x in taken?taken[x]:x];taken[x]=--len in taken?taken[len]:len}return result}},{key:"getFileNameFromPath",value:function getFileNameFromPath(path){var extension=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;var segments=path.split("/");var target=segments.pop();return extension?target:target.split(".").shift()}},{key:"getFileNameExtensionFromPath",value:function getFileNameExtensionFromPath(path){var name=path.split("/").pop();return name}},{key:"getPathOfReplaceLastDir",value:function getPathOfReplaceLastDir(path,name){var split=path.split("/");split.pop();split.push(name);return split.join("/")}},{key:"getExtensionFromPath",value:function getExtensionFromPath(path){var name=path.split("/").pop();var segments=name.split(".");return _lodash["default"].size(segments)>1?segments.pop():""}},{key:"getFolderPathOfSpecificPath",value:function getFolderPathOfSpecificPath(path){var split=path.split("/");split.pop();return split.join("/")}},{key:"getFolderNameOfFilePath",value:function getFolderNameOfFilePath(path){if(this.isValidFilePath(path)){var splits=path.split("/");return _lodash["default"].nth(splits,-2)}else{throw new _exceptioner["default"](9999,"64255615 path is not valid '".concat(path,"'"))}}},{key:"isUnderTargetPath",value:function isUnderTargetPath(absolute,target){var segments=absolute.split("/");return this.has(segments,target)}},{key:"getFileDirPath",value:function getFileDirPath(path){var slash=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;return _lodash["default"].join(_lodash["default"].initial(_lodash["default"].split(path,"/")),"/")+(slash?"/":"")}},{key:"isPathEqualsFileType",value:function isPathEqualsFileType(path,type){var extension=path.split(".").pop();return _lodash["default"].isEqual(extension,type)}},{key:"isValidFilePath",value:function isValidFilePath(path){var extension=this.getExtensionFromPath(path);return _lodash["default"].size(extension)>0}},{key:"getArrayOfSize",value:function getArrayOfSize(array){var n=arguments.length>1&&arguments[1]!==undefined?arguments[1]:1;return _lodash["default"].take(array,n)}},{key:"getShuffledArrayWithLimitCount",value:function getShuffledArrayWithLimitCount(arr,n){return this.getShuffledArrayWithLimitCountHighPerformance(arr,n)}},{key:"getRandomItemOfArray",value:function getRandomItemOfArray(array){if(!_lodash["default"].isArray(array))throw new _exceptioner["default"](9999,"why are you so stupid, typeof array should be array, not ==> ".concat(array," "));for(var _len11=arguments.length,ignores=new Array(_len11>1?_len11-1:0),_key13=1;_key13<_len11;_key13++){ignores[_key13-1]=arguments[_key13]}var filter=_lodash["default"].without.apply(_lodash["default"],[array].concat(ignores));var target=_lodash["default"].size(filter)>0?filter:array;var item=this.getShuffledArrayWithLimitCount(target,1);return item.length>0?item[0]:undefined}},{key:"appendMapOfKeyArray",value:function appendMapOfKeyArray(object,key){for(var _len12=arguments.length,value=new Array(_len12>2?_len12-2:0),_key14=2;_key14<_len12;_key14++){value[_key14-2]=arguments[_key14]}if(this.isUndefinedNullEmpty(object[key])){object[key]=[].concat(value)}else{var _object$key;(_object$key=object[key]).push.apply(_object$key,value)}}},{key:"getMergedArrayBy",value:function getMergedArrayBy(){var major=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[];var sub=arguments.length>1&&arguments[1]!==undefined?arguments[1]:[];var key=arguments.length>2?arguments[2]:undefined;if(!key||major.length===0||sub.length===0){return(0,_toConsumableArray2["default"])(major)}var subMap=new Map(sub.map(function(item){return[item[key],item]}));return major.map(function(majorItem){var subItem=subMap.get(majorItem[key]);return _objectSpread(_objectSpread({},subItem||{}),majorItem)})}},{key:"getShuffledItemFromArray",value:function getShuffledItemFromArray(arr){var shuffled=_lodash["default"].shuffle(arr);return shuffled[0]}},{key:"getShuffledArray",value:function getShuffledArray(arr){var shuffled=_lodash["default"].shuffle(arr);return shuffled}},{key:"isJson",value:function isJson(item){item=typeof item!=="string"?JSON.stringify(item):item;try{item=JSON.parse(item)}catch(e){return false}if((0,_typeof2["default"])(item)==="object"&&item!==null){return true}return false}},{key:"getObjectValue",value:function getObjectValue(obj){if(_lodash["default"].isObject(obj)){return Object.values(obj)[0]}return""}},{key:"getObject",value:function getObject(key,value){var object={};object[key]=value;return object}},{key:"getStringOfCreditCardFormatted",value:function getStringOfCreditCardFormatted(){var string=arguments.length>0&&arguments[0]!==undefined?arguments[0]:0;var inputValue=string.replace(/\D/g,"");var result=inputValue.replace(/(\d{4})(?=\d)/g,"$1-");return result.slice(0,19)}},{key:"getObjectKey",value:function getObjectKey(obj){if(_lodash["default"].isObject(obj)){return Object.keys(obj)[0]}return""}},{key:"printf",value:function printf(){this.appendInfo("i can use in web || react.js")}},{key:"isKeywordRule",value:function isKeywordRule(constraint){if(_lodash["default"].isUndefined(constraint)||_lodash["default"].isEmpty(constraint))throw new Error("PARAMS CAN NOT BE EMPTY");if(!_lodash["default"].isString(constraint))throw new Error("PARAMS SHOULD BE STRING");if(constraint.length>20)throw new Error("EXCEED 20 WORDS IS NOT ALLOWED")}},{key:"getItsKeyByValue",value:function getItsKeyByValue(object,value){return Object.keys(object).find(function(key){return object[key]===value})}},{key:"startWiths",value:function startWiths(string){var key=arguments.length>1&&arguments[1]!==undefined?arguments[1]:[];var _iterator3=_createForOfIteratorHelper(key),_step3;try{for(_iterator3.s();!(_step3=_iterator3.n()).done;){var _key=_step3.value;if(_lodash["default"].startsWith(string,_key)){return true}}}catch(err){_iterator3.e(err)}finally{_iterator3.f()}return false}},{key:"replaceAll",value:function replaceAll(string,patten,to){return _lodash["default"].replace(string,new RegExp("".concat(patten),"g"),to)}},{key:"replaceAllWithSets",value:function replaceAllWithSets(){var string=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"";var after=string;for(var _len13=arguments.length,patterns=new Array(_len13>1?_len13-1:0),_key15=1;_key15<_len13;_key15++){patterns[_key15-1]=arguments[_key15]}for(var _i8=0,_patterns=patterns;_i8<_patterns.length;_i8++){var pattern=_patterns[_i8];if(this.isOrEquals(undefined,pattern.from,pattern.to)){throw(0,_exceptioner["default"])(9999,"from or to can't be empty")}after=this.replaceAll(after,pattern.from,pattern.to)}return after}},{key:"replaceArrayByContentIndex",value:function replaceArrayByContentIndex(array,current,latest){var index=_lodash["default"].indexOf(array,current);array[index]=latest}},{key:"deepFlat",value:function deepFlat(collection){var sign=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"_";var result="";var stack=[[collection,""]];while(stack.length>0){var _stack$pop=stack.pop(),_stack$pop2=(0,_slicedToArray2["default"])(_stack$pop,2),current=_stack$pop2[0],prefix=_stack$pop2[1];if(_lodash["default"].isArray(current)){for(var i=current.length-1;i>=0;i--){stack.push([current[i],prefix])}}else if(_lodash["default"].isObject(current)){var keys=Object.keys(current);for(var _i9=keys.length-1;_i9>=0;_i9--){var _key16=keys[_i9];stack.push([current[_key16],prefix+_key16+sign])}}else{var valueString=_lodash["default"].trim(String(current));if(valueString.length>0){result+=(result.length>0?sign:"")+prefix+valueString}else if(prefix.length>0&&result.length>0){result+=sign}else if(prefix.length>0&&result.length===0){result+=prefix.endsWith(sign)?prefix.slice(0,-sign.length):prefix}}}if(result.endsWith(sign)){result=result.slice(0,-sign.length)}return result}},{key:"joinEscapeChar",value:function joinEscapeChar(str){return(str+"").replace(/[\\"']/g,"\\$&").replace(/\u0000/g,"\\0")}},{key:"getValueWithIntegerType",value:function getValueWithIntegerType(whatever){try{var value=parseInt(whatever);return isNaN(value)?0:value}catch(error){return 0}}},{key:"getValueOfPriority",value:function getValueOfPriority(){for(var _len14=arguments.length,compares=new Array(_len14),_key17=0;_key17<_len14;_key17++){compares[_key17]=arguments[_key17]}for(var _i0=0,_compares=compares;_i0<_compares.length;_i0++){var compare=_compares[_i0];if(!this.isUndefinedNullEmpty(compare))return compare}return undefined}},{key:"asyncPool",value:function(){var _asyncPool=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee7(poolLimit,array,iteratorFn){var ret,executing,_iterator4,_step4,_loop2;return _regenerator["default"].wrap(function _callee7$(_context8){while(1)switch(_context8.prev=_context8.next){case 0:ret=[];executing=[];_iterator4=_createForOfIteratorHelper(array);_context8.prev=3;_loop2=_regenerator["default"].mark(function _loop2(){var item,p,e;return _regenerator["default"].wrap(function _loop2$(_context7){while(1)switch(_context7.prev=_context7.next){case 0:item=_step4.value;p=Promise.resolve().then(function(){return iteratorFn(item,array)});ret.push(p);if(!(poolLimit<=array.length)){_context7.next=9;break}e=p.then(function(){return executing.splice(executing.indexOf(e),1)});executing.push(e);if(!(executing.length>=poolLimit)){_context7.next=9;break}_context7.next=9;return Promise.race(executing);case 9:case"end":return _context7.stop()}},_loop2)});_iterator4.s();case 6:if((_step4=_iterator4.n()).done){_context8.next=10;break}return _context8.delegateYield(_loop2(),"t0",8);case 8:_context8.next=6;break;case 10:_context8.next=15;break;case 12:_context8.prev=12;_context8.t1=_context8["catch"](3);_iterator4.e(_context8.t1);case 15:_context8.prev=15;_iterator4.f();return _context8.finish(15);case 18:return _context8.abrupt("return",Promise.all(ret));case 19:case"end":return _context8.stop()}},_callee7,null,[[3,12,15,18]])}));function asyncPool(_x2,_x3,_x4){return _asyncPool.apply(this,arguments)}return asyncPool}()},{key:"getAttrValueInSequence",value:function getAttrValueInSequence(info){for(var _len15=arguments.length,attrs=new Array(_len15>1?_len15-1:0),_key18=1;_key18<_len15;_key18++){attrs[_key18-1]=arguments[_key18]}for(var _i1=0,_attrs=attrs;_i1<_attrs.length;_i1++){var attr=_attrs[_i1];if(!_lodash["default"].isEmpty(info[attr])){return info[attr]}}return info}},{key:"toDBC",value:function toDBC(txtstring){var tmp="";for(var i=0;i<txtstring.length;i++){if(txtstring.charCodeAt(i)===32){tmp=tmp+String.fromCharCode(12288)}if(txtstring.charCodeAt(i)<127){tmp=tmp+String.fromCharCode(txtstring.charCodeAt(i)+65248)}}return tmp}},{key:"toCDB",value:function toCDB(str){var tmp="";for(var i=0;i<str.length;i++){if(str.charCodeAt(i)===12288){tmp+=String.fromCharCode(str.charCodeAt(i)-12256);continue}if(str.charCodeAt(i)>65280&&str.charCodeAt(i)<65375){tmp+=String.fromCharCode(str.charCodeAt(i)-65248)}else{tmp+=String.fromCharCode(str.charCodeAt(i))}}return tmp}},{key:"findIndexes",value:function findIndexes(array,predicate){var indexes=[];var hasIndex=true;var indexOfLatest=0;while(hasIndex){indexOfLatest=_lodash["default"].findIndex(array,predicate,indexOfLatest+1);if(indexOfLatest>-1){indexes.push(indexOfLatest)}else{hasIndex=false}}return indexes}},{key:"getSliceArrayOfSpecificIndexes",value:function getSliceArrayOfSpecificIndexes(array){var items=[];var size=_lodash["default"].size(array);for(var _len16=arguments.length,indexes=new Array(_len16>1?_len16-1:0),_key19=1;_key19<_len16;_key19++){indexes[_key19-1]=arguments[_key19]}for(var _i10=0,_indexes=indexes;_i10<_indexes.length;_i10++){var index=_indexes[_i10];if(!_lodash["default"].isNumber(index))throw new _exceptioner["default"](9999,"59941278 index should be number => ".concat(index,", ").concat(array));if(index>size-1)throw new _exceptioner["default"](9999,"5994123 index=>".concat(index," is not valid, exceed than array size=").concat(size,", ").concat(array));items.push(_lodash["default"].nth(array,index))}return items}},{key:"indexesOf",value:function indexesOf(arr,val){var indexes=[];var i=-1;while((i=arr.indexOf(val,i+1))!==-1){indexes.push(i)}return indexes}},{key:"getIndexOfContext",value:function getIndexOfContext(context,stmt){return _lodash["default"].findIndex(context,function(per){return _lodash["default"].isEqual(per.trim(),stmt)})}},{key:"toOneLineString",value:function toOneLineString(string){return _lodash["default"].join(_lodash["default"].split(string,"\n"),"")}},{key:"toSpaceLessString",value:function toSpaceLessString(string){return _lodash["default"].split(string,"").map(function(each){return _lodash["default"].trim(each)}).join("")}},{key:"toNewLineLessString",value:function toNewLineLessString(string){return _lodash["default"].split(string,"\n").map(function(each){return _lodash["default"].trim(each)}).join("")}},{key:"exist",value:function exist(obj){return!_lodash["default"].isNull(obj)&&!_lodash["default"].isUndefined(obj)}},{key:"isUndefinedNullEmpty",value:function isUndefinedNullEmpty(obj){var first=obj===undefined||obj===null;var second=_lodash["default"].isString(obj)||_lodash["default"].isArray(obj)||_lodash["default"].isObject(obj)?_lodash["default"].isEmpty(obj):false;return first||second}},{key:"isAndConditionOfUndefinedNullEmpty",value:function isAndConditionOfUndefinedNullEmpty(){for(var _len17=arguments.length,objs=new Array(_len17),_key20=0;_key20<_len17;_key20++){objs[_key20]=arguments[_key20]}for(var _i11=0,_objs=objs;_i11<_objs.length;_i11++){var obj=_objs[_i11];if(!this.isUndefinedNullEmpty(obj))return false}return true}},{key:"isOrConditionOfUndefinedNullEmpty",value:function isOrConditionOfUndefinedNullEmpty(){for(var _len18=arguments.length,objs=new Array(_len18),_key21=0;_key21<_len18;_key21++){objs[_key21]=arguments[_key21]}for(var _i12=0,_objs2=objs;_i12<_objs2.length;_i12++){var obj=_objs2[_i12];if(this.isUndefinedNullEmpty(obj))return true}return false}},{key:"getStringHandledByEachLine",value:function getStringHandledByEachLine(string){var predict=arguments.length>1&&arguments[1]!==undefined?arguments[1]:function(segment,index,segments){return true};var separator=arguments.length>2&&arguments[2]!==undefined?arguments[2]:"\n";var segments=string.split(separator);var _iterator5=_createForOfIteratorHelper(segments),_step5;try{for(_iterator5.s();!(_step5=_iterator5.n()).done;){var segment=_step5.value;predict(segment,_lodash["default"].indexOf(segments,segment),segments)}}catch(err){_iterator5.e(err)}finally{_iterator5.f()}return segments.join(separator)}},{key:"getSegmentsOfEachLine",value:function getSegmentsOfEachLine(string){return string.split("\n")}},{key:"getNormalizedStringEndWith",value:function getNormalizedStringEndWith(string,predicate){string=this.toCDB(string);predicate=this.toCDB(predicate);var after=_lodash["default"].join(_lodash["default"].dropRightWhile(string,function(each){return!_lodash["default"].isEqual(each,predicate)}),"");return _lodash["default"].isEmpty(after)?string:after}},{key:"getNormalizedStringNotStartWith",value:function getNormalizedStringNotStartWith(string){var _this2=this;for(var _len19=arguments.length,predicate=new Array(_len19>1?_len19-1:0),_key22=1;_key22<_len19;_key22++){predicate[_key22-1]=arguments[_key22]}string=this.toCDB(string);var after=_lodash["default"].join(_lodash["default"].dropWhile(string,function(each){return _this2.has(predicate,each)}),"");return _lodash["default"].isEmpty(after)?string:after}},{key:"getNormalizedStringNotEndWith",value:function getNormalizedStringNotEndWith(string){var _this3=this;for(var _len20=arguments.length,predicate=new Array(_len20>1?_len20-1:0),_key23=1;_key23<_len20;_key23++){predicate[_key23-1]=arguments[_key23]}string=this.toCDB(string);var after=_lodash["default"].join(_lodash["default"].dropRightWhile(string,function(each){return _this3.has(predicate,each)}),"");return _lodash["default"].isEmpty(after)?string:after}},{key:"getTodayTimeFormat",value:function getTodayTimeFormat(ts){return(0,_momentTimezone["default"])(ts?ts:this.getCurrentTimeStamp()).format("YYYY-MM-DD")}},{key:"getCustomFormatOfDatePresent",value:function getCustomFormatOfDatePresent(ts){var format=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"YY/MM";return(0,_momentTimezone["default"])(ts?ts:this.getCurrentTimeStamp()).format(format)}},{key:"getSimpleDateYYMMDDFormat",value:function getSimpleDateYYMMDDFormat(ts){return(0,_momentTimezone["default"])(ts?ts:this.getCurrentTimeStamp()).format("YY/MM/DD")}},{key:"getSimpleTimeYYMMDDHHmmFormat",value:function getSimpleTimeYYMMDDHHmmFormat(ts){return(0,_momentTimezone["default"])(ts?ts:this.getCurrentTimeStamp()).format("YY/MM/DD HH:mm")}},{key:"getECPayCurrentTimeFormat",value:function getECPayCurrentTimeFormat(ts){return(0,_momentTimezone["default"])(ts?ts:this.getCurrentTimeStamp()).format("YYYY/MM/DD HH:mm:ss")}},{key:"getCurrentTimeFormatV2",value:function getCurrentTimeFormatV2(ts){return(0,_momentTimezone["default"])(ts?ts:this.getCurrentTimeStamp()).format("YYYY/MM/DD HH:mm:ss")}},{key:"getCurrentTimeFormatYMDHM",value:function getCurrentTimeFormatYMDHM(ts){return(0,_momentTimezone["default"])(ts?ts:this.getCurrentTimeStamp()).format("YYYY/MM/DD HH:mm")}},{key:"getCurrentTimeFormatYMDHMS",value:function getCurrentTimeFormatYMDHMS(ts){return(0,_momentTimezone["default"])(ts?ts:this.getCurrentTimeStamp()).format("YYYY/MM/DD HH:mm:ss")}},{key:"getCurrentTimeFormat",value:function getCurrentTimeFormat(ts){return(0,_momentTimezone["default"])(ts?ts:this.getCurrentTimeStamp()).format("YYYY-MM-DD-HH-mm-ss")}},{key:"getCurrentMillionSecTimeFormat",value:function getCurrentMillionSecTimeFormat(ts){return(0,_momentTimezone["default"])(ts?ts:undefined).format("YYYY-MM-DD-HH-mm-ss-SSS")}},{key:"isBetweenTimeStamp",value:function isBetweenTimeStamp(){var target=arguments.length>0&&arguments[0]!==undefined?arguments[0]:this.getCurrentTimeStamp();var min=arguments.length>1?arguments[1]:undefined;var max=arguments.length>2?arguments[2]:undefined;return(0,_momentTimezone["default"])(target).isBetween(min,max)}},{key:"isBeforeTimeStamp",value:function isBeforeTimeStamp(){var target=arguments.length>0&&arguments[0]!==undefined?arguments[0]:this.getCurrentTimeStamp();var time=arguments.length>1?arguments[1]:undefined;return(0,_momentTimezone["default"])(target).isBefore(time)}},{key:"isAfterTimeStamp",value:function isAfterTimeStamp(){var target=arguments.length>0&&arguments[0]!==undefined?arguments[0]:this.getCurrentTimeStamp();var time=arguments.length>1?arguments[1]:undefined;return(0,_momentTimezone["default"])(target).isAfter(time)}},{key:"formatTimeByLocale",value:function formatTimeByLocale(ts){var location=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"zh-TW";var timezone=arguments.length>2&&arguments[2]!==undefined?arguments[2]:"Asia/Taipei";var use24Hour=arguments.length>3&&arguments[3]!==undefined?arguments[3]:true;_momentTimezone["default"].locale(location);var m=(0,_momentTimezone["default"])(ts).tz(timezone);var formatStr=use24Hour?"YYYY/MM/DD HH:mm":"YYYY/MM/DD hh:mm A";return m.format(formatStr)}},{key:"getTimeStampWithConditions",value:function getTimeStampWithConditions(){var param=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{days:0,months:0,years:0,minutes:0,seconds:0,hours:0};var target=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this.getCurrentTimeStamp();var base=(0,_momentTimezone["default"])(target);for(var each in param){var number=param[each];var unit=each;if(number>0){base=base.add(number,unit)}if(number<0){base=base.subtract(Math.abs(number),unit)}}return base.valueOf()}},{key:"getTimeStampByStringFormat",value:function getTimeStampByStringFormat(string){return this.getTimeStampFromSpecificFormat(string,"YYYY/MM/DD HH:mm:ss").valueOf()}},{key:"getTimeStampFromSpecificFormat",value:function getTimeStampFromSpecificFormat(string){var format=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"YYYY/MM/DD HH:mm:ss";return(0,_momentTimezone["default"])(string,format).valueOf()}},{key:"getTimeStampFromECPayStringFormat",value:function getTimeStampFromECPayStringFormat(string){return this.getTimeStampFromSpecificFormat(string,"YYYY/MM/DD HH:mm:ss").valueOf()}},{key:"getTimeFormatOfDurationToMillionSecond",value:function getTimeFormatOfDurationToMillionSecond(duration){return _momentTimezone["default"].utc(duration).format("HH\u5C0F\u6642mm\u5206\u9418ss\u79D2SSS")}},{key:"getTimeFormatOfDurationToSecond",value:function getTimeFormatOfDurationToSecond(duration){return _momentTimezone["default"].utc(duration).format("HH\u5C0F\u6642mm\u5206\u9418ss\u79D2")}},{key:"getTimeFormatOfDurationToDay",value:function getTimeFormatOfDurationToDay(duration){return _momentTimezone["default"].utc(duration).format("DD\u5929HH\u5C0F\u6642mm\u5206\u9418ss\u79D2")}},{key:"getChineseTimeFormat",value:function getChineseTimeFormat(ts){_momentTimezone["default"].locale("zh-TW");return(0,_momentTimezone["default"])(ts).format("LLLL")}},{key:"getMinuteFormatOfDuration",value:function getMinuteFormatOfDuration(ds){return _momentTimezone["default"].duration(ds).asMinutes()}},{key:"getSecondFormatOfDuration",value:function getSecondFormatOfDuration(ds){return _momentTimezone["default"].duration(ds).asSeconds()}},{key:"getDayFormatOfDuration",value:function getDayFormatOfDuration(ds){return _momentTimezone["default"].duration(ds).asDays()}},{key:"getDurationOfMillionSec",value:function getDurationOfMillionSec(dateOrTimeStamp){var currentTimestamp=this.getCurrentTimeStamp();var targetTimeStamp=(0,_momentTimezone["default"])(dateOrTimeStamp).valueOf();var queue=_lodash["default"].sortBy([{ts:currentTimestamp},{ts:targetTimeStamp}],function(each){return each.ts}).map(function(each){return each.ts});var after=(0,_momentTimezone["default"])(queue.pop());var before=(0,_momentTimezone["default"])(queue.shift());var duration=_momentTimezone["default"].duration(after.diff(before));var ms=duration.asMilliseconds();return ms}},{key:"getCurrentTimeStamp",value:function getCurrentTimeStamp(){return(0,_momentTimezone["default"])().valueOf()}},{key:"isStringContainInLines",value:function isStringContainInLines(context,key){var _iterator6=_createForOfIteratorHelper(_lodash["default"].split(context,"\n")),_step6;try{for(_iterator6.s();!(_step6=_iterator6.n()).done;){var each=_step6.value;if(this.has(each,key))return true}}catch(err){_iterator6.e(err)}finally{_iterator6.f()}return false}},{key:"camel",value:function camel(){for(var _len21=arguments.length,words=new Array(_len21),_key24=0;_key24<_len21;_key24++){words[_key24]=arguments[_key24]}return _lodash["default"].camelCase(words.join("_"))}},{key:"upperCamel",value:function upperCamel(){return _lodash["default"].upperFirst(this.camel.apply(this,arguments))}},{key:"array2Obj",value:function array2Obj(array){var obj={};var _iterator7=_createForOfIteratorHelper(array),_step7;try{for(_iterator7.s();!(_step7=_iterator7.n()).done;){var each=_step7.value;obj["".concat(this.getObjectKey(each))]=this.getObjectValue(each)}}catch(err){_iterator7.e(err)}finally{_iterator7.f()}return obj}},{key:"arrayToObjWith",value:function arrayToObjWith(array,predicate){var obj={};var _iterator8=_createForOfIteratorHelper(array),_step8;try{for(_iterator8.s();!(_step8=_iterator8.n()).done;){var item=_step8.value;var _key25=predicate(item);var content=obj[_key25];if(content&&_lodash["default"].isArray(content)){content.push(item)}else{obj[_key25]=[item]}}}catch(err){_iterator8.e(err)}finally{_iterator8.f()}return obj}},{key:"isEmptyString",value:function isEmptyString(string){return _lodash["default"].isEqual(_lodash["default"].trim(string),"")}},{key:"mergeObject",value:function mergeObject(){return _lodash["default"].merge.apply(_lodash["default"],arguments)}},{key:"syncSetTimeout",value:function syncSetTimeout(func,ms){var callback=arguments.length>2&&arguments[2]!==undefined?arguments[2]:function(){};(function sync(done){if(!done){setTimeout(function(){func();sync(true)},ms);return}callback()})()}},{key:"mergeArrayBy",value:function mergeArrayBy(){var identifier=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"id";for(var _len22=arguments.length,array=new Array(_len22>1?_len22-1:0),_key26=1;_key26<_len22;_key26++){array[_key26-1]=arguments[_key26]}return Object.values(array.flat().reduce(function(acc,item){if(item[identifier])acc[item[identifier]]=_objectSpread(_objectSpread({},acc[item[identifier]]||{}),item);return acc},{}))}},{key:"getRelativePath",value:function getRelativePath(pathName,rootName){return _lodash["default"].dropWhile(pathName,function(each,index){return _lodash["default"].isEqual(each,rootName[index])}).join("")}},{key:"dropItemsByIndex",value:function dropItemsByIndex(array,from,end){_lodash["default"].remove(array,function(value,index,array){return end>=index&&index>=from})}},{key:"isEven",value:function isEven(n){return n%2===0}},{key:"isOdd",value:function isOdd(n){return Math.abs(n%2)===1}},{key:"enrichZhTw",value:function enrichZhTw(){_momentTimezone["default"].locale("zh-tw",{months:"\u4E00\u6708_\u4E8C\u6708_\u4E09\u6708_\u56DB\u6708_\u4E94\u6708_\u516D\u6708_\u4E03\u6708_\u516B\u6708_\u4E5D\u6708_\u5341\u6708_\u5341\u4E00\u6708_\u5341\u4E8C\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u661F\u671F\u65E5_\u661F\u671F\u4E00_\u661F\u671F\u4E8C_\u661F\u671F\u4E09_\u661F\u671F\u56DB_\u661F\u671F\u4E94_\u661F\u671F\u516D".split("_"),weekdaysShort:"\u5468\u65E5_\u5468\u4E00_\u5468\u4E8C_\u5468\u4E09_\u5468\u56DB_\u5468\u4E94_\u5468\u516D".split("_"),weekdaysMin:"\u65E5_\u4E00_\u4E8C_\u4E09_\u56DB_\u4E94_\u516D".split("_"),longDateFormat:{LT:"Ah\u9EDEmm\u5206",LTS:"Ah\u9EDEm\u5206s\u79D2",L:"YYYY-MM-DD",LL:"YYYY\u5E74MMMD\u65E5",LLL:"YYYY\u5E74MMMD\u65E5Ah\u9EDEmm\u5206",LLLL:"YYYY\u5E74MMMD\u65E5ddddAh\u9EDEmm\u5206",l:"YYYY-MM-DD",ll:"YYYY\u5E74MMMD\u65E5",lll:"YYYY\u5E74MMMD\u65E5Ah\u9EDEmm\u5206",llll:"YYYY\u5E74MMMD\u65E5ddddAh\u9EDEmm\u5206"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function meridiemHour(h,meridiem){var hour=h;if(hour===12){hour=0}if(meridiem==="\u51CC\u6668"||meridiem==="\u65E9\u4E0A"||meridiem==="\u4E0A\u5348"){return hour}else if(meridiem==="\u4E0B\u5348"||meridiem==="\u665A\u4E0A"){return hour+12}else{return hour>=11?hour:hour+12}},meridiem:function meridiem(hour,minute,isLower){var hm=hour*100+minute;if(hm<600){return"\u51CC\u6668"}else if(hm<900){return"\u65E9\u4E0A"}else if(hm<1130){return"\u4E0A\u5348"}else if(hm<1230){return"\u4E2D\u5348"}else if(hm<1800){return"\u4E0B\u5348"}else{return"\u665A\u4E0A"}},calendar:{sameDay:function sameDay(){return this.minutes()===0?"[\u4ECA\u5929]Ah[\u9EDE\u6574]":"[\u4ECA\u5929]LT"},nextDay:function nextDay(){return this.minutes()===0?"[\u660E\u5929]Ah[\u9EDE\u6574]":"[\u660E\u5929]LT"},lastDay:function lastDay(){return this.minutes()===0?"[\u6628\u5929]Ah[\u9EDE\u6574]":"[\u6628\u5929]LT"},nextWeek:function nextWeek(){var startOfWeek,prefix;startOfWeek=(0,_momentTimezone["default"])().startOf("week");prefix=this.diff(startOfWeek,"days")>=7?"[\u4E0B]":"[\u672C]";return this.minutes()===0?prefix+"dddA\u9EDE\u6574":prefix+"dddAh\u9EDEmm"},lastWeek:function lastWeek(){var startOfWeek,prefix;startOfWeek=(0,_momentTimezone["default"])().startOf("week");prefix=this.unix()<startOfWeek.unix()?"[\u4E0A]":"[\u672C]";return this.minutes()===0?prefix+"dddAh\u9EDE\u6574":prefix+"dddAh\u9EDEmm"},sameElse:"LL"},ordinalParse:/\d{1,2}(日|月|周)/,ordinal:function ordinal(number,period){switch(period){case"d":case"D":case"DDD":return number+"\u65E5";case"M":return number+"\u6708";case"w":case"W":return number+"\u5468";default:return number}},relativeTime:{future:"%s\u5185",past:"%s\u524D",s:"\u5E7E\u79D2",m:"1 \u5206\u9418",mm:"%d \u5206\u9418",h:"1 \u5C0F\u6642",hh:"%d \u5C0F\u6642",d:"1 \u5929",dd:"%d \u5929",M:"1 \u500B\u6708",MM:"%d \u4E2A\u6708",y:"1 \u5E74",yy:"%d \u5E74"},week:{dow:1,doy:4}})}},{key:"getVisibleOrHidden",value:function getVisibleOrHidden(judgement){return{visibility:judgement?"visible":"hidden"}}},{key:"getNumberOfPercentageToFloat",value:function getNumberOfPercentageToFloat(percentage){var cleanedPercentage=percentage.replace("%","");var floatNumber=parseFloat(cleanedPercentage)/100;return floatNumber}},{key:"getVisibleOrNone",value:function getVisibleOrNone(judgement){var flex=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;return{display:judgement?flex?"flex":"inherit":"none"}}},{key:"stringToInteger",value:function stringToInteger(string){string=_lodash["default"].toUpper(string);switch(string){case"A":return 0;case"B":return 1;case"C":return 2;case"D":return 3;case"E":return 4;case"F":return 5;case"G":return 6;case"H":return 7;case"I":return 8;case"J":return 9;case"K":return 10;case"L":return 11;case"M":return 12;case"N":return 13;default:return 101}}},{key:"integerToString",value:function integerToString(integer){switch(integer){case 0:return"A";case 1:return"B";case 2:return"C";case 3:return"D";case 4:return"E";case 5:return"F";case 6:return"G";case 7:return"H";case 8:return"I";case 9:return"J";case 10:return"K";case 11:return"L";case 12:return"M";case 13:return"N";default:return"Z"}}},{key:"toObjectMap",value:function toObjectMap(array){var newbies=[];for(var _len23=arguments.length,rules=new Array(_len23>1?_len23-1:0),_key27=1;_key27<_len23;_key27++){rules[_key27-1]=arguments[_key27]}var _iterator9=_createForOfIteratorHelper(array),_step9;try{for(_iterator9.s();!(_step9=_iterator9.n()).done;){var each=_step9.value;var object={};var _iterator0=_createForOfIteratorHelper(rules),_step0;try{for(_iterator0.s();!(_step0=_iterator0.n()).done;){var rule=_step0.value;var func=rule.func?rule.func:function(stmt){return stmt};object[rule.to]=this.isUndefinedNullEmpty(rule.from)||!_lodash["default"].isObject(each)?func(each):func(each[rule.from])}}catch(err){_iterator0.e(err)}finally{_iterator0.f()}newbies.push(object)}}catch(err){_iterator9.e(err)}finally{_iterator9.f()}return newbies}},{key:"exeAll",value:function exeAll(collection){for(var _len24=arguments.length,funcs=new Array(_len24>1?_len24-1:0),_key28=1;_key28<_len24;_key28++){funcs[_key28-1]=arguments[_key28]}if(_lodash["default"].isArray(collection)){var _iterator1=_createForOfIteratorHelper(collection),_step1;try{for(_iterator1.s();!(_step1=_iterator1.n()).done;){var each=_step1.value;var _iterator10=_createForOfIteratorHelper(funcs),_step10;try{for(_iterator10.s();!(_step10=_iterator10.n()).done;){var func=_step10.value;func(each)}}catch(err){_iterator10.e(err)}finally{_iterator10.f()}}}catch(err){_iterator1.e(err)}finally{_iterator1.f()}}else if(_lodash["default"].isObject(collection)){for(var _each in collection){var _iterator11=_createForOfIteratorHelper(funcs),_step11;try{for(_iterator11.s();!(_step11=_iterator11.n()).done;){var _func=_step11.value;collection[_each]=_func(collection[_each])}}catch(err){_iterator11.e(err)}finally{_iterator11.f()}}}else{throw new _exceptioner["default"](9999,"7841212 type can't be array or object")}return collection}},{key:"getObjectWhile",value:function getObjectWhile(major,minor){var predicate=arguments.length>2&&arguments[2]!==undefined?arguments[2]:function(target){return true};var collection={};for(var _key29 in major){if(predicate(major,minor,_key29)){collection[_key29]=major[_key29]}}return collection}},{key:"getIntersectionObject",value:function getIntersectionObject(objOfMajor,objOfMinor){return this.getObjectWhile(objOfMajor,objOfMinor,function(major,minor,key){return minor[key]!==undefined})}},{key:"getDifferenceObject",value:function getDifferenceObject(objOfMajor,objOfMinor){return this.getObjectWhile(objOfMajor,objOfMinor,function(major,minor,key){return minor[key]===undefined})}},{key:"isObjectContainAndEqual",value:function isObjectContainAndEqual(targetObject,mainObject){var equal=true;for(var _key30 in targetObject){if(mainObject[_key30]===undefined||mainObject[_key30]!==targetObject[_key30]){equal=false;break}}return equal}},{key:"getStringOfPop",value:function getStringOfPop(string,separator){if(!_lodash["default"].isString(string)){throw new _exceptioner["default"](9999,"445115,type should be string but ==> ".concat((0,_typeof2["default"])(string)))}var segments=string.split(separator);segments.pop();return segments.join(separator)}},{key:"getStringOfShift",value:function getStringOfShift(string,separator){if(!_lodash["default"].isString(string)){throw new _exceptioner["default"](9999,"445116,type should be string but ==> ".concat((0,_typeof2["default"])(string)))}var segments=string.split(separator);segments.shift();return segments.join(separator)}},{key:"toObjectWithAttributeKey",value:function toObjectWithAttributeKey(array,attrKeyOfPK){var object={};var _iterator12=_createForOfIteratorHelper(array),_step12;try{for(_iterator12.s();!(_step12=_iterator12.n()).done;){var each=_step12.value;var pk=each[attrKeyOfPK];if(this.isUndefinedNullEmpty(pk)){throw new _exceptioner["default"](9999,"48157232 pk can't be empty => '".concat(pk,"'"))}object[pk]=each}}catch(err){_iterator12.e(err)}finally{_iterator12.f()}return object}},{key:"getObjectOfArraySpecifyAttr",value:function getObjectOfArraySpecifyAttr(array,attr){return this.toObjectWithAttributeKey(array,attr)}},{key:"getStateOfStringContainsSign",value:function getStateOfStringContainsSign(string){for(var _len25=arguments.length,signs=new Array(_len25>1?_len25-1:0),_key31=1;_key31<_len25;_key31++){signs[_key31-1]=arguments[_key31]}for(var _i13=0,_signs=signs;_i13<_signs.length;_i13++){var sign=_signs[_i13];if(this.has(string,sign)){return{exists:true,sign:sign}}}return{exists:false}}},{key:"constraintOfParam",value:function constraintOfParam(collection,type){var result=false;for(var _len26=arguments.length,others=new Array(_len26>2?_len26-2:0),_key32=2;_key32<_len26;_key32++){others[_key32-2]=arguments[_key32]}var validOfOthersCondition=_lodash["default"].isEmpty(others)?true:this.and.apply(this,(0,_toConsumableArray2["default"])(others.map(function(each){return each.logic})));switch(type){case"array":if(_lodash["default"].isArray(collection)&&validOfOthersCondition)result=true;break;case"object":if(_lodash["default"].isObject(collection)&&validOfOthersCondition)result=true;break;case"string":if(_lodash["default"].isString(collection)&&validOfOthersCondition)result=true;break;case"number":if(_lodash["default"].isNumber(collection)&&validOfOthersCondition)result=true;break;case"other":if(validOfOthersCondition)return true}var stringOfRules=_lodash["default"].isEmpty(others)?"":", ".concat(others.map(function(each){return each.message}).join(" | "));if(result===false){throw new _exceptioner["default"](9999,"7474423 type should be ".concat(type," but get '").concat((0,_typeof2["default"])(type),"' ").concat(stringOfRules," "))}}},{key:"getSliceArrayWithMutate",value:function getSliceArrayWithMutate(array,n){var slice=_lodash["default"].remove(array,function(each,index){return index<n});return slice}},{key:"getArrayOfInteraction",value:function getArrayOfInteraction(one,two){return one.filter(function(element){return!two.includes(element)})}},{key:"getArrayOfMoveToSpecificIndex",value:function getArrayOfMoveToSpecificIndex(array,from,to){if(!Array.isArray(array)){throw new Error("First argument must be an array.")}var length=array.length;if(from<0||from>=length||to<0||to>=length){console.warn("Invalid 'from' or 'to' index for getArrayOfMoveToSpecificIndexOptimized.");return(0,_toConsumableArray2["default"])(array)}if(from===to){return(0,_toConsumableArray2["default"])(array)}var copy=(0,_toConsumableArray2["default"])(array);var _copy$splice=copy.splice(from,1),_copy$splice2=(0,_slicedToArray2["default"])(_copy$splice,1),item=_copy$splice2[0];copy.splice(to,0,item);return copy}},{key:"getArrayOfMoveItemToSpecificIndex",value:function getArrayOfMoveItemToSpecificIndex(array,item,indexOfDestination){var indexOfItem=_lodash["default"].indexOf(array,item);return this.getArrayOfMoveToSpecificIndex(array,indexOfItem,indexOfDestination)}},{key:"getArrayOfMoveSpecificItemToAside",value:function getArrayOfMoveSpecificItemToAside(array,item){var toTail=arguments.length>2&&arguments[2]!==undefined?arguments[2]:true;var indexOfItem=_lodash["default"].indexOf(array,item);return this.getArrayOfMoveSpecificIndexToAside(array,indexOfItem,toTail)}},{key:"getArrayOfMoveSpecificIndexToAside",value:function getArrayOfMoveSpecificIndexToAside(array,index){var toTail=arguments.length>2&&arguments[2]!==undefined?arguments[2]:true;var indexOfLast=_lodash["default"].size(array)-1;return this.getArrayOfMoveToSpecificIndex(array,index,toTail?indexOfLast:0)}},{key:"getECPayCheckMacValue",value:function getECPayCheckMacValue(data){var hashKey=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"5294y06JbISpM5x9";var hashIV=arguments.length>2&&arguments[2]!==undefined?arguments[2]:"v77hoKGq4kWxNNIS";var clone=_lodash["default"].cloneDeep(data);delete clone.CheckMacValue;var keys=Object.keys(clone).sort(function(l,r){return l>r?1:-1});var checkValue="";var _iterator13=_createForOfIteratorHelper(keys),_step13;try{for(_iterator13.s();!(_step13=_iterator13.n()).done;){var _key33=_step13.value;checkValue+="".concat(_key33,"=").concat(clone[_key33],"&")}}catch(err){_iterator13.e(err)}finally{_iterator13.f()}checkValue="HashKey=".concat(hashKey,"&").concat(checkValue,"HashIV=").concat(hashIV);checkValue=encodeURIComponent(checkValue).toLowerCase();checkValue=checkValue.replace(/%20/g,"+").replace(/%2d/g,"-").replace(/%5f/g,"_").replace(/%2e/g,".").replace(/%21/g,"!").replace(/%2a/g,"*").replace(/%28/g,"(").replace(/%29/g,")").replace(/%20/g,"+");return _lodash["default"].toUpper(_cryptoJs["default"].SHA256(checkValue).toString(_cryptoJs["default"].enc.Hex))}},{key:"getStringOfHandledHtml",value:function getStringOfHandledHtml(htmlString){var predicate=arguments.length>1&&arguments[1]!==undefined?arguments[1]:function(document){console.log(document)};var document=(0,_nodeHtmlParser.parse)(htmlString);predicate(document);return document.toString()}},{key:"getSpecifyObjectBy",value:function getSpecifyObjectBy(array,predicate){var _iterator14=_createForOfIteratorHelper(array),_step14;try{for(_iterator14.s();!(_step14=_iterator14.n()).done;){var item=_step14.value;if(predicate(item))return item}}catch(err){_iterator14.e(err)}finally{_iterator14.f()}}},{key:"validatePayloadObjectValid",value:function validatePayloadObjectValid(content){var rules=arguments.length>1&&arguments[1]!==undefined?arguments[1]:[];var idOfError=arguments.length>2&&arguments[2]!==undefined?arguments[2]:this.getRandomHash(10);if(this.isUndefinedNullEmpty(content)){throw new _exceptioner["default"](9999,"".concat(idOfError," content(pay-load) is undefined || empty"))}var _iterator15=_createForOfIteratorHelper(rules),_step15;try{for(_iterator15.s();!(_step15=_iterator15.n()).done;){var rule=_step15.value;if(_lodash["default"].isString(rule)){if(this.isUndefinedNullEmpty(content[rule])){throw new _exceptioner["default"](9999,"".concat(idOfError," ATTRIBUTE:'").concat(rule,"' is not Exist"))}}else if(_lodash["default"].isObject(rule)){var _key34=this.getObjectKey(rule);var predicate=this.getObjectValue(rule);if(!predicate(content[_key34])){throw new _exceptioner["default"](9999,"".concat(idOfError," ATTRIBUTE:'").concat(_key34,"' is not valid of custom rule"))}}}}catch(err){_iterator15.e(err)}finally{_iterator15.f()}return true}},{key:"getArrayOfSummarizeBy",value:function getArrayOfSummarizeBy(array,keyOfId,keyOfSum){var obj={};var _iterator16=_createForOfIteratorHelper(array),_step16;try{for(_iterator16.s();!(_step16=_iterator16.n()).done;){var item=_step16.value;var _key36=item[keyOfId];if(obj[_key36]!==undefined){obj[_key36]=obj[_key36]+item[keyOfSum]}else{obj[_key36]=item[keyOfSum]}}}catch(err){_iterator16.e(err)}finally{_iterator16.f()}var items=[];for(var _key35 in obj){var _obj={};_obj[keyOfId]=_key35;_obj[keyOfSum]=obj[_key35];items.push(_obj)}return items}},{key:"getHeadStringSplitBy",value:function getHeadStringSplitBy(string){var sign=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this.getSeparatorOfUnique();return _lodash["default"].split(string,sign).shift()}},{key:"getTailStringSplitBy",value:function getTailStringSplitBy(string){var sign=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this.getSeparatorOfUnique();return _lodash["default"].split(string,sign).pop()}},{key:"getSlicesByIndexes",value:function getSlicesByIndexes(){var array=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[];var indexes=arguments.length>1&&arguments[1]!==undefined?arguments[1]:[];var slices=[];_lodash["default"].each(indexes,function(each,index,arrayOfIndexes){if(_lodash["default"].isEqual(index,indexes.length-1))return false;var slice=_lodash["default"].slice(array,each,indexes[index+1]);slices.push(slice)});return slices}},{key:"getRandomName",value:function getRandomName(){var options=arguments.length>0&&arguments[0]!==undefined?arguments[0]:undefined;return(0,_words.generate)(options)}},{key:"getRandomCount",value:function getRandomCount(){var options=arguments.length>0&&arguments[0]!==undefined?arguments[0]:undefined;return(0,_words.count)(options)}},{key:"isOverSpecificAge",value:function isOverSpecificAge(birthDate){var target=arguments.length>1&&arguments[1]!==undefined?arguments[1]:18;var age=(0,_momentTimezone["default"])().diff((0,_momentTimezone["default"])(birthDate,"YYYY-MM-DD"),"years");return age>=target}},{key:"isValidEmail",value:function isValidEmail(email){var emailRegex=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;return emailRegex.test(email)}},{key:"isValidTaiwaneseID",value:function isValidTaiwaneseID(idNumber){var idRegex=/^[A-Z][1-2]\d{8}$/;if(!idRegex.test(idNumber)){return false}var weight=[1,9,8,7,6,5,4,3,2,1];var firstChar=idNumber.charCodeAt(0)-65;var sum=firstChar*10+parseInt(idNumber.slice(1));for(var i=0;i<weight.length;i++){sum+=parseInt(idNumber.charAt(i+1))*weight[i]}return sum%10===0}},{key:"validatePersonalInfoInput",value:function validatePersonalInfoInput(name,email,idNumber,phoneNumber,birthday){var ageOfQualify=arguments.length>5&&arguments[5]!==undefined?arguments[5]:12;if(name.length<2){return{valid:false,message:"\u59D3\u540D\u81F3\u5C11\u8981\u5169\u500B\u5B57"}}var emailRegex=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;if(!emailRegex.test(email)){return{valid:false,message:"\u96FB\u5B50\u90F5\u4EF6\u683C\u5F0F\u4E0D\u6B63\u78BA"}}var idRegex=/^[A-Z][1-2]\d{8}$/;if(!idRegex.test(idNumber)){return{valid:false,message:"\u8EAB\u5206\u8B49\u865F\u78BC\u683C\u5F0F\u4E0D\u6B63\u78BA"}}var phoneRegex=/^09\d{8}$/;if(!phoneRegex.test(phoneNumber)){return{valid:false,message:"\u624B\u6A5F\u865F\u78BC\u683C\u5F0F\u4E0D\u6B63\u78BA"}}if(this.isUndefinedNullEmpty(birthday))return{valid:false,message:"\u51FA\u751F\u65E5\u671F\u683C\u5F0F\u4E0D\u6B63\u78BA"};var now=(0,_momentTimezone["default"])();var age=now.diff(birthday,"years");if(age<ageOfQualify){return{valid:false,message:"\u5E74\u9F61\u4E0D\u5F97\u5C0F\u65BC ".concat(ageOfQualify," \u6B72")}}return{valid:true,message:"\u683C\u5F0F\u6AA2\u67E5\u901A\u904E"}}},{key:"getStringOfFormatTimestampRange",value:function getStringOfFormatTimestampRange(startTimestamp,endTimestamp){var startDate=(0,_momentTimezone["default"])(startTimestamp);var endDate=(0,_momentTimezone["default"])(endTimestamp);var formatDate=function formatDate(date){return date.format("YY/MM/DD")};var startYear=startDate.year();var endYear=endDate.year();if(startYear===endYear){return"".concat(formatDate(startDate)," - ").concat(endDate.format("MM/DD"))}else{return"".concat(formatDate(startDate)," - ").concat(formatDate(endDate))}}},{key:"getStringOfCalculateClassTime",value:function getStringOfCalculateClassTime(startTimestamp,endTimestamp,weeklyMinutes){var startDate=(0,_momentTimezone["default"])(startTimestamp);var endDate=(0,_momentTimezone["default"])(endTimestamp);var totalDays=endDate.diff(startDate,"days")+1;var totalWeeks=Math.ceil(totalDays/7);var totalMinutes=totalWeeks*weeklyMinutes;var hours=Math.floor(totalMinutes/60);var minutes=totalMinutes%60;if(minutes===0){return"".concat(hours,"\u5C0F\u6642")}else{return"".concat(hours,"\u5C0F\u6642").concat(minutes,"\u5206\u9418")}}},{key:"getNumberOfPeriodMinute",value:function getNumberOfPeriodMinute(startTimestamp,endTimestamp){var startTime=(0,_momentTimezone["default"])(startTimestamp).format("HH:mm");var endTime=(0,_momentTimezone["default"])(endTimestamp).format("HH:mm");var startDate=(0,_momentTimezone["default"])(startTime,"HH:mm");var endDate=(0,_momentTimezone["default"])(endTime,"HH:mm");var durationInMinutes=_momentTimezone["default"].duration(endDate.diff(startDate)).asMinutes();return durationInMinutes}},{key:"getStringOfWeekTime",value:function getStringOfWeekTime(day,startTimestamp,endTimestamp){var daysOfWeek={1:"\u9031\u4E00",2:"\u9031\u4E8C",3:"\u9031\u4E09",4:"\u9031\u56DB",5:"\u9031\u4E94",6:"\u9031\u516D",7:"\u9031\u65E5"};if(day<1||day>7){throw new Error("day \u5FC5\u9808\u5728 1 \u5230 7 \u4E4B\u9593")}var startTime=(0,_momentTimezone["default"])(startTimestamp).format("HH:mm");var endTime=(0,_momentTimezone["default"])(endTimestamp).format("HH:mm");return"".concat(daysOfWeek[day]," ").concat(startTime,"-").concat(endTime)}},{key:"extractNumber",value:function extractNumber(str){if(this.isUndefinedNullEmpty(str))return-1;var match=str.match(/\d+/);return match?Number(match[0]):-1}},{key:"fetchElementAttribute",value:(function(){var _fetchElementAttribute=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee8(dom){var attr,defaultValue,_args9=arguments;return _regenerator["default"].wrap(function _callee8$(_context9){while(1)switch(_context9.prev=_context9.next){case 0:attr=_args9.length>1&&_args9[1]!==undefined?_args9[1]:"innerText";defaultValue=_args9.length>2&&_args9[2]!==undefined?_args9[2]:"";_context9.next=4;return dom.evaluate(function(el){return el[attr]});case 4:return _context9.abrupt("return",_context9.sent);case 5:case"end":return _context9.stop()}},_callee8)}));function fetchElementAttribute(_x5){return _fetchElementAttribute.apply(this,arguments)}return fetchElementAttribute}())},{key:"fetchElementAttributes",value:(function(){var _fetchElementAttributes=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee9(dom,stringOfTrait){var defaultValue,element,_len27,attributes,_key37,_args0=arguments;return _regenerator["default"].wrap(function _callee9$(_context0){while(1)switch(_context0.prev=_context0.next){case 0:defaultValue=_args0.length>2&&_args0[2]!==undefined?_args0[2]:"";_context0.next=3;return dom.$(stringOfTrait);case 3:element=_context0.sent;if(this.isUndefinedNullEmpty(element)){_context0.next=16;break}for(_len27=_args0.length,attributes=new Array(_len27>3?_len27-3:0),_key37=3;_key37<_len27;_key37++){attributes[_key37-3]=_args0[_key37]}_context0.prev=6;_context0.next=9;return element.evaluate(function(el,attributes){if(attributes.length===1)return el[attributes.shift()];return _objectSpread({},attributes.map(function(attr){return el[attr]}))},attributes);case 9:return _context0.abrupt("return",_context0.sent);case 12:_context0.prev=12;_context0.t0=_context0["catch"](6);this.appendError("1581532 ".concat(stringOfTrait," fetch ").concat(JSON.stringify(attributes)," fail, element is not found"));return _context0.abrupt("return",defaultValue);case 16:return _context0.abrupt("return",defaultValue);case 17:case"end":return _context0.stop()}},_callee9,this,[[6,12]])}));function fetchElementAttributes(_x6,_x7){return _fetchElementAttributes.apply(this,arguments)}return fetchElementAttributes}())},{key:"writeElementAttributes",value:(function(){var _writeElementAttributes=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee0(dom,stringOfTrait){var element,_len28,attributes,_key38,_args1=arguments;return _regenerator["default"].wrap(function _callee0$(_context1){while(1)switch(_context1.prev=_context1.next){case 0:_context1.next=2;return dom.$(stringOfTrait);case 2:element=_context1.sent;for(_len28=_args1.length,attributes=new Array(_len28>2?_len28-2:0),_key38=2;_key38<_len28;_key38++){attributes[_key38-2]=_args1[_key38]}if(this.isUndefinedNullEmpty(element)){_context1.next=9;break}_context1.next=7;return element.evaluate(function(element,attributes){attributes.map(function(attr){var entries=Object.entries(attr);var key=entries[0][0];var value=entries[0][1];element[key]=value})},attributes);case 7:_context1.next=10;break;case 9:this.appendError("1231232 ".concat(stringOfTrait," fetch ").concat(JSON.stringify(attributes)," fail, element is not found"));case 10:case"end":return _context1.stop()}},_callee0,this)}));function writeElementAttributes(_x8,_x9){return _writeElementAttributes.apply(this,arguments)}return writeElementAttributes}())},{key:"getSliceArrayOfUnique",value:function getSliceArrayOfUnique(array){if(!Array.isArray(array)||array.length===0){return[]}var firstElement=array[0];if(_lodash["default"].isObject(firstElement)&&key){var uniqueMap=new Map(array.map(function(item){return[item[key],item]}));return Array.from(uniqueMap.values())}else if(_lodash["default"].isObject(firstElement)){console.warn("getSliceArrayOfUniqueOptimized: No key provided for object array, using potentially slow deep comparison.");return _lodash["default"].uniqWith(array,_lodash["default"].isEqual)}else{return Array.from(new Set(array))}}},{key:"getUniqueValuesBy",value:function getUniqueValuesBy(array){var key=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"valueOfType";return _lodash["default"].uniq(array.map(function(item){return item[key]}))}},{key:"generateCombinations",value:function generateCombinations(){for(var _len29=arguments.length,attributes=new Array(_len29),_key39=0;_key39<_len29;_key39++){attributes[_key39]=arguments[_key39]}var keys=attributes.map(function(attr){return attr.key});var labelMap=_lodash["default"].keyBy(attributes,"key");var optionArrays=attributes.map(function(attr){return attr.options.map(function(option){return{key:attr.key,value:option.value,label:option.label}})});var cartesianProduct=_lodash["default"].reduce(optionArrays,function(acc,curr){return _lodash["default"].flatMap(acc,function(a){return curr.map(function(b){return[].concat((0,_toConsumableArray2["default"])(a),[b])})})},[[]]);var results=cartesianProduct.map(function(combination){var trait={};var idParts=[];var contentParts=[];var _iterator17=_createForOfIteratorHelper(combination),_step17;try{for(_iterator17.s();!(_step17=_iterator17.n()).done;){var _step17$value=_step17.value,_key40=_step17$value.key,value=_step17$value.value,label=_step17$value.label;trait[_key40]=value;idParts.push("".concat(_key40,"_").concat(value));contentParts.push("".concat(label))}}catch(err){_iterator17.e(err)}finally{_iterator17.f()}return{trait:trait,id:idParts.join("_"),content:contentParts.join("\uFF5C")}});return _lodash["default"].sortBy(results,function(item){return keys.map(function(key){return item.trait[key]})})}},{key:"extractStaticSegments",value:function extractStaticSegments(path){var rules=arguments.length>1&&arguments[1]!==undefined?arguments[1]:[":"];return path.trim().replace(/^\.?\/*|\/*$/g,"").split("/").filter(function(segment){return segment&&!rules.some(function(rule){return segment.startsWith(rule)})})}},{key:"mutateRemoveKeys",value:function mutateRemoveKeys(array,keysToRemove){_lodash["default"].forEach(array,function(obj,index){var filtered=Object.fromEntries(Object.entries(obj).filter(function(_ref8){var _ref9=(0,_slicedToArray2["default"])(_ref8,1),key=_ref9[0];return!keysToRemove.includes(key)}));Object.keys(obj).forEach(function(k){return delete obj[k]});Object.assign(obj,filtered)})}},{key:"removeKeysFromArrayObjects",value:function removeKeysFromArrayObjects(array,keysToRemove){return _lodash["default"].map(array,function(obj){return Object.fromEntries(Object.entries(obj).filter(function(_ref0){var _ref1=(0,_slicedToArray2["default"])(_ref0,1),key=_ref1[0];return!keysToRemove.includes(key)}))})}},{key:"formatTextWithEllipsis",value:function formatTextWithEllipsis(originalText,maxLength){var ellipsis="......";var ellipsisLength=ellipsis.length;if(_lodash["default"].size(originalText)<=maxLength)return originalText;if(maxLength<=ellipsisLength)return"";var remainingLength=maxLength-ellipsisLength;var frontLength=Math.floor(remainingLength/2);var backLength=remainingLength-frontLength;var front=_lodash["default"].truncate(originalText,{length:frontLength,omission:""});var back=_lodash["default"].takeRight(originalText,backLength).join("");return"".concat(front).concat(ellipsis).concat(back)}},{key:"getObjectBy",value:function getObjectBy(obj){var predict=arguments.length>1&&arguments[1]!==undefined?arguments[1]:function(attr){return attr.checked!==true};return _lodash["default"].fromPairs(_lodash["default"].toPairs(obj).filter(function(_ref10){var _ref11=(0,_slicedToArray2["default"])(_ref10,2),_=_ref11[0],value=_ref11[1];return predict(value)}))}},{key:"mutateBy",value:function mutateBy(array){var predict=arguments.length>1&&arguments[1]!==undefined?arguments[1]:function(item){return item};var sorted=_lodash["default"].sortBy(array,predict);array.splice.apply(array,[0,array.length].concat((0,_toConsumableArray2["default"])(sorted)))}},{key:"findUniqueStrings",value:function findUniqueStrings(){for(var _len30=arguments.length,arrays=new Array(_len30),_key41=0;_key41<_len30;_key41++){arrays[_key41]=arguments[_key41]}var allStrings=_lodash["default"].flatten(arrays);var grouped=_lodash["default"].countBy(allStrings);return _lodash["default"].chain(grouped).pickBy(function(count){return count===1}).keys().compact().value()}},{key:"getObjectOfSpecifyKey",value:function getObjectOfSpecifyKey(value,key){var object={};object[key]=value;return object}},{key:"findUniqueNonReferenceStrings",value:function findUniqueNonReferenceStrings(){for(var _len31=arguments.length,arrays=new Array(_len31),_key42=0;_key42<_len31;_key42++){arrays[_key42]=arguments[_key42]}if(arrays.length===0)return[];var reference=arrays[0],rest=arrays.slice(1);var allExceptRef=_lodash["default"].flatten(rest);var counted=_lodash["default"].countBy(allExceptRef);return _lodash["default"].chain(counted).pickBy(function(count,str){return count===1&&!reference.includes(str)}).keys().compact().value()}},{key:"getArrayOfFillMissingValues",value:function getArrayOfFillMissingValues(array){var charset="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";var generateRandomValue=function generateRandomValue(){return _lodash["default"].times(8,function(){return _lodash["default"].sample(charset)}).join("")};var usedValues=new Set(array.map(function(item){return item.value}).filter(Boolean));return array.map(function(item){if(_lodash["default"].isEmpty(item.value)){var newValue;do{newValue=generateRandomValue()}while(usedValues.has(newValue));usedValues.add(newValue);return _objectSpread(_objectSpread({},item),{},{value:newValue})}return item})}},{key:"isFirestoreAutoId",value:function isFirestoreAutoId(id){return _lodash["default"].isString(id)&&id.length===20&&/^[A-Za-z0-9]{20}$/.test(id)}},{key:"getAutoIdOfFirestore",value:function getAutoIdOfFirestore(){return this.getRandomHashV2(20)}},{key:"getStringOfConvertTimeRange",value:function getStringOfConvertTimeRange(input){var _input$split=input.split("\uFF5C"),_input$split2=(0,_slicedToArray2["default"])(_input$split,2),datePart=_input$split2[0],timeRange=_input$split2[1];var dateStr=datePart.split("(")[0];var _timeRange$split=timeRange.split("-"),_timeRange$split2=(0,_slicedToArray2["default"])(_timeRange$split,2),start=_timeRange$split2[0],end=_timeRange$split2[1];var formatDate=function formatDate(time){return(0,_momentTimezone["default"])("".concat(dateStr," ").concat(time),"YYYY/MM/DD HH:mm").format("YYYYMMDDHHmm")};return"".concat(formatDate(start),"-").concat(formatDate(end))}},{key:"getTSOfSpecificDate",value:function getTSOfSpecificDate(dateStr){var _ref12=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},_ref12$end=_ref12.end,end=_ref12$end===void 0?false:_ref12$end;return Number((0,_lodash["default"])(dateStr).thru(function(str){return(0,_momentTimezone["default"])(str.split("(")[0],"YYYY/MM/DD")}).thru(function(m){return end?m.endOf("day"):m.startOf("day")}).value().format("YYYYMMDDHHmmss"))}},{key:"isHttpsURL",value:function isHttpsURL(url){if(!_lodash["default"].isString(url))return false;try{var decoded=decodeURIComponent(url.trim());var parsed=new URL(decoded);return parsed.protocol==="https:"}catch(e){return false}}},{key:"generateUniqueCodeMap",value:function generateUniqueCodeMap(array){var length=arguments.length>1&&arguments[1]!==undefined?arguments[1]:3;if(length<2){throw new Error("\u4EE3\u78BC\u9577\u5EA6\u6700\u5C11\u5FC5\u9808\u70BA 2\u3002")}var usedCodes=new Set;var usedKeys=new Set;var generateRandomCode=function generateRandomCode(){var letters="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";var chars=letters+"0123456789";var code;do{code=letters[Math.floor(Math.random()*letters.length)];for(var i=1;i<length;i++){code+=chars[Math.floor(Math.random()*chars.length)]}}while(usedCodes.has(code));usedCodes.add(code);return code};return _lodash["default"].transform(array,function(result,key){if(usedKeys.has(key)){throw new Error("23125453 Duplicate key detected: \"".concat(key,"\""))}usedKeys.add(key);result[key]=generateRandomCode()},{})}},{key:"getPriceOfPercentageBehavior",value:function getPriceOfPercentageBehavior(price,percentage){var discount=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;var decimal=this.toPercentageDecimal(percentage);return this.getNumberOfMultiplyCeil(price,discount?1-decimal:1+decimal)}},{key:"getFeeOfDiscount",value:function getFeeOfDiscount(origin,percentage){return Math.round(_lodash["default"].multiply(origin,this.toPercentageDecimal(percentage)))}},{key:"mergeArrayByKey",value:function mergeArrayByKey(array){if(!Array.isArray(array))return array;var resultMap={};var _iterator18=_createForOfIteratorHelper(array),_step18;try{for(_iterator18.s();!(_step18=_iterator18.n()).done;){var obj=_step18.value;if(!_lodash["default"].isPlainObject(obj))continue;for(var _i14=0,_Object$entries=Object.entries(obj);_i14<_Object$entries.length;_i14++){var _Object$entries$_i=(0,_slicedToArray2["default"])(_Object$entries[_i14],2),_key43=_Object$entries$_i[0],value=_Object$entries$_i[1];if(!resultMap[_key43]){resultMap[_key43]=_lodash["default"].cloneDeep(value)}else{_lodash["default"].merge(resultMap[_key43],value)}}}}catch(err){_iterator18.e(err)}finally{_iterator18.f()}array.length=0;Object.entries(resultMap).forEach(function(_ref13){var _ref14=(0,_slicedToArray2["default"])(_ref13,2),key=_ref14[0],value=_ref14[1];array.push((0,_defineProperty2["default"])({},key,value))});return array}},{key:"getObjectOfStartEndDateTime",value:function getObjectOfStartEndDateTime(input){if(!input||typeof input!=="string"){return{startDate:"",startTime:"",endDate:"",endTime:""}}var cleaned=input.replace(/|/g," ").replace(/-/g,"-").replace(/\s+/g," ").trim();var crossDatePattern=/(\d{4}\/\d{1,2}\/\d{1,2})(?:\s*\([^)]*\))?\s*(\d{2}:\d{2})\s*-\s*(\d{4}\/\d{1,2}\/\d{1,2})(?:\s*\([^)]*\))?\s*(\d{2}:\d{2})/;var sameDatePattern=/(\d{4}\/\d{1,2}\/\d{1,2})(?:\s*\([^)]*\))?\s*(\d{2}:\d{2})\s*-\s*(\d{2}:\d{2})/;var startDate,startTime,endDate,endTime;if(crossDatePattern.test(cleaned)){var _cleaned$match=cleaned.match(crossDatePattern);var _cleaned$match2=(0,_slicedToArray2["default"])(_cleaned$match,5);startDate=_cleaned$match2[1];startTime=_cleaned$match2[2];endDate=_cleaned$match2[3];endTime=_cleaned$match2[4]}else if(sameDatePattern.test(cleaned)){var _cleaned$match3=cleaned.match(sameDatePattern);var _cleaned$match4=(0,_slicedToArray2["default"])(_cleaned$match3,4);startDate=_cleaned$match4[1];startTime=_cleaned$match4[2];endTime=_cleaned$match4[3];endDate=startDate}else{return{startDate:"",startTime:"",endDate:"",endTime:""}}var start=new Date("".concat(startDate," ").concat(startTime));var end=new Date("".concat(endDate," ").concat(endTime));if(end<start){throw new Error("End time cannot be earlier than start time: ".concat(input))}return{startDate:startDate,startTime:startTime,endDate:endDate,endTime:endTime}}},{key:"getFilteredHeraPeriods",value:function getFilteredHeraPeriods(arr,idOfCurrentBooze){return _lodash["default"].chain(arr).filter(function(item){return item.idOfBooze!==idOfCurrentBooze}).uniqBy(function(item){return"".concat(item.idOfBooze,"_").concat(item.idOfVariant)}).value()}},{key:"checkPeriodConflict",value:function checkPeriodConflict(newTask,existingTasks){var resourceCount=arguments.length>2&&arguments[2]!==undefined?arguments[2]:1;var _newTask$content$spli=newTask.content.split("\uFF5C"),_newTask$content$spli2=(0,_slicedToArray2["default"])(_newTask$content$spli,2),datePart=_newTask$content$spli2[0],timePart=_newTask$content$spli2[1];var date=(0,_momentTimezone["default"])(datePart.split(" ")[0],"YYYY/MM/DD");var _timePart$split=timePart.split("-"),_timePart$split2=(0,_slicedToArray2["default"])(_timePart$split,2),startTimeStr=_timePart$split2[0],endTimeStr=_timePart$split2[1];var start=(0,_momentTimezone["default"])("".concat(date.format("YYYY/MM/DD")," ").concat(startTimeStr),"YYYY/MM/DD HH:mm");var end=(0,_momentTimezone["default"])("".concat(date.format("YYYY/MM/DD")," ").concat(endTimeStr),"YYYY/MM/DD HH:mm");var conflictItems=_lodash["default"].filter(existingTasks,function(task){var _task$period$split=task.period.split("-"),_task$period$split2=(0,_slicedToArray2["default"])(_task$period$split,2),pStartStr=_task$period$split2[0],pEndStr=_task$period$split2[1];var pStart=(0,_momentTimezone["default"])(pStartStr,"YYYYMMDDHHmm");var pEnd=(0,_momentTimezone["default"])(pEndStr,"YYYYMMDDHHmm");return start.isBefore(pEnd)&&end.isAfter(pStart)});var conflict=conflictItems.length>=resourceCount;return{conflict:conflict,items:conflictItems}}}])}();var _default=exports["default"]=Utiller;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _typeof3=require("@babel/runtime/helpers/typeof");Object.defineProperty(exports,"__esModule",{value:true});exports["default"]=void 0;var _regenerator=_interopRequireDefault(require("@babel/runtime/regenerator"));var _typeof2=_interopRequireDefault(require("@babel/runtime/helpers/typeof"));var _toConsumableArray2=_interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _possibleConstructorReturn2=_interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));var _getPrototypeOf2=_interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));var _inherits2=_interopRequireDefault(require("@babel/runtime/helpers/inherits"));var _defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));var _path4=_interopRequireDefault(require("path"));var _fs=_interopRequireDefault(require("fs"));var _promises=_interopRequireDefault(require("fs/promises"));var _lodash=_interopRequireDefault(require("lodash"));var _child_process=_interopRequireDefault(require("child_process"));var _configerer=require("configerer");var _index=_interopRequireDefault(require("./index"));var _index2=_interopRequireDefault(require("../exceptioner/index"));var _pdfParse=_interopRequireDefault(require("pdf-parse"));var _del=_interopRequireWildcard(require("del"));var _fsExtra=_interopRequireDefault(require("fs-extra"));var _prompt=_interopRequireDefault(require("prompt"));function _getRequireWildcardCache(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap,t=new WeakMap;return(_getRequireWildcardCache=function _getRequireWildcardCache(e){return e?t:r})(e)}function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=_typeof3(e)&&"function"!=typeof e)return{"default":e};var t=_getRequireWildcardCache(r);if(t&&t.has(e))return t.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&{}.hasOwnProperty.call(e,u)){var i=a?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(n,u,i):n[u]=e[u]}return n["default"]=e,t&&t.set(e,n),n}function _createForOfIteratorHelper(r,e){var t="undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(!t){if(Array.isArray(r)||(t=_unsupportedIterableToArray(r))||e&&r&&"number"==typeof r.length){t&&(r=t);var _n=0,F=function F(){};return{s:F,n:function n(){return _n>=r.length?{done:!0}:{done:!1,value:r[_n++]}},e:function e(r){throw r},f:F}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,u=!1;return{s:function s(){t=t.call(r)},n:function n(){var r=t.next();return a=r.done,r},e:function e(r){u=!0,o=r},f:function f(){try{a||null==t["return"]||t["return"]()}finally{if(u)throw o}}}}function _unsupportedIterableToArray(r,a){if(r){if("string"==typeof r)return _arrayLikeToArray(r,a);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0}}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n}function _callSuper(t,o,e){return o=(0,_getPrototypeOf2["default"])(o),(0,_possibleConstructorReturn2["default"])(t,_isNativeReflectConstruct()?Reflect.construct(o,e||[],(0,_getPrototypeOf2["default"])(t).constructor):o.apply(t,e))}function _isNativeReflectConstruct(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(_isNativeReflectConstruct=function _isNativeReflectConstruct(){return!!t})()}var NodeUtiller=function(_Utiller){function NodeUtiller(){var _this;(0,_classCallCheck2["default"])(this,NodeUtiller);for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key]}_this=_callSuper(this,NodeUtiller,[].concat(args));(0,_defineProperty2["default"])(_this,"isPersistIntoLogFile",true);(0,_defineProperty2["default"])(_this,"findFilePathByExtension",function(rootpath){var _this2;var _extension=arguments.length>1&&arguments[1]!==undefined?arguments[1]:[];var reg=new RegExp("^[^.].+.(".concat(_lodash["default"].join(_extension,"|"),")$"));for(var _len2=arguments.length,exclude=new Array(_len2>2?_len2-2:0),_key2=2;_key2<_len2;_key2++){exclude[_key2-2]=arguments[_key2]}return(_this2=_this).findFilePathBy.apply(_this2,[rootpath,function(item){return reg.test(item.fileNameExtension)}].concat(exclude))});(0,_defineProperty2["default"])(_this,"executeCommandLine",function(){var _ref=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee(command){var self;return _regenerator["default"].wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:self=_this;_this.appendInfo("\u57F7\u884C\u8173\u672C ".concat(command));return _context.abrupt("return",new Promise(function(resolve,reject){_child_process["default"].exec(command,function(error,stdout,stderr){self.appendInfo("".concat(stdout));self.appendInfo("".concat(stderr));if(error){self.appendError("\u57F7\u884C\u932F\u8AA4: ".concat(error));reject(error);return}resolve(stdout.trim())})}));case 3:case"end":return _context.stop()}},_callee)}));return function(_x){return _ref.apply(this,arguments)}}());(0,_defineProperty2["default"])(_this,"getPathAfterSpecificFolder",function(fullPath){var folder=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"src";var parts=fullPath.split(_path4["default"].sep);for(var i=parts.length-1;i>=0;i--){if(parts[i]===folder){return"/"+parts.slice(i+1).join("/")}}return""});(0,_defineProperty2["default"])(_this,"getPathAfterSrc",function(fullPath){return _this.getPathAfterSpecificFolder(fullPath)});return _this}(0,_inherits2["default"])(NodeUtiller,_Utiller);return(0,_createClass2["default"])(NodeUtiller,[{key:"findSpecificFolderByPath",value:function findSpecificFolderByPath(path,folderName){var absolute=_path4["default"].resolve(path);var parts=absolute.split(_path4["default"].sep);while(parts.length){var joined=_path4["default"].join.apply(_path4["default"],(0,_toConsumableArray2["default"])(parts).concat([folderName]));if(_fs["default"].existsSync(joined))return joined;parts.pop()}return null}},{key:"getPDFText",value:(function(){var _getPDFText=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee2(path){var dataBuffer;return _regenerator["default"].wrap(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:dataBuffer=_fs["default"].readFileSync(path);return _context2.abrupt("return",(0,_pdfParse["default"])(dataBuffer).then(function(data){return data}));case 2:case"end":return _context2.stop()}},_callee2)}));function getPDFText(_x2){return _getPDFText.apply(this,arguments)}return getPDFText}())},{key:"printf",value:function printf(){this.appendInfo("i can use in node.js only yo yo")}},{key:"findFilePathBy",value:function findFilePathBy(path){var predicate=arguments.length>1&&arguments[1]!==undefined?arguments[1]:function(){return true};if(!_fs["default"].existsSync(path))return[];var result=[];var entries=_fs["default"].readdirSync(path,{withFileTypes:true});for(var _len3=arguments.length,excludes=new Array(_len3>2?_len3-2:0),_key3=2;_key3<_len3;_key3++){excludes[_key3-2]=arguments[_key3]}var _iterator=_createForOfIteratorHelper(entries),_step;try{for(_iterator.s();!(_step=_iterator.n()).done;){var entry=_step.value;if(excludes.includes(entry.name))continue;var fullPath=_path4["default"].join(path,entry.name);if(entry.isDirectory()){result.push.apply(result,(0,_toConsumableArray2["default"])(this.findFilePathBy.apply(this,[fullPath,predicate].concat(excludes))))}else if(entry.isFile()){var info=this.getPathInfo(fullPath);if(predicate(info))result.push(info)}}}catch(err){_iterator.e(err)}finally{_iterator.f()}return result}},{key:"isPathExist",value:function isPathExist(path){return _fs["default"].existsSync(path)}},{key:"renameFile",value:function renameFile(path){var newName=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"fileName";if(!this.isFile(path)||!newName){this.appendError("renameFile \u932F\u8AA4, path: ".concat(path,", newName: ").concat(newName));return}var dir=_path4["default"].dirname(path);var ext=_path4["default"].extname(path);var newPath=_path4["default"].join(dir,"".concat(newName).concat(ext));_fs["default"].renameSync(path,newPath)}},{key:"getPathInfo",value:function getPathInfo(path){var absolute=_path4["default"].resolve(path);var obj={path:path,absolute:absolute,isFile:false,isDirectory:true,dirName:undefined,folderName:undefined,dirPath:undefined,folderPath:undefined,extension:undefined,fileName:undefined,fileNameExtension:undefined,lastModifiedTime:undefined,name:undefined};if(this.isFile(absolute)){obj["extension"]=absolute.split(".").pop();var fileNameStrings=absolute.split("/").pop().split(".");fileNameStrings.pop();obj["fileName"]=fileNameStrings.join(".");obj["name"]=fileNameStrings.join(".");obj["dirName"]=_lodash["default"].nth(absolute.split("/"),-2);obj["folderName"]=_lodash["default"].nth(absolute.split("/"),-2);obj["isFile"]=true;obj["dirPath"]=this.getFolderPathOfSpecificPath(absolute);obj["folderPath"]=this.getFolderPathOfSpecificPath(absolute);obj["isDirectory"]=false;obj["fileNameExtension"]="".concat(obj.fileName,".").concat(obj.extension);obj["lastModifiedTime"]=this.getFileLastModifiedTime(absolute)}if(this.isDirectory(absolute)){obj["dirName"]=absolute.split("/").pop()}return obj}},{key:"syncExecuteCommandLine",value:function syncExecuteCommandLine(command){var self=this;this.appendInfo("\u57F7\u884C\u8173\u672C ".concat(command));_child_process["default"].exec("".concat(command),function(error,stdout,stderr){self.appendInfo("".concat(stdout));self.appendInfo("".concat(stderr));if(error!==null){self.appendError("exec error: ".concat(error))}})}},{key:"persistByPath",value:function persistByPath(targetPath){var isAbsolute=_path4["default"].isAbsolute(targetPath);var parts=targetPath.split("/").filter(Boolean);var lastPart=parts[parts.length-1];var isFile=_path4["default"].extname(lastPart)!=="";var current=isAbsolute?_path4["default"].sep:"";for(var i=0;i<parts.length;i++){current=_path4["default"].join(current,parts[i]);if(!_fs["default"].existsSync(current)){if(i===parts.length-1&&isFile){_fs["default"].writeFileSync(current,"")}else{_fs["default"].mkdirSync(current,{recursive:false})}}}return _path4["default"].resolve(targetPath)}},{key:"copyFromFolderToDestFolder",value:(function(){var _copyFromFolderToDestFolder=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee3(from,dest){var override,preserveTimestamps,filter,_args3=arguments;return _regenerator["default"].wrap(function _callee3$(_context3){while(1)switch(_context3.prev=_context3.next){case 0:override=_args3.length>2&&_args3[2]!==undefined?_args3[2]:true;preserveTimestamps=_args3.length>3&&_args3[3]!==undefined?_args3[3]:false;filter=_args3.length>4&&_args3[4]!==undefined?_args3[4]:function(){return true};if(!(!_fs["default"].existsSync(from)||!_fs["default"].existsSync(from))){_context3.next=5;break}throw new _index2["default"](8009,"".concat(from," or ").concat(dest," is not exist!"));case 5:this.appendInfo("\u6B63\u5728\u8907\u88FDing ".concat(from,"/* => ").concat(dest,"/* succeed"));_fsExtra["default"].copySync(from,dest,{preserveTimestamps:preserveTimestamps,override:override,filter:filter});this.appendInfo("\u8907\u88FD\u6210\u529F ".concat(from,"/* => ").concat(dest,"/* succeed"));case 8:case"end":return _context3.stop()}},_callee3,this)}));function copyFromFolderToDestFolder(_x3,_x4){return _copyFromFolderToDestFolder.apply(this,arguments)}return copyFromFolderToDestFolder}())},{key:"cleanAllFiles",value:function cleanAllFiles(dir){if(this.isDirectory(dir)){this.appendInfo("\u6E96\u5099\u6E05\u9664\u5E95\u4E0B\u7684\u6240\u6709 ".concat(dir));_fsExtra["default"].emptyDirSync(dir);this.appendInfo("\u6210\u529F\u6E05\u9664\u5E95\u4E0B\u7684\u6240\u6709 ".concat(dir))}}},{key:"deleteSelfByPath",value:(function(){var _deleteSelfByPath=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee4(path,force){return _regenerator["default"].wrap(function _callee4$(_context4){while(1)switch(_context4.prev=_context4.next){case 0:if(!_fs["default"].existsSync(path)){_context4.next=5;break}this.appendInfo("\u6E96\u5099\u522A\u6389 ".concat(path,",{force:").concat(force,"}"));_context4.next=4;return(0,_del["default"])(path,{force:force});case 4:this.appendInfo("\u6210\u529F\u522A\u6389\u4E86 ".concat(path));case 5:case"end":return _context4.stop()}},_callee4,this)}));function deleteSelfByPath(_x5,_x6){return _deleteSelfByPath.apply(this,arguments)}return deleteSelfByPath}())},{key:"deleteFileOrFolder",value:function(){var _deleteFileOrFolder=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee5(path){return _regenerator["default"].wrap(function _callee5$(_context5){while(1)switch(_context5.prev=_context5.next){case 0:this.appendInfo("\u522A\u6389\u4E86 ".concat(path));_context5.next=3;return(0,_del["default"])(path);case 3:case"end":return _context5.stop()}},_callee5,this)}));function deleteFileOrFolder(_x7){return _deleteFileOrFolder.apply(this,arguments)}return deleteFileOrFolder}()},{key:"deleteChildByPath",value:(function(){var _deleteChildByPath=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee6(path){var force,pathes,_iterator2,_step2,_path2,_args6=arguments;return _regenerator["default"].wrap(function _callee6$(_context6){while(1)switch(_context6.prev=_context6.next){case 0:force=_args6.length>1&&_args6[1]!==undefined?_args6[1]:false;pathes=this.getChildPathByPath(path);_iterator2=_createForOfIteratorHelper(pathes);_context6.prev=3;_iterator2.s();case 5:if((_step2=_iterator2.n()).done){_context6.next=11;break}_path2=_step2.value;_context6.next=9;return this.deleteSelfByPath(_path2.absolute,force);case 9:_context6.next=5;break;case 11:_context6.next=16;break;case 13:_context6.prev=13;_context6.t0=_context6["catch"](3);_iterator2.e(_context6.t0);case 16:_context6.prev=16;_iterator2.f();return _context6.finish(16);case 19:case"end":return _context6.stop()}},_callee6,this,[[3,13,16,19]])}));function deleteChildByPath(_x8){return _deleteChildByPath.apply(this,arguments)}return deleteChildByPath}())},{key:"getFileCountsOfFolder",value:function getFileCountsOfFolder(path){if(this.isDirectory(path)){return _fs["default"].readdirSync(path).length}return-1}},{key:"reinstallNodeModules",value:function(){var _reinstallNodeModules=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee7(){var path,_len4,exclude,_key4,ex,paths,_iterator3,_step3,_json,path_module_root,path_gen_node_module,path_lock_json,_iterator4,_step4,_json2,_path_module_root,_path_gen_node_module,_args7=arguments;return _regenerator["default"].wrap(function _callee7$(_context7){while(1)switch(_context7.prev=_context7.next){case 0:path=_args7.length>0&&_args7[0]!==undefined?_args7[0]:"../";for(_len4=_args7.length,exclude=new Array(_len4>1?_len4-1:0),_key4=1;_key4<_len4;_key4++){exclude[_key4-1]=_args7[_key4]}ex=[].concat(exclude,["node_modules","utiller","configerer"]);paths=this.findFilePathBy.apply(this,[path,function(each){return _lodash["default"].isEqual(each.fileNameExtension,"package.json")}].concat((0,_toConsumableArray2["default"])(ex)));_iterator3=_createForOfIteratorHelper(paths);_context7.prev=5;_iterator3.s();case 7:if((_step3=_iterator3.n()).done){_context7.next=20;break}_json=_step3.value;path_module_root=this.getFileDirPath(_json.absolute);path_gen_node_module="".concat(path_module_root,"node_modules");path_lock_json="".concat(path_module_root,"package-lock.json");_context7.next=14;return(0,_del["default"])(path_lock_json);case 14:this.appendInfo("\u522A\u6389\u4E86 ".concat(path_lock_json));_context7.next=17;return(0,_del["default"])(path_gen_node_module);case 17:this.appendInfo("\u522A\u6389\u4E86 ".concat(path_gen_node_module));case 18:_context7.next=7;break;case 20:_context7.next=25;break;case 22:_context7.prev=22;_context7.t0=_context7["catch"](5);_iterator3.e(_context7.t0);case 25:_context7.prev=25;_iterator3.f();return _context7.finish(25);case 28:_iterator4=_createForOfIteratorHelper(paths);_context7.prev=29;_iterator4.s();case 31:if((_step4=_iterator4.n()).done){_context7.next=40;break}_json2=_step4.value;_path_module_root=this.getFileDirPath(_json2.absolute);_path_gen_node_module="".concat(_path_module_root,"node_modules");if(_fs["default"].existsSync(_path_gen_node_module)){_context7.next=38;break}_context7.next=38;return this.executeCommandLine("cd ".concat(_path_module_root," && npm install"));case 38:_context7.next=31;break;case 40:_context7.next=45;break;case 42:_context7.prev=42;_context7.t1=_context7["catch"](29);_iterator4.e(_context7.t1);case 45:_context7.prev=45;_iterator4.f();return _context7.finish(45);case 48:case"end":return _context7.stop()}},_callee7,this,[[5,22,25,28],[29,42,45,48]])}));function reinstallNodeModules(){return _reinstallNodeModules.apply(this,arguments)}return reinstallNodeModules}()},{key:"getNamesOfFolderChild",value:function getNamesOfFolderChild(path){return this.getChildPathByPath(path).filter(function(p){return p.isDirectory}).map(function(p){return p.dirName})}},{key:"getChildPathByPath",value:function getChildPathByPath(_path){var _this3=this;try{var files=_fs["default"].readdirSync(_path);return files.map(function(file){return _this3.getPathInfo(_path4["default"].join(_path,file))})}catch(error){throw new _index2["default"](8002,error)}}},{key:"copySingleFile",value:function copySingleFile(from,dest,fileName){var force=arguments.length>3&&arguments[3]!==undefined?arguments[3]:false;var destination=fileName&&fileName.trim()?_path4["default"].join(dest,fileName):dest;if(_fs["default"].existsSync(destination)&&!force){throw new _index2["default"](8006,destination)}_fs["default"].copyFileSync(from,destination)}},{key:"ensureFolderExists",value:function ensureFolderExists(folderPath){var resolved=_path4["default"].resolve(folderPath);if(_fs["default"].existsSync(resolved))return;_fs["default"].mkdirSync(resolved,{recursive:true})}},{key:"getNodeEnvVariable",value:function getNodeEnvVariable(key){var defaultValue=arguments.length>1&&arguments[1]!==undefined?arguments[1]:undefined;var value=process.env[key];return value===undefined?defaultValue:value}},{key:"isDirectory",value:function isDirectory(path){if(!this.isPathExist(path))return false;return _fs["default"].lstatSync(path).isDirectory()}},{key:"isFile",value:function isFile(path){if(!this.isPathExist(path))return false;return _fs["default"].lstatSync(path).isFile()}},{key:"isImageFile",value:function isImageFile(file){return["svg","png","jpg","jpeg"].includes(file.extension)}},{key:"cleanChildFiles",value:(function(){var _cleanChildFiles=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee8(path){var _this4=this;var predicate,_len5,exclude,_key5,files,nonImages,_args8=arguments;return _regenerator["default"].wrap(function _callee8$(_context8){while(1)switch(_context8.prev=_context8.next){case 0:predicate=_args8.length>1&&_args8[1]!==undefined?_args8[1]:function(){return true};if(_fs["default"].existsSync(path)){_context8.next=3;break}return _context8.abrupt("return",false);case 3:for(_len5=_args8.length,exclude=new Array(_len5>2?_len5-2:0),_key5=2;_key5<_len5;_key5++){exclude[_key5-2]=_args8[_key5]}files=this.findFilePathBy.apply(this,[path,predicate].concat(exclude));nonImages=files.filter(function(file){return!_this4.isImageFile(file)});_context8.next=8;return Promise.allSettled(nonImages.map(function(file){_this4.cleanFileContent(file.absolute);_this4.appendInfo("\u6210\u529F cleanChildFiles() -> '".concat(file.path,"'"));return Promise.resolve()}));case 8:return _context8.abrupt("return",files);case 9:case"end":return _context8.stop()}},_callee8,this)}));function cleanChildFiles(_x9){return _cleanChildFiles.apply(this,arguments)}return cleanChildFiles}())},{key:"cleanFileContent",value:function cleanFileContent(path){this.syncDeleteFile(path)}},{key:"syncWithExistPackage",value:function(){var _syncWithExistPackage=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee9(){var path,paths,_iterator5,_step5,_path3,_args9=arguments;return _regenerator["default"].wrap(function _callee9$(_context9){while(1)switch(_context9.prev=_context9.next){case 0:path=_args9.length>0&&_args9[0]!==undefined?_args9[0]:"../";paths=this.findFilePathBy(path,function(each){return _lodash["default"].isEqual(each.fileNameExtension,"package.json")},"node_modules");_iterator5=_createForOfIteratorHelper(paths);try{for(_iterator5.s();!(_step5=_iterator5.n()).done;){_path3=_step5.value;try{if(!_lodash["default"].isEqual(_path3.dirName,".."))this.insertShellCommand(_configerer.configerer.BASE_SHELL_SCRIPT,"cd_".concat(_path3.dirName),"cd ".concat(this.getFolderPathOfSpecificPath(_path3.absolute)))}catch(error){this.appendInfo(error.message)}}}catch(err){_iterator5.e(err)}finally{_iterator5.f()}case 4:case"end":return _context9.stop()}},_callee9,this)}));function syncWithExistPackage(){return _syncWithExistPackage.apply(this,arguments)}return syncWithExistPackage}()},{key:"packageTemplatify",value:function(){var _packageTemplatify=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee10(path,packageName){var _this5=this;var existFolders,dirPath,packagejson,classBase,ideaWorkspacePath,workspace,splited,indexOfRunManager,indexOfList;return _regenerator["default"].wrap(function _callee10$(_context10){while(1)switch(_context10.prev=_context10.next){case 0:existFolders=this.getChildPathByPath(path).map(function(each){return each.absolute.split("/").pop()});if(!this.has(existFolders,packageName)){_context10.next=3;break}throw new _index2["default"](8004," packageName ===> '".concat(packageName,"'"));case 3:dirPath="".concat(path,"/").concat(packageName);_fs["default"].mkdirSync(dirPath);_fs["default"].copyFileSync("./template/sample.babel.config.js","".concat(dirPath,"/babel.config.js"));packagejson=this.getJsonObjByFilePath("./template/sample.package.json");packagejson["name"]=packageName;this.writeFileInJSON("".concat(dirPath,"/package.json"),packagejson);this.persistByPath("".concat(dirPath,"/src"));classBase=String.format(this.getFileContextInRaw("./template/sample.src.index.js"),packageName,"\u660E\u6085",new Date);_fs["default"].writeFileSync("".concat(dirPath,"/src/index.js"),classBase);ideaWorkspacePath="".concat(this.findSpecificFolderByPath(dirPath,".idea"),"/workspace.xml");this.insertShellCommand(_configerer.configerer.BASE_SHELL_SCRIPT,"cd_".concat(packageName),"cd ".concat(_path4["default"].resolve(dirPath)));if(_fs["default"].existsSync(ideaWorkspacePath)){workspace=this.getFileContextInRaw(ideaWorkspacePath);splited=workspace.split("\n");indexOfRunManager=_lodash["default"].findIndex(splited,function(line){return _this5.has(line,"name=\"RunManager")});this.insertToArray(splited,indexOfRunManager,"<configuration name=\"".concat(packageName,"\" \n type=\"NodeJSConfigurationType\" \n path-to-node=\"$USER_HOME$/.nvm/versions/node/v18.19.1/bin/node\" \n node-parameters=\"--require @babel/register\" \n path-to-js-file=\"").concat(_path4["default"].resolve(dirPath),"/src/index.js\" \n working-dir=\"").concat(_path4["default"].resolve(dirPath),"\" >")," <envs>"," <env name=\"self_debug\" value=\"true\" />"," <env name=\"is_node\" value=\"true\" />"," </envs>"," <method v=\"2\" />","</configuration>");indexOfList=_lodash["default"].findIndex(splited,function(line){return _lodash["default"].isEqual(_lodash["default"].trim(line),"<list>")},indexOfRunManager);this.insertToArray(splited,indexOfList," <item itemvalue=\"Node.js.".concat(packageName,"\" />"));_fs["default"].writeFileSync(ideaWorkspacePath,splited.join("\n"))}else{this.appendError("".concat(ideaWorkspacePath," not exist"))}_context10.next=17;return this.executeCommandLine("cd ".concat(_path4["default"].resolve(dirPath)," && npm install"));case 17:this.appendInfo("build ".concat(packageName," succeed!"));case 18:case"end":return _context10.stop()}},_callee10,this)}));function packageTemplatify(_x10,_x11){return _packageTemplatify.apply(this,arguments)}return packageTemplatify}()},{key:"appendInfo",value:function appendInfo(){for(var _len6=arguments.length,messages=new Array(_len6),_key6=0;_key6<_len6;_key6++){messages[_key6]=arguments[_key6]}return this.appendLog(_configerer.configerer.PATH_INFO_LOG,messages,false)}},{key:"appendError",value:function appendError(){for(var _len7=arguments.length,messages=new Array(_len7),_key7=0;_key7<_len7;_key7++){messages[_key7]=arguments[_key7]}return this.appendLog(_configerer.configerer.PATH_ERROR_LOG,messages,true)}},{key:"appendLog",value:function appendLog(path,messages){var isError=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;var msg="".concat(this.getCurrentTimeFormat()," ").concat(isError?"ERROR":"LOG"," : ").concat(messages.map(this.stringifyLog).join(" ,"));if(!this.isProductionEnvironment()){var _console,_console2;isError?(_console=console).error.apply(_console,(0,_toConsumableArray2["default"])(messages)):(_console2=console).log.apply(_console2,(0,_toConsumableArray2["default"])(messages))}if(this.isPersistIntoLogFile){this.appendFile(path,msg)}}},{key:"stringifyLog",value:function stringifyLog(data){return(0,_typeof2["default"])(data)==="object"?JSON.stringify(data):String(data)}},{key:"appendFile",value:function appendFile(filePath,data){var newline=arguments.length>2&&arguments[2]!==undefined?arguments[2]:true;var forceDelete=arguments.length>3&&arguments[3]!==undefined?arguments[3]:false;try{var resolvedPath=_path4["default"].resolve(filePath);if(forceDelete&&_fs["default"].existsSync(resolvedPath))_fs["default"].unlinkSync(resolvedPath);if(!_fs["default"].existsSync(resolvedPath))this.persistByPath(resolvedPath);var content="".concat(newline?"\n":"").concat(data);_fs["default"].appendFileSync(resolvedPath,content)}catch(err){throw new _index2["default"](8001,err)}}},{key:"disableLogMessagePersistent",value:function disableLogMessagePersistent(){this.isPersistIntoLogFile=false}},{key:"getLogString",value:function getLogString(datas){var _this6=this;return datas.map(function(data){return _this6.isJson(data)||_lodash["default"].isObject(data)||_lodash["default"].isArray(data)?_this6.deepFlat(data):data}).join(" ,")}},{key:"persistJsonFilePrettier",value:(function(){var _persistJsonFilePrettier=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee11(path,object){var ignoreP,_args11=arguments;return _regenerator["default"].wrap(function _callee11$(_context11){while(1)switch(_context11.prev=_context11.next){case 0:ignoreP=_args11.length>2&&_args11[2]!==undefined?_args11[2]:false;path=_path4["default"].resolve(path);this.appendFile(path,JSON.stringify(object),true,true);if(ignoreP){_context11.next=6;break}_context11.next=6;return this.prettier(path,120);case 6:case"end":return _context11.stop()}},_callee11,this)}));function persistJsonFilePrettier(_x12,_x13){return _persistJsonFilePrettier.apply(this,arguments)}return persistJsonFilePrettier}())},{key:"printCollectionToFile",value:function printCollectionToFile(collection){var fileName="./logs/__temp_".concat(this.getCurrentTimeFormat(),".txt");this.persistByPath("./logs/");this.appendFile(fileName,this.deepFlat(collection," \n\n, "));this.appendInfo("collectionToFile succeed, file name ==> ".concat(fileName))}},{key:"readFileContentByPath",value:(function(){var _readFileContentByPath=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee12(path){var _cache$path;var cache,_args12=arguments;return _regenerator["default"].wrap(function _callee12$(_context12){while(1)switch(_context12.prev=_context12.next){case 0:cache=_args12.length>1&&_args12[1]!==undefined?_args12[1]:{};if(!((_cache$path=cache[path])!==null&&_cache$path!==void 0)){_context12.next=5;break}_context12.t0=_cache$path;_context12.next=8;break;case 5:_context12.next=7;return _promises["default"].readFile(path,"utf-8");case 7:_context12.t0=cache[path]=_context12.sent;case 8:return _context12.abrupt("return",_context12.t0);case 9:case"end":return _context12.stop()}},_callee12)}));function readFileContentByPath(_x14){return _readFileContentByPath.apply(this,arguments)}return readFileContentByPath}())},{key:"singleFileTemplatify",value:function singleFileTemplatify(){var path=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"./";var all=this.findFilePathByExtension(path,["js"],"node_modules");var _iterator6=_createForOfIteratorHelper(all),_step6;try{for(_iterator6.s();!(_step6=_iterator6.n()).done;){var file=_step6.value;var content=this.getFileContextInRaw(file.absolute).trim();if(_lodash["default"].isEmpty(content)){this.appendInfo(file.fileName,file.absolute);var className=_lodash["default"].isEqual(file.fileName,"index")?file.dirName:file.fileName;_fs["default"].writeFileSync(file.absolute,String.format(this.getFileContextInRaw(".\n /template/s\n ample.src.index.js"),className,"\u660E\u6085",new Date))}}}catch(err){_iterator6.e(err)}finally{_iterator6.f()}}},{key:"isFileEmpty",value:function isFileEmpty(path){var content=this.getFileContextInRaw(path);return!content||!content.trim()}},{key:"copySingleFileConservative",value:function copySingleFileConservative(destPath,latestFile){var absolute=latestFile.absolute,lastModifiedTime=latestFile.lastModifiedTime;if(!this.isPathExist(absolute)||this.isFileEmpty(absolute)){this.appendInfo("".concat(absolute," is empty file, ignore copy behavior"));return}var destExists=_fs["default"].existsSync(destPath);if(destExists&&this.getFileLastModifiedTime(destPath)>lastModifiedTime){this.appendInfo("".concat(destPath," is the latest, ignore this run"));return}if(!destExists){this.appendInfo("".concat(destPath," does not exist, safe to copy."))}this.ensureFolderExists(_path4["default"].dirname(destPath));this.copySingleFile(absolute,destPath,undefined,true)}},{key:"syncDeleteFile",value:function syncDeleteFile(path){if(_fs["default"].existsSync(path))_fs["default"].unlinkSync(path)}},{key:"getFileContextInJSON",value:function getFileContextInJSON(path){try{if(_fs["default"].existsSync(path)){return JSON.parse(_fs["default"].readFileSync(path,"utf-8"))}}catch(error){throw new _index2["default"](9999,error.message)}return{}}},{key:"getFileContextInRaw",value:function getFileContextInRaw(path){if(!_fs["default"].existsSync(path))return"";return _fs["default"].readFileSync(path,"utf-8")}},{key:"writeFileInJSON",value:function writeFileInJSON(path,param){var data=JSON.stringify(param,null,2);_fs["default"].writeFileSync(path,data)}},{key:"generatePackage",value:(function(){var _generatePackage=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee13(){var _this7=this;var path,deployToNPMServer,forceInstallNodeModule,packagejsons,_len8,exclude,_key8,_iterator7,_step7,_loop,_args14=arguments;return _regenerator["default"].wrap(function _callee13$(_context14){while(1)switch(_context14.prev=_context14.next){case 0:path=_args14.length>0&&_args14[0]!==undefined?_args14[0]:"./";deployToNPMServer=_args14.length>1&&_args14[1]!==undefined?_args14[1]:false;forceInstallNodeModule=_args14.length>2&&_args14[2]!==undefined?_args14[2]:true;packagejsons=this.findFilePathByExtension(path,["json"],"node_modules","release");packagejsons=_lodash["default"].filter(packagejsons,function(each){return _lodash["default"].isEqual(each.fileName,"package")});packagejsons=packagejsons.map(function(each){return _this7.getFolderPathOfSpecificPath(each.absolute)});for(_len8=_args14.length,exclude=new Array(_len8>3?_len8-3:0),_key8=3;_key8<_len8;_key8++){exclude[_key8-3]=_args14[_key8]}_iterator7=_createForOfIteratorHelper(packagejsons);_context14.prev=8;_loop=_regenerator["default"].mark(function _loop(){var path,tempFolderPath,release,pathOfPackageJson,indexFileName,templatePath,_yield$_this7$upgrade,moduleName,version;return _regenerator["default"].wrap(function _loop$(_context13){while(1)switch(_context13.prev=_context13.next){case 0:path=_step7.value;if(!_this7.isAndEquals.apply(_this7,(0,_toConsumableArray2["default"])(exclude.map(function(projectName){return function(){return!_this7.has(path,projectName)}})))){_context13.next=46;break}_context13.next=4;return _this7.generateTempFolderWithCleanSrc(path);case 4:tempFolderPath=_context13.sent;release=_this7.persistByPath(_path4["default"].join(path,"release"));_context13.next=8;return _this7.executeCommandLine("cd ".concat(path," && babel ./temp --out-dir ./release/lib --config-file ./babel.config.js"));case 8:pathOfPackageJson=_path4["default"].join(path,"package.json");_context13.prev=9;indexFileName="sample.npm.module.index.js";_this7.copySingleFile("/Users/davidtu/cross-achieve/high/idea-inventer/utiller/template/".concat(indexFileName),release,"index.js",true);templatePath=_path4["default"].join(path,"template");if(!_this7.isPathExist(templatePath)){_context13.next=16;break}_context13.next=16;return _this7.copyFromFolderToDestFolder(templatePath,_this7.persistByPath(_path4["default"].join(release,"template")));case 16:if(!deployToNPMServer){_context13.next=24;break}_context13.next=19;return _this7.upgradePackageJsonVersion(pathOfPackageJson);case 19:_yield$_this7$upgrade=_context13.sent;moduleName=_yield$_this7$upgrade.moduleName;version=_yield$_this7$upgrade.version;_context13.next=24;return _this7.updateVersionOfTemplate(moduleName,version);case 24:_this7.copySingleFile(pathOfPackageJson,_path4["default"].join(release,"package.json"),undefined,true);if(!(forceInstallNodeModule||!_this7.isPathExist(_path4["default"].join(release,"node_module")))){_context13.next=30;break}_context13.next=28;return _this7.executeCommandLine("cd ".concat(release," && yarn install --production"));case 28:_context13.next=31;break;case 30:_this7.appendInfo("ignore node-module install behavior");case 31:_this7.appendInfo("build ".concat(path," succeed"));if(!deployToNPMServer){_context13.next=35;break}_context13.next=35;return _this7.executeCommandLine("cd ".concat(release," && npm publish"));case 35:_context13.next=42;break;case 37:_context13.prev=37;_context13.t0=_context13["catch"](9);_context13.next=41;return _this7.deleteSelfByPath(release,true);case 41:throw new _index2["default"](9999,"generatePackage \u5831\u932F, ".concat(_context13.t0.message));case 42:_context13.prev=42;_context13.next=45;return _this7.deleteSelfByPath(tempFolderPath,true);case 45:return _context13.finish(42);case 46:case"end":return _context13.stop()}},_loop,null,[[9,37,42,46]])});_iterator7.s();case 11:if((_step7=_iterator7.n()).done){_context14.next=15;break}return _context14.delegateYield(_loop(),"t0",13);case 13:_context14.next=11;break;case 15:_context14.next=20;break;case 17:_context14.prev=17;_context14.t1=_context14["catch"](8);_iterator7.e(_context14.t1);case 20:_context14.prev=20;_iterator7.f();return _context14.finish(20);case 23:case"end":return _context14.stop()}},_callee13,this,[[8,17,20,23]])}));function generatePackage(){return _generatePackage.apply(this,arguments)}return generatePackage}())},{key:"updateVersionOfTemplate",value:(function(){var _updateVersionOfTemplate=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee14(dependency,newVersion){var paths,_i,_paths,path,succeedOfPersistFile,json;return _regenerator["default"].wrap(function _callee14$(_context15){while(1)switch(_context15.prev=_context15.next){case 0:paths=["/Users/davidtu/cross-achieve/high/idea-inventer/free_marker/template/admin.package.json.mustache","/Users/davidtu/cross-achieve/high/idea-inventer/free_marker/template/web.package.json.mustache","/Users/davidtu/cross-achieve/high/idea-inventer/free_marker/template/functions.package.json.mustache","/Users/davidtu/cross-achieve/high/idea-inventer/utiller/template/sample.package.json","/Users/davidtu/cross-achieve/high/idea-inventer/free_marker/package.json"];_i=0,_paths=paths;case 2:if(!(_i<_paths.length)){_context15.next=24;break}path=_paths[_i];if(!this.isPathExist(path)){_context15.next=21;break}succeedOfPersistFile=false;json=this.getJsonObjByFilePath(path);if(!(json&&json.dependencies&&json.dependencies[dependency])){_context15.next=18;break}json.dependencies[dependency]="^".concat(newVersion);_context15.prev=9;_context15.next=12;return this.writeJsonThanPrettier(path,json);case 12:succeedOfPersistFile=true;_context15.next=18;break;case 15:_context15.prev=15;_context15.t0=_context15["catch"](9);succeedOfPersistFile=true;case 18:if(succeedOfPersistFile){_context15.next=21;break}_context15.next=21;return this.updateFileOfSpecificLine(path,function(line){return" \"".concat(dependency,"\":\"^").concat(newVersion,"\"").concat(_lodash["default"].endsWith(_lodash["default"].trim(line),",")?",":"")},function(each){return _lodash["default"].startsWith(_lodash["default"].trim(each),"\"".concat(dependency,"\""))});case 21:_i++;_context15.next=2;break;case 24:_context15.next=26;return this.copyFromFolderToDestFolder("/Users/davidtu/cross-achieve/high/idea-inventer/utiller/template/","/Users/davidtu/cross-achieve/high/idea-inventer/newp/template/",true,true);case 26:case"end":return _context15.stop()}},_callee14,this,[[9,15]])}));function updateVersionOfTemplate(_x15,_x16){return _updateVersionOfTemplate.apply(this,arguments)}return updateVersionOfTemplate}())},{key:"updateFileOfSpecificLine",value:(function(){var _updateFileOfSpecificLine=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee15(pathOfFile){var contentOfUpdated,predicate,context,lines,index,_args16=arguments;return _regenerator["default"].wrap(function _callee15$(_context16){while(1)switch(_context16.prev=_context16.next){case 0:contentOfUpdated=_args16.length>1&&_args16[1]!==undefined?_args16[1]:function(line){return"updated"};predicate=_args16.length>2&&_args16[2]!==undefined?_args16[2]:function(line){return true};context=this.getFileContextInRaw(pathOfFile);lines=context.split("\n");index=lines.findIndex(predicate);if(!(index===-1)){_context16.next=7;break}return _context16.abrupt("return");case 7:lines[index]=contentOfUpdated(lines[index]);this.appendFile(pathOfFile,lines.join("\n"),true,true);_context16.next=11;return this.prettier(pathOfFile);case 11:case"end":return _context16.stop()}},_callee15,this)}));function updateFileOfSpecificLine(_x17){return _updateFileOfSpecificLine.apply(this,arguments)}return updateFileOfSpecificLine}())},{key:"writeJsonThanPrettier",value:function(){var _writeJsonThanPrettier=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee16(path,json){return _regenerator["default"].wrap(function _callee16$(_context17){while(1)switch(_context17.prev=_context17.next){case 0:this.writeFileInJSON(path,json);_context17.next=3;return this.prettier(path);case 3:case"end":return _context17.stop()}},_callee16,this)}));function writeJsonThanPrettier(_x18,_x19){return _writeJsonThanPrettier.apply(this,arguments)}return writeJsonThanPrettier}()},{key:"enrichEachPackageJson",value:(function(){var _enrichEachPackageJson=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee17(rootPath){var validNames,jsonFiles,packageFiles,_iterator8,_step8,absolute,json;return _regenerator["default"].wrap(function _callee17$(_context18){while(1)switch(_context18.prev=_context18.next){case 0:validNames=new Set(["package","admin.package","web.package","functions.package"]);jsonFiles=this.findFilePathByExtension(rootPath,["json"],"gen","node_modules","release");packageFiles=jsonFiles.filter(function(file){return validNames.has(file.fileName)});if(!(packageFiles.length===0)){_context18.next=5;break}return _context18.abrupt("return");case 5:_iterator8=_createForOfIteratorHelper(packageFiles);_context18.prev=6;_iterator8.s();case 8:if((_step8=_iterator8.n()).done){_context18.next=17;break}absolute=_step8.value.absolute;json=this.getJsonObjByFilePath(absolute);json.scripts||(json.scripts={});json.scripts.updateConfigerer="npm update configerer --save";_context18.next=15;return this.writeJsonThanPrettier(absolute,json);case 15:_context18.next=8;break;case 17:_context18.next=22;break;case 19:_context18.prev=19;_context18.t0=_context18["catch"](6);_iterator8.e(_context18.t0);case 22:_context18.prev=22;_iterator8.f();return _context18.finish(22);case 25:case"end":return _context18.stop()}},_callee17,this,[[6,19,22,25]])}));function enrichEachPackageJson(_x20){return _enrichEachPackageJson.apply(this,arguments)}return enrichEachPackageJson}())},{key:"insertShellCommand",value:function insertShellCommand(){var shellPath=arguments.length>0&&arguments[0]!==undefined?arguments[0]:_configerer.configerer.BASE_SHELL_SCRIPT;var alias=arguments.length>1?arguments[1]:undefined;var command=arguments.length>2?arguments[2]:undefined;if(this.isStringContainInLines(this.getFileContextInRaw(shellPath),alias)){throw new _index2["default"](8007,"alias ".concat(alias," is exist"))}else{var line="alias ".concat(alias,"='").concat(command,"'");this.appendFile(shellPath,line)}}},{key:"getAdminCredential",value:function getAdminCredential(){return this.getJsonObjByFilePath("/Users/davidtu/cross-achieve/mimi/idea-inventer/firebaser/key/mimi19up-firebase-adminsdk.json")}},{key:"isEmptyFile",value:function isEmptyFile(path){return!this.isPathExist(path)||_lodash["default"].isEmpty(this.getFileContextInRaw(path).trim())}},{key:"isEmptyFolder",value:function isEmptyFolder(path){return _fs["default"].readdirSync(path).length===0}},{key:"prettier",value:(function(){var _prettier=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee18(path){var width,_args19=arguments;return _regenerator["default"].wrap(function _callee18$(_context19){while(1)switch(_context19.prev=_context19.next){case 0:width=_args19.length>1&&_args19[1]!==undefined?_args19[1]:200;_context19.next=3;return this.executeCommandLine("cd ".concat(_path4["default"].resolve(".")," && npx prettier --write ").concat(_path4["default"].resolve(path)," --print-width ").concat(width));case 3:case"end":return _context19.stop()}},_callee18,this)}));function prettier(_x21){return _prettier.apply(this,arguments)}return prettier}())},{key:"getFileLastModifiedTime",value:function getFileLastModifiedTime(path){return _fs["default"].statSync(path).mtimeMs}},{key:"getJsonObjByFilePath",value:function getJsonObjByFilePath(path){this.appendInfo("ready to json path:".concat(path));return JSON.parse(this.getFileContextInRaw(path))}},{key:"upgradePackageJsonVersion",value:(function(){var _upgradePackageJsonVersion=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee19(path){var json;return _regenerator["default"].wrap(function _callee19$(_context20){while(1)switch(_context20.prev=_context20.next){case 0:if(!_lodash["default"].isEqual("json",this.getPathInfo(path).extension)){_context20.next=8;break}json=this.getJsonObjByFilePath(path);json.version=this.getStringOfVersionIncrement(json.version);_context20.next=5;return this.writeJsonThanPrettier(path,json);case 5:return _context20.abrupt("return",{version:json.version,moduleName:json.name});case 8:throw new _index2["default"](8020,"path is not package.json, which is ".concat(path));case 9:case"end":return _context20.stop()}},_callee19,this)}));function upgradePackageJsonVersion(_x22){return _upgradePackageJsonVersion.apply(this,arguments)}return upgradePackageJsonVersion}())},{key:"reWriteJsonAttribute",value:(function(){var _reWriteJsonAttribute=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee20(filePath){var _this$getPathInfo,extension,_len9,attrs,_key9,invalidAttr,json,_i2,_attrs,attr,_args21=arguments;return _regenerator["default"].wrap(function _callee20$(_context21){while(1)switch(_context21.prev=_context21.next){case 0:_this$getPathInfo=this.getPathInfo(filePath),extension=_this$getPathInfo.extension;if(!(extension!=="json")){_context21.next=3;break}throw new _index2["default"](9999,"reWriteJsonAttribute() => path is not package.json, which is ".concat(filePath));case 3:for(_len9=_args21.length,attrs=new Array(_len9>1?_len9-1:0),_key9=1;_key9<_len9;_key9++){attrs[_key9-1]=_args21[_key9]}invalidAttr=attrs.find(function(attr){return(0,_typeof2["default"])(attr)!=="object"||attr===null});if(!invalidAttr){_context21.next=7;break}throw new _index2["default"](9999,"84451515 attr is not object, which is 'type=".concat((0,_typeof2["default"])(invalidAttr)," => ").concat(invalidAttr,"'"));case 7:json=this.getJsonObjByFilePath(filePath);for(_i2=0,_attrs=attrs;_i2<_attrs.length;_i2++){attr=_attrs[_i2];json[this.getObjectKey(attr)]=this.getObjectValue(attr)}_context21.next=11;return this.writeJsonThanPrettier(filePath,json);case 11:return _context21.abrupt("return",{version:json.version,moduleName:json.name});case 12:case"end":return _context21.stop()}},_callee20,this)}));function reWriteJsonAttribute(_x23){return _reWriteJsonAttribute.apply(this,arguments)}return reWriteJsonAttribute}())},{key:"getVersionOfPackageJson",value:function getVersionOfPackageJson(path){return this.getAttributeValueOfJson(path,"version","1.0.0")}},{key:"getAttributeValueOfJson",value:function getAttributeValueOfJson(path,key){var defaultValue=arguments.length>2&&arguments[2]!==undefined?arguments[2]:undefined;if(_lodash["default"].isEqual("json",this.getPathInfo(path).extension)){var _json$key;var json=this.getJsonObjByFilePath(path);return(_json$key=json[key])!==null&&_json$key!==void 0?_json$key:defaultValue}else{throw new _index2["default"](8020,"path is not package.json, which is ".concat(path))}}},{key:"getVersionOfJsFile",value:function getVersionOfJsFile(path){return this.getAttributeValueOfJsFile(path,"version","project without version notice")}},{key:"getAttributeValueOfJsFile",value:function getAttributeValueOfJsFile(path,key){var defaultValue=arguments.length>2&&arguments[2]!==undefined?arguments[2]:undefined;if(_lodash["default"].isEqual(this.getExtensionFromPath(path),"js")){var _source$key;var source=require(_path4["default"].resolve(path))["default"];return(_source$key=source[key])!==null&&_source$key!==void 0?_source$key:defaultValue}else{throw new _index2["default"](8020,"path is not js file, which is ".concat(path))}}},{key:"rewriteAttributeOfSourceJs",value:(function(){var _rewriteAttributeOfSourceJs=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee21(path){var _this8=this;var _len10,attrs,_key10,_loop2,_i3,_attrs2,_args23=arguments;return _regenerator["default"].wrap(function _callee21$(_context23){while(1)switch(_context23.prev=_context23.next){case 0:if(this.isPathExist(path)){_context23.next=2;break}throw new _index2["default"](9999,"4849813 ".concat(path," is not exist"));case 2:for(_len10=_args23.length,attrs=new Array(_len10>1?_len10-1:0),_key10=1;_key10<_len10;_key10++){attrs[_key10-1]=_args23[_key10]}_loop2=_regenerator["default"].mark(function _loop2(){var attr,key,value,contents,index;return _regenerator["default"].wrap(function _loop2$(_context22){while(1)switch(_context22.prev=_context22.next){case 0:attr=_attrs2[_i3];if(_lodash["default"].isObject(attr)){_context22.next=3;break}throw new _index2["default"](9999,"4984651 attr is not object, which is 'type=".concat((0,_typeof2["default"])(attr)," => ").concat(attr,"'"));case 3:key=_this8.getObjectKey(attr);value=_this8.getObjectValue(attr);contents=_this8.getFileContextInRaw(path).split("\n");index=_lodash["default"].findIndex(contents,function(each){return _lodash["default"].startsWith(_lodash["default"].trim(each),"".concat(key))});contents[index]=" ".concat(key,": '").concat(value,"',");_this8.appendFile(path,contents.join("\n"),true,true);case 9:case"end":return _context22.stop()}},_loop2)});_i3=0,_attrs2=attrs;case 5:if(!(_i3<_attrs2.length)){_context23.next=10;break}return _context23.delegateYield(_loop2(),"t0",7);case 7:_i3++;_context23.next=5;break;case 10:return _context23.abrupt("return",attrs);case 11:case"end":return _context23.stop()}},_callee21,this)}));function rewriteAttributeOfSourceJs(_x24){return _rewriteAttributeOfSourceJs.apply(this,arguments)}return rewriteAttributeOfSourceJs}())},{key:"getAnswerFromPromptQ",value:function(){var _getAnswerFromPromptQ=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee22(){var configs,_args24=arguments;return _regenerator["default"].wrap(function _callee22$(_context24){while(1)switch(_context24.prev=_context24.next){case 0:configs=_args24.length>0&&_args24[0]!==undefined?_args24[0]:[{name:"name",require:true,description:"type the name"}];_prompt["default"].start();_context24.next=4;return _prompt["default"].get(configs);case 4:return _context24.abrupt("return",_context24.sent);case 5:case"end":return _context24.stop()}},_callee22)}));function getAnswerFromPromptQ(){return _getAnswerFromPromptQ.apply(this,arguments)}return getAnswerFromPromptQ}()},{key:"getObjectFromPromptQ",value:(function(){var _getObjectFromPromptQ=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee23(){var _len11,configs,_key11,_args25=arguments;return _regenerator["default"].wrap(function _callee23$(_context25){while(1)switch(_context25.prev=_context25.next){case 0:_prompt["default"].start();for(_len11=_args25.length,configs=new Array(_len11),_key11=0;_key11<_len11;_key11++){configs[_key11]=_args25[_key11]}_context25.next=4;return _prompt["default"].get(configs);case 4:return _context25.abrupt("return",_context25.sent);case 5:case"end":return _context25.stop()}},_callee23)}));function getObjectFromPromptQ(){return _getObjectFromPromptQ.apply(this,arguments)}return getObjectFromPromptQ}())},{key:"generateTempFolderWithCleanSrc",value:(function(){var _generateTempFolderWithCleanSrc=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee24(basePath){var sourceFile,tempFolderPath,filePaths,_iterator9,_step9,tempFilePath,rawLines,trimmedLines,start,end,updatedContent;return _regenerator["default"].wrap(function _callee24$(_context26){while(1)switch(_context26.prev=_context26.next){case 0:this.appendInfo("generateTempFolderWithCleanSrc",basePath);sourceFile=_path4["default"].join(basePath,"src");tempFolderPath=_path4["default"].join(basePath,"temp");if(_fs["default"].existsSync(sourceFile)){_context26.next=5;break}return _context26.abrupt("return",tempFolderPath);case 5:this.appendInfo("generateTempFolderWithCleanSrc","source",sourceFile);this.persistByPath(tempFolderPath);_context26.next=9;return this.copyFromFolderToDestFolder(sourceFile,tempFolderPath);case 9:filePaths=this.findFilePathBy(tempFolderPath);_iterator9=_createForOfIteratorHelper(filePaths);_context26.prev=11;_iterator9.s();case 13:if((_step9=_iterator9.n()).done){_context26.next=27;break}tempFilePath=_step9.value.absolute;rawLines=this.getFileContextInRaw(tempFilePath).split("\n");trimmedLines=rawLines.map(function(line){return line.trim()});start=trimmedLines.findIndex(function(line){return line.startsWith("if (configerer.DEBUG_MODE)")});end=trimmedLines.lastIndexOf("}");if(!(start>=0&&end>start)){_context26.next=25;break}rawLines.splice(start,end-start+1);updatedContent=rawLines.join("\n");this.appendFile(tempFilePath,updatedContent,true,true);_context26.next=25;return this.executeCommandLine("cd ".concat(_path4["default"].dirname(tempFilePath)," && npx prettier --write \"").concat(tempFilePath,"\""));case 25:_context26.next=13;break;case 27:_context26.next=32;break;case 29:_context26.prev=29;_context26.t0=_context26["catch"](11);_iterator9.e(_context26.t0);case 32:_context26.prev=32;_iterator9.f();return _context26.finish(32);case 35:return _context26.abrupt("return",tempFolderPath);case 36:case"end":return _context26.stop()}},_callee24,this,[[11,29,32,35]])}));function generateTempFolderWithCleanSrc(_x25){return _generateTempFolderWithCleanSrc.apply(this,arguments)}return generateTempFolderWithCleanSrc}())},{key:"rewriteFile2File",value:function rewriteFile2File(from,to){var content=this.getFileContextInRaw(from);if(!content.trim())throw new _index2["default"](9999,"".concat(from," \u70BA\u7A7A\uFF0C\u907F\u514D\u8986\u84CB"));this.appendFile(to,content,true,true);this.appendInfo("rewrite from:".concat(from," => to:").concat(to," \u6210\u529F"))}},{key:"getStringOfHeadOfFile",value:function getStringOfHeadOfFile(path){if(this.isPathExist(path)){var context=this.getFileContextInRaw(path);return _lodash["default"].head(context.split("\n"))}return""}},{key:"isFileEditSucceed",value:function isFileEditSucceed(filePath){if(!this.isPathExist(filePath))return false;var file=this.getPathInfo(filePath);var context=this.getFileContextInRaw(filePath).trim();if(context===""){this.appendInfo("74985465 path ".concat(file.path," is empty file, file would not persist"));return false}try{var firstLine=context.split("\n")[0];var match=firstLine.match(/const\s+([a-zA-Z_]\w*)\s*=\s*(true|false)\s*;?/);if(!match||_lodash["default"].size(match)<3)return false;var editValue=match[2]==="true";if(editValue===true){return true}}catch(error){this.appendError("66445411 ".concat(error.message));return false}return false}},{key:"joinRespectingDot",value:function joinRespectingDot(){var _args$,_args$2;for(var _len12=arguments.length,args=new Array(_len12),_key12=0;_key12<_len12;_key12++){args[_key12]=arguments[_key12]}var shouldHaveDotSlash=(_args$=args[0])===null||_args$===void 0?void 0:_args$.startsWith("./");var cleanArgs=(_args$2=args[0])!==null&&_args$2!==void 0&&_args$2.startsWith("./")?[args[0].slice(2)].concat((0,_toConsumableArray2["default"])(args.slice(1))):args;var joined=_path4["default"].join.apply(_path4["default"],(0,_toConsumableArray2["default"])(cleanArgs));return shouldHaveDotSlash&&!_path4["default"].isAbsolute(joined)?"./".concat(joined):joined}}])}(_index["default"]);var _default=exports["default"]=NodeUtiller;
|
|
1
|
+
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _typeof3=require("@babel/runtime/helpers/typeof");Object.defineProperty(exports,"__esModule",{value:true});exports["default"]=void 0;var _regenerator=_interopRequireDefault(require("@babel/runtime/regenerator"));var _typeof2=_interopRequireDefault(require("@babel/runtime/helpers/typeof"));var _toConsumableArray2=_interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _possibleConstructorReturn2=_interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));var _getPrototypeOf2=_interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));var _inherits2=_interopRequireDefault(require("@babel/runtime/helpers/inherits"));var _defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));var _path4=_interopRequireDefault(require("path"));var _fs=_interopRequireDefault(require("fs"));var _promises=_interopRequireDefault(require("fs/promises"));var _lodash=_interopRequireDefault(require("lodash"));var _child_process=_interopRequireDefault(require("child_process"));var _configerer=require("configerer");var _index=_interopRequireDefault(require("./index"));var _index2=_interopRequireDefault(require("../exceptioner/index"));var _pdfParse=_interopRequireDefault(require("pdf-parse"));var _del=_interopRequireWildcard(require("del"));var _fsExtra=_interopRequireDefault(require("fs-extra"));var _prompt=_interopRequireDefault(require("prompt"));function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,n=new WeakMap;return(_interopRequireWildcard=function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;var o,i,f={__proto__:null,"default":e};if(null===e||"object"!=_typeof3(e)&&"function"!=typeof e)return f;if(o=t?n:r){if(o.has(e))return o.get(e);o.set(e,f)}for(var _t in e)"default"!==_t&&{}.hasOwnProperty.call(e,_t)&&((i=(o=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,_t))&&(i.get||i.set)?o(f,_t,i):f[_t]=e[_t]);return f})(e,t)}function _createForOfIteratorHelper(r,e){var t="undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(!t){if(Array.isArray(r)||(t=_unsupportedIterableToArray(r))||e&&r&&"number"==typeof r.length){t&&(r=t);var _n=0,F=function F(){};return{s:F,n:function n(){return _n>=r.length?{done:!0}:{done:!1,value:r[_n++]}},e:function e(r){throw r},f:F}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,u=!1;return{s:function s(){t=t.call(r)},n:function n(){var r=t.next();return a=r.done,r},e:function e(r){u=!0,o=r},f:function f(){try{a||null==t["return"]||t["return"]()}finally{if(u)throw o}}}}function _unsupportedIterableToArray(r,a){if(r){if("string"==typeof r)return _arrayLikeToArray(r,a);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0}}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n}function _callSuper(t,o,e){return o=(0,_getPrototypeOf2["default"])(o),(0,_possibleConstructorReturn2["default"])(t,_isNativeReflectConstruct()?Reflect.construct(o,e||[],(0,_getPrototypeOf2["default"])(t).constructor):o.apply(t,e))}function _isNativeReflectConstruct(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(_isNativeReflectConstruct=function _isNativeReflectConstruct(){return!!t})()}var NodeUtiller=function(_Utiller){function NodeUtiller(){var _this;(0,_classCallCheck2["default"])(this,NodeUtiller);for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key]}_this=_callSuper(this,NodeUtiller,[].concat(args));(0,_defineProperty2["default"])(_this,"isPersistIntoLogFile",true);(0,_defineProperty2["default"])(_this,"findFilePathByExtension",function(rootpath){var _this2;var _extension=arguments.length>1&&arguments[1]!==undefined?arguments[1]:[];var reg=new RegExp("^[^.].+.(".concat(_lodash["default"].join(_extension,"|"),")$"));for(var _len2=arguments.length,exclude=new Array(_len2>2?_len2-2:0),_key2=2;_key2<_len2;_key2++){exclude[_key2-2]=arguments[_key2]}return(_this2=_this).findFilePathBy.apply(_this2,[rootpath,function(item){return reg.test(item.fileNameExtension)}].concat(exclude))});(0,_defineProperty2["default"])(_this,"executeCommandLine",function(){var _ref=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee(command){var self;return _regenerator["default"].wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:self=_this;_this.appendInfo("\u57F7\u884C\u8173\u672C ".concat(command));return _context.abrupt("return",new Promise(function(resolve,reject){_child_process["default"].exec(command,function(error,stdout,stderr){self.appendInfo("".concat(stdout));self.appendInfo("".concat(stderr));if(error){self.appendError("\u57F7\u884C\u932F\u8AA4: ".concat(error));reject(error);return}resolve(stdout.trim())})}));case 3:case"end":return _context.stop()}},_callee)}));return function(_x){return _ref.apply(this,arguments)}}());(0,_defineProperty2["default"])(_this,"getPathAfterSpecificFolder",function(fullPath){var folder=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"src";var parts=fullPath.split(_path4["default"].sep);for(var i=parts.length-1;i>=0;i--){if(parts[i]===folder){return"/"+parts.slice(i+1).join("/")}}return""});(0,_defineProperty2["default"])(_this,"getPathAfterSrc",function(fullPath){return _this.getPathAfterSpecificFolder(fullPath)});return _this}(0,_inherits2["default"])(NodeUtiller,_Utiller);return(0,_createClass2["default"])(NodeUtiller,[{key:"findSpecificFolderByPath",value:function findSpecificFolderByPath(path,folderName){var absolute=_path4["default"].resolve(path);var parts=absolute.split(_path4["default"].sep);while(parts.length){var joined=_path4["default"].join.apply(_path4["default"],(0,_toConsumableArray2["default"])(parts).concat([folderName]));if(_fs["default"].existsSync(joined))return joined;parts.pop()}return null}},{key:"getPDFText",value:(function(){var _getPDFText=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee2(path){var dataBuffer;return _regenerator["default"].wrap(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:dataBuffer=_fs["default"].readFileSync(path);return _context2.abrupt("return",(0,_pdfParse["default"])(dataBuffer).then(function(data){return data}));case 2:case"end":return _context2.stop()}},_callee2)}));function getPDFText(_x2){return _getPDFText.apply(this,arguments)}return getPDFText}())},{key:"printf",value:function printf(){this.appendInfo("i can use in node.js only yo yo")}},{key:"findFilePathBy",value:function findFilePathBy(path){var predicate=arguments.length>1&&arguments[1]!==undefined?arguments[1]:function(){return true};if(!_fs["default"].existsSync(path))return[];var result=[];var entries=_fs["default"].readdirSync(path,{withFileTypes:true});for(var _len3=arguments.length,excludes=new Array(_len3>2?_len3-2:0),_key3=2;_key3<_len3;_key3++){excludes[_key3-2]=arguments[_key3]}var _iterator=_createForOfIteratorHelper(entries),_step;try{for(_iterator.s();!(_step=_iterator.n()).done;){var entry=_step.value;if(excludes.includes(entry.name))continue;var fullPath=_path4["default"].join(path,entry.name);if(entry.isDirectory()){result.push.apply(result,(0,_toConsumableArray2["default"])(this.findFilePathBy.apply(this,[fullPath,predicate].concat(excludes))))}else if(entry.isFile()){var info=this.getPathInfo(fullPath);if(predicate(info))result.push(info)}}}catch(err){_iterator.e(err)}finally{_iterator.f()}return result}},{key:"isPathExist",value:function isPathExist(path){return _fs["default"].existsSync(path)}},{key:"renameFile",value:function renameFile(path){var newName=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"fileName";if(!this.isFile(path)||!newName){this.appendError("renameFile \u932F\u8AA4, path: ".concat(path,", newName: ").concat(newName));return}var dir=_path4["default"].dirname(path);var ext=_path4["default"].extname(path);var newPath=_path4["default"].join(dir,"".concat(newName).concat(ext));_fs["default"].renameSync(path,newPath)}},{key:"getPathInfo",value:function getPathInfo(path){var absolute=_path4["default"].resolve(path);var obj={path:path,absolute:absolute,isFile:false,isDirectory:true,dirName:undefined,folderName:undefined,dirPath:undefined,folderPath:undefined,extension:undefined,fileName:undefined,fileNameExtension:undefined,lastModifiedTime:undefined,name:undefined};if(this.isFile(absolute)){obj["extension"]=absolute.split(".").pop();var fileNameStrings=absolute.split("/").pop().split(".");fileNameStrings.pop();obj["fileName"]=fileNameStrings.join(".");obj["name"]=fileNameStrings.join(".");obj["dirName"]=_lodash["default"].nth(absolute.split("/"),-2);obj["folderName"]=_lodash["default"].nth(absolute.split("/"),-2);obj["isFile"]=true;obj["dirPath"]=this.getFolderPathOfSpecificPath(absolute);obj["folderPath"]=this.getFolderPathOfSpecificPath(absolute);obj["isDirectory"]=false;obj["fileNameExtension"]="".concat(obj.fileName,".").concat(obj.extension);obj["lastModifiedTime"]=this.getFileLastModifiedTime(absolute)}if(this.isDirectory(absolute)){obj["dirName"]=absolute.split("/").pop()}return obj}},{key:"syncExecuteCommandLine",value:function syncExecuteCommandLine(command){var self=this;this.appendInfo("\u57F7\u884C\u8173\u672C ".concat(command));_child_process["default"].exec("".concat(command),function(error,stdout,stderr){self.appendInfo("".concat(stdout));self.appendInfo("".concat(stderr));if(error!==null){self.appendError("exec error: ".concat(error))}})}},{key:"persistByPath",value:function persistByPath(targetPath){var isAbsolute=_path4["default"].isAbsolute(targetPath);var parts=targetPath.split("/").filter(Boolean);var lastPart=parts[parts.length-1];var isFile=_path4["default"].extname(lastPart)!=="";var current=isAbsolute?_path4["default"].sep:"";for(var i=0;i<parts.length;i++){current=_path4["default"].join(current,parts[i]);if(!_fs["default"].existsSync(current)){if(i===parts.length-1&&isFile){_fs["default"].writeFileSync(current,"")}else{_fs["default"].mkdirSync(current,{recursive:false})}}}return _path4["default"].resolve(targetPath)}},{key:"copyFromFolderToDestFolder",value:(function(){var _copyFromFolderToDestFolder=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee3(from,dest){var override,preserveTimestamps,filter,_args3=arguments;return _regenerator["default"].wrap(function _callee3$(_context3){while(1)switch(_context3.prev=_context3.next){case 0:override=_args3.length>2&&_args3[2]!==undefined?_args3[2]:true;preserveTimestamps=_args3.length>3&&_args3[3]!==undefined?_args3[3]:false;filter=_args3.length>4&&_args3[4]!==undefined?_args3[4]:function(){return true};if(!(!_fs["default"].existsSync(from)||!_fs["default"].existsSync(from))){_context3.next=5;break}throw new _index2["default"](8009,"".concat(from," or ").concat(dest," is not exist!"));case 5:this.appendInfo("\u6B63\u5728\u8907\u88FDing ".concat(from,"/* => ").concat(dest,"/* succeed"));_fsExtra["default"].copySync(from,dest,{preserveTimestamps:preserveTimestamps,override:override,filter:filter});this.appendInfo("\u8907\u88FD\u6210\u529F ".concat(from,"/* => ").concat(dest,"/* succeed"));case 8:case"end":return _context3.stop()}},_callee3,this)}));function copyFromFolderToDestFolder(_x3,_x4){return _copyFromFolderToDestFolder.apply(this,arguments)}return copyFromFolderToDestFolder}())},{key:"cleanAllFiles",value:function cleanAllFiles(dir){if(this.isDirectory(dir)){this.appendInfo("\u6E96\u5099\u6E05\u9664\u5E95\u4E0B\u7684\u6240\u6709 ".concat(dir));_fsExtra["default"].emptyDirSync(dir);this.appendInfo("\u6210\u529F\u6E05\u9664\u5E95\u4E0B\u7684\u6240\u6709 ".concat(dir))}}},{key:"deleteSelfByPath",value:(function(){var _deleteSelfByPath=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee4(path,force){return _regenerator["default"].wrap(function _callee4$(_context4){while(1)switch(_context4.prev=_context4.next){case 0:if(!_fs["default"].existsSync(path)){_context4.next=5;break}this.appendInfo("\u6E96\u5099\u522A\u6389 ".concat(path,",{force:").concat(force,"}"));_context4.next=4;return(0,_del["default"])(path,{force:force});case 4:this.appendInfo("\u6210\u529F\u522A\u6389\u4E86 ".concat(path));case 5:case"end":return _context4.stop()}},_callee4,this)}));function deleteSelfByPath(_x5,_x6){return _deleteSelfByPath.apply(this,arguments)}return deleteSelfByPath}())},{key:"deleteFileOrFolder",value:function(){var _deleteFileOrFolder=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee5(path){return _regenerator["default"].wrap(function _callee5$(_context5){while(1)switch(_context5.prev=_context5.next){case 0:this.appendInfo("\u522A\u6389\u4E86 ".concat(path));_context5.next=3;return(0,_del["default"])(path);case 3:case"end":return _context5.stop()}},_callee5,this)}));function deleteFileOrFolder(_x7){return _deleteFileOrFolder.apply(this,arguments)}return deleteFileOrFolder}()},{key:"deleteChildByPath",value:(function(){var _deleteChildByPath=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee6(path){var force,pathes,_iterator2,_step2,_path2,_args6=arguments;return _regenerator["default"].wrap(function _callee6$(_context6){while(1)switch(_context6.prev=_context6.next){case 0:force=_args6.length>1&&_args6[1]!==undefined?_args6[1]:false;pathes=this.getChildPathByPath(path);_iterator2=_createForOfIteratorHelper(pathes);_context6.prev=3;_iterator2.s();case 5:if((_step2=_iterator2.n()).done){_context6.next=11;break}_path2=_step2.value;_context6.next=9;return this.deleteSelfByPath(_path2.absolute,force);case 9:_context6.next=5;break;case 11:_context6.next=16;break;case 13:_context6.prev=13;_context6.t0=_context6["catch"](3);_iterator2.e(_context6.t0);case 16:_context6.prev=16;_iterator2.f();return _context6.finish(16);case 19:case"end":return _context6.stop()}},_callee6,this,[[3,13,16,19]])}));function deleteChildByPath(_x8){return _deleteChildByPath.apply(this,arguments)}return deleteChildByPath}())},{key:"getFileCountsOfFolder",value:function getFileCountsOfFolder(path){if(this.isDirectory(path)){return _fs["default"].readdirSync(path).length}return-1}},{key:"reinstallNodeModules",value:function(){var _reinstallNodeModules=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee7(){var path,_len4,exclude,_key4,ex,paths,_iterator3,_step3,_json,path_module_root,path_gen_node_module,path_lock_json,_iterator4,_step4,_json2,_path_module_root,_path_gen_node_module,_args7=arguments;return _regenerator["default"].wrap(function _callee7$(_context7){while(1)switch(_context7.prev=_context7.next){case 0:path=_args7.length>0&&_args7[0]!==undefined?_args7[0]:"../";for(_len4=_args7.length,exclude=new Array(_len4>1?_len4-1:0),_key4=1;_key4<_len4;_key4++){exclude[_key4-1]=_args7[_key4]}ex=[].concat(exclude,["node_modules","utiller","configerer"]);paths=this.findFilePathBy.apply(this,[path,function(each){return _lodash["default"].isEqual(each.fileNameExtension,"package.json")}].concat((0,_toConsumableArray2["default"])(ex)));_iterator3=_createForOfIteratorHelper(paths);_context7.prev=5;_iterator3.s();case 7:if((_step3=_iterator3.n()).done){_context7.next=20;break}_json=_step3.value;path_module_root=this.getFileDirPath(_json.absolute);path_gen_node_module="".concat(path_module_root,"node_modules");path_lock_json="".concat(path_module_root,"package-lock.json");_context7.next=14;return(0,_del["default"])(path_lock_json);case 14:this.appendInfo("\u522A\u6389\u4E86 ".concat(path_lock_json));_context7.next=17;return(0,_del["default"])(path_gen_node_module);case 17:this.appendInfo("\u522A\u6389\u4E86 ".concat(path_gen_node_module));case 18:_context7.next=7;break;case 20:_context7.next=25;break;case 22:_context7.prev=22;_context7.t0=_context7["catch"](5);_iterator3.e(_context7.t0);case 25:_context7.prev=25;_iterator3.f();return _context7.finish(25);case 28:_iterator4=_createForOfIteratorHelper(paths);_context7.prev=29;_iterator4.s();case 31:if((_step4=_iterator4.n()).done){_context7.next=40;break}_json2=_step4.value;_path_module_root=this.getFileDirPath(_json2.absolute);_path_gen_node_module="".concat(_path_module_root,"node_modules");if(_fs["default"].existsSync(_path_gen_node_module)){_context7.next=38;break}_context7.next=38;return this.executeCommandLine("cd ".concat(_path_module_root," && npm install"));case 38:_context7.next=31;break;case 40:_context7.next=45;break;case 42:_context7.prev=42;_context7.t1=_context7["catch"](29);_iterator4.e(_context7.t1);case 45:_context7.prev=45;_iterator4.f();return _context7.finish(45);case 48:case"end":return _context7.stop()}},_callee7,this,[[5,22,25,28],[29,42,45,48]])}));function reinstallNodeModules(){return _reinstallNodeModules.apply(this,arguments)}return reinstallNodeModules}()},{key:"getNamesOfFolderChild",value:function getNamesOfFolderChild(path){return this.getChildPathByPath(path).filter(function(p){return p.isDirectory}).map(function(p){return p.dirName})}},{key:"getChildPathByPath",value:function getChildPathByPath(_path){var _this3=this;try{var files=_fs["default"].readdirSync(_path);return files.map(function(file){return _this3.getPathInfo(_path4["default"].join(_path,file))})}catch(error){throw new _index2["default"](8002,error)}}},{key:"copySingleFile",value:function copySingleFile(from,dest,fileName){var force=arguments.length>3&&arguments[3]!==undefined?arguments[3]:false;var destination=fileName&&fileName.trim()?_path4["default"].join(dest,fileName):dest;if(_fs["default"].existsSync(destination)&&!force){throw new _index2["default"](8006,destination)}_fs["default"].copyFileSync(from,destination)}},{key:"ensureFolderExists",value:function ensureFolderExists(folderPath){var resolved=_path4["default"].resolve(folderPath);if(_fs["default"].existsSync(resolved))return;_fs["default"].mkdirSync(resolved,{recursive:true})}},{key:"getNodeEnvVariable",value:function getNodeEnvVariable(key){var defaultValue=arguments.length>1&&arguments[1]!==undefined?arguments[1]:undefined;var value=process.env[key];return value===undefined?defaultValue:value}},{key:"isDirectory",value:function isDirectory(path){if(!this.isPathExist(path))return false;return _fs["default"].lstatSync(path).isDirectory()}},{key:"isFile",value:function isFile(path){if(!this.isPathExist(path))return false;return _fs["default"].lstatSync(path).isFile()}},{key:"isImageFile",value:function isImageFile(file){return["svg","png","jpg","jpeg"].includes(file.extension)}},{key:"cleanChildFiles",value:(function(){var _cleanChildFiles=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee8(path){var _this4=this;var predicate,_len5,exclude,_key5,files,nonImages,_args8=arguments;return _regenerator["default"].wrap(function _callee8$(_context8){while(1)switch(_context8.prev=_context8.next){case 0:predicate=_args8.length>1&&_args8[1]!==undefined?_args8[1]:function(){return true};if(_fs["default"].existsSync(path)){_context8.next=3;break}return _context8.abrupt("return",false);case 3:for(_len5=_args8.length,exclude=new Array(_len5>2?_len5-2:0),_key5=2;_key5<_len5;_key5++){exclude[_key5-2]=_args8[_key5]}files=this.findFilePathBy.apply(this,[path,predicate].concat(exclude));nonImages=files.filter(function(file){return!_this4.isImageFile(file)});_context8.next=8;return Promise.allSettled(nonImages.map(function(file){_this4.cleanFileContent(file.absolute);_this4.appendInfo("\u6210\u529F cleanChildFiles() -> '".concat(file.path,"'"));return Promise.resolve()}));case 8:return _context8.abrupt("return",files);case 9:case"end":return _context8.stop()}},_callee8,this)}));function cleanChildFiles(_x9){return _cleanChildFiles.apply(this,arguments)}return cleanChildFiles}())},{key:"cleanFileContent",value:function cleanFileContent(path){this.syncDeleteFile(path)}},{key:"syncWithExistPackage",value:function(){var _syncWithExistPackage=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee9(){var path,paths,_iterator5,_step5,_path3,_args9=arguments;return _regenerator["default"].wrap(function _callee9$(_context9){while(1)switch(_context9.prev=_context9.next){case 0:path=_args9.length>0&&_args9[0]!==undefined?_args9[0]:"../";paths=this.findFilePathBy(path,function(each){return _lodash["default"].isEqual(each.fileNameExtension,"package.json")},"node_modules");_iterator5=_createForOfIteratorHelper(paths);try{for(_iterator5.s();!(_step5=_iterator5.n()).done;){_path3=_step5.value;try{if(!_lodash["default"].isEqual(_path3.dirName,".."))this.insertShellCommand(_configerer.configerer.BASE_SHELL_SCRIPT,"cd_".concat(_path3.dirName),"cd ".concat(this.getFolderPathOfSpecificPath(_path3.absolute)))}catch(error){this.appendInfo(error.message)}}}catch(err){_iterator5.e(err)}finally{_iterator5.f()}case 4:case"end":return _context9.stop()}},_callee9,this)}));function syncWithExistPackage(){return _syncWithExistPackage.apply(this,arguments)}return syncWithExistPackage}()},{key:"packageTemplatify",value:function(){var _packageTemplatify=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee0(path,packageName){var _this5=this;var existFolders,dirPath,packagejson,classBase,ideaWorkspacePath,workspace,splited,indexOfRunManager,indexOfList;return _regenerator["default"].wrap(function _callee0$(_context0){while(1)switch(_context0.prev=_context0.next){case 0:existFolders=this.getChildPathByPath(path).map(function(each){return each.absolute.split("/").pop()});if(!this.has(existFolders,packageName)){_context0.next=3;break}throw new _index2["default"](8004," packageName ===> '".concat(packageName,"'"));case 3:dirPath="".concat(path,"/").concat(packageName);_fs["default"].mkdirSync(dirPath);_fs["default"].copyFileSync("./template/sample.babel.config.js","".concat(dirPath,"/babel.config.js"));packagejson=this.getJsonObjByFilePath("./template/sample.package.json");packagejson["name"]=packageName;this.writeFileInJSON("".concat(dirPath,"/package.json"),packagejson);this.persistByPath("".concat(dirPath,"/src"));classBase=String.format(this.getFileContextInRaw("./template/sample.src.index.js"),packageName,"\u660E\u6085",new Date);_fs["default"].writeFileSync("".concat(dirPath,"/src/index.js"),classBase);ideaWorkspacePath="".concat(this.findSpecificFolderByPath(dirPath,".idea"),"/workspace.xml");this.insertShellCommand(_configerer.configerer.BASE_SHELL_SCRIPT,"cd_".concat(packageName),"cd ".concat(_path4["default"].resolve(dirPath)));if(_fs["default"].existsSync(ideaWorkspacePath)){workspace=this.getFileContextInRaw(ideaWorkspacePath);splited=workspace.split("\n");indexOfRunManager=_lodash["default"].findIndex(splited,function(line){return _this5.has(line,"name=\"RunManager")});this.insertToArray(splited,indexOfRunManager,"<configuration name=\"".concat(packageName,"\" \n type=\"NodeJSConfigurationType\" \n path-to-node=\"$USER_HOME$/.nvm/versions/node/v18.19.1/bin/node\" \n node-parameters=\"--require @babel/register\" \n path-to-js-file=\"").concat(_path4["default"].resolve(dirPath),"/src/index.js\" \n working-dir=\"").concat(_path4["default"].resolve(dirPath),"\" >")," <envs>"," <env name=\"self_debug\" value=\"true\" />"," <env name=\"is_node\" value=\"true\" />"," </envs>"," <method v=\"2\" />","</configuration>");indexOfList=_lodash["default"].findIndex(splited,function(line){return _lodash["default"].isEqual(_lodash["default"].trim(line),"<list>")},indexOfRunManager);this.insertToArray(splited,indexOfList," <item itemvalue=\"Node.js.".concat(packageName,"\" />"));_fs["default"].writeFileSync(ideaWorkspacePath,splited.join("\n"))}else{this.appendError("".concat(ideaWorkspacePath," not exist"))}_context0.next=17;return this.executeCommandLine("cd ".concat(_path4["default"].resolve(dirPath)," && npm install"));case 17:this.appendInfo("build ".concat(packageName," succeed!"));case 18:case"end":return _context0.stop()}},_callee0,this)}));function packageTemplatify(_x0,_x1){return _packageTemplatify.apply(this,arguments)}return packageTemplatify}()},{key:"appendInfo",value:function appendInfo(){for(var _len6=arguments.length,messages=new Array(_len6),_key6=0;_key6<_len6;_key6++){messages[_key6]=arguments[_key6]}return this.appendLog(_configerer.configerer.PATH_INFO_LOG,messages,false)}},{key:"appendError",value:function appendError(){for(var _len7=arguments.length,messages=new Array(_len7),_key7=0;_key7<_len7;_key7++){messages[_key7]=arguments[_key7]}return this.appendLog(_configerer.configerer.PATH_ERROR_LOG,messages,true)}},{key:"appendLog",value:function appendLog(path,messages){var isError=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;var msg="".concat(this.getCurrentTimeFormat()," ").concat(isError?"ERROR":"LOG"," : ").concat(messages.map(this.stringifyLog).join(" ,"));if(!this.isProductionEnvironment()){var _console,_console2;isError?(_console=console).error.apply(_console,(0,_toConsumableArray2["default"])(messages)):(_console2=console).log.apply(_console2,(0,_toConsumableArray2["default"])(messages))}if(this.isPersistIntoLogFile){this.appendFile(path,msg)}}},{key:"stringifyLog",value:function stringifyLog(data){return(0,_typeof2["default"])(data)==="object"?JSON.stringify(data):String(data)}},{key:"appendFile",value:function appendFile(filePath,data){var newline=arguments.length>2&&arguments[2]!==undefined?arguments[2]:true;var forceDelete=arguments.length>3&&arguments[3]!==undefined?arguments[3]:false;try{var resolvedPath=_path4["default"].resolve(filePath);if(forceDelete&&_fs["default"].existsSync(resolvedPath))_fs["default"].unlinkSync(resolvedPath);if(!_fs["default"].existsSync(resolvedPath))this.persistByPath(resolvedPath);var content="".concat(newline?"\n":"").concat(data);_fs["default"].appendFileSync(resolvedPath,content)}catch(err){throw new _index2["default"](8001,err)}}},{key:"disableLogMessagePersistent",value:function disableLogMessagePersistent(){this.isPersistIntoLogFile=false}},{key:"getLogString",value:function getLogString(datas){var _this6=this;return datas.map(function(data){return _this6.isJson(data)||_lodash["default"].isObject(data)||_lodash["default"].isArray(data)?_this6.deepFlat(data):data}).join(" ,")}},{key:"persistJsonFilePrettier",value:(function(){var _persistJsonFilePrettier=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee1(path,object){var ignoreP,_args1=arguments;return _regenerator["default"].wrap(function _callee1$(_context1){while(1)switch(_context1.prev=_context1.next){case 0:ignoreP=_args1.length>2&&_args1[2]!==undefined?_args1[2]:false;path=_path4["default"].resolve(path);this.appendFile(path,JSON.stringify(object),true,true);if(ignoreP){_context1.next=6;break}_context1.next=6;return this.prettier(path,120);case 6:case"end":return _context1.stop()}},_callee1,this)}));function persistJsonFilePrettier(_x10,_x11){return _persistJsonFilePrettier.apply(this,arguments)}return persistJsonFilePrettier}())},{key:"printCollectionToFile",value:function printCollectionToFile(collection){var fileName="./logs/__temp_".concat(this.getCurrentTimeFormat(),".txt");this.persistByPath("./logs/");this.appendFile(fileName,this.deepFlat(collection," \n\n, "));this.appendInfo("collectionToFile succeed, file name ==> ".concat(fileName))}},{key:"readFileContentByPath",value:(function(){var _readFileContentByPath=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee10(path){var _cache$path;var cache,_args10=arguments;return _regenerator["default"].wrap(function _callee10$(_context10){while(1)switch(_context10.prev=_context10.next){case 0:cache=_args10.length>1&&_args10[1]!==undefined?_args10[1]:{};if(!((_cache$path=cache[path])!==null&&_cache$path!==void 0)){_context10.next=5;break}_context10.t0=_cache$path;_context10.next=8;break;case 5:_context10.next=7;return _promises["default"].readFile(path,"utf-8");case 7:_context10.t0=cache[path]=_context10.sent;case 8:return _context10.abrupt("return",_context10.t0);case 9:case"end":return _context10.stop()}},_callee10)}));function readFileContentByPath(_x12){return _readFileContentByPath.apply(this,arguments)}return readFileContentByPath}())},{key:"singleFileTemplatify",value:function singleFileTemplatify(){var path=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"./";var all=this.findFilePathByExtension(path,["js"],"node_modules");var _iterator6=_createForOfIteratorHelper(all),_step6;try{for(_iterator6.s();!(_step6=_iterator6.n()).done;){var file=_step6.value;var content=this.getFileContextInRaw(file.absolute).trim();if(_lodash["default"].isEmpty(content)){this.appendInfo(file.fileName,file.absolute);var className=_lodash["default"].isEqual(file.fileName,"index")?file.dirName:file.fileName;_fs["default"].writeFileSync(file.absolute,String.format(this.getFileContextInRaw(".\n /template/s\n ample.src.index.js"),className,"\u660E\u6085",new Date))}}}catch(err){_iterator6.e(err)}finally{_iterator6.f()}}},{key:"isFileEmpty",value:function isFileEmpty(path){var content=this.getFileContextInRaw(path);return!content||!content.trim()}},{key:"copySingleFileConservative",value:function copySingleFileConservative(destPath,latestFile){var absolute=latestFile.absolute,lastModifiedTime=latestFile.lastModifiedTime;if(!this.isPathExist(absolute)||this.isFileEmpty(absolute)){this.appendInfo("".concat(absolute," is empty file, ignore copy behavior"));return}var destExists=_fs["default"].existsSync(destPath);if(destExists&&this.getFileLastModifiedTime(destPath)>lastModifiedTime){this.appendInfo("".concat(destPath," is the latest, ignore this run"));return}if(!destExists){this.appendInfo("".concat(destPath," does not exist, safe to copy."))}this.ensureFolderExists(_path4["default"].dirname(destPath));this.copySingleFile(absolute,destPath,undefined,true)}},{key:"syncDeleteFile",value:function syncDeleteFile(path){if(_fs["default"].existsSync(path))_fs["default"].unlinkSync(path)}},{key:"getFileContextInJSON",value:function getFileContextInJSON(path){try{if(_fs["default"].existsSync(path)){return JSON.parse(_fs["default"].readFileSync(path,"utf-8"))}}catch(error){throw new _index2["default"](9999,error.message)}return{}}},{key:"getFileContextInRaw",value:function getFileContextInRaw(path){if(!_fs["default"].existsSync(path))return"";return _fs["default"].readFileSync(path,"utf-8")}},{key:"writeFileInJSON",value:function writeFileInJSON(path,param){var data=JSON.stringify(param,null,2);_fs["default"].writeFileSync(path,data)}},{key:"generatePackage",value:(function(){var _generatePackage=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee11(){var _this7=this;var path,deployToNPMServer,forceInstallNodeModule,packagejsons,_len8,exclude,_key8,_iterator7,_step7,_loop,_args12=arguments;return _regenerator["default"].wrap(function _callee11$(_context12){while(1)switch(_context12.prev=_context12.next){case 0:path=_args12.length>0&&_args12[0]!==undefined?_args12[0]:"./";deployToNPMServer=_args12.length>1&&_args12[1]!==undefined?_args12[1]:false;forceInstallNodeModule=_args12.length>2&&_args12[2]!==undefined?_args12[2]:true;packagejsons=this.findFilePathByExtension(path,["json"],"node_modules","release");packagejsons=_lodash["default"].filter(packagejsons,function(each){return _lodash["default"].isEqual(each.fileName,"package")});packagejsons=packagejsons.map(function(each){return _this7.getFolderPathOfSpecificPath(each.absolute)});for(_len8=_args12.length,exclude=new Array(_len8>3?_len8-3:0),_key8=3;_key8<_len8;_key8++){exclude[_key8-3]=_args12[_key8]}_iterator7=_createForOfIteratorHelper(packagejsons);_context12.prev=8;_loop=_regenerator["default"].mark(function _loop(){var path,tempFolderPath,release,pathOfPackageJson,indexFileName,templatePath,_yield$_this7$upgrade,moduleName,version;return _regenerator["default"].wrap(function _loop$(_context11){while(1)switch(_context11.prev=_context11.next){case 0:path=_step7.value;if(!_this7.isAndEquals.apply(_this7,(0,_toConsumableArray2["default"])(exclude.map(function(projectName){return function(){return!_this7.has(path,projectName)}})))){_context11.next=46;break}_context11.next=4;return _this7.generateTempFolderWithCleanSrc(path);case 4:tempFolderPath=_context11.sent;release=_this7.persistByPath(_path4["default"].join(path,"release"));_context11.next=8;return _this7.executeCommandLine("cd ".concat(path," && babel ./temp --out-dir ./release/lib --config-file ./babel.config.js"));case 8:pathOfPackageJson=_path4["default"].join(path,"package.json");_context11.prev=9;indexFileName="sample.npm.module.index.js";_this7.copySingleFile("/Users/davidtu/cross-achieve/high/idea-inventer/utiller/template/".concat(indexFileName),release,"index.js",true);templatePath=_path4["default"].join(path,"template");if(!_this7.isPathExist(templatePath)){_context11.next=16;break}_context11.next=16;return _this7.copyFromFolderToDestFolder(templatePath,_this7.persistByPath(_path4["default"].join(release,"template")));case 16:if(!deployToNPMServer){_context11.next=24;break}_context11.next=19;return _this7.upgradePackageJsonVersion(pathOfPackageJson);case 19:_yield$_this7$upgrade=_context11.sent;moduleName=_yield$_this7$upgrade.moduleName;version=_yield$_this7$upgrade.version;_context11.next=24;return _this7.updateVersionOfTemplate(moduleName,version);case 24:_this7.copySingleFile(pathOfPackageJson,_path4["default"].join(release,"package.json"),undefined,true);if(!(forceInstallNodeModule||!_this7.isPathExist(_path4["default"].join(release,"node_module")))){_context11.next=30;break}_context11.next=28;return _this7.executeCommandLine("cd ".concat(release," && yarn install --production"));case 28:_context11.next=31;break;case 30:_this7.appendInfo("ignore node-module install behavior");case 31:_this7.appendInfo("build ".concat(path," succeed"));if(!deployToNPMServer){_context11.next=35;break}_context11.next=35;return _this7.executeCommandLine("cd ".concat(release," && npm publish"));case 35:_context11.next=42;break;case 37:_context11.prev=37;_context11.t0=_context11["catch"](9);_context11.next=41;return _this7.deleteSelfByPath(release,true);case 41:throw new _index2["default"](9999,"generatePackage \u5831\u932F, ".concat(_context11.t0.message));case 42:_context11.prev=42;_context11.next=45;return _this7.deleteSelfByPath(tempFolderPath,true);case 45:return _context11.finish(42);case 46:case"end":return _context11.stop()}},_loop,null,[[9,37,42,46]])});_iterator7.s();case 11:if((_step7=_iterator7.n()).done){_context12.next=15;break}return _context12.delegateYield(_loop(),"t0",13);case 13:_context12.next=11;break;case 15:_context12.next=20;break;case 17:_context12.prev=17;_context12.t1=_context12["catch"](8);_iterator7.e(_context12.t1);case 20:_context12.prev=20;_iterator7.f();return _context12.finish(20);case 23:case"end":return _context12.stop()}},_callee11,this,[[8,17,20,23]])}));function generatePackage(){return _generatePackage.apply(this,arguments)}return generatePackage}())},{key:"updateVersionOfTemplate",value:(function(){var _updateVersionOfTemplate=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee12(dependency,newVersion){var paths,_i,_paths,path,succeedOfPersistFile,json;return _regenerator["default"].wrap(function _callee12$(_context13){while(1)switch(_context13.prev=_context13.next){case 0:paths=["/Users/davidtu/cross-achieve/high/idea-inventer/free_marker/template/admin.package.json.mustache","/Users/davidtu/cross-achieve/high/idea-inventer/free_marker/template/web.package.json.mustache","/Users/davidtu/cross-achieve/high/idea-inventer/free_marker/template/functions.package.json.mustache","/Users/davidtu/cross-achieve/high/idea-inventer/utiller/template/sample.package.json","/Users/davidtu/cross-achieve/high/idea-inventer/free_marker/package.json"];_i=0,_paths=paths;case 2:if(!(_i<_paths.length)){_context13.next=24;break}path=_paths[_i];if(!this.isPathExist(path)){_context13.next=21;break}succeedOfPersistFile=false;json=this.getJsonObjByFilePath(path);if(!(json&&json.dependencies&&json.dependencies[dependency])){_context13.next=18;break}json.dependencies[dependency]="^".concat(newVersion);_context13.prev=9;_context13.next=12;return this.writeJsonThanPrettier(path,json);case 12:succeedOfPersistFile=true;_context13.next=18;break;case 15:_context13.prev=15;_context13.t0=_context13["catch"](9);succeedOfPersistFile=true;case 18:if(succeedOfPersistFile){_context13.next=21;break}_context13.next=21;return this.updateFileOfSpecificLine(path,function(line){return" \"".concat(dependency,"\":\"^").concat(newVersion,"\"").concat(_lodash["default"].endsWith(_lodash["default"].trim(line),",")?",":"")},function(each){return _lodash["default"].startsWith(_lodash["default"].trim(each),"\"".concat(dependency,"\""))});case 21:_i++;_context13.next=2;break;case 24:_context13.next=26;return this.copyFromFolderToDestFolder("/Users/davidtu/cross-achieve/high/idea-inventer/utiller/template/","/Users/davidtu/cross-achieve/high/idea-inventer/newp/template/",true,true);case 26:case"end":return _context13.stop()}},_callee12,this,[[9,15]])}));function updateVersionOfTemplate(_x13,_x14){return _updateVersionOfTemplate.apply(this,arguments)}return updateVersionOfTemplate}())},{key:"updateFileOfSpecificLine",value:(function(){var _updateFileOfSpecificLine=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee13(pathOfFile){var contentOfUpdated,predicate,context,lines,index,_args14=arguments;return _regenerator["default"].wrap(function _callee13$(_context14){while(1)switch(_context14.prev=_context14.next){case 0:contentOfUpdated=_args14.length>1&&_args14[1]!==undefined?_args14[1]:function(line){return"updated"};predicate=_args14.length>2&&_args14[2]!==undefined?_args14[2]:function(line){return true};context=this.getFileContextInRaw(pathOfFile);lines=context.split("\n");index=lines.findIndex(predicate);if(!(index===-1)){_context14.next=7;break}return _context14.abrupt("return");case 7:lines[index]=contentOfUpdated(lines[index]);this.appendFile(pathOfFile,lines.join("\n"),true,true);_context14.next=11;return this.prettier(pathOfFile);case 11:case"end":return _context14.stop()}},_callee13,this)}));function updateFileOfSpecificLine(_x15){return _updateFileOfSpecificLine.apply(this,arguments)}return updateFileOfSpecificLine}())},{key:"writeJsonThanPrettier",value:function(){var _writeJsonThanPrettier=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee14(path,json){return _regenerator["default"].wrap(function _callee14$(_context15){while(1)switch(_context15.prev=_context15.next){case 0:this.writeFileInJSON(path,json);_context15.next=3;return this.prettier(path);case 3:case"end":return _context15.stop()}},_callee14,this)}));function writeJsonThanPrettier(_x16,_x17){return _writeJsonThanPrettier.apply(this,arguments)}return writeJsonThanPrettier}()},{key:"enrichEachPackageJson",value:(function(){var _enrichEachPackageJson=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee15(rootPath){var validNames,jsonFiles,packageFiles,_iterator8,_step8,absolute,json;return _regenerator["default"].wrap(function _callee15$(_context16){while(1)switch(_context16.prev=_context16.next){case 0:validNames=new Set(["package","admin.package","web.package","functions.package"]);jsonFiles=this.findFilePathByExtension(rootPath,["json"],"gen","node_modules","release");packageFiles=jsonFiles.filter(function(file){return validNames.has(file.fileName)});if(!(packageFiles.length===0)){_context16.next=5;break}return _context16.abrupt("return");case 5:_iterator8=_createForOfIteratorHelper(packageFiles);_context16.prev=6;_iterator8.s();case 8:if((_step8=_iterator8.n()).done){_context16.next=17;break}absolute=_step8.value.absolute;json=this.getJsonObjByFilePath(absolute);json.scripts||(json.scripts={});json.scripts.updateConfigerer="npm update configerer --save";_context16.next=15;return this.writeJsonThanPrettier(absolute,json);case 15:_context16.next=8;break;case 17:_context16.next=22;break;case 19:_context16.prev=19;_context16.t0=_context16["catch"](6);_iterator8.e(_context16.t0);case 22:_context16.prev=22;_iterator8.f();return _context16.finish(22);case 25:case"end":return _context16.stop()}},_callee15,this,[[6,19,22,25]])}));function enrichEachPackageJson(_x18){return _enrichEachPackageJson.apply(this,arguments)}return enrichEachPackageJson}())},{key:"insertShellCommand",value:function insertShellCommand(){var shellPath=arguments.length>0&&arguments[0]!==undefined?arguments[0]:_configerer.configerer.BASE_SHELL_SCRIPT;var alias=arguments.length>1?arguments[1]:undefined;var command=arguments.length>2?arguments[2]:undefined;if(this.isStringContainInLines(this.getFileContextInRaw(shellPath),alias)){throw new _index2["default"](8007,"alias ".concat(alias," is exist"))}else{var line="alias ".concat(alias,"='").concat(command,"'");this.appendFile(shellPath,line)}}},{key:"getAdminCredential",value:function getAdminCredential(){return this.getJsonObjByFilePath("/Users/davidtu/cross-achieve/mimi/idea-inventer/firebaser/key/mimi19up-firebase-adminsdk.json")}},{key:"isEmptyFile",value:function isEmptyFile(path){return!this.isPathExist(path)||_lodash["default"].isEmpty(this.getFileContextInRaw(path).trim())}},{key:"isEmptyFolder",value:function isEmptyFolder(path){return _fs["default"].readdirSync(path).length===0}},{key:"prettier",value:(function(){var _prettier=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee16(path){var width,_args17=arguments;return _regenerator["default"].wrap(function _callee16$(_context17){while(1)switch(_context17.prev=_context17.next){case 0:width=_args17.length>1&&_args17[1]!==undefined?_args17[1]:200;_context17.next=3;return this.executeCommandLine("cd ".concat(_path4["default"].resolve(".")," && npx prettier --write ").concat(_path4["default"].resolve(path)," --print-width ").concat(width));case 3:case"end":return _context17.stop()}},_callee16,this)}));function prettier(_x19){return _prettier.apply(this,arguments)}return prettier}())},{key:"getFileLastModifiedTime",value:function getFileLastModifiedTime(path){return _fs["default"].statSync(path).mtimeMs}},{key:"getJsonObjByFilePath",value:function getJsonObjByFilePath(path){this.appendInfo("ready to json path:".concat(path));return JSON.parse(this.getFileContextInRaw(path))}},{key:"upgradePackageJsonVersion",value:(function(){var _upgradePackageJsonVersion=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee17(path){var json;return _regenerator["default"].wrap(function _callee17$(_context18){while(1)switch(_context18.prev=_context18.next){case 0:if(!_lodash["default"].isEqual("json",this.getPathInfo(path).extension)){_context18.next=8;break}json=this.getJsonObjByFilePath(path);json.version=this.getStringOfVersionIncrement(json.version);_context18.next=5;return this.writeJsonThanPrettier(path,json);case 5:return _context18.abrupt("return",{version:json.version,moduleName:json.name});case 8:throw new _index2["default"](8020,"path is not package.json, which is ".concat(path));case 9:case"end":return _context18.stop()}},_callee17,this)}));function upgradePackageJsonVersion(_x20){return _upgradePackageJsonVersion.apply(this,arguments)}return upgradePackageJsonVersion}())},{key:"reWriteJsonAttribute",value:(function(){var _reWriteJsonAttribute=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee18(filePath){var _this$getPathInfo,extension,_len9,attrs,_key9,invalidAttr,json,_i2,_attrs,attr,_args19=arguments;return _regenerator["default"].wrap(function _callee18$(_context19){while(1)switch(_context19.prev=_context19.next){case 0:_this$getPathInfo=this.getPathInfo(filePath),extension=_this$getPathInfo.extension;if(!(extension!=="json")){_context19.next=3;break}throw new _index2["default"](9999,"reWriteJsonAttribute() => path is not package.json, which is ".concat(filePath));case 3:for(_len9=_args19.length,attrs=new Array(_len9>1?_len9-1:0),_key9=1;_key9<_len9;_key9++){attrs[_key9-1]=_args19[_key9]}invalidAttr=attrs.find(function(attr){return(0,_typeof2["default"])(attr)!=="object"||attr===null});if(!invalidAttr){_context19.next=7;break}throw new _index2["default"](9999,"84451515 attr is not object, which is 'type=".concat((0,_typeof2["default"])(invalidAttr)," => ").concat(invalidAttr,"'"));case 7:json=this.getJsonObjByFilePath(filePath);for(_i2=0,_attrs=attrs;_i2<_attrs.length;_i2++){attr=_attrs[_i2];json[this.getObjectKey(attr)]=this.getObjectValue(attr)}_context19.next=11;return this.writeJsonThanPrettier(filePath,json);case 11:return _context19.abrupt("return",{version:json.version,moduleName:json.name});case 12:case"end":return _context19.stop()}},_callee18,this)}));function reWriteJsonAttribute(_x21){return _reWriteJsonAttribute.apply(this,arguments)}return reWriteJsonAttribute}())},{key:"getVersionOfPackageJson",value:function getVersionOfPackageJson(path){return this.getAttributeValueOfJson(path,"version","1.0.0")}},{key:"getAttributeValueOfJson",value:function getAttributeValueOfJson(path,key){var defaultValue=arguments.length>2&&arguments[2]!==undefined?arguments[2]:undefined;if(_lodash["default"].isEqual("json",this.getPathInfo(path).extension)){var _json$key;var json=this.getJsonObjByFilePath(path);return(_json$key=json[key])!==null&&_json$key!==void 0?_json$key:defaultValue}else{throw new _index2["default"](8020,"path is not package.json, which is ".concat(path))}}},{key:"getVersionOfJsFile",value:function getVersionOfJsFile(path){return this.getAttributeValueOfJsFile(path,"version","project without version notice")}},{key:"getAttributeValueOfJsFile",value:function getAttributeValueOfJsFile(path,key){var defaultValue=arguments.length>2&&arguments[2]!==undefined?arguments[2]:undefined;if(_lodash["default"].isEqual(this.getExtensionFromPath(path),"js")){var _source$key;var source=require(_path4["default"].resolve(path))["default"];return(_source$key=source[key])!==null&&_source$key!==void 0?_source$key:defaultValue}else{throw new _index2["default"](8020,"path is not js file, which is ".concat(path))}}},{key:"rewriteAttributeOfSourceJs",value:(function(){var _rewriteAttributeOfSourceJs=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee19(path){var _this8=this;var _len0,attrs,_key0,_loop2,_i3,_attrs2,_args21=arguments;return _regenerator["default"].wrap(function _callee19$(_context21){while(1)switch(_context21.prev=_context21.next){case 0:if(this.isPathExist(path)){_context21.next=2;break}throw new _index2["default"](9999,"4849813 ".concat(path," is not exist"));case 2:for(_len0=_args21.length,attrs=new Array(_len0>1?_len0-1:0),_key0=1;_key0<_len0;_key0++){attrs[_key0-1]=_args21[_key0]}_loop2=_regenerator["default"].mark(function _loop2(){var attr,key,value,contents,index;return _regenerator["default"].wrap(function _loop2$(_context20){while(1)switch(_context20.prev=_context20.next){case 0:attr=_attrs2[_i3];if(_lodash["default"].isObject(attr)){_context20.next=3;break}throw new _index2["default"](9999,"4984651 attr is not object, which is 'type=".concat((0,_typeof2["default"])(attr)," => ").concat(attr,"'"));case 3:key=_this8.getObjectKey(attr);value=_this8.getObjectValue(attr);contents=_this8.getFileContextInRaw(path).split("\n");index=_lodash["default"].findIndex(contents,function(each){return _lodash["default"].startsWith(_lodash["default"].trim(each),"".concat(key))});contents[index]=" ".concat(key,": '").concat(value,"',");_this8.appendFile(path,contents.join("\n"),true,true);case 9:case"end":return _context20.stop()}},_loop2)});_i3=0,_attrs2=attrs;case 5:if(!(_i3<_attrs2.length)){_context21.next=10;break}return _context21.delegateYield(_loop2(),"t0",7);case 7:_i3++;_context21.next=5;break;case 10:return _context21.abrupt("return",attrs);case 11:case"end":return _context21.stop()}},_callee19,this)}));function rewriteAttributeOfSourceJs(_x22){return _rewriteAttributeOfSourceJs.apply(this,arguments)}return rewriteAttributeOfSourceJs}())},{key:"getAnswerFromPromptQ",value:function(){var _getAnswerFromPromptQ=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee20(){var configs,_args22=arguments;return _regenerator["default"].wrap(function _callee20$(_context22){while(1)switch(_context22.prev=_context22.next){case 0:configs=_args22.length>0&&_args22[0]!==undefined?_args22[0]:[{name:"name",require:true,description:"type the name"}];_prompt["default"].start();_context22.next=4;return _prompt["default"].get(configs);case 4:return _context22.abrupt("return",_context22.sent);case 5:case"end":return _context22.stop()}},_callee20)}));function getAnswerFromPromptQ(){return _getAnswerFromPromptQ.apply(this,arguments)}return getAnswerFromPromptQ}()},{key:"getObjectFromPromptQ",value:(function(){var _getObjectFromPromptQ=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee21(){var _len1,configs,_key1,_args23=arguments;return _regenerator["default"].wrap(function _callee21$(_context23){while(1)switch(_context23.prev=_context23.next){case 0:_prompt["default"].start();for(_len1=_args23.length,configs=new Array(_len1),_key1=0;_key1<_len1;_key1++){configs[_key1]=_args23[_key1]}_context23.next=4;return _prompt["default"].get(configs);case 4:return _context23.abrupt("return",_context23.sent);case 5:case"end":return _context23.stop()}},_callee21)}));function getObjectFromPromptQ(){return _getObjectFromPromptQ.apply(this,arguments)}return getObjectFromPromptQ}())},{key:"generateTempFolderWithCleanSrc",value:(function(){var _generateTempFolderWithCleanSrc=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee22(basePath){var sourceFile,tempFolderPath,filePaths,_iterator9,_step9,tempFilePath,rawLines,trimmedLines,start,end,updatedContent;return _regenerator["default"].wrap(function _callee22$(_context24){while(1)switch(_context24.prev=_context24.next){case 0:this.appendInfo("generateTempFolderWithCleanSrc",basePath);sourceFile=_path4["default"].join(basePath,"src");tempFolderPath=_path4["default"].join(basePath,"temp");if(_fs["default"].existsSync(sourceFile)){_context24.next=5;break}return _context24.abrupt("return",tempFolderPath);case 5:this.appendInfo("generateTempFolderWithCleanSrc","source",sourceFile);this.persistByPath(tempFolderPath);_context24.next=9;return this.copyFromFolderToDestFolder(sourceFile,tempFolderPath);case 9:filePaths=this.findFilePathBy(tempFolderPath);_iterator9=_createForOfIteratorHelper(filePaths);_context24.prev=11;_iterator9.s();case 13:if((_step9=_iterator9.n()).done){_context24.next=27;break}tempFilePath=_step9.value.absolute;rawLines=this.getFileContextInRaw(tempFilePath).split("\n");trimmedLines=rawLines.map(function(line){return line.trim()});start=trimmedLines.findIndex(function(line){return line.startsWith("if (configerer.DEBUG_MODE)")});end=trimmedLines.lastIndexOf("}");if(!(start>=0&&end>start)){_context24.next=25;break}rawLines.splice(start,end-start+1);updatedContent=rawLines.join("\n");this.appendFile(tempFilePath,updatedContent,true,true);_context24.next=25;return this.executeCommandLine("cd ".concat(_path4["default"].dirname(tempFilePath)," && npx prettier --write \"").concat(tempFilePath,"\""));case 25:_context24.next=13;break;case 27:_context24.next=32;break;case 29:_context24.prev=29;_context24.t0=_context24["catch"](11);_iterator9.e(_context24.t0);case 32:_context24.prev=32;_iterator9.f();return _context24.finish(32);case 35:return _context24.abrupt("return",tempFolderPath);case 36:case"end":return _context24.stop()}},_callee22,this,[[11,29,32,35]])}));function generateTempFolderWithCleanSrc(_x23){return _generateTempFolderWithCleanSrc.apply(this,arguments)}return generateTempFolderWithCleanSrc}())},{key:"rewriteFile2File",value:function rewriteFile2File(from,to){var content=this.getFileContextInRaw(from);if(!content.trim())throw new _index2["default"](9999,"".concat(from," \u70BA\u7A7A\uFF0C\u907F\u514D\u8986\u84CB"));this.appendFile(to,content,true,true);this.appendInfo("rewrite from:".concat(from," => to:").concat(to," \u6210\u529F"))}},{key:"getStringOfHeadOfFile",value:function getStringOfHeadOfFile(path){if(this.isPathExist(path)){var context=this.getFileContextInRaw(path);return _lodash["default"].head(context.split("\n"))}return""}},{key:"isFileEditSucceed",value:function isFileEditSucceed(filePath){if(!this.isPathExist(filePath))return false;var file=this.getPathInfo(filePath);var context=this.getFileContextInRaw(filePath).trim();if(context===""){this.appendInfo("74985465 path ".concat(file.path," is empty file, file would not persist"));return false}try{var firstLine=context.split("\n")[0];var match=firstLine.match(/const\s+([a-zA-Z_]\w*)\s*=\s*(true|false)\s*;?/);if(!match||_lodash["default"].size(match)<3)return false;var editValue=match[2]==="true";if(editValue===true){return true}}catch(error){this.appendError("66445411 ".concat(error.message));return false}return false}},{key:"joinRespectingDot",value:function joinRespectingDot(){var _args$,_args$2;for(var _len10=arguments.length,args=new Array(_len10),_key10=0;_key10<_len10;_key10++){args[_key10]=arguments[_key10]}var shouldHaveDotSlash=(_args$=args[0])===null||_args$===void 0?void 0:_args$.startsWith("./");var cleanArgs=(_args$2=args[0])!==null&&_args$2!==void 0&&_args$2.startsWith("./")?[args[0].slice(2)].concat((0,_toConsumableArray2["default"])(args.slice(1))):args;var joined=_path4["default"].join.apply(_path4["default"],(0,_toConsumableArray2["default"])(cleanArgs));return shouldHaveDotSlash&&!_path4["default"].isAbsolute(joined)?"./".concat(joined):joined}}])}(_index["default"]);var _default=exports["default"]=NodeUtiller;
|
package/package.json
CHANGED
|
@@ -1,21 +1,18 @@
|
|
|
1
1
|
module.exports = {
|
|
2
2
|
presets: [
|
|
3
|
-
"@babel/preset-env",
|
|
3
|
+
["@babel/preset-env", {
|
|
4
|
+
targets: {
|
|
5
|
+
node: "20" // 對應你 package.json 的 node 版本
|
|
6
|
+
}
|
|
7
|
+
}],
|
|
4
8
|
"@babel/preset-react"
|
|
5
9
|
],
|
|
6
10
|
plugins: [
|
|
7
|
-
[
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
"legacy": true
|
|
11
|
-
}
|
|
12
|
-
],
|
|
13
|
-
["@babel/transform-runtime", {
|
|
14
|
-
"regenerator": true
|
|
15
|
-
}],
|
|
16
|
-
["@babel/plugin-transform-class-properties"]
|
|
11
|
+
["@babel/plugin-proposal-decorators", { "legacy": true }],
|
|
12
|
+
["@babel/plugin-transform-runtime", { "regenerator": true }],
|
|
13
|
+
"@babel/plugin-transform-class-properties"
|
|
17
14
|
],
|
|
18
15
|
comments: false,
|
|
19
16
|
minified: true,
|
|
20
|
-
compact: true
|
|
17
|
+
compact: true
|
|
21
18
|
};
|