Socket
Socket
Sign inDemoInstall

lemoncloud-engine-js

Package Overview
Dependencies
116
Maintainers
3
Versions
66
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.0.22 to 1.0.23

lib/agw-proxy.js

2

api/_meta-api.js

@@ -1,1 +0,1 @@

"use strict";var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};exports=module.exports=function(e,r){if(!e)throw new Error("_$(global instance pool) is required!");e._;var _=e.U,l=e.log,m=(e.inf,e.err),E=_.NS("META","yellow"),d=e.MMS;function v(e){return b(404,e)}function g(e){return b(503,e)}function b(e,r){return{statusCode:e,headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Credentials":!0},body:JSON.stringify(r)}}var t=function(e,r,t){r.callbackWaitsForEmptyEventLoop=!1;var n=e.queryStringParameters||{},o=e.pathParameters||{},i=decodeURIComponent(o.type||""),d=decodeURIComponent(o.id||""),a=(d||"GET"!==e.httpMethod?e.httpMethod:"LIST")||"",s=decodeURIComponent(o.cmd||""),u=!a&&e.Records?"EVENT":{LIST:"LIST",GET:"GET",PUT:"PUT",POST:"POST",DELETE:"DELETE"}[a],p=e.body&&("string"==typeof e.body&&(e.body.startsWith("{")||e.body.startsWith("["))?JSON.parse(e.body):e.body)||e.Records&&{records:e.Records}||null;!p&&l(E,"#"+u+":"+s+" ("+a+", "+i+"/"+d+")...."),p&&l(E,"#"+u+":"+s+" ("+a+", "+i+"/"+d+").... body.len=",p?_.json(p).length:-1);var c={_id:d,_param:n,_body:p,_ctx:r},f=Promise.resolve(c),y=function(e,r,t){var n=null;switch(e){case"LIST?":n=T;break;case"GET":n=P,"self-test"===t&&(n=h);break;case"PUT":case"POST":case"DELETE":break;case"EVENT":n=j}return n}(u,0,s);if(!y)return t(null,v({MODE:u}));try{f.then(function(e){var r=e._id,t=e._param,n=e._body,o=e._ctx;return y(r,t,n,o)}).then(function(e){return e&&"object"===(void 0===e?"undefined":_typeof(e))&&(e=_.cleanup(e)),t(null,b(200,e)),!0}).catch(function(e){return m(E,"!!! callback@1 with err",e),0<=(e&&e.message||"").indexOf("404 NOT FOUND")?t(null,v(e.message)):t(null,g(e.message||e)),!1})}catch(e){t(e,g(e.message))}};t.do_list_meta=T,t.do_get_meta=P,t.do_put_meta=function(n,e,r,t){var o=Object.assign({},r||e);if(!o.type)return Promise.reject(new Error("type is required!"));var i=o.type;return delete o.type,d.do_read(n,o).then(function(e){var r=e._node||{},t=e.deleted_at||r.deleted_at||0;return t?Promise.reject(new Error("404 NOT FOUND: Node deleted_at="+t)):r.type&&r.type!=i?Promise.reject(new Error("404 NOT FOUND: Invalid Type="+r.type)):(l(E,"> update =",o),d.do_update(n,o))})},t.do_post_meta=function(e,r,t,n){if(0!==e)return Promise.reject(new Error("invalid id:"+e));var o=Object.assign({},t||r);return o.type?d.do_create_safe(e,o):Promise.reject(new Error("type is required!"))},t.do_delete_meta=function(r,e,t,n){if("number"!=typeof r)return Promise.reject(new Error("invalid id:"+r));var o=Object.assign({},t||e);if(!o.type)return Promise.reject(new Error("type is required!"));var i=o.type;return delete o.type,d.do_read(r,o).then(function(t){var e=t._node||{};return t.deleted_at||e.deleted_at?t:e.type&&e.type!=i?Promise.reject(new Error("404 NOT FOUND: Invalid Type="+e.type)):d.do_delete(r,o).then(function(e){var r=(e._node||e).deleted_at||0;return t.deleted_at=r,t})})},t.do_self_test_meta=h;t.do_chain_on_update_parent=function(r){if(!r.type)return Promise.reject(new Error("type is required!"));var t=r.type;if(void 0!==r.parent){var n=(""+r.parent).trim();if(n&&"0"!==n){if("string"!=typeof r.parent)return d.do_read(n).then(function(e){return l(E,"> set parent-id :=",e.id,"<- pid:"+n),r.parent=e.id,e.type!==t?Promise.reject(new Error("parent.type is different. type:"+e.type)):r.parent==r.id||r.parent==r._id?Promise.reject(new Error("parent-id is same as id")):r});var o={type:t,name:r.parent};return o.refid=d.calculate_refid(o),d.do_search_refid(o).then(function(e){return l(E,"> set parent-id :=",e.id,"<- ref:"+o.refid),r.parent=e.id,r.parent==r.id||r.parent==r._id?Promise.reject(new Error("parent is same as id")):r})}r.parent=0}return r};t.do_chain_on_update_group=function(r){if(void 0!==r.group){var t=(""+r.group).trim();if(t&&"0"!==t&&""!==t){if("string"!=typeof r.group)return d.do_read(t).then(function(e){return l(E,"> set group-id :=",e.id,"<- gid:"+t),r.group=e.id,"group"!==e.type?Promise.reject(new Error("group.type is different. type:"+e.type)):r.group==r.id||r.group==r._id?Promise.reject(new Error("group-id is same as id")):r});var n={type:"group",name:t};return n.refid=d.calculate_refid(n),d.do_search_refid(n).then(function(e){return l(E,"> set group-id :=",e.id,"<- refid:",n.refid),r.group=e.id,r})}r.group=0}return r};function h(e,r,t,n){l(E,"do_self_test_meta("+e+")....");var o=Object.assign({},t||{});return o.id=_.N(e,0),Promise.resolve(o).then(function(e){return d.do_test_self(e,r)})}function T(e,r,t,n){var o=Object.assign({},t||r);return o.type?d.do_search(e,o):Promise.reject(new Error("type is required!"))}function P(e,r,t,n){var o=Object.assign({},t||r);if(!o.type)return Promise.reject(new Error("type is required!"));var i=o.type;return delete o.type,d.do_read(e,o).then(function(e){var r=e._node||{},t=e.deleted_at||r.deleted_at||0;return t?Promise.reject(new Error("404 NOT FOUND: Node deleted_at="+t)):r.type&&r.type!=i?Promise.reject(new Error("404 NOT FOUND: Invalid Type="+r.type)):e})}function j(e,r,t,n){return l(E,"do_event_records("+e+")...."),d.on_records(t)}return t};
"use strict";var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};exports=module.exports=function(e,r){if(!e)throw new Error("_$(global instance pool) is required!");e._;var _=e.U,l=e.log,m=(e.inf,e.err),E=_.NS("META","yellow"),d=e.MMS;function g(e){return b(404,e)}function v(e){return b(503,e)}function b(e,r){return{statusCode:e,headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Credentials":!0},body:JSON.stringify(r)}}function t(e,r,t){r.callbackWaitsForEmptyEventLoop=!1;var n=e.queryStringParameters||{},o=e.pathParameters||{},i=decodeURIComponent(o.type||""),d=decodeURIComponent(o.id||""),a=(d||"GET"!==e.httpMethod?e.httpMethod:"LIST")||"",s=decodeURIComponent(o.cmd||""),u=!a&&e.Records?"EVENT":{LIST:"LIST",GET:"GET",PUT:"PUT",POST:"POST",DELETE:"DELETE"}[a],p=e.body&&("string"==typeof e.body&&(e.body.startsWith("{")||e.body.startsWith("["))?JSON.parse(e.body):e.body)||e.Records&&{records:e.Records}||null;p||l(E,"#"+u+":"+s+" ("+a+", "+i+"/"+d+")...."),p&&l(E,"#"+u+":"+s+" ("+a+", "+i+"/"+d+").... body.len=",p?_.json(p).length:-1);var c={_id:d,_param:n,_body:p,_ctx:r},f=Promise.resolve(c),y=function(e,r,t){var n=null;switch(e){case"LIST?":n=T;break;case"GET":n=P,"self-test"===t&&(n=h);break;case"PUT":case"POST":case"DELETE":break;case"EVENT":n=j}return n}(u,0,s);if(!y)return t(null,g({MODE:u}));try{f.then(function(e){var r=e._id,t=e._param,n=e._body,o=e._ctx;return y(r,t,n,o)}).then(function(e){return e&&"object"===(void 0===e?"undefined":_typeof(e))&&(e=_.cleanup(e)),t(null,function(e){return b(200,e)}(e)),!0}).catch(function(e){return m(E,"!!! callback@1 with err",e),0<=(e&&e.message||"").indexOf("404 NOT FOUND")?t(null,g(e.message)):t(null,v(e.message||e)),!1})}catch(e){t(e,v(e.message))}}t.do_list_meta=T,t.do_get_meta=P,t.do_put_meta=function(n,e,r,t){var o=Object.assign({},r||e);if(!o.type)return Promise.reject(new Error("type is required!"));var i=o.type;return delete o.type,d.do_read(n,o).then(function(e){var r=e._node||{},t=e.deleted_at||r.deleted_at||0;return t?Promise.reject(new Error("404 NOT FOUND: Node deleted_at="+t)):r.type&&r.type!=i?Promise.reject(new Error("404 NOT FOUND: Invalid Type="+r.type)):(l(E,"> update =",o),d.do_update(n,o))})},t.do_post_meta=function(e,r,t,n){if(0!==e)return Promise.reject(new Error("invalid id:"+e));var o=Object.assign({},t||r);return o.type?d.do_create_safe(e,o):Promise.reject(new Error("type is required!"))},t.do_delete_meta=function(r,e,t,n){if("number"!=typeof r)return Promise.reject(new Error("invalid id:"+r));var o=Object.assign({},t||e);if(!o.type)return Promise.reject(new Error("type is required!"));var i=o.type;return delete o.type,d.do_read(r,o).then(function(t){var e=t._node||{};return t.deleted_at||e.deleted_at?t:e.type&&e.type!=i?Promise.reject(new Error("404 NOT FOUND: Invalid Type="+e.type)):d.do_delete(r,o).then(function(e){var r=(e._node||e).deleted_at||0;return t.deleted_at=r,t})})},t.do_self_test_meta=h;t.do_chain_on_update_parent=function(r){if(!r.type)return Promise.reject(new Error("type is required!"));var t=r.type;if(void 0!==r.parent){var n=(""+r.parent).trim();if(n&&"0"!==n){if("string"!=typeof r.parent)return d.do_read(n).then(function(e){return l(E,"> set parent-id :=",e.id,"<- pid:"+n),r.parent=e.id,e.type!==t?Promise.reject(new Error("parent.type is different. type:"+e.type)):r.parent==r.id||r.parent==r._id?Promise.reject(new Error("parent-id is same as id")):r});var o={type:t,name:r.parent};return o.refid=d.calculate_refid(o),d.do_search_refid(o).then(function(e){return l(E,"> set parent-id :=",e.id,"<- ref:"+o.refid),r.parent=e.id,r.parent==r.id||r.parent==r._id?Promise.reject(new Error("parent is same as id")):r})}r.parent=0}return r};t.do_chain_on_update_group=function(r){if(void 0!==r.group){var t=(""+r.group).trim();if(t&&"0"!==t&&""!==t){if("string"!=typeof r.group)return d.do_read(t).then(function(e){return l(E,"> set group-id :=",e.id,"<- gid:"+t),r.group=e.id,"group"!==e.type?Promise.reject(new Error("group.type is different. type:"+e.type)):r.group==r.id||r.group==r._id?Promise.reject(new Error("group-id is same as id")):r});var n={type:"group",name:t};return n.refid=d.calculate_refid(n),d.do_search_refid(n).then(function(e){return l(E,"> set group-id :=",e.id,"<- refid:",n.refid),r.group=e.id,r})}r.group=0}return r};function h(e,r,t,n){l(E,"do_self_test_meta("+e+")....");var o=Object.assign({},t||{});return o.id=_.N(e,0),Promise.resolve(o).then(function(e){return d.do_test_self(e,r)})}function T(e,r,t,n){var o=Object.assign({},t||r);return o.type?d.do_search(e,o):Promise.reject(new Error("type is required!"))}function P(e,r,t,n){var o=Object.assign({},t||r);if(!o.type)return Promise.reject(new Error("type is required!"));var i=o.type;return delete o.type,d.do_read(e,o).then(function(e){var r=e._node||{},t=e.deleted_at||r.deleted_at||0;return t?Promise.reject(new Error("404 NOT FOUND: Node deleted_at="+t)):r.type&&r.type!=i?Promise.reject(new Error("404 NOT FOUND: Invalid Type="+r.type)):e})}function j(e,r,t,n){return l(E,"do_event_records("+e+")...."),d.on_records(t)}return t};

@@ -1,1 +0,1 @@

"use strict";var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};exports=module.exports=function(e,t){if(!e)throw new Error("_$(global instance pool) is required!");e._;var f=e.U,h=e.log,p=(e.inf,e.err),y=f.NS("CHAT","yellow");function g(e){return v(404,e)}function b(e){return v(503,e)}function v(e,t){return{statusCode:e,headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Credentials":!0},body:JSON.stringify(t)}}var r=function(e,t,r){t.callbackWaitsForEmptyEventLoop=!1;var n=e.queryStringParameters||{},o=e.pathParameters||{},i=decodeURIComponent(o.type||""),a=decodeURIComponent(o.id||""),u=(a||"GET"!==e.httpMethod?e.httpMethod:"LIST")||"",s=decodeURIComponent(o.cmd||""),c=!u&&e.Records?"EVENT":{LIST:"LIST",GET:"GET",PUT:"PUT",POST:"POST",DELETE:"DELETE"}[u],d=e.body&&("string"==typeof e.body&&(e.body.startsWith("{")||e.body.startsWith("["))?JSON.parse(e.body):e.body)||e.Records&&{records:e.Records}||null;!d&&h(y,"#"+c+":"+s+" ("+u+", "+i+"/"+a+")...."),d&&h(y,"#"+c+":"+s+" ("+u+", "+i+"/"+a+").... body.len=",d?f.json(d).length:-1);var _={_id:a,_param:n,_body:d,_ctx:t},m=Promise.resolve(_),l=function(e,t,r){var n=null;switch(e){case"LIST":n=E;break;case"GET":n=T,"0"===t&&"self-test"===r&&(n=S);break;case"PUT":n=P;break;case"POST":n=w;break;case"DELETE":n=I}return n}(c,a,s);if(!l)return r(null,g({MODE:c}));try{m.then(function(e){var t=e._id,r=e._param,n=e._body,o=e._ctx;return l(t,r,n,o)}).then(function(e){return e&&"object"===(void 0===e?"undefined":_typeof(e))&&(e=f.cleanup(e)),r(null,v(200,e)),!0}).catch(function(e){return p(y,"!!! callback@1 with err",e),0<=(e&&e.message||"").indexOf("404 NOT FOUND")?r(null,g(e.message)):r(null,b(e.message||e)),!1})}catch(e){r(e,b(e.message))}};r.do_list_chat=E,r.do_get_chat=T,r.do_put_chat=P,r.do_post_chat=w,r.do_delete_chat=I;var o="chat",i={id:"ID",parent:"Parent Chat ID (for reply)",group:"Group/Org ID",name:'Tag (should be "#")',nick:"Sender Nickname",message:"Short Message",description:"Long Message body",image:"Sender Avatar",state:"State",source:"Creator ID",target:"Target ID",created_at:"Created Time",updated_at:"Updated Time"},a=require("./_meta-api")(e),n=require("./user-api")(e),u=function(n){n=n||{};var e=Object.keys(i).reduce(function(e,t,r){return void 0!==n[t]&&(e[t]=n[t]),e},{});return void 0!==n._id&&(e._id=n._id),e},s=function(e){return e.type=o,e},c=function(e){return void 0!==e.name&&(e.name=(""+e.name).trim()),a.do_chain_on_update_parent(e)},d=function(e){return a.do_chain_on_update_group(e)},_=function(r){return void 0!==r.source?n.do_get_user(r.source).then(function(e){var t=(r.name||"#sms").trim();return r.name=t,r.source=e.id,r.nick=r.nick||e.nick||e.name,r.image=e.image,r}):r},m=function(t){return void 0!==t.target?n.do_get_user(t.target).then(function(e){return t.target=e.id,t}):t};function E(e,t,r,n){return h(y,"do_list_chat("+e+")...."),(t=t||{}).type=o,a.do_list_meta(e,t).then(function(e){var t=e.list||[];return e.list=t.map(u),e})}function T(e,t,r,n){return h(y,"do_get_chat("+e+")...."),(t=t||{}).type=o,a.do_get_meta(e,t).then(u)}function S(e,t,r,n){return h(y,"do_self_test_chat("+e+")...."),(t=t||{}).type=o,a.do_self_test_meta(e,t)}function P(t,e,r,n){h(y,"do_put_chat("+t+")....");var o=r||e;return o?(o._id=f.N(t,0),Promise.resolve(o).then(u).then(s).then(c).then(d).then(function(e){return a.do_put_meta(t,e)})):Promise.reject(new Error("node is required!"))}function w(t,e,r,n){if(h(y,"do_post_chat("+t+")...."),"0"!==t&&0!==t)return Promise.reject(new Error("invalid ID:"+t));var o=r||e;if(!o)return Promise.reject(new Error("node is required!"));t=f.N(t,0);return Promise.resolve(o).then(u).then(s).then(function(e){(e.source||"").trim();if(!e.source)return Promise.reject(new Error("source is required!"));(e.message||"").trim();return e.message?e:Promise.reject(new Error("message is required!"))}).then(_).then(m).then(c).then(d).then(function(e){return a.do_post_meta(t,e)}).then(u)}function I(t,e,r,n){h(y,"do_delete_chat("+t+")....");var o=r||e;return o?(t=f.N(t,0),Promise.resolve(o).then(u).then(s).then(function(e){return a.do_delete_meta(t,e)})):Promise.reject(new Error("node is required!"))}return r};
"use strict";var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};exports=module.exports=function(e,t){if(!e)throw new Error("_$(global instance pool) is required!");e._;var f=e.U,h=e.log,p=(e.inf,e.err),y=f.NS("CHAT","yellow");function g(e){return v(404,e)}function b(e){return v(503,e)}function v(e,t){return{statusCode:e,headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Credentials":!0},body:JSON.stringify(t)}}function r(e,t,r){t.callbackWaitsForEmptyEventLoop=!1;var n=e.queryStringParameters||{},o=e.pathParameters||{},i=decodeURIComponent(o.type||""),a=decodeURIComponent(o.id||""),u=(a||"GET"!==e.httpMethod?e.httpMethod:"LIST")||"",s=decodeURIComponent(o.cmd||""),c=!u&&e.Records?"EVENT":{LIST:"LIST",GET:"GET",PUT:"PUT",POST:"POST",DELETE:"DELETE"}[u],d=e.body&&("string"==typeof e.body&&(e.body.startsWith("{")||e.body.startsWith("["))?JSON.parse(e.body):e.body)||e.Records&&{records:e.Records}||null;d||h(y,"#"+c+":"+s+" ("+u+", "+i+"/"+a+")...."),d&&h(y,"#"+c+":"+s+" ("+u+", "+i+"/"+a+").... body.len=",d?f.json(d).length:-1);var _={_id:a,_param:n,_body:d,_ctx:t},m=Promise.resolve(_),l=function(e,t,r){var n=null;switch(e){case"LIST":n=E;break;case"GET":n=T,"0"===t&&"self-test"===r&&(n=S);break;case"PUT":n=P;break;case"POST":n=w;break;case"DELETE":n=I}return n}(c,a,s);if(!l)return r(null,g({MODE:c}));try{m.then(function(e){var t=e._id,r=e._param,n=e._body,o=e._ctx;return l(t,r,n,o)}).then(function(e){return e&&"object"===(void 0===e?"undefined":_typeof(e))&&(e=f.cleanup(e)),r(null,function(e){return v(200,e)}(e)),!0}).catch(function(e){return p(y,"!!! callback@1 with err",e),0<=(e&&e.message||"").indexOf("404 NOT FOUND")?r(null,g(e.message)):r(null,b(e.message||e)),!1})}catch(e){r(e,b(e.message))}}r.do_list_chat=E,r.do_get_chat=T,r.do_put_chat=P,r.do_post_chat=w,r.do_delete_chat=I;var o="chat",i={id:"ID",parent:"Parent Chat ID (for reply)",group:"Group/Org ID",name:'Tag (should be "#")',nick:"Sender Nickname",message:"Short Message",description:"Long Message body",image:"Sender Avatar",state:"State",source:"Creator ID",target:"Target ID",created_at:"Created Time",updated_at:"Updated Time"},a=require("./_meta-api")(e),n=require("./user-api")(e),u=function(n){n=n||{};var e=Object.keys(i).reduce(function(e,t,r){return void 0!==n[t]&&(e[t]=n[t]),e},{});return void 0!==n._id&&(e._id=n._id),e},s=function(e){return e.type=o,e},c=function(e){return void 0!==e.name&&(e.name=(""+e.name).trim()),a.do_chain_on_update_parent(e)},d=function(e){return a.do_chain_on_update_group(e)},_=function(r){return void 0!==r.source?n.do_get_user(r.source).then(function(e){var t=(r.name||"#sms").trim();return r.name=t,r.source=e.id,r.nick=r.nick||e.nick||e.name,r.image=e.image,r}):r},m=function(t){return void 0!==t.target?n.do_get_user(t.target).then(function(e){return t.target=e.id,t}):t};function E(e,t,r,n){return h(y,"do_list_chat("+e+")...."),(t=t||{}).type=o,a.do_list_meta(e,t).then(function(e){var t=e.list||[];return e.list=t.map(u),e})}function T(e,t,r,n){return h(y,"do_get_chat("+e+")...."),(t=t||{}).type=o,a.do_get_meta(e,t).then(u)}function S(e,t,r,n){return h(y,"do_self_test_chat("+e+")...."),(t=t||{}).type=o,a.do_self_test_meta(e,t)}function P(t,e,r,n){h(y,"do_put_chat("+t+")....");var o=r||e;return o?(o._id=f.N(t,0),Promise.resolve(o).then(u).then(s).then(c).then(d).then(function(e){return a.do_put_meta(t,e)})):Promise.reject(new Error("node is required!"))}function w(t,e,r,n){if(h(y,"do_post_chat("+t+")...."),"0"!==t&&0!==t)return Promise.reject(new Error("invalid ID:"+t));var o=r||e;if(!o)return Promise.reject(new Error("node is required!"));t=f.N(t,0);return Promise.resolve(o).then(u).then(s).then(function(e){(e.source||"").trim();if(!e.source)return Promise.reject(new Error("source is required!"));(e.message||"").trim();return e.message?e:Promise.reject(new Error("message is required!"))}).then(_).then(m).then(c).then(d).then(function(e){return a.do_post_meta(t,e)}).then(u)}function I(t,e,r,n){h(y,"do_delete_chat("+t+")....");var o=r||e;return o?(t=f.N(t,0),Promise.resolve(o).then(u).then(s).then(function(e){return a.do_delete_meta(t,e)})):Promise.reject(new Error("node is required!"))}return r};

@@ -1,1 +0,1 @@

"use strict";var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};exports=module.exports=function(e,t){if(!e)throw new Error("_$(global instance pool) is required!");e._;var m=e.U,f=e.log,y=(e.inf,e.err),h=m.NS("GRUP","yellow");function g(e){return v(404,e)}function b(e){return v(503,e)}function v(e,t){return{statusCode:e,headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Credentials":!0},body:JSON.stringify(t)}}var r=function(e,t,r){t.callbackWaitsForEmptyEventLoop=!1;var o=e.queryStringParameters||{},n=e.pathParameters||{},i=decodeURIComponent(n.type||""),u=decodeURIComponent(n.id||""),a=(u||"GET"!==e.httpMethod?e.httpMethod:"LIST")||"",s=decodeURIComponent(n.cmd||""),d=!a&&e.Records?"EVENT":{LIST:"LIST",GET:"GET",PUT:"PUT",POST:"POST",DELETE:"DELETE"}[a],c=e.body&&("string"==typeof e.body&&(e.body.startsWith("{")||e.body.startsWith("["))?JSON.parse(e.body):e.body)||e.Records&&{records:e.Records}||null;!c&&f(h,"#"+d+":"+s+" ("+a+", "+i+"/"+u+")...."),c&&f(h,"#"+d+":"+s+" ("+a+", "+i+"/"+u+").... body.len=",c?m.json(c).length:-1);var _={_id:u,_param:o,_body:c,_ctx:t},p=Promise.resolve(_),l=function(e,t,r){var o=null;switch(e){case"LIST":o=E;break;case"GET":o=T,"0"===t&&"self-test"===r&&(o=S);break;case"PUT":o=P;break;case"POST":o=I;break;case"DELETE":o=D}return o}(d,u,s);if(!l)return r(null,g({MODE:d}));try{p.then(function(e){var t=e._id,r=e._param,o=e._body,n=e._ctx;return l(t,r,o,n)}).then(function(e){return e&&"object"===(void 0===e?"undefined":_typeof(e))&&(e=m.cleanup(e)),r(null,v(200,e)),!0}).catch(function(e){return y(h,"!!! callback@1 with err",e),0<=(e&&e.message||"").indexOf("404 NOT FOUND")?r(null,g(e.message)):r(null,b(e.message||e)),!1})}catch(e){r(e,b(e.message))}};r.do_list_group=E,r.do_get_group=T,r.do_put_group=P,r.do_post_group=I,r.do_delete_group=D;var n="group",i={id:"ID",parent:"Parent ID (상위 조직의 ID)",group:"Group ID (???)",name:"Name (그룹 고유 이름ID)",nick:"Show Name (표시할 이름)",message:"Short Description (그룹의 상태 표시 메세지)",description:"Long Description (그룹의 상세 내용)",image:"Image URL (대표 이미지)",state:"State (그룹 상태)",source:"Creator ID (생성자)",created_at:"Created Time",updated_at:"Updated Time"},u=require("./_meta-api")(e),a=function(o){o=o||{};var e=Object.keys(i).reduce(function(e,t,r){return void 0!==o[t]&&(e[t]=o[t]),e},{});return void 0!==o._id&&(e._id=o._id),e},s=function(e){return e.type=n,e},d=function(e){return void 0!==e.name&&(e.name=(""+e.name).trim()),u.do_chain_on_update_parent(e)},c=function(e){return u.do_chain_on_update_group(e)};function E(e,t,r,o){return f(h,"do_list_group("+e+")...."),(t=t||{}).type=n,u.do_list_meta(e,t).then(function(e){var t=e.list||[];return e.list=t.map(a),e})}function T(e,t,r,o){return f(h,"do_get_group("+e+")...."),(t=t||{}).type=n,u.do_get_meta(e,t).then(a)}function S(e,t,r,o){return f(h,"do_self_test_group("+e+")...."),(t=t||{}).type=n,u.do_self_test_meta(e,t)}function P(t,e,r,o){f(h,"do_put_group("+t+")....");var n=r||e;return n?(n._id=m.N(t,0),Promise.resolve(n).then(a).then(s).then(d).then(c).then(function(e){return u.do_put_meta(t,e)})):Promise.reject(new Error("node is required!"))}function I(t,e,r,o){if(f(h,"do_post_group("+t+")...."),"0"!==t&&0!==t)return Promise.reject(new Error("invalid ID:"+t));var n=r||e;return n?(t=m.N(t,0),Promise.resolve(n).then(a).then(s).then(d).then(c).then(function(e){return u.do_post_meta(t,e)}).then(a)):Promise.reject(new Error("node is required!"))}function D(t,e,r,o){f(h,"do_delete_group("+t+")....");var n=r||e;return n?(t=m.N(t,0),Promise.resolve(n).then(a).then(s).then(function(e){return u.do_delete_meta(t,e)})):Promise.reject(new Error("node is required!"))}return r};
"use strict";var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};exports=module.exports=function(e,t){if(!e)throw new Error("_$(global instance pool) is required!");e._;var m=e.U,f=e.log,y=(e.inf,e.err),h=m.NS("GRUP","yellow");function g(e){return E(404,e)}function b(e){return E(503,e)}function E(e,t){return{statusCode:e,headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Credentials":!0},body:JSON.stringify(t)}}function r(e,t,r){t.callbackWaitsForEmptyEventLoop=!1;var o=e.queryStringParameters||{},n=e.pathParameters||{},i=decodeURIComponent(n.type||""),u=decodeURIComponent(n.id||""),a=(u||"GET"!==e.httpMethod?e.httpMethod:"LIST")||"",s=decodeURIComponent(n.cmd||""),d=!a&&e.Records?"EVENT":{LIST:"LIST",GET:"GET",PUT:"PUT",POST:"POST",DELETE:"DELETE"}[a],c=e.body&&("string"==typeof e.body&&(e.body.startsWith("{")||e.body.startsWith("["))?JSON.parse(e.body):e.body)||e.Records&&{records:e.Records}||null;c||f(h,"#"+d+":"+s+" ("+a+", "+i+"/"+u+")...."),c&&f(h,"#"+d+":"+s+" ("+a+", "+i+"/"+u+").... body.len=",c?m.json(c).length:-1);var _={_id:u,_param:o,_body:c,_ctx:t},p=Promise.resolve(_),l=function(e,t,r){var o=null;switch(e){case"LIST":o=v;break;case"GET":o=T,"0"===t&&"self-test"===r&&(o=S);break;case"PUT":o=P;break;case"POST":o=I;break;case"DELETE":o=D}return o}(d,u,s);if(!l)return r(null,g({MODE:d}));try{p.then(function(e){var t=e._id,r=e._param,o=e._body,n=e._ctx;return l(t,r,o,n)}).then(function(e){return e&&"object"===(void 0===e?"undefined":_typeof(e))&&(e=m.cleanup(e)),r(null,function(e){return E(200,e)}(e)),!0}).catch(function(e){return y(h,"!!! callback@1 with err",e),0<=(e&&e.message||"").indexOf("404 NOT FOUND")?r(null,g(e.message)):r(null,b(e.message||e)),!1})}catch(e){r(e,b(e.message))}}r.do_list_group=v,r.do_get_group=T,r.do_put_group=P,r.do_post_group=I,r.do_delete_group=D;var n="group",i={id:"ID",parent:"Parent ID (상위 조직의 ID)",group:"Group ID (???)",name:"Name (그룹 고유 이름ID)",nick:"Show Name (표시할 이름)",message:"Short Description (그룹의 상태 표시 메세지)",description:"Long Description (그룹의 상세 내용)",image:"Image URL (대표 이미지)",state:"State (그룹 상태)",source:"Creator ID (생성자)",created_at:"Created Time",updated_at:"Updated Time"},u=require("./_meta-api")(e),a=function(o){o=o||{};var e=Object.keys(i).reduce(function(e,t,r){return void 0!==o[t]&&(e[t]=o[t]),e},{});return void 0!==o._id&&(e._id=o._id),e},s=function(e){return e.type=n,e},d=function(e){return void 0!==e.name&&(e.name=(""+e.name).trim()),u.do_chain_on_update_parent(e)},c=function(e){return u.do_chain_on_update_group(e)};function v(e,t,r,o){return f(h,"do_list_group("+e+")...."),(t=t||{}).type=n,u.do_list_meta(e,t).then(function(e){var t=e.list||[];return e.list=t.map(a),e})}function T(e,t,r,o){return f(h,"do_get_group("+e+")...."),(t=t||{}).type=n,u.do_get_meta(e,t).then(a)}function S(e,t,r,o){return f(h,"do_self_test_group("+e+")...."),(t=t||{}).type=n,u.do_self_test_meta(e,t)}function P(t,e,r,o){f(h,"do_put_group("+t+")....");var n=r||e;return n?(n._id=m.N(t,0),Promise.resolve(n).then(a).then(s).then(d).then(c).then(function(e){return u.do_put_meta(t,e)})):Promise.reject(new Error("node is required!"))}function I(t,e,r,o){if(f(h,"do_post_group("+t+")...."),"0"!==t&&0!==t)return Promise.reject(new Error("invalid ID:"+t));var n=r||e;return n?(t=m.N(t,0),Promise.resolve(n).then(a).then(s).then(d).then(c).then(function(e){return u.do_post_meta(t,e)}).then(a)):Promise.reject(new Error("node is required!"))}function D(t,e,r,o){f(h,"do_delete_group("+t+")....");var n=r||e;return n?(t=m.N(t,0),Promise.resolve(n).then(a).then(s).then(function(e){return u.do_delete_meta(t,e)})):Promise.reject(new Error("node is required!"))}return r};

@@ -1,1 +0,1 @@

"use strict";var _slicedToArray=function(e,r){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,r){var t=[],n=!0,o=!1,i=void 0;try{for(var a,u=e[Symbol.iterator]();!(n=(a=u.next()).done)&&(t.push(a.value),!r||t.length!==r);n=!0);}catch(e){o=!0,i=e}finally{try{!n&&u.return&&u.return()}finally{if(o)throw i}}return t}(e,r);throw new TypeError("Invalid attempt to destructure non-iterable instance")},_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};exports=module.exports=function(e,r){if(!e)throw new Error("_$(global instance pool) is required!");e._;var f=e.U,m=e.log,h=(e.inf,e.err),y=f.NS("USER","yellow"),a=e.MMS;function g(e){return b(404,e)}function v(e){return b(503,e)}function b(e,r){return{statusCode:e,headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Credentials":!0},body:JSON.stringify(r)}}var t=function(e,r,t){r.callbackWaitsForEmptyEventLoop=!1;var n=e.queryStringParameters||{},o=e.pathParameters||{},i=decodeURIComponent(o.type||""),a=decodeURIComponent(o.id||""),u=(a||"GET"!==e.httpMethod?e.httpMethod:"LIST")||"",s=decodeURIComponent(o.cmd||""),c=!u&&e.Records?"EVENT":{LIST:"LIST",GET:"GET",PUT:"PUT",POST:"POST",DELETE:"DELETE"}[u],d=e.body&&("string"==typeof e.body&&(e.body.startsWith("{")||e.body.startsWith("["))?JSON.parse(e.body):e.body)||e.Records&&{records:e.Records}||null;!d&&m(y,"#"+c+":"+s+" ("+u+", "+i+"/"+a+")...."),d&&m(y,"#"+c+":"+s+" ("+u+", "+i+"/"+a+").... body.len=",d?f.json(d).length:-1);var l={_id:a,_param:n,_body:d,_ctx:r},_=Promise.resolve(l),p=function(e,r,t){var n=null;switch(e){case"LIST":n=E;break;case"GET":n=T,"0"===r&&"self-test"===t&&(n=k);break;case"PUT":n=S;break;case"POST":n=w;break;case"DELETE":n=P}return n}(c,a,s);if(!p)return t(null,g({MODE:c}));try{_.then(function(e){var r=e._id,t=e._param,n=e._body,o=e._ctx;return p(r,t,n,o)}).then(function(e){return e&&"object"===(void 0===e?"undefined":_typeof(e))&&(e=f.cleanup(e)),t(null,b(200,e)),!0}).catch(function(e){return h(y,"!!! callback@1 with err",e),0<=(e&&e.message||"").indexOf("404 NOT FOUND")?t(null,g(e.message)):t(null,v(e.message||e)),!1})}catch(e){t(e,v(e.message))}};t.do_list_user=E,t.do_get_user=T,t.do_put_user=S,t.do_post_user=w,t.do_delete_user=P;var u="user",o={id:"ID",parent:"Parent User ID (같은 유저끼리 묶을 때, 상위 유저 속성)",group:"Group/Org ID (유저가 속한 조직/채널)",name:"UserName/Email/HP (유저 고유 식별번호)",nick:"Display Name (표시이름)",message:"Short Description (유저 상태 메세지)",description:"Long Description (유저 상세 정보)",image:"Image/Avatar URL (유저 이미지/아바타)",state:"State (상태)",source:"Creator ID (작성자)",created_at:"Created Time",updated_at:"Updated Time"},s=require("./_meta-api")(e),c=require("./group-api")(e),d=function(n){n=n||{};var e=Object.keys(o).reduce(function(e,r,t){return void 0!==n[r]&&(e[r]=n[r]),e},{});return void 0!==n._id&&(e._id=n._id),e},i=function(e){return e.type=u,e},l=function(e){return void 0!==e.name&&(e.name=(""+e.name).trim()),s.do_chain_on_update_parent(e)},_=function(e){return s.do_chain_on_update_group(e)};function E(e,r,t,n){return m(y,"do_list_user("+e+")...."),(r=r||{}).type=u,s.do_list_meta(e,r).then(function(e){var r=e.list||[];return e.list=r.map(d),e})}function T(e,r,t,n){m(y,"do_get_user("+e+")...."),(r=r||{}).type=u;var o=(""+(e||"")).toLowerCase();if(o&&/^(([^<>()\[\]\.,;:\s@\"]+(\.[^<>()\[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i.test(o)){m(y,"! email=",o);var i={type:u,name:o};return i.refid=a.calculate_refid(i),a.do_search_refid(i).then(function(e){return m(y,"> set email-id :=",e.id,"<- ref:"+i.refid),e.id}).catch(function(e){if(h(y,"! err=",e),(e&&e.message||"").startsWith("404 NOT FOUND")){if(i.name){var r=i.name.split("@",2),t=_slicedToArray(r,2),n=t[0],o=t[1];i.nick=n||"nobody",i.group=o||"nowhere",i.nick="d.kim"===i.nick?"daniel":i.nick,i.nick="kai.w"===i.nick?"kai":i.nick,i.nick=i.nick.charAt(0).toUpperCase()+i.nick.slice(1),i.image="/assets/avatars/"+i.nick.toLowerCase()+("Steve"===i.nick?".png":".jpg")}return m(y,">> new-node :=",i),Promise.resolve(i).then(function(r){return r.group?c.do_post_group(0,{name:r.group}).then(function(e){return m(y,">> group-id :=",e.id),r.group=e.id,r}):(r.group=0,r)}).then(function(e){return s.do_post_meta(0,e).then(function(e){return e.id})})}throw e}).then(function(e){return s.do_get_meta(e,r).then(d)})}return s.do_get_meta(e,r).then(d)}function k(e,r,t,n){return m(y,"do_self_test_user("+e+")...."),(r=r||{}).type=u,s.do_self_test_meta(e,r)}function S(r,e,t,n){m(y,"do_put_user("+r+")....");var o=t||e;return o?(o._id=f.N(r,0),Promise.resolve(o).then(d).then(i).then(l).then(_).then(function(e){return s.do_put_meta(r,e)})):Promise.reject(new Error("node is required!"))}function w(r,e,t,n){if(m(y,"do_post_user("+r+")...."),"0"!==r&&0!==r)return Promise.reject(new Error("invalid ID:"+r));var o=t||e;return o?(r=f.N(r,0),Promise.resolve(o).then(d).then(i).then(l).then(_).then(function(e){return s.do_post_meta(r,e)}).then(d)):Promise.reject(new Error("node is required!"))}function P(r,e,t,n){m(y,"do_delete_user("+r+")....");var o=t||e;return o?(r=f.N(r,0),Promise.resolve(o).then(d).then(i).then(function(e){return s.do_delete_meta(r,e)})):Promise.reject(new Error("node is required!"))}return t};
"use strict";var _slicedToArray=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var r=[],n=!0,o=!1,i=void 0;try{for(var a,u=e[Symbol.iterator]();!(n=(a=u.next()).done)&&(r.push(a.value),!t||r.length!==t);n=!0);}catch(e){o=!0,i=e}finally{try{!n&&u.return&&u.return()}finally{if(o)throw i}}return r}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};exports=module.exports=function(e,t){if(!e)throw new Error("_$(global instance pool) is required!");e._;var f=e.U,m=e.log,h=(e.inf,e.err),y=f.NS("USER","yellow"),a=e.MMS;function g(e){return b(404,e)}function v(e){return b(503,e)}function b(e,t){return{statusCode:e,headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Credentials":!0},body:JSON.stringify(t)}}function r(e,t,r){t.callbackWaitsForEmptyEventLoop=!1;var n=e.queryStringParameters||{},o=e.pathParameters||{},i=decodeURIComponent(o.type||""),a=decodeURIComponent(o.id||""),u=(a||"GET"!==e.httpMethod?e.httpMethod:"LIST")||"",s=decodeURIComponent(o.cmd||""),c=!u&&e.Records?"EVENT":{LIST:"LIST",GET:"GET",PUT:"PUT",POST:"POST",DELETE:"DELETE"}[u],d=e.body&&("string"==typeof e.body&&(e.body.startsWith("{")||e.body.startsWith("["))?JSON.parse(e.body):e.body)||e.Records&&{records:e.Records}||null;d||m(y,"#"+c+":"+s+" ("+u+", "+i+"/"+a+")...."),d&&m(y,"#"+c+":"+s+" ("+u+", "+i+"/"+a+").... body.len=",d?f.json(d).length:-1);var l={_id:a,_param:n,_body:d,_ctx:t},_=Promise.resolve(l),p=function(e,t,r){var n=null;switch(e){case"LIST":n=E;break;case"GET":n=T,"0"===t&&"self-test"===r&&(n=k);break;case"PUT":n=S;break;case"POST":n=w;break;case"DELETE":n=P}return n}(c,a,s);if(!p)return r(null,g({MODE:c}));try{_.then(function(e){var t=e._id,r=e._param,n=e._body,o=e._ctx;return p(t,r,n,o)}).then(function(e){return e&&"object"===(void 0===e?"undefined":_typeof(e))&&(e=f.cleanup(e)),r(null,function(e){return b(200,e)}(e)),!0}).catch(function(e){return h(y,"!!! callback@1 with err",e),0<=(e&&e.message||"").indexOf("404 NOT FOUND")?r(null,g(e.message)):r(null,v(e.message||e)),!1})}catch(e){r(e,v(e.message))}}r.do_list_user=E,r.do_get_user=T,r.do_put_user=S,r.do_post_user=w,r.do_delete_user=P;var u="user",o={id:"ID",parent:"Parent User ID (같은 유저끼리 묶을 때, 상위 유저 속성)",group:"Group/Org ID (유저가 속한 조직/채널)",name:"UserName/Email/HP (유저 고유 식별번호)",nick:"Display Name (표시이름)",message:"Short Description (유저 상태 메세지)",description:"Long Description (유저 상세 정보)",image:"Image/Avatar URL (유저 이미지/아바타)",state:"State (상태)",source:"Creator ID (작성자)",created_at:"Created Time",updated_at:"Updated Time"},s=require("./_meta-api")(e),c=require("./group-api")(e),d=function(n){n=n||{};var e=Object.keys(o).reduce(function(e,t,r){return void 0!==n[t]&&(e[t]=n[t]),e},{});return void 0!==n._id&&(e._id=n._id),e},i=function(e){return e.type=u,e},l=function(e){return void 0!==e.name&&(e.name=(""+e.name).trim()),s.do_chain_on_update_parent(e)},_=function(e){return s.do_chain_on_update_group(e)};function E(e,t,r,n){return m(y,"do_list_user("+e+")...."),(t=t||{}).type=u,s.do_list_meta(e,t).then(function(e){var t=e.list||[];return e.list=t.map(d),e})}function T(e,t,r,n){m(y,"do_get_user("+e+")...."),(t=t||{}).type=u;var o=(""+(e||"")).toLowerCase();if(o&&/^(([^<>()\[\]\.,;:\s@\"]+(\.[^<>()\[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i.test(o)){m(y,"! email=",o);var i={type:u,name:o};return i.refid=a.calculate_refid(i),a.do_search_refid(i).then(function(e){return m(y,"> set email-id :=",e.id,"<- ref:"+i.refid),e.id}).catch(function(e){if(h(y,"! err=",e),(e&&e.message||"").startsWith("404 NOT FOUND")){if(i.name){var t=i.name.split("@",2),r=_slicedToArray(t,2),n=r[0],o=r[1];i.nick=n||"nobody",i.group=o||"nowhere",i.nick="d.kim"===i.nick?"daniel":i.nick,i.nick="kai.w"===i.nick?"kai":i.nick,i.nick=i.nick.charAt(0).toUpperCase()+i.nick.slice(1),i.image="/assets/avatars/"+i.nick.toLowerCase()+("Steve"===i.nick?".png":".jpg")}return m(y,">> new-node :=",i),Promise.resolve(i).then(function(t){return t.group?c.do_post_group(0,{name:t.group}).then(function(e){return m(y,">> group-id :=",e.id),t.group=e.id,t}):(t.group=0,t)}).then(function(e){return s.do_post_meta(0,e).then(function(e){return e.id})})}throw e}).then(function(e){return s.do_get_meta(e,t).then(d)})}return s.do_get_meta(e,t).then(d)}function k(e,t,r,n){return m(y,"do_self_test_user("+e+")...."),(t=t||{}).type=u,s.do_self_test_meta(e,t)}function S(t,e,r,n){m(y,"do_put_user("+t+")....");var o=r||e;return o?(o._id=f.N(t,0),Promise.resolve(o).then(d).then(i).then(l).then(_).then(function(e){return s.do_put_meta(t,e)})):Promise.reject(new Error("node is required!"))}function w(t,e,r,n){if(m(y,"do_post_user("+t+")...."),"0"!==t&&0!==t)return Promise.reject(new Error("invalid ID:"+t));var o=r||e;return o?(t=f.N(t,0),Promise.resolve(o).then(d).then(i).then(l).then(_).then(function(e){return s.do_post_meta(t,e)}).then(d)):Promise.reject(new Error("node is required!"))}function P(t,e,r,n){m(y,"do_delete_user("+t+")....");var o=r||e;return o?(t=f.N(t,0),Promise.resolve(o).then(d).then(i).then(function(e){return s.do_delete_meta(t,e)})):Promise.reject(new Error("node is required!"))}return r};

@@ -1,1 +0,1 @@

"use strict";var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_slicedToArray=function(e,r){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,r){var t=[],n=!0,i=!1,o=void 0;try{for(var d,u=e[Symbol.iterator]();!(n=(d=u.next()).done)&&(t.push(d.value),!r||t.length!==r);n=!0);}catch(e){i=!0,o=e}finally{try{!n&&u.return&&u.return()}finally{if(i)throw o}}return t}(e,r);throw new TypeError("Invalid attempt to destructure non-iterable instance")};function _defineProperty(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}module.exports=function(e,r,t){var n=r||"LEM",f=e.U,h=e._,i=e.MS,u=e.DS,o=e.RS,d=e.ES,a=e.ES6;if(!f)throw new Error("$U is required!");if(!h)throw new Error("$U is required!");if(!i)throw new Error("$MS is required!");if(!u)throw new Error("$DS is required!");if(!o)throw new Error("$RS is required!");var l=e.log,m=e.inf,s=e.err,p=f.NS(n,"green"),_=t||{},c=function(e){throw new Error("NOT_IMPLEMENTED - "+p+":"+JSON.stringify(e))};_.do_prepare=c,_.do_create=c,_.do_clone=c,_.do_update=c,_.do_increment=c,_.do_read=c,_.do_readX=c,_.do_delete=c,_.do_destroy=c,_.do_search=c,_.do_initialize=c,_.do_terminate=c,_.do_test_self=c,_.on_records=c,_.do_notify=c,_.do_subscribe=c,_.do_next_id=c,r.startsWith("_")||e(r,_);var v=function(e,r){return void 0===_[e]?r:_[e]},E=v("VERSION",1),y=v("REVISION",1),P=v("VERSION_NAME","V"),g=v("REVISION_NAME","R"),w=v("ID_INPUT","id"),S=v("ID_NAME","id"),j=v("ID_TYPE","test"),q=v("ID_NEXT",0),N=v("DYNA_TABLE","TestTable"),b=v("REDIS_PKEY","TPKEY"),O=v("DEFAULTS",null),I=v("CLONEABLE",!1),R=v("CLONED_ID","cloned"),A=v("PARENT_ID","parent"),T=v("PARENT_IMUT",!0),x=v("ES_INDEX","test-v1"),D=v("ES_TIMESERIES",!1),W=v("ES_TYPE",""),L=v("ES_MASTER",D?1:0),M=v("ES_VERSION",5);l(p,"! CONF_ES_TIMESERIES=",D);var $=v("XECURE_KEY",null),F=function(){var e=v("FIELDS",null),r=v("ES_FIELDS",D?null:["updated_at","name"]),n=v("XEC_FIELDS",null),t=function(e){return e&&"string"==typeof e?e.split(",").reduce(function(e,r){return(r=r.trim())&&e.push(r),r},[]):e};if(e){if(e=t(e),r=t(r||[]),n=t(n||[]),!Array.isArray(e))throw new Error("FIELDS must be array!");if(!Array.isArray(r))throw new Error("ES_FIELDS must be array!");if(!Array.isArray(n))throw new Error("XEC_FIELDS must be array!");e=e.reduce(function(e,r){var t=r.startsWith("*");if(!(r=t?r.substring(1):r))throw new Error("Invalid field name");return t&&n.indexOf(r)<0&&n.push(r),e.push(r),e},[]),r=r.reduce(function(e,r){var t=r.startsWith("*");if(!(r=t?r.substring(1):r))throw new Error("Invalid field name");return t&&n.indexOf(r)<0&&n.push(r),e.push(r),e},[]),n.length&&m(p,"XECURED-FIELDS =",n)}return!e||!e.length?n=r=e=null:r&&!r.length&&(r=D?e:null),[e,r,n]}(),k=_slicedToArray(F,3),Q=k[0],U=k[1],C=k[2];if(l(p,"! CONF_ES_FIELDS :=",U&&U.join(", ")),D&&b&&!b.startsWith("#"))throw new Error("ES_TIMESERIES - Redis should be inactive. PKEY:"+b);if(D&&!U.length)throw new Error("ES_TIMESERIES - CONF_ES_FIELDS should be valid!");var V=v("NS_NAME",""),Y=5<M?a:d;if(!Y)throw new Error("$ES is required! Ver:"+M);var B=require("dynamodb-value"),z=function(e){var o=require("crypto"),d="aes-256-ctr";if(!o)throw new Error("crypto module is required!");var r={crypto:o,algorithm:d,passwd:e};return r.encrypt=function(e){e=void 0===e?null:e;var r=JSON.stringify({alg:d,val:e}),t=new Buffer("LM!#"+(r||""),"utf8"),n=this.passwd||"",i=o.createCipher(d,n);return Buffer.concat([i.update(t),i.final()]).toString("base64")},r.decrypt=function(e){var r=new Buffer(e||"","base64"),t=this.passwd||"",n=o.createDecipher(d,t),i=Buffer.concat([n.update(r),n.final()]).toString("utf8");return(JSON.parse(i.substr("LM!#".length))||{}).val},r},H=require("./notify-service")(e,"!"+V,{NS_NAME:V});_.do_notify=H.do_notify,_.do_subscribe=H.do_subscribe,I&&Q&&(A&&Q.indexOf(A)<0&&Q.push(A),R&&Q.indexOf(R)<0&&Q.push(R));var X=[w,S,"created_at","updated_at","deleted_at",R];T&&A&&X.push(A);var J=function(e,r,t,n){t=t||"";var i=r="object"===(void 0===(e=e||0)?"undefined":_typeof(e))?r?f.extend(e,r):e:(r=null==r?{}:"object"!==(void 0===r?"undefined":_typeof(r))||r instanceof Promise?{params:r}:f.copy(r),f.extend(r,{_id:e}));if(void 0!==i.records)return f.promise(i);if(t.startsWith("notify"))return f.promise(i);if(i&&void 0!==i._is_prepared&&i._is_prepared)return i._current_mode=t,i._method_stack.push(t),1e3<i._method_stack.length?Promise.reject("method-stack full. size:"+i._method_stack):f.promise(i);e=j.startsWith("#")?i._id||i[w]||"":f.N(i._id||i[w]||0);var o=i._current_time||f.current_time_ms();return i._id=e,i._current_time=o,i._current_mode=t,i._method_stack=[],i._method_stack.push(t),i._updated_node=null,i._ctx=n,i._node={},i._is_prepared=!0,void 0===i._params_count&&(i._params_count=0,i=h.reduce(i,function(e,r,t){return t.startsWith("_")||t.startsWith("$")||0<=X.indexOf(t)||e._params_count++,e},i)),f.promise(i)},K=function(e){if(!e)return e;var r=e._current_mode||"";if(void 0!==e.records)return f.promise(e);if(r.startsWith("notify"))return f.promise(e);if(e._method_stack&&e._method_stack.pop(),"read"!==r&&"increment"!==r&&"create"!==r)return e;if(void 0!==e._auto_populate&&!e._auto_populate)return e;var t=e._node;return 0===e._params_count||-1===e._fields_count?e=h.reduce(t,function(e,r,t){return"updated_at"===t&&void 0!==e[t]?e[t]=e[t]>r?e[t]:r:e[t]=r,e},e):0<=e._fields_count&&(e=Q?Q.reduce(function(e,r){return void 0!==e[r]&&void 0!==t[r]&&(e[r]=t[r]),e},e):e),e},G=function(r){var e=r._id;if(l(p,"- my_prepare_id("+j+", "+e+")...."),j.startsWith("#")){if(j&&j.startsWith("#")&&1<j.length&&0<q){var t=j.substring(1);return i.do_get_next_id(t).then(function(e){return l(p,"> created next-id["+t+"]=",e),r._id=e,r})}}else if(j&&!e)return i.do_get_next_id(j).then(function(e){return l(p,"> created next-id=",e),r._id=e,r});return l(p,"> prepared-id =",e),Promise.resolve(r)},Z=function(t){if(!t._current_mode)throw new Error("._current_mode is required!");var n=t._current_mode,i=O||{},o=0,e=t._node||{};return Q?"prepare"===n||"create"===n||"clone"===n?e=Q.reduce(function(e,r){return r===S||r===P||r===g||("prepare"===n?(void 0!==i[r]?e[r]=O[r]:void 0!==t[r]&&(e[r]=t[r]),P&&(e[P]=E),g&&(e[g]=0)):("create"===n&&g&&(e[g]=y-1),void 0!==t[r]&&(e[r]=t[r])),o++),e},e):"update"!==n&&"increment"!==n&&"read"!==n||(e=Q.reduce(function(e,r){return r===S||void 0!==t[r]&&o++,e},e)):o=-1,t._fields_count=o,t._node=e,t},ee=function(e,r){return e.created_at=0,e.updated_at=r,e.deleted_at=r,e},re=function(e,r){return e.created_at=r,e.updated_at=r,e.deleted_at=0,e},te=function(t){if(!t._node)return Promise.reject(new Error("._node is required!"));if(!t._current_time)return Promise.reject(new Error("._current_time is required!"));if(D)return t._node=t._node||{},Promise.resolve(t);var n=t._id,i=t._current_time;return n?ye(t).catch(function(e){var r=e&&e.message||"";if(r.indexOf("404 NOT FOUND")<0)throw e;return m(p,"WARN! NOT FOUND. msg=",r),t}).then(function(e){var r=(e=Z(e))._node||{};if(e._force_create)s(p,"WARN! _force_create is set!");else if(!r.deleted_at)return s(p,"INVALID STATE FOR PREPARED. ID=",n,", TIMES[CUD]=",[r.created_at,r.updated_at,r.deleted_at]),Promise.reject(new Error("INVALID STATE. deleted_at:"+r.deleted_at));return e[w]=e._id,r[S]=e._id,e._node=ee(e._node,i),e}):(t=Z(t),G(t).then(function(e){var r=e._node||{};return e[w]=e._id,r[S]=e._id,e._node=ee(r,i),e}))},ne=function(e){if(!e._id)return Promise.reject(new Error("._id is required!"));if(!e._node)return Promise.reject(new Error("._node is required!"));if(!e._current_time)return Promise.reject(new Error("._current_time is required!"));if(D)return e._node=e._node||{},Promise.resolve(e);var t=e._id,n=e._current_time;return l(p,"> prepared-id =",t,", current-time =",n),ye(e).then(function(e){var r=(e=Z(e))._node||{};if(e._force_create)m(p,"WARN! _force_create is set!");else if(!r.deleted_at)return s(p,"INVALID STATE FOR CREATED. ID=",t,", TIMES[CUD]=",[r.created_at,r.updated_at,r.deleted_at]),Promise.reject(new Error("INVALID STATE. deleted_at:"+r.deleted_at));return e._node=re(r,n),e})},ie=function(e){if(!e._id)return Promise.reject(new Error("._id is required!"));if(!e._node)return Promise.reject(new Error("._node is required!"));if(!e._current_time)return Promise.reject(new Error("._current_time is required!"));if(D)return e._node=e._node||{},Promise.resolve(e);e._id,e._node;var r=e._current_time;return ye(e).then(function(e){return(e=Z(e))._node=re(e._node,r),e})},oe=function(e){if(!e._id)return Promise.reject(new Error("._id is required!"));if(!e._node)return Promise.reject(new Error("._node is required!"));if(!e._current_time)return Promise.reject(new Error("._current_time is required!"));if(D)return e._node=e._node||{},Promise.resolve(e);e._id,e._node;var n=e._current_time;return 0===(e=Z(e))._fields_count?e:ye(e).then(function(e){var r,t;return e._node=(r=e._node,t=n,r.updated_at=t,r),e})},de=function(e){if(!e._id)return Promise.reject(new Error("._id is required!"));if(!e._node)return Promise.reject(new Error("._node is required!"));if(!e._current_time)return Promise.reject(new Error("._current_time is required!"));if(D)return e._node=e._node||{},Promise.resolve(e);e._id;var n=e._current_time;return ye(e).then(function(e){var r,t;return(e=Z(e))._node=(r=e._node,t=n,r.updated_at=t,r.deleted_at=t,r),e})},ue=function(r){var e;if(!r._id)return Promise.reject(new Error("._id is required!"));var t=r._id;l(p,"- dynamo: read("+t+")....");var n=j.startsWith("#")?"String":"";return u.do_get_item(N,(e={},_defineProperty(e,S,t),_defineProperty(e,"idType",n),e)).then(function(e){return l(p,"> dynamo: node("+t+") res=",f.json(e)),r._node=e,r})},ae=function(r){if(!r._id)return Promise.reject(new Error("._id is required!"));if(!r._node)return Promise.reject(new Error("._node is required!"));var t=r._id,e=r._node;l(p,"- dynamo: update("+t+")....");var n={},i=0,o=$?z($):null;for(var d in r)d&&r.hasOwnProperty(d)&&((d=""+d).startsWith("_")||d.startsWith("$")||0<=X.indexOf(d)||Q&&Q.indexOf(d)<0||d&&(n[d]=r[d],e[d]=r[d],i++,o&&C&&0<=C.indexOf(d)&&(e[d]=r[d]?o.encrypt(r[d]):"",n[d]=e[d])));return n.updated_at=e.updated_at,l(p,"> dynamo: updated["+t+"]["+i+"] =",f.json(n)),r._updated_node=null,(r._updated_count=i)?(void 0!==e[g]&&(e[g]=f.N(e[g],0)+1),u.do_update_item(N,_defineProperty({},S,t),n,g?_defineProperty({},g,1):null).then(function(e){return r._updated_node=n,r._node=Object.assign(r._node,n),l(p,"> dynamo: updated("+t+") res=",f.json(e)),r})):Q?r:Promise.reject(new Error("nothing to update"))},se=function(r){if(!r._id)return Promise.reject(new Error("._id is required!"));if(!r._node)return Promise.reject(new Error("._node is required!"));var t=r._id,e=r._node,n=r._current_mode||"",i=r._current_time;if(l(p,"- dynamo: save("+t+")...."),"prepare"!==n){var o=$?z($):null;for(var d in r)d&&r.hasOwnProperty(d)&&((d=""+d).startsWith("_")||d.startsWith("$")||0<=X.indexOf(d)||Q&&Q.indexOf(d)<0||(e[d]=r[d],o&&C&&0<=C.indexOf(d)&&(e[d]=r[d]?o.encrypt(r[d]):"")))}return void 0!==e[g]&&(e[g]=f.N(e[g],0)+1),l(p,"> save@node-id =",t,", current-time =",i,", node :=",f.json(e)),u.do_create_item(N,_defineProperty({},S,t),e).then(function(e){return l(p,"> dynamo: saved("+t+") res=",f.json(e)),r})},_e=function(r){if(!r._id)return Promise.reject(new Error("._id is required!"));if(!r._node)return Promise.reject(new Error("._node is required!"));var t=r._id,e=r._node;l(p,"- dynamo: increment("+t+")....");var n={},i=0;for(var o in r)r.hasOwnProperty(o)&&((o=""+o).startsWith("_")||o.startsWith("$")||0<=X.indexOf(o)||Q&&Q.indexOf(o)<0||o&&(n[o]=r[o],e[o]=f.N(e[o],0)+f.N(r[o]),i++));return n.updated_at=e.updated_at,l(p,"> dynamo: incremented["+t+"] :=",f.json(n)),r._updated_node=null,(r._updated_count=i)?(void 0!==e[g]&&(e[g]=f.N(e[g],0)+1),u.do_increment_item(N,_defineProperty({},S,t),n,g?_defineProperty({},g,1):null).then(function(e){return l(p,"> dynamo: increment("+t+") res=",f.json(e)),r._updated_node=n,r})):Q?r:Promise.reject(new Error("nothing to update"))},ce=function(r){var t=r._id;return t?(l(p,"- dynamo: delete("+t+")...."),u.do_delete_item(N,_defineProperty({},S,t)).then(function(e){return l(p,"> dynamo: deleted("+t+") res=",f.json(e)),r._node=e||{},r})):Promise.reject(new Error("._id is required!"))},fe={do_read_cache:function(r){var t=r._id;return t?b?b.startsWith("#")?D?ue(r).then(function(e){return void 0===(e._node||{})[S]?Promise.reject(new Error("404 NOT FOUND. "+N+".id:"+(e._id||""))):e}):he.do_read_search(r).catch(function(e){throw e instanceof Error&&(s(p,"! redis: read-search("+b+", "+t+") err :=",e.message||e),r._error=e),r}):(l(p,"- redis: get-item("+t+")...."),o.do_get_item(b,t).then(function(e){return e?(r._node=e,r):Promise.reject(r)}).catch(function(e){throw e instanceof Error&&(s(p,"! redis: get-item("+b+", "+t+") err :=",e.message||e),r._error=e),r})):Promise.reject(r):Promise.reject(new Error("._id is required!"))},do_save_cache:function(r){var e=r._id;if(!e)return Promise.reject(new Error("._id is required!"));if(!r._node)return Promise.reject(new Error("._node is required!"));if(!b)return Promise.resolve(r);if(b.startsWith("#"))return Promise.resolve(r);var t=r._node;l(p,"- redis: create-item("+e+")....");var n=fe.do_set_cache_footprint(e,t);return n=n.then(function(){return o.do_create_item(b,e,t)}).then(function(e){return r})},do_update_cache:function(r){var e=r._id;if(!e)return Promise.reject(new Error("._id is required!"));if(!r._node)return Promise.reject(new Error("._node is required!"));if(!b)return Promise.resolve(r);if(b.startsWith("#"))return Promise.resolve(r);var t=r._node;l(p,"- redis: update-item("+e+")....");var n=fe.do_set_cache_footprint(e,t);return n=n.then(function(){return o.do_update_item(b,e,t)}).then(function(e){return r})},do_delete_cache:function(r){var t=r._id;if(!t)return Promise.reject(new Error("._id is required!"));if(!b)return Promise.resolve(r);var e=b.startsWith("#")?b.substr(1):b;if(!e)return Promise.resolve(r);return Promise.all([e,e+"/UPDATED",e+"/HASH"].map(function(e){return o.do_delete_item(e,t).then(function(e){return e}).catch(function(e){return e.message||""+e})})).then(function(e){return l(p,"> redis: deleted("+t+") res=",f.json(e)),r})},do_set_cache_footprint:function(e,r){if(!e)return Promise.reject(new Error("id is required!"));if(!b)return Promise.resolve(0);r=r||{};var t=f.N(r.updated_at,0),n=f.hash(r);return o.do_create_item([b+"/UPDATED",b+"/HASH"],e,[t,n]).then(function(e){return e})},do_get_cache_updated:function(e){return e?b?b.startsWith("#")?Promise.resolve(-1):o.do_get_item(b+"/UPDATED",e).then(function(e){return e}):Promise.resolve(-1):Promise.reject(new Error("id is required!"))},do_get_cache_hash:function(e){return e?b?b.startsWith("#")?Promise.resolve(-1):o.do_get_item(b+"/HASH",e).then(function(e){return e}):Promise.resolve(-1):Promise.reject(new Error("id is required!"))}},he={do_read_search:function(r){var e=r._id;return e?x?(l(p,"- elasticsearch: read("+e+")...."),Y.do_get_item(x,W,e).then(function(e){return e?(r._node=U?f.extend(r._node||{},e):e,r):Promise.reject(r)})):r:Promise.reject(new Error("._id is required!"))},do_save_search:function(r){var t=r._id;if(!t)return Promise.reject(new Error("._id is required!"));if(!r._node)return Promise.reject(new Error("._node is required!"));if(!x)return r;var n=r._node,e=r._current_time||f.current_time_ms();if(U){var i=h.reduce(U,function(e,r){return void 0!==n[r]&&(e[r]=n[r]),e},{});return Object.keys(i).length?(void 0!==n.created_at&&(i.created_at=n.created_at),void 0!==n.updated_at&&(i.updated_at=n.updated_at),void 0!==n.deleted_at&&(i.deleted_at=n.deleted_at),l(p,"> elasticsearch:save("+L+"/"+t+").... node2=",f.json(i)),D?(i["@timestamp"]=e,i[S]=t,Y.do_push_item(x,W,i).then(function(e){return l(p,"! elasticsearch: pushed-item("+t+")@1 res=",f.json(e)),r})):L?Y.do_create_item(x,W,t,i).then(function(e){return l(p,"! elasticsearch: saved-item("+t+")@1 res=",f.json(e)),r}):Y.do_update_item(x,W,t,i).then(function(e){return l(p,"! elasticsearch: updated-item("+t+")@1 res=",f.json(e)),r})):(s(p,"! elasticsearch:WARN! nothing to update ("+t+")...."),r)}return Y.do_create_item(x,W,t,n).then(function(e){return l(p,"! elasticsearch: create-item("+t+")@3 res=",f.json(e)),r})},do_update_search:function(r){var t=r._id;if(!t)return Promise.reject(new Error("._id is required!"));if(!r._updated_node)return Promise.reject(new Error("._updated_node is required!"));if(!x)return r;var n=r._updated_node;if(U){var e=h.reduce(U,function(e,r){return e[r]=n[r],e},{});return Object.keys(e).length?(void 0!==n.created_at&&(e.created_at=n.created_at),void 0!==n.updated_at&&(e.updated_at=n.updated_at),void 0!==n.deleted_at&&(e.deleted_at=n.deleted_at),Y.do_update_item(x,W,t,e).then(function(e){return l(p,"! elasticsearch: updated-item("+t+") res=",f.json(e)),r})):(s(p,"! elasticsearch:WARN! nothing to update ("+t+")...."),r)}return Y.do_update_item(x,W,t,n).then(function(e){return l(p,"! elasticsearch: updated-item("+t+") res=",f.json(e)),r})},do_delete_search:function(r){var t=r._id;return t?x?U&&!L?(l(p,"! elasticsearch:WARN! ignore delete ("+t+")...."),r):Y.do_delete_item(x,W,t).then(function(e){return l(p,"! elasticsearch: deleted-item("+t+") res=",f.json(e)),r}).catch(function(e){return l(p,"ERR! ignore - elastic:delete("+t+") res=",e),r}):r:Promise.reject(new Error("._id is required!"))},do_search:function(i){if(!x)return i;if(U&&!L)return i;var o={$page:0,$limit:0};return o.$page=f.N(i.page,0),o.$limit=f.N(i.ipp,0===i.ipp?0:10),D||(o.deleted_at=void 0!==i.deleted_at?i.deleted_at:"0"),i.$source&&(o.$source=i.$source),i.$exist&&(o.$exist=i.$exist),i.Q&&(o.$Q=i.Q),i.A&&(o.$A=i.A),i.O&&(o.$O=i.O),i.H&&(o.$H=i.H),D&&(o.$O=o.$O||"!@timestamp"),o.$O=o.$O||(j.startsWith("#")?S+".keyword":S),U&&U.forEach(function(e){"page"!=e&&"ipp"!=e&&(void 0!==i[e]&&(o[e]=i[e]),void 0!==i["!"+e]&&(o["!"+e]=i["!"+e]),void 0!==i["#"+e]&&(o["#"+e]=i["#"+e]))}),l(p,"! elasticsearch: search["+x+"/"+W+"] =",f.json(o)),Y.do_search_item(x,W,o).then(function(e){var r=e&&e.hits||{},t=r.hits||[],n=r;return i.list=t.map(function(r){var t=r._score?f.extend({_score:r._score},r._source):r._source;return D&&(t["@id"]=r._id),null!=r.highlight&&Object.keys(r.highlight).forEach(function(e){t[e+"_highlight"]=r.highlight[e][0]}),t}),i.total=f.N(n.total||0),i.page=o.$page,i.ipp=o.$limit,i.took=e.took||0,void 0!==e.aggregations&&(i.aggregations=e.aggregations),i}).catch(function(e){throw s(p,"!ERR @search =",e),e})}},le={},me=function(e){var r=e._id||"";return[b,N,""+r].join(":").toUpperCase()},pe=function(e){if(D)return e;var r=me(e),t=e._node,n=e._current_time||f.current_time_ms();t||delete le[r];var i={cached_at:n,node:t};return le[r]=i,e},ve=function(e){var r=me(e);return delete le[r],e},Ee=function(n){var i=n._id;return Object.keys(n).forEach(function(t,e){if(n.hasOwnProperty(t)&&!(t.startsWith("_")||t.startsWith("$")||Q&&Q.indexOf(t)<0)){var r=n[t];if(r&&"object"==(void 0===r?"undefined":_typeof(r))){if(!Array.isArray(r))throw new Error("Invalid data-type (object) key:"+t+"@"+i);r.forEach(function(e,r){if(e&&"object"==(void 0===e?"undefined":_typeof(e)))throw new Error("Invalid data-type (object) key:"+t+"@"+i+":"+r)})}}}),n},ye=function(e){var r,t,n,i,o;return e._id?(t=me(r=e),n=le[t]||{},i=f.N(n.cached_at,0),o=(r._current_time||f.current_time_ms())-i,n.node&&i&&!(2e3<o)&&(r._node=Object.assign({},n.node),r.C=i,1)?Promise.resolve(e):Promise.resolve(e).then(fe.do_read_cache).catch(function(e){if(e&&e instanceof Error)throw e;return ue(e).then(function(e){return void 0===(e._node||{})[S]?Promise.reject(new Error("404 NOT FOUND. "+N+".id:"+(e._id||""))):e}).then(fe.do_save_cache).then(he.do_save_search)}).then(pe)):Promise.reject(new Error("._id is required!"))},Pe=function(e){if(!e)return e;if(!C||!C.length)return e;var n=$?z($):null;return n?C.reduce(function(e,r){var t=e[r];return void 0===t||(e[r]=t?n.decrypt(t):t),e},e):e},ge=function(e){return e._id?e._node?Promise.resolve(e).then(Ee).then(se).then(fe.do_save_cache).then(he.do_save_search).then(pe):Promise.reject(new Error("_node is required!")):Promise.reject(new Error("._id is required!"))},we=function(e){var r=e._id;return r?e._node?e._current_time?(l(p,"- my_clone_node ("+r+")...."),Promise.resolve(e).then(function(n){if(!I)return n;var i=void 0!==n[A]?f.N(n[A],0):r,o=r;return G({_id:0}).then(function(e){var r=e._id,t=n._node||{};return t[S]=r,A&&(t[A]=i),R&&(t[R]=o),A&&(n[A]=i),R&&(n[R]=o),n._clone_id=r,n._node=t,n})}).then(function(e){var r=e._id;return e._node?e._clone_id?(e._id=e._clone_id,h.reduce(e,function(e,r,t){return t&&(t.startsWith("_")||t.startsWith("$")||0<=X.indexOf(t)||void 0!==e[t]&&(e[t]=r)),e},e._node),l(p,">> before save-node().. that._node =",f.json(e._node)),ge(e).then(function(){return e._id=r,e})):Promise.reject(new Error("._clone_id is required!")):Promise.reject(new Error("._node is required!"))}).then(function(e){return l(p,">> cloned-node["+e._id+" -> "+e._clone_id+"] res=",f.json(e._node)),e})):Promise.reject(new Error("._current_time is required!")):Promise.reject(new Error("._node is required!")):Promise.reject(new Error("._id is required!"))},Se=function(e){return e._id?Promise.resolve(e).then(ce).then(fe.do_delete_cache).then(he.do_delete_search).then(ve).then(function(e){return l(p,">> deleted-node res=",f.json(e._node)),e}):Promise.reject(new Error("._id is required!"))},je=function(e){return Promise.resolve(e).then(he.do_search)},qe=function(e){if(!e)return e;if(!e._id)return Promise.reject(new Error("_id is required!"));var n=e._current_mode;return Promise.resolve(e).then(function(r){var e=!1;if("create"===n||"prepare"===n||"delete"===n||"destroy"===n?e=!0:"update"!==n&&"increment"!==n||(e=0<r._fields_count),e){var t=V+":event:"+n;return l(p,">>> notify event-id:",t,", notifiable=",e),Oe(t,r).then(function(e){return r})}return r})},Ne=function(r){if(!r.records)return Promise.reject(new Error("records is required!"));var e=r.records.slice(0);if(l(p,"- my_event_records().... records.len=",e.length),!e.length)return r;var t,n,i;return(t=e,n=be,i=f.promise(t.shift()),i=t.reduce(function(e,r){return e.then(function(){return n(r)})},i.then(function(e){return n(e)}))).catch(function(e){return s(p,"error ignored! =",e),r}).then(function(){return r})},be=function(e){if(!e)return Promise.reject(new Error("record is required"));if(!e.dynamodb&&!e.Sns)return Promise.reject(new Error("record.dynamodb|Sns is required"));var i=e.eventName||"EVENT",r=null;if(e.dynamodb){var o=e.table||e.eventSourceARN&&e.eventSourceARN.split("/")[1]||"";if(l(p,"--- process-record("+o+") ... "),N!==o)return l(p,"! ignore record-table: "+N+" != "+o+" "),e;var t=e.dynamodb.Keys?B.toJavascript(e.dynamodb.Keys):{},d=e.dynamodb.NewImage?B.toJavascript(e.dynamodb.NewImage):null,n=e.dynamodb.OldImage?B.toJavascript(e.dynamodb.OldImage):null,u=t[S],a="MODIFY"===i?f.diff(n,d):null,s=f.N(d&&d.updated_at||0),_=a?h.reduce(a,function(e,r){return e[r]=n[r],e},{}):null,c={_id:u,_node:d,_updated_at:s,_diff:a,_prev:_};switch(r=Promise.resolve(c),a&&l(p,">> "+o+".different["+u+"]=",f.json(a)),i){case"INSERT":case"MODIFY":r=r.then(function(t){var n=t._id;return D?t:fe.do_get_cache_updated(n).then(function(e){if(m(p,">> "+o+".updated_at["+n+"] res=",e," <- ",t._updated_at,t._updated_at!==e?"*":""),!e||t._updated_at>=e){var r=f.hash(d);return fe.do_get_cache_hash(n).then(function(e){return e&&e===r?(l(p,"!WARN! ignored due to hash-value matching =",e),t):(-1!==e&&l(p,"! INFO! node was updated. hash :=",r,"<-",e),fe.do_save_cache(t).then(he.do_save_search))})}return l(p,"! ignored due to old-record"),t})});break;case"REMOVE":l(p,">> removed!"),r=(r=r.then(fe.do_delete_cache)).then(he.do_delete_search)}}else if(e.Sns){l(p,">> event-SNS =",e.Sns);r=Promise.resolve(e.Sns)}return r?r.then(function(r){var e={INSERT:"create",MODIFY:"update",REMOVE:"delete",EVENT:"event"}[i],t=!!e;if(r._current_mode=e,t){var n=V+":record:"+e;return l(p,">>> notify event-id:",n,", notifiable=",t),Oe(n,r).then(function(e){return r})}return r}).then(function(){return e}):Promise.reject(new Error("invalid chain!"))},Oe=function(e,r){return H.do_notify(e,r)},Ie=function(r){var e=[];if(N){var t=j.startsWith("#")?"S":"N";e.push(Promise.resolve("DynamoDb").then(function(e){return l(p,"# initialize ",e),u.do_create_table(N,S,t).then(function(e){return{result:e.TableDescription.TableName===N,name:"dynamo:"+N}})}).catch(function(e){var r=e.message||""+e;return s(p,"> create-table error=",e),"ResourceInUseException"===e.code?{result:!1,name:"dynamo:"+N,code:e.code}:{result:!1,name:"dynamo:"+N,error:r}}))}else l(p,"DS: WARN! ignored configuration. DYNA_TABLE=",N);if(j&&!j.startsWith("#")?e.push(Promise.resolve("MySQL").then(function(e){return l(p,"# initialize MySQL (Sequence) "),i.do_create_id_seq(j,q).then(function(e){return l(p,"> create-id-seq res=",e),{result:!0,name:"sequence"}})}).catch(function(e){var r=e.message||""+e;return s(p,"> create-id-seq error=",e),"ER_TABLE_EXISTS_ERROR"===e.code?{result:!1,name:"MySQL",code:e.code}:{result:!1,name:"MySQL",error:r}})):j&&j.startsWith("#")&&1<j.length&&0<q?e.push(Promise.resolve("MySQL").then(function(e){l(p,"# initialize MySQL (Sequence) ");var r=j.substring(1);return i.do_create_id_seq(r,q).then(function(e){return l(p,"> create-id-seq["+r+"] res=",e),{result:!0,name:"MySQL"}})}).catch(function(e){var r=e.message||""+e;return s(p,"> create-id-seq error=",e),"ER_TABLE_EXISTS_ERROR"===e.code?{result:!1,name:"MySQL",code:e.code}:{result:!1,name:"MySQL",error:r}})):l(p,"MS: WARN! ignored configuration. ID_TYPE=",j),x&&U){var n={template:x,mappings:{_default_:{dynamic_templates:[{string_fields:{match:"*_multi",match_mapping_type:"string",mapping:{type:"multi_field",fields:{"{name}":{type:6<=M?"text":"string",index:"analyzed",omit_norms:!0,index_options:"docs"},"{name}.raw":{type:6<=M?"text":"string",index:"not_analyzed",ignore_above:256}}}}}],_source:{enabled:6<=M},properties:{"@version":{type:6<=M?"text":"string",index:!(6<=M)&&"not_analyzed"},title:{type:6<=M?"text":"string"},name:{type:6<=M?"text":"string"},created_at:{type:"date",format:"strict_date_optional_time||epoch_millis"},updated_at:{type:"date",format:"strict_date_optional_time||epoch_millis"},deleted_at:{type:"date",format:"strict_date_optional_time||epoch_millis"}}}}};if(6<=M||(n.mappings._default_.all={enabled:!0}),S&&j.startsWith("#")&&(n.mappings._default_.properties[S]={type:6<=M?"text":"string",fields:{keyword:{type:"keyword",ignore_above:256}}}),D)n.settings={index:{refresh_interval:"5s"}},n.mappings._default_.properties["@timestamp"]={type:"date",doc_values:!0},n.mappings._default_.properties.ip={type:"ip"},"@version,title,created_at,updated_at,deleted_at".split(",").map(function(e){return delete n.mappings._default_.properties[e]});e.push(Promise.resolve("ElasticSearch").then(function(e){return l(p,"# initialize ElasticSearch. ES_TYPE=",W),Y.do_create_index_type(x,W,n).then(function(e){return l(p,"> create-es-index res=",e),{result:!0,name:"elasticsearch:"+x,settings:n}}).catch(function(e){var r=e.message||e.reason||""+e;return s(p,"> create-es-index error=",e),"index_already_exists_exception"===e.type?{result:!0,name:"elasticsearch:"+x,warn:e.type}:{result:!1,name:"elasticsearch:"+x,error:r}})}))}else l(p,"MS: WARN! ignored configuration. ES_TYPE=",W);return Promise.all(e).then(function(e){return l(p,">> results=",e),r.results=e,r})},Re=function(r){var e=[];if(N&&(l(p,"# terminate DynamoDB"),e.push(u.do_delete_table(N).then(function(e){e.TableDescription.TableName;return{result:!0,name:"dynamo:"+N}}).catch(function(e){var r=e.message||""+e;return s(p,"> delete-table error=",e),"ResourceNotFoundException"===e.code?{result:!0,name:"dynamo:"+N,code:e.code}:{result:!1,name:"dynamo:"+N,error:r}}))),j&&!j.startsWith("#"))l(p,"# terminate MySQL (Sequence) "),e.push(i.do_delete_id_seq(j).then(function(e){return l(p,"> delete-id-seq res=",e),{result:!0,name:"MySQL:"+j}}).catch(function(e){var r=e.message||""+e;return s(p,"> delete-id-seq error=",e),"ER_BAD_TABLE_ERROR"===e.code?{result:!0,name:"MySQL:"+j,code:e.code}:{result:!1,name:"MySQL:"+j,error:r}}));else if(j&&j.startsWith("#")&&1<j.length&&0<q){l(p,"# terminate MySQL (Sequence) ");var t=j.substring(1);e.push(i.do_delete_id_seq(t).then(function(e){return l(p,"> delete-id-seq["+t+"] res=",e),{result:!0,name:"MySQL:"+t}}).catch(function(e){var r=e.message||""+e;return s(p,"> delete-id-seq error=",e),"ER_BAD_TABLE_ERROR"===e.code?{result:!0,name:"MySQL:"+t,code:e.code}:{result:!1,name:"MySQL:"+t,error:r}}))}else l(p,"# ignored MySQL (Sequence) ");return x?(l(p,"# terminate ES (Index) "),e.push(Y.do_delete_index_type(x,null).then(function(e){return l(p,"> delete-es-index res=",e),{result:!0,name:"elasticsearch:"+x}}).catch(function(e){var r=e.message||e.reason||""+e;return s(p,"> delete-es-index error=",e),{result:!1,name:"elasticsearch:"+x,error:r}}))):l(p,"# ignored ES (Index) "),Promise.all(e).then(function(e){return l(p,">> results=",e),r.results=e,r})},Ae=function(e){var r={a:1,b:2,x:3},t={x:3,a:1,b:2},n={b:2,x:3,a:1};r.name="hi",t.name="hi",n.name="hi",l(p,"# node1 =",f.json(r)),l(p,"> node2 =",f.json(t)),l(p,"> node3 =",f.json(n)),l(p,"# node1.sorted =",f.json(r,!0)),l(p,"> node2.sorted =",f.json(t,!0)),l(p,"> node3.sorted =",f.json(n,!0)),l(p,"# hash1 =",f.hash(1)),l(p,"> node1 =",f.hash(r)),l(p,"> node2 =",f.hash(t)),l(p,"> node3 =",f.hash(n));var i={updated_at:234,name:"test hash"};return Promise.resolve(i).then(function(e){return o.do_create_item("H#",1,e)}).then(function(){return o.do_get_item("H#",1).then(function(e){return l(p,"> read-back data=",e),e})}).then(function(){return fe.do_set_cache_footprint(1,i)}).then(function(){return fe.do_get_cache_updated(1).then(function(e){return l(p,"> updated-at value=",void 0===e?"undefined":_typeof(e),":",e),e})}).then(function(){return fe.do_get_cache_hash(1).then(function(e){return l(p,"> hash-value value=",void 0===e?"undefined":_typeof(e),":",e),e})})},Te=function(r){return l(p,"- my_test_self()...."),Promise.resolve(r).then(Ae).then(function(e){return e||r})};return _.do_prepare_chain=function(e,r,t,n){return J(e,r,t,n)},_.do_finish_chain=function(e,r,t,n){return K(e)},_.do_prepare=function(e,r){return J(e,r,"prepare").then(te).then(ge).then(qe).then(K)},_.do_create=function(t,n){return J(t,n,"create").then(ne).catch(function(e){s(p,"ERR! prepare_node_created =",e instanceof Error,e.message||e);var r=e&&e.message||"";if(e instanceof Error&&0<=r.indexOf("404 NOT FOUND"))return m(p,"WARN! AUTO TRY TO PREPARE NODE. ID="+t),J(t,n,"create").then(function(e){var r=e._current_time;return e=Z(e),l(p,">> prepared old-node=",f.json(e._node)),e._node=re(e._node,r),e});throw e}).then(ge).then(qe).then(K)},_.do_saveES=function(e,r){return e?r?J(e,{},"save").then(Ee).then(function(e){return e._node=r,e}).then(he.do_save_search).then(K):Promise.reject(new Error("node is required!")):Promise.reject(new Error("id is required!"))},_.do_cleanRedis=function(e,r){return e?J(e,{},"clean").then(function(e){return e._node=r,e}).then(fe.do_delete_cache).then(K):Promise.reject(new Error("id is required!"))},_.do_clone=function(e,r){return J(e,r,"clone").then(ie).then(we).then(qe).then(K)},_.do_read=function(e,r){return J(e,r,"read").then(Z).then(function(e){return 0!==e._params_count&&0===e._fields_count?e:ye(e)}).then(K)},_.do_readX=function(e,r){return J(e,r,"read").then(Z).then(function(e){return 0!==e._params_count&&0===e._fields_count?e:ye(e)}).then(K).then(Pe)},_.do_update=function(e,r){return J(e,r,"update").then(oe).then(function(e){return 0===e._fields_count?e:(n=(t=e)._id)?0===t._fields_count?(l(p,"! my_update_node() no need to update... fields_count="+t._fields_count),t):Promise.resolve(t).then(Ee).then(ae).then(function(e){return e._updated_node?fe.do_save_cache(e):e}).then(function(e){return e._updated_node?he.do_save_search(e):e}).then(function(e){return e._updated_node?pe(e):e}).then(function(e){return l(p,">> updated-node["+n+"] res=",f.json(e._updated_node)),e}).catch(function(e){var r=e&&e.message||"";if(s(p,">> updated-node["+n+"] err=",r),0<r.indexOf("an attribute that does not exist in the item"))return ge(t);throw e}):Promise.reject(new Error("._id is required!"));var t,n}).then(qe).then(K)},_.do_increment=function(e,r){return J(e,r,"increment").then(oe).then(function(e){return 0===e._fields_count?e:(t=(r=e)._id)?0===r._fields_count?(l(p,"! my_increment_node() no need to increment... fields_count="+r._fields_count),r):Promise.resolve(r).then(Ee).then(_e).then(function(e){return e._updated_node?fe.do_save_cache(e):e}).then(function(e){return e._updated_node?he.do_save_search(e):e}).then(function(e){return e._updated_node?pe(e):e}).then(function(e){return l(p,">> increment-node["+t+"] res=",f.json(e._updated_node)),e}):Promise.reject(new Error("._id is required!"));var r,t}).then(qe).then(K)},_.do_delete=function(e,r){return J(e,r,"delete").then(de).then(ge).then(qe).then(K)},_.do_destroy=function(e,r){return J(e,r,"destroy").then(Se).then(qe).then(K)},_.do_search=function(e,r){return J(e,r,"search").then(je).then(K)},_.on_records=function(e,r){return J(e,r,"on_records").then(Ne).then(K)},_.do_initialize=function(e,r){return J(e,r,"initialize").then(Ie).then(K)},_.do_terminate=function(e,r){return J(e,r,"terminate").then(Re).then(K)},_.do_test_self=function(e,r){return J(e,r,"self-test").then(Te).then(K)},_.do_next_id=function(){return G({_id:0}).then(function(e){return e._id})},_};
"use strict";var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_slicedToArray=function(e,r){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,r){var t=[],n=!0,i=!1,o=void 0;try{for(var d,u=e[Symbol.iterator]();!(n=(d=u.next()).done)&&(t.push(d.value),!r||t.length!==r);n=!0);}catch(e){i=!0,o=e}finally{try{!n&&u.return&&u.return()}finally{if(i)throw o}}return t}(e,r);throw new TypeError("Invalid attempt to destructure non-iterable instance")};function _defineProperty(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}module.exports=function(e,r,t){var n=r||"LEM",f=e.U,h=e._,i=e.MS,u=e.DS,o=e.RS,d=e.ES,a=e.ES6;if(!f)throw new Error("$U is required!");if(!h)throw new Error("$U is required!");if(!i)throw new Error("$MS is required!");if(!u)throw new Error("$DS is required!");if(!o)throw new Error("$RS is required!");function s(e){throw new Error("NOT_IMPLEMENTED - "+p+":"+JSON.stringify(e))}var l=e.log,m=e.inf,_=e.err,p=f.NS(n,"green"),c=t||{};c.do_prepare=s,c.do_create=s,c.do_clone=s,c.do_update=s,c.do_increment=s,c.do_read=s,c.do_readX=s,c.do_delete=s,c.do_destroy=s,c.do_search=s,c.do_initialize=s,c.do_terminate=s,c.do_test_self=s,c.on_records=s,c.do_notify=s,c.do_subscribe=s,c.do_next_id=s,r.startsWith("_")||e(r,c);function v(e,r){return void 0===c[e]?r:c[e]}var E=v("VERSION",1),y=v("REVISION",1),P=v("VERSION_NAME","V"),g=v("REVISION_NAME","R"),w=v("ID_INPUT","id"),S=v("ID_NAME","id"),j=v("ID_TYPE","test"),q=v("ID_NEXT",0),N=v("DYNA_TABLE","TestTable"),b=v("REDIS_PKEY","TPKEY"),O=v("DEFAULTS",null),I=v("CLONEABLE",!1),R=v("CLONED_ID","cloned"),A=v("PARENT_ID","parent"),T=v("PARENT_IMUT",!0),x=v("ES_INDEX","test-v1"),D=v("ES_TIMESERIES",!1),W=v("ES_TYPE",""),L=v("ES_MASTER",D?1:0),M=v("ES_VERSION",5);l(p,"! CONF_ES_TIMESERIES=",D);var $=v("XECURE_KEY",null),F=function(){function e(e){return e&&"string"==typeof e?e.split(",").reduce(function(e,r){return(r=r.trim())&&e.push(r),r},[]):e}var r=v("FIELDS",null),t=v("ES_FIELDS",D?null:["updated_at","name"]),n=v("XEC_FIELDS",null);if(r){if(r=e(r),t=e(t||[]),n=e(n||[]),!Array.isArray(r))throw new Error("FIELDS must be array!");if(!Array.isArray(t))throw new Error("ES_FIELDS must be array!");if(!Array.isArray(n))throw new Error("XEC_FIELDS must be array!");r=r.reduce(function(e,r){var t=r.startsWith("*");if(!(r=t?r.substring(1):r))throw new Error("Invalid field name");return t&&n.indexOf(r)<0&&n.push(r),e.push(r),e},[]),t=t.reduce(function(e,r){var t=r.startsWith("*");if(!(r=t?r.substring(1):r))throw new Error("Invalid field name");return t&&n.indexOf(r)<0&&n.push(r),e.push(r),e},[]),n.length&&m(p,"XECURED-FIELDS =",n)}return!r||!r.length?n=t=r=null:t&&!t.length&&(t=D?r:null),[r,t,n]}(),k=_slicedToArray(F,3),Q=k[0],U=k[1],C=k[2];if(l(p,"! CONF_ES_FIELDS :=",U&&U.join(", ")),D&&b&&!b.startsWith("#"))throw new Error("ES_TIMESERIES - Redis should be inactive. PKEY:"+b);if(D&&!U.length)throw new Error("ES_TIMESERIES - CONF_ES_FIELDS should be valid!");var V=v("NS_NAME",""),Y=5<M?a:d;if(!Y)throw new Error("$ES is required! Ver:"+M);function B(e){var o=require("crypto"),d="aes-256-ctr";if(!o)throw new Error("crypto module is required!");var r={crypto:o,algorithm:d,passwd:e,encrypt:function(e){e=void 0===e?null:e;var r=JSON.stringify({alg:d,val:e}),t=new Buffer("LM!#"+(r||""),"utf8"),n=this.passwd||"",i=o.createCipher(d,n);return Buffer.concat([i.update(t),i.final()]).toString("base64")},decrypt:function(e){var r=new Buffer(e||"","base64"),t=this.passwd||"",n=o.createDecipher(d,t),i=Buffer.concat([n.update(r),n.final()]).toString("utf8");return(JSON.parse(i.substr("LM!#".length))||{}).val}};return r}var z=require("dynamodb-value"),H=require("./notify-service")(e,"!"+V,{NS_NAME:V});c.do_notify=H.do_notify,c.do_subscribe=H.do_subscribe,I&&Q&&(A&&Q.indexOf(A)<0&&Q.push(A),R&&Q.indexOf(R)<0&&Q.push(R));var X=[w,S,"created_at","updated_at","deleted_at",R];T&&A&&X.push(A);function J(e,r,t,n){t=t||"";var i=r="object"===(void 0===(e=e||0)?"undefined":_typeof(e))?r?f.extend(e,r):e:(r=null==r?{}:"object"!==(void 0===r?"undefined":_typeof(r))||r instanceof Promise?{params:r}:f.copy(r),f.extend(r,{_id:e}));if(void 0!==i.records)return f.promise(i);if(t.startsWith("notify"))return f.promise(i);if(i&&void 0!==i._is_prepared&&i._is_prepared)return i._current_mode=t,i._method_stack.push(t),1e3<i._method_stack.length?Promise.reject("method-stack full. size:"+i._method_stack):f.promise(i);e=j.startsWith("#")?i._id||i[w]||"":f.N(i._id||i[w]||0);var o=i._current_time||f.current_time_ms();return i._id=e,i._current_time=o,i._current_mode=t,i._method_stack=[],i._method_stack.push(t),i._updated_node=null,i._ctx=n,i._node={},i._is_prepared=!0,void 0===i._params_count&&(i._params_count=0,i=h.reduce(i,function(e,r,t){return t.startsWith("_")||t.startsWith("$")||0<=X.indexOf(t)||e._params_count++,e},i)),f.promise(i)}function K(e){if(!e)return e;var r=e._current_mode||"";if(void 0!==e.records)return f.promise(e);if(r.startsWith("notify"))return f.promise(e);if(e._method_stack&&e._method_stack.pop(),"read"!==r&&"increment"!==r&&"create"!==r)return e;if(void 0!==e._auto_populate&&!e._auto_populate)return e;var t=e._node;return 0===e._params_count||-1===e._fields_count?e=h.reduce(t,function(e,r,t){return"updated_at"===t&&void 0!==e[t]?e[t]=e[t]>r?e[t]:r:e[t]=r,e},e):0<=e._fields_count&&(e=Q?Q.reduce(function(e,r){return void 0!==e[r]&&void 0!==t[r]&&(e[r]=t[r]),e},e):e),e}function G(r){var e=r._id;if(l(p,"- my_prepare_id("+j+", "+e+")...."),j.startsWith("#")){if(j&&j.startsWith("#")&&1<j.length&&0<q){var t=j.substring(1);return i.do_get_next_id(t).then(function(e){return l(p,"> created next-id["+t+"]=",e),r._id=e,r})}}else if(j&&!e)return i.do_get_next_id(j).then(function(e){return l(p,"> created next-id=",e),r._id=e,r});return l(p,"> prepared-id =",e),Promise.resolve(r)}function Z(t){if(!t._current_mode)throw new Error("._current_mode is required!");var n=t._current_mode,i=O||{},o=0,e=t._node||{};return Q?"prepare"===n||"create"===n||"clone"===n?e=Q.reduce(function(e,r){return r===S||r===P||r===g||("prepare"===n?(void 0!==i[r]?e[r]=O[r]:void 0!==t[r]&&(e[r]=t[r]),P&&(e[P]=E),g&&(e[g]=0)):("create"===n&&g&&(e[g]=y-1),void 0!==t[r]&&(e[r]=t[r])),o++),e},e):"update"!==n&&"increment"!==n&&"read"!==n||(e=Q.reduce(function(e,r){return r===S||void 0!==t[r]&&o++,e},e)):o=-1,t._fields_count=o,t._node=e,t}function ee(e,r){return e.created_at=0,e.updated_at=r,e.deleted_at=r,e}function re(e,r){return e.created_at=r,e.updated_at=r,e.deleted_at=0,e}function te(t){if(!t._node)return Promise.reject(new Error("._node is required!"));if(!t._current_time)return Promise.reject(new Error("._current_time is required!"));if(D)return t._node=t._node||{},Promise.resolve(t);var n=t._id,i=t._current_time;return n?Re(t).catch(function(e){var r=e&&e.message||"";if(r.indexOf("404 NOT FOUND")<0)throw e;return m(p,"WARN! NOT FOUND. msg=",r),t}).then(function(e){var r=(e=Z(e))._node||{};if(e._force_create)_(p,"WARN! _force_create is set!");else if(!r.deleted_at)return _(p,"INVALID STATE FOR PREPARED. ID=",n,", TIMES[CUD]=",[r.created_at,r.updated_at,r.deleted_at]),Promise.reject(new Error("INVALID STATE. deleted_at:"+r.deleted_at));return e[w]=e._id,r[S]=e._id,e._node=ee(e._node,i),e}):(t=Z(t),G(t).then(function(e){var r=e._node||{};return e[w]=e._id,r[S]=e._id,e._node=ee(r,i),e}))}function ne(e){if(!e._id)return Promise.reject(new Error("._id is required!"));if(!e._node)return Promise.reject(new Error("._node is required!"));if(!e._current_time)return Promise.reject(new Error("._current_time is required!"));if(D)return e._node=e._node||{},Promise.resolve(e);var t=e._id,n=e._current_time;return l(p,"> prepared-id =",t,", current-time =",n),Re(e).then(function(e){var r=(e=Z(e))._node||{};if(e._force_create)m(p,"WARN! _force_create is set!");else if(!r.deleted_at)return _(p,"INVALID STATE FOR CREATED. ID=",t,", TIMES[CUD]=",[r.created_at,r.updated_at,r.deleted_at]),Promise.reject(new Error("INVALID STATE. deleted_at:"+r.deleted_at));return e._node=re(r,n),e})}function ie(e){if(!e._id)return Promise.reject(new Error("._id is required!"));if(!e._node)return Promise.reject(new Error("._node is required!"));if(!e._current_time)return Promise.reject(new Error("._current_time is required!"));if(D)return e._node=e._node||{},Promise.resolve(e);e._id,e._node;var r=e._current_time;return Re(e).then(function(e){return(e=Z(e))._node=re(e._node,r),e})}function oe(e){if(!e._id)return Promise.reject(new Error("._id is required!"));if(!e._node)return Promise.reject(new Error("._node is required!"));if(!e._current_time)return Promise.reject(new Error("._current_time is required!"));if(D)return e._node=e._node||{},Promise.resolve(e);e._id,e._node;var r=e._current_time;return 0===(e=Z(e))._fields_count?e:Re(e).then(function(e){return e._node=function(e,r){return e.updated_at=r,e}(e._node,r),e})}function de(e){if(!e._id)return Promise.reject(new Error("._id is required!"));if(!e._node)return Promise.reject(new Error("._node is required!"));if(!e._current_time)return Promise.reject(new Error("._current_time is required!"));if(D)return e._node=e._node||{},Promise.resolve(e);e._id;var r=e._current_time;return Re(e).then(function(e){return(e=Z(e))._node=function(e,r){return e.updated_at=r,e.deleted_at=r,e}(e._node,r),e})}function ue(e){var r=e._id||"";return[b,N,""+r].join(":").toUpperCase()}function ae(e){if(D)return e;var r=ue(e),t=e._node,n=e._current_time||f.current_time_ms();t||delete Ie[r];var i={cached_at:n,node:t};return Ie[r]=i,e}function se(e){var r=ue(e);return delete Ie[r],e}function _e(n){var i=n._id;return Object.keys(n).forEach(function(t,e){if(n.hasOwnProperty(t)&&!(t.startsWith("_")||t.startsWith("$")||Q&&Q.indexOf(t)<0)){var r=n[t];if(r&&"object"==(void 0===r?"undefined":_typeof(r))){if(!Array.isArray(r))throw new Error("Invalid data-type (object) key:"+t+"@"+i);r.forEach(function(e,r){if(e&&"object"==(void 0===e?"undefined":_typeof(e)))throw new Error("Invalid data-type (object) key:"+t+"@"+i+":"+r)})}}}),n}function ce(e){if(!e)return e;if(!C||!C.length)return e;var n=$?B($):null;return n?C.reduce(function(e,r){var t=e[r];return void 0===t||(e[r]=t?n.decrypt(t):t),e},e):e}function fe(e){return e._id?e._node?Promise.resolve(e).then(_e).then(je).then(be.do_save_cache).then(Oe.do_save_search).then(ae):Promise.reject(new Error("_node is required!")):Promise.reject(new Error("._id is required!"))}function he(e){var r=e._id;return r?e._node?e._current_time?(l(p,"- my_clone_node ("+r+")...."),Promise.resolve(e).then(function(n){if(!I)return n;var i=void 0!==n[A]?f.N(n[A],0):r,o=r;return G({_id:0}).then(function(e){var r=e._id,t=n._node||{};return t[S]=r,A&&(t[A]=i),R&&(t[R]=o),A&&(n[A]=i),R&&(n[R]=o),n._clone_id=r,n._node=t,n})}).then(function(e){var r=e._id;return e._node?e._clone_id?(e._id=e._clone_id,h.reduce(e,function(e,r,t){return t&&(t.startsWith("_")||t.startsWith("$")||0<=X.indexOf(t)||void 0!==e[t]&&(e[t]=r)),e},e._node),l(p,">> before save-node().. that._node =",f.json(e._node)),fe(e).then(function(){return e._id=r,e})):Promise.reject(new Error("._clone_id is required!")):Promise.reject(new Error("._node is required!"))}).then(function(e){return l(p,">> cloned-node["+e._id+" -> "+e._clone_id+"] res=",f.json(e._node)),e})):Promise.reject(new Error("._current_time is required!")):Promise.reject(new Error("._node is required!")):Promise.reject(new Error("._id is required!"))}function le(e){return e._id?Promise.resolve(e).then(Ne).then(be.do_delete_cache).then(Oe.do_delete_search).then(se).then(function(e){return l(p,">> deleted-node res=",f.json(e._node)),e}):Promise.reject(new Error("._id is required!"))}function me(e){return Promise.resolve(e).then(Oe.do_search)}function pe(e){if(!e)return e;if(!e._id)return Promise.reject(new Error("_id is required!"));var n=e._current_mode;return Promise.resolve(e).then(function(r){var e=!1;if("create"===n||"prepare"===n||"delete"===n||"destroy"===n?e=!0:"update"!==n&&"increment"!==n||(e=0<r._fields_count),e){var t=V+":event:"+n;return l(p,">>> notify event-id:",t,", notifiable=",e),Te(t,r).then(function(e){return r})}return r})}function ve(r){if(!r.records)return Promise.reject(new Error("records is required!"));var e,t,n,i=r.records.slice(0);return l(p,"- my_event_records().... records.len=",i.length),i.length?(e=i,t=Ae,n=f.promise(e.shift()),n=e.reduce(function(e,r){return e.then(function(){return t(r)})},n.then(function(e){return t(e)}))).catch(function(e){return _(p,"error ignored! =",e),r}).then(function(){return r}):r}function Ee(r){var e=[];if(N){var t=j.startsWith("#")?"S":"N";e.push(Promise.resolve("DynamoDb").then(function(e){return l(p,"# initialize ",e),u.do_create_table(N,S,t).then(function(e){return{result:e.TableDescription.TableName===N,name:"dynamo:"+N}})}).catch(function(e){var r=e.message||""+e;return _(p,"> create-table error=",e),"ResourceInUseException"===e.code?{result:!1,name:"dynamo:"+N,code:e.code}:{result:!1,name:"dynamo:"+N,error:r}}))}else l(p,"DS: WARN! ignored configuration. DYNA_TABLE=",N);if(j&&!j.startsWith("#")?e.push(Promise.resolve("MySQL").then(function(e){return l(p,"# initialize MySQL (Sequence) "),i.do_create_id_seq(j,q).then(function(e){return l(p,"> create-id-seq res=",e),{result:!0,name:"sequence"}})}).catch(function(e){var r=e.message||""+e;return _(p,"> create-id-seq error=",e),"ER_TABLE_EXISTS_ERROR"===e.code?{result:!1,name:"MySQL",code:e.code}:{result:!1,name:"MySQL",error:r}})):j&&j.startsWith("#")&&1<j.length&&0<q?e.push(Promise.resolve("MySQL").then(function(e){l(p,"# initialize MySQL (Sequence) ");var r=j.substring(1);return i.do_create_id_seq(r,q).then(function(e){return l(p,"> create-id-seq["+r+"] res=",e),{result:!0,name:"MySQL"}})}).catch(function(e){var r=e.message||""+e;return _(p,"> create-id-seq error=",e),"ER_TABLE_EXISTS_ERROR"===e.code?{result:!1,name:"MySQL",code:e.code}:{result:!1,name:"MySQL",error:r}})):l(p,"MS: WARN! ignored configuration. ID_TYPE=",j),x&&U){var n={template:x,mappings:{_default_:{dynamic_templates:[{string_fields:{match:"*_multi",match_mapping_type:"string",mapping:{type:"multi_field",fields:{"{name}":{type:6<=M?"text":"string",index:"analyzed",omit_norms:!0,index_options:"docs"},"{name}.raw":{type:6<=M?"text":"string",index:"not_analyzed",ignore_above:256}}}}}],_source:{enabled:6<=M},properties:{"@version":{type:6<=M?"text":"string",index:!(6<=M)&&"not_analyzed"},title:{type:6<=M?"text":"string"},name:{type:6<=M?"text":"string"},created_at:{type:"date",format:"strict_date_optional_time||epoch_millis"},updated_at:{type:"date",format:"strict_date_optional_time||epoch_millis"},deleted_at:{type:"date",format:"strict_date_optional_time||epoch_millis"}}}}};if(6<=M||(n.mappings._default_.all={enabled:!0}),S&&j.startsWith("#")&&(n.mappings._default_.properties[S]={type:6<=M?"text":"string",fields:{keyword:{type:"keyword",ignore_above:256}}}),D)n.settings={index:{refresh_interval:"5s"}},n.mappings._default_.properties["@timestamp"]={type:"date",doc_values:!0},n.mappings._default_.properties.ip={type:"ip"},"@version,title,created_at,updated_at,deleted_at".split(",").map(function(e){return delete n.mappings._default_.properties[e]});e.push(Promise.resolve("ElasticSearch").then(function(e){return l(p,"# initialize ElasticSearch. ES_TYPE=",W),Y.do_create_index_type(x,W,n).then(function(e){return l(p,"> create-es-index res=",e),{result:!0,name:"elasticsearch:"+x,settings:n}}).catch(function(e){var r=e.message||e.reason||""+e;return _(p,"> create-es-index error=",e),"index_already_exists_exception"===e.type?{result:!0,name:"elasticsearch:"+x,warn:e.type}:{result:!1,name:"elasticsearch:"+x,error:r}})}))}else l(p,"MS: WARN! ignored configuration. ES_TYPE=",W);return Promise.all(e).then(function(e){return l(p,">> results=",e),r.results=e,r})}function ye(r){var e=[];if(N&&(l(p,"# terminate DynamoDB"),e.push(u.do_delete_table(N).then(function(e){e.TableDescription.TableName;return{result:!0,name:"dynamo:"+N}}).catch(function(e){var r=e.message||""+e;return _(p,"> delete-table error=",e),"ResourceNotFoundException"===e.code?{result:!0,name:"dynamo:"+N,code:e.code}:{result:!1,name:"dynamo:"+N,error:r}}))),j&&!j.startsWith("#"))l(p,"# terminate MySQL (Sequence) "),e.push(i.do_delete_id_seq(j).then(function(e){return l(p,"> delete-id-seq res=",e),{result:!0,name:"MySQL:"+j}}).catch(function(e){var r=e.message||""+e;return _(p,"> delete-id-seq error=",e),"ER_BAD_TABLE_ERROR"===e.code?{result:!0,name:"MySQL:"+j,code:e.code}:{result:!1,name:"MySQL:"+j,error:r}}));else if(j&&j.startsWith("#")&&1<j.length&&0<q){l(p,"# terminate MySQL (Sequence) ");var t=j.substring(1);e.push(i.do_delete_id_seq(t).then(function(e){return l(p,"> delete-id-seq["+t+"] res=",e),{result:!0,name:"MySQL:"+t}}).catch(function(e){var r=e.message||""+e;return _(p,"> delete-id-seq error=",e),"ER_BAD_TABLE_ERROR"===e.code?{result:!0,name:"MySQL:"+t,code:e.code}:{result:!1,name:"MySQL:"+t,error:r}}))}else l(p,"# ignored MySQL (Sequence) ");return x?(l(p,"# terminate ES (Index) "),e.push(Y.do_delete_index_type(x,null).then(function(e){return l(p,"> delete-es-index res=",e),{result:!0,name:"elasticsearch:"+x}}).catch(function(e){var r=e.message||e.reason||""+e;return _(p,"> delete-es-index error=",e),{result:!1,name:"elasticsearch:"+x,error:r}}))):l(p,"# ignored ES (Index) "),Promise.all(e).then(function(e){return l(p,">> results=",e),r.results=e,r})}function Pe(e){var r={a:1,b:2,x:3},t={x:3,a:1,b:2},n={b:2,x:3,a:1};r.name="hi",t.name="hi",n.name="hi",l(p,"# node1 =",f.json(r)),l(p,"> node2 =",f.json(t)),l(p,"> node3 =",f.json(n)),l(p,"# node1.sorted =",f.json(r,!0)),l(p,"> node2.sorted =",f.json(t,!0)),l(p,"> node3.sorted =",f.json(n,!0)),l(p,"# hash1 =",f.hash(1)),l(p,"> node1 =",f.hash(r)),l(p,"> node2 =",f.hash(t)),l(p,"> node3 =",f.hash(n));var i={updated_at:234,name:"test hash"};return Promise.resolve(i).then(function(e){return o.do_create_item("H#",1,e)}).then(function(){return o.do_get_item("H#",1).then(function(e){return l(p,"> read-back data=",e),e})}).then(function(){return be.do_set_cache_footprint(1,i)}).then(function(){return be.do_get_cache_updated(1).then(function(e){return l(p,"> updated-at value=",void 0===e?"undefined":_typeof(e),":",e),e})}).then(function(){return be.do_get_cache_hash(1).then(function(e){return l(p,"> hash-value value=",void 0===e?"undefined":_typeof(e),":",e),e})})}function ge(r){return l(p,"- my_test_self()...."),Promise.resolve(r).then(Pe).then(function(e){return e||r})}var we=function(r){var e;if(!r._id)return Promise.reject(new Error("._id is required!"));var t=r._id;l(p,"- dynamo: read("+t+")....");var n=j.startsWith("#")?"String":"";return u.do_get_item(N,(_defineProperty(e={},S,t),_defineProperty(e,"idType",n),e)).then(function(e){return l(p,"> dynamo: node("+t+") res=",f.json(e)),r._node=e,r})},Se=function(r){if(!r._id)return Promise.reject(new Error("._id is required!"));if(!r._node)return Promise.reject(new Error("._node is required!"));var t=r._id,e=r._node;l(p,"- dynamo: update("+t+")....");var n={},i=0,o=$?B($):null;for(var d in r)d&&r.hasOwnProperty(d)&&((d=""+d).startsWith("_")||d.startsWith("$")||0<=X.indexOf(d)||Q&&Q.indexOf(d)<0||d&&(n[d]=r[d],e[d]=r[d],i++,o&&C&&0<=C.indexOf(d)&&(e[d]=r[d]?o.encrypt(r[d]):"",n[d]=e[d])));return n.updated_at=e.updated_at,l(p,"> dynamo: updated["+t+"]["+i+"] =",f.json(n)),r._updated_node=null,(r._updated_count=i)?(void 0!==e[g]&&(e[g]=f.N(e[g],0)+1),u.do_update_item(N,_defineProperty({},S,t),n,g?_defineProperty({},g,1):null).then(function(e){return r._updated_node=n,r._node=Object.assign(r._node,n),l(p,"> dynamo: updated("+t+") res=",f.json(e)),r})):Q?r:Promise.reject(new Error("nothing to update"))},je=function(r){if(!r._id)return Promise.reject(new Error("._id is required!"));if(!r._node)return Promise.reject(new Error("._node is required!"));var t=r._id,e=r._node,n=r._current_mode||"",i=r._current_time;if(l(p,"- dynamo: save("+t+")...."),"prepare"!==n){var o=$?B($):null;for(var d in r)d&&r.hasOwnProperty(d)&&((d=""+d).startsWith("_")||d.startsWith("$")||0<=X.indexOf(d)||Q&&Q.indexOf(d)<0||(e[d]=r[d],o&&C&&0<=C.indexOf(d)&&(e[d]=r[d]?o.encrypt(r[d]):"")))}return void 0!==e[g]&&(e[g]=f.N(e[g],0)+1),l(p,"> save@node-id =",t,", current-time =",i,", node :=",f.json(e)),u.do_create_item(N,_defineProperty({},S,t),e).then(function(e){return l(p,"> dynamo: saved("+t+") res=",f.json(e)),r})},qe=function(r){if(!r._id)return Promise.reject(new Error("._id is required!"));if(!r._node)return Promise.reject(new Error("._node is required!"));var t=r._id,e=r._node;l(p,"- dynamo: increment("+t+")....");var n={},i=0;for(var o in r)r.hasOwnProperty(o)&&((o=""+o).startsWith("_")||o.startsWith("$")||0<=X.indexOf(o)||Q&&Q.indexOf(o)<0||o&&(n[o]=r[o],e[o]=f.N(e[o],0)+f.N(r[o]),i++));return n.updated_at=e.updated_at,l(p,"> dynamo: incremented["+t+"] :=",f.json(n)),r._updated_node=null,(r._updated_count=i)?(void 0!==e[g]&&(e[g]=f.N(e[g],0)+1),u.do_increment_item(N,_defineProperty({},S,t),n,g?_defineProperty({},g,1):null).then(function(e){return l(p,"> dynamo: increment("+t+") res=",f.json(e)),r._updated_node=n,r})):Q?r:Promise.reject(new Error("nothing to update"))},Ne=function(r){var t=r._id;return t?(l(p,"- dynamo: delete("+t+")...."),u.do_delete_item(N,_defineProperty({},S,t)).then(function(e){return l(p,"> dynamo: deleted("+t+") res=",f.json(e)),r._node=e||{},r})):Promise.reject(new Error("._id is required!"))},be={do_read_cache:function(r){var t=r._id;return t?b?b.startsWith("#")?D?we(r).then(function(e){return void 0===(e._node||{})[S]?Promise.reject(new Error("404 NOT FOUND. "+N+".id:"+(e._id||""))):e}):Oe.do_read_search(r).catch(function(e){throw e instanceof Error&&(_(p,"! redis: read-search("+b+", "+t+") err :=",e.message||e),r._error=e),r}):(l(p,"- redis: get-item("+t+")...."),o.do_get_item(b,t).then(function(e){return e?(r._node=e,r):Promise.reject(r)}).catch(function(e){throw e instanceof Error&&(_(p,"! redis: get-item("+b+", "+t+") err :=",e.message||e),r._error=e),r})):Promise.reject(r):Promise.reject(new Error("._id is required!"))},do_save_cache:function(r){var e=r._id;if(!e)return Promise.reject(new Error("._id is required!"));if(!r._node)return Promise.reject(new Error("._node is required!"));if(!b)return Promise.resolve(r);if(b.startsWith("#"))return Promise.resolve(r);var t=r._node;l(p,"- redis: create-item("+e+")....");var n=be.do_set_cache_footprint(e,t);return n=n.then(function(){return o.do_create_item(b,e,t)}).then(function(e){return r})},do_update_cache:function(r){var e=r._id;if(!e)return Promise.reject(new Error("._id is required!"));if(!r._node)return Promise.reject(new Error("._node is required!"));if(!b)return Promise.resolve(r);if(b.startsWith("#"))return Promise.resolve(r);var t=r._node;l(p,"- redis: update-item("+e+")....");var n=be.do_set_cache_footprint(e,t);return n=n.then(function(){return o.do_update_item(b,e,t)}).then(function(e){return r})},do_delete_cache:function(r){var t=r._id;if(!t)return Promise.reject(new Error("._id is required!"));if(!b)return Promise.resolve(r);var e=b.startsWith("#")?b.substr(1):b;if(!e)return Promise.resolve(r);return Promise.all([e,e+"/UPDATED",e+"/HASH"].map(function(e){return o.do_delete_item(e,t).then(function(e){return e}).catch(function(e){return e.message||""+e})})).then(function(e){return l(p,"> redis: deleted("+t+") res=",f.json(e)),r})},do_set_cache_footprint:function(e,r){if(!e)return Promise.reject(new Error("id is required!"));if(!b)return Promise.resolve(0);r=r||{};var t=f.N(r.updated_at,0),n=f.hash(r);return o.do_create_item([b+"/UPDATED",b+"/HASH"],e,[t,n]).then(function(e){return e})},do_get_cache_updated:function(e){return e?b?b.startsWith("#")?Promise.resolve(-1):o.do_get_item(b+"/UPDATED",e).then(function(e){return e}):Promise.resolve(-1):Promise.reject(new Error("id is required!"))},do_get_cache_hash:function(e){return e?b?b.startsWith("#")?Promise.resolve(-1):o.do_get_item(b+"/HASH",e).then(function(e){return e}):Promise.resolve(-1):Promise.reject(new Error("id is required!"))}},Oe={do_read_search:function(r){var e=r._id;return e?x?(l(p,"- elasticsearch: read("+e+")...."),Y.do_get_item(x,W,e).then(function(e){return e?(r._node=U?f.extend(r._node||{},e):e,r):Promise.reject(r)})):r:Promise.reject(new Error("._id is required!"))},do_save_search:function(r){var t=r._id;if(!t)return Promise.reject(new Error("._id is required!"));if(!r._node)return Promise.reject(new Error("._node is required!"));if(!x)return r;var n=r._node,e=r._current_time||f.current_time_ms();if(U){var i=h.reduce(U,function(e,r){return void 0!==n[r]&&(e[r]=n[r]),e},{});return Object.keys(i).length?(void 0!==n.created_at&&(i.created_at=n.created_at),void 0!==n.updated_at&&(i.updated_at=n.updated_at),void 0!==n.deleted_at&&(i.deleted_at=n.deleted_at),l(p,"> elasticsearch:save("+L+"/"+t+").... node2=",f.json(i)),D?(i["@timestamp"]=e,i[S]=t,Y.do_push_item(x,W,i).then(function(e){return l(p,"! elasticsearch: pushed-item("+t+")@1 res=",f.json(e)),r})):L?Y.do_create_item(x,W,t,i).then(function(e){return l(p,"! elasticsearch: saved-item("+t+")@1 res=",f.json(e)),r}):Y.do_update_item(x,W,t,i).then(function(e){return l(p,"! elasticsearch: updated-item("+t+")@1 res=",f.json(e)),r})):(_(p,"! elasticsearch:WARN! nothing to update ("+t+")...."),r)}return Y.do_create_item(x,W,t,n).then(function(e){return l(p,"! elasticsearch: create-item("+t+")@3 res=",f.json(e)),r})},do_update_search:function(r){var t=r._id;if(!t)return Promise.reject(new Error("._id is required!"));if(!r._updated_node)return Promise.reject(new Error("._updated_node is required!"));if(!x)return r;var n=r._updated_node;if(U){var e=h.reduce(U,function(e,r){return e[r]=n[r],e},{});return Object.keys(e).length?(void 0!==n.created_at&&(e.created_at=n.created_at),void 0!==n.updated_at&&(e.updated_at=n.updated_at),void 0!==n.deleted_at&&(e.deleted_at=n.deleted_at),Y.do_update_item(x,W,t,e).then(function(e){return l(p,"! elasticsearch: updated-item("+t+") res=",f.json(e)),r})):(_(p,"! elasticsearch:WARN! nothing to update ("+t+")...."),r)}return Y.do_update_item(x,W,t,n).then(function(e){return l(p,"! elasticsearch: updated-item("+t+") res=",f.json(e)),r})},do_delete_search:function(r){var t=r._id;return t?x?U&&!L?(l(p,"! elasticsearch:WARN! ignore delete ("+t+")...."),r):Y.do_delete_item(x,W,t).then(function(e){return l(p,"! elasticsearch: deleted-item("+t+") res=",f.json(e)),r}).catch(function(e){return l(p,"ERR! ignore - elastic:delete("+t+") res=",e),r}):r:Promise.reject(new Error("._id is required!"))},do_search:function(i){if(!x)return i;if(U&&!L)return i;var o={$page:0,$limit:0};return o.$page=f.N(i.page,0),o.$limit=f.N(i.ipp,0===i.ipp?0:10),D||(o.deleted_at=void 0!==i.deleted_at?i.deleted_at:"0"),i.$source&&(o.$source=i.$source),i.$exist&&(o.$exist=i.$exist),i.Q&&(o.$Q=i.Q),i.A&&(o.$A=i.A),i.O&&(o.$O=i.O),i.H&&(o.$H=i.H),D&&(o.$O=o.$O||"!@timestamp"),o.$O=o.$O||(j.startsWith("#")?S+".keyword":S),U&&U.forEach(function(e){"page"!=e&&"ipp"!=e&&(void 0!==i[e]&&(o[e]=i[e]),void 0!==i["!"+e]&&(o["!"+e]=i["!"+e]),void 0!==i["#"+e]&&(o["#"+e]=i["#"+e]))}),l(p,"! elasticsearch: search["+x+"/"+W+"] =",f.json(o)),Y.do_search_item(x,W,o).then(function(e){var r=e&&e.hits||{},t=r.hits||[],n=r;return i.list=t.map(function(r){var t=r._score?f.extend({_score:r._score},r._source):r._source;return D&&(t["@id"]=r._id),null!=r.highlight&&Object.keys(r.highlight).forEach(function(e){t[e+"_highlight"]=r.highlight[e][0]}),t}),i.total=f.N(n.total||0),i.page=o.$page,i.ipp=o.$limit,i.took=e.took||0,void 0!==e.aggregations&&(i.aggregations=e.aggregations),i}).catch(function(e){throw _(p,"!ERR @search =",e),e})}},Ie={},Re=function(e){return e._id?function(e){var r=ue(e),t=Ie[r]||{},n=f.N(t.cached_at,0),i=(e._current_time||f.current_time_ms())-n;return!(!t.node||!n||2e3<i||(e._node=Object.assign({},t.node),e.C=n,0))}(e)?Promise.resolve(e):Promise.resolve(e).then(be.do_read_cache).catch(function(e){if(e&&e instanceof Error)throw e;return we(e).then(function(e){return void 0===(e._node||{})[S]?Promise.reject(new Error("404 NOT FOUND. "+N+".id:"+(e._id||""))):e}).then(be.do_save_cache).then(Oe.do_save_search)}).then(ae):Promise.reject(new Error("._id is required!"))},Ae=function(e){if(!e)return Promise.reject(new Error("record is required"));if(!e.dynamodb&&!e.Sns)return Promise.reject(new Error("record.dynamodb|Sns is required"));var i=e.eventName||"EVENT",r=null;if(e.dynamodb){var o=e.table||e.eventSourceARN&&e.eventSourceARN.split("/")[1]||"";if(l(p,"--- process-record("+o+") ... "),N!==o)return l(p,"! ignore record-table: "+N+" != "+o+" "),e;var t=e.dynamodb.Keys?z.toJavascript(e.dynamodb.Keys):{},d=e.dynamodb.NewImage?z.toJavascript(e.dynamodb.NewImage):null,n=e.dynamodb.OldImage?z.toJavascript(e.dynamodb.OldImage):null,u=t[S],a="MODIFY"===i?f.diff(n,d):null,s=f.N(d&&d.updated_at||0),_=a?h.reduce(a,function(e,r){return e[r]=n[r],e},{}):null,c={_id:u,_node:d,_updated_at:s,_diff:a,_prev:_};switch(r=Promise.resolve(c),a&&l(p,">> "+o+".different["+u+"]=",f.json(a)),i){case"INSERT":case"MODIFY":r=r.then(function(t){var n=t._id;return D?t:be.do_get_cache_updated(n).then(function(e){if(m(p,">> "+o+".updated_at["+n+"] res=",e," <- ",t._updated_at,t._updated_at!==e?"*":""),!e||t._updated_at>=e){var r=f.hash(d);return be.do_get_cache_hash(n).then(function(e){return e&&e===r?(l(p,"!WARN! ignored due to hash-value matching =",e),t):(-1!==e&&l(p,"! INFO! node was updated. hash :=",r,"<-",e),be.do_save_cache(t).then(Oe.do_save_search))})}return l(p,"! ignored due to old-record"),t})});break;case"REMOVE":l(p,">> removed!"),r=(r=r.then(be.do_delete_cache)).then(Oe.do_delete_search)}}else if(e.Sns){l(p,">> event-SNS =",e.Sns);r=Promise.resolve(e.Sns)}return r?r.then(function(r){var e={INSERT:"create",MODIFY:"update",REMOVE:"delete",EVENT:"event"}[i],t=!!e;if(r._current_mode=e,t){var n=V+":record:"+e;return l(p,">>> notify event-id:",n,", notifiable=",t),Te(n,r).then(function(e){return r})}return r}).then(function(){return e}):Promise.reject(new Error("invalid chain!"))},Te=function(e,r){return H.do_notify(e,r)};return c.do_prepare_chain=function(e,r,t,n){return J(e,r,t,n)},c.do_finish_chain=function(e,r,t,n){return K(e)},c.do_prepare=function(e,r){return J(e,r,"prepare").then(te).then(fe).then(pe).then(K)},c.do_create=function(t,n){return J(t,n,"create").then(ne).catch(function(e){_(p,"ERR! prepare_node_created =",e instanceof Error,e.message||e);var r=e&&e.message||"";if(e instanceof Error&&0<=r.indexOf("404 NOT FOUND"))return m(p,"WARN! AUTO TRY TO PREPARE NODE. ID="+t),J(t,n,"create").then(function(e){var r=e._current_time;return e=Z(e),l(p,">> prepared old-node=",f.json(e._node)),e._node=re(e._node,r),e});throw e}).then(fe).then(pe).then(K)},c.do_saveES=function(e,r){return e?r?J(e,{},"save").then(_e).then(function(e){return e._node=r,e}).then(Oe.do_save_search).then(K):Promise.reject(new Error("node is required!")):Promise.reject(new Error("id is required!"))},c.do_cleanRedis=function(e,r){return e?J(e,{},"clean").then(function(e){return e._node=r,e}).then(be.do_delete_cache).then(K):Promise.reject(new Error("id is required!"))},c.do_clone=function(e,r){return J(e,r,"clone").then(ie).then(he).then(pe).then(K)},c.do_read=function(e,r){return J(e,r,"read").then(Z).then(function(e){return 0!==e._params_count&&0===e._fields_count?e:Re(e)}).then(K)},c.do_readX=function(e,r){return J(e,r,"read").then(Z).then(function(e){return 0!==e._params_count&&0===e._fields_count?e:Re(e)}).then(K).then(ce)},c.do_update=function(e,r){return J(e,r,"update").then(oe).then(function(e){return 0===e._fields_count?e:function(t){var n=t._id;return n?0===t._fields_count?(l(p,"! my_update_node() no need to update... fields_count="+t._fields_count),t):Promise.resolve(t).then(_e).then(Se).then(function(e){return e._updated_node?be.do_save_cache(e):e}).then(function(e){return e._updated_node?Oe.do_save_search(e):e}).then(function(e){return e._updated_node?ae(e):e}).then(function(e){return l(p,">> updated-node["+n+"] res=",f.json(e._updated_node)),e}).catch(function(e){var r=e&&e.message||"";if(_(p,">> updated-node["+n+"] err=",r),0<r.indexOf("an attribute that does not exist in the item"))return fe(t);throw e}):Promise.reject(new Error("._id is required!"))}(e)}).then(pe).then(K)},c.do_increment=function(e,r){return J(e,r,"increment").then(oe).then(function(e){return 0===e._fields_count?e:function(e){var r=e._id;return r?0===e._fields_count?(l(p,"! my_increment_node() no need to increment... fields_count="+e._fields_count),e):Promise.resolve(e).then(_e).then(qe).then(function(e){return e._updated_node?be.do_save_cache(e):e}).then(function(e){return e._updated_node?Oe.do_save_search(e):e}).then(function(e){return e._updated_node?ae(e):e}).then(function(e){return l(p,">> increment-node["+r+"] res=",f.json(e._updated_node)),e}):Promise.reject(new Error("._id is required!"))}(e)}).then(pe).then(K)},c.do_delete=function(e,r){return J(e,r,"delete").then(de).then(fe).then(pe).then(K)},c.do_destroy=function(e,r){return J(e,r,"destroy").then(le).then(pe).then(K)},c.do_search=function(e,r){return J(e,r,"search").then(me).then(K)},c.on_records=function(e,r){return J(e,r,"on_records").then(ve).then(K)},c.do_initialize=function(e,r){return J(e,r,"initialize").then(Ee).then(K)},c.do_terminate=function(e,r){return J(e,r,"terminate").then(ye).then(K)},c.do_test_self=function(e,r){return J(e,r,"self-test").then(ge).then(K)},c.do_next_id=function(){return G({_id:0}).then(function(e){return e._id})},c};

@@ -1,1 +0,1 @@

"use strict";var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&"function"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r};module.exports=function(r,e,t){e=e||"NS";var f=r.U,i=r._;if(!f)throw new Error("$U is required!");if(!i)throw new Error("$_ is required!");var d=r.log,n=(r.inf,r.err),c=f.NS(e,"magenta"),a=t||{},o=function(r){throw new Error("NOT_IMPLEMENTED - "+c+":"+JSON.stringify(r))};a.do_notify=o,a.do_subscribe=o,e.startsWith("!")||e.startsWith("_")||r(e,a);var s=function(r,e){return void 0===a[r]?e:a[r]},y=s("NS_NAME",""),u=s("MASTER",null),l=s("CHILDS",[]),b=["create","update","delete"];a.$notify={};var m=function(t){if(!y)return Promise.resolve(t);if(!t._id)return Promise.reject(new Error(c+"notify:_id is required!"));var r=""+t._id;if(d(c,"- my_notify_trigger("+r+")...."),!r.startsWith(y+":"))return d(c,"! WARN - ignored due to id="+r+" by NS="+y),t;var e=a.$notify[r];return e?Promise.all(e.map(function(r,e){try{return r.handle?r.handle(t):r.promise?r.promise:null}catch(r){return n(c,">> action["+e+"] :",r),r}})).then(function(){return d(c,"! finished call subscriptions!!! count="+e.length),t}).catch(function(r){throw n(c,"actions.error=",r),r}):t};if(u){var _=":record:*";d(c,">>>>> subscribe master ("+_+") ... "),u.do_subscribe(":record:*",function(r){d(c,"- on-notified-record ("+r._id+").... that=",f.json(r));var e=r._id||"",t=e.split(":");if(t.length<2)return r;t.shift(),t.unshift(y);var i=t.join(":"),n=f.extend({},r);return n._id=i,n._id_org=e,m(n)}).then(function(r){d(c,"! subscribed master. res=",r)}),d(c,"<<<<< subscribe master ("+_+") ... ")}var h=function(r){return r};return a.do_notify=function(r,e){return function(r,e,t){r=r||"",t=t||"",y&&d(c,"do_"+t+"()... id=",r&&r._id||r&&r.records&&"record#:"+r.records.length||r);var i=e="object"===(void 0===r?"undefined":_typeof(r))?r:{_id:r,_current_mode:t,data:e};return f.promise(i)}(r,e,"notify").then(m).then(h)},a.do_subscribe=function(r,e){var t=e="object"===(void 0===r?"undefined":_typeof(r))?r:f.extend(void 0!==e&&("object"!==(void 0===e?"undefined":_typeof(e))||e instanceof Promise)?{params:e}:e||{},{_id:r});if(!y)return Promise.resolve(t);if(!t._id)return Promise.reject(new Error(c+"notify:_id is required!"));if(!t.params)return Promise.reject(new Error(c+"notify:params is required!"));var i=""+t._id,n=t.params;if(d(c,"- my_notify_subscribe_sync("+i+").... params=",void 0===n?"undefined":_typeof(n)),i.startsWith(":")&&(i=y+i,t._id=i),!i.startsWith(y+":")){if(!l||!l.length)return d(c,"! ignored subscribe due to NS-NAME:"+y),Promise.resolve(t);d(c,"> bubble down for target notifier!!! id=",i);var o=l.map(function(r){return r.do_subscribe(t)});return Promise.all(o).then(function(){return t})}d(c,"> INFO! - register subscriber by id ="+i);var s={handle:null,promise:null};if("function"==typeof n)s.callee=n,s.handle=function(t){var i=this.callee;return new Promise(function(r,e){try{r(i(t))}catch(r){e(r)}})};else{if(!("object"===(void 0===n?"undefined":_typeof(n))&&n instanceof Promise))return Promise.reject(new Error(c+"invalid params type:"+(void 0===n?"undefined":_typeof(n))));s.promise=n}if(s)if(i.endsWith(":*")){var u=i.substring(0,i.length-1);b.forEach(function(r){var e=u+r;a.$notify[e]||(a.$notify[e]=[]),a.$notify[e].push(s),d(c,"> notify-subscribe("+e+") count=",a.$notify[e].length)}),d(c,"! notify-subscribe("+i+") ... modes=",b.join("/"))}else a.$notify[i]||(a.$notify[i]=[]),a.$notify[i].push(s),d(c,"! notify-subscribe("+i+") count=",a.$notify[i].length);return d(c,"! subscribed-notify("+i+")... that=",f.json(t)),Promise.resolve(t)},a};
"use strict";var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&"function"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r};module.exports=function(r,e,t){e=e||"NS";var f=r.U,i=r._;if(!f)throw new Error("$U is required!");if(!i)throw new Error("$_ is required!");function n(r){throw new Error("NOT_IMPLEMENTED - "+c+":"+JSON.stringify(r))}var d=r.log,o=(r.inf,r.err),c=f.NS(e,"magenta"),a=t||{};a.do_notify=n,a.do_subscribe=n,e.startsWith("!")||e.startsWith("_")||r(e,a);function s(r,e){return void 0===a[r]?e:a[r]}var y=s("NS_NAME",""),u=s("MASTER",null),l=s("CHILDS",[]),b=["create","update","delete"];a.$notify={};var m=function(t){if(!y)return Promise.resolve(t);if(!t._id)return Promise.reject(new Error(c+"notify:_id is required!"));var r=""+t._id;if(d(c,"- my_notify_trigger("+r+")...."),!r.startsWith(y+":"))return d(c,"! WARN - ignored due to id="+r+" by NS="+y),t;var e=a.$notify[r];return e?Promise.all(e.map(function(r,e){try{return r.handle?r.handle(t):r.promise?r.promise:null}catch(r){return o(c,">> action["+e+"] :",r),r}})).then(function(){return d(c,"! finished call subscriptions!!! count="+e.length),t}).catch(function(r){throw o(c,"actions.error=",r),r}):t};if(u){var _=":record:*";d(c,">>>>> subscribe master ("+_+") ... "),u.do_subscribe(":record:*",function(r){d(c,"- on-notified-record ("+r._id+").... that=",f.json(r));var e=r._id||"",t=e.split(":");if(t.length<2)return r;t.shift(),t.unshift(y);var i=t.join(":"),n=f.extend({},r);return n._id=i,n._id_org=e,m(n)}).then(function(r){d(c,"! subscribed master. res=",r)}),d(c,"<<<<< subscribe master ("+_+") ... ")}function h(r){return r}return a.do_notify=function(r,e){return function(r,e,t){r=r||"",t=t||"",y&&d(c,"do_"+t+"()... id=",r&&r._id||r&&r.records&&"record#:"+r.records.length||r);var i=e="object"===(void 0===r?"undefined":_typeof(r))?r:{_id:r,_current_mode:t,data:e};return f.promise(i)}(r,e,"notify").then(m).then(h)},a.do_subscribe=function(r,e){var t=e="object"===(void 0===r?"undefined":_typeof(r))?r:f.extend(void 0!==e&&("object"!==(void 0===e?"undefined":_typeof(e))||e instanceof Promise)?{params:e}:e||{},{_id:r});if(!y)return Promise.resolve(t);if(!t._id)return Promise.reject(new Error(c+"notify:_id is required!"));if(!t.params)return Promise.reject(new Error(c+"notify:params is required!"));var i=""+t._id,n=t.params;if(d(c,"- my_notify_subscribe_sync("+i+").... params=",void 0===n?"undefined":_typeof(n)),i.startsWith(":")&&(i=y+i,t._id=i),!i.startsWith(y+":")){if(!l||!l.length)return d(c,"! ignored subscribe due to NS-NAME:"+y),Promise.resolve(t);d(c,"> bubble down for target notifier!!! id=",i);var o=l.map(function(r){return r.do_subscribe(t)});return Promise.all(o).then(function(){return t})}d(c,"> INFO! - register subscriber by id ="+i);var s={handle:null,promise:null};if("function"==typeof n)s.callee=n,s.handle=function(t){var i=this.callee;return new Promise(function(r,e){try{r(i(t))}catch(r){e(r)}})};else{if(!("object"===(void 0===n?"undefined":_typeof(n))&&n instanceof Promise))return Promise.reject(new Error(c+"invalid params type:"+(void 0===n?"undefined":_typeof(n))));s.promise=n}if(s)if(i.endsWith(":*")){var u=i.substring(0,i.length-1);b.forEach(function(r){var e=u+r;a.$notify[e]||(a.$notify[e]=[]),a.$notify[e].push(s),d(c,"> notify-subscribe("+e+") count=",a.$notify[e].length)}),d(c,"! notify-subscribe("+i+") ... modes=",b.join("/"))}else a.$notify[i]||(a.$notify[i]=[]),a.$notify[i].push(s),d(c,"! notify-subscribe("+i+") count=",a.$notify[i].length);return d(c,"! subscribed-notify("+i+")... that=",f.json(t)),Promise.resolve(t)},a};

@@ -1,1 +0,1 @@

"use strict";function initialize(r,e){var i=this;if(!r)throw new Error("$export is required.");if(!i)throw new Error("_$ is required.");if("function"!=typeof i)throw new Error("_$ should be function.");i.log;var o=i.inf,t=(i.err,i.environ("STAGE",""));t&&o("#STAGE =",t),i("U",require("./lib/utilities")(i));var n=require("./lib/http-proxy");i("httpProxy",n),require("./lib/mysql-proxy")(i,"MS"),require("./lib/dynamo-proxy")(i,"DS"),require("./lib/redis-proxy")(i,"RS"),require("./lib/elastic-proxy")(i,"ES"),require("./lib/elastic6-proxy")(i,"ES6"),require("./lib/s3-proxy")(i,"S3"),require("./lib/sqs-proxy")(i,"SS"),require("./lib/sns-proxy")(i,"SN"),require("./lib/ses-proxy")(i,"SE"),require("./lib/web-proxy")(i,"WS"),require("./lib/cognito-proxy")(i,"CS"),require("./lib/lambda-proxy")(i,"LS"),require("./lib/protocol-proxy")(i,"PR"),require("./lib/cron-proxy")(i,"CR");var u=require("./core/lemon-engine-model");return i("LEM",u),Object.assign(r,{createModel:function(r,e,i){return u(r,e,i)},createHttpProxy:function(r,e,i){return n(r,e,i)}})}module.exports=function(r,t){r=r||new function(){};var e=(t=t||{}).name||"lemon",i=p("STAGE",""),o="1"===p("TS","1"),n="local"===i||"express"===i||"1"===p("LC",""),u={thiz:console,log:console.log,error:console.error,auto_ts:o,auto_color:n},s=function(){var r=!Array.isArray(arguments)&&Array.prototype.slice.call(arguments)||arguments;return u.auto_color?(r.unshift(""),u.auto_ts&&r.unshift(f(),"L")||r.unshift("L"),r.unshift("")):u.auto_ts&&r.unshift(f(),"L"),u.log.apply(u.thiz,r)},l=function(){var r=!Array.isArray(arguments)&&Array.prototype.slice.call(arguments)||arguments;return u.auto_color?(r.unshift(""),r.push(""),u.auto_ts&&r.unshift(f(),"I")||r.unshift("I"),r.unshift("")):u.auto_ts&&r.unshift(f(),"I"),u.log.apply(u.thiz,r)},a=function(){var r=!Array.isArray(arguments)&&Array.prototype.slice.call(arguments)||arguments;return u.auto_color?(r.unshift(""),r.push(""),u.auto_ts&&r.unshift(f(),"E")||r.unshift("E"),r.unshift("")):u.auto_ts&&r.unshift(f(),"E"),u.error.apply(u.thiz,r)},c=function(r,e){for(var i in e){var o=e[i];void 0===o?delete r[i]:r[i]=o}return r};function f(r){var e=r||new Date,i=[e.getFullYear(),e.getMonth()+1,e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds()],o=i[0],t=i[1],n=i[2],u=i[3],s=i[4],l=i[5];return(o<10?"0":"")+o+"-"+(t<10?"0":"")+t+"-"+(n<10?"0":"")+n+" "+(u<10?"0":"")+u+":"+(s<10?"0":"")+s+":"+(l<10?"0":"")+l}function p(r,e){var i=t.env||process&&process.env||{},o=i&&i[r]||void 0;if(e&&e instanceof Error&&void 0===o)throw e;return void 0===o?e:o}var y=function r(e,i){if(e){var o=r,t=void 0!==o[e]?o[e]:void 0;return void 0===i?t:o[e]=void 0===t?(s("INFO! service["+e+"] registered"),i):(a("WARN! service["+e+"] exists! so extends "),t=c(t=t||{},i=i||{}))}};return y.STAGE=i,y.id=e,y.log=s,y.inf=l,y.err=a,y.extend=c,y.ts=f,y.environ=p,y.$console=u,y.toString=function(){return e||"$ROOT"},r._log=s,r._inf=l,r._err=a,r._$=y,(r[y.id]=y)("_",require("lodash/core")),initialize.apply(y,[r,t]),r};
"use strict";function initialize(r,e){var i=this;if(!r)throw new Error("$export is required.");if(!i)throw new Error("_$ is required.");if("function"!=typeof i)throw new Error("_$ should be function.");i.log;var o=i.inf,t=(i.err,i.environ("STAGE",""));t&&o("#STAGE =",t),i("U",require("./lib/utilities")(i));var n=require("./lib/http-proxy");i("httpProxy",n),require("./lib/mysql-proxy")(i,"MS"),require("./lib/dynamo-proxy")(i,"DS"),require("./lib/redis-proxy")(i,"RS"),require("./lib/elastic-proxy")(i,"ES"),require("./lib/elastic6-proxy")(i,"ES6"),require("./lib/s3-proxy")(i,"S3"),require("./lib/sqs-proxy")(i,"SS"),require("./lib/sns-proxy")(i,"SN"),require("./lib/ses-proxy")(i,"SE"),require("./lib/web-proxy")(i,"WS"),require("./lib/cognito-proxy")(i,"CS"),require("./lib/lambda-proxy")(i,"LS"),require("./lib/protocol-proxy")(i,"PR"),require("./lib/cron-proxy")(i,"CR"),require("./lib/agw-proxy")(i,"AG");var u=require("./core/lemon-engine-model");return i("LEM",u),Object.assign(r,{createModel:function(r,e,i){return u(r,e,i)},createHttpProxy:function(r,e,i){return n(r,e,i)}})}module.exports=function(r,t){r=r||new function(){};function n(){var r=!Array.isArray(arguments)&&Array.prototype.slice.call(arguments)||arguments;return c.auto_color?(r.unshift(""),c.auto_ts&&r.unshift(p(),"L")||r.unshift("L"),r.unshift("")):c.auto_ts&&r.unshift(p(),"L"),c.log.apply(c.thiz,r)}function e(){var r=!Array.isArray(arguments)&&Array.prototype.slice.call(arguments)||arguments;return c.auto_color?(r.unshift(""),r.push(""),c.auto_ts&&r.unshift(p(),"I")||r.unshift("I"),r.unshift("")):c.auto_ts&&r.unshift(p(),"I"),c.log.apply(c.thiz,r)}function u(){var r=!Array.isArray(arguments)&&Array.prototype.slice.call(arguments)||arguments;return c.auto_color?(r.unshift(""),r.push(""),c.auto_ts&&r.unshift(p(),"E")||r.unshift("E"),r.unshift("")):c.auto_ts&&r.unshift(p(),"E"),c.error.apply(c.thiz,r)}function s(r,e){for(var i in e){var o=e[i];void 0===o?delete r[i]:r[i]=o}return r}var i=(t=t||{}).name||"lemon",o=f("STAGE",""),l="1"===f("TS","1"),a="local"===o||"express"===o||"1"===f("LC",""),c={thiz:console,log:console.log,error:console.error,auto_ts:l,auto_color:a};function p(r){var e=r||new Date,i=[e.getFullYear(),e.getMonth()+1,e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds()],o=i[0],t=i[1],n=i[2],u=i[3],s=i[4],l=i[5];return(o<10?"0":"")+o+"-"+(t<10?"0":"")+t+"-"+(n<10?"0":"")+n+" "+(u<10?"0":"")+u+":"+(s<10?"0":"")+s+":"+(l<10?"0":"")+l}function f(r,e){var i=t.env||process&&process.env||{},o=i&&i[r]||void 0;if(e&&e instanceof Error&&void 0===o)throw e;return void 0===o?e:o}function y(r,e){if(r){var i=y,o=void 0!==i[r]?i[r]:void 0;return void 0===e?o:void 0===o?(n("INFO! service["+r+"] registered"),i[r]=e):(u("WARN! service["+r+"] exists! so extends "),o=s(o=o||{},e=e||{}),i[r]=o)}}return y.STAGE=o,y.id=i,y.log=n,y.inf=e,y.err=u,y.extend=s,y.ts=p,y.environ=f,y.$console=c,y.toString=function(){return i||"$ROOT"},r._log=n,r._inf=e,r._err=u,r._$=y,(r[y.id]=y)("_",require("lodash/core")),initialize.apply(y,[r,t]),r};

@@ -1,1 +0,1 @@

"use strict";var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};module.exports=function(n){var i={},u=y("util"),s=n._;if(!s)throw new Error("$_(lodash) is required!");i.name=u+"-utils",i.ts=l,i.dt=m,i.now=m,i.escape=function(e,r){if(void 0===e)return"NULL";if(t=e,"number"==typeof t&&t%1==0)return e;var t;"object"==(void 0===(e=e||"")?"undefined":_typeof(e))&&(e=JSON.stringify(e));e=e.replace(/\\/g,"\\\\").replace(/\$/g,"\\$").replace(/'/g,"\\'").replace(/"/g,'\\"'),r&&(e=decodeURI(e));return"'"+e+"'"},i.cleanup=function(e){return Object.keys(e).reduce(function(e,r){return r.startsWith("_")&&delete e[r],r.startsWith("$")&&delete e[r],e},e)},i.updated=function(t,n){return Object.keys(n).reduce(function(e,r){if(t[r]!==n[r]){if(null===t[r]&&""===n[r])return e;e[r]=n[r]}return e},{})},i.copy=function(t){return Object.keys(t).reduce(function(e,r){return e[r]=t[r],e},{})},i.N=_,i.F=v,i.current_time_ms=function(){var e=(new Date).getTime();return e+=0},i.NS=y,i.env=r,i.extend=d,i.isset=function(e){return void 0!==e},i.empty=function(e){return!e},i.min=function(e,r){return e<r?e:r},i.max=function(e,r){return r<e?e:r},i.round=function(e){return Math.round(e)},i.json=p,i.diff=function(n,i){return Object.keys(n).reduce(function(e,r){if(i.hasOwnProperty(r)){if(s.isEqual(n[r],i[r])){var t=e.indexOf(r);e.splice(t,1)}}else e.push(r);return e},Object.keys(i))},i.copy_node=function(t,n){return n=void 0!==n&&n,Object.keys(t).reduce(function(e,r){return r.startsWith("_")||r.startsWith("$")||(e[r]=n?null:t[r]),e},{})},i.bare_node=function(e,r){var t={};t._id=e._id,t._current_time=e._current_time,r&&(t=d(t,r));return t},i.diff_node=function(n,i){var r=[],t=[];return Object.keys(n).forEach(function(e){e.startsWith("_")||e.startsWith("$")||r.push(e)}),Object.keys(i).forEach(function(e){e.startsWith("_")||e.startsWith("$")||t.push(e)}),r.reduce(function(e,r){if(i.hasOwnProperty(r)){if(s.isEqual(n[r],i[r])){var t=e.indexOf(r);e.splice(t,1)}}else e.push(r);return e},t)},i.hash=function(e){return function(e,r,t){var n,i=void 0,o=void 0===t?2166136261:t;for(i=0,n=e.length;i<n;i++)o^=e.charCodeAt(i),o+=(o<<1)+(o<<4)+(o<<7)+(o<<8)+(o<<24);return r?("0000000"+(o>>>0).toString(16)).substr(-8):o>>>0}(e="string"!=typeof(e="object"===(void 0===(e=e||"")?"undefined":_typeof(e))?p(e,!0):e)?String(e):e)},i.md5=function(e,r){var t=require("crypto");return r=void 0===r?"hex":r,t.createHash("md5").update(e).digest(r)},i.hmac=function(e,r,t,n){var i=require("crypto");return r=r||"XENI",n=n||"base64",t=t||"sha256",i.createHmac(t,r).update(e).digest(n)},i.qs_parse=function(e){var r=require("query-string").parse(e);return Object.keys(r).forEach(function(e){null===r[e]?r[e]="":/^[1-9][0-9]*$/.test(r[e])&&(r[e]=_(r[e]))}),r},i.qs_stringify=function(e){return require("query-string").stringify(e)},i.logger_factory=t,i.load_data_csv=function(e){if(!e)throw new Error("param:name is required!");var r=require("fs"),i=require("csv-parse"),o=require("path").resolve(__dirname,"../data/"+e+(e.endsWith(".csv")?"":".csv"));return new Promise(function(t,n){r.readFile(o,"UTF-8",function(e,r){if(e)return n(e);i(r,{columns:!0,trim:!0},function(e,r){return e?n(e):t(r)})})})},i.load_data_yml=function(e){if(!e)throw new Error("param:name is required!");var t=require("fs"),r=require("path"),n=require("js-yaml"),i=r.resolve(__dirname,"../data/"+e+(e.endsWith(".yml")?"":".yml"));return o(u,"load file =",i),new Promise(function(e,r){try{e(n.safeLoad(t.readFileSync(i,"utf8")))}catch(e){r(e)}})},i.promise=h,i.promise_sequence=function(e,t){var r=h(e.shift());return r=e.reduce(function(e,r){return e.then(function(){return t(r)})},r.then(function(e){return t(e)}))},i.trans_row_to_prod_node=function(e){if(!e)return null;if(Array.isArray(e))throw new Error("row is array.");return b().transform_row(e)},i.trans_prod_node_to_row=function(e){if(!e)return null;if("object"!=(void 0===e?"undefined":_typeof(e)))throw new Error("node must be object. but is "+(void 0===e?"undefined":_typeof(e)));return b().transform_node(e)},i.split_prod_node_to_aid=function(e,r,t,n){if(!e)return null;if("object"!=(void 0===e?"undefined":_typeof(e)))throw new Error("node must be object. but is "+(void 0===e?"undefined":_typeof(e)));if("object"!=(void 0===r?"undefined":_typeof(r)))throw new Error("atem must be object. but is "+(void 0===r?"undefined":_typeof(r)));if("object"!=(void 0===t?"undefined":_typeof(t)))throw new Error("item must be object. but is "+(void 0===t?"undefined":_typeof(t)));if("object"!=(void 0===n?"undefined":_typeof(n)))throw new Error("deal must be object. but is "+(void 0===n?"undefined":_typeof(n)));return b().split_node(e,r,t,n)},i.merge_prod_node_by_aid=function(e,r,t,n){if(!e)return null;if("object"!=(void 0===e?"undefined":_typeof(e)))throw new Error("node must be object. but is "+(void 0===e?"undefined":_typeof(e)));if("object"!=(void 0===r?"undefined":_typeof(r)))throw new Error("atem must be object. but is "+(void 0===r?"undefined":_typeof(r)));if("object"!=(void 0===t?"undefined":_typeof(t)))throw new Error("item must be object. but is "+(void 0===t?"undefined":_typeof(t)));if("object"!=(void 0===n?"undefined":_typeof(n)))throw new Error("deal must be object. but is "+(void 0===n?"undefined":_typeof(n)));return b().merge_node(e,r,t,n)};var o=o||n.log||function(){return c(arguments,"I")},f=f||n.err||function(){return c(arguments,"E")},e=e||function(){var e=r("ENV")||r("NODE_ENV")||r("STAGE");return"production"!==e&&"op"!==e};function r(e,r){if("function"==typeof n.get_env)return n.get_env(e,r);if("function"==typeof n.environ)return n.environ(e,r);var t=process&&process.env[e]||void 0;return void 0===t?r:t}function t(){return{create:function(e,r){e=e||u,r=r||"/var/www/html/logs/";var t=require("log4js"),n=r+e+".log";return t.loadAppender("file"),t.addAppender(t.appenders.file(n),e),t.getLogger(e)}}}i.log=o,i.err=f,i.is_dev=e();var a=null,c=function(e,r){return a?"E"==r?a.error.apply(a,e):a.info.apply(a,e):"undefined"!=typeof console&&(Array.isArray(e)||(e=Array.prototype.slice.call(e)),r&&e.unshift(r),e.unshift(l()),"E"==r?console.error.apply(console,e):console.log.apply(console,e)),!0};function d(e,r){for(var t in r)e[t]=r[t];return e}function p(r,e){if(e){var t={};Object.keys(r).sort().forEach(function(e){t[e]=r[e]}),r=t}return r&&JSON.stringify(r)||r}function l(e){var r=e&&"object"===(void 0===e?"undefined":_typeof(e))?e:e?new Date(e):new Date,t=r.getFullYear(),n=r.getMonth()+1,i=(e=r.getDate(),r.getHours()),o=r.getMinutes(),u=r.getSeconds();return(t<10?"0":"")+t+"-"+(n<10?"0":"")+n+"-"+(e<10?"0":"")+e+" "+(i<10?"0":"")+i+":"+(o<10?"0":"")+o+":"+(u<10?"0":"")+u}function m(e){var r=(e=e||l()).split(" "),t=r[0].split("-"),n=r[1].split(":"),i=parseInt(t[0]),o=parseInt(t[1])-1,u=parseInt(t[2]),a=parseInt(n[0]),s=parseInt(n[1]),f=parseInt(n[2]);return Date.prototype.add_seconds||(Date.prototype.add_seconds=function(e){return this.setSeconds(this.getSeconds()+e),this}),Date.prototype.ts||(Date.prototype.ts=function(){return l(this)}),new Date(i,o,u,a,s,f,0)}function y(e,r,t){if(!e)return e;t=t||4,t-=e.length;if(e=" ".substr(0,t=t<0?0:t)+e+":",i.is_dev&&r){e={red:"",green:"",yellow:"",blue:"",magenta:"",cyan:"",white:""}[r]+e+""}return e}function _(r,t){try{return""===r||null==r?t:"number"==typeof r&&r%1==0?r:"number"==typeof r?parseInt(r):(r=(r="0"+r).startsWith("0-")?r.substr(1):r,parseInt(r.replace(/,/gi,"").trim()))}catch(e){return f("err at _N: x="+r+";"+(void 0===r?"undefined":_typeof(r))+";"+(e.message||""),e),t}}function v(r,t){try{return""===r||null==r?t:"number"==typeof r&&r%1==0?r:"number"==typeof r?parseFloat(r):(r=(r="0"+r).startsWith("0-")?r.substr(1):r,parseFloat(r.replace(/,/gi,"").trim()))}catch(e){return f("err at _N: x="+r+";"+(void 0===r?"undefined":_typeof(r))+";"+(e.message||""),e),t}}function h(t){return new Promise(function(e,r){e(t)})}function b(){var e="_trans_handler_prod",a=i[e];return a||(o(u,"build transformer of prod!"),(a={initialize:function(){var e=function(r){if(!r)throw new Error("param:name is required!");var e=require("fs"),t=require("path"),n=require("js-yaml"),i=t.resolve(__dirname,"../data/"+r+(r.endsWith(".yml")?"":".yml"));try{return o(u,"load-sync-file =",i),n.safeLoad(e.readFileSync(i,"utf8"))}catch(e){f(u,"error:load-sync-yaml("+r+")=",e)}return{}}("prod-fields"),r=e&&e.fields;if(!r)throw new Error(u+"valid fields definition is required!");var t={parser:{},serial:{},splits:{}};t=s.reduce(r,function(e,r,o){var t=function(e,r){if("object"===(void 0===r?"undefined":_typeof(r)))e=s.reduce(r,function(e,t,r){if("X"==r){var n={atem:null,item:null,deal:null};if(t)(Array.isArray(t)?t:t.split(",")).forEach(function(e){if((e=e.trim()).startsWith("."))n.atem=e.substring(1),n.item=e.substring(1),n.deal=e.substring(1);else if(e.endsWith("."))n[e.substring(0,e.length-1)]=o;else if(e.indexOf(".")){var r=e.split(".",2);n[r[0]]=r[1]}else f(u,"WARN!! NO ALIAS SUPPORT name:"+t)});return e.splits[o]=n,e}var i=a.parser[r];return i||f(u,"ERROR! invalid type:"+r+", name:"+t),t&&i&&(e.parser[t]={name:o,trans:i},e.serial[o]||(e.serial[o]={name:t,trans:a.serial[r]})),e},e);else{var t=a.parser.S;e.parser[r]={name:o,trans:t},e.serial[o]||(e.serial[o]={name:r,trans:a.serial.S})}return e};return e=Array.isArray(r)?s.reduce(r,function(e,r){return e=t(e,r)},e):t(e,r)},t),a._map=t},transform_row:function(e){var r={};return r=s.reduce(e,function(e,r,t){var n=a._map.parser[t];return n||f(u,"ERROR! invalid parser by key:"+t),n&&(e[n.name]=n.trans(r)),e},r)},transform_node:function(e){var r={};return r=s.reduce(e,function(e,r,t){var n=a._map.serial[t];return n||f(u,"ERROR! invalid serial by name:"+t),n&&(e[n.name]=n.trans(r)),e},r)},split_node:function(e,i,o,u){var r={};return r=s.reduce(e,function(e,r,t){if(t.startsWith("_")||t.startsWith("$"))return e;var n=a._map.splits[t];return n?(n.atem&&(i[n.atem]=r),n.item&&(o[n.item]=r),n.deal&&(u[n.deal]=r)):i[t]=r,e},r)},merge_node:function(e,i,o,u){i=i||{},o=o||{},u=u||{};var r={};return d(e,r=s.reduce(e,function(e,r,t){if(t.startsWith("_")||t.startsWith("$"))return e;var n=a._map.splits[t];return n?(n.item&&(e[t]=o[n.item]),n.atem&&(e[t]=i[n.atem]),n.deal&&(e[t]=u[n.deal])):void 0!==i[t]&&(e[t]=i[t]),e},r)),r},parser:{I:function(e){return parseInt(_(e,0))},N:function(e){return _(e,0)},F:function(e){return v(e,0)},F1:function(e){return Math.round(10*v(e,0))/10},F2:function(e){return Math.round(100*v(e,0))/100},F3:function(e){return Math.round(1e3*v(e,0))/1e3},U:function(e){throw new Error("not implemented!")},O:function(e){throw new Error("not implemented!")},A:function(e){return e?(e||"").split(","):[]},AI:function(e){return e?(e||"").split(",").map(function(e){return _(e,0)}):[]},AN:function(e){return e?(e||"").split(",").map(function(e){return _(e,0)}):[]},M:function(e){return JSON.parse(e)},S:function(e){return"string"==typeof e?e.trim():""+e},B:function(e){return"Y"===(e=(e||"").toUpperCase())||"T"===e||"1"===e||"true"===e}},serial:{I:function(e){return e},N:function(e){return e},F:function(e){return e},F1:function(e){return _(Math.round(10*e))/10},F2:function(e){return _(Math.round(100*e))/100},F3:function(e){return _(Math.round(1e3*e))/1e3},U:function(e){throw new Error("not implemented!")},O:function(e){throw new Error("not implemented!")},A:function(e){return(e||[]).join(",")},AI:function(e){return(e||[]).join(",")},AN:function(e){return(e||[]).join(",")},M:function(e){return p(e)},S:function(e){return""+e},B:function(e){return e?"Y":"N"}}}).initialize(),i[e]=a)}return i};
"use strict";var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};module.exports=function(n){var i={},u=y("util"),s=n._;if(!s)throw new Error("$_(lodash) is required!");i.name=u+"-utils",i.ts=l,i.dt=m,i.now=m,i.escape=function(e,r){if(void 0===e)return"NULL";if(function(e){return"number"==typeof e&&e%1==0}(e))return e;"object"==(e=e||"",_typeof(e))&&(e=JSON.stringify(e));e=e.replace(/\\/g,"\\\\").replace(/\$/g,"\\$").replace(/'/g,"\\'").replace(/"/g,'\\"'),r&&(e=decodeURI(e));return"'"+e+"'"},i.cleanup=function(e){return Object.keys(e).reduce(function(e,r){return r.startsWith("_")&&delete e[r],r.startsWith("$")&&delete e[r],e},e)},i.updated=function(t,n){return Object.keys(n).reduce(function(e,r){if(t[r]!==n[r]){if(null===t[r]&&""===n[r])return e;e[r]=n[r]}return e},{})},i.copy=function(t){return Object.keys(t).reduce(function(e,r){return e[r]=t[r],e},{})},i.N=_,i.F=v,i.current_time_ms=function(){var e=(new Date).getTime();return e+=0},i.NS=y,i.env=r,i.extend=d,i.isset=function(e){return void 0!==e},i.empty=function(e){return!e},i.min=function(e,r){return e<r?e:r},i.max=function(e,r){return r<e?e:r},i.round=function(e){return Math.round(e)},i.json=p,i.diff=function(n,i){return Object.keys(n).reduce(function(e,r){if(i.hasOwnProperty(r)){if(s.isEqual(n[r],i[r])){var t=e.indexOf(r);e.splice(t,1)}}else e.push(r);return e},Object.keys(i))},i.copy_node=function(t,n){return n=void 0!==n&&n,Object.keys(t).reduce(function(e,r){return r.startsWith("_")||r.startsWith("$")||(e[r]=n?null:t[r]),e},{})},i.bare_node=function(e,r){var t={};t._id=e._id,t._current_time=e._current_time,r&&(t=d(t,r));return t},i.diff_node=function(n,i){var r=[],t=[];return Object.keys(n).forEach(function(e){e.startsWith("_")||e.startsWith("$")||r.push(e)}),Object.keys(i).forEach(function(e){e.startsWith("_")||e.startsWith("$")||t.push(e)}),r.reduce(function(e,r){if(i.hasOwnProperty(r)){if(s.isEqual(n[r],i[r])){var t=e.indexOf(r);e.splice(t,1)}}else e.push(r);return e},t)},i.hash=function(e){return function(e,r,t){var n,i=void 0,o=void 0===t?2166136261:t;for(i=0,n=e.length;i<n;i++)o^=e.charCodeAt(i),o+=(o<<1)+(o<<4)+(o<<7)+(o<<8)+(o<<24);return r?("0000000"+(o>>>0).toString(16)).substr(-8):o>>>0}(e="string"!=typeof(e="object"===(e=e||"",_typeof(e))?p(e,!0):e)?String(e):e)},i.md5=function(e,r){var t=require("crypto");return r=void 0===r?"hex":r,t.createHash("md5").update(e).digest(r)},i.hmac=function(e,r,t,n){var i=require("crypto");return r=r||"XENI",n=n||"base64",t=t||"sha256",i.createHmac(t,r).update(e).digest(n)},i.qs_parse=function(e){var r=require("query-string").parse(e);return Object.keys(r).forEach(function(e){null===r[e]?r[e]="":/^[1-9][0-9]*$/.test(r[e])&&(r[e]=_(r[e]))}),r},i.qs_stringify=function(e){return require("query-string").stringify(e)},i.logger_factory=t,i.load_data_csv=function(e){if(!e)throw new Error("param:name is required!");var r=require("fs"),i=require("csv-parse"),o=require("path").resolve(__dirname,"../data/"+e+(e.endsWith(".csv")?"":".csv"));return new Promise(function(t,n){r.readFile(o,"UTF-8",function(e,r){if(e)return n(e);i(r,{columns:!0,trim:!0},function(e,r){return e?n(e):t(r)})})})},i.load_data_yml=function(e){if(!e)throw new Error("param:name is required!");var t=require("fs"),r=require("path"),n=require("js-yaml"),i=r.resolve(__dirname,"../data/"+e+(e.endsWith(".yml")?"":".yml"));return o(u,"load file =",i),new Promise(function(e,r){try{e(n.safeLoad(t.readFileSync(i,"utf8")))}catch(e){r(e)}})},i.promise=h,i.promise_sequence=function(e,t){var r=h(e.shift());return r=e.reduce(function(e,r){return e.then(function(){return t(r)})},r.then(function(e){return t(e)}))},i.trans_row_to_prod_node=function(e){if(!e)return null;if(Array.isArray(e))throw new Error("row is array.");return b().transform_row(e)},i.trans_prod_node_to_row=function(e){if(!e)return null;if("object"!=(void 0===e?"undefined":_typeof(e)))throw new Error("node must be object. but is "+(void 0===e?"undefined":_typeof(e)));return b().transform_node(e)},i.split_prod_node_to_aid=function(e,r,t,n){if(!e)return null;if("object"!=(void 0===e?"undefined":_typeof(e)))throw new Error("node must be object. but is "+(void 0===e?"undefined":_typeof(e)));if("object"!=(void 0===r?"undefined":_typeof(r)))throw new Error("atem must be object. but is "+(void 0===r?"undefined":_typeof(r)));if("object"!=(void 0===t?"undefined":_typeof(t)))throw new Error("item must be object. but is "+(void 0===t?"undefined":_typeof(t)));if("object"!=(void 0===n?"undefined":_typeof(n)))throw new Error("deal must be object. but is "+(void 0===n?"undefined":_typeof(n)));return b().split_node(e,r,t,n)},i.merge_prod_node_by_aid=function(e,r,t,n){if(!e)return null;if("object"!=(void 0===e?"undefined":_typeof(e)))throw new Error("node must be object. but is "+(void 0===e?"undefined":_typeof(e)));if("object"!=(void 0===r?"undefined":_typeof(r)))throw new Error("atem must be object. but is "+(void 0===r?"undefined":_typeof(r)));if("object"!=(void 0===t?"undefined":_typeof(t)))throw new Error("item must be object. but is "+(void 0===t?"undefined":_typeof(t)));if("object"!=(void 0===n?"undefined":_typeof(n)))throw new Error("deal must be object. but is "+(void 0===n?"undefined":_typeof(n)));return b().merge_node(e,r,t,n)};var o=o||n.log||function(){return c(arguments,"I")},f=f||n.err||function(){return c(arguments,"E")},e=e||function(){var e=r("ENV")||r("NODE_ENV")||r("STAGE");return"production"!==e&&"op"!==e};function r(e,r){if("function"==typeof n.get_env)return n.get_env(e,r);if("function"==typeof n.environ)return n.environ(e,r);var t=process&&process.env[e]||void 0;return void 0===t?r:t}function t(){return{create:function(e,r){e=e||u,r=r||"/var/www/html/logs/";var t=require("log4js"),n=r+e+".log";return t.loadAppender("file"),t.addAppender(t.appenders.file(n),e),t.getLogger(e)}}}i.log=o,i.err=f,i.is_dev=e();var a=null,c=function(e,r){return a?"E"==r?a.error.apply(a,e):a.info.apply(a,e):"undefined"!=typeof console&&(Array.isArray(e)||(e=Array.prototype.slice.call(e)),r&&e.unshift(r),e.unshift(l()),"E"==r?console.error.apply(console,e):console.log.apply(console,e)),!0};function d(e,r){for(var t in r)e[t]=r[t];return e}function p(r,e){if(e){var t={};Object.keys(r).sort().forEach(function(e){t[e]=r[e]}),r=t}return r&&JSON.stringify(r)||r}function l(e){var r=e&&"object"===(void 0===e?"undefined":_typeof(e))?e:e?new Date(e):new Date,t=r.getFullYear(),n=r.getMonth()+1,i=(e=r.getDate(),r.getHours()),o=r.getMinutes(),u=r.getSeconds();return(t<10?"0":"")+t+"-"+(n<10?"0":"")+n+"-"+(e<10?"0":"")+e+" "+(i<10?"0":"")+i+":"+(o<10?"0":"")+o+":"+(u<10?"0":"")+u}function m(e){var r=(e=e||l()).split(" "),t=r[0].split("-"),n=r[1].split(":"),i=parseInt(t[0]),o=parseInt(t[1])-1,u=parseInt(t[2]),a=parseInt(n[0]),s=parseInt(n[1]),f=parseInt(n[2]);return Date.prototype.add_seconds||(Date.prototype.add_seconds=function(e){return this.setSeconds(this.getSeconds()+e),this}),Date.prototype.ts||(Date.prototype.ts=function(){return l(this)}),new Date(i,o,u,a,s,f,0)}function y(e,r,t){if(!e)return e;t=t||4,t-=e.length;if(e=" ".substr(0,t=t<0?0:t)+e+":",i.is_dev&&r){e={red:"",green:"",yellow:"",blue:"",magenta:"",cyan:"",white:""}[r]+e+""}return e}function _(r,t){try{return""===r||null==r?t:"number"==typeof r&&r%1==0?r:"number"==typeof r?parseInt(r):(r=(r="0"+r).startsWith("0-")?r.substr(1):r,parseInt(r.replace(/,/gi,"").trim()))}catch(e){return f("err at _N: x="+r+";"+(void 0===r?"undefined":_typeof(r))+";"+(e.message||""),e),t}}function v(r,t){try{return""===r||null==r?t:"number"==typeof r&&r%1==0?r:"number"==typeof r?parseFloat(r):(r=(r="0"+r).startsWith("0-")?r.substr(1):r,parseFloat(r.replace(/,/gi,"").trim()))}catch(e){return f("err at _N: x="+r+";"+(void 0===r?"undefined":_typeof(r))+";"+(e.message||""),e),t}}function h(t){return new Promise(function(e,r){e(t)})}function b(){var e="_trans_handler_prod",a=i[e];return a||(o(u,"build transformer of prod!"),(a={initialize:function(){var e=function(r){if(!r)throw new Error("param:name is required!");var e=require("fs"),t=require("path"),n=require("js-yaml"),i=t.resolve(__dirname,"../data/"+r+(r.endsWith(".yml")?"":".yml"));try{return o(u,"load-sync-file =",i),n.safeLoad(e.readFileSync(i,"utf8"))}catch(e){f(u,"error:load-sync-yaml("+r+")=",e)}return{}}("prod-fields"),r=e&&e.fields;if(!r)throw new Error(u+"valid fields definition is required!");var t={parser:{},serial:{},splits:{}};t=s.reduce(r,function(e,r,o){function t(e,r){if("object"===(void 0===r?"undefined":_typeof(r)))e=s.reduce(r,function(e,t,r){if("X"==r){var n={atem:null,item:null,deal:null};if(t)(Array.isArray(t)?t:t.split(",")).forEach(function(e){if((e=e.trim()).startsWith("."))n.atem=e.substring(1),n.item=e.substring(1),n.deal=e.substring(1);else if(e.endsWith("."))n[e.substring(0,e.length-1)]=o;else if(e.indexOf(".")){var r=e.split(".",2);n[r[0]]=r[1]}else f(u,"WARN!! NO ALIAS SUPPORT name:"+t)});return e.splits[o]=n,e}var i=a.parser[r];return i||f(u,"ERROR! invalid type:"+r+", name:"+t),t&&i&&(e.parser[t]={name:o,trans:i},e.serial[o]||(e.serial[o]={name:t,trans:a.serial[r]})),e},e);else{var t=a.parser.S;e.parser[r]={name:o,trans:t},e.serial[o]||(e.serial[o]={name:r,trans:a.serial.S})}return e}return e=Array.isArray(r)?s.reduce(r,function(e,r){return e=t(e,r)},e):t(e,r)},t),a._map=t},transform_row:function(e){var r={};return r=s.reduce(e,function(e,r,t){var n=a._map.parser[t];return n||f(u,"ERROR! invalid parser by key:"+t),n&&(e[n.name]=n.trans(r)),e},r)},transform_node:function(e){var r={};return r=s.reduce(e,function(e,r,t){var n=a._map.serial[t];return n||f(u,"ERROR! invalid serial by name:"+t),n&&(e[n.name]=n.trans(r)),e},r)},split_node:function(e,i,o,u){var r={};return r=s.reduce(e,function(e,r,t){if(t.startsWith("_")||t.startsWith("$"))return e;var n=a._map.splits[t];return n?(n.atem&&(i[n.atem]=r),n.item&&(o[n.item]=r),n.deal&&(u[n.deal]=r)):i[t]=r,e},r)},merge_node:function(e,i,o,u){i=i||{},o=o||{},u=u||{};var r={};return d(e,r=s.reduce(e,function(e,r,t){if(t.startsWith("_")||t.startsWith("$"))return e;var n=a._map.splits[t];return n?(n.item&&(e[t]=o[n.item]),n.atem&&(e[t]=i[n.atem]),n.deal&&(e[t]=u[n.deal])):void 0!==i[t]&&(e[t]=i[t]),e},r)),r},parser:{I:function(e){return parseInt(_(e,0))},N:function(e){return _(e,0)},F:function(e){return v(e,0)},F1:function(e){return Math.round(10*v(e,0))/10},F2:function(e){return Math.round(100*v(e,0))/100},F3:function(e){return Math.round(1e3*v(e,0))/1e3},U:function(e){throw new Error("not implemented!")},O:function(e){throw new Error("not implemented!")},A:function(e){return e?(e||"").split(","):[]},AI:function(e){return e?(e||"").split(",").map(function(e){return _(e,0)}):[]},AN:function(e){return e?(e||"").split(",").map(function(e){return _(e,0)}):[]},M:function(e){return JSON.parse(e)},S:function(e){return"string"==typeof e?e.trim():""+e},B:function(e){return"Y"===(e=(e||"").toUpperCase())||"T"===e||"1"===e||"true"===e}},serial:{I:function(e){return e},N:function(e){return e},F:function(e){return e},F1:function(e){return _(Math.round(10*e))/10},F2:function(e){return _(Math.round(100*e))/100},F3:function(e){return _(Math.round(1e3*e))/1e3},U:function(e){throw new Error("not implemented!")},O:function(e){throw new Error("not implemented!")},A:function(e){return(e||[]).join(",")},AI:function(e){return(e||[]).join(",")},AN:function(e){return(e||[]).join(",")},M:function(e){return p(e)},S:function(e){return""+e},B:function(e){return e?"Y":"N"}}}).initialize(),i[e]=a)}return i};
{
"name": "lemoncloud-engine-js",
"version": "1.0.22",
"version": "1.0.23",
"description": "lemoncloud.io - Lemon Engine Modle of Node for Robust Micro-service based on DynamoDB + ElastiCache + Elasticsearch.",

@@ -5,0 +5,0 @@ "main": "index.js",

@@ -89,2 +89,3 @@ # lemoncloud-engine-js

|-- |--
| 1.0.23 | add `agw-proxy` as `AG`. @190509.
| 1.0.22 | improve log

@@ -91,0 +92,0 @@ | 1.0.21 | `environ.TS` for time-stamp.

@@ -1,1 +0,1 @@

"use strict";var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};module.exports=function(e,r,t){r=r||"IMS";var n=["id","type","parent","name","group","refid","stereo","size","description"],o=n.reduce(function(e,r){return(r=r||"").startsWith("desc")||e.push(r),e},[]),i=e.U,d=e.LEM;if(!i)throw new Error("$U is required!");if(!d)throw new Error("LEM is required!");var _=e.log,u=(e.inf,e.err,i.NS(r)),a=d(e,"_"+r,{ID_TYPE:"#ImageSeq",ID_NEXT:0,FIELDS:n,DYNA_TABLE:"Images",REDIS_PKEY:"CIMS",ES_INDEX:"images-v1",ES_TYPE:"image",ES_FIELDS:o,NS_NAME:r,ES_MASTER:1,CLONEABLE:!0,PARENT_IMUT:!0});if(!a)throw new Error(u+"$LEM is required!");var c=t||{},s=function(e){throw new Error("NOT_IMPLEMENTED - "+u+":"+JSON.stringify(e))};c.$LEM=a,c.do_prepare=s,c.do_create=s,c.do_clone=s,c.do_update=s,c.do_increment=s,c.do_read=s,c.do_delete=s,c.do_destroy=s,c.do_search=s,c.on_records=s,c.do_notify=a.do_notify,c.do_subscribe=a.do_subscribe,c.do_initialize=s,c.do_terminate=s,c.do_test_self=s,e(r,c);var f=function(e,r,t){return a.do_prepare_chain(e,r,t)},h=function(e){return a.do_finish_chain(e)},p=function(t){var e=t._id;return _(u,"my_read_origin_node("+e+")...."),e?f(e,null,"read").then(a.do_read).then(function(e){var r=e._node;return t._node=r,t}).catch(function(e){if((e&&e.message||""+e).startsWith("404 NOT FOUND"))return t._node=null,t;throw e}):Promise.reject(new Error("ID is required!"))},m=function(e){var r=e._id;return _(u,"my_validate_origin("+r+")...."),e._node?e:Promise.reject(new Error("404 NOT FOUND. ID:"+r))},E=function(e){var r=e._id;_(u,"my_validate_deleted("+r+")....");var t=e._node||e;return _(u,"> node=",t),t.deleted_at?Promise.reject(new Error("404 NOT FOUND. deleted_at:"+t.deleted_at)):e},l=function(e){var r=e._id;_(u,"my_filter_different("+r+")....");var n=e._node;return n&&Object.keys(e).reduce(function(e,r){if(r.startsWith("_")||r.startsWith("$"))return e;var t=n[r];return e[r]===t&&delete e[r],e},e),e};return c.do_create=function(e,r){var t=e&&"object"===(void 0===e?"undefined":_typeof(e))?e._id:e;return t?(_(u,"do_create()... id=",t),f(e,r,"create").then(p).then(function(e){var t,r,n=e._node;return!n||n.deleted_at?(r=(t=e)._id,_(u,"my_prepare_origin_node("+r+")...."),r?f(r,null,"prepare").then(function(e){return e._force_create=!0,e}).then(a.do_prepare).then(function(e){var r=e._node;return t._node=r,t}):Promise.reject(new Error("ID is required!"))):(e._is_update=!0,l(e))}).then(m).then(function(e){return e._is_update?a.do_update(e):a.do_create(e)}).then(h)):Promise.reject(new Error("id is required!"))},c.do_update=function(e,r){var t=e&&"object"===(void 0===e?"undefined":_typeof(e))?e._id:e;return t?(_(u,"do_update()... id=",t),f(e,r,"update").then(p).then(m).then(E).then(l).then(a.do_update).then(h)):Promise.reject(new Error("id is required!"))},c.do_increment=function(e,r){var t=e&&"object"===(void 0===e?"undefined":_typeof(e))?e._id:e;return t?(_(u,"do_increment()... id=",t),f(e,r,"increment").then(a.do_increment).then(h)):Promise.reject(new Error("id is required!"))},c.do_read=function(e,r){return(e&&"object"===(void 0===e?"undefined":_typeof(e))?e._id:e)?f(e,r,"read").then(a.do_read).then(E).then(h):Promise.reject(new Error("id is required!"))},c.do_delete=function(e,r){return(e&&"object"===(void 0===e?"undefined":_typeof(e))?e._id:e)?f(e,r,"delete").then(a.do_delete).then(h):Promise.reject(new Error("id is required!"))},c.do_search=function(e,r){var t=e&&"object"===(void 0===e?"undefined":_typeof(e))?e._id:e;return _(u,"do_search()... id=",t),f(e,r,"search").then(a.do_search).then(h)},c.on_records=function(e){return _(u,"on_records()... records.len=",e&&e.records&&e.records.length||0),a.on_records(e||{})},c.do_initialize=function(e){return _(u+"do_initialize()... params=",i.json(e)),a.do_initialize(e||{})},c.do_terminate=function(e){return _(u+"do_terminate()... params=",i.json(e)),a.do_terminate(e||{})},c};
"use strict";var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};module.exports=function(e,r,t){r=r||"IMS";var n=["id","type","parent","name","group","refid","stereo","size","description"],o=n.reduce(function(e,r){return(r=r||"").startsWith("desc")||e.push(r),e},[]),i=e.U,d=e.LEM;if(!i)throw new Error("$U is required!");if(!d)throw new Error("LEM is required!");var _=e.log,u=(e.inf,e.err,i.NS(r)),a=d(e,"_"+r,{ID_TYPE:"#ImageSeq",ID_NEXT:0,FIELDS:n,DYNA_TABLE:"Images",REDIS_PKEY:"CIMS",ES_INDEX:"images-v1",ES_TYPE:"image",ES_FIELDS:o,NS_NAME:r,ES_MASTER:1,CLONEABLE:!0,PARENT_IMUT:!0});if(!a)throw new Error(u+"$LEM is required!");function c(e){throw new Error("NOT_IMPLEMENTED - "+u+":"+JSON.stringify(e))}var s=t||{};s.$LEM=a,s.do_prepare=c,s.do_create=c,s.do_clone=c,s.do_update=c,s.do_increment=c,s.do_read=c,s.do_delete=c,s.do_destroy=c,s.do_search=c,s.on_records=c,s.do_notify=a.do_notify,s.do_subscribe=a.do_subscribe,s.do_initialize=c,s.do_terminate=c,s.do_test_self=c,e(r,s);function f(e,r,t){return a.do_prepare_chain(e,r,t)}function h(e){return a.do_finish_chain(e)}function p(t){var e=t._id;return _(u,"my_read_origin_node("+e+")...."),e?f(e,null,"read").then(a.do_read).then(function(e){var r=e._node;return t._node=r,t}).catch(function(e){if((e&&e.message||""+e).startsWith("404 NOT FOUND"))return t._node=null,t;throw e}):Promise.reject(new Error("ID is required!"))}function m(e){var r=e._id;return _(u,"my_validate_origin("+r+")...."),e._node?e:Promise.reject(new Error("404 NOT FOUND. ID:"+r))}function E(e){var r=e._id;_(u,"my_validate_deleted("+r+")....");var t=e._node||e;return _(u,"> node=",t),t.deleted_at?Promise.reject(new Error("404 NOT FOUND. deleted_at:"+t.deleted_at)):e}function l(e){var r=e._id;_(u,"my_filter_different("+r+")....");var n=e._node;return n&&Object.keys(e).reduce(function(e,r){if(r.startsWith("_")||r.startsWith("$"))return e;var t=n[r];return e[r]===t&&delete e[r],e},e),e}return s.do_create=function(e,r){var t=e&&"object"===(void 0===e?"undefined":_typeof(e))?e._id:e;return t?(_(u,"do_create()... id=",t),f(e,r,"create").then(p).then(function(e){var r=e._node;return!r||r.deleted_at?function(t){var e=t._id;return _(u,"my_prepare_origin_node("+e+")...."),e?f(e,null,"prepare").then(function(e){return e._force_create=!0,e}).then(a.do_prepare).then(function(e){var r=e._node;return t._node=r,t}):Promise.reject(new Error("ID is required!"))}(e):(e._is_update=!0,l(e))}).then(m).then(function(e){return e._is_update?a.do_update(e):a.do_create(e)}).then(h)):Promise.reject(new Error("id is required!"))},s.do_update=function(e,r){var t=e&&"object"===(void 0===e?"undefined":_typeof(e))?e._id:e;return t?(_(u,"do_update()... id=",t),f(e,r,"update").then(p).then(m).then(E).then(l).then(a.do_update).then(h)):Promise.reject(new Error("id is required!"))},s.do_increment=function(e,r){var t=e&&"object"===(void 0===e?"undefined":_typeof(e))?e._id:e;return t?(_(u,"do_increment()... id=",t),f(e,r,"increment").then(a.do_increment).then(h)):Promise.reject(new Error("id is required!"))},s.do_read=function(e,r){return(e&&"object"===(void 0===e?"undefined":_typeof(e))?e._id:e)?f(e,r,"read").then(a.do_read).then(E).then(h):Promise.reject(new Error("id is required!"))},s.do_delete=function(e,r){return(e&&"object"===(void 0===e?"undefined":_typeof(e))?e._id:e)?f(e,r,"delete").then(a.do_delete).then(h):Promise.reject(new Error("id is required!"))},s.do_search=function(e,r){var t=e&&"object"===(void 0===e?"undefined":_typeof(e))?e._id:e;return _(u,"do_search()... id=",t),f(e,r,"search").then(a.do_search).then(h)},s.on_records=function(e){return _(u,"on_records()... records.len=",e&&e.records&&e.records.length||0),a.on_records(e||{})},s.do_initialize=function(e){return _(u+"do_initialize()... params=",i.json(e)),a.do_initialize(e||{})},s.do_terminate=function(e){return _(u+"do_terminate()... params=",i.json(e)),a.do_terminate(e||{})},s};

@@ -1,1 +0,1 @@

"use strict";var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};module.exports=function(e,r,t){r=r||"MMS";var n=["id","type","parent","name","group","refid","nick","stereo","message","description","image","source","target","state"],i=n.reduce(function(e,r){return(r=r||"").startsWith("desc")||e.push(r),e},[]),o=e.U,d=e.LEM;if(!o)throw new Error("$U is required!");if(!d)throw new Error("LEM is required!");var _=e.log,a=e.inf,u=e.err,c=o.NS(r),s=d(e,"_"+r,{ID_TYPE:"LemonMessagesSeq",ID_NEXT:1e3,FIELDS:n,DYNA_TABLE:"Messages",REDIS_PKEY:"CMMS",ES_INDEX:"messages-v1",ES_TYPE:"messages",ES_FIELDS:i,NS_NAME:r,ES_MASTER:1,CLONEABLE:!0,PARENT_IMUT:!1});if(!s)throw new Error(c+"$LEM is required!");var f=t||{},E=function(e){throw new Error("NOT_IMPLEMENTED - "+c+":"+JSON.stringify(e))};f.$LEM=s,f.do_prepare=E,f.do_create=E,f.do_clone=E,f.do_update=E,f.do_increment=E,f.do_read=E,f.do_delete=E,f.do_destroy=E,f.do_search=E,f.on_records=E,f.do_notify=s.do_notify,f.do_subscribe=s.do_subscribe,f.do_initialize=E,f.do_terminate=E,f.do_test_self=E,e(r,f);var p=function(e,r,t){return s.do_prepare_chain(e,r,t)},h=function(e){return s.do_finish_chain(e)},m=function(e){var r=((""+e.type).trim()+":"+(""+e.name).trim()).toLowerCase();return"MD5"+o.md5(r)};f.calculate_refid=m;var l=function(e){var r=e._node||{},t=(e._id||r.id,r.refid),n=e.type||r.type||"",i=e.name||r.name||"",o=(n.trim()+":"+i.trim()).toLowerCase(),d=":"==o?"":m({type:n,name:i});if(d&&t!=d){if(a(c,">> refid := ",d," (",o,")"),r.id)return p(r.id,{refid:d},"update").then(s.do_update).then(h).then(function(){return e});e.refid=d}return e};return f.do_prepare=function(e,r){var t=e&&"object"===(void 0===e?"undefined":_typeof(e))?e._id:e;return _(c,"do_prepare()... id=",t),p(e,r,"prepare").then(s.do_prepare).then(h)},f.do_create=function(e,r){var t=e&&"object"===(void 0===e?"undefined":_typeof(e))?e._id:e;return t?(_(c,"do_create()... id=",t),p(e,r,"create").then(function(e){return e.type?e.name?e:Promise.reject(new Error("name is required!")):Promise.reject(new Error("type is required!"))}).then(l).then(s.do_create).then(h)):Promise.reject(new Error("id is required!"))},f.do_search_refid=function(e){var t=e.refid;return t?s.do_search(0,{refid:t}).then(function(e){var r=e.list||[];return 0<r.length?r[0]:Promise.reject(new Error("404 NOT FOUND - refid:"+t))}):Promise.reject(new Error("refid is required!"))},f.do_create_safe=function(e,r){var t=e&&"object"===(void 0===e?"undefined":_typeof(e))?e._id:e;return t?Promise.reject(new Error("id is invalid")):(_(c,"do_create_safe()... id=",t),p(e,r,"create").then(function(e){return e.type?e.name?e:Promise.reject(new Error("name is required!")):Promise.reject(new Error("type is required!"))}).then(l).then(function(t){if((""+(t.name||"")).startsWith("#"))return s.do_prepare(0).then(function(e){return a(c,"! prepared-id =",e._id),t._id=e._id,t._prepared=1,t});var n=t.refid;return n?s.do_search(0,{refid:n}).then(function(e){var r=e.list||[];return r.length<1?s.do_prepare(0).then(function(e){return a(c,"! prepared-id =",e._id),t._id=e._id,t._prepared=1,t}):1!==r.length?(u(c,"TOO MANY RESULT BY REFID:"+n+" = ",r),Promise.reject(new Error("Invalid refid@1:"+n))):(t._id=r[0].id,t)}):Promise.reject(new Error("refid is invalid"))}).then(function(e){return e._id&&!e._prepared?s.do_update(e):s.do_create(e)}).then(function(e){return e.id=e._id,e}).then(h))},f.do_clone=function(e,r){var t=e&&"object"===(void 0===e?"undefined":_typeof(e))?e._id:e;return t?(_(c,"do_clone()... id=",t),p(e,r,"clone").then(s.do_clone).then(l).then(h)):Promise.reject(new Error("id is required!"))},f.do_update=function(e,r){var t=e&&"object"===(void 0===e?"undefined":_typeof(e))?e._id:e;return t?(_(c,"do_update()... id=",t),p(e,r,"update").then(function(e){return e.type?Promise.reject(new Error("type is imutable")):e}).then(s.do_update).then(l).then(h)):Promise.reject(new Error("id is required!"))},f.do_increment=function(e,r){var t=e&&"object"===(void 0===e?"undefined":_typeof(e))?e._id:e;return t?(_(c,"do_increment()... id=",t),p(e,r,"increment").then(function(e){return e.type?e:Promise.reject(new Error("type is imutable"))}).then(s.do_increment).then(h)):Promise.reject(new Error("id is required!"))},f.do_read=function(e,r){return(e&&"object"===(void 0===e?"undefined":_typeof(e))?e._id:e)?p(e,r,"read").then(s.do_read).then(h):Promise.reject(new Error("id is required!"))},f.do_delete=function(e,r){return(e&&"object"===(void 0===e?"undefined":_typeof(e))?e._id:e)?p(e,r,"delete").then(s.do_delete).then(h):Promise.reject(new Error("id is required!"))},f.do_destroy=function(e,r){var t=e&&"object"===(void 0===e?"undefined":_typeof(e))?e._id:e;return t?(_(c,"do_destroy()... id=",t),p(e,r,"destroy").then(s.do_destroy).then(h)):Promise.reject(new Error("id is required!"))},f.do_search=function(e,r){var t=e&&"object"===(void 0===e?"undefined":_typeof(e))?e._id:e;return _(c,"do_search()... id=",void 0===e?"undefined":_typeof(e),t),p(e,r,"search").then(s.do_search).then(h)},f.on_records=function(e){return _(c,"on_records()... records.len=",e&&e.records&&e.records.length||0),s.on_records(e||{})},f.do_initialize=function(e){return _(c+"do_initialize()... params=",o.json(e)),s.do_initialize(e||{})},f.do_terminate=function(e){return _(c+"do_terminate()... params=",o.json(e)),s.do_terminate(e||{})},f.do_test_self=function(e,r){return _(c+"do_test_self()... params=",o.json(r)),function(e,r){_(c,"- do_test_self()... that=",o.json(e));var t=o.promise(e);return t=t.then(function(e){_(c,"------------- STEP1 ");var t=Object.assign({_id:0,type:"TEST",name:"test-name",nick:"hello",description:"test description (invisible in ES)",meta:'{"hello":1}'},r||{});return void 0!==e.id&&(t._id=e.id),_(c,"! ID =",t._id),Promise.resolve(t).then(function(e){return _(c,"======== PREPARE"),e._id?e:f.do_prepare(0)}).then(function(e){_(c,"======== CREATE"),_(c,"> do_create =",o.json(e));var r=e._id;return f.do_create(r,t).then(function(e){_(c,"======== VALIDATE-CREATE"),_(c,">> do_create = ",o.json(e));var r=e._node||{},t=r.id,n=r.created_at&&r.updated_at&&!r.deleted_at&&r.id===t;if(n&&_(c,">> CREATE TEST RESULT: OK"),!n&&u(c,">> CREATE TEST RESULT: FAIL"),!t)throw new Error("invalid id after creation");return e})}).then(function(e){_(c,"======== UPDATE"),_(c,"> do_update =",o.json(e));var r=e._node||{},t=r.id,n={name:(r.name||"!")+"+"};return f.do_update(t,n).then(function(e){return _(c,"======== VALIDATE-UPDATE"),_(c,">> do_update = ",o.json(e)),e})}).catch(function(e){if(u(c,"ERR =",e),0<(e.message||"").indexOf("INVALID STATE.")){_(c,"======== DELETE");var n=t._id;return f.do_delete(n,t).then(function(e){_(c,">> do_delete = ",o.json(e));var r=e._node||{},t=r.created_at&&r.updated_at&&r.deleted_at&&r.id===n;return t&&_(c,">> DELETE TEST RESULT: OK"),!t&&u(c,">> DELETE TEST RESULT: FAIL"),e})}throw e})})}(e,r)},f};
"use strict";var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};module.exports=function(e,r,t){r=r||"MMS";var n=["id","type","parent","name","group","refid","nick","stereo","message","description","image","source","target","state"],i=n.reduce(function(e,r){return(r=r||"").startsWith("desc")||e.push(r),e},[]),o=e.U,d=e.LEM;if(!o)throw new Error("$U is required!");if(!d)throw new Error("LEM is required!");var _=e.log,a=e.inf,u=e.err,c=o.NS(r),s=d(e,"_"+r,{ID_TYPE:"LemonMessagesSeq",ID_NEXT:1e3,FIELDS:n,DYNA_TABLE:"Messages",REDIS_PKEY:"CMMS",ES_INDEX:"messages-v1",ES_TYPE:"messages",ES_FIELDS:i,NS_NAME:r,ES_MASTER:1,CLONEABLE:!0,PARENT_IMUT:!1});if(!s)throw new Error(c+"$LEM is required!");function f(e){throw new Error("NOT_IMPLEMENTED - "+c+":"+JSON.stringify(e))}var E=t||{};E.$LEM=s,E.do_prepare=f,E.do_create=f,E.do_clone=f,E.do_update=f,E.do_increment=f,E.do_read=f,E.do_delete=f,E.do_destroy=f,E.do_search=f,E.on_records=f,E.do_notify=s.do_notify,E.do_subscribe=s.do_subscribe,E.do_initialize=f,E.do_terminate=f,E.do_test_self=f,e(r,E);function p(e,r,t){return s.do_prepare_chain(e,r,t)}function h(e){return s.do_finish_chain(e)}function m(e){var r=((""+e.type).trim()+":"+(""+e.name).trim()).toLowerCase();return"MD5"+o.md5(r)}E.calculate_refid=m;function l(e){var r=e._node||{},t=(e._id||r.id,r.refid),n=e.type||r.type||"",i=e.name||r.name||"",o=(n.trim()+":"+i.trim()).toLowerCase(),d=":"==o?"":m({type:n,name:i});if(d&&t!=d){if(a(c,">> refid := ",d," (",o,")"),r.id)return p(r.id,{refid:d},"update").then(s.do_update).then(h).then(function(){return e});e.refid=d}return e}return E.do_prepare=function(e,r){var t=e&&"object"===(void 0===e?"undefined":_typeof(e))?e._id:e;return _(c,"do_prepare()... id=",t),p(e,r,"prepare").then(s.do_prepare).then(h)},E.do_create=function(e,r){var t=e&&"object"===(void 0===e?"undefined":_typeof(e))?e._id:e;return t?(_(c,"do_create()... id=",t),p(e,r,"create").then(function(e){return e.type?e.name?e:Promise.reject(new Error("name is required!")):Promise.reject(new Error("type is required!"))}).then(l).then(s.do_create).then(h)):Promise.reject(new Error("id is required!"))},E.do_search_refid=function(e){var t=e.refid;return t?s.do_search(0,{refid:t}).then(function(e){var r=e.list||[];return 0<r.length?r[0]:Promise.reject(new Error("404 NOT FOUND - refid:"+t))}):Promise.reject(new Error("refid is required!"))},E.do_create_safe=function(e,r){var t=e&&"object"===(void 0===e?"undefined":_typeof(e))?e._id:e;return t?Promise.reject(new Error("id is invalid")):(_(c,"do_create_safe()... id=",t),p(e,r,"create").then(function(e){return e.type?e.name?e:Promise.reject(new Error("name is required!")):Promise.reject(new Error("type is required!"))}).then(l).then(function(t){if((""+(t.name||"")).startsWith("#"))return s.do_prepare(0).then(function(e){return a(c,"! prepared-id =",e._id),t._id=e._id,t._prepared=1,t});var n=t.refid;return n?s.do_search(0,{refid:n}).then(function(e){var r=e.list||[];return r.length<1?s.do_prepare(0).then(function(e){return a(c,"! prepared-id =",e._id),t._id=e._id,t._prepared=1,t}):1!==r.length?(u(c,"TOO MANY RESULT BY REFID:"+n+" = ",r),Promise.reject(new Error("Invalid refid@1:"+n))):(t._id=r[0].id,t)}):Promise.reject(new Error("refid is invalid"))}).then(function(e){return e._id&&!e._prepared?s.do_update(e):s.do_create(e)}).then(function(e){return e.id=e._id,e}).then(h))},E.do_clone=function(e,r){var t=e&&"object"===(void 0===e?"undefined":_typeof(e))?e._id:e;return t?(_(c,"do_clone()... id=",t),p(e,r,"clone").then(s.do_clone).then(l).then(h)):Promise.reject(new Error("id is required!"))},E.do_update=function(e,r){var t=e&&"object"===(void 0===e?"undefined":_typeof(e))?e._id:e;return t?(_(c,"do_update()... id=",t),p(e,r,"update").then(function(e){return e.type?Promise.reject(new Error("type is imutable")):e}).then(s.do_update).then(l).then(h)):Promise.reject(new Error("id is required!"))},E.do_increment=function(e,r){var t=e&&"object"===(void 0===e?"undefined":_typeof(e))?e._id:e;return t?(_(c,"do_increment()... id=",t),p(e,r,"increment").then(function(e){return e.type?e:Promise.reject(new Error("type is imutable"))}).then(s.do_increment).then(h)):Promise.reject(new Error("id is required!"))},E.do_read=function(e,r){return(e&&"object"===(void 0===e?"undefined":_typeof(e))?e._id:e)?p(e,r,"read").then(s.do_read).then(h):Promise.reject(new Error("id is required!"))},E.do_delete=function(e,r){return(e&&"object"===(void 0===e?"undefined":_typeof(e))?e._id:e)?p(e,r,"delete").then(s.do_delete).then(h):Promise.reject(new Error("id is required!"))},E.do_destroy=function(e,r){var t=e&&"object"===(void 0===e?"undefined":_typeof(e))?e._id:e;return t?(_(c,"do_destroy()... id=",t),p(e,r,"destroy").then(s.do_destroy).then(h)):Promise.reject(new Error("id is required!"))},E.do_search=function(e,r){var t=e&&"object"===(void 0===e?"undefined":_typeof(e))?e._id:e;return _(c,"do_search()... id=",void 0===e?"undefined":_typeof(e),t),p(e,r,"search").then(s.do_search).then(h)},E.on_records=function(e){return _(c,"on_records()... records.len=",e&&e.records&&e.records.length||0),s.on_records(e||{})},E.do_initialize=function(e){return _(c+"do_initialize()... params=",o.json(e)),s.do_initialize(e||{})},E.do_terminate=function(e){return _(c+"do_terminate()... params=",o.json(e)),s.do_terminate(e||{})},E.do_test_self=function(e,r){return _(c+"do_test_self()... params=",o.json(r)),function(e,r){_(c,"- do_test_self()... that=",o.json(e));var t=o.promise(e);return t=t.then(function(e){_(c,"------------- STEP1 ");var t=Object.assign({_id:0,type:"TEST",name:"test-name",nick:"hello",description:"test description (invisible in ES)",meta:'{"hello":1}'},r||{});return void 0!==e.id&&(t._id=e.id),_(c,"! ID =",t._id),Promise.resolve(t).then(function(e){return _(c,"======== PREPARE"),e._id?e:E.do_prepare(0)}).then(function(e){_(c,"======== CREATE"),_(c,"> do_create =",o.json(e));var r=e._id;return E.do_create(r,t).then(function(e){_(c,"======== VALIDATE-CREATE"),_(c,">> do_create = ",o.json(e));var r=e._node||{},t=r.id,n=r.created_at&&r.updated_at&&!r.deleted_at&&r.id===t;if(n&&_(c,">> CREATE TEST RESULT: OK"),n||u(c,">> CREATE TEST RESULT: FAIL"),!t)throw new Error("invalid id after creation");return e})}).then(function(e){_(c,"======== UPDATE"),_(c,"> do_update =",o.json(e));var r=e._node||{},t=r.id,n={name:(r.name||"!")+"+"};return E.do_update(t,n).then(function(e){return _(c,"======== VALIDATE-UPDATE"),_(c,">> do_update = ",o.json(e)),e})}).catch(function(e){if(u(c,"ERR =",e),0<(e.message||"").indexOf("INVALID STATE.")){_(c,"======== DELETE");var n=t._id;return E.do_delete(n,t).then(function(e){_(c,">> do_delete = ",o.json(e));var r=e._node||{},t=r.created_at&&r.updated_at&&r.deleted_at&&r.id===n;return t&&_(c,">> DELETE TEST RESULT: OK"),t||u(c,">> DELETE TEST RESULT: FAIL"),e})}throw e})})}(e,r)},E};
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc