@next-bricks/vb-experiment 0.2.6 → 0.2.8

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/bricks.json CHANGED
@@ -7,5 +7,5 @@
7
7
  "elements": [],
8
8
  "processors": [],
9
9
  "dependencies": {},
10
- "filePath": "bricks/vb-experiment/dist/index.b0b6f4f3.js"
10
+ "filePath": "bricks/vb-experiment/dist/index.8817b336.js"
11
11
  }
@@ -0,0 +1,2 @@
1
+ (self.webpackChunk_next_bricks_vb_experiment=self.webpackChunk_next_bricks_vb_experiment||[]).push([[110,560],{6782:function(e,t,n){var r,o;void 0===(o="function"==typeof(r=function(){"use strict";function t(e,t,n){var r=new XMLHttpRequest;r.open("GET",e),r.responseType="blob",r.onload=function(){s(r.response,t,n)},r.onerror=function(){console.error("could not download file")},r.send()}function r(e){var t=new XMLHttpRequest;t.open("HEAD",e,!1);try{t.send()}catch(e){}return 200<=t.status&&299>=t.status}function o(e){try{e.dispatchEvent(new MouseEvent("click"))}catch(n){var t=document.createEvent("MouseEvents");t.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),e.dispatchEvent(t)}}var a="object"==typeof window&&window.window===window?window:"object"==typeof self&&self.self===self?self:"object"==typeof n.g&&n.g.global===n.g?n.g:void 0,i=a.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),s=a.saveAs||("object"!=typeof window||window!==a?function(){}:"download"in HTMLAnchorElement.prototype&&!i?function(e,n,i){var s=a.URL||a.webkitURL,c=document.createElement("a");n=n||e.name||"download",c.download=n,c.rel="noopener","string"==typeof e?(c.href=e,c.origin===location.origin?o(c):r(c.href)?t(e,n,i):o(c,c.target="_blank")):(c.href=s.createObjectURL(e),setTimeout((function(){s.revokeObjectURL(c.href)}),4e4),setTimeout((function(){o(c)}),0))}:"msSaveOrOpenBlob"in navigator?function(e,n,a){if(n=n||e.name||"download","string"!=typeof e)navigator.msSaveOrOpenBlob(function(e,t){return void 0===t?t={autoBom:!1}:"object"!=typeof t&&(console.warn("Deprecated: Expected third argument to be a object"),t={autoBom:!t}),t.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob(["\ufeff",e],{type:e.type}):e}(e,a),n);else if(r(e))t(e,n,a);else{var i=document.createElement("a");i.href=e,i.target="_blank",setTimeout((function(){o(i)}))}}:function(e,n,r,o){if((o=o||open("","_blank"))&&(o.document.title=o.document.body.innerText="downloading..."),"string"==typeof e)return t(e,n,r);var s="application/octet-stream"===e.type,c=/constructor/i.test(a.HTMLElement)||a.safari,u=/CriOS\/[\d]+/.test(navigator.userAgent);if((u||s&&c||i)&&"undefined"!=typeof FileReader){var l=new FileReader;l.onloadend=function(){var e=l.result;e=u?e:e.replace(/^data:[^;]*;/,"data:attachment/file;"),o?o.location.href=e:location=e,o=null},l.readAsDataURL(e)}else{var f=a.URL||a.webkitURL,v=f.createObjectURL(e);o?o.location=v:location.href=v,o=null,setTimeout((function(){f.revokeObjectURL(v)}),4e4)}});a.saveAs=s.saveAs=s,e.exports=s})?r.apply(t,[]):r)||(e.exports=o)},4795:(e,t,n)=>{"use strict";function r(e,t,n,r,o,a,i){try{var s=e[a](i),c=s.value}catch(e){return void n(e)}s.done?t(c):Promise.resolve(c).then(r,o)}function o(e){return function(){var t=this,n=arguments;return new Promise((function(o,a){var i=e.apply(t,n);function s(e){r(i,o,a,s,c,"next",e)}function c(e){r(i,o,a,s,c,"throw",e)}s(void 0)}))}}n.d(t,{Z:()=>o})},7110:(e,t,n)=>{"use strict";n.r(t),n.d(t,{JsonStorage:()=>u,createProviderClass:()=>a,deepFreeze:()=>i,hasOwnProperty:()=>s,isObject:()=>c,unwrapProvider:()=>f});var r=n(4795),o=n(6782);function a(e){return class extends HTMLElement{get $$typeof(){return"provider"}resolve(){return e(...arguments)}saveAs(t){var n=arguments;return(0,r.Z)((function*(){for(var r=n.length,a=new Array(r>1?r-1:0),i=1;i<r;i++)a[i-1]=n[i];var s=yield e(...a);(0,o.saveAs)(s,t)}))()}}}function i(e){var t=Object.getOwnPropertyNames(e);for(var n of t){var r=e[n];r&&"object"==typeof r&&i(r)}return Object.freeze(e)}function s(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function c(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}class u{constructor(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"brick-next-";this.storage=e,this.prefix=t}setItem(e,t){this.storage.setItem(this.prefix+e,JSON.stringify(t))}getItem(e){var t;return JSON.parse(null!==(t=this.storage.getItem(this.prefix+e))&&void 0!==t?t:"null")}removeItem(e){return this.storage.removeItem(this.prefix+e)}clear(){return this.storage.clear()}}var l=new Map;function f(e){return function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];var o=function(e){var t=l.get(e);return t||(t=document.createElement(e),l.set(e,t),t)}(e);return o.resolve(...n)}}}}]);
2
+ //# sourceMappingURL=110.cc2ff3bb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunks/110.cc2ff3bb.js","mappings":"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","sources":["webpack:///../../node_modules/file-saver/dist/FileSaver.min.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///../../node_modules/@next-core/utils/dist/esm/general/createProviderClass.js","webpack:///../../node_modules/@next-core/utils/dist/esm/general/deepFreeze.js","webpack:///../../node_modules/@next-core/utils/dist/esm/general/hasOwnProperty.js","webpack:///../../node_modules/@next-core/utils/dist/esm/general/isObject.js","webpack:///../../node_modules/@next-core/utils/dist/esm/general/JsonStorage.js","webpack:///../../node_modules/@next-core/utils/dist/esm/general/unwrapProvider.js"],"sourcesContent":["(function(a,b){if(\"function\"==typeof define&&define.amd)define([],b);else if(\"undefined\"!=typeof exports)b();else{b(),a.FileSaver={exports:{}}.exports}})(this,function(){\"use strict\";function b(a,b){return\"undefined\"==typeof b?b={autoBom:!1}:\"object\"!=typeof b&&(console.warn(\"Deprecated: Expected third argument to be a object\"),b={autoBom:!b}),b.autoBom&&/^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(a.type)?new Blob([\"\\uFEFF\",a],{type:a.type}):a}function c(a,b,c){var d=new XMLHttpRequest;d.open(\"GET\",a),d.responseType=\"blob\",d.onload=function(){g(d.response,b,c)},d.onerror=function(){console.error(\"could not download file\")},d.send()}function d(a){var b=new XMLHttpRequest;b.open(\"HEAD\",a,!1);try{b.send()}catch(a){}return 200<=b.status&&299>=b.status}function e(a){try{a.dispatchEvent(new MouseEvent(\"click\"))}catch(c){var b=document.createEvent(\"MouseEvents\");b.initMouseEvent(\"click\",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),a.dispatchEvent(b)}}var f=\"object\"==typeof window&&window.window===window?window:\"object\"==typeof self&&self.self===self?self:\"object\"==typeof global&&global.global===global?global:void 0,a=f.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),g=f.saveAs||(\"object\"!=typeof window||window!==f?function(){}:\"download\"in HTMLAnchorElement.prototype&&!a?function(b,g,h){var i=f.URL||f.webkitURL,j=document.createElement(\"a\");g=g||b.name||\"download\",j.download=g,j.rel=\"noopener\",\"string\"==typeof b?(j.href=b,j.origin===location.origin?e(j):d(j.href)?c(b,g,h):e(j,j.target=\"_blank\")):(j.href=i.createObjectURL(b),setTimeout(function(){i.revokeObjectURL(j.href)},4E4),setTimeout(function(){e(j)},0))}:\"msSaveOrOpenBlob\"in navigator?function(f,g,h){if(g=g||f.name||\"download\",\"string\"!=typeof f)navigator.msSaveOrOpenBlob(b(f,h),g);else if(d(f))c(f,g,h);else{var i=document.createElement(\"a\");i.href=f,i.target=\"_blank\",setTimeout(function(){e(i)})}}:function(b,d,e,g){if(g=g||open(\"\",\"_blank\"),g&&(g.document.title=g.document.body.innerText=\"downloading...\"),\"string\"==typeof b)return c(b,d,e);var h=\"application/octet-stream\"===b.type,i=/constructor/i.test(f.HTMLElement)||f.safari,j=/CriOS\\/[\\d]+/.test(navigator.userAgent);if((j||h&&i||a)&&\"undefined\"!=typeof FileReader){var k=new FileReader;k.onloadend=function(){var a=k.result;a=j?a:a.replace(/^data:[^;]*;/,\"data:attachment/file;\"),g?g.location.href=a:location=a,g=null},k.readAsDataURL(b)}else{var l=f.URL||f.webkitURL,m=l.createObjectURL(b);g?g.location=m:location.href=m,g=null,setTimeout(function(){l.revokeObjectURL(m)},4E4)}});f.saveAs=g.saveAs=g,\"undefined\"!=typeof module&&(module.exports=g)});\n\n//# sourceMappingURL=FileSaver.min.js.map","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}","import _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nimport { saveAs } from \"file-saver\";\nexport function createProviderClass(api) {\n return class extends HTMLElement {\n get $$typeof() {\n return \"provider\";\n }\n resolve() {\n return api(...arguments);\n }\n saveAs(filename) {\n var _arguments = arguments;\n return _asyncToGenerator(function* () {\n for (var _len = _arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = _arguments[_key];\n }\n var blob = yield api(...args);\n saveAs(blob, filename);\n })();\n }\n };\n}\n//# sourceMappingURL=createProviderClass.js.map","// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze\n\n/** @internal */\nexport function deepFreeze(object) {\n // Retrieve the property names defined on object\n var propNames = Object.getOwnPropertyNames(object);\n\n // Freeze properties before freezing self\n\n for (var name of propNames) {\n var value = object[name];\n if (value && typeof value === \"object\") {\n deepFreeze(value);\n }\n }\n return Object.freeze(object);\n}\n//# sourceMappingURL=deepFreeze.js.map","export function hasOwnProperty(object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n}\n//# sourceMappingURL=hasOwnProperty.js.map","// Ref https://github.com/lodash/lodash/blob/4.17.11/lodash.js#L11744\nexport function isObject(value) {\n var type = typeof value;\n return value != null && (type == \"object\" || type == \"function\");\n}\n//# sourceMappingURL=isObject.js.map","// This is copied from\n// [@next-libs/storage](https://github.com/easyops-cn/next-libs/tree/master/libs/storage),\n// and the types is refined.\n// The usage of JsonStorage from @next-libs/storage should be deprecated,\n// and migrated to from @next-core/brick-utils.\nexport class JsonStorage {\n constructor(storage) {\n var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"brick-next-\";\n this.storage = storage;\n this.prefix = prefix;\n }\n setItem(name, value) {\n this.storage.setItem(this.prefix + name, JSON.stringify(value));\n }\n getItem(name) {\n var _this$storage$getItem;\n return JSON.parse((_this$storage$getItem = this.storage.getItem(this.prefix + name)) !== null && _this$storage$getItem !== void 0 ? _this$storage$getItem : \"null\");\n }\n removeItem(name) {\n return this.storage.removeItem(this.prefix + name);\n }\n clear() {\n return this.storage.clear();\n }\n}\n//# sourceMappingURL=JsonStorage.js.map","var pool = new Map();\nfunction getProviderBrick(provider) {\n var brick = pool.get(provider);\n if (brick) {\n return brick;\n }\n brick = document.createElement(provider);\n pool.set(provider, brick);\n return brick;\n}\nexport function unwrapProvider(provider) {\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var brick = getProviderBrick(provider);\n return brick.resolve(...args);\n };\n}\n//# sourceMappingURL=unwrapProvider.js.map"],"names":["c","a","b","d","XMLHttpRequest","open","responseType","onload","g","response","onerror","console","error","send","status","e","dispatchEvent","MouseEvent","document","createEvent","initMouseEvent","window","f","self","global","navigator","test","userAgent","saveAs","HTMLAnchorElement","prototype","h","i","URL","webkitURL","j","createElement","name","download","rel","href","origin","location","target","createObjectURL","setTimeout","revokeObjectURL","msSaveOrOpenBlob","autoBom","warn","type","Blob","title","body","innerText","HTMLElement","safari","FileReader","k","onloadend","result","replace","readAsDataURL","l","m","module","exports","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","done","Promise","then","_asyncToGenerator","fn","this","args","arguments","apply","err","undefined","createProviderClass","api","$$typeof","filename","_arguments","_len","length","Array","_key","blob","deepFreeze","object","propNames","Object","getOwnPropertyNames","freeze","property","hasOwnProperty","call","isObject","JsonStorage","constructor","storage","prefix","setItem","JSON","stringify","getItem","_this$storage$getItem","parse","removeItem","clear","pool","Map","unwrapProvider","provider","brick","get","set","getProviderBrick"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- "use strict";(self.webpackChunk_next_bricks_vb_experiment=self.webpackChunk_next_bricks_vb_experiment||[]).push([[190],{9190:(e,n,t)=>{t.r(n);var r=t(4795),o=t(2413),a=t(1297),i=t.n(a),s=t(6782),l=t(554),c=t(8828),p=t(311),d=t(7243),f=t(1639),u=t(8003),m=t(299),y=t(5125),v=t(9602),h=t(7287),x=t(2524),g=t(3626),j=t(8223),_=t(4450),b=t(3239),w=t(7040),A=t(3870),k=t(8649),S=t(5670),E=t(5202);function I(){return(I=(0,r.Z)((function*(e){var n,t,r,o,a,l,{projectDetail:c,storyboard:p}=e,I=new(i()),O=I.folder("project"),P=O.folder("src"),J={extracts:[],namePool:new Map},M=(0,f.I$)(p.routes,[],J),R={id:c.appId,name:c.name,homepage:c.appSetting.homepage,layoutType:c.appSetting.layoutType,theme:c.appSetting.theme,noAuthGuard:c.appSetting.noAuthGuard,locales:c.appSetting.locales,defaultConfig:JSON.parse(c.appSetting.defaultConfig||"{}"),menuIcon:JSON.parse(c.appSetting.icon||"null"),standaloneMode:!0};P.file("app.js",yield N("export default ".concat(JSON.stringify(R,null,2),";")));var Z=null!==(n=p.meta)&&void 0!==n?n:{},F=null!==(t=Z.customTemplates)&&void 0!==t?t:[],D=null!==(r=Z.functions)&&void 0!==r?r:[],G=null!==(o=Z.menus)&&void 0!==o?o:[],U=null!==(a=Z.contracts)&&void 0!==a?a:[],z=null!==(l=Z.i18n)&&void 0!==l?l:{};delete Z.customTemplates,delete Z.functions,delete Z.menus,delete Z.contracts,delete Z.i18n,delete Z.workflows,delete Z.mocks,delete Z.userGroups;var W=(0,f.LK)(F,["components"],J);J.extracts.push({name:"index",path:["components"],node:W,nodeType:"others"});var B=(0,u.B)(J.extracts);P.file("index.js",v),P.file("routes.jsx",yield N((0,m.R)(M,"routes",["routes.jsx"])));var H=P.folder("resources"),K=H.folder("functions"),L=[],$=[];for(var q of D){if("index"===q.name)throw new Error('Unexpected function name: "index"');var Q=new Set,{code:V}=(0,d.transform)(q.source,{filename:"expr.".concat(q.typescript?"ts":"js"),plugins:[...q.typescript?["syntax-typescript"]:[],S.Z,[E.Z,{imports:Q}]]}),X=Q.has("FN");X&&Q.delete("FN");var Y=[];Q.size>0&&Y.push("import { ".concat([...Q].join(", "),' } from "next-jsx/runtime";')),X&&Y.push('import FN from "./index.js";'),Y.length>0&&(V="".concat(Y.join("\n"),"\n\n").concat(V)),K.file("".concat(q.name,".").concat(q.typescript?"ts":"js"),V),$.push("import ".concat(q.name,' from "./').concat(q.name,'.js";')),L.push(q.name)}K.file("index.js",yield N("".concat($.join("\n"),"\n\nconst FN = { ").concat(L.join(",")," };\n\nexport default FN;")));var ee=H.folder("menus"),ne=[],te=[];for(var re of G){if(C(re),"index"===re.menuId)throw new Error('Unexpected menu id: "index"');var oe="".concat(re.menuId,".js");ee.file(oe,yield N((0,m.R)(re,"menu",["resources","menus",oe])));var ae=re.menuId.replace(/^\d+|[^\w]+/g,"_");k.h8.has(ae)&&(ae="".concat(ae,"__2")),te.push("import ".concat(ae,' from "./').concat(oe,'";')),ne.push(ae)}ee.file("index.js",yield N("".concat(te.join("\n"),"\n\nexport default [").concat(ne.join(","),"]")));var ie=H.folder("contracts"),se=[],le=[];for(var ce of U){if("index"===ce.name)throw new Error('Unexpected contract name: "index"');ie.file("".concat(ce.name,".js"),yield N("export default ".concat(JSON.stringify(ce),";")));var pe=ce.name.replace(/^\d+|[^\w]+/g,"_");le.push("import ".concat(pe,' from "./').concat(ce.name,'.js";')),se.push(pe)}ie.file("index.js",yield N("".concat(le.join("\n"),"\n\nexport default [").concat(se.join(","),"]"))),H.folder("i18n").file("index.js",yield N("export default ".concat(JSON.stringify(z),";"))),H.file("meta.js",yield N("export default ".concat(JSON.stringify(Z,null,2),";"))),H.file("index.js",y),yield T(B,P,[]),O.folder("mock-micro-apps").folder(c.appId).file(".gitignore","*\n!.gitignore"),O.file(".editorconfig",h),O.file(".gitignore",x),O.file("dev.config.mjs",j),O.file("declarations.d.ts",g),O.file("jsconfig.json",_),O.file("next-jsx.config.js",b.replaceAll("__APP_ID__",c.appId)),O.file("package.json",w.replaceAll("__APP_ID__",c.appId)),O.file("README.md",A.replaceAll("__PROJECT_NAME__",c.name).replaceAll("__PROJECT_HOMEPAGE__",c.appSetting.homepage));var de=yield I.generateAsync({type:"blob"});(0,s.saveAs)(de,"project.zip")}))).apply(this,arguments)}function N(e){return O.apply(this,arguments)}function O(){return O=(0,r.Z)((function*(e){var{typescript:n,semi:t=!0,printWidth:r}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return yield(0,l.WU)(e,{parser:n?"babel-ts":"babel",plugins:[c,p],semi:t,printWidth:r,trailingComma:"es5"})})),O.apply(this,arguments)}function T(e,n,t){return P.apply(this,arguments)}function P(){return(P=(0,r.Z)((function*(e,n,t){for(var r of e){var o=[...t,r.name];if("folder"===r.type){var a=n.folder(r.name);yield T(r.items,a,o)}else n.file("".concat(r.name,".js").concat("routes"===r.nodeType||"bricks"===r.nodeType||"template"===r.nodeType?"x":""),yield N((0,m.R)(r.node,r.nodeType,o)))}}))).apply(this,arguments)}function C(e){for(var[n,t]of Object.entries(e))switch(n){case"items":if(Array.isArray(t))for(var r of t)J(r);break;case"type":"main"===t&&delete e[n];break;case"if":break;case"i18n":0===Object.keys(t).length&&delete e[n];break;default:null!==t&&!1!==t||delete e[n]}}function J(e){for(var[n,t]of Object.entries(e))switch(n){case"children":Array.isArray(t)&&t.length>0&&J(t);break;case"if":break;case"activeExcludes":case"activeIncludes":Array.isArray(t)&&0===t.length&&delete e[n];break;default:null!==t&&!1!==t||delete e[n]}}function M(){return(M=(0,r.Z)((function*(e){var{name:n,files:t}=e,r=new Map,o=new(i()),a=o.folder("widgets").folder(n);for(var{path:l,content:c}of t){var p=l.split("/"),d=p.pop(),f=a,u=1;for(var m of p){var y=p.slice(0,u).join("/"),v=r.get(y);v?f=v:(f=f.folder(m),r.set(y,f)),u++}f.file(d,c)}var h=yield o.generateAsync({type:"blob"});(0,s.saveAs)(h,"".concat(n,".zip"))}))).apply(this,arguments)}customElements.define("vb-experiment.export-as-source-files",(0,o.createProviderClass)((function(e){return I.apply(this,arguments)}))),customElements.define("vb-experiment.export-widgets",(0,o.createProviderClass)((function(e){return M.apply(this,arguments)})))}}]);
2
- //# sourceMappingURL=190.01136ee5.js.map
1
+ "use strict";(self.webpackChunk_next_bricks_vb_experiment=self.webpackChunk_next_bricks_vb_experiment||[]).push([[190],{9190:(e,n,t)=>{t.r(n);var r=t(4795),o=t(9171),a=t(1297),i=t.n(a),s=t(6782),l=t(554),c=t(8828),p=t(311),d=t(7243),f=t(1639),u=t(8003),m=t(299),y=t(5125),v=t(9602),h=t(7287),x=t(2524),g=t(3626),j=t(8223),_=t(4450),b=t(3239),w=t(7040),A=t(3870),k=t(8649),S=t(5670),E=t(5202);function I(){return(I=(0,r.Z)((function*(e){var n,t,r,o,a,l,{projectDetail:c,storyboard:p}=e,I=new(i()),O=I.folder("project"),P=O.folder("src"),J={extracts:[],namePool:new Map},M=(0,f.I$)(p.routes,[],J),R={id:c.appId,name:c.name,homepage:c.appSetting.homepage,layoutType:c.appSetting.layoutType,theme:c.appSetting.theme,noAuthGuard:c.appSetting.noAuthGuard,locales:c.appSetting.locales,defaultConfig:JSON.parse(c.appSetting.defaultConfig||"{}"),menuIcon:JSON.parse(c.appSetting.icon||"null"),standaloneMode:!0};P.file("app.js",yield N("export default ".concat(JSON.stringify(R,null,2),";")));var Z=null!==(n=p.meta)&&void 0!==n?n:{},F=null!==(t=Z.customTemplates)&&void 0!==t?t:[],D=null!==(r=Z.functions)&&void 0!==r?r:[],G=null!==(o=Z.menus)&&void 0!==o?o:[],U=null!==(a=Z.contracts)&&void 0!==a?a:[],z=null!==(l=Z.i18n)&&void 0!==l?l:{};delete Z.customTemplates,delete Z.functions,delete Z.menus,delete Z.contracts,delete Z.i18n,delete Z.workflows,delete Z.mocks,delete Z.userGroups;var W=(0,f.LK)(F,["components"],J);J.extracts.push({name:"index",path:["components"],node:W,nodeType:"others"});var B=(0,u.B)(J.extracts);P.file("index.js",v),P.file("routes.jsx",yield N((0,m.R)(M,"routes",["routes.jsx"])));var H=P.folder("resources"),K=H.folder("functions"),L=[],$=[];for(var q of D){if("index"===q.name)throw new Error('Unexpected function name: "index"');var Q=new Set,{code:V}=(0,d.transform)(q.source,{filename:"expr.".concat(q.typescript?"ts":"js"),plugins:[...q.typescript?["syntax-typescript"]:[],S.Z,[E.Z,{imports:Q}]]}),X=Q.has("FN");X&&Q.delete("FN");var Y=[];Q.size>0&&Y.push("import { ".concat([...Q].join(", "),' } from "next-jsx/runtime";')),X&&Y.push('import FN from "./index.js";'),Y.length>0&&(V="".concat(Y.join("\n"),"\n\n").concat(V)),K.file("".concat(q.name,".").concat(q.typescript?"ts":"js"),V),$.push("import ".concat(q.name,' from "./').concat(q.name,'.js";')),L.push(q.name)}K.file("index.js",yield N("".concat($.join("\n"),"\n\nconst FN = { ").concat(L.join(",")," };\n\nexport default FN;")));var ee=H.folder("menus"),ne=[],te=[];for(var re of G){if(C(re),"index"===re.menuId)throw new Error('Unexpected menu id: "index"');var oe="".concat(re.menuId,".js");ee.file(oe,yield N((0,m.R)(re,"menu",["resources","menus",oe])));var ae=re.menuId.replace(/^\d+|[^\w]+/g,"_");k.h8.has(ae)&&(ae="".concat(ae,"__2")),te.push("import ".concat(ae,' from "./').concat(oe,'";')),ne.push(ae)}ee.file("index.js",yield N("".concat(te.join("\n"),"\n\nexport default [").concat(ne.join(","),"]")));var ie=H.folder("contracts"),se=[],le=[];for(var ce of U){if("index"===ce.name)throw new Error('Unexpected contract name: "index"');ie.file("".concat(ce.name,".js"),yield N("export default ".concat(JSON.stringify(ce),";")));var pe=ce.name.replace(/^\d+|[^\w]+/g,"_");le.push("import ".concat(pe,' from "./').concat(ce.name,'.js";')),se.push(pe)}ie.file("index.js",yield N("".concat(le.join("\n"),"\n\nexport default [").concat(se.join(","),"]"))),H.folder("i18n").file("index.js",yield N("export default ".concat(JSON.stringify(z),";"))),H.file("meta.js",yield N("export default ".concat(JSON.stringify(Z,null,2),";"))),H.file("index.js",y),yield T(B,P,[]),O.folder("mock-micro-apps").folder(c.appId).file(".gitignore","*\n!.gitignore"),O.file(".editorconfig",h),O.file(".gitignore",x),O.file("dev.config.mjs",j),O.file("declarations.d.ts",g),O.file("jsconfig.json",_),O.file("next-jsx.config.js",b.replaceAll("__APP_ID__",c.appId)),O.file("package.json",w.replaceAll("__APP_ID__",c.appId)),O.file("README.md",A.replaceAll("__PROJECT_NAME__",c.name).replaceAll("__PROJECT_HOMEPAGE__",c.appSetting.homepage));var de=yield I.generateAsync({type:"blob"});(0,s.saveAs)(de,"project.zip")}))).apply(this,arguments)}function N(e){return O.apply(this,arguments)}function O(){return O=(0,r.Z)((function*(e){var{typescript:n,semi:t=!0,printWidth:r}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return yield(0,l.WU)(e,{parser:n?"babel-ts":"babel",plugins:[c,p],semi:t,printWidth:r,trailingComma:"es5"})})),O.apply(this,arguments)}function T(e,n,t){return P.apply(this,arguments)}function P(){return(P=(0,r.Z)((function*(e,n,t){for(var r of e){var o=[...t,r.name];if("folder"===r.type){var a=n.folder(r.name);yield T(r.items,a,o)}else n.file("".concat(r.name,".js").concat("routes"===r.nodeType||"bricks"===r.nodeType||"template"===r.nodeType?"x":""),yield N((0,m.R)(r.node,r.nodeType,o)))}}))).apply(this,arguments)}function C(e){for(var[n,t]of Object.entries(e))switch(n){case"items":if(Array.isArray(t))for(var r of t)J(r);break;case"type":"main"===t&&delete e[n];break;case"if":break;case"i18n":0===Object.keys(t).length&&delete e[n];break;default:null!==t&&!1!==t||delete e[n]}}function J(e){for(var[n,t]of Object.entries(e))switch(n){case"children":Array.isArray(t)&&t.length>0&&J(t);break;case"if":break;case"activeExcludes":case"activeIncludes":Array.isArray(t)&&0===t.length&&delete e[n];break;default:null!==t&&!1!==t||delete e[n]}}function M(){return(M=(0,r.Z)((function*(e){var{name:n,files:t}=e,r=new Map,o=new(i()),a=o.folder("widgets").folder(n);for(var{path:l,content:c}of t){var p=l.split("/"),d=p.pop(),f=a,u=1;for(var m of p){var y=p.slice(0,u).join("/"),v=r.get(y);v?f=v:(f=f.folder(m),r.set(y,f)),u++}f.file(d,c)}var h=yield o.generateAsync({type:"blob"});(0,s.saveAs)(h,"".concat(n,".zip"))}))).apply(this,arguments)}customElements.define("vb-experiment.export-as-source-files",(0,o.createProviderClass)((function(e){return I.apply(this,arguments)}))),customElements.define("vb-experiment.export-widgets",(0,o.createProviderClass)((function(e){return M.apply(this,arguments)})))}}]);
2
+ //# sourceMappingURL=190.c1631b6b.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chunks/190.01136ee5.js","mappings":"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","sources":["webpack:///./src/data-providers/export-as-source-files.ts","webpack:///./src/data-providers/export-widgets.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport type { Storyboard, MicroApp, StoryboardMeta } from \"@next-core/types\";\nimport { createProviderClass } from \"@next-core/utils/general\";\nimport JSZip from \"jszip\";\nimport { saveAs } from \"file-saver\";\nimport { format } from \"prettier/standalone\";\nimport * as prettierPluginBabel from \"prettier/plugins/babel\";\nimport * as prettierPluginEstree from \"prettier/plugins/estree\";\nimport { transform } from \"@babel/standalone\";\nimport {\n ExtractState,\n extractRoutes,\n extractTemplates,\n} from \"./utils/extract.js\";\nimport {\n SourceFileOrFolder,\n buildFileStructure,\n} from \"./utils/buildFileStructure.js\";\nimport { generate } from \"./utils/generators/generate.js\";\nimport srcResourcesIndexJs from \"./raws/src/resources/index.js.txt\";\nimport srcIndexJs from \"./raws/src/index.js.txt\";\nimport editorConfig from \"./raws/.editorconfig.txt\";\nimport gitIgnore from \"./raws/.gitignore.txt\";\nimport declarationsDTs from \"./raws/declarations.d.ts.txt\";\nimport devConfigMjs from \"./raws/dev.config.mjs.txt\";\nimport jsconfigJson from \"./raws/jsconfig.json.txt\";\nimport nextJsxConfigJs from \"./raws/next-jsx.config.js.txt\";\nimport packageJson from \"./raws/package.json.txt\";\nimport readmeMd from \"./raws/README.md.txt\";\nimport { JS_RESERVED_WORDS } from \"./utils/constants.js\";\nimport TransformStoryboardFunction from \"./utils/plugins/storyboard-function.js\";\nimport SmartImports from \"./utils/plugins/smart-imports.js\";\n\nexport interface StoryboardAssemblyResult {\n storyboard: Storyboard;\n\n projectDetail: {\n appId: string;\n name: string;\n appSetting: Pick<\n MicroApp,\n \"homepage\" | \"theme\" | \"locales\" | \"noAuthGuard\"\n > & {\n layoutType?: string;\n defaultConfig?: string;\n icon?: string;\n };\n brickNextVersion?: number;\n };\n}\n\nexport async function exportAsSourceFiles({\n projectDetail,\n storyboard,\n}: StoryboardAssemblyResult): Promise<void> {\n const zip = new JSZip();\n const project = zip.folder(\"project\")!;\n const src = project.folder(\"src\")!;\n\n const extractState: ExtractState = {\n extracts: [],\n namePool: new Map(),\n };\n const extractedRoutes = extractRoutes(storyboard.routes, [], extractState);\n\n const app: MicroApp & { layoutType?: string } = {\n id: projectDetail.appId,\n name: projectDetail.name,\n homepage: projectDetail.appSetting.homepage,\n layoutType: projectDetail.appSetting.layoutType,\n theme: projectDetail.appSetting.theme,\n noAuthGuard: projectDetail.appSetting.noAuthGuard,\n locales: projectDetail.appSetting.locales,\n defaultConfig: JSON.parse(projectDetail.appSetting.defaultConfig || \"{}\"),\n menuIcon: JSON.parse(projectDetail.appSetting.icon || \"null\"),\n standaloneMode: true,\n };\n src.file(\n \"app.js\",\n await formatJs(`export default ${JSON.stringify(app, null, 2)};`),\n );\n\n const meta = (storyboard.meta ?? {}) as StoryboardMeta & {\n workflows?: unknown;\n userGroups?: unknown;\n };\n const customTemplates = meta.customTemplates ?? [];\n const functions = meta.functions ?? [];\n const menus = meta.menus ?? [];\n const contracts = meta.contracts ?? [];\n const i18n = meta.i18n ?? {};\n delete meta.customTemplates;\n delete meta.functions;\n delete meta.menus;\n delete meta.contracts;\n delete meta.i18n;\n delete meta.workflows;\n delete meta.mocks;\n delete meta.userGroups;\n\n const extractedTemplates = extractTemplates(\n customTemplates,\n [\"components\"],\n extractState,\n );\n extractState.extracts.push({\n name: \"index\",\n path: [\"components\"],\n node: extractedTemplates,\n nodeType: \"others\",\n });\n\n const fileStructure = buildFileStructure(extractState.extracts);\n\n src.file(\"index.js\", srcIndexJs);\n\n src.file(\n \"routes.jsx\",\n await formatJs(generate(extractedRoutes, \"routes\", [\"routes.jsx\"])),\n );\n\n const resources = src.folder(\"resources\")!;\n\n // Functions\n const fnDir = resources.folder(\"functions\")!;\n const fnNames: string[] = [];\n const fnImports: string[] = [];\n for (const fn of functions) {\n if (fn.name === \"index\") {\n throw new Error('Unexpected function name: \"index\"');\n }\n\n // Prepend with `export default` for functions\n const inferredImports = new Set<string>();\n let { code } = transform(fn.source, {\n filename: `expr.${fn.typescript ? \"ts\" : \"js\"}`,\n plugins: [\n ...(fn.typescript ? [\"syntax-typescript\"] : []),\n TransformStoryboardFunction,\n [\n SmartImports,\n {\n imports: inferredImports,\n },\n ],\n ],\n }) as { code: string };\n const hasFN = inferredImports.has(\"FN\");\n if (hasFN) {\n inferredImports.delete(\"FN\");\n }\n const importStrings: string[] = [];\n if (inferredImports.size > 0) {\n importStrings.push(\n `import { ${[...inferredImports].join(\n \", \",\n )} } from \"next-jsx/runtime\";`,\n );\n }\n if (hasFN) {\n importStrings.push(`import FN from \"./index.js\";`);\n }\n if (importStrings.length > 0) {\n code = `${importStrings.join(\"\\n\")}\\n\\n${code}`;\n }\n\n fnDir.file(`${fn.name}.${fn.typescript ? \"ts\" : \"js\"}`, code);\n fnImports.push(`import ${fn.name} from \"./${fn.name}.js\";`);\n fnNames.push(fn.name);\n }\n fnDir.file(\n \"index.js\",\n await formatJs(\n `${fnImports.join(\"\\n\")}\\n\\nconst FN = { ${fnNames.join(\n \",\",\n )} };\\n\\nexport default FN;`,\n ),\n );\n\n // Menus\n const menusDir = resources.folder(\"menus\")!;\n const menuNames: string[] = [];\n const menuImports: string[] = [];\n for (const menu of menus) {\n cleanMenu(menu);\n if (menu.menuId === \"index\") {\n throw new Error('Unexpected menu id: \"index\"');\n }\n const filename = `${menu.menuId}.js`;\n menusDir.file(\n filename,\n await formatJs(generate(menu, \"menu\", [\"resources\", \"menus\", filename])),\n );\n let name = menu.menuId.replace(/^\\d+|[^\\w]+/g, \"_\");\n if (JS_RESERVED_WORDS.has(name)) {\n name = `${name}__2`;\n }\n menuImports.push(`import ${name} from \"./${filename}\";`);\n menuNames.push(name);\n }\n menusDir.file(\n \"index.js\",\n await formatJs(\n `${menuImports.join(\"\\n\")}\\n\\nexport default [${menuNames.join(\",\")}]`,\n ),\n );\n\n // Contracts\n const contractsDir = resources.folder(\"contracts\")!;\n const contractNames: string[] = [];\n const contractImports: string[] = [];\n for (const contract of contracts) {\n if (contract.name === \"index\") {\n throw new Error('Unexpected contract name: \"index\"');\n }\n contractsDir.file(\n `${contract.name}.js`,\n await formatJs(`export default ${JSON.stringify(contract)};`),\n );\n const name = contract.name.replace(/^\\d+|[^\\w]+/g, \"_\");\n contractImports.push(`import ${name} from \"./${contract.name}.js\";`);\n contractNames.push(name);\n }\n contractsDir.file(\n \"index.js\",\n await formatJs(\n `${contractImports.join(\"\\n\")}\\n\\nexport default [${contractNames.join(\n \",\",\n )}]`,\n ),\n );\n\n resources\n .folder(\"i18n\")!\n .file(\n \"index.js\",\n await formatJs(`export default ${JSON.stringify(i18n)};`),\n );\n resources.file(\n \"meta.js\",\n await formatJs(`export default ${JSON.stringify(meta, null, 2)};`),\n );\n resources.file(\"index.js\", srcResourcesIndexJs);\n\n await generateByFileStructure(fileStructure, src, []);\n\n const appDir = project\n .folder(\"mock-micro-apps\")!\n .folder(projectDetail.appId)!;\n appDir.file(\".gitignore\", \"*\\n!.gitignore\");\n\n project.file(\".editorconfig\", editorConfig);\n project.file(\".gitignore\", gitIgnore);\n project.file(\"dev.config.mjs\", devConfigMjs);\n project.file(\"declarations.d.ts\", declarationsDTs);\n project.file(\"jsconfig.json\", jsconfigJson);\n project.file(\n \"next-jsx.config.js\",\n nextJsxConfigJs.replaceAll(\"__APP_ID__\", projectDetail.appId),\n );\n project.file(\n \"package.json\",\n packageJson.replaceAll(\"__APP_ID__\", projectDetail.appId),\n );\n project.file(\n \"README.md\",\n readmeMd\n .replaceAll(\"__PROJECT_NAME__\", projectDetail.name)\n .replaceAll(\"__PROJECT_HOMEPAGE__\", projectDetail.appSetting.homepage),\n );\n\n const blob = await zip.generateAsync({ type: \"blob\" });\n saveAs(blob, \"project.zip\");\n}\n\ninterface FormatJsOptions {\n typescript?: boolean;\n semi?: boolean;\n printWidth?: number;\n}\n\nasync function formatJs(\n source: string,\n { typescript, semi = true, printWidth }: FormatJsOptions = {},\n): Promise<string> {\n return await format(source, {\n parser: typescript ? \"babel-ts\" : \"babel\",\n plugins: [prettierPluginBabel, prettierPluginEstree as any],\n semi,\n printWidth,\n trailingComma: \"es5\",\n });\n}\n\nasync function generateByFileStructure(\n items: SourceFileOrFolder[],\n folder: JSZip,\n path: string[],\n) {\n for (const item of items) {\n const childPath = [...path, item.name];\n if (item.type === \"folder\") {\n const childFolder = folder.folder(item.name)!;\n await generateByFileStructure(item.items, childFolder, childPath);\n } else {\n folder.file(\n `${item.name}.js${\n item.nodeType === \"routes\" ||\n item.nodeType === \"bricks\" ||\n item.nodeType === \"template\"\n ? \"x\"\n : \"\"\n }`,\n await formatJs(generate(item.node, item.nodeType, childPath)),\n );\n }\n }\n}\n\nfunction cleanMenu(menu: Record<string, any>) {\n for (const [key, value] of Object.entries(menu)) {\n switch (key) {\n case \"items\":\n if (Array.isArray(value)) {\n for (const item of value) {\n cleanMenuItem(item);\n }\n }\n break;\n case \"type\":\n if (value === \"main\") {\n delete menu[key];\n }\n break;\n case \"if\":\n break;\n case \"i18n\":\n if (Object.keys(value).length === 0) {\n delete menu[key];\n }\n break;\n default:\n if (value === null || value === false) {\n delete menu[key];\n }\n }\n }\n}\n\nfunction cleanMenuItem(menuItem: Record<string, any>) {\n for (const [key, value] of Object.entries(menuItem)) {\n switch (key) {\n case \"children\":\n if (Array.isArray(value) && value.length > 0) {\n cleanMenuItem(value);\n }\n break;\n case \"if\":\n break;\n case \"activeExcludes\":\n case \"activeIncludes\":\n if (Array.isArray(value) && value.length === 0) {\n delete menuItem[key];\n }\n break;\n default:\n if (value === null || value === false) {\n delete menuItem[key];\n }\n }\n }\n}\n\ncustomElements.define(\n \"vb-experiment.export-as-source-files\",\n createProviderClass(exportAsSourceFiles),\n);\n","import { createProviderClass } from \"@next-core/utils/general\";\nimport JSZip from \"jszip\";\nimport { saveAs } from \"file-saver\";\n\ninterface ExportWidgetsParams {\n name: string;\n files: FileInfo[];\n}\n\ninterface FileInfo {\n path: string;\n content: string;\n}\n\nexport async function exportWidgets({\n name,\n files,\n}: ExportWidgetsParams): Promise<void> {\n const fs = new Map<string, JSZip>();\n const zip = new JSZip();\n const widgets = zip.folder(\"widgets\")!;\n const project = widgets.folder(name)!;\n\n for (const { path, content } of files) {\n const segments = path.split(\"/\");\n const filename = segments.pop()!;\n let handle = project;\n let i = 1;\n for (const segment of segments) {\n const current = segments.slice(0, i).join(\"/\");\n const found = fs.get(current);\n if (found) {\n handle = found;\n } else {\n handle = handle.folder(segment)!;\n fs.set(current, handle);\n }\n i++;\n }\n handle.file(filename, content);\n }\n\n const blob = await zip.generateAsync({ type: \"blob\" });\n saveAs(blob, `${name}.zip`);\n}\n\ncustomElements.define(\n \"vb-experiment.export-widgets\",\n createProviderClass(exportWidgets)\n);\n"],"names":["_exportAsSourceFiles","_asyncToGenerator","_ref","_storyboard$meta","_meta$customTemplates","_meta$functions","_meta$menus","_meta$contracts","_meta$i18n","projectDetail","storyboard","zip","JSZip","project","folder","src","extractState","extracts","namePool","Map","extractedRoutes","extractRoutes","routes","app","id","appId","name","homepage","appSetting","layoutType","theme","noAuthGuard","locales","defaultConfig","JSON","parse","menuIcon","icon","standaloneMode","file","formatJs","concat","stringify","meta","customTemplates","functions","menus","contracts","i18n","workflows","mocks","userGroups","extractedTemplates","extractTemplates","push","path","node","nodeType","fileStructure","buildFileStructure","srcIndexJs","generate","resources","fnDir","fnNames","fnImports","fn","Error","inferredImports","Set","code","transform","source","filename","typescript","plugins","TransformStoryboardFunction","SmartImports","imports","hasFN","has","delete","importStrings","size","join","length","menusDir","menuNames","menuImports","menu","cleanMenu","menuId","replace","JS_RESERVED_WORDS","contractsDir","contractNames","contractImports","contract","srcResourcesIndexJs","generateByFileStructure","editorConfig","gitIgnore","devConfigMjs","declarationsDTs","jsconfigJson","nextJsxConfigJs","replaceAll","packageJson","readmeMd","blob","generateAsync","type","saveAs","apply","arguments","_x2","_formatJs","semi","printWidth","undefined","format","parser","prettierPluginBabel","prettierPluginEstree","trailingComma","_x3","_x4","_x5","_generateByFileStructure","items","item","childPath","childFolder","key","value","Object","entries","Array","isArray","cleanMenuItem","keys","menuItem","_exportWidgets","files","fs","content","segments","split","pop","handle","i","segment","current","slice","found","get","set","customElements","define","createProviderClass","_x"],"sourceRoot":""}
1
+ {"version":3,"file":"chunks/190.c1631b6b.js","mappings":"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","sources":["webpack:///./src/data-providers/export-as-source-files.ts","webpack:///./src/data-providers/export-widgets.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport type { Storyboard, MicroApp, StoryboardMeta } from \"@next-core/types\";\nimport { createProviderClass } from \"@next-core/utils/general\";\nimport JSZip from \"jszip\";\nimport { saveAs } from \"file-saver\";\nimport { format } from \"prettier/standalone\";\nimport * as prettierPluginBabel from \"prettier/plugins/babel\";\nimport * as prettierPluginEstree from \"prettier/plugins/estree\";\nimport { transform } from \"@babel/standalone\";\nimport {\n ExtractState,\n extractRoutes,\n extractTemplates,\n} from \"./utils/extract.js\";\nimport {\n SourceFileOrFolder,\n buildFileStructure,\n} from \"./utils/buildFileStructure.js\";\nimport { generate } from \"./utils/generators/generate.js\";\nimport srcResourcesIndexJs from \"./raws/src/resources/index.js.txt\";\nimport srcIndexJs from \"./raws/src/index.js.txt\";\nimport editorConfig from \"./raws/.editorconfig.txt\";\nimport gitIgnore from \"./raws/.gitignore.txt\";\nimport declarationsDTs from \"./raws/declarations.d.ts.txt\";\nimport devConfigMjs from \"./raws/dev.config.mjs.txt\";\nimport jsconfigJson from \"./raws/jsconfig.json.txt\";\nimport nextJsxConfigJs from \"./raws/next-jsx.config.js.txt\";\nimport packageJson from \"./raws/package.json.txt\";\nimport readmeMd from \"./raws/README.md.txt\";\nimport { JS_RESERVED_WORDS } from \"./utils/constants.js\";\nimport TransformStoryboardFunction from \"./utils/plugins/storyboard-function.js\";\nimport SmartImports from \"./utils/plugins/smart-imports.js\";\n\nexport interface StoryboardAssemblyResult {\n storyboard: Storyboard;\n\n projectDetail: {\n appId: string;\n name: string;\n appSetting: Pick<\n MicroApp,\n \"homepage\" | \"theme\" | \"locales\" | \"noAuthGuard\"\n > & {\n layoutType?: string;\n defaultConfig?: string;\n icon?: string;\n };\n brickNextVersion?: number;\n };\n}\n\nexport async function exportAsSourceFiles({\n projectDetail,\n storyboard,\n}: StoryboardAssemblyResult): Promise<void> {\n const zip = new JSZip();\n const project = zip.folder(\"project\")!;\n const src = project.folder(\"src\")!;\n\n const extractState: ExtractState = {\n extracts: [],\n namePool: new Map(),\n };\n const extractedRoutes = extractRoutes(storyboard.routes, [], extractState);\n\n const app: MicroApp & { layoutType?: string } = {\n id: projectDetail.appId,\n name: projectDetail.name,\n homepage: projectDetail.appSetting.homepage,\n layoutType: projectDetail.appSetting.layoutType,\n theme: projectDetail.appSetting.theme,\n noAuthGuard: projectDetail.appSetting.noAuthGuard,\n locales: projectDetail.appSetting.locales,\n defaultConfig: JSON.parse(projectDetail.appSetting.defaultConfig || \"{}\"),\n menuIcon: JSON.parse(projectDetail.appSetting.icon || \"null\"),\n standaloneMode: true,\n };\n src.file(\n \"app.js\",\n await formatJs(`export default ${JSON.stringify(app, null, 2)};`),\n );\n\n const meta = (storyboard.meta ?? {}) as StoryboardMeta & {\n workflows?: unknown;\n userGroups?: unknown;\n };\n const customTemplates = meta.customTemplates ?? [];\n const functions = meta.functions ?? [];\n const menus = meta.menus ?? [];\n const contracts = meta.contracts ?? [];\n const i18n = meta.i18n ?? {};\n delete meta.customTemplates;\n delete meta.functions;\n delete meta.menus;\n delete meta.contracts;\n delete meta.i18n;\n delete meta.workflows;\n delete meta.mocks;\n delete meta.userGroups;\n\n const extractedTemplates = extractTemplates(\n customTemplates,\n [\"components\"],\n extractState,\n );\n extractState.extracts.push({\n name: \"index\",\n path: [\"components\"],\n node: extractedTemplates,\n nodeType: \"others\",\n });\n\n const fileStructure = buildFileStructure(extractState.extracts);\n\n src.file(\"index.js\", srcIndexJs);\n\n src.file(\n \"routes.jsx\",\n await formatJs(generate(extractedRoutes, \"routes\", [\"routes.jsx\"])),\n );\n\n const resources = src.folder(\"resources\")!;\n\n // Functions\n const fnDir = resources.folder(\"functions\")!;\n const fnNames: string[] = [];\n const fnImports: string[] = [];\n for (const fn of functions) {\n if (fn.name === \"index\") {\n throw new Error('Unexpected function name: \"index\"');\n }\n\n // Prepend with `export default` for functions\n const inferredImports = new Set<string>();\n let { code } = transform(fn.source, {\n filename: `expr.${fn.typescript ? \"ts\" : \"js\"}`,\n plugins: [\n ...(fn.typescript ? [\"syntax-typescript\"] : []),\n TransformStoryboardFunction,\n [\n SmartImports,\n {\n imports: inferredImports,\n },\n ],\n ],\n }) as { code: string };\n const hasFN = inferredImports.has(\"FN\");\n if (hasFN) {\n inferredImports.delete(\"FN\");\n }\n const importStrings: string[] = [];\n if (inferredImports.size > 0) {\n importStrings.push(\n `import { ${[...inferredImports].join(\n \", \",\n )} } from \"next-jsx/runtime\";`,\n );\n }\n if (hasFN) {\n importStrings.push(`import FN from \"./index.js\";`);\n }\n if (importStrings.length > 0) {\n code = `${importStrings.join(\"\\n\")}\\n\\n${code}`;\n }\n\n fnDir.file(`${fn.name}.${fn.typescript ? \"ts\" : \"js\"}`, code);\n fnImports.push(`import ${fn.name} from \"./${fn.name}.js\";`);\n fnNames.push(fn.name);\n }\n fnDir.file(\n \"index.js\",\n await formatJs(\n `${fnImports.join(\"\\n\")}\\n\\nconst FN = { ${fnNames.join(\n \",\",\n )} };\\n\\nexport default FN;`,\n ),\n );\n\n // Menus\n const menusDir = resources.folder(\"menus\")!;\n const menuNames: string[] = [];\n const menuImports: string[] = [];\n for (const menu of menus) {\n cleanMenu(menu);\n if (menu.menuId === \"index\") {\n throw new Error('Unexpected menu id: \"index\"');\n }\n const filename = `${menu.menuId}.js`;\n menusDir.file(\n filename,\n await formatJs(generate(menu, \"menu\", [\"resources\", \"menus\", filename])),\n );\n let name = menu.menuId.replace(/^\\d+|[^\\w]+/g, \"_\");\n if (JS_RESERVED_WORDS.has(name)) {\n name = `${name}__2`;\n }\n menuImports.push(`import ${name} from \"./${filename}\";`);\n menuNames.push(name);\n }\n menusDir.file(\n \"index.js\",\n await formatJs(\n `${menuImports.join(\"\\n\")}\\n\\nexport default [${menuNames.join(\",\")}]`,\n ),\n );\n\n // Contracts\n const contractsDir = resources.folder(\"contracts\")!;\n const contractNames: string[] = [];\n const contractImports: string[] = [];\n for (const contract of contracts) {\n if (contract.name === \"index\") {\n throw new Error('Unexpected contract name: \"index\"');\n }\n contractsDir.file(\n `${contract.name}.js`,\n await formatJs(`export default ${JSON.stringify(contract)};`),\n );\n const name = contract.name.replace(/^\\d+|[^\\w]+/g, \"_\");\n contractImports.push(`import ${name} from \"./${contract.name}.js\";`);\n contractNames.push(name);\n }\n contractsDir.file(\n \"index.js\",\n await formatJs(\n `${contractImports.join(\"\\n\")}\\n\\nexport default [${contractNames.join(\n \",\",\n )}]`,\n ),\n );\n\n resources\n .folder(\"i18n\")!\n .file(\n \"index.js\",\n await formatJs(`export default ${JSON.stringify(i18n)};`),\n );\n resources.file(\n \"meta.js\",\n await formatJs(`export default ${JSON.stringify(meta, null, 2)};`),\n );\n resources.file(\"index.js\", srcResourcesIndexJs);\n\n await generateByFileStructure(fileStructure, src, []);\n\n const appDir = project\n .folder(\"mock-micro-apps\")!\n .folder(projectDetail.appId)!;\n appDir.file(\".gitignore\", \"*\\n!.gitignore\");\n\n project.file(\".editorconfig\", editorConfig);\n project.file(\".gitignore\", gitIgnore);\n project.file(\"dev.config.mjs\", devConfigMjs);\n project.file(\"declarations.d.ts\", declarationsDTs);\n project.file(\"jsconfig.json\", jsconfigJson);\n project.file(\n \"next-jsx.config.js\",\n nextJsxConfigJs.replaceAll(\"__APP_ID__\", projectDetail.appId),\n );\n project.file(\n \"package.json\",\n packageJson.replaceAll(\"__APP_ID__\", projectDetail.appId),\n );\n project.file(\n \"README.md\",\n readmeMd\n .replaceAll(\"__PROJECT_NAME__\", projectDetail.name)\n .replaceAll(\"__PROJECT_HOMEPAGE__\", projectDetail.appSetting.homepage),\n );\n\n const blob = await zip.generateAsync({ type: \"blob\" });\n saveAs(blob, \"project.zip\");\n}\n\ninterface FormatJsOptions {\n typescript?: boolean;\n semi?: boolean;\n printWidth?: number;\n}\n\nasync function formatJs(\n source: string,\n { typescript, semi = true, printWidth }: FormatJsOptions = {},\n): Promise<string> {\n return await format(source, {\n parser: typescript ? \"babel-ts\" : \"babel\",\n plugins: [prettierPluginBabel, prettierPluginEstree as any],\n semi,\n printWidth,\n trailingComma: \"es5\",\n });\n}\n\nasync function generateByFileStructure(\n items: SourceFileOrFolder[],\n folder: JSZip,\n path: string[],\n) {\n for (const item of items) {\n const childPath = [...path, item.name];\n if (item.type === \"folder\") {\n const childFolder = folder.folder(item.name)!;\n await generateByFileStructure(item.items, childFolder, childPath);\n } else {\n folder.file(\n `${item.name}.js${\n item.nodeType === \"routes\" ||\n item.nodeType === \"bricks\" ||\n item.nodeType === \"template\"\n ? \"x\"\n : \"\"\n }`,\n await formatJs(generate(item.node, item.nodeType, childPath)),\n );\n }\n }\n}\n\nfunction cleanMenu(menu: Record<string, any>) {\n for (const [key, value] of Object.entries(menu)) {\n switch (key) {\n case \"items\":\n if (Array.isArray(value)) {\n for (const item of value) {\n cleanMenuItem(item);\n }\n }\n break;\n case \"type\":\n if (value === \"main\") {\n delete menu[key];\n }\n break;\n case \"if\":\n break;\n case \"i18n\":\n if (Object.keys(value).length === 0) {\n delete menu[key];\n }\n break;\n default:\n if (value === null || value === false) {\n delete menu[key];\n }\n }\n }\n}\n\nfunction cleanMenuItem(menuItem: Record<string, any>) {\n for (const [key, value] of Object.entries(menuItem)) {\n switch (key) {\n case \"children\":\n if (Array.isArray(value) && value.length > 0) {\n cleanMenuItem(value);\n }\n break;\n case \"if\":\n break;\n case \"activeExcludes\":\n case \"activeIncludes\":\n if (Array.isArray(value) && value.length === 0) {\n delete menuItem[key];\n }\n break;\n default:\n if (value === null || value === false) {\n delete menuItem[key];\n }\n }\n }\n}\n\ncustomElements.define(\n \"vb-experiment.export-as-source-files\",\n createProviderClass(exportAsSourceFiles),\n);\n","import { createProviderClass } from \"@next-core/utils/general\";\nimport JSZip from \"jszip\";\nimport { saveAs } from \"file-saver\";\n\ninterface ExportWidgetsParams {\n name: string;\n files: FileInfo[];\n}\n\ninterface FileInfo {\n path: string;\n content: string;\n}\n\nexport async function exportWidgets({\n name,\n files,\n}: ExportWidgetsParams): Promise<void> {\n const fs = new Map<string, JSZip>();\n const zip = new JSZip();\n const widgets = zip.folder(\"widgets\")!;\n const project = widgets.folder(name)!;\n\n for (const { path, content } of files) {\n const segments = path.split(\"/\");\n const filename = segments.pop()!;\n let handle = project;\n let i = 1;\n for (const segment of segments) {\n const current = segments.slice(0, i).join(\"/\");\n const found = fs.get(current);\n if (found) {\n handle = found;\n } else {\n handle = handle.folder(segment)!;\n fs.set(current, handle);\n }\n i++;\n }\n handle.file(filename, content);\n }\n\n const blob = await zip.generateAsync({ type: \"blob\" });\n saveAs(blob, `${name}.zip`);\n}\n\ncustomElements.define(\n \"vb-experiment.export-widgets\",\n createProviderClass(exportWidgets)\n);\n"],"names":["_exportAsSourceFiles","_asyncToGenerator","_ref","_storyboard$meta","_meta$customTemplates","_meta$functions","_meta$menus","_meta$contracts","_meta$i18n","projectDetail","storyboard","zip","JSZip","project","folder","src","extractState","extracts","namePool","Map","extractedRoutes","extractRoutes","routes","app","id","appId","name","homepage","appSetting","layoutType","theme","noAuthGuard","locales","defaultConfig","JSON","parse","menuIcon","icon","standaloneMode","file","formatJs","concat","stringify","meta","customTemplates","functions","menus","contracts","i18n","workflows","mocks","userGroups","extractedTemplates","extractTemplates","push","path","node","nodeType","fileStructure","buildFileStructure","srcIndexJs","generate","resources","fnDir","fnNames","fnImports","fn","Error","inferredImports","Set","code","transform","source","filename","typescript","plugins","TransformStoryboardFunction","SmartImports","imports","hasFN","has","delete","importStrings","size","join","length","menusDir","menuNames","menuImports","menu","cleanMenu","menuId","replace","JS_RESERVED_WORDS","contractsDir","contractNames","contractImports","contract","srcResourcesIndexJs","generateByFileStructure","editorConfig","gitIgnore","devConfigMjs","declarationsDTs","jsconfigJson","nextJsxConfigJs","replaceAll","packageJson","readmeMd","blob","generateAsync","type","saveAs","apply","arguments","_x2","_formatJs","semi","printWidth","undefined","format","parser","prettierPluginBabel","prettierPluginEstree","trailingComma","_x3","_x4","_x5","_generateByFileStructure","items","item","childPath","childFolder","key","value","Object","entries","Array","isArray","cleanMenuItem","keys","menuItem","_exportWidgets","files","fs","content","segments","split","pop","handle","i","segment","current","slice","found","get","set","customElements","define","createProviderClass","_x"],"sourceRoot":""}