@fnet/cli 1.6.0 → 1.8.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.
- package/dist/fbin/index.js +1 -1
- package/dist/fnet/{index.kacxf1cj.js → index.06vbpwcx.js} +1 -1
- package/dist/fnet/{index.c6w3x23h.js → index.26r88tdp.js} +1 -1
- package/dist/fnet/{index.csewbp01.js → index.2ah9pn6n.js} +1 -1
- package/dist/fnet/{index.8rjk97vr.js → index.2g93a9kt.js} +1 -1
- package/dist/fnet/{index.sy0ns8yw.js → index.61jdafta.js} +1 -1
- package/dist/fnet/index.6nhq5ca9.js +3 -0
- package/dist/fnet/{index.h915z0xh.js → index.80hh5mtp.js} +1 -1
- package/dist/fnet/{index.tnk86191.js → index.844kkj93.js} +1 -1
- package/dist/fnet/{index.jw757ba0.js → index.a2mbqyxe.js} +1 -1
- package/dist/fnet/{index.bfgjmapr.js → index.drbq51nw.js} +1 -1
- package/dist/fnet/{index.r2vf2y39.js → index.ex68wdp1.js} +1 -1
- package/dist/fnet/{index.5n4c3bt9.js → index.fe9rrvng.js} +1 -1
- package/dist/fnet/{index.88perqhm.js → index.gywx3fae.js} +1 -1
- package/dist/fnet/{index.hjf7cfd2.js → index.gza1frda.js} +1 -1
- package/dist/fnet/index.js +15 -15
- package/dist/fnet/index.pbtmt70j.js +2 -0
- package/dist/{fnode/index.d3jn9x95.js → fnet/index.pg6fm615.js} +1 -1
- package/dist/fnet/{index.vsdjwxjr.js → index.qmrnkssy.js} +1 -1
- package/dist/fnet/{index.hjqqrn9q.js → index.qnkv04zn.js} +1 -1
- package/dist/fnet/{index.f7f1p3sd.js → index.r2gf0b3s.js} +1 -1
- package/dist/fnet/{index.2084z2ed.js → index.rfysmk2b.js} +1 -1
- package/dist/fnet/{index.xgmnb1yb.js → index.rkyn71zy.js} +1 -1
- package/dist/fnet/{index.nw663a3f.js → index.vpc49edd.js} +1 -1
- package/dist/fnode/{index.f9z32b48.js → index.1k1sj9qs.js} +1 -1
- package/dist/fnode/{index.2kw09s80.js → index.3968nzbd.js} +1 -1
- package/dist/fnode/{index.sq5z9qb7.js → index.5f1kfz9t.js} +1 -1
- package/dist/fnode/{index.dwhfb656.js → index.5p4zde7t.js} +1 -1
- package/dist/fnode/{index.a0fxx5cv.js → index.5qbcx2y3.js} +1 -1
- package/dist/fnode/{index.gs5z7sd8.js → index.7ev6y63q.js} +1 -1
- package/dist/fnode/{index.sx9nmvs3.js → index.a4q2w1yd.js} +1 -1
- package/dist/fnode/{index.3m37s816.js → index.btj5x5s4.js} +1 -1
- package/dist/fnode/index.c7szj58t.js +3 -0
- package/dist/fnode/{index.05n3mvs9.js → index.c8qd1bz3.js} +1 -1
- package/dist/fnode/{index.hc15cpdb.js → index.dtp0a202.js} +1 -1
- package/dist/fnode/{index.kj3pj4ph.js → index.e6g5y0zg.js} +1 -1
- package/dist/fnode/{index.6c7y2ywb.js → index.gxm60tqk.js} +1 -1
- package/dist/fnode/{index.30av7tz5.js → index.j1ner1yd.js} +1 -1
- package/dist/fnode/index.js +9 -9
- package/dist/fnode/{index.xw4a37ev.js → index.kvn877g8.js} +1 -1
- package/dist/fnode/{index.wsren1fr.js → index.n1598ffs.js} +1 -1
- package/dist/fnode/{index.qr7b0d5k.js → index.ng6w9cac.js} +1 -1
- package/dist/fnode/{index.c589497d.js → index.q61zqpb9.js} +2 -2
- package/dist/fnode/{index.9qgtmxq3.js → index.r8s8r2n7.js} +1 -1
- package/dist/fnode/{index.peb3c98j.js → index.rmg5mgw9.js} +1 -1
- package/dist/fnode/{index.ycgzkvhs.js → index.vsqseyhf.js} +1 -1
- package/dist/fnode/{index.b6jt1ba1.js → index.w9hzkjf2.js} +1 -1
- package/dist/fnode/index.wbt2dhhm.js +2 -0
- package/dist/fnode/{index.wn36esy2.js → index.xc08sjp4.js} +1 -1
- package/dist/fnode/{index.n6gnxh4v.js → index.zb59076q.js} +1 -1
- package/dist/{fnet/index.45cmcbgj.js → fnode/index.zhpbpxhe.js} +1 -1
- package/dist/frun/index.js +3 -3
- package/dist/fservice/index.js +1 -1
- package/package.json +1 -1
- package/template/fnet/node/src/cli/index.js.njk +2 -6
- package/template/fnode/node/src/cli/index.js.njk +1 -5
- package/dist/fnet/index.68132vn6.js +0 -3
- package/dist/fnode/index.wyb1c48x.js +0 -3
- package/template/fnet/node/src/cli/index.js.v1.njk +0 -318
- package/template/fnode/node/src/cli/index.js.v1.njk +0 -464
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./index.
|
|
1
|
+
import"./index.drbq51nw.js";import o from"node:fs";import s from"node:path";import u from"semver";import y from"@fnet/shelljs";import g from"@fnet/config";async function S({setProgress:p,context:t,deploymentProject:l,deploymentProjectTarget:i,registerToPackageManager:d,yamlTarget:f}){await p({message:"Deploying it as gcs package."});let c=t.projectDir,a=s.resolve(c,"package.json"),m=o.readFileSync(a),n=JSON.parse(m);n.name=i.params.name,n.version=u.inc(i.version,"patch"),delete n.scripts,delete n.devDependencies,o.writeFileSync(a,JSON.stringify(n,null,"\t"));let{file:v,data:r}=await g({name:i.config||"gcs",dir:t.projectDir,tags:t.tags}),e="fnet-files-to-gcs";if(e+=` --projectId='${r.env.GCS_PROJECT_ID}'`,e+=` --bucketName='${r.env.GCS_BUCKET_NAME}'`,e+=` --keyFilename='${s.resolve(s.dirname(v),r.env.GCS_UPLOADER_KEY_FILE)}'`,e+=` --dir='${c}'`,e+=" --pattern='dist/**/**'",e+=" --pattern='bin/**/**'",e+=" --pattern='test/**/**'",e+=" --pattern='*.html'",e+=` --destDir='${n.name}/${n.version}'`,e+=" --metadata.cacheControl='public, max-age=31536000, immutable'",console.log(e),r.env.DOMAIN)e+=` --domain='${r.env.DOMAIN}'`;if(i.dry_run===!0||i.params.dry_run===!0)e+=" --dryRun";if(await y(e),o.writeFileSync(a,m),i.dryRun===!0)return;l.isDirty=!0,i.version=n.version,f.set("version",n.version),await d({target:i,packageJSON:n})}export{S as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./index.
|
|
1
|
+
import"./index.drbq51nw.js";import p from"node:fs";import f from"node:path";import w from"semver";import k from"@fnet/shelljs";import y from"@fnet/config";async function P({setProgress:A,context:i,deploymentProject:v,deploymentProjectTarget:o,yamlTarget:u}){await A({message:"Deploying it as fnet package."});let d=i.projectDir,a=f.resolve(d,"package.json"),m=p.readFileSync(a),t=JSON.parse(m);t.name=o.params.name,t.version=w.inc(o.version,"patch"),delete t.scripts,delete t.devDependencies,p.writeFileSync(a,JSON.stringify(t,null,"\t"));let{file:r,data:e}=await y({name:o.config||"fnet-package",dir:i.projectDir,tags:i.tags});if(!e.env.ATOM_API_URL)throw Error(`ATOM_API_URL is required in ${r}`);if(!e.env.ATOM_API_USERNAME)throw Error(`ATOM_API_USERNAME is required in ${r}`);if(!e.env.ATOM_API_PASSWORD)throw Error(`ATOM_API_PASSWORD is required in ${r}`);let l=`${e.env.ATOM_API_URL}/v1/auth/token`,h=e.env.ATOM_API_USERNAME,O=e.env.ATOM_API_PASSWORD,s=await fetch(l,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:h,password:O})});if(!s.ok)throw Error(`Failed to fetch token: ${s.statusText}`);let _=(await s.json())?.access_token;if(!_)throw Error(`Invalid access_token from ${l}`);let n="fnet-files-to-gcs";if(n+=` --projectId='${e.env.GCS_PROJECT_ID}'`,n+=` --bucketName='${e.env.GCS_BUCKET_NAME}'`,n+=` --keyFilename='${f.resolve(f.dirname(r),e.env.GCS_UPLOADER_KEY_FILE)}'`,n+=` --dir='${d}'`,n+=" --pattern='dist/**/**'",n+=" --pattern='bin/**/**'",n+=" --pattern='test/**/**'",n+=" --pattern='*.html'",n+=` --destDir='${t.name}/${t.version}'`,n+=" --metadata.cacheControl='public, max-age=31536000, immutable'",e.env.DOMAIN)n+=` --domain='${e.env.DOMAIN}'`;if(o.dry_run===!0||o.params.dry_run===!0)n+=" --dryRun";if(await k(n),p.writeFileSync(a,m),o.dryRun===!0)return;v.isDirty=!0,o.version=t.version,u.set("version",t.version);let S=`${e.env.ATOM_API_URL}/v1/service/fnet-package/publish`,c=await fetch(S,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${_}`},body:JSON.stringify({name:t.name,version:t.version,version_domain:e.env.DOMAIN,docs:o.params.docs,configs:o.params.configs})});if(!c.ok)throw Error(`Failed to publish fnet package: ${c.statusText}`);if((await c.json())?.error)throw Error("Failed to publish fnet package.")}export{P as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./index.
|
|
1
|
+
import"./index.drbq51nw.js";import O from"semver";import P from"@fnet/config";import R from"node:fs";import S from"@fnet/shelljs";import D from"form-data";async function M({setProgress:u,context:n,deploymentProject:m,deploymentProjectTarget:e,yamlTarget:w}){await u({message:"Deploying it as fnet node."});let{file:t,data:o}=await P({name:e.config||"fnet-node",dir:n.project.projectDir,tags:n.tags});if(!o.env.ATOM_API_URL)throw Error(`ATOM_API_URL is required in ${t}`);if(!o.env.ATOM_API_USERNAME)throw Error(`ATOM_API_USERNAME is required in ${t}`);if(!o.env.ATOM_API_PASSWORD)throw Error(`ATOM_API_PASSWORD is required in ${t}`);let l=`${o.env.ATOM_API_URL}/v1/auth/token`,A=o.env.ATOM_API_USERNAME,_=o.env.ATOM_API_PASSWORD,s=await fetch(l,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:A,password:_})});if(!s.ok)throw Error(`Failed to fetch token: ${s.statusText}`);let i=(await s.json())?.access_token;if(!i)throw Error(`Invalid access_token from ${l}`);m.isDirty=!0;let a=O.inc(e.version,"patch");e.params.version=a,e.version=a,w.set("version",a);let T=`${o.env.ATOM_API_URL}/v1/service/fnet-node/publish`,p=await fetch(T,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${i}`},body:JSON.stringify({name:e.params.name,version:e.params.version,docs:e.params.docs,configs:e.params.configs})});if(!p.ok)throw Error(`Error publishing fnet node: ${p.statusText}`);let h=await p.json();if(h?.error)throw Error("Error publishing fnet node.");let v=h?.upload.id,r="fnet-dir-zipper";r+=` --sourceDir='${n.project.projectDir}'`,r+=" --pattern=**/*",r+=" --stdout_format=json";let c=await S(r);if(c.code!==0)throw Error(c.stderr);let E=JSON.parse(c.stdout).path,d=new D;d.append("file",R.createReadStream(E));let f=await fetch(`${o.env.ATOM_API_URL}/v1/service/upload/single/${v}`,{method:"POST",headers:{...d.getHeaders(),Authorization:`Bearer ${i}`},body:d});if(!f.ok)throw Error(`Error uploading fnet node: ${f.statusText}`);if((await f.json())?.error)throw Error("Error uploading fnet node.")}export{M as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./index.
|
|
1
|
+
import"./index.drbq51nw.js";import d from"@fnet/config";import l from"@flownet/lib-to-ios-app";import a from"lodash.clonedeep";import u from"semver";async function g({atom:p,target:e,onProgress:s,projectDir:n,dependencies:r,context:t,yamlTarget:f}){if(s)await s({message:"Deploying it as ios-app package."});let c=e?.config?await d({name:e.config,dir:n,optional:!0,transferEnv:!1,tags:t.tags}):void 0,o=u.inc(e.version||"0.1.0","patch");e.params.version=o,e.version=o,f.set("version",o);let i=a(e.params);i.dependencies=a(r);let m={atom:p,params:i,config:c?.config,src:n,dest:n};return{deployer:await l(m)}}export{g as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import i from"node:path";import c from"node:fs";import{fileURLToPath as u}from"node:url";var v=i.dirname(u(import.meta.url)),A=process.cwd();function T(s){let r=i.resolve(A,s);if(c.existsSync(r))return r;let o=i.resolve(v,"../..",s);if(c.existsSync(o))return o;throw Error(`Template path not found: ${s}`)}import{existsSync as p}from"node:fs";import{delimiter as C,join as H}from"node:path";var O=(s)=>{let r=process.env.PATH||"",o=process.platform==="win32"?(process.env.PATHEXT||".EXE;.CMD;.BAT;.COM").split(";"):[""],f=r.split(C);for(let E of f)for(let x of o){let n=H(E,process.platform==="win32"?s+x:s);if(p(n))return n}return null};
|
|
2
|
-
export{T as
|
|
2
|
+
export{T as b,O as c};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./index.
|
|
1
|
+
import"./index.drbq51nw.js";import O from"semver";import P from"@fnet/config";import R from"node:fs";import S from"@fnet/shelljs";import D from"form-data";async function M({setProgress:h,context:t,deploymentProject:u,deploymentProjectTarget:o,yamlTarget:m}){await h({message:"Deploying it as fnet flow."});let{file:n,data:e}=await P({name:o.config||"fnet-flow",dir:t.project.projectDir,tags:t.tags});if(!e.env.ATOM_API_URL)throw Error(`ATOM_API_URL is required in ${n}`);if(!e.env.ATOM_API_USERNAME)throw Error(`ATOM_API_USERNAME is required in ${n}`);if(!e.env.ATOM_API_PASSWORD)throw Error(`ATOM_API_PASSWORD is required in ${n}`);let d=`${e.env.ATOM_API_URL}/v1/auth/token`,A=e.env.ATOM_API_USERNAME,_=e.env.ATOM_API_PASSWORD,s=await fetch(d,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:A,password:_})});if(!s.ok)throw Error(`Failed to fetch token: ${s.statusText}`);let i=(await s.json())?.access_token;if(!i)throw Error(`Invalid access_token from ${d}`);u.isDirty=!0;let a=O.inc(o.version,"patch");o.params.version=a,o.version=a,m.set("version",a);let T=`${e.env.ATOM_API_URL}/v1/service/fnet-flow/publish`,p=await fetch(T,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${i}`},body:JSON.stringify({name:o.params.name,version:o.params.version,docs:o.params.docs,configs:o.params.configs})});if(!p.ok)throw Error(`Error publishing fnet flow: ${p.statusText}`);let w=await p.json();if(w?.error)throw Error("Error publishing fnet flow.");let v=w?.upload.id,r="fnet-dir-zipper";r+=` --sourceDir='${t.project.projectDir}'`,r+=" --pattern=**/*",r+=" --stdout_format=json";let f=await S(r);if(f.code!==0)throw Error(f.stderr);let E=JSON.parse(f.stdout).path,c=new D;c.append("file",R.createReadStream(E));let l=await fetch(`${e.env.ATOM_API_URL}/v1/service/upload/single/${v}`,{method:"POST",headers:{...c.getHeaders(),Authorization:`Bearer ${i}`},body:c});if(!l.ok)throw Error(`Error uploading fnet flow: ${l.statusText}`);if((await l.json())?.error)throw Error("Error uploading fnet flow.")}export{M as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./index.
|
|
1
|
+
import"./index.drbq51nw.js";import l from"node:fs";import f from"node:path";import u from"@fnet/config";async function j({atom:p,Atom:i,setProgress:y,context:r,packageDependencies:w,deploymentProject:m,deploymentProjectTarget:t}){await y({message:"Deploying it as workflow lib."});let s=(await u({name:"atom",dir:r.projectDir,tags:r.tags}))?.data,e,a,n,o=t.deploy.name.split("/");if(o.length===1)a=s.env.ATOM_LIBRARIES_ID,n=t.deploy.name;else if(o.length===2){let c=await i.first({where:{name:o[0],parent_id:s.env.ATOM_LIBRARIES_ID,type:"folder"},limit:1});if(!c)throw Error("Couldnt file lib folder.");a=c.id,n=o[1]}else throw Error("Wrong name path.");if(t.dryRun===!0)return;if(m.isDirty=!0,!t.deploy.id){if(e=await i.create({parent_id:a,doc:{name:n,type:"workflow.lib","content-type":"javascript",dependencies:[],content:void 0,subtype:"workflow"}}),!e)return;t.deploy.id=e.id}else if(e=await i.get({id:t.deploy.id}),!e)return;let d=r.projectDir;if(e.doc.contents=[{content:l.readFileSync(f.resolve(d,"dist/default/esm/index.js"),{encoding:"utf8",flag:"r"}),["content-type"]:"javascript",format:"esm"},{content:l.readFileSync(f.resolve(d,"dist/default/cjs/index.js"),{encoding:"utf8",flag:"r"}),["content-type"]:"javascript",format:"cjs"},{content:l.readFileSync(f.resolve(d,"dist/default/iife/index.js"),{encoding:"utf8",flag:"r"}),["content-type"]:"javascript",format:"iife"}],e.doc.name=n,e.doc.dependencies=w,p.type==="workflow.lib")e.doc.subtype="library";else if(p.type==="workflow")e.doc.subtype="workflow";e=await i.update(e,{id:e.id})}export{j as default};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{b as CT,c as jT,d as hT}from"./index.c589497d.js";import{f as j}from"./index.05n3mvs9.js";import"./index.a0fxx5cv.js";import C from"node:fs";import b from"node:path";import aT from"nunjucks";import eT from"@flownet/lib-parse-imports-js";import T0 from"@flownet/lib-parse-node-url";import _ from"lodash.merge";import h from"node:fs";import R from"node:path";import F from"@flownet/lib-parse-imports-js";import wT from"lodash.merge";function S({feature:$,features:z,packageDevDependencies:O}){let{name:W,packages:T,options:K,extraCheck:H,explicit:G}=$,Y=`${W}_enabled`,M=z.rollup_output||{},A=Object.keys(M),V=K||{},J=z[W]?.options;if(J)V=wT(V,J);let X=!z[W]||z[W]?.enabled===!1;A.forEach((Z)=>{let q=z.rollup_output[Z];if(!q)return;if(Reflect.has(q,W)){if(X||!q[W]||q[W]?.enabled===!1){delete q[W];return}if(q[W]===!0)q[W]={enabled:!0,options:V}}else if(!X&&!G&&z[Y]!==!1)q[W]={enabled:!0};else return;q[W]=q[W]||{},q[W].options={...V,...q[W].options}});let y=A.some((Z)=>z.rollup_output[Z][W]?.enabled===!0);if(H)y=H()&&y;if(z[Y]=y,y)T.forEach((Z)=>O.push({package:Z[0],version:Z[1]}))}function w($){let{atom:z,packageDevDependencies:O}=$,W=z.doc.features;S({feature:{name:"workbox",packages:[["rollup-plugin-workbox","^8"]],options:{generate:{swDest:"dist/app/esm/sw.js",globDirectory:"dist/app/esm",globPatterns:["**/*.{html,js,css,png,jpg}"],skipWaiting:!0,clientsClaim:!0}},explicit:!0},features:W,packageDevDependencies:O})}function P($){let{atom:z,packageDevDependencies:O}=$,W=z.doc.features;S({feature:{name:"gzip",packages:[["rollup-plugin-gzip","^4"]],explicit:!0},features:W,packageDevDependencies:O})}function v($){let{atom:z,packageDevDependencies:O}=$,W=z.doc.features;S({feature:{name:"nunjucks",packages:[["@fnet/rollup-plugin-nunjucks","0.1.8"]]},features:W,packageDevDependencies:O})}function m($){let{atom:z,packageDevDependencies:O}=$,W=z.doc.features;S({feature:{name:"polyfill",packages:[["rollup-plugin-node-polyfills","^0.2"]]},features:W,packageDevDependencies:O})}function k($){let{atom:z,packageDevDependencies:O}=$,W=z.doc.features;S({feature:{name:"visualizer",packages:[["rollup-plugin-visualizer","^5"]],expilicit:!0},features:W,packageDevDependencies:O})}function g($){let{atom:z,packageDevDependencies:O}=$,W=z.doc.features;S({feature:{name:"analyzer",packages:[["rollup-plugin-analyzer","^3"]],options:{summaryOnly:!0,limit:12},explicit:!0},features:W,packageDevDependencies:O})}function f($){let{atom:z,packageDevDependencies:O}=$,W=z.doc.features;S({feature:{name:"string",packages:[["rollup-plugin-string","^3"]]},features:W,packageDevDependencies:O})}function i($){let{atom:z,packageDevDependencies:O}=$,W=z.doc.features;S({feature:{name:"image",packages:[["@rollup/plugin-image","^3"]]},features:W,packageDevDependencies:O})}function o($){let{atom:z,packageDevDependencies:O}=$,W=z.doc.features;if(W.runtime.type==="bun")return;S({feature:{name:"json",packages:[["@rollup/plugin-json","^6"]]},features:W,packageDevDependencies:O})}function u($){let{atom:z,packageDevDependencies:O}=$,W=z.doc.features;S({feature:{name:"terser",packages:[["@rollup/plugin-terser","^0.4"]]},features:W,packageDevDependencies:O})}function d($){let{atom:z,packageDevDependencies:O}=$,W=z.doc.features;S({feature:{name:"wasm",packages:[["@rollup/plugin-wasm","^6"]]},features:W,packageDevDependencies:O})}function D($){let{atom:z,packageDevDependencies:O}=$,W=z.doc.features;if(W.runtime.type==="bun")return;let T={};if(W.app?.enabled===!0){if(T.targets=T.targets||[],T.targets.push({src:"./src/app/index.html",dest:W.app.dir}),!Reflect.has(W.app,"copy")){if(!Reflect.has(W,"copy"))W.copy=!0}}S({feature:{name:"copy",packages:[["rollup-plugin-copy","^3"],["chokidar","^3"]],options:T},features:W,packageDevDependencies:O})}function c($){let{atom:z,packageDevDependencies:O}=$,W=z.doc.features,T=W.css&&W.css.enabled!==!1,K=[];if(T)K.push(["rollup-plugin-postcss","^4"]),K.push(["sass","^1.66"]),(W.css?.options?.plugins||[]).forEach((G)=>{switch(G.name){case"postcss-import":K.push(["postcss-import","^15"]);break;case"postcss-url":K.push(["postcss-url","^10"]);break;case"postcss-preset-env":K.push(["postcss-preset-env","^9"]);break;case"autoprefixer":K.push(["autoprefixer","^10"]);break;case"cssnano":K.push(["cssnano","^6"]);break}});S({feature:{name:"css",packages:K},features:W,packageDevDependencies:O})}function r({dir:$,name:z="index"}){let O=R.resolve($,`./${z}.tsx`);if(!h.existsSync(O))O=R.resolve($,`./${z}.ts`);if(!h.existsSync(O))O=R.resolve($,`./${z}.jsx`);if(!h.existsSync(O))O=R.resolve($,`./${z}.js`);if(!h.existsSync(O))return{};let W=O,T=R.extname(O);return{file:W,ext:T,ts:T===".ts"||T===".tsx",name:z}}async function n($){let{atom:z,context:O,setProgress:W}=$;W("Initializing features..."),z.doc.features=z.doc.features||{};let T=z.doc.features;T.project=T.project||{},T.project.format=T.project.format||T.project_format||"esm",T.project_format=T.project.format,T.dts_enabled=T.dts===!0||typeof T.dts<"u"&&T.dts!==!1;let K=R.resolve(O.project.projectDir),H=r({dir:R.resolve(K,"./app")});if(H.file){W("Parsing app entry imports...");let Z=await F({file:H.file,recursive:!0}),q=Z.all.some((Q)=>Q.usesJSX===!0&&Q.type==="local");T.app_uses_jsx=q,T.app_has_entry=!0,Z=await F({file:H.file}),q=Z.all.some((Q)=>Q.usesJSX===!0&&Q.type==="local"),T.app_entry_uses_jsx=q,T.app_entry_is_ts=H.ts,T.app_entry_ext=H.ext}let G=r({dir:R.resolve(K,"./cli")});if(G.file){W("Parsing cli entry imports...");let Z=await F({file:G.file,recursive:!0}),q=Z.all.some((Q)=>Q.usesJSX===!0&&Q.type==="local");T.cli_uses_jsx=q,T.cli_has_entry=!0,Z=await F({file:G.file}),q=Z.all.some((Q)=>Q.usesJSX===!0&&Q.type==="local"),T.cli_entry_uses_jsx=q,T.cli_entry_is_ts=G.ts,T.cli_entry_ext=G.ext}if(z.type==="workflow.lib"){let Z=r({dir:R.resolve(K,"./src")});if(Z.file){W("Parsing src entry imports...");let q=await F({file:Z.file,recursive:!0}),Q=q.all.some((U)=>U.usesJSX===!0&&U.type==="local");T.src_uses_jsx=Q,T.src_has_entry=!0,q=await F({file:Z.file}),Q=q.all.some((U)=>U.usesJSX===!0&&U.type==="local"),T.src_entry_uses_jsx=Q,T.src_entry_is_ts=Z.ts,T.src_entry_ext=Z.ext}}let Y=Reflect.has(T,"app_entry_uses_jsx")?T.app_entry_uses_jsx===!0:T.src_entry_uses_jsx===!0,M=Reflect.has(T,"cli_entry_uses_jsx")?T.cli_entry_uses_jsx===!0:T.src_entry_uses_jsx===!0;if(T.form_enabled=Y||M||T.form===!0||T.form?.enabled===!0,T.multiple_enabled=T.multiple_enabled||T.multiple===!0||T.multiple?.enabled===!0,T.app===!1)T.app={enabled:!1};else if(T.app===!0)T.app={enabled:!0,extend:T.app_has_entry===!0,export:!0,react:Y};else T.app={enabled:!0,extend:T.app_has_entry===!0,export:!0,react:Y,...T.app||{}};if(T.app.enabled=T.app.enabled===!0&&(z.doc.features.form_enabled===!0||T.app.extend===!0||T.app.enabled===!0),T.app.format=T.app.format||"esm",T.app.folder=T.app.folder||T.app.format||"default",T.cli===!1)T.cli={enabled:!1};else if(T.cli===!0)T.cli={enabled:!0,extend:T.cli_has_entry===!0,export:!0,react:M};else T.cli={enabled:!0,extend:T.cli_has_entry===!0,export:!0,react:M,...T.cli||{}};if(T.cli.enabled=T.cli.enabled===!0&&(z.doc.features.form_enabled===!1||T.cli.extend===!0||T.cli.enabled===!0),T.cli.format=T.cli.format||"esm",T.cli.folder=T.cli.folder||T.cli.folder||"esm",T.cli.node_options=T.cli.node?.options||T.cli.node_options||"",T.cli.bin=T.cli.bin||z.doc.name,T.cli.installable=T.cli.installable===!0,T.cli.enabled)z.doc["npm::bin"]=T.cli.bin;T.json=T.cli.enabled||T.json;let A={cjs:{format:"cjs",context:T.form_enabled?"window":"global",babel:T.src_uses_jsx===!0||!1,browser:!1,replace:!0,terser:!0,enabled:T.cjs!==!1,copy:!1},esm:{format:"esm",context:T.form_enabled?"window":"global",babel:T.src_uses_jsx===!0||!1,browser:!1,replace:!0,terser:!1,enabled:T.esm!==!1,copy:!0},iife:{format:"iife",context:T.form_enabled?"window":"global",babel:!0,browser:!0,replace:!0,enabled:T.iife===!0,terser:!0,copy:!1}},V={targets:{browsers:"last 9 versions, not dead",node:"18"}},J={};if(T.webos===!0)A.webos={format:"iife",browser:!0,babel:!0,context:"window",replace:!0,terser:!0,input:"./src/app/index.js",output_dir:"./dist/app/webos",copy:!1,babel_options:{targets:{chrome:"79"}}};if(T.electron===!0)A.electron={format:"iife",browser:!0,babel:!0,context:"window",replace:!0,terser:!0,copy:!1,input:"./src/app/index.js",output_dir:"./dist/app/electron"};if(T.nextjs===!0)A.nextjs={format:"esm",browser:!0,babel:!0,context:"window",replace:!0,terser:!0,copy:!1,input:"./src/app/index.js",output_dir:"./dist/app/nextjs"};if(T.ios===!0)A.ios={format:"iife",browser:!0,babel:!0,context:"window",replace:!0,terser:!0,copy:!1,input:"./src/app/index.js",output_dir:"./dist/app/ios"};if(T.macos===!0)A.macos={format:"iife",browser:!0,babel:!0,context:"window",replace:!0,terser:!0,copy:!1,input:"./src/app/index.js",output_dir:"./dist/app/macos"};if(T.app.enabled===!0)T.app.dir=`./dist/app/${T.app.folder}`,T.app.output={file:`./dist/app/${T.app.folder}/index.js`,dir:`./dist/app/${T.app.folder}/`,...T.app.output||{}},T.app.input={file:"./src/app/index.js",dir:"./src/app/",...T.app.input||{}},A.app={format:T.app.format,browser:!0,babel:!0,context:"window",replace:!0,input:T.app.input.file,output_dir:T.app.dir,terser:!0,output_exports:T.app.export===!1?"none":"auto",browsersync:!0};if(T.cli.enabled===!0)T.cli.dir=`./dist/cli/${T.cli.folder}`,T.cli.output={file:`./dist/cli/${T.cli.folder}/index.js`,dir:`./dist/cli/${T.cli.folder}/`,...T.cli.output||{}},T.cli.input={file:"./src/cli/index.js",dir:"./src/cli/",...T.cli.input||{}},A.cli={format:T.cli.format,context:"global",babel:T.src_uses_jsx===!0||T.cli_uses_jsx===!0||!1,browser:!1,replace:!0,enabled:!0,input:T.cli.input.file,output_dir:T.cli.dir,banner:"#!/usr/bin/env bun",terser:!0,output_exports:T.cli.export===!1?"none":"auto"};let X={server:".",startPath:`${R.normalize(T.app.dir||".")}`,files:[R.normalize("./dist/**/*")],cors:!0,open:!1};if(T.babel_options=_(V,T.babel_options||T.babel?.options),T.browsersync_options=_(X,T.browsersync_options||T.browsersync?.options||{}),T.replace_options=_(J,T.replace_options||T.replace?.options||{}),Reflect.has(T.browsersync_options,"proxy"))delete T.browsersync_options.server;T.rollup=T.rollup||{},T.rollup_output=_(A,T.rollup_output||T.rollup?.output||{}),T.preact_enabled=T.preact===!0||T.preact&&T.preact?.enabled!==!1;let y=Object.keys(A);for(let Z of y){let q=A[Z];if(!q)continue;if(T.rollup[Z]===!1){delete T.rollup_output[Z];continue}if(q.babel_options=q.babel_options||T.babel_options,q.browsersync_options=_(T.browsersync_options,q.browsersync_options),q.replace_options=_(T.replace_options,q.replace_options),T.preact_enabled)q.alias_enabled=!0,q.alias=q.alias||{},q.alias.entries=q.alias.entries||{},q.alias.entries.react="preact/compat",q.alias.entries["react-dom"]="preact/compat";if(T.form_enabled||T.babel)q.babel=!0}y=Object.keys(T.rollup_output),T.babel_enabled=y.some((Z)=>T.rollup_output[Z].babel===!0),T.browser_enabled=y.some((Z)=>T.rollup_output[Z].babel===!0),T.browsersync_enabled=T.browsersync!==!1&&y.some((Z)=>T.rollup_output[Z].browsersync===!0),T.browsersync_enabled=T.browsersync_enabled&&T.app.enabled,T.dependency_auto_enabled=T.dependency_auto!==!1&&T.dependency_auto?.enabled!==!1,T.npm_install_flags=T.npm_install_flags||"",T.react_version=T.react_version||T.react?.version||18,T.bpmn=T.bpmn||{},T.bpmn.enabled=T.bpmn.enabled!==!1,T.bpmn.per_flow=T.bpmn.per_flow===!0,c($),D($),d($),u($),o($),f($),i($),g($),k($),m($),v($),w($),P($)}import PT from"@fnet/npm-list-versions";async function p({atom:$,packageDependencies:z,packageDevDependencies:O,setProgress:W}){W("Initializing dependencies");let T=$.doc.dependencies||[];if(T.filter((K)=>!K.dev).forEach((K)=>z.push(K)),T.filter((K)=>K.dev).forEach((K)=>O.push(K)),$.type==="workflow")z.push({package:"dot-prop",version:"^10"});if($.doc.features.form_enabled){if($.doc.features.dependency_auto_enabled){let K="^18.2";if(W("Fetching React versions"),K=`^${(await PT({name:"react",groupBy:{major:!0}})).find((Y)=>Y[0]===$.doc.features.react_version.toString())[0]}`,z.push({package:"react",version:K}),z.push({package:"react-dom",version:K}),$.type==="workflow")z.push({package:"@fnet/react-app",version:"^0.1"}),z.push({package:"@fnet/react-app-state",version:"^0.1"})}}if($.doc.features.preact_enabled)z.push({package:"preact",version:"^10"});if($.doc.features.cli.enabled===!0){if(z.push({package:"@fnet/args",version:"^0.1"}),$.doc.features.cli.fargs&&$.doc.features.cli.fargs?.enabled!==!1)z.push({package:"@fnet/config",version:"0.2.21"});if($.doc.features.cli.mcp&&$.doc.features.cli.mcp.enabled===!0)z.push({package:"@modelcontextprotocol/sdk",version:"^1.10"}),z.push({package:"express",version:"^4.18"})}if($.doc.features.render&&$.doc.features.render.enabled!==!1)O.push({package:"@flownet/lib-render-templates-dir",version:"0.1.19"});if(O.push({package:"@babel/core",version:"^7"}),O.push({package:"@rollup/plugin-commonjs",version:"^28"}),O.push({package:"@rollup/plugin-node-resolve",version:"^16"}),O.push({package:"@rollup/plugin-replace",version:"^6"}),O.push({package:"rollup",version:"^4"}),$.doc.features.dts_enabled)O.push({package:"rollup-plugin-dts",version:"^6"});if(O.push({package:"rollup-plugin-peer-deps-external",version:"^2"}),O.push({package:"@rollup/plugin-alias",version:"^5"}),O.push({package:"fs-extra",version:"^11"}),$.doc.features.babel_enabled)O.push({package:"@rollup/plugin-babel",version:"^6"}),O.push({package:"@babel/preset-env",version:"^7"}),O.push({package:"@babel/preset-react",version:"^7"}),$.doc.features.babel?.options?.plugins?.forEach((K)=>{switch(K[0]){case"@babel/plugin-proposal-decorators":O.push({package:"@babel/plugin-proposal-decorators",version:"^7"});break;case"@babel/plugin-proposal-class-properties":O.push({package:"@babel/plugin-proposal-class-properties",version:"^7"});break;case"@babel/plugin-proposal-private-methods":O.push({package:"@babel/plugin-proposal-private-methods",version:"^7"});break;case"@babel/plugin-proposal-private-property-in-object":O.push({package:"@babel/plugin-proposal-private-property-in-object",version:"^7"});break;case"@babel/plugin-proposal-optional-chaining":O.push({package:"@babel/plugin-proposal-optional-chaining",version:"^7"});break}});if(O.push({package:"@fnet/rollup-plugin-delete",version:"0.1.10"}),$.doc.features.browsersync_enabled)O.push({package:"@fnet/rollup-plugin-browsersync",version:"0.1.11"})}import vT from"@fnet/npm-list-versions";async function s({atom:$,packageDependencies:z,packageDevDependencies:O,setProgress:W}){W("Initializing dependencies for Bun");let T=$.doc.dependencies||[];if(T.filter((K)=>!K.dev).forEach((K)=>z.push(K)),T.filter((K)=>K.dev).forEach((K)=>O.push(K)),$.type==="workflow")z.push({package:"dot-prop",version:"^10"});if($.doc.features.form_enabled){if($.doc.features.dependency_auto_enabled){let K="^18.2";if(W("Fetching React versions"),K=`^${(await vT({name:"react",groupBy:{major:!0}})).find((Y)=>Y[0]===$.doc.features.react_version.toString())[0]}`,z.push({package:"react",version:K}),z.push({package:"react-dom",version:K}),$.type==="workflow")z.push({package:"@fnet/react-app",version:"^0.1"}),z.push({package:"@fnet/react-app-state",version:"^0.1"})}}if($.doc.features.preact_enabled)z.push({package:"preact",version:"^10"});if($.doc.features.cli.enabled===!0){if(z.push({package:"@fnet/args",version:"^0.1"}),$.doc.features.cli.fargs&&$.doc.features.cli.fargs?.enabled!==!1)z.push({package:"@fnet/config",version:"0.2.21"});if($.doc.features.cli.mcp&&$.doc.features.cli.mcp.enabled===!0)z.push({package:"@modelcontextprotocol/sdk",version:"^1.10"}),z.push({package:"express",version:"^4.18"})}if($.doc.features.render&&$.doc.features.render.enabled!==!1)O.push({package:"@flownet/lib-render-templates-dir",version:"0.1.19"})}import AT from"node:fs";import ST from"node:path";import mT from"@flownet/lib-render-templates-dir";async function t({atom:$,setProgress:z,context:O,packageDependencies:W}){if($.doc.features.app.enabled!==!0)return;await z({message:"Creating app folder"});let T={atom:$,packageDependencies:W,ts:Date.now()},K=O.templateDir,H=ST.resolve(O.projectDir,"src/app");if(!AT.existsSync(H))AT.mkdirSync(H,{recursive:!0});let G=["index.js.njk"];if($.doc.features.app.html!==!1)G.push("index.html.njk");await mT({pattern:G,dir:ST.resolve(K,"src/app"),outDir:H,context:T})}import yT from"nunjucks";import N from"node:fs";import E from"node:path";import fT from"@flownet/lib-parse-imports-js";import kT from"@fnet/npm-pick-versions";import gT from"object-hash";import l from"node:fs";import UT from"node:path";async function I({projectDir:$,name:z,setProgress:O,count:W=1}){let T,H=gT(["npm-pick-versions",z,W]),G=UT.join($,".cache"),Y=UT.join(G,H+".json");if(l.existsSync(Y)){if(O)O(`Picking npm version of ${z} from cache ...`);T=JSON.parse(l.readFileSync(Y,"utf8"))}else{if(O)O(`Picking npm version of ${z} ...`);T=await kT({name:z,count:W}),l.mkdirSync(G,{recursive:!0}),l.writeFileSync(Y,JSON.stringify(T),"utf8")}return T}async function a({atom:$,context:z,packageDependencies:O,packageDevDependencies:W,setProgress:T}){await T({message:"Creating package.json."}),O.filter((q)=>q.dev===!0).forEach((q)=>{if(!W.find((U)=>U.package===q.package))W.push(q);let Q=O.findIndex((U)=>U.package===q.package);O.splice(Q,1)});let H=O.find((q)=>q.package==="react"),G=O.find((q)=>q.package==="react-dom");if(H&&!G)O.push({package:"react-dom",version:H.version});else if(H&&G)G.version=H.version;if(H&&$.doc.features.react_version>=17){if(!O.find((q)=>q.package==="@emotion/react"))O.push({package:"@emotion/react",version:"^11"});if(!O.find((q)=>q.package==="@emotion/styled"))O.push({package:"@emotion/styled",version:"^11"})}let Y=[];if($.doc.features.app.enabled===!0)Y.push({file:E.resolve(z.projectDir,"src/app/index.js"),dev:$.doc.features.app.dev===!0});if($.doc.features.cli.enabled===!0)Y.push({file:E.resolve(z.projectDir,"src/cli/index.js"),dev:$.doc.features.cli.dev===!0});for await(let q of Y){let Q=q.file;if(!N.existsSync(Q))throw Error(`App file not found: ${Q}`);let L=(await fT({file:Q,recursive:!0,verbose:!1})).all;for await(let B of L){if(B.type!=="npm")continue;if(O.find((x)=>x.package===B.package))continue;if(W.find((x)=>x.package===B.package))continue;let xT=await I({name:B.package,projectDir:z.projectDir,setProgress:T});(q.dev===!0?W:O).push({package:B.package,subpath:B.subpath,version:xT.minorRange,type:"npm"})}}for await(let q of O){if(q.version!==void 0)continue;let Q=await I({name:q.package,projectDir:z.projectDir,setProgress:T});q.version=Q.minorRange}for await(let q of W){if(q.version!==void 0)continue;let Q=await I({name:q.package,projectDir:z.projectDir,setProgress:T});q.version=Q.minorRange}let M={atom:$,packageDependencies:O,packageDevDependencies:W},A=z.templateDir,J=yT.compile(N.readFileSync(E.resolve(A,"package.json.njk"),"utf8"),yT.configure(A)).render(M),X=z.projectDir,y=E.resolve(X,"package.json");N.writeFileSync(y,J,"utf8");let Z=E.resolve(z.project.projectDir,"fnet");if(N.existsSync(Z)){let q=E.resolve(z.projectDir,"fnet");if(!N.existsSync(q))N.mkdirSync(q);let Q=N.readdirSync(Z);for(let U of Q){let L=E.resolve(Z,U);if(!N.lstatSync(L).isFile())continue;let B=E.resolve(q,U);N.copyFileSync(L,B)}}}import XT from"node:fs";import JT from"node:path";import iT from"@flownet/lib-render-templates-dir";async function e({atom:$,setProgress:z,context:O,packageDependencies:W}){if($.doc.features.cli.enabled!==!0)return;await z({message:"Creating cli."});let T={atom:$,packageDependencies:W},K=O.templateDir,H=JT.resolve(O.projectDir,"src/cli");if(!XT.existsSync(H))XT.mkdirSync(H,{recursive:!0});await iT({pattern:["index.js.njk"],dir:JT.resolve(K,"src/cli"),outDir:H,context:T})}import TT from"node:fs";import $T from"node:path";import VT from"nunjucks";import oT from"@flownet/lib-parse-imports-js";async function OT({atom:$,setProgress:z,context:O,packageDependencies:W}){await z({message:"Creating rollup file."});let T={atom:$,packageDependencies:W},K=$T.resolve(O.projectDir,"src","default/index.js");if(!TT.existsSync(K))throw Error(`Entry file not found: ${K}`);let G=(await oT({file:K,recursive:!0})).all.filter((Z)=>Z.type==="node").map((Z)=>Z.path),Y=$.doc.features.rollup_output,M=Object.keys(Y);for(let Z=0;Z<M.length;Z++){let q=M[Z],Q=Y[q];if(Q.browser===!0){if(G.length>0){Q.globals_enabled=!0,Q.globals=Q.globals||[],Q.globals=Q.globals.concat(G.map((U)=>{return{key:U,value:U}})),Q.alias_enabled=!0,Q.alias=Q.alias||{},Q.alias.entries=Q.alias.entries||{};for(let U=0;U<G.length;U++){let L=G[U];Q.alias.entries[L]=`node:${L}`,Q.alias.entries[`node:${L}`]=L}Q.external_enabled=!0,Q.external=Q.external||[],Q.external=Q.external.concat(G)}}}let A=O.templateDir,J=VT.compile(TT.readFileSync($T.resolve(A,"rollup.config.mjs.njk"),"utf8"),VT.configure(A)).render(T),X=O.projectDir,y=$T.resolve(X,"rollup.config.mjs");TT.writeFileSync(y,J,"utf8")}import zT from"node:fs";import bT from"node:path";import RT from"nunjucks";async function WT({atom:$,setProgress:z,context:O,packageDependencies:W}){await z({message:"Creating build.js file."});let T={atom:$,packageDependencies:W},K=O.templateDir,G=RT.compile(zT.readFileSync(bT.resolve(K,"build.js.njk"),"utf8"),RT.configure(K)).render(T),Y=O.projectDir,M=bT.resolve(Y,"build.js");zT.writeFileSync(M,G,"utf8"),zT.chmodSync(M,"755")}import KT from"node:fs";import qT from"node:path";import uT from"nunjucks";import dT from"ajv/dist/2020.js";import DT from"ajv/dist/standalone/index.js";import cT from"ajv-formats";async function GT({atom:$,setProgress:z,context:O,njEnv:W}){if($.doc.features.cli.enabled!==!0)return;await z({message:"Creating input args."});let T={},K=[];if($.doc.input)T=$.doc.input;else T={type:"object",properties:{},required:[]};if($.doc.features.cli.fargs&&$.doc.features.cli.fargs?.enabled!==!1){let Q=$.doc.features.cli.fargs,U={type:"string",description:"Config name to load args",hidden:!1},L={type:"array",description:"Tags to filter the config",hidden:!1};if(Reflect.has(Q,"default"))U.default=Q.default}let G={imports:K,atom:$},Y=O.templateDir,A=uT.compile(KT.readFileSync(qT.resolve(Y,"src/default/input.args.js.njk"),"utf8"),W).render(G),V=O.projectDir,J=qT.resolve(V,"src/default/input.args.js");KT.writeFileSync(J,A,"utf8");let X=new dT({allErrors:!0,useDefaults:!0,formats:{},strict:!1,code:{esm:!0,lines:!0,optimize:!1,source:!0}});cT(X);let y=X.compile(T),q=DT(X,y)+`
|
|
1
|
+
import{b as CT,c as jT,d as hT}from"./index.q61zqpb9.js";import{g as j}from"./index.c8qd1bz3.js";import"./index.5qbcx2y3.js";import C from"node:fs";import b from"node:path";import aT from"nunjucks";import eT from"@flownet/lib-parse-imports-js";import T0 from"@flownet/lib-parse-node-url";import _ from"lodash.merge";import h from"node:fs";import R from"node:path";import F from"@flownet/lib-parse-imports-js";import wT from"lodash.merge";function S({feature:$,features:z,packageDevDependencies:O}){let{name:W,packages:T,options:K,extraCheck:H,explicit:G}=$,Y=`${W}_enabled`,M=z.rollup_output||{},A=Object.keys(M),V=K||{},J=z[W]?.options;if(J)V=wT(V,J);let X=!z[W]||z[W]?.enabled===!1;A.forEach((Z)=>{let q=z.rollup_output[Z];if(!q)return;if(Reflect.has(q,W)){if(X||!q[W]||q[W]?.enabled===!1){delete q[W];return}if(q[W]===!0)q[W]={enabled:!0,options:V}}else if(!X&&!G&&z[Y]!==!1)q[W]={enabled:!0};else return;q[W]=q[W]||{},q[W].options={...V,...q[W].options}});let y=A.some((Z)=>z.rollup_output[Z][W]?.enabled===!0);if(H)y=H()&&y;if(z[Y]=y,y)T.forEach((Z)=>O.push({package:Z[0],version:Z[1]}))}function w($){let{atom:z,packageDevDependencies:O}=$,W=z.doc.features;S({feature:{name:"workbox",packages:[["rollup-plugin-workbox","^8"]],options:{generate:{swDest:"dist/app/esm/sw.js",globDirectory:"dist/app/esm",globPatterns:["**/*.{html,js,css,png,jpg}"],skipWaiting:!0,clientsClaim:!0}},explicit:!0},features:W,packageDevDependencies:O})}function P($){let{atom:z,packageDevDependencies:O}=$,W=z.doc.features;S({feature:{name:"gzip",packages:[["rollup-plugin-gzip","^4"]],explicit:!0},features:W,packageDevDependencies:O})}function v($){let{atom:z,packageDevDependencies:O}=$,W=z.doc.features;S({feature:{name:"nunjucks",packages:[["@fnet/rollup-plugin-nunjucks","0.1.8"]]},features:W,packageDevDependencies:O})}function m($){let{atom:z,packageDevDependencies:O}=$,W=z.doc.features;S({feature:{name:"polyfill",packages:[["rollup-plugin-node-polyfills","^0.2"]]},features:W,packageDevDependencies:O})}function k($){let{atom:z,packageDevDependencies:O}=$,W=z.doc.features;S({feature:{name:"visualizer",packages:[["rollup-plugin-visualizer","^5"]],expilicit:!0},features:W,packageDevDependencies:O})}function g($){let{atom:z,packageDevDependencies:O}=$,W=z.doc.features;S({feature:{name:"analyzer",packages:[["rollup-plugin-analyzer","^3"]],options:{summaryOnly:!0,limit:12},explicit:!0},features:W,packageDevDependencies:O})}function f($){let{atom:z,packageDevDependencies:O}=$,W=z.doc.features;S({feature:{name:"string",packages:[["rollup-plugin-string","^3"]]},features:W,packageDevDependencies:O})}function i($){let{atom:z,packageDevDependencies:O}=$,W=z.doc.features;S({feature:{name:"image",packages:[["@rollup/plugin-image","^3"]]},features:W,packageDevDependencies:O})}function o($){let{atom:z,packageDevDependencies:O}=$,W=z.doc.features;if(W.runtime.type==="bun")return;S({feature:{name:"json",packages:[["@rollup/plugin-json","^6"]]},features:W,packageDevDependencies:O})}function u($){let{atom:z,packageDevDependencies:O}=$,W=z.doc.features;S({feature:{name:"terser",packages:[["@rollup/plugin-terser","^0.4"]]},features:W,packageDevDependencies:O})}function d($){let{atom:z,packageDevDependencies:O}=$,W=z.doc.features;S({feature:{name:"wasm",packages:[["@rollup/plugin-wasm","^6"]]},features:W,packageDevDependencies:O})}function D($){let{atom:z,packageDevDependencies:O}=$,W=z.doc.features;if(W.runtime.type==="bun")return;let T={};if(W.app?.enabled===!0){if(T.targets=T.targets||[],T.targets.push({src:"./src/app/index.html",dest:W.app.dir}),!Reflect.has(W.app,"copy")){if(!Reflect.has(W,"copy"))W.copy=!0}}S({feature:{name:"copy",packages:[["rollup-plugin-copy","^3"],["chokidar","^3"]],options:T},features:W,packageDevDependencies:O})}function c($){let{atom:z,packageDevDependencies:O}=$,W=z.doc.features,T=W.css&&W.css.enabled!==!1,K=[];if(T)K.push(["rollup-plugin-postcss","^4"]),K.push(["sass","^1.66"]),(W.css?.options?.plugins||[]).forEach((G)=>{switch(G.name){case"postcss-import":K.push(["postcss-import","^15"]);break;case"postcss-url":K.push(["postcss-url","^10"]);break;case"postcss-preset-env":K.push(["postcss-preset-env","^9"]);break;case"autoprefixer":K.push(["autoprefixer","^10"]);break;case"cssnano":K.push(["cssnano","^6"]);break}});S({feature:{name:"css",packages:K},features:W,packageDevDependencies:O})}function r({dir:$,name:z="index"}){let O=R.resolve($,`./${z}.tsx`);if(!h.existsSync(O))O=R.resolve($,`./${z}.ts`);if(!h.existsSync(O))O=R.resolve($,`./${z}.jsx`);if(!h.existsSync(O))O=R.resolve($,`./${z}.js`);if(!h.existsSync(O))return{};let W=O,T=R.extname(O);return{file:W,ext:T,ts:T===".ts"||T===".tsx",name:z}}async function n($){let{atom:z,context:O,setProgress:W}=$;W("Initializing features..."),z.doc.features=z.doc.features||{};let T=z.doc.features;T.project=T.project||{},T.project.format=T.project.format||T.project_format||"esm",T.project_format=T.project.format,T.dts_enabled=T.dts===!0||typeof T.dts<"u"&&T.dts!==!1;let K=R.resolve(O.project.projectDir),H=r({dir:R.resolve(K,"./app")});if(H.file){W("Parsing app entry imports...");let Z=await F({file:H.file,recursive:!0}),q=Z.all.some((Q)=>Q.usesJSX===!0&&Q.type==="local");T.app_uses_jsx=q,T.app_has_entry=!0,Z=await F({file:H.file}),q=Z.all.some((Q)=>Q.usesJSX===!0&&Q.type==="local"),T.app_entry_uses_jsx=q,T.app_entry_is_ts=H.ts,T.app_entry_ext=H.ext}let G=r({dir:R.resolve(K,"./cli")});if(G.file){W("Parsing cli entry imports...");let Z=await F({file:G.file,recursive:!0}),q=Z.all.some((Q)=>Q.usesJSX===!0&&Q.type==="local");T.cli_uses_jsx=q,T.cli_has_entry=!0,Z=await F({file:G.file}),q=Z.all.some((Q)=>Q.usesJSX===!0&&Q.type==="local"),T.cli_entry_uses_jsx=q,T.cli_entry_is_ts=G.ts,T.cli_entry_ext=G.ext}if(z.type==="workflow.lib"){let Z=r({dir:R.resolve(K,"./src")});if(Z.file){W("Parsing src entry imports...");let q=await F({file:Z.file,recursive:!0}),Q=q.all.some((U)=>U.usesJSX===!0&&U.type==="local");T.src_uses_jsx=Q,T.src_has_entry=!0,q=await F({file:Z.file}),Q=q.all.some((U)=>U.usesJSX===!0&&U.type==="local"),T.src_entry_uses_jsx=Q,T.src_entry_is_ts=Z.ts,T.src_entry_ext=Z.ext}}let Y=Reflect.has(T,"app_entry_uses_jsx")?T.app_entry_uses_jsx===!0:T.src_entry_uses_jsx===!0,M=Reflect.has(T,"cli_entry_uses_jsx")?T.cli_entry_uses_jsx===!0:T.src_entry_uses_jsx===!0;if(T.form_enabled=Y||M||T.form===!0||T.form?.enabled===!0,T.multiple_enabled=T.multiple_enabled||T.multiple===!0||T.multiple?.enabled===!0,T.app===!1)T.app={enabled:!1};else if(T.app===!0)T.app={enabled:!0,extend:T.app_has_entry===!0,export:!0,react:Y};else T.app={enabled:!0,extend:T.app_has_entry===!0,export:!0,react:Y,...T.app||{}};if(T.app.enabled=T.app.enabled===!0&&(z.doc.features.form_enabled===!0||T.app.extend===!0||T.app.enabled===!0),T.app.format=T.app.format||"esm",T.app.folder=T.app.folder||T.app.format||"default",T.cli===!1)T.cli={enabled:!1};else if(T.cli===!0)T.cli={enabled:!0,extend:T.cli_has_entry===!0,export:!0,react:M};else T.cli={enabled:!0,extend:T.cli_has_entry===!0,export:!0,react:M,...T.cli||{}};if(T.cli.enabled=T.cli.enabled===!0&&(z.doc.features.form_enabled===!1||T.cli.extend===!0||T.cli.enabled===!0),T.cli.format=T.cli.format||"esm",T.cli.folder=T.cli.folder||T.cli.folder||"esm",T.cli.node_options=T.cli.node?.options||T.cli.node_options||"",T.cli.bin=T.cli.bin||z.doc.name,T.cli.installable=T.cli.installable===!0,T.cli.enabled)z.doc["npm::bin"]=T.cli.bin;T.json=T.cli.enabled||T.json;let A={cjs:{format:"cjs",context:T.form_enabled?"window":"global",babel:T.src_uses_jsx===!0||!1,browser:!1,replace:!0,terser:!0,enabled:T.cjs!==!1,copy:!1},esm:{format:"esm",context:T.form_enabled?"window":"global",babel:T.src_uses_jsx===!0||!1,browser:!1,replace:!0,terser:!1,enabled:T.esm!==!1,copy:!0},iife:{format:"iife",context:T.form_enabled?"window":"global",babel:!0,browser:!0,replace:!0,enabled:T.iife===!0,terser:!0,copy:!1}},V={targets:{browsers:"last 9 versions, not dead",node:"18"}},J={};if(T.webos===!0)A.webos={format:"iife",browser:!0,babel:!0,context:"window",replace:!0,terser:!0,input:"./src/app/index.js",output_dir:"./dist/app/webos",copy:!1,babel_options:{targets:{chrome:"79"}}};if(T.electron===!0)A.electron={format:"iife",browser:!0,babel:!0,context:"window",replace:!0,terser:!0,copy:!1,input:"./src/app/index.js",output_dir:"./dist/app/electron"};if(T.nextjs===!0)A.nextjs={format:"esm",browser:!0,babel:!0,context:"window",replace:!0,terser:!0,copy:!1,input:"./src/app/index.js",output_dir:"./dist/app/nextjs"};if(T.ios===!0)A.ios={format:"iife",browser:!0,babel:!0,context:"window",replace:!0,terser:!0,copy:!1,input:"./src/app/index.js",output_dir:"./dist/app/ios"};if(T.macos===!0)A.macos={format:"iife",browser:!0,babel:!0,context:"window",replace:!0,terser:!0,copy:!1,input:"./src/app/index.js",output_dir:"./dist/app/macos"};if(T.app.enabled===!0)T.app.dir=`./dist/app/${T.app.folder}`,T.app.output={file:`./dist/app/${T.app.folder}/index.js`,dir:`./dist/app/${T.app.folder}/`,...T.app.output||{}},T.app.input={file:"./src/app/index.js",dir:"./src/app/",...T.app.input||{}},A.app={format:T.app.format,browser:!0,babel:!0,context:"window",replace:!0,input:T.app.input.file,output_dir:T.app.dir,terser:!0,output_exports:T.app.export===!1?"none":"auto",browsersync:!0};if(T.cli.enabled===!0)T.cli.dir=`./dist/cli/${T.cli.folder}`,T.cli.output={file:`./dist/cli/${T.cli.folder}/index.js`,dir:`./dist/cli/${T.cli.folder}/`,...T.cli.output||{}},T.cli.input={file:"./src/cli/index.js",dir:"./src/cli/",...T.cli.input||{}},A.cli={format:T.cli.format,context:"global",babel:T.src_uses_jsx===!0||T.cli_uses_jsx===!0||!1,browser:!1,replace:!0,enabled:!0,input:T.cli.input.file,output_dir:T.cli.dir,banner:"#!/usr/bin/env bun",terser:!0,output_exports:T.cli.export===!1?"none":"auto"};let X={server:".",startPath:`${R.normalize(T.app.dir||".")}`,files:[R.normalize("./dist/**/*")],cors:!0,open:!1};if(T.babel_options=_(V,T.babel_options||T.babel?.options),T.browsersync_options=_(X,T.browsersync_options||T.browsersync?.options||{}),T.replace_options=_(J,T.replace_options||T.replace?.options||{}),Reflect.has(T.browsersync_options,"proxy"))delete T.browsersync_options.server;T.rollup=T.rollup||{},T.rollup_output=_(A,T.rollup_output||T.rollup?.output||{}),T.preact_enabled=T.preact===!0||T.preact&&T.preact?.enabled!==!1;let y=Object.keys(A);for(let Z of y){let q=A[Z];if(!q)continue;if(T.rollup[Z]===!1){delete T.rollup_output[Z];continue}if(q.babel_options=q.babel_options||T.babel_options,q.browsersync_options=_(T.browsersync_options,q.browsersync_options),q.replace_options=_(T.replace_options,q.replace_options),T.preact_enabled)q.alias_enabled=!0,q.alias=q.alias||{},q.alias.entries=q.alias.entries||{},q.alias.entries.react="preact/compat",q.alias.entries["react-dom"]="preact/compat";if(T.form_enabled||T.babel)q.babel=!0}y=Object.keys(T.rollup_output),T.babel_enabled=y.some((Z)=>T.rollup_output[Z].babel===!0),T.browser_enabled=y.some((Z)=>T.rollup_output[Z].babel===!0),T.browsersync_enabled=T.browsersync!==!1&&y.some((Z)=>T.rollup_output[Z].browsersync===!0),T.browsersync_enabled=T.browsersync_enabled&&T.app.enabled,T.dependency_auto_enabled=T.dependency_auto!==!1&&T.dependency_auto?.enabled!==!1,T.npm_install_flags=T.npm_install_flags||"",T.react_version=T.react_version||T.react?.version||18,T.bpmn=T.bpmn||{},T.bpmn.enabled=T.bpmn.enabled!==!1,T.bpmn.per_flow=T.bpmn.per_flow===!0,c($),D($),d($),u($),o($),f($),i($),g($),k($),m($),v($),w($),P($)}import PT from"@fnet/npm-list-versions";async function p({atom:$,packageDependencies:z,packageDevDependencies:O,setProgress:W}){W("Initializing dependencies");let T=$.doc.dependencies||[];if(T.filter((K)=>!K.dev).forEach((K)=>z.push(K)),T.filter((K)=>K.dev).forEach((K)=>O.push(K)),$.type==="workflow")z.push({package:"dot-prop",version:"^10"});if($.doc.features.form_enabled){if($.doc.features.dependency_auto_enabled){let K="^18.2";if(W("Fetching React versions"),K=`^${(await PT({name:"react",groupBy:{major:!0}})).find((Y)=>Y[0]===$.doc.features.react_version.toString())[0]}`,z.push({package:"react",version:K}),z.push({package:"react-dom",version:K}),$.type==="workflow")z.push({package:"@fnet/react-app",version:"^0.1"}),z.push({package:"@fnet/react-app-state",version:"^0.1"})}}if($.doc.features.preact_enabled)z.push({package:"preact",version:"^10"});if($.doc.features.cli.enabled===!0){if(z.push({package:"@fnet/args",version:"^0.1"}),$.doc.features.cli.fargs&&$.doc.features.cli.fargs?.enabled!==!1)z.push({package:"@fnet/config",version:"0.2.21"});if($.doc.features.cli.mcp&&$.doc.features.cli.mcp.enabled===!0)z.push({package:"@modelcontextprotocol/sdk",version:"^1.10"}),z.push({package:"express",version:"^4.18"})}if($.doc.features.render&&$.doc.features.render.enabled!==!1)O.push({package:"@flownet/lib-render-templates-dir",version:"0.1.19"});if(O.push({package:"@babel/core",version:"^7"}),O.push({package:"@rollup/plugin-commonjs",version:"^28"}),O.push({package:"@rollup/plugin-node-resolve",version:"^16"}),O.push({package:"@rollup/plugin-replace",version:"^6"}),O.push({package:"rollup",version:"^4"}),$.doc.features.dts_enabled)O.push({package:"rollup-plugin-dts",version:"^6"});if(O.push({package:"rollup-plugin-peer-deps-external",version:"^2"}),O.push({package:"@rollup/plugin-alias",version:"^5"}),O.push({package:"fs-extra",version:"^11"}),$.doc.features.babel_enabled)O.push({package:"@rollup/plugin-babel",version:"^6"}),O.push({package:"@babel/preset-env",version:"^7"}),O.push({package:"@babel/preset-react",version:"^7"}),$.doc.features.babel?.options?.plugins?.forEach((K)=>{switch(K[0]){case"@babel/plugin-proposal-decorators":O.push({package:"@babel/plugin-proposal-decorators",version:"^7"});break;case"@babel/plugin-proposal-class-properties":O.push({package:"@babel/plugin-proposal-class-properties",version:"^7"});break;case"@babel/plugin-proposal-private-methods":O.push({package:"@babel/plugin-proposal-private-methods",version:"^7"});break;case"@babel/plugin-proposal-private-property-in-object":O.push({package:"@babel/plugin-proposal-private-property-in-object",version:"^7"});break;case"@babel/plugin-proposal-optional-chaining":O.push({package:"@babel/plugin-proposal-optional-chaining",version:"^7"});break}});if(O.push({package:"@fnet/rollup-plugin-delete",version:"0.1.10"}),$.doc.features.browsersync_enabled)O.push({package:"@fnet/rollup-plugin-browsersync",version:"0.1.11"})}import vT from"@fnet/npm-list-versions";async function s({atom:$,packageDependencies:z,packageDevDependencies:O,setProgress:W}){W("Initializing dependencies for Bun");let T=$.doc.dependencies||[];if(T.filter((K)=>!K.dev).forEach((K)=>z.push(K)),T.filter((K)=>K.dev).forEach((K)=>O.push(K)),$.type==="workflow")z.push({package:"dot-prop",version:"^10"});if($.doc.features.form_enabled){if($.doc.features.dependency_auto_enabled){let K="^18.2";if(W("Fetching React versions"),K=`^${(await vT({name:"react",groupBy:{major:!0}})).find((Y)=>Y[0]===$.doc.features.react_version.toString())[0]}`,z.push({package:"react",version:K}),z.push({package:"react-dom",version:K}),$.type==="workflow")z.push({package:"@fnet/react-app",version:"^0.1"}),z.push({package:"@fnet/react-app-state",version:"^0.1"})}}if($.doc.features.preact_enabled)z.push({package:"preact",version:"^10"});if($.doc.features.cli.enabled===!0){if(z.push({package:"@fnet/args",version:"^0.1"}),$.doc.features.cli.fargs&&$.doc.features.cli.fargs?.enabled!==!1)z.push({package:"@fnet/config",version:"0.2.21"});if($.doc.features.cli.mcp&&$.doc.features.cli.mcp.enabled===!0)z.push({package:"@modelcontextprotocol/sdk",version:"^1.10"}),z.push({package:"express",version:"^4.18"})}if($.doc.features.render&&$.doc.features.render.enabled!==!1)O.push({package:"@flownet/lib-render-templates-dir",version:"0.1.19"})}import AT from"node:fs";import ST from"node:path";import mT from"@flownet/lib-render-templates-dir";async function t({atom:$,setProgress:z,context:O,packageDependencies:W}){if($.doc.features.app.enabled!==!0)return;await z({message:"Creating app folder"});let T={atom:$,packageDependencies:W,ts:Date.now()},K=O.templateDir,H=ST.resolve(O.projectDir,"src/app");if(!AT.existsSync(H))AT.mkdirSync(H,{recursive:!0});let G=["index.js.njk"];if($.doc.features.app.html!==!1)G.push("index.html.njk");await mT({pattern:G,dir:ST.resolve(K,"src/app"),outDir:H,context:T})}import yT from"nunjucks";import N from"node:fs";import E from"node:path";import fT from"@flownet/lib-parse-imports-js";import kT from"@fnet/npm-pick-versions";import gT from"object-hash";import l from"node:fs";import UT from"node:path";async function I({projectDir:$,name:z,setProgress:O,count:W=1}){let T,H=gT(["npm-pick-versions",z,W]),G=UT.join($,".cache"),Y=UT.join(G,H+".json");if(l.existsSync(Y)){if(O)O(`Picking npm version of ${z} from cache ...`);T=JSON.parse(l.readFileSync(Y,"utf8"))}else{if(O)O(`Picking npm version of ${z} ...`);T=await kT({name:z,count:W}),l.mkdirSync(G,{recursive:!0}),l.writeFileSync(Y,JSON.stringify(T),"utf8")}return T}async function a({atom:$,context:z,packageDependencies:O,packageDevDependencies:W,setProgress:T}){await T({message:"Creating package.json."}),O.filter((q)=>q.dev===!0).forEach((q)=>{if(!W.find((U)=>U.package===q.package))W.push(q);let Q=O.findIndex((U)=>U.package===q.package);O.splice(Q,1)});let H=O.find((q)=>q.package==="react"),G=O.find((q)=>q.package==="react-dom");if(H&&!G)O.push({package:"react-dom",version:H.version});else if(H&&G)G.version=H.version;if(H&&$.doc.features.react_version>=17){if(!O.find((q)=>q.package==="@emotion/react"))O.push({package:"@emotion/react",version:"^11"});if(!O.find((q)=>q.package==="@emotion/styled"))O.push({package:"@emotion/styled",version:"^11"})}let Y=[];if($.doc.features.app.enabled===!0)Y.push({file:E.resolve(z.projectDir,"src/app/index.js"),dev:$.doc.features.app.dev===!0});if($.doc.features.cli.enabled===!0)Y.push({file:E.resolve(z.projectDir,"src/cli/index.js"),dev:$.doc.features.cli.dev===!0});for await(let q of Y){let Q=q.file;if(!N.existsSync(Q))throw Error(`App file not found: ${Q}`);let L=(await fT({file:Q,recursive:!0,verbose:!1})).all;for await(let B of L){if(B.type!=="npm")continue;if(O.find((x)=>x.package===B.package))continue;if(W.find((x)=>x.package===B.package))continue;let xT=await I({name:B.package,projectDir:z.projectDir,setProgress:T});(q.dev===!0?W:O).push({package:B.package,subpath:B.subpath,version:xT.minorRange,type:"npm"})}}for await(let q of O){if(q.version!==void 0)continue;let Q=await I({name:q.package,projectDir:z.projectDir,setProgress:T});q.version=Q.minorRange}for await(let q of W){if(q.version!==void 0)continue;let Q=await I({name:q.package,projectDir:z.projectDir,setProgress:T});q.version=Q.minorRange}let M={atom:$,packageDependencies:O,packageDevDependencies:W},A=z.templateDir,J=yT.compile(N.readFileSync(E.resolve(A,"package.json.njk"),"utf8"),yT.configure(A)).render(M),X=z.projectDir,y=E.resolve(X,"package.json");N.writeFileSync(y,J,"utf8");let Z=E.resolve(z.project.projectDir,"fnet");if(N.existsSync(Z)){let q=E.resolve(z.projectDir,"fnet");if(!N.existsSync(q))N.mkdirSync(q);let Q=N.readdirSync(Z);for(let U of Q){let L=E.resolve(Z,U);if(!N.lstatSync(L).isFile())continue;let B=E.resolve(q,U);N.copyFileSync(L,B)}}}import XT from"node:fs";import JT from"node:path";import iT from"@flownet/lib-render-templates-dir";async function e({atom:$,setProgress:z,context:O,packageDependencies:W}){if($.doc.features.cli.enabled!==!0)return;await z({message:"Creating cli."});let T={atom:$,packageDependencies:W},K=O.templateDir,H=JT.resolve(O.projectDir,"src/cli");if(!XT.existsSync(H))XT.mkdirSync(H,{recursive:!0});await iT({pattern:["index.js.njk"],dir:JT.resolve(K,"src/cli"),outDir:H,context:T})}import TT from"node:fs";import $T from"node:path";import VT from"nunjucks";import oT from"@flownet/lib-parse-imports-js";async function OT({atom:$,setProgress:z,context:O,packageDependencies:W}){await z({message:"Creating rollup file."});let T={atom:$,packageDependencies:W},K=$T.resolve(O.projectDir,"src","default/index.js");if(!TT.existsSync(K))throw Error(`Entry file not found: ${K}`);let G=(await oT({file:K,recursive:!0})).all.filter((Z)=>Z.type==="node").map((Z)=>Z.path),Y=$.doc.features.rollup_output,M=Object.keys(Y);for(let Z=0;Z<M.length;Z++){let q=M[Z],Q=Y[q];if(Q.browser===!0){if(G.length>0){Q.globals_enabled=!0,Q.globals=Q.globals||[],Q.globals=Q.globals.concat(G.map((U)=>{return{key:U,value:U}})),Q.alias_enabled=!0,Q.alias=Q.alias||{},Q.alias.entries=Q.alias.entries||{};for(let U=0;U<G.length;U++){let L=G[U];Q.alias.entries[L]=`node:${L}`,Q.alias.entries[`node:${L}`]=L}Q.external_enabled=!0,Q.external=Q.external||[],Q.external=Q.external.concat(G)}}}let A=O.templateDir,J=VT.compile(TT.readFileSync($T.resolve(A,"rollup.config.mjs.njk"),"utf8"),VT.configure(A)).render(T),X=O.projectDir,y=$T.resolve(X,"rollup.config.mjs");TT.writeFileSync(y,J,"utf8")}import zT from"node:fs";import bT from"node:path";import RT from"nunjucks";async function WT({atom:$,setProgress:z,context:O,packageDependencies:W}){await z({message:"Creating build.js file."});let T={atom:$,packageDependencies:W},K=O.templateDir,G=RT.compile(zT.readFileSync(bT.resolve(K,"build.js.njk"),"utf8"),RT.configure(K)).render(T),Y=O.projectDir,M=bT.resolve(Y,"build.js");zT.writeFileSync(M,G,"utf8"),zT.chmodSync(M,"755")}import KT from"node:fs";import qT from"node:path";import uT from"nunjucks";import dT from"ajv/dist/2020.js";import DT from"ajv/dist/standalone/index.js";import cT from"ajv-formats";async function GT({atom:$,setProgress:z,context:O,njEnv:W}){if($.doc.features.cli.enabled!==!0)return;await z({message:"Creating input args."});let T={},K=[];if($.doc.input)T=$.doc.input;else T={type:"object",properties:{},required:[]};if($.doc.features.cli.fargs&&$.doc.features.cli.fargs?.enabled!==!1){let Q=$.doc.features.cli.fargs,U={type:"string",description:"Config name to load args",hidden:!1},L={type:"array",description:"Tags to filter the config",hidden:!1};if(Reflect.has(Q,"default"))U.default=Q.default}let G={imports:K,atom:$},Y=O.templateDir,A=uT.compile(KT.readFileSync(qT.resolve(Y,"src/default/input.args.js.njk"),"utf8"),W).render(G),V=O.projectDir,J=qT.resolve(V,"src/default/input.args.js");KT.writeFileSync(J,A,"utf8");let X=new dT({allErrors:!0,useDefaults:!0,formats:{},strict:!1,code:{esm:!0,lines:!0,optimize:!1,source:!0}});cT(X);let y=X.compile(T),q=DT(X,y)+`
|
|
2
2
|
export { schema31 as schema };`;KT.writeFileSync(qT.resolve(V,"src/default/validate_input.js"),q,"utf8")}import LT from"node:fs";import NT from"node:path";import BT from"nunjucks";async function QT({atom:$,setProgress:z,context:O,packageDependencies:W}){await z({message:"Creating tsconfig.json."});let T={atom:$,packageDependencies:W},K=O.templateDir,G=BT.compile(LT.readFileSync(NT.resolve(K,"tsconfig.json.njk"),"utf8"),BT.configure(K)).render(T),Y=O.projectDir,M=NT.resolve(Y,"tsconfig.json");LT.writeFileSync(M,G,"utf8")}import rT from"node:path";import ET from"@fnet/shelljs";async function YT({setProgress:$,context:z}){let O=z.projectDir;await $({message:"Prettifiying source files."});let W=rT.join("src","**","*");if(j("bun")){let T=await ET(`prettier --write ${W} *.{js,cjs,mjs,json,yaml,html} --no-error-on-unmatched-pattern`,{cwd:O});if(T.code!==0)throw Error(T.stderr)}else{let T=await ET(`prettier --write ${W} *.{js,cjs,mjs,json,yaml,html} --no-error-on-unmatched-pattern`,{cwd:O});if(T.code!==0)throw Error(T.stderr)}}import nT from"@fnet/shelljs";async function ZT({atom:$,setProgress:z,context:O}){if(!$.doc.features.dts_enabled)return;let W=O.projectDir;if(await z({message:"Creating .d.ts"}),(await nT("tsc",{cwd:W})).code!==0)throw Error("Couldnt create .d.ts files.")}import IT from"@fnet/shelljs";async function HT({setProgress:$,atom:z,context:O}){let W=O.projectDir;if(await $({message:"Installing npm packages."}),j("bun")){if((await IT(`bun install ${z.doc.features.npm_install_flags}`,{cwd:W})).code!==0)throw Error("Couldnt install npm packages.")}else if((await IT(`npm install ${z.doc.features.npm_install_flags}`,{cwd:W})).code!==0)throw Error("Couldnt install npm packages.")}import _T from"node:fs";import pT from"node:path";import{spawn as sT}from"node:child_process";async function FT($){let{projectDir:z,scriptName:O,args:W=[],env:T=process.env,shell:K=!0,detached:H=!0,onSpawn:G}=$;if(!z||!O)throw Error("projectDir and scriptName are required");let Y=pT.resolve(z,"package.json");if(!_T.existsSync(Y))throw Error(`package.json not found at ${Y}`);let M=JSON.parse(_T.readFileSync(Y,"utf8")),A=M.scripts?.[O];if(!A){let X=Object.keys(M.scripts||{}).join(", ");throw Error(`Script '${O}' not found. Available: ${X}`)}let V=W.length>0?`${A} ${W.join(" ")}`:A,J=sT(V,[],{cwd:z,stdio:"inherit",shell:K,detached:H,env:{...T}});if(G)G(J);return new Promise((X,y)=>{J.on("error",(Z)=>{y(Error(`Failed to start '${O}': ${Z.message}`))}),J.on("close",(Z)=>{X({subprocess:J,exitCode:Z})})})}import tT from"node:path";async function MT({setProgress:$,context:z}){let O=z.projectDir;await $({message:"Building main project."});let W=z.dev?"build:dev":"build",T={...process.env},K=tT.join(O,"node_modules");T.NODE_PATH=K,T.NODE_PRESERVE_SYMLINKS=1,await FT({projectDir:O,scriptName:W,shell:!0,detached:!0,env:T})}class lT extends CT{async initRuntime(){if(await n(this.apiContext),this.apiContext.context.project.runtime.type==="bun")await s(this.apiContext);else await p(this.apiContext);await this.initLibraryDir(),await this.initNunjucks(),await this.initLibs()}async initLibs(){this.setProgress({message:"Initializing external libs."});let $=[{name:this.atom.doc.name,type:"atom",parent_id:this.atom.parent_id}];this.libs=$,await this.initAtomLibsAndDeps({libs:$,packageDependencies:this.apiContext.packageDependencies})}async initAtomLibsAndDeps({libs:$,packageDependencies:z}){let O=$.filter((W)=>W.type==="atom");for(let W=0;W<O.length;W++){let T=O[W],K=await this.findAtomLibrary({url:T.name});T.atom=K,K.doc.dependencies?.filter((G)=>typeof G.repo>"u"||G.repo==="npm")?.forEach((G)=>{let Y=z.find((M)=>M.package===G.package);if(Y){if(typeof G.path==="string"){if(!(Y.path||[]).some((M)=>M===G.path))Y.path=Y.path||[],Y.path.push(G.path)}else if(Array.isArray(G.path))G.path.forEach((M)=>{if(!(Y.path||[]).some((A)=>A===M))Y.path=Y.path||[],Y.path.push(M)})}else z.push(G)})}z.sort((W,T)=>W.package?.localeCompare(T.package))}async findAtomLibrary({url:$}){let z=T0({url:$});if(!z)throw Error(`Invalid package name: ${$}`);if(!z.protocol)z.protocol=this.context.protocol;if(z.protocol==="ac:"){let O=z.pathname.split("/");if(O.length===1)return await this.apiContext.Atom.first({where:{name:$,parent_id:this.atomConfig.env.ATOM_LIBRARIES_ID,type:"workflow.lib"}});if(O.length===2){let W=await this.apiContext.Atom.first({where:{name:O[0],parent_id:this.atomConfig.env.ATOM_LIBRARIES_ID,type:"folder"}});return await this.apiContext.Atom.first({where:{name:O[1],parent_id:W.id,type:"workflow.lib"}})}}else if(z.protocol==="src:"){let O=this.atom;O.protocol="src:",O.doc.dependencies=O.doc.dependencies||[],O.name=O.doc.name;let W=b.resolve(this.context.projectSrcDir,"index.js"),T=await eT({file:W,recursive:!0}),K=O.doc.dependencies,H=T.all;for await(let G of H){if(G.type!=="npm")continue;if(K.find((M)=>M.package===G.package))continue;let Y=await I({name:G.package,projectDir:this.context.projectDir,setProgress:this.apiContext.setProgress});K.push({package:G.package,subpath:G.subpath,version:Y.minorRange,type:"npm"})}return O}}async createAtomLibFiles({libs:$}){await this.setProgress({message:"Creating external lib files."}),this.atom.typesDir="./types";let z=$.filter((O)=>O.type==="atom");for(let O=0;O<z.length;O++){let T=z[O].atom,K=this.context.projectDir;if(T.protocol==="src:"){let H=b.resolve(this.context.projectSrcDir,`${T.fileName||T.name}.js`),G=b.relative(b.join(this.context.projectDir,"src","default"),H);if(!C.existsSync(H)){C.mkdirSync(b.dirname(H),{recursive:!0});let Y=`export default async (input)=>{
|
|
3
3
|
`;Y+="}",C.writeFileSync(H,Y,"utf8")}T.relativePath=G.split(b.sep).join("/"),this.atom.typesDir=`./types/${b.basename(K)}/src`}else{let H=b.join(K,"src","libs",`${T.id}.js`),G=T.doc.contents?.find((Y)=>Y.format==="esm")||T.doc;C.writeFileSync(H,G.content,"utf8")}}}async createEngine(){await this.setProgress({message:"Creating engine file."});let z={libs:this.libs.filter((G)=>G.type==="atom"),libraryAtom:this.atom,atom:this.atom},O=this.context.templateDir,T=aT.compile(C.readFileSync(b.resolve(O,b.join("src","default","engine.js.njk")),"utf8"),this.apiContext.njEnv).render(z),K=this.context.projectDir,H=b.resolve(K,b.join("src","default","index.js"));C.writeFileSync(H,T,"utf8")}async build(){try{if(this.fileMode){let $=this.apiContext.context.project;if(await this.createAtomLibFiles({libs:this.libs}),await this.createEngine(),await this.createProjectYaml(),await hT(this.apiContext),await QT(this.apiContext),await jT(this.apiContext),await GT(this.apiContext),await e(this.apiContext),await t(this.apiContext),$.runtime.type==="bun")await WT(this.apiContext);else await OT(this.apiContext);if(await a(this.apiContext),await YT(this.apiContext),await ZT(this.apiContext),this.buildMode){if(await HT(this.apiContext),await MT(this.apiContext),this.deployMode)await this.deploy()}}await this._cache_set(this.buildKey,{status:"COMPLETED"})}catch($){throw await this._cache_set(this.buildKey,{status:"FAILED",message:$.message||$}),console.log($),$}}}var B1=lT;export{B1 as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./index.
|
|
1
|
+
import"./index.5qbcx2y3.js";import O from"semver";import P from"@fnet/config";import R from"node:fs";import S from"@fnet/shelljs";import D from"form-data";async function M({setProgress:h,context:t,deploymentProject:u,deploymentProjectTarget:o,yamlTarget:m}){await h({message:"Deploying it as fnet flow."});let{file:n,data:e}=await P({name:o.config||"fnet-flow",dir:t.project.projectDir,tags:t.tags});if(!e.env.ATOM_API_URL)throw Error(`ATOM_API_URL is required in ${n}`);if(!e.env.ATOM_API_USERNAME)throw Error(`ATOM_API_USERNAME is required in ${n}`);if(!e.env.ATOM_API_PASSWORD)throw Error(`ATOM_API_PASSWORD is required in ${n}`);let d=`${e.env.ATOM_API_URL}/v1/auth/token`,A=e.env.ATOM_API_USERNAME,_=e.env.ATOM_API_PASSWORD,s=await fetch(d,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:A,password:_})});if(!s.ok)throw Error(`Failed to fetch token: ${s.statusText}`);let i=(await s.json())?.access_token;if(!i)throw Error(`Invalid access_token from ${d}`);u.isDirty=!0;let a=O.inc(o.version,"patch");o.params.version=a,o.version=a,m.set("version",a);let T=`${e.env.ATOM_API_URL}/v1/service/fnet-flow/publish`,p=await fetch(T,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${i}`},body:JSON.stringify({name:o.params.name,version:o.params.version,docs:o.params.docs,configs:o.params.configs})});if(!p.ok)throw Error(`Error publishing fnet flow: ${p.statusText}`);let w=await p.json();if(w?.error)throw Error("Error publishing fnet flow.");let v=w?.upload.id,r="fnet-dir-zipper";r+=` --sourceDir='${t.project.projectDir}'`,r+=" --pattern=**/*",r+=" --stdout_format=json";let f=await S(r);if(f.code!==0)throw Error(f.stderr);let E=JSON.parse(f.stdout).path,c=new D;c.append("file",R.createReadStream(E));let l=await fetch(`${e.env.ATOM_API_URL}/v1/service/upload/single/${v}`,{method:"POST",headers:{...c.getHeaders(),Authorization:`Bearer ${i}`},body:c});if(!l.ok)throw Error(`Error uploading fnet flow: ${l.statusText}`);if((await l.json())?.error)throw Error("Error uploading fnet flow.")}export{M as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./index.
|
|
1
|
+
import"./index.5qbcx2y3.js";import d from"@fnet/config";import l from"@flownet/lib-to-webos";import a from"lodash.clonedeep";import u from"semver";async function g({atom:r,target:e,onProgress:s,projectDir:o,dependencies:t,context:f,yamlTarget:c}){if(s)await s({message:"Deploying it as webos package."});let m=e?.config?await d({name:e.config,dir:o,optional:!0,transferEnv:!1,tags:f.tags}):void 0,n=u.inc(e.version||"0.1.0","patch");e.params.version=n,e.version=n,c.set("version",n);let i=a(e.params);i.dependencies=a(t);let p={atom:r,params:i,config:m?.config,src:o,dest:o};return{deployer:await l(p)}}export{g as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./index.
|
|
1
|
+
import"./index.5qbcx2y3.js";import w from"semver";import d from"@fnet/config";async function T({setProgress:f,context:t,deploymentProject:p,deploymentProjectTarget:o,yamlTarget:A}){await f({message:"Deploying it as fnet form."});let{file:n,data:e}=await d({name:o.config||"fnet-form",dir:t.projectDir,tags:t.tags});if(!e.env.ATOM_API_URL)throw Error(`ATOM_API_URL is required in ${n}`);if(!e.env.ATOM_API_USERNAME)throw Error(`ATOM_API_USERNAME is required in ${n}`);if(!e.env.ATOM_API_PASSWORD)throw Error(`ATOM_API_PASSWORD is required in ${n}`);let a=`${e.env.ATOM_API_URL}/v1/auth/token`,m=e.env.ATOM_API_USERNAME,h=e.env.ATOM_API_PASSWORD,r=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:m,password:h})});if(!r.ok)throw Error(`Failed to fetch token: ${r.statusText}`);let c=(await r.json())?.access_token;if(!c)throw Error(`Invalid access_token from ${a}`);p.isDirty=!0;let s=w.inc(o.version,"patch");o.params.version=s,o.version=s,A.set("version",s);let _=`${e.env.ATOM_API_URL}/v1/service/fnet-form/publish`,i=await fetch(_,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${c}`},body:JSON.stringify({name:o.params.name,version:o.params.version,docs:o.params.docs,configs:o.params.configs})});if(!i.ok)throw Error(`Error publishing fnet form: ${i.statusText}`);if((await i.json())?.error)throw Error("Error publishing fnet form.")}export{T as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import{createRequire as q}from"node:module";var j=Object.create;var{getPrototypeOf:k,defineProperty:i,getOwnPropertyNames:l}=Object;var m=Object.prototype.hasOwnProperty;function n(a){return this[a]}var o,p,r=(a,b,d)=>{var f=a!=null&&typeof a==="object";if(f){var g=b?o??=new WeakMap:p??=new WeakMap,h=g.get(a);if(h)return h}d=a!=null?j(k(a)):{};let c=b||!a||!a.__esModule?i(d,"default",{value:a,enumerable:!0}):d;for(let e of l(a))if(!m.call(c,e))i(c,e,{get:n.bind(a,e),enumerable:!0});if(f)g.set(a,c);return c};var s=(a,b)=>()=>(b||a((b={exports:{}}).exports,b),b.exports);var u=q(import.meta.url);
|
|
2
|
-
export{r as
|
|
2
|
+
export{r as h,s as i,u as j};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./index.
|
|
1
|
+
import"./index.5qbcx2y3.js";import l from"@fnet/config";import d from"@fnet/to-rust";import a from"lodash.clonedeep";import u from"semver";async function y({atom:t,target:e,onProgress:s,projectDir:n,dependencies:r,context:f,yamlTarget:c}){if(s)await s({message:"Deploying it as Rust package."});let p=e?.config?await l({name:e.config,dir:n,optional:!0,transferEnv:!1,tags:f.tags}):void 0,o=u.inc(e.version||"0.1.0","patch");e.params.version=o,e.version=o,c.set("version",o);let i=a(e.params);i.dependencies=a(r);let m={atom:t,params:i,config:p?.config,src:n,dest:n};return{deployer:await d(m)}}export{y as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./index.
|
|
1
|
+
import"./index.5qbcx2y3.js";import d from"@fnet/config";import l from"@flownet/lib-to-docker";import a from"lodash.clonedeep";import u from"semver";async function y({atom:r,target:e,onProgress:s,projectDir:o,dependencies:c,context:t,yamlTarget:f}){if(s)await s({message:"Deploying it as docker package."});let p=e?.config?await d({name:e.config,dir:o,optional:!0,transferEnv:!1,tags:t.tags}):void 0,n=u.inc(e.version||"0.1.0","patch");e.params.version=n,e.version=n,f.set("version",n);let i=a(e.params);i.dependencies=a(c);let m={atom:r,params:i,config:p?.config,src:o,dest:o};return{deployer:await l(m)}}export{y as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./index.
|
|
1
|
+
import"./index.5qbcx2y3.js";import d from"@fnet/config";import l from"@flownet/lib-to-macos-app";import i from"lodash.clonedeep";import u from"semver";async function g({atom:p,target:e,onProgress:s,projectDir:n,dependencies:c,context:r,yamlTarget:t}){if(s)await s({message:"Deploying it as macos-app package."});let f=e?.config?await d({name:e.config,dir:n,optional:!0,transferEnv:!1,tags:r.tags}):void 0,o=u.inc(e.version||"0.1.0","patch");e.params.version=o,e.version=o,t.set("version",o);let a=i(e.params);a.dependencies=i(c);let m={atom:p,params:a,config:f?.config,src:n,dest:n};return{deployer:await l(m)}}export{g as default};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{e as $}from"./index.wbt2dhhm.js";import"./index.5qbcx2y3.js";import R from"fs";import _ from"path";import I from"chalk";import x from"@fnet/yaml";import H,{ProcessManager as w}from"@fnet/shell-flow";async function k({projectType:D,group:C,tags:q,args:A,argv:J,processManager:K}){try{let z=await G(D);q=$(q);let{parsed:Q}=await x({file:z.path,tags:q}),E=Q.commands;if(!E)throw Error(`Commands section not found in ${z.name}`);let B=E[C];if(!B)throw Error(`Command group '${C}' not found in ${z.name}`);await H({commands:B,context:{args:A,argv:J,projectType:z.type},processManager:K})}catch(z){console.error(`Error: ${z.message}`),process.exit(1)}}async function v({projectType:D,tags:C}){try{let q=await G(D),{parsed:A}=await x({file:q.path,tags:C}),J=A.commands;if(!J){console.log(I.yellow(`No commands found in ${q.name}`));return}console.log(`
|
|
2
|
+
${I.bold("Available commands")} ${I.dim(`(${q.name})`)}:
|
|
3
|
+
`);let K=Object.entries(J),z=Math.max(...K.map(([E])=>E.length)),Q=!1;for(let[E,B]of K){let W=B&&typeof B==="object"&&!Array.isArray(B),X=W?B.description||"":"",U=W?B.usage||"":"",V=!!(X||U);if(V&&Q)console.log("");let Z=E.padEnd(z);if(V){if(console.log(` ${I.bold.cyan(Z)} ${X}`),U)console.log(` ${"".padEnd(z)} ${I.dim("$ "+U)}`)}else console.log(` ${I.cyan(Z)}`);Q=V}}catch(q){console.error(`Error: ${q.message}`),process.exit(1)}}async function G(D){let C=process.cwd(),q=_.resolve(C,"fnode.yaml"),A=_.resolve(C,"fnet.yaml");if(D==="fnode"){if(R.existsSync(q))return{path:q,name:"fnode.yaml",type:"fnode"};throw Error("fnode.yaml file not found in current directory")}if(D==="fnet"){if(R.existsSync(A))return{path:A,name:"fnet.yaml",type:"fnet"};throw Error("fnet.yaml file not found in current directory")}if(R.existsSync(q))return{path:q,name:"fnode.yaml",type:"fnode"};if(R.existsSync(A))return{path:A,name:"fnet.yaml",type:"fnet"};throw Error("No project file (fnode.yaml or fnet.yaml) found in current directory")}export{k as runCommandGroup,v as listCommandGroups,G as detectProjectFile};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import{existsSync as c}from"node:fs";import{delimiter as f,join as i}from"node:path";var m=(t)=>{let r=process.env.PATH||"",s=process.platform==="win32"?(process.env.PATHEXT||".EXE;.CMD;.BAT;.COM").split(";"):[""],n=r.split(f);for(let p of n)for(let e of s){let o=i(p,process.platform==="win32"?t+e:t);if(c(o))return o}return null};
|
|
2
|
-
export{m as
|
|
2
|
+
export{m as g};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{a as A,b,c as v,d as w}from"./index.
|
|
1
|
+
import{a as A,b,c as v,d as w}from"./index.q61zqpb9.js";import"./index.5qbcx2y3.js";import K from"node:fs";import T from"node:path";import f from"node:os";async function U(I){let{atom:q,context:z,setProgress:H}=I;H("Initializing features..."),q.doc.features=q.doc.features||{};let _=q.doc.features;if(_.cli===!1)_.cli={enabled:!1};else if(_.cli===!0)_.cli={enabled:!0};else _.cli={enabled:!0};_.cli.enabled=_.cli.enabled===!0&&(q.doc.features.form_enabled===!1||_.cli.extend===!0||_.cli.enabled===!0)}async function V({atom:I,packageDependencies:q,packageDevDependencies:z,setProgress:H}){H("Initializing dependencies")}import Z from"node:fs";import $ from"node:path";import l from"@flownet/lib-render-templates-dir";async function W({atom:I,setProgress:q,context:z,packageDependencies:H}){if(I.doc.features.cli.enabled!==!0)return;await q({message:"Creating cli."});let _={atom:I,packageDependencies:H},N=z.templateDir,M=$.join(z.projectDir,"src","cli");if(!Z.existsSync(M))Z.mkdirSync(M,{recursive:!0});await l({pattern:["index.py.njk","__init__.py.njk"],dir:$.join(N,"src","cli"),outDir:M,context:_})}import Q from"node:path";import G from"@fnet/auto-conda-env";import u from"@flownet/lib-render-templates-dir";async function X(I){let{setProgress:q,atom:z,context:H}=I;q({message:"Installing Python packages"});let _=H.projectDir,N=await G({pythonVersion:"3.12",packages:[{package:"fnet-import-parser",version:"0.1.9"}]}),{errors:M,result:F}=await N.runBin("fnet_import_parser",["--entry_file",Q.join(_,"src","default","index.py")],{captureName:"result"});if(M)throw Error(M.format());let y=JSON.parse(F.items[0].stdout).required["third-party"]?.map((J)=>{return{package:J.metadata?.package||J.path,version:J.metadata?.version||void 0,channel:J.metadata?.channel||void 0}})||[],S=z.doc.dependencies||[];for(let J of y)if(!S.some((R)=>R.package===J.package))S.push(J);let E=Q.join(_,".conda"),Y=await G({envDir:E,pythonVersion:z.doc.features.runtime.version||"3.12",packages:S});H.pythonEnv=Y,I.packageDependencies=S;let L=z.doc.features.render?.dirs||[];for(let J of L)J.dir=Q.resolve(_,J.dir),J.outDir=Q.resolve(_,J.outDir),await u(J);let O={params:{}};O.params.package_name=z.doc.name,O.params.version="0.1.0",O.params.bin_name=z.doc.name,O.params.python_requires=z.doc.features.runtime.version||">=3.12",O.params.dependencies=S,O.params.scripts=JSON.stringify({cli:`PYTHONPATH='${Q.join("src")}' '${Q.relative(H.projectDir,Y.pythonBin)}' '${Q.join("src","cli","index.py")}'`}),await u({pattern:["setup.py.njk","package.json.njk","pyproject.toml.njk"],dir:H.templateDir,outDir:H.projectDir,context:O})}class B extends b{async initRuntime(){await U(this.apiContext),await V(this.apiContext),await this.initLibraryDirPython(),await this.initNunjucks(),await this.initLibsPython()}async initLibraryDirPython(){this.setProgress({message:"Initializing library directory."});let I=this.context.projectDir;this.setProgress({message:"Cleaning project directory."});let q=A({dir:I,ignore:[".cache","node_modules",".conda",".bin",".dev"],absolute:!0});for(let _ of q)K.rmSync(_,{recursive:!0,force:!0});this.setProgress({message:"Creating project directory."});let z=I;if(!K.existsSync(z))K.mkdirSync(z,{recursive:!0});if(z=T.join(I,"src"),!K.existsSync(z))K.mkdirSync(z,{recursive:!0});z=T.join(I,"src","default");let H=this.context.projectSrcDir;if(!K.existsSync(z))try{if(f.platform()==="win32")K.symlinkSync(H,z,"junction");else K.symlinkSync(H,z,"dir")}catch(_){throw Error(`Couldn't create symlink. Error: ${_.message}`)}if(z=T.join(I,".dev"),!K.existsSync(z))K.mkdirSync(z,{recursive:!0})}async initLibsPython(){this.setProgress({message:"Initializing external libs."});let I=this.atom;I.protocol="src:",I.doc.dependencies=I.doc.dependencies||[],I.name=I.doc.name;let q=[{name:this.atom.doc.name,type:"atom",parent_id:this.atom.parent_id,atom:I}];this.libs=q}async createAtomLibFilesPython({libs:I}){await this.setProgress({message:"Creating external lib files."});let q=I.filter((z)=>z.type==="atom");for(let z=0;z<q.length;z++){let _=q[z].atom;if(_.protocol==="src:"){let N=T.resolve(this.context.projectSrcDir,`${_.fileName||_.name}.py`);if(!K.existsSync(N)){K.mkdirSync(T.dirname(N),{recursive:!0});let M=`def default():
|
|
2
2
|
`;M+=` print("Hello world!")
|
|
3
3
|
`,K.writeFileSync(N,M,"utf8")}}}}async build(){try{if(this.fileMode){if(await this.createAtomLibFilesPython({libs:this.libs}),await this.createProjectYaml(),await w(this.apiContext),await v(this.apiContext),await W(this.apiContext),this.buildMode){if(await X(this.apiContext),this.deployMode)await this.deploy()}}await this._cache_set(this.buildKey,{status:"COMPLETED"})}catch(I){throw await this._cache_set(this.buildKey,{status:"FAILED",message:I.message||I}),console.log(I),I}}}var qz=B;export{qz as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{f as Z}from"./index.r8s8r2n7.js";import{g as _}from"./index.c8qd1bz3.js";import"./index.5qbcx2y3.js";import A from"node:fs";import E from"node:path";import u from"semver";import Y from"@fnet/shelljs";import v from"@fnet/config";import w from"@fnet/object-from-schema";import b from"yaml";import{fileURLToPath as F}from"node:url";var h=E.dirname(F(import.meta.url)),m=process.cwd();async function T({atom:y,setProgress:$,context:B,deploymentProject:L,deploymentProjectTarget:z,yamlTarget:R}){await $({message:"Deploying it as npm package."});let G=B.projectDir,H=E.resolve(G,"package.json"),V=A.readFileSync(H),q=JSON.parse(V);q.name=z.params.name,q.version=u.inc(z.version,"patch");let I=z.params.bin?.name||z.params.bin;if(z.params.bin?.enabled!==!1&&I&&typeof I==="string")q.bin={[I]:"dist/cli/esm/index.js"};delete q.scripts,delete q.devDependencies,q.scripts={serve:"npx serve ."},A.writeFileSync(H,JSON.stringify(q,null,"\t"));let W=z.config||"npm",K=(await v({name:W,dir:B.projectDir,tags:B.tags,optional:!0}))?.data;if(!K){let M=Z("./template/schemas/to-npm.yaml"),X=await w({schema:M,tags:B.tags}),U=B.project.projectDir,Q=E.resolve(U,".fnet");if(!A.existsSync(Q))A.mkdirSync(Q);A.writeFileSync(E.resolve(Q,`${W}.fnet`),b.stringify(X)),K=X}if(A.writeFileSync(E.resolve(G,".npmrc"),`//registry.npmjs.org/:_authToken=${K.env.NPM_TOKEN}`),z.dryRun===!0)return;if(_("bun")){if((await Y("bun publish --access public",{cwd:G})).code!==0)throw Error("Couldnt publish to npm")}else if((await Y("npm publish --access public",{cwd:G})).code!==0)throw Error("Couldnt publish to npm");A.writeFileSync(H,V),L.isDirty=!0,z.version=q.version,R.set("version",q.version)}export{T as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./index.
|
|
1
|
+
import"./index.5qbcx2y3.js";import a from"node:fs";import r from"node:path";import m from"node:os";import I from"nunjucks";import i from"@node-red/util";import T from"@fnet/config";async function D({atom:d,setProgress:h,context:o,deploymentProject:w,deploymentProjectTarget:e,buildId:F,packageDependencies:c,njEnv:j}){await h({message:"Deploying it as node-red flow."});let{projectDir:s,templateDir:$}=o,u=d.type==="workflow"?"WF":"LIB",p;if(e.deploy.template==="simple")p={atom:d,packageDependencies:c,red:{tab:{id:e.deploy.id||i.util.generateId(),label:`${u}/${d.id?d.id:m.hostname()}/${d.name}/${e.deploy.name||e.deploy.template}`},function:{id:i.util.generateId(),name:d.doc.name,initialize:{content:a.readFileSync(r.resolve(s,"dist/default/iife/index.js"),{encoding:"utf8",flag:"r"}),var:d.doc.bundleName}},inject:{id:i.util.generateId(),...e.params?.inject,payload:e.params?.inject?.payloadType==="json"?`'${JSON.stringify(e.params?.inject?.payload)}'`:e.params?.inject?.payload},debug:{id:i.util.generateId()}}};else if(e.deploy.template==="cronjob"){let l=e.params?.schedules?cloneDeep(e.params?.schedules):void 0;l?.forEach((t)=>{if(t.payloadType==="json")t.payload=`'${JSON.stringify(t.payload)}'`}),p={atom:d,packageDependencies:c,red:{tab:{id:e.deploy.id||i.util.generateId(),label:`${u}/${d.id?d.id:m.hostname()}/${e.deploy.name||e.deploy.template}`},function:{id:i.util.generateId(),name:d.doc.name,initialize:{content:a.readFileSync(r.resolve(s,"dist/default/iife/index.js"),{encoding:"utf8",flag:"r"}),var:d.doc.bundleName}},cronjob:{id:i.util.generateId(),schedules:l},debug:{id:i.util.generateId()}}}}else if(e.deploy.template==="http")p={atom:d,packageDependencies:c,red:{tab:{id:e.deploy.id||i.util.generateId(),label:`${u}/${d.id?d.id:m.hostname()}/${e.deploy.name||e.deploy.template}`},function:{id:i.util.generateId(),name:d.doc.name,initialize:{content:a.readFileSync(r.resolve(s,"dist/default/iife/index.js"),{encoding:"utf8",flag:"r"}),var:d.doc.bundleName}},httpin:{id:i.util.generateId(),method:e.params.method||"get",url:e.params.url},httpout:{id:i.util.generateId()},debug:{id:i.util.generateId()}}};else return;let n=I.compile(a.readFileSync(r.resolve($,`deploy/node-red/${e.deploy.template}.yaml.njk`),"utf8"),j).render(p);if(a.writeFileSync(r.resolve(s,"node-red.yaml"),n),n=yaml.load(n),e.dryRun===!0)return;w.isDirty=!0;let b=(await T({name:o.redConfig||"red",dir:o.projectDir,tags:o.tags}))?.data,y=e.deploy.url||b.env.RED_URL,f={};if(e.deploy.auth!==!1)f.Authorization="Bearer "+atomAccessToken;if(!e.deploy.id){let l=await fetch(`${y}/flow`,{method:"POST",headers:{...f,"Content-Type":"application/json"},body:JSON.stringify(n)});if(!l.ok)throw Error(`Failed to create flow: ${l.statusText}`);let t=await l.json();e.deploy.id=t.id}else if(e.actions?.delete===!0){let l=await fetch(`${y}/flow/${e.deploy.id}`,{method:"DELETE",headers:f});if(!l.ok)throw Error(`Failed to delete flow: ${l.statusText}`);delete e.actions.delete,delete e.deploy.id,e.enabled=!1}else{let l=await fetch(`${y}/flow/${e.deploy.id}`,{method:"PUT",headers:{...f,"Content-Type":"application/json"},body:JSON.stringify(n)});if(!l.ok)throw Error(`Failed to update flow: ${l.statusText}`)}}export{D as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./index.
|
|
1
|
+
import"./index.5qbcx2y3.js";import p from"node:fs";import f from"node:path";import w from"semver";import k from"@fnet/shelljs";import y from"@fnet/config";async function P({setProgress:A,context:i,deploymentProject:v,deploymentProjectTarget:o,yamlTarget:u}){await A({message:"Deploying it as fnet package."});let d=i.projectDir,a=f.resolve(d,"package.json"),m=p.readFileSync(a),t=JSON.parse(m);t.name=o.params.name,t.version=w.inc(o.version,"patch"),delete t.scripts,delete t.devDependencies,p.writeFileSync(a,JSON.stringify(t,null,"\t"));let{file:r,data:e}=await y({name:o.config||"fnet-package",dir:i.projectDir,tags:i.tags});if(!e.env.ATOM_API_URL)throw Error(`ATOM_API_URL is required in ${r}`);if(!e.env.ATOM_API_USERNAME)throw Error(`ATOM_API_USERNAME is required in ${r}`);if(!e.env.ATOM_API_PASSWORD)throw Error(`ATOM_API_PASSWORD is required in ${r}`);let l=`${e.env.ATOM_API_URL}/v1/auth/token`,h=e.env.ATOM_API_USERNAME,O=e.env.ATOM_API_PASSWORD,s=await fetch(l,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:h,password:O})});if(!s.ok)throw Error(`Failed to fetch token: ${s.statusText}`);let _=(await s.json())?.access_token;if(!_)throw Error(`Invalid access_token from ${l}`);let n="fnet-files-to-gcs";if(n+=` --projectId='${e.env.GCS_PROJECT_ID}'`,n+=` --bucketName='${e.env.GCS_BUCKET_NAME}'`,n+=` --keyFilename='${f.resolve(f.dirname(r),e.env.GCS_UPLOADER_KEY_FILE)}'`,n+=` --dir='${d}'`,n+=" --pattern='dist/**/**'",n+=" --pattern='bin/**/**'",n+=" --pattern='test/**/**'",n+=" --pattern='*.html'",n+=` --destDir='${t.name}/${t.version}'`,n+=" --metadata.cacheControl='public, max-age=31536000, immutable'",e.env.DOMAIN)n+=` --domain='${e.env.DOMAIN}'`;if(o.dry_run===!0||o.params.dry_run===!0)n+=" --dryRun";if(await k(n),p.writeFileSync(a,m),o.dryRun===!0)return;v.isDirty=!0,o.version=t.version,u.set("version",t.version);let S=`${e.env.ATOM_API_URL}/v1/service/fnet-package/publish`,c=await fetch(S,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${_}`},body:JSON.stringify({name:t.name,version:t.version,version_domain:e.env.DOMAIN,docs:o.params.docs,configs:o.params.configs})});if(!c.ok)throw Error(`Failed to publish fnet package: ${c.statusText}`);if((await c.json())?.error)throw Error("Failed to publish fnet package.")}export{P as default};
|