diff --git a/build/config/config.js b/build/config/config.js new file mode 100644 index 0000000..5968332 --- /dev/null +++ b/build/config/config.js @@ -0,0 +1,15 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const fs_1 = require("fs"); +const j_config = JSON.parse((0, fs_1.readFileSync)("./config-etl-tat.json").toString()); +const config = { + base_url: j_config["base_url"], + schedule: j_config["schedule"], + delay: j_config["delay"], + row_per_batch: j_config["row_per_batch"], + // kode, date, target + // kode: j_config["kode"], + // date: j_config["date"], + // target: j_config["target"] +}; +exports.default = config; diff --git a/build/config/logging.js b/build/config/logging.js new file mode 100644 index 0000000..3334881 --- /dev/null +++ b/build/config/logging.js @@ -0,0 +1,41 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const moment_1 = __importDefault(require("moment")); +const getTimeStamp = () => { + const dt = (0, moment_1.default)().format("yyyy-MM-DD HH:mm:ss"); + return dt; +}; +const info = (namespace, message, object) => { + if (object) { + console.log(`[${getTimeStamp()}] [INFO] [${namespace}] [${message}]`, object); + } + else { + console.log(`[${getTimeStamp()}] [INFO] [${namespace}] [${message}]`); + } +}; +const warning = (namespace, message, object) => { + if (object) { + console.log(`[${getTimeStamp()}] [WARNING] [${namespace}] [${message}]`, object); + } + else { + console.log(`[${getTimeStamp()}] [WARNING] [${namespace}] [${message}]`); + } +}; +const error = (namespace, message, object) => { + if (object) { + console.log(`[${getTimeStamp()}] [ERROR] [${namespace}] [${message}]`, object); + } + else { + console.log(`[${getTimeStamp()}] [ERROR] [${namespace}] [${message}]`); + } +}; +const delay = (time) => new Promise((res) => setTimeout(res, time)); +exports.default = { + info, + warning, + error, + delay, +}; diff --git a/build/interfaces.js b/build/interfaces.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/build/interfaces.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/build/lib_052_000.js b/build/lib_052_000.js new file mode 100644 index 0000000..a26a33d --- /dev/null +++ b/build/lib_052_000.js @@ -0,0 +1,31 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.rpt_052_000 = void 0; +const axios_1 = __importDefault(require("axios")); +const config_1 = __importDefault(require("./config/config")); +const logging_1 = __importDefault(require("./config/logging")); +const server_1 = require("./server"); +const rpt_052_000 = async (kode, date, target) => { + // etl/Tat/proses_etl/000/2021-06-12/0 + const url_patient = config_1.default.base_url + "etl/Tat/proses_etl/" + kode + "/" + date + "/" + target; + logging_1.default.info(server_1.NAME_SPACE, "Info : " + url_patient); + try { + const resp = await axios_1.default.get(url_patient, { + responseType: "arraybuffer", + }); + const jresp = JSON.parse(resp.data.toString()); + return jresp; + } + catch (e) { + if (axios_1.default.isAxiosError(e)) { + logging_1.default.error(server_1.NAME_SPACE, e.response?.data.toString()); + } + else if (e instanceof Error) { + logging_1.default.error(server_1.NAME_SPACE, e.message); + } + } +}; +exports.rpt_052_000 = rpt_052_000; diff --git a/build/lib_order.js b/build/lib_order.js new file mode 100644 index 0000000..feeb642 --- /dev/null +++ b/build/lib_order.js @@ -0,0 +1,30 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.get_order = void 0; +const axios_1 = __importDefault(require("axios")); +const config_1 = __importDefault(require("./config/config")); +const logging_1 = __importDefault(require("./config/logging")); +const server_1 = require("./server"); +const get_order = async (row_per_batch) => { + const url_patient = config_1.default.base_url + "/etl/getorder/getdata?limit=" + row_per_batch; + logging_1.default.info(server_1.NAME_SPACE, "Info : " + url_patient); + try { + const resp = await axios_1.default.get(url_patient, { + responseType: "arraybuffer", + }); + const jresp = JSON.parse(resp.data.toString()); + return jresp; + } + catch (e) { + if (axios_1.default.isAxiosError(e)) { + logging_1.default.error(server_1.NAME_SPACE, e.response?.data.toString()); + } + else if (e instanceof Error) { + logging_1.default.error(server_1.NAME_SPACE, e.message); + } + } +}; +exports.get_order = get_order; diff --git a/build/server.js b/build/server.js new file mode 100644 index 0000000..bfe0f8d --- /dev/null +++ b/build/server.js @@ -0,0 +1,89 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.NAME_SPACE = void 0; +const config_1 = __importDefault(require("./config/config")); +const logging_1 = __importDefault(require("./config/logging")); +const Xcron = __importStar(require("node-cron")); +exports.NAME_SPACE = "OneEtlTat Gateway"; +const VERSION = "1.0"; +let isRunning = false; +let isRefreshRunning = false; +logging_1.default.info(exports.NAME_SPACE, "Starting " + VERSION); +const on_init = async () => { + logging_1.default.info(exports.NAME_SPACE, "On Init Start"); + await one_result_job(); + logging_1.default.info(exports.NAME_SPACE, "On Init End"); +}; +on_init(); +async function one_result_job() { + if (isRunning) { + logging_1.default.info(exports.NAME_SPACE, "Still Running"); + return; + } + isRunning = true; + try { + let dateTime = new Date(); + let dateTimeString = dateTime.toString(); + logging_1.default.info(exports.NAME_SPACE, "Starting Job " + VERSION); + logging_1.default.info(exports.NAME_SPACE, "dateTimeString " + dateTimeString); + // rpt_052_000 + // logging.info(NAME_SPACE, "rpt_052_000"); + // var resp = await rpt_052_000("000",dateTimeString,"0"); + // if (resp["status"] == "OK") { + // logging.info(NAME_SPACE, "\t Success"); + // } else { + // logging.error(NAME_SPACE, "\t Error " + resp["message"]); + // } + // logging.info(NAME_SPACE, "Wait " + config.delay + " second"); + // await delay(config.delay * 1000); + logging_1.default.info(exports.NAME_SPACE, "End Job"); + isRunning = false; + } + catch (e) { + isRunning = false; + if (e instanceof Error) { + logging_1.default.error(exports.NAME_SPACE, e.message); + } + else { + logging_1.default.error(exports.NAME_SPACE, "Unknown"); + } + } +} +// console.log(config); +for (const sched of config_1.default.schedule) { + Xcron.schedule(sched, async () => { + await one_result_job(); + }, { + timezone: "Asia/Jakarta", + }); +} +// ------------- function +async function delay(ms) { + return new Promise((resolve) => setTimeout(resolve, ms)); +} diff --git a/config-etl-tat.json b/config-etl-tat.json index 5f66c1c..2810afb 100644 --- a/config-etl-tat.json +++ b/config-etl-tat.json @@ -2,5 +2,8 @@ "base_url": "http://devone.aplikasi.web.id/one-api/", "schedule": ["0 5,12,17 * * *"], "delay": 5, - "row_per_batch": 50 + "row_per_batch": 50, + "kode":"000", + "date":"2021-06-12", + "target":"0" } diff --git a/dist/daemon.js b/dist/daemon.js new file mode 100644 index 0000000..022eb69 --- /dev/null +++ b/dist/daemon.js @@ -0,0 +1,19 @@ +const ScheduledTask = require('../scheduled-task'); + +let scheduledTask; + +function register(message){ + const script = require(message.path); + scheduledTask = new ScheduledTask(message.cron, script.task, message.options); + scheduledTask.on('task-done', (result) => { + process.send({ type: 'task-done', result}); + }); + process.send({ type: 'registred' }); +} + +process.on('message', (message) => { + switch(message.type){ + case 'register': + return register(message); + } +}); diff --git a/dist/one-etl-tat-gw.js b/dist/one-etl-tat-gw.js new file mode 100644 index 0000000..6baf9c2 --- /dev/null +++ b/dist/one-etl-tat-gw.js @@ -0,0 +1,9 @@ +(()=>{var e={442:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const n=r(747);const a=JSON.parse((0,n.readFileSync)("./config-etl-tat.json").toString());const s={base_url:a["base_url"],schedule:a["schedule"],delay:a["delay"],row_per_batch:a["row_per_batch"]};t.default=s},107:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});const a=n(r(623));const getTimeStamp=()=>{const e=(0,a.default)().format("yyyy-MM-DD HH:mm:ss");return e};const info=(e,t,r)=>{if(r){console.log(`[${getTimeStamp()}] [INFO] [${e}] [${t}]`,r)}else{console.log(`[${getTimeStamp()}] [INFO] [${e}] [${t}]`)}};const warning=(e,t,r)=>{if(r){console.log(`[${getTimeStamp()}] [WARNING] [${e}] [${t}]`,r)}else{console.log(`[${getTimeStamp()}] [WARNING] [${e}] [${t}]`)}};const error=(e,t,r)=>{if(r){console.log(`[${getTimeStamp()}] [ERROR] [${e}] [${t}]`,r)}else{console.log(`[${getTimeStamp()}] [ERROR] [${e}] [${t}]`)}};const delay=e=>new Promise((t=>setTimeout(t,e)));t.default={info:info,warning:warning,error:error,delay:delay}},200:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;var a=Object.getOwnPropertyDescriptor(t,r);if(!a||("get"in a?!t.__esModule:a.writable||a.configurable)){a={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,n,a)}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))n(t,e,r);a(t,e);return t};var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.NAME_SPACE=void 0;const o=i(r(442));const l=i(r(107));const u=s(r(148));t.NAME_SPACE="OneEtlTat Gateway";const d="1.0";let f=false;let c=false;l.default.info(t.NAME_SPACE,"Starting "+d);const on_init=async()=>{l.default.info(t.NAME_SPACE,"On Init Start");await one_result_job();l.default.info(t.NAME_SPACE,"On Init End")};on_init();async function one_result_job(){if(f){l.default.info(t.NAME_SPACE,"Still Running");return}f=true;try{let e=new Date;let r=e.toString();l.default.info(t.NAME_SPACE,"Starting Job "+d);l.default.info(t.NAME_SPACE,"dateTimeString "+r);l.default.info(t.NAME_SPACE,"End Job");f=false}catch(e){f=false;if(e instanceof Error){l.default.error(t.NAME_SPACE,e.message)}else{l.default.error(t.NAME_SPACE,"Unknown")}}}for(const e of o.default.schedule){u.schedule(e,(async()=>{await one_result_job()}),{timezone:"Asia/Jakarta"})}async function delay(e){return new Promise((t=>setTimeout(t,e)))}},623:function(e,t,r){e=r.nmd(e); +//! moment.js +//! version : 2.30.1 +//! authors : Tim Wood, Iskren Chernev, Moment.js contributors +//! license : MIT +//! momentjs.com +(function(t,r){true?e.exports=r():0})(this,(function(){"use strict";var t;function hooks(){return t.apply(null,arguments)}function setHookCallback(e){t=e}function isArray(e){return e instanceof Array||Object.prototype.toString.call(e)==="[object Array]"}function isObject(e){return e!=null&&Object.prototype.toString.call(e)==="[object Object]"}function hasOwnProp(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function isObjectEmpty(e){if(Object.getOwnPropertyNames){return Object.getOwnPropertyNames(e).length===0}else{var t;for(t in e){if(hasOwnProp(e,t)){return false}}return true}}function isUndefined(e){return e===void 0}function isNumber(e){return typeof e==="number"||Object.prototype.toString.call(e)==="[object Number]"}function isDate(e){return e instanceof Date||Object.prototype.toString.call(e)==="[object Date]"}function map(e,t){var r=[],n,a=e.length;for(n=0;n>>0,n;for(n=0;n0){for(r=0;r=0;return(s?r?"+":"":"-")+Math.pow(10,Math.max(0,a)).toString().substr(1)+n}var l=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,u=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,d={},f={};function addFormatToken(e,t,r,n){var a=n;if(typeof n==="string"){a=function(){return this[n]()}}if(e){f[e]=a}if(t){f[t[0]]=function(){return zeroFill(a.apply(this,arguments),t[1],t[2])}}if(r){f[r]=function(){return this.localeData().ordinal(a.apply(this,arguments),e)}}}function removeFormattingTokens(e){if(e.match(/\[[\s\S]/)){return e.replace(/^\[|\]$/g,"")}return e.replace(/\\/g,"")}function makeFormatFunction(e){var t=e.match(l),r,n;for(r=0,n=t.length;r=0&&u.test(e)){e=e.replace(u,replaceLongDateFormatTokens);u.lastIndex=0;r-=1}return e}var c={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"};function longDateFormat(e){var t=this._longDateFormat[e],r=this._longDateFormat[e.toUpperCase()];if(t||!r){return t}this._longDateFormat[e]=r.match(l).map((function(e){if(e==="MMMM"||e==="MM"||e==="DD"||e==="dddd"){return e.slice(1)}return e})).join("");return this._longDateFormat[e]}var h="Invalid date";function invalidDate(){return this._invalidDate}var m="%d",g=/\d{1,2}/;function ordinal(e){return this._ordinal.replace("%d",e)}var k={future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function relativeTime(e,t,r,n){var a=this._relativeTime[r];return isFunction(a)?a(e,t,r,n):a.replace(/%d/i,e)}function pastFuture(e,t){var r=this._relativeTime[e>0?"future":"past"];return isFunction(r)?r(t):r.replace(/%s/i,t)}var _={D:"date",dates:"date",date:"date",d:"day",days:"day",day:"day",e:"weekday",weekdays:"weekday",weekday:"weekday",E:"isoWeekday",isoweekdays:"isoWeekday",isoweekday:"isoWeekday",DDD:"dayOfYear",dayofyears:"dayOfYear",dayofyear:"dayOfYear",h:"hour",hours:"hour",hour:"hour",ms:"millisecond",milliseconds:"millisecond",millisecond:"millisecond",m:"minute",minutes:"minute",minute:"minute",M:"month",months:"month",month:"month",Q:"quarter",quarters:"quarter",quarter:"quarter",s:"second",seconds:"second",second:"second",gg:"weekYear",weekyears:"weekYear",weekyear:"weekYear",GG:"isoWeekYear",isoweekyears:"isoWeekYear",isoweekyear:"isoWeekYear",w:"week",weeks:"week",week:"week",W:"isoWeek",isoweeks:"isoWeek",isoweek:"isoWeek",y:"year",years:"year",year:"year"};function normalizeUnits(e){return typeof e==="string"?_[e]||_[e.toLowerCase()]:undefined}function normalizeObjectUnits(e){var t={},r,n;for(n in e){if(hasOwnProp(e,n)){r=normalizeUnits(n);if(r){t[r]=e[n]}}}return t}var p={date:9,day:11,weekday:11,isoWeekday:11,dayOfYear:4,hour:13,millisecond:16,minute:14,month:8,quarter:7,second:15,weekYear:1,isoWeekYear:1,week:5,isoWeek:5,year:1};function getPrioritizedUnits(e){var t=[],r;for(r in e){if(hasOwnProp(e,r)){t.push({unit:r,priority:p[r]})}}t.sort((function(e,t){return e.priority-t.priority}));return t}var y=/\d/,v=/\d\d/,w=/\d{3}/,S=/\d{4}/,D=/[+-]?\d{6}/,M=/\d\d?/,T=/\d\d\d\d?/,O=/\d\d\d\d\d\d?/,b=/\d{1,3}/,x=/\d{1,4}/,Y=/[+-]?\d{1,6}/,P=/\d+/,F=/[+-]?\d+/,R=/Z|[+-]\d\d:?\d\d/gi,I=/Z|[+-]\d\d(?::?\d\d)?/gi,W=/[+-]?\d+(\.\d{1,3})?/,N=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,U=/^[1-9]\d?/,A=/^([1-9]\d|\d)/,L;L={};function addRegexToken(e,t,r){L[e]=isFunction(t)?t:function(e,n){return e&&r?r:t}}function getParseRegexForToken(e,t){if(!hasOwnProp(L,e)){return new RegExp(unescapeFormat(e))}return L[e](t._strict,t._locale)}function unescapeFormat(e){return regexEscape(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,(function(e,t,r,n,a){return t||r||n||a})))}function regexEscape(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function absFloor(e){if(e<0){return Math.ceil(e)||0}else{return Math.floor(e)}}function toInt(e){var t=+e,r=0;if(t!==0&&isFinite(t)){r=absFloor(t)}return r}var C={};function addParseToken(e,t){var r,n=t,a;if(typeof e==="string"){e=[e]}if(isNumber(t)){n=function(e,r){r[t]=toInt(e)}}a=e.length;for(r=0;r68?1900:2e3)};var B=makeGetSet("FullYear",true);function getIsLeapYear(){return isLeapYear(this.year())}function makeGetSet(e,t){return function(r){if(r!=null){set$1(this,e,r);hooks.updateOffset(this,t);return this}else{return get(this,e)}}}function get(e,t){if(!e.isValid()){return NaN}var r=e._d,n=e._isUTC;switch(t){case"Milliseconds":return n?r.getUTCMilliseconds():r.getMilliseconds();case"Seconds":return n?r.getUTCSeconds():r.getSeconds();case"Minutes":return n?r.getUTCMinutes():r.getMinutes();case"Hours":return n?r.getUTCHours():r.getHours();case"Date":return n?r.getUTCDate():r.getDate();case"Day":return n?r.getUTCDay():r.getDay();case"Month":return n?r.getUTCMonth():r.getMonth();case"FullYear":return n?r.getUTCFullYear():r.getFullYear();default:return NaN}}function set$1(e,t,r){var n,a,s,i,o;if(!e.isValid()||isNaN(r)){return}n=e._d;a=e._isUTC;switch(t){case"Milliseconds":return void(a?n.setUTCMilliseconds(r):n.setMilliseconds(r));case"Seconds":return void(a?n.setUTCSeconds(r):n.setSeconds(r));case"Minutes":return void(a?n.setUTCMinutes(r):n.setMinutes(r));case"Hours":return void(a?n.setUTCHours(r):n.setHours(r));case"Date":return void(a?n.setUTCDate(r):n.setDate(r));case"FullYear":break;default:return}s=r;i=e.month();o=e.date();o=o===29&&i===1&&!isLeapYear(s)?28:o;void(a?n.setUTCFullYear(s,i,o):n.setFullYear(s,i,o))}function stringGet(e){e=normalizeUnits(e);if(isFunction(this[e])){return this[e]()}return this}function stringSet(e,t){if(typeof e==="object"){e=normalizeObjectUnits(e);var r=getPrioritizedUnits(e),n,a=r.length;for(n=0;n=0){o=new Date(e+400,t,r,n,a,s,i);if(isFinite(o.getFullYear())){o.setFullYear(e)}}else{o=new Date(e,t,r,n,a,s,i)}return o}function createUTCDate(e){var t,r;if(e<100&&e>=0){r=Array.prototype.slice.call(arguments);r[0]=e+400;t=new Date(Date.UTC.apply(null,r));if(isFinite(t.getUTCFullYear())){t.setUTCFullYear(e)}}else{t=new Date(Date.UTC.apply(null,arguments))}return t}function firstWeekOffset(e,t,r){var n=7+t-r,a=(7+createUTCDate(e,0,n).getUTCDay()-t)%7;return-a+n-1}function dayOfYearFromWeeks(e,t,r,n,a){var s=(7+r-n)%7,i=firstWeekOffset(e,n,a),o=1+7*(t-1)+s+i,l,u;if(o<=0){l=e-1;u=daysInYear(l)+o}else if(o>daysInYear(e)){l=e+1;u=o-daysInYear(e)}else{l=e;u=o}return{year:l,dayOfYear:u}}function weekOfYear(e,t,r){var n=firstWeekOffset(e.year(),t,r),a=Math.floor((e.dayOfYear()-n-1)/7)+1,s,i;if(a<1){i=e.year()-1;s=a+weeksInYear(i,t,r)}else if(a>weeksInYear(e.year(),t,r)){s=a-weeksInYear(e.year(),t,r);i=e.year()+1}else{i=e.year();s=a}return{week:s,year:i}}function weeksInYear(e,t,r){var n=firstWeekOffset(e,t,r),a=firstWeekOffset(e+1,t,r);return(daysInYear(e)-n+a)/7}addFormatToken("w",["ww",2],"wo","week");addFormatToken("W",["WW",2],"Wo","isoWeek");addRegexToken("w",M,U);addRegexToken("ww",M,v);addRegexToken("W",M,U);addRegexToken("WW",M,v);addWeekParseToken(["w","ww","W","WW"],(function(e,t,r,n){t[n.substr(0,1)]=toInt(e)}));function localeWeek(e){return weekOfYear(e,this._week.dow,this._week.doy).week}var re={dow:0,doy:6};function localeFirstDayOfWeek(){return this._week.dow}function localeFirstDayOfYear(){return this._week.doy}function getSetWeek(e){var t=this.localeData().week(this);return e==null?t:this.add((e-t)*7,"d")}function getSetISOWeek(e){var t=weekOfYear(this,1,4).week;return e==null?t:this.add((e-t)*7,"d")}addFormatToken("d",0,"do","day");addFormatToken("dd",0,0,(function(e){return this.localeData().weekdaysMin(this,e)}));addFormatToken("ddd",0,0,(function(e){return this.localeData().weekdaysShort(this,e)}));addFormatToken("dddd",0,0,(function(e){return this.localeData().weekdays(this,e)}));addFormatToken("e",0,0,"weekday");addFormatToken("E",0,0,"isoWeekday");addRegexToken("d",M);addRegexToken("e",M);addRegexToken("E",M);addRegexToken("dd",(function(e,t){return t.weekdaysMinRegex(e)}));addRegexToken("ddd",(function(e,t){return t.weekdaysShortRegex(e)}));addRegexToken("dddd",(function(e,t){return t.weekdaysRegex(e)}));addWeekParseToken(["dd","ddd","dddd"],(function(e,t,r,n){var a=r._locale.weekdaysParse(e,n,r._strict);if(a!=null){t.d=a}else{getParsingFlags(r).invalidWeekday=e}}));addWeekParseToken(["d","e","E"],(function(e,t,r,n){t[n]=toInt(e)}));function parseWeekday(e,t){if(typeof e!=="string"){return e}if(!isNaN(e)){return parseInt(e,10)}e=t.weekdaysParse(e);if(typeof e==="number"){return e}return null}function parseIsoWeekday(e,t){if(typeof e==="string"){return t.weekdaysParse(e)%7||7}return isNaN(e)?null:e}function shiftWeekdays(e,t){return e.slice(t,7).concat(e.slice(0,t))}var ne="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),ae="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),se="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),ie=N,oe=N,le=N;function localeWeekdays(e,t){var r=isArray(this._weekdays)?this._weekdays:this._weekdays[e&&e!==true&&this._weekdays.isFormat.test(t)?"format":"standalone"];return e===true?shiftWeekdays(r,this._week.dow):e?r[e.day()]:r}function localeWeekdaysShort(e){return e===true?shiftWeekdays(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort}function localeWeekdaysMin(e){return e===true?shiftWeekdays(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin}function handleStrictParse$1(e,t,r){var n,a,s,i=e.toLocaleLowerCase();if(!this._weekdaysParse){this._weekdaysParse=[];this._shortWeekdaysParse=[];this._minWeekdaysParse=[];for(n=0;n<7;++n){s=createUTC([2e3,1]).day(n);this._minWeekdaysParse[n]=this.weekdaysMin(s,"").toLocaleLowerCase();this._shortWeekdaysParse[n]=this.weekdaysShort(s,"").toLocaleLowerCase();this._weekdaysParse[n]=this.weekdays(s,"").toLocaleLowerCase()}}if(r){if(t==="dddd"){a=J.call(this._weekdaysParse,i);return a!==-1?a:null}else if(t==="ddd"){a=J.call(this._shortWeekdaysParse,i);return a!==-1?a:null}else{a=J.call(this._minWeekdaysParse,i);return a!==-1?a:null}}else{if(t==="dddd"){a=J.call(this._weekdaysParse,i);if(a!==-1){return a}a=J.call(this._shortWeekdaysParse,i);if(a!==-1){return a}a=J.call(this._minWeekdaysParse,i);return a!==-1?a:null}else if(t==="ddd"){a=J.call(this._shortWeekdaysParse,i);if(a!==-1){return a}a=J.call(this._weekdaysParse,i);if(a!==-1){return a}a=J.call(this._minWeekdaysParse,i);return a!==-1?a:null}else{a=J.call(this._minWeekdaysParse,i);if(a!==-1){return a}a=J.call(this._weekdaysParse,i);if(a!==-1){return a}a=J.call(this._shortWeekdaysParse,i);return a!==-1?a:null}}}function localeWeekdaysParse(e,t,r){var n,a,s;if(this._weekdaysParseExact){return handleStrictParse$1.call(this,e,t,r)}if(!this._weekdaysParse){this._weekdaysParse=[];this._minWeekdaysParse=[];this._shortWeekdaysParse=[];this._fullWeekdaysParse=[]}for(n=0;n<7;n++){a=createUTC([2e3,1]).day(n);if(r&&!this._fullWeekdaysParse[n]){this._fullWeekdaysParse[n]=new RegExp("^"+this.weekdays(a,"").replace(".","\\.?")+"$","i");this._shortWeekdaysParse[n]=new RegExp("^"+this.weekdaysShort(a,"").replace(".","\\.?")+"$","i");this._minWeekdaysParse[n]=new RegExp("^"+this.weekdaysMin(a,"").replace(".","\\.?")+"$","i")}if(!this._weekdaysParse[n]){s="^"+this.weekdays(a,"")+"|^"+this.weekdaysShort(a,"")+"|^"+this.weekdaysMin(a,"");this._weekdaysParse[n]=new RegExp(s.replace(".",""),"i")}if(r&&t==="dddd"&&this._fullWeekdaysParse[n].test(e)){return n}else if(r&&t==="ddd"&&this._shortWeekdaysParse[n].test(e)){return n}else if(r&&t==="dd"&&this._minWeekdaysParse[n].test(e)){return n}else if(!r&&this._weekdaysParse[n].test(e)){return n}}}function getSetDayOfWeek(e){if(!this.isValid()){return e!=null?this:NaN}var t=get(this,"Day");if(e!=null){e=parseWeekday(e,this.localeData());return this.add(e-t,"d")}else{return t}}function getSetLocaleDayOfWeek(e){if(!this.isValid()){return e!=null?this:NaN}var t=(this.day()+7-this.localeData()._week.dow)%7;return e==null?t:this.add(e-t,"d")}function getSetISODayOfWeek(e){if(!this.isValid()){return e!=null?this:NaN}if(e!=null){var t=parseIsoWeekday(e,this.localeData());return this.day(this.day()%7?t:t-7)}else{return this.day()||7}}function weekdaysRegex(e){if(this._weekdaysParseExact){if(!hasOwnProp(this,"_weekdaysRegex")){computeWeekdaysParse.call(this)}if(e){return this._weekdaysStrictRegex}else{return this._weekdaysRegex}}else{if(!hasOwnProp(this,"_weekdaysRegex")){this._weekdaysRegex=ie}return this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex}}function weekdaysShortRegex(e){if(this._weekdaysParseExact){if(!hasOwnProp(this,"_weekdaysRegex")){computeWeekdaysParse.call(this)}if(e){return this._weekdaysShortStrictRegex}else{return this._weekdaysShortRegex}}else{if(!hasOwnProp(this,"_weekdaysShortRegex")){this._weekdaysShortRegex=oe}return this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex}}function weekdaysMinRegex(e){if(this._weekdaysParseExact){if(!hasOwnProp(this,"_weekdaysRegex")){computeWeekdaysParse.call(this)}if(e){return this._weekdaysMinStrictRegex}else{return this._weekdaysMinRegex}}else{if(!hasOwnProp(this,"_weekdaysMinRegex")){this._weekdaysMinRegex=le}return this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex}}function computeWeekdaysParse(){function cmpLenRev(e,t){return t.length-e.length}var e=[],t=[],r=[],n=[],a,s,i,o,l;for(a=0;a<7;a++){s=createUTC([2e3,1]).day(a);i=regexEscape(this.weekdaysMin(s,""));o=regexEscape(this.weekdaysShort(s,""));l=regexEscape(this.weekdays(s,""));e.push(i);t.push(o);r.push(l);n.push(i);n.push(o);n.push(l)}e.sort(cmpLenRev);t.sort(cmpLenRev);r.sort(cmpLenRev);n.sort(cmpLenRev);this._weekdaysRegex=new RegExp("^("+n.join("|")+")","i");this._weekdaysShortRegex=this._weekdaysRegex;this._weekdaysMinRegex=this._weekdaysRegex;this._weekdaysStrictRegex=new RegExp("^("+r.join("|")+")","i");this._weekdaysShortStrictRegex=new RegExp("^("+t.join("|")+")","i");this._weekdaysMinStrictRegex=new RegExp("^("+e.join("|")+")","i")}function hFormat(){return this.hours()%12||12}function kFormat(){return this.hours()||24}addFormatToken("H",["HH",2],0,"hour");addFormatToken("h",["hh",2],0,hFormat);addFormatToken("k",["kk",2],0,kFormat);addFormatToken("hmm",0,0,(function(){return""+hFormat.apply(this)+zeroFill(this.minutes(),2)}));addFormatToken("hmmss",0,0,(function(){return""+hFormat.apply(this)+zeroFill(this.minutes(),2)+zeroFill(this.seconds(),2)}));addFormatToken("Hmm",0,0,(function(){return""+this.hours()+zeroFill(this.minutes(),2)}));addFormatToken("Hmmss",0,0,(function(){return""+this.hours()+zeroFill(this.minutes(),2)+zeroFill(this.seconds(),2)}));function meridiem(e,t){addFormatToken(e,0,0,(function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)}))}meridiem("a",true);meridiem("A",false);function matchMeridiem(e,t){return t._meridiemParse}addRegexToken("a",matchMeridiem);addRegexToken("A",matchMeridiem);addRegexToken("H",M,A);addRegexToken("h",M,U);addRegexToken("k",M,U);addRegexToken("HH",M,v);addRegexToken("hh",M,v);addRegexToken("kk",M,v);addRegexToken("hmm",T);addRegexToken("hmmss",O);addRegexToken("Hmm",T);addRegexToken("Hmmss",O);addParseToken(["H","HH"],G);addParseToken(["k","kk"],(function(e,t,r){var n=toInt(e);t[G]=n===24?0:n}));addParseToken(["a","A"],(function(e,t,r){r._isPm=r._locale.isPM(e);r._meridiem=e}));addParseToken(["h","hh"],(function(e,t,r){t[G]=toInt(e);getParsingFlags(r).bigHour=true}));addParseToken("hmm",(function(e,t,r){var n=e.length-2;t[G]=toInt(e.substr(0,n));t[V]=toInt(e.substr(n));getParsingFlags(r).bigHour=true}));addParseToken("hmmss",(function(e,t,r){var n=e.length-4,a=e.length-2;t[G]=toInt(e.substr(0,n));t[V]=toInt(e.substr(n,2));t[$]=toInt(e.substr(a));getParsingFlags(r).bigHour=true}));addParseToken("Hmm",(function(e,t,r){var n=e.length-2;t[G]=toInt(e.substr(0,n));t[V]=toInt(e.substr(n))}));addParseToken("Hmmss",(function(e,t,r){var n=e.length-4,a=e.length-2;t[G]=toInt(e.substr(0,n));t[V]=toInt(e.substr(n,2));t[$]=toInt(e.substr(a))}));function localeIsPM(e){return(e+"").toLowerCase().charAt(0)==="p"}var ue=/[ap]\.?m?\.?/i,de=makeGetSet("Hours",true);function localeMeridiem(e,t,r){if(e>11){return r?"pm":"PM"}else{return r?"am":"AM"}}var fe={calendar:o,longDateFormat:c,invalidDate:h,ordinal:m,dayOfMonthOrdinalParse:g,relativeTime:k,months:Q,monthsShort:X,week:re,weekdays:ne,weekdaysMin:se,weekdaysShort:ae,meridiemParse:ue};var ce={},he={},me;function commonPrefix(e,t){var r,n=Math.min(e.length,t.length);for(r=0;r0){a=loadLocale(s.slice(0,r).join("-"));if(a){return a}if(n&&n.length>=r&&commonPrefix(s,n)>=r-1){break}r--}t++}return me}function isLocaleNameSane(e){return!!(e&&e.match("^[^/\\\\]*$"))}function loadLocale(t){var r=null,n;if(ce[t]===undefined&&"object"!=="undefined"&&e&&e.exports&&isLocaleNameSane(t)){try{r=me._abbr;n=require;n("./locale/"+t);getSetGlobalLocale(r)}catch(e){ce[t]=null}}return ce[t]}function getSetGlobalLocale(e,t){var r;if(e){if(isUndefined(t)){r=getLocale(e)}else{r=defineLocale(e,t)}if(r){me=r}else{if(typeof console!=="undefined"&&console.warn){console.warn("Locale "+e+" not found. Did you forget to load it?")}}}return me._abbr}function defineLocale(e,t){if(t!==null){var r,n=fe;t.abbr=e;if(ce[e]!=null){deprecateSimple("defineLocaleOverride","use moment.updateLocale(localeName, config) to change "+"an existing locale. moment.defineLocale(localeName, "+"config) should only be used for creating a new locale "+"See http://momentjs.com/guides/#/warnings/define-locale/ for more info.");n=ce[e]._config}else if(t.parentLocale!=null){if(ce[t.parentLocale]!=null){n=ce[t.parentLocale]._config}else{r=loadLocale(t.parentLocale);if(r!=null){n=r._config}else{if(!he[t.parentLocale]){he[t.parentLocale]=[]}he[t.parentLocale].push({name:e,config:t});return null}}}ce[e]=new Locale(mergeConfigs(n,t));if(he[e]){he[e].forEach((function(e){defineLocale(e.name,e.config)}))}getSetGlobalLocale(e);return ce[e]}else{delete ce[e];return null}}function updateLocale(e,t){if(t!=null){var r,n,a=fe;if(ce[e]!=null&&ce[e].parentLocale!=null){ce[e].set(mergeConfigs(ce[e]._config,t))}else{n=loadLocale(e);if(n!=null){a=n._config}t=mergeConfigs(a,t);if(n==null){t.abbr=e}r=new Locale(t);r.parentLocale=ce[e];ce[e]=r}getSetGlobalLocale(e)}else{if(ce[e]!=null){if(ce[e].parentLocale!=null){ce[e]=ce[e].parentLocale;if(e===getSetGlobalLocale()){getSetGlobalLocale(e)}}else if(ce[e]!=null){delete ce[e]}}}return ce[e]}function getLocale(e){var t;if(e&&e._locale&&e._locale._abbr){e=e._locale._abbr}if(!e){return me}if(!isArray(e)){t=loadLocale(e);if(t){return t}e=[e]}return chooseLocale(e)}function listLocales(){return i(ce)}function checkOverflow(e){var t,r=e._a;if(r&&getParsingFlags(e).overflow===-2){t=r[j]<0||r[j]>11?j:r[H]<1||r[H]>daysInMonth(r[E],r[j])?H:r[G]<0||r[G]>24||r[G]===24&&(r[V]!==0||r[$]!==0||r[z]!==0)?G:r[V]<0||r[V]>59?V:r[$]<0||r[$]>59?$:r[z]<0||r[z]>999?z:-1;if(getParsingFlags(e)._overflowDayOfYear&&(tH)){t=H}if(getParsingFlags(e)._overflowWeeks&&t===-1){t=q}if(getParsingFlags(e)._overflowWeekday&&t===-1){t=Z}getParsingFlags(e).overflow=t}return e}var ge=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,ke=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,_e=/Z|[+-]\d\d(?::?\d\d)?/,pe=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,false],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,false],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,false],["YYYYDDD",/\d{7}/],["YYYYMM",/\d{6}/,false],["YYYY",/\d{4}/,false]],ye=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],ve=/^\/?Date\((-?\d+)/i,we=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,Se={UT:0,GMT:0,EDT:-4*60,EST:-5*60,CDT:-5*60,CST:-6*60,MDT:-6*60,MST:-7*60,PDT:-7*60,PST:-8*60};function configFromISO(e){var t,r,n=e._i,a=ge.exec(n)||ke.exec(n),s,i,o,l,u=pe.length,d=ye.length;if(a){getParsingFlags(e).iso=true;for(t=0,r=u;tdaysInYear(i)||e._dayOfYear===0){getParsingFlags(e)._overflowDayOfYear=true}r=createUTCDate(i,0,e._dayOfYear);e._a[j]=r.getUTCMonth();e._a[H]=r.getUTCDate()}for(t=0;t<3&&e._a[t]==null;++t){e._a[t]=n[t]=a[t]}for(;t<7;t++){e._a[t]=n[t]=e._a[t]==null?t===2?1:0:e._a[t]}if(e._a[G]===24&&e._a[V]===0&&e._a[$]===0&&e._a[z]===0){e._nextDay=true;e._a[G]=0}e._d=(e._useUTC?createUTCDate:createDate).apply(null,n);s=e._useUTC?e._d.getUTCDay():e._d.getDay();if(e._tzm!=null){e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm)}if(e._nextDay){e._a[G]=24}if(e._w&&typeof e._w.d!=="undefined"&&e._w.d!==s){getParsingFlags(e).weekdayMismatch=true}}function dayOfYearFromWeekInfo(e){var t,r,n,a,s,i,o,l,u;t=e._w;if(t.GG!=null||t.W!=null||t.E!=null){s=1;i=4;r=defaults(t.GG,e._a[E],weekOfYear(createLocal(),1,4).year);n=defaults(t.W,1);a=defaults(t.E,1);if(a<1||a>7){l=true}}else{s=e._locale._week.dow;i=e._locale._week.doy;u=weekOfYear(createLocal(),s,i);r=defaults(t.gg,e._a[E],u.year);n=defaults(t.w,u.week);if(t.d!=null){a=t.d;if(a<0||a>6){l=true}}else if(t.e!=null){a=t.e+s;if(t.e<0||t.e>6){l=true}}else{a=s}}if(n<1||n>weeksInYear(r,s,i)){getParsingFlags(e)._overflowWeeks=true}else if(l!=null){getParsingFlags(e)._overflowWeekday=true}else{o=dayOfYearFromWeeks(r,n,a,s,i);e._a[E]=o.year;e._dayOfYear=o.dayOfYear}}hooks.ISO_8601=function(){};hooks.RFC_2822=function(){};function configFromStringAndFormat(e){if(e._f===hooks.ISO_8601){configFromISO(e);return}if(e._f===hooks.RFC_2822){configFromRFC2822(e);return}e._a=[];getParsingFlags(e).empty=true;var t=""+e._i,r,n,a,s,i,o=t.length,u=0,d,c;a=expandFormat(e._f,e._locale).match(l)||[];c=a.length;for(r=0;r0){getParsingFlags(e).unusedInput.push(i)}t=t.slice(t.indexOf(n)+n.length);u+=n.length}if(f[s]){if(n){getParsingFlags(e).empty=false}else{getParsingFlags(e).unusedTokens.push(s)}addTimeToArrayFromToken(s,n,e)}else if(e._strict&&!n){getParsingFlags(e).unusedTokens.push(s)}}getParsingFlags(e).charsLeftOver=o-u;if(t.length>0){getParsingFlags(e).unusedInput.push(t)}if(e._a[G]<=12&&getParsingFlags(e).bigHour===true&&e._a[G]>0){getParsingFlags(e).bigHour=undefined}getParsingFlags(e).parsedDateParts=e._a.slice(0);getParsingFlags(e).meridiem=e._meridiem;e._a[G]=meridiemFixWrap(e._locale,e._a[G],e._meridiem);d=getParsingFlags(e).era;if(d!==null){e._a[E]=e._locale.erasConvertYear(d,e._a[E])}configFromArray(e);checkOverflow(e)}function meridiemFixWrap(e,t,r){var n;if(r==null){return t}if(e.meridiemHour!=null){return e.meridiemHour(t,r)}else if(e.isPM!=null){n=e.isPM(r);if(n&&t<12){t+=12}if(!n&&t===12){t=0}return t}else{return t}}function configFromStringAndArray(e){var t,r,n,a,s,i,o=false,l=e._f.length;if(l===0){getParsingFlags(e).invalidFormat=true;e._d=new Date(NaN);return}for(a=0;athis?this:e}else{return createInvalid()}}));function pickBy(e,t){var r,n;if(t.length===1&&isArray(t[0])){t=t[0]}if(!t.length){return createLocal()}r=t[0];for(n=1;nthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function isDaylightSavingTimeShifted(){if(!isUndefined(this._isDSTShifted)){return this._isDSTShifted}var e={},t;copyConfig(e,this);e=prepareConfig(e);if(e._a){t=e._isUTC?createUTC(e._a):createLocal(e._a);this._isDSTShifted=this.isValid()&&compareArrays(e._a,t.toArray())>0}else{this._isDSTShifted=false}return this._isDSTShifted}function isLocal(){return this.isValid()?!this._isUTC:false}function isUtcOffset(){return this.isValid()?this._isUTC:false}function isUtc(){return this.isValid()?this._isUTC&&this._offset===0:false}var be=/^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/,xe=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function createDuration(e,t){var r=e,n=null,a,s,i;if(isDuration(e)){r={ms:e._milliseconds,d:e._days,M:e._months}}else if(isNumber(e)||!isNaN(+e)){r={};if(t){r[t]=+e}else{r.milliseconds=+e}}else if(n=be.exec(e)){a=n[1]==="-"?-1:1;r={y:0,d:toInt(n[H])*a,h:toInt(n[G])*a,m:toInt(n[V])*a,s:toInt(n[$])*a,ms:toInt(absRound(n[z]*1e3))*a}}else if(n=xe.exec(e)){a=n[1]==="-"?-1:1;r={y:parseIso(n[2],a),M:parseIso(n[3],a),w:parseIso(n[4],a),d:parseIso(n[5],a),h:parseIso(n[6],a),m:parseIso(n[7],a),s:parseIso(n[8],a)}}else if(r==null){r={}}else if(typeof r==="object"&&("from"in r||"to"in r)){i=momentsDifference(createLocal(r.from),createLocal(r.to));r={};r.ms=i.milliseconds;r.M=i.months}s=new Duration(r);if(isDuration(e)&&hasOwnProp(e,"_locale")){s._locale=e._locale}if(isDuration(e)&&hasOwnProp(e,"_isValid")){s._isValid=e._isValid}return s}createDuration.fn=Duration.prototype;createDuration.invalid=createInvalid$1;function parseIso(e,t){var r=e&&parseFloat(e.replace(",","."));return(isNaN(r)?0:r)*t}function positiveMomentsDifference(e,t){var r={};r.months=t.month()-e.month()+(t.year()-e.year())*12;if(e.clone().add(r.months,"M").isAfter(t)){--r.months}r.milliseconds=+t-+e.clone().add(r.months,"M");return r}function momentsDifference(e,t){var r;if(!(e.isValid()&&t.isValid())){return{milliseconds:0,months:0}}t=cloneWithOffset(t,e);if(e.isBefore(t)){r=positiveMomentsDifference(e,t)}else{r=positiveMomentsDifference(t,e);r.milliseconds=-r.milliseconds;r.months=-r.months}return r}function createAdder(e,t){return function(r,n){var a,s;if(n!==null&&!isNaN(+n)){deprecateSimple(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period). "+"See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.");s=r;r=n;n=s}a=createDuration(r,n);addSubtract(this,a,e);return this}}function addSubtract(e,t,r,n){var a=t._milliseconds,s=absRound(t._days),i=absRound(t._months);if(!e.isValid()){return}n=n==null?true:n;if(i){setMonth(e,get(e,"Month")+i*r)}if(s){set$1(e,"Date",get(e,"Date")+s*r)}if(a){e._d.setTime(e._d.valueOf()+a*r)}if(n){hooks.updateOffset(e,s||i)}}var Ye=createAdder(1,"add"),Pe=createAdder(-1,"subtract");function isString(e){return typeof e==="string"||e instanceof String}function isMomentInput(e){return isMoment(e)||isDate(e)||isString(e)||isNumber(e)||isNumberOrStringArray(e)||isMomentInputObject(e)||e===null||e===undefined}function isMomentInputObject(e){var t=isObject(e)&&!isObjectEmpty(e),r=false,n=["years","year","y","months","month","M","days","day","d","dates","date","D","hours","hour","h","minutes","minute","m","seconds","second","s","milliseconds","millisecond","ms"],a,s,i=n.length;for(a=0;ar.valueOf()}else{return r.valueOf()9999){return formatMoment(r,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ")}if(isFunction(Date.prototype.toISOString)){if(t){return this.toDate().toISOString()}else{return new Date(this.valueOf()+this.utcOffset()*60*1e3).toISOString().replace("Z",formatMoment(r,"Z"))}}return formatMoment(r,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")}function inspect(){if(!this.isValid()){return"moment.invalid(/* "+this._i+" */)"}var e="moment",t="",r,n,a,s;if(!this.isLocal()){e=this.utcOffset()===0?"moment.utc":"moment.parseZone";t="Z"}r="["+e+'("]';n=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY";a="-MM-DD[T]HH:mm:ss.SSS";s=t+'[")]';return this.format(r+n+a+s)}function format(e){if(!e){e=this.isUtc()?hooks.defaultFormatUtc:hooks.defaultFormat}var t=formatMoment(this,e);return this.localeData().postformat(t)}function from(e,t){if(this.isValid()&&(isMoment(e)&&e.isValid()||createLocal(e).isValid())){return createDuration({to:this,from:e}).locale(this.locale()).humanize(!t)}else{return this.localeData().invalidDate()}}function fromNow(e){return this.from(createLocal(),e)}function to(e,t){if(this.isValid()&&(isMoment(e)&&e.isValid()||createLocal(e).isValid())){return createDuration({from:this,to:e}).locale(this.locale()).humanize(!t)}else{return this.localeData().invalidDate()}}function toNow(e){return this.to(createLocal(),e)}function locale(e){var t;if(e===undefined){return this._locale._abbr}else{t=getLocale(e);if(t!=null){this._locale=t}return this}}var Fe=deprecate("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",(function(e){if(e===undefined){return this.localeData()}else{return this.locale(e)}}));function localeData(){return this._locale}var Re=1e3,Ie=60*Re,We=60*Ie,Ne=(365*400+97)*24*We;function mod$1(e,t){return(e%t+t)%t}function localStartOfDate(e,t,r){if(e<100&&e>=0){return new Date(e+400,t,r)-Ne}else{return new Date(e,t,r).valueOf()}}function utcStartOfDate(e,t,r){if(e<100&&e>=0){return Date.UTC(e+400,t,r)-Ne}else{return Date.UTC(e,t,r)}}function startOf(e){var t,r;e=normalizeUnits(e);if(e===undefined||e==="millisecond"||!this.isValid()){return this}r=this._isUTC?utcStartOfDate:localStartOfDate;switch(e){case"year":t=r(this.year(),0,1);break;case"quarter":t=r(this.year(),this.month()-this.month()%3,1);break;case"month":t=r(this.year(),this.month(),1);break;case"week":t=r(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":t=r(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":t=r(this.year(),this.month(),this.date());break;case"hour":t=this._d.valueOf();t-=mod$1(t+(this._isUTC?0:this.utcOffset()*Ie),We);break;case"minute":t=this._d.valueOf();t-=mod$1(t,Ie);break;case"second":t=this._d.valueOf();t-=mod$1(t,Re);break}this._d.setTime(t);hooks.updateOffset(this,true);return this}function endOf(e){var t,r;e=normalizeUnits(e);if(e===undefined||e==="millisecond"||!this.isValid()){return this}r=this._isUTC?utcStartOfDate:localStartOfDate;switch(e){case"year":t=r(this.year()+1,0,1)-1;break;case"quarter":t=r(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":t=r(this.year(),this.month()+1,1)-1;break;case"week":t=r(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":t=r(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":t=r(this.year(),this.month(),this.date()+1)-1;break;case"hour":t=this._d.valueOf();t+=We-mod$1(t+(this._isUTC?0:this.utcOffset()*Ie),We)-1;break;case"minute":t=this._d.valueOf();t+=Ie-mod$1(t,Ie)-1;break;case"second":t=this._d.valueOf();t+=Re-mod$1(t,Re)-1;break}this._d.setTime(t);hooks.updateOffset(this,true);return this}function valueOf(){return this._d.valueOf()-(this._offset||0)*6e4}function unix(){return Math.floor(this.valueOf()/1e3)}function toDate(){return new Date(this.valueOf())}function toArray(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]}function toObject(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}}function toJSON(){return this.isValid()?this.toISOString():null}function isValid$2(){return isValid(this)}function parsingFlags(){return extend({},getParsingFlags(this))}function invalidAt(){return getParsingFlags(this).overflow}function creationData(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}addFormatToken("N",0,0,"eraAbbr");addFormatToken("NN",0,0,"eraAbbr");addFormatToken("NNN",0,0,"eraAbbr");addFormatToken("NNNN",0,0,"eraName");addFormatToken("NNNNN",0,0,"eraNarrow");addFormatToken("y",["y",1],"yo","eraYear");addFormatToken("y",["yy",2],0,"eraYear");addFormatToken("y",["yyy",3],0,"eraYear");addFormatToken("y",["yyyy",4],0,"eraYear");addRegexToken("N",matchEraAbbr);addRegexToken("NN",matchEraAbbr);addRegexToken("NNN",matchEraAbbr);addRegexToken("NNNN",matchEraName);addRegexToken("NNNNN",matchEraNarrow);addParseToken(["N","NN","NNN","NNNN","NNNNN"],(function(e,t,r,n){var a=r._locale.erasParse(e,n,r._strict);if(a){getParsingFlags(r).era=a}else{getParsingFlags(r).invalidEra=e}}));addRegexToken("y",P);addRegexToken("yy",P);addRegexToken("yyy",P);addRegexToken("yyyy",P);addRegexToken("yo",matchEraYearOrdinal);addParseToken(["y","yy","yyy","yyyy"],E);addParseToken(["yo"],(function(e,t,r,n){var a;if(r._locale._eraYearOrdinalRegex){a=e.match(r._locale._eraYearOrdinalRegex)}if(r._locale.eraYearOrdinalParse){t[E]=r._locale.eraYearOrdinalParse(e,a)}else{t[E]=parseInt(e,10)}}));function localeEras(e,t){var r,n,a,s=this._eras||getLocale("en")._eras;for(r=0,n=s.length;r=0){return s[n]}}}function localeErasConvertYear(e,t){var r=e.since<=e.until?+1:-1;if(t===undefined){return hooks(e.since).year()}else{return hooks(e.since).year()+(t-e.offset)*r}}function getEraName(){var e,t,r,n=this.localeData().eras();for(e=0,t=n.length;es){t=s}return setWeekAll.call(this,e,t,r,n,a)}}function setWeekAll(e,t,r,n,a){var s=dayOfYearFromWeeks(e,t,r,n,a),i=createUTCDate(s.year,0,s.dayOfYear);this.year(i.getUTCFullYear());this.month(i.getUTCMonth());this.date(i.getUTCDate());return this}addFormatToken("Q",0,"Qo","quarter");addRegexToken("Q",y);addParseToken("Q",(function(e,t){t[j]=(toInt(e)-1)*3}));function getSetQuarter(e){return e==null?Math.ceil((this.month()+1)/3):this.month((e-1)*3+this.month()%3)}addFormatToken("D",["DD",2],"Do","date");addRegexToken("D",M,U);addRegexToken("DD",M,v);addRegexToken("Do",(function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient}));addParseToken(["D","DD"],H);addParseToken("Do",(function(e,t){t[H]=toInt(e.match(M)[0])}));var Ue=makeGetSet("Date",true);addFormatToken("DDD",["DDDD",3],"DDDo","dayOfYear");addRegexToken("DDD",b);addRegexToken("DDDD",w);addParseToken(["DDD","DDDD"],(function(e,t,r){r._dayOfYear=toInt(e)}));function getSetDayOfYear(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return e==null?t:this.add(e-t,"d")}addFormatToken("m",["mm",2],0,"minute");addRegexToken("m",M,A);addRegexToken("mm",M,v);addParseToken(["m","mm"],V);var Ae=makeGetSet("Minutes",false);addFormatToken("s",["ss",2],0,"second");addRegexToken("s",M,A);addRegexToken("ss",M,v);addParseToken(["s","ss"],$);var Le=makeGetSet("Seconds",false);addFormatToken("S",0,0,(function(){return~~(this.millisecond()/100)}));addFormatToken(0,["SS",2],0,(function(){return~~(this.millisecond()/10)}));addFormatToken(0,["SSS",3],0,"millisecond");addFormatToken(0,["SSSS",4],0,(function(){return this.millisecond()*10}));addFormatToken(0,["SSSSS",5],0,(function(){return this.millisecond()*100}));addFormatToken(0,["SSSSSS",6],0,(function(){return this.millisecond()*1e3}));addFormatToken(0,["SSSSSSS",7],0,(function(){return this.millisecond()*1e4}));addFormatToken(0,["SSSSSSSS",8],0,(function(){return this.millisecond()*1e5}));addFormatToken(0,["SSSSSSSSS",9],0,(function(){return this.millisecond()*1e6}));addRegexToken("S",b,y);addRegexToken("SS",b,v);addRegexToken("SSS",b,w);var Ce,Ee;for(Ce="SSSS";Ce.length<=9;Ce+="S"){addRegexToken(Ce,P)}function parseMs(e,t){t[z]=toInt(("0."+e)*1e3)}for(Ce="S";Ce.length<=9;Ce+="S"){addParseToken(Ce,parseMs)}Ee=makeGetSet("Milliseconds",false);addFormatToken("z",0,0,"zoneAbbr");addFormatToken("zz",0,0,"zoneName");function getZoneAbbr(){return this._isUTC?"UTC":""}function getZoneName(){return this._isUTC?"Coordinated Universal Time":""}var je=Moment.prototype;je.add=Ye;je.calendar=calendar$1;je.clone=clone;je.diff=diff;je.endOf=endOf;je.format=format;je.from=from;je.fromNow=fromNow;je.to=to;je.toNow=toNow;je.get=stringGet;je.invalidAt=invalidAt;je.isAfter=isAfter;je.isBefore=isBefore;je.isBetween=isBetween;je.isSame=isSame;je.isSameOrAfter=isSameOrAfter;je.isSameOrBefore=isSameOrBefore;je.isValid=isValid$2;je.lang=Fe;je.locale=locale;je.localeData=localeData;je.max=Me;je.min=De;je.parsingFlags=parsingFlags;je.set=stringSet;je.startOf=startOf;je.subtract=Pe;je.toArray=toArray;je.toObject=toObject;je.toDate=toDate;je.toISOString=toISOString;je.inspect=inspect;if(typeof Symbol!=="undefined"&&Symbol.for!=null){je[Symbol.for("nodejs.util.inspect.custom")]=function(){return"Moment<"+this.format()+">"}}je.toJSON=toJSON;je.toString=toString;je.unix=unix;je.valueOf=valueOf;je.creationData=creationData;je.eraName=getEraName;je.eraNarrow=getEraNarrow;je.eraAbbr=getEraAbbr;je.eraYear=getEraYear;je.year=B;je.isLeapYear=getIsLeapYear;je.weekYear=getSetWeekYear;je.isoWeekYear=getSetISOWeekYear;je.quarter=je.quarters=getSetQuarter;je.month=getSetMonth;je.daysInMonth=getDaysInMonth;je.week=je.weeks=getSetWeek;je.isoWeek=je.isoWeeks=getSetISOWeek;je.weeksInYear=getWeeksInYear;je.weeksInWeekYear=getWeeksInWeekYear;je.isoWeeksInYear=getISOWeeksInYear;je.isoWeeksInISOWeekYear=getISOWeeksInISOWeekYear;je.date=Ue;je.day=je.days=getSetDayOfWeek;je.weekday=getSetLocaleDayOfWeek;je.isoWeekday=getSetISODayOfWeek;je.dayOfYear=getSetDayOfYear;je.hour=je.hours=de;je.minute=je.minutes=Ae;je.second=je.seconds=Le;je.millisecond=je.milliseconds=Ee;je.utcOffset=getSetOffset;je.utc=setOffsetToUTC;je.local=setOffsetToLocal;je.parseZone=setOffsetToParsedOffset;je.hasAlignedHourOffset=hasAlignedHourOffset;je.isDST=isDaylightSavingTime;je.isLocal=isLocal;je.isUtcOffset=isUtcOffset;je.isUtc=isUtc;je.isUTC=isUtc;je.zoneAbbr=getZoneAbbr;je.zoneName=getZoneName;je.dates=deprecate("dates accessor is deprecated. Use date instead.",Ue);je.months=deprecate("months accessor is deprecated. Use month instead",getSetMonth);je.years=deprecate("years accessor is deprecated. Use year instead",B);je.zone=deprecate("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",getSetZone);je.isDSTShifted=deprecate("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",isDaylightSavingTimeShifted);function createUnix(e){return createLocal(e*1e3)}function createInZone(){return createLocal.apply(null,arguments).parseZone()}function preParsePostFormat(e){return e}var He=Locale.prototype;He.calendar=calendar;He.longDateFormat=longDateFormat;He.invalidDate=invalidDate;He.ordinal=ordinal;He.preparse=preParsePostFormat;He.postformat=preParsePostFormat;He.relativeTime=relativeTime;He.pastFuture=pastFuture;He.set=set;He.eras=localeEras;He.erasParse=localeErasParse;He.erasConvertYear=localeErasConvertYear;He.erasAbbrRegex=erasAbbrRegex;He.erasNameRegex=erasNameRegex;He.erasNarrowRegex=erasNarrowRegex;He.months=localeMonths;He.monthsShort=localeMonthsShort;He.monthsParse=localeMonthsParse;He.monthsRegex=monthsRegex;He.monthsShortRegex=monthsShortRegex;He.week=localeWeek;He.firstDayOfYear=localeFirstDayOfYear;He.firstDayOfWeek=localeFirstDayOfWeek;He.weekdays=localeWeekdays;He.weekdaysMin=localeWeekdaysMin;He.weekdaysShort=localeWeekdaysShort;He.weekdaysParse=localeWeekdaysParse;He.weekdaysRegex=weekdaysRegex;He.weekdaysShortRegex=weekdaysShortRegex;He.weekdaysMinRegex=weekdaysMinRegex;He.isPM=localeIsPM;He.meridiem=localeMeridiem;function get$1(e,t,r,n){var a=getLocale(),s=createUTC().set(n,t);return a[r](s,e)}function listMonthsImpl(e,t,r){if(isNumber(e)){t=e;e=undefined}e=e||"";if(t!=null){return get$1(e,t,r,"month")}var n,a=[];for(n=0;n<12;n++){a[n]=get$1(e,n,r,"month")}return a}function listWeekdaysImpl(e,t,r,n){if(typeof e==="boolean"){if(isNumber(t)){r=t;t=undefined}t=t||""}else{t=e;r=t;e=false;if(isNumber(t)){r=t;t=undefined}t=t||""}var a=getLocale(),s=e?a._week.dow:0,i,o=[];if(r!=null){return get$1(t,(r+s)%7,n,"day")}for(i=0;i<7;i++){o[i]=get$1(t,(i+s)%7,n,"day")}return o}function listMonths(e,t){return listMonthsImpl(e,t,"months")}function listMonthsShort(e,t){return listMonthsImpl(e,t,"monthsShort")}function listWeekdays(e,t,r){return listWeekdaysImpl(e,t,r,"weekdays")}function listWeekdaysShort(e,t,r){return listWeekdaysImpl(e,t,r,"weekdaysShort")}function listWeekdaysMin(e,t,r){return listWeekdaysImpl(e,t,r,"weekdaysMin")}getSetGlobalLocale("en",{eras:[{since:"0001-01-01",until:+Infinity,offset:1,name:"Anno Domini",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-Infinity,offset:1,name:"Before Christ",narrow:"BC",abbr:"BC"}],dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10,r=toInt(e%100/10)===1?"th":t===1?"st":t===2?"nd":t===3?"rd":"th";return e+r}});hooks.lang=deprecate("moment.lang is deprecated. Use moment.locale instead.",getSetGlobalLocale);hooks.langData=deprecate("moment.langData is deprecated. Use moment.localeData instead.",getLocale);var Ge=Math.abs;function abs(){var e=this._data;this._milliseconds=Ge(this._milliseconds);this._days=Ge(this._days);this._months=Ge(this._months);e.milliseconds=Ge(e.milliseconds);e.seconds=Ge(e.seconds);e.minutes=Ge(e.minutes);e.hours=Ge(e.hours);e.months=Ge(e.months);e.years=Ge(e.years);return this}function addSubtract$1(e,t,r,n){var a=createDuration(t,r);e._milliseconds+=n*a._milliseconds;e._days+=n*a._days;e._months+=n*a._months;return e._bubble()}function add$1(e,t){return addSubtract$1(this,e,t,1)}function subtract$1(e,t){return addSubtract$1(this,e,t,-1)}function absCeil(e){if(e<0){return Math.floor(e)}else{return Math.ceil(e)}}function bubble(){var e=this._milliseconds,t=this._days,r=this._months,n=this._data,a,s,i,o,l;if(!(e>=0&&t>=0&&r>=0||e<=0&&t<=0&&r<=0)){e+=absCeil(monthsToDays(r)+t)*864e5;t=0;r=0}n.milliseconds=e%1e3;a=absFloor(e/1e3);n.seconds=a%60;s=absFloor(a/60);n.minutes=s%60;i=absFloor(s/60);n.hours=i%24;t+=absFloor(i/24);l=absFloor(daysToMonths(t));r+=l;t-=absCeil(monthsToDays(l));o=absFloor(r/12);r%=12;n.days=t;n.months=r;n.years=o;return this}function daysToMonths(e){return e*4800/146097}function monthsToDays(e){return e*146097/4800}function as(e){if(!this.isValid()){return NaN}var t,r,n=this._milliseconds;e=normalizeUnits(e);if(e==="month"||e==="quarter"||e==="year"){t=this._days+n/864e5;r=this._months+daysToMonths(t);switch(e){case"month":return r;case"quarter":return r/3;case"year":return r/12}}else{t=this._days+Math.round(monthsToDays(this._months));switch(e){case"week":return t/7+n/6048e5;case"day":return t+n/864e5;case"hour":return t*24+n/36e5;case"minute":return t*1440+n/6e4;case"second":return t*86400+n/1e3;case"millisecond":return Math.floor(t*864e5)+n;default:throw new Error("Unknown unit "+e)}}}function makeAs(e){return function(){return this.as(e)}}var Ve=makeAs("ms"),$e=makeAs("s"),ze=makeAs("m"),qe=makeAs("h"),Ze=makeAs("d"),Be=makeAs("w"),Je=makeAs("M"),Qe=makeAs("Q"),Xe=makeAs("y"),Ke=Ve;function clone$1(){return createDuration(this)}function get$2(e){e=normalizeUnits(e);return this.isValid()?this[e+"s"]():NaN}function makeGetter(e){return function(){return this.isValid()?this._data[e]:NaN}}var et=makeGetter("milliseconds"),tt=makeGetter("seconds"),rt=makeGetter("minutes"),nt=makeGetter("hours"),at=makeGetter("days"),st=makeGetter("months"),it=makeGetter("years");function weeks(){return absFloor(this.days()/7)}var ot=Math.round,lt={ss:44,s:45,m:45,h:22,d:26,w:null,M:11};function substituteTimeAgo(e,t,r,n,a){return a.relativeTime(t||1,!!r,e,n)}function relativeTime$1(e,t,r,n){var a=createDuration(e).abs(),s=ot(a.as("s")),i=ot(a.as("m")),o=ot(a.as("h")),l=ot(a.as("d")),u=ot(a.as("M")),d=ot(a.as("w")),f=ot(a.as("y")),c=s<=r.ss&&["s",s]||s0;c[4]=n;return substituteTimeAgo.apply(null,c)}function getSetRelativeTimeRounding(e){if(e===undefined){return ot}if(typeof e==="function"){ot=e;return true}return false}function getSetRelativeTimeThreshold(e,t){if(lt[e]===undefined){return false}if(t===undefined){return lt[e]}lt[e]=t;if(e==="s"){lt.ss=t-1}return true}function humanize(e,t){if(!this.isValid()){return this.localeData().invalidDate()}var r=false,n=lt,a,s;if(typeof e==="object"){t=e;e=false}if(typeof e==="boolean"){r=e}if(typeof t==="object"){n=Object.assign({},lt,t);if(t.s!=null&&t.ss==null){n.ss=t.s-1}}a=this.localeData();s=relativeTime$1(this,!r,n,a);if(r){s=a.pastFuture(+this,s)}return a.postformat(s)}var ut=Math.abs;function sign(e){return(e>0)-(e<0)||+e}function toISOString$1(){if(!this.isValid()){return this.localeData().invalidDate()}var e=ut(this._milliseconds)/1e3,t=ut(this._days),r=ut(this._months),n,a,s,i,o=this.asSeconds(),l,u,d,f;if(!o){return"P0D"}n=absFloor(e/60);a=absFloor(n/60);e%=60;n%=60;s=absFloor(r/12);r%=12;i=e?e.toFixed(3).replace(/\.?0+$/,""):"";l=o<0?"-":"";u=sign(this._months)!==sign(o)?"-":"";d=sign(this._days)!==sign(o)?"-":"";f=sign(this._milliseconds)!==sign(o)?"-":"";return l+"P"+(s?u+s+"Y":"")+(r?u+r+"M":"")+(t?d+t+"D":"")+(a||n||e?"T":"")+(a?f+a+"H":"")+(n?f+n+"M":"")+(e?f+i+"S":"")}var dt=Duration.prototype;dt.isValid=isValid$1;dt.abs=abs;dt.add=add$1;dt.subtract=subtract$1;dt.as=as;dt.asMilliseconds=Ve;dt.asSeconds=$e;dt.asMinutes=ze;dt.asHours=qe;dt.asDays=Ze;dt.asWeeks=Be;dt.asMonths=Je;dt.asQuarters=Qe;dt.asYears=Xe;dt.valueOf=Ke;dt._bubble=bubble;dt.clone=clone$1;dt.get=get$2;dt.milliseconds=et;dt.seconds=tt;dt.minutes=rt;dt.hours=nt;dt.days=at;dt.weeks=weeks;dt.months=st;dt.years=it;dt.humanize=humanize;dt.toISOString=toISOString$1;dt.toString=toISOString$1;dt.toJSON=toISOString$1;dt.locale=locale;dt.localeData=localeData;dt.toIsoString=deprecate("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",toISOString$1);dt.lang=Fe;addFormatToken("X",0,0,"unix");addFormatToken("x",0,0,"valueOf");addRegexToken("x",F);addRegexToken("X",W);addParseToken("X",(function(e,t,r){r._d=new Date(parseFloat(e)*1e3)}));addParseToken("x",(function(e,t,r){r._d=new Date(toInt(e))})); +//! moment.js +hooks.version="2.30.1";setHookCallback(createLocal);hooks.fn=je;hooks.min=min;hooks.max=max;hooks.now=now;hooks.utc=createUTC;hooks.unix=createUnix;hooks.months=listMonths;hooks.isDate=isDate;hooks.locale=getSetGlobalLocale;hooks.invalid=createInvalid;hooks.duration=createDuration;hooks.isMoment=isMoment;hooks.weekdays=listWeekdays;hooks.parseZone=createInZone;hooks.localeData=getLocale;hooks.isDuration=isDuration;hooks.monthsShort=listMonthsShort;hooks.weekdaysMin=listWeekdaysMin;hooks.defineLocale=defineLocale;hooks.updateLocale=updateLocale;hooks.locales=listLocales;hooks.weekdaysShort=listWeekdaysShort;hooks.normalizeUnits=normalizeUnits;hooks.relativeTimeRounding=getSetRelativeTimeRounding;hooks.relativeTimeThreshold=getSetRelativeTimeThreshold;hooks.calendarFormat=getCalendarFormat;hooks.prototype=je;hooks.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"};return hooks}))},127:(e,t,r)=>{const n=r(614);const a=r(622);const{fork:s}=r(129);const i=r(840);const o=r.ab+"daemon.js";class BackgroundScheduledTask extends n{constructor(e,t,r){super();if(!r){r={scheduled:true,recoverMissedExecutions:false}}this.cronExpression=e;this.taskPath=t;this.options=r;this.options.name=this.options.name||i.v4();if(r.scheduled){this.start()}}start(){this.stop();this.forkProcess=s(r.ab+"daemon.js");this.forkProcess.on("message",(e=>{switch(e.type){case"task-done":this.emit("task-done",e.result);break}}));let e=this.options;e.scheduled=true;this.forkProcess.send({type:"register",path:a.resolve(this.taskPath),cron:this.cronExpression,options:e})}stop(){if(this.forkProcess){this.forkProcess.kill()}}pid(){if(this.forkProcess){return this.forkProcess.pid}}isRunning(){return!this.forkProcess.killed}}e.exports=BackgroundScheduledTask},296:e=>{"use strict";e.exports=(()=>{function convertAsterisk(e,t){if(e.indexOf("*")!==-1){return e.replace("*",t)}return e}function convertAsterisksToRanges(e){e[0]=convertAsterisk(e[0],"0-59");e[1]=convertAsterisk(e[1],"0-59");e[2]=convertAsterisk(e[2],"0-23");e[3]=convertAsterisk(e[3],"1-31");e[4]=convertAsterisk(e[4],"1-12");e[5]=convertAsterisk(e[5],"0-6");return e}return convertAsterisksToRanges})()},605:(e,t,r)=>{"use strict";const n=r(422);const a=r(2);const s=r(296);const i=r(646);const o=r(524);e.exports=(()=>{function appendSeccondExpression(e){if(e.length===5){return["0"].concat(e)}return e}function removeSpaces(e){return e.replace(/\s{2,}/g," ").trim()}function normalizeIntegers(e){for(let t=0;t{"use strict";e.exports=(()=>{const e=["january","february","march","april","may","june","july","august","september","october","november","december"];const t=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"];function convertMonthName(e,t){for(let r=0;r{"use strict";e.exports=(()=>{function replaceWithRange(e,t,r,n){const a=[];let s=parseInt(n);let i=parseInt(r);if(i>s){s=parseInt(r);i=parseInt(n)}for(let e=i;e<=s;e++){a.push(e)}return e.replace(new RegExp(t,"i"),a.join())}function convertRange(e){const t=/(\d+)-(\d+)/;let r=t.exec(e);while(r!==null&&r.length>0){e=replaceWithRange(e,r[0],r[1],r[2]);r=t.exec(e)}return e}function convertAllRanges(e){for(let t=0;t{"use strict";e.exports=(()=>{function convertSteps(e){var t=/^(.+)\/(\w+)$/;for(var r=0;r0;if(a){var s=n[2];if(isNaN(s)){throw s+" is not a valid step value"}var i=n[1].split(",");var o=[];var l=parseInt(s,10);for(var u=0;u<=i.length;u++){var d=parseInt(i[u],10);if(d%l===0){o.push(d)}}e[r]=o.join(",")}}return e}return convertSteps})()},2:e=>{"use strict";e.exports=(()=>{const e=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"];const t=["sun","mon","tue","wed","thu","fri","sat"];function convertWeekDayName(e,t){for(let r=0;r{"use strict";const n=r(356);const a=r(127);const s=r(637);const i=r(330);function schedule(e,t,r){const n=createTask(e,t,r);i.save(n);return n}function createTask(e,t,r){if(typeof t==="string")return new a(e,t,r);return new n(e,t,r)}function validate(e){try{s(e);return true}catch(e){return false}}function getTasks(){return i.getTasks()}e.exports={schedule:schedule,validate:validate,getTasks:getTasks}},637:(e,t,r)=>{"use strict";const n=r(605);const a=/^(?:\d+|\*|\*\/\d+)$/;function isValidExpression(e,t,r){const n=e.split(",");for(const e of n){const n=parseInt(e,10);if(!Number.isNaN(n)&&(nr)||!a.test(e))return false}return true}function isInvalidSecond(e){return!isValidExpression(e,0,59)}function isInvalidMinute(e){return!isValidExpression(e,0,59)}function isInvalidHour(e){return!isValidExpression(e,0,23)}function isInvalidDayOfMonth(e){return!isValidExpression(e,1,31)}function isInvalidMonth(e){return!isValidExpression(e,1,12)}function isInvalidWeekDay(e){return!isValidExpression(e,0,7)}function validateFields(e,t){if(isInvalidSecond(t[0]))throw new Error(`${e[0]} is a invalid expression for second`);if(isInvalidMinute(t[1]))throw new Error(`${e[1]} is a invalid expression for minute`);if(isInvalidHour(t[2]))throw new Error(`${e[2]} is a invalid expression for hour`);if(isInvalidDayOfMonth(t[3]))throw new Error(`${e[3]} is a invalid expression for day of month`);if(isInvalidMonth(t[4]))throw new Error(`${e[4]} is a invalid expression for month`);if(isInvalidWeekDay(t[5]))throw new Error(`${e[5]} is a invalid expression for week day`)}function validate(e){if(typeof e!=="string")throw new TypeError("pattern must be a string!");const t=e.split(" ");const r=n(e).split(" ");if(t.length===5)t.unshift("0");validateFields(t,r)}e.exports=validate},356:(e,t,r)=>{"use strict";const n=r(614);const a=r(554);const s=r(450);const i=r(840);class ScheduledTask extends n{constructor(e,t,r){super();if(!r){r={scheduled:true,recoverMissedExecutions:false}}this.options=r;this.options.name=this.options.name||i.v4();this._task=new a(t);this._scheduler=new s(e,r.timezone,r.recoverMissedExecutions);this._scheduler.on("scheduled-time-matched",(e=>{this.now(e)}));if(r.scheduled!==false){this._scheduler.start()}if(r.runOnInit===true){this.now("init")}}now(e="manual"){let t=this._task.execute(e);this.emit("task-done",t)}start(){this._scheduler.start()}stop(){this._scheduler.stop()}}e.exports=ScheduledTask},450:(e,t,r)=>{"use strict";const n=r(614);const a=r(435);class Scheduler extends n{constructor(e,t,r){super();this.timeMatcher=new a(e,t);this.autorecover=r}start(){this.stop();let e=process.hrtime();let t=this.timeMatcher.apply(new Date);const matchTime=()=>{const r=1e3;const n=process.hrtime(e);const a=(n[0]*1e9+n[1])/1e6;const s=Math.floor(a/1e3);for(let e=s;e>=0;e--){const r=new Date((new Date).getTime()-e*1e3);let n=this.timeMatcher.apply(r);if(t.getTime(){e.exports=(()=>{if(!global.scheduledTasks){global.scheduledTasks=new Map}return{save:e=>{if(!e.options){const t=r(840);e.options={};e.options.name=t.v4()}global.scheduledTasks.set(e.options.name,e)},getTasks:()=>global.scheduledTasks}})()},554:(e,t,r)=>{"use strict";const n=r(614);class Task extends n{constructor(e){super();if(typeof e!=="function"){throw"execution must be a function"}this._execution=e}execute(e){let t;try{t=this._execution(e)}catch(e){return this.emit("task-failed",e)}if(t instanceof Promise){return t.then((()=>this.emit("task-finished"))).catch((e=>this.emit("task-failed",e)))}else{this.emit("task-finished");return t}}}e.exports=Task},435:(e,t,r)=>{const n=r(637);const a=r(605);function matchPattern(e,t){if(e.indexOf(",")!==-1){const r=e.split(",");return r.indexOf(t.toString())!==-1}return e===t.toString()}class TimeMatcher{constructor(e,t){n(e);this.pattern=a(e);this.timezone=t;this.expressions=this.pattern.split(" ");this.dtf=this.timezone?new Intl.DateTimeFormat("en-US",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hourCycle:"h23",fractionalSecondDigits:3,timeZone:this.timezone}):null}match(e){e=this.apply(e);const t=matchPattern(this.expressions[0],e.getSeconds());const r=matchPattern(this.expressions[1],e.getMinutes());const n=matchPattern(this.expressions[2],e.getHours());const a=matchPattern(this.expressions[3],e.getDate());const s=matchPattern(this.expressions[4],e.getMonth()+1);const i=matchPattern(this.expressions[5],e.getDay());return t&&r&&n&&a&&s&&i}apply(e){if(this.dtf){return new Date(this.dtf.format(e))}return e}}e.exports=TimeMatcher},840:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});Object.defineProperty(t,"v1",{enumerable:true,get:function(){return n.default}});Object.defineProperty(t,"v3",{enumerable:true,get:function(){return a.default}});Object.defineProperty(t,"v4",{enumerable:true,get:function(){return s.default}});Object.defineProperty(t,"v5",{enumerable:true,get:function(){return i.default}});Object.defineProperty(t,"NIL",{enumerable:true,get:function(){return o.default}});Object.defineProperty(t,"version",{enumerable:true,get:function(){return l.default}});Object.defineProperty(t,"validate",{enumerable:true,get:function(){return u.default}});Object.defineProperty(t,"stringify",{enumerable:true,get:function(){return d.default}});Object.defineProperty(t,"parse",{enumerable:true,get:function(){return f.default}});var n=_interopRequireDefault(r(628));var a=_interopRequireDefault(r(409));var s=_interopRequireDefault(r(122));var i=_interopRequireDefault(r(120));var o=_interopRequireDefault(r(332));var l=_interopRequireDefault(r(595));var u=_interopRequireDefault(r(900));var d=_interopRequireDefault(r(950));var f=_interopRequireDefault(r(746));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}},569:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.default=void 0;var n=_interopRequireDefault(r(417));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function md5(e){if(Array.isArray(e)){e=Buffer.from(e)}else if(typeof e==="string"){e=Buffer.from(e,"utf8")}return n.default.createHash("md5").update(e).digest()}var a=md5;t.default=a},332:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.default=void 0;var r="00000000-0000-0000-0000-000000000000";t.default=r},746:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.default=void 0;var n=_interopRequireDefault(r(900));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function parse(e){if(!(0,n.default)(e)){throw TypeError("Invalid UUID")}let t;const r=new Uint8Array(16);r[0]=(t=parseInt(e.slice(0,8),16))>>>24;r[1]=t>>>16&255;r[2]=t>>>8&255;r[3]=t&255;r[4]=(t=parseInt(e.slice(9,13),16))>>>8;r[5]=t&255;r[6]=(t=parseInt(e.slice(14,18),16))>>>8;r[7]=t&255;r[8]=(t=parseInt(e.slice(19,23),16))>>>8;r[9]=t&255;r[10]=(t=parseInt(e.slice(24,36),16))/1099511627776&255;r[11]=t/4294967296&255;r[12]=t>>>24&255;r[13]=t>>>16&255;r[14]=t>>>8&255;r[15]=t&255;return r}var a=parse;t.default=a},814:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.default=void 0;var r=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;t.default=r},807:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.default=rng;var n=_interopRequireDefault(r(417));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const a=new Uint8Array(256);let s=a.length;function rng(){if(s>a.length-16){n.default.randomFillSync(a);s=0}return a.slice(s,s+=16)}},274:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.default=void 0;var n=_interopRequireDefault(r(417));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function sha1(e){if(Array.isArray(e)){e=Buffer.from(e)}else if(typeof e==="string"){e=Buffer.from(e,"utf8")}return n.default.createHash("sha1").update(e).digest()}var a=sha1;t.default=a},950:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.default=void 0;var n=_interopRequireDefault(r(900));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const a=[];for(let e=0;e<256;++e){a.push((e+256).toString(16).substr(1))}function stringify(e,t=0){const r=(a[e[t+0]]+a[e[t+1]]+a[e[t+2]]+a[e[t+3]]+"-"+a[e[t+4]]+a[e[t+5]]+"-"+a[e[t+6]]+a[e[t+7]]+"-"+a[e[t+8]]+a[e[t+9]]+"-"+a[e[t+10]]+a[e[t+11]]+a[e[t+12]]+a[e[t+13]]+a[e[t+14]]+a[e[t+15]]).toLowerCase();if(!(0,n.default)(r)){throw TypeError("Stringified UUID is invalid")}return r}var s=stringify;t.default=s},628:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.default=void 0;var n=_interopRequireDefault(r(807));var a=_interopRequireDefault(r(950));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let s;let i;let o=0;let l=0;function v1(e,t,r){let u=t&&r||0;const d=t||new Array(16);e=e||{};let f=e.node||s;let c=e.clockseq!==undefined?e.clockseq:i;if(f==null||c==null){const t=e.random||(e.rng||n.default)();if(f==null){f=s=[t[0]|1,t[1],t[2],t[3],t[4],t[5]]}if(c==null){c=i=(t[6]<<8|t[7])&16383}}let h=e.msecs!==undefined?e.msecs:Date.now();let m=e.nsecs!==undefined?e.nsecs:l+1;const g=h-o+(m-l)/1e4;if(g<0&&e.clockseq===undefined){c=c+1&16383}if((g<0||h>o)&&e.nsecs===undefined){m=0}if(m>=1e4){throw new Error("uuid.v1(): Can't create more than 10M uuids/sec")}o=h;l=m;i=c;h+=122192928e5;const k=((h&268435455)*1e4+m)%4294967296;d[u++]=k>>>24&255;d[u++]=k>>>16&255;d[u++]=k>>>8&255;d[u++]=k&255;const _=h/4294967296*1e4&268435455;d[u++]=_>>>8&255;d[u++]=_&255;d[u++]=_>>>24&15|16;d[u++]=_>>>16&255;d[u++]=c>>>8|128;d[u++]=c&255;for(let e=0;e<6;++e){d[u+e]=f[e]}return t||(0,a.default)(d)}var u=v1;t.default=u},409:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.default=void 0;var n=_interopRequireDefault(r(998));var a=_interopRequireDefault(r(569));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const s=(0,n.default)("v3",48,a.default);var i=s;t.default=i},998:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.default=_default;t.URL=t.DNS=void 0;var n=_interopRequireDefault(r(950));var a=_interopRequireDefault(r(746));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function stringToBytes(e){e=unescape(encodeURIComponent(e));const t=[];for(let r=0;r{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.default=void 0;var n=_interopRequireDefault(r(807));var a=_interopRequireDefault(r(950));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function v4(e,t,r){e=e||{};const s=e.random||(e.rng||n.default)();s[6]=s[6]&15|64;s[8]=s[8]&63|128;if(t){r=r||0;for(let e=0;e<16;++e){t[r+e]=s[e]}return t}return(0,a.default)(s)}var s=v4;t.default=s},120:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.default=void 0;var n=_interopRequireDefault(r(998));var a=_interopRequireDefault(r(274));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const s=(0,n.default)("v5",80,a.default);var i=s;t.default=i},900:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.default=void 0;var n=_interopRequireDefault(r(814));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function validate(e){return typeof e==="string"&&n.default.test(e)}var a=validate;t.default=a},595:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.default=void 0;var n=_interopRequireDefault(r(900));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function version(e){if(!(0,n.default)(e)){throw TypeError("Invalid UUID")}return parseInt(e.substr(14,1),16)}var a=version;t.default=a},129:e=>{"use strict";e.exports=require("child_process")},417:e=>{"use strict";e.exports=require("crypto")},614:e=>{"use strict";e.exports=require("events")},747:e=>{"use strict";e.exports=require("fs")},622:e=>{"use strict";e.exports=require("path")}};var t={};function __nccwpck_require__(r){var n=t[r];if(n!==undefined){return n.exports}var a=t[r]={id:r,loaded:false,exports:{}};var s=true;try{e[r].call(a.exports,a,a.exports,__nccwpck_require__);s=false}finally{if(s)delete t[r]}a.loaded=true;return a.exports}(()=>{__nccwpck_require__.nmd=e=>{e.paths=[];if(!e.children)e.children=[];return e}})();if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var r=__nccwpck_require__(200);module.exports=r})(); \ No newline at end of file diff --git a/package.json b/package.json index e36dec8..14e6488 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "main": "index.js", "scripts": { "build": "rm -rf build/ && prettier --write source/ && tsc", - "compile": "export NODE_OPTIONS=--openssl-legacy-provider && ncc build build/server.js -m -o dist && mv dist/index.js dist/one-result-gw.js" + "compile": "SET NODE_OPTIONS=--openssl-legacy-provider && ncc build build/server.js -m -o dist && mv dist/index.js dist/one-etl-tat-gw.js" }, "keywords": [], "author": "", diff --git a/source/config/config.ts b/source/config/config.ts index deb2303..a04ab52 100644 --- a/source/config/config.ts +++ b/source/config/config.ts @@ -5,6 +5,10 @@ interface IConfig { schedule: string[]; delay: number; row_per_batch: number; + // kode, date, target + // kode:string, + // date:string, + // target:string } const j_config = JSON.parse(readFileSync("./config-etl-tat.json").toString()); @@ -13,5 +17,9 @@ const config: IConfig = { schedule: j_config["schedule"], delay: j_config["delay"], row_per_batch: j_config["row_per_batch"], + // kode, date, target + // kode: j_config["kode"], + // date: j_config["date"], + // target: j_config["target"] }; export default config; diff --git a/source/lib_052_000.ts b/source/lib_052_000.ts new file mode 100644 index 0000000..2094ce1 --- /dev/null +++ b/source/lib_052_000.ts @@ -0,0 +1,28 @@ +import axios from "axios"; +import config from "./config/config"; +import logging from "./config/logging"; +import { NAME_SPACE } from "./server"; + +export const rpt_052_000 = async ( + kode: string, + date: string, + target: string +) => { + // etl/Tat/proses_etl/000/2021-06-12/0 + const url_patient = + config.base_url + "etl/Tat/proses_etl/" + kode + "/" + date + "/" + target; + logging.info(NAME_SPACE, "Info : " + url_patient); + try { + const resp = await axios.get(url_patient, { + responseType: "arraybuffer", + }); + const jresp = JSON.parse(resp.data.toString()); + return jresp; + } catch (e) { + if (axios.isAxiosError(e)) { + logging.error(NAME_SPACE, e.response?.data.toString()); + } else if (e instanceof Error) { + logging.error(NAME_SPACE, e.message); + } + } +}; diff --git a/source/server.ts b/source/server.ts index 67d9d8e..ffd5da7 100644 --- a/source/server.ts +++ b/source/server.ts @@ -1,17 +1,10 @@ import config from "./config/config"; import logging from "./config/logging"; import * as Xcron from "node-cron"; -import { get_order } from "./lib_order"; -import axios from "axios"; export const NAME_SPACE = "OneEtlTat Gateway"; const VERSION = "1.0"; -const pre_url_lab = config.base_url + "/etl/mgmmcu/generate_kelainan_lab/"; -const pre_url_nonlab = - config.base_url + "/etl/mgmmcu/generate_kelainan_nonlab/"; -const pre_url_fisik = config.base_url + "/etl/fisik/generate/"; - let isRunning: boolean = false; let isRefreshRunning: boolean = false; @@ -32,42 +25,23 @@ async function one_result_job() { } isRunning = true; try { + let dateTime = new Date(); + let dateTimeString = dateTime.toString(); + logging.info(NAME_SPACE, "Starting Job " + VERSION); - //Get Order - logging.info(NAME_SPACE, "Get Etl Mcu"); - var req = await get_order(config.row_per_batch); - if (req["status"] != "OK") { - logging.error(NAME_SPACE, "\t Error", req); - } else { - logging.info(NAME_SPACE, "\t Process Etl start"); - for (var i = 0; i < req["data"].length; i++) { - var nolab = req["data"][i]["no_reg"]; - logging.info(NAME_SPACE, "\t Process Etl : " + nolab); - var headerID = req["data"][i]["T_OrderHeaderID"]; - var mgmMcuID = req["data"][i]["Mgm_McuID"]; - var etl_resp = ""; - //Etl Lab - var url_lab = pre_url_lab + "/" + mgmMcuID + "/" + headerID; - logging.info(NAME_SPACE, "\t\t Lab :" + url_lab); - etl_resp = await axios.get(url_lab); - logging.info(NAME_SPACE, "\t\t\t", etl_resp); - //Etl NonLab - var url_nonlab = pre_url_nonlab + "/" + mgmMcuID + "/" + headerID; - logging.info(NAME_SPACE, "\t\t NonLab:" + url_nonlab); - etl_resp = await axios.get(url_nonlab); - var j_resp = JSON.parse(etl_resp); - logging.info(NAME_SPACE, "\t\t\t", j_resp["status"]); - //Etl Fisik - var url_fisik = pre_url_fisik + "/" + mgmMcuID + "/" + headerID; - logging.info(NAME_SPACE, "\t\t Fisik :" + url_fisik); - etl_resp = await axios.get(url_fisik); - j_resp = JSON.parse(etl_resp); - logging.info(NAME_SPACE, "\t\t\t", j_resp["status"]); - //Sleep - logging.info(NAME_SPACE, "\t wait 3s"); - await delay(3000); - } - } + logging.info(NAME_SPACE, "dateTimeString " + dateTimeString); + + // rpt_052_000 + // logging.info(NAME_SPACE, "rpt_052_000"); + // var resp = await rpt_052_000("000",dateTimeString,"0"); + // if (resp["status"] == "OK") { + // logging.info(NAME_SPACE, "\t Success"); + // } else { + // logging.error(NAME_SPACE, "\t Error " + resp["message"]); + // } + // logging.info(NAME_SPACE, "Wait " + config.delay + " second"); + // await delay(config.delay * 1000); + logging.info(NAME_SPACE, "End Job"); isRunning = false; } catch (e) {