Join our webinar on Wednesday, June 26, at 1pm EDTHow Chia Mitigates Risk in the Crypto Industry.Register
Socket
Socket
Sign inDemoInstall

lemoncloud-engine-js

Package Overview
Dependencies
57
Maintainers
3
Versions
66
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.3.7 to 0.3.8

2

core/lemon-engine-model.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};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,m=e._,i=e.MS,d=e.DS,o=e.RS,u=e.ES;if(!f)throw new Error("$U is required!");if(!m)throw new Error("$U is required!");if(!i)throw new Error("$MS is required!");if(!d)throw new Error("$DS is required!");if(!o)throw new Error("$RS is required!");if(!u)throw new Error("$ES is required!");var h=e.log,_=e.inf,l=e.err,p=f.NS(n,"green"),s=t||{},a=function(e){throw new Error("NOT_IMPLEMENTED - "+p+":"+JSON.stringify(e))};s.do_prepare=a,s.do_create=a,s.do_clone=a,s.do_update=a,s.do_increment=a,s.do_read=a,s.do_delete=a,s.do_destroy=a,s.do_search=a,s.do_initialize=a,s.do_terminate=a,s.do_test_self=a,s.on_records=a,s.do_notify=a,s.do_subscribe=a,s.do_next_id=a,r.startsWith("_")||e(r,s);var c=function(e,r){return void 0===s[e]?r:s[e]},v=c("VERSION",1),E=c("REVISION",1),y=c("VERSION_NAME","V"),P=c("REVISION_NAME","R"),j=c("ID_INPUT","id"),w=c("ID_NAME","id"),g=c("ID_TYPE","test"),S=c("ID_NEXT",0),q=c("DYNA_TABLE","TestTable"),N=c("REDIS_PKEY","TPKEY"),R=c("FIELDS",null),b=c("DEFAULTS",null),T=c("CLONEABLE",!1),A=c("CLONED_ID","cloned"),O=c("PARENT_ID","parent"),D=c("PARENT_IMUT",!0),I=c("ES_INDEX","test-v1"),x=c("ES_TYPE","test"),W=c("ES_FIELDS",["updated_at","name"]),M=c("ES_MASTER",0),L=c("NS_NAME",""),$=require("dynamodb-value"),k=require("./notify-service")(e,"!"+L,{NS_NAME:L});s.do_notify=k.do_notify,s.do_subscribe=k.do_subscribe,T&&R&&(O&&R.indexOf(O)<0&&R.push(O),A&&R.indexOf(A)<0&&R.push(A));var U=[j,w,"created_at","updated_at","deleted_at",A];D&&O&&U.push(O);var V=function(e,r,t,n){t=t||"","object"===(void 0===(e=e||0)?"undefined":_typeof(e))?r=r?f.extend(e,r):e:(r=null==r?{}:"object"!==(void 0===r?"undefined":_typeof(r))||r instanceof Promise?{params:r}:f.copy(r),r=f.extend(r,{_id:e}));var i=r;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(p+"method-stack full. size:"+i._method_stack):f.promise(i);e=g.startsWith("#")?i._id||i[j]||"":f.N(i._id||i[j]||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=m.reduce(i,function(e,r,t){return t.startsWith("_")||t.startsWith("$")||0<=U.indexOf(t)||e._params_count++,e},i)),f.promise(i)},F=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=m.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=R?R.reduce(function(e,r){return void 0!==e[r]&&void 0!==t[r]&&(e[r]=t[r]),e},e):e),e},Y=function(r){var e=r._id;if(h(p,"- my_prepare_id("+g+", "+e+")...."),g.startsWith("#")){if(g&&g.startsWith("#")&&1<g.length&&0<S){var t=g.substring(1);return i.do_get_next_id(t).then(function(e){return h(p,"> created next-id["+t+"]=",e),r._id=e,r})}}else if(g&&!e)return i.do_get_next_id(g).then(function(e){return h(p,"> created next-id=",e),r._id=e,r});return h(p,"> prepared-id =",e),Promise.resolve(r)},z=function(t){if(!t._current_mode)throw new Error(p+"_current_mode is required!");var n=t._current_mode,i=b||{},o=0,e=t._node||{};return R?"prepare"===n||"create"===n||"clone"===n?e=R.reduce(function(e,r){return r===w||r===y||r===P||("prepare"===n?(void 0!==i[r]?e[r]=b[r]:void 0!==t[r]&&(e[r]=t[r]),y&&(e[y]=v),P&&(e[P]=0)):("create"===n&&P&&(e[P]=E-1),void 0!==t[r]&&(e[r]=t[r])),o++),e},e):"update"!==n&&"increment"!==n&&"read"!==n||(e=R.reduce(function(e,r){return r===w||void 0!==t[r]&&o++,e},e)):o=-1,t._fields_count=o,t._node=e,t},B=function(e,r){return e.created_at=0,e.updated_at=r,e.deleted_at=r,e},Q=function(e,r){return e.created_at=r,e.updated_at=r,e.deleted_at=0,e},H=function(r){if(!r._node)return Promise.reject(new Error(p+"_node is required!"));if(!r._current_time)return Promise.reject(new Error(p+"_current_time is required!"));var t=r._id,n=(r._node,r._current_time);return t?ue(r).catch(function(e){return l(p,"not found. err=",e),r}).then(function(e){var r=(e=z(e))._node||{};if(e._force_create)l(p,"WARN! _force_create is set!");else if(!r.deleted_at)return l(p,"INVALID STATE FOR PREPARED. ID=",t,", TIMES[CUD]=",[r.created_at,r.updated_at,r.deleted_at]),Promise.reject(new Error(p+"INVALID STATE."));return e[j]=e._id,r[w]=e._id,e._node=B(e._node,n),e}):(r=z(r),Y(r).then(function(e){var r=e._node||{};return e[j]=e._id,r[w]=e._id,e._node=B(r,n),e}))},C=function(e){if(!e._id)return Promise.reject(new Error(p+"_id is required!"));if(!e._node)return Promise.reject(new Error(p+"_node is required!"));if(!e._current_time)return Promise.reject(new Error(p+"_current_time is required!"));var t=e._id,r=e._node,n=e._current_time;return h(p,"> prepared-id =",t,", current-time =",n,", node =",f.json(r)),ue(e).then(function(e){var r=(e=z(e))._node||{};if(e._force_create)l(p,"WARN! _force_create is set!");else if(!r.deleted_at)return l(p,"INVALID STATE FOR CREATED. ID=",t,", TIMES[CUD]=",[r.created_at,r.updated_at,r.deleted_at]),Promise.reject(new Error(p+"INVALID STATE."));return e._node=Q(e._node,n),e})},J=function(e){if(!e._id)return Promise.reject(new Error(p+"_id is required!"));if(!e._node)return Promise.reject(new Error(p+"_node is required!"));if(!e._current_time)return Promise.reject(new Error(p+"_current_time is required!"));var r=e._id,t=e._node,n=e._current_time;return h(p,"> cloned-id =",r,", current-time =",n,", node =",f.json(t)),ue(e).then(function(e){return h(p,">> get-item-node old=",f.json(e._node)),(e=z(e))._node=Q(e._node,n),e})},K=function(e){if(!e._id)return Promise.reject(new Error(p+"_id is required!"));if(!e._node)return Promise.reject(new Error(p+"_node is required!"));if(!e._current_time)return Promise.reject(new Error(p+"_current_time is required!"));e._id,e._node;var n=e._current_time;return 0===(e=z(e))._fields_count?e:ue(e).then(function(e){var r,t;return e._node=(r=e._node,t=n,r.updated_at=t,r),e})},X=function(e){if(!e._id)return Promise.reject(new Error(p+"_id is required!"));if(!e._node)return Promise.reject(new Error(p+"_node is required!"));if(!e._current_time)return Promise.reject(new Error(p+"_current_time is required!"));var r=e._id,t=e._node,n=e._current_time;return h(p,"> deleted-id =",r,", current-time =",n,", node =",f.json(t)),ue(e).then(function(e){var r,t;return h(p,">> get-item-node old=",f.json(e._node)),(e=z(e))._node=(r=e._node,t=n,r.updated_at=t,r.deleted_at=t,r),e})},G=function(r){var e;if(!r._id)return Promise.reject(new Error(p+"_id is required!"));var t=r._id;h(p,"- dynamo:my_read_node ("+t+")....");var n=g.startsWith("#")?"String":"";return d.do_get_item(q,(e={},_defineProperty(e,w,t),_defineProperty(e,"idType",n),e)).then(function(e){return h(p,"> dynamo:get-item-node("+t+") res=",f.json(e)),r._node=e,r})},Z=function(r){if(!r._id)return Promise.reject(new Error(p+"_id is required!"));if(!r._node)return Promise.reject(new Error(p+"_node is required!"));var t=r._id,e=r._node,n={},i=0;for(var o in r)r.hasOwnProperty(o)&&(o=""+o)&&(o.startsWith("_")||o.startsWith("$")||0<=U.indexOf(o)||R&&R.indexOf(o)<0||o&&(n[o]=r[o],e[o]=r[o],i++));return n.updated_at=e.updated_at,r._updated_node=null,(r._updated_count=i)?(void 0!==e[P]&&(e[P]=f.N(e[P],0)+1),d.do_update_item(q,_defineProperty({},w,t),n,P?_defineProperty({},P,1):null).then(function(e){return r._updated_node=n,h(p,"> dynamo:updated-item("+t+") res=",f.json(e)),r})):R?r:Promise.reject(new Error(p+"nothing to update"))},ee=function(r){if(!r._id)return Promise.reject(new Error(p+"_id is required!"));if(!r._node)return Promise.reject(new Error(p+"_node is required!"));var t=r._id,e=r._node,n=r._current_mode||"",i=r._current_time;if(h(p,"- dynamo:my_save_node("+t+")...."),h(p,"> dynamo:node-id =",t,", current-time =",i,", node =",f.json(e)),"prepare"!==n)for(var o in r)r.hasOwnProperty(o)&&(o=""+o)&&(o.startsWith("_")||o.startsWith("$")||0<=U.indexOf(o)||R&&R.indexOf(o)<0||(e[o]=r[o]));return void 0!==e[P]&&(e[P]=f.N(e[P],0)+1),d.do_create_item(q,_defineProperty({},w,t),e).then(function(e){return h(p,"> dynamo:saved-item("+t+") res=",e),r})},re=function(r){if(!r._id)return Promise.reject(new Error(p+"_id is required!"));if(!r._node)return Promise.reject(new Error(p+"_node is required!"));var t=r._id,e=r._node,n={},i=0;for(var o in r)r.hasOwnProperty(o)&&((o=""+o).startsWith("_")||o.startsWith("$")||0<=U.indexOf(o)||R&&R.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,h(p,"> dynamo:increment-node =",n),r._updated_node=null,(r._updated_count=i)?(void 0!==e[P]&&(e[P]=f.N(e[P],0)+1),d.do_increment_item(q,_defineProperty({},w,t),n,P?_defineProperty({},P,1):null).then(function(e){return h(p,"> dynamo:updated-item("+t+") res=",f.json(e)),r._updated_node=n,r})):R?r:Promise.reject(new Error(p+"nothing to update"))},te=function(r){if(!r._id)return Promise.reject(new Error(p+"_id is required!"));var t=r._id;return d.do_delete_item(q,_defineProperty({},w,t)).then(function(e){return h(p,"> dynamo:deleted-item-node("+t+") res=",f.json(e)),r._node=e||{},r})},ne={my_read_node:function(r){if(!r._id)return Promise.reject(new Error(p+"_id is required!"));if(!N)return Promise.reject(r);var t=r._id;return o.do_get_item(N,t).then(function(e){return e?(r._node=e,r):Promise.reject(r)}).catch(function(e){throw e instanceof Error&&(l(p,"! redis:get-item("+N+", "+t+") err =",e.message||e),r._error=e),r})},my_save_node:function(r){if(!r._id)return Promise.reject(new Error(p+"_id is required!"));if(!r._node)return Promise.reject(new Error(p+"_node is required!"));if(!N)return Promise.resolve(r);var t=r._id,e=r._node;h(p,"- redis:my_save_node("+N+":"+t+"). node=",e);var n=ne.my_set_node_footprint(t,e);return n=n.then(function(){return o.do_create_item(N,t,e)}).then(function(e){return h(p,"> redis:save-item-node("+t+") res=",f.json(e)),r})},my_update_node:function(r){if(!r._id)return Promise.reject(new Error(p+"_id is required!"));if(!r._node)return Promise.reject(new Error(p+"_node is required!"));if(!N)return Promise.resolve(r);var t=r._id,e=r._node,n=ne.my_set_node_footprint(t,e);return n=n.then(function(){return o.do_update_item(N,t,e)}).then(function(e){return h(p,"> redis:update-item-node("+t+") res=",f.json(e)),r})},my_delete_node:function(r){if(!r._id)return Promise.reject(new Error(p+"_id is required!"));if(!N)return Promise.resolve(r);var t=r._id;return o.do_delete_item(N,t).then(function(e){return h(p,"> redis:delete-item-node("+t+") res=",f.json(e)),r})},my_set_node_footprint:function(r,e){if(!r)return Promise.reject(new Error(p+"id is required!"));if(!N)return Promise.resolve(0);e=e||{};var t=f.N(e.updated_at,0),n=f.hash(e);return o.do_create_item([N+"/UPDATED",N+"/HASH"],r,[t,n]).then(function(e){return h(p,"> redis:set node-footprint("+r+") res=",f.json(e)),e})},my_get_updated_at:function(e){return e?N?o.do_get_item(N+"/UPDATED",e).then(function(e){return e}):Promise.resolve(-1):Promise.reject(new Error(p+"id is required!"))},my_get_hash_value:function(e){return e?N?o.do_get_item(N+"/HASH",e).then(function(e){return e}):Promise.resolve(-1):Promise.reject(new Error(p+"id is required!"))}},ie=function(r){if(!r._id)return Promise.reject(new Error(p+"elasticsearch:_id is required!"));if(!r._node)return Promise.reject(new Error(p+"elasticsearch:_node is required!"));if(!I||!x)return r;var t=r._id,n=r._node;if(W){var e=m.reduce(W,function(e,r){return void 0!==n[r]&&(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),M?u.do_create_item(I,x,t,e).then(function(e){return h(p,"! elasticsearch:saved-item("+t+") res=",f.json(e)),r}):u.do_update_item(I,x,t,e).then(function(e){return h(p,"! elasticsearch:updated-item("+t+") res=",f.json(e)),r})):(h(p,"! elasticsearch:WARN! nothing to update ("+t+")...."),r)}return u.do_create_item(I,x,t,n).then(function(e){return h(p,"! elasticsearch:saved-item2("+t+") res=",f.json(e)),r})},oe=function(r){if(!r._id)return Promise.reject(new Error(p+"elasticsearch:_id is required!"));if(!I||!x)return r;var t=r._id;return W&&!M?(h(p,"! elasticsearch:WARN! ignore delete ("+t+")...."),r):u.do_delete_item(I,x,t).then(function(e){return h(p,"! elasticsearch:deleted-item("+t+") res=",f.json(e)),r})},de=function(i){if(!I||!x)return i;if(h(p,"- elasticsearch:do_search_item()...."),W&&!M)return h(p,"! elasticsearch:WARN! ignore search ()...."),i;var o={$page:0,$limit:0};return o.$page=f.N(i.page||0),o.$limit=f.N(i.ipp||10),o.deleted_at="0",i.$source&&(o.$source=i.$source),i.Q&&(o.$Q=i.Q),i.A&&(o.$A=i.A),i.O&&(o.$O=i.O),o.$O=o.$O||(g.startsWith("#")?"id.keyword":"id"),W&&W.forEach(function(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])}),u.do_search_item(I,x,o).then(function(e){var r=e&&e.hits||{},t=r.hits||[],n=r;return i.list=t.map(function(e){return f.extend({_score:e._score},e._source)}),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 l(p,"!ERR =",e),e})},ue=function(e){if(!e._id)return Promise.reject(new Error(p+"_id is required!"));e._id;return Promise.resolve(e).then(ne.my_read_node).catch(function(e){return G(e).then(function(e){return void 0===(e._node||{})[w]?Promise.reject(new Error(p+"404 NOT FOUND. "+q+".id:"+(e._id||""))):e}).then(ne.my_save_node)})},_e=function(e){if(!e._id)return Promise.reject(new Error(p+"_id is required!"));if(!e._node)return Promise.reject(new Error(p+"_node is required!"));e._id;return Promise.resolve(e).then(ee).then(ne.my_save_node).then(ie).then(function(e){return e})},se=function(e){if(!e._id)return Promise.reject(new Error(p+"_id is required!"));if(!e._node)return Promise.reject(new Error(p+"_node is required!"));if(!e._current_time)return Promise.reject(new Error(p+"_current_time is required!"));var r=e._id;return h(p,"- my_clone_node ("+r+")...."),Promise.resolve(e).then(function(n){if(!T)return n;var e=n._id,i=void 0!==n[O]?f.N(n[O],0):e,o=e;return Y({_id:0}).then(function(e){var r=e._id,t=n._node||{};return t[w]=r,O&&(t[O]=i),A&&(t[A]=o),O&&(n[O]=i),A&&(n[A]=o),n._clone_id=r,n._node=t,n})}).then(function(e){if(!e._id)return Promise.reject(new Error(p+"_id is required!"));if(!e._node)return Promise.reject(new Error(p+"_node is required!"));if(!e._clone_id)return Promise.reject(new Error(p+"_clone_id is required!"));var r=e._id;return e._id=e._clone_id,m.reduce(e,function(e,r,t){return t&&(t.startsWith("_")||t.startsWith("$")||0<=U.indexOf(t)||void 0!==e[t]&&(e[t]=r)),e},e._node),h(p,">> before save-node().. that._node =",f.json(e._node)),_e(e).then(function(){return e._id=r,e})}).then(function(e){return h(p,">> cloned-node["+e._id+" -> "+e._clone_id+"] res=",f.json(e._node)),e})},ae=function(e){if(!e._id)return Promise.reject(new Error(p+"_id is required!"));var r=e._id;return h(p,"- my_delete_node ("+r+")...."),Promise.resolve(e).then(te).then(ne.my_delete_node).then(oe).then(function(e){return h(p,">> deleted-node res=",f.json(e._node)),e})},ce=function(e){return h(p,"- my_search_node ()...."),Promise.resolve(e).then(de).then(function(e){return e})},fe=function(e){if(!e)return e;if(!e._id)return Promise.reject(new Error(p+"_id is required!"));e._id;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=L+":event:"+n;return h(p,">>> notify event-id:",t,", notifiable=",e),le(t,r).then(function(e){return r})}return r})},me=function(r){if(!r.records)return Promise.reject(new Error(p+"records is required!"));var e=r.records.slice(0);if(h(p,"- my_event_records().... records.len=",e.length),!e.length)return r;var t,n,i;return(t=e,n=he,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 l(p,"error ignored! =",e),r}).then(function(){return r})},he=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(h(p,"--- process-record("+o+") ... "),q!==o)return h(p,"! ignore record-table: "+q+" != "+o+" "),e;var t=e.dynamodb.Keys?$.toJavascript(e.dynamodb.Keys):{},d=e.dynamodb.NewImage?$.toJavascript(e.dynamodb.NewImage):null,n=e.dynamodb.OldImage?$.toJavascript(e.dynamodb.OldImage):null,u=t[w],_="MODIFY"===i?f.diff(n,d):null,s=f.N(d&&d.updated_at||0),a=_?m.reduce(_,function(e,r){return e[r]=n[r],e},{}):null,c={_id:u,_node:d,_updated_at:s,_diff:_,_prev:a};switch(r=Promise.resolve(c),_&&h(p,">> "+o+".different["+u+"]=",f.json(_)),i){case"INSERT":case"MODIFY":r=r.then(function(t){var n=t._id;return ne.my_get_updated_at(n).then(function(e){if(l(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 ne.my_get_hash_value(n).then(function(e){return e&&e===r?(h(p,"! WARN! ignored due to hash-value matching =",e),t):(h(p,"! INFO! node was updated. hash :=",r,"<-",e),ne.my_save_node(t).then(ie))})}return h(p,"! ignored due to old-record"),t})});break;case"REMOVE":h(p,">> removed!"),r=(r=r.then(ne.my_delete_node)).then(oe)}}else e.Sns&&(h(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=L+":record:"+e;return h(p,">>> notify event-id:",n,", notifiable=",t),le(n,r).then(function(e){return r})}return r}).then(function(){return e}):Promise.reject(new Error("invalid chain!"))},le=function(e,r){return k.do_notify(e,r)},pe=function(r){var e=[];if(q){var t=g.startsWith("#")?"S":"N";e.push(Promise.resolve("DynamoDb").then(function(e){return h(p,"# initialize ",e),d.do_create_table(q,w,t).then(function(e){return e.TableDescription.TableName===q})}).catch(function(e){if("ResourceInUseException"===e.code)return!1;throw e}))}else h(p,"DS: WARN! ignored configuration. DYNA_TABLE=",q);if(g&&!g.startsWith("#")?e.push(Promise.resolve("MySQL").then(function(e){return h(p,"# initialize MySQL (Sequence) "),i.do_create_id_seq(g,S).then(function(e){return h(p,"> create-id-seq res=",e),!0})}).catch(function(e){if("ER_TABLE_EXISTS_ERROR"===e.code)return!1;throw e})):g&&g.startsWith("#")&&1<g.length&&0<S?e.push(Promise.resolve("MySQL").then(function(e){h(p,"# initialize MySQL (Sequence) ");var r=g.substring(1);return i.do_create_id_seq(r,S).then(function(e){return h(p,"> create-id-seq["+r+"] res=",e),!0})}).catch(function(e){if("ER_TABLE_EXISTS_ERROR"===e.code)return!1;throw e})):h(p,"MS: WARN! ignored configuration. ID_TYPE=",g),I&&x&&W){var n={mappings:{_default_:{dynamic_templates:[{string_fields:{match:"*_multi",match_mapping_type:"string",mapping:{type:"multi_field",fields:{"{name}":{type:"string",index:"analyzed",omit_norms:!0,index_options:"docs"},"{name}.raw":{type:"string",index:"not_analyzed",ignore_above:256}}}}}],properties:{title:{type:"text"},name:{type:"text"},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"}}}}};e.push(Promise.resolve("ElasticSearch").then(function(e){return h(p,"# initialize ElasticSearch (Type) ",x),u.do_create_index_type(I,x,n).then(function(e){return h(p,"> create-es-index res=",e),!0})}).catch(function(e){if(l(p,"> create-es-index error=",e),"index_already_exists_exception"===e.type)return!0;throw e}).then(function(e){return e}))}else h(p,"MS: WARN! ignored configuration. ES_TYPE=",x);return Promise.all(e).then(function(e){return h(p,">> results=",e),r._result=e,r})},ve=function(r){var e=[];if(q&&(h(p,"# terminate DynamoDB"),e.push(d.do_delete_table(q).then(function(e){return e.TableDescription.TableName===q}).catch(function(e){if("ResourceNotFoundException"===e.code)return!0;throw e}))),g&&!g.startsWith("#"))h(p,"# terminate MySQL (Sequence) "),e.push(i.do_delete_id_seq(g).then(function(e){return h(p,"> delete-id-seq res=",e),!0}).catch(function(e){if("ER_BAD_TABLE_ERROR"===e.code)return!0;throw e}));else if(g&&g.startsWith("#")&&1<g.length&&0<S){h(p,"# terminate MySQL (Sequence) ");var t=g.substring(1);e.push(i.do_delete_id_seq(t).then(function(e){return h(p,"> delete-id-seq["+t+"] res=",e),!0}).catch(function(e){if("ER_BAD_TABLE_ERROR"===e.code)return!0;throw e}))}else h(p,"# ignored MySQL (Sequence) ");return I&&x?(h(p,"# terminate ES (Index) "),e.push(u.do_delete_index_type(I,null).then(function(e){return h(p,"> delete-es-index res=",e),!0}).catch(function(e){throw l(p,"> create-es-index error=",e),e}))):h(p,"# ignored ES (Index) "),Promise.all(e).then(function(e){return h(p,">> results=",e),r._result=e,r})},Ee=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",h(p,"# node1 =",f.json(r)),h(p,"> node2 =",f.json(t)),h(p,"> node3 =",f.json(n)),h(p,"# node1.sorted =",f.json(r,!0)),h(p,"> node2.sorted =",f.json(t,!0)),h(p,"> node3.sorted =",f.json(n,!0)),h(p,"# hash1 =",f.hash(1)),h(p,"> node1 =",f.hash(r)),h(p,"> node2 =",f.hash(t)),h(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 h(p,"> read-back data=",e),e})}).then(function(){return ne.my_set_node_footprint(1,i)}).then(function(){return ne.my_get_updated_at(1).then(function(e){return h(p,"> updated-at value=",void 0===e?"undefined":_typeof(e),":",e),e})}).then(function(){return ne.my_get_hash_value(1).then(function(e){return h(p,"> hash-value value=",void 0===e?"undefined":_typeof(e),":",e),e})})},ye=function(r){return h(p,"- my_test_self()...."),Promise.resolve(r).then(Ee).then(function(e){return e||r})};return s.do_prepare_chain=function(e,r,t,n){return V(e,r,t,n)},s.do_finish_chain=function(e,r,t,n){return F(e)},s.do_prepare=function(e,r){return V(e,r,"prepare").then(H).then(_e).then(fe).then(F)},s.do_create=function(t,n){return V(t,n,"create").then(C).catch(function(e){l(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 _(p,"WARN! AUTO TRY TO PREPARE NODE. ID="+t),V(t,n,"create").then(function(e){var r=e._current_time;return e=z(e),h(p,">> prepared old-node=",f.json(e._node)),e._node=Q(e._node,r),e});throw e}).then(_e).then(fe).then(F)},s.do_clone=function(e,r){return V(e,r,"clone").then(J).then(se).then(fe).then(F)},s.do_read=function(e,r){return V(e,r,"read").then(z).then(function(e){return 0!==e._params_count&&0===e._fields_count?e:ue(e)}).then(fe).then(F)},s.do_update=function(e,r){return V(e,r,"update").then(K).then(function(e){return 0===e._fields_count?e:function(t){if(!t._id)return Promise.reject(new Error(p+"_id is required!"));var e=t._id;return h(p,"- my_update_node ("+e+")...."),0===t._fields_count?(h(p,"! my_update_node() no need to update... fields_count="+t._fields_count),t):Promise.resolve(t).then(Z).then(function(e){return e._updated_node?ne.my_save_node(e):e}).then(function(e){return e._updated_node?ie(e):e}).then(function(e){return h(p,">> updated-node res=",f.json(e._updated_node)),e}).catch(function(e){var r=e&&e.message||"";if(l(p,">> updated-node err=",r),0<r.indexOf("an attribute that does not exist in the item"))return _e(t);throw e})}(e)}).then(fe).then(F)},s.do_increment=function(e,r){return V(e,r,"increment").then(K).then(function(e){return 0===e._fields_count?e:function(e){if(!e._id)return Promise.reject(new Error(p+"_id is required!"));var r=e._id;return h(p,"- my_increment_node ("+r+")...."),0===e._fields_count?(h(p,"! my_increment_node() no need to increment... fields_count="+e._fields_count),e):Promise.resolve(e).then(re).then(function(e){return e._updated_node?ne.my_save_node(e):e}).then(function(e){return e._updated_node?ie(e):e}).then(function(e){return h(p,">> increment-node res=",f.json(e._updated_node)),e})}(e)}).then(fe).then(F)},s.do_delete=function(e,r){return V(e,r,"delete").then(X).then(_e).then(fe).then(F)},s.do_destroy=function(e,r){return V(e,r,"destroy").then(ae).then(fe).then(F)},s.do_search=function(e,r){return V(e,r,"search").then(ce).then(F)},s.on_records=function(e,r){return V(e,r,"on_records").then(me).then(F)},s.do_initialize=function(e,r){return V(e,r,"initialize").then(pe).then(F)},s.do_terminate=function(e,r){return V(e,r,"terminate").then(ve).then(F)},s.do_test_self=function(e,r){return V(e,r,"self-test").then(ye).then(F)},s.do_next_id=function(){return Y({_id:0}).then(function(e){return e._id})},s};
"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};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,m=e._,i=e.MS,d=e.DS,o=e.RS,u=e.ES;if(!f)throw new Error("$U is required!");if(!m)throw new Error("$U is required!");if(!i)throw new Error("$MS is required!");if(!d)throw new Error("$DS is required!");if(!o)throw new Error("$RS is required!");if(!u)throw new Error("$ES is required!");var h=e.log,_=e.inf,l=e.err,p=f.NS(n,"green"),s=t||{},a=function(e){throw new Error("NOT_IMPLEMENTED - "+p+":"+JSON.stringify(e))};s.do_prepare=a,s.do_create=a,s.do_clone=a,s.do_update=a,s.do_increment=a,s.do_read=a,s.do_delete=a,s.do_destroy=a,s.do_search=a,s.do_initialize=a,s.do_terminate=a,s.do_test_self=a,s.on_records=a,s.do_notify=a,s.do_subscribe=a,s.do_next_id=a,r.startsWith("_")||e(r,s);var c=function(e,r){return void 0===s[e]?r:s[e]},v=c("VERSION",1),E=c("REVISION",1),y=c("VERSION_NAME","V"),P=c("REVISION_NAME","R"),j=c("ID_INPUT","id"),w=c("ID_NAME","id"),g=c("ID_TYPE","test"),S=c("ID_NEXT",0),q=c("DYNA_TABLE","TestTable"),N=c("REDIS_PKEY","TPKEY"),R=c("FIELDS",null),b=c("DEFAULTS",null),T=c("CLONEABLE",!1),A=c("CLONED_ID","cloned"),O=c("PARENT_ID","parent"),D=c("PARENT_IMUT",!0),I=c("ES_INDEX","test-v1"),x=c("ES_TYPE","test"),W=c("ES_FIELDS",["updated_at","name"]),M=c("ES_MASTER",0),L=c("NS_NAME",""),$=require("dynamodb-value"),k=require("./notify-service")(e,"!"+L,{NS_NAME:L});s.do_notify=k.do_notify,s.do_subscribe=k.do_subscribe,T&&R&&(O&&R.indexOf(O)<0&&R.push(O),A&&R.indexOf(A)<0&&R.push(A));var U=[j,w,"created_at","updated_at","deleted_at",A];D&&O&&U.push(O);var V=function(e,r,t,n){t=t||"","object"===(void 0===(e=e||0)?"undefined":_typeof(e))?r=r?f.extend(e,r):e:(r=null==r?{}:"object"!==(void 0===r?"undefined":_typeof(r))||r instanceof Promise?{params:r}:f.copy(r),r=f.extend(r,{_id:e}));var i=r;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(p+"method-stack full. size:"+i._method_stack):f.promise(i);e=g.startsWith("#")?i._id||i[j]||"":f.N(i._id||i[j]||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=m.reduce(i,function(e,r,t){return t.startsWith("_")||t.startsWith("$")||0<=U.indexOf(t)||e._params_count++,e},i)),f.promise(i)},F=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=m.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=R?R.reduce(function(e,r){return void 0!==e[r]&&void 0!==t[r]&&(e[r]=t[r]),e},e):e),e},Y=function(r){var e=r._id;if(h(p,"- my_prepare_id("+g+", "+e+")...."),g.startsWith("#")){if(g&&g.startsWith("#")&&1<g.length&&0<S){var t=g.substring(1);return i.do_get_next_id(t).then(function(e){return h(p,"> created next-id["+t+"]=",e),r._id=e,r})}}else if(g&&!e)return i.do_get_next_id(g).then(function(e){return h(p,"> created next-id=",e),r._id=e,r});return h(p,"> prepared-id =",e),Promise.resolve(r)},z=function(t){if(!t._current_mode)throw new Error(p+"_current_mode is required!");var n=t._current_mode,i=b||{},o=0,e=t._node||{};return R?"prepare"===n||"create"===n||"clone"===n?e=R.reduce(function(e,r){return r===w||r===y||r===P||("prepare"===n?(void 0!==i[r]?e[r]=b[r]:void 0!==t[r]&&(e[r]=t[r]),y&&(e[y]=v),P&&(e[P]=0)):("create"===n&&P&&(e[P]=E-1),void 0!==t[r]&&(e[r]=t[r])),o++),e},e):"update"!==n&&"increment"!==n&&"read"!==n||(e=R.reduce(function(e,r){return r===w||void 0!==t[r]&&o++,e},e)):o=-1,t._fields_count=o,t._node=e,t},B=function(e,r){return e.created_at=0,e.updated_at=r,e.deleted_at=r,e},Q=function(e,r){return e.created_at=r,e.updated_at=r,e.deleted_at=0,e},H=function(r){if(!r._node)return Promise.reject(new Error(p+"_node is required!"));if(!r._current_time)return Promise.reject(new Error(p+"_current_time is required!"));var t=r._id,n=(r._node,r._current_time);return t?ue(r).catch(function(e){return l(p,"not found. err=",e),r}).then(function(e){var r=(e=z(e))._node||{};if(e._force_create)l(p,"WARN! _force_create is set!");else if(!r.deleted_at)return l(p,"INVALID STATE FOR PREPARED. ID=",t,", TIMES[CUD]=",[r.created_at,r.updated_at,r.deleted_at]),Promise.reject(new Error(p+"INVALID STATE."));return e[j]=e._id,r[w]=e._id,e._node=B(e._node,n),e}):(r=z(r),Y(r).then(function(e){var r=e._node||{};return e[j]=e._id,r[w]=e._id,e._node=B(r,n),e}))},C=function(e){if(!e._id)return Promise.reject(new Error(p+"_id is required!"));if(!e._node)return Promise.reject(new Error(p+"_node is required!"));if(!e._current_time)return Promise.reject(new Error(p+"_current_time is required!"));var t=e._id,r=e._node,n=e._current_time;return h(p,"> prepared-id =",t,", current-time =",n,", node =",f.json(r)),ue(e).then(function(e){var r=(e=z(e))._node||{};if(e._force_create)l(p,"WARN! _force_create is set!");else if(!r.deleted_at)return l(p,"INVALID STATE FOR CREATED. ID=",t,", TIMES[CUD]=",[r.created_at,r.updated_at,r.deleted_at]),Promise.reject(new Error(p+"INVALID STATE."));return e._node=Q(e._node,n),e})},J=function(e){if(!e._id)return Promise.reject(new Error(p+"_id is required!"));if(!e._node)return Promise.reject(new Error(p+"_node is required!"));if(!e._current_time)return Promise.reject(new Error(p+"_current_time is required!"));var r=e._id,t=e._node,n=e._current_time;return h(p,"> cloned-id =",r,", current-time =",n,", node =",f.json(t)),ue(e).then(function(e){return h(p,">> get-item-node old=",f.json(e._node)),(e=z(e))._node=Q(e._node,n),e})},K=function(e){if(!e._id)return Promise.reject(new Error(p+"_id is required!"));if(!e._node)return Promise.reject(new Error(p+"_node is required!"));if(!e._current_time)return Promise.reject(new Error(p+"_current_time is required!"));e._id,e._node;var n=e._current_time;return 0===(e=z(e))._fields_count?e:ue(e).then(function(e){var r,t;return e._node=(r=e._node,t=n,r.updated_at=t,r),e})},X=function(e){if(!e._id)return Promise.reject(new Error(p+"_id is required!"));if(!e._node)return Promise.reject(new Error(p+"_node is required!"));if(!e._current_time)return Promise.reject(new Error(p+"_current_time is required!"));var r=e._id,t=e._node,n=e._current_time;return h(p,"> deleted-id =",r,", current-time =",n,", node =",f.json(t)),ue(e).then(function(e){var r,t;return h(p,">> get-item-node old=",f.json(e._node)),(e=z(e))._node=(r=e._node,t=n,r.updated_at=t,r.deleted_at=t,r),e})},G=function(r){var e;if(!r._id)return Promise.reject(new Error(p+"_id is required!"));var t=r._id;h(p,"- dynamo:my_read_node ("+t+")....");var n=g.startsWith("#")?"String":"";return d.do_get_item(q,(e={},_defineProperty(e,w,t),_defineProperty(e,"idType",n),e)).then(function(e){return h(p,"> dynamo:get-item-node("+t+") res=",f.json(e)),r._node=e,r})},Z=function(r){if(!r._id)return Promise.reject(new Error(p+"_id is required!"));if(!r._node)return Promise.reject(new Error(p+"_node is required!"));var t=r._id,e=r._node,n={},i=0;for(var o in r)r.hasOwnProperty(o)&&(o=""+o)&&(o.startsWith("_")||o.startsWith("$")||0<=U.indexOf(o)||R&&R.indexOf(o)<0||o&&(n[o]=r[o],e[o]=r[o],i++));return n.updated_at=e.updated_at,r._updated_node=null,(r._updated_count=i)?(void 0!==e[P]&&(e[P]=f.N(e[P],0)+1),d.do_update_item(q,_defineProperty({},w,t),n,P?_defineProperty({},P,1):null).then(function(e){return r._updated_node=n,h(p,"> dynamo:updated-item("+t+") res=",f.json(e)),r})):R?r:Promise.reject(new Error(p+"nothing to update"))},ee=function(r){if(!r._id)return Promise.reject(new Error(p+"_id is required!"));if(!r._node)return Promise.reject(new Error(p+"_node is required!"));var t=r._id,e=r._node,n=r._current_mode||"",i=r._current_time;if(h(p,"- dynamo:my_save_node("+t+")...."),h(p,"> dynamo:node-id =",t,", current-time =",i,", node =",f.json(e)),"prepare"!==n)for(var o in r)r.hasOwnProperty(o)&&(o=""+o)&&(o.startsWith("_")||o.startsWith("$")||0<=U.indexOf(o)||R&&R.indexOf(o)<0||(e[o]=r[o]));return void 0!==e[P]&&(e[P]=f.N(e[P],0)+1),d.do_create_item(q,_defineProperty({},w,t),e).then(function(e){return h(p,"> dynamo:saved-item("+t+") res=",e),r})},re=function(r){if(!r._id)return Promise.reject(new Error(p+"_id is required!"));if(!r._node)return Promise.reject(new Error(p+"_node is required!"));var t=r._id,e=r._node,n={},i=0;for(var o in r)r.hasOwnProperty(o)&&((o=""+o).startsWith("_")||o.startsWith("$")||0<=U.indexOf(o)||R&&R.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,h(p,"> dynamo:increment-node =",n),r._updated_node=null,(r._updated_count=i)?(void 0!==e[P]&&(e[P]=f.N(e[P],0)+1),d.do_increment_item(q,_defineProperty({},w,t),n,P?_defineProperty({},P,1):null).then(function(e){return h(p,"> dynamo:updated-item("+t+") res=",f.json(e)),r._updated_node=n,r})):R?r:Promise.reject(new Error(p+"nothing to update"))},te=function(r){if(!r._id)return Promise.reject(new Error(p+"_id is required!"));var t=r._id;return d.do_delete_item(q,_defineProperty({},w,t)).then(function(e){return h(p,"> dynamo:deleted-item-node("+t+") res=",f.json(e)),r._node=e||{},r})},ne={my_read_node:function(r){if(!r._id)return Promise.reject(new Error(p+"_id is required!"));if(!N)return Promise.reject(r);var t=r._id;return o.do_get_item(N,t).then(function(e){return e?(r._node=e,r):Promise.reject(r)}).catch(function(e){throw e instanceof Error&&(l(p,"! redis:get-item("+N+", "+t+") err =",e.message||e),r._error=e),r})},my_save_node:function(r){if(!r._id)return Promise.reject(new Error(p+"_id is required!"));if(!r._node)return Promise.reject(new Error(p+"_node is required!"));if(!N)return Promise.resolve(r);var t=r._id,e=r._node;h(p,"- redis:my_save_node("+N+":"+t+"). node=",f.json(e));var n=ne.my_set_node_footprint(t,e);return n=n.then(function(){return o.do_create_item(N,t,e)}).then(function(e){return h(p,"> redis:save-item-node("+t+") res=",f.json(e)),r})},my_update_node:function(r){if(!r._id)return Promise.reject(new Error(p+"_id is required!"));if(!r._node)return Promise.reject(new Error(p+"_node is required!"));if(!N)return Promise.resolve(r);var t=r._id,e=r._node,n=ne.my_set_node_footprint(t,e);return n=n.then(function(){return o.do_update_item(N,t,e)}).then(function(e){return h(p,"> redis:update-item-node("+t+") res=",f.json(e)),r})},my_delete_node:function(r){if(!r._id)return Promise.reject(new Error(p+"_id is required!"));if(!N)return Promise.resolve(r);var t=r._id;return o.do_delete_item(N,t).then(function(e){return h(p,"> redis:delete-item-node("+t+") res=",f.json(e)),r})},my_set_node_footprint:function(r,e){if(!r)return Promise.reject(new Error(p+"id is required!"));if(!N)return Promise.resolve(0);e=e||{};var t=f.N(e.updated_at,0),n=f.hash(e);return o.do_create_item([N+"/UPDATED",N+"/HASH"],r,[t,n]).then(function(e){return h(p,"> redis:set node-footprint("+r+") res=",f.json(e)),e})},my_get_updated_at:function(e){return e?N?o.do_get_item(N+"/UPDATED",e).then(function(e){return e}):Promise.resolve(-1):Promise.reject(new Error(p+"id is required!"))},my_get_hash_value:function(e){return e?N?o.do_get_item(N+"/HASH",e).then(function(e){return e}):Promise.resolve(-1):Promise.reject(new Error(p+"id is required!"))}},ie=function(r){if(!r._id)return Promise.reject(new Error(p+"elasticsearch:_id is required!"));if(!r._node)return Promise.reject(new Error(p+"elasticsearch:_node is required!"));if(!I||!x)return r;var t=r._id,n=r._node;if(W){var e=m.reduce(W,function(e,r){return void 0!==n[r]&&(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),M?u.do_create_item(I,x,t,e).then(function(e){return h(p,"! elasticsearch:saved-item("+t+") res=",f.json(e)),r}):u.do_update_item(I,x,t,e).then(function(e){return h(p,"! elasticsearch:updated-item("+t+") res=",f.json(e)),r})):(h(p,"! elasticsearch:WARN! nothing to update ("+t+")...."),r)}return u.do_create_item(I,x,t,n).then(function(e){return h(p,"! elasticsearch:saved-item2("+t+") res=",f.json(e)),r})},oe=function(r){if(!r._id)return Promise.reject(new Error(p+"elasticsearch:_id is required!"));if(!I||!x)return r;var t=r._id;return W&&!M?(h(p,"! elasticsearch:WARN! ignore delete ("+t+")...."),r):u.do_delete_item(I,x,t).then(function(e){return h(p,"! elasticsearch:deleted-item("+t+") res=",f.json(e)),r})},de=function(i){if(!I||!x)return i;if(h(p,"- elasticsearch:do_search_item()...."),W&&!M)return h(p,"! elasticsearch:WARN! ignore search ()...."),i;var o={$page:0,$limit:0};return o.$page=f.N(i.page||0),o.$limit=f.N(i.ipp||10),o.deleted_at="0",i.$source&&(o.$source=i.$source),i.Q&&(o.$Q=i.Q),i.A&&(o.$A=i.A),i.O&&(o.$O=i.O),o.$O=o.$O||(g.startsWith("#")?"id.keyword":"id"),W&&W.forEach(function(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])}),u.do_search_item(I,x,o).then(function(e){var r=e&&e.hits||{},t=r.hits||[],n=r;return i.list=t.map(function(e){return f.extend({_score:e._score},e._source)}),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 l(p,"!ERR =",e),e})},ue=function(e){if(!e._id)return Promise.reject(new Error(p+"_id is required!"));e._id;return Promise.resolve(e).then(ne.my_read_node).catch(function(e){return G(e).then(function(e){return void 0===(e._node||{})[w]?Promise.reject(new Error(p+"404 NOT FOUND. "+q+".id:"+(e._id||""))):e}).then(ne.my_save_node)})},_e=function(e){if(!e._id)return Promise.reject(new Error(p+"_id is required!"));if(!e._node)return Promise.reject(new Error(p+"_node is required!"));e._id;return Promise.resolve(e).then(ee).then(ne.my_save_node).then(ie).then(function(e){return e})},se=function(e){if(!e._id)return Promise.reject(new Error(p+"_id is required!"));if(!e._node)return Promise.reject(new Error(p+"_node is required!"));if(!e._current_time)return Promise.reject(new Error(p+"_current_time is required!"));var r=e._id;return h(p,"- my_clone_node ("+r+")...."),Promise.resolve(e).then(function(n){if(!T)return n;var e=n._id,i=void 0!==n[O]?f.N(n[O],0):e,o=e;return Y({_id:0}).then(function(e){var r=e._id,t=n._node||{};return t[w]=r,O&&(t[O]=i),A&&(t[A]=o),O&&(n[O]=i),A&&(n[A]=o),n._clone_id=r,n._node=t,n})}).then(function(e){if(!e._id)return Promise.reject(new Error(p+"_id is required!"));if(!e._node)return Promise.reject(new Error(p+"_node is required!"));if(!e._clone_id)return Promise.reject(new Error(p+"_clone_id is required!"));var r=e._id;return e._id=e._clone_id,m.reduce(e,function(e,r,t){return t&&(t.startsWith("_")||t.startsWith("$")||0<=U.indexOf(t)||void 0!==e[t]&&(e[t]=r)),e},e._node),h(p,">> before save-node().. that._node =",f.json(e._node)),_e(e).then(function(){return e._id=r,e})}).then(function(e){return h(p,">> cloned-node["+e._id+" -> "+e._clone_id+"] res=",f.json(e._node)),e})},ae=function(e){if(!e._id)return Promise.reject(new Error(p+"_id is required!"));var r=e._id;return h(p,"- my_delete_node ("+r+")...."),Promise.resolve(e).then(te).then(ne.my_delete_node).then(oe).then(function(e){return h(p,">> deleted-node res=",f.json(e._node)),e})},ce=function(e){return h(p,"- my_search_node ()...."),Promise.resolve(e).then(de).then(function(e){return e})},fe=function(e){if(!e)return e;if(!e._id)return Promise.reject(new Error(p+"_id is required!"));e._id;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=L+":event:"+n;return h(p,">>> notify event-id:",t,", notifiable=",e),le(t,r).then(function(e){return r})}return r})},me=function(r){if(!r.records)return Promise.reject(new Error(p+"records is required!"));var e=r.records.slice(0);if(h(p,"- my_event_records().... records.len=",e.length),!e.length)return r;var t,n,i;return(t=e,n=he,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 l(p,"error ignored! =",e),r}).then(function(){return r})},he=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(h(p,"--- process-record("+o+") ... "),q!==o)return h(p,"! ignore record-table: "+q+" != "+o+" "),e;var t=e.dynamodb.Keys?$.toJavascript(e.dynamodb.Keys):{},d=e.dynamodb.NewImage?$.toJavascript(e.dynamodb.NewImage):null,n=e.dynamodb.OldImage?$.toJavascript(e.dynamodb.OldImage):null,u=t[w],_="MODIFY"===i?f.diff(n,d):null,s=f.N(d&&d.updated_at||0),a=_?m.reduce(_,function(e,r){return e[r]=n[r],e},{}):null,c={_id:u,_node:d,_updated_at:s,_diff:_,_prev:a};switch(r=Promise.resolve(c),_&&h(p,">> "+o+".different["+u+"]=",f.json(_)),i){case"INSERT":case"MODIFY":r=r.then(function(t){var n=t._id;return ne.my_get_updated_at(n).then(function(e){if(l(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 ne.my_get_hash_value(n).then(function(e){return e&&e===r?(h(p,"! WARN! ignored due to hash-value matching =",e),t):(h(p,"! INFO! node was updated. hash :=",r,"<-",e),ne.my_save_node(t).then(ie))})}return h(p,"! ignored due to old-record"),t})});break;case"REMOVE":h(p,">> removed!"),r=(r=r.then(ne.my_delete_node)).then(oe)}}else e.Sns&&(h(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=L+":record:"+e;return h(p,">>> notify event-id:",n,", notifiable=",t),le(n,r).then(function(e){return r})}return r}).then(function(){return e}):Promise.reject(new Error("invalid chain!"))},le=function(e,r){return k.do_notify(e,r)},pe=function(r){var e=[];if(q){var t=g.startsWith("#")?"S":"N";e.push(Promise.resolve("DynamoDb").then(function(e){return h(p,"# initialize ",e),d.do_create_table(q,w,t).then(function(e){return e.TableDescription.TableName===q})}).catch(function(e){if("ResourceInUseException"===e.code)return!1;throw e}))}else h(p,"DS: WARN! ignored configuration. DYNA_TABLE=",q);if(g&&!g.startsWith("#")?e.push(Promise.resolve("MySQL").then(function(e){return h(p,"# initialize MySQL (Sequence) "),i.do_create_id_seq(g,S).then(function(e){return h(p,"> create-id-seq res=",e),!0})}).catch(function(e){if("ER_TABLE_EXISTS_ERROR"===e.code)return!1;throw e})):g&&g.startsWith("#")&&1<g.length&&0<S?e.push(Promise.resolve("MySQL").then(function(e){h(p,"# initialize MySQL (Sequence) ");var r=g.substring(1);return i.do_create_id_seq(r,S).then(function(e){return h(p,"> create-id-seq["+r+"] res=",e),!0})}).catch(function(e){if("ER_TABLE_EXISTS_ERROR"===e.code)return!1;throw e})):h(p,"MS: WARN! ignored configuration. ID_TYPE=",g),I&&x&&W){var n={mappings:{_default_:{dynamic_templates:[{string_fields:{match:"*_multi",match_mapping_type:"string",mapping:{type:"multi_field",fields:{"{name}":{type:"string",index:"analyzed",omit_norms:!0,index_options:"docs"},"{name}.raw":{type:"string",index:"not_analyzed",ignore_above:256}}}}}],properties:{title:{type:"text"},name:{type:"text"},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"}}}}};e.push(Promise.resolve("ElasticSearch").then(function(e){return h(p,"# initialize ElasticSearch (Type) ",x),u.do_create_index_type(I,x,n).then(function(e){return h(p,"> create-es-index res=",e),!0})}).catch(function(e){if(l(p,"> create-es-index error=",e),"index_already_exists_exception"===e.type)return!0;throw e}).then(function(e){return e}))}else h(p,"MS: WARN! ignored configuration. ES_TYPE=",x);return Promise.all(e).then(function(e){return h(p,">> results=",e),r._result=e,r})},ve=function(r){var e=[];if(q&&(h(p,"# terminate DynamoDB"),e.push(d.do_delete_table(q).then(function(e){return e.TableDescription.TableName===q}).catch(function(e){if("ResourceNotFoundException"===e.code)return!0;throw e}))),g&&!g.startsWith("#"))h(p,"# terminate MySQL (Sequence) "),e.push(i.do_delete_id_seq(g).then(function(e){return h(p,"> delete-id-seq res=",e),!0}).catch(function(e){if("ER_BAD_TABLE_ERROR"===e.code)return!0;throw e}));else if(g&&g.startsWith("#")&&1<g.length&&0<S){h(p,"# terminate MySQL (Sequence) ");var t=g.substring(1);e.push(i.do_delete_id_seq(t).then(function(e){return h(p,"> delete-id-seq["+t+"] res=",e),!0}).catch(function(e){if("ER_BAD_TABLE_ERROR"===e.code)return!0;throw e}))}else h(p,"# ignored MySQL (Sequence) ");return I&&x?(h(p,"# terminate ES (Index) "),e.push(u.do_delete_index_type(I,null).then(function(e){return h(p,"> delete-es-index res=",e),!0}).catch(function(e){throw l(p,"> create-es-index error=",e),e}))):h(p,"# ignored ES (Index) "),Promise.all(e).then(function(e){return h(p,">> results=",e),r._result=e,r})},Ee=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",h(p,"# node1 =",f.json(r)),h(p,"> node2 =",f.json(t)),h(p,"> node3 =",f.json(n)),h(p,"# node1.sorted =",f.json(r,!0)),h(p,"> node2.sorted =",f.json(t,!0)),h(p,"> node3.sorted =",f.json(n,!0)),h(p,"# hash1 =",f.hash(1)),h(p,"> node1 =",f.hash(r)),h(p,"> node2 =",f.hash(t)),h(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 h(p,"> read-back data=",e),e})}).then(function(){return ne.my_set_node_footprint(1,i)}).then(function(){return ne.my_get_updated_at(1).then(function(e){return h(p,"> updated-at value=",void 0===e?"undefined":_typeof(e),":",e),e})}).then(function(){return ne.my_get_hash_value(1).then(function(e){return h(p,"> hash-value value=",void 0===e?"undefined":_typeof(e),":",e),e})})},ye=function(r){return h(p,"- my_test_self()...."),Promise.resolve(r).then(Ee).then(function(e){return e||r})};return s.do_prepare_chain=function(e,r,t,n){return V(e,r,t,n)},s.do_finish_chain=function(e,r,t,n){return F(e)},s.do_prepare=function(e,r){return V(e,r,"prepare").then(H).then(_e).then(fe).then(F)},s.do_create=function(t,n){return V(t,n,"create").then(C).catch(function(e){l(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 _(p,"WARN! AUTO TRY TO PREPARE NODE. ID="+t),V(t,n,"create").then(function(e){var r=e._current_time;return e=z(e),h(p,">> prepared old-node=",f.json(e._node)),e._node=Q(e._node,r),e});throw e}).then(_e).then(fe).then(F)},s.do_clone=function(e,r){return V(e,r,"clone").then(J).then(se).then(fe).then(F)},s.do_read=function(e,r){return V(e,r,"read").then(z).then(function(e){return 0!==e._params_count&&0===e._fields_count?e:ue(e)}).then(fe).then(F)},s.do_update=function(e,r){return V(e,r,"update").then(K).then(function(e){return 0===e._fields_count?e:function(t){if(!t._id)return Promise.reject(new Error(p+"_id is required!"));var e=t._id;return h(p,"- my_update_node ("+e+")...."),0===t._fields_count?(h(p,"! my_update_node() no need to update... fields_count="+t._fields_count),t):Promise.resolve(t).then(Z).then(function(e){return e._updated_node?ne.my_save_node(e):e}).then(function(e){return e._updated_node?ie(e):e}).then(function(e){return h(p,">> updated-node res=",f.json(e._updated_node)),e}).catch(function(e){var r=e&&e.message||"";if(l(p,">> updated-node err=",r),0<r.indexOf("an attribute that does not exist in the item"))return _e(t);throw e})}(e)}).then(fe).then(F)},s.do_increment=function(e,r){return V(e,r,"increment").then(K).then(function(e){return 0===e._fields_count?e:function(e){if(!e._id)return Promise.reject(new Error(p+"_id is required!"));var r=e._id;return h(p,"- my_increment_node ("+r+")...."),0===e._fields_count?(h(p,"! my_increment_node() no need to increment... fields_count="+e._fields_count),e):Promise.resolve(e).then(re).then(function(e){return e._updated_node?ne.my_save_node(e):e}).then(function(e){return e._updated_node?ie(e):e}).then(function(e){return h(p,">> increment-node res=",f.json(e._updated_node)),e})}(e)}).then(fe).then(F)},s.do_delete=function(e,r){return V(e,r,"delete").then(X).then(_e).then(fe).then(F)},s.do_destroy=function(e,r){return V(e,r,"destroy").then(ae).then(fe).then(F)},s.do_search=function(e,r){return V(e,r,"search").then(ce).then(F)},s.on_records=function(e,r){return V(e,r,"on_records").then(me).then(F)},s.do_initialize=function(e,r){return V(e,r,"initialize").then(pe).then(F)},s.do_terminate=function(e,r){return V(e,r,"terminate").then(ve).then(F)},s.do_test_self=function(e,r){return V(e,r,"self-test").then(ye).then(F)},s.do_next_id=function(){return Y({_id:0}).then(function(e){return e._id})},s};
{
"name": "lemoncloud-engine-js",
"version": "0.3.7",
"version": "0.3.8",
"description": "lemoncloud.io - core engine module with user/group/chat service.",

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

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

|-- |--
| 0.3.8 | minor fix for log of redis:my_save_node
| 0.3.7 | mysql id-generator configuration (see `$LEM.do_next_id()`).

@@ -87,0 +88,0 @@ | 0.3.6 | fix ElasticSearch create index error due to 'string'.

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