@sassoftware/restafedit
Version:
Library for data editing in SAS Viya
1 lines • 476 kB
JavaScript
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define("restafedit",[],e):"object"==typeof exports?exports.restafedit=e():t.restafedit=e()}(window,(function(){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=2)}([function(t,e,n){window,t.exports=function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=5)}([function(t,e,n){var r=n(6)();t.exports=r;try{regeneratorRuntime=r}catch(t){"object"==typeof globalThis?globalThis.regeneratorRuntime=r:Function("r","regeneratorRuntime = r")(r)}},function(t,e){function n(t,e,n,r,o,i,a){try{var s=t[i](a),u=s.value}catch(t){return void n(t)}s.done?e(u):Promise.resolve(u).then(r,o)}t.exports=function(t){return function(){var e=this,r=arguments;return new Promise((function(o,i){var a=t.apply(e,r);function s(t){n(a,o,i,s,u,"next",t)}function u(t){n(a,o,i,s,u,"throw",t)}s(void 0)}))}},t.exports.__esModule=!0,t.exports.default=t.exports},function(t,e){function n(e){return t.exports=n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t.exports.__esModule=!0,t.exports.default=t.exports,n(e)}t.exports=n,t.exports.__esModule=!0,t.exports.default=t.exports},function(t,e,n){var r=n(7);t.exports=function(t,e,n){return(e=r(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t},t.exports.__esModule=!0,t.exports.default=t.exports},function(t,e){t.exports=function(){return"\n result = runMain(_args_); \n send_response(result); \n /* print result; */\n \n \n function runMain(_args_) ; \n r = {Error= 'No path'}; \n if ( _args_.path eq '/selectors') then do; \n r = selectionLists(_args_.selectors, _args_.table.caslib, _args_.table.name); \n end; \n else if ( _args_.path eq '/contents') then do; \n r = contents(_args_.table.caslib, _args_.table.name); \n end; \n else if (_args_.path eq '/describe') then do; \n r = describeModel(_args_); \n end; \n else if (_args_.path eq '/scenario' ) then do;\n r = fetchData(_args_.filter, _args_.table);\n end;\n else if (_args_.path eq '/score') then do; \n if( exists(_args_, 'modelName') eq false ) then\n modelname = '';\n else modelName =_args_.modelName;\n r = runScoreCode(_args_.model, _args_.scenario, modelName); \n end; \n else do; \n r = {icasResults={Errors = 'Invalid action option specified' || _args_.path}, statusCode=404}; \n end; \n print r;\n if ( r.statusCode ne 0) then do;\n print r.icasResults;\n exit({severity=2,reason=6, status=r.iCasResults.Errors,statusCode=r.statusCode});\n end;\n result = {casResults = r.icasResults}; \n print '***************************************************************'; \n print result; \n print '***************************************************************'; \n return result; \n end; \n \n /*-----------------------------------------*/ \n /* describeModel */ \n /*-----------------------------------------*/ \n \n function describeModel(_args_) ; \n s = checkAndLoadTable(_args_.model.caslib, _args_.model.name); \n if ( s ne true) then do; \n results = {Errors= 'Unable to access ' ||_args_.model.caslib||'.'||_args_.model.name}; \n return {icasResults=results, statusCode=404}; \n end; \n \n mtype = isModel(_args_.model.caslib, _args_.model.name); \n if ( mtype EQ 'astore' ) then do; \n r = astoreDescribe(_args_.model); \n end; \n else if (mtype EQ 'ds' or mtype EQ 'ds2') then do;\n s = checkAndLoadTable(_args_.table.caslib, _args_.table.name); \n if ( s ne true ) then do; \n results = {Errors= 'Unable to access ' ||_args_.table.caslib||'.'||_args_.table.name}; \n return {icasResults=results, statusCode=404}; \n end; \n r = contents( _args_.table.caslib, _args_.table.name); \n end; \n return {icasResults= r, statusCode=0} ;\n end; \n \n /*------------------------------------------*/ \n /* astoreDescribe */ \n /*------------------------------------------*/ \n \n function astoreDescribe(model); \n action astore.describe r=result/ \n rstore = { caslib= model.caslib name = model.name }; \n rows = resultsToDict(result.InputVariables); \n return {describe = rows, table = result.InputVariables}; \n end; \n \n /*------------------------------------------*/ \n /* score */ \n /*------------------------------------------*/ \n function runScoreCode( model, scenario, modelName); \n print model; \n s = checkAndLoadTable(model.caslib, model.name); \n if ( s ne true ) then do; \n results = {Errors= 'Unable to access ' ||model.caslib||'.'||model.name}; \n return {icasResults=results, statusCode=404}; \n end;\n \n mtype = isModel(model.caslib, model.name); \n \n if ( mtype eq 'bad' ) then do; \n results = {Error= model.caslib||'.'||model.name || ' is not recognized as a valid supported model. Please check your values'};\n return {icasResults=results, statusCode=400};\n end; \n destroyTable('casuser', 'input'); \n argsToTable(scenario, 'casuser', 'input'); \n \n destroyTable('casuser', 'output'); \n \n if (mtype eq 'astore') then do; \n print 'Scoring with astore'; \n action astore.score r = result/ \n rstore = {caslib=model.caslib name=model.name} \n out = {caslib='casuser' name='output'} \n table = {caslib='casuser' name='input'}; \n end; \n else if (mtype eq 'ds') then do; \n print 'scoring with datastep code'; \n action datastep.runcodetable r = result/ \n single='YES' \n codeTable= {caslib=model.caslib name=model.name} \n casout = {caslib='casuser' name='output'} \n table = {caslib='casuser' name='input'}; \n end; \n else if (mtype eq 'ds2' ) then do; \n print 'Scoring with d2'; \n if ( missing(modelName) eq true) then do;\n results = {Error= 'modelName is missing. Please check your values'};\n return {icasResults=results, statusCode=400};\n end;\n\n action ds2.runModel r = result/ \n modelTable = {caslib=model.caslib, name=model.name} \n modelName = modelName \n table = {caslib= 'casuser', name='input'} \n casOut = {caslib= 'casuser' name='output'}; \n end; \n \n \n action table.fetch r = result / \n table={caslib='casuser' name='output'}; \n \n rows = resultsToDict(result.Fetch); \n \n return {icasResults= rows, statusCode=0} ;\n end; \n \n \n "}},function(t,e,n){t.exports=n(9)},function(t,e,n){var r=n(2).default;function o(){"use strict";/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */t.exports=o=function(){return n},t.exports.__esModule=!0,t.exports.default=t.exports;var e,n={},i=Object.prototype,a=i.hasOwnProperty,s=Object.defineProperty||function(t,e,n){t[e]=n.value},u="function"==typeof Symbol?Symbol:{},c=u.iterator||"@@iterator",l=u.asyncIterator||"@@asyncIterator",f=u.toStringTag||"@@toStringTag";function p(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{p({},"")}catch(e){p=function(t,e,n){return t[e]=n}}function h(t,e,n,r){var o=e&&e.prototype instanceof b?e:b,i=Object.create(o.prototype),a=new R(r||[]);return s(i,"_invoke",{value:k(t,n,a)}),i}function d(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}n.wrap=h;var y="suspendedStart",v="executing",m="completed",g={};function b(){}function _(){}function w(){}var O={};p(O,c,(function(){return this}));var S=Object.getPrototypeOf,x=S&&S(S(I([])));x&&x!==i&&a.call(x,c)&&(O=x);var j=w.prototype=b.prototype=Object.create(O);function E(t){["next","throw","return"].forEach((function(e){p(t,e,(function(t){return this._invoke(e,t)}))}))}function A(t,e){function n(o,i,s,u){var c=d(t[o],t,i);if("throw"!==c.type){var l=c.arg,f=l.value;return f&&"object"==r(f)&&a.call(f,"__await")?e.resolve(f.__await).then((function(t){n("next",t,s,u)}),(function(t){n("throw",t,s,u)})):e.resolve(f).then((function(t){l.value=t,s(l)}),(function(t){return n("throw",t,s,u)}))}u(c.arg)}var o;s(this,"_invoke",{value:function(t,r){function i(){return new e((function(e,o){n(t,r,e,o)}))}return o=o?o.then(i,i):i()}})}function k(t,n,r){var o=y;return function(i,a){if(o===v)throw new Error("Generator is already running");if(o===m){if("throw"===i)throw a;return{value:e,done:!0}}for(r.method=i,r.arg=a;;){var s=r.delegate;if(s){var u=C(s,r);if(u){if(u===g)continue;return u}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(o===y)throw o=m,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);o=v;var c=d(t,n,r);if("normal"===c.type){if(o=r.done?m:"suspendedYield",c.arg===g)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(o=m,r.method="throw",r.arg=c.arg)}}}function C(t,n){var r=n.method,o=t.iterator[r];if(o===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,C(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),g;var i=d(o,t.iterator,n.arg);if("throw"===i.type)return n.method="throw",n.arg=i.arg,n.delegate=null,g;var a=i.arg;return a?a.done?(n[t.resultName]=a.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,g):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,g)}function T(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function P(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function R(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(T,this),this.reset(!0)}function I(t){if(t||""===t){var n=t[c];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,i=function n(){for(;++o<t.length;)if(a.call(t,o))return n.value=t[o],n.done=!1,n;return n.value=e,n.done=!0,n};return i.next=i}}throw new TypeError(r(t)+" is not iterable")}return _.prototype=w,s(j,"constructor",{value:w,configurable:!0}),s(w,"constructor",{value:_,configurable:!0}),_.displayName=p(w,f,"GeneratorFunction"),n.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===_||"GeneratorFunction"===(e.displayName||e.name))},n.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,w):(t.__proto__=w,p(t,f,"GeneratorFunction")),t.prototype=Object.create(j),t},n.awrap=function(t){return{__await:t}},E(A.prototype),p(A.prototype,l,(function(){return this})),n.AsyncIterator=A,n.async=function(t,e,r,o,i){void 0===i&&(i=Promise);var a=new A(h(t,e,r,o),i);return n.isGeneratorFunction(e)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},E(j),p(j,f,"Generator"),p(j,c,(function(){return this})),p(j,"toString",(function(){return"[object Generator]"})),n.keys=function(t){var e=Object(t),n=[];for(var r in e)n.push(r);return n.reverse(),function t(){for(;n.length;){var r=n.pop();if(r in e)return t.value=r,t.done=!1,t}return t.done=!0,t}},n.values=I,R.prototype={constructor:R,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(P),!t)for(var n in this)"t"===n.charAt(0)&&a.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function r(r,o){return s.type="throw",s.arg=t,n.next=r,o&&(n.method="next",n.arg=e),!!o}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],s=i.completion;if("root"===i.tryLoc)return r("end");if(i.tryLoc<=this.prev){var u=a.call(i,"catchLoc"),c=a.call(i,"finallyLoc");if(u&&c){if(this.prev<i.catchLoc)return r(i.catchLoc,!0);if(this.prev<i.finallyLoc)return r(i.finallyLoc)}else if(u){if(this.prev<i.catchLoc)return r(i.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return r(i.finallyLoc)}}}},abrupt:function(t,e){for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&a.call(r,"finallyLoc")&&this.prev<r.finallyLoc){var o=r;break}}o&&("break"===t||"continue"===t)&&o.tryLoc<=e&&e<=o.finallyLoc&&(o=null);var i=o?o.completion:{};return i.type=t,i.arg=e,o?(this.method="next",this.next=o.finallyLoc,g):this.complete(i)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),g},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),P(n),g}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var o=r.arg;P(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:I(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),g}},n}t.exports=o,t.exports.__esModule=!0,t.exports.default=t.exports},function(t,e,n){var r=n(2).default,o=n(8);t.exports=function(t){var e=o(t,"string");return"symbol"===r(e)?e:String(e)},t.exports.__esModule=!0,t.exports.default=t.exports},function(t,e,n){var r=n(2).default;t.exports=function(t,e){if("object"!==r(t)||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var o=n.call(t,e||"default");if("object"!==r(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)},t.exports.__esModule=!0,t.exports.default=t.exports},function(t,e,n){"use strict";n.r(e),n.d(e,"caslRun",(function(){return g})),n.d(e,"caslRunBase",(function(){return h})),n.d(e,"casSetup",(function(){return T})),n.d(e,"casActionRun",(function(){return R})),n.d(e,"casTableToJson",(function(){return $})),n.d(e,"casFetchData",(function(){return L})),n.d(e,"casFetchRows",(function(){return M})),n.d(e,"casAppendTable",(function(){return H})),n.d(e,"casUpdateData",(function(){return B})),n.d(e,"casSaveTable",(function(){return F})),n.d(e,"casLoadTable",(function(){return G})),n.d(e,"computeRun",(function(){return rt})),n.d(e,"computeSetup",(function(){return it})),n.d(e,"computeSummary",(function(){return Z})),n.d(e,"computeSetupTables",(function(){return ct})),n.d(e,"computeFetchData",(function(){return dt})),n.d(e,"computeFileContent",(function(){return vt})),n.d(e,"computeResults",(function(){return st})),n.d(e,"computeAppendTable",(function(){return gt})),n.d(e,"computeUpdateData",(function(){return wt})),n.d(e,"computeUpload",(function(){return St})),n.d(e,"findReport",(function(){return jt})),n.d(e,"getReportImage",(function(){return At})),n.d(e,"getReportUri",(function(){return Ct})),n.d(e,"getSasTableRows",(function(){return Pt})),n.d(e,"jesSetup",(function(){return It})),n.d(e,"jesRun",(function(){return zt})),n.d(e,"jesSummary",(function(){return Dt})),n.d(e,"jsonToDict",(function(){return f})),n.d(e,"caslScore",(function(){return x})),n.d(e,"caslDescribe",(function(){return k})),n.d(e,"masSetup",(function(){return Gt})),n.d(e,"masAddModel",(function(){return Wt})),n.d(e,"masDescribe",(function(){return Vt})),n.d(e,"masRun",(function(){return Yt})),n.d(e,"masScore",(function(){return Xt})),n.d(e,"lib",(function(){return Zt}));var r=n(1),o=n.n(r),i=n(0),a=n.n(i),s=n(2),u=n.n(s);function c(t){var e="{ ",n=" ";for(var r in t){if(!0===Array.isArray(t[r])){var o=l(t[r]);e=e+n+"".concat(r,"=")+o}else{var i=u()(t[r]);if("object"===i){var a=c(t[r]);e=e+n+"".concat(r,"=")+a}else e=e+n+"".concat(r,"=")+("string"===i?' "'.concat(t[r],'" '):"".concat(t[r]," "))}n=","}return e+"} "}function l(t){for(var e="{",n=" ",r=t.length,o=0;o<r;o++)if(!0===Array.isArray(t[o])){var i=l(t[o]);e=e+n+"".concat(o,"=")+i}else{var a=u()(t[o]);e="object"===a?e+n+c(t[o]):e+n+("string"===a?' "'.concat(t[o],'" '):"".concat(t[o]," ")),n=","}return e+"}"}var f=function(t,e){var n;return n=null===t?"{}":!0===Array.isArray(t)?l(t):c(t),"".concat(e," = ").concat(n,";")};function p(){return(p=o()(a.a.mark((function t(e,n,r,o){var i,s,u,c,l,p,h,d=arguments;return a.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:for(i=f(null!==o?o:{},"_args_"),s=(s=i+" "+r).replace(/\r?\n|\r/g,""),u={action:"sccasl.runcasl",data:{code:s}},c=d.length,l=new Array(c>4?c-4:0),p=4;p<c;p++)l[p-4]=d[p];return t.next=7,e.runAction.apply(e,[n,u].concat(l));case 7:return h=t.sent,t.abrupt("return",h);case 9:case"end":return t.stop()}}),t)})))).apply(this,arguments)}var h=function(t,e,n,r){return p.apply(this,arguments)},d=n(4),y=function(){return"\n print _args_;\n\n results = casFetchRows(_args_.table.caslib, _args_.table.name , _args_.start + 1, _args_.limit, _args_.format, _args_.where); \n send_response({casResults = results}); \n \n function casFetchRows(caslib, name, from, count, format, where) ; \n \n rc = checkAndLoadTable(caslib, name);\n \n if (rc ne true) then do;\n text = 'Unable to access ' ||caslib||'.'||name; \n rx = {severity=2,reason=6, status='error',statusCode=2, formatted=text};\n exit(rx); \n end; \n\n /*\n * get tableoinfo to get rowCount\n */\n\n action table.tableinfo r= result/ \n caslib = caslib \n name = name; \n \n rowCount = result.TableInfo[1, 'rows'];\n to = from + count - 1;\n\n \n /*\n * get column information\n */\n\n action table.columninfo r=infoResult /\n table = {caslib=caslib name=name};\n\n columns ={{Column='_Index_',ID=0,Type='double',RawLength=5,FormattedLength=5,NFL=0,NFD=0}};\n i = 2;\n do c over inforesult.columninfo;\n columns[i] = c;\n i = i + 1;\n end;\n \n /*\n * Fetch the current set of rows\n */\n\n rows = {};\n if (from <= rowCount) then do;\n action table.fetch r = result status=rcx/ \n table = {caslib=caslib, name=name where=where} \n from= from to=to format=format sastypes=true\n ;\n if (rcx.severity eq 2) then do;\n exit(rcx);\n end;\n /* \n * create payload to return\n */\n\n i = 1;\n rows ={};\n do row over result.fetch;\n rr = {};\n j = 1;\n do key,v over row;\n rr[j] = override(columns[j].Type, v);\n j = j + 1;\n end;\n rows[i] = rr;\n i = i + 1;\n end;\n end;\n\n currentCount = DIM(rows);\n pagination = {}; \n table = {caslib=caslib, name=name};\n\n pagination = setPagination(from, count, format, where, currentCount, rowCount, table);\n \n lastRequest={start=from-1, limit=count, format=format, currentCount=currentCount, \n rowCount=rowCount, where=where, table=table, version='3'};\n scrollOptions = getKeys(pagination);\n return( \n {pagination = pagination, data = {schema=columns, rows=rows , scrollOptions=scrollOptions}, lasRequest=lastRequest}\n );\n end; \n \n \n /*\n * For non-primary column types set new content\n */\n\n function setPagination(from, count, format, where, currentCount, rowCount, table);\n\n\n prevStart = max(from - count - 1, 0);\n\n if (currentCount lt count) then do; \n pagination.prev = {start=prevStart, limit=count, format=format, where=' ', table=table};\n if (prevStart ne 0) then do;\n pagination.first = {start=0, limit=count, format=format, where=' ', table=table};\n end; \n return pagination;\n end;\n currentStart = from -1;\n if (currentStart eq 0) then do;\n pagination.next = {start=count, limit=count, format=format, where=' ', table=table};\n return pagination;\n end;\n\n nextStart = currentStart + count;\n pagination.next = {start=nextStart, limit=count, format=format, where=' ', table=table};\n pagination.prev = {start=prevStart, limit=count, format=format, where=' ', table=table};\n if (prevStart ne 0) then do;\n pagination.first = {start=0, limit=count, format=format, where=' ', table=table};\n end; \n return pagination;\n end;\n\n\n\n\n function override(type, iv);\n if (type EQ 'varbinary') then v = '...varbinary';\n else if (type EQ 'blob') then v = '...blob';\n else if (type EQ 'table') then v = '...table';\n else if (type EQ 'dictionary') then v = '...dictionary';\n else if (type EQ 'list') then v = '...list';\n else if (type EQ 'isArray') then v = '...array';\n else v = iv;\n return v;\n end;\n\n \n "},v={commonCasl:function(){return"\n function checkAndLoadTable(caslib, name); \n \n /* verify caslib is there */\n table.queryCaslib status=status result=result/\n caslib = caslib;\n do k,v over result; /* to handle casuser[user] */ \n rc = v;\n end;\n if ( rc eq false ) then \n return -1;\n /* \n * Check to see if table is already loaded \n */ \n action table.tableExists r=result/ \n caslib = caslib \n name = name; \n /* \n * if not loaded then try to load it \n */ \n rc = true;\n if (result.exists eq 0 or result.exists eq 2) then do; \n path = lookupPath(caslib, name);\n if (path eq '*') then do;\n rc = false;\n end;\n else do;\n action table.loadTable status=status/ \n caslib = caslib \n source = path \n casout={caslib= caslib name=name}; \n if (status.statusCode ne 0 ) then rc = false;\n end; \n end; \n return rc; \n end; \n \n function saveAndLoadTable(caslib, source, targetlib, targetname,promote);\n \n /* load source */\n r = checkAndLoadTable(caslib, source);\n \n sashdat = target||\".sashdat\";\n table.save /\n caslib= targetlib name=sashdat\n table = {caslib=caslib name=source} replace=true;\n \n table.droptable /\n caslib=targetlib name=target quiet=true;\n \n table.loadtable result=r status=rc/\n caslib=targetlib casout={caslib=targetlib name=target replace=TRUE}\n path=sashdat;\n \n if (promote eq true) then do;\n table.promote result=r status=rc/\n caslib=caslib name=target quiet=true\n targetLib=caslib target=target;\n end;\n if (rc.severity eq 2) then do;\n print rc;\n print 'Ignoring error';\n end;\n r = 0;\n return r;\n \n end;\n \n function lookupPath(caslib, name ) ; \n table.fileInfo r = result/\n caslib=caslib; \n \n names = result.fileInfo[,4]; \n nameu = upcase(name)||'.SASHDAT'; \n cpath = '*'; \n count = 0; \n \n do n over names; \n if (upcase(n) eq nameu) then do; \n count = count + 1; \n if ( cpath eq '*') then do; \n cpath = n; \n end; \n end; \n end; \n \n if (count GT 1 ) then do; \n print 'Warning: ' count 'Files with names only different in case exist - First one chosen';\n print 'Path: ' cpath ' will be used****'; \n end; \n r = cpath; \n return r; \n end; \n /*-----------------------------------------*/ \n /* isModel: is it model table */ \n /*-----------------------------------------*/ \n \n function isModel(caslib, name) ; \n table.columnInfo r = result / \n table = {caslib=caslib , name=name}; \n validTable = false; \n mtype = 'bad'; \n do c over result.columninfo; \n cu = upCase(c.Column); \n if ( cu eq 'DATASTEPSRC') then do; \n mtype = 'ds'; \n end; \n else if ( cu eq '_STATE_' ) then do; \n mtype = 'astore'; \n end; \n else if (cu eq 'MODELMETADATA') then do; \n mtype = 'ds2'; \n end; \n end; \n print 'Specified model type: ' || mtype; \n return mtype; \n end; \n \n /*-----------------------------------------*/ \n /* Returns contents of the specified table */ \n /*-----------------------------------------*/ \n \n function contents(caslib, name) ; \n table.columnInfo r = result / \n table = {caslib=caslib , name=name}; \n /* columns ={{Column='_Index_',ID=0,Type='double',RawLength=5,FormattedLength=5,NFL=0,NFD=0}}; */ \n i = 1; \n columns = {}; \n do c over result.columninfo; \n columns[i] = c; \n i = i + 1; \n end; \n return {describe = columns, table = {}}; \n end; \n \n /*------------------------------------------*/ \n /* Returns unique values */ \n /*-----------------------------------------*/ \n \n function selectionLists(idvars,caslib, name, where); \n \n s = checkAndLoadTable(caslib, name); \n if ( s ne true) then do; \n results = {Errors= 'Unable to access ' ||caslib||'.'||name, statusCode = s}; \n \n end; \n print idvars;\n do k over idvars; \n r = _getValues(k, caslib, name, where); \n results[k] = r; \n end; \n return { data=results, statusCode=0}; \n end; \n function _getValues(id, caslib, name, where) ; \n \n action table.dropTable/ \n caslib='casuser' name='dtemp1' quiet=TRUE; \n \n action table.deleteSource status=src / \n caslib='casuser' source= 'dtemp1.sashdat' quiet=TRUE; \n \n action simple.groupby result=r status=rc/ \n aggregator = 'N' \n inputs = {id} \n table = {caslib=caslib name=name, where=where} \n casout = {caslib='casuser' name='dtemp1'} \n ; \n action table.fetch result=r/ \n table={caslib='casuser' name='dtemp1'} \n sortby={{name=id, order='ascending'}}; \n result = r.Fetch[,2]; \n return result; \n end; \n /*------------------------------------------*/ \n /* get a record */ \n /*------------------------------------------*/ \n \n function _fetchData(filter, table); \n s = checkAndLoadTable(table.caslib, table.name); \n if ( s ne 0 ) then do; \n results = {Errors= 'Unable to access ' ||table.caslib||'.'||table.name}; \n return results; \n end; \n wherex = dictTowhere(filter); \n /* wherex = table.caslib||'.'||table.name||'(where=('||wherex||'));'; \n \n destroyTable('casuser', 'input'); \n \n action datastep.runCode r=result status=rc/ \n single='yes' \n code = 'data casuser.input; set ' || wherex||'run;'; \n */ \n \n action table.fetch r = result / \n table={caslib=table.caslib name=table.name where=wherex}; \n \n rows = resultsToDict(result.Fetch); \n return {scenario = rows, table = result.Fetch}; \n \n end; \n function destroyTable(caslib,name); \n action table.dropTable/ \n caslib=caslib name=name quiet=TRUE; \n \n action table.deleteSource status=src / \n caslib=caslib source= name||'.sashdat' quiet=TRUE; \n \n return true; \n end; \n \n \n function dictToWhere(filter); \n where =''; \n andbit=' '; \n do k,v over filter; \n if (isString(v) ) then do; \n where = where || andbit || k || ' eq ' || '\"'||v||'\"'; \n end; \n else do; \n where = where || andbit || k || ' eq ' || v ; \n end; \n andbit =' and '; \n end; \n return where; \n end; \n \n function resultsToDict(r); \n casResults = {}; \n i = 1; \n do row over r; \n casResults[i] = row; \n i = i + 1; \n end; \n return casResults; \n end; \n \n function argsToTable(_arg_, caslib, name ); \n action table.droptable/ \n caslib=caslib name=name quiet=TRUE; \n i = 1; \n do key,obj over _arg_; \n columns[i] = key; \n row[i] = obj; \n if ( isString(obj) ) then \n type[i] = 'varchar'; \n else if ( isInteger(obj) ) then \n type[i] = 'int'; \n else type[i] = 'double'; \n i = i + 1; \n end; \n \n data1 = newTable('data1', columns, type, row ); \n \n saveresult data1 casout=name caslib=caslib replace; \n end; \n \n function saveAndPromoteTable(caslib, target, source);\n sashdat = target||\".sashdat\";\n rc = checkAndLoadTable(caslib, source);\n table.droptable /\n caslib=caslib name=target quiet=true;\n \n table.save /\n caslib= caslib name=sashdat\n table = {caslib=caslib name=source} replace=true;\n \n table.loadtable result=r/\n caslib=caslib casout={caslib=caslib name=target replace=TRUE}\n path=sashdat;\n \n table.promote result=r status=rc/\n caslib=caslib name=target quiet=true\n targetLib=caslib target=target;\n print rc;\n r = rc.severity;\n if (rc.severity gt 0) then do;\n print rc;\n print 'Ignoring error';\n rc = 0;\n end;\n \n return r;\n end; \n \n "},casFetchData:y,casFetchRows:function(){return"\n results = casFetchRows(_args_.table.caslib, _args_.table.name , _args_.from, _args_.count, _args_.format, _args_.where); \n send_response({casResults = results}); \n \n function casFetchRows(caslib, name, from, count, format, where) ; \n \n rc = checkAndLoadTable(caslib, name);\n \n if (rc ne true) then do;\n text = 'Unable to access ' ||caslib||'.'||name; \n rx = {severity=2,reason=6, status='error',statusCode=2, formatted=text};\n exit(rx); \n end; \n\n /*\n * get all table to get rowCount\n */\n\n action table.tableinfo r= result/ \n caslib = caslib \n name = name; \n \n rowCount = result.TableInfo[1, 'rows']; \n \n to = from + count - 1; \n \n /*\n * get column information\n */\n\n action table.columninfo r=infoResult /\n table = {caslib=caslib name=name};\n\n columns ={{Column='_Index_',ID=0,Type='double',RawLength=5,FormattedLength=5,NFL=0,NFD=0}};\n i = 2;\n do c over inforesult.columninfo;\n columns[i] = c;\n i = i + 1;\n end;\n \n /*\n * Fetch the current set of rows\n */\n /* wherex = dictTowhere(where); let user send in the where clause */\n print where;\n\n action table.fetch r = result / \n table = {caslib=caslib, name=name where=where} \n from= from to=to format=format sastypes=true\n ;\n\n /* \n * create payload to return\n */\n\n i = 1;\n rows ={};\n do row over result.fetch;\n rr = {};\n j = 1;\n do key,v over row;\n rr[j] = override(columns[j].Type, v);\n j = j + 1;\n end;\n rows[i] = rr;\n i = i + 1;\n end;\n\n pagePrev = max(from - count, 1);\n \n if ( to eq rowCount ) then do; \n pageNext = -1; \n end; \n else do ; \n pageNext = min(to + 1, rowCount); \n end; \n table = {caslib=caslib, name=name};\n pagination = {next= {from=pageNext, count=count, format=format, where=where table=table}, prev={from=pagePrev, count=count, format=format, where=where, table=table}};\n pagination.current = {from = from, to=to, rowCount=rowCount, version=1};\n return( \n {pagination = pagination, data = {schema=columns, rows=rows }}\n );\n end; \n \n \n /*\n * For non-primary column types set new content\n */\n\n function override(type, iv);\n if (type EQ 'varbinary') then v = '...varbinary';\n else if (type EQ 'blob') then v = '...blob';\n else if (type EQ 'table') then v = '...table';\n else if (type EQ 'dictionary') then v = '...dictionary';\n else if (type EQ 'list') then v = '...list';\n else if (type EQ 'isArray') then v = '...array';\n else v = iv;\n return v;\n end;\n\n \n "},scoreCasl:n.n(d).a,casAppendTable:function(){return"\n rc = checkAndLoadTable(_args_.masterTable.caslib, _args_.masterTable.name);\n\n if (rc ne true) then do;\n text = 'Unable to access ' ||_args_.masterTable.caslib||'.'||_args_.masterTable.name; \n rx = {severity=2,reason=6, status='error',statusCode=2, formatted=text};\n exit(rx); \n end; \n \n rc = checkAndLoadTable(_args_.setTable.caslib, _args_.setTable.name);\n if (rc ne true) then do;\n text = 'Unable to access ' ||_args_.setTable.caslib||'.'||_args_.setTable.name; \n rx = {severity=2,reason=6, status='error',statusCode=2, formatted=text};\n return rx;\n end;\n\n\n setdata = _args_.setTable.caslib ||'.'||_args_.setTable.name;\n masterdata = _args_.masterTable.caslib ||'.'||_args_.masterTable.name;\n\n action datastep.runCode r=result status=rc/\n code='data ' ||masterdata||'(append=YES);set ' || setdata ||'; run;';\n\n if (rc.statusCode ne 0) then do;\n exit(rc);\n end; \n else do;\n results = {msg= 'Append succeeded', statusCode=true};\n end;\n \n send_response({casResults = results});\n "},casRowSets:y};function m(){return(m=o()(a.a.mark((function t(e,n,r,o,i){var s,u,c,l,f,p=arguments;return a.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:for(s=r,!1!==i&&(s=r+" "+v.commonCasl()),u=p.length,c=new Array(u>5?u-5:0),l=5;l<u;l++)c[l-5]=p[l];return t.next=5,h.apply(void 0,[e,n,s,o].concat(c));case 5:return f=t.sent,t.abrupt("return",f.items().toJS());case 7:case"end":return t.stop()}}),t)})))).apply(this,arguments)}var g=function(t,e,n,r,o){return m.apply(this,arguments)},b=n(3),_=n.n(b);function w(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function O(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?w(Object(n),!0).forEach((function(e){_()(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):w(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function S(){return(S=o()(a.a.mark((function t(e,n,r){var o,i,s,u;return a.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return o=v.commonCasl()+" "+v.scoreCasl(),i=O({path:"/score"},r),t.next=4,h(e,n,o,i);case 4:return s=t.sent,u=s.items("results","casResults").toJS()[0],t.abrupt("return",u);case 7:case"end":return t.stop()}}),t)})))).apply(this,arguments)}var x=function(t,e,n){return S.apply(this,arguments)};function j(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function E(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?j(Object(n),!0).forEach((function(e){_()(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):j(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function A(){return(A=o()(a.a.mark((function t(e,n,r){var o,i,s,u;return a.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return o=v.commonCasl()+" "+v.scoreCasl(),i=E({path:"/describe"},r),t.next=4,h(e,n,o,i);case 4:return s=t.sent,u=s.items("results").toJS(),t.abrupt("return",u);case 7:case"end":return t.stop()}}),t)})))).apply(this,arguments)}var k=function(t,e,n){return A.apply(this,arguments)};function C(){return(C=o()(a.a.mark((function t(e,n,r,o){var i,s,c,l,f,p,h,d,y,v;return a.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(null==n){t.next=4;break}return t.next=3,e.logon(n);case 3:t.sent;case 4:return t.next=6,e.addServices("casManagement");case 6:return i=t.sent,s=i.casManagement,t.next=10,e.apiCall(s.links("servers"));case 10:if(0!==(c=t.sent).itemsList().size){t.next=13;break}throw{Error:"No cas servers were found"};case 13:if(l=null,null!=o){t.next=18;break}l=c.itemsList(0),t.next=25;break;case 18:if(f=c.itemsList().toJS(),-1!==(p=f.findIndex((function(t){return t===o})))){t.next=24;break}throw{Error:"server with name of ".concat(o," was not found")};case 24:l=c.itemsList(p);case 25:if(h=null,null!=r){t.next=32;break}return t.next=29,e.apiCall(c.itemsCmd(l,"createSession"));case 29:h=t.sent,t.next=46;break;case 32:if("object"!==u()(r)){t.next=36;break}h=r,t.next=46;break;case 36:return d={qs:{filter:"eq( id,'".concat(r,"')")}},t.next=39,e.apiCall(c.itemsCmd(l,"sessions"),d);case 39:if(0!==(y=t.sent).items().size){t.next=42;break}throw"ERROR: The sessionID ".concat(r," was not found.");case 42:return v=y.itemsCmd(y.itemsList(0),"self"),t.next=45,e.apiCall(v);case 45:h=t.sent;case 46:return t.abrupt("return",{servers:c,session:h});case 47:case"end":return t.stop()}}),t)})))).apply(this,arguments)}var T=function(t,e,n,r){return C.apply(this,arguments)};function P(){return(P=o()(a.a.mark((function t(e){var n,r,o,i,s=arguments;return a.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:for(n=s.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=s[o];return t.next=3,e.runAction.apply(e,r);case 3:return i=t.sent,t.abrupt("return",i.items().toJS());case 5:case"end":return t.stop()}}),t)})))).apply(this,arguments)}var R=function(t){return P.apply(this,arguments)};function I(){return(I=o()(a.a.mark((function t(e,n,r){var o,i;return a.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return o=v.commonCasl()+" "+v.casFetchData(),t.next=3,h(e,n,o,r);case 3:return i=t.sent,t.abrupt("return",i.items("results","casResults").toJS());case 5:case"end":return t.stop()}}),t)})))).apply(this,arguments)}var L=function(t,e,n){return I.apply(this,arguments)};function D(){return(D=o()(a.a.mark((function t(e,n,r){var o,i,s;return a.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return null==r.where&&(r.where=" "),o=v.commonCasl()+" "+v.casFetchRows(),t.next=4,h(e,n,o,r);case 4:return i=t.sent,null==(s=i.items("results","casResults").toJS()).data&&(s.data={rows:[]}),t.abrupt("return",s);case 8:case"end":return t.stop()}}),t)})))).apply(this,arguments)}var M=function(t,e,n){return D.apply(this,arguments)};function N(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function U(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?N(Object(n),!0).forEach((function(e){_()(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):N(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function q(){return(q=o()(a.a.mark((function t(e,n,r){var o,i,s,u,c,l,f,p,h,d,y,v,m,g,b,_,w;return a.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:for(l in o=r.data,i=r.where,s=r.table,u="",c=" ",i)f=i[l],p="string"==typeof f?"'".concat(f.toString(),"'"):f,u=u+c+l+"= ".concat(p," "),c=" AND ";for(d in h=[],o)y=o[d],v=null==y?".":"string"==typeof y?JSON.stringify(y):y.toString(),h.push({var:d,value:v});return m=U(U({},s),{},{where:"".concat(u)}),g={action:"table.update",data:{table:m,set:h}},t.next=11,e.runAction(n,g);case 11:return b=t.sent,_={msg:"Update completed",statusCode:0},0!==(w=b.items().toJS().disposition).statusCode&&(_.statusCode=w.statusCode,_.msg=w.reason),t.abrupt("return",_);case 16:case"end":return t.stop()}}),t)})))).apply(this,arguments)}var B=function(t,e,n){return q.apply(this,arguments)};function z(){return(z=o()(a.a.mark((function t(e,n,r,o,i){var s,u,c;return a.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return s=r.caslib,u=r.name,c={action:"table.save",data:{name:"".concat(u),caslib:"".concat(s),replace:!1!==o,table:r}},t.next=4,e.runAction(n,c);case 4:return t.abrupt("return",{msg:"".concat(s,".").concat(u," saved}"),statusCode:0});case 5:case"end":return t.stop()}}),t)})))).apply(this,arguments)}var F=function(t,e,n,r,o){return z.apply(this,arguments)};function W(){return(W=o()(a.a.mark((function t(e,n,r,o,i){var s,u,c,l;return a.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return s=v.commonCasl()+" "+v.casAppendTable(),u={masterTable:o,setTable:r,save:null==i||i},t.next=4,h(e,n,s,u);case 4:if(c=t.sent,l=c.items("results","casResults").toJS(),!0!==i){t.next=9;break}return t.next=9,F(e,n,o);case 9:return t.abrupt("return",l);case 10:case"end":return t.stop()}}),t)})))).apply(this,arguments)}var H=function(t,e,n,r,o){return W.apply(this,arguments)},$=function(t,e){var n=t.items("tables",e),r=n.get("rows"),o=[];n.get("schema").map((function(t){o.push(t.get("name"))}));var i=[];return r.map((function(t){var e={};t.map((function(t,n){e[o[n]]=t})),i.push(e)})),i};function J(){return(J=o()(a.a.mark((function t(e,n,r,o){return a.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=3,g(e,n,"\n\t print _args_;\n rc = checkAndLoadTable(_args_.caslib, _args_.name);\n\t\tif (rc ne true) then do;\n\t\t\ttext = 'Unable to access ' ||_args_.caslib||'.'||_args_.name; \n\t\t\trx = {severity=2,reason=6, status='error',statusCode=2, formatted=text};\n\t\t\texit(rx); \n\t\tend; \n\t print 'return code = ' || rc;\n\t send_response({casResults={status='ok'}});\n ",r,!0);case 3:return t.sent,t.abrupt("return",{msg:"".concat(r.caslib,".").concat(r.name," loaded}"),statusCode:0});case 5:case"end":return t.stop()}}),t)})))).apply(this,arguments)}var G=function(t,e,n,r){return J.apply(this,arguments)};function V(){return(V=o()(a.a.mark((function t(e,n,r,o){var i;return a.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(null==r||null!=o){t.next=6;break}return t.next=3,K(e,n,r);case 3:i=t.sent,t.next=9;break;case 6:return t.next=8,Q(e,n,o);case 8:i=t.sent;case 9:return t.abrupt("return",i);case 10:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function K(t,e,n){return Y.apply(this,arguments)}function Y(){return(Y=o()(a.a.mark((function t(e,n,r){var o,i,s,u,c,l,f,p,h,d;return a.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if((o={session:n,log:null,listing:null,ods:null,job:r,tables:{},files:{}}).log=r.links("log"),o.listing=r.links("listing"),null===(i=r.links("results"))){t.next=10;break}return t.next=7,e.apiCall(i);case 7:if(s=t.sent,(u=s.itemsList().size)>0)for(c=0;c<u;c++)l=s.itemsList(c),"ods"===(f=s.items(l,"data","type").toLowerCase())?o.ods=s.itemsCmd(l,"self"):"table"===f?(p={self:s.itemsCmd(l,"self"),current:null},o.tables[l.toUpperCase()]=p):"file"===f?(h={self:l,current:null,data:null},o.files[l]=h):(d={self:l,current:null,data:null},o[f]=d);case 10:return t.abrupt("return",o);case 11:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function Q(t,e,n){return X.apply(this,arguments)}function X(){return(X=o()(a.a.mark((function t(e,n,r){var o,i,s,c,l,f,p,h,d,y,v,m,g;return a.a.wrap((function(t){for(;;)switch(t.pre