@orchesty/connector-google-sheet 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2 @@
1
+ /* eslint-disable */
2
+ window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V<U;++V){var ae=Z[V];if(ae.ignoreCase){ac=true}else{if(/[a-z]/i.test(ae.source.replace(/\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi,""))){S=true;ac=false;break}}}var Y={b:8,t:9,n:10,v:11,f:12,r:13};function ab(ah){var ag=ah.charCodeAt(0);if(ag!==92){return ag}var af=ah.charAt(1);ag=Y[af];if(ag){return ag}else{if("0"<=af&&af<="7"){return parseInt(ah.substring(1),8)}else{if(af==="u"||af==="x"){return parseInt(ah.substring(2),16)}else{return ah.charCodeAt(1)}}}}function T(af){if(af<32){return(af<16?"\\x0":"\\x")+af.toString(16)}var ag=String.fromCharCode(af);if(ag==="\\"||ag==="-"||ag==="["||ag==="]"){ag="\\"+ag}return ag}function X(am){var aq=am.substring(1,am.length-1).match(new RegExp("\\\\u[0-9A-Fa-f]{4}|\\\\x[0-9A-Fa-f]{2}|\\\\[0-3][0-7]{0,2}|\\\\[0-7]{1,2}|\\\\[\\s\\S]|-|[^-\\\\]","g"));var ak=[];var af=[];var ao=aq[0]==="^";for(var ar=ao?1:0,aj=aq.length;ar<aj;++ar){var ah=aq[ar];if(/\\[bdsw]/i.test(ah)){ak.push(ah)}else{var ag=ab(ah);var al;if(ar+2<aj&&"-"===aq[ar+1]){al=ab(aq[ar+2]);ar+=2}else{al=ag}af.push([ag,al]);if(!(al<65||ag>122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;ar<af.length;++ar){var at=af[ar];if(at[0]<=ap[1]+1){ap[1]=Math.max(ap[1],at[1])}else{ai.push(ap=at)}}var an=["["];if(ao){an.push("^")}an.push.apply(an,ak);for(var ar=0;ar<ai.length;++ar){var at=ai[ar];an.push(T(at[0]));if(at[1]>at[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak<ah;++ak){var ag=aj[ak];if(ag==="("){++am}else{if("\\"===ag.charAt(0)){var af=+ag.substring(1);if(af&&af<=am){an[af]=-1}}}}for(var ak=1;ak<an.length;++ak){if(-1===an[ak]){an[ak]=++ad}}for(var ak=0,am=0;ak<ah;++ak){var ag=aj[ak];if(ag==="("){++am;if(an[am]===undefined){aj[ak]="(?:"}}else{if("\\"===ag.charAt(0)){var af=+ag.substring(1);if(af&&af<=am){aj[ak]="\\"+an[am]}}}}for(var ak=0,am=0;ak<ah;++ak){if("^"===aj[ak]&&"^"!==aj[ak+1]){aj[ak]=""}}if(al.ignoreCase&&S){for(var ak=0;ak<ah;++ak){var ag=aj[ak];var ai=ag.charAt(0);if(ag.length>=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V<U;++V){var ae=Z[V];if(ae.global||ae.multiline){throw new Error(""+ae)}aa.push("(?:"+W(ae)+")")}return new RegExp(aa.join("|"),ac?"gi":"g")}function a(V){var U=/(?:^|\s)nocode(?:\s|$)/;var X=[];var T=0;var Z=[];var W=0;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=document.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Y=S&&"pre"===S.substring(0,3);function aa(ab){switch(ab.nodeType){case 1:if(U.test(ab.className)){return}for(var ae=ab.firstChild;ae;ae=ae.nextSibling){aa(ae)}var ad=ab.nodeName;if("BR"===ad||"LI"===ad){X[W]="\n";Z[W<<1]=T++;Z[(W++<<1)|1]=ab}break;case 3:case 4:var ac=ab.nodeValue;if(ac.length){if(!Y){ac=ac.replace(/[ \t\r\n]+/g," ")}else{ac=ac.replace(/\r\n?/g,"\n")}X[W]=ac;Z[W<<1]=T;T+=ac.length;Z[(W++<<1)|1]=ab}break}}aa(V);return{sourceCode:X.join("").replace(/\n$/,""),spans:Z}}function B(S,U,W,T){if(!U){return}var V={sourceCode:U,basePos:S};W(V);T.push.apply(T,V.decorations)}var v=/\S/;function o(S){var V=undefined;for(var U=S.firstChild;U;U=U.nextSibling){var T=U.nodeType;V=(T===1)?(V?S:U):(T===3)?(v.test(U.nodeValue)?S:V):V}return V===S?undefined:V}function g(U,T){var S={};var V;(function(){var ad=U.concat(T);var ah=[];var ag={};for(var ab=0,Z=ad.length;ab<Z;++ab){var Y=ad[ab];var ac=Y[3];if(ac){for(var ae=ac.length;--ae>=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae<aq;++ae){var ag=an[ae];var ap=aj[ag];var ai=void 0;var am;if(typeof ap==="string"){am=false}else{var aa=S[ag.charAt(0)];if(aa){ai=ag.match(aa[1]);ap=aa[0]}else{for(var ao=0;ao<X;++ao){aa=T[ao];ai=ag.match(aa[1]);if(ai){ap=aa[0];break}}if(!ai){ap=F}}am=ap.length>=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y<W.length;++Y){ae(W[Y])}if(ag===(ag|0)){W[0].setAttribute("value",ag)}var aa=ac.createElement("OL");aa.className="linenums";var X=Math.max(0,((ag-1))|0)||0;for(var Y=0,T=W.length;Y<T;++Y){af=W[Y];af.className="L"+((Y+X)%10);if(!af.firstChild){af.appendChild(ac.createTextNode("\xA0"))}aa.appendChild(af)}V.appendChild(aa)}function D(ac){var aj=/\bMSIE\b/.test(navigator.userAgent);var am=/\n/g;var al=ac.sourceCode;var an=al.length;var V=0;var aa=ac.spans;var T=aa.length;var ah=0;var X=ac.decorations;var Y=X.length;var Z=0;X[Y]=an;var ar,aq;for(aq=ar=0;aq<Y;){if(X[aq]!==X[aq+2]){X[ar++]=X[aq++];X[ar++]=X[aq++]}else{aq+=2}}Y=ar;for(aq=ar=0;aq<Y;){var at=X[aq];var ab=X[aq+1];var W=aq+2;while(W+2<=Y&&X[W+1]===ab){W+=2}X[ar++]=at;X[ar++]=ab;aq=W}Y=X.length=ar;var ae=null;while(ah<T){var af=aa[ah];var S=aa[ah+2]||an;var ag=X[Z];var ap=X[Z+2]||an;var W=Math.min(S,ap);var ak=aa[ah+1];var U;if(ak.nodeType!==1&&(U=al.substring(V,W))){if(aj){U=U.replace(am,"\r")}ak.nodeValue=U;var ai=ak.ownerDocument;var ao=ai.createElement("SPAN");ao.className=X[Z+1];var ad=ak.parentNode;ad.replaceChild(ao,ak);ao.appendChild(ak);if(V<S){aa[ah+1]=ak=ai.createTextNode(al.substring(W,S));ad.insertBefore(ak,ao.nextSibling)}}V=W;if(V>=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*</.test(S)?"default-markup":"default-code"}return t[T]}c(K,["default-code"]);c(g([],[[F,/^[^<?]+/],[E,/^<!\w[^>]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa<ac.length;++aa){for(var Z=0,V=ac[aa].length;Z<V;++Z){T.push(ac[aa][Z])}}ac=null;var W=Date;if(!W.now){W={now:function(){return +(new Date)}}}var X=0;var S;var ab=/\blang(?:uage)?-([\w.]+)(?!\S)/;var ae=/\bprettyprint\b/;function U(){var ag=(window.PR_SHOULD_USE_CONTINUATION?W.now()+250:Infinity);for(;X<T.length&&W.now()<ag;X++){var aj=T[X];var ai=aj.className;if(ai.indexOf("prettyprint")>=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X<T.length){setTimeout(U,250)}else{if(ad){ad()}}}U()}window.prettyPrintOne=y;window.prettyPrint=b;window.PR={createSimpleLexer:g,registerLangHandler:c,sourceDecorator:i,PR_ATTRIB_NAME:P,PR_ATTRIB_VALUE:n,PR_COMMENT:j,PR_DECLARATION:E,PR_KEYWORD:z,PR_LITERAL:G,PR_NOCODE:N,PR_PLAIN:F,PR_PUNCTUATION:L,PR_SOURCE:J,PR_STRING:C,PR_TAG:m,PR_TYPE:O}})();PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_DECLARATION,/^<!\w[^>]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^<script\b[^>]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:<!--|-->)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]);
@@ -0,0 +1,210 @@
1
+ /* eslint-disable */
2
+ var addSorting = (function() {
3
+ 'use strict';
4
+ var cols,
5
+ currentSort = {
6
+ index: 0,
7
+ desc: false
8
+ };
9
+
10
+ // returns the summary table element
11
+ function getTable() {
12
+ return document.querySelector('.coverage-summary');
13
+ }
14
+ // returns the thead element of the summary table
15
+ function getTableHeader() {
16
+ return getTable().querySelector('thead tr');
17
+ }
18
+ // returns the tbody element of the summary table
19
+ function getTableBody() {
20
+ return getTable().querySelector('tbody');
21
+ }
22
+ // returns the th element for nth column
23
+ function getNthColumn(n) {
24
+ return getTableHeader().querySelectorAll('th')[n];
25
+ }
26
+
27
+ function onFilterInput() {
28
+ const searchValue = document.getElementById('fileSearch').value;
29
+ const rows = document.getElementsByTagName('tbody')[0].children;
30
+
31
+ // Try to create a RegExp from the searchValue. If it fails (invalid regex),
32
+ // it will be treated as a plain text search
33
+ let searchRegex;
34
+ try {
35
+ searchRegex = new RegExp(searchValue, 'i'); // 'i' for case-insensitive
36
+ } catch (error) {
37
+ searchRegex = null;
38
+ }
39
+
40
+ for (let i = 0; i < rows.length; i++) {
41
+ const row = rows[i];
42
+ let isMatch = false;
43
+
44
+ if (searchRegex) {
45
+ // If a valid regex was created, use it for matching
46
+ isMatch = searchRegex.test(row.textContent);
47
+ } else {
48
+ // Otherwise, fall back to the original plain text search
49
+ isMatch = row.textContent
50
+ .toLowerCase()
51
+ .includes(searchValue.toLowerCase());
52
+ }
53
+
54
+ row.style.display = isMatch ? '' : 'none';
55
+ }
56
+ }
57
+
58
+ // loads the search box
59
+ function addSearchBox() {
60
+ var template = document.getElementById('filterTemplate');
61
+ var templateClone = template.content.cloneNode(true);
62
+ templateClone.getElementById('fileSearch').oninput = onFilterInput;
63
+ template.parentElement.appendChild(templateClone);
64
+ }
65
+
66
+ // loads all columns
67
+ function loadColumns() {
68
+ var colNodes = getTableHeader().querySelectorAll('th'),
69
+ colNode,
70
+ cols = [],
71
+ col,
72
+ i;
73
+
74
+ for (i = 0; i < colNodes.length; i += 1) {
75
+ colNode = colNodes[i];
76
+ col = {
77
+ key: colNode.getAttribute('data-col'),
78
+ sortable: !colNode.getAttribute('data-nosort'),
79
+ type: colNode.getAttribute('data-type') || 'string'
80
+ };
81
+ cols.push(col);
82
+ if (col.sortable) {
83
+ col.defaultDescSort = col.type === 'number';
84
+ colNode.innerHTML =
85
+ colNode.innerHTML + '<span class="sorter"></span>';
86
+ }
87
+ }
88
+ return cols;
89
+ }
90
+ // attaches a data attribute to every tr element with an object
91
+ // of data values keyed by column name
92
+ function loadRowData(tableRow) {
93
+ var tableCols = tableRow.querySelectorAll('td'),
94
+ colNode,
95
+ col,
96
+ data = {},
97
+ i,
98
+ val;
99
+ for (i = 0; i < tableCols.length; i += 1) {
100
+ colNode = tableCols[i];
101
+ col = cols[i];
102
+ val = colNode.getAttribute('data-value');
103
+ if (col.type === 'number') {
104
+ val = Number(val);
105
+ }
106
+ data[col.key] = val;
107
+ }
108
+ return data;
109
+ }
110
+ // loads all row data
111
+ function loadData() {
112
+ var rows = getTableBody().querySelectorAll('tr'),
113
+ i;
114
+
115
+ for (i = 0; i < rows.length; i += 1) {
116
+ rows[i].data = loadRowData(rows[i]);
117
+ }
118
+ }
119
+ // sorts the table using the data for the ith column
120
+ function sortByIndex(index, desc) {
121
+ var key = cols[index].key,
122
+ sorter = function(a, b) {
123
+ a = a.data[key];
124
+ b = b.data[key];
125
+ return a < b ? -1 : a > b ? 1 : 0;
126
+ },
127
+ finalSorter = sorter,
128
+ tableBody = document.querySelector('.coverage-summary tbody'),
129
+ rowNodes = tableBody.querySelectorAll('tr'),
130
+ rows = [],
131
+ i;
132
+
133
+ if (desc) {
134
+ finalSorter = function(a, b) {
135
+ return -1 * sorter(a, b);
136
+ };
137
+ }
138
+
139
+ for (i = 0; i < rowNodes.length; i += 1) {
140
+ rows.push(rowNodes[i]);
141
+ tableBody.removeChild(rowNodes[i]);
142
+ }
143
+
144
+ rows.sort(finalSorter);
145
+
146
+ for (i = 0; i < rows.length; i += 1) {
147
+ tableBody.appendChild(rows[i]);
148
+ }
149
+ }
150
+ // removes sort indicators for current column being sorted
151
+ function removeSortIndicators() {
152
+ var col = getNthColumn(currentSort.index),
153
+ cls = col.className;
154
+
155
+ cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, '');
156
+ col.className = cls;
157
+ }
158
+ // adds sort indicators for current column being sorted
159
+ function addSortIndicators() {
160
+ getNthColumn(currentSort.index).className += currentSort.desc
161
+ ? ' sorted-desc'
162
+ : ' sorted';
163
+ }
164
+ // adds event listeners for all sorter widgets
165
+ function enableUI() {
166
+ var i,
167
+ el,
168
+ ithSorter = function ithSorter(i) {
169
+ var col = cols[i];
170
+
171
+ return function() {
172
+ var desc = col.defaultDescSort;
173
+
174
+ if (currentSort.index === i) {
175
+ desc = !currentSort.desc;
176
+ }
177
+ sortByIndex(i, desc);
178
+ removeSortIndicators();
179
+ currentSort.index = i;
180
+ currentSort.desc = desc;
181
+ addSortIndicators();
182
+ };
183
+ };
184
+ for (i = 0; i < cols.length; i += 1) {
185
+ if (cols[i].sortable) {
186
+ // add the click event handler on the th so users
187
+ // dont have to click on those tiny arrows
188
+ el = getNthColumn(i).querySelector('.sorter').parentElement;
189
+ if (el.addEventListener) {
190
+ el.addEventListener('click', ithSorter(i));
191
+ } else {
192
+ el.attachEvent('onclick', ithSorter(i));
193
+ }
194
+ }
195
+ }
196
+ }
197
+ // adds sorting functionality to the UI
198
+ return function() {
199
+ if (!getTable()) {
200
+ return;
201
+ }
202
+ cols = loadColumns();
203
+ loadData();
204
+ addSearchBox();
205
+ addSortIndicators();
206
+ enableUI();
207
+ };
208
+ })();
209
+
210
+ window.addEventListener('load', addSorting);
File without changes
@@ -0,0 +1,12 @@
1
+ import AConnector from '@orchesty/nodejs-sdk/dist/lib/Connector/AConnector';
2
+ import ProcessDto from '@orchesty/nodejs-sdk/dist/lib/Utils/ProcessDto';
3
+ interface IGoogleSheetSpreadsheet {
4
+ name: string;
5
+ data: string[][];
6
+ }
7
+ export default class GoogleDriveUploadFileConnector extends AConnector {
8
+ getName(): string;
9
+ processAction(dto: ProcessDto<IGoogleSheetSpreadsheet>): Promise<ProcessDto>;
10
+ private parseData;
11
+ }
12
+ export {};
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const AConnector_1 = __importDefault(require("@orchesty/nodejs-sdk/dist/lib/Connector/AConnector"));
7
+ const HttpMethods_1 = require("@orchesty/nodejs-sdk/dist/lib/Transport/HttpMethods");
8
+ const Validations_1 = require("@orchesty/nodejs-sdk/dist/lib/Utils/Validations");
9
+ const GOOGLE_SHEET_CREATE_SPREADSHEET = '/v4/spreadsheets';
10
+ class GoogleDriveUploadFileConnector extends AConnector_1.default {
11
+ getName() {
12
+ return 'google-sheet-create-spreadsheet';
13
+ }
14
+ async processAction(dto) {
15
+ (0, Validations_1.checkParams)(dto.getJsonData(), ['name', 'data']);
16
+ const { name, data: innerData, } = dto.getJsonData();
17
+ const application = this.getApplication();
18
+ const applicationInstall = await this.getApplicationInstallFromProcess(dto);
19
+ const data = {
20
+ properties: {
21
+ title: name,
22
+ },
23
+ sheets: [
24
+ {
25
+ properties: {
26
+ title: `Sheet ${name} #1`,
27
+ },
28
+ data: this.parseData(innerData),
29
+ },
30
+ ],
31
+ };
32
+ const request = await application.getRequestDto(dto, applicationInstall, HttpMethods_1.HttpMethods.POST, GOOGLE_SHEET_CREATE_SPREADSHEET, data);
33
+ const response = await this.getSender().send(request, [200]);
34
+ dto.setData(response.getBody());
35
+ return dto;
36
+ }
37
+ parseData(data) {
38
+ return {
39
+ rowData: data.map((item) => ({
40
+ values: item.map((value) => ({
41
+ userEnteredValue: { stringValue: value },
42
+ })),
43
+ })),
44
+ };
45
+ }
46
+ }
47
+ exports.default = GoogleDriveUploadFileConnector;
@@ -0,0 +1,11 @@
1
+ import AGoogle from '@orchesty/connector-google-common/src/AGoogle';
2
+ import { ApplicationInstall } from '@orchesty/nodejs-sdk/dist/lib/Application/Database/ApplicationInstall';
3
+ export declare const BASE_URL = "https://sheets.googleapis.com";
4
+ export default class GoogleSheetApplication extends AGoogle {
5
+ getName(): string;
6
+ getPublicName(): string;
7
+ getBaseUrl(): string;
8
+ getDescription(): string;
9
+ getLogo(): string;
10
+ getScopes(applicationInstall: ApplicationInstall): string[];
11
+ }
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.BASE_URL = void 0;
7
+ const AGoogle_1 = __importDefault(require("@orchesty/connector-google-common/src/AGoogle"));
8
+ exports.BASE_URL = 'https://sheets.googleapis.com';
9
+ class GoogleSheetApplication extends AGoogle_1.default {
10
+ getName() {
11
+ return 'google-sheet';
12
+ }
13
+ getPublicName() {
14
+ return 'GoogleSheet';
15
+ }
16
+ getBaseUrl() {
17
+ return exports.BASE_URL;
18
+ }
19
+ getDescription() {
20
+ return 'Create, edit, and share spreadsheets wherever you are';
21
+ }
22
+ getLogo() {
23
+ return 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI1LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IlZyc3R2YV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTAwIDEwMDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWx0ZXI6dXJsKCNBZG9iZV9PcGFjaXR5TWFza0ZpbHRlcik7fQoJLnN0MXtmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDtmaWxsOiNGRkZGRkY7fQoJLnN0MnttYXNrOnVybCgjbWFzay0yXzFfKTtmaWxsOiMwRjlENTg7fQoJLnN0M3tmaWx0ZXI6dXJsKCNBZG9iZV9PcGFjaXR5TWFza0ZpbHRlcl8xXyk7fQoJLnN0NHttYXNrOnVybCgjbWFzay00XzFfKTtmaWxsOiNGMUYxRjE7fQoJLnN0NXtmaWx0ZXI6dXJsKCNBZG9iZV9PcGFjaXR5TWFza0ZpbHRlcl8yXyk7fQoJLnN0NnttYXNrOnVybCgjbWFzay02XzFfKTtmaWxsOnVybCgjUGF0aF83Xyk7fQoJLnN0N3tmaWx0ZXI6dXJsKCNBZG9iZV9PcGFjaXR5TWFza0ZpbHRlcl8zXyk7fQoJLnN0OHttYXNrOnVybCgjbWFzay05XzFfKTt9Cgkuc3Q5e2ZpbGw6Izg3Q0VBQzt9Cgkuc3QxMHtmaWx0ZXI6dXJsKCNBZG9iZV9PcGFjaXR5TWFza0ZpbHRlcl80Xyk7fQoJLnN0MTF7bWFzazp1cmwoI21hc2stMTFfMV8pO2ZpbGw6I0ZGRkZGRjtmaWxsLW9wYWNpdHk6MC4yO30KCS5zdDEye2ZpbHRlcjp1cmwoI0Fkb2JlX09wYWNpdHlNYXNrRmlsdGVyXzVfKTt9Cgkuc3QxM3ttYXNrOnVybCgjbWFzay0xM18xXyk7ZmlsbDojMjYzMjM4O2ZpbGwtb3BhY2l0eTowLjI7fQoJLnN0MTR7ZmlsdGVyOnVybCgjQWRvYmVfT3BhY2l0eU1hc2tGaWx0ZXJfNl8pO30KCS5zdDE1e21hc2s6dXJsKCNtYXNrLTE1XzFfKTtmaWxsOiMyNjMyMzg7ZmlsbC1vcGFjaXR5OjAuMTt9Cgkuc3QxNntmaWxsOnVybCgjUGF0aF8xMV8pO30KPC9zdHlsZT4KPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+CjxnIGlkPSJQYWdlLTEiPgoJPGcgaWQ9IkNvbnN1bWVyLUFwcHMtU2hlZXRzLUxhcmdlLVZELVI4LSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTQ1MS4wMDAwMDAsIC00NTEuMDAwMDAwKSI+CgkJPGcgaWQ9Ikhlcm8iIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAuMDAwMDAwLCA2My4wMDAwMDApIj4KCQkJPGcgaWQ9IlBlcnNvbmFsIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyNzcuMDAwMDAwLCAyOTkuMDAwMDAwKSI+CgkJCQk8ZyBpZD0iU2hlZXRzLWljb24iIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE3NC44MzMzMzMsIDg5Ljk1ODMzMykiPgoJCQkJCTxnIGlkPSJHcm91cF8xXyI+CgkJCQkJCTxnIGlkPSJDbGlwcGVkIj4KCQkJCQkJCTxnIGlkPSJTVkdJRF8xXyI+CgkJCQkJCQk8L2c+CgkJCQkJCQk8ZGVmcz4KCQkJCQkJCQk8ZmlsdGVyIGlkPSJBZG9iZV9PcGFjaXR5TWFza0ZpbHRlciIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSIxMy45IiB5PSItMS4xIiB3aWR0aD0iNzIuNyIgaGVpZ2h0PSIxMDAiPgoJCQkJCQkJCQk8ZmVDb2xvck1hdHJpeCAgdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjEgMCAwIDAgMCAgMCAxIDAgMCAwICAwIDAgMSAwIDAgIDAgMCAwIDEgMCIvPgoJCQkJCQkJCTwvZmlsdGVyPgoJCQkJCQkJPC9kZWZzPgoJCQkJCQkJPG1hc2sgbWFza1VuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeD0iMTMuOSIgeT0iLTEuMSIgd2lkdGg9IjcyLjciIGhlaWdodD0iMTAwIiBpZD0ibWFzay0yXzFfIj4KCQkJCQkJCQk8ZyBjbGFzcz0ic3QwIj4KCQkJCQkJCQkJPHBhdGggaWQ9InBhdGgtMV8xXyIgY2xhc3M9InN0MSIgZD0iTTU5LjQtMS4xSDIwLjdjLTMuNywwLTYuOCwzLjEtNi44LDYuOHY4Ni4zYzAsMy43LDMuMSw2LjgsNi44LDYuOGg1OS4xCgkJCQkJCQkJCQljMy43LDAsNi44LTMuMSw2LjgtNi44VjI2LjJMNTkuNC0xLjF6Ii8+CgkJCQkJCQkJPC9nPgoJCQkJCQkJPC9tYXNrPgoJCQkJCQkJPHBhdGggaWQ9IlBhdGgiIGNsYXNzPSJzdDIiIGQ9Ik01OS40LTEuMUgyMC43Yy0zLjcsMC02LjgsMy4xLTYuOCw2Ljh2ODYuM2MwLDMuNywzLjEsNi44LDYuOCw2LjhoNTkuMQoJCQkJCQkJCWMzLjcsMCw2LjgtMy4xLDYuOC02LjhWMjYuMkw3MC43LDE0LjhMNTkuNC0xLjF6Ii8+CgkJCQkJCTwvZz4KCQkJCQkJPGcgaWQ9IkNsaXBwZWRfMV8iPgoJCQkJCQkJPGcgaWQ9IlNWR0lEXzJfIj4KCQkJCQkJCTwvZz4KCQkJCQkJCTxkZWZzPgoJCQkJCQkJCTxmaWx0ZXIgaWQ9IkFkb2JlX09wYWNpdHlNYXNrRmlsdGVyXzFfIiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjMyLjEiIHk9IjQ3LjgiIHdpZHRoPSIzNi40IiBoZWlnaHQ9IjMyLjkiPgoJCQkJCQkJCQk8ZmVDb2xvck1hdHJpeCAgdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjEgMCAwIDAgMCAgMCAxIDAgMCAwICAwIDAgMSAwIDAgIDAgMCAwIDEgMCIvPgoJCQkJCQkJCTwvZmlsdGVyPgoJCQkJCQkJPC9kZWZzPgoJCQkJCQkJPG1hc2sgbWFza1VuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeD0iMzIuMSIgeT0iNDcuOCIgd2lkdGg9IjM2LjQiIGhlaWdodD0iMzIuOSIgaWQ9Im1hc2stNF8xXyI+CgkJCQkJCQkJPGcgY2xhc3M9InN0MyI+CgkJCQkJCQkJCTxwYXRoIGlkPSJwYXRoLTNfMV8iIGNsYXNzPSJzdDEiIGQ9Ik01OS40LTEuMUgyMC43Yy0zLjcsMC02LjgsMy4xLTYuOCw2Ljh2ODYuM2MwLDMuNywzLjEsNi44LDYuOCw2LjhoNTkuMQoJCQkJCQkJCQkJYzMuNywwLDYuOC0zLjEsNi44LTYuOFYyNi4yTDU5LjQtMS4xeiIvPgoJCQkJCQkJCTwvZz4KCQkJCQkJCTwvbWFzaz4KCQkJCQkJCTxwYXRoIGlkPSJTaGFwZSIgY2xhc3M9InN0NCIgZD0iTTMyLjEsNDcuOHYzMi45aDM2LjRWNDcuOEgzMi4xeiBNNDgsNzYuMkgzNi42di01LjdINDhWNzYuMnogTTQ4LDY3LjFIMzYuNnYtNS43SDQ4VjY3LjF6CgkJCQkJCQkJIE00OCw1OEgzNi42di01LjdINDhWNTh6IE02My45LDc2LjJINTIuNXYtNS43aDExLjRWNzYuMnogTTYzLjksNjcuMUg1Mi41di01LjdoMTEuNFY2Ny4xeiBNNjMuOSw1OEg1Mi41di01LjdoMTEuNFY1OHoiLz4KCQkJCQkJPC9nPgoJCQkJCQk8ZyBpZD0iQ2xpcHBlZF8yXyI+CgkJCQkJCQk8ZyBpZD0iU1ZHSURfM18iPgoJCQkJCQkJPC9nPgoJCQkJCQkJPGRlZnM+CgkJCQkJCQkJPGZpbHRlciBpZD0iQWRvYmVfT3BhY2l0eU1hc2tGaWx0ZXJfMl8iIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeD0iNjEuNCIgeT0iMjQuMiIgd2lkdGg9IjI1LjMiIGhlaWdodD0iMjUuMyI+CgkJCQkJCQkJCTxmZUNvbG9yTWF0cml4ICB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMSAwIDAgMCAwICAwIDEgMCAwIDAgIDAgMCAxIDAgMCAgMCAwIDAgMSAwIi8+CgkJCQkJCQkJPC9maWx0ZXI+CgkJCQkJCQk8L2RlZnM+CgkJCQkJCQk8bWFzayBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSI2MS40IiB5PSIyNC4yIiB3aWR0aD0iMjUuMyIgaGVpZ2h0PSIyNS4zIiBpZD0ibWFzay02XzFfIj4KCQkJCQkJCQk8ZyBjbGFzcz0ic3Q1Ij4KCQkJCQkJCQkJPHBhdGggaWQ9InBhdGgtNV8xXyIgY2xhc3M9InN0MSIgZD0iTTU5LjQtMS4xSDIwLjdjLTMuNywwLTYuOCwzLjEtNi44LDYuOHY4Ni4zYzAsMy43LDMuMSw2LjgsNi44LDYuOGg1OS4xCgkJCQkJCQkJCQljMy43LDAsNi44LTMuMSw2LjgtNi44VjI2LjJMNTkuNC0xLjF6Ii8+CgkJCQkJCQkJPC9nPgoJCQkJCQkJPC9tYXNrPgoJCQkJCQkJCgkJCQkJCQkJPGxpbmVhckdyYWRpZW50IGlkPSJQYXRoXzdfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9Ii0yMzAuNjY5MSIgeTE9IjQ0Ny4zMDMiIHgyPSItMjMwLjY2OTEiIHkyPSI0NDUuODk4NSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxNi40NTIgMCAwIC0xNi40NDgzIDM4NjguOTY4OCA3MzgzLjc2NDIpIj4KCQkJCQkJCQk8c3RvcCAgb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojMjYzMjM4O3N0b3Atb3BhY2l0eTowLjIiLz4KCQkJCQkJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojMjYzMjM4O3N0b3Atb3BhY2l0eToyLjAwMDAwMGUtMDIiLz4KCQkJCQkJCTwvbGluZWFyR3JhZGllbnQ+CgkJCQkJCQk8cG9seWdvbiBpZD0iUGF0aF8xXyIgY2xhc3M9InN0NiIgcG9pbnRzPSI2MS40LDI0LjIgODYuNiw0OS41IDg2LjYsMjYuMiAJCQkJCQkJIi8+CgkJCQkJCTwvZz4KCQkJCQkJPGcgaWQ9IkNsaXBwZWRfM18iPgoJCQkJCQkJPGcgaWQ9IlNWR0lEXzRfIj4KCQkJCQkJCTwvZz4KCQkJCQkJCTxkZWZzPgoJCQkJCQkJCTxmaWx0ZXIgaWQ9IkFkb2JlX09wYWNpdHlNYXNrRmlsdGVyXzNfIiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjU5LjQiIHk9Ii0xLjEiIHdpZHRoPSIyNy4zIiBoZWlnaHQ9IjI3LjMiPgoJCQkJCQkJCQk8ZmVDb2xvck1hdHJpeCAgdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjEgMCAwIDAgMCAgMCAxIDAgMCAwICAwIDAgMSAwIDAgIDAgMCAwIDEgMCIvPgoJCQkJCQkJCTwvZmlsdGVyPgoJCQkJCQkJPC9kZWZzPgoJCQkJCQkJPG1hc2sgbWFza1VuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeD0iNTkuNCIgeT0iLTEuMSIgd2lkdGg9IjI3LjMiIGhlaWdodD0iMjcuMyIgaWQ9Im1hc2stOV8xXyI+CgkJCQkJCQkJPGcgY2xhc3M9InN0NyI+CgkJCQkJCQkJCTxwYXRoIGlkPSJwYXRoLThfMV8iIGNsYXNzPSJzdDEiIGQ9Ik01OS40LTEuMUgyMC43Yy0zLjcsMC02LjgsMy4xLTYuOCw2Ljh2ODYuM2MwLDMuNywzLjEsNi44LDYuOCw2LjhoNTkuMQoJCQkJCQkJCQkJYzMuNywwLDYuOC0zLjEsNi44LTYuOFYyNi4yTDU5LjQtMS4xeiIvPgoJCQkJCQkJCTwvZz4KCQkJCQkJCTwvbWFzaz4KCQkJCQkJCTxnIGlkPSJHcm91cCIgY2xhc3M9InN0OCI+CgkJCQkJCQkJPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjYuNjI1MDAwLCAtMi45NTgzMzMpIj4KCQkJCQkJCQkJPHBhdGggaWQ9IlBhdGhfMl8iIGNsYXNzPSJzdDkiIGQ9Ik0zMi43LDEuOXYyMC41YzAsMy44LDMuMSw2LjgsNi44LDYuOEg2MEwzMi43LDEuOXoiLz4KCQkJCQkJCQk8L2c+CgkJCQkJCQk8L2c+CgkJCQkJCTwvZz4KCQkJCQkJPGcgaWQ9IkNsaXBwZWRfNF8iPgoJCQkJCQkJPGcgaWQ9IlNWR0lEXzVfIj4KCQkJCQkJCTwvZz4KCQkJCQkJCTxkZWZzPgoJCQkJCQkJCTxmaWx0ZXIgaWQ9IkFkb2JlX09wYWNpdHlNYXNrRmlsdGVyXzRfIiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjEzLjkiIHk9Ii0xLjEiIHdpZHRoPSI0NS40IiBoZWlnaHQ9IjcuNCI+CgkJCQkJCQkJCTxmZUNvbG9yTWF0cml4ICB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMSAwIDAgMCAwICAwIDEgMCAwIDAgIDAgMCAxIDAgMCAgMCAwIDAgMSAwIi8+CgkJCQkJCQkJPC9maWx0ZXI+CgkJCQkJCQk8L2RlZnM+CgkJCQkJCQk8bWFzayBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSIxMy45IiB5PSItMS4xIiB3aWR0aD0iNDUuNCIgaGVpZ2h0PSI3LjQiIGlkPSJtYXNrLTExXzFfIj4KCQkJCQkJCQk8ZyBjbGFzcz0ic3QxMCI+CgkJCQkJCQkJCTxwYXRoIGlkPSJwYXRoLTEwXzFfIiBjbGFzcz0ic3QxIiBkPSJNNTkuNC0xLjFIMjAuN2MtMy43LDAtNi44LDMuMS02LjgsNi44djg2LjNjMCwzLjcsMy4xLDYuOCw2LjgsNi44aDU5LjEKCQkJCQkJCQkJCWMzLjcsMCw2LjgtMy4xLDYuOC02LjhWMjYuMkw1OS40LTEuMXoiLz4KCQkJCQkJCQk8L2c+CgkJCQkJCQk8L21hc2s+CgkJCQkJCQk8cGF0aCBpZD0iUGF0aF8zXyIgY2xhc3M9InN0MTEiIGQ9Ik0yMC43LTEuMWMtMy43LDAtNi44LDMuMS02LjgsNi44djAuNmMwLTMuNywzLjEtNi44LDYuOC02LjhoMzguNnYtMC42SDIwLjd6Ii8+CgkJCQkJCTwvZz4KCQkJCQkJPGcgaWQ9IkNsaXBwZWRfNV8iPgoJCQkJCQkJPGcgaWQ9IlNWR0lEXzZfIj4KCQkJCQkJCTwvZz4KCQkJCQkJCTxkZWZzPgoJCQkJCQkJCTxmaWx0ZXIgaWQ9IkFkb2JlX09wYWNpdHlNYXNrRmlsdGVyXzVfIiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjEzLjkiIHk9IjkxLjUiIHdpZHRoPSI3Mi43IiBoZWlnaHQ9IjcuNCI+CgkJCQkJCQkJCTxmZUNvbG9yTWF0cml4ICB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMSAwIDAgMCAwICAwIDEgMCAwIDAgIDAgMCAxIDAgMCAgMCAwIDAgMSAwIi8+CgkJCQkJCQkJPC9maWx0ZXI+CgkJCQkJCQk8L2RlZnM+CgkJCQkJCQk8bWFzayBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSIxMy45IiB5PSI5MS41IiB3aWR0aD0iNzIuNyIgaGVpZ2h0PSI3LjQiIGlkPSJtYXNrLTEzXzFfIj4KCQkJCQkJCQk8ZyBjbGFzcz0ic3QxMiI+CgkJCQkJCQkJCTxwYXRoIGlkPSJwYXRoLTEyXzFfIiBjbGFzcz0ic3QxIiBkPSJNNTkuNC0xLjFIMjAuN2MtMy43LDAtNi44LDMuMS02LjgsNi44djg2LjNjMCwzLjcsMy4xLDYuOCw2LjgsNi44aDU5LjEKCQkJCQkJCQkJCWMzLjcsMCw2LjgtMy4xLDYuOC02LjhWMjYuMkw1OS40LTEuMXoiLz4KCQkJCQkJCQk8L2c+CgkJCQkJCQk8L21hc2s+CgkJCQkJCQk8cGF0aCBpZD0iUGF0aF80XyIgY2xhc3M9InN0MTMiIGQ9Ik03OS44LDk4LjNIMjAuN2MtMy43LDAtNi44LTMuMS02LjgtNi44djAuNmMwLDMuNywzLjEsNi44LDYuOCw2LjhoNTkuMQoJCQkJCQkJCWMzLjcsMCw2LjgtMy4xLDYuOC02Ljh2LTAuNkM4Ni42LDk1LjMsODMuNiw5OC4zLDc5LjgsOTguM3oiLz4KCQkJCQkJPC9nPgoJCQkJCQk8ZyBpZD0iQ2xpcHBlZF82XyI+CgkJCQkJCQk8ZyBpZD0iU1ZHSURfN18iPgoJCQkJCQkJPC9nPgoJCQkJCQkJPGRlZnM+CgkJCQkJCQkJPGZpbHRlciBpZD0iQWRvYmVfT3BhY2l0eU1hc2tGaWx0ZXJfNl8iIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeD0iNTkuNCIgeT0iMTkuNCIgd2lkdGg9IjI3LjMiIGhlaWdodD0iNy40Ij4KCQkJCQkJCQkJPGZlQ29sb3JNYXRyaXggIHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIxIDAgMCAwIDAgIDAgMSAwIDAgMCAgMCAwIDEgMCAwICAwIDAgMCAxIDAiLz4KCQkJCQkJCQk8L2ZpbHRlcj4KCQkJCQkJCTwvZGVmcz4KCQkJCQkJCTxtYXNrIG1hc2tVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjU5LjQiIHk9IjE5LjQiIHdpZHRoPSIyNy4zIiBoZWlnaHQ9IjcuNCIgaWQ9Im1hc2stMTVfMV8iPgoJCQkJCQkJCTxnIGNsYXNzPSJzdDE0Ij4KCQkJCQkJCQkJPHBhdGggaWQ9InBhdGgtMTRfMV8iIGNsYXNzPSJzdDEiIGQ9Ik01OS40LTEuMUgyMC43Yy0zLjcsMC02LjgsMy4xLTYuOCw2Ljh2ODYuM2MwLDMuNywzLjEsNi44LDYuOCw2LjhoNTkuMQoJCQkJCQkJCQkJYzMuNywwLDYuOC0zLjEsNi44LTYuOFYyNi4yTDU5LjQtMS4xeiIvPgoJCQkJCQkJCTwvZz4KCQkJCQkJCTwvbWFzaz4KCQkJCQkJCTxwYXRoIGlkPSJQYXRoXzVfIiBjbGFzcz0ic3QxNSIgZD0iTTY2LjIsMjYuMmMtMy44LDAtNi44LTMuMS02LjgtNi44VjIwYzAsMy44LDMuMSw2LjgsNi44LDYuOGgyMC41di0wLjZINjYuMnoiLz4KCQkJCQkJPC9nPgoJCQkJCTwvZz4KCQkJCQkKCQkJCQkJPHJhZGlhbEdyYWRpZW50IGlkPSJQYXRoXzExXyIgY3g9Ii0yNDIuNzYxNyIgY3k9IjQ2Mi41NzkzIiByPSIyLjQ3NzEiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoNDcuMzMzMyAwIDAgLTQ3LjMzMzQgMTE1MDYuOTQ0MyAyMTg5Ny4wNzgxKSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgoJCQkJCQk8c3RvcCAgb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojRkZGRkZGO3N0b3Atb3BhY2l0eTowLjEiLz4KCQkJCQkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6I0ZGRkZGRjtzdG9wLW9wYWNpdHk6MCIvPgoJCQkJCTwvcmFkaWFsR3JhZGllbnQ+CgkJCQkJPHBhdGggaWQ9IlBhdGhfNl8iIGNsYXNzPSJzdDE2IiBkPSJNNTkuNC0xLjFIMjAuN2MtMy43LDAtNi44LDMuMS02LjgsNi44djg2LjNjMCwzLjcsMy4xLDYuOCw2LjgsNi44aDU5LjEKCQkJCQkJYzMuNywwLDYuOC0zLjEsNi44LTYuOFYyNi4yTDU5LjQtMS4xeiIvPgoJCQkJPC9nPgoJCQk8L2c+CgkJPC9nPgoJPC9nPgo8L2c+Cjwvc3ZnPgo=';
24
+ }
25
+ getScopes(applicationInstall) {
26
+ return ['https://www.googleapis.com/auth/spreadsheets'];
27
+ }
28
+ }
29
+ exports.default = GoogleSheetApplication;
@@ -0,0 +1,23 @@
1
+ {
2
+ "name": "@orchesty/connector-google-sheet",
3
+ "description": "",
4
+ "version": "0.0.0",
5
+ "license": "Apache-2.0",
6
+ "url": "https://github.com/Orchesty/orchesty-nodejs-connectors",
7
+ "repository": "https://github.com/Orchesty/orchesty-nodejs-connectors",
8
+ "scripts": {
9
+ "build": "rm -rf dist && rm -rf tsconfig.prod.tsbuildinfo && tsc -d -p tsconfig.prod.json && cp package.json ./dist/package.json",
10
+ "test": "jest --coverage --forceExit --passWithNoTests",
11
+ "lint": "eslint src --fix",
12
+ "lint-ci": "eslint src"
13
+ },
14
+ "keywords": [],
15
+ "author": "info@hanaboso.com",
16
+ "dependencies": {
17
+ "@orchesty/connector-google-common": "workspace:*",
18
+ "@orchesty/nodejs-sdk": "^4.3.6"
19
+ },
20
+ "engines": {
21
+ "node": ">=24"
22
+ }
23
+ }
package/jest.config.js ADDED
@@ -0,0 +1,14 @@
1
+
2
+ const baseConfig = require('../../../jest.config.js');
3
+
4
+ module.exports = {
5
+ ...baseConfig,
6
+ roots: ["<rootDir>/src"],
7
+ setupFiles: ["<rootDir>/../../../.jest/testEnvs.ts"],
8
+ setupFilesAfterEnv: ["<rootDir>/../../../.jest/testLifecycle.ts"],
9
+ globalSetup: "<rootDir>/../../../.jest/globalSetup.ts",
10
+ moduleNameMapper: {
11
+ "^@orchesty/nodejs-connectors/test/(.*)$": "<rootDir>/../../../test/$1",
12
+ "^@orchesty/nodejs-connectors/lib/(.*)$": "<rootDir>/../../../lib/$1",
13
+ },
14
+ }
package/package.json ADDED
@@ -0,0 +1,23 @@
1
+ {
2
+ "name": "@orchesty/connector-google-sheet",
3
+ "description": "",
4
+ "version": "1.0.0",
5
+ "license": "Apache-2.0",
6
+ "url": "https://github.com/Orchesty/orchesty-nodejs-connectors",
7
+ "repository": "https://github.com/Orchesty/orchesty-nodejs-connectors",
8
+ "keywords": [],
9
+ "author": "info@hanaboso.com",
10
+ "dependencies": {
11
+ "@orchesty/nodejs-sdk": "^4.3.6",
12
+ "@orchesty/connector-google-common": "1.0.0"
13
+ },
14
+ "engines": {
15
+ "node": ">=24"
16
+ },
17
+ "scripts": {
18
+ "build": "rm -rf dist && rm -rf tsconfig.prod.tsbuildinfo && tsc -d -p tsconfig.prod.json && cp package.json ./dist/package.json",
19
+ "test": "jest --coverage --forceExit --passWithNoTests",
20
+ "lint": "eslint src --fix",
21
+ "lint-ci": "eslint src"
22
+ }
23
+ }
@@ -0,0 +1,88 @@
1
+ import AConnector from '@orchesty/nodejs-sdk/dist/lib/Connector/AConnector';
2
+ import { HttpMethods } from '@orchesty/nodejs-sdk/dist/lib/Transport/HttpMethods';
3
+ import ProcessDto from '@orchesty/nodejs-sdk/dist/lib/Utils/ProcessDto';
4
+ import { checkParams } from '@orchesty/nodejs-sdk/dist/lib/Utils/Validations';
5
+ import GoogleSheetApplication from '../GoogleSheetApplication';
6
+
7
+ const GOOGLE_SHEET_CREATE_SPREADSHEET = '/v4/spreadsheets';
8
+
9
+ interface IGoogleSheetSpreadsheet {
10
+ name: string;
11
+ data: string[][];
12
+ }
13
+
14
+ interface ISheet {
15
+ rowData: IRowData[];
16
+ }
17
+
18
+ interface IRowData {
19
+ values: IValues[];
20
+ }
21
+
22
+ interface IValues {
23
+ userEnteredValue: IUserEnteredValue;
24
+ }
25
+
26
+ interface IUserEnteredValue {
27
+ stringValue: string;
28
+ }
29
+
30
+ export default class GoogleDriveUploadFileConnector extends AConnector {
31
+
32
+ public getName(): string {
33
+ return 'google-sheet-create-spreadsheet';
34
+ }
35
+
36
+ public async processAction(dto: ProcessDto<IGoogleSheetSpreadsheet>): Promise<ProcessDto> {
37
+ checkParams(
38
+ dto.getJsonData(),
39
+ ['name', 'data'],
40
+ );
41
+
42
+ const {
43
+ name,
44
+ data: innerData,
45
+ } = dto.getJsonData();
46
+
47
+ const application = this.getApplication<GoogleSheetApplication>();
48
+ const applicationInstall = await this.getApplicationInstallFromProcess(dto);
49
+
50
+ const data = {
51
+ properties: {
52
+ title: name,
53
+ },
54
+ sheets: [
55
+ {
56
+ properties: {
57
+ title: `Sheet ${name} #1`,
58
+ },
59
+ data: this.parseData(innerData),
60
+ },
61
+ ],
62
+ };
63
+
64
+ const request = await application.getRequestDto(
65
+ dto,
66
+ applicationInstall,
67
+ HttpMethods.POST,
68
+ GOOGLE_SHEET_CREATE_SPREADSHEET,
69
+ data,
70
+ );
71
+
72
+ const response = await this.getSender().send(request, [200]);
73
+ dto.setData(response.getBody());
74
+
75
+ return dto;
76
+ }
77
+
78
+ private parseData(data: string[][]): ISheet {
79
+ return {
80
+ rowData: data.map((item) => ({
81
+ values: item.map((value) => ({
82
+ userEnteredValue: { stringValue: value },
83
+ })),
84
+ })),
85
+ };
86
+ }
87
+
88
+ }
@@ -0,0 +1,33 @@
1
+ import AGoogle from '@orchesty/connector-google-common/src/AGoogle';
2
+ import { ApplicationInstall } from '@orchesty/nodejs-sdk/dist/lib/Application/Database/ApplicationInstall';
3
+
4
+ export const BASE_URL = 'https://sheets.googleapis.com';
5
+
6
+ export default class GoogleSheetApplication extends AGoogle {
7
+
8
+ public getName(): string {
9
+ return 'google-sheet';
10
+ }
11
+
12
+ public getPublicName(): string {
13
+ return 'GoogleSheet';
14
+ }
15
+
16
+ public getBaseUrl(): string {
17
+ return BASE_URL;
18
+ }
19
+
20
+ public getDescription(): string {
21
+ return 'Create, edit, and share spreadsheets wherever you are';
22
+ }
23
+
24
+ public getLogo(): string {
25
+ return 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI1LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IlZyc3R2YV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTAwIDEwMDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWx0ZXI6dXJsKCNBZG9iZV9PcGFjaXR5TWFza0ZpbHRlcik7fQoJLnN0MXtmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDtmaWxsOiNGRkZGRkY7fQoJLnN0MnttYXNrOnVybCgjbWFzay0yXzFfKTtmaWxsOiMwRjlENTg7fQoJLnN0M3tmaWx0ZXI6dXJsKCNBZG9iZV9PcGFjaXR5TWFza0ZpbHRlcl8xXyk7fQoJLnN0NHttYXNrOnVybCgjbWFzay00XzFfKTtmaWxsOiNGMUYxRjE7fQoJLnN0NXtmaWx0ZXI6dXJsKCNBZG9iZV9PcGFjaXR5TWFza0ZpbHRlcl8yXyk7fQoJLnN0NnttYXNrOnVybCgjbWFzay02XzFfKTtmaWxsOnVybCgjUGF0aF83Xyk7fQoJLnN0N3tmaWx0ZXI6dXJsKCNBZG9iZV9PcGFjaXR5TWFza0ZpbHRlcl8zXyk7fQoJLnN0OHttYXNrOnVybCgjbWFzay05XzFfKTt9Cgkuc3Q5e2ZpbGw6Izg3Q0VBQzt9Cgkuc3QxMHtmaWx0ZXI6dXJsKCNBZG9iZV9PcGFjaXR5TWFza0ZpbHRlcl80Xyk7fQoJLnN0MTF7bWFzazp1cmwoI21hc2stMTFfMV8pO2ZpbGw6I0ZGRkZGRjtmaWxsLW9wYWNpdHk6MC4yO30KCS5zdDEye2ZpbHRlcjp1cmwoI0Fkb2JlX09wYWNpdHlNYXNrRmlsdGVyXzVfKTt9Cgkuc3QxM3ttYXNrOnVybCgjbWFzay0xM18xXyk7ZmlsbDojMjYzMjM4O2ZpbGwtb3BhY2l0eTowLjI7fQoJLnN0MTR7ZmlsdGVyOnVybCgjQWRvYmVfT3BhY2l0eU1hc2tGaWx0ZXJfNl8pO30KCS5zdDE1e21hc2s6dXJsKCNtYXNrLTE1XzFfKTtmaWxsOiMyNjMyMzg7ZmlsbC1vcGFjaXR5OjAuMTt9Cgkuc3QxNntmaWxsOnVybCgjUGF0aF8xMV8pO30KPC9zdHlsZT4KPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+CjxnIGlkPSJQYWdlLTEiPgoJPGcgaWQ9IkNvbnN1bWVyLUFwcHMtU2hlZXRzLUxhcmdlLVZELVI4LSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTQ1MS4wMDAwMDAsIC00NTEuMDAwMDAwKSI+CgkJPGcgaWQ9Ikhlcm8iIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAuMDAwMDAwLCA2My4wMDAwMDApIj4KCQkJPGcgaWQ9IlBlcnNvbmFsIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyNzcuMDAwMDAwLCAyOTkuMDAwMDAwKSI+CgkJCQk8ZyBpZD0iU2hlZXRzLWljb24iIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE3NC44MzMzMzMsIDg5Ljk1ODMzMykiPgoJCQkJCTxnIGlkPSJHcm91cF8xXyI+CgkJCQkJCTxnIGlkPSJDbGlwcGVkIj4KCQkJCQkJCTxnIGlkPSJTVkdJRF8xXyI+CgkJCQkJCQk8L2c+CgkJCQkJCQk8ZGVmcz4KCQkJCQkJCQk8ZmlsdGVyIGlkPSJBZG9iZV9PcGFjaXR5TWFza0ZpbHRlciIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSIxMy45IiB5PSItMS4xIiB3aWR0aD0iNzIuNyIgaGVpZ2h0PSIxMDAiPgoJCQkJCQkJCQk8ZmVDb2xvck1hdHJpeCAgdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjEgMCAwIDAgMCAgMCAxIDAgMCAwICAwIDAgMSAwIDAgIDAgMCAwIDEgMCIvPgoJCQkJCQkJCTwvZmlsdGVyPgoJCQkJCQkJPC9kZWZzPgoJCQkJCQkJPG1hc2sgbWFza1VuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeD0iMTMuOSIgeT0iLTEuMSIgd2lkdGg9IjcyLjciIGhlaWdodD0iMTAwIiBpZD0ibWFzay0yXzFfIj4KCQkJCQkJCQk8ZyBjbGFzcz0ic3QwIj4KCQkJCQkJCQkJPHBhdGggaWQ9InBhdGgtMV8xXyIgY2xhc3M9InN0MSIgZD0iTTU5LjQtMS4xSDIwLjdjLTMuNywwLTYuOCwzLjEtNi44LDYuOHY4Ni4zYzAsMy43LDMuMSw2LjgsNi44LDYuOGg1OS4xCgkJCQkJCQkJCQljMy43LDAsNi44LTMuMSw2LjgtNi44VjI2LjJMNTkuNC0xLjF6Ii8+CgkJCQkJCQkJPC9nPgoJCQkJCQkJPC9tYXNrPgoJCQkJCQkJPHBhdGggaWQ9IlBhdGgiIGNsYXNzPSJzdDIiIGQ9Ik01OS40LTEuMUgyMC43Yy0zLjcsMC02LjgsMy4xLTYuOCw2Ljh2ODYuM2MwLDMuNywzLjEsNi44LDYuOCw2LjhoNTkuMQoJCQkJCQkJCWMzLjcsMCw2LjgtMy4xLDYuOC02LjhWMjYuMkw3MC43LDE0LjhMNTkuNC0xLjF6Ii8+CgkJCQkJCTwvZz4KCQkJCQkJPGcgaWQ9IkNsaXBwZWRfMV8iPgoJCQkJCQkJPGcgaWQ9IlNWR0lEXzJfIj4KCQkJCQkJCTwvZz4KCQkJCQkJCTxkZWZzPgoJCQkJCQkJCTxmaWx0ZXIgaWQ9IkFkb2JlX09wYWNpdHlNYXNrRmlsdGVyXzFfIiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjMyLjEiIHk9IjQ3LjgiIHdpZHRoPSIzNi40IiBoZWlnaHQ9IjMyLjkiPgoJCQkJCQkJCQk8ZmVDb2xvck1hdHJpeCAgdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjEgMCAwIDAgMCAgMCAxIDAgMCAwICAwIDAgMSAwIDAgIDAgMCAwIDEgMCIvPgoJCQkJCQkJCTwvZmlsdGVyPgoJCQkJCQkJPC9kZWZzPgoJCQkJCQkJPG1hc2sgbWFza1VuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeD0iMzIuMSIgeT0iNDcuOCIgd2lkdGg9IjM2LjQiIGhlaWdodD0iMzIuOSIgaWQ9Im1hc2stNF8xXyI+CgkJCQkJCQkJPGcgY2xhc3M9InN0MyI+CgkJCQkJCQkJCTxwYXRoIGlkPSJwYXRoLTNfMV8iIGNsYXNzPSJzdDEiIGQ9Ik01OS40LTEuMUgyMC43Yy0zLjcsMC02LjgsMy4xLTYuOCw2Ljh2ODYuM2MwLDMuNywzLjEsNi44LDYuOCw2LjhoNTkuMQoJCQkJCQkJCQkJYzMuNywwLDYuOC0zLjEsNi44LTYuOFYyNi4yTDU5LjQtMS4xeiIvPgoJCQkJCQkJCTwvZz4KCQkJCQkJCTwvbWFzaz4KCQkJCQkJCTxwYXRoIGlkPSJTaGFwZSIgY2xhc3M9InN0NCIgZD0iTTMyLjEsNDcuOHYzMi45aDM2LjRWNDcuOEgzMi4xeiBNNDgsNzYuMkgzNi42di01LjdINDhWNzYuMnogTTQ4LDY3LjFIMzYuNnYtNS43SDQ4VjY3LjF6CgkJCQkJCQkJIE00OCw1OEgzNi42di01LjdINDhWNTh6IE02My45LDc2LjJINTIuNXYtNS43aDExLjRWNzYuMnogTTYzLjksNjcuMUg1Mi41di01LjdoMTEuNFY2Ny4xeiBNNjMuOSw1OEg1Mi41di01LjdoMTEuNFY1OHoiLz4KCQkJCQkJPC9nPgoJCQkJCQk8ZyBpZD0iQ2xpcHBlZF8yXyI+CgkJCQkJCQk8ZyBpZD0iU1ZHSURfM18iPgoJCQkJCQkJPC9nPgoJCQkJCQkJPGRlZnM+CgkJCQkJCQkJPGZpbHRlciBpZD0iQWRvYmVfT3BhY2l0eU1hc2tGaWx0ZXJfMl8iIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeD0iNjEuNCIgeT0iMjQuMiIgd2lkdGg9IjI1LjMiIGhlaWdodD0iMjUuMyI+CgkJCQkJCQkJCTxmZUNvbG9yTWF0cml4ICB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMSAwIDAgMCAwICAwIDEgMCAwIDAgIDAgMCAxIDAgMCAgMCAwIDAgMSAwIi8+CgkJCQkJCQkJPC9maWx0ZXI+CgkJCQkJCQk8L2RlZnM+CgkJCQkJCQk8bWFzayBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSI2MS40IiB5PSIyNC4yIiB3aWR0aD0iMjUuMyIgaGVpZ2h0PSIyNS4zIiBpZD0ibWFzay02XzFfIj4KCQkJCQkJCQk8ZyBjbGFzcz0ic3Q1Ij4KCQkJCQkJCQkJPHBhdGggaWQ9InBhdGgtNV8xXyIgY2xhc3M9InN0MSIgZD0iTTU5LjQtMS4xSDIwLjdjLTMuNywwLTYuOCwzLjEtNi44LDYuOHY4Ni4zYzAsMy43LDMuMSw2LjgsNi44LDYuOGg1OS4xCgkJCQkJCQkJCQljMy43LDAsNi44LTMuMSw2LjgtNi44VjI2LjJMNTkuNC0xLjF6Ii8+CgkJCQkJCQkJPC9nPgoJCQkJCQkJPC9tYXNrPgoJCQkJCQkJCgkJCQkJCQkJPGxpbmVhckdyYWRpZW50IGlkPSJQYXRoXzdfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9Ii0yMzAuNjY5MSIgeTE9IjQ0Ny4zMDMiIHgyPSItMjMwLjY2OTEiIHkyPSI0NDUuODk4NSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxNi40NTIgMCAwIC0xNi40NDgzIDM4NjguOTY4OCA3MzgzLjc2NDIpIj4KCQkJCQkJCQk8c3RvcCAgb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojMjYzMjM4O3N0b3Atb3BhY2l0eTowLjIiLz4KCQkJCQkJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojMjYzMjM4O3N0b3Atb3BhY2l0eToyLjAwMDAwMGUtMDIiLz4KCQkJCQkJCTwvbGluZWFyR3JhZGllbnQ+CgkJCQkJCQk8cG9seWdvbiBpZD0iUGF0aF8xXyIgY2xhc3M9InN0NiIgcG9pbnRzPSI2MS40LDI0LjIgODYuNiw0OS41IDg2LjYsMjYuMiAJCQkJCQkJIi8+CgkJCQkJCTwvZz4KCQkJCQkJPGcgaWQ9IkNsaXBwZWRfM18iPgoJCQkJCQkJPGcgaWQ9IlNWR0lEXzRfIj4KCQkJCQkJCTwvZz4KCQkJCQkJCTxkZWZzPgoJCQkJCQkJCTxmaWx0ZXIgaWQ9IkFkb2JlX09wYWNpdHlNYXNrRmlsdGVyXzNfIiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjU5LjQiIHk9Ii0xLjEiIHdpZHRoPSIyNy4zIiBoZWlnaHQ9IjI3LjMiPgoJCQkJCQkJCQk8ZmVDb2xvck1hdHJpeCAgdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjEgMCAwIDAgMCAgMCAxIDAgMCAwICAwIDAgMSAwIDAgIDAgMCAwIDEgMCIvPgoJCQkJCQkJCTwvZmlsdGVyPgoJCQkJCQkJPC9kZWZzPgoJCQkJCQkJPG1hc2sgbWFza1VuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeD0iNTkuNCIgeT0iLTEuMSIgd2lkdGg9IjI3LjMiIGhlaWdodD0iMjcuMyIgaWQ9Im1hc2stOV8xXyI+CgkJCQkJCQkJPGcgY2xhc3M9InN0NyI+CgkJCQkJCQkJCTxwYXRoIGlkPSJwYXRoLThfMV8iIGNsYXNzPSJzdDEiIGQ9Ik01OS40LTEuMUgyMC43Yy0zLjcsMC02LjgsMy4xLTYuOCw2Ljh2ODYuM2MwLDMuNywzLjEsNi44LDYuOCw2LjhoNTkuMQoJCQkJCQkJCQkJYzMuNywwLDYuOC0zLjEsNi44LTYuOFYyNi4yTDU5LjQtMS4xeiIvPgoJCQkJCQkJCTwvZz4KCQkJCQkJCTwvbWFzaz4KCQkJCQkJCTxnIGlkPSJHcm91cCIgY2xhc3M9InN0OCI+CgkJCQkJCQkJPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjYuNjI1MDAwLCAtMi45NTgzMzMpIj4KCQkJCQkJCQkJPHBhdGggaWQ9IlBhdGhfMl8iIGNsYXNzPSJzdDkiIGQ9Ik0zMi43LDEuOXYyMC41YzAsMy44LDMuMSw2LjgsNi44LDYuOEg2MEwzMi43LDEuOXoiLz4KCQkJCQkJCQk8L2c+CgkJCQkJCQk8L2c+CgkJCQkJCTwvZz4KCQkJCQkJPGcgaWQ9IkNsaXBwZWRfNF8iPgoJCQkJCQkJPGcgaWQ9IlNWR0lEXzVfIj4KCQkJCQkJCTwvZz4KCQkJCQkJCTxkZWZzPgoJCQkJCQkJCTxmaWx0ZXIgaWQ9IkFkb2JlX09wYWNpdHlNYXNrRmlsdGVyXzRfIiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjEzLjkiIHk9Ii0xLjEiIHdpZHRoPSI0NS40IiBoZWlnaHQ9IjcuNCI+CgkJCQkJCQkJCTxmZUNvbG9yTWF0cml4ICB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMSAwIDAgMCAwICAwIDEgMCAwIDAgIDAgMCAxIDAgMCAgMCAwIDAgMSAwIi8+CgkJCQkJCQkJPC9maWx0ZXI+CgkJCQkJCQk8L2RlZnM+CgkJCQkJCQk8bWFzayBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSIxMy45IiB5PSItMS4xIiB3aWR0aD0iNDUuNCIgaGVpZ2h0PSI3LjQiIGlkPSJtYXNrLTExXzFfIj4KCQkJCQkJCQk8ZyBjbGFzcz0ic3QxMCI+CgkJCQkJCQkJCTxwYXRoIGlkPSJwYXRoLTEwXzFfIiBjbGFzcz0ic3QxIiBkPSJNNTkuNC0xLjFIMjAuN2MtMy43LDAtNi44LDMuMS02LjgsNi44djg2LjNjMCwzLjcsMy4xLDYuOCw2LjgsNi44aDU5LjEKCQkJCQkJCQkJCWMzLjcsMCw2LjgtMy4xLDYuOC02LjhWMjYuMkw1OS40LTEuMXoiLz4KCQkJCQkJCQk8L2c+CgkJCQkJCQk8L21hc2s+CgkJCQkJCQk8cGF0aCBpZD0iUGF0aF8zXyIgY2xhc3M9InN0MTEiIGQ9Ik0yMC43LTEuMWMtMy43LDAtNi44LDMuMS02LjgsNi44djAuNmMwLTMuNywzLjEtNi44LDYuOC02LjhoMzguNnYtMC42SDIwLjd6Ii8+CgkJCQkJCTwvZz4KCQkJCQkJPGcgaWQ9IkNsaXBwZWRfNV8iPgoJCQkJCQkJPGcgaWQ9IlNWR0lEXzZfIj4KCQkJCQkJCTwvZz4KCQkJCQkJCTxkZWZzPgoJCQkJCQkJCTxmaWx0ZXIgaWQ9IkFkb2JlX09wYWNpdHlNYXNrRmlsdGVyXzVfIiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjEzLjkiIHk9IjkxLjUiIHdpZHRoPSI3Mi43IiBoZWlnaHQ9IjcuNCI+CgkJCQkJCQkJCTxmZUNvbG9yTWF0cml4ICB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMSAwIDAgMCAwICAwIDEgMCAwIDAgIDAgMCAxIDAgMCAgMCAwIDAgMSAwIi8+CgkJCQkJCQkJPC9maWx0ZXI+CgkJCQkJCQk8L2RlZnM+CgkJCQkJCQk8bWFzayBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSIxMy45IiB5PSI5MS41IiB3aWR0aD0iNzIuNyIgaGVpZ2h0PSI3LjQiIGlkPSJtYXNrLTEzXzFfIj4KCQkJCQkJCQk8ZyBjbGFzcz0ic3QxMiI+CgkJCQkJCQkJCTxwYXRoIGlkPSJwYXRoLTEyXzFfIiBjbGFzcz0ic3QxIiBkPSJNNTkuNC0xLjFIMjAuN2MtMy43LDAtNi44LDMuMS02LjgsNi44djg2LjNjMCwzLjcsMy4xLDYuOCw2LjgsNi44aDU5LjEKCQkJCQkJCQkJCWMzLjcsMCw2LjgtMy4xLDYuOC02LjhWMjYuMkw1OS40LTEuMXoiLz4KCQkJCQkJCQk8L2c+CgkJCQkJCQk8L21hc2s+CgkJCQkJCQk8cGF0aCBpZD0iUGF0aF80XyIgY2xhc3M9InN0MTMiIGQ9Ik03OS44LDk4LjNIMjAuN2MtMy43LDAtNi44LTMuMS02LjgtNi44djAuNmMwLDMuNywzLjEsNi44LDYuOCw2LjhoNTkuMQoJCQkJCQkJCWMzLjcsMCw2LjgtMy4xLDYuOC02Ljh2LTAuNkM4Ni42LDk1LjMsODMuNiw5OC4zLDc5LjgsOTguM3oiLz4KCQkJCQkJPC9nPgoJCQkJCQk8ZyBpZD0iQ2xpcHBlZF82XyI+CgkJCQkJCQk8ZyBpZD0iU1ZHSURfN18iPgoJCQkJCQkJPC9nPgoJCQkJCQkJPGRlZnM+CgkJCQkJCQkJPGZpbHRlciBpZD0iQWRvYmVfT3BhY2l0eU1hc2tGaWx0ZXJfNl8iIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeD0iNTkuNCIgeT0iMTkuNCIgd2lkdGg9IjI3LjMiIGhlaWdodD0iNy40Ij4KCQkJCQkJCQkJPGZlQ29sb3JNYXRyaXggIHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIxIDAgMCAwIDAgIDAgMSAwIDAgMCAgMCAwIDEgMCAwICAwIDAgMCAxIDAiLz4KCQkJCQkJCQk8L2ZpbHRlcj4KCQkJCQkJCTwvZGVmcz4KCQkJCQkJCTxtYXNrIG1hc2tVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjU5LjQiIHk9IjE5LjQiIHdpZHRoPSIyNy4zIiBoZWlnaHQ9IjcuNCIgaWQ9Im1hc2stMTVfMV8iPgoJCQkJCQkJCTxnIGNsYXNzPSJzdDE0Ij4KCQkJCQkJCQkJPHBhdGggaWQ9InBhdGgtMTRfMV8iIGNsYXNzPSJzdDEiIGQ9Ik01OS40LTEuMUgyMC43Yy0zLjcsMC02LjgsMy4xLTYuOCw2Ljh2ODYuM2MwLDMuNywzLjEsNi44LDYuOCw2LjhoNTkuMQoJCQkJCQkJCQkJYzMuNywwLDYuOC0zLjEsNi44LTYuOFYyNi4yTDU5LjQtMS4xeiIvPgoJCQkJCQkJCTwvZz4KCQkJCQkJCTwvbWFzaz4KCQkJCQkJCTxwYXRoIGlkPSJQYXRoXzVfIiBjbGFzcz0ic3QxNSIgZD0iTTY2LjIsMjYuMmMtMy44LDAtNi44LTMuMS02LjgtNi44VjIwYzAsMy44LDMuMSw2LjgsNi44LDYuOGgyMC41di0wLjZINjYuMnoiLz4KCQkJCQkJPC9nPgoJCQkJCTwvZz4KCQkJCQkKCQkJCQkJPHJhZGlhbEdyYWRpZW50IGlkPSJQYXRoXzExXyIgY3g9Ii0yNDIuNzYxNyIgY3k9IjQ2Mi41NzkzIiByPSIyLjQ3NzEiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoNDcuMzMzMyAwIDAgLTQ3LjMzMzQgMTE1MDYuOTQ0MyAyMTg5Ny4wNzgxKSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgoJCQkJCQk8c3RvcCAgb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojRkZGRkZGO3N0b3Atb3BhY2l0eTowLjEiLz4KCQkJCQkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6I0ZGRkZGRjtzdG9wLW9wYWNpdHk6MCIvPgoJCQkJCTwvcmFkaWFsR3JhZGllbnQ+CgkJCQkJPHBhdGggaWQ9IlBhdGhfNl8iIGNsYXNzPSJzdDE2IiBkPSJNNTkuNC0xLjFIMjAuN2MtMy43LDAtNi44LDMuMS02LjgsNi44djg2LjNjMCwzLjcsMy4xLDYuOCw2LjgsNi44aDU5LjEKCQkJCQkJYzMuNywwLDYuOC0zLjEsNi44LTYuOFYyNi4yTDU5LjQtMS4xeiIvPgoJCQkJPC9nPgoJCQk8L2c+CgkJPC9nPgoJPC9nPgo8L2c+Cjwvc3ZnPgo=';
26
+ }
27
+
28
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
29
+ public getScopes(applicationInstall: ApplicationInstall): string[] {
30
+ return ['https://www.googleapis.com/auth/spreadsheets'];
31
+ }
32
+
33
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,8 @@
1
+ {
2
+ "extends": "../../../tsconfig.json",
3
+ "compilerOptions": {
4
+ "outDir": "./dist",
5
+ "composite": true
6
+ },
7
+ "include": ["src", "test", "../../../test"]
8
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "extends": "./tsconfig.json",
3
+ "compilerOptions": {
4
+ "rootDir": "./src",
5
+ },
6
+ "include": [
7
+ "src",
8
+ ],
9
+ "exclude": [
10
+ "node_modules",
11
+ "src/**/__tests__",
12
+ ]
13
+ }