@next-bricks/vb-experiment 0.1.6 → 0.1.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.
Files changed (49) hide show
  1. package/dist/bricks.json +1 -1
  2. package/dist/chunks/134.2149865a.js +24 -0
  3. package/dist/chunks/{760.73de5aa3.js.map → 134.2149865a.js.map} +1 -1
  4. package/dist/chunks/313.f9489781.js +2 -0
  5. package/dist/chunks/313.f9489781.js.map +1 -0
  6. package/dist/chunks/644.a129f8b3.js +2 -0
  7. package/dist/chunks/644.a129f8b3.js.map +1 -0
  8. package/dist/chunks/export-as-source-files.8198c27a.js +2 -0
  9. package/dist/chunks/export-as-source-files.8198c27a.js.map +1 -0
  10. package/dist/chunks/main.66eed42b.js +2 -0
  11. package/dist/chunks/main.66eed42b.js.map +1 -0
  12. package/dist/index.288e68ba.js +2 -0
  13. package/dist/index.288e68ba.js.map +1 -0
  14. package/dist/types.json +26 -0
  15. package/dist-types/data-providers/export-as-source-files.d.ts +2 -0
  16. package/dist-types/data-providers/utils/constants.d.ts +5 -0
  17. package/dist-types/data-providers/utils/extract.d.ts +3 -2
  18. package/dist-types/data-providers/utils/generators/generate.d.ts +2 -0
  19. package/dist-types/data-providers/utils/generators/generateBricks.d.ts +2 -0
  20. package/dist-types/data-providers/utils/generators/generateJsWithExpressions.d.ts +1 -0
  21. package/dist-types/data-providers/utils/generators/generateJsx.d.ts +3 -0
  22. package/dist-types/data-providers/utils/generators/generateOthers.d.ts +2 -0
  23. package/dist-types/data-providers/utils/generators/generateRoutes.d.ts +1 -0
  24. package/dist-types/data-providers/utils/generators/generateTemplate.d.ts +1 -0
  25. package/dist-types/data-providers/utils/handleImports.d.ts +4 -0
  26. package/dist-types/data-providers/utils/interfaces.d.ts +25 -0
  27. package/dist-types/data-providers/utils/transformers/transformBricks.d.ts +4 -0
  28. package/dist-types/data-providers/utils/transformers/transformExpressionString.d.ts +3 -0
  29. package/dist-types/data-providers/utils/transformers/transformJsonWithExpressions.d.ts +4 -0
  30. package/dist-types/data-providers/utils/transformers/transformJsxAttributes.d.ts +3 -0
  31. package/dist-types/data-providers/utils/transformers/transformJsxChild.d.ts +2 -0
  32. package/dist-types/data-providers/utils/transformers/transformRoute.d.ts +3 -0
  33. package/package.json +2 -2
  34. package/dist/chunks/540.7e6e5cbd.js +0 -2
  35. package/dist/chunks/540.7e6e5cbd.js.map +0 -1
  36. package/dist/chunks/635.c5c63fab.js +0 -3
  37. package/dist/chunks/635.c5c63fab.js.LICENSE.txt +0 -8
  38. package/dist/chunks/635.c5c63fab.js.map +0 -1
  39. package/dist/chunks/644.69f10071.js +0 -2
  40. package/dist/chunks/644.69f10071.js.map +0 -1
  41. package/dist/chunks/760.73de5aa3.js +0 -24
  42. package/dist/chunks/export-as-source-files.20a893e1.js +0 -2
  43. package/dist/chunks/export-as-source-files.20a893e1.js.map +0 -1
  44. package/dist/chunks/main.33c1e9a7.js +0 -2
  45. package/dist/chunks/main.33c1e9a7.js.map +0 -1
  46. package/dist/index.d6117855.js +0 -2
  47. package/dist/index.d6117855.js.map +0 -1
  48. package/dist-types/data-providers/utils/printWithPlaceholders.d.ts +0 -2
  49. /package/dist/chunks/{760.73de5aa3.js.LICENSE.txt → 134.2149865a.js.LICENSE.txt} +0 -0
@@ -1,2 +0,0 @@
1
- "use strict";(self.webpackChunk_next_bricks_vb_experiment=self.webpackChunk_next_bricks_vb_experiment||[]).push([[644],{1644:(e,n,t)=>{t.r(n);var r=t(4795),a=t(2019),o=t(1297),i=t.n(o),l=t(6782),s=t(9691),c=t(8483),p=t.n(c),f=t(1874),d=t(1483),u=t(7243),m=t(9333),j=t(5738),v=t(9733),x=t(7444),g=t(9082),y=t(4431),h=t(9456),_=t(2220),b=t(8978),k=t(8678),A=t(7768),w=t(9503),E=t(7211),I=t(5125),O=t(9602),S=t(7287),T=t(2524),C=t(2344),J=t(7040),P=t(4450),D=t(3870);function N(){return(N=(0,r.Z)((function*(e){var n,t,r,a,o,s,{projectDetail:c,storyboard:p}=e,N=new(i()),F=N.folder("project"),U=F.folder("src"),L={extracts:[],namePool:new Map},W=(0,m.I$)(p.routes,[],L),z={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,standaloneMode:!0};U.file("app.js",R("export default ".concat(JSON.stringify(z,null,2),";")));var B=null!==(n=p.meta)&&void 0!==n?n:{},H=null!==(t=B.customTemplates)&&void 0!==t?t:[],K=null!==(r=B.functions)&&void 0!==r?r:[],Q=null!==(a=B.menus)&&void 0!==a?a:[],V=null!==(o=B.contracts)&&void 0!==o?o:[],Z=null!==(s=B.i18n)&&void 0!==s?s:{};delete B.customTemplates,delete B.functions,delete B.menus,delete B.contracts,delete B.i18n,delete B.workflows,delete B.mocks,delete B.userGroups;var $=(0,m.LK)(H,["components"],L);L.extracts.push({name:"index",path:["components"],node:$,nodeType:"others"});var q=(0,j.B)(L.extracts);U.file("index.js",O),U.file("routes.jsx",R((0,v.l)(W,"routes",["routes.jsx"])));var X=U.folder("resources"),Y=X.folder("functions"),ee=[],ne=[];for(var te of K){if("index"===te.name)throw new Error('Unexpected function name: "index"');var re=(0,f.Qc)(te.source,{plugins:te.typescript?["typescript"]:[]}).program.body.map((e=>{if("FunctionDeclaration"===e.type){var n=d.exportDefaultDeclaration(e);return e.leadingComments&&(n.leadingComments=e.leadingComments,delete e.leadingComments),n}return e})),{code:ae}=(0,u.transformFromAst)(d.program(re,void 0,"module"),void 0,{});Y.file("".concat(te.name,".").concat(te.typescript?"ts":"js"),ae),ne.push("import ".concat(te.name,' from "./').concat(te.name,'.js";')),ee.push(te.name)}Y.file("index.js",R("".concat(ne.join("\n"),"\n\nexport default { ").concat(ee.join(",")," };")));var oe=X.folder("menus"),ie=[],le=[];for(var se of Q){if(G(se),"index"===se.menuId)throw new Error('Unexpected menu id: "index"');var ce="".concat(se.menuId,".js");oe.file(ce,R((0,v.l)(se,"menu",["resources","menus",ce])));var pe=se.menuId.replace(/^\d+|[^\w]+/g,"_");le.push("import ".concat(pe,' from "./').concat(ce,'";')),ie.push(pe)}oe.file("index.js",R("".concat(le.join("\n"),"\n\nexport default [").concat(ie.join(","),"]")));var fe=X.folder("contracts"),de=[],ue=[];for(var me of V){if("index"===me.name)throw new Error('Unexpected contract name: "index"');fe.file("".concat(me.name,".js"),R("export default ".concat(JSON.stringify(me),";")));var je=me.name.replace(/^\d+|[^\w]+/g,"_");ue.push("import ".concat(je,' from "./').concat(me.name,'.js";')),de.push(je)}fe.file("index.js",R("".concat(ue.join("\n"),"\n\nexport default [").concat(de.join(","),"]"))),X.folder("i18n").file("index.js",R("export default ".concat(JSON.stringify(Z),";"))),X.file("meta.js",R("export default ".concat(JSON.stringify(B,null,2),";"))),X.file("index.js",I),M(q,U,[]);var ve=JSON.stringify("../mock-micro-apps/".concat(c.appId)),xe=F.folder("scripts");xe.file("build.js",A.replaceAll("__APP_RELATIVE_DIR__",ve)),xe.file("babel.js",k),xe.file("start.js",w),xe.file("transpile.js",E),F.folder("mock-micro-apps").folder(c.appId).file(".gitignore","*\n!.gitignore");var ge=F.folder("jsx");ge.file("constants.js",x),ge.file("index.js",g),ge.file("jsx-runtime.js",y),ge.file("package.json",h),ge.file("Style.js",_),ge.file("Function.js",b),F.file(".editorconfig",S),F.file(".gitignore",T),F.file("babel.config.js",C),F.file("jsconfig.json",P),F.file("package.json",J.replaceAll("__PROJECT_ID__",c.appId)),F.file("README.md",D.replaceAll("__PROJECT_NAME__",c.name).replaceAll("__PROJECT_HOMEPAGE__",c.appSetting.homepage));var ye=yield N.generateAsync({type:"blob"});(0,l.saveAs)(ye,"project.zip")}))).apply(this,arguments)}function R(e){var{typescript:n,semi:t=!0,printWidth:r}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(0,s.format)(e,{parser:n?"babel-ts":"babel",plugins:[p()],semi:t,printWidth:r})}function M(e,n,t){for(var r of e){var a=[...t,r.name];if("folder"===r.type){var o=n.folder(r.name);M(r.items,o,a)}else n.file("".concat(r.name,".js").concat("others"===r.nodeType||"context"===r.nodeType?"":"x"),R((0,v.l)(r.node,r.nodeType,a)))}}function G(e){for(var[n,t]of Object.entries(e))switch(n){case"items":if(Array.isArray(t))for(var r of t)F(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 F(e){for(var[n,t]of Object.entries(e))switch(n){case"children":Array.isArray(t)&&t.length>0&&F(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]}}customElements.define("vb-experiment.export-as-source-files",(0,a.createProviderClass)((function(e){return N.apply(this,arguments)})))}}]);
2
- //# sourceMappingURL=644.69f10071.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chunks/644.69f10071.js","mappings":"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","sources":["webpack:///./src/data-providers/export-as-source-files.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.js\";\nimport parserBabel from \"prettier/parser-babel.js\";\nimport { parse } from \"@babel/parser\";\nimport * as t from \"@babel/types\";\nimport { transformFromAst } 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 { printWithPlaceholders } from \"./utils/printWithPlaceholders.js\";\nimport jsxConstantsJs from \"./raws/jsx/constants.js.txt\";\nimport jsxIndexJs from \"./raws/jsx/index.js.txt\";\nimport jsxJsxRuntimeJs from \"./raws/jsx/jsx-runtime.js.txt\";\nimport jsxPackageJson from \"./raws/jsx/package.json.txt\";\nimport jsxStyleJs from \"./raws/jsx/Style.js.txt\";\nimport jsxFunctionJs from \"./raws/jsx/Function.js.txt\";\nimport scriptsBabelJs from \"./raws/scripts/babel.js.txt\";\nimport scriptsBuildJs from \"./raws/scripts/build.js.txt\";\nimport scriptsStartJs from \"./raws/scripts/start.js.txt\";\nimport scriptsTranspileJs from \"./raws/scripts/transpile.js.txt\";\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 babelConfigJs from \"./raws/babel.config.js.txt\";\nimport packageJson from \"./raws/package.json.txt\";\nimport jsconfigJson from \"./raws/jsconfig.json.txt\";\nimport readmeMd from \"./raws/README.md.txt\";\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 };\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 standaloneMode: true,\n };\n src.file(\n \"app.js\",\n 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 formatJs(printWithPlaceholders(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 ast = parse(fn.source, {\n plugins: fn.typescript ? [\"typescript\"] : [],\n });\n const statements = ast.program.body.map((statement) => {\n if (statement.type === \"FunctionDeclaration\") {\n const exportDefault = t.exportDefaultDeclaration(statement);\n if (statement.leadingComments) {\n exportDefault.leadingComments = statement.leadingComments;\n delete statement.leadingComments;\n }\n return exportDefault;\n }\n return statement;\n });\n const { code } = transformFromAst(\n t.program(statements, undefined, \"module\"),\n undefined,\n {}\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 formatJs(\n `${fnImports.join(\"\\n\")}\\n\\nexport default { ${fnNames.join(\",\")} };`\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 formatJs(\n printWithPlaceholders(menu, \"menu\", [\"resources\", \"menus\", filename])\n )\n );\n const name = menu.menuId.replace(/^\\d+|[^\\w]+/g, \"_\");\n menuImports.push(`import ${name} from \"./${filename}\";`);\n menuNames.push(name);\n }\n menusDir.file(\n \"index.js\",\n 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 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 formatJs(\n `${contractImports.join(\"\\n\")}\\n\\nexport default [${contractNames.join(\n \",\"\n )}]`\n )\n );\n\n resources\n .folder(\"i18n\")!\n .file(\"index.js\", formatJs(`export default ${JSON.stringify(i18n)};`));\n resources.file(\n \"meta.js\",\n formatJs(`export default ${JSON.stringify(meta, null, 2)};`)\n );\n resources.file(\"index.js\", srcResourcesIndexJs);\n\n printFileStructure(fileStructure, src, []);\n\n const appRelativeDir = JSON.stringify(\n `../mock-micro-apps/${projectDetail.appId}`\n );\n\n const scripts = project.folder(\"scripts\")!;\n scripts.file(\n \"build.js\",\n scriptsBuildJs.replaceAll(\"__APP_RELATIVE_DIR__\", appRelativeDir)\n );\n scripts.file(\"babel.js\", scriptsBabelJs);\n scripts.file(\"start.js\", scriptsStartJs);\n scripts.file(\"transpile.js\", scriptsTranspileJs);\n\n const appDir = project\n .folder(\"mock-micro-apps\")!\n .folder(projectDetail.appId)!;\n appDir.file(\".gitignore\", \"*\\n!.gitignore\");\n\n const jsxDir = project.folder(\"jsx\")!;\n jsxDir.file(\"constants.js\", jsxConstantsJs);\n jsxDir.file(\"index.js\", jsxIndexJs);\n jsxDir.file(\"jsx-runtime.js\", jsxJsxRuntimeJs);\n jsxDir.file(\"package.json\", jsxPackageJson);\n jsxDir.file(\"Style.js\", jsxStyleJs);\n jsxDir.file(\"Function.js\", jsxFunctionJs);\n\n project.file(\".editorconfig\", editorConfig);\n project.file(\".gitignore\", gitIgnore);\n project.file(\"babel.config.js\", babelConfigJs);\n project.file(\"jsconfig.json\", jsconfigJson);\n project.file(\n \"package.json\",\n packageJson.replaceAll(\"__PROJECT_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\nfunction formatJs(\n source: string,\n { typescript, semi = true, printWidth }: FormatJsOptions = {}\n): string {\n return format(source, {\n parser: typescript ? \"babel-ts\" : \"babel\",\n plugins: [parserBabel],\n semi,\n printWidth,\n });\n}\n\nfunction printFileStructure(\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 printFileStructure(item.items, childFolder, childPath);\n } else {\n folder.file(\n `${item.name}.js${\n item.nodeType === \"others\" || item.nodeType === \"context\" ? \"\" : \"x\"\n }`,\n formatJs(printWithPlaceholders(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"],"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","standaloneMode","file","formatJs","concat","JSON","stringify","meta","customTemplates","functions","menus","contracts","i18n","workflows","mocks","userGroups","extractedTemplates","extractTemplates","push","path","node","nodeType","fileStructure","buildFileStructure","srcIndexJs","printWithPlaceholders","resources","fnDir","fnNames","fnImports","fn","Error","statements","parse","source","plugins","typescript","program","body","map","statement","type","exportDefault","t","leadingComments","code","transformFromAst","undefined","join","menusDir","menuNames","menuImports","menu","cleanMenu","menuId","filename","replace","contractsDir","contractNames","contractImports","contract","srcResourcesIndexJs","printFileStructure","appRelativeDir","scripts","scriptsBuildJs","replaceAll","scriptsBabelJs","scriptsStartJs","scriptsTranspileJs","jsxDir","jsxConstantsJs","jsxIndexJs","jsxJsxRuntimeJs","jsxPackageJson","jsxStyleJs","jsxFunctionJs","editorConfig","gitIgnore","babelConfigJs","jsconfigJson","packageJson","readmeMd","blob","generateAsync","saveAs","apply","arguments","semi","printWidth","length","format","parser","parserBabel","items","item","childPath","childFolder","key","value","Object","entries","Array","isArray","cleanMenuItem","keys","menuItem","customElements","define","createProviderClass","_x"],"sourceRoot":""}