@fnet/cli 0.86.1 → 0.88.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/builder/wf-cli.js +1 -1
- package/package.json +2 -2
package/dist/builder/wf-cli.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
"use strict";var e=require("child_process"),t=require("@fnet/prompt"),n=require("@fnet/config"),o=require("path"),r=require("yargs/yargs"),i=require("fs"),s=require("yaml"),a=require("shelljs"),c=require("@fnet/yaml"),p=require("@fnet/object-from-schema"),l=require("@fnet/shell-flow"),d=require("@flownet/lib-render-templates-dir"),f=require("node:fs"),u=require("node:path"),m=require("nunjucks"),h=require("lodash.clonedeep"),y=require("isobject"),g=require("redis"),w=require("@flownet/lib-is-redis-online"),b=require("nanoid"),x=require("@flownet/lib-atom-api-js"),v=require("axios"),k=require("qs"),j=require("lodash.merge"),_=require("@flownet/lib-parse-imports-js"),D=require("@fnet/npm-list-versions"),P=require("@fnet/npm-pick-versions"),S=require("object-hash"),E=require("ajv/dist/2020"),A=require("ajv/dist/standalone"),T=require("ajv-formats"),$=require("@fnet/shell"),O=require("semver"),N=require("@fnet/up-list-files"),I=require("node:os"),C=require("@node-red/util"),F=require("@flownet/lib-to-ios-app"),R=require("@flownet/lib-to-macos-app"),M=require("@flownet/lib-to-electron"),q=require("@flownet/lib-to-webos"),B=require("@flownet/lib-to-nextjs"),K=require("@flownet/lib-to-docker"),L=require("form-data"),U=require("@fnet/to-rust"),J=require("@fnet/to-pyip"),z=require("@flownet/lib-parse-node-url"),W=require("bpmn-moddle"),G=require("dagre"),X=require("@fnet/expression"),V=require("chalk"),H=require("@fnet/list-files"),Y=require("lodash.pick"),Z=require("lodash.omit");function Q(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var ee,te,ne,oe,re,ie,se,ae,ce,pe,le,de,fe,ue,me,he,ye,ge,we,be,xe,ve,ke,je,_e,De,Pe,Se,Ee,Ae,Te,$e,Oe,Ne,Ie,Ce,Fe,Re,Me,qe,Be,Ke,Le,Ue,Je,ze,We,Ge,Xe,Ve,He,Ye,Ze,Qe,et,tt,nt,ot,rt,it,st,at,ct,pt,lt,dt,ft,ut,mt,ht,yt,gt,wt,bt,xt,vt,kt,jt,_t,Dt,Pt,St,Et,At,Tt,$t,Ot,Nt,It,Ct,Ft,Rt,Mt,qt,Bt,Kt,Lt,Ut,Jt={};function zt(){if(ie)return re;ie=1;const e=j;return re=({feature:t,features:n,packageDevDependencies:o})=>{const{name:r,packages:i,options:s,extraCheck:a,explicit:c}=t,p=`${r}_enabled`,l=n.rollup_output||{},d=Object.keys(l);let f=s||{};const u=n[r]?.options;u&&(f=e(f,u));const m=!n[r]||!1===n[r]?.enabled;d.forEach((e=>{const t=n.rollup_output[e];if(t){if(Reflect.has(t,r)){if(m||!t[r]||!1===t[r]?.enabled)return void delete t[r];!0===t[r]&&(t[r]={enabled:!0,options:f})}else{if(m||c||!1===n[p])return;t[r]={enabled:!0}}t[r]=t[r]||{},t[r].options={...f,...t[r].options}}}));let h=d.some((e=>!0===n.rollup_output[e][r]?.enabled));a&&(h=a()&&h),n[p]=h,h&&i.forEach((e=>o.push({package:e[0],version:e[1]})))},re}function Wt(){if(Ne)return Oe;Ne=1;const e=j,t=f,n=u,o=_,r=function(){if(ae)return se;ae=1;const e=zt();return se=t=>{const{atom:n,packageDevDependencies:o}=t,r=n.doc.features;e({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:r,packageDevDependencies:o})},se}(),i=function(){if(pe)return ce;pe=1;const e=zt();return ce=t=>{const{atom:n,packageDevDependencies:o}=t,r=n.doc.features;e({feature:{name:"gzip",packages:[["rollup-plugin-gzip","^4"]],explicit:!0},features:r,packageDevDependencies:o})},ce}(),s=function(){if(de)return le;de=1;const e=zt();return le=t=>{const{atom:n,packageDevDependencies:o}=t,r=n.doc.features;e({feature:{name:"nunjucks",packages:[["@fnet/rollup-plugin-nunjucks","0.1.8"]]},features:r,packageDevDependencies:o})},le}(),a=function(){if(ue)return fe;ue=1;const e=zt();return fe=t=>{const{atom:n,packageDevDependencies:o}=t,r=n.doc.features;e({feature:{name:"polyfill",packages:[["rollup-plugin-node-polyfills","^0.2"]]},features:r,packageDevDependencies:o})},fe}(),c=function(){if(he)return me;he=1;const e=zt();return me=t=>{const{atom:n,packageDevDependencies:o}=t,r=n.doc.features;e({feature:{name:"visualizer",packages:[["rollup-plugin-visualizer","^5"]],expilicit:!0},features:r,packageDevDependencies:o})},me}(),p=function(){if(ge)return ye;ge=1;const e=zt();return ye=t=>{const{atom:n,packageDevDependencies:o}=t,r=n.doc.features;e({feature:{name:"analyzer",packages:[["rollup-plugin-analyzer","^3"]],options:{summaryOnly:!0,limit:12},explicit:!0},features:r,packageDevDependencies:o})},ye}(),l=function(){if(be)return we;be=1;const e=zt();return we=t=>{const{atom:n,packageDevDependencies:o}=t,r=n.doc.features;e({feature:{name:"string",packages:[["rollup-plugin-string","^3"]]},features:r,packageDevDependencies:o})},we}(),d=function(){if(ve)return xe;ve=1;const e=zt();return xe=t=>{const{atom:n,packageDevDependencies:o}=t,r=n.doc.features;e({feature:{name:"image",packages:[["@rollup/plugin-image","^3"]]},features:r,packageDevDependencies:o})},xe}(),m=function(){if(je)return ke;je=1;const e=zt();return ke=t=>{const{atom:n,packageDevDependencies:o}=t,r=n.doc.features;e({feature:{name:"json",packages:[["@rollup/plugin-json","^6"]]},features:r,packageDevDependencies:o})},ke}(),h=function(){if(De)return _e;De=1;const e=zt();return _e=t=>{const{atom:n,packageDevDependencies:o}=t,r=n.doc.features;e({feature:{name:"terser",packages:[["@rollup/plugin-terser","^0.4"]]},features:r,packageDevDependencies:o})},_e}(),y=function(){if(Se)return Pe;Se=1;const e=zt();return Pe=t=>{const{atom:n,packageDevDependencies:o}=t,r=n.doc.features;e({feature:{name:"wasm",packages:[["@rollup/plugin-wasm","^6"]]},features:r,packageDevDependencies:o})},Pe}(),g=function(){if(Ae)return Ee;Ae=1;const e=zt();return Ee=t=>{const{atom:n,packageDevDependencies:o}=t,r=n.doc.features,i={};!0===r.app?.enabled&&(i.targets=i.targets||[],i.targets.push({src:"./src/app/index.html",dest:r.app.dir}),Reflect.has(r.app,"copy")||Reflect.has(r,"copy")||(r.copy=!0)),e({feature:{name:"copy",packages:[["rollup-plugin-copy","^3"],["chokidar","^3"]],options:i},features:r,packageDevDependencies:o})},Ee}(),w=function(){if($e)return Te;$e=1;const e=zt();return Te=t=>{const{atom:n,packageDevDependencies:o}=t,r=n.doc.features,i=r.css&&!1!==r.css.enabled;let s=[];i&&(s.push(["rollup-plugin-postcss","^4"]),s.push(["sass","^1.66"]),(r.css?.options?.plugins||[]).forEach((e=>{switch(e.name){case"postcss-import":s.push(["postcss-import","^15"]);break;case"postcss-url":s.push(["postcss-url","^10"]);break;case"postcss-preset-env":s.push(["postcss-preset-env","^9"]);break;case"autoprefixer":s.push(["autoprefixer","^10"]);break;case"cssnano":s.push(["cssnano","^6"])}}))),e({feature:{name:"css",packages:s},features:r,packageDevDependencies:o})},Te}();function b({dir:e,name:o="index"}){let r=n.resolve(e,`./${o}.tsx`);if(t.existsSync(r)||(r=n.resolve(e,`./${o}.ts`)),t.existsSync(r)||(r=n.resolve(e,`./${o}.jsx`)),t.existsSync(r)||(r=n.resolve(e,`./${o}.js`)),!t.existsSync(r))return{};const i=r,s=n.extname(r);return{file:i,ext:s,ts:".ts"===s||".tsx"===s,name:o}}return Oe=async t=>{const{atom:f,context:u,setProgress:x}=t;x("Initializing features..."),f.doc.features=f.doc.features||{};const v=f.doc.features;v.project=v.project||{},v.project.format=v.project.format||v.project_format||"esm",v.project_format=v.project.format,v.dts_enabled=!0===v.dts||void 0!==v.dts&&!1!==v.dts;const k=n.resolve(u.project.projectDir),j=b({dir:n.resolve(k,"./app")});if(j.file){x("Parsing app entry imports...");let e=await o({file:j.file,recursive:!0}),t=e.all.some((e=>!0===e.usesJSX&&"local"===e.type));v.app_uses_jsx=t,v.app_has_entry=!0,e=await o({file:j.file}),t=e.all.some((e=>!0===e.usesJSX&&"local"===e.type)),v.app_entry_uses_jsx=t,v.app_entry_is_ts=j.ts,v.app_entry_ext=j.ext}const _=b({dir:n.resolve(k,"./cli")});if(_.file){x("Parsing cli entry imports...");let e=await o({file:_.file,recursive:!0}),t=e.all.some((e=>!0===e.usesJSX&&"local"===e.type));v.cli_uses_jsx=t,v.cli_has_entry=!0,e=await o({file:_.file}),t=e.all.some((e=>!0===e.usesJSX&&"local"===e.type)),v.cli_entry_uses_jsx=t,v.cli_entry_is_ts=_.ts,v.cli_entry_ext=_.ext}if("workflow.lib"===f.type){const e=b({dir:n.resolve(k,"./src")});if(e.file){x("Parsing src entry imports...");let t=await o({file:e.file,recursive:!0}),n=t.all.some((e=>!0===e.usesJSX&&"local"===e.type));v.src_uses_jsx=n,v.src_has_entry=!0,t=await o({file:e.file}),n=t.all.some((e=>!0===e.usesJSX&&"local"===e.type)),v.src_entry_uses_jsx=n,v.src_entry_is_ts=e.ts,v.src_entry_ext=e.ext}}const D=Reflect.has(v,"app_entry_uses_jsx")?!0===v.app_entry_uses_jsx:!0===v.src_entry_uses_jsx,P=Reflect.has(v,"cli_entry_uses_jsx")?!0===v.cli_entry_uses_jsx:!0===v.src_entry_uses_jsx;v.form_enabled=D||P||!0===v.form||!0===v.form?.enabled,v.multiple_enabled=v.multiple_enabled||!0===v.multiple||!0===v.multiple?.enabled,!1===v.app?v.app={enabled:!1}:!0===v.app?v.app={enabled:!0,extend:!0===v.app_has_entry,export:!0,react:D}:v.app={enabled:!0,extend:!0===v.app_has_entry,export:!0,react:D,...v.app||{}},v.app.enabled=!0===v.app.enabled&&(!0===f.doc.features.form_enabled||!0===v.app.extend||!0===v.app.enabled),v.app.format=v.app.format||"esm",v.app.folder=v.app.folder||v.app.format||"default",!1===v.cli?v.cli={enabled:!1}:!0===v.cli?v.cli={enabled:!0,extend:!0===v.cli_has_entry,export:!0,react:P}:v.cli={enabled:!0,extend:!0===v.cli_has_entry,export:!0,react:P,...v.cli||{}},v.cli.enabled=!0===v.cli.enabled&&(!1===f.doc.features.form_enabled||!0===v.cli.extend||!0===v.cli.enabled),v.cli.format=v.cli.format||"esm",v.cli.folder=v.cli.folder||v.cli.folder||"esm",v.cli.node_options=v.cli.node?.options||v.cli.node_options||"",v.json=v.cli.enabled||v.json;const S={cjs:{format:"cjs",context:v.form_enabled?"window":"global",babel:!0===v.src_uses_jsx||!1,browser:!1,replace:!0,terser:!0,enabled:!1!==v.cjs,copy:!1},esm:{format:"esm",context:v.form_enabled?"window":"global",babel:!0===v.src_uses_jsx||!1,browser:!1,replace:!0,browsersync:!0,terser:!1,enabled:!1!==v.esm,copy:!0},iife:{format:"iife",context:v.form_enabled?"window":"global",babel:!0,browser:!0,replace:!0,enabled:!0===v.iife,terser:!0,copy:!1}};!0===v.webos&&(S.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"}}}),!0===v.electron&&(S.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"}),!0===v.nextjs&&(S.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"}),!0===v.ios&&(S.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"}),!0===v.macos&&(S.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"}),!0===v.app.enabled&&(v.app.dir=`./dist/app/${v.app.folder}`,S.app={format:v.app.format,browser:!0,babel:!0,context:"window",replace:!0,input:"./src/app/index.js",output_dir:v.app.dir,terser:!0,output_exports:!1===v.app.export?"none":"auto"}),!0===v.cli.enabled&&(v.cli.dir=`./dist/cli/${v.cli.folder}`,S.cli={format:v.cli.format,context:"global",babel:!0===v.src_uses_jsx||!0===v.cli_uses_jsx||!1,browser:!1,replace:!0,enabled:!0,input:"./src/cli/index.js",output_dir:v.cli.dir,banner:"#!/usr/bin/env node",terser:!0,output_exports:!1===v.cli.export?"none":"auto"});const E={server:".",startPath:`${n.normalize(v.app.dir||".")}`,files:[n.normalize("./dist/**/*")],cors:!0,open:!1};v.babel_options=e({targets:{browsers:"last 9 versions, not dead",node:"18"}},v.babel_options||v.babel?.options),v.browsersync_options=e(E,v.browsersync_options||v.browsersync?.options||{}),v.replace_options=e({},v.replace_options||v.replace?.options||{}),Reflect.has(v.browsersync_options,"proxy")&&delete v.browsersync_options.server,v.rollup=v.rollup||{},v.rollup_output=e(S,v.rollup_output||v.rollup?.output||{}),v.preact_enabled=!0===v.preact||v.preact&&!1!==v.preact?.enabled;let A=Object.keys(S);for(const t of A){const n=S[t];n&&(!1!==v.rollup[t]?(n.babel_options=n.babel_options||v.babel_options,n.browsersync_options=e(v.browsersync_options,n.browsersync_options),n.replace_options=e(v.replace_options,n.replace_options),v.preact_enabled&&(n.alias_enabled=!0,n.alias=n.alias||{},n.alias.entries=n.alias.entries||{},n.alias.entries.react="preact/compat",n.alias.entries["react-dom"]="preact/compat"),(v.form_enabled||v.babel)&&(n.babel=!0)):delete v.rollup_output[t])}A=Object.keys(v.rollup_output),v.babel_enabled=A.some((e=>!0===v.rollup_output[e].babel)),v.browser_enabled=A.some((e=>!0===v.rollup_output[e].babel)),v.browsersync_enabled=!1!==v.browsersync&&A.some((e=>!0===v.rollup_output[e].browsersync)),v.browsersync_enabled=v.browsersync_enabled&&v.app.enabled,v.dependency_auto_enabled=!1!==v.dependency_auto&&!1!==v.dependency_auto?.enabled,v.npm_install_flags=v.npm_install_flags||"",v.react_version=v.react_version||v.react?.version||18,w(t),g(t),y(t),h(t),m(t),l(t),d(t),p(t),c(t),a(t),s(t),r(t),i(t)},Oe}function Gt(){if(Ce)return Ie;Ce=1;const e=D;return Ie=async({atom:t,packageDependencies:n,packageDevDependencies:o,setProgress:r})=>{r("Initializing dependencies");const i=t.doc.dependencies||[];if(i.filter((e=>!e.dev)).forEach((e=>n.push(e))),i.filter((e=>e.dev)).forEach((e=>o.push(e))),"workflow"===t.type&&(n.push({package:"get-value",version:"^3"}),n.push({package:"set-value",version:"^4"})),t.doc.features.form_enabled&&t.doc.features.dependency_auto_enabled){let o="^18.2";r("Fetching React versions");o=`^${(await e({name:"react",groupBy:{major:!0}})).find((e=>e[0]===t.doc.features.react_version.toString()))[0]}`,n.push({package:"react",version:o}),n.push({package:"react-dom",version:o}),"workflow"===t.type&&(n.push({package:"@flownet/react-app",version:"^0.1"}),n.push({package:"@flownet/react-app-state",version:"^0.1"}))}t.doc.features.preact_enabled&&n.push({package:"preact",version:"^10"}),!0===t.doc.features.cli.enabled&&(n.push({package:"@fnet/args",version:"^0.1"}),o.push({package:"ajv",version:"^8"}),t.doc.features.cli.fargs&&!1!==t.doc.features.cli.fargs?.enabled&&n.push({package:"@fnet/config",version:"0.2.21"})),t.doc.features.render&&!1!==t.doc.features.render.enabled&&o.push({package:"@flownet/lib-render-templates-dir",version:"0.1.19"}),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"}),t.doc.features.dts_enabled&&o.push({package:"rollup-plugin-dts",version:"^6"}),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"}),t.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"}),t.doc.features.babel?.options?.plugins?.forEach((e=>{switch(e[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"})}}))),o.push({package:"@fnet/rollup-plugin-delete",version:"0.1.10"}),t.doc.features.browsersync_enabled&&o.push({package:"@fnet/rollup-plugin-browsersync",version:"0.1.11"})},Ie}function Xt(){if(Re)return Fe;Re=1;const e=f,t=u,n=d;return Fe=async({atom:o,setProgress:r,context:i,packageDependencies:s})=>{if(!0!==o.doc.features.app.enabled)return;await r({message:"Creating app folder"});const a={atom:o,packageDependencies:s,ts:Date.now()},c=i.templateDir,p=t.resolve(i.projectDir,"src/app");e.existsSync(p)||e.mkdirSync(p,{recursive:!0});let l=["index.js.njk"];!1!==o.doc.features.app.html&&l.push("index.html.njk"),await n({pattern:l,dir:t.resolve(c,"src/app"),outDir:p,context:a})},Fe}function Vt(){if(qe)return Me;qe=1;const e=P,t=S,n=f,o=u;return Me=async({projectDir:r,name:i,setProgress:s,count:a=1})=>{let c;const p=t(["npm-pick-versions",i,a]),l=o.join(r,".cache"),d=o.join(l,p+".json");return n.existsSync(d)?(s&&s(`Picking npm version of ${i} from cache ...`),c=JSON.parse(n.readFileSync(d,"utf8"))):(s&&s(`Picking npm version of ${i} ...`),c=await e({name:i,count:a}),n.mkdirSync(l,{recursive:!0}),n.writeFileSync(d,JSON.stringify(c),"utf8")),c},Me}function Ht(){if(Ke)return Be;Ke=1;const e=m,t=f,n=u,o=_,r=Vt();return Be=async({atom:i,context:s,packageDependencies:a,packageDevDependencies:c,setProgress:p})=>{await p({message:"Creating package.json."});a.filter((e=>!0===e.dev)).forEach((e=>{c.find((t=>t.package===e.package))||c.push(e);const t=a.findIndex((t=>t.package===e.package));a.splice(t,1)}));const l=a.find((e=>"react"===e.package)),d=a.find((e=>"react-dom"===e.package));l&&!d?a.push({package:"react-dom",version:l.version}):l&&d&&(d.version=l.version),l&&i.doc.features.react_version>=17&&(a.find((e=>"@emotion/react"===e.package))||a.push({package:"@emotion/react",version:"^11"}),a.find((e=>"@emotion/styled"===e.package))||a.push({package:"@emotion/styled",version:"^11"}));const f=[];!0===i.doc.features.app.enabled&&f.push({file:n.resolve(s.projectDir,"src/app/index.js"),dev:!1!==i.doc.features.app.dev}),!0===i.doc.features.cli.enabled&&f.push({file:n.resolve(s.projectDir,"src/cli/index.js"),dev:!1!==i.doc.features.cli.dev});for await(const e of f){const n=e.file;if(!t.existsSync(n))throw new Error(`App file not found: ${n}`);const i=(await o({file:n,recursive:!0})).all;for await(const t of i){if("npm"!==t.type)continue;if(a.find((e=>e.package===t.package)))continue;if(c.find((e=>e.package===t.package)))continue;const n=await r({name:t.package,projectDir:s.projectDir,setProgress:p});(!0===e.dev?c:a).push({package:t.package,subpath:t.subpath,version:n.minorRange,type:"npm"})}}const u={atom:i,packageDependencies:a,packageDevDependencies:c},m=s.templateCommonDir,h=e.compile(t.readFileSync(n.resolve(m,"package.json.njk"),"utf8"),e.configure(m)).render(u),y=s.projectDir,g=n.resolve(y,"package.json");t.writeFileSync(g,h,"utf8");const w=n.resolve(s.project.projectDir,"fnet");if(t.existsSync(w)){const e=n.resolve(s.projectDir,"fnet");t.existsSync(e)||t.mkdirSync(e);const o=t.readdirSync(w);for(const r of o){const o=n.resolve(w,r);if(!t.lstatSync(o).isFile())continue;const i=n.resolve(e,r);t.copyFileSync(o,i)}}},Be}function Yt(){if(Ue)return Le;Ue=1;const e=f,t=u,n=d;return Le=async({atom:o,setProgress:r,context:i,packageDependencies:s})=>{if(!0!==o.doc.features.cli.enabled)return;await r({message:"Creating cli."});const a={atom:o,packageDependencies:s},c=i.templateDir,p=t.resolve(i.projectDir,"src/cli");e.existsSync(p)||e.mkdirSync(p,{recursive:!0}),await n({pattern:["index.js.njk"],dir:t.resolve(c,"src/cli"),outDir:p,context:a})},Le}function Zt(){if(ze)return Je;ze=1;const e=f,t=u,n=m,o=_;return Je=async({atom:r,setProgress:i,context:s,packageDependencies:a})=>{await i({message:"Creating rollup file."});const c={atom:r,packageDependencies:a},p=t.resolve(s.projectDir,"src","default/index.js");if(!e.existsSync(p))throw new Error(`Entry file not found: ${p}`);const l=(await o({file:p,recursive:!0})).all.filter((e=>"node"===e.type)).map((e=>e.path)),d=r.doc.features.rollup_output,f=Object.keys(d);for(let e=0;e<f.length;e++){const t=d[f[e]];if(!0===t.browser&&l.length>0){t.globals_enabled=!0,t.globals=t.globals||[],t.globals=t.globals.concat(l.map((e=>({key:e,value:e})))),t.alias_enabled=!0,t.alias=t.alias||{},t.alias.entries=t.alias.entries||{};for(let e=0;e<l.length;e++){const n=l[e];t.alias.entries[n]=`node:${n}`,t.alias.entries[`node:${n}`]=n}t.external_enabled=!0,t.external=t.external||[],t.external=t.external.concat(l)}}const u=s.templateCommonDir;let m=n.compile(e.readFileSync(t.resolve(u,"rollup.config.mjs.njk"),"utf8"),n.configure(u)).render(c);const h=s.projectDir;let y=t.resolve(h,"rollup.config.mjs");e.writeFileSync(y,m,"utf8")},Je}function Qt(){if(Ge)return We;Ge=1;const e=f,t=u,n=m,o=E,r=A,i=T;return We=async({atom:s,setProgress:a,context:c,njEnv:p})=>{if(!0!==s.doc.features.cli.enabled)return;await a({message:"Creating yargs."});let l={};if(l=s.doc.input?s.doc.input:{type:"object",properties:{},required:[]},s.doc.features.cli.fargs&&!1!==s.doc.features.cli.fargs?.enabled){const e=s.doc.features.cli.fargs,t={type:"string",description:"Config name to load args",hidden:!1},n={type:"array",description:"Tags to filter the config",hidden:!1};Reflect.has(e,"default")&&(t.default=e.default),l.properties&&(l.properties.fargs=t,l.properties.ftag=n)}const d={options:l,imports:[],atom:s},f=c.templateDir,u=n.compile(e.readFileSync(t.resolve(f,"src/default/to.args.js.njk"),"utf8"),p).render(d),m=c.projectDir,h=t.resolve(m,"src/default/to.args.js");e.writeFileSync(h,u,"utf8");const y=new o({allErrors:!0,useDefaults:!0,formats:{},strict:!1,code:{esm:!0,lines:!0,optimize:!1,source:!0}});i(y);const g=y.compile(l),w=r(y,g);e.writeFileSync(t.resolve(m,"src/default/validate_input.js"),w,"utf8")},We}function en(){if(Ve)return Xe;Ve=1;const e=f,t=u,n=m;return Xe=async({atom:o,setProgress:r,context:i,packageDependencies:s})=>{await r({message:"Creating .gitignore"});const a={atom:o,packageDependencies:s},c=i.templateCommonDir,p=n.compile(e.readFileSync(t.resolve(c,".gitignore.njk"),"utf8"),n.configure(c)).render(a),l=i.projectDir,d=t.resolve(l,".gitignore");e.writeFileSync(d,p,"utf8")},Xe}function tn(){if(Ye)return He;Ye=1;const e=f,t=u,n=m;return He=async({atom:o,setProgress:r,context:i,packageDependencies:s})=>{await r({message:"Creating tsconfig.json."});const a={atom:o,packageDependencies:s},c=i.templateCommonDir,p=n.compile(e.readFileSync(t.resolve(c,"tsconfig.json.njk"),"utf8"),n.configure(c)).render(a),l=i.projectDir,d=t.resolve(l,"tsconfig.json");e.writeFileSync(d,p,"utf8")},He}function nn(){if(Qe)return Ze;Qe=1;const e=m,t=f,n=u,o=c;return Ze=async({atom:r,context:i,setProgress:s,Atom:a})=>{const c="readme.md",p=`Creating ${c}`;if(await s({message:p}),i.project?.readme){const r=i.projectDir,s={content:i.project.readme.doc.content},a=n.resolve(i.project.projectDir,"fnet/how-to.md");if(t.existsSync(a)){const e=t.readFileSync(a,"utf8");s.howto=e}const p=n.resolve(i.project.projectDir,"fnet/input.yaml");if(t.existsSync(p)){const e=await o({file:p,tags:i.tags});s.input=e.content}const l=i.templateCommonDir,d=e.compile(t.readFileSync(n.resolve(l,`${c}.njk`),"utf8"),e.configure(l)).render(s),f=n.resolve(r,`${c}`);t.writeFileSync(f,d,"utf8")}else if(r.id){const o=await a.first({type:"wiki",parent_id:r.id});if(!o||"markdown"!==o.doc?.["content-type"])return;const{content:s,...p}=o.doc,l={content:s},d=i.templateCommonDir,f=e.compile(t.readFileSync(n.resolve(d,`${c}.njk`),"utf8"),e.configure(d)).render(l),u=i.projectDir,m=n.resolve(u,`${c}`);t.writeFileSync(m,f,"utf8")}},Ze}function on(){if(tt)return et;tt=1;const e=o,t=l;return et=async({setProgress:n,context:o})=>{const r=o.projectDir;await n({message:"Prettifiying source files."});let i=e.join("src","**","*");await t({commands:{steps:[`prettier --write ${i} *.{js,cjs,mjs,json,yaml,html} --no-error-on-unmatched-pattern`],wdir:r}})}}function rn(){if(ot)return nt;ot=1;const e=a;return nt=async({atom:t,setProgress:n,context:o})=>{if(!t.doc.features.dts_enabled)return;const r=o.projectDir;await n({message:"Creating .d.ts"});if(0!==e.exec("tsc",{cwd:r}).code)throw new Error("Couldnt create .d.ts files.")},nt}function sn(){if(it)return rt;it=1;const e=a;return rt=async({setProgress:t,atom:n,context:o})=>{const r=o.projectDir;await t({message:"Installing npm packages."});if(0!==e.exec(`npm install ${n.doc.features.npm_install_flags}`,{cwd:r}).code)throw new Error("Couldnt install npm packages.")},rt}function an(){if(at)return st;at=1;const e=a;return st=async({setProgress:t,context:n})=>{const o=n.projectDir;await t({message:"Building main project."});if(0!==e.exec("npm run build",{cwd:o}).code)throw new Error("Couldnt build project.")}}function cn(){if(Ut)return Lt;Ut=1;const e=function(){if(pt)return ct;pt=1;const e=$,t=n;return ct=async({setProgress:n,context:o,deploymentProject:r,deploymentProjectTarget:i,buildId:s})=>{await n({message:"Deploying it as gitlab project."});const a=o.projectDir;let c="fnet-to-gitlab";const p=i.params.config||"gitlab",l=await t({name:p,dir:o.projectDir,tags:o.tags});if(!l)throw new Error(`Couldnt load config ${p}`);const{data:d}=l.data;c+=` --projectGroupId=${d.projectGroupId}`,c+=` --projectPath='${a}'`,c+=` --projectName='${i.params.name}'`,c+=` --projectBranch='${i.params.branch||"main"}'`,c+=` --gitlabHost='${d.gitlabHost}'`,c+=` --gitlabToken='${d.gitlabToken}'`,c+=` --gitlabUsername='${d.gitlabUsername}'`,c+=` --gitlabUserEmail='${d.gitlabUserEmail}'`,!0!==i.dryRun&&(await e({cmd:c}),r.isDirty=!0)}}(),t=function(){if(dt)return lt;dt=1;const e=f,t=u,o=O,r=$,i=n;return lt=async({setProgress:n,context:s,deploymentProject:a,deploymentProjectTarget:c,registerToPackageManager:p,yamlTarget:l})=>{await n({message:"Deploying it as gcs package."});const d=s.projectDir,f=t.resolve(d,"package.json"),u=e.readFileSync(f),m=JSON.parse(u);m.name=c.params.name,m.version=o.inc(c.version,"patch"),delete m.scripts,delete m.devDependencies,e.writeFileSync(f,JSON.stringify(m,null,"\t"));const{file:h,data:y}=await i({name:c.config||"gcs",dir:s.projectDir,tags:s.tags});let g="fnet-files-to-gcs";g+=` --projectId='${y.env.GCS_PROJECT_ID}'`,g+=` --bucketName='${y.env.GCS_BUCKET_NAME}'`,g+=` --keyFilename='${t.resolve(t.dirname(h),y.env.GCS_UPLOADER_KEY_FILE)}'`,g+=` --dir='${d}'`,g+=" --pattern={'dist/**/**','bin/**/**','test/**/**','*.html'}",g+=` --destDir='${m.name}/${m.version}'`,g+=" --metadata.cacheControl='public, max-age=31536000, immutable'",y.env.DOMAIN&&(g+=` --domain='${y.env.DOMAIN}'`),!0!==c.dry_run&&!0!==c.params.dry_run||(g+=" --dryRun"),await r({cmd:g}),e.writeFileSync(f,u),!0!==c.dryRun&&(a.isDirty=!0,c.version=m.version,l.set("version",m.version),await p({target:c,packageJSON:m}))}}(),r=function(){if(ut)return ft;ut=1;const e=f,t=u,o=O,r=a,i=n,c=N,l=p,d=s;return ft=async({atom:n,setProgress:s,context:a,deploymentProject:p,deploymentProjectTarget:f,yamlTarget:u})=>{await s({message:"Deploying it as npm package."});const m=a.projectDir,h=t.resolve(m,"package.json"),y=e.readFileSync(h),g=JSON.parse(y);g.name=f.params.name,g.version=o.inc(f.version,"patch");const w=f.params.bin?.name||f.params.bin;!1!==f.params.bin?.enabled&&w&&"string"==typeof w&&(g.bin={[w]:"dist/cli/esm/index.js"}),delete g.scripts,delete g.devDependencies,g.scripts={serve:"npx serve ."},e.writeFileSync(h,JSON.stringify(g,null,"\t"));const b=f.config||"npm";let x=(await i({name:b,dir:a.projectDir,tags:a.tags,optional:!0}))?.data;if(!x){const n=c({dir:__dirname,pattern:"@fnet/cli-project-schemas/dist/schemas/to-npm.yaml",absolute:!0});if(0===n.length)throw new Error("Couldnt find schema to create npm config");const o=await l({schema:n[0],tags:a.tags}),r=a.project.projectDir,i=t.resolve(r,".fnet");e.existsSync(i)||e.mkdirSync(i),e.writeFileSync(t.resolve(i,`${b}.fnet`),d.stringify(o)),x=o}if(e.writeFileSync(t.resolve(m,".npmrc"),`//registry.npmjs.org/:_authToken=${x.env.NPM_TOKEN}`),!0!==f.dryRun){if(0!==r.exec("npm publish --access public",{cwd:m}).code)throw new Error("Couldnt publish to npm");e.writeFileSync(h,y),p.isDirty=!0,f.version=g.version,u.set("version",g.version)}}}(),c=function(){if(ht)return mt;ht=1;const e=f,t=u,o=I,r=m,i=C,s=n;return mt=async({atom:n,setProgress:a,context:c,deploymentProject:p,deploymentProjectTarget:l,buildId:d,packageDependencies:f,njEnv:u})=>{await a({message:"Deploying it as node-red flow."});const m=c.projectDir,h=c.templateDir,y="workflow"===n.type?"WF":"LIB";let g;if("simple"===l.deploy.template)g={atom:n,packageDependencies:f,red:{tab:{id:l.deploy.id||i.util.generateId(),label:`${y}/${n.id?n.id:o.hostname()}/${n.name}/${l.deploy.name||l.deploy.template}`},function:{id:i.util.generateId(),name:n.doc.name,initialize:{content:e.readFileSync(t.resolve(m,"dist/default/iife/index.js"),{encoding:"utf8",flag:"r"}),var:n.doc.bundleName}},inject:{id:i.util.generateId(),...l.params?.inject,payload:"json"===l.params?.inject?.payloadType?`'${JSON.stringify(l.params?.inject?.payload)}'`:l.params?.inject?.payload},debug:{id:i.util.generateId()}}};else if("cronjob"===l.deploy.template){let r=l.params?.schedules?cloneDeep(l.params?.schedules):void 0;r?.forEach((e=>{"json"===e.payloadType&&(e.payload=`'${JSON.stringify(e.payload)}'`)})),g={atom:n,packageDependencies:f,red:{tab:{id:l.deploy.id||i.util.generateId(),label:`${y}/${n.id?n.id:o.hostname()}/${l.deploy.name||l.deploy.template}`},function:{id:i.util.generateId(),name:n.doc.name,initialize:{content:e.readFileSync(t.resolve(m,"dist/default/iife/index.js"),{encoding:"utf8",flag:"r"}),var:n.doc.bundleName}},cronjob:{id:i.util.generateId(),schedules:r},debug:{id:i.util.generateId()}}}}else{if("http"!==l.deploy.template)return;g={atom:n,packageDependencies:f,red:{tab:{id:l.deploy.id||i.util.generateId(),label:`${y}/${n.id?n.id:o.hostname()}/${l.deploy.name||l.deploy.template}`},function:{id:i.util.generateId(),name:n.doc.name,initialize:{content:e.readFileSync(t.resolve(m,"dist/default/iife/index.js"),{encoding:"utf8",flag:"r"}),var:n.doc.bundleName}},httpin:{id:i.util.generateId(),method:l.params.method||"get",url:l.params.url},httpout:{id:i.util.generateId()},debug:{id:i.util.generateId()}}}}let w=r.compile(e.readFileSync(t.resolve(h,`deploy/node-red/${l.deploy.template}.yaml.njk`),"utf8"),u).render(g);if(e.writeFileSync(t.resolve(m,"node-red.yaml"),w),w=yaml.load(w),!0===l.dryRun)return;p.isDirty=!0;const b=(await s({name:c.redConfig||"red",dir:c.projectDir,tags:c.tags}))?.data,x=l.deploy.url||b.env.RED_URL,v={};if(!1!==l.deploy.auth&&(v.Authorization="Bearer "+atomAccessToken),l.deploy.id)!0===l.actions?.delete?(await axios({method:"DELETE",url:`${x}/flow/${l.deploy.id}`,headers:v}),delete l.actions.delete,delete l.deploy.id,l.enabled=!1):await axios({method:"PUT",url:`${x}/flow/${l.deploy.id}`,data:w,headers:v});else{const e=await axios({method:"POST",url:`${x}/flow`,data:w,headers:v});l.deploy.id=e.data.id}},mt}(),l=function(){if(gt)return yt;gt=1;const e=i,t=o,r=n;return yt=async({atom:n,Atom:o,setProgress:i,context:s,packageDependencies:a,deploymentProject:c,deploymentProjectTarget:p})=>{await i({message:"Deploying it as workflow lib."});const l=(await r({name:"atom",dir:s.projectDir,tags:s.tags}))?.data;let d,f,u,m=p.deploy.name.split("/");if(1===m.length)f=l.env.ATOM_LIBRARIES_ID,u=p.deploy.name;else{if(2!==m.length)throw new Error("Wrong name path.");{const e=await o.first({where:{name:m[0],parent_id:l.env.ATOM_LIBRARIES_ID,type:"folder"},limit:1});if(!e)throw new Error("Couldnt file lib folder.");f=e.id,u=m[1]}}if(!0===p.dryRun)return;if(c.isDirty=!0,p.deploy.id){if(d=await o.get({id:p.deploy.id}),!d)return}else{if(d=await o.create({parent_id:f,doc:{name:u,type:"workflow.lib","content-type":"javascript",dependencies:[],content:void 0,subtype:"workflow"}}),!d)return;p.deploy.id=d.id}const h=s.projectDir;d.doc.contents=[{content:e.readFileSync(t.resolve(h,"dist/default/esm/index.js"),{encoding:"utf8",flag:"r"}),"content-type":"javascript",format:"esm"},{content:e.readFileSync(t.resolve(h,"dist/default/cjs/index.js"),{encoding:"utf8",flag:"r"}),"content-type":"javascript",format:"cjs"},{content:e.readFileSync(t.resolve(h,"dist/default/iife/index.js"),{encoding:"utf8",flag:"r"}),"content-type":"javascript",format:"iife"}],d.doc.name=u,d.doc.dependencies=a,"workflow.lib"===n.type?d.doc.subtype="library":"workflow"===n.type&&(d.doc.subtype="workflow"),d=await o.update(d,{id:d.id})},yt}(),d=function(){if(bt)return wt;bt=1;const e=n,t=F,o=h,r=O;return wt=async({atom:n,target:i,onProgress:s,projectDir:a,dependencies:c,context:p,yamlTarget:l})=>{s&&await s({message:"Deploying it as ios-app package."});const d=i?.config?await e({name:i.config,dir:a,optional:!0,transferEnv:!1,tags:p.tags}):void 0,f=r.inc(i.version||"0.1.0","patch");i.params.version=f,i.version=f,l.set("version",f);const u=o(i.params);u.dependencies=o(c);const m={atom:n,params:u,config:d?.config,src:a,dest:a};return{deployer:await t(m)}},wt}(),y=function(){if(vt)return xt;vt=1;const e=n,t=R,o=h,r=O;return xt=async({atom:n,target:i,onProgress:s,projectDir:a,dependencies:c,context:p,yamlTarget:l})=>{s&&await s({message:"Deploying it as macos-app package."});const d=i?.config?await e({name:i.config,dir:a,optional:!0,transferEnv:!1,tags:p.tags}):void 0,f=r.inc(i.version||"0.1.0","patch");i.params.version=f,i.version=f,l.set("version",f);const u=o(i.params);u.dependencies=o(c);const m={atom:n,params:u,config:d?.config,src:a,dest:a};return{deployer:await t(m)}},xt}(),g=function(){if(jt)return kt;jt=1;const e=n,t=M,o=h,r=O;return kt=async({atom:n,target:i,onProgress:s,projectDir:a,dependencies:c,context:p,yamlTarget:l})=>{s&&await s({message:"Deploying it as electron package."});const d=i?.config?await e({name:i.config,dir:a,optional:!0,transferEnv:!1,tags:p.tags}):void 0,f=r.inc(i.version||"0.1.0","patch");i.params.version=f,i.version=f,l.set("version",f);const u=o(i.params);u.dependencies=o(c);const m={atom:n,params:u,config:d?.config,src:a,dest:a};return{deployer:await t(m)}},kt}(),w=function(){if(Dt)return _t;Dt=1;const e=n,t=q,o=h,r=O;return _t=async({atom:n,target:i,onProgress:s,projectDir:a,dependencies:c,context:p,yamlTarget:l})=>{s&&await s({message:"Deploying it as webos package."});const d=i?.config?await e({name:i.config,dir:a,optional:!0,transferEnv:!1,tags:p.tags}):void 0,f=r.inc(i.version||"0.1.0","patch");i.params.version=f,i.version=f,l.set("version",f);const u=o(i.params);u.dependencies=o(c);const m={atom:n,params:u,config:d?.config,src:a,dest:a};return{deployer:await t(m)}},_t}(),b=function(){if(St)return Pt;St=1;const e=n,t=B,o=h,r=O;return Pt=async({atom:n,target:i,onProgress:s,projectDir:a,dependencies:c,context:p,yamlTarget:l})=>{s&&await s({message:"Deploying it as nextjs package."});const d=i?.config?await e({name:i.config,dir:a,optional:!0,transferEnv:!1,tags:p.tags}):void 0,f=r.inc(i.version||"0.1.0","patch");i.params.version=f,i.version=f,l.set("version",f);const u=o(i.params);u.dependencies=o(c);const m={atom:n,params:u,config:d?.config,src:a,dest:a};return{deployer:await t(m)}},Pt}(),x=function(){if(At)return Et;At=1;const e=n,t=K,o=h,r=O;return Et=async({atom:n,target:i,onProgress:s,projectDir:a,dependencies:c,context:p,yamlTarget:l})=>{s&&await s({message:"Deploying it as docker package."});const d=i?.config?await e({name:i.config,dir:a,optional:!0,transferEnv:!1,tags:p.tags}):void 0,f=r.inc(i.version||"0.1.0","patch");i.params.version=f,i.version=f,l.set("version",f);const u=o(i.params);u.dependencies=o(c);const m={atom:n,params:u,config:d?.config,src:a,dest:a};return{deployer:await t(m)}},Et}(),k=function(){if($t)return Tt;$t=1;const e=f,t=u,o=O,r=$,i=n,s=v.default;return Tt=async({setProgress:n,context:a,deploymentProject:c,deploymentProjectTarget:p,yamlTarget:l})=>{await n({message:"Deploying it as fnet package."});const d=a.projectDir,f=t.resolve(d,"package.json"),u=e.readFileSync(f),m=JSON.parse(u);m.name=p.params.name,m.version=o.inc(p.version,"patch"),delete m.scripts,delete m.devDependencies,e.writeFileSync(f,JSON.stringify(m,null,"\t"));const{file:h,data:y}=await i({name:p.config||"fnet-package",dir:a.projectDir,tags:a.tags});if(!y.env.ATOM_API_URL)throw new Error(`ATOM_API_URL is required in ${h}`);if(!y.env.ATOM_API_USERNAME)throw new Error(`ATOM_API_USERNAME is required in ${h}`);if(!y.env.ATOM_API_PASSWORD)throw new Error(`ATOM_API_PASSWORD is required in ${h}`);const g=`${y.env.ATOM_API_URL}/v1/auth/token`,w=y.env.ATOM_API_USERNAME,b=y.env.ATOM_API_PASSWORD;let x=await s({method:"POST",url:g,data:{username:w,password:b},headers:{"Content-Type":"application/json"}});const v=x.data?.access_token;if(!v)throw new Error(`Invalid access_token from ${g}`);let k="fnet-files-to-gcs";if(k+=` --projectId='${y.env.GCS_PROJECT_ID}'`,k+=` --bucketName='${y.env.GCS_BUCKET_NAME}'`,k+=` --keyFilename='${t.resolve(t.dirname(h),y.env.GCS_UPLOADER_KEY_FILE)}'`,k+=` --dir='${d}'`,k+=" --pattern={'dist/**/**','bin/**/**','test/**/**','*.html'}",k+=` --destDir='${m.name}/${m.version}'`,k+=" --metadata.cacheControl='public, max-age=31536000, immutable'",y.env.DOMAIN&&(k+=` --domain='${y.env.DOMAIN}'`),!0!==p.dry_run&&!0!==p.params.dry_run||(k+=" --dryRun"),await r({cmd:k}),e.writeFileSync(f,u),!0===p.dryRun)return;c.isDirty=!0,p.version=m.version,l.set("version",m.version);const j=`${y.env.ATOM_API_URL}/v1/service/fnet-package/publish`;if(x=await s({method:"POST",url:j,data:{name:m.name,version:m.version,version_domain:y.env.DOMAIN,docs:p.params.docs,configs:p.params.configs},headers:{"Content-Type":"application/json",Authorization:`Bearer ${v}`}}),x.data?.error)throw new Error("Failed to publish fnet package.")}}(),j=function(){if(Nt)return Ot;Nt=1;const e=O,t=n,o=v.default;return Ot=async({setProgress:n,context:r,deploymentProject:i,deploymentProjectTarget:s,yamlTarget:a})=>{await n({message:"Deploying it as fnet form."});const{file:c,data:p}=await t({name:s.config||"fnet-form",dir:r.projectDir,tags:r.tags});if(!p.env.ATOM_API_URL)throw new Error(`ATOM_API_URL is required in ${c}`);if(!p.env.ATOM_API_USERNAME)throw new Error(`ATOM_API_USERNAME is required in ${c}`);if(!p.env.ATOM_API_PASSWORD)throw new Error(`ATOM_API_PASSWORD is required in ${c}`);const l=`${p.env.ATOM_API_URL}/v1/auth/token`,d=p.env.ATOM_API_USERNAME,f=p.env.ATOM_API_PASSWORD;let u=await o({method:"POST",url:l,data:{username:d,password:f},headers:{"Content-Type":"application/json"}});const m=u.data?.access_token;if(!m)throw new Error(`Invalid access_token from ${l}`);i.isDirty=!0;const h=e.inc(s.version,"patch");s.params.version=h,s.version=h,a.set("version",h);const y=`${p.env.ATOM_API_URL}/v1/service/fnet-form/publish`;if(u=await o({method:"POST",url:y,data:{name:s.params.name,version:s.params.version,docs:s.params.docs,configs:s.params.configs},headers:{"Content-Type":"application/json",Authorization:`Bearer ${m}`}}),u.data?.error)throw new Error("Error publishing fnet form.")}}(),_=function(){if(Ct)return It;Ct=1;const e=O,t=n,o=v.default,r=i,s=$,a=L;return It=async({setProgress:n,context:i,deploymentProject:c,deploymentProjectTarget:p,yamlTarget:l})=>{await n({message:"Deploying it as fnet flow."});const{file:d,data:f}=await t({name:p.config||"fnet-flow",dir:i.project.projectDir,tags:i.tags});if(!f.env.ATOM_API_URL)throw new Error(`ATOM_API_URL is required in ${d}`);if(!f.env.ATOM_API_USERNAME)throw new Error(`ATOM_API_USERNAME is required in ${d}`);if(!f.env.ATOM_API_PASSWORD)throw new Error(`ATOM_API_PASSWORD is required in ${d}`);const u=`${f.env.ATOM_API_URL}/v1/auth/token`,m=f.env.ATOM_API_USERNAME,h=f.env.ATOM_API_PASSWORD;let y=await o({method:"POST",url:u,data:{username:m,password:h},headers:{"Content-Type":"application/json"}});const g=y.data?.access_token;if(!g)throw new Error(`Invalid access_token from ${u}`);c.isDirty=!0;const w=e.inc(p.version,"patch");p.params.version=w,p.version=w,l.set("version",w);const b=`${f.env.ATOM_API_URL}/v1/service/fnet-flow/publish`;if(y=await o({method:"POST",url:b,data:{name:p.params.name,version:p.params.version,docs:p.params.docs,configs:p.params.configs},headers:{"Content-Type":"application/json",Authorization:`Bearer ${g}`}}),y.data?.error)throw new Error("Error publishing fnet flow.");const x=y.data?.upload.id;let v="fnet-dir-zipper";v+=` --sourceDir='${i.project.projectDir}'`,v+=" -p=**/*",v+=" -g",v+=" --stdout_format=json";const k=await s({cmd:v});if(0!==k.code)throw new Error(k.stderr);const j=JSON.parse(k.stdout).path;let _=new a;_.append("file",r.createReadStream(j));const D=await o.request({method:"POST",maxBodyLength:1/0,url:`${f.env.ATOM_API_URL}/v1/service/upload/single/${x}`,headers:{..._.getHeaders(),Authorization:`Bearer ${g}`},data:_});if(D.data?.error)throw new Error("Error uploading fnet flow.")}}(),D=function(){if(Rt)return Ft;Rt=1;const e=O,t=n,o=v.default,r=i,s=$,a=L;return Ft=async({setProgress:n,context:i,deploymentProject:c,deploymentProjectTarget:p,yamlTarget:l})=>{await n({message:"Deploying it as fnet node."});const{file:d,data:f}=await t({name:p.config||"fnet-node",dir:i.project.projectDir,tags:i.tags});if(!f.env.ATOM_API_URL)throw new Error(`ATOM_API_URL is required in ${d}`);if(!f.env.ATOM_API_USERNAME)throw new Error(`ATOM_API_USERNAME is required in ${d}`);if(!f.env.ATOM_API_PASSWORD)throw new Error(`ATOM_API_PASSWORD is required in ${d}`);const u=`${f.env.ATOM_API_URL}/v1/auth/token`,m=f.env.ATOM_API_USERNAME,h=f.env.ATOM_API_PASSWORD;let y=await o({method:"POST",url:u,data:{username:m,password:h},headers:{"Content-Type":"application/json"}});const g=y.data?.access_token;if(!g)throw new Error(`Invalid access_token from ${u}`);c.isDirty=!0;const w=e.inc(p.version,"patch");p.params.version=w,p.version=w,l.set("version",w);const b=`${f.env.ATOM_API_URL}/v1/service/fnet-node/publish`;if(y=await o({method:"POST",url:b,data:{name:p.params.name,version:p.params.version,docs:p.params.docs,configs:p.params.configs},headers:{"Content-Type":"application/json",Authorization:`Bearer ${g}`}}),y.data?.error)throw new Error("Error publishing fnet node.");const x=y.data?.upload.id;let v="fnet-dir-zipper";v+=` --sourceDir='${i.project.projectDir}'`,v+=" -p=**/*",v+=" -g",v+=" --stdout_format=json";const k=await s({cmd:v});if(0!==k.code)throw new Error(k.stderr);const j=JSON.parse(k.stdout).path;let _=new a;_.append("file",r.createReadStream(j));const D=await o.request({method:"POST",maxBodyLength:1/0,url:`${f.env.ATOM_API_URL}/v1/service/upload/single/${x}`,headers:{..._.getHeaders(),Authorization:`Bearer ${g}`},data:_});if(D.data?.error)throw new Error("Error uploading fnet node.")}}(),P=function(){if(qt)return Mt;qt=1;const e=n,t=U,o=h,r=O;return Mt=async({atom:n,target:i,onProgress:s,projectDir:a,dependencies:c,context:p,yamlTarget:l})=>{s&&await s({message:"Deploying it as Rust package."});const d=i?.config?await e({name:i.config,dir:a,optional:!0,transferEnv:!1,tags:p.tags}):void 0,f=r.inc(i.version||"0.1.0","patch");i.params.version=f,i.version=f,l.set("version",f);const u=o(i.params);u.dependencies=o(c);const m={atom:n,params:u,config:d?.config,src:a,dest:a};return{deployer:await t(m)}},Mt}(),S=function(){if(Kt)return Bt;Kt=1;const e=n,t=J,o=h,r=O;return Bt=async({atom:n,target:i,onProgress:s,projectDir:a,dependencies:c,context:p,yamlTarget:l})=>{s&&await s({message:"Deploying it as pypi package."});const d=i?.config?await e({name:i.config,dir:a,optional:!0,transferEnv:!1,tags:p.tags}):void 0,f=r.inc(i.version||"0.1.0","patch");i.params.version=f,i.version=f,l.set("version",f);const u=o(i.params);u.dependencies=o(c);const m={atom:n,params:u,config:d?.config,src:a,dest:a};return{deployer:await t(m)}},Bt}();return Lt=async n=>{const{atom:o,packageDependencies:i,context:s,deploymentProjectTarget:a,setProgress:p,deploymentProject:f,yamlTarget:u}=n;if(!0===a.enabled)if("lib"===a.type)await l({...n});else if("red"===a.type)await c({...n});else if("npm"===a.type)await r({...n});else if("gcs"===a.type)await t({...n});else if("gitlab"===a.type)await e({...n});else if("fnet-package"===a.type)await k({...n});else if("fnet-form"===a.type)await j({...n});else if("fnet-node"===a.type)await D({...n});else if("fnet-flow"===a.type)await _({...n});else{let e;if("nextjs"===a.type?e=b:"webos"===a.type?e=w:"electron"===a.type?e=g:"docker"===a.type?e=x:"ios"===a.type?e=d:"macos"===a.type?e=y:"rust"===a.type?e=P:"pypi"===a.type&&(e=S),!e)return;await e({atom:o,target:a,onProgress:p,projectDir:s.projectDir,dependencies:i,context:s,yamlTarget:u}),f.isDirty=!0}},Lt}var pn,ln,dn,fn,un,mn,hn,yn,gn,wn,bn,xn,vn,kn,jn,_n,Dn,Pn,Sn,En,An,Tn,$n,On,Nn,In,Cn,Fn,Rn,Mn,qn,Bn,Kn,Ln,Un,Jn,zn,Wn,Gn,Xn,Vn,Hn={name:"ATOM",uri:"http://atom.org/bpmn",prefix:"atom",types:[{name:"AtomExtension",extends:["bpmn:BaseElement"],properties:[{name:"atom",type:"atom:Atom",isMany:!1}]},{name:"Atom",properties:[{name:"type",type:"String",isAttr:!0}]}]};function Yn(){if(ln)return pn;ln=1;const e=W,t=G,n=h,o=Hn;function r(e,t){return e.filter(((e,n,o)=>o.map((e=>e[t])).indexOf(e[t])===n))}function i(e){const{nodes:t,nodeIndex:n,root:o}=e,r=e.targetNodes||o.childs;r.forEach((t=>{const n="workflow"===t.type||"subworkflow"===t.type,o=!n&&t.childs.filter((e=>!e.virtual)).length>0;if(o&&(t.bpmn.type="bpmn:SubProcess"),n||o){const n=t.childs.filter((e=>!0!==e.module))[0];t.childs.filter((e=>!0===e.module)).forEach((n=>{const o=s({...e,parent:t,bpmnType:"bpmn:IntermediateCatchEvent",type:"inter",definitions:[{type:"bpmn:SignalEventDefinition"}]});o.bpmn.edges=[{from:o.indexKey,to:n.indexKey,type:"bpmn:SequenceFlow"}]}));const o=t.childs.find((e=>"try"===e.name&&"tryexcept"===t.type)),i=t.childs.filter((e=>"except"===e.name&&"tryexcept"===t.type));o&&i.length&&i.forEach((n=>{const r=s({location:t.childs.indexOf(n),...e,parent:t,bpmnType:"bpmn:BoundaryEvent",type:"boundary",attrs:{attachedToRef:o},definitions:[{type:"bpmn:ErrorEventDefinition"}]});r.bpmn.edges=[{from:r.indexKey,to:n.indexKey,type:"bpmn:SequenceFlow"}]}));const a=t.childs.find((e=>"raise"===e.type));if(a){const n=s({...e,parent:t,bpmnType:"bpmn:EndEvent",type:"end",name:"ERROR",definitions:[{type:"bpmn:ErrorEventDefinition"}]});a.bpmn.edges=[{from:a.indexKey,to:n.indexKey,type:"bpmn:SequenceFlow"}]}if(n)if(t.bpmn.starts.length>1){const n=s({...e,parent:t,bpmnType:"bpmn:StartEvent",type:"start"}),o=s({...e,parent:t,bpmnType:"bpmn:ExclusiveGateway",type:"switch"});n.bpmn.edges=[{from:n.indexKey,to:o.indexKey,type:"bpmn:SequenceFlow"}],o.bpmn.edges=t.bpmn.starts.map((e=>({...e,from:o.indexKey})));const r=o.bpmn.edges.find((e=>!0===e.next));if(r){const n=s({...e,parent:t,bpmnType:"bpmn:EndEvent",type:"end",name:r.to});r.to=n.indexKey}}else{const o=s({...e,parent:t,bpmnType:"bpmn:StartEvent",type:"start"});o.bpmn.edges.push({from:o.indexKey,to:n.indexKey,type:"bpmn:SequenceFlow"})}t.childs.filter((e=>!0!==e.virtual&&e.bpmn.outside.length&&"bpmn:EndEvent"!==e.bpmn.type)).forEach((n=>{n.bpmn.outside.forEach((o=>{const i=r.indexOf(t),a=s({...e,parent:t,bpmnType:"bpmn:EndEvent",type:"end",name:o.to,location:i+1});n.bpmn.edges.push({from:n.indexKey,to:a.indexKey,type:"bpmn:SequenceFlow"})}))}));t.childs.filter((e=>!0!==e.virtual&&e.bpmn.edges.length>1)).forEach((n=>{const o=r.indexOf(n),i=s({...e,parent:t,bpmnType:"bpmn:ExclusiveGateway",type:"switch",location:o+1});i.bpmn.edges=n.bpmn.edges.map((e=>({...e,from:i.indexKey}))),n.bpmn.edges=[{from:n.indexKey,to:i.indexKey,type:"bpmn:SequenceFlow"}],n.bpmn.outside=[]}))}i({...e,targetNodes:t.childs})}))}function s(e){const{parent:t,nodes:n,nodeIndex:o,bpmnType:r,type:i,name:s,outside:a,location:c,definitions:p,attrs:l}=e,d=t.childs.filter((e=>e.type===`v${i}`)).length,f={indexKey:`${t.indexKey}/_${i}${d}`,pathKey:`${t.pathKey}._${i}${d}`,type:`v${i}`,name:s,bpmn:{edges:[],outside:[],type:r,width:36,height:36,fill:"#c8e6c9",stroke:"#205022",definitions:p,attrs:l},virtual:!0,childs:[]};return t.childs.splice(c||0,0,f),n.push(f),o[f.indexKey]=f,f}function a(e){!function(e){const{targetNode:t,targetFlowElementsContainer:n,targetPlaneElement:o,moddle:r,elementIndex:i,nodeIndex:s,nodes:a}=e,c=n.get("flowElements");n.$nodes=n.$nodes||[],t.childs.forEach((e=>{const t=r.create(e.bpmn.type,{id:`node.${e.pathKey}`,name:e.definition?.title||e.name});if(i[t.id]=t,t.$isNode=!0,t.$node=e,e.$flow=t,n.$nodes.push(t),c.push(t),e.bpmn.attrs){Object.keys(e.bpmn.attrs).forEach((n=>{"attachedToRef"===n&&t.set(n,e.bpmn.attrs[n].$flow)}))}if(e.bpmn.definitions){const n=e.bpmn.definitions.map((e=>{const t=r.create(e.type);return Object.keys(e.attrs||{}).forEach((n=>{t.set(n,e.attrs[n])})),t}));t.eventDefinitions=n}}))}(e),function(e){const{targetNode:t,targetFlowElementsContainer:n,targetPlaneElement:o,moddle:r,elementIndex:i,nodeIndex:s}=e,a=n.get("flowElements");n.$edges=n.$edges||[],t.childs.forEach((e=>{e.bpmn.edges.forEach((t=>{const o=e,c=s[t.to],p=`edge.${o.pathKey}_${c.pathKey}`;if(i[p])return;const l=i[`node.${o.pathKey}`],d=i[`node.${c.pathKey}`],f=r.create(t.type,{id:p,sourceRef:l,targetRef:d});i[f.id]=f,f.$is_edge=!0,l.get("outgoing").push(f),d.get("incoming").push(f),n.$edges.push({from:l,to:d,flow:f}),a.push(f)}))}))}(e),function(e){const{targetNode:n,targetFlowElementsContainer:o,targetPlaneElement:r,moddle:i,elementIndex:s,nodeIndex:a}=e,c=120,p=80,l=160,d=160,f=new t.graphlib.Graph;f.setDefaultEdgeLabel((()=>({}))),f.setGraph({rankdir:"TB",nodesep:c,ranksep:p,xranker:"longest-path"}),o.$nodes.forEach((e=>{f.setNode(e.id,{width:e.$node?.bpmn.width||c,height:e.$node?.bpmn.height||p,label:e.id})})),o.$edges.forEach((e=>{f.setEdge(e.from.id,e.to.id)})),t.layout(f),o.$nodes.forEach((e=>{const t=f.node(e.id);let n=t.width,o=t.height;const s=i.create("bpmndi:BPMNShape",{id:`shape.${e.id}`,bpmnElement:e,bounds:i.create("dc:Bounds",{x:l+t.x-t.width/2,y:d+t.y-t.height/2,width:n,height:o}),label:i.create("bpmndi:BPMNLabel")});e.$node.bpmn.fill&&s.set("bioc:fill",e.$node.bpmn.fill),e.$node.bpmn.stroke&&s.set("bioc:stroke",e.$node.bpmn.stroke);r.get("planeElement").push(s)})),o.$edges.forEach((e=>{const t=f.edge(e.from.id,e.to.id),n=i.create("bpmndi:BPMNEdge",{id:`edge.${e.from.id}_${e.to.id}`,bpmnElement:e.flow,label:i.create("bpmndi:BPMNLabel")});t.points.forEach((e=>{const t=i.create("dc:Point",{x:l+e.x,y:d+e.y});n.get("waypoint").push(t)}));r.get("planeElement").push(n)}))}(e),function(e){const{targetNode:t,targetFlowElementsContainer:n,targetPlaneElement:o,moddle:r,elementIndex:i,nodeIndex:s,diagrams:c}=e;t.childs.filter((e=>"bpmn:SubProcess"===e.bpmn.type)).forEach((t=>{const n=i[`node.${t.pathKey}`],o=r.create("bpmndi:BPMNDiagram",{id:`diagram_${t.pathKey}`});i[o.id]=o,c.push(o);const s=r.create("bpmndi:BPMNPlane",{id:`plane_${t.pathKey}`});i[s.id]=s,o.plane=s,s.bpmnElement=n,a({...e,targetNode:t,targetFlowElementsContainer:n,targetPlaneElement:s})}))}(e)}async function c(t){const n=t.root,s=n.context.index,c=Object.keys(s).map((e=>s[e]));!function(e){const{nodes:t,nodeIndex:n,root:o}=e;t.forEach((e=>{const t=[],n=[],o=r=>{r.context.next&&(t.push({from:r,to:r.context.next,type:"bpmn:SequenceFlow"}),r===e&&n.push({to:r.context.next,type:"bpmn:SequenceFlow",next:!0})),r.childs.forEach((t=>{r===e&&"switch"===e.type&&n.push({to:t,type:"bpmn:SequenceFlow"}),o(t)}))};o(e);const i=t.filter((t=>t.to.parent.indexKey===e.parent.indexKey)).map((t=>({...t,from:e.indexKey,to:t.to.indexKey}))),s=t.filter((t=>t.to.parent.indexKey!==e.parent.indexKey&&!t.to.indexKey.startsWith(e.indexKey+"/"))).map((t=>({...t,from:e.indexKey,to:t.to.indexKey}))),a=n.map((e=>({...e,to:e.to.indexKey})));e.bpmn=e.bpmn||{},e.bpmn.edges=r(i,"to"),e.bpmn.outside=r(s,"to"),e.bpmn.starts=r(a,"to"),e.bpmn.type=function(e){return"call"===e.type?"bpmn:ServiceTask":"form"===e.type?"bpmn:UserTask":"return"===e.type?"bpmn:EndEvent":"bpmn:Task"}(e),e.bpmn.width=120,e.bpmn.height=80,"return"===e.type&&(e.bpmn.width=36,e.bpmn.height=36)}))}({nodes:c,nodeIndex:s,root:n}),i({nodes:c,nodeIndex:s,root:n});const p=new e({atom:o}),l={},d=p.create("bpmn:Definitions",{id:"definitions_0"});l[d.id]=d;for await(const e of n.childs){const t=d.get("rootElements"),o=d.get("diagrams"),r=p.create("bpmn:Process",{id:`process_${e.pathKey}`,documentation:[p.create("bpmn:Documentation",{text:`Atom Workflow - ${n.context.atom.name}`})]});l[r.id]=r,r.isExecutable=!0,t.push(r);const i=p.create("bpmndi:BPMNDiagram",{id:`diagram_${e.pathKey}`});l[i.id]=i,o.push(i);const f=p.create("bpmndi:BPMNPlane",{id:`plane_${e.pathKey}`});l[f.id]=f,i.plane=f,f.bpmnElement=r;a({targetNode:e,targetFlowElementsContainer:r,targetPlaneElement:f,moddle:p,elementIndex:l,nodeIndex:s,nodes:c,diagrams:o})}return{diagramXML:(await p.toXML(d,{format:!0})).xml}}return pn=async(e={})=>await c(n(e))}function Zn(){return fn?dn:(fn=1,dn=async({node:e,initNode:t})=>{e.hasModules=e.definition.modules?.length>0;for(let n=0;n<e.definition.modules?.length;n++){const o=e.definition.modules[n],r=Object.keys(o)[0],i={name:r,childs:[],parent:e,definition:o[r],module:!0,blockAutoJumpToParent:!0,blockAutoJumpToSibling:!1,index:e.childs.length,context:{}};e.childs.push(i),await t({node:i})}})}function Qn(){if(mn)return un;mn=1;const e=h,t=Zn();async function n({node:t,resolveTypeCommon:n,resolveNextBlock:o,transformExpression:r}){t.context.transform=t.context.transform||e(t.definition);const i=t.context.transform;for(const n of t.childs)n.context.transform=n.context.transform||e(n.definition),n.definition.hasOwnProperty("condition")&&(n.context.transform.condition=await r(n.definition.condition));i.export&&(i.export=await r(i.export)),Reflect.has(i,"return")&&(t.returns=!0,i.return=await r(i.return)),await n({node:t}),o({node:t})}return un={hits:async function({node:e}){if(!e.definition.hasOwnProperty("switch"))return!1;const t=e.definition.switch||[];if(!t.every((e=>e.hasOwnProperty("condition")||e.hasOwnProperty("default"))))throw new Error("Switch must have condition or default");if(0===t.filter((e=>e.hasOwnProperty("condition"))).length)throw new Error("Switch must have at least one condition");const n=t.filter((e=>e.hasOwnProperty("default")));if(n.length>1)throw new Error("Switch must have only one default");if(1===n.length&&!t[t.length-1].hasOwnProperty("default"))throw new Error("Switch default must be the last child");return!0},init:async function({node:e,initNode:o}){e.type="switch",await t({node:e,initNode:o}),e.blockAutoJumpToParent=!1,e.blockAutoJumpToSibling=!0;for(let t=0;t<e.definition.switch.length;t++){let n=e.definition.switch[t],r=`${t}`;n.hasOwnProperty("default")&&(r="default",n=n.default);const i={name:n.condition||r,childs:[],parent:e,definition:n,index:e.childs.length,context:{}};e.childs.push(i),await o({node:i})}e.resolve=n},resolve:n}}function eo(){if(Tn)return An;Tn=1;const e=h,t=Zn();async function n({node:t,resolveTypeCommon:n,resolveNextBlock:o,transformExpression:r}){t.context.transform=t.context.transform||e(t.definition);const i=t.context.transform;if("function"===t.target?.atom?.doc?.type&&(i.call=await r(t.target.atom.name)),i.args&&(i.args=await r(i.args)),i.result){"string"==typeof i.result&&(i.result=[{[i.result]:"e::result"}]);for(let e=0;e<i.result?.length;e++){let t=i.result[e],n=Object.keys(t)[0],o=t[n],s={key:await r(n),value:await r(o)};i.result[e]=s}}const s=t.workflow.parent;i.import?t.context.lib=s.context.libs.find((e=>e.name===i.import)):t.context.lib=s.context.libs.find((e=>e.name===i.call)),i.export&&(i.export=await r(i.export)),Reflect.has(i,"return")&&(t.returns=!0,i.return=await r(i.return)),await n({node:t}),o({node:t})}return An={hits:async function({node:e}){return e.definition.hasOwnProperty("call")},init:async function({node:e,initNode:o}){e.type="call",await t({node:e,initNode:o}),e.resolve=n},resolve:n}}function to(){return Ln?Kn:(Ln=1,Kn=({node:e})=>{const t=e.definition;if(!e.returns)if("end"===t.next);else if("stop"===t.next);else if("none"===t.next);else if(t.next){let n=e.parent;for(;n.parent;){const o=n.childs.find((e=>e.name===t.next));if(o){e.context.next=o;break}n=n.parent}}else{if(!0===e.module)return;let t=e.parent,n=e.index+1;for(;t.parent&&(!t.blockAutoJumpToParent||!t.blockAutoJumpToSibling);)if(Reflect.has(t,"blockAutoJumpToParent")||Reflect.has(t,"blockAutoJumpToSibling")){if(t.blockAutoJumpToParent){const o=t.childs.find((e=>e.index===n));o&&(e.context.next=o);break}t.blockAutoJumpToParent||(n=t.index+1,t=t.parent)}else{const o=t.childs.find((e=>e.index===n));if(o){e.context.next=o;break}n=t.index+1,t=t.parent}}})}function no(){if(Jn)return Un;Jn=1;const e=eo();class t{#e;#t;#n;#o;constructor({key:e,npm:t,master:n,extras:o}){this.#e=e,this.#t=t,this.#n=n,this.#o=o}hits({node:e}){return e.definition.hasOwnProperty(this.#e)}async init(t){const{node:n}=t,o=this.#e,r=n.definition,i=typeof r[o];if(r.call=`npm:${this.#t}`,r.args="object"!==i?{...r.args,[`${this.#n}`]:r[o]}:r[o],delete r[o],this.#o)for(const e in this.#o)r[e]=this.#o[e];console.log(`[npm-block] ${this.#e} --\x3e ${this.#t}`),await e.init(t)}}return Un=e=>new t(e)}function oo(){if(Wn)return zn;Wn=1;const e=f,t=u,o=s,r=a,i=m,p=h,l=y,d=function(){if(te)return ee;te=1;const e=g,t=w;return ee=async()=>{if(!await t({host:process.env.REDIS_HOST,port:process.env.REDIS_PORT}))return;const n=e.createClient({socket:{host:process.env.REDIS_HOST,port:process.env.REDIS_PORT}});return await n.connect(),n}}(),{nanoid:j}=b,D=function(){if(oe)return ne;oe=1;const{Api:e}=x,t=v.default,n=k;return ne=class{init({config:o,accessToken:r}){return new Promise(((i,s)=>{if(e.set_api_url(o.data.url),r)return e.set_req_token(r),void i(r);t({method:"POST",url:`${o.data.issuer}/protocol/openid-connect/token`,data:n.stringify(o.data.grant.params),headers:{"Content-Type":"application/x-www-form-urlencoded"}}).then((t=>{e.set_req_token(t.data.access_token),i(t.data.access_token)})).catch((t=>{e.set_req_token(),s(t)}))}))}}}(),P=Wt(),S=Gt(),E=Xt(),A=Ht(),T=Yt(),$=Zt(),O=Qt(),N=en(),I=tn(),C=nn(),F=on(),R=rn(),M=sn(),q=an(),B=Vt(),K=cn(),{Atom:L}=x,U=z,J=Yn(),W=n,G=_,Q=X,re=c,ie=V,se=H,ae=function(){if(yn)return hn;yn=1;const e=X,t=Qn();return hn={hits:async function({node:t}){const n=Object.keys(t.definition);return 1===(await Promise.all(n.map((t=>e({expression:t}))))).filter((e=>"if"===e?.processor)).length},init:async function(n){const{node:o}=n,r=Object.keys(o.definition),i=await Promise.all(r.map((t=>e({expression:t})))),s=[],a=i.find((e=>"if"===e?.processor)),c=o.definition[a.expression];s.push({name:`${o.name}_if`,definition:c,processor:a}),delete o.definition[a.expression];const p=i.filter((e=>"elseif"===e?.processor));let l=0;for(const e of p){const t=o.definition[e.expression];s.push({name:`${o.name}_elseif_${l++}`,definition:t,processor:e}),delete o.definition[e.expression]}o.definition.switch=[];for(const e of s)o.definition.switch.push({condition:e.processor.statement,...e.definition});if(o.definition?.else){const e=o.definition.else;o.definition.switch.push({default:e}),delete o.definition.else}await t.init(n)}}}(),ce=function(){if(wn)return gn;wn=1;const e=h,t=Zn();async function n({node:t,resolveTypeCommon:n,resolveNextBlock:o}){t.context.transform=t.context.transform||e(t.definition);const r=t.context.transform;if(t.context.try=t.childs.find((e=>"try"===e.name)),t.context.except=t.childs.find((e=>"except"===e.name)),t.context.except){const n=t.context.except;n.context.transform=n.context.transform||e(n.definition),n.context.transform.hasOwnProperty("as")||(n.context.transform.as="error")}r.export&&(r.export=await transformExpression(r.export)),Reflect.has(r,"return")&&(t.returns=!0,r.return=await transformExpression(r.return)),await n({node:t}),o({node:t})}return gn={hits:async function({node:e}){return e.definition.hasOwnProperty("try")&&e.definition.hasOwnProperty("except")},init:async function({node:e,initNode:o}){if(e.type="tryexcept",await t({node:e,initNode:o}),e.blockAutoJumpToParent=!1,e.blockAutoJumpToSibling=!0,e.definition.try){const t="try",n={name:t,childs:[],parent:e,definition:e.definition[t],index:e.childs.length,context:{}};e.childs.push(n),await o({node:n})}if(e.definition.except){const t="except",n={name:t,childs:[],parent:e,definition:e.definition[t],index:e.childs.length,context:{}};e.childs.push(n),await o({node:n})}e.resolve=n},resolve:n}}(),pe=function(){if(xn)return bn;xn=1;const e=h,t=Zn();async function n({node:t,resolveTypeCommon:n,resolveNextBlock:o,transformExpression:r}){t.context.transform=t.context.transform||e(t.definition);const i=t.context.transform;for(let e=0;e<i.assign?.length;e++){let t=i.assign[e],n=Object.keys(t)[0],o=t[n],s={key:await r(n),value:await r(o)};i.assign[e]=s}i.export&&(i.export=await r(i.export)),Reflect.has(i,"return")&&(t.returns=!0,i.return=await r(i.return)),await n({node:t}),o({node:t})}return bn={hits:async function({node:e}){return e.definition.hasOwnProperty("assign")},init:async function({node:e,initNode:o}){e.type="assign",await t({node:e,initNode:o}),e.resolve=n},resolve:n}}(),le=function(){if(kn)return vn;kn=1;const e=h,t=Y,n=Z,o=Zn();async function r({node:t,resolveTypeCommon:n,resolveNextBlock:o,transformExpression:r}){t.context.transform=t.context.transform||e(t.definition);const i=t.context.transform;i.for.in=await r(t.definition.for.in),i.export&&(i.export=await r(i.export)),Reflect.has(i,"return")&&(t.returns=!0,i.return=await r(i.return)),await n({node:t}),o({node:t})}return vn={hits:async function({node:e}){return e.definition.hasOwnProperty("for")},init:async function({node:e,initNode:i}){if(e.type="for",await o({node:e,initNode:i}),e.blockAutoJumpToParent=!0,e.blockAutoJumpToSibling=!1,!e.definition.for.hasOwnProperty("steps")){const o=["value","in"],[r,i]=[t(e.definition.for,o),n(e.definition.for,o)];e.definition.for=r,e.definition.for.steps=[{[`${e.name}_step`]:i}]}Array.isArray(e.definition.for.steps)||(e.definition.for.steps=[{[`${e.name}_step`]:e.definition.for.steps}]);for(let t=0;t<e.definition.for.steps.length;t++){const n=e.definition.for.steps[t],o=Object.keys(n)[0],r={name:o,childs:[],parent:e,definition:n[o],index:e.childs.length,context:{}};e.childs.push(r),await i({node:r})}e.resolve=r},resolve:r}}(),de=Qn(),fe=_n?jn:(_n=1,jn={hits:async function({node:e}){return!1},init:async function({node:e,initNode:t}){},resolve:async function({node:e,resolveTypeCommon:t,resolveNextBlock:n,transformExpression:o,transformValue:r}){}}),ue=function(){if(Pn)return Dn;Pn=1;const e=h;async function t({node:t,resolveTypeCommon:n,transformExpression:o}){t.context.transform=t.context.transform||e(t.definition);const r=t.context.transform;r.raise=await o(r.raise),await n({node:t})}return Dn={hits:async function({node:e}){return e.definition.hasOwnProperty("raise")},init:async function({node:e,initNode:n}){e.type="raise",e.resolve=t},resolve:t}}(),me=function(){if(En)return Sn;En=1;const e=h;async function t({node:t,resolveTypeCommon:n,transformExpression:o}){t.context.transform=t.context.transform||e(t.definition);const r=t.context.transform;t.returns=!0,r.return=await o(r.return),await n({node:t})}return Sn={hits:async function({node:e}){return e.definition.hasOwnProperty("return")},init:async function({node:e,initNode:n}){e.type="return",e.resolve=t},resolve:t}}(),he=eo(),ye=function(){if(On)return $n;On=1;const e=h;async function t({node:t,transformExpression:n}){t.context.next=t.childs[0],t.context.transform=t.context.transform||e(t.definition);const o=t.context.transform;o.export&&(o.export=await n(o.export)),Reflect.has(o,"return")&&(t.returns=!0,o.return=await n(o.return))}return $n={hits:async function({node:e}){return e.definition.hasOwnProperty("steps")},init:async function({node:e,initNode:n}){e.type||(e.type="steps");const o=e.definition.steps||[];for await(const t of o){const o=Object.keys(t)[0],r={name:o,childs:[],parent:e,definition:t[o],index:e.childs.length,context:{}};e.childs.push(r),await n({node:r})}e.resolve=t},resolve:t}}(),ge=function(){if(In)return Nn;In=1;const e=h,t=Zn();async function n({node:t,resolveTypeCommon:n,resolveNextBlock:o,transformExpression:r}){t.context.transform=t.context.transform||e(t.definition);const i=t.context.transform;i.props&&(i.props=await r(i.props));const s=t.workflow.parent;t.context.lib=s.context.libs.find((e=>e.name===i.form)),i.export&&(i.export=await r(i.export)),Reflect.has(i,"return")&&(t.returns=!0,i.return=await r(i.return)),await n({node:t}),o({node:t})}return Nn={hits:async function({node:e}){return e.definition.hasOwnProperty("form")},init:async function({node:e,initNode:o}){e.type="form",await t({node:e,initNode:o}),e.resolve=n},resolve:n}}(),we=function(){if(Fn)return Cn;Fn=1;const e=h;async function t({node:t,resolveTypeCommon:n,resolveNextBlock:o,transformExpression:r,transformValue:i}){t.context.transform=t.context.transform||e(t.definition),await n({node:t})}return Cn={hits:async function({node:e}){return e.definition.hasOwnProperty("operation")},init:async function({node:e,initNode:n}){e.type="operation",e.resolve=t},resolve:t}}(),be=function(){if(Mn)return Rn;Mn=1;const e=h;async function t({node:t,resolveTypeCommon:n,resolveNextBlock:o,transformExpression:r}){t.context.transform=t.context.transform||e(t.definition);const i=t.context.transform;i.next=await r(i.next),i.export&&(i.export=await r(i.export)),Reflect.has(i,"return")&&(t.returns=!0,i.return=await r(i.return)),await n({node:t}),o({node:t})}return Rn={hits:async function({node:e}){return e.definition.hasOwnProperty("next")},init:async function({node:e,initNode:n}){e.type="jump",e.resolve=t},resolve:t}}(),xe=function(){if(Bn)return qn;Bn=1;const e=h,t=Zn();async function n({node:t,resolveTypeCommon:n,resolveNextBlock:o,transformExpression:r}){t.context.transform=t.context.transform||e(t.definition);const i=t.context.transform;i.export&&(i.export=await r(i.export)),Reflect.has(i,"return")&&(t.returns=!0,i.return=await r(i.return)),await n({node:t}),o({node:t})}return qn={hits:async function({node:e}){return e.definition.hasOwnProperty("modules")},init:async function({node:e,initNode:o}){e.type="modules",await t({node:e,initNode:o}),e.resolve=n},resolve:n}}(),ve=to(),ke=no();return zn=class{#r;#i;#s;#a;#c;#p;#l;#d;#f;#u;#m;#h;#y;#g;#w;#b;#x;#v;#k;#j;#_;#D=[];constructor(e){this.#r=new D,this.#i=e,this.#p=[],this.#l=[],this.#d={},this._expire_ttl=3600,this._expire_ttl_short=300,this.#D.push(ke({key:"config",npm:"@fnet/config",master:"name"})),this.#D.push(ke({key:"yaml",npm:"@fnet/yaml",master:"file"})),this.#D.push(ke({key:"prompt",npm:"@fnet/prompt",master:"message"})),this.#D.push(ke({key:"html-link",npm:"@flownet/lib-load-browser-link-url",master:"src"})),this.#D.push(ke({key:"html-script",npm:"@flownet/lib-load-browser-script-url",master:"src"})),this.#D.push(ke({key:"http-server",npm:"@fnet/node-express",master:"server_port"})),this.#D.push(ke({key:"shell",npm:"@fnet/shell",master:"cmd"})),this.#D.push(ke({key:"shell-flow",npm:"@fnet/shell-flow",master:"commands"})),this.#D.push(ke({key:"list-files",npm:"@fnet/list-files",master:"pattern"})),this.#D.push(ke({key:"up-list-files",npm:"@fnet/up-list-files",master:"pattern"})),this.#D.push(ke({key:"auto-conda-env",npm:"@fnet/auto-conda-env",master:"envDir"})),this.#D.push(ke({key:"ollama-chat",npm:"@fnet/ollama-chat",master:"model"})),this.#D.push(ke({key:"ai",npm:"@fnet/ai",master:"prompt",extras:{subtype:"flow"}})),this.#j={packageDependencies:this.#p,packageDevDependencies:this.#l,setProgress:this.setProgress.bind(this),context:this.#i,Atom:L,registerToPackageManager:this.registerToPackageManager.bind(this)},this.#_={initNode:this.initNode.bind(this),cloneDeep:p,resolveTypeCommon:this.resolveTypeCommon.bind(this),resolveNextBlock:ve,transformExpression:this.transformExpression.bind(this),transformValue:this.transformValue.bind(this)}}async _cache_set(e,t,n){this._redis_client&&await this._redis_client.SETEX(e,n||this._expire_ttl,JSON.stringify(t)).catch(console.error)}async init(){this._redis_client=await d(),this.#m=this.#i.buildId||j(24),this.#j.buildId=this.#m,this.#w=this.#i.mode,this.#b=["all","deploy","build","file"].includes(this.#w),this.#x=["all","deploy","build"].includes(this.#w),this.#v=["all","deploy"].includes(this.#w),this.#k=["all","deploy","build","file","bpmn"].includes(this.#w),this.#y=this.#i.protocol,this.#h="BUILD:"+this.#m,this.#g=(await W({optional:!0,name:"atom",dir:this.#i.projectDir,tags:this.#i.tags}))?.data;try{await this.setProgress({message:"Initialization started."}),await this.initAuth(),await this.initWorkflow(),this.transformWorkflow({workflow:this.#a});const e=await this.initNodeTree({workflow:this.#a});await this.initNodeTreeIndex({root:e}),await this.initNodeCalls({root:e}),await this.initNodeCallLibs({root:e}),await this.initNodeForms({root:e}),await this.initNodeFormLibs({root:e}),await this.initFeaturesFromNodes({childs:e.childs,features:this.#s.doc.features}),await P(this.#j),await S(this.#j),await this.initAtomLibsAndDeps({libs:e.context.libs,packageDependencies:this.#p}),await this.resolveNodeTree({root:e}),this.#u=e}catch(e){throw await this._cache_set(this.#h,{status:"FAILED",message:e?.message||e}),e}}async initAuth(){this.#i.id&&(this.#f=await this.#r.init({config:this.#g}),this.#j.atomAccessToken=this.#f)}async initWorkflow(){const e=this.#i.id;this.#s=this.#i.project?.workflowAtom||await L.get({id:e}),this.#a="string"==typeof this.#s.doc.content?(await re({content:this.#s.doc.content,tags:this.#i.tags})).parsed:this.#s.doc.content;let t=this.#s.doc.bundleName;t=t||(this.#s.doc.name||"").toUpperCase().replace(/[^A-Z0-9]/g,"_"),this.#s.doc.bundleName=t,this.#s.type=this.#s.type||"workflow",this.#j.atom=this.#s,this.#s.doc.features=this.#s.doc.features||{}}#P(n){console.log("filePath",n),e.statSync(n).isDirectory()?(e.readdirSync(n).forEach((e=>{const o=t.join(n,e);this.#P(o)})),e.rmSync(n)):e.unlinkSync(n)}#S(n,o){const r=e.existsSync(n),i=r&&e.statSync(n);r&&i.isDirectory()?(e.mkdirSync(o,{recursive:!0}),e.readdirSync(n).forEach((e=>{this.#S(t.join(n,e),t.join(o,e))}))):e.copyFileSync(n,o)}async initWorkflowDir(){this.setProgress({message:"Initializing library directory."});const n=this.#i.projectDir,o=this.#i.coreDir;this.setProgress({message:"Cleaning project directory."});const r=se({dir:n,ignore:[".cache","node_modules",".conda"],absolute:!0});for(const t of r)e.rmSync(t,{recursive:!0,force:!0});this.setProgress({message:"Creating project directory."}),e.existsSync(n)||e.mkdirSync(n,{recursive:!0});const i=t.join(n,"src");e.existsSync(i)||e.mkdirSync(i,{recursive:!0});const s=t.join(i,"core");this.#S(o,s);const a=t.join(i,"default","blocks");e.existsSync(a)||e.mkdirSync(a,{recursive:!0})}async initNunjucks(){this.setProgress({message:"Initializing nunjucks."});const e=this.#i.templateDir;this.#c=i.configure(e,{watch:!1,dev:!0}),this.#j.njEnv=this.#c}transformWorkflow({workflow:e}){for(const t of Object.values(e))t.steps=t.steps||[],t.steps=t.steps.filter((e=>Object.keys(e).length>0)),t.steps=t.steps.map((e=>this.transformStep({step:e})))}transformStep({step:e}){if(Array.isArray(e))throw new Error("Step must be an object.");const[t,n]=Object.entries(e)[0];if(n.hasOwnProperty("onerror")){const{onerror:o,...r}=n;e[t]={try:r,except:o}}if(e[t].hasOwnProperty("steps")){const n=e[t].steps;if(!Array.isArray(n))throw new Error("Steps must be an array.");e[t].steps=n.map((e=>this.transformStep({step:e})))}return e}async initNodeTree({workflow:e}){const t=Object.keys(e),n={definition:e,name:void 0,type:"root",parent:void 0,childs:[],blockAutoJumpToParent:!0,blockAutoJumpToSibling:!0,index:0,depth:0,context:{libs:[],atom:this.#s}};t.forEach((t=>{const o={name:t,type:"main"===t?"workflow":"subworkflow",childs:[],parent:n,definition:e[t],index:n.childs.length,depth:n.depth+1,context:{},blockAutoJumpToParent:!0,blockAutoJumpToSibling:!1};n.childs.push(o)}));for await(const e of n.childs)await this.initNode({node:e});return n}async initNode({node:e}){const t={...this.#_,node:e};if(e.workflow=e.parent.workflow||e,e.depth=e.parent.depth+1,await ce.hits(t))await ce.init(t);else if(await le.hits(t))await le.init(t);else if(await de.hits(t))await de.init(t);else if(await ae.hits(t))await ae.init(t);else if(await fe.hits(t))await fe.init(t);else if(await pe.hits(t))await pe.init(t);else if(await ue.hits(t))await ue.init(t);else if(await he.hits(t))await he.init(t);else if(this.#D.find((e=>e.hits(t)))){const e=this.#D.find((e=>e.hits(t)));await e.init(t)}else if(await ge.hits(t))await ge.init(t);else if(await we.hits(t))await we.init(t);else if(await ye.hits(t))await ye.init(t);else if(await be.hits(t))await be.init(t);else if(await xe.hits(t))await xe.init(t);else{if(!await me.hits(t))throw new Error("Undefined step type.");await me.init(t)}}async initNodeTreeIndex({root:e}){const t={};e.indexKey="/";for await(const n of e.childs)await this.initNodeIndex({node:n,index:t});return e.context.index=t,t}async initNodeIndex({node:e,index:n}){const o=t.join(e.parent.indexKey,e.name);e.indexKey=o,n[o]=e;const r=[];let i=e;for(;i?.parent;)r.push(i.index),i=i.parent;r.reverse(),e.codeKey=`B_${r.join("_")}_${e.type}`,e.pathKey=`${r.join(".")}`,e.typeId=j(24);for await(const t of e.childs)await this.initNodeIndex({node:t,index:n})}async initNodeCalls({root:e}){const t=e.context.index,n=[];for await(const e of Object.keys(t)){const o=t[e];"call"===o.type&&n.push(o)}return e.context.calls=n,n}async initNodeCallLibs({root:e}){const t=[],n=e.context.calls;for await(const e of n){const n=e.definition.import||e.definition.call,o=await this.findNodeCallTarget({refNode:e,curNode:e.parent})||{name:n,type:"atom",definition:e.definition},r=t.find((e=>e.name===o.name&&e.type===o.type));r||t.push(o),e.target=r||o}return e.context.callLibs=t,e.context.libs=[...e.context.libs,...t],t}async findNodeCallTarget({refNode:e,curNode:t}){if(!t)return;const n=e.definition.call,o=t.childs.find((e=>e.name===n&&"subworkflow"===e.type));return o||await this.findNodeCallTarget({refNode:e,curNode:t.parent})}async initNodeForms({root:e}){const t=e.context.index,n=[];for await(const e of Object.keys(t)){const o=t[e];"form"===o.type&&n.push(o)}return e.context.forms=n,n}async initNodeFormLibs({root:e}){const t=[],n=e.context.forms;for await(const e of n){const n=e.definition.import||e.definition.form,o=await this.findNodeCallTarget({refNode:e,curNode:e.parent})||{name:n,type:"atom"},r=t.find((e=>e.name===o.name&&e.type===o.type));r||t.push(o),e.target=r||o}return e.context.formLibs=t,e.context.libs=[...e.context.libs,...t],t}async initFeaturesFromNodes({childs:e,features:t}){for await(const n of e)"form"!==n.type||Reflect.has(t,"form")||(t.form=!0),await this.initFeaturesFromNodes({childs:n.childs,features:t})}async findNodeFormTarget({refNode:e,curNode:t}){if(!t)return;const n=e.definition.form,o=t.childs.find((e=>e.name===n&&"subworkflow"===e.type));return o||await this.findNodeFormTarget({refNode:e,curNode:t.parent})}async initAtomLibsAndDeps({libs:e,packageDependencies:t}){const n=e.filter((e=>"atom"===e.type));for(let e=0;e<n.length;e++){const o=n[e],r=await this.findAtomLibrary({url:o.name,libRef:o});o.atom=r;const i=r.doc.dependencies?.filter((e=>void 0===e.repo||"npm"===e.repo));i?.forEach((e=>{const n=t.find((t=>t.package===e.package));n?"string"==typeof e.path?(n.path||[]).some((t=>t===e.path))||(n.path=n.path||[],n.path.push(e.path)):Array.isArray(e.path)&&e.path.forEach((e=>{(n.path||[]).some((t=>t===e))||(n.path=n.path||[],n.path.push(e))})):t.push(e)}))}t.sort(((e,t)=>e.package?.localeCompare(t.package)))}async findAtomLibrary({url:e,libRef:n}){const o=U({url:e});if(!o)throw new Error(`Invalid package name: ${e}`);if(o.protocol||(o.protocol=this.#y),"ac:"===o.protocol){const t=o.pathname.split("/");if(1===t.length)return await L.first({where:{name:e,parent_id:this.#g.env.ATOM_LIBRARIES_ID,type:"workflow.lib"}});if(2===t.length){const e=await L.first({where:{name:t[0],parent_id:this.#g.env.ATOM_LIBRARIES_ID,type:"folder"}});return await L.first({where:{name:t[1],parent_id:e.id,type:"workflow.lib"}})}}else{if("local:"===o.protocol){const e=t.resolve(this.#i.projectSrcDir,`${o.pathname}.js`),n=[],r=(await G({file:e,recursive:!0})).all;for await(const e of r){if("npm"!==e.type)continue;if(n.find((t=>t.package===e.package)))continue;const t=await B({name:e.package,projectDir:this.#i.projectDir,setProgress:this.#j.setProgress});n.push({package:e.package,subpath:e.subpath,version:t.minorRange,type:"npm"})}return{name:o.pathname,doc:{type:"workflow.lib","content-type":"javascript",language:"js",dependencies:n},protocol:o.protocol}}if("npm:"===o.protocol){const e=await B({name:o.pathname,projectDir:this.#i.projectDir,setProgress:this.#j.setProgress});return{name:o.pathname,doc:{type:"workflow.lib",subtype:"flow"===n?.definition?.subtype?"workflow":null,"content-type":"javascript",language:"js",dependencies:[{package:o.pathname,version:e.minorRange,type:"npm"}]},protocol:o.protocol}}if("use:"===o.protocol){return{name:o.pathname,doc:{type:"function",dependencies:[]},protocol:o.protocol}}}}async resolveNodeTree({root:e}){for await(const t of e.childs)await this.resolveTypeWorkflow({node:t})}async resolveTypeWorkflow({node:e}){e.context.transform=e.context.transform||p(e.definition);const t=e.context.transform;for(let e=0;e<t.params?.length;e++){const n=t.params[e];if("string"==typeof n)t.params[e]={key:n,hasDefault:!1};else{const o=Object.keys(n)[0];t.params[e]={key:o,hasDefault:!0,default:n[o],type:typeof n[o]}}}e.context.next=e.childs[0];for await(const t of e.childs)await this.resolveType({node:t})}async resolveType({node:e}){const t={...this.#_,node:e};"function"==typeof e.resolve&&await e.resolve(t);for await(const t of e.childs)await this.resolveType({node:t})}async resolveTypeCommon({node:e}){const t=e.context.transform;t.hasOwnProperty("operation")&&(t.operation=await this.transformExpression(t.operation)),t.hasOwnProperty("page")&&(t.page=await this.transformExpression(t.page)),t.hasOwnProperty("print")&&(t.print=await this.transformExpression(t.print)),t.hasOwnProperty("sleep")&&(t.sleep=await this.transformExpression(t.sleep)),t.hasOwnProperty("assert")&&(t.assert=await this.transformExpression(t.assert))}async createAtomLibFiles({root:n}){await this.setProgress({message:"Creating external lib files."}),this.#s.typesDir="./types";const o=n.context.libs.filter((e=>"atom"===e.type));for(let n=0;n<o.length;n++){const r=o[n].atom,i=this.#i.projectDir;if("local:"===r.protocol){const n=t.resolve(this.#i.projectSrcDir,`${r.fileName||r.name}.js`),o=t.relative(`${this.#i.projectDir}/src/default/blocks`,n);if(!e.existsSync(n)){e.mkdirSync(t.dirname(n),{recursive:!0});let o="export default async (args)=>{\n";o+="}",e.writeFileSync(n,o,"utf8")}r.relativePath=o.split(t.sep).join("/"),this.#s.typesDir=`./types/${t.basename(i)}/src`}else if("npm:"===r.protocol)r.relativePath=r.name;else if("use:"===r.protocol);else{const n=`${i}/src/libs/${r.id}.js`,o=r.doc.contents?.find((e=>"esm"===e.format))||r.doc;e.writeFileSync(t.normalize(n),o.content,"utf8")}}}async createEngine({root:n}){await this.setProgress({message:"Creating engine file."});const o=this.#i.templateDir,r=i.compile(e.readFileSync(t.resolve(o,"src/default/engine.js.njk"),"utf8"),this.#c).render({...n,ui:{package:"@flownet/react-app"}}),s=this.#i.projectDir,a=t.resolve(s,"src/default/index.js");e.writeFileSync(a,r,"utf8")}async createNodeTree({root:e}){await this.setProgress({message:"Creating block files."});for await(const t of e.childs)await this.createTypeWorkflow({node:t})}async createTypeWorkflow({node:n}){const o=this.#i.templateDir,r=i.compile(e.readFileSync(t.resolve(o,"src/default/workflow.js.njk"),"utf8"),this.#c).render(n),s=this.#i.projectDir,a=t.resolve(s,`src/default/${n.codeKey}.js`);e.writeFileSync(a,r,"utf8");for await(const e of n.childs)await this.createType({node:e})}async createType({node:e}){switch(e.type){case"assign":case"steps":case"return":case"call":case"form":case"raise":case"switch":case"jump":case"tryexcept":case"for":case"operation":case"modules":this.createBlockFromTemplate({node:e})}for await(const t of e.childs)await this.createType({node:t})}createBlockFromTemplate({node:e}){const t=this.getBlockTemplate({node:e});e.context.render=t.render(e),this.createStepFile({node:e})}getBlockTemplate({node:n}){let o=this.#d[n.type];if(o)return o;const r=this.#i.templateDir;return o=i.compile(e.readFileSync(t.resolve(r,`src/default/blocks/${n.type}.js.njk`),"utf8"),this.#c),this.#d[n.type]=o,o}createStepFile({node:n}){const o=this.#i.projectDir,r=`${n.codeKey}.js`,i=t.resolve(o,`src/default/blocks/${r}`);e.writeFileSync(i,n.context.render,"utf8"),n.context.fileName=r,n.context.filePath=i}async transformExpression(e){let t=await this.transformValue(e);return t=JSON.stringify(t),t=this.replaceSpecialPattern(t),t}async transformValue(e){if(Array.isArray(e))for(let t=0;t<e.length;t++)e[t]=await this.transformValue(e[t]);else if(l(e)){const t=Object.keys(e);for(let n=0;n<t.length;n++){const o=t[n],r=await Q({expression:o});if(r)if("e"===r.processor){const t=e[o].replace(/(\r\n|\n|\r)/g,"");e[r.statement]=`$::${t}::`,delete e[o]}else e[o]=await this.transformValue(e[o]);else e[o]=await this.transformValue(e[o])}}else if("string"==typeof e){const t=await Q({expression:e});if(t){const{processor:n,statement:o}=t;switch(n){case"v":e=`$::v.${o}::`;break;case"e":e=`$::${o}::`;break;case"m":e=`$::closure.module['${o}']::`;break;case"f":e=`$::closure.form.${o}::`;break;case"for":e=`$::caller.for.${o}::`}}}return e}replaceSpecialPattern(e){return e.replace(/"\$::(.*?)::"/g,"$1")}replaceExpressionLegacy(e){return e.replaceAll(/(?<outer>"\${(?<inner>[^{]*)}")/g,"$2")}async createProjectYaml(){const n="flow.yaml",r=`Creating ${n}`;await this.setProgress({message:r});const{content:s,...a}=this.#s.doc,c={content:o.stringify(a)},p=this.#i.templateDir,l=i.compile(e.readFileSync(t.resolve(p,`${n}.njk`),"utf8"),this.#c).render(c),d=this.#i.projectDir,f=t.resolve(d,`${n}`);e.writeFileSync(f,l,"utf8")}async createProjectMainYaml(){const n="flow.main.yaml",r=`Creating ${n}`;await this.setProgress({message:r});const s={content:o.stringify(this.#a)},a=this.#i.templateDir,c=i.compile(e.readFileSync(t.resolve(a,`${n}.njk`),"utf8"),this.#c).render(s),p=this.#i.projectDir,l=t.resolve(p,`${n}`);e.writeFileSync(l,c,"utf8")}async runPrettifier(){const e=this.#i.projectDir,n=r.exec("prettier --write .",{cwd:t.resolve(e,"src")});if(0!==n.code)throw new Error(n.stderr)}async deploy(){if(await this.setProgress({message:"Deploying."}),this.#i.project?.devops){const e=[this.#i.project?.devops];for(let t=0;t<e.length;t++){let n=e[t];await this.deployProject({deploymentProject:n}),!0===n.isDirty&&await n.save()}}else if(this.#s.id){const e=await L.list({type:"workflow.deploy",parent_id:this.#s.id});for(let t=0;t<e.length;t++){let n=e[t];await this.deployProject({deploymentProject:n}),!0===n.isDirty&&(n=await L.update(n,{id:n.id}))}}}async deployProject(e){const{deploymentProject:t}=e,{yamlDocument:n}=t;if(t.doc.targets&&Array.isArray(t.doc.targets))throw new Error("Deployment project targets are deprecated. Please update targets in the yaml file.");const o=Object.keys(t.doc||{}),r=n||{};for(let e=0;e<o.length;e++){const n=t.doc[o[e]];n.name=o[e];const i=r.get(o[e]);await K({...this.#j,deploymentProject:t,deploymentProjectTarget:n,yamlTarget:i})}}async registerToPackageManager(e){const{target:t,packageJSON:n}=e;if(!this.#i.id)return;let o=await L.first({name:t.params.name,parent_id:this.#g.env.ATOM_PACKAGES_ID});o?(o.doc.versions.splice(0,0,{v:n.version}),await L.update(o,{id:o.id})):o=await L.create({parent_id:this.#g.env.ATOM_PACKAGES_ID,doc:{name:t.params.name,type:"pm",versions:[{v:n.version}]}})}async setProgress(e){const t="string"==typeof e?e:e?.message;console.log(ie.blue(t)),await this._cache_set(this.#h,{status:"IN_PROGRESS",message:t})}async build(){if(this.#k&&!this.#b)return await this.createNetwork();try{const n=this.#k?await J({root:this.#u}):void 0;if(this.#b){if(await this.initWorkflowDir(),await this.initNunjucks(),this.#k){const o=this.#i.project?.projectDir||this.#i.projectDir;e.writeFileSync(t.resolve(o,"./fnet/flow.bpmn"),n.diagramXML,"utf8")}await this.createAtomLibFiles({root:this.#u}),await this.createEngine({root:this.#u}),await this.createNodeTree({root:this.#u}),await this.createProjectYaml(),await this.createProjectMainYaml(),await C(this.#j),await I(this.#j),await N(this.#j),await O(this.#j),await T(this.#j),await E(this.#j),await $(this.#j),await A(this.#j),await F(this.#j),await R(this.#j),this.#x&&(await M(this.#j),await q(this.#j),this.#v&&await this.deploy())}await this._cache_set(this.#h,{status:"COMPLETED",data:{network:n}})}catch(e){throw await this._cache_set(this.#h,{status:"FAILED",message:e.message||e}),e}}async createNetwork(){try{const e=await J({root:this.#u});await this._cache_set(this.#h,{status:"COMPLETED",data:{...e}})}catch(e){throw await this._cache_set(this.#h,{status:"FAILED",message:e.message||e}),e}}}}var ro=function(){if(Vn)return Jt;Vn=1;const m=process.cwd(),{spawn:h}=e,y=t;n({name:["redis"],dir:m,optional:!0});const g=o,w=r,b=i,x=s,v=a,k=c,j=n,_=p,D=l,P=d,S=oo(),E=function(){if(Xn)return Gn;Xn=1;const e=f,t=u;return Gn=function({baseDir:n=__dirname}){let o=n;for(;o!==t.parse(o).root;){const n=t.join(o,"node_modules");if(e.existsSync(n))return n;o=t.dirname(o)}return null}}()({baseDir:__dirname}),A="win32"===process.platform?";":":";process.env.PATH=`${g.join(E,"/.bin")}${A}${process.env.PATH}`;let T=w(process.argv.slice(2)).command("create","Initialize flow node project",(e=>e.option("name",{type:"string"}).option("vscode",{type:"boolean",default:!0,alias:"vs"}).option("runtime",{type:"string",default:"node",choices:["node"]})),(async e=>{try{const t=g.resolve(E,"./@fnet/cli-project-flow/dist/template/project"),n=g.resolve(m,e.name);b.existsSync(n)||b.mkdirSync(n),await P({dir:t,outDir:n,context:e,copyUnmatchedAlso:!0});let o=v.exec("fnet build",{cwd:n});if(0!==o.code)throw new Error("Failed to build project.");if(v.which("git")&&(o=v.exec("git init --initial-branch=main",{cwd:n}),0!==o.code))throw new Error("Failed to initialize git.");if(v.which("code")&&e.vscode&&(o=v.exec(`cd ${n} && code .`),0!==o.code))throw new Error("Failed to open vscode.");console.log("Creating project succeeded!"),process.exit(0)}catch(e){console.error("Initialization failed!",e.message),process.exit(1)}})).command("project","Flow node project",(e=>e.option("update",{type:"boolean",default:!1,alias:"-u"})),(async e=>{try{const t=g.resolve(E,"@fnet/cli-project-flow/dist/template/project"),n=process.cwd(),o=await O(e);if(e.update){if(await P({dir:t,outDir:n,context:{name:o.project.projectFileParsed.name,runtime:"node"},copyUnmatchedAlso:!0}),0!==v.exec("fnet build",{cwd:n}).code)throw new Error("Failed to build project.");console.log("Updating project succeeded!")}process.exit(0)}catch(e){console.error("Project failed.",e.message),process.exit(1)}})).command("build","Build flownet project",(e=>e.option("id",{type:"string"}).option("buildId",{type:"string",alias:"bid"}).option("mode",{type:"string",default:"build",choices:["all","file","build","deploy","bpmn"]}).option("ftag",{type:"array"})),(async e=>{try{const t=await O(e),n=new S(t);await n.init(),await n.build(),console.log("Building workflow succeeded!"),process.exit(0)}catch(e){console.error("Building workflow failed!",e.message),process.exit(1)}})).command("deploy","Build and deploy flownet project",(e=>e.option("id",{type:"string"}).option("buildId",{type:"string",alias:"bid"}).option("ftag",{type:"array"})),(async e=>{try{const t=await O({...e,mode:"all"}),n=new S(t);await n.init(),await n.build(),console.log("Building workflow succeeded!"),process.exit(0)}catch(e){console.error("Building workflow failed!",e.message),process.exit(1)}})).command("file","Just create files",(e=>e.option("id",{type:"string"}).option("buildId",{type:"string",alias:"bid"}).option("ftag",{type:"array"})),(async e=>{try{const t=await O({...e,mode:"file"}),n=new S(t);await n.init(),await n.build(),console.log("Building workflow succeeded!"),process.exit(0)}catch(e){console.error("Building workflow failed!",e.message),process.exit(1)}}));function $(e,{name:t,bin:n,preArgs:o=[]}){return e.command(`${t||n} [commands..]`,`${n} ${o.join(" ")}`,(e=>e.help(!1).version(!1)),(async e=>{try{const t=await O(e),{projectDir:r}=t,i=e=>e.includes(" ")?"win32"===process.platform?`"${e.replace(/(["^])/g,"^$1")}"`:`"${e.replace(/(["\\$`])/g,"\\$1")}"`:e,s=process.argv.slice(3).map(i);h(n,[...o,...s],{cwd:r,stdio:"inherit",shell:!0}).on("close",(e=>{process.exit(e)}))}catch(e){console.error(e.message),process.exit(1)}}))}async function O(e){if(e.id){return{id:e.id,buildId:e.buildId,mode:e.mode,protocol:e.protocol||"ac:",projectDir:g.resolve(m,`./.output/${e.id}`),templateDir:g.resolve(E,"./@fnet/cli-project-flow/dist/template/default"),templateCommonDir:g.resolve(E,"./@fnet/cli-project-common/dist/template/default"),coreDir:g.resolve(E,"./@fnet/cli-project-flow/dist/template/core"),tags:e.ftag}}{const t=await async function({tags:e}){const t=g.resolve(m,"flow.yaml");if(!b.existsSync(t))throw new Error("flow.yaml file not found in current directory.");const{raw:n,parsed:o}=await k({file:t,tags:e}),r=g.dirname(t),i=o.main||"flow.main.yaml";let s=g.resolve(r,i);if(!b.existsSync(s)&&(s=g.resolve(r,i+".yaml"),!b.existsSync(s)))throw new Error(`${i} file not found in ${s}.`);const{raw:a,parsed:c}=await k({file:s,tags:e}),p={workflowAtom:{doc:{...o,content:c}},projectDir:r,projectFilePath:t,projectFileContent:n,projectFileParsed:o,projectMainFilePath:s,projectMainFileContent:a,projectMainFileParsed:c};let l=g.resolve(r,"fnet/targets.yaml");if(!b.existsSync(l)&&(l=g.resolve(r,"flow.devops.yaml"),b.existsSync(l))){const e=g.resolve(r,"fnet");b.existsSync(e)||b.mkdirSync(e),b.copyFileSync(l,g.resolve(r,"fnet/targets.yaml")),b.unlinkSync(l)}if(b.existsSync(l)){const{raw:t,parsed:n}=await k({file:l,tags:e}),o=x.parseDocument(t);p.devops={filePath:l,fileContent:t,yamlDocument:o,doc:{...n},type:"workflow.deploy",save:async()=>{b.writeFileSync(p.devops.filePath,o.toString())}}}const d=g.resolve(r,"readme.md");if(b.existsSync(d)){const e=b.readFileSync(d,"utf8");p.readme={filePath:d,fileContent:e,doc:{content:e,"content-type":"markdown"},type:"wiki"}}return p}({tags:e.ftag});return{buildId:e.buildId,mode:e.mode,protocol:e.protocol||"local:",templateDir:g.resolve(E,"./@fnet/cli-project-flow/dist/template/default"),templateCommonDir:g.resolve(E,"./@fnet/cli-project-common/dist/template/default"),coreDir:g.resolve(E,"./@fnet/cli-project-flow/dist/template/core"),projectDir:g.resolve(t.projectDir,"./.workspace"),projectSrcDir:g.resolve(t.projectDir,"./src"),project:t,tags:e.ftag}}}return T=T.command("input [name]","Create or modify an input config file",(e=>e.positional("name",{type:"string",demandOption:!1}).help(!1).version(!1)),(async e=>{try{const t=await O(e),{project:n}=t,{projectDir:o,projectFileParsed:r}=n,i=r.input;if(!i)throw new Error("Config schema not found in project file.");if(!Reflect.has(e,"name")){const{inputName:t}=await y({type:"input",name:"inputName",message:"Input name:",initial:"dev"});e.name=t}const s=g.resolve(o,".fnet");b.existsSync(s)||b.mkdirSync(s);const a=g.resolve(s,`${e.name}.fnet`),c=b.existsSync(a),p=await _({schema:i,format:"yaml",ref:c?a:void 0});b.writeFileSync(a,p)}catch(e){console.error(e.message),process.exit(1)}})),T=$(T,{bin:"npm"}),T=$(T,{bin:"node"}),T=$(T,{name:"serve",bin:"npm",preArgs:["run","serve","--"]}),T=$(T,{name:"watch",bin:"npm",preArgs:["run","watch","--"]}),T=$(T,{name:"app",bin:"npm",preArgs:["run","app","--"]}),T=$(T,{name:"cli",bin:"npm",preArgs:["run","cli","--"]}),T=$(T,{bin:"npx"}),T=$(T,{bin:"cdk"}),T=$(T,{bin:"aws"}),T=function(e,{name:t,preArgs:n=[]}){return e.command(`${t} <config> <command> [options..]`,"Run a command with a config context",(e=>e.positional("config",{type:"string"}).positional("command",{type:"string"}).help(!1).version(!1)),(async e=>{try{const t=await O(e),{projectDir:o}=t,r=e.config,i=await j({name:r,dir:o,transferEnv:!1,optional:!0,tags:t.tags}),s=i?.data?.env||void 0,a=e.command,c=process.argv.slice(5);h(a,[...n,...c],{cwd:o,stdio:"inherit",shell:!0,env:{...process.env,...s}}).on("close",(e=>{process.exit(e)}))}catch(e){console.error(e.message),process.exit(1)}}))}(T,{name:"with"}),T=function(e,{name:t,preArgs:n=[]}){return e.command(`${t} group [options..]`,"Run a command group.",(e=>e.positional("group",{type:"string"}).option("ftag",{type:"array"}).help(!1).version(!1)),(async e=>{try{const t=await O(e),{project:n}=t,{projectFileParsed:o}=n,r=o.commands;if(!r)throw new Error("Commands not found in project file.");const i=r[e.group];if(!i)throw new Error(`Command group '${e.group}' not found in project file.`);await D({commands:i})}catch(e){console.error(e.message),process.exit(1)}}))}(T,{name:"run"}),T.demandCommand(1,"You need at least one command before moving on").help().argv,Jt}(),io=Q(ro);module.exports=io;
|
|
2
|
+
"use strict";var e=require("child_process"),t=require("@fnet/prompt"),n=require("@fnet/config"),o=require("path"),r=require("yargs/yargs"),i=require("fs"),s=require("yaml"),a=require("shelljs"),c=require("@fnet/yaml"),p=require("@fnet/object-from-schema"),l=require("@fnet/shell-flow"),d=require("@flownet/lib-render-templates-dir"),f=require("node:fs"),u=require("node:path"),m=require("nunjucks"),h=require("lodash.clonedeep"),y=require("isobject"),g=require("redis"),w=require("@flownet/lib-is-redis-online"),b=require("nanoid"),x=require("@flownet/lib-atom-api-js"),v=require("axios"),k=require("qs"),j=require("lodash.merge"),_=require("@flownet/lib-parse-imports-js"),D=require("@fnet/npm-list-versions"),P=require("@fnet/npm-pick-versions"),E=require("object-hash"),S=require("ajv/dist/2020"),A=require("ajv/dist/standalone"),$=require("ajv-formats"),T=require("@fnet/shell"),O=require("semver"),N=require("@fnet/up-list-files"),I=require("node:os"),C=require("@node-red/util"),F=require("@flownet/lib-to-ios-app"),R=require("@flownet/lib-to-macos-app"),M=require("@flownet/lib-to-electron"),q=require("@flownet/lib-to-webos"),B=require("@flownet/lib-to-nextjs"),K=require("@flownet/lib-to-docker"),L=require("form-data"),U=require("@fnet/to-rust"),J=require("@fnet/to-pyip"),z=require("@flownet/lib-parse-node-url"),W=require("bpmn-moddle"),G=require("dagre"),X=require("@fnet/expression"),V=require("chalk"),H=require("@fnet/list-files"),Y=require("lodash.pick"),Z=require("lodash.omit");function Q(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var ee,te,ne,oe,re,ie,se,ae,ce,pe,le,de,fe,ue,me,he,ye,ge,we,be,xe,ve,ke,je,_e,De,Pe,Ee,Se,Ae,$e,Te,Oe,Ne,Ie,Ce,Fe,Re,Me,qe,Be,Ke,Le,Ue,Je,ze,We,Ge,Xe,Ve,He,Ye,Ze,Qe,et,tt,nt,ot,rt,it,st,at,ct,pt,lt,dt,ft,ut,mt,ht,yt,gt,wt,bt,xt,vt,kt,jt,_t,Dt,Pt,Et,St,At,$t,Tt,Ot,Nt,It,Ct,Ft,Rt,Mt,qt,Bt,Kt,Lt,Ut,Jt={};function zt(){if(ie)return re;ie=1;const e=j;return re=({feature:t,features:n,packageDevDependencies:o})=>{const{name:r,packages:i,options:s,extraCheck:a,explicit:c}=t,p=`${r}_enabled`,l=n.rollup_output||{},d=Object.keys(l);let f=s||{};const u=n[r]?.options;u&&(f=e(f,u));const m=!n[r]||!1===n[r]?.enabled;d.forEach((e=>{const t=n.rollup_output[e];if(t){if(Reflect.has(t,r)){if(m||!t[r]||!1===t[r]?.enabled)return void delete t[r];!0===t[r]&&(t[r]={enabled:!0,options:f})}else{if(m||c||!1===n[p])return;t[r]={enabled:!0}}t[r]=t[r]||{},t[r].options={...f,...t[r].options}}}));let h=d.some((e=>!0===n.rollup_output[e][r]?.enabled));a&&(h=a()&&h),n[p]=h,h&&i.forEach((e=>o.push({package:e[0],version:e[1]})))},re}function Wt(){if(Ne)return Oe;Ne=1;const e=j,t=f,n=u,o=_,r=function(){if(ae)return se;ae=1;const e=zt();return se=t=>{const{atom:n,packageDevDependencies:o}=t,r=n.doc.features;e({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:r,packageDevDependencies:o})},se}(),i=function(){if(pe)return ce;pe=1;const e=zt();return ce=t=>{const{atom:n,packageDevDependencies:o}=t,r=n.doc.features;e({feature:{name:"gzip",packages:[["rollup-plugin-gzip","^4"]],explicit:!0},features:r,packageDevDependencies:o})},ce}(),s=function(){if(de)return le;de=1;const e=zt();return le=t=>{const{atom:n,packageDevDependencies:o}=t,r=n.doc.features;e({feature:{name:"nunjucks",packages:[["@fnet/rollup-plugin-nunjucks","0.1.8"]]},features:r,packageDevDependencies:o})},le}(),a=function(){if(ue)return fe;ue=1;const e=zt();return fe=t=>{const{atom:n,packageDevDependencies:o}=t,r=n.doc.features;e({feature:{name:"polyfill",packages:[["rollup-plugin-node-polyfills","^0.2"]]},features:r,packageDevDependencies:o})},fe}(),c=function(){if(he)return me;he=1;const e=zt();return me=t=>{const{atom:n,packageDevDependencies:o}=t,r=n.doc.features;e({feature:{name:"visualizer",packages:[["rollup-plugin-visualizer","^5"]],expilicit:!0},features:r,packageDevDependencies:o})},me}(),p=function(){if(ge)return ye;ge=1;const e=zt();return ye=t=>{const{atom:n,packageDevDependencies:o}=t,r=n.doc.features;e({feature:{name:"analyzer",packages:[["rollup-plugin-analyzer","^3"]],options:{summaryOnly:!0,limit:12},explicit:!0},features:r,packageDevDependencies:o})},ye}(),l=function(){if(be)return we;be=1;const e=zt();return we=t=>{const{atom:n,packageDevDependencies:o}=t,r=n.doc.features;e({feature:{name:"string",packages:[["rollup-plugin-string","^3"]]},features:r,packageDevDependencies:o})},we}(),d=function(){if(ve)return xe;ve=1;const e=zt();return xe=t=>{const{atom:n,packageDevDependencies:o}=t,r=n.doc.features;e({feature:{name:"image",packages:[["@rollup/plugin-image","^3"]]},features:r,packageDevDependencies:o})},xe}(),m=function(){if(je)return ke;je=1;const e=zt();return ke=t=>{const{atom:n,packageDevDependencies:o}=t,r=n.doc.features;e({feature:{name:"json",packages:[["@rollup/plugin-json","^6"]]},features:r,packageDevDependencies:o})},ke}(),h=function(){if(De)return _e;De=1;const e=zt();return _e=t=>{const{atom:n,packageDevDependencies:o}=t,r=n.doc.features;e({feature:{name:"terser",packages:[["@rollup/plugin-terser","^0.4"]]},features:r,packageDevDependencies:o})},_e}(),y=function(){if(Ee)return Pe;Ee=1;const e=zt();return Pe=t=>{const{atom:n,packageDevDependencies:o}=t,r=n.doc.features;e({feature:{name:"wasm",packages:[["@rollup/plugin-wasm","^6"]]},features:r,packageDevDependencies:o})},Pe}(),g=function(){if(Ae)return Se;Ae=1;const e=zt();return Se=t=>{const{atom:n,packageDevDependencies:o}=t,r=n.doc.features,i={};!0===r.app?.enabled&&(i.targets=i.targets||[],i.targets.push({src:"./src/app/index.html",dest:r.app.dir}),Reflect.has(r.app,"copy")||Reflect.has(r,"copy")||(r.copy=!0)),e({feature:{name:"copy",packages:[["rollup-plugin-copy","^3"],["chokidar","^3"]],options:i},features:r,packageDevDependencies:o})},Se}(),w=function(){if(Te)return $e;Te=1;const e=zt();return $e=t=>{const{atom:n,packageDevDependencies:o}=t,r=n.doc.features,i=r.css&&!1!==r.css.enabled;let s=[];i&&(s.push(["rollup-plugin-postcss","^4"]),s.push(["sass","^1.66"]),(r.css?.options?.plugins||[]).forEach((e=>{switch(e.name){case"postcss-import":s.push(["postcss-import","^15"]);break;case"postcss-url":s.push(["postcss-url","^10"]);break;case"postcss-preset-env":s.push(["postcss-preset-env","^9"]);break;case"autoprefixer":s.push(["autoprefixer","^10"]);break;case"cssnano":s.push(["cssnano","^6"])}}))),e({feature:{name:"css",packages:s},features:r,packageDevDependencies:o})},$e}();function b({dir:e,name:o="index"}){let r=n.resolve(e,`./${o}.tsx`);if(t.existsSync(r)||(r=n.resolve(e,`./${o}.ts`)),t.existsSync(r)||(r=n.resolve(e,`./${o}.jsx`)),t.existsSync(r)||(r=n.resolve(e,`./${o}.js`)),!t.existsSync(r))return{};const i=r,s=n.extname(r);return{file:i,ext:s,ts:".ts"===s||".tsx"===s,name:o}}return Oe=async t=>{const{atom:f,context:u,setProgress:x}=t;x("Initializing features..."),f.doc.features=f.doc.features||{};const v=f.doc.features;v.project=v.project||{},v.project.format=v.project.format||v.project_format||"esm",v.project_format=v.project.format,v.dts_enabled=!0===v.dts||void 0!==v.dts&&!1!==v.dts;const k=n.resolve(u.project.projectDir),j=b({dir:n.resolve(k,"./app")});if(j.file){x("Parsing app entry imports...");let e=await o({file:j.file,recursive:!0}),t=e.all.some((e=>!0===e.usesJSX&&"local"===e.type));v.app_uses_jsx=t,v.app_has_entry=!0,e=await o({file:j.file}),t=e.all.some((e=>!0===e.usesJSX&&"local"===e.type)),v.app_entry_uses_jsx=t,v.app_entry_is_ts=j.ts,v.app_entry_ext=j.ext}const _=b({dir:n.resolve(k,"./cli")});if(_.file){x("Parsing cli entry imports...");let e=await o({file:_.file,recursive:!0}),t=e.all.some((e=>!0===e.usesJSX&&"local"===e.type));v.cli_uses_jsx=t,v.cli_has_entry=!0,e=await o({file:_.file}),t=e.all.some((e=>!0===e.usesJSX&&"local"===e.type)),v.cli_entry_uses_jsx=t,v.cli_entry_is_ts=_.ts,v.cli_entry_ext=_.ext}if("workflow.lib"===f.type){const e=b({dir:n.resolve(k,"./src")});if(e.file){x("Parsing src entry imports...");let t=await o({file:e.file,recursive:!0}),n=t.all.some((e=>!0===e.usesJSX&&"local"===e.type));v.src_uses_jsx=n,v.src_has_entry=!0,t=await o({file:e.file}),n=t.all.some((e=>!0===e.usesJSX&&"local"===e.type)),v.src_entry_uses_jsx=n,v.src_entry_is_ts=e.ts,v.src_entry_ext=e.ext}}const D=Reflect.has(v,"app_entry_uses_jsx")?!0===v.app_entry_uses_jsx:!0===v.src_entry_uses_jsx,P=Reflect.has(v,"cli_entry_uses_jsx")?!0===v.cli_entry_uses_jsx:!0===v.src_entry_uses_jsx;v.form_enabled=D||P||!0===v.form||!0===v.form?.enabled,v.multiple_enabled=v.multiple_enabled||!0===v.multiple||!0===v.multiple?.enabled,!1===v.app?v.app={enabled:!1}:!0===v.app?v.app={enabled:!0,extend:!0===v.app_has_entry,export:!0,react:D}:v.app={enabled:!0,extend:!0===v.app_has_entry,export:!0,react:D,...v.app||{}},v.app.enabled=!0===v.app.enabled&&(!0===f.doc.features.form_enabled||!0===v.app.extend||!0===v.app.enabled),v.app.format=v.app.format||"esm",v.app.folder=v.app.folder||v.app.format||"default",!1===v.cli?v.cli={enabled:!1}:!0===v.cli?v.cli={enabled:!0,extend:!0===v.cli_has_entry,export:!0,react:P}:v.cli={enabled:!0,extend:!0===v.cli_has_entry,export:!0,react:P,...v.cli||{}},v.cli.enabled=!0===v.cli.enabled&&(!1===f.doc.features.form_enabled||!0===v.cli.extend||!0===v.cli.enabled),v.cli.format=v.cli.format||"esm",v.cli.folder=v.cli.folder||v.cli.folder||"esm",v.cli.node_options=v.cli.node?.options||v.cli.node_options||"",v.json=v.cli.enabled||v.json;const E={cjs:{format:"cjs",context:v.form_enabled?"window":"global",babel:!0===v.src_uses_jsx||!1,browser:!1,replace:!0,terser:!0,enabled:!1!==v.cjs,copy:!1},esm:{format:"esm",context:v.form_enabled?"window":"global",babel:!0===v.src_uses_jsx||!1,browser:!1,replace:!0,browsersync:!0,terser:!1,enabled:!1!==v.esm,copy:!0},iife:{format:"iife",context:v.form_enabled?"window":"global",babel:!0,browser:!0,replace:!0,enabled:!0===v.iife,terser:!0,copy:!1}};!0===v.webos&&(E.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"}}}),!0===v.electron&&(E.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"}),!0===v.nextjs&&(E.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"}),!0===v.ios&&(E.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"}),!0===v.macos&&(E.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"}),!0===v.app.enabled&&(v.app.dir=`./dist/app/${v.app.folder}`,E.app={format:v.app.format,browser:!0,babel:!0,context:"window",replace:!0,input:"./src/app/index.js",output_dir:v.app.dir,terser:!0,output_exports:!1===v.app.export?"none":"auto"}),!0===v.cli.enabled&&(v.cli.dir=`./dist/cli/${v.cli.folder}`,E.cli={format:v.cli.format,context:"global",babel:!0===v.src_uses_jsx||!0===v.cli_uses_jsx||!1,browser:!1,replace:!0,enabled:!0,input:"./src/cli/index.js",output_dir:v.cli.dir,banner:"#!/usr/bin/env node",terser:!0,output_exports:!1===v.cli.export?"none":"auto"});const S={server:".",startPath:`${n.normalize(v.app.dir||".")}`,files:[n.normalize("./dist/**/*")],cors:!0,open:!1};v.babel_options=e({targets:{browsers:"last 9 versions, not dead",node:"18"}},v.babel_options||v.babel?.options),v.browsersync_options=e(S,v.browsersync_options||v.browsersync?.options||{}),v.replace_options=e({},v.replace_options||v.replace?.options||{}),Reflect.has(v.browsersync_options,"proxy")&&delete v.browsersync_options.server,v.rollup=v.rollup||{},v.rollup_output=e(E,v.rollup_output||v.rollup?.output||{}),v.preact_enabled=!0===v.preact||v.preact&&!1!==v.preact?.enabled;let A=Object.keys(E);for(const t of A){const n=E[t];n&&(!1!==v.rollup[t]?(n.babel_options=n.babel_options||v.babel_options,n.browsersync_options=e(v.browsersync_options,n.browsersync_options),n.replace_options=e(v.replace_options,n.replace_options),v.preact_enabled&&(n.alias_enabled=!0,n.alias=n.alias||{},n.alias.entries=n.alias.entries||{},n.alias.entries.react="preact/compat",n.alias.entries["react-dom"]="preact/compat"),(v.form_enabled||v.babel)&&(n.babel=!0)):delete v.rollup_output[t])}A=Object.keys(v.rollup_output),v.babel_enabled=A.some((e=>!0===v.rollup_output[e].babel)),v.browser_enabled=A.some((e=>!0===v.rollup_output[e].babel)),v.browsersync_enabled=!1!==v.browsersync&&A.some((e=>!0===v.rollup_output[e].browsersync)),v.browsersync_enabled=v.browsersync_enabled&&v.app.enabled,v.dependency_auto_enabled=!1!==v.dependency_auto&&!1!==v.dependency_auto?.enabled,v.npm_install_flags=v.npm_install_flags||"",v.react_version=v.react_version||v.react?.version||18,w(t),g(t),y(t),h(t),m(t),l(t),d(t),p(t),c(t),a(t),s(t),r(t),i(t)},Oe}function Gt(){if(Ce)return Ie;Ce=1;const e=D;return Ie=async({atom:t,packageDependencies:n,packageDevDependencies:o,setProgress:r})=>{r("Initializing dependencies");const i=t.doc.dependencies||[];if(i.filter((e=>!e.dev)).forEach((e=>n.push(e))),i.filter((e=>e.dev)).forEach((e=>o.push(e))),"workflow"===t.type&&(n.push({package:"get-value",version:"^3"}),n.push({package:"set-value",version:"^4"})),t.doc.features.form_enabled&&t.doc.features.dependency_auto_enabled){let o="^18.2";r("Fetching React versions");o=`^${(await e({name:"react",groupBy:{major:!0}})).find((e=>e[0]===t.doc.features.react_version.toString()))[0]}`,n.push({package:"react",version:o}),n.push({package:"react-dom",version:o}),"workflow"===t.type&&(n.push({package:"@flownet/react-app",version:"^0.1"}),n.push({package:"@flownet/react-app-state",version:"^0.1"}))}t.doc.features.preact_enabled&&n.push({package:"preact",version:"^10"}),!0===t.doc.features.cli.enabled&&(n.push({package:"@fnet/args",version:"^0.1"}),o.push({package:"ajv",version:"^8"}),t.doc.features.cli.fargs&&!1!==t.doc.features.cli.fargs?.enabled&&n.push({package:"@fnet/config",version:"0.2.21"})),t.doc.features.render&&!1!==t.doc.features.render.enabled&&o.push({package:"@flownet/lib-render-templates-dir",version:"0.1.19"}),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"}),t.doc.features.dts_enabled&&o.push({package:"rollup-plugin-dts",version:"^6"}),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"}),t.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"}),t.doc.features.babel?.options?.plugins?.forEach((e=>{switch(e[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"})}}))),o.push({package:"@fnet/rollup-plugin-delete",version:"0.1.10"}),t.doc.features.browsersync_enabled&&o.push({package:"@fnet/rollup-plugin-browsersync",version:"0.1.11"})},Ie}function Xt(){if(Re)return Fe;Re=1;const e=f,t=u,n=d;return Fe=async({atom:o,setProgress:r,context:i,packageDependencies:s})=>{if(!0!==o.doc.features.app.enabled)return;await r({message:"Creating app folder"});const a={atom:o,packageDependencies:s,ts:Date.now()},c=i.templateDir,p=t.resolve(i.projectDir,"src/app");e.existsSync(p)||e.mkdirSync(p,{recursive:!0});let l=["index.js.njk"];!1!==o.doc.features.app.html&&l.push("index.html.njk"),await n({pattern:l,dir:t.resolve(c,"src/app"),outDir:p,context:a})},Fe}function Vt(){if(qe)return Me;qe=1;const e=P,t=E,n=f,o=u;return Me=async({projectDir:r,name:i,setProgress:s,count:a=1})=>{let c;const p=t(["npm-pick-versions",i,a]),l=o.join(r,".cache"),d=o.join(l,p+".json");return n.existsSync(d)?(s&&s(`Picking npm version of ${i} from cache ...`),c=JSON.parse(n.readFileSync(d,"utf8"))):(s&&s(`Picking npm version of ${i} ...`),c=await e({name:i,count:a}),n.mkdirSync(l,{recursive:!0}),n.writeFileSync(d,JSON.stringify(c),"utf8")),c},Me}function Ht(){if(Ke)return Be;Ke=1;const e=m,t=f,n=u,o=_,r=Vt();return Be=async({atom:i,context:s,packageDependencies:a,packageDevDependencies:c,setProgress:p})=>{await p({message:"Creating package.json."});a.filter((e=>!0===e.dev)).forEach((e=>{c.find((t=>t.package===e.package))||c.push(e);const t=a.findIndex((t=>t.package===e.package));a.splice(t,1)}));const l=a.find((e=>"react"===e.package)),d=a.find((e=>"react-dom"===e.package));l&&!d?a.push({package:"react-dom",version:l.version}):l&&d&&(d.version=l.version),l&&i.doc.features.react_version>=17&&(a.find((e=>"@emotion/react"===e.package))||a.push({package:"@emotion/react",version:"^11"}),a.find((e=>"@emotion/styled"===e.package))||a.push({package:"@emotion/styled",version:"^11"}));const f=[];!0===i.doc.features.app.enabled&&f.push({file:n.resolve(s.projectDir,"src/app/index.js"),dev:!1!==i.doc.features.app.dev}),!0===i.doc.features.cli.enabled&&f.push({file:n.resolve(s.projectDir,"src/cli/index.js"),dev:!1!==i.doc.features.cli.dev});for await(const e of f){const n=e.file;if(!t.existsSync(n))throw new Error(`App file not found: ${n}`);const i=(await o({file:n,recursive:!0})).all;for await(const t of i){if("npm"!==t.type)continue;if(a.find((e=>e.package===t.package)))continue;if(c.find((e=>e.package===t.package)))continue;const n=await r({name:t.package,projectDir:s.projectDir,setProgress:p});(!0===e.dev?c:a).push({package:t.package,subpath:t.subpath,version:n.minorRange,type:"npm"})}}const u={atom:i,packageDependencies:a,packageDevDependencies:c},m=s.templateCommonDir,h=e.compile(t.readFileSync(n.resolve(m,"package.json.njk"),"utf8"),e.configure(m)).render(u),y=s.projectDir,g=n.resolve(y,"package.json");t.writeFileSync(g,h,"utf8");const w=n.resolve(s.project.projectDir,"fnet");if(t.existsSync(w)){const e=n.resolve(s.projectDir,"fnet");t.existsSync(e)||t.mkdirSync(e);const o=t.readdirSync(w);for(const r of o){const o=n.resolve(w,r);if(!t.lstatSync(o).isFile())continue;const i=n.resolve(e,r);t.copyFileSync(o,i)}}},Be}function Yt(){if(Ue)return Le;Ue=1;const e=f,t=u,n=d;return Le=async({atom:o,setProgress:r,context:i,packageDependencies:s})=>{if(!0!==o.doc.features.cli.enabled)return;await r({message:"Creating cli."});const a={atom:o,packageDependencies:s},c=i.templateDir,p=t.resolve(i.projectDir,"src/cli");e.existsSync(p)||e.mkdirSync(p,{recursive:!0}),await n({pattern:["index.js.njk"],dir:t.resolve(c,"src/cli"),outDir:p,context:a})},Le}function Zt(){if(ze)return Je;ze=1;const e=f,t=u,n=m,o=_;return Je=async({atom:r,setProgress:i,context:s,packageDependencies:a})=>{await i({message:"Creating rollup file."});const c={atom:r,packageDependencies:a},p=t.resolve(s.projectDir,"src","default/index.js");if(!e.existsSync(p))throw new Error(`Entry file not found: ${p}`);const l=(await o({file:p,recursive:!0})).all.filter((e=>"node"===e.type)).map((e=>e.path)),d=r.doc.features.rollup_output,f=Object.keys(d);for(let e=0;e<f.length;e++){const t=d[f[e]];if(!0===t.browser&&l.length>0){t.globals_enabled=!0,t.globals=t.globals||[],t.globals=t.globals.concat(l.map((e=>({key:e,value:e})))),t.alias_enabled=!0,t.alias=t.alias||{},t.alias.entries=t.alias.entries||{};for(let e=0;e<l.length;e++){const n=l[e];t.alias.entries[n]=`node:${n}`,t.alias.entries[`node:${n}`]=n}t.external_enabled=!0,t.external=t.external||[],t.external=t.external.concat(l)}}const u=s.templateCommonDir;let m=n.compile(e.readFileSync(t.resolve(u,"rollup.config.mjs.njk"),"utf8"),n.configure(u)).render(c);const h=s.projectDir;let y=t.resolve(h,"rollup.config.mjs");e.writeFileSync(y,m,"utf8")},Je}function Qt(){if(Ge)return We;Ge=1;const e=f,t=u,n=m,o=S,r=A,i=$;return We=async({atom:s,setProgress:a,context:c,njEnv:p})=>{if(!0!==s.doc.features.cli.enabled)return;await a({message:"Creating yargs."});let l={};if(l=s.doc.input?s.doc.input:{type:"object",properties:{},required:[]},s.doc.features.cli.fargs&&!1!==s.doc.features.cli.fargs?.enabled){const e=s.doc.features.cli.fargs,t={type:"string",description:"Config name to load args",hidden:!1},n={type:"array",description:"Tags to filter the config",hidden:!1};Reflect.has(e,"default")&&(t.default=e.default),l.properties&&(l.properties.fargs=t,l.properties.ftag=n)}const d={options:l,imports:[],atom:s},f=c.templateDir,u=n.compile(e.readFileSync(t.resolve(f,"src/default/to.args.js.njk"),"utf8"),p).render(d),m=c.projectDir,h=t.resolve(m,"src/default/to.args.js");e.writeFileSync(h,u,"utf8");const y=new o({allErrors:!0,useDefaults:!0,formats:{},strict:!1,code:{esm:!0,lines:!0,optimize:!1,source:!0}});i(y);const g=y.compile(l),w=r(y,g);e.writeFileSync(t.resolve(m,"src/default/validate_input.js"),w,"utf8")},We}function en(){if(Ve)return Xe;Ve=1;const e=f,t=u,n=m;return Xe=async({atom:o,setProgress:r,context:i,packageDependencies:s})=>{await r({message:"Creating .gitignore"});const a={atom:o,packageDependencies:s},c=i.templateCommonDir,p=n.compile(e.readFileSync(t.resolve(c,".gitignore.njk"),"utf8"),n.configure(c)).render(a),l=i.projectDir,d=t.resolve(l,".gitignore");e.writeFileSync(d,p,"utf8")},Xe}function tn(){if(Ye)return He;Ye=1;const e=f,t=u,n=m;return He=async({atom:o,setProgress:r,context:i,packageDependencies:s})=>{await r({message:"Creating tsconfig.json."});const a={atom:o,packageDependencies:s},c=i.templateCommonDir,p=n.compile(e.readFileSync(t.resolve(c,"tsconfig.json.njk"),"utf8"),n.configure(c)).render(a),l=i.projectDir,d=t.resolve(l,"tsconfig.json");e.writeFileSync(d,p,"utf8")},He}function nn(){if(Qe)return Ze;Qe=1;const e=m,t=f,n=u,o=c;return Ze=async({atom:r,context:i,setProgress:s,Atom:a})=>{const c="readme.md",p=`Creating ${c}`;if(await s({message:p}),i.project?.readme){const r=i.projectDir,s={content:i.project.readme.doc.content},a=n.resolve(i.project.projectDir,"fnet/how-to.md");if(t.existsSync(a)){const e=t.readFileSync(a,"utf8");s.howto=e}const p=n.resolve(i.project.projectDir,"fnet/input.yaml");if(t.existsSync(p)){const e=await o({file:p,tags:i.tags});s.input=e.content}const l=i.templateCommonDir,d=e.compile(t.readFileSync(n.resolve(l,`${c}.njk`),"utf8"),e.configure(l)).render(s),f=n.resolve(r,`${c}`);t.writeFileSync(f,d,"utf8")}else if(r.id){const o=await a.first({type:"wiki",parent_id:r.id});if(!o||"markdown"!==o.doc?.["content-type"])return;const{content:s,...p}=o.doc,l={content:s},d=i.templateCommonDir,f=e.compile(t.readFileSync(n.resolve(d,`${c}.njk`),"utf8"),e.configure(d)).render(l),u=i.projectDir,m=n.resolve(u,`${c}`);t.writeFileSync(m,f,"utf8")}},Ze}function on(){if(tt)return et;tt=1;const e=o,t=l;return et=async({setProgress:n,context:o})=>{const r=o.projectDir;await n({message:"Prettifiying source files."});let i=e.join("src","**","*");await t({commands:{steps:[`prettier --write ${i} *.{js,cjs,mjs,json,yaml,html} --no-error-on-unmatched-pattern`],wdir:r}})}}function rn(){if(ot)return nt;ot=1;const e=a;return nt=async({atom:t,setProgress:n,context:o})=>{if(!t.doc.features.dts_enabled)return;const r=o.projectDir;await n({message:"Creating .d.ts"});if(0!==e.exec("tsc",{cwd:r}).code)throw new Error("Couldnt create .d.ts files.")},nt}function sn(){if(it)return rt;it=1;const e=a;return rt=async({setProgress:t,atom:n,context:o})=>{const r=o.projectDir;await t({message:"Installing npm packages."});if(0!==e.exec(`npm install ${n.doc.features.npm_install_flags}`,{cwd:r}).code)throw new Error("Couldnt install npm packages.")},rt}function an(){if(at)return st;at=1;const e=a;return st=async({setProgress:t,context:n})=>{const o=n.projectDir;await t({message:"Building main project."});if(0!==e.exec("npm run build",{cwd:o}).code)throw new Error("Couldnt build project.")}}function cn(){if(Ut)return Lt;Ut=1;const e=function(){if(pt)return ct;pt=1;const e=T,t=n;return ct=async({setProgress:n,context:o,deploymentProject:r,deploymentProjectTarget:i,buildId:s})=>{await n({message:"Deploying it as gitlab project."});const a=o.projectDir;let c="fnet-to-gitlab";const p=i.params.config||"gitlab",l=await t({name:p,dir:o.projectDir,tags:o.tags});if(!l)throw new Error(`Couldnt load config ${p}`);const{data:d}=l.data;c+=` --projectGroupId=${d.projectGroupId}`,c+=` --projectPath='${a}'`,c+=` --projectName='${i.params.name}'`,c+=` --projectBranch='${i.params.branch||"main"}'`,c+=` --gitlabHost='${d.gitlabHost}'`,c+=` --gitlabToken='${d.gitlabToken}'`,c+=` --gitlabUsername='${d.gitlabUsername}'`,c+=` --gitlabUserEmail='${d.gitlabUserEmail}'`,!0!==i.dryRun&&(await e({cmd:c}),r.isDirty=!0)}}(),t=function(){if(dt)return lt;dt=1;const e=f,t=u,o=O,r=T,i=n;return lt=async({setProgress:n,context:s,deploymentProject:a,deploymentProjectTarget:c,registerToPackageManager:p,yamlTarget:l})=>{await n({message:"Deploying it as gcs package."});const d=s.projectDir,f=t.resolve(d,"package.json"),u=e.readFileSync(f),m=JSON.parse(u);m.name=c.params.name,m.version=o.inc(c.version,"patch"),delete m.scripts,delete m.devDependencies,e.writeFileSync(f,JSON.stringify(m,null,"\t"));const{file:h,data:y}=await i({name:c.config||"gcs",dir:s.projectDir,tags:s.tags});let g="fnet-files-to-gcs";g+=` --projectId='${y.env.GCS_PROJECT_ID}'`,g+=` --bucketName='${y.env.GCS_BUCKET_NAME}'`,g+=` --keyFilename='${t.resolve(t.dirname(h),y.env.GCS_UPLOADER_KEY_FILE)}'`,g+=` --dir='${d}'`,g+=" --pattern={'dist/**/**','bin/**/**','test/**/**','*.html'}",g+=` --destDir='${m.name}/${m.version}'`,g+=" --metadata.cacheControl='public, max-age=31536000, immutable'",y.env.DOMAIN&&(g+=` --domain='${y.env.DOMAIN}'`),!0!==c.dry_run&&!0!==c.params.dry_run||(g+=" --dryRun"),await r({cmd:g}),e.writeFileSync(f,u),!0!==c.dryRun&&(a.isDirty=!0,c.version=m.version,l.set("version",m.version),await p({target:c,packageJSON:m}))}}(),r=function(){if(ut)return ft;ut=1;const e=f,t=u,o=O,r=a,i=n,c=N,l=p,d=s;return ft=async({atom:n,setProgress:s,context:a,deploymentProject:p,deploymentProjectTarget:f,yamlTarget:u})=>{await s({message:"Deploying it as npm package."});const m=a.projectDir,h=t.resolve(m,"package.json"),y=e.readFileSync(h),g=JSON.parse(y);g.name=f.params.name,g.version=o.inc(f.version,"patch");const w=f.params.bin?.name||f.params.bin;!1!==f.params.bin?.enabled&&w&&"string"==typeof w&&(g.bin={[w]:"dist/cli/esm/index.js"}),delete g.scripts,delete g.devDependencies,g.scripts={serve:"npx serve ."},e.writeFileSync(h,JSON.stringify(g,null,"\t"));const b=f.config||"npm";let x=(await i({name:b,dir:a.projectDir,tags:a.tags,optional:!0}))?.data;if(!x){const n=c({dir:__dirname,pattern:"@fnet/cli-project-schemas/dist/schemas/to-npm.yaml",absolute:!0});if(0===n.length)throw new Error("Couldnt find schema to create npm config");const o=await l({schema:n[0],tags:a.tags}),r=a.project.projectDir,i=t.resolve(r,".fnet");e.existsSync(i)||e.mkdirSync(i),e.writeFileSync(t.resolve(i,`${b}.fnet`),d.stringify(o)),x=o}if(e.writeFileSync(t.resolve(m,".npmrc"),`//registry.npmjs.org/:_authToken=${x.env.NPM_TOKEN}`),!0!==f.dryRun){if(0!==r.exec("npm publish --access public",{cwd:m}).code)throw new Error("Couldnt publish to npm");e.writeFileSync(h,y),p.isDirty=!0,f.version=g.version,u.set("version",g.version)}}}(),c=function(){if(ht)return mt;ht=1;const e=f,t=u,o=I,r=m,i=C,s=n;return mt=async({atom:n,setProgress:a,context:c,deploymentProject:p,deploymentProjectTarget:l,buildId:d,packageDependencies:f,njEnv:u})=>{await a({message:"Deploying it as node-red flow."});const m=c.projectDir,h=c.templateDir,y="workflow"===n.type?"WF":"LIB";let g;if("simple"===l.deploy.template)g={atom:n,packageDependencies:f,red:{tab:{id:l.deploy.id||i.util.generateId(),label:`${y}/${n.id?n.id:o.hostname()}/${n.name}/${l.deploy.name||l.deploy.template}`},function:{id:i.util.generateId(),name:n.doc.name,initialize:{content:e.readFileSync(t.resolve(m,"dist/default/iife/index.js"),{encoding:"utf8",flag:"r"}),var:n.doc.bundleName}},inject:{id:i.util.generateId(),...l.params?.inject,payload:"json"===l.params?.inject?.payloadType?`'${JSON.stringify(l.params?.inject?.payload)}'`:l.params?.inject?.payload},debug:{id:i.util.generateId()}}};else if("cronjob"===l.deploy.template){let r=l.params?.schedules?cloneDeep(l.params?.schedules):void 0;r?.forEach((e=>{"json"===e.payloadType&&(e.payload=`'${JSON.stringify(e.payload)}'`)})),g={atom:n,packageDependencies:f,red:{tab:{id:l.deploy.id||i.util.generateId(),label:`${y}/${n.id?n.id:o.hostname()}/${l.deploy.name||l.deploy.template}`},function:{id:i.util.generateId(),name:n.doc.name,initialize:{content:e.readFileSync(t.resolve(m,"dist/default/iife/index.js"),{encoding:"utf8",flag:"r"}),var:n.doc.bundleName}},cronjob:{id:i.util.generateId(),schedules:r},debug:{id:i.util.generateId()}}}}else{if("http"!==l.deploy.template)return;g={atom:n,packageDependencies:f,red:{tab:{id:l.deploy.id||i.util.generateId(),label:`${y}/${n.id?n.id:o.hostname()}/${l.deploy.name||l.deploy.template}`},function:{id:i.util.generateId(),name:n.doc.name,initialize:{content:e.readFileSync(t.resolve(m,"dist/default/iife/index.js"),{encoding:"utf8",flag:"r"}),var:n.doc.bundleName}},httpin:{id:i.util.generateId(),method:l.params.method||"get",url:l.params.url},httpout:{id:i.util.generateId()},debug:{id:i.util.generateId()}}}}let w=r.compile(e.readFileSync(t.resolve(h,`deploy/node-red/${l.deploy.template}.yaml.njk`),"utf8"),u).render(g);if(e.writeFileSync(t.resolve(m,"node-red.yaml"),w),w=yaml.load(w),!0===l.dryRun)return;p.isDirty=!0;const b=(await s({name:c.redConfig||"red",dir:c.projectDir,tags:c.tags}))?.data,x=l.deploy.url||b.env.RED_URL,v={};if(!1!==l.deploy.auth&&(v.Authorization="Bearer "+atomAccessToken),l.deploy.id)!0===l.actions?.delete?(await axios({method:"DELETE",url:`${x}/flow/${l.deploy.id}`,headers:v}),delete l.actions.delete,delete l.deploy.id,l.enabled=!1):await axios({method:"PUT",url:`${x}/flow/${l.deploy.id}`,data:w,headers:v});else{const e=await axios({method:"POST",url:`${x}/flow`,data:w,headers:v});l.deploy.id=e.data.id}},mt}(),l=function(){if(gt)return yt;gt=1;const e=i,t=o,r=n;return yt=async({atom:n,Atom:o,setProgress:i,context:s,packageDependencies:a,deploymentProject:c,deploymentProjectTarget:p})=>{await i({message:"Deploying it as workflow lib."});const l=(await r({name:"atom",dir:s.projectDir,tags:s.tags}))?.data;let d,f,u,m=p.deploy.name.split("/");if(1===m.length)f=l.env.ATOM_LIBRARIES_ID,u=p.deploy.name;else{if(2!==m.length)throw new Error("Wrong name path.");{const e=await o.first({where:{name:m[0],parent_id:l.env.ATOM_LIBRARIES_ID,type:"folder"},limit:1});if(!e)throw new Error("Couldnt file lib folder.");f=e.id,u=m[1]}}if(!0===p.dryRun)return;if(c.isDirty=!0,p.deploy.id){if(d=await o.get({id:p.deploy.id}),!d)return}else{if(d=await o.create({parent_id:f,doc:{name:u,type:"workflow.lib","content-type":"javascript",dependencies:[],content:void 0,subtype:"workflow"}}),!d)return;p.deploy.id=d.id}const h=s.projectDir;d.doc.contents=[{content:e.readFileSync(t.resolve(h,"dist/default/esm/index.js"),{encoding:"utf8",flag:"r"}),"content-type":"javascript",format:"esm"},{content:e.readFileSync(t.resolve(h,"dist/default/cjs/index.js"),{encoding:"utf8",flag:"r"}),"content-type":"javascript",format:"cjs"},{content:e.readFileSync(t.resolve(h,"dist/default/iife/index.js"),{encoding:"utf8",flag:"r"}),"content-type":"javascript",format:"iife"}],d.doc.name=u,d.doc.dependencies=a,"workflow.lib"===n.type?d.doc.subtype="library":"workflow"===n.type&&(d.doc.subtype="workflow"),d=await o.update(d,{id:d.id})},yt}(),d=function(){if(bt)return wt;bt=1;const e=n,t=F,o=h,r=O;return wt=async({atom:n,target:i,onProgress:s,projectDir:a,dependencies:c,context:p,yamlTarget:l})=>{s&&await s({message:"Deploying it as ios-app package."});const d=i?.config?await e({name:i.config,dir:a,optional:!0,transferEnv:!1,tags:p.tags}):void 0,f=r.inc(i.version||"0.1.0","patch");i.params.version=f,i.version=f,l.set("version",f);const u=o(i.params);u.dependencies=o(c);const m={atom:n,params:u,config:d?.config,src:a,dest:a};return{deployer:await t(m)}},wt}(),y=function(){if(vt)return xt;vt=1;const e=n,t=R,o=h,r=O;return xt=async({atom:n,target:i,onProgress:s,projectDir:a,dependencies:c,context:p,yamlTarget:l})=>{s&&await s({message:"Deploying it as macos-app package."});const d=i?.config?await e({name:i.config,dir:a,optional:!0,transferEnv:!1,tags:p.tags}):void 0,f=r.inc(i.version||"0.1.0","patch");i.params.version=f,i.version=f,l.set("version",f);const u=o(i.params);u.dependencies=o(c);const m={atom:n,params:u,config:d?.config,src:a,dest:a};return{deployer:await t(m)}},xt}(),g=function(){if(jt)return kt;jt=1;const e=n,t=M,o=h,r=O;return kt=async({atom:n,target:i,onProgress:s,projectDir:a,dependencies:c,context:p,yamlTarget:l})=>{s&&await s({message:"Deploying it as electron package."});const d=i?.config?await e({name:i.config,dir:a,optional:!0,transferEnv:!1,tags:p.tags}):void 0,f=r.inc(i.version||"0.1.0","patch");i.params.version=f,i.version=f,l.set("version",f);const u=o(i.params);u.dependencies=o(c);const m={atom:n,params:u,config:d?.config,src:a,dest:a};return{deployer:await t(m)}},kt}(),w=function(){if(Dt)return _t;Dt=1;const e=n,t=q,o=h,r=O;return _t=async({atom:n,target:i,onProgress:s,projectDir:a,dependencies:c,context:p,yamlTarget:l})=>{s&&await s({message:"Deploying it as webos package."});const d=i?.config?await e({name:i.config,dir:a,optional:!0,transferEnv:!1,tags:p.tags}):void 0,f=r.inc(i.version||"0.1.0","patch");i.params.version=f,i.version=f,l.set("version",f);const u=o(i.params);u.dependencies=o(c);const m={atom:n,params:u,config:d?.config,src:a,dest:a};return{deployer:await t(m)}},_t}(),b=function(){if(Et)return Pt;Et=1;const e=n,t=B,o=h,r=O;return Pt=async({atom:n,target:i,onProgress:s,projectDir:a,dependencies:c,context:p,yamlTarget:l})=>{s&&await s({message:"Deploying it as nextjs package."});const d=i?.config?await e({name:i.config,dir:a,optional:!0,transferEnv:!1,tags:p.tags}):void 0,f=r.inc(i.version||"0.1.0","patch");i.params.version=f,i.version=f,l.set("version",f);const u=o(i.params);u.dependencies=o(c);const m={atom:n,params:u,config:d?.config,src:a,dest:a};return{deployer:await t(m)}},Pt}(),x=function(){if(At)return St;At=1;const e=n,t=K,o=h,r=O;return St=async({atom:n,target:i,onProgress:s,projectDir:a,dependencies:c,context:p,yamlTarget:l})=>{s&&await s({message:"Deploying it as docker package."});const d=i?.config?await e({name:i.config,dir:a,optional:!0,transferEnv:!1,tags:p.tags}):void 0,f=r.inc(i.version||"0.1.0","patch");i.params.version=f,i.version=f,l.set("version",f);const u=o(i.params);u.dependencies=o(c);const m={atom:n,params:u,config:d?.config,src:a,dest:a};return{deployer:await t(m)}},St}(),k=function(){if(Tt)return $t;Tt=1;const e=f,t=u,o=O,r=T,i=n,s=v.default;return $t=async({setProgress:n,context:a,deploymentProject:c,deploymentProjectTarget:p,yamlTarget:l})=>{await n({message:"Deploying it as fnet package."});const d=a.projectDir,f=t.resolve(d,"package.json"),u=e.readFileSync(f),m=JSON.parse(u);m.name=p.params.name,m.version=o.inc(p.version,"patch"),delete m.scripts,delete m.devDependencies,e.writeFileSync(f,JSON.stringify(m,null,"\t"));const{file:h,data:y}=await i({name:p.config||"fnet-package",dir:a.projectDir,tags:a.tags});if(!y.env.ATOM_API_URL)throw new Error(`ATOM_API_URL is required in ${h}`);if(!y.env.ATOM_API_USERNAME)throw new Error(`ATOM_API_USERNAME is required in ${h}`);if(!y.env.ATOM_API_PASSWORD)throw new Error(`ATOM_API_PASSWORD is required in ${h}`);const g=`${y.env.ATOM_API_URL}/v1/auth/token`,w=y.env.ATOM_API_USERNAME,b=y.env.ATOM_API_PASSWORD;let x=await s({method:"POST",url:g,data:{username:w,password:b},headers:{"Content-Type":"application/json"}});const v=x.data?.access_token;if(!v)throw new Error(`Invalid access_token from ${g}`);let k="fnet-files-to-gcs";if(k+=` --projectId='${y.env.GCS_PROJECT_ID}'`,k+=` --bucketName='${y.env.GCS_BUCKET_NAME}'`,k+=` --keyFilename='${t.resolve(t.dirname(h),y.env.GCS_UPLOADER_KEY_FILE)}'`,k+=` --dir='${d}'`,k+=" --pattern={'dist/**/**','bin/**/**','test/**/**','*.html'}",k+=` --destDir='${m.name}/${m.version}'`,k+=" --metadata.cacheControl='public, max-age=31536000, immutable'",y.env.DOMAIN&&(k+=` --domain='${y.env.DOMAIN}'`),!0!==p.dry_run&&!0!==p.params.dry_run||(k+=" --dryRun"),await r({cmd:k}),e.writeFileSync(f,u),!0===p.dryRun)return;c.isDirty=!0,p.version=m.version,l.set("version",m.version);const j=`${y.env.ATOM_API_URL}/v1/service/fnet-package/publish`;if(x=await s({method:"POST",url:j,data:{name:m.name,version:m.version,version_domain:y.env.DOMAIN,docs:p.params.docs,configs:p.params.configs},headers:{"Content-Type":"application/json",Authorization:`Bearer ${v}`}}),x.data?.error)throw new Error("Failed to publish fnet package.")}}(),j=function(){if(Nt)return Ot;Nt=1;const e=O,t=n,o=v.default;return Ot=async({setProgress:n,context:r,deploymentProject:i,deploymentProjectTarget:s,yamlTarget:a})=>{await n({message:"Deploying it as fnet form."});const{file:c,data:p}=await t({name:s.config||"fnet-form",dir:r.projectDir,tags:r.tags});if(!p.env.ATOM_API_URL)throw new Error(`ATOM_API_URL is required in ${c}`);if(!p.env.ATOM_API_USERNAME)throw new Error(`ATOM_API_USERNAME is required in ${c}`);if(!p.env.ATOM_API_PASSWORD)throw new Error(`ATOM_API_PASSWORD is required in ${c}`);const l=`${p.env.ATOM_API_URL}/v1/auth/token`,d=p.env.ATOM_API_USERNAME,f=p.env.ATOM_API_PASSWORD;let u=await o({method:"POST",url:l,data:{username:d,password:f},headers:{"Content-Type":"application/json"}});const m=u.data?.access_token;if(!m)throw new Error(`Invalid access_token from ${l}`);i.isDirty=!0;const h=e.inc(s.version,"patch");s.params.version=h,s.version=h,a.set("version",h);const y=`${p.env.ATOM_API_URL}/v1/service/fnet-form/publish`;if(u=await o({method:"POST",url:y,data:{name:s.params.name,version:s.params.version,docs:s.params.docs,configs:s.params.configs},headers:{"Content-Type":"application/json",Authorization:`Bearer ${m}`}}),u.data?.error)throw new Error("Error publishing fnet form.")}}(),_=function(){if(Ct)return It;Ct=1;const e=O,t=n,o=v.default,r=i,s=T,a=L;return It=async({setProgress:n,context:i,deploymentProject:c,deploymentProjectTarget:p,yamlTarget:l})=>{await n({message:"Deploying it as fnet flow."});const{file:d,data:f}=await t({name:p.config||"fnet-flow",dir:i.project.projectDir,tags:i.tags});if(!f.env.ATOM_API_URL)throw new Error(`ATOM_API_URL is required in ${d}`);if(!f.env.ATOM_API_USERNAME)throw new Error(`ATOM_API_USERNAME is required in ${d}`);if(!f.env.ATOM_API_PASSWORD)throw new Error(`ATOM_API_PASSWORD is required in ${d}`);const u=`${f.env.ATOM_API_URL}/v1/auth/token`,m=f.env.ATOM_API_USERNAME,h=f.env.ATOM_API_PASSWORD;let y=await o({method:"POST",url:u,data:{username:m,password:h},headers:{"Content-Type":"application/json"}});const g=y.data?.access_token;if(!g)throw new Error(`Invalid access_token from ${u}`);c.isDirty=!0;const w=e.inc(p.version,"patch");p.params.version=w,p.version=w,l.set("version",w);const b=`${f.env.ATOM_API_URL}/v1/service/fnet-flow/publish`;if(y=await o({method:"POST",url:b,data:{name:p.params.name,version:p.params.version,docs:p.params.docs,configs:p.params.configs},headers:{"Content-Type":"application/json",Authorization:`Bearer ${g}`}}),y.data?.error)throw new Error("Error publishing fnet flow.");const x=y.data?.upload.id;let v="fnet-dir-zipper";v+=` --sourceDir='${i.project.projectDir}'`,v+=" -p=**/*",v+=" -g",v+=" --stdout_format=json";const k=await s({cmd:v});if(0!==k.code)throw new Error(k.stderr);const j=JSON.parse(k.stdout).path;let _=new a;_.append("file",r.createReadStream(j));const D=await o.request({method:"POST",maxBodyLength:1/0,url:`${f.env.ATOM_API_URL}/v1/service/upload/single/${x}`,headers:{..._.getHeaders(),Authorization:`Bearer ${g}`},data:_});if(D.data?.error)throw new Error("Error uploading fnet flow.")}}(),D=function(){if(Rt)return Ft;Rt=1;const e=O,t=n,o=v.default,r=i,s=T,a=L;return Ft=async({setProgress:n,context:i,deploymentProject:c,deploymentProjectTarget:p,yamlTarget:l})=>{await n({message:"Deploying it as fnet node."});const{file:d,data:f}=await t({name:p.config||"fnet-node",dir:i.project.projectDir,tags:i.tags});if(!f.env.ATOM_API_URL)throw new Error(`ATOM_API_URL is required in ${d}`);if(!f.env.ATOM_API_USERNAME)throw new Error(`ATOM_API_USERNAME is required in ${d}`);if(!f.env.ATOM_API_PASSWORD)throw new Error(`ATOM_API_PASSWORD is required in ${d}`);const u=`${f.env.ATOM_API_URL}/v1/auth/token`,m=f.env.ATOM_API_USERNAME,h=f.env.ATOM_API_PASSWORD;let y=await o({method:"POST",url:u,data:{username:m,password:h},headers:{"Content-Type":"application/json"}});const g=y.data?.access_token;if(!g)throw new Error(`Invalid access_token from ${u}`);c.isDirty=!0;const w=e.inc(p.version,"patch");p.params.version=w,p.version=w,l.set("version",w);const b=`${f.env.ATOM_API_URL}/v1/service/fnet-node/publish`;if(y=await o({method:"POST",url:b,data:{name:p.params.name,version:p.params.version,docs:p.params.docs,configs:p.params.configs},headers:{"Content-Type":"application/json",Authorization:`Bearer ${g}`}}),y.data?.error)throw new Error("Error publishing fnet node.");const x=y.data?.upload.id;let v="fnet-dir-zipper";v+=` --sourceDir='${i.project.projectDir}'`,v+=" -p=**/*",v+=" -g",v+=" --stdout_format=json";const k=await s({cmd:v});if(0!==k.code)throw new Error(k.stderr);const j=JSON.parse(k.stdout).path;let _=new a;_.append("file",r.createReadStream(j));const D=await o.request({method:"POST",maxBodyLength:1/0,url:`${f.env.ATOM_API_URL}/v1/service/upload/single/${x}`,headers:{..._.getHeaders(),Authorization:`Bearer ${g}`},data:_});if(D.data?.error)throw new Error("Error uploading fnet node.")}}(),P=function(){if(qt)return Mt;qt=1;const e=n,t=U,o=h,r=O;return Mt=async({atom:n,target:i,onProgress:s,projectDir:a,dependencies:c,context:p,yamlTarget:l})=>{s&&await s({message:"Deploying it as Rust package."});const d=i?.config?await e({name:i.config,dir:a,optional:!0,transferEnv:!1,tags:p.tags}):void 0,f=r.inc(i.version||"0.1.0","patch");i.params.version=f,i.version=f,l.set("version",f);const u=o(i.params);u.dependencies=o(c);const m={atom:n,params:u,config:d?.config,src:a,dest:a};return{deployer:await t(m)}},Mt}(),E=function(){if(Kt)return Bt;Kt=1;const e=n,t=J,o=h,r=O;return Bt=async({atom:n,target:i,onProgress:s,projectDir:a,dependencies:c,context:p,yamlTarget:l})=>{s&&await s({message:"Deploying it as pypi package."});const d=i?.config?await e({name:i.config,dir:a,optional:!0,transferEnv:!1,tags:p.tags}):void 0,f=r.inc(i.version||"0.1.0","patch");i.params.version=f,i.version=f,l.set("version",f);const u=o(i.params);u.dependencies=o(c);const m={atom:n,params:u,config:d?.config,src:a,dest:a};return{deployer:await t(m)}},Bt}();return Lt=async n=>{const{atom:o,packageDependencies:i,context:s,deploymentProjectTarget:a,setProgress:p,deploymentProject:f,yamlTarget:u}=n;if(!0===a.enabled)if("lib"===a.type)await l({...n});else if("red"===a.type)await c({...n});else if("npm"===a.type)await r({...n});else if("gcs"===a.type)await t({...n});else if("gitlab"===a.type)await e({...n});else if("fnet-package"===a.type)await k({...n});else if("fnet-form"===a.type)await j({...n});else if("fnet-node"===a.type)await D({...n});else if("fnet-flow"===a.type)await _({...n});else{let e;if("nextjs"===a.type?e=b:"webos"===a.type?e=w:"electron"===a.type?e=g:"docker"===a.type?e=x:"ios"===a.type?e=d:"macos"===a.type?e=y:"rust"===a.type?e=P:"pypi"===a.type&&(e=E),!e)return;await e({atom:o,target:a,onProgress:p,projectDir:s.projectDir,dependencies:i,context:s,yamlTarget:u}),f.isDirty=!0}},Lt}var pn,ln,dn,fn,un,mn,hn,yn,gn,wn,bn,xn,vn,kn,jn,_n,Dn,Pn,En,Sn,An,$n,Tn,On,Nn,In,Cn,Fn,Rn,Mn,qn,Bn,Kn,Ln,Un,Jn,zn,Wn,Gn,Xn,Vn,Hn={name:"ATOM",uri:"http://atom.org/bpmn",prefix:"atom",types:[{name:"AtomExtension",extends:["bpmn:BaseElement"],properties:[{name:"atom",type:"atom:Atom",isMany:!1}]},{name:"Atom",properties:[{name:"type",type:"String",isAttr:!0}]}]};function Yn(){if(ln)return pn;ln=1;const e=W,t=G,n=h,o=Hn;function r(e,t){return e.filter(((e,n,o)=>o.map((e=>e[t])).indexOf(e[t])===n))}function i(e){const{nodes:t,nodeIndex:n,root:o}=e,r=e.targetNodes||o.childs;r.forEach((t=>{const n="workflow"===t.type||"subworkflow"===t.type,o=!n&&t.childs.filter((e=>!e.virtual)).length>0;if(o&&(t.bpmn.type="bpmn:SubProcess"),n||o){const n=t.childs.filter((e=>!0!==e.module))[0];t.childs.filter((e=>!0===e.module)).forEach((n=>{const o=s({...e,parent:t,bpmnType:"bpmn:IntermediateCatchEvent",type:"inter",definitions:[{type:"bpmn:SignalEventDefinition"}]});o.bpmn.edges=[{from:o.indexKey,to:n.indexKey,type:"bpmn:SequenceFlow"}]}));const o=t.childs.find((e=>"try"===e.name&&"tryexcept"===t.type)),i=t.childs.filter((e=>"except"===e.name&&"tryexcept"===t.type));o&&i.length&&i.forEach((n=>{const r=s({location:t.childs.indexOf(n),...e,parent:t,bpmnType:"bpmn:BoundaryEvent",type:"boundary",attrs:{attachedToRef:o},definitions:[{type:"bpmn:ErrorEventDefinition"}]});r.bpmn.edges=[{from:r.indexKey,to:n.indexKey,type:"bpmn:SequenceFlow"}]}));const a=t.childs.find((e=>"raise"===e.type));if(a){const n=s({...e,parent:t,bpmnType:"bpmn:EndEvent",type:"end",name:"ERROR",definitions:[{type:"bpmn:ErrorEventDefinition"}]});a.bpmn.edges=[{from:a.indexKey,to:n.indexKey,type:"bpmn:SequenceFlow"}]}if(n)if(t.bpmn.starts.length>1){const n=s({...e,parent:t,bpmnType:"bpmn:StartEvent",type:"start"}),o=s({...e,parent:t,bpmnType:"bpmn:ExclusiveGateway",type:"switch"});n.bpmn.edges=[{from:n.indexKey,to:o.indexKey,type:"bpmn:SequenceFlow"}],o.bpmn.edges=t.bpmn.starts.map((e=>({...e,from:o.indexKey})));const r=o.bpmn.edges.find((e=>!0===e.next));if(r){const n=s({...e,parent:t,bpmnType:"bpmn:EndEvent",type:"end",name:r.to});r.to=n.indexKey}}else{const o=s({...e,parent:t,bpmnType:"bpmn:StartEvent",type:"start"});o.bpmn.edges.push({from:o.indexKey,to:n.indexKey,type:"bpmn:SequenceFlow"})}t.childs.filter((e=>!0!==e.virtual&&e.bpmn.outside.length&&"bpmn:EndEvent"!==e.bpmn.type)).forEach((n=>{n.bpmn.outside.forEach((o=>{const i=r.indexOf(t),a=s({...e,parent:t,bpmnType:"bpmn:EndEvent",type:"end",name:o.to,location:i+1});n.bpmn.edges.push({from:n.indexKey,to:a.indexKey,type:"bpmn:SequenceFlow"})}))}));t.childs.filter((e=>!0!==e.virtual&&e.bpmn.edges.length>1)).forEach((n=>{const o=r.indexOf(n),i=s({...e,parent:t,bpmnType:"bpmn:ExclusiveGateway",type:"switch",location:o+1});i.bpmn.edges=n.bpmn.edges.map((e=>({...e,from:i.indexKey}))),n.bpmn.edges=[{from:n.indexKey,to:i.indexKey,type:"bpmn:SequenceFlow"}],n.bpmn.outside=[]}))}i({...e,targetNodes:t.childs})}))}function s(e){const{parent:t,nodes:n,nodeIndex:o,bpmnType:r,type:i,name:s,outside:a,location:c,definitions:p,attrs:l}=e,d=t.childs.filter((e=>e.type===`v${i}`)).length,f={indexKey:`${t.indexKey}/_${i}${d}`,pathKey:`${t.pathKey}._${i}${d}`,type:`v${i}`,name:s,bpmn:{edges:[],outside:[],type:r,width:36,height:36,fill:"#c8e6c9",stroke:"#205022",definitions:p,attrs:l},virtual:!0,childs:[]};return t.childs.splice(c||0,0,f),n.push(f),o[f.indexKey]=f,f}function a(e){!function(e){const{targetNode:t,targetFlowElementsContainer:n,targetPlaneElement:o,moddle:r,elementIndex:i,nodeIndex:s,nodes:a}=e,c=n.get("flowElements");n.$nodes=n.$nodes||[],t.childs.forEach((e=>{const t=r.create(e.bpmn.type,{id:`node.${e.pathKey}`,name:e.definition?.title||e.name});if(i[t.id]=t,t.$isNode=!0,t.$node=e,e.$flow=t,n.$nodes.push(t),c.push(t),e.bpmn.attrs){Object.keys(e.bpmn.attrs).forEach((n=>{"attachedToRef"===n&&t.set(n,e.bpmn.attrs[n].$flow)}))}if(e.bpmn.definitions){const n=e.bpmn.definitions.map((e=>{const t=r.create(e.type);return Object.keys(e.attrs||{}).forEach((n=>{t.set(n,e.attrs[n])})),t}));t.eventDefinitions=n}}))}(e),function(e){const{targetNode:t,targetFlowElementsContainer:n,targetPlaneElement:o,moddle:r,elementIndex:i,nodeIndex:s}=e,a=n.get("flowElements");n.$edges=n.$edges||[],t.childs.forEach((e=>{e.bpmn.edges.forEach((t=>{const o=e,c=s[t.to],p=`edge.${o.pathKey}_${c.pathKey}`;if(i[p])return;const l=i[`node.${o.pathKey}`],d=i[`node.${c.pathKey}`],f=r.create(t.type,{id:p,sourceRef:l,targetRef:d});i[f.id]=f,f.$is_edge=!0,l.get("outgoing").push(f),d.get("incoming").push(f),n.$edges.push({from:l,to:d,flow:f}),a.push(f)}))}))}(e),function(e){const{targetNode:n,targetFlowElementsContainer:o,targetPlaneElement:r,moddle:i,elementIndex:s,nodeIndex:a}=e,c=120,p=80,l=160,d=160,f=new t.graphlib.Graph;f.setDefaultEdgeLabel((()=>({}))),f.setGraph({rankdir:"TB",nodesep:c,ranksep:p,xranker:"longest-path"}),o.$nodes.forEach((e=>{f.setNode(e.id,{width:e.$node?.bpmn.width||c,height:e.$node?.bpmn.height||p,label:e.id})})),o.$edges.forEach((e=>{f.setEdge(e.from.id,e.to.id)})),t.layout(f),o.$nodes.forEach((e=>{const t=f.node(e.id);let n=t.width,o=t.height;const s=i.create("bpmndi:BPMNShape",{id:`shape.${e.id}`,bpmnElement:e,bounds:i.create("dc:Bounds",{x:l+t.x-t.width/2,y:d+t.y-t.height/2,width:n,height:o}),label:i.create("bpmndi:BPMNLabel")});e.$node.bpmn.fill&&s.set("bioc:fill",e.$node.bpmn.fill),e.$node.bpmn.stroke&&s.set("bioc:stroke",e.$node.bpmn.stroke);r.get("planeElement").push(s)})),o.$edges.forEach((e=>{const t=f.edge(e.from.id,e.to.id),n=i.create("bpmndi:BPMNEdge",{id:`edge.${e.from.id}_${e.to.id}`,bpmnElement:e.flow,label:i.create("bpmndi:BPMNLabel")});t.points.forEach((e=>{const t=i.create("dc:Point",{x:l+e.x,y:d+e.y});n.get("waypoint").push(t)}));r.get("planeElement").push(n)}))}(e),function(e){const{targetNode:t,targetFlowElementsContainer:n,targetPlaneElement:o,moddle:r,elementIndex:i,nodeIndex:s,diagrams:c}=e;t.childs.filter((e=>"bpmn:SubProcess"===e.bpmn.type)).forEach((t=>{const n=i[`node.${t.pathKey}`],o=r.create("bpmndi:BPMNDiagram",{id:`diagram_${t.pathKey}`});i[o.id]=o,c.push(o);const s=r.create("bpmndi:BPMNPlane",{id:`plane_${t.pathKey}`});i[s.id]=s,o.plane=s,s.bpmnElement=n,a({...e,targetNode:t,targetFlowElementsContainer:n,targetPlaneElement:s})}))}(e)}async function c(t){const n=t.root,s=n.context.index,c=Object.keys(s).map((e=>s[e]));!function(e){const{nodes:t,nodeIndex:n,root:o}=e;t.forEach((e=>{const t=[],n=[],o=r=>{r.context.next&&(t.push({from:r,to:r.context.next,type:"bpmn:SequenceFlow"}),r===e&&n.push({to:r.context.next,type:"bpmn:SequenceFlow",next:!0})),r.childs.forEach((t=>{r===e&&"switch"===e.type&&n.push({to:t,type:"bpmn:SequenceFlow"}),o(t)}))};o(e);const i=t.filter((t=>t.to.parent.indexKey===e.parent.indexKey)).map((t=>({...t,from:e.indexKey,to:t.to.indexKey}))),s=t.filter((t=>t.to.parent.indexKey!==e.parent.indexKey&&!t.to.indexKey.startsWith(e.indexKey+"/"))).map((t=>({...t,from:e.indexKey,to:t.to.indexKey}))),a=n.map((e=>({...e,to:e.to.indexKey})));e.bpmn=e.bpmn||{},e.bpmn.edges=r(i,"to"),e.bpmn.outside=r(s,"to"),e.bpmn.starts=r(a,"to"),e.bpmn.type=function(e){return"call"===e.type?"bpmn:ServiceTask":"form"===e.type?"bpmn:UserTask":"return"===e.type?"bpmn:EndEvent":"bpmn:Task"}(e),e.bpmn.width=120,e.bpmn.height=80,"return"===e.type&&(e.bpmn.width=36,e.bpmn.height=36)}))}({nodes:c,nodeIndex:s,root:n}),i({nodes:c,nodeIndex:s,root:n});const p=new e({atom:o}),l={},d=p.create("bpmn:Definitions",{id:"definitions_0"});l[d.id]=d;for await(const e of n.childs){const t=d.get("rootElements"),o=d.get("diagrams"),r=p.create("bpmn:Process",{id:`process_${e.pathKey}`,documentation:[p.create("bpmn:Documentation",{text:`Atom Workflow - ${n.context.atom.name}`})]});l[r.id]=r,r.isExecutable=!0,t.push(r);const i=p.create("bpmndi:BPMNDiagram",{id:`diagram_${e.pathKey}`});l[i.id]=i,o.push(i);const f=p.create("bpmndi:BPMNPlane",{id:`plane_${e.pathKey}`});l[f.id]=f,i.plane=f,f.bpmnElement=r;a({targetNode:e,targetFlowElementsContainer:r,targetPlaneElement:f,moddle:p,elementIndex:l,nodeIndex:s,nodes:c,diagrams:o})}return{diagramXML:(await p.toXML(d,{format:!0})).xml}}return pn=async(e={})=>await c(n(e))}function Zn(){return fn?dn:(fn=1,dn=async({node:e,initNode:t})=>{e.hasModules=e.definition.modules?.length>0;for(let n=0;n<e.definition.modules?.length;n++){const o=e.definition.modules[n],r=Object.keys(o)[0],i={name:r,childs:[],parent:e,definition:o[r],module:!0,blockAutoJumpToParent:!0,blockAutoJumpToSibling:!1,index:e.childs.length,context:{}};e.childs.push(i),await t({node:i})}})}function Qn(){if(mn)return un;mn=1;const e=h,t=Zn();async function n({node:t,resolveTypeCommon:n,resolveNextBlock:o,transformExpression:r}){t.context.transform=t.context.transform||e(t.definition);const i=t.context.transform;for(const n of t.childs)n.context.transform=n.context.transform||e(n.definition),n.definition.hasOwnProperty("condition")&&(n.context.transform.condition=await r(n.definition.condition));i.export&&(i.export=await r(i.export)),Reflect.has(i,"return")&&(t.returns=!0,i.return=await r(i.return)),await n({node:t}),o({node:t})}return un={hits:async function({node:e}){if(!e.definition.hasOwnProperty("switch"))return!1;const t=e.definition.switch||[];if(!t.every((e=>e.hasOwnProperty("condition")||e.hasOwnProperty("default"))))throw new Error("Switch must have condition or default");if(0===t.filter((e=>e.hasOwnProperty("condition"))).length)throw new Error("Switch must have at least one condition");const n=t.filter((e=>e.hasOwnProperty("default")));if(n.length>1)throw new Error("Switch must have only one default");if(1===n.length&&!t[t.length-1].hasOwnProperty("default"))throw new Error("Switch default must be the last child");return!0},init:async function({node:e,initNode:o}){e.type="switch",await t({node:e,initNode:o}),e.blockAutoJumpToParent=!1,e.blockAutoJumpToSibling=!0;for(let t=0;t<e.definition.switch.length;t++){let n=e.definition.switch[t],r=`${t}`;n.hasOwnProperty("default")&&(r="default",n=n.default);const i={name:n.condition||r,childs:[],parent:e,definition:n,index:e.childs.length,context:{}};e.childs.push(i),await o({node:i})}e.resolve=n},resolve:n}}function eo(){if($n)return An;$n=1;const e=h,t=Zn();async function n({node:t,resolveTypeCommon:n,resolveNextBlock:o,transformExpression:r}){t.context.transform=t.context.transform||e(t.definition);const i=t.context.transform;if("function"===t.target?.atom?.doc?.type&&(i.call=await r(t.target.atom.name)),i.args&&(i.args=await r(i.args)),i.result){"string"==typeof i.result&&(i.result=[{[i.result]:"e::result"}]);for(let e=0;e<i.result?.length;e++){let t=i.result[e],n=Object.keys(t)[0],o=t[n],s={key:await r(n),value:await r(o)};i.result[e]=s}}const s=t.workflow.parent;i.import?t.context.lib=s.context.libs.find((e=>e.name===i.import)):t.context.lib=s.context.libs.find((e=>e.name===i.call)),i.export&&(i.export=await r(i.export)),Reflect.has(i,"return")&&(t.returns=!0,i.return=await r(i.return)),await n({node:t}),o({node:t})}return An={hits:async function({node:e}){return e.definition.hasOwnProperty("call")},init:async function({node:e,initNode:o}){e.type="call",await t({node:e,initNode:o}),e.resolve=n},resolve:n}}function to(){return Ln?Kn:(Ln=1,Kn=({node:e})=>{const t=e.definition;if(!e.returns)if("end"===t.next);else if("stop"===t.next);else if("none"===t.next);else if(t.next){let n=e.parent;for(;n.parent;){const o=n.childs.find((e=>e.name===t.next));if(o){e.context.next=o;break}n=n.parent}}else{if(!0===e.module)return;let t=e.parent,n=e.index+1;for(;t.parent&&(!t.blockAutoJumpToParent||!t.blockAutoJumpToSibling);)if(Reflect.has(t,"blockAutoJumpToParent")||Reflect.has(t,"blockAutoJumpToSibling")){if(t.blockAutoJumpToParent){const o=t.childs.find((e=>e.index===n));o&&(e.context.next=o);break}t.blockAutoJumpToParent||(n=t.index+1,t=t.parent)}else{const o=t.childs.find((e=>e.index===n));if(o){e.context.next=o;break}n=t.index+1,t=t.parent}}})}function no(){if(Jn)return Un;Jn=1;const e=eo();class t{#e;#t;#n;#o;constructor({key:e,npm:t,master:n,extras:o}){this.#e=e,this.#t=t,this.#n=n,this.#o=o}hits({node:e}){return e.definition.hasOwnProperty(this.#e)}async init(t){const{node:n}=t,o=this.#e,r=n.definition,i=typeof r[o];if(r.call=`npm:${this.#t}`,r.args="object"!==i?{...r.args,[`${this.#n}`]:r[o]}:r[o],delete r[o],this.#o)for(const e in this.#o)r[e]=this.#o[e];console.log(`[npm-block] ${this.#e} --\x3e ${this.#t}`),await e.init(t)}}return Un=e=>new t(e)}function oo(){if(Wn)return zn;Wn=1;const e=f,t=u,o=s,r=a,i=m,p=h,l=y,d=function(){if(te)return ee;te=1;const e=g,t=w;return ee=async()=>{if(!await t({host:process.env.REDIS_HOST,port:process.env.REDIS_PORT}))return;const n=e.createClient({socket:{host:process.env.REDIS_HOST,port:process.env.REDIS_PORT}});return await n.connect(),n}}(),{nanoid:j}=b,D=function(){if(oe)return ne;oe=1;const{Api:e}=x,t=v.default,n=k;return ne=class{init({config:o,accessToken:r}){return new Promise(((i,s)=>{if(e.set_api_url(o.data.url),r)return e.set_req_token(r),void i(r);t({method:"POST",url:`${o.data.issuer}/protocol/openid-connect/token`,data:n.stringify(o.data.grant.params),headers:{"Content-Type":"application/x-www-form-urlencoded"}}).then((t=>{e.set_req_token(t.data.access_token),i(t.data.access_token)})).catch((t=>{e.set_req_token(),s(t)}))}))}}}(),P=Wt(),E=Gt(),S=Xt(),A=Ht(),$=Yt(),T=Zt(),O=Qt(),N=en(),I=tn(),C=nn(),F=on(),R=rn(),M=sn(),q=an(),B=Vt(),K=cn(),{Atom:L}=x,U=z,J=Yn(),W=n,G=_,Q=X,re=c,ie=V,se=H,ae=function(){if(yn)return hn;yn=1;const e=X,t=Qn();return hn={hits:async function({node:t}){const n=Object.keys(t.definition);return 1===(await Promise.all(n.map((t=>e({expression:t}))))).filter((e=>"if"===e?.processor)).length},init:async function(n){const{node:o}=n,r=Object.keys(o.definition),i=await Promise.all(r.map((t=>e({expression:t})))),s=[],a=i.find((e=>"if"===e?.processor)),c=o.definition[a.expression];s.push({name:`${o.name}_if`,definition:c,processor:a}),delete o.definition[a.expression];const p=i.filter((e=>"elseif"===e?.processor));let l=0;for(const e of p){const t=o.definition[e.expression];s.push({name:`${o.name}_elseif_${l++}`,definition:t,processor:e}),delete o.definition[e.expression]}o.definition.switch=[];for(const e of s)o.definition.switch.push({condition:e.processor.statement,...e.definition});if(o.definition?.else){const e=o.definition.else;o.definition.switch.push({default:e}),delete o.definition.else}await t.init(n)}}}(),ce=function(){if(wn)return gn;wn=1;const e=h,t=Zn();async function n({node:t,resolveTypeCommon:n,resolveNextBlock:o}){t.context.transform=t.context.transform||e(t.definition);const r=t.context.transform;if(t.context.try=t.childs.find((e=>"try"===e.name)),t.context.except=t.childs.find((e=>"except"===e.name)),t.context.except){const n=t.context.except;n.context.transform=n.context.transform||e(n.definition),n.context.transform.hasOwnProperty("as")||(n.context.transform.as="error")}r.export&&(r.export=await transformExpression(r.export)),Reflect.has(r,"return")&&(t.returns=!0,r.return=await transformExpression(r.return)),await n({node:t}),o({node:t})}return gn={hits:async function({node:e}){return e.definition.hasOwnProperty("try")&&e.definition.hasOwnProperty("except")},init:async function({node:e,initNode:o}){if(e.type="tryexcept",await t({node:e,initNode:o}),e.blockAutoJumpToParent=!1,e.blockAutoJumpToSibling=!0,e.definition.try){const t="try",n={name:t,childs:[],parent:e,definition:e.definition[t],index:e.childs.length,context:{}};e.childs.push(n),await o({node:n})}if(e.definition.except){const t="except",n={name:t,childs:[],parent:e,definition:e.definition[t],index:e.childs.length,context:{}};e.childs.push(n),await o({node:n})}e.resolve=n},resolve:n}}(),pe=function(){if(xn)return bn;xn=1;const e=h,t=Zn();async function n({node:t,resolveTypeCommon:n,resolveNextBlock:o,transformExpression:r}){t.context.transform=t.context.transform||e(t.definition);const i=t.context.transform;for(let e=0;e<i.assign?.length;e++){let t=i.assign[e],n=Object.keys(t)[0],o=t[n],s={key:await r(n),value:await r(o)};i.assign[e]=s}i.export&&(i.export=await r(i.export)),Reflect.has(i,"return")&&(t.returns=!0,i.return=await r(i.return)),await n({node:t}),o({node:t})}return bn={hits:async function({node:e}){return e.definition.hasOwnProperty("assign")},init:async function({node:e,initNode:o}){e.type="assign",await t({node:e,initNode:o}),e.resolve=n},resolve:n}}(),le=function(){if(kn)return vn;kn=1;const e=h,t=Y,n=Z,o=Zn();async function r({node:t,resolveTypeCommon:n,resolveNextBlock:o,transformExpression:r}){t.context.transform=t.context.transform||e(t.definition);const i=t.context.transform;i.for.in=await r(t.definition.for.in),i.export&&(i.export=await r(i.export)),Reflect.has(i,"return")&&(t.returns=!0,i.return=await r(i.return)),await n({node:t}),o({node:t})}return vn={hits:async function({node:e}){return e.definition.hasOwnProperty("for")},init:async function({node:e,initNode:i}){if(e.type="for",await o({node:e,initNode:i}),e.blockAutoJumpToParent=!0,e.blockAutoJumpToSibling=!1,!e.definition.for.hasOwnProperty("steps")){const o=["value","in"],[r,i]=[t(e.definition.for,o),n(e.definition.for,o)];e.definition.for=r,e.definition.for.steps=[{[`${e.name}_step`]:i}]}Array.isArray(e.definition.for.steps)||(e.definition.for.steps=[{[`${e.name}_step`]:e.definition.for.steps}]);for(let t=0;t<e.definition.for.steps.length;t++){const n=e.definition.for.steps[t],o=Object.keys(n)[0],r={name:o,childs:[],parent:e,definition:n[o],index:e.childs.length,context:{}};e.childs.push(r),await i({node:r})}e.resolve=r},resolve:r}}(),de=Qn(),fe=_n?jn:(_n=1,jn={hits:async function({node:e}){return!1},init:async function({node:e,initNode:t}){},resolve:async function({node:e,resolveTypeCommon:t,resolveNextBlock:n,transformExpression:o,transformValue:r}){}}),ue=function(){if(Pn)return Dn;Pn=1;const e=h;async function t({node:t,resolveTypeCommon:n,transformExpression:o}){t.context.transform=t.context.transform||e(t.definition);const r=t.context.transform;r.raise=await o(r.raise),await n({node:t})}return Dn={hits:async function({node:e}){return e.definition.hasOwnProperty("raise")},init:async function({node:e,initNode:n}){e.type="raise",e.resolve=t},resolve:t}}(),me=function(){if(Sn)return En;Sn=1;const e=h;async function t({node:t,resolveTypeCommon:n,transformExpression:o}){t.context.transform=t.context.transform||e(t.definition);const r=t.context.transform;t.returns=!0,r.return=await o(r.return),await n({node:t})}return En={hits:async function({node:e}){return e.definition.hasOwnProperty("return")},init:async function({node:e,initNode:n}){e.type="return",e.resolve=t},resolve:t}}(),he=eo(),ye=function(){if(On)return Tn;On=1;const e=h;async function t({node:t,transformExpression:n}){t.context.next=t.childs[0],t.context.transform=t.context.transform||e(t.definition);const o=t.context.transform;o.export&&(o.export=await n(o.export)),Reflect.has(o,"return")&&(t.returns=!0,o.return=await n(o.return))}return Tn={hits:async function({node:e}){return e.definition.hasOwnProperty("steps")},init:async function({node:e,initNode:n}){e.type||(e.type="steps");const o=e.definition.steps||[];for await(const t of o){const o=Object.keys(t)[0],r={name:o,childs:[],parent:e,definition:t[o],index:e.childs.length,context:{}};e.childs.push(r),await n({node:r})}e.resolve=t},resolve:t}}(),ge=function(){if(In)return Nn;In=1;const e=h,t=Zn();async function n({node:t,resolveTypeCommon:n,resolveNextBlock:o,transformExpression:r}){t.context.transform=t.context.transform||e(t.definition);const i=t.context.transform;i.props&&(i.props=await r(i.props));const s=t.workflow.parent;t.context.lib=s.context.libs.find((e=>e.name===i.form)),i.export&&(i.export=await r(i.export)),Reflect.has(i,"return")&&(t.returns=!0,i.return=await r(i.return)),await n({node:t}),o({node:t})}return Nn={hits:async function({node:e}){return e.definition.hasOwnProperty("form")},init:async function({node:e,initNode:o}){e.type="form",await t({node:e,initNode:o}),e.resolve=n},resolve:n}}(),we=function(){if(Fn)return Cn;Fn=1;const e=h;async function t({node:t,resolveTypeCommon:n,resolveNextBlock:o,transformExpression:r,transformValue:i}){t.context.transform=t.context.transform||e(t.definition),await n({node:t})}return Cn={hits:async function({node:e}){return e.definition.hasOwnProperty("operation")},init:async function({node:e,initNode:n}){e.type="operation",e.resolve=t},resolve:t}}(),be=function(){if(Mn)return Rn;Mn=1;const e=h;async function t({node:t,resolveTypeCommon:n,resolveNextBlock:o,transformExpression:r}){t.context.transform=t.context.transform||e(t.definition);const i=t.context.transform;i.next=await r(i.next),i.export&&(i.export=await r(i.export)),Reflect.has(i,"return")&&(t.returns=!0,i.return=await r(i.return)),await n({node:t}),o({node:t})}return Rn={hits:async function({node:e}){return e.definition.hasOwnProperty("next")},init:async function({node:e,initNode:n}){e.type="jump",e.resolve=t},resolve:t}}(),xe=function(){if(Bn)return qn;Bn=1;const e=h,t=Zn();async function n({node:t,resolveTypeCommon:n,resolveNextBlock:o,transformExpression:r}){t.context.transform=t.context.transform||e(t.definition);const i=t.context.transform;i.export&&(i.export=await r(i.export)),Reflect.has(i,"return")&&(t.returns=!0,i.return=await r(i.return)),await n({node:t}),o({node:t})}return qn={hits:async function({node:e}){return e.definition.hasOwnProperty("modules")},init:async function({node:e,initNode:o}){e.type="modules",await t({node:e,initNode:o}),e.resolve=n},resolve:n}}(),ve=to(),ke=no();return zn=class{#r;#i;#s;#a;#c;#p;#l;#d;#f;#u;#m;#h;#y;#g;#w;#b;#x;#v;#k;#j;#_;#D=[];constructor(e){this.#r=new D,this.#i=e,this.#p=[],this.#l=[],this.#d={},this._expire_ttl=3600,this._expire_ttl_short=300,this.#D.push(ke({key:"config",npm:"@fnet/config",master:"name"})),this.#D.push(ke({key:"yaml",npm:"@fnet/yaml",master:"file"})),this.#D.push(ke({key:"prompt",npm:"@fnet/prompt",master:"message"})),this.#D.push(ke({key:"html-link",npm:"@flownet/lib-load-browser-link-url",master:"src"})),this.#D.push(ke({key:"html-script",npm:"@flownet/lib-load-browser-script-url",master:"src"})),this.#D.push(ke({key:"http-server",npm:"@fnet/node-express",master:"server_port"})),this.#D.push(ke({key:"shell",npm:"@fnet/shell",master:"cmd"})),this.#D.push(ke({key:"shell-flow",npm:"@fnet/shell-flow",master:"commands"})),this.#D.push(ke({key:"list-files",npm:"@fnet/list-files",master:"pattern"})),this.#D.push(ke({key:"up-list-files",npm:"@fnet/up-list-files",master:"pattern"})),this.#D.push(ke({key:"auto-conda-env",npm:"@fnet/auto-conda-env",master:"envDir"})),this.#D.push(ke({key:"ollama-chat",npm:"@fnet/ollama-chat",master:"model"})),this.#D.push(ke({key:"ai",npm:"@fnet/ai",master:"prompt",extras:{subtype:"flow"}})),this.#D.push(ke({key:"invoke",npm:"@fnet/invoke",master:"method",extras:{}})),this.#j={packageDependencies:this.#p,packageDevDependencies:this.#l,setProgress:this.setProgress.bind(this),context:this.#i,Atom:L,registerToPackageManager:this.registerToPackageManager.bind(this)},this.#_={initNode:this.initNode.bind(this),cloneDeep:p,resolveTypeCommon:this.resolveTypeCommon.bind(this),resolveNextBlock:ve,transformExpression:this.transformExpression.bind(this),transformValue:this.transformValue.bind(this)}}async _cache_set(e,t,n){this._redis_client&&await this._redis_client.SETEX(e,n||this._expire_ttl,JSON.stringify(t)).catch(console.error)}async init(){this._redis_client=await d(),this.#m=this.#i.buildId||j(24),this.#j.buildId=this.#m,this.#w=this.#i.mode,this.#b=["all","deploy","build","file"].includes(this.#w),this.#x=["all","deploy","build"].includes(this.#w),this.#v=["all","deploy"].includes(this.#w),this.#k=["all","deploy","build","file","bpmn"].includes(this.#w),this.#y=this.#i.protocol,this.#h="BUILD:"+this.#m,this.#g=(await W({optional:!0,name:"atom",dir:this.#i.projectDir,tags:this.#i.tags}))?.data;try{await this.setProgress({message:"Initialization started."}),await this.initAuth(),await this.initWorkflow(),this.transformWorkflow({workflow:this.#a});const e=await this.initNodeTree({workflow:this.#a});await this.initNodeTreeIndex({root:e}),await this.initNodeCalls({root:e}),await this.initNodeCallLibs({root:e}),await this.initNodeForms({root:e}),await this.initNodeFormLibs({root:e}),await this.initEntryFiles({root:e,features:this.#s.doc.features}),await this.initFeaturesFromNodes({childs:e.childs,features:this.#s.doc.features}),await P(this.#j),await E(this.#j),await this.initAtomLibsAndDeps({libs:e.context.libs,packageDependencies:this.#p}),await this.resolveNodeTree({root:e}),this.#u=e}catch(e){throw await this._cache_set(this.#h,{status:"FAILED",message:e?.message||e}),e}}async initAuth(){this.#i.id&&(this.#f=await this.#r.init({config:this.#g}),this.#j.atomAccessToken=this.#f)}async initWorkflow(){const e=this.#i.id;this.#s=this.#i.project?.workflowAtom||await L.get({id:e}),this.#a="string"==typeof this.#s.doc.content?(await re({content:this.#s.doc.content,tags:this.#i.tags})).parsed:this.#s.doc.content;let t=this.#s.doc.bundleName;t=t||(this.#s.doc.name||"").toUpperCase().replace(/[^A-Z0-9]/g,"_"),this.#s.doc.bundleName=t,this.#s.type=this.#s.type||"workflow",this.#j.atom=this.#s,this.#s.doc.features=this.#s.doc.features||{}}#P(n){console.log("filePath",n),e.statSync(n).isDirectory()?(e.readdirSync(n).forEach((e=>{const o=t.join(n,e);this.#P(o)})),e.rmSync(n)):e.unlinkSync(n)}#E(n,o){const r=e.existsSync(n),i=r&&e.statSync(n);r&&i.isDirectory()?(e.mkdirSync(o,{recursive:!0}),e.readdirSync(n).forEach((e=>{this.#E(t.join(n,e),t.join(o,e))}))):e.copyFileSync(n,o)}async initWorkflowDir(){this.setProgress({message:"Initializing library directory."});const n=this.#i.projectDir,o=this.#i.coreDir;this.setProgress({message:"Cleaning project directory."});const r=se({dir:n,ignore:[".cache","node_modules",".conda"],absolute:!0});for(const t of r)e.rmSync(t,{recursive:!0,force:!0});this.setProgress({message:"Creating project directory."}),e.existsSync(n)||e.mkdirSync(n,{recursive:!0});const i=t.join(n,"src");e.existsSync(i)||e.mkdirSync(i,{recursive:!0});const s=t.join(i,"core");this.#E(o,s);const a=t.join(i,"default","blocks");e.existsSync(a)||e.mkdirSync(a,{recursive:!0})}async initNunjucks(){this.setProgress({message:"Initializing nunjucks."});const e=this.#i.templateDir;this.#c=i.configure(e,{watch:!1,dev:!0}),this.#j.njEnv=this.#c}transformWorkflow({workflow:e}){for(const t of Object.values(e))t.steps=t.steps||[],t.steps=t.steps.filter((e=>Object.keys(e).length>0)),t.steps=t.steps.map((e=>this.transformStep({step:e})))}transformStep({step:e}){if(Array.isArray(e))throw new Error("Step must be an object.");const[t,n]=Object.entries(e)[0];if(n.hasOwnProperty("onerror")){const{onerror:o,...r}=n;e[t]={try:r,except:o}}if(e[t].hasOwnProperty("steps")){const n=e[t].steps;if(!Array.isArray(n))throw new Error("Steps must be an array.");e[t].steps=n.map((e=>this.transformStep({step:e})))}return e}async initNodeTree({workflow:e}){const t=Object.keys(e),n={definition:e,name:void 0,type:"root",parent:void 0,childs:[],blockAutoJumpToParent:!0,blockAutoJumpToSibling:!0,index:0,depth:0,context:{libs:[],atom:this.#s}};t.forEach((t=>{const o={name:t,type:"main"===t?"workflow":"subworkflow",childs:[],parent:n,definition:e[t],index:n.childs.length,depth:n.depth+1,context:{},blockAutoJumpToParent:!0,blockAutoJumpToSibling:!1};n.childs.push(o)}));for await(const e of n.childs)await this.initNode({node:e});return n}async initNode({node:e}){const t={...this.#_,node:e};if(e.workflow=e.parent.workflow||e,e.depth=e.parent.depth+1,await ce.hits(t))await ce.init(t);else if(await le.hits(t))await le.init(t);else if(await de.hits(t))await de.init(t);else if(await ae.hits(t))await ae.init(t);else if(await fe.hits(t))await fe.init(t);else if(await pe.hits(t))await pe.init(t);else if(await ue.hits(t))await ue.init(t);else if(await he.hits(t))await he.init(t);else if(this.#D.find((e=>e.hits(t)))){const e=this.#D.find((e=>e.hits(t)));await e.init(t)}else if(await ge.hits(t))await ge.init(t);else if(await we.hits(t))await we.init(t);else if(await ye.hits(t))await ye.init(t);else if(await be.hits(t))await be.init(t);else if(await xe.hits(t))await xe.init(t);else{if(!await me.hits(t))throw new Error("Undefined step type.");await me.init(t)}}async initNodeTreeIndex({root:e}){const t={};e.indexKey="/";for await(const n of e.childs)await this.initNodeIndex({node:n,index:t});return e.context.index=t,t}async initNodeIndex({node:e,index:n}){const o=t.join(e.parent.indexKey,e.name);e.indexKey=o,n[o]=e;const r=[];let i=e;for(;i?.parent;)r.push(i.index),i=i.parent;r.reverse(),e.codeKey=`B_${r.join("_")}_${e.type}`,e.pathKey=`${r.join(".")}`,e.typeId=j(24);for await(const t of e.childs)await this.initNodeIndex({node:t,index:n})}async initNodeCalls({root:e}){const t=e.context.index,n=[];for await(const e of Object.keys(t)){const o=t[e];"call"===o.type&&n.push(o)}return e.context.calls=n,n}async initNodeCallLibs({root:e}){const t=[],n=e.context.calls;for await(const e of n){const n=e.definition.import||e.definition.call,o=await this.findNodeCallTarget({refNode:e,curNode:e.parent})||{name:n,type:"atom",definition:e.definition},r=t.find((e=>e.name===o.name&&e.type===o.type));r||t.push(o),e.target=r||o}return e.context.callLibs=t,e.context.libs=[...e.context.libs,...t],t}async findNodeCallTarget({refNode:e,curNode:t}){if(!t)return;const n=e.definition.call,o=t.childs.find((e=>e.name===n&&"subworkflow"===e.type));return o||await this.findNodeCallTarget({refNode:e,curNode:t.parent})}async initNodeForms({root:e}){const t=e.context.index,n=[];for await(const e of Object.keys(t)){const o=t[e];"form"===o.type&&n.push(o)}return e.context.forms=n,n}async initNodeFormLibs({root:e}){const t=[],n=e.context.forms;for await(const e of n){const n=e.definition.import||e.definition.form,o=await this.findNodeCallTarget({refNode:e,curNode:e.parent})||{name:n,type:"atom"},r=t.find((e=>e.name===o.name&&e.type===o.type));r||t.push(o),e.target=r||o}return e.context.formLibs=t,e.context.libs=[...e.context.libs,...t],t}async initFeaturesFromNodes({childs:e,features:t}){for await(const n of e)"form"!==n.type||Reflect.has(t,"form")||(t.form=!0),await this.initFeaturesFromNodes({childs:n.childs,features:t})}async initEntryFiles({root:e,features:t}){for await(const n of e.childs){let e;if("main"===n.name)e="index.js";else if("cli"===n.name)e="cli.js";else if("app"===n.name)e="app.js";else{if("api"!==n.name)continue;e="api.js"}t[`${n.name}_default_entry_file`]=e,n.entryFile=e}}async findNodeFormTarget({refNode:e,curNode:t}){if(!t)return;const n=e.definition.form,o=t.childs.find((e=>e.name===n&&"subworkflow"===e.type));return o||await this.findNodeFormTarget({refNode:e,curNode:t.parent})}async initAtomLibsAndDeps({libs:e,packageDependencies:t}){const n=e.filter((e=>"atom"===e.type));for(let e=0;e<n.length;e++){const o=n[e],r=await this.findAtomLibrary({url:o.name,libRef:o});o.atom=r;const i=r.doc.dependencies?.filter((e=>void 0===e.repo||"npm"===e.repo));i?.forEach((e=>{const n=t.find((t=>t.package===e.package));n?"string"==typeof e.path?(n.path||[]).some((t=>t===e.path))||(n.path=n.path||[],n.path.push(e.path)):Array.isArray(e.path)&&e.path.forEach((e=>{(n.path||[]).some((t=>t===e))||(n.path=n.path||[],n.path.push(e))})):t.push(e)}))}t.sort(((e,t)=>e.package?.localeCompare(t.package)))}async findAtomLibrary({url:e,libRef:n}){const o=U({url:e});if(!o)throw new Error(`Invalid package name: ${e}`);if(o.protocol||(o.protocol=this.#y),"ac:"===o.protocol){const t=o.pathname.split("/");if(1===t.length)return await L.first({where:{name:e,parent_id:this.#g.env.ATOM_LIBRARIES_ID,type:"workflow.lib"}});if(2===t.length){const e=await L.first({where:{name:t[0],parent_id:this.#g.env.ATOM_LIBRARIES_ID,type:"folder"}});return await L.first({where:{name:t[1],parent_id:e.id,type:"workflow.lib"}})}}else{if("local:"===o.protocol){const e=t.resolve(this.#i.projectSrcDir,`${o.pathname}.js`),n=[],r=(await G({file:e,recursive:!0})).all;for await(const e of r){if("npm"!==e.type)continue;if(n.find((t=>t.package===e.package)))continue;const t=await B({name:e.package,projectDir:this.#i.projectDir,setProgress:this.#j.setProgress});n.push({package:e.package,subpath:e.subpath,version:t.minorRange,type:"npm"})}return{name:o.pathname,doc:{type:"workflow.lib","content-type":"javascript",language:"js",dependencies:n},protocol:o.protocol}}if("npm:"===o.protocol){const e=await B({name:o.pathname,projectDir:this.#i.projectDir,setProgress:this.#j.setProgress});return{name:o.pathname,doc:{type:"workflow.lib",subtype:"flow"===n?.definition?.subtype?"workflow":null,"content-type":"javascript",language:"js",dependencies:[{package:o.pathname,version:e.minorRange,type:"npm"}]},protocol:o.protocol}}if("use:"===o.protocol){return{name:o.pathname,doc:{type:"function",dependencies:[]},protocol:o.protocol}}}}async resolveNodeTree({root:e}){for await(const t of e.childs)await this.resolveTypeWorkflow({node:t})}async resolveTypeWorkflow({node:e}){e.context.transform=e.context.transform||p(e.definition);const t=e.context.transform;for(let e=0;e<t.params?.length;e++){const n=t.params[e];if("string"==typeof n)t.params[e]={key:n,hasDefault:!1};else{const o=Object.keys(n)[0];t.params[e]={key:o,hasDefault:!0,default:n[o],type:typeof n[o]}}}e.context.next=e.childs[0];for await(const t of e.childs)await this.resolveType({node:t})}async resolveType({node:e}){const t={...this.#_,node:e};"function"==typeof e.resolve&&await e.resolve(t);for await(const t of e.childs)await this.resolveType({node:t})}async resolveTypeCommon({node:e}){const t=e.context.transform;t.hasOwnProperty("operation")&&(t.operation=await this.transformExpression(t.operation)),t.hasOwnProperty("page")&&(t.page=await this.transformExpression(t.page)),t.hasOwnProperty("print")&&(t.print=await this.transformExpression(t.print)),t.hasOwnProperty("sleep")&&(t.sleep=await this.transformExpression(t.sleep)),t.hasOwnProperty("assert")&&(t.assert=await this.transformExpression(t.assert))}async createAtomLibFiles({root:n}){await this.setProgress({message:"Creating external lib files."}),this.#s.typesDir="./types";const o=n.context.libs.filter((e=>"atom"===e.type));for(let n=0;n<o.length;n++){const r=o[n].atom,i=this.#i.projectDir;if("local:"===r.protocol){const n=t.resolve(this.#i.projectSrcDir,`${r.fileName||r.name}.js`),o=t.relative(`${this.#i.projectDir}/src/default/blocks`,n);if(!e.existsSync(n)){e.mkdirSync(t.dirname(n),{recursive:!0});let o="export default async (args)=>{\n";o+="}",e.writeFileSync(n,o,"utf8")}r.relativePath=o.split(t.sep).join("/"),this.#s.typesDir=`./types/${t.basename(i)}/src`}else if("npm:"===r.protocol)r.relativePath=r.name;else if("use:"===r.protocol);else{const n=`${i}/src/libs/${r.id}.js`,o=r.doc.contents?.find((e=>"esm"===e.format))||r.doc;e.writeFileSync(t.normalize(n),o.content,"utf8")}}}async createEngine({root:n}){await this.setProgress({message:"Creating engine file."});const o=this.#i.templateDir,r=i.compile(e.readFileSync(t.resolve(o,"src/default/engine.js.njk"),"utf8"),this.#c);for(let o=0;o<n.childs.length;o++){const i=n.childs[o];if(!i.entryFile)continue;const s=r.render({flow:i,ui:{package:"@flownet/react-app"}}),a=this.#i.projectDir,c=t.resolve(a,`src/default/${i.entryFile}`);e.writeFileSync(c,s,"utf8")}}async createNodeTree({root:e}){await this.setProgress({message:"Creating block files."});for await(const t of e.childs)await this.createTypeWorkflow({node:t})}async createTypeWorkflow({node:n}){const o=this.#i.templateDir,r=i.compile(e.readFileSync(t.resolve(o,"src/default/workflow.js.njk"),"utf8"),this.#c).render(n),s=this.#i.projectDir,a=t.resolve(s,`src/default/${n.codeKey}.js`);e.writeFileSync(a,r,"utf8");for await(const e of n.childs)await this.createType({node:e})}async createType({node:e}){switch(e.type){case"assign":case"steps":case"return":case"call":case"form":case"raise":case"switch":case"jump":case"tryexcept":case"for":case"operation":case"modules":this.createBlockFromTemplate({node:e})}for await(const t of e.childs)await this.createType({node:t})}createBlockFromTemplate({node:e}){const t=this.getBlockTemplate({node:e});e.context.render=t.render(e),this.createStepFile({node:e})}getBlockTemplate({node:n}){let o=this.#d[n.type];if(o)return o;const r=this.#i.templateDir;return o=i.compile(e.readFileSync(t.resolve(r,`src/default/blocks/${n.type}.js.njk`),"utf8"),this.#c),this.#d[n.type]=o,o}createStepFile({node:n}){const o=this.#i.projectDir,r=`${n.codeKey}.js`,i=t.resolve(o,`src/default/blocks/${r}`);e.writeFileSync(i,n.context.render,"utf8"),n.context.fileName=r,n.context.filePath=i}async transformExpression(e){let t=await this.transformValue(e);return t=JSON.stringify(t),t=this.replaceSpecialPattern(t),t}async transformValue(e){if(Array.isArray(e))for(let t=0;t<e.length;t++)e[t]=await this.transformValue(e[t]);else if(l(e)){const t=Object.keys(e);for(let n=0;n<t.length;n++){const o=t[n],r=await Q({expression:o});if(r)if("e"===r.processor){const t=e[o].replace(/(\r\n|\n|\r)/g,"");e[r.statement]=`$::${t}::`,delete e[o]}else e[o]=await this.transformValue(e[o]);else e[o]=await this.transformValue(e[o])}}else if("string"==typeof e){const t=await Q({expression:e});if(t){const{processor:n,statement:o}=t;switch(n){case"v":e=`$::v.${o}::`;break;case"e":e=`$::${o}::`;break;case"m":e=`$::closure.module['${o}']::`;break;case"f":e=`$::closure.form.${o}::`;break;case"for":e=`$::caller.for.${o}::`}}}return e}replaceSpecialPattern(e){return e.replace(/"\$::(.*?)::"/g,"$1")}replaceExpressionLegacy(e){return e.replaceAll(/(?<outer>"\${(?<inner>[^{]*)}")/g,"$2")}async createProjectYaml(){const n="flow.yaml",r=`Creating ${n}`;await this.setProgress({message:r});const{content:s,...a}=this.#s.doc,c={content:o.stringify(a)},p=this.#i.templateDir,l=i.compile(e.readFileSync(t.resolve(p,`${n}.njk`),"utf8"),this.#c).render(c),d=this.#i.projectDir,f=t.resolve(d,`${n}`);e.writeFileSync(f,l,"utf8")}async createProjectMainYaml(){const n="flow.main.yaml",r=`Creating ${n}`;await this.setProgress({message:r});const s={content:o.stringify(this.#a)},a=this.#i.templateDir,c=i.compile(e.readFileSync(t.resolve(a,`${n}.njk`),"utf8"),this.#c).render(s),p=this.#i.projectDir,l=t.resolve(p,`${n}`);e.writeFileSync(l,c,"utf8")}async runPrettifier(){const e=this.#i.projectDir,n=r.exec("prettier --write .",{cwd:t.resolve(e,"src")});if(0!==n.code)throw new Error(n.stderr)}async deploy(){if(await this.setProgress({message:"Deploying."}),this.#i.project?.devops){const e=[this.#i.project?.devops];for(let t=0;t<e.length;t++){let n=e[t];await this.deployProject({deploymentProject:n}),!0===n.isDirty&&await n.save()}}else if(this.#s.id){const e=await L.list({type:"workflow.deploy",parent_id:this.#s.id});for(let t=0;t<e.length;t++){let n=e[t];await this.deployProject({deploymentProject:n}),!0===n.isDirty&&(n=await L.update(n,{id:n.id}))}}}async deployProject(e){const{deploymentProject:t}=e,{yamlDocument:n}=t;if(t.doc.targets&&Array.isArray(t.doc.targets))throw new Error("Deployment project targets are deprecated. Please update targets in the yaml file.");const o=Object.keys(t.doc||{}),r=n||{};for(let e=0;e<o.length;e++){const n=t.doc[o[e]];n.name=o[e];const i=r.get(o[e]);await K({...this.#j,deploymentProject:t,deploymentProjectTarget:n,yamlTarget:i})}}async registerToPackageManager(e){const{target:t,packageJSON:n}=e;if(!this.#i.id)return;let o=await L.first({name:t.params.name,parent_id:this.#g.env.ATOM_PACKAGES_ID});o?(o.doc.versions.splice(0,0,{v:n.version}),await L.update(o,{id:o.id})):o=await L.create({parent_id:this.#g.env.ATOM_PACKAGES_ID,doc:{name:t.params.name,type:"pm",versions:[{v:n.version}]}})}async setProgress(e){const t="string"==typeof e?e:e?.message;console.log(ie.blue(t)),await this._cache_set(this.#h,{status:"IN_PROGRESS",message:t})}async build(){if(this.#k&&!this.#b)return await this.createNetwork();try{const n=this.#k?await J({root:this.#u}):void 0;if(this.#b){if(await this.initWorkflowDir(),await this.initNunjucks(),this.#k){const o=this.#i.project?.projectDir||this.#i.projectDir;e.writeFileSync(t.resolve(o,"./fnet/flow.bpmn"),n.diagramXML,"utf8")}await this.createAtomLibFiles({root:this.#u}),await this.createEngine({root:this.#u}),await this.createNodeTree({root:this.#u}),await this.createProjectYaml(),await this.createProjectMainYaml(),await C(this.#j),await I(this.#j),await N(this.#j),await O(this.#j),await $(this.#j),await S(this.#j),await T(this.#j),await A(this.#j),await F(this.#j),await R(this.#j),this.#x&&(await M(this.#j),await q(this.#j),this.#v&&await this.deploy())}await this._cache_set(this.#h,{status:"COMPLETED",data:{network:n}})}catch(e){throw await this._cache_set(this.#h,{status:"FAILED",message:e.message||e}),e}}async createNetwork(){try{const e=await J({root:this.#u});await this._cache_set(this.#h,{status:"COMPLETED",data:{...e}})}catch(e){throw await this._cache_set(this.#h,{status:"FAILED",message:e.message||e}),e}}}}var ro=function(){if(Vn)return Jt;Vn=1;const m=process.cwd(),{spawn:h}=e,y=t;n({name:["redis"],dir:m,optional:!0});const g=o,w=r,b=i,x=s,v=a,k=c,j=n,_=p,D=l,P=d,E=oo(),S=function(){if(Xn)return Gn;Xn=1;const e=f,t=u;return Gn=function({baseDir:n=__dirname}){let o=n;for(;o!==t.parse(o).root;){const n=t.join(o,"node_modules");if(e.existsSync(n))return n;o=t.dirname(o)}return null}}()({baseDir:__dirname}),A="win32"===process.platform?";":":";process.env.PATH=`${g.join(S,"/.bin")}${A}${process.env.PATH}`;let $=w(process.argv.slice(2)).command("create","Initialize flow node project",(e=>e.option("name",{type:"string"}).option("vscode",{type:"boolean",default:!0,alias:"vs"}).option("runtime",{type:"string",default:"node",choices:["node"]})),(async e=>{try{const t=g.resolve(S,"./@fnet/cli-project-flow/dist/template/project"),n=g.resolve(m,e.name);b.existsSync(n)||b.mkdirSync(n),await P({dir:t,outDir:n,context:e,copyUnmatchedAlso:!0});let o=v.exec("fnet build",{cwd:n});if(0!==o.code)throw new Error("Failed to build project.");if(v.which("git")&&(o=v.exec("git init --initial-branch=main",{cwd:n}),0!==o.code))throw new Error("Failed to initialize git.");if(v.which("code")&&e.vscode&&(o=v.exec(`cd ${n} && code .`),0!==o.code))throw new Error("Failed to open vscode.");console.log("Creating project succeeded!"),process.exit(0)}catch(e){console.error("Initialization failed!",e.message),process.exit(1)}})).command("project","Flow node project",(e=>e.option("update",{type:"boolean",default:!1,alias:"-u"})),(async e=>{try{const t=g.resolve(S,"@fnet/cli-project-flow/dist/template/project"),n=process.cwd(),o=await O(e);if(e.update){if(await P({dir:t,outDir:n,context:{name:o.project.projectFileParsed.name,runtime:"node"},copyUnmatchedAlso:!0}),0!==v.exec("fnet build",{cwd:n}).code)throw new Error("Failed to build project.");console.log("Updating project succeeded!")}process.exit(0)}catch(e){console.error("Project failed.",e.message),process.exit(1)}})).command("build","Build flownet project",(e=>e.option("id",{type:"string"}).option("buildId",{type:"string",alias:"bid"}).option("mode",{type:"string",default:"build",choices:["all","file","build","deploy","bpmn"]}).option("ftag",{type:"array"})),(async e=>{try{const t=await O(e),n=new E(t);await n.init(),await n.build(),console.log("Building workflow succeeded!"),process.exit(0)}catch(e){console.error("Building workflow failed!",e.message),process.exit(1)}})).command("deploy","Build and deploy flownet project",(e=>e.option("id",{type:"string"}).option("buildId",{type:"string",alias:"bid"}).option("ftag",{type:"array"})),(async e=>{try{const t=await O({...e,mode:"all"}),n=new E(t);await n.init(),await n.build(),console.log("Building workflow succeeded!"),process.exit(0)}catch(e){console.error("Building workflow failed!",e.message),process.exit(1)}})).command("file","Just create files",(e=>e.option("id",{type:"string"}).option("buildId",{type:"string",alias:"bid"}).option("ftag",{type:"array"})),(async e=>{try{const t=await O({...e,mode:"file"}),n=new E(t);await n.init(),await n.build(),console.log("Building workflow succeeded!"),process.exit(0)}catch(e){console.error("Building workflow failed!",e.message),process.exit(1)}}));function T(e,{name:t,bin:n,preArgs:o=[]}){return e.command(`${t||n} [commands..]`,`${n} ${o.join(" ")}`,(e=>e.help(!1).version(!1)),(async e=>{try{const t=await O(e),{projectDir:r}=t,i=e=>e.includes(" ")?"win32"===process.platform?`"${e.replace(/(["^])/g,"^$1")}"`:`"${e.replace(/(["\\$`])/g,"\\$1")}"`:e,s=process.argv.slice(3).map(i);h(n,[...o,...s],{cwd:r,stdio:"inherit",shell:!0}).on("close",(e=>{process.exit(e)}))}catch(e){console.error(e.message),process.exit(1)}}))}async function O(e){if(e.id){return{id:e.id,buildId:e.buildId,mode:e.mode,protocol:e.protocol||"ac:",projectDir:g.resolve(m,`./.output/${e.id}`),templateDir:g.resolve(S,"./@fnet/cli-project-flow/dist/template/default"),templateCommonDir:g.resolve(S,"./@fnet/cli-project-common/dist/template/default"),coreDir:g.resolve(S,"./@fnet/cli-project-flow/dist/template/core"),tags:e.ftag}}{const t=await async function({tags:e}){const t=g.resolve(m,"flow.yaml");if(!b.existsSync(t))throw new Error("flow.yaml file not found in current directory.");const{raw:n,parsed:o}=await k({file:t,tags:e}),r=g.dirname(t),i=o.main||"flow.main.yaml";let s=g.resolve(r,i);if(!b.existsSync(s)&&(s=g.resolve(r,i+".yaml"),!b.existsSync(s)))throw new Error(`${i} file not found in ${s}.`);const{raw:a,parsed:c}=await k({file:s,tags:e}),p={workflowAtom:{doc:{...o,content:c}},projectDir:r,projectFilePath:t,projectFileContent:n,projectFileParsed:o,projectMainFilePath:s,projectMainFileContent:a,projectMainFileParsed:c};let l=g.resolve(r,"fnet/targets.yaml");if(!b.existsSync(l)&&(l=g.resolve(r,"flow.devops.yaml"),b.existsSync(l))){const e=g.resolve(r,"fnet");b.existsSync(e)||b.mkdirSync(e),b.copyFileSync(l,g.resolve(r,"fnet/targets.yaml")),b.unlinkSync(l)}if(b.existsSync(l)){const{raw:t,parsed:n}=await k({file:l,tags:e}),o=x.parseDocument(t);p.devops={filePath:l,fileContent:t,yamlDocument:o,doc:{...n},type:"workflow.deploy",save:async()=>{b.writeFileSync(p.devops.filePath,o.toString())}}}const d=g.resolve(r,"readme.md");if(b.existsSync(d)){const e=b.readFileSync(d,"utf8");p.readme={filePath:d,fileContent:e,doc:{content:e,"content-type":"markdown"},type:"wiki"}}return p}({tags:e.ftag});return{buildId:e.buildId,mode:e.mode,protocol:e.protocol||"local:",templateDir:g.resolve(S,"./@fnet/cli-project-flow/dist/template/default"),templateCommonDir:g.resolve(S,"./@fnet/cli-project-common/dist/template/default"),coreDir:g.resolve(S,"./@fnet/cli-project-flow/dist/template/core"),projectDir:g.resolve(t.projectDir,"./.workspace"),projectSrcDir:g.resolve(t.projectDir,"./src"),project:t,tags:e.ftag}}}return $=$.command("input [name]","Create or modify an input config file",(e=>e.positional("name",{type:"string",demandOption:!1}).help(!1).version(!1)),(async e=>{try{const t=await O(e),{project:n}=t,{projectDir:o,projectFileParsed:r}=n,i=r.input;if(!i)throw new Error("Config schema not found in project file.");if(!Reflect.has(e,"name")){const{inputName:t}=await y({type:"input",name:"inputName",message:"Input name:",initial:"dev"});e.name=t}const s=g.resolve(o,".fnet");b.existsSync(s)||b.mkdirSync(s);const a=g.resolve(s,`${e.name}.fnet`),c=b.existsSync(a),p=await _({schema:i,format:"yaml",ref:c?a:void 0});b.writeFileSync(a,p)}catch(e){console.error(e.message),process.exit(1)}})),$=T($,{bin:"npm"}),$=T($,{bin:"node"}),$=T($,{name:"serve",bin:"npm",preArgs:["run","serve","--"]}),$=T($,{name:"watch",bin:"npm",preArgs:["run","watch","--"]}),$=T($,{name:"app",bin:"npm",preArgs:["run","app","--"]}),$=T($,{name:"cli",bin:"npm",preArgs:["run","cli","--"]}),$=T($,{bin:"npx"}),$=T($,{bin:"cdk"}),$=T($,{bin:"aws"}),$=function(e,{name:t,preArgs:n=[]}){return e.command(`${t} <config> <command> [options..]`,"Run a command with a config context",(e=>e.positional("config",{type:"string"}).positional("command",{type:"string"}).help(!1).version(!1)),(async e=>{try{const t=await O(e),{projectDir:o}=t,r=e.config,i=await j({name:r,dir:o,transferEnv:!1,optional:!0,tags:t.tags}),s=i?.data?.env||void 0,a=e.command,c=process.argv.slice(5);h(a,[...n,...c],{cwd:o,stdio:"inherit",shell:!0,env:{...process.env,...s}}).on("close",(e=>{process.exit(e)}))}catch(e){console.error(e.message),process.exit(1)}}))}($,{name:"with"}),$=function(e,{name:t,preArgs:n=[]}){return e.command(`${t} group [options..]`,"Run a command group.",(e=>e.positional("group",{type:"string"}).option("ftag",{type:"array"}).help(!1).version(!1)),(async e=>{try{const t=await O(e),{project:n}=t,{projectFileParsed:o}=n,r=o.commands;if(!r)throw new Error("Commands not found in project file.");const i=r[e.group];if(!i)throw new Error(`Command group '${e.group}' not found in project file.`);await D({commands:i})}catch(e){console.error(e.message),process.exit(1)}}))}($,{name:"run"}),$.demandCommand(1,"You need at least one command before moving on").help().argv,Jt}(),io=Q(ro);module.exports=io;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fnet/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.88.0",
|
|
4
4
|
"files": [
|
|
5
5
|
"dist"
|
|
6
6
|
],
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"@flownet/lib-to-webos": "^0.3.1",
|
|
32
32
|
"@fnet/auto-conda-env": "^0.1.23",
|
|
33
33
|
"@fnet/cli-project-common": "^0.3.1",
|
|
34
|
-
"@fnet/cli-project-flow": "^0.
|
|
34
|
+
"@fnet/cli-project-flow": "^0.8.1",
|
|
35
35
|
"@fnet/cli-project-node": "^0.3.19",
|
|
36
36
|
"@fnet/cli-project-schemas": "^0.1.1",
|
|
37
37
|
"@fnet/config": "^0.2.8",
|