@budibase/cli 3.22.3 → 3.22.5
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.
- package/dist/index.js +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -1527,7 +1527,7 @@ $1`)};cpe.parseAttributes=s(function(e){return Object.keys(e).map(function(r){va
|
|
|
1527
1527
|
`}s(mGe,"frontendWrapJS");var bes=ut(UWt()),ves=ut(m7()),Ses=ut(FWt()),wes=ut(HWt()),Tes=ut(QWt()),Ces=ut(yWt()),xes=ut(J4e()),Ies=ut(qWt()),Res=ut(JWt());var sXu={math:bes.default,array:ves.default,number:Ses.default,url:wes.default,string:Tes.default,comparison:Ces.default,object:xes.default,regex:Ies.default,uuid:Res.default},Oes=["sortBy"],oXu={date:dGe,duration:Epe},Bk;function vpe(){if(Bk)return Bk;Bk={};for(let t of Object.values(sXu))for(let[e,r]of Object.entries(t))Bk[e]=(...n)=>r(...n,{});Bk={...Bk,...oXu};for(let t of Oes)delete Bk[t];return Object.freeze(Bk),Bk}s(vpe,"getJsHelperList");var gGe=s(t=>`(function(){
|
|
1528
1528
|
${t}
|
|
1529
1529
|
})();`,"iifeWrapper");var b7=class t extends Error{constructor(){super(t.message);this.code=t.code}static{s(this,"JsTimeoutError")}static{this.message="Timed out while executing JS"}static{this.code="JS_TIMEOUT_ERROR"}},pH=class t extends Error{constructor(r){super(`error while running user-supplied JavaScript: ${r.toString()}`);this.userScriptError=r;this.code=t.code}static{s(this,"UserScriptError")}static{this.code="USER_SCRIPT_ERROR"}};var kes=ut(QMe());var AGe,wYt=s(t=>AGe=t,"setJSRunner"),Nes=s(()=>{AGe=void 0},"removeJSRunner"),SYt,aXu=s(t=>SYt=t,"setOnErrorLog"),cXu=s(t=>{if(!t||typeof t!="string")return t;let e=/\[+(.+)]+/,r=t.match(e);return r&&r[1]?r[1]:t},"removeSquareBrackets"),uXu=s(t=>t==="snippets"||t==="helpers"||t.startsWith("snippets.")||t.startsWith("helpers."),"isReservedKey"),lXu=s((t,e)=>{if(uXu(t))return;let r=/^(["'`]).*\1$/,n=e;return r.test(t)?t.substring(1,t.length-1):(t.split(".").forEach(i=>{if(n==null||typeof n!="object")return null;n=n[cXu(i)]}),n)},"getContextValue");function Des(handlebars,context){if(!Aes()||!AGe)throw new Error("JS disabled in environment.");try{let js=gGe(vYt(handlebars)),snippetMap={},snippetCache={};for(let t of context.snippets||[])snippetMap[t.name]=t.code;let clonedContext;bpe()?clonedContext=context:clonedContext=(0,kes.default)(context);let sandboxContext={$:t=>lXu(t,clonedContext),helpers:vpe(),snippets:new Proxy({},{get:function(_,name){return name in snippetCache||(snippetCache[name]=eval(gGe(snippetMap[name]))),snippetCache[name]}})},logs=[];if(!bpe()){let t=mGe(js).split(js)[0].split(`
|
|
1530
|
-
`).length,e=s(r=>(...n)=>{dH()||console[r](...n),n.forEach((o,a)=>{typeof o=="object"&&(n[a]=JSON.stringify(o))});let i=new Error().stack?.match(/<anonymous>:(\d+):\d+/)?.[1];logs.push({log:n,line:i?parseInt(i)-t:void 0,type:r})},"buildLogResponse");sandboxContext.console={log:e("log"),info:e("info"),debug:e("debug"),warn:e("warn"),error:e("error"),table:e("table")}}let res={data:AGe(js,sandboxContext),logs};return`{{${E7} js_result-${JSON.stringify(res)}}}`}catch(t){SYt&&SYt(t);let{noThrow:e=!0}=context.__opts||{};if(t.code==="ERR_SCRIPT_EXECUTION_TIMEOUT")return"Timed out while executing JS";if(t.code==="JS_REQUEST_TIMEOUT_ERROR")return t.message;if(t.code===b7.code)return b7.message;if(t.code===pH.code){if(e)return t.userScriptError.toString();throw t}if(t.name==="SyntaxError"){if(e)return t.toString();throw t}return"Error while executing JS"}}s(Des,"processJS");var fXu={"<":"<",">":">"};function dXu(t){return t==null||typeof t!="object"?!1:t.toString()==="[object Object]"||t.length>0&&typeof t[0]=="object"}s(dXu,"isObject");var pXu=[new Ok(fH.OBJECT,t=>new yGe.default.SafeString(JSON.stringify(t))),new Ok(fH.JS,Des,!1),new Ok(fH.DECODE_ID,t=>{if(!t)return[];let e=typeof t=="string"?t:t._id,r=decodeURIComponent(e).replace(/'/g,'"');try{let n=JSON.parse(r);return Array.isArray(n)?n:[n]}catch{return[t]}}),new Ok(fH.ALL,(t,e)=>{let{__opts:r}=e;if(dXu(t))return new yGe.default.SafeString(JSON.stringify(t));if(r&&r.onlyFound&&t==null)return r.input;if(t==null||typeof t!="string")return t??"";t&&t.string&&(t=t.string);let n=t;return r&&r.escapeNewlines&&(n=t.replace(/\n/g,"\\n")),n=new yGe.default.SafeString(n.replace(/&/g,"&")),n==null||typeof n!="string"?n:n.replace(/[<>]/g,i=>fXu[i]||i)}),new Ok(fH.LITERAL,t=>{if(t===void 0)return"";let e=typeof t,r=e==="object"?JSON.stringify(t):t;return`{{${E7} ${e}-${r}}}`})];function Pes(){return Object.values(fH).concat(pGe,_Yt)}s(Pes,"HelperNames");function TYt(t){for(let e of pXu)e.register(t)}s(TYt,"registerMinimum");function Bes(t){TYt(t),mes(t)}s(Bes,"registerAll");var Mes=["#","else","/"];var v7=class{static{s(this,"Preprocessor")}constructor(e,r){this.name=e,this.fn=r}process(e,r,n){let i=this.fn(r,n),o=e.indexOf(r);return bYt(e,o,r.length,i)}},Les=[new v7("swap-to-dot-notation",t=>{let e=t.indexOf("["),r=0;for(;e!==-1;){_es(t.charAt(e-1))&&(t=bYt(t,e+r,1,".[")),r=e+1;let n=t.substring(r+1).indexOf("[");e=n>0?r+1+n:-1}return t}),new v7("fix-functions",t=>{for(let e of Mes){let r=`{ ${e}`,n=`{${e}`;t=t.replace(new RegExp(r,"g"),n)}return t}),new v7("normalize-spaces",t=>t.replace(/{{(\s{2,})/g,"{{ ")),new v7("finalise",(t,e)=>{let n=!e?.noHelpers,i=t.slice(2,t.length-2);i.charAt(0)===" "&&(i=i.slice(1)),i.charAt(i.length-1)===" "&&(i=i.slice(0,i.length-1));let o=i.split(" ")[0];for(let c of Mes)if(o.includes(c))return t;let a=o.trim().toLowerCase();return n&&!e?.disabledHelpers?.includes(a)&&Pes().some(c=>a===c.toLowerCase())&&(i=`(${i})`),`{{ all ${i} }}`})];var CYt=class{static{s(this,"Postprocessor")}constructor(e,r){this.name=e,this.fn=r}process(e){return this.fn(e)}},xYt=[new CYt("convert-literals",t=>{if(typeof t!="string"||!t.includes(E7))return{result:t};let e=t.indexOf("-"),r=t.substring(12,e),n=t.substring(e+1,t.length-2);switch(r){case"string":return{result:n};case"number":return{result:parseFloat(n)};case"boolean":return{result:n==="true"};case"object":return{result:JSON.parse(n)};case"js_result":{let i=JSON.parse(n);return{result:i.data,logs:i.logs}}}return{result:n}})];function IYt(t,e,r){let n=[];for(let i of e){if(typeof t!="string")break;let o=new RegExp(hGe),a=t.match(o);if(a!=null)for(let c of a){let u=i.process(t,c,r||{});typeof u=="object"?("logs"in u&&u.logs&&(n=n.concat(u.logs)),t=u.result):t=u}}return{result:t,logs:n}}s(IYt,"process");function Ues(t,e){let r=Les;return e.noFinalise&&(r=r.filter(n=>n.name!=="finalise")),IYt(t,r,e).result}s(Ues,"preprocess");function Fes(t){return IYt(t,xYt).result}s(Fes,"postprocess");function qes(t){return IYt(t,xYt)}s(qes,"postprocessWithLogs");var kYt=(0,OYt.create)();Bes(kYt);var gXu=Object.keys(kYt.helpers),Hes=(0,OYt.create)();TYt(Hes);var AXu={noHelpers:!1,cacheTemplates:!1,noEscaping:!1,escapeNewlines:!1,noFinalise:!1};function yXu(t){return t?Object.keys(t).filter(r=>gXu.includes(r)):[]}s(yXu,"findOverlappingHelpers");var RYt={};function _Xu(t,e,r){e={...AXu,...e};let n=!e?.noHelpers,i=`${t}-${JSON.stringify(e)}`;if(e.cacheTemplates&&RYt[i])return RYt[i];let o=n?yXu(r):[];if(t=Ues(t,{...e,disabledHelpers:o}),r&&n&&o.length>0)for(let u of Ves(t))t=t.replace(u,Ees(u,o,"./"));e.noEscaping&&(t=bXu(t));let c=(e.noHelpers?Hes:kYt).compile(t,{strict:!1});return RYt[i]=c,c}s(_Xu,"createTemplate");function EXu(t,e,r){let n=t;if(typeof t!="string")throw new Error("Cannot process non-string types.");function i(o){let a=_Xu(o,r,e),c=Math.floor(Date.now()/1e3)*1e3,u=a({now:new Date(c).toISOString(),__opts:{...r,input:o},...e});return r?.logging?qes(u):Fes(u)}s(i,"process");try{if(r&&r.onlyFound){let o=[],a=Ves(t);for(let c of a){let u=i(c);typeof u=="object"&&"result"in u?(o=o.concat(u.logs||[]),t=t.replace(c,u.result)):t=t.replace(c,u)}return r?.logging?{result:t,logs:o}:t}else return i(t)}catch(o){let{noThrow:a=!0}=r||{};if(a)return n;throw o}}s(EXu,"processStringSyncInternal");function Ges(t,e,r){return EXu(t,e,{...r,logging:!1})}s(Ges,"processStringSync");function bXu(t){let e=yes(t);if(e==null)return t;let r=[...new Set(e)];for(let n of r){let i=new RegExp(`${n}(?!})`,"g");t=t.replace(i,`{${n}}`)}return t}s(bXu,"disableEscaping");function Ves(t){if(!t||typeof t!="string")return[];let e=new RegExp(EYt),r=t.match(e);return r??[]}s(Ves,"findHBSBlocks");function vXu(){let t=dH()?jes.default:Qes.default;wYt((e,r)=>{t.createContext(r);let n=mGe(e),i=t.runInNewContext(n,r);if(i.error)throw new pH(i.error);return i.result})}s(vXu,"browserJSSetup");function SXu(){bpe()?Nes():vXu()}s(SXu,"defaultJSSetup");SXu();var wXu=require("download"),TXu=require("tar"),CXu=["package.json.hbs","schema.json.hbs","README.md.hbs"];async function xXu(t){let e=await(0,$es.default)("https://api.github.com/repos/budibase/budibase-skeleton/releases/latest");if(e.status>=300)throw new Error("Failed to retrieve skeleton metadata");let r=await e.json();for(let n of r.assets)if(n.name&&n.name.includes(t))return n.browser_download_url;throw new Error("No skeleton found in latest release.")}s(xXu,"getSkeletonUrl");async function Wes(t,e){let r=await xXu(t),n=(0,_Ge.join)(zes.default.tmpdir(),"skeleton.tar.gz");hH.default.writeFileSync(n,await wXu(r)),hH.default.mkdirSync(e),await TXu.extract({file:n,C:e}),hH.default.rmSync(n)}s(Wes,"getSkeleton");async function Yes(t,e,r,n){for(let i of CXu){let o=(0,_Ge.join)(e,i),a=(0,_Ge.join)(e,i.substring(0,i.length-4)),c=hH.default.readFileSync(o,"utf8");if(!c)continue;let u=Ges(c,{name:e,description:r,version:n});hH.default.writeFileSync(a,u),hH.default.rmSync(o)}}s(Yes,"fleshOutSkeleton");iL();var mH=ut(require("fs"));kr();var Jes=ut(require("util")),Xes=ut(require("child_process"));var IXu=Jes.default.promisify(Xes.default.exec);async function Zes(t,e="./"){let{stdout:r}=await IXu(t,{cwd:e});return r}s(Zes,"exec");async function Kes(t){try{return await Zes(`${t} --version`),!0}catch{return!1}}s(Kes,"utilityInstalled");async function EGe(t,e="./"){let r=await Kes("yarn"),n=await Kes("npm");if(!r&&!n)throw new Error("Must have yarn or npm installed to run build.");let i=t==="install"?`npm ${t}`:`npm run ${t}`,o=r?`yarn ${t} --ignore-engines`:i;await Zes(o,e)}s(EGe,"runPkgCommand");var bGe=require("path");Ld();var RXu=require("find-free-port");function OXu(){if(!mH.default.existsSync("package.json"))throw new Error("Please run in a plugin directory - must contain package.json");if(!mH.default.existsSync("schema.json"))throw new Error("Please run in a plugin directory - must contain schema.json")}s(OXu,"checkInPlugin");async function kXu(t){return mH.default.readdirSync(process.cwd()).find(r=>r===".git")?!1:(console.log(au(`By default the plugin will be created in the directory "${t}"`)),console.log(au("if you are already in an empty directory, such as a new Git repo, you can disable this functionality.")),Yk("Create top level directory?"))}s(kXu,"askAboutTopLevel");async function NXu(t){let e=t.init||t;if(!e||!NZt.includes(e)){console.log(Cu("Please provide a type to init, either 'component', 'datasource' or 'automation'."));return}console.log(au("Lets get some details about your new plugin:"));let r=await nL("Name",`budibase-${e}`);if(mH.default.existsSync(r)){console.log(Cu("Directory by plugin name already exists, pick a new name."));return}let n=await nL("Description",`An amazing Budibase ${e}!`),i=await nL("Version","1.0.0"),o=await kXu(r);console.log(au("Retrieving project...")),await Wes(e,r),await Yes(e,r,n,i),console.log(au("Installing dependencies...")),await EGe("install",(0,bGe.join)(process.cwd(),r)),o?console.log(au(`Plugin created in directory "${r}"`)):(wVe(r,process.cwd()),console.log(au("Plugin created in current directory."))),dhe(Sx.PluginInit,{type:e,name:r,description:n,version:i})}s(NXu,"init");async function ets(){OXu(),console.log(au("Verifying plugin..."));let t=mH.default.readFileSync("schema.json","utf8"),e=mH.default.readFileSync("package.json","utf8"),r,n;try{let i=JSON.parse(t),o=JSON.parse(e);if(!o.name||!o.version||!o.description)throw new Error("package.json is missing one of 'name', 'version' or 'description'.");return r=o.name,n=o.version,x2e.validate(i),{name:r,version:n}}catch(i){i&&i.message&&i.message.includes("not valid JSON")?console.log(Cu(`schema.json is not valid JSON: ${i.message}`)):console.log(Cu(`Invalid schema/package.json: ${i.message}`))}}s(ets,"verify");async function DXu(){let t=await ets();if(!t?.name)return;console.log(ou("Verified!")),console.log(au("Building plugin...")),await EGe("build");let e=(0,bGe.join)("dist",`${t.name}-${t.version}.tar.gz`);console.log(ou(`Build complete - output in: ${e}`))}s(DXu,"build");async function PXu(){let t=await ets();if(!t?.name)return;let e=(0,bGe.join)("dist",`${t.name}-${t.version}.tar.gz`);console.log(au(`Watching - build in: ${e}`));try{await EGe("watch")}catch{console.log(ou("Watch exited."))}}s(PXu,"watch");async function BXu(){let t=await nL("Directory to watch","./"),[e]=await RXu(1e4),r="admin";await Ahe({init:"quick",single:!0,watchPluginDir:t,genUser:r,port:e,silent:!0}),await NH(),console.log(ou("Configuration has been written to docker-compose.yaml")),console.log(ou("Development environment started successfully - connect at: ")+au(`http://localhost:${e}`)),console.log(ou("Use the following credentials to login:")),console.log(ou("Email: ")+au(qVe)),console.log(ou("Password: ")+au(r))}s(BXu,"dev");var tts=new WS("plugins").addHelp("Custom plugins for Budibase, init, build and verify your components and datasources with this tool.").addSubOption("--init [type]","Init a new plugin project, with a type of either component or datasource.",NXu).addSubOption("--build","Build your plugin, this will verify and produce a final tarball for your project.",DXu).addSubOption("--watch","Automatically build any changes to your plugin.",PXu).addSubOption("--dev","Run a development environment which automatically watches the current directory.",BXu);function rts(){return[Ftr,htr,vYi,tts]}s(rts,"getCommands");var its=require("commander");Ld();var nts="3.22.3";async function LXu(){let t=new its.Command().addHelpCommand("help",F7("Help with Budibase commands.")).helpOption(!1).version(nts);for(let e of rts())e.configure(t);await t.parseAsync(process.argv)}s(LXu,"init");var UXu=["exit","SIGINT","SIGUSR1","SIGUSR2","uncaughtException"];UXu.forEach(t=>{process.on(t,e=>{e&&!isNaN(e)||e&&(console.error(Cu("Failed to run CLI command - please report with the following message:")),console.error(Cu(e)))})});LXu().catch(t=>{console.error("Unexpected error - ",t)});
|
|
1530
|
+
`).length,e=s(r=>(...n)=>{dH()||console[r](...n),n.forEach((o,a)=>{typeof o=="object"&&(n[a]=JSON.stringify(o))});let i=new Error().stack?.match(/<anonymous>:(\d+):\d+/)?.[1];logs.push({log:n,line:i?parseInt(i)-t:void 0,type:r})},"buildLogResponse");sandboxContext.console={log:e("log"),info:e("info"),debug:e("debug"),warn:e("warn"),error:e("error"),table:e("table")}}let res={data:AGe(js,sandboxContext),logs};return`{{${E7} js_result-${JSON.stringify(res)}}}`}catch(t){SYt&&SYt(t);let{noThrow:e=!0}=context.__opts||{};if(t.code==="ERR_SCRIPT_EXECUTION_TIMEOUT")return"Timed out while executing JS";if(t.code==="JS_REQUEST_TIMEOUT_ERROR")return t.message;if(t.code===b7.code)return b7.message;if(t.code===pH.code){if(e)return t.userScriptError.toString();throw t}if(t.name==="SyntaxError"){if(e)return t.toString();throw t}return"Error while executing JS"}}s(Des,"processJS");var fXu={"<":"<",">":">"};function dXu(t){return t==null||typeof t!="object"?!1:t.toString()==="[object Object]"||t.length>0&&typeof t[0]=="object"}s(dXu,"isObject");var pXu=[new Ok(fH.OBJECT,t=>new yGe.default.SafeString(JSON.stringify(t))),new Ok(fH.JS,Des,!1),new Ok(fH.DECODE_ID,t=>{if(!t)return[];let e=typeof t=="string"?t:t._id,r=decodeURIComponent(e).replace(/'/g,'"');try{let n=JSON.parse(r);return Array.isArray(n)?n:[n]}catch{return[t]}}),new Ok(fH.ALL,(t,e)=>{let{__opts:r}=e;if(dXu(t))return new yGe.default.SafeString(JSON.stringify(t));if(r&&r.onlyFound&&t==null)return r.input;if(t==null||typeof t!="string")return t??"";t&&t.string&&(t=t.string);let n=t;return r&&r.escapeNewlines&&(n=t.replace(/\n/g,"\\n")),n=new yGe.default.SafeString(n.replace(/&/g,"&")),n==null||typeof n!="string"?n:n.replace(/[<>]/g,i=>fXu[i]||i)}),new Ok(fH.LITERAL,t=>{if(t===void 0)return"";let e=typeof t,r=e==="object"?JSON.stringify(t):t;return`{{${E7} ${e}-${r}}}`})];function Pes(){return Object.values(fH).concat(pGe,_Yt)}s(Pes,"HelperNames");function TYt(t){for(let e of pXu)e.register(t)}s(TYt,"registerMinimum");function Bes(t){TYt(t),mes(t)}s(Bes,"registerAll");var Mes=["#","else","/"];var v7=class{static{s(this,"Preprocessor")}constructor(e,r){this.name=e,this.fn=r}process(e,r,n){let i=this.fn(r,n),o=e.indexOf(r);return bYt(e,o,r.length,i)}},Les=[new v7("swap-to-dot-notation",t=>{let e=t.indexOf("["),r=0;for(;e!==-1;){_es(t.charAt(e-1))&&(t=bYt(t,e+r,1,".[")),r=e+1;let n=t.substring(r+1).indexOf("[");e=n>0?r+1+n:-1}return t}),new v7("fix-functions",t=>{for(let e of Mes){let r=`{ ${e}`,n=`{${e}`;t=t.replace(new RegExp(r,"g"),n)}return t}),new v7("normalize-spaces",t=>t.replace(/{{(\s{2,})/g,"{{ ")),new v7("finalise",(t,e)=>{let n=!e?.noHelpers,i=t.slice(2,t.length-2);i.charAt(0)===" "&&(i=i.slice(1)),i.charAt(i.length-1)===" "&&(i=i.slice(0,i.length-1));let o=i.split(" ")[0];for(let c of Mes)if(o.includes(c))return t;let a=o.trim().toLowerCase();return n&&!e?.disabledHelpers?.includes(a)&&Pes().some(c=>a===c.toLowerCase())&&(i=`(${i})`),`{{ all ${i} }}`})];var CYt=class{static{s(this,"Postprocessor")}constructor(e,r){this.name=e,this.fn=r}process(e){return this.fn(e)}},xYt=[new CYt("convert-literals",t=>{if(typeof t!="string"||!t.includes(E7))return{result:t};let e=t.indexOf("-"),r=t.substring(12,e),n=t.substring(e+1,t.length-2);switch(r){case"string":return{result:n};case"number":return{result:parseFloat(n)};case"boolean":return{result:n==="true"};case"object":return{result:JSON.parse(n)};case"js_result":{let i=JSON.parse(n);return{result:i.data,logs:i.logs}}}return{result:n}})];function IYt(t,e,r){let n=[];for(let i of e){if(typeof t!="string")break;let o=new RegExp(hGe),a=t.match(o);if(a!=null)for(let c of a){let u=i.process(t,c,r||{});typeof u=="object"?("logs"in u&&u.logs&&(n=n.concat(u.logs)),t=u.result):t=u}}return{result:t,logs:n}}s(IYt,"process");function Ues(t,e){let r=Les;return e.noFinalise&&(r=r.filter(n=>n.name!=="finalise")),IYt(t,r,e).result}s(Ues,"preprocess");function Fes(t){return IYt(t,xYt).result}s(Fes,"postprocess");function qes(t){return IYt(t,xYt)}s(qes,"postprocessWithLogs");var kYt=(0,OYt.create)();Bes(kYt);var gXu=Object.keys(kYt.helpers),Hes=(0,OYt.create)();TYt(Hes);var AXu={noHelpers:!1,cacheTemplates:!1,noEscaping:!1,escapeNewlines:!1,noFinalise:!1};function yXu(t){return t?Object.keys(t).filter(r=>gXu.includes(r)):[]}s(yXu,"findOverlappingHelpers");var RYt={};function _Xu(t,e,r){e={...AXu,...e};let n=!e?.noHelpers,i=`${t}-${JSON.stringify(e)}`;if(e.cacheTemplates&&RYt[i])return RYt[i];let o=n?yXu(r):[];if(t=Ues(t,{...e,disabledHelpers:o}),r&&n&&o.length>0)for(let u of Ves(t))t=t.replace(u,Ees(u,o,"./"));e.noEscaping&&(t=bXu(t));let c=(e.noHelpers?Hes:kYt).compile(t,{strict:!1});return RYt[i]=c,c}s(_Xu,"createTemplate");function EXu(t,e,r){let n=t;if(typeof t!="string")throw new Error("Cannot process non-string types.");function i(o){let a=_Xu(o,r,e),c=Math.floor(Date.now()/1e3)*1e3,u=a({now:new Date(c).toISOString(),__opts:{...r,input:o},...e});return r?.logging?qes(u):Fes(u)}s(i,"process");try{if(r&&r.onlyFound){let o=[],a=Ves(t);for(let c of a){let u=i(c);typeof u=="object"&&"result"in u?(o=o.concat(u.logs||[]),t=t.replace(c,u.result)):t=t.replace(c,u)}return r?.logging?{result:t,logs:o}:t}else return i(t)}catch(o){let{noThrow:a=!0}=r||{};if(a)return n;throw o}}s(EXu,"processStringSyncInternal");function Ges(t,e,r){return EXu(t,e,{...r,logging:!1})}s(Ges,"processStringSync");function bXu(t){let e=yes(t);if(e==null)return t;let r=[...new Set(e)];for(let n of r){let i=new RegExp(`${n}(?!})`,"g");t=t.replace(i,`{${n}}`)}return t}s(bXu,"disableEscaping");function Ves(t){if(!t||typeof t!="string")return[];let e=new RegExp(EYt),r=t.match(e);return r??[]}s(Ves,"findHBSBlocks");function vXu(){let t=dH()?jes.default:Qes.default;wYt((e,r)=>{t.createContext(r);let n=mGe(e),i=t.runInNewContext(n,r);if(i.error)throw new pH(i.error);return i.result})}s(vXu,"browserJSSetup");function SXu(){bpe()?Nes():vXu()}s(SXu,"defaultJSSetup");SXu();var wXu=require("download"),TXu=require("tar"),CXu=["package.json.hbs","schema.json.hbs","README.md.hbs"];async function xXu(t){let e=await(0,$es.default)("https://api.github.com/repos/budibase/budibase-skeleton/releases/latest");if(e.status>=300)throw new Error("Failed to retrieve skeleton metadata");let r=await e.json();for(let n of r.assets)if(n.name&&n.name.includes(t))return n.browser_download_url;throw new Error("No skeleton found in latest release.")}s(xXu,"getSkeletonUrl");async function Wes(t,e){let r=await xXu(t),n=(0,_Ge.join)(zes.default.tmpdir(),"skeleton.tar.gz");hH.default.writeFileSync(n,await wXu(r)),hH.default.mkdirSync(e),await TXu.extract({file:n,C:e}),hH.default.rmSync(n)}s(Wes,"getSkeleton");async function Yes(t,e,r,n){for(let i of CXu){let o=(0,_Ge.join)(e,i),a=(0,_Ge.join)(e,i.substring(0,i.length-4)),c=hH.default.readFileSync(o,"utf8");if(!c)continue;let u=Ges(c,{name:e,description:r,version:n});hH.default.writeFileSync(a,u),hH.default.rmSync(o)}}s(Yes,"fleshOutSkeleton");iL();var mH=ut(require("fs"));kr();var Jes=ut(require("util")),Xes=ut(require("child_process"));var IXu=Jes.default.promisify(Xes.default.exec);async function Zes(t,e="./"){let{stdout:r}=await IXu(t,{cwd:e});return r}s(Zes,"exec");async function Kes(t){try{return await Zes(`${t} --version`),!0}catch{return!1}}s(Kes,"utilityInstalled");async function EGe(t,e="./"){let r=await Kes("yarn"),n=await Kes("npm");if(!r&&!n)throw new Error("Must have yarn or npm installed to run build.");let i=t==="install"?`npm ${t}`:`npm run ${t}`,o=r?`yarn ${t} --ignore-engines`:i;await Zes(o,e)}s(EGe,"runPkgCommand");var bGe=require("path");Ld();var RXu=require("find-free-port");function OXu(){if(!mH.default.existsSync("package.json"))throw new Error("Please run in a plugin directory - must contain package.json");if(!mH.default.existsSync("schema.json"))throw new Error("Please run in a plugin directory - must contain schema.json")}s(OXu,"checkInPlugin");async function kXu(t){return mH.default.readdirSync(process.cwd()).find(r=>r===".git")?!1:(console.log(au(`By default the plugin will be created in the directory "${t}"`)),console.log(au("if you are already in an empty directory, such as a new Git repo, you can disable this functionality.")),Yk("Create top level directory?"))}s(kXu,"askAboutTopLevel");async function NXu(t){let e=t.init||t;if(!e||!NZt.includes(e)){console.log(Cu("Please provide a type to init, either 'component', 'datasource' or 'automation'."));return}console.log(au("Lets get some details about your new plugin:"));let r=await nL("Name",`budibase-${e}`);if(mH.default.existsSync(r)){console.log(Cu("Directory by plugin name already exists, pick a new name."));return}let n=await nL("Description",`An amazing Budibase ${e}!`),i=await nL("Version","1.0.0"),o=await kXu(r);console.log(au("Retrieving project...")),await Wes(e,r),await Yes(e,r,n,i),console.log(au("Installing dependencies...")),await EGe("install",(0,bGe.join)(process.cwd(),r)),o?console.log(au(`Plugin created in directory "${r}"`)):(wVe(r,process.cwd()),console.log(au("Plugin created in current directory."))),dhe(Sx.PluginInit,{type:e,name:r,description:n,version:i})}s(NXu,"init");async function ets(){OXu(),console.log(au("Verifying plugin..."));let t=mH.default.readFileSync("schema.json","utf8"),e=mH.default.readFileSync("package.json","utf8"),r,n;try{let i=JSON.parse(t),o=JSON.parse(e);if(!o.name||!o.version||!o.description)throw new Error("package.json is missing one of 'name', 'version' or 'description'.");return r=o.name,n=o.version,x2e.validate(i),{name:r,version:n}}catch(i){i&&i.message&&i.message.includes("not valid JSON")?console.log(Cu(`schema.json is not valid JSON: ${i.message}`)):console.log(Cu(`Invalid schema/package.json: ${i.message}`))}}s(ets,"verify");async function DXu(){let t=await ets();if(!t?.name)return;console.log(ou("Verified!")),console.log(au("Building plugin...")),await EGe("build");let e=(0,bGe.join)("dist",`${t.name}-${t.version}.tar.gz`);console.log(ou(`Build complete - output in: ${e}`))}s(DXu,"build");async function PXu(){let t=await ets();if(!t?.name)return;let e=(0,bGe.join)("dist",`${t.name}-${t.version}.tar.gz`);console.log(au(`Watching - build in: ${e}`));try{await EGe("watch")}catch{console.log(ou("Watch exited."))}}s(PXu,"watch");async function BXu(){let t=await nL("Directory to watch","./"),[e]=await RXu(1e4),r="admin";await Ahe({init:"quick",single:!0,watchPluginDir:t,genUser:r,port:e,silent:!0}),await NH(),console.log(ou("Configuration has been written to docker-compose.yaml")),console.log(ou("Development environment started successfully - connect at: ")+au(`http://localhost:${e}`)),console.log(ou("Use the following credentials to login:")),console.log(ou("Email: ")+au(qVe)),console.log(ou("Password: ")+au(r))}s(BXu,"dev");var tts=new WS("plugins").addHelp("Custom plugins for Budibase, init, build and verify your components and datasources with this tool.").addSubOption("--init [type]","Init a new plugin project, with a type of either component or datasource.",NXu).addSubOption("--build","Build your plugin, this will verify and produce a final tarball for your project.",DXu).addSubOption("--watch","Automatically build any changes to your plugin.",PXu).addSubOption("--dev","Run a development environment which automatically watches the current directory.",BXu);function rts(){return[Ftr,htr,vYi,tts]}s(rts,"getCommands");var its=require("commander");Ld();var nts="3.22.5";async function LXu(){let t=new its.Command().addHelpCommand("help",F7("Help with Budibase commands.")).helpOption(!1).version(nts);for(let e of rts())e.configure(t);await t.parseAsync(process.argv)}s(LXu,"init");var UXu=["exit","SIGINT","SIGUSR1","SIGUSR2","uncaughtException"];UXu.forEach(t=>{process.on(t,e=>{e&&!isNaN(e)||e&&(console.error(Cu("Failed to run CLI command - please report with the following message:")),console.error(Cu(e)))})});LXu().catch(t=>{console.error("Unexpected error - ",t)});
|
|
1531
1531
|
/*! Bundled license information:
|
|
1532
1532
|
|
|
1533
1533
|
lodash/lodash.js:
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@budibase/cli",
|
|
3
|
-
"version": "3.22.
|
|
3
|
+
"version": "3.22.5",
|
|
4
4
|
"description": "Budibase CLI, for developers, self hosting and migrations.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -41,5 +41,5 @@
|
|
|
41
41
|
"@types/pouchdb": "^6.4.0",
|
|
42
42
|
"ts-node": "10.8.1"
|
|
43
43
|
},
|
|
44
|
-
"gitHead": "
|
|
44
|
+
"gitHead": "fc3318084a6736e7b8b1a0d9cc9a2ed38448f818"
|
|
45
45
|
}
|