@dckj-npm/lowcode-code-generator 1.1.3 → 1.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.js.map CHANGED
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/cli/index.ts", "../src/cli/run.ts", "../src/utils/errors.ts", "../src/parser/SchemaParser.ts", "../src/types/error.ts", "../src/const/index.ts", "../src/const/file.ts", "../src/const/generator.ts", "../src/utils/schema.ts", "../src/utils/common.ts", "../src/analyzer/componentAnalyzer.ts", "../src/utils/validate.ts", "../src/utils/resultHelper.ts", "../src/generator/ChunkBuilder.ts", "../src/generator/CodeBuilder.ts", "../src/generator/ModuleBuilder.ts", "../src/generator/ProjectBuilder.ts", "../src/publisher/disk/index.ts", "../src/publisher/disk/utils.ts", "../src/publisher/zip/utils.ts", "../src/publisher/zip/index.ts", "../src/plugins/common/esmodule.ts", "../src/plugins/common/styleImport.ts", "../src/plugins/component/react/containerClass.ts", "../src/plugins/component/react/const.ts", "../src/utils/compositeType.ts", "../src/utils/jsExpression.ts", "../src/utils/expressionParser.ts", "../src/utils/OrderedSet.ts", "../src/utils/jsSlot.ts", "../src/utils/jsxHelpers.ts", "../src/utils/aopHelper.ts", "../src/utils/Scope.ts", "../src/utils/ScopeBindings.ts", "../src/plugins/component/react/containerInitState.ts", "../src/plugins/component/react/containerInjectContext.ts", "../src/utils/pathHelper.ts", "../src/plugins/component/react/containerInjectUtils.ts", "../src/plugins/component/react/containerInjectDataSourceEngine.ts", "../src/plugins/component/react/containerInjectConstants.ts", "../src/plugins/component/react/containerInjectI18n.ts", "../src/plugins/component/react/containerLifeCycle.ts", "../src/plugins/component/react/containerMethod.ts", "../src/utils/nodeToJSX.ts", "../src/utils/encodeJsxAttrString.ts", "../src/core/jsx/handlers/transformThis2Context.ts", "../src/core/jsx/util/isLiteralAtomicExpr.ts", "../src/core/jsx/util/isSimpleStraightLiteral.ts", "../src/core/jsx/handlers/transformJsExpression.ts", "../src/plugins/component/react/jsx.ts", "../src/plugins/component/react/reactCommonDeps.ts", "../src/plugins/component/style/css.ts", "../src/plugins/project/constants.ts", "../src/plugins/project/i18n.ts", "../src/plugins/project/utils.ts", "../src/utils/templateHelper.ts", "../src/plugins/project/framework/icejs/template/files/abc.json.ts", "../src/plugins/project/framework/icejs/template/files/build.json.ts", "../src/plugins/project/framework/icejs/template/files/editorconfig.ts", "../src/plugins/project/framework/icejs/template/files/eslintignore.ts", "../src/plugins/project/framework/icejs/template/files/eslintrc.js.ts", "../src/plugins/project/framework/icejs/template/files/gitignore.ts", "../src/plugins/project/framework/icejs/template/files/jsconfig.json.ts", "../src/plugins/project/framework/icejs/template/files/prettierignore.ts", "../src/plugins/project/framework/icejs/template/files/prettierrc.js.ts", "../src/plugins/project/framework/icejs/template/files/README.md.ts", "../src/plugins/project/framework/icejs/template/files/src/layouts/BasicLayout/components/Footer/index.jsx.ts", "../src/plugins/project/framework/icejs/template/files/src/layouts/BasicLayout/components/Footer/index.style.ts", "../src/plugins/project/framework/icejs/template/files/src/layouts/BasicLayout/components/Logo/index.jsx.ts", "../src/plugins/project/framework/icejs/template/files/src/layouts/BasicLayout/components/Logo/index.style.ts", "../src/plugins/project/framework/icejs/template/files/src/layouts/BasicLayout/components/PageNav/index.jsx.ts", "../src/plugins/project/framework/icejs/template/files/src/layouts/BasicLayout/index.jsx.ts", "../src/plugins/project/framework/icejs/template/files/src/layouts/BasicLayout/menuConfig.js.ts", "../src/plugins/project/framework/icejs/template/files/stylelintignore.ts", "../src/plugins/project/framework/icejs/template/files/stylelintrc.js.ts", "../src/plugins/project/framework/icejs/template/files/tsconfig.json.ts", "../src/plugins/project/framework/icejs/template/static-files.ts", "../src/plugins/project/framework/icejs/template/index.ts", "../src/plugins/project/framework/icejs/plugins/entry.ts", "../src/plugins/project/framework/icejs/plugins/entryHtml.ts", "../src/plugins/project/framework/icejs/plugins/globalStyle.ts", "../src/utils/dataSource.ts", "../src/plugins/project/framework/icejs/plugins/packageJSON.ts", "../src/plugins/project/framework/icejs/plugins/router.ts", "../src/plugins/project/framework/icejs/index.ts", "../src/postprocessor/prettier/index.ts", "../src/solutions/icejs.ts", "../src/plugins/project/framework/icejs3/template/files/gitignore.ts", "../src/plugins/project/framework/icejs3/template/files/README.md.ts", "../src/plugins/project/framework/icejs3/template/files/browserslistrc.ts", "../src/plugins/project/framework/icejs3/template/files/typings.ts", "../src/plugins/project/framework/icejs3/template/files/document.ts", "../src/plugins/project/framework/icejs3/template/files/src/layouts/BasicLayout/components/Footer/index.jsx.ts", "../src/plugins/project/framework/icejs3/template/files/src/layouts/BasicLayout/components/Footer/index.style.ts", "../src/plugins/project/framework/icejs3/template/files/src/layouts/BasicLayout/components/Logo/index.jsx.ts", "../src/plugins/project/framework/icejs3/template/files/src/layouts/BasicLayout/components/Logo/index.style.ts", "../src/plugins/project/framework/icejs3/template/files/src/layouts/BasicLayout/components/PageNav/index.jsx.ts", "../src/plugins/project/framework/icejs3/template/files/src/layouts/BasicLayout/index.jsx.ts", "../src/plugins/project/framework/icejs3/template/files/src/layouts/BasicLayout/menuConfig.js.ts", "../src/plugins/project/framework/icejs3/template/static-files.ts", "../src/plugins/project/framework/icejs3/template/index.ts", "../src/plugins/project/framework/icejs3/plugins/globalStyle.ts", "../src/plugins/project/framework/icejs3/plugins/packageJSON.ts", "../src/plugins/project/framework/icejs3/plugins/layout.ts", "../src/plugins/project/framework/icejs3/plugins/appConfig.ts", "../src/utils/format.ts", "../src/utils/theme.ts", "../src/plugins/project/framework/icejs3/plugins/buildConfig.ts", "../src/plugins/project/framework/icejs3/index.ts", "../src/solutions/icejs3.ts", "../src/plugins/component/rax/containerClass.ts", "../src/plugins/component/rax/const.ts", "../src/plugins/component/rax/containerLifeCycle.ts", "../src/utils/debug.ts", "../src/plugins/component/rax/containerMethods.ts", "../src/plugins/component/rax/containerInitState.ts", "../src/plugins/component/rax/containerInjectContext.ts", "../src/plugins/component/rax/containerInjectDataSourceEngine.ts", "../src/plugins/component/rax/containerInjectUtils.ts", "../src/plugins/component/rax/jsx.ts", "../src/plugins/component/rax/commonDeps.ts", "../src/plugins/project/framework/rax/template/files/.eslintignore.ts", "../src/plugins/project/framework/rax/template/files/.eslintrc.js.ts", "../src/plugins/project/framework/rax/template/files/.gitignore.ts", "../src/plugins/project/framework/rax/template/files/.prettierignore.ts", "../src/plugins/project/framework/rax/template/files/.prettierrc.js.ts", "../src/plugins/project/framework/rax/template/files/.stylelintignore.ts", "../src/plugins/project/framework/rax/template/files/.stylelintrc.js.ts", "../src/plugins/project/framework/rax/template/files/jsconfig.json.ts", "../src/plugins/project/framework/rax/template/files/README.md.ts", "../src/plugins/project/framework/rax/template/files/tsconfig.json.ts", "../src/plugins/project/framework/rax/template/static-files.ts", "../src/plugins/project/framework/rax/template/index.ts", "../src/plugins/project/framework/rax/plugins/entry.ts", "../src/plugins/project/framework/rax/plugins/appConfig.ts", "../src/plugins/project/framework/rax/plugins/buildConfig.ts", "../src/plugins/project/framework/rax/plugins/entryDocument.ts", "../src/plugins/project/framework/rax/plugins/globalStyle.ts", "../src/utils/version.ts", "../src/plugins/project/framework/rax/plugins/packageJSON.ts", "../src/plugins/project/framework/rax/index.ts", "../src/solutions/rax-app.ts", "../src/plugins/component/vue/containerVue.ts", "../src/utils/nodeToTemplate.ts", "../src/core/vue/util/isLiteralAtomicExpr.ts", "../src/core/vue/util/isSimpleStraightLiteral.ts", "../src/core/vue/handlers/transformThis2Context.ts", "../src/core/vue/handlers/transformJsExpression.ts", "../src/plugins/component/vue/template.ts", "../src/plugins/component/vue/vueCommonDeps.ts", "../src/utils/apiHandler.ts", "../src/plugins/component/vue/apiImport.ts", "../src/plugins/component/vue/esmodule.ts", "../src/plugins/component/vue/containerInitVariable.ts", "../src/plugins/component/vue/containerLifeCycle.ts", "../src/utils/requestHandle.ts", "../src/utils/changeCase.ts", "../src/plugins/component/vue/containerInjectDataSourceEngine.ts", "../src/plugins/component/vue/containerMethod.ts", "../src/plugins/project/framework/vuejs3/template/files/env.ts", "../src/plugins/project/framework/vuejs3/template/files/eslintignore.ts", "../src/plugins/project/framework/vuejs3/template/files/eslintrc.yml.ts", "../src/plugins/project/framework/vuejs3/template/files/gitignore.ts", "../src/plugins/project/framework/vuejs3/template/files/npmrc.ts", "../src/plugins/project/framework/vuejs3/template/files/prettierignore.ts", "../src/plugins/project/framework/vuejs3/template/files/prettierrc.yml.ts", "../src/plugins/project/framework/vuejs3/template/files/index.html.ts", "../src/plugins/project/framework/vuejs3/template/files/postcss.config.cjs.ts", "../src/plugins/project/framework/vuejs3/template/files/tsconfig.json.ts", "../src/plugins/project/framework/vuejs3/template/files/tsconfig.node.json.ts", "../src/plugins/project/framework/vuejs3/template/files/vite.config.ts.ts", "../src/plugins/project/framework/vuejs3/template/files/css/global.scss.ts", "../src/plugins/project/framework/vuejs3/template/files/css/mixin.scss.ts", "../src/plugins/project/framework/vuejs3/template/files/css/theme.css.ts", "../src/plugins/project/framework/vuejs3/template/files/src/App.vue.ts", "../src/plugins/project/framework/vuejs3/template/files/src/main.ts", "../src/plugins/project/framework/vuejs3/template/files/src/vite-env.ts", "../src/plugins/project/framework/vuejs3/template/files/src/views/index/welcome.vue.ts", "../src/plugins/project/framework/vuejs3/template/files/src/views/index/tabs.ts", "../src/plugins/project/framework/vuejs3/template/static-files.ts", "../src/plugins/project/framework/vuejs3/template/index.ts", "../src/plugins/project/framework/vuejs3/plugins/packageJSON.ts", "../src/plugins/project/framework/vuejs3/plugins/router.ts", "../src/plugins/project/framework/vuejs3/plugins/main.ts", "../src/plugins/project/framework/vuejs3/index.ts", "../src/solutions/vuejs3.ts", "../src/plugins/common/requireUtils.ts", "../src/utils/index.ts", "../src/index.ts", "../src/cli/init-solution.ts", "../src/cli/solutions/example-solution.ts"],
4
4
  "sourcesContent": ["export * from './run';\nexport * from './init-solution';\n", "/* eslint-disable no-console */\nimport chalk from 'chalk';\nimport * as fs from 'fs-extra';\nimport JSON5 from 'json5';\nimport { jsonc } from 'jsonc';\nimport { spawnSync } from 'child_process';\nimport * as path from 'path';\n\nimport { getErrorMessage } from '../utils/errors';\nimport CodeGenerator from '..';\nimport type { IProjectBuilder } from '..';\nimport type { IPublicTypeProjectSchema } from '@alilc/lowcode-types';\n\n/**\n * \u6267\u884C\u51FA\u7801 CLI \u547D\u4EE4\n * @param args \u5165\u53C2\u6570\u7EC4\n * @param options \u9009\u9879\n * @returns {Promise<number>} \u9519\u8BEF\u7801\n */\nexport async function run(\n args: string[],\n options: {\n solution: string;\n input?: string;\n output?: string;\n quiet?: boolean;\n verbose?: boolean;\n solutionOptions?: string;\n },\n): Promise<number> {\n try {\n const schemaFile = options.input || args[0];\n if (!schemaFile) {\n throw new Error(\n 'a schema file must be specified by `--input <schema.json>` or by the first positional argument',\n );\n }\n\n if ((options.input && args.length > 0) || args.length > 1) {\n throw new Error(\n 'only one schema file can be specified, either by `--input <schema.json>` or by the first positional argument',\n );\n }\n\n let solutionOptions = {};\n\n if (options.solutionOptions) {\n try {\n solutionOptions = JSON.parse(options.solutionOptions);\n } catch (err: any) {\n throw new Error(\n `solution options parse error, error message is \"${err.message}\"`,\n );\n }\n }\n\n\n // \u8BFB\u53D6 Schema\n const schema = await loadSchemaFile(schemaFile);\n\n // \u521B\u5EFA\u4E00\u4E2A\u9879\u76EE\u6784\u5EFA\u5668\n const createProjectBuilder = await getProjectBuilderFactory(options.solution, {\n quiet: options.quiet,\n });\n const builder = createProjectBuilder(solutionOptions);\n\n // \u751F\u6210\u4EE3\u7801\n const generatedSourceCodes = await builder.generateProject(schema);\n\n // \u8F93\u51FA\u5230\u78C1\u76D8\n const publisher = CodeGenerator.publishers.disk();\n\n await publisher.publish({\n project: generatedSourceCodes,\n outputPath: options.output || 'generated',\n projectSlug: 'example',\n createProjectFolder: false,\n });\n return 0;\n } catch (e) {\n console.log(chalk.red(getErrorMessage(e) || `Unexpected error: ${e}`));\n if (typeof e === 'object' && (e as { stack: string } | null)?.stack && options.verbose) {\n console.log(chalk.gray((e as { stack: string }).stack));\n }\n return 1;\n }\n}\n\nasync function getProjectBuilderFactory(\n solution: string,\n { quiet }: { quiet?: boolean },\n): Promise<(options: {[prop: string]: any}) => IProjectBuilder> {\n if (solution in CodeGenerator.solutions) {\n return CodeGenerator.solutions[solution as 'icejs' | 'rax'];\n }\n\n const solutionPackageName = isLocalSolution(solution)\n ? solution\n : `${solution.startsWith('@') ? solution : `@alilc/lowcode-solution-${solution}`}`;\n\n if (!isLocalSolution(solution)) {\n if (!quiet) {\n console.log(`\"${solution}\" is not internal, installing it as ${solutionPackageName}...`);\n }\n\n spawnSync('npm', ['i', solutionPackageName], {\n stdio: quiet ? 'ignore' : 'inherit',\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n const solutionExports = require(!isLocalSolution(solution)\n ? solutionPackageName\n : `${path.isAbsolute(solution) ? solution : path.join(process.cwd(), solution)}`);\n\n const projectBuilderFactory =\n solutionExports.createProjectBuilder ||\n solutionExports.createAppBuilder ||\n solutionExports.default;\n\n if (typeof projectBuilderFactory !== 'function') {\n throw new Error(\n `\"${solutionPackageName}\" should export project builder factory via named export 'createProjectBuilder' or via default export`,\n );\n }\n\n return projectBuilderFactory;\n}\n\nfunction isLocalSolution(solution: string) {\n return solution.startsWith('.') || solution.startsWith('/') || solution.startsWith('~');\n}\n\nasync function loadSchemaFile(schemaFile: string): Promise<IPublicTypeProjectSchema> {\n if (!schemaFile) {\n throw new Error('invalid schema file name');\n }\n\n const schemaFileContent = await fs.readFile(schemaFile, 'utf8');\n\n if (/\\.json5/.test(schemaFile)) {\n return JSON5.parse(schemaFileContent);\n }\n\n // \u9ED8\u8BA4\u7528 JSONC \u7684\u683C\u5F0F\u89E3\u6790\uFF08\u517C\u5BB9 JSON\uFF09\n return jsonc.parse(schemaFileContent);\n}\n", "/**\n * \u83B7\u53D6\u9519\u8BEF\u4FE1\u606F\n */\nexport function getErrorMessage(error: unknown): string | null {\n if (!error) {\n return null;\n }\n\n if (error instanceof Error) {\n return error.message;\n }\n\n if (typeof error === 'string') {\n return error;\n }\n\n if (typeof error === 'object' && error !== null) {\n return (\n getErrorMessage((error as { message: string }).message) ||\n getErrorMessage((error as { errorMessage: string }).errorMessage) ||\n getErrorMessage((error as { detail: string }).detail)\n );\n }\n\n return null;\n}\n", "/**\n * \u89E3\u6790\u5668\u662F\u5BF9\u8F93\u5165\u7684\u56FA\u5B9A\u683C\u5F0F\u6570\u636E\u505A\u62C6\u89E3\uFF0C\u4F7F\u5176\u7B26\u5408\u5F15\u64CE\u540E\u7EED\u6B65\u9AA4\u9884\u671F\uFF0C\u5B8C\u6210\u7EDF\u4E00\u5904\u7406\u903B\u8F91\u7684\u6B65\u9AA4\u3002\n * \u672C\u89E3\u6790\u5668\u9762\u5411\u7684\u662F\u6807\u51C6 schema \u534F\u8BAE\u3002\n */\nimport changeCase from 'change-case';\nimport {\n IPublicTypeUtilItem,\n IPublicTypeNodeDataType,\n IPublicTypeNodeSchema,\n IPublicTypeContainerSchema,\n IPublicTypeProjectSchema,\n IPublicTypePropsMap,\n IPublicTypeNodeData,\n IPublicTypeNpmInfo,\n} from '@alilc/lowcode-types';\nimport {\n IPageMeta,\n CodeGeneratorError,\n CompatibilityError,\n DependencyType,\n IContainerInfo,\n IDependency,\n IExternalDependency,\n IInternalDependency,\n InternalDependencyType,\n IParseResult,\n ISchemaParser,\n INpmPackage,\n IRouterInfo,\n} from '../types';\n\nimport { SUPPORT_SCHEMA_VERSION_LIST } from '../const';\n\nimport { getErrorMessage } from '../utils/errors';\nimport { handleSubNodes, isValidContainerType, ContainerType } from '../utils/schema';\nimport { uniqueArray } from '../utils/common';\nimport { componentAnalyzer } from '../analyzer/componentAnalyzer';\nimport { ensureValidClassName } from '../utils/validate';\nimport type { ProjectRemark } from '../types/intermediate';\n\nconst defaultContainer: IContainerInfo = {\n containerType: 'Component',\n componentName: 'Component',\n moduleName: 'Index',\n fileName: 'Index',\n css: '',\n props: {},\n};\n\nfunction getRootComponentName(typeName: string, maps: Record<string, IExternalDependency>): string {\n if (maps[typeName]) {\n const rec = maps[typeName];\n if (rec.destructuring) {\n return rec.componentName || typeName;\n }\n\n const peerName = Object.keys(maps).find((depName: string) => {\n const depInfo = maps[depName];\n return (\n depName !== typeName &&\n !depInfo.destructuring &&\n depInfo.package === rec.package &&\n depInfo.version === rec.version &&\n depInfo.main === rec.main &&\n depInfo.exportName === rec.exportName &&\n depInfo.subName === rec.subName\n );\n });\n\n return peerName || typeName;\n }\n return typeName;\n}\n\nfunction processChildren(schema: IPublicTypeNodeSchema): void {\n if (schema.props) {\n if (Array.isArray(schema.props)) {\n // FIXME: is array type props description\n } else {\n const nodeProps = schema.props as IPublicTypePropsMap;\n if (nodeProps.children) {\n if (!schema.children) {\n // eslint-disable-next-line no-param-reassign\n schema.children = nodeProps.children as IPublicTypeNodeDataType;\n } else {\n let _children: IPublicTypeNodeData[] = [];\n\n if (Array.isArray(schema.children)) {\n _children = _children.concat(schema.children);\n } else {\n _children.push(schema.children);\n }\n\n if (Array.isArray(nodeProps.children)) {\n _children = _children.concat(nodeProps.children as IPublicTypeNodeData[]);\n } else {\n _children.push(nodeProps.children as IPublicTypeNodeData);\n }\n\n // eslint-disable-next-line no-param-reassign\n schema.children = _children;\n }\n delete nodeProps.children;\n }\n }\n }\n}\n\nfunction getInternalDep(internalDeps: Record<string, IInternalDependency>, depName: string) {\n const dep = internalDeps[depName];\n return (dep && dep.type !== InternalDependencyType.PAGE) ? dep : null;\n}\n\nexport class SchemaParser implements ISchemaParser {\n validate(schema: IPublicTypeProjectSchema): boolean {\n if (SUPPORT_SCHEMA_VERSION_LIST.indexOf(schema.version) < 0) {\n throw new CompatibilityError(`Not support schema with version [${schema.version}]`);\n }\n\n return true;\n }\n\n parse(schemaSrc: IPublicTypeProjectSchema | string): IParseResult {\n // TODO: collect utils depends in JSExpression\n const compDeps: Record<string, IExternalDependency> = {};\n const internalDeps: Record<string, IInternalDependency> = {};\n let utilsDeps: IExternalDependency[] = [];\n\n const schema = this.decodeSchema(schemaSrc);\n\n // \u89E3\u6790\u4E09\u65B9\u7EC4\u4EF6\u4F9D\u8D56\n schema.componentsMap.forEach((info: any) => {\n if (info.componentName) {\n compDeps[info.componentName] = {\n ...info,\n dependencyType: DependencyType.External,\n componentName: info.componentName,\n exportName: info.exportName ?? info.componentName,\n version: info.version || '*',\n destructuring: info.destructuring ?? false,\n };\n }\n });\n\n let containers: IContainerInfo[];\n // Test if this is a lowcode component without container\n if (schema.componentsTree.length > 0) {\n const firstRoot: IPublicTypeContainerSchema = schema.componentsTree[0] as IPublicTypeContainerSchema;\n\n if (!firstRoot.fileName && !isValidContainerType(firstRoot)) {\n // \u6574\u4E2A schema \u63CF\u8FF0\u4E00\u4E2A\u5BB9\u5668\uFF0C\u4E14\u65E0\u6839\u8282\u70B9\u5B9A\u4E49\n const container: IContainerInfo = {\n ...firstRoot,\n ...defaultContainer,\n props: firstRoot.props || defaultContainer.props,\n css: firstRoot.css || defaultContainer.css,\n moduleName: (firstRoot as IContainerInfo).moduleName || defaultContainer.moduleName,\n children: schema.componentsTree as IPublicTypeNodeSchema[],\n };\n containers = [container];\n } else {\n // \u666E\u901A\u5E26 1 \u5230\u591A\u4E2A\u5BB9\u5668\u7684 schema\n containers = schema.componentsTree.map((n) => {\n const subRoot = n as IPublicTypeContainerSchema;\n const container: IContainerInfo = {\n ...subRoot,\n componentName: getRootComponentName(subRoot.componentName, compDeps),\n containerType: subRoot.componentName,\n moduleName: ensureValidClassName(subRoot.componentName === ContainerType.Component ?\n subRoot.fileName : changeCase.pascalCase(subRoot.fileName)),\n };\n return container;\n });\n }\n } else {\n throw new CodeGeneratorError(\"Can't find anything to generate.\");\n }\n\n // \u5206\u6790\u5F15\u7528\u80FD\u529B\u7684\u4F9D\u8D56\n containers = containers.map((con) => ({\n ...con,\n analyzeResult: componentAnalyzer(con as IPublicTypeContainerSchema),\n }));\n\n // \u5EFA\u7ACB\u6240\u6709\u5BB9\u5668\u7684\u5185\u90E8\u4F9D\u8D56\u7D22\u5F15\n containers.forEach((container) => {\n let type;\n switch (container.containerType) {\n case 'Page':\n type = InternalDependencyType.PAGE;\n break;\n case 'Block':\n type = InternalDependencyType.BLOCK;\n break;\n default:\n type = InternalDependencyType.COMPONENT;\n break;\n }\n\n const dep: IInternalDependency = {\n type,\n moduleName: container.moduleName,\n destructuring: false,\n exportName: container.moduleName,\n dependencyType: DependencyType.Internal,\n };\n\n internalDeps[dep.moduleName] = dep;\n });\n\n const containersDeps = ([] as IDependency[]).concat(...containers.map((c) => c.deps || []));\n // TODO: \u4E0D\u5E94\u8BE5\u5728\u51FA\u7801\u90E8\u5206\u89E3\u51B3\uFF1F\n // \u5904\u7406 children \u5199\u5728\u4E86 props \u91CC\u7684\u60C5\u51B5\n containers.forEach((container) => {\n if (container.children) {\n // eslint-disable-next-line @typescript-eslint/no-invalid-void-type\n handleSubNodes<void>(\n container.children,\n {\n node: (i: IPublicTypeNodeSchema) => processChildren(i),\n },\n {\n rerun: true,\n },\n );\n }\n });\n\n containers.forEach((container) => {\n const depNames = this.getComponentNames(container);\n // eslint-disable-next-line no-param-reassign\n container.deps = uniqueArray<string>(depNames, (i: string) => i)\n .map((depName) => getInternalDep(internalDeps, depName) || compDeps[depName])\n .filter(Boolean);\n // container.deps = Object.keys(compDeps).map((depName) => compDeps[depName]);\n });\n\n // \u5206\u6790\u8DEF\u7531\u914D\u7F6E\n const routes: IRouterInfo['routes'] = containers\n .filter((container) => container.containerType === 'Page')\n .map((page) => {\n const { meta } = page;\n if (meta) {\n return {\n path: (meta as IPageMeta).router || `/${page.fileName}`, // \u5982\u679C\u65E0\u6CD5\u627E\u5230\u9875\u9762\u8DEF\u7531\u4FE1\u606F\uFF0C\u5219\u7528 fileName \u505A\u515C\u5E95\n fileName: page.fileName,\n componentName: page.moduleName,\n };\n }\n\n return {\n path: '',\n fileName: page.fileName,\n componentName: page.moduleName,\n };\n });\n\n const routerDeps = routes\n .map((r) => internalDeps[r.componentName] || compDeps[r.componentName])\n .filter((dep) => !!dep);\n\n // \u5206\u6790 Utils \u4F9D\u8D56\n let utils: IPublicTypeUtilItem[];\n if (schema.utils) {\n utils = schema.utils;\n utilsDeps = schema.utils\n .filter(\n (u): u is { name: string; type: 'npm' | 'tnpm'; content: IPublicTypeNpmInfo } => u.type !== 'function',\n )\n .map(\n (u): IExternalDependency => ({\n ...u.content,\n componentName: u.name,\n version: u.content.version || '*',\n destructuring: u.content.destructuring ?? false,\n exportName: u.content.exportName ?? u.name,\n }),\n );\n } else {\n utils = [];\n }\n\n // \u5206\u6790\u9879\u76EE npm \u4F9D\u8D56\n let npms: INpmPackage[] = [];\n containers.forEach((con) => {\n const p = (con.deps || [])\n .map((dep) => {\n return dep.dependencyType === DependencyType.External ? dep : null;\n })\n .filter((dep) => dep !== null);\n const npmInfos: INpmPackage[] = p.filter(Boolean).map((i) => ({\n package: (i as IExternalDependency).package,\n version: (i as IExternalDependency).version,\n }));\n npms.push(...npmInfos);\n });\n\n npms.push(\n ...utilsDeps.map((utilsDep) => ({\n package: utilsDep.package,\n version: utilsDep.version,\n })),\n );\n\n npms = uniqueArray<INpmPackage>(npms, (i) => i.package).filter(Boolean);\n\n return {\n containers,\n globalUtils: {\n utils,\n deps: utilsDeps,\n },\n globalI18n: schema.i18n,\n globalRouter: {\n routes,\n deps: routerDeps,\n },\n project: {\n css: schema.css,\n constants: schema.constants,\n config: schema.config || {},\n meta: schema.meta || {},\n i18n: schema.i18n,\n containersDeps,\n utilsDeps,\n packages: npms || [],\n dataSourcesTypes: this.collectDataSourcesTypes(schema),\n projectRemark: this.getProjectRemark(containers),\n },\n };\n }\n\n getProjectRemark(containers: IContainerInfo[]): ProjectRemark {\n return {\n isSingleComponent: containers.length === 1 && containers[0].containerType === 'Component',\n };\n }\n\n getComponentNames(children: IPublicTypeNodeDataType): string[] {\n return handleSubNodes<string>(\n children,\n {\n node: (i: IPublicTypeNodeSchema) => i.componentName,\n },\n {\n rerun: true,\n },\n );\n }\n\n decodeSchema(schemaSrc: string | IPublicTypeProjectSchema): IPublicTypeProjectSchema {\n let schema: IPublicTypeProjectSchema;\n if (typeof schemaSrc === 'string') {\n try {\n schema = JSON.parse(schemaSrc);\n } catch (error) {\n throw new CodeGeneratorError(\n `Parse schema failed: ${getErrorMessage(error) || 'unknown reason'}`,\n );\n }\n } else {\n schema = schemaSrc;\n }\n return schema;\n }\n\n private collectDataSourcesTypes(schema: IPublicTypeProjectSchema): string[] {\n const dataSourcesTypes = new Set<string>();\n\n // \u6570\u636E\u6E90\u7684\u9ED8\u8BA4\u7C7B\u578B\u4E3A fetch\n const defaultDataSourceType = 'fetch';\n\n // \u6536\u96C6\u5E94\u7528\u7EA7\u522B\u7684\u6570\u636E\u6E90\n schema.dataSource?.list?.forEach((ds) => {\n dataSourcesTypes.add(ds.type || defaultDataSourceType);\n });\n\n // \u6536\u96C6\u5BB9\u5668\u7EA7\u522B\u7684\u6570\u636E\u6E90\uFF08\u9875\u9762/\u7EC4\u4EF6/\u533A\u5757\uFF09\n schema.componentsTree.forEach((rootNode) => {\n rootNode.dataSource?.list?.forEach((ds) => {\n dataSourcesTypes.add(ds.type || defaultDataSourceType);\n });\n });\n\n return Array.from(dataSourcesTypes.values());\n }\n}\n\nexport default SchemaParser;\n", "/* eslint-disable @typescript-eslint/no-useless-constructor */\nexport class CodeGeneratorError extends Error {\n readonly detail?: unknown;\n\n constructor(message: string, detail?: unknown) {\n super(message);\n this.name = this.constructor.name;\n this.detail = detail;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\n\nexport class ComponentValidationError extends CodeGeneratorError {}\n\nexport class CompatibilityError extends CodeGeneratorError {}\n\nexport class PublisherError extends CodeGeneratorError {}\n", "export const NATIVE_ELE_PKG = 'native';\n\nexport const CONTAINER_TYPE = {\n COMPONENT: 'Component',\n BLOCK: 'Block',\n PAGE: 'Page',\n};\n\nexport const SUPPORT_SCHEMA_VERSION_LIST = ['0.0.1', '1.0.0'];\n\n// built-in slot names which have been handled in ProjectBuilder\nexport const BUILTIN_SLOT_NAMES = [\n 'pages',\n 'components',\n 'router',\n 'entry',\n 'appConfig',\n 'buildConfig',\n 'constants',\n 'utils',\n 'i18n',\n 'globalStyle',\n 'htmlEntry',\n 'packageJSON',\n 'demo',\n];\n\nexport const isBuiltinSlotName = function (name: string) {\n return BUILTIN_SLOT_NAMES.includes(name);\n};\n\nexport * from './file';\nexport * from './generator';\n", "import { FileType } from '../types/core';\n\nexport const FILE_TYPE_FAMILY = [[FileType.TSX, FileType.TS, FileType.JSX, FileType.JS]];\n", "export const COMMON_CHUNK_NAME = {\n ExternalDepsImport: 'CommonExternalDependencyImport',\n InternalDepsImport: 'CommonInternalDependencyImport',\n ImportAliasDefine: 'CommonImportAliasDefine',\n FileVarDefine: 'CommonFileScopeVarDefine',\n FileUtilDefine: 'CommonFileScopeMethodDefine',\n FileMainContent: 'CommonFileMainContent',\n FileExport: 'CommonFileExport',\n StyleDepsImport: 'CommonStyleDepsImport',\n StyleCssContent: 'CommonStyleCssContent',\n HtmlContent: 'CommonHtmlContent',\n CustomContent: 'CommonCustomContent',\n};\n\nexport const CLASS_DEFINE_CHUNK_NAME = {\n Start: 'CommonClassDefineStart',\n ConstructorStart: 'CommonClassDefineConstructorStart',\n ConstructorContent: 'CommonClassDefineConstructorContent',\n ConstructorEnd: 'CommonClassDefineConstructorEnd',\n StaticVar: 'CommonClassDefineStaticVar',\n StaticMethod: 'CommonClassDefineStaticMethod',\n InsVar: 'CommonClassDefineInsVar',\n InsVarMethod: 'CommonClassDefineInsVarMethod',\n InsMethod: 'CommonClassDefineInsMethod',\n InsPrivateMethod: 'CommonClassDefineInsPrivateMethod',\n End: 'CommonClassDefineEnd',\n};\n\n// vue\u6A21\u677F\u7ED3\u6784\nexport const TEMPLATE_DEFINE_CHUNK_NAME = {\n TemplateStart: 'CommonTemplateDefineStart', // template\u5F00\u59CB\n TemplateDom: 'CommonTemplateDefineDom', // \u9875\u9762\u7ED3\u6784\n TemplateEnd: 'CommonTemplateDefineEnd', // template\u7ED3\u675F\n ScriptStart: 'CommonScriptDefineStart', // script\u5F00\u59CB\n ExternalDepsImport: 'CommonExternalDependencyImport', // \u5916\u90E8\u4F9D\u8D56\u5BFC\u5165\n InternalDepsImport: 'CommonInternalDependencyImport', // \u5185\u90E8\u4F9D\u8D56\u5BFC\u5165\n ConstVar: 'CommonScriptDefineConstVar', // const\u53D8\u91CF\u5B9A\u4E49\n LetVar: 'CommonScriptDefineLetVar', // let\u53D8\u91CF\u5B9A\u4E49\n OnMountedStart: 'CommonScriptDefineOnMountedStart', // mounted\u751F\u547D\u5468\u671F\u5F00\u59CB\n OnMountedContent: 'CommonScriptDefineOnMountedContent', // mounted\u751F\u547D\u5468\u671F\u5185\u5BB9\n OnMountedEnd: 'CommonScriptDefineOnMountedEnd', // mounted\u751F\u547D\u5468\u671F\u7ED3\u675F\n UnMountedStart: 'CommonScriptDefineUnMountedStart', // unmounted\u751F\u547D\u5468\u671F\u5F00\u59CB\n UnMountedContent: 'CommonScriptDefineUnMountedContent', // unmounted\u751F\u547D\u5468\u671F\u5185\u5BB9\n UnMountedEnd: 'CommonScriptDefineUnMountedEnd', // unmounted\u751F\u547D\u5468\u671F\u7ED3\u675F\n Method: 'CommonScriptDefineMethod', // \u65B9\u6CD5\u5B9A\u4E49\n ScriptEnd: 'CommonScriptDefineEnd', // script\u7ED3\u675F\n CssStyleStart: 'CommonCssStyleDefineStart', // css\u6837\u5F0F\u5F00\u59CB\n CssStyleImport: 'CommonCssStyleDefineImport', // \u6837\u5F0F\u5BFC\u5165\n CssStyleEnd: 'CommonCssStyleDefineEnd', // css\u6837\u5F0F\u7ED3\u675F\n};\n\nexport const DEFAULT_LINK_AFTER = {\n [COMMON_CHUNK_NAME.ExternalDepsImport]: [],\n [COMMON_CHUNK_NAME.InternalDepsImport]: [COMMON_CHUNK_NAME.ExternalDepsImport],\n [COMMON_CHUNK_NAME.ImportAliasDefine]: [\n COMMON_CHUNK_NAME.ExternalDepsImport, COMMON_CHUNK_NAME.InternalDepsImport,\n ],\n [COMMON_CHUNK_NAME.FileVarDefine]: [\n COMMON_CHUNK_NAME.ExternalDepsImport,\n COMMON_CHUNK_NAME.InternalDepsImport,\n COMMON_CHUNK_NAME.ImportAliasDefine,\n ],\n [COMMON_CHUNK_NAME.FileUtilDefine]: [\n COMMON_CHUNK_NAME.ExternalDepsImport,\n COMMON_CHUNK_NAME.InternalDepsImport,\n COMMON_CHUNK_NAME.ImportAliasDefine,\n COMMON_CHUNK_NAME.FileVarDefine,\n ],\n [CLASS_DEFINE_CHUNK_NAME.Start]: [\n COMMON_CHUNK_NAME.ExternalDepsImport,\n COMMON_CHUNK_NAME.InternalDepsImport,\n COMMON_CHUNK_NAME.ImportAliasDefine,\n COMMON_CHUNK_NAME.FileVarDefine,\n COMMON_CHUNK_NAME.FileUtilDefine,\n ],\n [CLASS_DEFINE_CHUNK_NAME.ConstructorStart]: [\n CLASS_DEFINE_CHUNK_NAME.Start,\n CLASS_DEFINE_CHUNK_NAME.StaticVar,\n CLASS_DEFINE_CHUNK_NAME.StaticMethod,\n CLASS_DEFINE_CHUNK_NAME.InsVar,\n CLASS_DEFINE_CHUNK_NAME.InsVarMethod,\n ],\n [CLASS_DEFINE_CHUNK_NAME.ConstructorContent]: [CLASS_DEFINE_CHUNK_NAME.ConstructorStart],\n [CLASS_DEFINE_CHUNK_NAME.ConstructorEnd]: [\n CLASS_DEFINE_CHUNK_NAME.ConstructorStart,\n CLASS_DEFINE_CHUNK_NAME.ConstructorContent,\n ],\n [CLASS_DEFINE_CHUNK_NAME.StaticVar]: [CLASS_DEFINE_CHUNK_NAME.Start],\n [CLASS_DEFINE_CHUNK_NAME.StaticMethod]: [\n CLASS_DEFINE_CHUNK_NAME.Start, CLASS_DEFINE_CHUNK_NAME.StaticVar,\n ],\n [CLASS_DEFINE_CHUNK_NAME.InsVar]: [\n CLASS_DEFINE_CHUNK_NAME.Start,\n CLASS_DEFINE_CHUNK_NAME.StaticVar,\n CLASS_DEFINE_CHUNK_NAME.StaticMethod,\n ],\n [CLASS_DEFINE_CHUNK_NAME.InsVarMethod]: [\n CLASS_DEFINE_CHUNK_NAME.Start,\n CLASS_DEFINE_CHUNK_NAME.StaticVar,\n CLASS_DEFINE_CHUNK_NAME.StaticMethod,\n CLASS_DEFINE_CHUNK_NAME.InsVar,\n ],\n [CLASS_DEFINE_CHUNK_NAME.InsMethod]: [\n CLASS_DEFINE_CHUNK_NAME.Start,\n CLASS_DEFINE_CHUNK_NAME.StaticVar,\n CLASS_DEFINE_CHUNK_NAME.StaticMethod,\n CLASS_DEFINE_CHUNK_NAME.InsVar,\n CLASS_DEFINE_CHUNK_NAME.InsVarMethod,\n CLASS_DEFINE_CHUNK_NAME.ConstructorEnd,\n ],\n [CLASS_DEFINE_CHUNK_NAME.InsPrivateMethod]: [\n CLASS_DEFINE_CHUNK_NAME.Start,\n CLASS_DEFINE_CHUNK_NAME.StaticVar,\n CLASS_DEFINE_CHUNK_NAME.StaticMethod,\n CLASS_DEFINE_CHUNK_NAME.InsVar,\n CLASS_DEFINE_CHUNK_NAME.InsVarMethod,\n CLASS_DEFINE_CHUNK_NAME.InsMethod,\n CLASS_DEFINE_CHUNK_NAME.ConstructorEnd,\n ],\n [CLASS_DEFINE_CHUNK_NAME.End]: [\n CLASS_DEFINE_CHUNK_NAME.Start,\n CLASS_DEFINE_CHUNK_NAME.StaticVar,\n CLASS_DEFINE_CHUNK_NAME.StaticMethod,\n CLASS_DEFINE_CHUNK_NAME.InsVar,\n CLASS_DEFINE_CHUNK_NAME.InsVarMethod,\n CLASS_DEFINE_CHUNK_NAME.InsMethod,\n CLASS_DEFINE_CHUNK_NAME.InsPrivateMethod,\n CLASS_DEFINE_CHUNK_NAME.ConstructorEnd,\n ],\n [COMMON_CHUNK_NAME.FileMainContent]: [\n COMMON_CHUNK_NAME.ExternalDepsImport,\n COMMON_CHUNK_NAME.InternalDepsImport,\n COMMON_CHUNK_NAME.ImportAliasDefine,\n COMMON_CHUNK_NAME.FileVarDefine,\n COMMON_CHUNK_NAME.FileUtilDefine,\n CLASS_DEFINE_CHUNK_NAME.End,\n ],\n [COMMON_CHUNK_NAME.FileExport]: [\n COMMON_CHUNK_NAME.ExternalDepsImport,\n COMMON_CHUNK_NAME.InternalDepsImport,\n COMMON_CHUNK_NAME.ImportAliasDefine,\n COMMON_CHUNK_NAME.FileVarDefine,\n COMMON_CHUNK_NAME.FileUtilDefine,\n CLASS_DEFINE_CHUNK_NAME.End,\n COMMON_CHUNK_NAME.FileMainContent,\n ],\n [COMMON_CHUNK_NAME.StyleDepsImport]: [],\n [COMMON_CHUNK_NAME.StyleCssContent]: [COMMON_CHUNK_NAME.StyleDepsImport],\n [COMMON_CHUNK_NAME.HtmlContent]: [],\n};\n\n// VUE\u4EE3\u7801\u5757\u63D2\u5165\u987A\u5E8F\nexport const VUE_DEFAULT_LINK_AFTER = {\n [TEMPLATE_DEFINE_CHUNK_NAME.TemplateStart]: [],\n [TEMPLATE_DEFINE_CHUNK_NAME.TemplateDom]: [TEMPLATE_DEFINE_CHUNK_NAME.TemplateStart],\n [TEMPLATE_DEFINE_CHUNK_NAME.TemplateEnd]: [\n TEMPLATE_DEFINE_CHUNK_NAME.TemplateStart, TEMPLATE_DEFINE_CHUNK_NAME.TemplateDom\n ],\n [TEMPLATE_DEFINE_CHUNK_NAME.ScriptStart]: [\n TEMPLATE_DEFINE_CHUNK_NAME.TemplateEnd,\n ],\n [TEMPLATE_DEFINE_CHUNK_NAME.ExternalDepsImport]: [\n TEMPLATE_DEFINE_CHUNK_NAME.ScriptStart,\n ],\n [TEMPLATE_DEFINE_CHUNK_NAME.InternalDepsImport]: [\n TEMPLATE_DEFINE_CHUNK_NAME.ScriptStart,\n TEMPLATE_DEFINE_CHUNK_NAME.ExternalDepsImport\n ],\n [TEMPLATE_DEFINE_CHUNK_NAME.ConstVar]: [\n TEMPLATE_DEFINE_CHUNK_NAME.InternalDepsImport,\n ],\n [TEMPLATE_DEFINE_CHUNK_NAME.LetVar]: [TEMPLATE_DEFINE_CHUNK_NAME.ConstVar],\n [TEMPLATE_DEFINE_CHUNK_NAME.OnMountedStart]: [\n TEMPLATE_DEFINE_CHUNK_NAME.ConstVar,\n ],\n [TEMPLATE_DEFINE_CHUNK_NAME.OnMountedContent]: [TEMPLATE_DEFINE_CHUNK_NAME.OnMountedStart],\n [TEMPLATE_DEFINE_CHUNK_NAME.OnMountedEnd]: [\n TEMPLATE_DEFINE_CHUNK_NAME.OnMountedStart, TEMPLATE_DEFINE_CHUNK_NAME.OnMountedContent,\n ],\n [TEMPLATE_DEFINE_CHUNK_NAME.UnMountedStart]: [\n TEMPLATE_DEFINE_CHUNK_NAME.OnMountedEnd,\n ],\n [TEMPLATE_DEFINE_CHUNK_NAME.UnMountedContent]: [\n TEMPLATE_DEFINE_CHUNK_NAME.UnMountedStart,\n ],\n [TEMPLATE_DEFINE_CHUNK_NAME.UnMountedEnd]: [\n TEMPLATE_DEFINE_CHUNK_NAME.UnMountedStart,\n TEMPLATE_DEFINE_CHUNK_NAME.UnMountedContent,\n ],\n [TEMPLATE_DEFINE_CHUNK_NAME.Method]: [\n TEMPLATE_DEFINE_CHUNK_NAME.UnMountedEnd,\n ],\n [TEMPLATE_DEFINE_CHUNK_NAME.ScriptEnd]: [\n TEMPLATE_DEFINE_CHUNK_NAME.ScriptStart, TEMPLATE_DEFINE_CHUNK_NAME.UnMountedEnd, TEMPLATE_DEFINE_CHUNK_NAME.Method,\n ],\n [TEMPLATE_DEFINE_CHUNK_NAME.CssStyleStart]: [\n TEMPLATE_DEFINE_CHUNK_NAME.ScriptEnd,\n ],\n [TEMPLATE_DEFINE_CHUNK_NAME.CssStyleImport]: [\n TEMPLATE_DEFINE_CHUNK_NAME.CssStyleStart,\n ],\n [TEMPLATE_DEFINE_CHUNK_NAME.CssStyleEnd]: [TEMPLATE_DEFINE_CHUNK_NAME.CssStyleStart, TEMPLATE_DEFINE_CHUNK_NAME.CssStyleImport]\n};\n\nexport const COMMON_SUB_MODULE_NAME = 'index';\n// vue \u7269\u6599\u5305\nexport const VUE_MODULE_NAME = '@dckj-npm/lowcode-vue-materials';\n", "import * as _ from 'lodash';\nimport {\n IPublicTypeJSExpression,\n IPublicTypeNodeData,\n IPublicTypeNodeSchema,\n isJSExpression,\n isJSSlot,\n isDOMText,\n IPublicTypeContainerSchema,\n IPublicTypeNpmInfo,\n IPublicTypeCompositeValue,\n isNodeSchema,\n isJSFunction,\n} from '@alilc/lowcode-types';\nimport { CodeGeneratorError } from '../types/error';\nimport { isJSExpressionFn } from './common';\n\nexport function isContainerSchema(x: any): x is IPublicTypeContainerSchema {\n return (\n typeof x === 'object' &&\n x &&\n typeof x.componentName === 'string' &&\n typeof x.fileName === 'string'\n );\n}\n\nexport function isNpmInfo(x: any): x is IPublicTypeNpmInfo {\n return typeof x === 'object' && x && typeof x.package === 'string';\n}\n\nconst noop = () => undefined;\n\nconst handleChildrenDefaultOptions = {\n rerun: false,\n};\n\nconst DEFAULT_MAX_DEPTH = 100000;\n\n/**\n * \u904D\u5386\u5E76\u5904\u7406\u6240\u6709\u7684\u5B50\u8282\u70B9\n * @param children\n * @param handlers\n * @param options\n * @returns\n */\nexport function handleSubNodes<T>(\n children: IPublicTypeNodeSchema['children'],\n handlers: {\n string?: (i: string) => T;\n expression?: (i: IPublicTypeJSExpression) => T;\n node?: (i: IPublicTypeNodeSchema) => T;\n },\n options?: {\n rerun?: boolean;\n maxDepth?: number; // \u9632\u6B62\u51FA\u73B0\u6B7B\u5FAA\u73AF\u65E0\u7A77\u9012\u5F52\n },\n): T[] {\n const opt = {\n ...handleChildrenDefaultOptions,\n ...(options || {}),\n };\n const maxDepth = opt.maxDepth ?? DEFAULT_MAX_DEPTH;\n if (maxDepth <= 0) {\n throw new Error('handleSubNodes maxDepth reached');\n }\n\n if (Array.isArray(children)) {\n const list: IPublicTypeNodeData[] = children as IPublicTypeNodeData[];\n return list\n .map((child) => handleSubNodes(child, handlers, { ...opt, maxDepth: maxDepth - 1 }))\n .reduce((p, c) => p.concat(c), []);\n }\n\n let result: T | undefined;\n const childrenRes: T[] = [];\n if (children === null || children === undefined) {\n return [];\n } else if (isDOMText(children)) {\n const handler = handlers.string || noop;\n result = handler(children);\n } else if (isJSExpression(children)) {\n const handler = handlers.expression || noop;\n result = handler(children);\n } else if (isJSSlot(children)) {\n return handleSubNodes(children.value, handlers, { ...opt, maxDepth: maxDepth - 1 });\n } else if (isNodeSchema(children)) {\n const handler = handlers.node || noop;\n const child = children as IPublicTypeNodeSchema;\n result = handler(child);\n\n if (child.children) {\n const childRes = handleSubNodes(child.children, handlers, opt);\n childrenRes.push(...childRes);\n }\n\n if (child.props) {\n if (Array.isArray(child.props)) {\n child.props.forEach(({ value }) => {\n const childRes = handleCompositeValueInProps(value);\n childrenRes.push(...childRes);\n });\n } else {\n Object.values(child.props).forEach((value) => {\n const childRes = handleCompositeValueInProps(value as IPublicTypeCompositeValue);\n childrenRes.push(...childRes);\n });\n }\n }\n } else {\n throw new CodeGeneratorError('handleSubNodes got invalid NodeData', children);\n }\n\n if (result !== undefined) {\n childrenRes.unshift(result);\n }\n\n return childrenRes;\n\n function handleCompositeValueInProps(value: IPublicTypeCompositeValue): T[] {\n if (isJSSlot(value)) {\n return handleSubNodes(value.value, handlers, { ...opt, maxDepth: maxDepth - 1 });\n }\n\n // CompositeArray\n if (Array.isArray(value)) {\n return _.flatMap(value, (v) => handleCompositeValueInProps(v));\n }\n\n // IPublicTypeCompositeObject\n if (\n !isJSExpression(value) &&\n !isJSExpressionFn(value) &&\n !isJSFunction(value) &&\n typeof value === 'object' &&\n value !== null\n ) {\n return _.flatMap(Object.values(value), (v) => handleCompositeValueInProps(v));\n }\n\n return [];\n }\n}\n\nexport function isValidContainerType(schema: IPublicTypeNodeSchema) {\n return [\n 'Page',\n 'Component',\n 'Block',\n ].includes(schema.componentName);\n}\n\nexport const enum ContainerType {\n Page = 'Page',\n Component = 'Component',\n Block = 'Block',\n}", "import type { IPublicTypeJSExpression, IPublicTypeJSFunction } from '@alilc/lowcode-types';\nimport changeCase from 'change-case';\nimport short from 'short-uuid';\nimport { DependencyType, IDependency, IExternalDependency, IInternalDependency } from '../types';\n\n// Doc: https://www.npmjs.com/package/change-case\n\nexport function camel2dash(input: string): string {\n return changeCase.paramCase(input);\n}\n\n/**\n * \u8F6C\u4E3A\u9A7C\u5CF0\n */\nexport function camelize(str: string): string {\n return changeCase.camelCase(str);\n}\n\nexport function generateID(): string {\n return short.generate();\n}\n\nexport function upperCaseFirst(inputValue: string): string {\n return changeCase.upperCaseFirst(inputValue);\n}\n\nexport function uniqueArray<T>(arr: T[], by: (i: T) => string) {\n const map: Record<string, T> = {};\n arr.forEach((item) => {\n map[by(item)] = item;\n });\n // FIXME: Babel \u7F16\u8BD1\u5B58\u5728\u95EE\u9898\uFF0C\u6682\u65F6\u66FF\u6362\u5B9E\u73B0\n // const uniqueKeys = [...new Set<string>(Object.keys(map))];\n const uniqueKeys = Array.from(new Set<string>(Object.keys(map)));\n const uniqueItems = uniqueKeys.map((key) => map[key]);\n return uniqueItems;\n}\n\nexport function getStaticExprValue<T>(expr: string): T {\n // TODO: \u9700\u8981\u5B89\u5168\u6027\u68C0\u67E5\n // eslint-disable-next-line no-new-func\n return Function(`\"use strict\";return (${expr})`)();\n}\n\nexport function isJSExpressionFn(data: any): data is IPublicTypeJSFunction {\n return data?.type === 'JSExpression' && data?.extType === 'function';\n}\n\nexport function isInternalDependency(\n dependency: IDependency,\n): dependency is IInternalDependency {\n return dependency.dependencyType === DependencyType.Internal;\n}\n\nexport function isExternalDependency(\n dependency: IDependency,\n): dependency is IExternalDependency {\n return dependency.dependencyType === DependencyType.External;\n}", "import type { IPublicTypeNodeSchema, IPublicTypeCompositeObject } from '@alilc/lowcode-types';\nimport type { TComponentAnalyzer } from '../types';\n\nimport { handleSubNodes } from '../utils/schema';\n\nexport const componentAnalyzer: TComponentAnalyzer = (container) => {\n let hasRefAttr = false;\n const nodeValidator = (n: IPublicTypeNodeSchema) => {\n if (n.props) {\n const props = n.props as IPublicTypeCompositeObject;\n if (props.ref) {\n hasRefAttr = true;\n }\n }\n };\n\n nodeValidator(container);\n\n if (!hasRefAttr && container.children) {\n // eslint-disable-next-line @typescript-eslint/no-invalid-void-type\n handleSubNodes<void>(\n container.children,\n {\n node: nodeValidator,\n },\n {\n rerun: true,\n },\n );\n }\n\n return {\n isUsingRef: hasRefAttr,\n };\n};\n", "export const isValidIdentifier = (name: string) => {\n return /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/.test(name);\n};\n\nexport const isValidComponentName = (name: string) => {\n return /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF.]*$/.test(name);\n};\n\nexport const ensureValidClassName = (name: string) => {\n if (!isValidIdentifier(name)) {\n return `$${name.replace(/[^_$a-zA-Z0-9]/g, '')}`;\n }\n return name;\n};\n/**\n * \u5224\u65AD\u662F\u5426\u662Fvue\u7684\u5185\u7F6E\u6307\u4EE4\n * @param name\n */\nexport const isValidVueDirective = (name: string) => {\n const directives = ['v-model', 'v-html', 'v-for', 'v-if', 'v-else', 'v-if-else', 'v-show'];\n return directives.includes(name);\n};\n", "import { ResultFile, ResultDir } from '@alilc/lowcode-types';\nimport nm from 'nanomatch';\n\nimport { CodeGeneratorError } from '../types/error';\nimport { FlattenFile } from '../types/file';\n\nexport function createResultFile(name: string, ext = 'jsx', content = ''): ResultFile {\n return {\n name,\n ext,\n content,\n };\n}\n\nexport function createResultDir(name: string): ResultDir {\n return {\n name,\n dirs: [],\n files: [],\n };\n}\n\nexport function addDirectory(target: ResultDir, dir: ResultDir): void {\n if (target.dirs.findIndex((d) => d.name === dir.name) < 0) {\n target.dirs.push(dir);\n } else {\n throw new CodeGeneratorError(\n `Adding same directory to one directory: ${dir.name} -> ${target.name}`,\n );\n }\n}\n\nexport function addFile(target: ResultDir, file: ResultFile): void {\n if (target.files.findIndex((f) => f.name === file.name && f.ext === file.ext) < 0) {\n target.files.push(file);\n } else {\n throw new CodeGeneratorError(\n `Adding same file to one directory: ${file.name} -> ${target.name}`,\n );\n }\n}\n\nexport function flattenResult(dir: ResultDir, cwd = ''): FlattenFile[] {\n if (!dir.files.length && !dir.dirs.length) {\n return [];\n }\n\n return [\n ...dir.files.map(\n (file): FlattenFile => ({\n pathName: joinPath(cwd, `${file.name}${file.ext ? `.${file.ext}` : ''}`),\n content: file.content,\n }),\n ),\n ].concat(...dir.dirs.map((subDir) => flattenResult(subDir, joinPath(cwd, subDir.name))));\n}\n\nexport type GlobOptions = {\n /** \u662F\u5426\u67E5\u627E \".xxx\" \u6587\u4EF6, \u9ED8\u8BA4: \u5426 */\n dot?: boolean;\n};\n\n/**\n * \u67E5\u627E\u6587\u4EF6\n * @param result \u51FA\u7801\u7ED3\u679C\n * @param fileGlobExpr \u6587\u4EF6\u540D\u5339\u914D\u8868\u8FBE\u5F0F\n * @param resultDirPath \u51FA\u7801\u7ED3\u679C\u7684\u8DEF\u5F84\uFF08\u9ED8\u8BA4\u662F '.'\uFF09\n * @returns \u5339\u914D\u7684\u7B2C\u4E00\u4E2A\u6587\u4EF6\u6216 null \uFF08\u627E\u4E0D\u5230\uFF09\n */\nexport function findFile(\n result: ResultDir,\n fileGlobExpr: string,\n options: GlobOptions = {},\n resultDirPath = getResultNameOrDefault(result, ''),\n): ResultFile | null {\n const maxDepth = !/\\/|\\*\\*/.test(fileGlobExpr) ? 1 : undefined; // \u5982\u679C glob \u8868\u8FBE\u5F0F\u91CC\u9762\u538B\u6839\u4E0D\u4F1A\u5339\u914D\u5B50\u76EE\u5F55\uFF0C\u5219\u6DF1\u5EA6\u9650\u5236\u4E3A 1\n const files = scanFiles(result, resultDirPath, maxDepth);\n\n for (let [filePath, file] of files) {\n if (nm.isMatch(filePath, fileGlobExpr, options)) {\n return file;\n }\n }\n\n return null;\n}\n\n/**\n * \u4F7F\u7528 glob \u8BED\u6CD5\u67E5\u627E\u591A\u4E2A\u6587\u4EF6\n * @param result \u51FA\u7801\u7ED3\u679C\n * @param fileGlobExpr \u6587\u4EF6\u540D\u5339\u914D\u8868\u8FBE\u5F0F\n * @param resultDirPath \u51FA\u7801\u7ED3\u679C\u7684\u8DEF\u5F84\uFF08\u9ED8\u8BA4\u662F '.'\uFF09\n * @returns \u627E\u5230\u7684\u6587\u4EF6\u5217\u8868\u7684\u8FED\u4EE3\u5668 [ [\u6587\u4EF6\u8DEF\u5F84, \u6587\u4EF6\u4FE1\u606F], ... ]\n */\nexport function* globFiles(\n result: ResultDir,\n fileGlobExpr: string,\n options: GlobOptions = {},\n resultDirPath = getResultNameOrDefault(result, ''),\n): IterableIterator<[string, ResultFile]> {\n const files = scanFiles(result, resultDirPath);\n\n for (let [filePath, file] of files) {\n if (nm.isMatch(filePath, fileGlobExpr, options)) {\n yield [filePath, file];\n }\n }\n}\n\n/**\n * \u904D\u5386\u6240\u6709\u7684\u6587\u4EF6\n */\nexport function* scanFiles(\n result: ResultDir,\n resultDirPath = getResultNameOrDefault(result, ''),\n maxDepth = 10000,\n): IterableIterator<[string, ResultFile]> {\n for (let file of result.files) {\n const fileName = getFileNameWithExt(file);\n yield [joinPath(resultDirPath, fileName), file];\n }\n\n for (let subDir of result.dirs) {\n yield* scanFiles(subDir, joinPath(resultDirPath, subDir.name), maxDepth - 1);\n }\n}\n\nexport function getFileNameWithExt(file: ResultFile) {\n return `${file.name}${file.ext ? `.${file.ext}` : ''}`;\n}\n\nfunction getResultNameOrDefault(result: ResultDir, defaultDir = '/') {\n return result.name && result.name !== '.' ? result.name : defaultDir;\n}\n\nfunction joinPath(...pathParts: string[]): string {\n return pathParts\n .filter((x) => x !== '' && x !== '.')\n .join('/')\n .replace(/\\\\+/g, '/')\n .replace(/\\/+/g, '/');\n}\n\nexport function* scanDirs(\n result: ResultDir,\n resultDirPath = getResultNameOrDefault(result, ''),\n maxDepth = 10000,\n): IterableIterator<[string, ResultDir]> {\n yield [resultDirPath, result];\n\n for (let subDir of result.dirs) {\n yield* scanDirs(subDir, joinPath(resultDirPath, subDir.name), maxDepth - 1);\n }\n}\n\nexport function* globDirs(\n result: ResultDir,\n dirGlobExpr: string,\n options: GlobOptions = {},\n resultDirPath = getResultNameOrDefault(result, ''),\n): IterableIterator<[string, ResultDir]> {\n const dirs = scanDirs(result, resultDirPath);\n\n for (let [dirPath, dir] of dirs) {\n if (nm.isMatch(dirPath, dirGlobExpr, options)) {\n yield [dirPath, dir];\n }\n }\n}\n\nexport function findDir(\n result: ResultDir,\n dirGlobExpr: string,\n options: GlobOptions = {},\n resultDirPath = getResultNameOrDefault(result, ''),\n): ResultDir | null {\n const dirs = scanDirs(result, resultDirPath);\n\n for (let [dirPath, dir] of dirs) {\n if (nm.isMatch(dirPath, dirGlobExpr, options)) {\n return dir;\n }\n }\n\n return null;\n}\n\n/**\n * \u4ECE\u7ED3\u679C\u4E2D\u79FB\u9664\u4E00\u4E9B\u6587\u4EF6\n * @param result \u51FA\u7801\u7ED3\u679C\u76EE\u5F55\n * @param filePathGlobExpr \u8981\u79FB\u9664\u7684\u6587\u4EF6\u8DEF\u5F84\uFF08glob \u8868\u8FBE\u5F0F\uFF09\n * @param globOptions glob \u53C2\u6570\n * @returns \u79FB\u9664\u4E86\u591A\u5C11\u6587\u4EF6\n */\nexport function removeFilesFromResult(\n result: ResultDir,\n filePathGlobExpr: string,\n globOptions: GlobOptions = {},\n): number {\n let removedCount = 0;\n const [dirPath, fileName] = splitPath(filePathGlobExpr);\n\n const dirs = dirPath ? globDirs(result, dirPath) : [['', result] as const];\n for (let [, dir] of dirs) {\n const files = globFiles(dir, fileName, globOptions, '.');\n for (let [, file] of files) {\n dir.files.splice(dir.files.indexOf(file), 1);\n removedCount += 1;\n }\n }\n\n return removedCount;\n}\n\n/**\n * \u4ECE\u7ED3\u679C\u4E2D\u79FB\u9664\u4E00\u4E9B\u76EE\u5F55\n * @param result \u51FA\u7801\u7ED3\u679C\u76EE\u5F55\n * @param dirPathGlobExpr \u8981\u79FB\u9664\u7684\u76EE\u5F55\u8DEF\u5F84\uFF08glob \u8868\u8FBE\u5F0F\uFF09\n * @param globOptions glob \u53C2\u6570\n * @returns \u79FB\u9664\u4E86\u591A\u5C11\u6587\u4EF6\n */\nexport function removeDirsFromResult(\n result: ResultDir,\n dirPathGlobExpr: string,\n globOptions: GlobOptions = {},\n): number {\n let removedCount = 0;\n const [dirPath, fileName] = splitPath(dirPathGlobExpr);\n\n const dirs = dirPath ? globDirs(result, dirPath) : [['', result] as const];\n for (let [, dir] of dirs) {\n const foundDirs = globDirs(dir, fileName, globOptions, '.');\n for (let [, foundDir] of foundDirs) {\n dir.dirs.splice(dir.dirs.indexOf(foundDir), 1);\n removedCount += 1;\n }\n }\n\n return removedCount;\n}\n\n/**\n * \u5C06\u6587\u4EF6\u8DEF\u5F84\u62C6\u5206\u4E3A\u76EE\u5F55\u8DEF\u5F84\u548C\u6587\u4EF6\u540D\n * @param filePath\n * @returns [fileDirPath, fileName]\n */\nfunction splitPath(filePath: string) {\n const parts = filePath.split('/');\n const fileName = parts.pop() || '';\n return [joinPath(...parts), fileName];\n}\n", "import { BuilderComponentPlugin, IChunkBuilder, ICodeChunk, ICodeStruct, FileType } from '../types';\n\nimport { COMMON_SUB_MODULE_NAME } from '../const/generator';\nimport { FILE_TYPE_FAMILY } from '../const/file';\n\ninterface ChunkGroupInfo {\n chunk: ICodeChunk;\n familyIdx?: number;\n}\n\nfunction whichFamily(type: FileType): [number, FileType[]] | undefined {\n const idx = FILE_TYPE_FAMILY.findIndex((family) => family.indexOf(type) >= 0);\n if (idx < 0) {\n return undefined;\n }\n return [idx, FILE_TYPE_FAMILY[idx]];\n}\n\nexport const groupChunks = (chunks: ICodeChunk[]): ICodeChunk[][] => {\n const tmp: Record<string, Record<number, number>> = {};\n const col = chunks.reduce((chunksSet: Record<string, ChunkGroupInfo[]>, chunk) => {\n const fileKey = chunk.subModule || COMMON_SUB_MODULE_NAME;\n if (!chunksSet[fileKey]) {\n // eslint-disable-next-line no-param-reassign\n chunksSet[fileKey] = [];\n }\n const res = whichFamily(chunk.fileType as FileType);\n const info: ChunkGroupInfo = {\n chunk,\n };\n if (res) {\n const [familyIdx, family] = res;\n const rank = family.indexOf(chunk.fileType as FileType);\n if (tmp[fileKey]) {\n if (tmp[fileKey][familyIdx] !== undefined) {\n if (tmp[fileKey][familyIdx] > rank) {\n tmp[fileKey][familyIdx] = rank;\n }\n } else {\n tmp[fileKey][familyIdx] = rank;\n }\n } else {\n tmp[fileKey] = {};\n tmp[fileKey][familyIdx] = rank;\n }\n info.familyIdx = familyIdx;\n }\n\n chunksSet[fileKey].push(info);\n return chunksSet;\n }, {});\n\n const result: ICodeChunk[][] = [];\n Object.keys(col).forEach((key) => {\n const byType: Record<string, ICodeChunk[]> = {};\n col[key].forEach((info) => {\n let t: string = info.chunk.fileType;\n if (info.familyIdx !== undefined) {\n t = FILE_TYPE_FAMILY[info.familyIdx][tmp[key][info.familyIdx]];\n // eslint-disable-next-line no-param-reassign\n info.chunk.fileType = t;\n }\n if (!byType[t]) {\n byType[t] = [];\n }\n byType[t].push(info.chunk);\n });\n result.push(...Object.keys(byType).map((t) => byType[t]));\n });\n\n return result;\n};\n\n/**\n * \u4EE3\u7801\u7247\u6BB5\u6784\u5EFA\u5668\n *\n * @export\n * @class ChunkBuilder\n * @template T\n */\nexport class ChunkBuilder implements IChunkBuilder {\n private plugins: BuilderComponentPlugin[];\n\n constructor(plugins: BuilderComponentPlugin[] = []) {\n this.plugins = plugins;\n }\n\n async run(\n ir: unknown,\n initialStructure: ICodeStruct = {\n ir,\n chunks: [],\n depNames: [],\n contextData: {},\n },\n ) {\n const structure = initialStructure;\n\n const finalStructure: ICodeStruct = await this.plugins.reduce(\n async (previousPluginOperation: Promise<ICodeStruct>, plugin) => {\n const modifiedStructure = await previousPluginOperation;\n return plugin(modifiedStructure);\n },\n Promise.resolve(structure),\n );\n\n const chunks = groupChunks(finalStructure.chunks);\n\n return {\n chunks,\n };\n }\n\n getPlugins() {\n return this.plugins;\n }\n\n addPlugin(plugin: BuilderComponentPlugin) {\n this.plugins.push(plugin);\n }\n}\n\nexport default ChunkBuilder;\n", "import {\n ChunkContent,\n ChunkType,\n CodeGeneratorError,\n CodeGeneratorFunction,\n ICodeBuilder,\n ICodeChunk,\n} from '../types';\n\nexport class CodeBuilder implements ICodeBuilder {\n private chunkDefinitions: ICodeChunk[] = [];\n\n private generators: { [key: string]: CodeGeneratorFunction<ChunkContent> } = {\n [ChunkType.STRING]: (str: string) => str, // no-op for string chunks\n [ChunkType.JSON]: (json: Record<string, unknown>) => JSON.stringify(json), // stringify json to string\n };\n\n constructor(chunkDefinitions: ICodeChunk[] = []) {\n this.chunkDefinitions = chunkDefinitions;\n }\n\n /**\n * Links all chunks together based on their requirements. Returns an array\n * of ordered chunk names which need to be compiled and glued together.\n */\n link(chunkDefinitions: ICodeChunk[] = []): string {\n const chunks = chunkDefinitions || this.chunkDefinitions;\n if (chunks.length <= 0) {\n return '';\n }\n\n const unprocessedChunks = chunks.map((chunk) => {\n return {\n name: chunk.name,\n type: chunk.type,\n content: chunk.content,\n linkAfter: this.cleanupInvalidChunks(chunk.linkAfter, chunks),\n };\n });\n\n const resultingString: string[] = [];\n\n while (unprocessedChunks.length > 0) {\n let indexToRemove = 0;\n for (let index = 0; index < unprocessedChunks.length; index++) {\n if (unprocessedChunks[index].linkAfter.length <= 0) {\n indexToRemove = index;\n break;\n }\n }\n\n if (unprocessedChunks[indexToRemove].linkAfter.length > 0) {\n throw new CodeGeneratorError(\n 'Operation aborted. Reason: cyclic dependency between chunks.',\n );\n }\n\n const { type, content, name } = unprocessedChunks[indexToRemove];\n const compiledContent = this.generateByType(type, content);\n if (compiledContent) {\n resultingString.push(`${compiledContent}\\n`);\n }\n\n unprocessedChunks.splice(indexToRemove, 1);\n if (!unprocessedChunks.some((ch) => ch.name === name)) {\n unprocessedChunks.forEach(\n // remove the processed chunk from all the linkAfter arrays from the remaining chunks\n (ch) => {\n // eslint-disable-next-line no-param-reassign\n ch.linkAfter = ch.linkAfter.filter((after) => after !== name);\n },\n );\n }\n }\n\n return resultingString.join('\\n');\n }\n\n generateByType(type: string, content: unknown): string {\n if (!content) {\n return '';\n }\n if (Array.isArray(content)) {\n return content.map((contentItem) => this.generateByType(type, contentItem)).join('\\n');\n }\n\n if (!this.generators[type]) {\n throw new Error(\n `Attempted to generate unknown type ${type}. Please register a generator for this type in builder/index.ts`,\n );\n }\n\n return this.generators[type](content);\n }\n\n // remove invalid chunks (which did not end up being created) from the linkAfter fields\n // one use-case is when you want to remove the import plugin\n private cleanupInvalidChunks(linkAfter: string[], chunks: ICodeChunk[]) {\n return linkAfter.filter((chunkName) => chunks.some((chunk) => chunk.name === chunkName));\n }\n}\n\nexport default CodeBuilder;\n", "import { IPublicTypeProjectSchema, ResultFile, ResultDir } from '@alilc/lowcode-types';\n\nimport {\n BuilderComponentPlugin,\n CodeGeneratorError,\n ICodeChunk,\n ICompiledModule,\n IContextData,\n IModuleBuilder,\n IParseResult,\n ISchemaParser,\n PostProcessor,\n} from '../types';\n\nimport { COMMON_SUB_MODULE_NAME } from '../const/generator';\n\nimport { SchemaParser } from '../parser/SchemaParser';\nimport { ChunkBuilder } from './ChunkBuilder';\nimport { CodeBuilder } from './CodeBuilder';\nimport { createResultFile, createResultDir, addFile } from '../utils/resultHelper';\n\nexport function createModuleBuilder(\n options: {\n plugins: BuilderComponentPlugin[];\n postProcessors: PostProcessor[];\n mainFileName?: string;\n contextData?: IContextData;\n } = {\n plugins: [],\n postProcessors: [],\n },\n): IModuleBuilder {\n const chunkGenerator = new ChunkBuilder(options.plugins);\n const linker = new CodeBuilder();\n\n const generateModule = async (input: unknown): Promise<ICompiledModule> => {\n const moduleMainName = options.mainFileName || COMMON_SUB_MODULE_NAME;\n if (chunkGenerator.getPlugins().length <= 0) {\n throw new CodeGeneratorError(\n 'No plugins found. Component generation cannot work without any plugins!',\n );\n }\n\n let files: ResultFile[] = [];\n\n const { chunks } = await chunkGenerator.run(input, {\n ir: input,\n chunks: [],\n depNames: [],\n contextData: options.contextData || {},\n });\n\n chunks.forEach((fileChunkList) => {\n const content = linker.link(fileChunkList);\n const file = createResultFile(\n fileChunkList[0].subModule || moduleMainName,\n fileChunkList[0].fileType,\n content,\n );\n files.push(file);\n });\n\n if (options.postProcessors.length > 0) {\n files = files.map((file) => {\n let { content, ext: type, name } = file;\n options.postProcessors.forEach((processer) => {\n content = processer(content, type, name);\n });\n\n return createResultFile(file.name, type, content);\n });\n }\n\n return {\n files,\n };\n };\n\n const generateModuleCode = async (schema: IPublicTypeProjectSchema | string): Promise<ResultDir> => {\n // Init\n const schemaParser: ISchemaParser = new SchemaParser();\n const parseResult: IParseResult = schemaParser.parse(schema);\n\n const containerInfo = parseResult.containers[0];\n const { files } = await generateModule(containerInfo);\n\n const dir = createResultDir(containerInfo.moduleName);\n files.forEach((file) => addFile(dir, file));\n\n return dir;\n };\n\n const linkCodeChunks = (chunks: Record<string, ICodeChunk[]>, fileName: string) => {\n const files: ResultFile[] = [];\n\n Object.keys(chunks).forEach((fileKey) => {\n const fileChunkList = chunks[fileKey];\n const content = linker.link(fileChunkList);\n const file = createResultFile(\n fileChunkList[0].subModule || fileName,\n fileChunkList[0].fileType,\n content,\n );\n files.push(file);\n });\n\n return files;\n };\n\n return {\n generateModule,\n generateModuleCode,\n linkCodeChunks,\n addPlugin: chunkGenerator.addPlugin.bind(chunkGenerator),\n };\n}\n", "import { ResultDir, ResultFile, IPublicTypeProjectSchema } from '@alilc/lowcode-types';\n\nimport {\n IModuleBuilder,\n IParseResult,\n IProjectBuilder,\n IProjectPlugins,\n IProjectTemplate,\n ISchemaParser,\n PostProcessor,\n} from '../types';\n\nimport { SchemaParser } from '../parser/SchemaParser';\nimport { createResultDir, addDirectory, addFile } from '../utils/resultHelper';\n\nimport { createModuleBuilder } from './ModuleBuilder';\nimport { ProjectPreProcessor, ProjectPostProcessor, IContextData } from '../types/core';\nimport { CodeGeneratorError } from '../types/error';\nimport { isBuiltinSlotName } from '../const';\n\ninterface IModuleInfo {\n moduleName?: string;\n path: string[];\n files: ResultFile[];\n}\n\nexport interface ProjectBuilderInitOptions {\n\n /** \u9879\u76EE\u6A21\u677F */\n template: IProjectTemplate;\n\n /** \u9879\u76EE\u63D2\u4EF6 */\n plugins: IProjectPlugins;\n\n /** \u6A21\u5757\u540E\u7F6E\u5904\u7406\u5668 */\n postProcessors: PostProcessor[];\n\n /** Schema \u89E3\u6790\u5668 */\n schemaParser?: ISchemaParser;\n\n /** \u9879\u76EE\u7EA7\u522B\u7684\u524D\u7F6E\u5904\u7406\u5668 */\n projectPreProcessors?: ProjectPreProcessor[];\n\n /** \u9879\u76EE\u7EA7\u522B\u7684\u540E\u7F6E\u5904\u7406\u5668 */\n projectPostProcessors?: ProjectPostProcessor[];\n\n /** \u662F\u5426\u5904\u4E8E\u4E25\u683C\u6A21\u5F0F */\n inStrictMode?: boolean;\n\n /** \u4E00\u4E9B\u989D\u5916\u7684\u4E0A\u4E0B\u6587\u6570\u636E */\n extraContextData?: Record<string, unknown>;\n\n /**\n * Hook which is used to customize original options, we can reorder/add/remove plugins/processors\n * of the existing solution.\n */\n customizeBuilderOptions?(originalOptions: ProjectBuilderInitOptions): ProjectBuilderInitOptions;\n}\n\nexport class ProjectBuilder implements IProjectBuilder {\n /** \u9879\u76EE\u6A21\u677F */\n private template: IProjectTemplate;\n\n /** \u9879\u76EE\u63D2\u4EF6 */\n private plugins: IProjectPlugins;\n\n /** \u6A21\u5757\u540E\u7F6E\u5904\u7406\u5668 */\n private postProcessors: PostProcessor[];\n\n /** Schema \u89E3\u6790\u5668 */\n private schemaParser: ISchemaParser;\n\n /** \u9879\u76EE\u7EA7\u522B\u7684\u524D\u7F6E\u5904\u7406\u5668 */\n private projectPreProcessors: ProjectPreProcessor[];\n\n /** \u9879\u76EE\u7EA7\u522B\u7684\u540E\u7F6E\u5904\u7406\u5668 */\n private projectPostProcessors: ProjectPostProcessor[];\n\n /** \u662F\u5426\u5904\u4E8E\u4E25\u683C\u6A21\u5F0F */\n readonly inStrictMode: boolean;\n\n /** \u4E00\u4E9B\u989D\u5916\u7684\u4E0A\u4E0B\u6587\u6570\u636E */\n readonly extraContextData: IContextData;\n\n constructor(builderOptions: ProjectBuilderInitOptions) {\n let customBuilderOptions = builderOptions;\n if (typeof builderOptions.customizeBuilderOptions === 'function') {\n customBuilderOptions = builderOptions.customizeBuilderOptions(builderOptions);\n }\n const {\n template,\n plugins,\n postProcessors,\n schemaParser = new SchemaParser(),\n projectPreProcessors = [],\n projectPostProcessors = [],\n inStrictMode = false,\n extraContextData = {},\n } = customBuilderOptions;\n this.template = template;\n this.plugins = plugins;\n this.postProcessors = postProcessors;\n this.schemaParser = schemaParser;\n this.projectPreProcessors = projectPreProcessors;\n this.projectPostProcessors = projectPostProcessors;\n this.inStrictMode = inStrictMode;\n this.extraContextData = extraContextData;\n }\n\n async generateProject(originalSchema: IPublicTypeProjectSchema | string): Promise<ResultDir> {\n // Init\n const { schemaParser } = this;\n\n let schema: IPublicTypeProjectSchema =\n typeof originalSchema === 'string' ? JSON.parse(originalSchema) : originalSchema;\n\n // Parse / Format\n // Preprocess\n for (const preProcessor of this.projectPreProcessors) {\n // eslint-disable-next-line no-await-in-loop\n schema = await preProcessor(schema);\n }\n\n // Validate\n if (!schemaParser.validate(schema)) {\n throw new CodeGeneratorError('Schema is invalid');\n }\n\n // Collect Deps\n // Parse JSExpression\n const parseResult: IParseResult = schemaParser.parse(schema);\n\n const projectRoot = await this.template.generateTemplate(parseResult);\n\n let buildResult: IModuleInfo[] = [];\n\n const builders = this.createModuleBuilders({\n extraContextData: {\n projectRemark: parseResult?.project?.projectRemark,\n template: this.template,\n },\n });\n // Generator Code module\n // components\n // pages\n const containerBuildResult: IModuleInfo[] = await Promise.all<IModuleInfo>(\n parseResult.containers.map(async (containerInfo) => {\n let builder: IModuleBuilder;\n let path: string[];\n if (containerInfo.containerType === 'Page') {\n builder = builders.pages;\n path = this.template.slots.pages.path;\n } else {\n builder = builders.components;\n path = this.template.slots.components.path;\n }\n\n const { files } = await builder.generateModule(containerInfo);\n\n return {\n moduleName: containerInfo.moduleName,\n path,\n files,\n };\n }),\n );\n buildResult = buildResult.concat(containerBuildResult);\n\n // router\n if (parseResult.globalRouter && builders.router) {\n const { files } = await builders.router.generateModule(parseResult.globalRouter);\n\n buildResult.push({\n path: this.template.slots.router.path,\n files,\n });\n }\n\n // entry\n if (parseResult.project && builders.entry) {\n const { files } = await builders.entry.generateModule(parseResult.project);\n\n buildResult.push({\n path: this.template.slots.entry.path,\n files,\n });\n }\n\n // appConfig\n if (builders.appConfig) {\n const { files } = await builders.appConfig.generateModule(parseResult);\n\n buildResult.push({\n path: this.template.slots.appConfig.path,\n files,\n });\n }\n\n // buildConfig\n if (builders.buildConfig) {\n const { files } = await builders.buildConfig.generateModule(parseResult);\n\n buildResult.push({\n path: this.template.slots.buildConfig.path,\n files,\n });\n }\n\n // constants?\n if (parseResult.project && builders.constants && this.template.slots.constants) {\n const { files } = await builders.constants.generateModule(parseResult.project);\n\n buildResult.push({\n path: this.template.slots.constants.path,\n files,\n });\n }\n\n // utils?\n if (parseResult.globalUtils && builders.utils && this.template.slots.utils) {\n const { files } = await builders.utils.generateModule(parseResult.globalUtils);\n\n buildResult.push({\n path: this.template.slots.utils.path,\n files,\n });\n }\n\n // i18n?\n if (builders.i18n && this.template.slots.i18n) {\n const { files } = await builders.i18n.generateModule(parseResult.project);\n\n buildResult.push({\n path: this.template.slots.i18n.path,\n files,\n });\n }\n\n // globalStyle\n if (parseResult.project && builders.globalStyle) {\n const { files } = await builders.globalStyle.generateModule(parseResult.project);\n\n buildResult.push({\n path: this.template.slots.globalStyle.path,\n files,\n });\n }\n\n // htmlEntry\n if (parseResult.project && builders.htmlEntry) {\n const { files } = await builders.htmlEntry.generateModule(parseResult.project);\n\n buildResult.push({\n path: this.template.slots.htmlEntry.path,\n files,\n });\n }\n\n // packageJSON\n if (parseResult.project && builders.packageJSON) {\n const { files } = await builders.packageJSON.generateModule(parseResult.project);\n\n buildResult.push({\n path: this.template.slots.packageJSON.path,\n files,\n });\n }\n\n // demo\n if (parseResult.project && builders.demo) {\n const { files } = await builders.demo.generateModule(parseResult.project);\n buildResult.push({\n path: this.template.slots.demo.path,\n files,\n });\n }\n\n // handle extra slots\n await this.generateExtraSlots(builders, parseResult, buildResult);\n\n // Post Process\n const isSingleComponent = parseResult?.project?.projectRemark?.isSingleComponent;\n // Combine Modules\n buildResult.forEach((moduleInfo) => {\n let targetDir = getDirFromRoot(projectRoot, moduleInfo.path);\n // if project only contain single component, skip creation of directory.\n if (moduleInfo.moduleName && !isSingleComponent) {\n const dir = createResultDir(moduleInfo.moduleName);\n addDirectory(targetDir, dir);\n targetDir = dir;\n }\n moduleInfo.files.forEach((file) => addFile(targetDir, file));\n });\n\n // post-processors\n let finalResult = projectRoot;\n for (const projectPostProcessor of this.projectPostProcessors) {\n // eslint-disable-next-line no-await-in-loop\n finalResult = await projectPostProcessor(finalResult, schema, originalSchema, {\n template: this.template,\n parseResult,\n });\n }\n\n return finalResult;\n }\n\n private createModuleBuilders(extraContextData: Record<string, unknown> = {}):\n Record<string, IModuleBuilder> {\n const builders: Record<string, IModuleBuilder> = {};\n\n Object.keys(this.plugins).forEach((pluginName) => {\n if (this.plugins[pluginName].length > 0) {\n const options: { mainFileName?: string } = {};\n if (this.template.slots[pluginName] && this.template.slots[pluginName].fileName) {\n options.mainFileName = this.template.slots[pluginName].fileName;\n }\n builders[pluginName] = createModuleBuilder({\n plugins: this.plugins[pluginName],\n postProcessors: this.postProcessors,\n contextData: {\n // template: this.template,\n inStrictMode: this.inStrictMode,\n tolerateEvalErrors: true,\n evalErrorsHandler: '',\n ...this.extraContextData,\n ...extraContextData,\n },\n ...options,\n });\n }\n });\n\n return builders;\n }\n\n private async generateExtraSlots(\n builders: Record<string, IModuleBuilder>,\n parseResult: IParseResult,\n buildResult: IModuleInfo[],\n ) {\n for (const slotName in this.template.slots) {\n if (!isBuiltinSlotName(slotName)) {\n const { files } = await builders[slotName].generateModule(parseResult);\n buildResult.push({\n path: this.template.slots[slotName].path,\n files,\n });\n }\n }\n }\n}\n\nexport function createProjectBuilder(initOptions: ProjectBuilderInitOptions): IProjectBuilder {\n return new ProjectBuilder(initOptions);\n}\n\nfunction getDirFromRoot(root: ResultDir, path: string[]): ResultDir {\n let current: ResultDir = root;\n path.forEach((p) => {\n const exist = current.dirs.find((d) => d.name === p);\n if (exist) {\n current = exist;\n } else {\n const newDir = createResultDir(p);\n addDirectory(current, newDir);\n current = newDir;\n }\n });\n\n return current;\n}\n", "import * as defaultFs from 'fs';\n\nimport { ResultDir } from '@alilc/lowcode-types';\nimport { PublisherFactory, IPublisher, IPublisherFactoryParams, PublisherError } from '../../types';\nimport { getErrorMessage } from '../../utils/errors';\nimport { writeFolder, IFileSystem } from './utils';\n\nexport interface IDiskFactoryParams extends IPublisherFactoryParams {\n outputPath?: string;\n projectSlug?: string;\n createProjectFolder?: boolean;\n fs?: IFileSystem;\n}\n\nexport interface IDiskPublisher extends IPublisher<IDiskFactoryParams, string> {\n getOutputPath: () => string;\n setOutputPath: (path: string) => void;\n}\n\nexport const createDiskPublisher: PublisherFactory<IDiskFactoryParams, IDiskPublisher> = (\n params: IDiskFactoryParams = {},\n): IDiskPublisher => {\n let { project, outputPath = './' } = params;\n const { fs = defaultFs } = params;\n\n const getProject = (): ResultDir => {\n if (!project) {\n throw new PublisherError('MissingProject');\n }\n return project;\n };\n const setProject = (projectToSet: ResultDir): void => {\n project = projectToSet;\n };\n\n const getOutputPath = (): string => {\n return outputPath;\n };\n const setOutputPath = (path: string): void => {\n outputPath = path;\n };\n\n const publish = async (options: IDiskFactoryParams = {}) => {\n const projectToPublish = options.project || project;\n if (!projectToPublish) {\n throw new PublisherError('MissingProject');\n }\n\n const projectOutputPath = options.outputPath || outputPath;\n const overrideProjectSlug = options.projectSlug || params.projectSlug;\n const createProjectFolder = options.createProjectFolder ?? params.createProjectFolder;\n\n if (overrideProjectSlug) {\n projectToPublish.name = overrideProjectSlug;\n }\n\n try {\n await writeFolder(projectToPublish, projectOutputPath, createProjectFolder, fs);\n return { success: true, payload: projectOutputPath };\n } catch (error) {\n throw new PublisherError(getErrorMessage(error) || 'UnknownError');\n }\n };\n\n return {\n publish,\n getProject,\n setProject,\n getOutputPath,\n setOutputPath,\n };\n};\n", "import * as systemFs from 'fs';\nimport { join } from 'path';\nimport { ResultDir, ResultFile } from '@alilc/lowcode-types';\n\nexport interface IFileSystem {\n existsSync: typeof systemFs.existsSync;\n mkdir: typeof systemFs.mkdir;\n writeFile: typeof systemFs.writeFile;\n}\n\nexport const writeFolder = async (\n folder: ResultDir,\n currentPath: string,\n createProjectFolder = true,\n fs: IFileSystem = systemFs,\n): Promise<void> => {\n const { name, files, dirs } = folder;\n\n const folderPath = createProjectFolder ? join(currentPath, name) : currentPath;\n\n if (!fs.existsSync(folderPath)) {\n await createDirectory(folderPath, fs);\n }\n\n const promises = [\n writeFilesToFolder(folderPath, files, fs),\n writeSubFoldersToFolder(folderPath, dirs, fs),\n ];\n\n await Promise.all(promises);\n};\n\nconst writeFilesToFolder = async (\n folderPath: string,\n files: ResultFile[],\n fs: IFileSystem,\n): Promise<void> => {\n const promises = files.map((file) => {\n const fileName = file.ext ? `${file.name}.${file.ext}` : file.name;\n const filePath = join(folderPath, fileName);\n return writeContentToFile(filePath, file.content, 'utf8', fs);\n });\n\n await Promise.all(promises);\n};\n\nconst writeSubFoldersToFolder = async (\n folderPath: string,\n subFolders: ResultDir[],\n fs: IFileSystem,\n): Promise<void> => {\n const promises = subFolders.map((subFolder) => {\n return writeFolder(subFolder, folderPath, true, fs);\n });\n\n await Promise.all(promises);\n};\n\nconst createDirectory = (pathToDir: string, fs: IFileSystem): Promise<void> => {\n return new Promise((resolve, reject) => {\n fs.mkdir(pathToDir, { recursive: true }, (err) => {\n err ? reject(err) : resolve();\n });\n });\n};\n\nconst writeContentToFile = (\n filePath: string,\n fileContent: string,\n encoding = 'utf8',\n fs: IFileSystem,\n): Promise<void> => {\n return new Promise((resolve, reject) => {\n fs.writeFile(filePath, fileContent, { encoding: encoding as BufferEncoding }, (err) => {\n err ? reject(err) : resolve();\n });\n });\n};\n", "import JSZip from 'jszip';\nimport { ResultDir, ResultFile } from '@alilc/lowcode-types';\nimport type { ZipBuffer } from './index';\n\nexport const isNodeProcess = (): boolean => {\n return (\n typeof process === 'object' &&\n typeof process.versions === 'object' &&\n typeof process.versions.node !== 'undefined'\n );\n};\n\nexport const writeZipToDisk = (\n zipFolderPath: string,\n content: ZipBuffer,\n zipName: string,\n): void => {\n if (!isNodeProcess()) {\n throw new Error('ZipPublisher: writeZipToDisk is only available in NodeJS');\n }\n\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n const fs = require('fs');\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n const path = require('path');\n\n if (!fs.existsSync(zipFolderPath)) {\n fs.mkdirSync(zipFolderPath, { recursive: true });\n }\n\n const zipPath = path.join(zipFolderPath, `${zipName}.zip`);\n\n const writeStream = fs.createWriteStream(zipPath);\n writeStream.write(content);\n writeStream.end();\n};\n\nexport const generateProjectZip = async (project: ResultDir): Promise<ZipBuffer> => {\n let zip = new JSZip();\n zip = writeFolderToZip(project, zip, true);\n const zipType = isNodeProcess() ? 'nodebuffer' : 'blob';\n return zip.generateAsync({ type: zipType });\n};\n\nconst writeFolderToZip = (folder: ResultDir, parentFolder: JSZip, ignoreFolder = false) => {\n const zipFolder = ignoreFolder ? parentFolder : parentFolder.folder(folder.name);\n if (zipFolder !== null) {\n folder.files.forEach((file: ResultFile) => {\n // const options = file.contentEncoding === 'base64' ? { base64: true } : {};\n const options = {};\n const fileName = file.ext ? `${file.name}.${file.ext}` : file.name;\n zipFolder.file(fileName, file.content, options);\n });\n\n folder.dirs.forEach((subFolder: ResultDir) => {\n writeFolderToZip(subFolder, zipFolder);\n });\n }\n\n return parentFolder;\n};\n", "import { ResultDir } from '@alilc/lowcode-types';\nimport { PublisherFactory, IPublisher, IPublisherFactoryParams, PublisherError } from '../../types';\nimport { getErrorMessage } from '../../utils/errors';\nimport { isNodeProcess, writeZipToDisk, generateProjectZip } from './utils';\nimport { saveAs } from 'file-saver';\n\nexport type ZipBuffer = Buffer | Blob;\n\ndeclare type ZipPublisherResponse = string | ZipBuffer;\n\nexport interface ZipFactoryParams extends IPublisherFactoryParams {\n outputPath?: string;\n projectSlug?: string;\n}\n\nexport interface ZipPublisher extends IPublisher<ZipFactoryParams, ZipPublisherResponse> {\n getOutputPath: () => string | undefined;\n setOutputPath: (path: string) => void;\n}\n\nexport const createZipPublisher: PublisherFactory<ZipFactoryParams, ZipPublisher> = (\n params: ZipFactoryParams = {},\n): ZipPublisher => {\n let { project, outputPath } = params;\n\n const getProject = () => project;\n const setProject = (projectToSet: ResultDir) => {\n project = projectToSet;\n };\n\n const getOutputPath = () => outputPath;\n const setOutputPath = (path: string) => {\n outputPath = path;\n };\n\n const publish = async (options: ZipFactoryParams = {}) => {\n const projectToPublish = options.project || project;\n if (!projectToPublish) {\n throw new PublisherError('MissingProject');\n }\n\n const zipName = options.projectSlug || params.projectSlug || projectToPublish.name;\n\n try {\n const zipContent = await generateProjectZip(projectToPublish);\n\n if (isNodeProcess()) {\n // If not output path is provided on the node side, zip is not written to disk\n const projectOutputPath = options.outputPath || outputPath;\n if (projectOutputPath) {\n await writeZipToDisk(projectOutputPath, zipContent, zipName);\n }\n } else {\n // the browser end does not require a path\n // auto download zip files\n saveAs(zipContent as Blob, `${zipName}.zip`);\n }\n\n return { success: true, payload: zipContent };\n } catch (error) {\n throw new PublisherError(getErrorMessage(error) || 'UnknownError');\n }\n };\n\n return {\n publish,\n getProject,\n setProject,\n getOutputPath,\n setOutputPath,\n };\n};\n", "import { flatMap, camelCase, get } from 'lodash';\nimport { COMMON_CHUNK_NAME } from '../../const/generator';\n\nimport {\n BuilderComponentPlugin,\n BuilderComponentPluginFactory,\n ChunkType,\n CodeGeneratorError,\n DependencyType,\n FileType,\n ICodeChunk,\n ICodeStruct,\n IDependency,\n IExternalDependency,\n IInternalDependency,\n IWithDependency,\n} from '../../types';\n\nimport { isValidIdentifier } from '../../utils/validate';\n\n// TODO: main \u8FD9\u4E2A\u4FE1\u606F\u5230\u5E95\u600E\u4E48\u7528\uFF0C\u662F\u4E0D\u662F\u5916\u90E8\u5305\u4E0D\u9700\u8981\u4F7F\u7528\uFF1F\nconst DEP_MAIN_BLOCKLIST = ['lib', 'lib/index', 'es', 'es/index', 'main'];\nconst DEFAULT_EXPORT_NAME = '__default__';\n\nfunction groupDepsByPack(deps: IDependency[]): Record<string, IDependency[]> {\n const depMap: Record<string, IDependency[]> = {};\n\n const addDep = (pkg: string, dep: IDependency) => {\n if (!depMap[pkg]) {\n depMap[pkg] = [];\n }\n depMap[pkg].push(dep);\n };\n\n deps.forEach((dep) => {\n if (dep.dependencyType === DependencyType.Internal) {\n addDep(`${(dep as IInternalDependency).moduleName}${dep.main ? `/${dep.main}` : ''}`, dep);\n } else {\n let depMain = '';\n // TODO: \u90E8\u5206\u7C7B\u578B\u7684 main \u6682\u65F6\u8BA4\u4E3A\u6CA1\u7528\n if (dep.main && DEP_MAIN_BLOCKLIST.indexOf(dep.main) < 0) {\n depMain = dep.main;\n }\n if (depMain.substring(0, 1) === '/') {\n depMain = depMain.substring(1);\n }\n addDep(`${(dep as IExternalDependency).package}${depMain ? `/${depMain}` : ''}`, dep);\n }\n });\n\n return depMap;\n}\n\ninterface IDependencyItem {\n exportName: string;\n aliasName?: string;\n isDefault?: boolean;\n subName?: string;\n nodeIdentifier?: string; // \u4E0E\u4F7F\u7528\u5904\u7684\u6620\u5C04\u5173\u7CFB\uFF0C\u7406\u8BBA\u4E0A\u662F\u4E0D\u53EF\u53D8\u66F4\u7684\uFF0C\u5982\u9700\u53D8\u66F4\u9700\u8981\u63D0\u4F9B\u989D\u5916\u4FE1\u606F\n source: IDependency;\n}\n\ninterface IExportItem {\n exportName: string;\n aliasNames: string[];\n isDefault?: boolean;\n needOriginExport: boolean;\n}\n\nfunction getDependencyIdentifier(info: IDependencyItem): string {\n return info.aliasName || info.exportName;\n}\n\nfunction getExportNameOfDep(dep: IDependency): string {\n if (dep.destructuring) {\n return (\n dep.exportName ||\n dep.componentName ||\n throwNewError('destructuring dependency must have exportName or componentName')\n );\n }\n\n if (!dep.subName) {\n return (\n dep.componentName ||\n dep.exportName ||\n throwNewError('dependency item must have componentName or exportName')\n );\n }\n\n return (\n dep.exportName ||\n `__$${camelCase(\n get(dep, 'moduleName') ||\n get(dep, 'package') ||\n throwNewError('dep.moduleName or dep.package is undefined'),\n )}_default`\n );\n}\n\nfunction throwNewError(msg: string): never {\n throw new Error(msg);\n}\n\nfunction buildPackageImport(\n pkg: string,\n deps: IDependency[],\n targetFileType: string,\n useAliasName: boolean,\n): ICodeChunk[] {\n // \u5982\u679C\u538B\u6839\u6CA1\u6709\u5305\uFF0C\u5219\u4E0D\u751F\u6210\u5BF9\u5E94\u7684 import \u8BED\u53E5\uFF08\u751F\u6210\u4E86\u6CA1\u6709\u4EFB\u4F55\u610F\u4E49\uFF09\n if (!pkg || pkg === 'undefined' || pkg === 'null') {\n // TODO: \u8981\u4E0D\u8981\u52A0\u4E2A warning\uFF1F\n return [];\n }\n\n const chunks: ICodeChunk[] = [];\n\n const exportItems: Record<string, IExportItem> = {};\n const defaultExportNames: string[] = [];\n\n const depsInfo: IDependencyItem[] = deps.map((dep) => {\n const info: IDependencyItem = {\n exportName: getExportNameOfDep(dep),\n isDefault: !dep.destructuring,\n subName: dep.subName || undefined,\n nodeIdentifier: dep.componentName || undefined,\n source: dep,\n };\n\n // \u4E0B\u9762 5 \u4E2A\u903B\u8F91\u662F\u6E05\u7406\u4E0D\u5FC5\u8981\u7684\u5197\u4F59\u4FE1\u606F\uFF0C\u505A\u5230\u6570\u636E\u7ED3\u6784\u5F52\u4E00\u5316\n if (info.isDefault) {\n if (defaultExportNames.indexOf(info.exportName) < 0) {\n defaultExportNames.push(info.exportName);\n }\n }\n\n if (!info.subName) {\n if (info.nodeIdentifier === info.exportName) {\n info.nodeIdentifier = undefined;\n }\n\n if (info.isDefault) {\n info.aliasName = info.nodeIdentifier || info.exportName;\n info.exportName = DEFAULT_EXPORT_NAME;\n }\n\n if (info.nodeIdentifier) {\n info.aliasName = info.nodeIdentifier;\n info.nodeIdentifier = undefined;\n }\n } else {\n if (info.isDefault) {\n info.aliasName = info.exportName;\n info.exportName = DEFAULT_EXPORT_NAME;\n }\n\n if (info.nodeIdentifier === `${info.exportName}.${info.subName}`) {\n info.nodeIdentifier = undefined;\n }\n }\n\n return info;\n });\n\n // \u5EFA\u7ACB export \u9879\u76EE\u7684\u5217\u8868\n depsInfo.forEach((info) => {\n if (!exportItems[info.exportName]) {\n exportItems[info.exportName] = {\n exportName: info.exportName,\n isDefault: info.isDefault,\n aliasNames: [],\n needOriginExport: false,\n };\n }\n\n if (!info.nodeIdentifier && !info.aliasName) {\n exportItems[info.exportName].needOriginExport = true;\n }\n });\n\n // \u5EFA\u7ACB\u522B\u540D\u5B57\u5178\n depsInfo.forEach((info) => {\n if (info.aliasName) {\n const { aliasNames } = exportItems[info.exportName];\n if (aliasNames.indexOf(info.aliasName) < 0) {\n aliasNames.push(info.aliasName);\n }\n }\n });\n\n // fix: \u7236\u7EC4\u4EF6ImportAliasDefine, \u4E0E\u5B50\u7EC4\u4EF6import\u7684\u7236\u7EC4\u4EF6\u51B2\u7A81\u60C5\u51B5\n depsInfo.forEach((info) => {\n if (info.nodeIdentifier) {\n const exportItem = exportItems[info.exportName];\n if (!exportItem.needOriginExport && exportItem.aliasNames.length > 0) {\n // eslint-disable-next-line no-param-reassign\n info.aliasName = exportItem.aliasNames[0];\n }\n }\n });\n\n // \u53D1\u73B0 nodeIdentifier \u4E0E exportName \u6216\u8005 aliasName \u51B2\u7A81\u7684\u573A\u666F\n const nodeIdentifiers = depsInfo.map((info) => info.nodeIdentifier).filter(Boolean);\n const conflictInfos = flatMap(Object.keys(exportItems), (exportName) => {\n const exportItem = exportItems[exportName];\n const usedNames = [\n ...exportItem.aliasNames,\n ...(exportItem.needOriginExport || exportItem.aliasNames.length <= 0 ? [exportName] : []),\n ];\n const conflictNames = usedNames.filter((n) => nodeIdentifiers.indexOf(n) >= 0);\n if (conflictNames.length > 0) {\n return [\n ...(conflictNames.indexOf(exportName) >= 0 ? [[exportName, true, exportItem]] : []),\n ...conflictNames.filter((n) => n !== exportName).map((n) => [n, false, exportItem]),\n ];\n }\n return [];\n });\n\n const conflictExports = conflictInfos.filter((c) => c[1]).map((c) => c[0] as string);\n const conflictAlias = conflictInfos.filter((c) => !c[1]).map((c) => c[0] as string);\n\n const solutions: Record<string, string> = {};\n\n depsInfo.forEach((info) => {\n if (info.aliasName && conflictAlias.indexOf(info.aliasName) >= 0) {\n // find solution\n let solution = solutions[info.aliasName];\n if (!solution) {\n solution = `${info.aliasName}Alias`;\n const conflictItem = (conflictInfos.find((c) => c[0] === info.aliasName) ||\n [])[2] as IExportItem;\n conflictItem.aliasNames = conflictItem.aliasNames.filter((a) => a !== info.aliasName);\n conflictItem.aliasNames.push(solution);\n solutions[info.aliasName] = solution;\n }\n // eslint-disable-next-line no-param-reassign\n info.aliasName = solution;\n }\n\n if (conflictExports.indexOf(info.exportName) >= 0) {\n // find solution\n let solution = solutions[info.exportName];\n if (!solution) {\n solution = `${info.exportName}Export`;\n const conflictItem = (conflictInfos.find((c) => c[0] === info.exportName) ||\n [])[2] as IExportItem;\n conflictItem.aliasNames.push(solution);\n conflictItem.needOriginExport = false;\n solutions[info.exportName] = solution;\n }\n // eslint-disable-next-line no-param-reassign\n info.aliasName = solution;\n }\n });\n\n // \u5224\u65AD\u662F\u5426\u6240\u6709\u4F9D\u8D56\u90FD\u6709\u5408\u6CD5\u7684 Identifier\n depsInfo.forEach((info) => {\n const name = info.aliasName || info.exportName;\n if (!isValidIdentifier(name)) {\n throw new CodeGeneratorError(`Invalid Identifier [${name}]`);\n }\n if (info.nodeIdentifier && !isValidIdentifier(info.nodeIdentifier)) {\n throw new CodeGeneratorError(`Invalid Identifier [${info.nodeIdentifier}]`);\n }\n });\n\n const aliasDefineStatements: Record<string, string> = {};\n if (useAliasName) {\n Object.keys(exportItems).forEach((exportName) => {\n const aliasList = exportItems[exportName]?.aliasNames || [];\n if (aliasList.length > 0) {\n const srcName = exportItems[exportName].needOriginExport ? exportName : aliasList[0];\n const aliasNameList = exportItems[exportName].needOriginExport\n ? aliasList\n : aliasList.slice(1);\n aliasNameList.forEach((a) => {\n if (!aliasDefineStatements[a]) {\n aliasDefineStatements[a] = `const ${a} = ${srcName};`;\n }\n });\n }\n });\n }\n\n function getDefaultExportName(info: IDependencyItem): string {\n if (info.isDefault) {\n return defaultExportNames[0];\n }\n return info.exportName;\n }\n\n depsInfo.forEach((info) => {\n // \u5982\u679C\u662F\u5B50\u7EC4\u4EF6\uFF0C\u5219\u5BFC\u51FA\u7236\u7EC4\u4EF6\uFF0C\u5E76\u4E14\u6839\u636E\u81EA\u7EC4\u4EF6\u547D\u540D\u89C4\u5219\uFF0C\u5224\u65AD\u662F\u5426\u9700\u8981\u5B9A\u4E49\u6807\u8BC6\u7B26\n if (info.nodeIdentifier) {\n // \u524D\u63D0\uFF0C\u5B58\u5728 nodeIdentifier \u4E00\u5B9A\u662F\u6709 subName \u7684\uFF0C\u4E0D\u7136\u524D\u9762\u4F1A\u4F18\u5316\u6389\n const ownerName = getDependencyIdentifier(info);\n\n chunks.push({\n type: ChunkType.STRING,\n fileType: targetFileType,\n name: COMMON_CHUNK_NAME.ImportAliasDefine,\n content: useAliasName ? `const ${info.nodeIdentifier} = ${ownerName}.${info.subName};` : '',\n linkAfter: [COMMON_CHUNK_NAME.ExternalDepsImport, COMMON_CHUNK_NAME.InternalDepsImport],\n ext: {\n originalName: `${getDefaultExportName(info)}.${info.subName}`,\n aliasName: info.nodeIdentifier,\n dependency: info.source,\n },\n });\n } else if (info.aliasName) {\n // default \u65B9\u5F0F\u7684\u5BFC\u5165\u4F1A\u751F\u6210\u5355\u72ECde import \u8BED\u53E5\uFF0C\u65E0\u9700\u751F\u6210\u8D4B\u503C\u8BED\u53E5\n if (info.isDefault && defaultExportNames.find((n) => n === info.aliasName)) {\n delete aliasDefineStatements[info.aliasName];\n return;\n }\n\n let contentStatement = '';\n if (aliasDefineStatements[info.aliasName]) {\n contentStatement = aliasDefineStatements[info.aliasName];\n delete aliasDefineStatements[info.aliasName];\n }\n\n chunks.push({\n type: ChunkType.STRING,\n fileType: targetFileType,\n name: COMMON_CHUNK_NAME.ImportAliasDefine,\n content: contentStatement,\n linkAfter: [COMMON_CHUNK_NAME.ExternalDepsImport, COMMON_CHUNK_NAME.InternalDepsImport],\n ext: {\n originalName: getDefaultExportName(info),\n aliasName: info.aliasName,\n dependency: info.source,\n },\n });\n }\n });\n\n // \u53EF\u80FD\u4F1A\u5269\u4F59\u4E00\u4E9B\u5B58\u5728\u4E8C\u6B21\u8F6C\u6362\u7684\u5B9A\u4E49\n Object.keys(aliasDefineStatements).forEach((a) => {\n chunks.push({\n type: ChunkType.STRING,\n fileType: targetFileType,\n name: COMMON_CHUNK_NAME.ImportAliasDefine,\n content: aliasDefineStatements[a],\n linkAfter: [COMMON_CHUNK_NAME.ExternalDepsImport, COMMON_CHUNK_NAME.InternalDepsImport],\n });\n });\n\n const exportItemList = Object.keys(exportItems).map((k) => exportItems[k]);\n const defaultExport = exportItemList.filter((item) => item.isDefault);\n const otherExports = exportItemList.filter((item) => !item.isDefault);\n\n const statementL = ['import'];\n if (defaultExport.length > 0) {\n if (useAliasName) {\n statementL.push(defaultExportNames[0]);\n } else {\n statementL.push(defaultExport[0].aliasNames[0]);\n }\n if (otherExports.length > 0) {\n statementL.push(', ');\n }\n }\n if (otherExports.length > 0) {\n const items = otherExports.map((item) => {\n return !useAliasName || item.needOriginExport || item.aliasNames.length <= 0\n ? item.exportName\n : `${item.exportName} as ${item.aliasNames[0]}`;\n });\n statementL.push(`{ ${items.join(', ')} }`);\n }\n statementL.push('from');\n\n const getInternalDependencyModuleId = () => `@/${(deps[0] as IInternalDependency).type}/${pkg}`;\n\n if (deps[0].dependencyType === DependencyType.Internal) {\n // TODO: Internal Deps path use project slot setting\n statementL.push(`'${getInternalDependencyModuleId()}';`);\n chunks.push({\n type: ChunkType.STRING,\n fileType: targetFileType,\n name: COMMON_CHUNK_NAME.InternalDepsImport,\n content: statementL.join(' '),\n linkAfter: [COMMON_CHUNK_NAME.ExternalDepsImport],\n });\n } else {\n statementL.push(`'${pkg}';`);\n chunks.push({\n type: ChunkType.STRING,\n fileType: targetFileType,\n name: COMMON_CHUNK_NAME.ExternalDepsImport,\n content: statementL.join(' '),\n linkAfter: [],\n });\n }\n\n // \u5904\u7406\u4E0B\u4E00\u4E9B\u989D\u5916\u7684 default \u65B9\u5F0F\u7684\u5BFC\u5165\n if (defaultExportNames.length > 1) {\n if (deps[0].dependencyType === DependencyType.Internal) {\n defaultExportNames.slice(1).forEach((exportName) => {\n chunks.push({\n type: ChunkType.STRING,\n fileType: targetFileType,\n name: COMMON_CHUNK_NAME.InternalDepsImport,\n content: `import ${exportName} from '${getInternalDependencyModuleId()}';`,\n linkAfter: [COMMON_CHUNK_NAME.ExternalDepsImport],\n });\n });\n } else {\n defaultExportNames.slice(1).forEach((exportName) => {\n chunks.push({\n type: ChunkType.STRING,\n fileType: targetFileType,\n name: COMMON_CHUNK_NAME.ExternalDepsImport,\n content: `import ${exportName} from '${pkg}';`,\n linkAfter: [],\n });\n\n chunks.push({\n type: ChunkType.STRING,\n fileType: targetFileType,\n name: COMMON_CHUNK_NAME.ImportAliasDefine,\n content: '',\n linkAfter: [],\n ext: {\n aliasName: exportName,\n originalName: exportName,\n dependency: {\n package: pkg,\n componentName: exportName,\n },\n },\n });\n });\n }\n }\n\n return chunks;\n}\n\nexport interface PluginConfig {\n fileType?: string; // \u5BFC\u51FA\u7684\u6587\u4EF6\u7C7B\u578B\n useAliasName?: boolean; // \u662F\u5426\u4F7F\u7528 componentName \u91CD\u547D\u540D\u7EC4\u4EF6 identifier\n filter?: (deps: IDependency[]) => IDependency[]; // \u652F\u6301\u8FC7\u6EE4\u80FD\u529B\n}\n\nconst pluginFactory: BuilderComponentPluginFactory<PluginConfig> = (config?: PluginConfig) => {\n const cfg = {\n fileType: FileType.JS,\n useAliasName: true,\n ...(config || {}),\n };\n\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n const ir = next.ir as IWithDependency;\n\n if (ir && ir.deps && ir.deps.length > 0) {\n const deps = cfg.filter ? cfg.filter(ir.deps) : ir.deps;\n const packs = groupDepsByPack(deps);\n\n Object.keys(packs).forEach((pkg) => {\n const chunks = buildPackageImport(pkg, packs[pkg], cfg.fileType, cfg.useAliasName);\n next.chunks.push(...chunks);\n });\n }\n\n return next;\n };\n\n return plugin;\n};\n\nexport default pluginFactory;\n", "import changeCase from 'change-case';\nimport {\n FileType,\n BuilderComponentPluginFactory,\n BuilderComponentPlugin,\n ICodeStruct,\n IWithDependency,\n ChunkType,\n} from '../../types';\n\nimport { COMMON_CHUNK_NAME } from '../../const/generator';\n\nconst pluginFactory: BuilderComponentPluginFactory<unknown> = () => {\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n const ir = next.ir as IWithDependency;\n const { chunks } = next;\n\n if (ir && ir.deps && ir.deps.length > 0) {\n let lowcodeMaterialsStyleAdded = false;\n let fusionUIStyleAdded = false;\n let nextStyleAddedMap: Record<string, boolean> = {};\n ir.deps.forEach((dep: any) => {\n if (dep.package === '@alifd/next' && !nextStyleAddedMap[dep.exportName]) {\n chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.JSX,\n name: COMMON_CHUNK_NAME.InternalDepsImport,\n content: `import '@alifd/next/lib/${changeCase.paramCase(dep.exportName)}/style';`,\n linkAfter: [COMMON_CHUNK_NAME.ExternalDepsImport],\n });\n nextStyleAddedMap[dep.exportName] = true;\n } else if (dep.package === '@alilc/lowcode-materials' && !lowcodeMaterialsStyleAdded) {\n chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.JSX,\n name: COMMON_CHUNK_NAME.InternalDepsImport,\n content: 'import \\'@alilc/lowcode-materials/lib/style\\';',\n linkAfter: [COMMON_CHUNK_NAME.ExternalDepsImport],\n });\n lowcodeMaterialsStyleAdded = true;\n } else if (dep.package === '@alifd/fusion-ui' && !fusionUIStyleAdded) {\n chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.JSX,\n name: COMMON_CHUNK_NAME.InternalDepsImport,\n content: 'import \\'@alifd/fusion-ui/lib/style\\';',\n linkAfter: [COMMON_CHUNK_NAME.ExternalDepsImport],\n });\n fusionUIStyleAdded = true;\n }\n });\n }\n\n return next;\n };\n\n return plugin;\n};\n\nexport default pluginFactory;\n", "import changeCase from 'change-case';\nimport {\n COMMON_CHUNK_NAME,\n CLASS_DEFINE_CHUNK_NAME,\n DEFAULT_LINK_AFTER,\n} from '../../../const/generator';\nimport { REACT_CHUNK_NAME } from './const';\n\nimport {\n BuilderComponentPlugin,\n BuilderComponentPluginFactory,\n ChunkType,\n FileType,\n ICodeStruct,\n IContainerInfo,\n} from '../../../types';\nimport { ensureValidClassName } from '../../../utils/validate';\n\nconst pluginFactory: BuilderComponentPluginFactory<unknown> = () => {\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n const ir = next.ir as IContainerInfo;\n\n // \u5C06\u6A21\u5757\u540D\u8F6C\u6362\u6210 PascalCase \u7684\u683C\u5F0F\uFF0C\u5E76\u6DFB\u52A0\u7279\u5B9A\u540E\u7F00\uFF0C\u9632\u6B62\u547D\u540D\u51B2\u7A81\n const componentClassName = ensureValidClassName(\n `${changeCase.pascalCase(ir.moduleName)}$$${ir.containerType}`,\n );\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.JSX,\n name: CLASS_DEFINE_CHUNK_NAME.Start,\n content: `class ${componentClassName} extends React.Component {`,\n linkAfter: [\n COMMON_CHUNK_NAME.ExternalDepsImport,\n COMMON_CHUNK_NAME.InternalDepsImport,\n COMMON_CHUNK_NAME.ImportAliasDefine,\n COMMON_CHUNK_NAME.FileVarDefine,\n COMMON_CHUNK_NAME.FileUtilDefine,\n ],\n });\n\n if (ir.containerType === 'Component') {\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.JSX,\n name: CLASS_DEFINE_CHUNK_NAME.InsVar,\n content: `static displayName = '${ir.moduleName}';`,\n linkAfter: [\n CLASS_DEFINE_CHUNK_NAME.Start,\n ],\n });\n }\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.JSX,\n name: CLASS_DEFINE_CHUNK_NAME.End,\n content: '}',\n linkAfter: [\n ...DEFAULT_LINK_AFTER[CLASS_DEFINE_CHUNK_NAME.End],\n REACT_CHUNK_NAME.ClassRenderEnd,\n REACT_CHUNK_NAME.ClassDidMountEnd,\n ],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.JSX,\n name: CLASS_DEFINE_CHUNK_NAME.ConstructorStart,\n content: 'constructor(props, context) { super(props); ',\n linkAfter: [...DEFAULT_LINK_AFTER[CLASS_DEFINE_CHUNK_NAME.ConstructorStart]],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.JSX,\n name: CLASS_DEFINE_CHUNK_NAME.ConstructorEnd,\n content: '}',\n linkAfter: [...DEFAULT_LINK_AFTER[CLASS_DEFINE_CHUNK_NAME.ConstructorEnd]],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.JSX,\n name: REACT_CHUNK_NAME.ClassDidMountStart,\n content: 'componentDidMount() {',\n linkAfter: [...DEFAULT_LINK_AFTER[CLASS_DEFINE_CHUNK_NAME.End]],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.JSX,\n name: REACT_CHUNK_NAME.ClassDidMountEnd,\n content: '}',\n linkAfter: [REACT_CHUNK_NAME.ClassDidMountContent, REACT_CHUNK_NAME.ClassDidMountStart],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.JSX,\n name: REACT_CHUNK_NAME.ClassRenderStart,\n content: 'render() {',\n linkAfter: [\n ...DEFAULT_LINK_AFTER[CLASS_DEFINE_CHUNK_NAME.End],\n REACT_CHUNK_NAME.ClassDidMountEnd,\n ],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.JSX,\n name: REACT_CHUNK_NAME.ClassRenderEnd,\n content: '}',\n linkAfter: [\n REACT_CHUNK_NAME.ClassRenderStart,\n REACT_CHUNK_NAME.ClassRenderPre,\n REACT_CHUNK_NAME.ClassRenderJSX,\n ],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.JSX,\n name: COMMON_CHUNK_NAME.FileExport,\n content: `export default ${componentClassName};`,\n linkAfter: [\n COMMON_CHUNK_NAME.ExternalDepsImport,\n COMMON_CHUNK_NAME.InternalDepsImport,\n COMMON_CHUNK_NAME.ImportAliasDefine,\n COMMON_CHUNK_NAME.FileVarDefine,\n COMMON_CHUNK_NAME.FileUtilDefine,\n CLASS_DEFINE_CHUNK_NAME.End,\n ],\n });\n\n return next;\n };\n return plugin;\n};\n\nexport default pluginFactory;\n", "export const REACT_CHUNK_NAME = {\n ClassRenderStart: 'ReactComponentClassRenderStart',\n ClassRenderPre: 'ReactComponentClassRenderPre',\n ClassRenderEnd: 'ReactComponentClassRenderEnd',\n ClassRenderJSX: 'ReactComponentClassRenderJSX',\n ClassDidMountStart: 'ReactComponentClassDidMountStart',\n ClassDidMountEnd: 'ReactComponentClassDidMountEnd',\n ClassDidMountContent: 'ReactComponentClassDidMountContent',\n};\n", "import {\n IPublicTypeCompositeArray,\n IPublicTypeCompositeValue,\n IPublicTypeCompositeObject,\n IPublicTypeJSFunction,\n IPublicTypeJSExpression,\n isJSExpression,\n isJSFunction,\n isJSSlot,\n IPublicTypeJSSlot,\n} from '@alilc/lowcode-types';\nimport _ from 'lodash';\n\nimport { IScope, CompositeValueGeneratorOptions, CodeGeneratorError } from '../types';\nimport { generateExpression, generateFunction } from './jsExpression';\nimport { generateJsSlot } from './jsSlot';\nimport { executeFunctionStack } from './aopHelper';\nimport { parseExpressionGetKeywords } from './expressionParser';\nimport { isJSExpressionFn } from './common';\n\ninterface ILegaoVariable {\n type: 'variable';\n value: string;\n variable: string;\n}\n\nfunction isVariable(v: any): v is ILegaoVariable {\n if (_.isObject(v) && (v as ILegaoVariable).type === 'variable') {\n return true;\n }\n return false;\n}\n\ninterface DataSource {\n type: 'DataSource';\n id: string;\n}\n\n/**\n * \u5224\u65AD\u662F\u5426\u662F\u6570\u636E\u6E90\u7C7B\u578B\n */\nfunction isDataSource(v: unknown): v is DataSource {\n return typeof v === 'object' && v != null && (v as Partial<DataSource>).type === 'DataSource';\n}\n\nfunction generateArray(\n value: IPublicTypeCompositeArray,\n scope: IScope,\n options: CompositeValueGeneratorOptions = {},\n): string {\n const body = value.map((v) => generateUnknownType(v, scope, options)).join(',');\n return `[${body}]`;\n}\n\nfunction generateObject(\n value: IPublicTypeCompositeObject,\n scope: IScope,\n options: CompositeValueGeneratorOptions = {},\n): string {\n if (value.type === 'i18n') {\n // params \u53EF\u80FD\u4F1A\u7ED1\u5B9A\u53D8\u91CF\uFF0C\u8FD9\u91CC\u9700\u8981\u5904\u7406\u4E0B\n if (value.params && typeof value.params === 'object') {\n return `this._i18nText(${generateUnknownType(_.omit(value, 'type'), scope, options)})`;\n }\n return `this._i18nText(${JSON.stringify(_.omit(value, 'type'))})`; // TODO: \u4F18\u5316\uFF1A\u8FD9\u91CC\u53EF\u4EE5\u8003\u8651\u63D0\u53D6\u6210\u4E2A\u5E38\u91CF...\n }\n\n const body = Object.keys(value)\n .map((key) => {\n const propName = JSON.stringify(key);\n const v = generateUnknownType(value[key], scope, options);\n return `${propName}: ${v}`;\n })\n .join(',\\n');\n\n return `{${body}}`;\n}\n\nfunction generateString(value: string): string {\n // \u6709\u7684\u5B57\u7B26\u4E32\u91CC\u9762\u4F1A\u6709\u7279\u6B8A\u5B57\u7B26\uFF0C\u6BD4\u5982\u6362\u884C\u6216\u5F15\u53F7\u4E4B\u7C7B\u7684\uFF0C\u8FD9\u91CC\u6211\u4EEC\u501F\u52A9 JSON \u7684\u5B57\u7B26\u4E32\u8F6C\u4E49\u529F\u80FD\u6765\u505A\u4E0B\u8F6C\u4E49\u5E76\u52A0\u4E0A\u53CC\u5F15\u53F7\n return JSON.stringify(value); \n}\n\nfunction generateNumber(value: number): string {\n return String(value);\n}\n\nfunction generateBool(value: boolean): string {\n return value ? 'true' : 'false';\n}\n\nfunction genFunction(value: IPublicTypeJSFunction): string {\n const globalVars = parseExpressionGetKeywords(value.value);\n\n if (globalVars.includes('arguments')) {\n return generateFunction(value, { isBindExpr: true });\n }\n\n return generateFunction(value, { isArrow: true });\n}\n\nfunction genJsSlot(value: IPublicTypeJSSlot, scope: IScope, options: CompositeValueGeneratorOptions = {}) {\n if (options.nodeGenerator) {\n return generateJsSlot(value, scope, options.nodeGenerator);\n }\n return '';\n}\n\nfunction generateUnknownType(\n value: IPublicTypeCompositeValue,\n scope: IScope,\n options: CompositeValueGeneratorOptions = {},\n): string {\n if (_.isUndefined(value)) {\n return 'undefined';\n }\n\n if (_.isNull(value)) {\n return 'null';\n }\n\n if (_.isArray(value)) {\n if (options.handlers?.array) {\n return executeFunctionStack(value, scope, options.handlers.array, generateArray, options);\n }\n return generateArray(value, scope, options);\n }\n\n // FIXME: \u8FD9\u4E2A\u662F\u4E34\u65F6\u65B9\u6848\n // \u5728\u9047\u5230 type variable \u79C1\u6709\u7C7B\u578B\u65F6\uFF0C\u8F6C\u6362\u4E3A JSExpression\n if (isVariable(value)) {\n const transValue: IPublicTypeJSExpression = {\n type: 'JSExpression',\n value: value.variable,\n };\n\n if (options.handlers?.expression) {\n const expression = executeFunctionStack(\n transValue,\n scope,\n options.handlers.expression,\n generateExpression,\n options,\n );\n return expression || 'undefined';\n }\n return generateExpression(transValue, scope);\n }\n\n if (isJSExpression(value)) {\n if (options.handlers?.expression) {\n return executeFunctionStack(\n value,\n scope,\n options.handlers.expression,\n generateExpression,\n options,\n );\n }\n return generateExpression(value, scope);\n }\n\n if (isJSFunction(value) || isJSExpressionFn(value)) {\n if (options.handlers?.function) {\n return executeFunctionStack(value, scope, options.handlers.function, genFunction, options);\n }\n return genFunction(value);\n }\n\n if (isJSSlot(value)) {\n if (options.handlers?.slot) {\n return executeFunctionStack(value, scope, options.handlers.slot, genJsSlot, options);\n }\n return genJsSlot(value, scope, options);\n }\n\n if (isDataSource(value)) {\n return generateUnknownType(\n {\n type: 'JSExpression',\n value: `this.dataSourceMap[${JSON.stringify(value.id)}]`,\n },\n scope,\n options,\n );\n }\n\n if (_.isObject(value)) {\n if (options.handlers?.object) {\n return executeFunctionStack(value, scope, options.handlers.object, generateObject, options);\n }\n return generateObject(value as IPublicTypeCompositeObject, scope, options);\n }\n\n if (_.isString(value)) {\n if (options.handlers?.string) {\n return executeFunctionStack(value, scope, options.handlers.string, generateString, options);\n }\n return generateString(value);\n }\n\n if (_.isNumber(value)) {\n if (options.handlers?.number) {\n return executeFunctionStack(value, scope, options.handlers.number, generateNumber, options);\n }\n return generateNumber(value);\n }\n\n if (_.isBoolean(value)) {\n if (options.handlers?.boolean) {\n return executeFunctionStack(value, scope, options.handlers.boolean, generateBool, options);\n }\n return generateBool(value);\n }\n\n throw new CodeGeneratorError('Meet unknown composite value type');\n}\n\n// \u8FD9\u4E00\u5C42\u66FE\u7ECF\u662F\u5BF9\u4EA7\u51FA\u505A\u6700\u5916\u5C42\u5305\u88C5\u7684\uFF0C\u4F46\u5176\u5B9E\u5305\u88C5\u903B\u8F91\u4E0D\u5E94\u8BE5\u5C5E\u4E8E\u8FD9\u4E00\u5C42\n// \u8FD9\u4E00\u5C42\u5148\u4E0D\u53BB\u6389\uFF0C\u505A\u5197\u4F59\uFF0C\u65B9\u4FBF\u540E\u7EED\u91CD\u6784\nexport function generateCompositeType(\n value: IPublicTypeCompositeValue,\n scope: IScope,\n options: CompositeValueGeneratorOptions = {},\n): string {\n const result = generateUnknownType(value, scope, options);\n return result;\n}\n", "import * as parser from '@babel/parser';\nimport generate from '@babel/generator';\nimport traverse, {NodePath} from '@babel/traverse';\nimport * as t from '@babel/types';\nimport {IPublicTypeJSExpression, IPublicTypeJSFunction, isJSExpression, isJSFunction} from '@alilc/lowcode-types';\nimport {CodeGeneratorError, IScope} from '../types';\nimport {transformExpressionLocalRef, ParseError} from './expressionParser';\nimport {isJSExpressionFn} from './common';\nimport {\n CallExpression,\n ExpressionStatement,\n MemberExpression,\n StringLiteral\n} from \"@babel/types\";\n\n/**\n * \u89E3\u6790\u7ED9\u5B9A\u7684\u5B57\u7B26\u4E32\u5185\u5BB9\u4E3A\u51FD\u6570\u8868\u8FBE\u5F0F\u3002\n * @note \u4F7F\u7528babel\u8F6C\u5316\u4E3Aast\u6811\uFF0C\u518D\u5BF9\u6811\u8FDB\u884C\u5904\u7406\n * @param content \u8981\u89E3\u6790\u7684\u5B57\u7B26\u4E32\u5185\u5BB9\u3002\n * @returns \u89E3\u6790\u6210\u529F\u7684\u51FD\u6570\u8868\u8FBE\u5F0F\u8282\u70B9\uFF0C\u5982\u679C\u89E3\u6790\u5931\u8D25\u5219\u8FD4\u56DEnull\u3002\n * @throws \u5982\u679C\u89E3\u6790\u8FC7\u7A0B\u4E2D\u53D1\u751F\u9519\u8BEF\uFF0C\u5C06\u629B\u51FAParseError\u5F02\u5E38\u3002\n */\nfunction parseFunction(content: string, isToVue?: boolean): t.FunctionExpression | null {\n try {\n const ast = parser.parse(`(${content});`, {\n plugins: [\n 'jsx',\n ],\n });\n\n let resultNode: t.FunctionExpression | null = null;\n traverse(ast, {\n FunctionExpression(path) {\n resultNode = path.node;\n // todo path.stop() \u662F\u505C\u6B62\u5411\u4E0B\u89E3\u6790\n // path.stop();\n },\n CallExpression(path) {\n if (isToVue) {\n // state\u8F6C\u5316\n convertState(path)\n }\n },\n MemberExpression(path) {\n if (isToVue) {\n const node = path.node\n // \u5224\u65AD\u662F\u4E0D\u662Fthis.xxx\u5199\u6CD5 todo this.xxx \u8F6C\u4E3A xxx\n if (node.object.type === 'ThisExpression') {\n path.replaceWith(node.property)\n }\n }\n }\n });\n return resultNode;\n } catch (e) {\n throw new ParseError(content, e);\n }\n}\n\nfunction transformFuncExpr2MethodMember(methodName: string, content: string, isToVue?: boolean): string {\n const funcNode = parseFunction(content, isToVue);\n if (funcNode) {\n const targetNode = t.classMethod(\n 'method',\n (methodName && t.identifier(methodName)) || funcNode.id || t.identifier('notDefineName'),\n funcNode.params,\n funcNode.body,\n undefined,\n undefined,\n undefined,\n funcNode.async || undefined,\n );\n\n const {code: resultCode} = generate(targetNode, {sourceMaps: false});\n return resultCode;\n }\n\n throw new Error('Can not find Function Statement');\n}\n\nfunction getArrowFunction(content: string) {\n const funcNode = parseFunction(content);\n if (funcNode) {\n const targetNode = t.arrowFunctionExpression(\n funcNode.params,\n funcNode.body,\n funcNode.async || undefined,\n );\n\n const {code: resultCode} = generate(targetNode, {sourceMaps: false});\n return resultCode;\n }\n\n throw new Error('Can not find Function Statement');\n}\n\nfunction getBodyStatements(content: string, isToVue?: boolean) {\n const funcNode = parseFunction(content, isToVue);\n if (funcNode) {\n const statements: t.Statement[] = funcNode.body.body;\n\n const targetNode = t.program(statements, undefined, 'module', undefined);\n\n const {code: resultCode} = generate(targetNode, {sourceMaps: false});\n return resultCode;\n }\n\n throw new Error('Can not find Function Statement');\n}\n\n/**\n * \u662F\u5426\u662F\u5E7F\u4E49\u4E0A\u7684 JSFunction\n * @param value\n * @returns\n */\nexport function isBroadJSFunction(value: unknown): boolean {\n return isJSExpressionFn(value) || isJSFunction(value);\n}\n\nexport function generateExpression(value: any, scope: IScope): string {\n if (isJSExpression(value)) {\n const exprVal = (value as IPublicTypeJSExpression).value.trim();\n if (!exprVal) {\n return 'null';\n }\n\n const afterProcessWithLocals = transformExpressionLocalRef(exprVal, scope);\n return afterProcessWithLocals;\n }\n\n throw new CodeGeneratorError('Not a JSExpression');\n}\n\nfunction getFunctionSource(cfg: IPublicTypeJSFunction): string {\n return cfg.source || cfg.value || cfg.compiled;\n}\n\n/**\n * \u751F\u6210\u51FD\u6570\u4EE3\u7801\n *\n * @param value \u51FD\u6570\u6216\u8868\u8FBE\u5F0F\n * @param config \u914D\u7F6E\u5BF9\u8C61\uFF0C\u5305\u542B\u4EE5\u4E0B\u5C5E\u6027\uFF1A\n * - name: \u51FD\u6570\u540D\u79F0\uFF0C\u53EF\u9009\n * - isMember: \u662F\u5426\u4E3A\u6210\u5458\u51FD\u6570\uFF0C\u9ED8\u8BA4\u4E3Afalse\n * - isBlock: \u662F\u5426\u4E3A\u5757\u7EA7\u51FD\u6570\uFF0C\u9ED8\u8BA4\u4E3Afalse\n * - isArrow: \u662F\u5426\u4E3A\u7BAD\u5934\u51FD\u6570\uFF0C\u9ED8\u8BA4\u4E3Afalse\n * - isBindExpr: \u662F\u5426\u4E3A\u7ED1\u5B9A\u8868\u8FBE\u5F0F\uFF0C\u9ED8\u8BA4\u4E3Afalse\n * - isToVue \u662F\u5426\u8F6C\u5316\u4E3Avue\uFF08state\uFF0Cthis\u8F6C\u6362\uFF09\n * - isDeleteLastSemicolon \u662F\u5426\u5220\u9664\u751F\u6210\u4EE3\u7801\u6700\u540E\u7684\u4E00\u4E2A\u5206\u53F7\uFF0C\u9ED8\u8BA4\u4E3Afalse\n * @returns \u8FD4\u56DE\u751F\u6210\u7684\u51FD\u6570\u4EE3\u7801\n * @throws \u5F53 value \u4E0D\u662F JSFunction \u6216 JSExpression \u65F6\u629B\u51FA CodeGeneratorError\n */\nexport function generateFunction(\n value: any,\n config: {\n name?: string;\n isMember?: boolean;\n isBlock?: boolean;\n isArrow?: boolean;\n isBindExpr?: boolean;\n isToVue?: boolean;\n isDeleteLastSemicolon?: boolean;\n } = {\n name: undefined,\n isMember: false,\n isBlock: false,\n isArrow: false,\n isBindExpr: false,\n isToVue: false,\n isDeleteLastSemicolon: false,\n },\n) {\n function extractFunctionCalls(str: string) {\n const regex = /(\\w+)\\.apply\\(\\w+,\\s*Array\\.prototype\\.slice\\.call\\(arguments\\)\\.concat\\(\\[(.*?)\\]\\)/g;\n const matches = [];\n let match;\n\n while ((match = regex.exec(str)) !== null) {\n const functionName = match[1];\n const params = match[2].replace(/\"(\\w+)\":\\s*\"([^\"]*?)\"/g, \"'$1':'$2'\").replace(/\"(\\w+)\":\\s*(\\d+)/g, \"'$1':$2\");\n matches.push(`${functionName}(${params})`);\n }\n\n return matches;\n}\n // js\u51FD\u6570\n if (isBroadJSFunction(value)) {\n const functionCfg = value as IPublicTypeJSFunction;\n const functionSource = getFunctionSource(functionCfg);\n if (config.isMember) {\n return transformFuncExpr2MethodMember(config.name || '', functionSource, config.isToVue);\n }\n if (config.isBlock) {\n return getBodyStatements(functionSource, config.isToVue);\n }\n if (config.isArrow) {\n return getArrowFunction(functionSource);\n }\n if (config.isBindExpr) {\n return `${extractFunctionCalls(functionSource)}`;\n }\n return functionSource;\n }\n // js\u8868\u8FBE\u5F0F\n if (isJSExpression(value)) {\n if (config.isToVue) {\n // \u5982\u679C\u662F\u8F6C\u6362\u4E3Avue\uFF0C\u5219\u53BB\u6389this.state,this.xxx\n return getExpressionBody(value.value, config.isToVue, config.isDeleteLastSemicolon)\n }\n return value.value;\n }\n\n throw new CodeGeneratorError('Not a JSFunction or JSExpression');\n}\n\n/**\n * \u5C06this.setState({a:1}) \u8F6C\u6362\u4E3A this.a.value = 1\n * @param path\n */\nfunction convertState(path: NodePath<CallExpression>) {\n // \u62FF\u5230\u8282\u70B9\n const node = path.node\n // \u5224\u65AD\u662F\u5426\u662Fthis.setState\n if (node.callee.type === 'MemberExpression' && node.callee.object.type === 'ThisExpression' && node.callee.property.name === 'setState') {\n // \u83B7\u53D6setstate\u91CC\u7684\u53C2\u6570\n const args = node.arguments[0].properties\n const expressionStatementArray: ExpressionStatement[] = []\n // \u904D\u5386\u53C2\u6570\n args.forEach((arg: any) => {\n // \u83B7\u5F97\u8D4B\u503C\u8868\u8FBE\u5F0F\n const assignment = t.assignmentExpression('=', t.memberExpression(t.memberExpression(t.thisExpression(), arg.key), t.identifier('value')), arg.value)\n // \u8868\u8FBE\u58F0\u660E\u518D\u5957\u4E00\u5C42\n expressionStatementArray.push(t.expressionStatement(assignment))\n })\n // \u83B7\u53D6\u7236\u8282\u70B9\u8DEF\u5F84\n const expressionStatementPath = path.parentPath\n // \u7528\u7B49\u53F7\u8868\u8FBE\u5F0F\u6279\u91CF\u66FF\u6362\u7236\u8282\u70B9\u8DEF\u5F84\u7684this.setState\u8868\u8FBE\u5F0F\n expressionStatementPath.replaceWithMultiple(expressionStatementArray)\n }\n}\n\n/**\n * \u89E3\u6790\u7ED9\u5B9A\u7684\u5B57\u7B26\u4E32\u5185\u5BB9\u4E3Ajs\u8868\u8FBE\u5F0F\u3002\n * @note \u4F7F\u7528babel\u8F6C\u5316\u4E3Aast\u6811\uFF0C\u518D\u5BF9\u6811\u8FDB\u884C\u5904\u7406\n * @param content \u8981\u89E3\u6790\u7684\u5B57\u7B26\u4E32\u5185\u5BB9\u3002\n * @param isToVue\n * @returns \u89E3\u6790\u6210\u529F\u7684\u8868\u8FBE\u5F0F\u8282\u70B9\uFF0C\u5982\u679C\u89E3\u6790\u5931\u8D25\u5219\u8FD4\u56DEnull\u3002\n * @throws \u5982\u679C\u89E3\u6790\u8FC7\u7A0B\u4E2D\u53D1\u751F\u9519\u8BEF\uFF0C\u5C06\u629B\u51FAParseError\u5F02\u5E38\u3002\n */\nfunction parseExpression(content: string, isToVue?: boolean): t.FunctionExpression | null {\n try {\n const ast = parser.parse(`(${content})`, {\n plugins: [\n 'jsx',\n ],\n });\n\n let resultNode: t.FunctionExpression | null = ast;\n traverse(ast, {\n MemberExpression(path) {\n if (isToVue) {\n // todo this.xxx \u8F6C\u4E3A xxx\u3002this.state['aaa'] \u8F6C\u4E3A aaa.value\n const node = path.node\n // \u5224\u65AD\u662F\u4E0D\u662Fthis.state['aaa'] \u683C\u5F0F\n if (node.object.type === 'ThisExpression' && node.property.name === 'state') {\n // \u83B7\u53D6\u7236\u8DEF\u5F84\n const parentPath = path.parentPath\n // \u83B7\u53D6\u7236\u8282\u70B9\n const parentNode = parentPath.node as MemberExpression\n // \u83B7\u53D6\u53D8\u91CF\u540D ['aaa']\n const name = (parentNode.property as StringLiteral).value\n // \u66FF\u6362\u7236\u8282\u70B9\u4E3A aaa.value\n parentPath.replaceWith(t.memberExpression(t.identifier(name), t.identifier('value')))\n } else if (node.object.type === 'ThisExpression') {\n // \u5982\u679C\u4EC5\u662Fthis.xxx \u683C\u5F0F\uFF0C\u5219\u66FF\u6362\u4E3Axxx\n path.replaceWith(node.property)\n }\n }\n }\n });\n return resultNode;\n } catch (e) {\n throw new ParseError(content, e);\n }\n}\n\n/**\n * \u83B7\u53D6js\u8868\u8FBE\u5F0F\u6587\u5B57\n * @param content\n * @param isToVue\n * @param isDeleteLastSemicolon \u662F\u5426\u5220\u9664\u6700\u540E\u4E00\u4E2A\u5206\u53F7\n */\nfunction getExpressionBody(content: string, isToVue?: boolean, isDeleteLastSemicolon?: boolean) {\n const funcNode = parseExpression(content, isToVue);\n if (funcNode) {\n\n const {code: resultCode} = generate(funcNode, {sourceMaps: false});\n if(resultCode) {\n // \u5220\u9664\u6700\u540E\u4E00\u4E2A\u5206\u53F7\n if (isDeleteLastSemicolon && resultCode.endsWith(';')) {\n return resultCode.slice(0, -1);\n }\n }\n return resultCode;\n }\n\n throw new Error('Can not find Function Statement');\n}\n", "import * as parser from '@babel/parser';\nimport generate from '@babel/generator';\nimport traverse, { NodePath } from '@babel/traverse';\nimport * as t from '@babel/types';\nimport { isIdentifier, Node } from '@babel/types';\n\nimport { OrderedSet } from './OrderedSet';\nimport { IScope } from '../types';\n\nexport class ParseError extends Error {\n readonly expr: string | t.Expression;\n\n readonly detail: unknown;\n\n constructor(expr: string | t.Expression, detail: unknown) {\n super(`Failed to parse expression \"${typeof expr === 'string' ? expr : generate(expr)}\"`);\n this.expr = expr;\n this.detail = detail;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\n\nconst MAYBE_EXPRESSIONS: {\n [k in Node['type']]?: {\n // fields: Array<keyof (Node & { type: k })>\n fields: string[] | ((node: Node) => string[]);\n };\n} = {\n ArrayExpression: { fields: ['elements'] },\n AssignmentExpression: { fields: ['left', 'right'] },\n BinaryExpression: { fields: ['left', 'right'] },\n CallExpression: { fields: ['arguments', 'callee'] },\n ConditionalExpression: { fields: ['test', 'consequent', 'alternate'] },\n DoWhileStatement: { fields: ['test'] },\n ExpressionStatement: { fields: ['expression'] },\n ForInStatement: { fields: ['right'] },\n ForStatement: { fields: ['init', 'test', 'update'] },\n IfStatement: { fields: ['test'] },\n LogicalExpression: { fields: ['left', 'right'] },\n MemberExpression: {\n fields: (node) => {\n return node.type === 'MemberExpression' && node.computed\n ? ['object', 'property']\n : ['object'];\n },\n },\n NewExpression: { fields: ['callee', 'arguments'] },\n ObjectMethod: {\n fields: (node) => {\n return node.type === 'ObjectMethod' && node.computed ? ['key'] : [];\n },\n },\n ObjectProperty: {\n fields: (node) => {\n return node.type === 'ObjectProperty' && node.computed ? ['key', 'value'] : ['value'];\n },\n },\n ReturnStatement: { fields: ['argument'] },\n SequenceExpression: { fields: ['expressions'] },\n ParenthesizedExpression: { fields: ['expression'] },\n SwitchCase: { fields: ['test'] },\n SwitchStatement: { fields: ['discriminant'] },\n ThrowStatement: { fields: ['argument'] },\n UnaryExpression: { fields: ['argument'] },\n UpdateExpression: { fields: ['argument'] },\n VariableDeclarator: { fields: ['init'] },\n WhileStatement: { fields: ['test'] },\n WithStatement: { fields: ['object'] },\n AssignmentPattern: { fields: ['right'] },\n ArrowFunctionExpression: { fields: ['body'] },\n ClassExpression: { fields: ['superClass'] },\n ClassDeclaration: { fields: ['superClass'] },\n ExportDefaultDeclaration: { fields: ['declaration'] },\n ForOfStatement: { fields: ['right'] },\n ClassMethod: {\n fields: (node) => {\n return node.type === 'ClassMethod' && node.computed ? ['key'] : [];\n },\n },\n SpreadElement: { fields: ['argument'] },\n TaggedTemplateExpression: { fields: ['tag'] },\n TemplateLiteral: { fields: ['expressions'] },\n YieldExpression: { fields: ['argument'] },\n AwaitExpression: { fields: ['argument'] },\n OptionalMemberExpression: {\n fields: (node) => {\n return node.type === 'OptionalMemberExpression' && node.computed\n ? ['object', 'property']\n : ['object'];\n },\n },\n OptionalCallExpression: { fields: ['callee', 'arguments'] },\n JSXSpreadAttribute: { fields: ['argument'] },\n BindExpression: { fields: ['object', 'callee'] },\n ClassProperty: {\n fields: (node) => {\n return node.type === 'ClassProperty' && node.computed ? ['key', 'value'] : ['value'];\n },\n },\n PipelineTopicExpression: { fields: ['expression'] },\n PipelineBareFunction: { fields: ['callee'] },\n ClassPrivateProperty: { fields: ['value'] },\n Decorator: { fields: ['expression'] },\n TupleExpression: { fields: ['elements'] },\n TSDeclareMethod: {\n fields: (node) => {\n return node.type === 'TSDeclareMethod' && node.computed ? ['key'] : [];\n },\n },\n TSPropertySignature: {\n fields: (node) => {\n return node.type === 'TSPropertySignature' && node.computed\n ? ['key', 'initializer']\n : ['initializer'];\n },\n },\n\n TSMethodSignature: {\n fields: (node) => {\n return node.type === 'TSMethodSignature' && node.computed ? ['key'] : [];\n },\n },\n TSAsExpression: { fields: ['expression'] },\n TSTypeAssertion: { fields: ['expression'] },\n TSEnumDeclaration: { fields: ['initializer'] },\n TSEnumMember: { fields: ['initializer'] },\n TSNonNullExpression: { fields: ['expression'] },\n TSExportAssignment: { fields: ['expression'] },\n};\n\nexport interface ParseExpressionGetGlobalVariablesOptions {\n filter?: (varName: string) => boolean;\n}\n\nconst CROSS_THIS_SCOPE_TYPE_NODE: {\n [k in Node['type']]?: boolean;\n} = {\n ArrowFunctionExpression: false, // \u7BAD\u5934\u51FD\u6570\u4E0D\u8DE8\u8D8A this \u7684 scope\n FunctionExpression: true,\n FunctionDeclaration: true,\n // FunctionTypeAnnotation: false, // \u8FD9\u662F TS \u5B9A\u4E49\n // FunctionTypeParam: false, // \u8FD9\u662F TS \u5B9A\u4E49\n ClassDeclaration: true,\n ClassExpression: true,\n ClassBody: true,\n ClassImplements: true,\n ClassMethod: true,\n ClassPrivateMethod: true,\n ClassProperty: true,\n ClassPrivateProperty: true,\n DeclareClass: true,\n};\n\nconst JS_KEYWORDS = ['arguments', 'this', 'super'];\n\nexport function parseExpressionGetKeywords(expr: string | null | undefined): string[] {\n if (!expr) {\n return [];\n }\n\n try {\n const keywordVars = new OrderedSet<string>();\n\n const ast = parser.parse(`!(${expr});`, {\n plugins: [\n 'jsx',\n ],\n });\n\n const addIdentifierIfNeeded = (x: Node | null | undefined) => {\n if (typeof x === 'object' && isIdentifier(x) && JS_KEYWORDS.includes(x.name)) {\n keywordVars.add(x.name);\n }\n };\n\n traverse(ast, {\n enter(path) {\n const { node } = path;\n const expressionFields = MAYBE_EXPRESSIONS[node.type]?.fields;\n if (expressionFields) {\n (typeof expressionFields === 'function'\n ? expressionFields(node)\n : expressionFields\n ).forEach((fieldName) => {\n const fieldValue = node[fieldName as keyof typeof node];\n if (typeof fieldValue === 'object') {\n if (Array.isArray(fieldValue)) {\n fieldValue.forEach((item: any) => {\n addIdentifierIfNeeded(item);\n });\n } else {\n addIdentifierIfNeeded(fieldValue as any);\n }\n }\n });\n }\n },\n });\n\n return keywordVars.toArray().filter(Boolean);\n } catch (e) {\n throw new ParseError(expr, e);\n }\n}\n\nexport function parseExpressionGetGlobalVariables(\n expr: string | null | undefined,\n { filter = () => true }: ParseExpressionGetGlobalVariablesOptions = {},\n): string[] {\n if (!expr) {\n return [];\n }\n\n try {\n const undeclaredVars = new OrderedSet<string>();\n\n const ast = parser.parse(`!(${expr});`);\n\n const addUndeclaredIdentifierIfNeeded = (\n x: Node | null | undefined,\n path: NodePath<Node>,\n ) => {\n if (typeof x === 'object' && isIdentifier(x) && !path.scope.hasBinding(x.name)) {\n undeclaredVars.add(x.name);\n }\n };\n\n traverse(ast, {\n enter(path) {\n const { node } = path;\n const expressionFields = MAYBE_EXPRESSIONS[node.type]?.fields;\n if (expressionFields) {\n (typeof expressionFields === 'function'\n ? expressionFields(node)\n : expressionFields\n ).forEach((fieldName) => {\n const fieldValue = node[fieldName as keyof typeof node];\n if (typeof fieldValue === 'object') {\n if (Array.isArray(fieldValue)) {\n fieldValue.forEach((item: any) => {\n addUndeclaredIdentifierIfNeeded(item, path);\n });\n } else {\n addUndeclaredIdentifierIfNeeded(fieldValue as any, path);\n }\n }\n });\n }\n },\n });\n\n return undeclaredVars.toArray().filter(filter);\n } catch (e) {\n throw new ParseError(expr, e);\n }\n}\n\nexport function parseExpressionConvertThis2Context(\n expr: string | t.Expression,\n contextName = '__$$context',\n localVariables: string[] = [],\n): string {\n if (!expr) {\n return expr;\n }\n\n try {\n const exprAst = typeof expr === 'string' ? parser.parseExpression(expr) : expr;\n const exprWrapAst = t.expressionStatement(exprAst);\n const fileAst = t.file(t.program([exprWrapAst]));\n\n const localVariablesSet = new Set(localVariables);\n\n let thisScopeLevel = CROSS_THIS_SCOPE_TYPE_NODE[exprAst.type] ? -1 : 0;\n traverse(fileAst, {\n enter(path) {\n if (CROSS_THIS_SCOPE_TYPE_NODE[path.node.type]) {\n thisScopeLevel++;\n }\n },\n exit(path) {\n if (CROSS_THIS_SCOPE_TYPE_NODE[path.node.type]) {\n thisScopeLevel--;\n }\n },\n MemberExpression(path) {\n if (!path.isMemberExpression()) {\n return;\n }\n\n const obj = path.get('object');\n if (!obj.isThisExpression()) {\n return;\n }\n\n // \u5904\u7406\u5C40\u90E8\u53D8\u91CF\n if (!path.node.computed) {\n const prop = path.get('property');\n if (prop.isIdentifier() && localVariablesSet.has(prop.node.name)) {\n path.replaceWith(t.identifier(prop.node.name));\n return;\n }\n }\n\n // \u66FF\u6362 this (\u53EA\u5728\u9876\u5C42\u66FF\u6362)\n if (thisScopeLevel <= 0) {\n obj.replaceWith(t.identifier(contextName));\n }\n },\n ThisExpression(path) {\n if (!path.isThisExpression()) {\n return;\n }\n\n // MemberExpression \u4E2D\u7684 this.xxx \u5DF2\u7ECF\u5904\u7406\u8FC7\u4E86\n if (path.parent.type === 'MemberExpression') {\n return;\n }\n\n if (thisScopeLevel <= 0) {\n path.replaceWith(t.identifier(contextName));\n }\n },\n });\n\n const { code } = generate(exprWrapAst.expression, { sourceMaps: false });\n return code;\n } catch (e) {\n throw new ParseError(expr, e);\n }\n}\n\nexport function parseExpression(expr: string) {\n try {\n return parser.parseExpression(expr);\n } catch (e) {\n throw new ParseError(expr, e);\n }\n}\n\nexport function transformExpressionLocalRef(expr: string, scope: IScope) {\n if (!expr) {\n return expr;\n }\n\n if (!scope) {\n throw new Error('transform expression without scope');\n }\n\n try {\n const exprAst = typeof expr === 'string' ? parser.parseExpression(expr) : expr;\n const exprWrapAst = t.expressionStatement(exprAst);\n const fileAst = t.file(t.program([exprWrapAst]));\n\n traverse(fileAst, {\n MemberExpression(path) {\n if (!path.isMemberExpression()) {\n return;\n }\n\n const obj = path.get('object');\n if (!obj.isThisExpression()) {\n return;\n }\n\n // \u67E5\u770B\u662F\u5426\u5B58\u5728\u5F15\u7528 local \u503C\n const prop = path.get('property');\n let memberName = '';\n if (!path.node.computed && prop.isIdentifier()) {\n memberName = prop.node.name;\n } else if (path.node.computed && prop.isStringLiteral()) {\n memberName = prop.node.value;\n }\n if (memberName && scope.bindings && scope.bindings.hasBinding(memberName)) {\n path.replaceWith(t.identifier(memberName));\n }\n },\n });\n\n const { code } = generate(exprWrapAst.expression, { sourceMaps: false });\n return code;\n } catch (e) {\n throw new ParseError(expr, e);\n // throw e;\n }\n}\n", "export class OrderedSet<T> {\n private _set = new Set<T>();\n private _arr: T[] = [];\n\n constructor(items?: T[]) {\n if (items) {\n this._set = new Set(items);\n this._arr = items.slice(0);\n }\n }\n\n add(item: T) {\n if (!this._set.has(item)) {\n this._set.add(item);\n this._arr.push(item);\n }\n }\n\n delete(item: T) {\n if (this._set.has(item)) {\n this._set.delete(item);\n this._arr.splice(this._arr.indexOf(item), 1);\n }\n }\n\n has(item: T) {\n return this._set.has(item);\n }\n\n toArray() {\n return this._arr.slice(0);\n }\n}\n", "import { IPublicTypeJSSlot, isJSSlot, IPublicTypeNodeData } from '@alilc/lowcode-types';\nimport { CodeGeneratorError, NodeGenerator, IScope } from '../types';\nimport { unwrapJsExprQuoteInJsx } from './jsxHelpers';\n\nfunction generateSingleLineComment(commentText: string): string {\n return `/* ${commentText.split('\\n').join(' ').replace(/\\*\\//g, '*-/')}*/`;\n}\n\nexport function generateJsSlot(slot: any, scope: IScope, generator: NodeGenerator<string>): string {\n if (isJSSlot(slot)) {\n const { title, params, value } = slot as IPublicTypeJSSlot;\n\n // slot \u4E5F\u662F\u5206\u6709\u53C2\u6570\u548C\u65E0\u53C2\u6570\u7684\n // - \u6709\u53C2\u6570\u7684 slot \u5C31\u662F\u7C7B\u4F3C\u4E00\u4E2A render \u51FD\u6570\uFF0C\u9700\u8981\u521B\u5EFA\u5B50\u4F5C\u7528\u57DF\n // - \u65E0\u53C2\u6570\u7684 slot \u5C31\u662F\u7C7B\u4F3C\u4E00\u4E2A JSX \u8282\u70B9\uFF0C\u4E0D\u9700\u8981\u521B\u5EFA\u5B50\u4F5C\u7528\u57DF\n const slotScope = params ? scope.createSubScope(params || []) : scope;\n const contentExpr = !value\n ? 'null'\n : generateNodeDataOrArrayForJsSlot(value, generator, slotScope);\n if (params) {\n return [\n title && generateSingleLineComment(title),\n '(',\n (params || []).join(', '),\n ') => ((__$$context) => (',\n contentExpr,\n '))(',\n ` __$$createChildContext(__$$context, { ${(params || []).join(', ')} }`,\n '))',\n ]\n .filter(Boolean)\n .join('');\n }\n\n return contentExpr || '[]';\n }\n\n throw new CodeGeneratorError('Not a JSSlot');\n}\n\nfunction generateNodeDataOrArrayForJsSlot(\n value: IPublicTypeNodeData | IPublicTypeNodeData[],\n generator: NodeGenerator<string>,\n scope: IScope,\n) {\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return '[]';\n }\n\n if (value.length === 1) {\n return unwrapJsExprQuoteInJsx(generator(value, scope)) || 'null';\n }\n\n return `[\\n${\n value\n .map((v) => {\n if (typeof v === 'string') {\n return JSON.stringify(v);\n }\n\n return unwrapJsExprQuoteInJsx(generator(v, scope)) || 'null';\n })\n .join(',\\n') || 'null'\n }\\n]`;\n }\n\n return unwrapJsExprQuoteInJsx(generator(value, scope)) || 'null';\n}\n", "/**\n * \u53BB\u6389 JS \u8868\u8FBE\u5F0F\u7684 \"{...}\" \u7684\u5C01\u88C5, \u5982:\n * {<xxx />} => <xxx />\n */\nexport function unwrapJsExprQuoteInJsx(jsxExpr: string): string {\n if (jsxExpr.length >= 2 && jsxExpr[0] === '{' && jsxExpr[jsxExpr.length - 1] === '}') {\n return jsxExpr.slice(1, jsxExpr.length - 1);\n }\n\n return jsxExpr;\n}\n", "import { BaseGenerator, IScope } from '../types/core';\n\nexport function executeFunctionStack<I, T, C>(\n input: I,\n scope: IScope,\n funcs: BaseGenerator<I, T, C> | Array<BaseGenerator<I, T, C>>,\n baseFunc: BaseGenerator<I, T, C>,\n config?: C,\n): T {\n const funcList: Array<BaseGenerator<I, T, C>> = [];\n if (Array.isArray(funcs)) {\n funcList.push(...funcs);\n } else {\n funcList.push(funcs);\n }\n\n let next: BaseGenerator<I, T, C> = baseFunc;\n while (funcList.length > 0) {\n const func = funcList.pop();\n if (func) {\n const warppedFunc = ((nextFunc) => (i: I, s: IScope, cfg?: C) => func(i, s, cfg, nextFunc))(next);\n next = warppedFunc;\n }\n }\n\n return next(input, scope, config);\n}\n", "import { IScope } from '../types/core';\nimport { IScopeBindings, ScopeBindings } from './ScopeBindings';\n\nexport class Scope implements IScope {\n /**\n * \u521B\u5EFA\u6839\u90E8 Scope\uFF0C\u6839\u636E\u9700\u8981\u88AB\u4E0A\u6EAF\u7684\u4F5C\u7528\u57DF\u94FE\u51B3\u5B9A\u662F\u5426\u5F00\u542F\u65B0\u7684\n */\n static createRootScope(): IScope {\n return new Scope();\n }\n\n bindings?: IScopeBindings;\n\n constructor(public readonly parent: IScope | null = null) {\n this.bindings = undefined;\n }\n\n createSubScope(ownIdentifiers: string[]): IScope {\n const originalScopeBindings = this.bindings;\n const newScopeBindings = new ScopeBindings(originalScopeBindings);\n ownIdentifiers.forEach((identifier) => {\n newScopeBindings.addBinding(identifier);\n });\n const newScope = new Scope(this);\n newScope.bindings = newScopeBindings;\n return newScope;\n }\n}\n", "import { OrderedSet } from './OrderedSet';\n\nexport interface IScopeBindings {\n readonly parent: IScopeBindings | null;\n\n hasBinding: (varName: string) => boolean;\n hasOwnBinding: (varName: string) => boolean;\n\n addBinding: (varName: string) => void;\n removeBinding: (varName: string) => void;\n\n getAllBindings: () => string[];\n getAllOwnedBindings: () => string[];\n}\n\nexport class ScopeBindings implements IScopeBindings {\n readonly parent: IScopeBindings | null;\n\n private _bindings = new OrderedSet<string>();\n\n constructor(p: IScopeBindings | null = null) {\n this.parent = p;\n }\n\n hasBinding(varName: string): boolean {\n return this._bindings.has(varName) || !!this.parent?.hasBinding(varName);\n }\n\n hasOwnBinding(varName: string): boolean {\n return this._bindings.has(varName);\n }\n\n addBinding(varName: string): void {\n this._bindings.add(varName);\n }\n\n removeBinding(varName: string): void {\n this._bindings.delete(varName);\n }\n\n getAllBindings(): string[] {\n const allBindings = new OrderedSet(this._bindings.toArray());\n\n for (let { parent } = this; parent; parent = parent?.parent) {\n parent.getAllOwnedBindings().forEach((varName) => {\n allBindings.add(varName);\n });\n }\n\n return allBindings.toArray();\n }\n\n getAllOwnedBindings(): string[] {\n return this._bindings.toArray();\n }\n}\n", "import { CLASS_DEFINE_CHUNK_NAME, DEFAULT_LINK_AFTER } from '../../../const/generator';\n\nimport { generateCompositeType } from '../../../utils/compositeType';\nimport { Scope } from '../../../utils/Scope';\n\nimport {\n BuilderComponentPlugin,\n BuilderComponentPluginFactory,\n ChunkType,\n FileType,\n ICodeStruct,\n IContainerInfo,\n} from '../../../types';\n\nexport interface PluginConfig {\n fileType?: string;\n implementType: 'inConstructor' | 'insMember' | 'hooks';\n}\n\nconst pluginFactory: BuilderComponentPluginFactory<PluginConfig> = (config?) => {\n const cfg: PluginConfig & { fileType: string } = {\n fileType: FileType.JSX,\n implementType: 'inConstructor',\n ...config,\n };\n\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n const ir = next.ir as IContainerInfo;\n const scope = Scope.createRootScope();\n\n const state = ir.state || {};\n const fields = Object.keys(state).map<string>((stateName) => {\n const value = generateCompositeType(state[stateName], scope);\n return `${stateName}: ${value},`;\n });\n\n if (cfg.implementType === 'inConstructor') {\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: CLASS_DEFINE_CHUNK_NAME.ConstructorContent,\n content: `this.state = { ${fields.join('')} };`,\n linkAfter: [...DEFAULT_LINK_AFTER[CLASS_DEFINE_CHUNK_NAME.ConstructorContent]],\n });\n } else if (cfg.implementType === 'insMember') {\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: CLASS_DEFINE_CHUNK_NAME.InsVar,\n content: `state = { ${fields.join('')} };`,\n linkAfter: [...DEFAULT_LINK_AFTER[CLASS_DEFINE_CHUNK_NAME.InsVar]],\n });\n }\n return next;\n };\n return plugin;\n};\n\nexport default pluginFactory;\n", "import { CLASS_DEFINE_CHUNK_NAME } from '../../../const/generator';\n\nimport { Scope } from '../../../utils/Scope';\n\nimport {\n BuilderComponentPlugin,\n BuilderComponentPluginFactory,\n ChunkType,\n FileType,\n ICodeStruct,\n IContainerInfo,\n} from '../../../types';\nimport { DEFAULT_LINK_AFTER } from '../../../const';\n\nexport interface PluginConfig {\n fileType: string;\n}\n\nconst pluginFactory: BuilderComponentPluginFactory<PluginConfig> = (config?) => {\n const cfg: PluginConfig = {\n fileType: FileType.JSX,\n ...config,\n };\n\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n const ir = next.ir as IContainerInfo;\n const scope = Scope.createRootScope();\n\n const { inStrictMode } = next.contextData;\n if (!inStrictMode) {\n // \u975E\u4E25\u683C\u6A21\u5F0F\u4E0B\uFF0C\u4E0A\u4E0B\u6587\u5C31\u662F\u81EA\u5DF1\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: CLASS_DEFINE_CHUNK_NAME.InsVar,\n content: `\n _context = this;\n `,\n linkAfter: [CLASS_DEFINE_CHUNK_NAME.Start],\n });\n } else {\n // \u4E25\u683C\u6A21\u5F0F\u4E0B\u7684\u4E0A\u4E0B\u6587\u53EA\u4FDD\u7559\u534F\u8BAE\u4E2D\u89C4\u5B9A\u7684\u90A3\u4E9B\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: CLASS_DEFINE_CHUNK_NAME.InsVar,\n content: `\n _context = this._createContext();\n `,\n linkAfter: [CLASS_DEFINE_CHUNK_NAME.Start],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: CLASS_DEFINE_CHUNK_NAME.InsPrivateMethod,\n content: `\n _createContext() {\n const self = this;\n const context = {\n get state() { return self.state; },\n setState(newState, callback) { self.setState(newState, callback); },\n get dataSourceMap() { return self._dataSourceEngine.dataSourceMap || {}; },\n async reloadDataSource() { await self._dataSourceEngine.reloadDataSource(); },\n get utils() { return self.utils; },\n get page() { return context; },\n get component() { return context; },\n get props() { return self.props; },\n get constants() { return self.constants; },\n get $() { return self.$ },\n get $$() { return self.$$ },\n ...this._methods,\n };\n \n return context;\n }\n `,\n linkAfter: DEFAULT_LINK_AFTER[CLASS_DEFINE_CHUNK_NAME.InsPrivateMethod],\n });\n }\n\n return next;\n };\n return plugin;\n};\n\nexport default pluginFactory;\n", "import { IContextData } from '../types';\n\nfunction relativePath(from: string[], to: string[]): string[] {\n const length = Math.min(from.length, to.length);\n let samePartsLength = length;\n for (let i = 0; i < length; i++) {\n if (from[i] !== to[i]) {\n samePartsLength = i;\n break;\n }\n }\n if (samePartsLength === 0) {\n return to;\n }\n let outputParts = [];\n for (let i = samePartsLength; i < from.length; i++) {\n outputParts.push('..');\n }\n outputParts = [...outputParts, ...to.slice(samePartsLength)];\n if (outputParts[0] !== '..') {\n outputParts.unshift('.');\n }\n return outputParts;\n}\n\nexport function getSlotRelativePath(options: {\n contextData: IContextData;\n from: string;\n to: string;\n}) {\n const { contextData, from, to } = options;\n const isSingleComponent = contextData?.extraContextData?.projectRemark?.isSingleComponent;\n const template = contextData?.extraContextData?.template;\n let toPath = template.slots[to].path;\n toPath = [...toPath, template.slots[to].fileName!];\n let fromPath = template.slots[from].path;\n if (!isSingleComponent && ['components', 'pages'].indexOf(from) !== -1) {\n fromPath = [...fromPath, 'pageName'];\n }\n return relativePath(fromPath, toPath).join('/');\n}", "import {\n CLASS_DEFINE_CHUNK_NAME,\n COMMON_CHUNK_NAME,\n DEFAULT_LINK_AFTER,\n} from '../../../const/generator';\n\nimport {\n BuilderComponentPlugin,\n BuilderComponentPluginFactory,\n ChunkType,\n FileType,\n ICodeStruct,\n IContainerInfo,\n} from '../../../types';\nimport { getSlotRelativePath } from '../../../utils/pathHelper';\n\nexport interface PluginConfig {\n fileType?: string;\n\n /** prefer using class property to define utils */\n preferClassProperty?: boolean;\n}\n\nconst pluginFactory: BuilderComponentPluginFactory<PluginConfig> = (config?) => {\n const cfg: PluginConfig & { fileType: string } = {\n fileType: FileType.JSX,\n ...config,\n };\n\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n const ir = next.ir as IContainerInfo;\n next.contextData.useRefApi = true;\n const useRef = !!ir.analyzeResult?.isUsingRef;\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: COMMON_CHUNK_NAME.InternalDepsImport,\n content: `\n import utils${useRef ? ', { RefsManager }' : ''} from '${getSlotRelativePath({ contextData: next.contextData, from: 'components', to: 'utils' })}';\n `,\n linkAfter: [COMMON_CHUNK_NAME.ExternalDepsImport],\n });\n\n if (cfg.preferClassProperty) {\n // mode: class property\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: CLASS_DEFINE_CHUNK_NAME.InsVar,\n content: 'utils = utils;',\n linkAfter: [...DEFAULT_LINK_AFTER[CLASS_DEFINE_CHUNK_NAME.InsVar]],\n });\n } else {\n // mode: assign in constructor\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: CLASS_DEFINE_CHUNK_NAME.ConstructorContent,\n content: 'this.utils = utils;',\n linkAfter: [CLASS_DEFINE_CHUNK_NAME.ConstructorStart],\n });\n }\n\n if (useRef) {\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: CLASS_DEFINE_CHUNK_NAME.ConstructorContent,\n content: 'this._refsManager = new RefsManager();',\n linkAfter: [...DEFAULT_LINK_AFTER[CLASS_DEFINE_CHUNK_NAME.ConstructorContent]],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: CLASS_DEFINE_CHUNK_NAME.InsMethod,\n content: `\n $ = (refName) => {\n return this._refsManager.get(refName);\n }\n `,\n linkAfter: [...DEFAULT_LINK_AFTER[CLASS_DEFINE_CHUNK_NAME.InsMethod]],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: CLASS_DEFINE_CHUNK_NAME.InsMethod,\n content: `\n $$ = (refName) => {\n return this._refsManager.getAll(refName);\n }\n `,\n linkAfter: [...DEFAULT_LINK_AFTER[CLASS_DEFINE_CHUNK_NAME.InsMethod]],\n });\n } else {\n // useRef \u4E3A false \u7684\u65F6\u5019\u662F\u6307\u6CA1\u6709\u7EC4\u4EF6\u5728 props \u4E2D\u914D\u7F6E ref \u5C5E\u6027\uFF0C\u4F46\u8FD9\u4E2A\u65F6\u5019\u5176\u5B9E\u4E5F\u53EF\u80FD\u6709\u4EE3\u7801\u8BBF\u95EE this.$/$$ \u6240\u4EE5\u8FD8\u662F\u52A0\u4E0A\u4E2A\u7A7A\u7684\u4EE3\u7801\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: CLASS_DEFINE_CHUNK_NAME.InsMethod,\n content: ' $ = () => null; ',\n linkAfter: [...DEFAULT_LINK_AFTER[CLASS_DEFINE_CHUNK_NAME.InsMethod]],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: CLASS_DEFINE_CHUNK_NAME.InsMethod,\n content: ' $$ = () => []; ',\n linkAfter: [...DEFAULT_LINK_AFTER[CLASS_DEFINE_CHUNK_NAME.InsMethod]],\n });\n }\n\n return next;\n };\n return plugin;\n};\n\nexport default pluginFactory;\n", "/* eslint-disable @typescript-eslint/indent */\n\nimport {\n IPublicTypeCompositeValue,\n IPublicTypeJSExpression,\n InterpretDataSourceConfig,\n isJSExpression,\n isJSFunction,\n} from '@alilc/lowcode-types';\nimport changeCase from 'change-case';\n\nimport {\n CLASS_DEFINE_CHUNK_NAME,\n COMMON_CHUNK_NAME,\n DEFAULT_LINK_AFTER,\n} from '../../../const/generator';\nimport { Scope } from '../../../utils/Scope';\n\nimport {\n BuilderComponentPlugin,\n BuilderComponentPluginFactory,\n ChunkType,\n FileType,\n ICodeStruct,\n IScope,\n} from '../../../types';\n\nimport { generateCompositeType } from '../../../utils/compositeType';\nimport { parseExpressionConvertThis2Context } from '../../../utils/expressionParser';\nimport { isValidContainerType } from '../../../utils/schema';\nimport { REACT_CHUNK_NAME } from './const';\nimport { isJSExpressionFn } from '../../../utils/common';\n\nexport interface PluginConfig {\n fileType?: string;\n\n /**\n * \u6570\u636E\u6E90\u914D\u7F6E\n */\n datasourceConfig?: {\n\n /** \u6570\u636E\u6E90\u5F15\u64CE\u7684\u7248\u672C */\n engineVersion?: string;\n\n /** \u6570\u636E\u6E90\u5F15\u64CE\u7684\u5305\u540D */\n enginePackage?: string;\n\n /** \u6570\u636E\u6E90 handlers \u7684\u7248\u672C */\n handlersVersion?: {\n [key: string]: string;\n };\n\n /** \u6570\u636E\u6E90 handlers \u7684\u5305\u540D */\n handlersPackages?: {\n [key: string]: string;\n };\n };\n}\n\nconst pluginFactory: BuilderComponentPluginFactory<PluginConfig> = (config?) => {\n const cfg = {\n ...config,\n fileType: config?.fileType || FileType.JSX,\n };\n\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n const scope = Scope.createRootScope();\n const dataSourceConfig = isValidContainerType(pre.ir) ? pre.ir.dataSource : null;\n const dataSourceItems: InterpretDataSourceConfig[] =\n (dataSourceConfig && dataSourceConfig.list) || [];\n const dataSourceEngineOptions = { runtimeConfig: true };\n if (dataSourceItems.length > 0) {\n const requestHandlersMap: Record<string, IPublicTypeJSExpression> = {};\n\n dataSourceItems.forEach((ds) => {\n const dsType = ds.type || 'fetch';\n if (!(dsType in requestHandlersMap) && dsType !== 'custom') {\n const handlerFactoryName = `__$$create${changeCase.pascal(dsType)}RequestHandler`;\n\n requestHandlersMap[dsType] = {\n type: 'JSExpression',\n value:\n handlerFactoryName + (dsType === 'urlParams' ? '(window.location.search)' : '()'),\n };\n\n const handlerFactoryExportName = `create${changeCase.pascal(dsType)}Handler`;\n const handlerPkgName =\n cfg.datasourceConfig?.handlersPackages?.[dsType] ||\n `@alilc/lowcode-datasource-${changeCase.kebab(dsType)}-handler`;\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.JSX,\n name: COMMON_CHUNK_NAME.ExternalDepsImport,\n content: `\n import { ${handlerFactoryExportName} as ${handlerFactoryName} } from '${handlerPkgName}';\n `,\n linkAfter: [],\n });\n }\n });\n\n Object.assign(dataSourceEngineOptions, { requestHandlersMap });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.JSX,\n name: COMMON_CHUNK_NAME.ExternalDepsImport,\n content: `\n import { create as __$$createDataSourceEngine } from '@alilc/lowcode-datasource-engine/runtime';\n `,\n linkAfter: [],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: CLASS_DEFINE_CHUNK_NAME.InsVar,\n content: `\n _dataSourceConfig = this._defineDataSourceConfig();\n _dataSourceEngine = __$$createDataSourceEngine(\n this._dataSourceConfig,\n this,\n ${generateCompositeType(dataSourceEngineOptions, scope)}\n );\n\n get dataSourceMap() {\n return this._dataSourceEngine.dataSourceMap || {};\n }\n\n reloadDataSource = async () => {\n await this._dataSourceEngine.reloadDataSource();\n }\n\n `,\n linkAfter: [...DEFAULT_LINK_AFTER[CLASS_DEFINE_CHUNK_NAME.InsVar]],\n });\n\n next.chunks.unshift({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: REACT_CHUNK_NAME.ClassDidMountContent,\n content: `\n this._dataSourceEngine.reloadDataSource();\n `,\n linkAfter: [REACT_CHUNK_NAME.ClassDidMountStart],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: CLASS_DEFINE_CHUNK_NAME.InsMethod,\n content: `\n _defineDataSourceConfig() {\n const _this = this;\n return (${generateCompositeType(\n {\n ...dataSourceConfig,\n list: [\n ...dataSourceItems.map((item) => ({\n ...item,\n isInit: wrapAsFunction(item.isInit, scope),\n options: wrapAsFunction(item.options, scope),\n })),\n ],\n },\n scope,\n {\n handlers: {\n function: (jsFunc) => parseExpressionConvertThis2Context(jsFunc.value, '_this'),\n expression: (jsExpr) => parseExpressionConvertThis2Context(jsExpr.value, '_this'),\n },\n },\n )});\n }\n `,\n linkAfter: [...DEFAULT_LINK_AFTER[CLASS_DEFINE_CHUNK_NAME.InsMethod]],\n });\n }\n\n return next;\n };\n return plugin;\n};\n\nexport default pluginFactory;\n\nfunction wrapAsFunction(value: IPublicTypeCompositeValue, scope: IScope): IPublicTypeCompositeValue {\n if (isJSExpression(value) || isJSFunction(value) || isJSExpressionFn(value)) {\n return {\n type: 'JSExpression',\n value: `function(){ return ((${value.value}))}.bind(this)`,\n };\n }\n\n return {\n type: 'JSExpression',\n value: `function(){return((${generateCompositeType(value, scope)}))}.bind(this)`,\n };\n}\n", "import {\n CLASS_DEFINE_CHUNK_NAME,\n COMMON_CHUNK_NAME,\n DEFAULT_LINK_AFTER,\n} from '../../../const/generator';\n\nimport {\n BuilderComponentPlugin,\n BuilderComponentPluginFactory,\n ChunkType,\n FileType,\n ICodeStruct,\n} from '../../../types';\n\nexport interface PluginConfig {\n fileType: string;\n}\n\nconst pluginFactory: BuilderComponentPluginFactory<PluginConfig> = (config?) => {\n const cfg: PluginConfig = {\n fileType: FileType.JSX,\n ...config,\n };\n\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: COMMON_CHUNK_NAME.InternalDepsImport,\n content: \"import __$$constants from '../../constants';\",\n linkAfter: [COMMON_CHUNK_NAME.ExternalDepsImport],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: CLASS_DEFINE_CHUNK_NAME.InsVar,\n content: `\n get constants() {\n return __$$constants || {};\n }\n `,\n linkAfter: [...DEFAULT_LINK_AFTER[CLASS_DEFINE_CHUNK_NAME.InsVar]],\n });\n\n return next;\n };\n return plugin;\n};\n\nexport default pluginFactory;\n", "import {\n CLASS_DEFINE_CHUNK_NAME,\n COMMON_CHUNK_NAME,\n DEFAULT_LINK_AFTER,\n} from '../../../const/generator';\n\nimport {\n BuilderComponentPlugin,\n BuilderComponentPluginFactory,\n ChunkType,\n FileType,\n ICodeStruct,\n} from '../../../types';\nimport { getSlotRelativePath } from '../../../utils/pathHelper';\n\nexport interface PluginConfig {\n fileType: string;\n}\n\nconst pluginFactory: BuilderComponentPluginFactory<PluginConfig> = (config?) => {\n const cfg: PluginConfig = {\n fileType: FileType.JSX,\n ...config,\n };\n\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: COMMON_CHUNK_NAME.InternalDepsImport,\n content: `\n import * as __$$i18n from '${getSlotRelativePath({ contextData: next.contextData, from: 'components', to: 'i18n' })}';\n `,\n linkAfter: [COMMON_CHUNK_NAME.ExternalDepsImport],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: CLASS_DEFINE_CHUNK_NAME.ConstructorContent,\n content: `\n __$$i18n._inject2(this);\n `,\n linkAfter: [...DEFAULT_LINK_AFTER[CLASS_DEFINE_CHUNK_NAME.ConstructorContent]],\n });\n\n return next;\n };\n return plugin;\n};\n\nexport default pluginFactory;\n", "import { CLASS_DEFINE_CHUNK_NAME, DEFAULT_LINK_AFTER } from '../../../const/generator';\nimport { REACT_CHUNK_NAME } from './const';\n\nimport { generateFunction } from '../../../utils/jsExpression';\n\nimport {\n BuilderComponentPlugin,\n BuilderComponentPluginFactory,\n ChunkType,\n FileType,\n ICodeChunk,\n ICodeStruct,\n IContainerInfo,\n} from '../../../types';\nimport { isJSFunction, isJSExpression } from '@alilc/lowcode-types';\nimport { isJSExpressionFn } from '../../../utils/common';\n\nexport interface PluginConfig {\n fileType?: string;\n exportNameMapping?: Record<string, string>;\n normalizeNameMapping?: Record<string, string>;\n exclude?: string[];\n}\n\nconst pluginFactory: BuilderComponentPluginFactory<PluginConfig> = (config?) => {\n const cfg = {\n fileType: FileType.JSX,\n exportNameMapping: {},\n normalizeNameMapping: {},\n ...config,\n };\n\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n const ir = next.ir as IContainerInfo;\n\n if (ir.lifeCycles) {\n const { lifeCycles } = ir;\n const chunks = Object.keys(lifeCycles).map<ICodeChunk | null>((lifeCycleName) => {\n // \u8FC7\u6EE4\u6389\u975E\u6CD5\u6570\u636E\uFF08\u6709\u4E9B\u573A\u666F\u4E0B\u4F1A\u8BEF\u4F20\u5165\u7A7A\u5B57\u7B26\u4E32\u6216 null)\n if (\n !isJSFunction(lifeCycles[lifeCycleName]) &&\n !isJSExpressionFn(lifeCycles[lifeCycleName]) &&\n !isJSExpression(lifeCycles[lifeCycleName])\n ) {\n return null;\n }\n\n let normalizeName;\n // constructor\u4F1A\u53D6\u5230\u5BF9\u8C61\u7684\u6784\u9020\u51FD\u6570\n if (lifeCycleName === 'constructor') {\n normalizeName = lifeCycleName;\n } else {\n normalizeName = cfg.normalizeNameMapping[lifeCycleName] || lifeCycleName;\n }\n\n if (cfg?.exclude?.includes(normalizeName)) {\n return null;\n }\n\n const exportName = cfg.exportNameMapping[lifeCycleName] || lifeCycleName;\n if (normalizeName === 'constructor') {\n return {\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: CLASS_DEFINE_CHUNK_NAME.ConstructorContent,\n content: generateFunction(lifeCycles[lifeCycleName], { isBlock: true }),\n linkAfter: [...DEFAULT_LINK_AFTER[CLASS_DEFINE_CHUNK_NAME.ConstructorStart]],\n };\n }\n\n if (normalizeName === 'componentDidMount') {\n return {\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: REACT_CHUNK_NAME.ClassDidMountContent,\n content: generateFunction(lifeCycles[lifeCycleName], { isBlock: true }),\n linkAfter: [REACT_CHUNK_NAME.ClassDidMountStart],\n };\n }\n\n if (normalizeName === 'render') {\n return {\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: REACT_CHUNK_NAME.ClassRenderPre,\n content: generateFunction(lifeCycles[lifeCycleName], { isBlock: true }),\n linkAfter: [REACT_CHUNK_NAME.ClassRenderStart],\n };\n }\n\n return {\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: CLASS_DEFINE_CHUNK_NAME.InsMethod,\n content: generateFunction(lifeCycles[lifeCycleName], {\n name: exportName,\n isMember: true,\n }),\n linkAfter: [...DEFAULT_LINK_AFTER[CLASS_DEFINE_CHUNK_NAME.InsMethod]],\n };\n }).filter((i) => !!i);\n\n next.chunks.push(...chunks.filter((x): x is ICodeChunk => x !== null));\n }\n\n return next;\n };\n return plugin;\n};\n\nexport default pluginFactory;\n", "import { CLASS_DEFINE_CHUNK_NAME, DEFAULT_LINK_AFTER } from '../../../const/generator';\n\nimport { generateFunction } from '../../../utils/jsExpression';\n\nimport {\n BuilderComponentPlugin,\n BuilderComponentPluginFactory,\n ChunkType,\n FileType,\n ICodeChunk,\n ICodeStruct,\n IContainerInfo,\n} from '../../../types';\nimport { isValidIdentifier } from '../../../utils/validate';\n\nexport interface PluginConfig {\n fileType: string;\n}\n\nconst pluginFactory: BuilderComponentPluginFactory<PluginConfig> = (config?) => {\n const cfg: PluginConfig = {\n fileType: FileType.JSX,\n ...config,\n };\n\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n const ir = next.ir as IContainerInfo;\n const { inStrictMode } = next.contextData;\n\n if (!ir.methods) {\n return next;\n }\n\n // \u5C06\u8FD9\u4E9B methods \u90FD\u5B9A\u4E49\u5230 class \u4E0A\n const { methods } = ir;\n const chunks = Object.keys(methods).map<ICodeChunk>((methodName) => ({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: CLASS_DEFINE_CHUNK_NAME.InsMethod,\n content: generateFunction(methods[methodName], { name: methodName, isMember: true }),\n linkAfter: [...DEFAULT_LINK_AFTER[CLASS_DEFINE_CHUNK_NAME.InsMethod]],\n }));\n next.chunks.push(...chunks);\n\n // \u4E25\u683C\u6A21\u5F0F\u4E0B\u9700\u8981\u5C06\u8FD9\u4E9B\u65B9\u6CD5\u90FD\u6302\u5230\u4E0A\u4E0B\u6587\u4E2D\n if (inStrictMode) {\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: CLASS_DEFINE_CHUNK_NAME.ConstructorContent,\n content: Object.keys(ir.methods)\n .map((methodName) =>\n isValidIdentifier(methodName) ? `.${methodName}` : `[${JSON.stringify(methodName)}]`,\n )\n .map((method) => `this._context${method} = this${method};`)\n .join('\\n'),\n linkAfter: [...DEFAULT_LINK_AFTER[CLASS_DEFINE_CHUNK_NAME.ConstructorContent]],\n });\n }\n\n return next;\n };\n return plugin;\n};\n\nexport default pluginFactory;\n", "import _ from 'lodash';\nimport { pipe } from 'fp-ts/function';\nimport { IPublicTypeNodeSchema, isNodeSchema, IPublicTypeNodeDataType, IPublicTypeCompositeValue } from '@alilc/lowcode-types';\n\nimport {\n IScope,\n CodeGeneratorError,\n PIECE_TYPE,\n CodePiece,\n NodeGenerator,\n NodeGeneratorConfig,\n NodePlugin,\n AttrData,\n} from '../types';\n\nimport { generateCompositeType } from './compositeType';\nimport { getStaticExprValue } from './common';\nimport { executeFunctionStack } from './aopHelper';\nimport { encodeJsxStringNode } from './encodeJsxAttrString';\nimport { unwrapJsExprQuoteInJsx } from './jsxHelpers';\nimport { transformThis2Context } from '../core/jsx/handlers/transformThis2Context';\nimport { isValidIdentifier } from './validate';\n\nfunction mergeNodeGeneratorConfig(\n cfg1: NodeGeneratorConfig,\n cfg2: NodeGeneratorConfig = {},\n): NodeGeneratorConfig {\n const resCfg: NodeGeneratorConfig = {};\n if (cfg1.handlers || cfg2.handlers) {\n resCfg.handlers = {\n ...(cfg1.handlers || {}),\n ...(cfg2.handlers || {}),\n };\n }\n\n if (cfg1.tagMapping || cfg2.tagMapping) {\n resCfg.tagMapping = cfg2.tagMapping || cfg1.tagMapping;\n }\n\n if (cfg1.attrPlugins || cfg2.attrPlugins) {\n resCfg.attrPlugins = [];\n resCfg.attrPlugins.push(...(cfg2.attrPlugins || []));\n resCfg.attrPlugins.push(...(cfg1.attrPlugins || []));\n }\n\n if (cfg1.nodePlugins || cfg2.nodePlugins) {\n resCfg.nodePlugins = [];\n resCfg.nodePlugins.push(...(cfg2.nodePlugins || []));\n resCfg.nodePlugins.push(...(cfg1.nodePlugins || []));\n }\n\n return resCfg;\n}\n\nexport function isPureString(v: string) {\n // FIXME: \u76EE\u524D\u7684\u65B9\u5F0F\u4E0D\u591F\u4E25\u8C28\n return (v[0] === \"'\" && v[v.length - 1] === \"'\") || (v[0] === '\"' && v[v.length - 1] === '\"');\n}\n\nfunction generateAttrValue(\n attrData: { attrName: string; attrValue: IPublicTypeCompositeValue },\n scope: IScope,\n config?: NodeGeneratorConfig,\n): CodePiece[] {\n const valueStr = generateCompositeType(attrData.attrValue, scope, {\n handlers: config?.handlers,\n nodeGenerator: config?.self,\n });\n return [\n {\n type: PIECE_TYPE.ATTR,\n name: attrData.attrName,\n value: valueStr,\n },\n ];\n}\n\nfunction generateAttr(\n attrName: string,\n attrValue: IPublicTypeCompositeValue,\n scope: IScope,\n config?: NodeGeneratorConfig,\n): CodePiece[] {\n let pieces: CodePiece[];\n if (config?.attrPlugins) {\n pieces = executeFunctionStack<AttrData, CodePiece[], NodeGeneratorConfig>(\n { attrName, attrValue },\n scope,\n config.attrPlugins,\n generateAttrValue,\n config,\n );\n } else {\n pieces = generateAttrValue({ attrName, attrValue }, scope, config);\n }\n\n pieces = pieces.map((p) => {\n // FIXME: \u5728\u7ECF\u8FC7 generateCompositeType \u5904\u7406\u8FC7\u4E4B\u540E\uFF0C\u5176\u5B9E\u5DF2\u7ECF\u65E0\u6CD5\u901A\u8FC7\u4F20\u5165\u503C\u7684\u7C7B\u578B\u5224\u65AD\u4F20\u51FA\u503C\u662F\u5426\u4E3A\u7EAF\u5B57\u9762\u503C\u5B57\u7B26\u4E32\u4E86\uFF08\u53EF\u80FD\u5305\u88F9\u4E86\u52A0\u5DE5\u51FD\u6570\u4E4B\u7C7B\u7684\uFF09\n // \u56E0\u6B64\u8FD9\u4E2A\u5904\u7406\u6700\u597D\u7684\u65B9\u5F0F\u662F\u5BF9\u4F20\u51FA\u503C\u505A\u8BED\u6CD5\u5206\u6790\uFF0C\u5224\u65AD\u4EE5\u54EA\u79CD\u6A21\u7248\u4EA7\u51FA Attr \u503C\n let newValue: string;\n if (p.value && isPureString(p.value)) {\n // \u4F3C\u4E4E\u591A\u6B21\u4E00\u4E3E\uFF0C\u76EE\u524D\u7684\u8BC9\u6C42\u662F\u5904\u7406\u591A\u79CD\u5F15\u53F7\u7C7B\u578B\u5B57\u7B26\u4E32\u7684 case\uFF0C\u6B63\u786E\u5904\u7406\u8F6C\u4E49\n const content = getStaticExprValue<string>(p.value);\n newValue = JSON.stringify(encodeJsxStringNode(content));\n } else {\n newValue = `{${p.value}}`;\n }\n\n return {\n value: `${p.name}=${newValue}`,\n type: PIECE_TYPE.ATTR,\n };\n });\n\n return pieces;\n}\n\nfunction generateAttrs(\n nodeItem: IPublicTypeNodeSchema,\n scope: IScope,\n config?: NodeGeneratorConfig,\n): CodePiece[] {\n const { props } = nodeItem;\n\n let pieces: CodePiece[] = [];\n\n if (props) {\n if (!Array.isArray(props)) {\n Object.keys(props).forEach((propName: string) => {\n if (isValidIdentifier(propName)) {\n pieces = pieces.concat(generateAttr(propName, props[propName] as IPublicTypeCompositeValue, scope, config));\n }\n });\n } else {\n props.forEach((prop) => {\n if (prop.name && isValidIdentifier(prop.name) && !prop.spread) {\n pieces = pieces.concat(generateAttr(prop.name, prop.value, scope, config));\n }\n\n // TODO: \u5904\u7406 spread \u573A\u666F\uFF08<Xxx {...(something)}/>)\n // \u8FD9\u79CD\u5728 schema \u91CC\u9762\u600E\u4E48\u63CF\u8FF0\n });\n }\n }\n\n return pieces;\n}\n\nfunction generateBasicNode(\n nodeItem: IPublicTypeNodeSchema,\n scope: IScope,\n config?: NodeGeneratorConfig,\n): CodePiece[] {\n const pieces: CodePiece[] = [];\n const tagName = (config?.tagMapping || _.identity)(nodeItem.componentName);\n\n pieces.push({\n value: tagName || '', // FIXME: type detection error\n type: PIECE_TYPE.TAG,\n });\n\n return pieces;\n}\n\nfunction generateSimpleNode(\n nodeItem: IPublicTypeNodeSchema,\n scope: IScope,\n config?: NodeGeneratorConfig,\n): CodePiece[] {\n const basicParts = generateBasicNode(nodeItem, scope, config) || [];\n const attrParts = generateAttrs(nodeItem, scope, config) || [];\n const childrenParts: CodePiece[] = [];\n if (nodeItem.children && config?.self) {\n const childrenStr = config.self(nodeItem.children, scope);\n\n childrenParts.push({\n type: PIECE_TYPE.CHILDREN,\n value: childrenStr,\n });\n }\n\n return [...basicParts, ...attrParts, ...childrenParts];\n}\n\nfunction linkPieces(pieces: CodePiece[]): string {\n const tagsPieces = pieces.filter((p) => p.type === PIECE_TYPE.TAG);\n if (tagsPieces.length !== 1) {\n throw new CodeGeneratorError('Only one tag definition required', tagsPieces);\n }\n const tagName = tagsPieces[0].value;\n\n const beforeParts = pieces\n .filter((p) => p.type === PIECE_TYPE.BEFORE)\n .map((p) => p.value)\n .join('');\n\n const afterParts = pieces\n .filter((p) => p.type === PIECE_TYPE.AFTER)\n .map((p) => p.value)\n .join('');\n\n const childrenParts = pieces\n .filter((p) => p.type === PIECE_TYPE.CHILDREN)\n .map((p) => p.value)\n .join('');\n\n let attrsParts = pieces\n .filter((p) => p.type === PIECE_TYPE.ATTR)\n .map((p) => p.value)\n .join(' ');\n\n attrsParts = attrsParts ? ` ${attrsParts}` : '';\n\n if (childrenParts) {\n return `${beforeParts}<${tagName}${attrsParts}>${childrenParts}</${tagName}>${afterParts}`;\n }\n\n return `${beforeParts}<${tagName}${attrsParts} />${afterParts}`;\n}\n\nfunction generateNodeSchema(\n nodeItem: IPublicTypeNodeSchema,\n scope: IScope,\n config?: NodeGeneratorConfig,\n): string {\n const pieces: CodePiece[] = [];\n if (config?.nodePlugins) {\n const res = executeFunctionStack<IPublicTypeNodeSchema, CodePiece[], NodeGeneratorConfig>(\n nodeItem,\n scope,\n config.nodePlugins,\n generateSimpleNode,\n config,\n );\n pieces.push(...res);\n } else {\n pieces.push(...generateSimpleNode(nodeItem, scope, config));\n }\n\n return linkPieces(pieces);\n}\n\n// TODO: \u751F\u6210\u6587\u6863\n// \u4E3A\u5305\u88F9\u7684\u4EE3\u7801\u7247\u6BB5\u751F\u6210\u5B50\u4E0A\u4E0B\u6587\uFF0C\u96C6\u6210\u7236\u7EA7\u4E0A\u4E0B\u6587\uFF0C\u5E76\u4F20\u5165\u5B50\u7EA7\u4E0A\u4E0B\u6587\u65B0\u589E\u5185\u5BB9\u3002\uFF08\u5982\u679C\u5B58\u5728\u591A\u7EA7\u4E0A\u4E0B\u6587\u600E\u4E48\u5904\u7406\uFF1F\uFF09\n// \u521B\u5EFA\u65B0\u7684\u4E0A\u4E0B\u6587\uFF0C\u5E76\u4ECE\u4F5C\u7528\u57DF\u4E2D\u53D6\u5BF9\u5E94\u540C\u540D\u53D8\u91CF\u585E\u5230\u4F5C\u7528\u57DF\u91CC\u9762\uFF1F\n// export function createSubContext() {}\n\n/**\n * JSX \u751F\u6210\u903B\u8F91\u63D2\u4EF6\u3002\u5728 React \u4EE3\u7801\u6A21\u5F0F\u4E0B\u751F\u6210 loop \u76F8\u5173\u7684\u903B\u8F91\u4EE3\u7801\n * @type NodePlugin Extended\n *\n * @export\n * @param {IPublicTypeNodeSchema} nodeItem \u5F53\u524D UI \u8282\u70B9\n * @returns {CodePiece[]} \u5B9E\u73B0\u529F\u80FD\u7684\u76F8\u5173\u4EE3\u7801\u7247\u6BB5\n */\nexport function generateReactLoopCtrl(\n nodeItem: IPublicTypeNodeSchema,\n scope: IScope,\n config?: NodeGeneratorConfig,\n next?: NodePlugin,\n): CodePiece[] {\n if (nodeItem.loop) {\n const tolerateEvalErrors = config?.tolerateEvalErrors ?? true;\n\n const loopItemName = nodeItem.loopArgs?.[0] || 'item';\n const loopIndexName = nodeItem.loopArgs?.[1] || 'index';\n\n // \u65B0\u5EFA\u4F5C\u7528\u57DF\n const subScope = scope.createSubScope([loopItemName, loopIndexName]);\n const pieces: CodePiece[] = next ? next(nodeItem, subScope, config) : [];\n\n // \u751F\u6210\u5FAA\u73AF\u53D8\u91CF\u8868\u8FBE\u5F0F\n const loopDataExpr = pipe(\n nodeItem.loop,\n // \u5C06 JSExpression \u8F6C\u6362\u4E3A JS \u8868\u8FBE\u5F0F\u4EE3\u7801:\n (expr) => generateCompositeType(expr, scope, {\n handlers: config?.handlers,\n tolerateEvalErrors: false, // \u8FD9\u4E2A\u5185\u90E8\u4E0D\u9700\u8981\u5305 try catch, \u4E0B\u9762\u4F1A\u7EDF\u4E00\u52A0\u7684\n }),\n // \u5C06 this.xxx \u8F6C\u6362\u4E3A __$$context.xxx:\n (expr) => transformThis2Context(expr, scope, { ignoreRootScope: true }),\n // \u5982\u679C\u8981\u5BB9\u5FCD\u9519\u8BEF\uFF0C\u5219\u5305\u4E00\u5C42 try catch (\u57FA\u4E8E\u52A9\u624B\u51FD\u6570 __$$evalArray)\n (expr) => (tolerateEvalErrors ? `__$$evalArray(() => (${expr}))` : expr),\n );\n\n pieces.unshift({\n value: `(${loopDataExpr}).map((${loopItemName}, ${loopIndexName}) => ((__$$context) => (`,\n type: PIECE_TYPE.BEFORE,\n });\n\n pieces.push({\n value: `))(__$$createChildContext(__$$context, { ${loopItemName}, ${loopIndexName} })))`,\n type: PIECE_TYPE.AFTER,\n });\n\n return pieces;\n }\n\n return next ? next(nodeItem, scope, config) : [];\n}\n\n/**\n * JSX \u751F\u6210\u903B\u8F91\u63D2\u4EF6\u3002\u5728 React \u4EE3\u7801\u6A21\u5F0F\u4E0B\u751F\u6210 condition \u76F8\u5173\u7684\u903B\u8F91\u4EE3\u7801\n * @type NodePlugin\n *\n * @export\n * @param {IPublicTypeNodeSchema} nodeItem \u5F53\u524D UI \u8282\u70B9\n * @returns {CodePiece[]} \u5B9E\u73B0\u529F\u80FD\u7684\u76F8\u5173\u4EE3\u7801\u7247\u6BB5\n */\nexport function generateConditionReactCtrl(\n nodeItem: IPublicTypeNodeSchema,\n scope: IScope,\n config?: NodeGeneratorConfig,\n next?: NodePlugin,\n): CodePiece[] {\n const pieces: CodePiece[] = next ? next(nodeItem, scope, config) : [];\n\n if (nodeItem.condition != null && nodeItem.condition !== true) {\n const value = generateCompositeType(nodeItem.condition, scope, {\n handlers: config?.handlers,\n });\n\n pieces.unshift({\n value: `!!(${value}) && (`,\n type: PIECE_TYPE.BEFORE,\n });\n\n pieces.push({\n value: ')',\n type: PIECE_TYPE.AFTER,\n });\n }\n\n return pieces;\n}\n\n/**\n * JSX \u751F\u6210\u903B\u8F91\u63D2\u4EF6\u3002\u5728 React \u4EE3\u7801\u6A21\u5F0F\u4E0B\uFF0C\u5982\u679C Node \u751F\u6210\u7ED3\u679C\u662F\u4E00\u4E2A\u8868\u8FBE\u5F0F\uFF0C\u5219\u5BF9\u5176\u8FDB\u884C { Expression } \u5305\u88C5\n * @type NodePlugin\n *\n * @export\n * @param {IPublicTypeNodeSchema} nodeItem \u5F53\u524D UI \u8282\u70B9\n * @returns {CodePiece[]} \u5B9E\u73B0\u529F\u80FD\u7684\u76F8\u5173\u4EE3\u7801\u7247\u6BB5\n */\nexport function generateReactExprInJS(\n nodeItem: IPublicTypeNodeSchema,\n scope: IScope,\n config?: NodeGeneratorConfig,\n next?: NodePlugin,\n): CodePiece[] {\n const pieces: CodePiece[] = next ? next(nodeItem, scope, config) : [];\n\n if ((nodeItem.condition != null && nodeItem.condition !== true) || nodeItem.loop != null) {\n pieces.unshift({\n value: '{',\n type: PIECE_TYPE.BEFORE,\n });\n\n pieces.push({\n value: '}',\n type: PIECE_TYPE.AFTER,\n });\n }\n\n return pieces;\n}\n\nconst handleChildren = (v: string[]) => v.join('');\n\nexport function createNodeGenerator(cfg: NodeGeneratorConfig = {}): NodeGenerator<string> {\n const generateNode = (nodeItem: IPublicTypeNodeDataType, scope: IScope): string => {\n if (_.isArray(nodeItem)) {\n const resList = nodeItem.map((n) => generateNode(n, scope));\n return handleChildren(resList);\n }\n\n if (isNodeSchema(nodeItem)) {\n return generateNodeSchema(nodeItem, scope, {\n ...cfg,\n self: generateNode,\n });\n }\n\n const valueStr = generateCompositeType(nodeItem, scope, {\n handlers: cfg.handlers,\n nodeGenerator: generateNode,\n });\n\n if (isPureString(valueStr)) {\n return encodeJsxStringNode(getStaticExprValue<string>(valueStr));\n }\n\n return `{${valueStr}}`;\n };\n\n return (nodeItem: IPublicTypeNodeDataType, scope: IScope) => unwrapJsExprQuoteInJsx(generateNode(nodeItem, scope));\n}\n\nconst defaultReactGeneratorConfig: NodeGeneratorConfig = {\n nodePlugins: [generateReactExprInJS, generateReactLoopCtrl, generateConditionReactCtrl],\n};\n\nexport function createReactNodeGenerator(cfg?: NodeGeneratorConfig): NodeGenerator<string> {\n const newCfg = mergeNodeGeneratorConfig(defaultReactGeneratorConfig, cfg);\n\n return createNodeGenerator(newCfg);\n}\n", "import _ from 'lodash';\n// import { encode } from 'html-entities';\n\nconst SPECIAL_CHARS = '\\n\\r\\'\"<>&';\nconst SPECIAL_CHARS_REG = new RegExp(\n `[${SPECIAL_CHARS.split('')\n .map((c) => `\\\\x${_.padStart(c.charCodeAt(0).toString(16), 2, '0')}`)\n .join('')}]`,\n 'g',\n);\n\nexport function encodeJsxStringNode(str: string): string {\n return str.replace(SPECIAL_CHARS_REG, (c) => `&#${c.charCodeAt(0)};`);\n}\n\n// export function encodeJsxStringNode(str: string): string {\n// return encode(str);\n// }\n", "import { Expression } from '@babel/types';\nimport generate from '@babel/generator';\nimport { IScope } from '../../../types';\nimport { parseExpressionConvertThis2Context } from '../../../utils/expressionParser';\n\n/**\n * \u5C06\u6240\u6709\u7684 this.xxx \u66FF\u6362\u4E3A __$$context.xxx\n * @param expr\n */\nexport function transformThis2Context(\n expr: string | Expression,\n scope: IScope,\n { ignoreRootScope = false } = {},\n): string {\n if (ignoreRootScope && scope.parent == null) {\n return typeof expr === 'string' ? expr : generate(expr).code;\n }\n\n // \u4E0B\u9762\u8FD9\u79CD\u5B57\u7B26\u4E32\u66FF\u6362\u7684\u65B9\u5F0F\u867D\u7136\u7B80\u5355\u76F4\u63A5\uFF0C\u4F46\u662F\u5BF9\u4E8E\u590D\u6742\u573A\u666F\u4F1A\u8BEF\u5339\u914D\uFF0C\u6545\u540E\u671F\u6539\u6210\u4E86\u89E3\u6790 AST \u7136\u540E\u4FEE\u6539 AST \u6700\u540E\u518D\u91CD\u65B0\u751F\u6210\u4EE3\u7801\u7684\u65B9\u5F0F\n // return expr\n // .replace(/\\bthis\\.item\\./g, () => 'item.')\n // .replace(/\\bthis\\.index\\./g, () => 'index.')\n // .replace(/\\bthis\\./g, () => '__$$context.');\n return parseExpressionConvertThis2Context(\n expr,\n '__$$context',\n scope.bindings?.getAllBindings() || [],\n );\n}\n", "/**\n * \u5224\u65AD\u662F\u5426\u662F\u539F\u5B50\u7C7B\u578B\u7684\u8868\u8FBE\u5F0F\n */\nexport function isLiteralAtomicExpr(expr: string): boolean {\n return (\n expr === 'null' ||\n expr === 'undefined' ||\n expr === 'true' ||\n expr === 'false' ||\n /^-?\\d+(\\.\\d+)?$/.test(expr)\n );\n}\n", "import { Expression } from '@babel/types';\n\n/** \u5224\u65AD\u662F\u975E\u662F\u4E00\u4E9B\u7B80\u5355\u76F4\u63A5\u7684\u5B57\u9762\u503C */\nexport function isSimpleStraightLiteral(expr: Expression): boolean {\n switch (expr.type) {\n case 'BigIntLiteral':\n case 'BooleanLiteral':\n case 'DecimalLiteral':\n case 'NullLiteral':\n case 'NumericLiteral':\n case 'RegExpLiteral':\n case 'StringLiteral':\n return true;\n default:\n return false;\n }\n}\n", "import { IScope } from '../../../types';\nimport { parseExpression } from '../../../utils/expressionParser';\nimport { isLiteralAtomicExpr } from '../util/isLiteralAtomicExpr';\nimport { isSimpleStraightLiteral } from '../util/isSimpleStraightLiteral';\nimport { transformThis2Context } from './transformThis2Context';\n\nexport function transformJsExpr(\n expr: string,\n scope: IScope,\n { dontWrapEval = false, dontTransformThis2ContextAtRootScope = false } = {},\n) {\n if (!expr) {\n return 'undefined';\n }\n\n if (isLiteralAtomicExpr(expr)) {\n return expr;\n }\n\n const exprAst = parseExpression(expr);\n\n // \u5BF9\u4E8E\u4E0B\u9762\u8FD9\u4E9B\u6BD4\u8F83\u5B89\u5168\u7684\u5B57\u9762\u503C\uFF0C\u53EF\u4EE5\u76F4\u63A5\u8FD4\u56DE\u5BF9\u5E94\u7684\u8868\u8FBE\u5F0F\uFF0C\u800C\u975E\u5305\u4E00\u5C42\n if (isSimpleStraightLiteral(exprAst)) {\n return expr;\n }\n\n if (dontWrapEval) {\n return transformThis2Context(exprAst, scope, {\n ignoreRootScope: dontTransformThis2ContextAtRootScope,\n });\n }\n\n switch (exprAst.type) {\n // \u5BF9\u4E8E\u76F4\u63A5\u5199\u4E2A\u51FD\u6570\u7684\uFF0C\u5219\u4E0D\u7528\u518D\u5305\u4E0B\uFF0C\u56E0\u4E3A\u8FD9\u6837\u4E0D\u4F1A\u629B\u51FA\u5F02\u5E38\u7684\n case 'ArrowFunctionExpression':\n case 'FunctionExpression':\n return transformThis2Context(exprAst, scope, {\n ignoreRootScope: dontTransformThis2ContextAtRootScope,\n });\n\n default:\n break;\n }\n\n // \u5176\u4ED6\u7684\u90FD\u9700\u8981\u5305\u4E00\u5C42\n return `__$$eval(() => (${transformThis2Context(exprAst, scope, {\n ignoreRootScope: dontTransformThis2ContextAtRootScope,\n })}))`;\n}\n", "import {\n BuilderComponentPlugin,\n BuilderComponentPluginFactory,\n ChunkType,\n FileType,\n HandlerSet,\n ICodeStruct,\n IContainerInfo,\n IScope,\n NodeGeneratorConfig,\n PIECE_TYPE,\n} from '../../../types';\n\nimport { REACT_CHUNK_NAME } from './const';\nimport { COMMON_CHUNK_NAME } from '../../../const/generator';\n\nimport { createReactNodeGenerator } from '../../../utils/nodeToJSX';\nimport { Scope } from '../../../utils/Scope';\nimport { IPublicTypeJSExpression } from '@alilc/lowcode-types';\nimport { generateExpression } from '../../../utils/jsExpression';\nimport { transformJsExpr } from '../../../core/jsx/handlers/transformJsExpression';\nimport { transformThis2Context } from '../../../core/jsx/handlers/transformThis2Context';\nimport { generateCompositeType } from '../../../utils/compositeType';\n\nexport interface PluginConfig {\n fileType?: string;\n nodeTypeMapping?: Record<string, string>;\n}\n\nconst pluginFactory: BuilderComponentPluginFactory<PluginConfig> = (config?) => {\n const cfg = {\n fileType: FileType.JSX,\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n nodeTypeMapping: {} as Record<string, string>,\n ...config,\n };\n\n const { nodeTypeMapping } = cfg;\n\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n const { tolerateEvalErrors = true, evalErrorsHandler = '' } = next.contextData;\n\n // \u8FD9\u91CC\u4F1A\u5C06\u5185\u90E8\u7684\u4E00\u4E9B\u5B50\u4E0A\u4E0B\u6587\u7684\u8BBF\u95EE(this.xxx)\u8F6C\u6362\u4E3A __$$context.xxx \u7684\u5F62\u5F0F\n // \u4E0E Rax \u6240\u4E0D\u540C\u7684\u662F\uFF0C\u8FD9\u91CC\u4E0D\u4F1A\u5C06\u6700\u9876\u5C42\u7684 this \u8F6C\u6362\u6389\n const customHandlers: HandlerSet<string> = {\n expression(input: IPublicTypeJSExpression, scope: IScope, config) {\n return transformJsExpr(generateExpression(input, scope), scope, {\n dontWrapEval: !(config?.tolerateEvalErrors ?? tolerateEvalErrors),\n dontTransformThis2ContextAtRootScope: true,\n });\n },\n function(input, scope: IScope) {\n return transformThis2Context(\n generateCompositeType(\n {\n type: 'JSFunction',\n value: input.value || 'function () {}',\n },\n Scope.createRootScope(),\n ),\n scope,\n { ignoreRootScope: true },\n );\n },\n };\n\n const generatorPlugins: NodeGeneratorConfig = {\n handlers: customHandlers,\n tagMapping: (v) => nodeTypeMapping[v] || v,\n tolerateEvalErrors,\n };\n\n if (next.contextData.useRefApi) {\n generatorPlugins.attrPlugins = [\n (attrData, scope, pluginCfg, nextFunc) => {\n if (attrData.attrName === 'ref') {\n return [\n {\n name: attrData.attrName,\n value: `this._refsManager.linkRef('${attrData.attrValue}')`,\n type: PIECE_TYPE.ATTR,\n },\n ];\n }\n\n return nextFunc ? nextFunc(attrData, scope, pluginCfg) : [];\n },\n ];\n }\n\n const generator = createReactNodeGenerator(generatorPlugins);\n\n const ir = next.ir as IContainerInfo;\n const scope: IScope = Scope.createRootScope();\n const jsxContent = generator(ir, scope);\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: REACT_CHUNK_NAME.ClassRenderJSX,\n content: `\n const __$$context = this._context || this;\n const { state } = __$$context;\n return ${jsxContent};\n `,\n linkAfter: [REACT_CHUNK_NAME.ClassRenderStart, REACT_CHUNK_NAME.ClassRenderPre],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: COMMON_CHUNK_NAME.CustomContent,\n content: [\n tolerateEvalErrors &&\n `\n function __$$eval(expr) {\n try {\n return expr();\n } catch (error) {\n ${evalErrorsHandler}\n }\n }\n\n function __$$evalArray(expr) {\n const res = __$$eval(expr);\n return Array.isArray(res) ? res : [];\n }\n `,\n `\n function __$$createChildContext(oldContext, ext) {\n const childContext = {\n ...oldContext,\n ...ext,\n };\n childContext.__proto__ = oldContext;\n return childContext;\n }\n `,\n ]\n .filter(Boolean)\n .join('\\n'),\n linkAfter: [COMMON_CHUNK_NAME.FileExport],\n });\n return next;\n };\n return plugin;\n};\n\nexport default pluginFactory;\n", "import { COMMON_CHUNK_NAME } from '../../../const/generator';\n\nimport {\n BuilderComponentPlugin,\n BuilderComponentPluginFactory,\n ChunkType,\n FileType,\n ICodeStruct,\n} from '../../../types';\n\nconst pluginFactory: BuilderComponentPluginFactory<unknown> = () => {\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.JSX,\n name: COMMON_CHUNK_NAME.ExternalDepsImport,\n content: `\n// \u6CE8\u610F: \u51FA\u7801\u5F15\u64CE\u6CE8\u5165\u7684\u4E34\u65F6\u53D8\u91CF\u9ED8\u8BA4\u90FD\u4EE5 \"__$$\" \u5F00\u5934\uFF0C\u7981\u6B62\u5728\u642D\u5EFA\u7684\u4EE3\u7801\u4E2D\u76F4\u63A5\u8BBF\u95EE\u3002\n// \u4F8B\u5916\uFF1Areact \u6846\u67B6\u7684\u5BFC\u51FA\u540D\u548C\u5404\u79CD\u7EC4\u4EF6\u540D\u9664\u5916\u3002\nimport React from \\'react\\';`,\n linkAfter: [],\n });\n\n return next;\n };\n return plugin;\n};\n\nexport default pluginFactory;\n", "import { COMMON_CHUNK_NAME } from '../../../const/generator';\n\nimport {\n BuilderComponentPlugin,\n BuilderComponentPluginFactory,\n ChunkType,\n FileType,\n ICodeStruct,\n IContainerInfo,\n} from '../../../types';\n\nexport interface PluginConfig {\n fileType: string;\n moduleFileType: string;\n}\n\nconst pluginFactory: BuilderComponentPluginFactory<PluginConfig> = (config?) => {\n const cfg: PluginConfig = {\n fileType: FileType.CSS,\n moduleFileType: FileType.JSX,\n ...config,\n };\n\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n const ir = next.ir as IContainerInfo;\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: COMMON_CHUNK_NAME.StyleCssContent,\n content: ir.css,\n linkAfter: [COMMON_CHUNK_NAME.StyleDepsImport],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.moduleFileType,\n name: COMMON_CHUNK_NAME.InternalDepsImport,\n content: `import './index.${cfg.fileType}';`,\n linkAfter: [COMMON_CHUNK_NAME.ExternalDepsImport],\n });\n\n return next;\n };\n return plugin;\n};\n\nexport default pluginFactory;\n", "import { COMMON_CHUNK_NAME } from '../../const/generator';\nimport { generateCompositeType } from '../../utils/compositeType';\nimport {\n BuilderComponentPlugin,\n BuilderComponentPluginFactory,\n ChunkType,\n FileType,\n ICodeStruct,\n IProjectInfo,\n} from '../../types';\nimport { Scope } from '../../utils/Scope';\n\nconst pluginFactory: BuilderComponentPluginFactory<unknown> = () => {\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n const ir = next.ir as IProjectInfo;\n const scope = Scope.createRootScope();\n const constantStr = generateCompositeType(ir.constants || {}, scope);\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.JS,\n name: COMMON_CHUNK_NAME.FileVarDefine,\n content: `\n const __$$constants = (${constantStr});\n `,\n linkAfter: [\n COMMON_CHUNK_NAME.ExternalDepsImport,\n COMMON_CHUNK_NAME.InternalDepsImport,\n COMMON_CHUNK_NAME.ImportAliasDefine,\n ],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.JS,\n name: COMMON_CHUNK_NAME.FileExport,\n content: `\n export default __$$constants;\n `,\n linkAfter: [\n COMMON_CHUNK_NAME.ExternalDepsImport,\n COMMON_CHUNK_NAME.InternalDepsImport,\n COMMON_CHUNK_NAME.ImportAliasDefine,\n COMMON_CHUNK_NAME.FileVarDefine,\n COMMON_CHUNK_NAME.FileUtilDefine,\n COMMON_CHUNK_NAME.FileMainContent,\n ],\n });\n\n return next;\n };\n return plugin;\n};\n\nexport default pluginFactory;\n", "import { COMMON_CHUNK_NAME } from '../../const/generator';\n\nimport {\n BuilderComponentPlugin,\n BuilderComponentPluginFactory,\n ChunkType,\n FileType,\n ICodeStruct,\n IProjectInfo,\n} from '../../types';\n\nconst pluginFactory: BuilderComponentPluginFactory<unknown> = () => {\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n const ir = next.ir as IProjectInfo;\n const i18nStr = ir.i18n ? JSON.stringify(ir.i18n, null, 2) : '{}';\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.JS,\n name: COMMON_CHUNK_NAME.FileMainContent,\n content: `\n const i18nConfig = ${i18nStr};\n\n let locale = typeof navigator === 'object' && typeof navigator.language === 'string' ? navigator.language : 'zh-CN';\n\n const getLocale = () => locale;\n\n const setLocale = (target) => {\n locale = target;\n };\n\n const isEmptyVariables = variables => (\n Array.isArray(variables) && variables.length === 0\n || typeof variables === 'object' && (!variables || Object.keys(variables).length === 0)\n );\n\n // \u6309\u4F4E\u4EE3\u7801\u89C4\u8303\u91CC\u9762\u7684\u8981\u6C42\u8FDB\u884C\u53D8\u91CF\u66FF\u6362\n const format = (msg, variables) => (\n typeof msg === 'string'\n ? msg.replace(/\\\\\\$?\\\\{(\\\\w+)\\\\}/g, (match, key) => variables?.[key] ?? '')\n : msg\n );\n\n const i18nFormat = ({ id, defaultMessage, fallback }, variables) => {\n const msg = i18nConfig[locale]?.[id] ?? i18nConfig[locale.replace('-', '_')]?.[id] ?? defaultMessage;\n if (msg == null) {\n console.warn('[i18n]: unknown message id: %o (locale=%o)', id, locale);\n return fallback === undefined ? \\`\\${id}\\` : fallback;\n }\n\n return format(msg, variables);\n }\n\n const i18n = (id, params) => {\n return i18nFormat({ id }, params);\n };\n\n // \u5C06\u56FD\u9645\u5316\u7684\u4E00\u4E9B\u65B9\u6CD5\u6CE8\u5165\u5230\u76EE\u6807\u5BF9\u8C61&\u4E0A\u4E0B\u6587\u4E2D\n const _inject2 = (target) => {\n target.i18n = i18n;\n target.getLocale = getLocale;\n target.setLocale = (locale) => {\n setLocale(locale);\n target.forceUpdate();\n };\n target._i18nText = (t) => {\n // \u4F18\u5148\u53D6\u76F4\u63A5\u4F20\u8FC7\u6765\u7684\u8BED\u6599\n const localMsg = t[locale] ?? t[String(locale).replace('-', '_')]\n if (localMsg != null) {\n return format(localMsg, t.params);\n }\n\n // \u5176\u6B21\u7528\u9879\u76EE\u7EA7\u522B\u7684\n const projectMsg = i18nFormat({ id: t.key, fallback: null }, t.params);\n if (projectMsg != null) {\n return projectMsg;\n }\n\n // \u515C\u5E95\u7528 use \u6307\u5B9A\u7684\u6216\u9ED8\u8BA4\u8BED\u8A00\u7684\n return format(t[t.use || \"zh-CN\"] ?? t.en_US, t.params);\n }\n\n // \u6CE8\u5165\u5230\u4E0A\u4E0B\u6587\u4E2D\u53BB\n if (target._context && target._context !== target) {\n Object.assign(target._context, {\n i18n,\n getLocale, setLocale: target.setLocale\n });\n }\n }\n `,\n linkAfter: [\n COMMON_CHUNK_NAME.ExternalDepsImport,\n COMMON_CHUNK_NAME.InternalDepsImport,\n COMMON_CHUNK_NAME.ImportAliasDefine,\n COMMON_CHUNK_NAME.FileVarDefine,\n COMMON_CHUNK_NAME.FileUtilDefine,\n ],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.JS,\n name: COMMON_CHUNK_NAME.FileExport,\n content: `\n export {\n getLocale,\n setLocale,\n i18n,\n i18nFormat,\n _inject2,\n };\n `,\n linkAfter: [\n COMMON_CHUNK_NAME.ExternalDepsImport,\n COMMON_CHUNK_NAME.InternalDepsImport,\n COMMON_CHUNK_NAME.ImportAliasDefine,\n COMMON_CHUNK_NAME.FileVarDefine,\n COMMON_CHUNK_NAME.FileUtilDefine,\n COMMON_CHUNK_NAME.FileMainContent,\n ],\n });\n return next;\n };\n return plugin;\n};\n\nexport default pluginFactory;\n", "import { COMMON_CHUNK_NAME, DEFAULT_LINK_AFTER } from '../../const/generator';\n\nimport {\n BuilderComponentPlugin,\n BuilderComponentPluginFactory,\n ChunkType,\n FileType,\n ICodeStruct,\n IUtilInfo,\n} from '../../types';\n\nconst pluginFactory: BuilderComponentPluginFactory<string> = (baseFramework?: string) => {\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const framework = baseFramework || 'react';\n const next: ICodeStruct = {\n ...pre,\n };\n\n const ir = next.ir as IUtilInfo;\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.JS,\n name: COMMON_CHUNK_NAME.ExternalDepsImport,\n content: `\n import { createRef } from '${framework}';\n `,\n linkAfter: [],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.JS,\n name: COMMON_CHUNK_NAME.FileUtilDefine,\n content: `\n export class RefsManager {\n constructor() {\n this.refInsStore = {};\n }\n\n clearNullRefs() {\n Object.keys(this.refInsStore).forEach((refName) => {\n const filteredInsList = this.refInsStore[refName].filter(insRef => !!insRef.current);\n if (filteredInsList.length > 0) {\n this.refInsStore[refName] = filteredInsList;\n } else {\n delete this.refInsStore[refName];\n }\n });\n }\n\n get(refName) {\n this.clearNullRefs();\n if (this.refInsStore[refName] && this.refInsStore[refName].length > 0) {\n return this.refInsStore[refName][0].current;\n }\n\n return null;\n }\n\n getAll(refName) {\n this.clearNullRefs();\n if (this.refInsStore[refName] && this.refInsStore[refName].length > 0) {\n return this.refInsStore[refName].map(i => i.current);\n }\n\n return [];\n }\n\n linkRef(refName) {\n const refIns = createRef();\n this.refInsStore[refName] = this.refInsStore[refName] || [];\n this.refInsStore[refName].push(refIns);\n return refIns;\n }\n }\n `,\n linkAfter: [...DEFAULT_LINK_AFTER[COMMON_CHUNK_NAME.FileUtilDefine]],\n });\n\n if (ir.utils) {\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.JS,\n name: COMMON_CHUNK_NAME.FileExport,\n content: `\n export default {\n `,\n linkAfter: [\n COMMON_CHUNK_NAME.ExternalDepsImport,\n COMMON_CHUNK_NAME.InternalDepsImport,\n COMMON_CHUNK_NAME.ImportAliasDefine,\n COMMON_CHUNK_NAME.FileVarDefine,\n COMMON_CHUNK_NAME.FileUtilDefine,\n COMMON_CHUNK_NAME.FileMainContent,\n ],\n });\n\n ir.utils.forEach((util) => {\n if (util.type === 'function') {\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.JS,\n name: COMMON_CHUNK_NAME.FileVarDefine,\n content: `\n const ${util.name} = ${util.content.value};\n `,\n linkAfter: [\n COMMON_CHUNK_NAME.ExternalDepsImport,\n COMMON_CHUNK_NAME.InternalDepsImport,\n COMMON_CHUNK_NAME.ImportAliasDefine,\n ],\n });\n }\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.JS,\n name: COMMON_CHUNK_NAME.FileExport,\n content: `${util.name},`,\n linkAfter: [\n COMMON_CHUNK_NAME.ExternalDepsImport,\n COMMON_CHUNK_NAME.InternalDepsImport,\n COMMON_CHUNK_NAME.ImportAliasDefine,\n COMMON_CHUNK_NAME.FileVarDefine,\n COMMON_CHUNK_NAME.FileUtilDefine,\n COMMON_CHUNK_NAME.FileMainContent,\n ],\n });\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.JS,\n name: COMMON_CHUNK_NAME.FileExport,\n content: `\n };\n `,\n linkAfter: [\n COMMON_CHUNK_NAME.ExternalDepsImport,\n COMMON_CHUNK_NAME.InternalDepsImport,\n COMMON_CHUNK_NAME.ImportAliasDefine,\n COMMON_CHUNK_NAME.FileVarDefine,\n COMMON_CHUNK_NAME.FileUtilDefine,\n COMMON_CHUNK_NAME.FileMainContent,\n ],\n });\n }\n\n return next;\n };\n return plugin;\n};\n\nexport default pluginFactory;\n", "import { ResultDir, ResultFile } from '@alilc/lowcode-types';\nimport { createResultDir, addDirectory, addFile } from './resultHelper';\n\ntype FuncFileGenerator = () => [string[], ResultFile];\n\nexport function insertFile(root: ResultDir, path: string[], file: ResultFile) {\n let current: ResultDir = root;\n path.forEach((pathNode) => {\n const dir = current.dirs.find((d) => d.name === pathNode);\n if (dir) {\n current = dir;\n } else {\n const newDir = createResultDir(pathNode);\n addDirectory(current, newDir);\n current = newDir;\n }\n });\n\n addFile(current, file);\n}\n\nexport function runFileGenerator(root: ResultDir, fun: FuncFileGenerator) {\n try {\n const result = fun();\n const [path, file] = result;\n insertFile(root, path, file);\n } catch (error) {\n throw new Error(`Error: ${typeof fun}`);\n }\n}\n", "import { ResultFile } from '@alilc/lowcode-types';\n\nexport default function getFile(): [string[], ResultFile] {\n return [\n [],\n {\n name: 'abc',\n ext: 'json',\n content: `\n{\n \"type\": \"ice-app\",\n \"builder\": \"@ali/builder-ice-app\"\n}\n `,\n },\n ];\n}\n", "import { ResultFile } from '@alilc/lowcode-types';\n\nexport default function getFile(): [string[], ResultFile] {\n return [\n [],\n {\n name: 'build',\n ext: 'json',\n content: `\n{\n \"entry\": \"src/app.js\",\n \"plugins\": [\n [\n \"build-plugin-fusion\",\n {\n \"themePackage\": \"@alifd/theme-design-pro\"\n }\n ],\n [\n \"build-plugin-moment-locales\",\n {\n \"locales\": [\n \"zh-cn\"\n ]\n }\n ]\n ]\n}\n `,\n },\n ];\n}\n", "import { ResultFile } from '@alilc/lowcode-types';\nimport { createResultFile } from '../../../../../../utils/resultHelper';\n\nexport default function getFile(): [string[], ResultFile] {\n const file = createResultFile(\n '.editorconfig',\n '',\n `\n# http://editorconfig.org\nroot = true\n\n[*]\nindent_style = space\nindent_size = 2\ncharset = utf-8\ntrim_trailing_whitespace = true\ninsert_final_newline = true\n\n[*.md]\ntrim_trailing_whitespace = false\n `,\n );\n\n return [[], file];\n}\n", "import { ResultFile } from '@alilc/lowcode-types';\nimport { createResultFile } from '../../../../../../utils/resultHelper';\n\nexport default function getFile(): [string[], ResultFile] {\n const file = createResultFile(\n '.eslintignore',\n '',\n `\n# \u5FFD\u7565\u76EE\u5F55\nbuild/\ntests/\ndemo/\n.ice/\n\n# node \u8986\u76D6\u7387\u6587\u4EF6\ncoverage/\n\n# \u5FFD\u7565\u6587\u4EF6\n**/*-min.js\n**/*.min.js\n\npackage-lock.json\nyarn.lock\n `,\n );\n\n return [[], file];\n}\n", "import { ResultFile } from '@alilc/lowcode-types';\nimport { createResultFile } from '../../../../../../utils/resultHelper';\n\nexport default function getFile(): [string[], ResultFile] {\n const file = createResultFile(\n '.eslintrc',\n 'js',\n `\nconst { eslint } = require('@ice/spec');\n\nmodule.exports = eslint;\n `,\n );\n\n return [[], file];\n}\n", "import { ResultFile } from '@alilc/lowcode-types';\nimport { createResultFile } from '../../../../../../utils/resultHelper';\n\nexport default function getFile(): [string[], ResultFile] {\n const file = createResultFile(\n '.gitignore',\n '',\n `\n# See https://help.github.com/ignore-files/ for more about ignoring files.\n\n# dependencies\nnode_modules/\n\n# production\nbuild/\ndist/\ntmp/\nlib/\n\n# misc\n.idea/\n.happypack\n.DS_Store\n*.swp\n*.dia~\n.ice\n\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\nindex.module.scss.d.ts\n `,\n );\n\n return [[], file];\n}\n", "import { ResultFile } from '@alilc/lowcode-types';\nimport { createResultFile } from '../../../../../../utils/resultHelper';\n\nexport default function getFile(): [string[], ResultFile] {\n const file = createResultFile(\n 'jsconfig',\n 'json',\n `\n{\n \"compilerOptions\": {\n \"baseUrl\": \".\",\n \"jsx\": \"react\",\n \"paths\": {\n \"@/*\": [\"./src/*\"],\n \"ice\": [\".ice/index.ts\"],\n \"ice/*\": [\".ice/pages/*\"]\n }\n }\n}\n `,\n );\n\n return [[], file];\n}\n", "import { ResultFile } from '@alilc/lowcode-types';\nimport { createResultFile } from '../../../../../../utils/resultHelper';\n\nexport default function getFile(): [string[], ResultFile] {\n const file = createResultFile(\n '.prettierignore',\n '',\n `\nbuild/\ntests/\ndemo/\n.ice/\ncoverage/\n**/*-min.js\n**/*.min.js\npackage-lock.json\nyarn.lock\n `,\n );\n\n return [[], file];\n}\n", "import { ResultFile } from '@alilc/lowcode-types';\nimport { createResultFile } from '../../../../../../utils/resultHelper';\n\nexport default function getFile(): [string[], ResultFile] {\n const file = createResultFile(\n '.prettierrc',\n 'js',\n `\nconst { prettier } = require('@ice/spec');\n\nmodule.exports = prettier;\n `,\n );\n\n return [[], file];\n}\n", "import { ResultFile } from '@alilc/lowcode-types';\nimport { createResultFile } from '../../../../../../utils/resultHelper';\n\nexport default function getFile(): [string[], ResultFile] {\n const file = createResultFile(\n 'README',\n 'md',\n `\n## Scaffold Lite\n\n> \u8F7B\u91CF\u7EA7\u6A21\u677F\uFF0C\u4F7F\u7528 JavaScript\uFF0C\u4EC5\u5305\u542B\u57FA\u7840\u7684 Layout\u3002\n\n## \u4F7F\u7528\n\n\\`\\`\\`bash\n# \u5B89\u88C5\u4F9D\u8D56\n$ npm install\n\n# \u542F\u52A8\u670D\u52A1\n$ npm start # visit http://localhost:3333\n\\`\\`\\`\n\n[More docs](https://ice.work/docs/guide/about).\n\n## \u76EE\u5F55\n\n\\`\\`\\`md\n\u251C\u2500\u2500 build/ # \u6784\u5EFA\u4EA7\u7269\n\u251C\u2500\u2500 mock/ # \u672C\u5730\u6A21\u62DF\u6570\u636E\n\u2502 \u251C\u2500\u2500 index.[j,t]s\n\u251C\u2500\u2500 public/\n\u2502 \u251C\u2500\u2500 index.html # \u5E94\u7528\u5165\u53E3 HTML\n\u2502 \u2514\u2500\u2500 favicon.png # Favicon\n\u251C\u2500\u2500 src/ # \u6E90\u7801\u8DEF\u5F84\n\u2502 \u251C\u2500\u2500 components/ # \u81EA\u5B9A\u4E49\u4E1A\u52A1\u7EC4\u4EF6\n\u2502 \u2502 \u2514\u2500\u2500 Guide/\n\u2502 \u2502 \u251C\u2500\u2500 index.[j,t]sx\n\u2502 \u2502 \u251C\u2500\u2500 index.module.scss\n\u2502 \u251C\u2500\u2500 layouts/ # \u5E03\u5C40\u7EC4\u4EF6\n\u2502 \u2502 \u2514\u2500\u2500 BasicLayout/\n\u2502 \u2502 \u251C\u2500\u2500 index.[j,t]sx\n\u2502 \u2502 \u2514\u2500\u2500 index.module.scss\n\u2502 \u251C\u2500\u2500 pages/ # \u9875\u9762\n\u2502 \u2502 \u2514\u2500\u2500 Home/ # home \u9875\u9762\uFF0C\u7EA6\u5B9A\u8DEF\u7531\u8F6C\u6210\u5C0F\u5199\n\u2502 \u2502 \u251C\u2500\u2500 components/ # \u9875\u9762\u7EA7\u81EA\u5B9A\u4E49\u4E1A\u52A1\u7EC4\u4EF6\n\u2502 \u2502 \u251C\u2500\u2500 models.[j,t]sx # \u9875\u9762\u7EA7\u6570\u636E\u72B6\u6001\n\u2502 \u2502 \u251C\u2500\u2500 index.[j,t]sx # \u9875\u9762\u5165\u53E3\n\u2502 \u2502 \u2514\u2500\u2500 index.module.scss # \u9875\u9762\u6837\u5F0F\u6587\u4EF6\n\u2502 \u251C\u2500\u2500 configs/ # [\u53EF\u9009] \u914D\u7F6E\u6587\u4EF6\n\u2502 \u2502 \u2514\u2500\u2500 menu.[j,t]s # [\u53EF\u9009] \u83DC\u5355\u914D\u7F6E\n\u2502 \u251C\u2500\u2500 models/ # [\u53EF\u9009] \u5E94\u7528\u7EA7\u6570\u636E\u72B6\u6001\n\u2502 \u2502 \u2514\u2500\u2500 user.[j,t]s\n\u2502 \u251C\u2500\u2500 utils/ # [\u53EF\u9009] \u5DE5\u5177\u5E93\n\u2502 \u251C\u2500\u2500 global.scss # \u5168\u5C40\u6837\u5F0F\n\u2502 \u251C\u2500\u2500 routes.[j,t]s # \u8DEF\u7531\u914D\u7F6E\n\u2502 \u2514\u2500\u2500 app.[j,t]s[x] # \u5E94\u7528\u5165\u53E3\u811A\u672C\n\u251C\u2500\u2500 build.json # \u5DE5\u7A0B\u914D\u7F6E\n\u251C\u2500\u2500 README.md\n\u251C\u2500\u2500 package.json\n\u251C\u2500\u2500 .editorconfig\n\u251C\u2500\u2500 .eslintignore\n\u251C\u2500\u2500 .eslintrc.[j,t]s\n\u251C\u2500\u2500 .gitignore\n\u251C\u2500\u2500 .stylelintignore\n\u251C\u2500\u2500 .stylelintrc.[j,t]s\n\u251C\u2500\u2500 .gitignore\n\u2514\u2500\u2500 [j,t]sconfig.json\n\\`\\`\\`\n `,\n );\n\n return [[], file];\n}\n", "import { ResultFile } from '@alilc/lowcode-types';\nimport { createResultFile } from '../../../../../../../../../../../utils/resultHelper';\n\nexport default function getFile(): [string[], ResultFile] {\n const file = createResultFile(\n 'index',\n 'jsx',\n `\nimport React from 'react';\nimport styles from './index.module.scss';\n\nexport default function Footer() {\n return (\n <p className={styles.footer}>\n <span className={styles.logo}>Alibaba Fusion</span>\n <br />\n <span className={styles.copyright}>\u00A9 2019-\u73B0\u5728 Alibaba Fusion & ICE</span>\n </p>\n );\n}\n `,\n );\n\n return [['src', 'layouts', 'BasicLayout', 'components', 'Footer'], file];\n}\n", "import { ResultFile } from '@alilc/lowcode-types';\nimport { createResultFile } from '../../../../../../../../../../../utils/resultHelper';\n\nexport default function getFile(): [string[], ResultFile] {\n const file = createResultFile(\n 'index',\n 'module.scss',\n `\n.footer {\n line-height: 20px;\n text-align: center;\n}\n\n.logo {\n font-weight: bold;\n font-size: 16px;\n}\n\n.copyright {\n font-size: 12px;\n}\n `,\n );\n\n return [['src', 'layouts', 'BasicLayout', 'components', 'Footer'], file];\n}\n", "import { ResultFile } from '@alilc/lowcode-types';\nimport { createResultFile } from '../../../../../../../../../../../utils/resultHelper';\n\nexport default function getFile(): [string[], ResultFile] {\n const file = createResultFile(\n 'index',\n 'jsx',\n `\nimport React from 'react';\nimport { Link } from 'ice';\nimport styles from './index.module.scss';\n\nexport default function Logo({ image, text, url }) {\n return (\n <div className=\"logo\">\n <Link to={url || '/'} className={styles.logo}>\n {image && <img src={image} alt=\"logo\" />}\n <span>{text}</span>\n </Link>\n </div>\n );\n}\n `,\n );\n\n return [['src', 'layouts', 'BasicLayout', 'components', 'Logo'], file];\n}\n", "import { ResultFile } from '@alilc/lowcode-types';\nimport { createResultFile } from '../../../../../../../../../../../utils/resultHelper';\n\nexport default function getFile(): [string[], ResultFile] {\n const file = createResultFile(\n 'index',\n 'module.scss',\n `\n.logo{\n display: flex;\n align-items: center;\n justify-content: center;\n color: $color-text1-1;\n font-weight: bold;\n font-size: 14px;\n line-height: 22px;\n\n &:visited, &:link {\n color: $color-text1-1;\n }\n\n img {\n height: 24px;\n margin-right: 10px;\n }\n}\n `,\n );\n\n return [['src', 'layouts', 'BasicLayout', 'components', 'Logo'], file];\n}\n", "import { ResultFile } from '@alilc/lowcode-types';\nimport { createResultFile } from '../../../../../../../../../../../utils/resultHelper';\n\nexport default function getFile(): [string[], ResultFile] {\n const file = createResultFile(\n 'index',\n 'jsx',\n `\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { Link, withRouter } from 'ice';\nimport { Nav } from '@alifd/next';\nimport { asideMenuConfig } from '../../menuConfig';\n\nconst { SubNav } = Nav;\nconst NavItem = Nav.Item;\n\nfunction getNavMenuItems(menusData) {\n if (!menusData) {\n return [];\n }\n\n return menusData\n .filter(item => item.name && !item.hideInMenu)\n .map((item, index) => getSubMenuOrItem(item, index));\n}\n\nfunction getSubMenuOrItem(item, index) {\n if (item.children && item.children.some(child => child.name)) {\n const childrenItems = getNavMenuItems(item.children);\n\n if (childrenItems && childrenItems.length > 0) {\n const subNav = (\n <SubNav key={index} icon={item.icon} label={item.name}>\n {childrenItems}\n </SubNav>\n );\n return subNav;\n }\n\n return null;\n }\n\n const navItem = (\n <NavItem key={item.path} icon={item.icon}>\n <Link to={item.path}>{item.name}</Link>\n </NavItem>\n );\n return navItem;\n}\n\nconst Navigation = (props, context) => {\n const { location } = props;\n const { pathname } = location;\n const { isCollapse } = context;\n return (\n <Nav\n type=\"primary\"\n selectedKeys={[pathname]}\n defaultSelectedKeys={[pathname]}\n embeddable\n openMode=\"single\"\n iconOnly={isCollapse}\n hasArrow={false}\n mode={isCollapse ? 'popup' : 'inline'}\n >\n {getNavMenuItems(asideMenuConfig)}\n </Nav>\n );\n};\n\nNavigation.contextTypes = {\n isCollapse: PropTypes.bool,\n};\nconst PageNav = withRouter(Navigation);\nexport default PageNav;\n `,\n );\n\n return [['src', 'layouts', 'BasicLayout', 'components', 'PageNav'], file];\n}\n", "import { ResultFile } from '@alilc/lowcode-types';\nimport { createResultFile } from '../../../../../../../../../utils/resultHelper';\n\nexport default function getFile(): [string[], ResultFile] {\n const file = createResultFile(\n 'index',\n 'jsx',\n `\nimport React, { useState } from 'react';\nimport { Shell, ConfigProvider } from '@alifd/next';\nimport PageNav from './components/PageNav';\nimport Logo from './components/Logo';\nimport Footer from './components/Footer';\n\n(function() {\n const throttle = function(type, name, obj = window) {\n let running = false;\n\n const func = () => {\n if (running) {\n return;\n }\n\n running = true;\n requestAnimationFrame(() => {\n obj.dispatchEvent(new CustomEvent(name));\n running = false;\n });\n };\n\n obj.addEventListener(type, func);\n };\n\n throttle('resize', 'optimizedResize');\n})();\n\nexport default function BasicLayout({ children }) {\n const getDevice = width => {\n const isPhone =\n typeof navigator !== 'undefined' && navigator && navigator.userAgent.match(/phone/gi);\n\n if (width < 680 || isPhone) {\n return 'phone';\n }\n if (width < 1280 && width > 680) {\n return 'tablet';\n }\n return 'desktop';\n };\n\n const [device, setDevice] = useState(getDevice(NaN));\n window.addEventListener('optimizedResize', e => {\n setDevice(getDevice(e && e.target && e.target.innerWidth));\n });\n return (\n <ConfigProvider device={device}>\n <Shell\n type=\"dark\"\n style={{\n minHeight: '100vh',\n }}\n >\n <Shell.Branding>\n <Logo\n image=\"https://img.alicdn.com/tfs/TB1.ZBecq67gK0jSZFHXXa9jVXa-904-826.png\"\n text=\"Logo\"\n />\n </Shell.Branding>\n <Shell.Navigation\n direction=\"hoz\"\n style={{\n marginRight: 10,\n }}\n ></Shell.Navigation>\n <Shell.Action></Shell.Action>\n <Shell.Navigation>\n <PageNav />\n </Shell.Navigation>\n\n <Shell.Content>{children}</Shell.Content>\n <Shell.Footer>\n <Footer />\n </Shell.Footer>\n </Shell>\n </ConfigProvider>\n );\n}\n `,\n );\n\n return [['src', 'layouts', 'BasicLayout'], file];\n}\n", "import { ResultFile } from '@alilc/lowcode-types';\nimport { createResultFile } from '../../../../../../../../../utils/resultHelper';\n\nexport default function getFile(): [string[], ResultFile] {\n const file = createResultFile(\n 'menuConfig',\n 'js',\n `\nconst headerMenuConfig = [];\nconst asideMenuConfig = [\n {\n name: 'Dashboard',\n path: '/',\n icon: 'smile',\n },\n];\nexport { headerMenuConfig, asideMenuConfig };\n `,\n );\n\n return [['src', 'layouts', 'BasicLayout'], file];\n}\n", "import { ResultFile } from '@alilc/lowcode-types';\nimport { createResultFile } from '../../../../../../utils/resultHelper';\n\nexport default function getFile(): [string[], ResultFile] {\n const file = createResultFile(\n '.stylelintignore',\n '',\n `\n# \u5FFD\u7565\u76EE\u5F55\nbuild/\ntests/\ndemo/\n\n# node \u8986\u76D6\u7387\u6587\u4EF6\ncoverage/\n `,\n );\n\n return [[], file];\n}\n", "import { ResultFile } from '@alilc/lowcode-types';\nimport { createResultFile } from '../../../../../../utils/resultHelper';\n\nexport default function getFile(): [string[], ResultFile] {\n const file = createResultFile(\n '.stylelintrc',\n 'js',\n `\nconst { stylelint } = require('@ice/spec');\n\nmodule.exports = stylelint;\n `,\n );\n\n return [[], file];\n}\n", "import { ResultFile } from '@alilc/lowcode-types';\nimport { createResultFile } from '../../../../../../utils/resultHelper';\n\nexport default function getFile(): [string[], ResultFile] {\n const file = createResultFile(\n 'tsconfig',\n 'json',\n `\n{\n \"compileOnSave\": false,\n \"buildOnSave\": false,\n \"compilerOptions\": {\n \"baseUrl\": \".\",\n \"outDir\": \"build\",\n \"module\": \"esnext\",\n \"target\": \"es6\",\n \"jsx\": \"react\",\n \"moduleResolution\": \"node\",\n \"allowSyntheticDefaultImports\": true,\n \"lib\": [\"es6\", \"dom\"],\n \"sourceMap\": true,\n \"allowJs\": true,\n \"rootDir\": \"./\",\n \"forceConsistentCasingInFileNames\": true,\n \"noImplicitReturns\": true,\n \"noImplicitThis\": true,\n \"noImplicitAny\": false,\n \"importHelpers\": true,\n \"strictNullChecks\": true,\n \"suppressImplicitAnyIndexErrors\": true,\n \"noUnusedLocals\": true,\n \"skipLibCheck\": true,\n \"paths\": {\n \"@/*\": [\"./src/*\"],\n \"ice\": [\".ice/index.ts\"],\n \"ice/*\": [\".ice/pages/*\"]\n }\n },\n \"include\": [\"src/*\", \".ice\"],\n \"exclude\": [\"node_modules\", \"build\", \"public\"]\n}\n `,\n );\n\n return [[], file];\n}\n", "import { ResultDir } from '@alilc/lowcode-types';\n\nimport { createResultDir } from '../../../../../utils/resultHelper';\nimport { runFileGenerator } from '../../../../../utils/templateHelper';\n\nimport file12 from './files/abc.json';\nimport file11 from './files/build.json';\nimport file10 from './files/editorconfig';\nimport file9 from './files/eslintignore';\nimport file8 from './files/eslintrc.js';\nimport file7 from './files/gitignore';\nimport file6 from './files/jsconfig.json';\nimport file5 from './files/prettierignore';\nimport file4 from './files/prettierrc.js';\nimport file13 from './files/README.md';\nimport file16 from './files/src/layouts/BasicLayout/components/Footer/index.jsx';\nimport file17 from './files/src/layouts/BasicLayout/components/Footer/index.style';\nimport file18 from './files/src/layouts/BasicLayout/components/Logo/index.jsx';\nimport file19 from './files/src/layouts/BasicLayout/components/Logo/index.style';\nimport file20 from './files/src/layouts/BasicLayout/components/PageNav/index.jsx';\nimport file14 from './files/src/layouts/BasicLayout/index.jsx';\nimport file15 from './files/src/layouts/BasicLayout/menuConfig.js';\nimport file3 from './files/stylelintignore';\nimport file2 from './files/stylelintrc.js';\nimport file1 from './files/tsconfig.json';\n\nexport function generateStaticFiles(root = createResultDir('.')): ResultDir {\n runFileGenerator(root, file1);\n runFileGenerator(root, file2);\n runFileGenerator(root, file3);\n runFileGenerator(root, file4);\n runFileGenerator(root, file5);\n runFileGenerator(root, file6);\n runFileGenerator(root, file7);\n runFileGenerator(root, file8);\n runFileGenerator(root, file9);\n runFileGenerator(root, file10);\n runFileGenerator(root, file11);\n runFileGenerator(root, file12);\n runFileGenerator(root, file13);\n runFileGenerator(root, file14);\n runFileGenerator(root, file15);\n runFileGenerator(root, file16);\n runFileGenerator(root, file17);\n runFileGenerator(root, file18);\n runFileGenerator(root, file19);\n runFileGenerator(root, file20);\n\n return root;\n}\n", "import { ResultDir } from '@alilc/lowcode-types';\nimport { IProjectTemplate } from '../../../../../types';\nimport { generateStaticFiles } from './static-files';\n\nconst icejsTemplate: IProjectTemplate = {\n slots: {\n components: {\n path: ['src', 'components'],\n },\n pages: {\n path: ['src', 'pages'],\n },\n router: {\n path: ['src'],\n fileName: 'routes',\n },\n entry: {\n path: ['src'],\n fileName: 'app',\n },\n constants: {\n path: ['src'],\n fileName: 'constants',\n },\n utils: {\n path: ['src'],\n fileName: 'utils',\n },\n i18n: {\n path: ['src'],\n fileName: 'i18n',\n },\n globalStyle: {\n path: ['src'],\n fileName: 'global',\n },\n htmlEntry: {\n path: ['public'],\n fileName: 'index',\n },\n packageJSON: {\n path: [],\n fileName: 'package',\n },\n },\n\n generateTemplate(): ResultDir {\n return generateStaticFiles();\n },\n};\n\nexport default icejsTemplate;\n", "import { COMMON_CHUNK_NAME } from '../../../../../const/generator';\n\nimport {\n BuilderComponentPlugin,\n BuilderComponentPluginFactory,\n ChunkType,\n FileType,\n ICodeStruct,\n} from '../../../../../types';\n\nconst pluginFactory: BuilderComponentPluginFactory<unknown> = () => {\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.JS,\n name: COMMON_CHUNK_NAME.ExternalDepsImport,\n content: `\n import { createApp } from 'ice';\n `,\n linkAfter: [],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.JS,\n name: COMMON_CHUNK_NAME.FileMainContent,\n content: `\n const appConfig = {\n app: {\n rootId: 'app',\n },\n router: {\n type: 'hash',\n },\n };\n createApp(appConfig);\n `,\n linkAfter: [\n COMMON_CHUNK_NAME.ExternalDepsImport,\n COMMON_CHUNK_NAME.InternalDepsImport,\n COMMON_CHUNK_NAME.ImportAliasDefine,\n COMMON_CHUNK_NAME.FileVarDefine,\n COMMON_CHUNK_NAME.FileUtilDefine,\n ],\n });\n\n return next;\n };\n return plugin;\n};\n\nexport default pluginFactory;\n", "import { COMMON_CHUNK_NAME } from '../../../../../const/generator';\n\nimport {\n BuilderComponentPlugin,\n BuilderComponentPluginFactory,\n ChunkType,\n FileType,\n ICodeStruct,\n IProjectInfo,\n} from '../../../../../types';\n\nconst pluginFactory: BuilderComponentPluginFactory<unknown> = () => {\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n const ir = next.ir as IProjectInfo;\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.HTML,\n name: COMMON_CHUNK_NAME.HtmlContent,\n content: `\n <!DOCTYPE html>\n <html>\n <head>\n <meta charset=\"utf-8\" />\n <meta http-equiv=\"x-ua-compatible\" content=\"ie=edge,chrome=1\" />\n <meta name=\"viewport\" content=\"width=device-width\" />\n <title>${ir?.meta?.name || 'Ice App'}</title>\n </head>\n <body>\n <div id=\"app\"></div>\n </body>\n </html>\n `,\n linkAfter: [],\n });\n\n return next;\n };\n return plugin;\n};\n\nexport default pluginFactory;\n", "import { COMMON_CHUNK_NAME } from '../../../../../const/generator';\n\nimport {\n BuilderComponentPlugin,\n BuilderComponentPluginFactory,\n ChunkType,\n FileType,\n ICodeStruct,\n IProjectInfo,\n} from '../../../../../types';\n\nconst pluginFactory: BuilderComponentPluginFactory<unknown> = () => {\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n const ir = next.ir as IProjectInfo;\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.SCSS,\n name: COMMON_CHUNK_NAME.StyleDepsImport,\n content: `\n // \u5F15\u5165\u9ED8\u8BA4\u5168\u5C40\u6837\u5F0F\n @import '@alifd/next/reset.scss';\n `,\n linkAfter: [],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.SCSS,\n name: COMMON_CHUNK_NAME.StyleCssContent,\n content: `\n body {\n -webkit-font-smoothing: antialiased;\n }\n `,\n linkAfter: [COMMON_CHUNK_NAME.StyleDepsImport],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.SCSS,\n name: COMMON_CHUNK_NAME.StyleCssContent,\n content: ir.css || '',\n linkAfter: [COMMON_CHUNK_NAME.StyleDepsImport],\n });\n\n return next;\n };\n return plugin;\n};\n\nexport default pluginFactory;\n", "import changeCase from 'change-case';\nimport type { IProjectInfo } from '../types/intermediate';\n\nexport interface DataSourceDependenciesConfig {\n\n /** \u6570\u636E\u6E90\u5F15\u64CE\u7684\u7248\u672C */\n engineVersion?: string;\n\n /** \u6570\u636E\u6E90\u5F15\u64CE\u7684\u5305\u540D */\n enginePackage?: string;\n\n /** \u6570\u636E\u6E90 handlers \u7684\u7248\u672C */\n handlersVersion?: {\n [key: string]: string;\n };\n\n /** \u6570\u636E\u6E90 handlers \u7684\u5305\u540D */\n handlersPackages?: {\n [key: string]: string;\n };\n}\n\nexport function buildDataSourceDependencies(\n ir: IProjectInfo,\n cfg: DataSourceDependenciesConfig = {},\n): Record<string, string> {\n return {\n // \u6570\u636E\u6E90\u5F15\u64CE\u7684\u4F9D\u8D56\u5305\n [cfg.enginePackage || '@alilc/lowcode-datasource-engine']: cfg.engineVersion || '^1.0.0',\n\n // \u5404\u79CD\u6570\u636E\u6E90\u7684 handlers \u7684\u4F9D\u8D56\u5305\n ...(ir.dataSourcesTypes || []).reduce(\n (acc, dsType) => ({\n ...acc,\n [getDataSourceHandlerPackageName(dsType)]: cfg.handlersVersion?.[dsType] || '^1.0.0',\n }),\n {},\n ),\n };\n\n function getDataSourceHandlerPackageName(dsType: string) {\n return (\n cfg.handlersPackages?.[dsType] ||\n `@alilc/lowcode-datasource-${changeCase.kebab(dsType)}-handler`\n );\n }\n}\n", "import { PackageJSON } from '@alilc/lowcode-types';\n\nimport { COMMON_CHUNK_NAME } from '../../../../../const/generator';\n\nimport {\n BuilderComponentPlugin,\n BuilderComponentPluginFactory,\n ChunkType,\n FileType,\n ICodeStruct,\n IProjectInfo,\n} from '../../../../../types';\nimport { buildDataSourceDependencies } from '../../../../../utils/dataSource';\n\ninterface IIceJsPackageJSON extends PackageJSON {\n ideMode: {\n name: string;\n };\n iceworks: {\n type: string;\n adapter: string;\n };\n originTemplate: string;\n}\n\nexport type IceJsPackageJsonPluginConfig = {\n /**\n * \u6570\u636E\u6E90\u914D\u7F6E\n */\n datasourceConfig?: {\n /** \u6570\u636E\u6E90\u5F15\u64CE\u7684\u7248\u672C */\n engineVersion?: string;\n /** \u6570\u636E\u6E90\u5F15\u64CE\u7684\u5305\u540D */\n enginePackage?: string;\n /** \u6570\u636E\u6E90 handlers \u7684\u7248\u672C */\n handlersVersion?: {\n [key: string]: string;\n };\n /** \u6570\u636E\u6E90 handlers \u7684\u5305\u540D */\n handlersPackages?: {\n [key: string]: string;\n };\n };\n /** \u5305\u540D */\n packageName?: string;\n /** \u7248\u672C */\n packageVersion?: string;\n};\n\nconst pluginFactory: BuilderComponentPluginFactory<IceJsPackageJsonPluginConfig> = (cfg) => {\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n const ir = next.ir as IProjectInfo;\n\n const packageJson: IIceJsPackageJSON = {\n name: cfg?.packageName || 'icejs-demo-app',\n version: cfg?.packageVersion || '0.1.5',\n description: '\u8F7B\u91CF\u7EA7\u6A21\u677F\uFF0C\u4F7F\u7528 JavaScript\uFF0C\u4EC5\u5305\u542B\u57FA\u7840\u7684 Layout\u3002',\n dependencies: {\n moment: '^2.24.0',\n react: '^16.4.1',\n 'react-dom': '^16.4.1',\n 'react-router': '^5.2.1',\n '@alifd/theme-design-pro': '^0.x',\n 'intl-messageformat': '^9.3.6',\n '@ice/store': '^1.4.3',\n '@loadable/component': '^5.15.2',\n\n // \u6570\u636E\u6E90\u76F8\u5173\u7684\u4F9D\u8D56:\n ...buildDataSourceDependencies(ir, cfg?.datasourceConfig),\n },\n devDependencies: {\n '@ice/spec': '^1.0.0',\n 'build-plugin-fusion': '^0.1.0',\n 'build-plugin-moment-locales': '^0.1.0',\n eslint: '^6.0.1',\n 'ice.js': '^1.0.0',\n stylelint: '^13.2.0',\n },\n scripts: {\n start: 'icejs start',\n build: 'icejs build',\n lint: 'npm run eslint && npm run stylelint',\n eslint: 'eslint --cache --ext .js,.jsx ./',\n stylelint: 'stylelint ./**/*.scss',\n },\n ideMode: {\n name: 'ice-react',\n },\n iceworks: {\n type: 'react',\n adapter: 'adapter-react-v3',\n },\n engines: {\n node: '>=8.0.0',\n },\n repository: {\n type: 'git',\n url: 'http://gitlab.xxx.com/msd/leak-scan/tree/master',\n },\n private: true,\n originTemplate: '@alifd/scaffold-lite-js',\n };\n\n ir.packages.forEach((packageInfo) => {\n packageJson.dependencies[packageInfo.package] = packageInfo.version;\n });\n\n next.chunks.push({\n type: ChunkType.JSON,\n fileType: FileType.JSON,\n name: COMMON_CHUNK_NAME.FileMainContent,\n content: packageJson,\n linkAfter: [],\n });\n\n return next;\n };\n return plugin;\n};\n\nexport default pluginFactory;\n", "import { COMMON_CHUNK_NAME } from '../../../../../const/generator';\n\nimport {\n BuilderComponentPlugin,\n BuilderComponentPluginFactory,\n ChunkType,\n FileType,\n ICodeStruct,\n IRouterInfo,\n} from '../../../../../types';\n\nconst pluginFactory: BuilderComponentPluginFactory<unknown> = () => {\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n const ir = next.ir as IRouterInfo;\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.JS,\n name: COMMON_CHUNK_NAME.InternalDepsImport,\n content: `\n import BasicLayout from '@/layouts/BasicLayout';\n `,\n linkAfter: [COMMON_CHUNK_NAME.ExternalDepsImport],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.JS,\n name: COMMON_CHUNK_NAME.FileVarDefine,\n content: `\n const routerConfig = [\n {\n path: '/',\n component: BasicLayout,\n children: [\n ${ir.routes\n .map(\n (route) => `\n {\n path: '${route.path}',\n component: ${route.componentName},\n }\n `,\n )\n .join(',')}\n ],\n },\n ];\n `,\n linkAfter: [\n COMMON_CHUNK_NAME.ExternalDepsImport,\n COMMON_CHUNK_NAME.InternalDepsImport,\n COMMON_CHUNK_NAME.ImportAliasDefine,\n COMMON_CHUNK_NAME.FileUtilDefine,\n ],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.JS,\n name: COMMON_CHUNK_NAME.FileExport,\n content: `\n export default routerConfig;\n `,\n linkAfter: [\n COMMON_CHUNK_NAME.ExternalDepsImport,\n COMMON_CHUNK_NAME.InternalDepsImport,\n COMMON_CHUNK_NAME.FileUtilDefine,\n COMMON_CHUNK_NAME.ImportAliasDefine,\n COMMON_CHUNK_NAME.FileVarDefine,\n COMMON_CHUNK_NAME.FileMainContent,\n ],\n });\n\n return next;\n };\n return plugin;\n};\n\nexport default pluginFactory;\n", "import template from './template';\nimport entry from './plugins/entry';\nimport entryHtml from './plugins/entryHtml';\nimport globalStyle from './plugins/globalStyle';\nimport packageJSON from './plugins/packageJSON';\nimport router from './plugins/router';\n\nexport default {\n template,\n plugins: {\n entry,\n entryHtml,\n globalStyle,\n packageJSON,\n router,\n },\n};\n", "import prettier from 'prettier';\nimport parserBabel from 'prettier/parser-babel';\nimport parserPostCss from 'prettier/parser-postcss';\nimport parserHtml from 'prettier/parser-html';\n\nimport { PostProcessor, PostProcessorFactory } from '../../types';\n\nconst PARSERS = ['css', 'scss', 'less', 'json', 'html', 'vue'];\n\nexport interface ProcessorConfig {\n customFileTypeParser: Record<string, string>;\n plugins?: prettier.Plugin[];\n}\n\nconst factory: PostProcessorFactory<ProcessorConfig> = (config?: ProcessorConfig) => {\n const cfg: ProcessorConfig = {\n customFileTypeParser: {},\n ...config,\n };\n\n const codePrettier: PostProcessor = (content: string, fileType: string) => {\n let parser: prettier.BuiltInParserName | any;\n if (fileType === 'js' || fileType === 'jsx' || fileType === 'ts' || fileType === 'tsx') {\n parser = 'babel-ts';\n } else if (fileType === 'json') {\n parser = 'json-stringify';\n } else if (PARSERS.indexOf(fileType) >= 0) {\n parser = fileType;\n } else if (cfg.customFileTypeParser[fileType]) {\n parser = cfg.customFileTypeParser[fileType];\n } else {\n return content;\n }\n\n return prettier.format(content, {\n parser,\n plugins: [parserBabel, parserPostCss, parserHtml, ...(cfg.plugins || [])],\n singleQuote: true,\n jsxSingleQuote: false,\n });\n };\n\n return codePrettier;\n};\n\nexport default factory;\n", "import { IProjectBuilder, IProjectBuilderOptions } from '../types';\n\nimport { createProjectBuilder } from '../generator/ProjectBuilder';\n\nimport esmodule from '../plugins/common/esmodule';\nimport styleImport from '../plugins/common/styleImport';\nimport containerClass from '../plugins/component/react/containerClass';\nimport containerInitState from '../plugins/component/react/containerInitState';\nimport containerInjectContext from '../plugins/component/react/containerInjectContext';\nimport containerInjectUtils from '../plugins/component/react/containerInjectUtils';\nimport containerInjectDataSourceEngine from '../plugins/component/react/containerInjectDataSourceEngine';\nimport containerInjectConstants from '../plugins/component/react/containerInjectConstants';\nimport containerInjectI18n from '../plugins/component/react/containerInjectI18n';\nimport containerLifeCycle from '../plugins/component/react/containerLifeCycle';\nimport containerMethod from '../plugins/component/react/containerMethod';\nimport jsx from '../plugins/component/react/jsx';\nimport reactCommonDeps from '../plugins/component/react/reactCommonDeps';\nimport css from '../plugins/component/style/css';\nimport constants from '../plugins/project/constants';\nimport i18n from '../plugins/project/i18n';\nimport utils from '../plugins/project/utils';\n\nimport icejs from '../plugins/project/framework/icejs';\n\nimport { prettier } from '../postprocessor';\n\nexport type IceJsProjectBuilderOptions = IProjectBuilderOptions;\n\nexport default function createIceJsProjectBuilder(\n options?: IceJsProjectBuilderOptions,\n): IProjectBuilder {\n return createProjectBuilder({\n inStrictMode: options?.inStrictMode,\n extraContextData: { ...options },\n template: icejs.template,\n plugins: {\n components: [\n reactCommonDeps(),\n esmodule({\n fileType: 'jsx',\n }),\n styleImport(),\n containerClass(),\n containerInjectContext(),\n containerInjectUtils(),\n containerInjectDataSourceEngine(),\n containerInjectI18n(),\n containerInjectConstants(),\n containerInitState(),\n containerLifeCycle(),\n containerMethod(),\n jsx({\n nodeTypeMapping: {\n Div: 'div',\n Component: 'div',\n Page: 'div',\n Block: 'div',\n },\n }),\n css(),\n ],\n pages: [\n reactCommonDeps(),\n esmodule({\n fileType: 'jsx',\n }),\n styleImport(),\n containerClass(),\n containerInjectContext(),\n containerInjectUtils(),\n containerInjectDataSourceEngine(),\n containerInjectI18n(),\n containerInjectConstants(),\n containerInitState(),\n containerLifeCycle(),\n containerMethod(),\n jsx({\n nodeTypeMapping: {\n Div: 'div',\n Component: 'div',\n Page: 'div',\n Block: 'div',\n // Box: 'div',\n },\n }),\n css(),\n ],\n router: [esmodule(), icejs.plugins.router()],\n entry: [icejs.plugins.entry()],\n constants: [constants()],\n utils: [esmodule(), utils('react')],\n i18n: [i18n()],\n globalStyle: [icejs.plugins.globalStyle()],\n htmlEntry: [icejs.plugins.entryHtml()],\n packageJSON: [icejs.plugins.packageJSON()],\n },\n postProcessors: [prettier()],\n customizeBuilderOptions: options?.customizeBuilderOptions,\n });\n}\n\nexport const plugins = {\n containerClass,\n containerInjectContext,\n containerInjectUtils,\n containerInjectDataSourceEngine,\n containerInjectI18n,\n containerInjectConstants,\n containerInitState,\n containerLifeCycle,\n containerMethod,\n jsx,\n commonDeps: reactCommonDeps,\n\n /** @deprecated Please use commonDeps */\n reactCommonDeps,\n};\n", "import { ResultFile } from '@alilc/lowcode-types';\nimport { createResultFile } from '../../../../../../utils/resultHelper';\n\nexport default function getFile(): [string[], ResultFile] {\n const file = createResultFile(\n '.gitignore',\n '',\n `\n# See https://help.github.com/ignore-files/ for more about ignoring files.\n\n# dependencies\nnode_modules/\n\n# production\nbuild/\ndist/\ntmp/\nlib/\n\n# misc\n.idea/\n.happypack\n.DS_Store\n*.swp\n*.dia~\n.ice\n\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\nindex.module.scss.d.ts\n `,\n );\n\n return [[], file];\n}\n", "import { ResultFile } from '@alilc/lowcode-types';\nimport { createResultFile } from '../../../../../../utils/resultHelper';\n\nexport default function getFile(): [string[], ResultFile] {\n const file = createResultFile(\n 'README',\n 'md',\n 'This project is generated by lowcode-code-generator & lowcode-solution-icejs3.',\n );\n\n return [[], file];\n}\n", "import { ResultFile } from '@alilc/lowcode-types';\nimport { createResultFile } from '../../../../../../utils/resultHelper';\n\nexport default function getFile(): [string[], ResultFile] {\n const file = createResultFile(\n '.browserslistrc',\n '',\n `defaults\nios_saf 9\n `,\n );\n\n return [[], file];\n}\n", "import { ResultFile } from '@alilc/lowcode-types';\nimport { createResultFile } from '../../../../../../utils/resultHelper';\n\nexport default function getFile(): [string[], ResultFile] {\n const file = createResultFile(\n 'typings.d',\n 'ts',\n `/// <reference types=\"@ice/app/types\" />\n\nexport {};\ndeclare global {\n interface Window {\n g_config: Record<string, any>;\n }\n}\n `,\n );\n\n return [['src'], file];\n}\n", "import { ResultFile } from '@alilc/lowcode-types';\nimport { createResultFile } from '../../../../../../utils/resultHelper';\n\n/* eslint-disable max-len */\nexport default function getFile(): [string[], ResultFile] {\n const file = createResultFile(\n 'document',\n 'tsx',\n `import React from 'react';\nimport { Meta, Title, Links, Main, Scripts } from 'ice';\n\nexport default function Document() {\n return (\n <html>\n <head>\n <meta charSet=\"utf-8\" />\n <meta name=\"description\" content=\"ice.js 3 lite scaffold\" />\n <link rel=\"icon\" href=\"/favicon.ico\" />\n <link rel=\"stylesheet\" href=\"//alifd.alicdn.com/npm/@alifd/next/1.21.16/next.min.css\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no\" />\n <Meta />\n <Title />\n <Links />\n </head>\n <body>\n <Main />\n <script crossOrigin=\"anonymous\" src=\"//g.alicdn.com/code/lib/react/18.2.0/umd/react.development.js\" />\n <script crossOrigin=\"anonymous\" src=\"//g.alicdn.com/code/lib/react-dom/18.2.0/umd/react-dom.development.js\" />\n <script crossOrigin=\"anonymous\" src=\"//g.alicdn.com/code/lib/??react-router/6.9.0/react-router.production.min.js,react-router-dom/6.9.0/react-router-dom.production.min.js\" />\n <script crossOrigin=\"anonymous\" src=\"//g.alicdn.com/code/lib/alifd__next/1.26.22/next.min.js\" />\n <script crossOrigin=\"anonymous\" src=\"//g.alicdn.com/code/lib/prop-types/15.7.2/prop-types.js\" />\n <script crossOrigin=\"anonymous\" src=\"//g.alicdn.com/platform/c/??lodash/4.6.1/lodash.min.js,immutable/3.7.6/dist/immutable.min.js\" />\n <Scripts />\n </body>\n </html>\n );\n}`,\n );\n\n return [['src'], file];\n}\n", "import { ResultFile } from '@alilc/lowcode-types';\nimport { createResultFile } from '../../../../../../../../../../../utils/resultHelper';\n\nexport default function getFile(): [string[], ResultFile] {\n const file = createResultFile(\n 'index',\n 'jsx',\n `\nimport React from 'react';\nimport styles from './index.module.scss';\n\nexport default function Footer() {\n return (\n <p className={styles.footer}>\n <span className={styles.logo}>Alibaba Fusion</span>\n <br />\n <span className={styles.copyright}>\u00A9 2019-\u73B0\u5728 Alibaba Fusion & ICE</span>\n </p>\n );\n}\n `,\n );\n\n return [['src', 'layouts', 'BasicLayout', 'components', 'Footer'], file];\n}\n", "import { ResultFile } from '@alilc/lowcode-types';\nimport { createResultFile } from '../../../../../../../../../../../utils/resultHelper';\n\nexport default function getFile(): [string[], ResultFile] {\n const file = createResultFile(\n 'index',\n 'module.scss',\n `\n.footer {\n line-height: 20px;\n text-align: center;\n}\n\n.logo {\n font-weight: bold;\n font-size: 16px;\n}\n\n.copyright {\n font-size: 12px;\n}\n `,\n );\n\n return [['src', 'layouts', 'BasicLayout', 'components', 'Footer'], file];\n}\n", "import { ResultFile } from '@alilc/lowcode-types';\nimport { createResultFile } from '../../../../../../../../../../../utils/resultHelper';\n\nexport default function getFile(): [string[], ResultFile] {\n const file = createResultFile(\n 'index',\n 'jsx',\n `\nimport React from 'react';\nimport { Link } from 'ice';\nimport styles from './index.module.scss';\n\nexport default function Logo({ image, text, url }) {\n return (\n <div className=\"logo\">\n <Link to={url || '/'} className={styles.logo}>\n {image && <img src={image} alt=\"logo\" />}\n <span>{text}</span>\n </Link>\n </div>\n );\n}\n `,\n );\n\n return [['src', 'layouts', 'BasicLayout', 'components', 'Logo'], file];\n}\n", "import { ResultFile } from '@alilc/lowcode-types';\nimport { createResultFile } from '../../../../../../../../../../../utils/resultHelper';\n\nexport default function getFile(): [string[], ResultFile] {\n const file = createResultFile(\n 'index',\n 'module.scss',\n `\n.logo{\n display: flex;\n align-items: center;\n justify-content: center;\n color: #FF7300;\n font-weight: bold;\n font-size: 14px;\n line-height: 22px;\n\n &:visited, &:link {\n color: #FF7300;\n }\n\n img {\n height: 24px;\n margin-right: 10px;\n }\n}\n `,\n );\n\n return [['src', 'layouts', 'BasicLayout', 'components', 'Logo'], file];\n}\n", "import { ResultFile } from '@alilc/lowcode-types';\nimport { createResultFile } from '../../../../../../../../../../../utils/resultHelper';\n\nexport default function getFile(): [string[], ResultFile] {\n const file = createResultFile(\n 'index',\n 'jsx',\n `import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Link, useLocation } from 'ice';\nimport { Nav } from '@alifd/next';\nimport { asideMenuConfig } from '../../menuConfig';\n\nconst { SubNav } = Nav;\nconst NavItem = Nav.Item;\n\nfunction getNavMenuItems(menusData) {\n if (!menusData) {\n return [];\n }\n\n return menusData\n .filter(item => item.name && !item.hideInMenu)\n .map((item, index) => getSubMenuOrItem(item, index));\n}\n\nfunction getSubMenuOrItem(item, index) {\n if (item.children && item.children.some(child => child.name)) {\n const childrenItems = getNavMenuItems(item.children);\n\n if (childrenItems && childrenItems.length > 0) {\n const subNav = (\n <SubNav key={index} icon={item.icon} label={item.name}>\n {childrenItems}\n </SubNav>\n );\n return subNav;\n }\n\n return null;\n }\n\n const navItem = (\n <NavItem key={item.path} icon={item.icon}>\n <Link to={item.path}>{item.name}</Link>\n </NavItem>\n );\n return navItem;\n}\n\nconst Navigation = (props, context) => {\n const location = useLocation();\n const { pathname } = location;\n const { isCollapse } = context;\n return (\n <Nav\n type=\"primary\"\n selectedKeys={[pathname]}\n defaultSelectedKeys={[pathname]}\n embeddable\n openMode=\"single\"\n iconOnly={isCollapse}\n hasArrow={false}\n mode={isCollapse ? 'popup' : 'inline'}\n >\n {getNavMenuItems(asideMenuConfig)}\n </Nav>\n );\n};\n\nNavigation.contextTypes = {\n isCollapse: PropTypes.bool,\n};\nexport default Navigation;\n `,\n );\n\n return [['src', 'layouts', 'BasicLayout', 'components', 'PageNav'], file];\n}\n", "import { ResultFile } from '@alilc/lowcode-types';\nimport { createResultFile } from '../../../../../../../../../utils/resultHelper';\n\nexport default function getFile(): [string[], ResultFile] {\n const file = createResultFile(\n 'index',\n 'jsx',\n `\nimport React, { useState } from 'react';\nimport { Shell, ConfigProvider } from '@alifd/next';\nimport PageNav from './components/PageNav';\nimport Logo from './components/Logo';\nimport Footer from './components/Footer';\n\n(function() {\n const throttle = function(type, name, obj = window) {\n let running = false;\n\n const func = () => {\n if (running) {\n return;\n }\n\n running = true;\n requestAnimationFrame(() => {\n obj.dispatchEvent(new CustomEvent(name));\n running = false;\n });\n };\n\n obj.addEventListener(type, func);\n };\n\n throttle('resize', 'optimizedResize');\n})();\n\nexport default function BasicLayout({ children }) {\n const getDevice = width => {\n const isPhone =\n typeof navigator !== 'undefined' && navigator && navigator.userAgent.match(/phone/gi);\n\n if (width < 680 || isPhone) {\n return 'phone';\n }\n if (width < 1280 && width > 680) {\n return 'tablet';\n }\n return 'desktop';\n };\n\n const [device, setDevice] = useState(getDevice(NaN));\n window.addEventListener('optimizedResize', e => {\n setDevice(getDevice(e && e.target && e.target.innerWidth));\n });\n return (\n <ConfigProvider device={device}>\n <Shell\n type=\"dark\"\n style={{\n minHeight: '100vh',\n }}\n >\n <Shell.Branding>\n <Logo\n image=\"https://img.alicdn.com/tfs/TB1.ZBecq67gK0jSZFHXXa9jVXa-904-826.png\"\n text=\"Logo\"\n />\n </Shell.Branding>\n <Shell.Navigation\n direction=\"hoz\"\n style={{\n marginRight: 10,\n }}\n ></Shell.Navigation>\n <Shell.Action></Shell.Action>\n <Shell.Navigation>\n <PageNav />\n </Shell.Navigation>\n\n <Shell.Content>{children}</Shell.Content>\n <Shell.Footer>\n <Footer />\n </Shell.Footer>\n </Shell>\n </ConfigProvider>\n );\n}\n `,\n );\n\n return [['src', 'layouts', 'BasicLayout'], file];\n}\n", "import { ResultFile } from '@alilc/lowcode-types';\nimport { createResultFile } from '../../../../../../../../../utils/resultHelper';\n\nexport default function getFile(): [string[], ResultFile] {\n const file = createResultFile(\n 'menuConfig',\n 'js',\n `\nconst headerMenuConfig = [];\nconst asideMenuConfig = [\n {\n name: 'Dashboard',\n path: '/',\n icon: 'smile',\n },\n];\nexport { headerMenuConfig, asideMenuConfig };\n `,\n );\n\n return [['src', 'layouts', 'BasicLayout'], file];\n}\n", "import { ResultDir } from '@alilc/lowcode-types';\nimport { createResultDir } from '../../../../../utils/resultHelper';\nimport { runFileGenerator } from '../../../../../utils/templateHelper';\n\nimport file1 from './files/gitignore';\nimport file2 from './files/README.md';\nimport file3 from './files/browserslistrc';\nimport file4 from './files/typings';\nimport file5 from './files/document';\nimport file6 from './files/src/layouts/BasicLayout/components/Footer/index.jsx';\nimport file7 from './files/src/layouts/BasicLayout/components/Footer/index.style';\nimport file8 from './files/src/layouts/BasicLayout/components/Logo/index.jsx';\nimport file9 from './files/src/layouts/BasicLayout/components/Logo/index.style';\nimport file10 from './files/src/layouts/BasicLayout/components/PageNav/index.jsx';\nimport file11 from './files/src/layouts/BasicLayout/index.jsx';\nimport file12 from './files/src/layouts/BasicLayout/menuConfig.js';\n\nexport function generateStaticFiles(root = createResultDir('.')): ResultDir {\n runFileGenerator(root, file1);\n runFileGenerator(root, file2);\n runFileGenerator(root, file3);\n runFileGenerator(root, file4);\n runFileGenerator(root, file5);\n runFileGenerator(root, file6);\n runFileGenerator(root, file7);\n runFileGenerator(root, file8);\n runFileGenerator(root, file9);\n runFileGenerator(root, file10);\n runFileGenerator(root, file11);\n runFileGenerator(root, file12);\n\n return root;\n}\n", "import { IProjectTemplate } from '../../../../../types';\nimport { generateStaticFiles } from './static-files';\n\nconst icejs3Template: IProjectTemplate = {\n slots: {\n components: {\n path: ['src', 'components'],\n fileName: 'index',\n },\n pages: {\n path: ['src', 'pages'],\n fileName: 'index',\n },\n entry: {\n path: ['src'],\n fileName: 'app',\n },\n constants: {\n path: ['src'],\n fileName: 'constants',\n },\n utils: {\n path: ['src'],\n fileName: 'utils',\n },\n i18n: {\n path: ['src'],\n fileName: 'i18n',\n },\n globalStyle: {\n path: ['src'],\n fileName: 'global',\n },\n packageJSON: {\n path: [],\n fileName: 'package',\n },\n appConfig: {\n path: ['src'],\n fileName: 'app',\n },\n buildConfig: {\n path: [],\n fileName: 'ice.config',\n },\n layout: {\n path: ['src', 'pages'],\n fileName: 'layout',\n },\n },\n\n generateTemplate() {\n return generateStaticFiles();\n },\n};\n\nexport default icejs3Template;\n", "import { COMMON_CHUNK_NAME } from '../../../../../const/generator';\n\nimport {\n BuilderComponentPlugin,\n BuilderComponentPluginFactory,\n ChunkType,\n FileType,\n ICodeStruct,\n IProjectInfo,\n} from '../../../../../types';\n\nconst pluginFactory: BuilderComponentPluginFactory<unknown> = () => {\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n const ir = next.ir as IProjectInfo;\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.SCSS,\n name: COMMON_CHUNK_NAME.StyleDepsImport,\n content: `\n // \u5F15\u5165\u9ED8\u8BA4\u5168\u5C40\u6837\u5F0F\n @import '@alifd/next/reset.scss';\n `,\n linkAfter: [],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.SCSS,\n name: COMMON_CHUNK_NAME.StyleCssContent,\n content: `\n body {\n -webkit-font-smoothing: antialiased;\n }\n `,\n linkAfter: [COMMON_CHUNK_NAME.StyleDepsImport],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.SCSS,\n name: COMMON_CHUNK_NAME.StyleCssContent,\n content: ir.css || '',\n linkAfter: [COMMON_CHUNK_NAME.StyleDepsImport],\n });\n\n return next;\n };\n return plugin;\n};\n\nexport default pluginFactory;\n", "import { PackageJSON } from '@alilc/lowcode-types';\n\nimport { COMMON_CHUNK_NAME } from '../../../../../const/generator';\n\nimport {\n BuilderComponentPlugin,\n BuilderComponentPluginFactory,\n ChunkType,\n FileType,\n ICodeStruct,\n IProjectInfo,\n} from '../../../../../types';\nimport { buildDataSourceDependencies } from '../../../../../utils/dataSource';\n\ninterface IIceJs3PackageJSON extends PackageJSON {\n originTemplate: string;\n}\n\nexport type IceJs3PackageJsonPluginConfig = {\n\n /**\n * \u6570\u636E\u6E90\u914D\u7F6E\n */\n datasourceConfig?: {\n\n /** \u6570\u636E\u6E90\u5F15\u64CE\u7684\u7248\u672C */\n engineVersion?: string;\n\n /** \u6570\u636E\u6E90\u5F15\u64CE\u7684\u5305\u540D */\n enginePackage?: string;\n\n /** \u6570\u636E\u6E90 handlers \u7684\u7248\u672C */\n handlersVersion?: {\n [key: string]: string;\n };\n\n /** \u6570\u636E\u6E90 handlers \u7684\u5305\u540D */\n handlersPackages?: {\n [key: string]: string;\n };\n };\n\n /** \u5305\u540D */\n packageName?: string;\n\n /** \u7248\u672C */\n packageVersion?: string;\n};\n\nconst pluginFactory: BuilderComponentPluginFactory<IceJs3PackageJsonPluginConfig> = (cfg) => {\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n const ir = next.ir as IProjectInfo;\n\n const packageJson: IIceJs3PackageJSON = {\n name: cfg?.packageName || 'icejs3-demo-app',\n version: cfg?.packageVersion || '0.1.5',\n description: 'icejs 3 \u8F7B\u91CF\u7EA7\u6A21\u677F\uFF0C\u4F7F\u7528 JavaScript\uFF0C\u4EC5\u5305\u542B\u57FA\u7840\u7684 Layout\u3002',\n dependencies: {\n moment: '^2.24.0',\n react: '^18.2.0',\n 'react-dom': '^18.2.0',\n 'react-router': '^6.9.0',\n 'react-router-dom': '^6.9.0',\n 'intl-messageformat': '^9.3.6',\n '@alifd/next': '1.26.15',\n '@ice/runtime': '~1.1.0',\n // \u6570\u636E\u6E90\u76F8\u5173\u7684\u4F9D\u8D56:\n ...buildDataSourceDependencies(ir, cfg?.datasourceConfig),\n },\n devDependencies: {\n '@ice/app': '~3.1.0',\n '@types/react': '^18.0.0',\n '@types/react-dom': '^18.0.0',\n '@types/node': '^18.11.17',\n '@ice/plugin-fusion': '^1.0.1',\n '@ice/plugin-moment-locales': '^1.0.0',\n eslint: '^6.0.1',\n stylelint: '^13.2.0',\n },\n scripts: {\n start: 'ice start',\n build: 'ice build',\n lint: 'npm run eslint && npm run stylelint',\n eslint: 'eslint --cache --ext .js,.jsx ./',\n stylelint: 'stylelint ./**/*.scss',\n },\n engines: {\n node: '>=14.0.0',\n },\n repository: {\n type: 'git',\n url: 'http://gitlab.xxx.com/msd/leak-scan/tree/master',\n },\n private: true,\n originTemplate: '@alifd/scaffold-lite-js',\n };\n\n ir.packages.forEach((packageInfo) => {\n packageJson.dependencies[packageInfo.package] = packageInfo.version;\n });\n\n next.chunks.push({\n type: ChunkType.JSON,\n fileType: FileType.JSON,\n name: COMMON_CHUNK_NAME.FileMainContent,\n content: packageJson,\n linkAfter: [],\n });\n\n return next;\n };\n return plugin;\n};\n\nexport default pluginFactory;\n", "import {\n BuilderComponentPlugin,\n BuilderComponentPluginFactory,\n ChunkType,\n FileType,\n ICodeStruct,\n} from '../../../../../types';\nimport { COMMON_CHUNK_NAME } from '../../../../../const/generator';\n\nconst pluginFactory: BuilderComponentPluginFactory<unknown> = () => {\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.JSX,\n name: COMMON_CHUNK_NAME.FileMainContent,\n content: `\n import { Outlet } from 'ice';\n import BasicLayout from '@/layouts/BasicLayout';\n\n export default function Layout() {\n return (\n <BasicLayout>\n <Outlet />\n </BasicLayout>\n );;\n }\n `,\n linkAfter: [],\n });\n\n return next;\n };\n\n return plugin;\n};\n\nexport default pluginFactory;\n", "import {\n BuilderComponentPlugin,\n BuilderComponentPluginFactory,\n ChunkType,\n FileType,\n ICodeStruct,\n} from '../../../../../types';\nimport { COMMON_CHUNK_NAME } from '../../../../../const/generator';\n\nexport interface AppConfigPluginConfig {\n\n}\n\nfunction getContent() {\n return `import { defineAppConfig } from 'ice';\n\n// App config, see https://v3.ice.work/docs/guide/basic/app\nexport default defineAppConfig(() => ({\n // Set your configs here.\n app: {\n rootId: 'App',\n },\n router: {\n type: 'browser',\n basename: '/',\n },\n}));`;\n}\n\nconst pluginFactory: BuilderComponentPluginFactory<AppConfigPluginConfig> = () => {\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.TS,\n name: COMMON_CHUNK_NAME.FileMainContent,\n content: getContent(),\n linkAfter: [],\n });\n\n return next;\n };\n\n return plugin;\n};\n\nexport default pluginFactory;\n", "import prettier from 'prettier';\nimport parserBabel from 'prettier/parser-babel';\n\nexport function format(content: string, options = {}) {\n return prettier.format(content, {\n parser: 'babel',\n plugins: [parserBabel],\n singleQuote: true,\n jsxSingleQuote: false,\n ...options,\n });\n}\n", "/**\n * \u83B7\u53D6\u4E3B\u9898\u4FE1\u606F\n * @param theme theme \u5F62\u5982 @alife/theme-97 \u6216\u8005 @alife/theme-97@^1.0.0\n */\n\nexport interface ThemeInfo {\n name: string;\n version?: string;\n}\n\nexport function getThemeInfo(theme: string): ThemeInfo {\n const sepIdx = theme.indexOf('@', 1);\n if (sepIdx === -1) {\n return { name: theme };\n }\n return {\n name: theme.slice(0, sepIdx),\n version: theme.slice(sepIdx + 1),\n };\n}", "import {\n BuilderComponentPlugin,\n BuilderComponentPluginFactory,\n ChunkType,\n FileType,\n ICodeStruct,\n} from '../../../../../types';\nimport { COMMON_CHUNK_NAME } from '../../../../../const/generator';\nimport { format } from '../../../../../utils/format';\nimport { getThemeInfo } from '../../../../../utils/theme';\n\nexport interface BuildConfigPluginConfig {\n\n /** \u5305\u540D */\n themePackage?: string;\n}\n\nfunction getContent(cfg?: BuildConfigPluginConfig, routesContent?: string) {\n return `\nimport { join } from 'path';\nimport { defineConfig } from '@ice/app';\nimport _ from 'lodash';\nimport fusion from '@ice/plugin-fusion';\nimport locales from '@ice/plugin-moment-locales';\nimport type { Plugin } from '@ice/app/esm/types';\n\ninterface PluginOptions {\n id: string;\n}\n\nconst plugin: Plugin<PluginOptions> = (options) => ({\n // name \u53EF\u9009\uFF0C\u63D2\u4EF6\u540D\u79F0\n name: 'plugin-name',\n // setup \u5FC5\u9009\uFF0C\u7528\u4E8E\u5B9A\u5236\u5DE5\u7A0B\u6784\u5EFA\u914D\u7F6E\n setup: ({ onGetConfig, modifyUserConfig }) => {\n modifyUserConfig('codeSplitting', 'page');\n\n onGetConfig((config) => {\n config.entry = {\n web: join(process.cwd(), '.ice/entry.client.tsx'),\n };\n\n config.cssFilename = '[name].css';\n\n config.configureWebpack = config.configureWebpack || [];\n config.configureWebpack?.push((webpackConfig) => {\n if (webpackConfig.output) {\n webpackConfig.output.filename = '[name].js';\n webpackConfig.output.chunkFilename = '[name].js';\n }\n return webpackConfig;\n });\n\n config.swcOptions = _.merge(config.swcOptions, {\n compilationConfig: {\n jsc: {\n transform: {\n react: {\n runtime: 'classic',\n },\n },\n },\n }\n });\n\n // \u89E3\u51B3 webpack publicPath \u95EE\u9898\n config.transforms = config.transforms || [];\n config.transforms.push((source: string, id: string) => {\n if (id.includes('.ice/entry.client.tsx')) {\n let code = \\`\n if (!__webpack_public_path__?.startsWith('http') && document.currentScript) {\n // @ts-ignore\n __webpack_public_path__ = document.currentScript.src.replace(/^(.*\\\\\\\\/)[^/]+$/, '$1');\n window.__ICE_ASSETS_MANIFEST__ = window.__ICE_ASSETS_MANIFEST__ || {};\n window.__ICE_ASSETS_MANIFEST__.publicPath = __webpack_public_path__;\n }\n \\`;\n code += source;\n return { code };\n }\n });\n });\n },\n});\n\n// The project config, see https://v3.ice.work/docs/guide/basic/config\nconst minify = process.env.NODE_ENV === 'production' ? 'swc' : false;\nexport default defineConfig(() => ({\n ssr: false,\n ssg: false,\n minify,\n ${routesContent}\n externals: {\n react: 'React',\n 'react-dom': 'ReactDOM',\n 'react-dom/client': 'ReactDOM',\n '@alifd/next': 'Next',\n lodash: 'var window._',\n '@alilc/lowcode-engine': 'var window.AliLowCodeEngine',\n },\n plugins: [\n fusion(${cfg?.themePackage ? `{\n importStyle: 'sass',\n themePackage: '${getThemeInfo(cfg.themePackage).name}',\n }` : `{\n importStyle: 'sass',\n }`}),\n locales(),\n plugin(),\n ]\n}));\n `;\n}\n\nfunction getRoutesContent(navData: any, needShell = true) {\n const routes = [\n 'routes: {',\n ' defineRoutes: route => {',\n ];\n function _getRoutes(nav: any, _routes: string[] = []) {\n const { slug, children } = nav;\n if (children && children.length > 0) {\n children.forEach((_nav: any) => _getRoutes(_nav, _routes));\n } else if (slug) {\n _routes.push(`route('/${slug}', '${slug}/index.jsx');`);\n }\n }\n if (needShell) {\n routes.push(\" route('/', 'layout.jsx', () => {\");\n }\n navData?.forEach((nav: any) => {\n _getRoutes(nav, routes);\n });\n if (needShell) {\n routes.push(' });');\n }\n routes.push(' }'); // end of defineRoutes\n routes.push(' },'); // end of routes\n return routes.join('\\n');\n}\n\nconst pluginFactory: BuilderComponentPluginFactory<BuildConfigPluginConfig> = (cfg?) => {\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n const { navConfig } = next.contextData;\n const routesContent = navConfig?.data ? getRoutesContent(navConfig.data, true) : '';\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.MTS,\n name: COMMON_CHUNK_NAME.FileMainContent,\n content: format(getContent(cfg, routesContent)),\n linkAfter: [],\n });\n\n return next;\n };\n\n return plugin;\n};\n\nexport default pluginFactory;\n", "import template from './template';\nimport globalStyle from './plugins/globalStyle';\nimport packageJSON from './plugins/packageJSON';\nimport layout from './plugins/layout';\nimport appConfig from './plugins/appConfig';\nimport buildConfig from './plugins/buildConfig';\n\nexport default {\n template,\n plugins: {\n appConfig,\n buildConfig,\n globalStyle,\n packageJSON,\n layout,\n },\n};\n", "import { IProjectBuilder, IProjectBuilderOptions } from '../types';\n\nimport { createProjectBuilder } from '../generator/ProjectBuilder';\n\nimport esmodule from '../plugins/common/esmodule';\nimport styleImport from '../plugins/common/styleImport';\nimport containerClass from '../plugins/component/react/containerClass';\nimport containerInitState from '../plugins/component/react/containerInitState';\nimport containerInjectContext from '../plugins/component/react/containerInjectContext';\nimport containerInjectUtils from '../plugins/component/react/containerInjectUtils';\nimport containerInjectDataSourceEngine from '../plugins/component/react/containerInjectDataSourceEngine';\nimport containerInjectConstants from '../plugins/component/react/containerInjectConstants';\nimport containerInjectI18n from '../plugins/component/react/containerInjectI18n';\nimport containerLifeCycle from '../plugins/component/react/containerLifeCycle';\nimport containerMethod from '../plugins/component/react/containerMethod';\nimport jsx from '../plugins/component/react/jsx';\nimport reactCommonDeps from '../plugins/component/react/reactCommonDeps';\nimport css from '../plugins/component/style/css';\nimport constants from '../plugins/project/constants';\nimport i18n from '../plugins/project/i18n';\nimport utils from '../plugins/project/utils';\n\nimport icejs3 from '../plugins/project/framework/icejs3';\n\nimport { prettier } from '../postprocessor';\n\nexport type IceJs3ProjectBuilderOptions = IProjectBuilderOptions;\n\nexport default function createIceJsProjectBuilder(\n options?: IceJs3ProjectBuilderOptions,\n): IProjectBuilder {\n return createProjectBuilder({\n inStrictMode: options?.inStrictMode,\n extraContextData: { ...options },\n template: icejs3.template,\n plugins: {\n components: [\n reactCommonDeps(),\n esmodule({\n fileType: 'jsx',\n }),\n styleImport(),\n containerClass(),\n containerInjectContext(),\n containerInjectUtils(),\n containerInjectDataSourceEngine(),\n containerInjectI18n(),\n containerInjectConstants(),\n containerInitState(),\n containerLifeCycle(),\n containerMethod(),\n jsx({\n nodeTypeMapping: {\n Div: 'div',\n Component: 'div',\n Page: 'div',\n Block: 'div',\n },\n }),\n css(),\n ],\n pages: [\n reactCommonDeps(),\n esmodule({\n fileType: 'jsx',\n }),\n styleImport(),\n containerClass(),\n containerInjectContext(),\n containerInjectUtils(),\n containerInjectDataSourceEngine(),\n containerInjectI18n(),\n containerInjectConstants(),\n containerInitState(),\n containerLifeCycle(),\n containerMethod(),\n jsx({\n nodeTypeMapping: {\n Div: 'div',\n Component: 'div',\n Page: 'div',\n Block: 'div',\n Box: 'div',\n },\n }),\n css(),\n ],\n constants: [constants()],\n utils: [esmodule(), utils('react')],\n i18n: [i18n()],\n globalStyle: [icejs3.plugins.globalStyle()],\n packageJSON: [icejs3.plugins.packageJSON()],\n buildConfig: [icejs3.plugins.buildConfig()],\n appConfig: [icejs3.plugins.appConfig()],\n layout: [icejs3.plugins.layout()],\n },\n postProcessors: [prettier()],\n customizeBuilderOptions: options?.customizeBuilderOptions,\n });\n}\n\nexport const plugins = {\n containerClass,\n containerInitState,\n containerInjectContext,\n containerInjectUtils,\n containerInjectI18n,\n containerInjectDataSourceEngine,\n containerLifeCycle,\n containerMethod,\n jsx,\n commonDeps: reactCommonDeps,\n};\n", "import changeCase from 'change-case';\nimport {\n COMMON_CHUNK_NAME,\n CLASS_DEFINE_CHUNK_NAME,\n DEFAULT_LINK_AFTER,\n} from '../../../const/generator';\nimport { RAX_CHUNK_NAME } from './const';\n\nimport {\n BuilderComponentPlugin,\n BuilderComponentPluginFactory,\n ChunkType,\n FileType,\n ICodeStruct,\n IContainerInfo,\n} from '../../../types';\nimport { ensureValidClassName } from '../../../utils/validate';\n\nconst pluginFactory: BuilderComponentPluginFactory<unknown> = () => {\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n const ir = next.ir as IContainerInfo;\n\n // \u5C06\u6A21\u5757\u540D\u8F6C\u6362\u6210 PascalCase \u7684\u683C\u5F0F\uFF0C\u5E76\u6DFB\u52A0\u7279\u5B9A\u540E\u7F00\uFF0C\u9632\u6B62\u547D\u540D\u51B2\u7A81\n const componentClassName = ensureValidClassName(\n `${changeCase.pascalCase(ir.moduleName)}$$Page`,\n );\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.JSX,\n name: CLASS_DEFINE_CHUNK_NAME.Start,\n content: `class ${componentClassName} extends Component {`,\n linkAfter: [\n COMMON_CHUNK_NAME.ExternalDepsImport,\n COMMON_CHUNK_NAME.InternalDepsImport,\n COMMON_CHUNK_NAME.ImportAliasDefine,\n COMMON_CHUNK_NAME.FileVarDefine,\n COMMON_CHUNK_NAME.FileUtilDefine,\n ],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.JSX,\n name: CLASS_DEFINE_CHUNK_NAME.End,\n content: '}',\n linkAfter: [\n CLASS_DEFINE_CHUNK_NAME.Start,\n CLASS_DEFINE_CHUNK_NAME.InsPrivateMethod,\n RAX_CHUNK_NAME.ClassRenderEnd,\n RAX_CHUNK_NAME.MethodsEnd,\n ],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.JSX,\n name: CLASS_DEFINE_CHUNK_NAME.ConstructorStart,\n content: 'constructor(props, context) { super(props); ',\n linkAfter: DEFAULT_LINK_AFTER[CLASS_DEFINE_CHUNK_NAME.ConstructorStart],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.JSX,\n name: CLASS_DEFINE_CHUNK_NAME.ConstructorEnd,\n content: '} /* end of constructor */',\n linkAfter: DEFAULT_LINK_AFTER[CLASS_DEFINE_CHUNK_NAME.ConstructorEnd],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.JSX,\n name: RAX_CHUNK_NAME.ClassDidMountBegin,\n content: 'componentDidMount() {',\n linkAfter: [\n CLASS_DEFINE_CHUNK_NAME.Start,\n CLASS_DEFINE_CHUNK_NAME.InsVar,\n CLASS_DEFINE_CHUNK_NAME.InsMethod,\n CLASS_DEFINE_CHUNK_NAME.ConstructorEnd,\n ],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.JSX,\n name: RAX_CHUNK_NAME.ClassDidMountEnd,\n content: '} /* end of componentDidMount */',\n linkAfter: [RAX_CHUNK_NAME.ClassDidMountBegin, RAX_CHUNK_NAME.ClassDidMountContent],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.JSX,\n name: RAX_CHUNK_NAME.ClassWillUnmountBegin,\n content: 'componentWillUnmount() {',\n linkAfter: [\n CLASS_DEFINE_CHUNK_NAME.Start,\n CLASS_DEFINE_CHUNK_NAME.InsVar,\n CLASS_DEFINE_CHUNK_NAME.InsMethod,\n RAX_CHUNK_NAME.ClassDidMountEnd,\n ],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.JSX,\n name: RAX_CHUNK_NAME.ClassWillUnmountEnd,\n content: '} /* end of componentWillUnmount */',\n linkAfter: [RAX_CHUNK_NAME.ClassWillUnmountBegin, RAX_CHUNK_NAME.ClassWillUnmountContent],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.JSX,\n name: RAX_CHUNK_NAME.ClassRenderBegin,\n content: 'render() {',\n linkAfter: [RAX_CHUNK_NAME.ClassDidMountEnd, RAX_CHUNK_NAME.ClassWillUnmountEnd],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.JSX,\n name: RAX_CHUNK_NAME.ClassRenderEnd,\n content: '} /* end of render */',\n linkAfter: [\n RAX_CHUNK_NAME.ClassRenderBegin,\n RAX_CHUNK_NAME.ClassRenderPre,\n RAX_CHUNK_NAME.ClassRenderJSX,\n ],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.JSX,\n name: COMMON_CHUNK_NAME.FileExport,\n content: `export default ${componentClassName};`,\n linkAfter: [\n COMMON_CHUNK_NAME.ExternalDepsImport,\n COMMON_CHUNK_NAME.InternalDepsImport,\n COMMON_CHUNK_NAME.ImportAliasDefine,\n COMMON_CHUNK_NAME.FileVarDefine,\n COMMON_CHUNK_NAME.FileUtilDefine,\n CLASS_DEFINE_CHUNK_NAME.End,\n ],\n });\n\n return next;\n };\n return plugin;\n};\n\nexport default pluginFactory;\n", "export const RAX_CHUNK_NAME = {\n ClassDidMountBegin: 'RaxComponentClassDidMountBegin',\n ClassDidMountContent: 'RaxComponentClassDidMountContent',\n ClassDidMountEnd: 'RaxComponentClassDidMountEnd',\n ClassWillUnmountBegin: 'RaxComponentClassWillUnmountBegin',\n ClassWillUnmountContent: 'RaxComponentClassWillUnmountContent',\n ClassWillUnmountEnd: 'RaxComponentClassWillUnmountEnd',\n ClassRenderBegin: 'RaxComponentClassRenderBegin',\n ClassRenderPre: 'RaxComponentClassRenderPre',\n ClassRenderJSX: 'RaxComponentClassRenderJSX',\n ClassRenderEnd: 'RaxComponentClassRenderEnd',\n MethodsBegin: 'RaxComponentMethodsBegin',\n MethodsContent: 'RaxComponentMethodsContent',\n MethodsEnd: 'RaxComponentMethodsEnd',\n LifeCyclesBegin: 'RaxComponentLifeCyclesBegin',\n LifeCyclesContent: 'RaxComponentLifeCyclesContent',\n LifeCyclesEnd: 'RaxComponentLifeCyclesEnd',\n};\n", "import _ from 'lodash';\nimport { isJSExpression, isJSFunction } from '@alilc/lowcode-types';\n\nimport { CLASS_DEFINE_CHUNK_NAME } from '../../../const/generator';\nimport { RAX_CHUNK_NAME } from './const';\n\nimport {\n BuilderComponentPlugin,\n BuilderComponentPluginFactory,\n FileType,\n ChunkType,\n ICodeStruct,\n IContainerInfo,\n} from '../../../types';\nimport { debug } from '../../../utils/debug';\nimport { isJSExpressionFn } from '../../../utils/common';\n\nexport interface PluginConfig {\n fileType: string;\n exportNameMapping: Record<string, string>;\n normalizeNameMapping: Record<string, string>;\n}\n\nconst pluginFactory: BuilderComponentPluginFactory<PluginConfig> = (config?) => {\n const cfg: PluginConfig = {\n fileType: FileType.JSX,\n exportNameMapping: {},\n normalizeNameMapping: {\n didMount: 'componentDidMount',\n willUnmount: 'componentWillUnmount',\n },\n ...config,\n };\n\n const exportNameMapping = new Map(Object.entries(cfg.exportNameMapping));\n const normalizeNameMapping = new Map(Object.entries(cfg.normalizeNameMapping));\n\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n // Rax \u5148\u53EA\u652F\u6301 didMount \u548C willUnmount \u5427\n\n const ir = next.ir as IContainerInfo;\n const { lifeCycles } = ir;\n\n if (lifeCycles && !_.isEmpty(lifeCycles)) {\n Object.entries(lifeCycles).forEach(([lifeCycleName, lifeCycleMethodExpr]) => {\n // \u8FC7\u6EE4\u6389\u975E\u6CD5\u6570\u636E\uFF08\u6709\u4E9B\u573A\u666F\u4E0B\u4F1A\u8BEF\u4F20\u5165\u7A7A\u5B57\u7B26\u4E32\u6216 null)\n if (\n !isJSFunction(lifeCycles[lifeCycleName]) &&\n !isJSExpressionFn(lifeCycles[lifeCycleName]) &&\n !isJSExpression(lifeCycles[lifeCycleName])\n ) {\n return;\n }\n\n const normalizeName = normalizeNameMapping.get(lifeCycleName) || lifeCycleName;\n const exportName = exportNameMapping.get(lifeCycleName) || lifeCycleName;\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: RAX_CHUNK_NAME.LifeCyclesContent,\n content: `${exportName}: (${lifeCycleMethodExpr.value}),`,\n linkAfter: [RAX_CHUNK_NAME.LifeCyclesBegin],\n });\n\n if (normalizeName === 'constructor') {\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: CLASS_DEFINE_CHUNK_NAME.ConstructorContent,\n content: `this._lifeCycles.${exportName}();`,\n linkAfter: [CLASS_DEFINE_CHUNK_NAME.ConstructorStart],\n });\n } else if (normalizeName === 'componentDidMount') {\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: RAX_CHUNK_NAME.ClassDidMountContent,\n content: `this._lifeCycles.${exportName}();`,\n linkAfter: [RAX_CHUNK_NAME.ClassDidMountBegin],\n });\n } else if (normalizeName === 'componentWillUnmount') {\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: RAX_CHUNK_NAME.ClassWillUnmountContent,\n content: `this._lifeCycles.${exportName}();`,\n linkAfter: [RAX_CHUNK_NAME.ClassWillUnmountBegin],\n });\n } else {\n debug(`[CodeGen]: unknown life cycle: ${lifeCycleName}`);\n }\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: CLASS_DEFINE_CHUNK_NAME.InsVar,\n content: '_lifeCycles = this._defineLifeCycles();',\n linkAfter: [CLASS_DEFINE_CHUNK_NAME.Start],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: RAX_CHUNK_NAME.LifeCyclesBegin,\n content: `\n _defineLifeCycles() {\n const __$$lifeCycles = ({\n `,\n linkAfter: [RAX_CHUNK_NAME.ClassRenderEnd, CLASS_DEFINE_CHUNK_NAME.InsPrivateMethod],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: RAX_CHUNK_NAME.LifeCyclesEnd,\n content: `\n });\n\n // \u4E3A\u6240\u6709\u7684\u65B9\u6CD5\u7ED1\u5B9A\u4E0A\u4E0B\u6587\n Object.entries(__$$lifeCycles).forEach(([lifeCycleName, lifeCycleMethod]) => {\n if (typeof lifeCycleMethod === 'function') {\n __$$lifeCycles[lifeCycleName] = (...args) => {\n return lifeCycleMethod.apply(this._context, args);\n }\n }\n });\n\n return __$$lifeCycles;\n }\n `,\n linkAfter: [RAX_CHUNK_NAME.LifeCyclesBegin, RAX_CHUNK_NAME.LifeCyclesContent],\n });\n }\n\n return next;\n };\n return plugin;\n};\n\nexport default pluginFactory;\n", "import createDebug from 'debug';\n\nexport const debug = createDebug('code-generator');\n", "import { CLASS_DEFINE_CHUNK_NAME } from '../../../const/generator';\n\nimport {\n BuilderComponentPlugin,\n BuilderComponentPluginFactory,\n ChunkType,\n FileType,\n ICodeStruct,\n IContainerInfo,\n} from '../../../types';\n\nimport { RAX_CHUNK_NAME } from './const';\n\nexport interface PluginConfig {\n fileType: string;\n}\n\nconst pluginFactory: BuilderComponentPluginFactory<PluginConfig> = (config?) => {\n const cfg: PluginConfig = {\n fileType: FileType.JSX,\n ...config,\n };\n\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n const ir = next.ir as IContainerInfo;\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: CLASS_DEFINE_CHUNK_NAME.InsVar,\n content: `\n _methods = this._defineMethods();\n `,\n linkAfter: [CLASS_DEFINE_CHUNK_NAME.Start],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: RAX_CHUNK_NAME.MethodsBegin,\n content: `\n _defineMethods() {\n return ({\n `,\n linkAfter: [\n RAX_CHUNK_NAME.ClassRenderEnd,\n CLASS_DEFINE_CHUNK_NAME.InsPrivateMethod,\n RAX_CHUNK_NAME.LifeCyclesEnd,\n ],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: RAX_CHUNK_NAME.MethodsEnd,\n content: `\n });\n }\n `,\n linkAfter: [RAX_CHUNK_NAME.MethodsBegin, RAX_CHUNK_NAME.MethodsContent],\n });\n\n if (ir.methods && Object.keys(ir.methods).length > 0) {\n Object.entries(ir.methods).forEach(([methodName, methodDefine]) => {\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: RAX_CHUNK_NAME.MethodsContent,\n content: `${methodName}: (${methodDefine.value}),`,\n linkAfter: [RAX_CHUNK_NAME.MethodsBegin],\n });\n });\n }\n\n return next;\n };\n return plugin;\n};\n\nexport default pluginFactory;\n", "import { CLASS_DEFINE_CHUNK_NAME, DEFAULT_LINK_AFTER } from '../../../const/generator';\n\nimport { generateCompositeType } from '../../../utils/compositeType';\nimport { Scope } from '../../../utils/Scope';\n\nimport {\n BuilderComponentPlugin,\n BuilderComponentPluginFactory,\n ChunkType,\n FileType,\n ICodeStruct,\n IContainerInfo,\n} from '../../../types';\n\nexport interface PluginConfig {\n fileType: string;\n implementType: 'inConstructor' | 'insMember' | 'hooks';\n}\n\nconst pluginFactory: BuilderComponentPluginFactory<PluginConfig> = (config?) => {\n const cfg: PluginConfig = {\n fileType: FileType.JSX,\n implementType: 'insMember',\n ...config,\n };\n\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n const ir = next.ir as IContainerInfo;\n const scope = Scope.createRootScope();\n\n const state = ir.state || {};\n const fields = Object.keys(state).map<string>((stateName) => {\n // TODO: \u8FD9\u91CC\u7528\u4EC0\u4E48 handlers?\n const value = generateCompositeType(state[stateName], scope);\n return `${JSON.stringify(stateName)}: ${value}`;\n });\n\n if (cfg.implementType === 'inConstructor') {\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: CLASS_DEFINE_CHUNK_NAME.ConstructorContent,\n content: `this.state = { ${fields.join(',')} };`,\n linkAfter: [...DEFAULT_LINK_AFTER[CLASS_DEFINE_CHUNK_NAME.ConstructorContent]],\n });\n } else if (cfg.implementType === 'insMember') {\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: CLASS_DEFINE_CHUNK_NAME.InsVar,\n content: `state = { ${fields.join(',')} };`,\n linkAfter: [...DEFAULT_LINK_AFTER[CLASS_DEFINE_CHUNK_NAME.InsVar]],\n });\n }\n // TODO: hooks state??\n\n return next;\n };\n return plugin;\n};\n\nexport default pluginFactory;\n", "/* eslint-disable @typescript-eslint/indent */\nimport { CLASS_DEFINE_CHUNK_NAME, COMMON_CHUNK_NAME } from '../../../const/generator';\n\nimport {\n BuilderComponentPlugin,\n BuilderComponentPluginFactory,\n ChunkType,\n FileType,\n ICodeStruct,\n IContainerInfo,\n} from '../../../types';\nimport { RAX_CHUNK_NAME } from './const';\nimport { DEFAULT_LINK_AFTER } from '../../../const';\n\nexport interface PluginConfig {\n fileType: string;\n}\n\nconst pluginFactory: BuilderComponentPluginFactory<PluginConfig> = (config?) => {\n const cfg: PluginConfig = {\n fileType: FileType.JSX,\n ...config,\n };\n\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n const ir = next.ir as IContainerInfo;\n const useRef = !!ir.analyzeResult?.isUsingRef;\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: COMMON_CHUNK_NAME.InternalDepsImport,\n content: \"import __$$constants from '../../constants';\",\n linkAfter: [COMMON_CHUNK_NAME.ExternalDepsImport],\n });\n\n // TODO: i18n \u662F\u53EF\u9009\u7684\uFF0C\u5982\u679C\u6CA1\u6709 i18n \u8FD9\u4E2A\u6587\u4EF6\u600E\u4E48\u529E\uFF1F\u8BE5\u600E\u4E48\u5224\u65AD\uFF1F\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: COMMON_CHUNK_NAME.InternalDepsImport,\n content: \"import * as __$$i18n from '../../i18n';\",\n linkAfter: [COMMON_CHUNK_NAME.ExternalDepsImport],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: CLASS_DEFINE_CHUNK_NAME.ConstructorContent,\n content: `\n __$$i18n._inject2(this);\n `,\n linkAfter: [...DEFAULT_LINK_AFTER[CLASS_DEFINE_CHUNK_NAME.ConstructorContent]],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: CLASS_DEFINE_CHUNK_NAME.InsVar,\n content: `\n _context = this._createContext();\n `,\n linkAfter: [CLASS_DEFINE_CHUNK_NAME.Start],\n });\n\n // TODO: \u6309\u7167\u76EE\u524D\u7684\u5B9E\u73B0\u65B9\u6848\uFF0C\u4EE3\u7801\u7684\u63D2\u62D4\u80FD\u529B\u592A\u5F31\u4E86\uFF0C\u9700\u8981\u6709\u4E00\u4E9B\u53D8\u5316\u3002\n // Step 1: \u589E\u52A0\u524D\u7F6E\u7684\u5206\u6790\u5668\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: CLASS_DEFINE_CHUNK_NAME.InsPrivateMethod,\n content: `\n _createContext() {\n const self = this;\n const context = {\n get state() {\n return self.state;\n },\n setState(newState, callback) {\n self.setState(newState, callback);\n },\n get dataSourceMap() {\n return self._dataSourceEngine.dataSourceMap || {};\n },\n async reloadDataSource() {\n await self._dataSourceEngine.reloadDataSource();\n },\n get utils() {\n return self._utils;\n },\n get page() {\n return context;\n },\n get component() {\n return context;\n },\n get props() {\n return self.props;\n },\n get constants() {\n return __$$constants;\n },\n i18n: __$$i18n.i18n,\n i18nFormat: __$$i18n.i18nFormat,\n getLocale: __$$i18n.getLocale,\n setLocale(locale) {\n __$$i18n.setLocale(locale);\n self.forceUpdate();\n },${\n useRef\n ? `\n $(refName) {\n return self._refsManager.get(refName);\n },\n $$(refName) {\n return self._refsManager.getAll(refName);\n },\n get _refsManager() {\n if (!self._refsManager) {\n self._refsManager = new RefsManager();\n }\n return self._refsManager;\n },\n `\n : ''\n }\n ...this._methods,\n };\n\n return context;\n }\n `,\n linkAfter: [RAX_CHUNK_NAME.ClassRenderEnd],\n });\n\n return next;\n };\n return plugin;\n};\n\nexport default pluginFactory;\n", "/* eslint-disable @typescript-eslint/indent */\n\nimport {\n IPublicTypeCompositeValue,\n IPublicTypeJSExpression,\n InterpretDataSourceConfig,\n isJSExpression,\n isJSFunction,\n} from '@alilc/lowcode-types';\nimport changeCase from 'change-case';\n\nimport { CLASS_DEFINE_CHUNK_NAME, COMMON_CHUNK_NAME } from '../../../const/generator';\nimport { Scope } from '../../../utils/Scope';\n\nimport {\n BuilderComponentPlugin,\n BuilderComponentPluginFactory,\n ChunkType,\n FileType,\n ICodeStruct,\n IScope,\n} from '../../../types';\n\nimport { generateCompositeType } from '../../../utils/compositeType';\nimport { parseExpressionConvertThis2Context } from '../../../utils/expressionParser';\nimport { isContainerSchema } from '../../../utils/schema';\nimport { RaxFrameworkOptions } from '../../project/framework/rax/types/RaxFrameworkOptions';\nimport { RAX_CHUNK_NAME } from './const';\n\nexport interface PluginConfig extends RaxFrameworkOptions {\n fileType?: string;\n\n /**\n * \u6570\u636E\u6E90\u7684 handlers \u7684\u6620\u5C04\u914D\u7F6E\n * @deprecated \u8BF7\u4F7F\u7528 datasourceConfig.handlersPackages \u6765\u914D\u7F6E\n */\n dataSourceHandlersPackageMap?: Record<string, string>;\n}\n\nconst pluginFactory: BuilderComponentPluginFactory<PluginConfig> = (config?) => {\n const cfg: PluginConfig = {\n fileType: FileType.JSX,\n ...config,\n dataSourceHandlersPackageMap:\n config?.dataSourceHandlersPackageMap || config?.datasourceConfig?.handlersPackages,\n };\n\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n const scope = Scope.createRootScope();\n const dataSourceConfig = isContainerSchema(pre.ir) ? pre.ir.dataSource : null;\n const dataSourceItems: InterpretDataSourceConfig[] =\n (dataSourceConfig && dataSourceConfig.list) || [];\n const dataSourceEngineOptions = { runtimeConfig: true };\n if (dataSourceItems.length > 0) {\n const requestHandlersMap: Record<string, IPublicTypeJSExpression> = {};\n\n dataSourceItems.forEach((ds) => {\n const dsType = ds.type || 'fetch';\n if (!(dsType in requestHandlersMap) && dsType !== 'custom') {\n const handlerFactoryName = `__$$create${changeCase.pascal(dsType)}RequestHandler`;\n\n requestHandlersMap[dsType] = {\n type: 'JSExpression',\n value: `${handlerFactoryName}(${\n dsType === 'urlParams' ? '__$$getSearchParams()' : ''\n })`,\n };\n\n const handlerFactoryExportName = `create${changeCase.pascal(dsType)}Handler`;\n const handlerPkgName =\n cfg.dataSourceHandlersPackageMap?.[dsType] ||\n `@alilc/lowcode-datasource-${changeCase.kebab(dsType)}-handler`;\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.JSX,\n name: COMMON_CHUNK_NAME.ExternalDepsImport,\n content: `\n import { ${handlerFactoryExportName} as ${handlerFactoryName} } from '${handlerPkgName}';\n `,\n linkAfter: [],\n });\n }\n });\n\n Object.assign(dataSourceEngineOptions, { requestHandlersMap });\n }\n\n const datasourceEnginePackageName =\n cfg.datasourceConfig?.enginePackage || '@alilc/lowcode-datasource-engine';\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.JSX,\n name: COMMON_CHUNK_NAME.ExternalDepsImport,\n content: `\n import { create as __$$createDataSourceEngine } from '${datasourceEnginePackageName}/runtime';\n `,\n linkAfter: [],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType!,\n name: CLASS_DEFINE_CHUNK_NAME.InsVar,\n content: `\n _dataSourceConfig = this._defineDataSourceConfig();\n _dataSourceEngine = __$$createDataSourceEngine(\n this._dataSourceConfig,\n this._context,\n ${generateCompositeType(dataSourceEngineOptions, scope)}\n );`,\n linkAfter: [CLASS_DEFINE_CHUNK_NAME.Start],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType!,\n name: RAX_CHUNK_NAME.ClassDidMountContent,\n content: `\n this._dataSourceEngine.reloadDataSource();\n `,\n linkAfter: [RAX_CHUNK_NAME.ClassDidMountBegin],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType!,\n name: CLASS_DEFINE_CHUNK_NAME.InsPrivateMethod,\n content: `\n_defineDataSourceConfig() {\n const __$$context = this._context;\n return (${generateCompositeType(\n {\n ...dataSourceConfig,\n list: [\n ...dataSourceItems.map((item) => ({\n // \u6570\u636E\u6E90\u5F15\u64CE\u9ED8\u8BA4\u7684 errorHandler \u662F\u7A7A\u7684\uFF0C\u800C\u4E14\u5E76\u4E0D\u4F1A\u89E6\u53D1\u7EC4\u4EF6\u91CD\u65B0\u6E32\u67D3\u2026\u2026\n // \u8FD9\u4F1A\u5BFC\u81F4\u9875\u9762\u72B6\u6001\u4E0D\u80FD\u6B63\u5E38\u5C55\u793A\uFF0C\u6545\u8FD9\u91CC\u5904\u7406\u4E0B:\n errorHandler: {\n type: 'JSFunction',\n value: `function (err){\n setTimeout(() => {\n this.setState({ __refresh: Date.now() + Math.random() });\n }, 0);\n throw err;\n }`,\n },\n ...item,\n isInit:\n typeof item.isInit === 'boolean' || typeof item.isInit === 'undefined'\n ? item.isInit ?? true\n : wrapAsFunction(item.isInit, scope),\n options: wrapAsFunction(item.options, scope),\n })),\n ],\n },\n scope,\n {\n handlers: {\n function: (jsFunc) => parseExpressionConvertThis2Context(jsFunc.value, '__$$context'),\n expression: (jsExpr) => parseExpressionConvertThis2Context(jsExpr.value, '__$$context'),\n },\n },\n )});\n}\n `,\n linkAfter: [RAX_CHUNK_NAME.ClassRenderEnd],\n });\n\n return next;\n };\n return plugin;\n};\n\nexport default pluginFactory;\n\nfunction wrapAsFunction(value: IPublicTypeCompositeValue, scope: IScope): IPublicTypeCompositeValue {\n if (isJSExpression(value) || isJSFunction(value)) {\n return {\n type: 'JSExpression',\n value: `function(){ return ((${value.value}))}`,\n };\n }\n\n return {\n type: 'JSExpression',\n value: `function(){return((${generateCompositeType(value, scope)}))}`,\n };\n}\n", "import { CLASS_DEFINE_CHUNK_NAME, COMMON_CHUNK_NAME } from '../../../const/generator';\n\nimport {\n BuilderComponentPlugin,\n BuilderComponentPluginFactory,\n ChunkType,\n FileType,\n ICodeStruct,\n IContainerInfo,\n} from '../../../types';\nimport { RAX_CHUNK_NAME } from './const';\n\nexport interface PluginConfig {\n fileType: string;\n}\n\nconst pluginFactory: BuilderComponentPluginFactory<PluginConfig> = (config?) => {\n const cfg: PluginConfig = {\n fileType: FileType.JSX,\n ...config,\n };\n\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n const ir = next.ir as IContainerInfo;\n const useRef = !!ir.analyzeResult?.isUsingRef;\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: COMMON_CHUNK_NAME.InternalDepsImport,\n // TODO: \u4E0B\u9762\u8FD9\u4E2A\u8DEF\u5F84\u6709\u6CA1\u6709\u66F4\u597D\u7684\u65B9\u5F0F\u6765\u83B7\u53D6\uFF1F\u800C\u975E\u5199\u6B7B\n content: `\n import __$$projectUtils${useRef ? ', { RefsManager }' : ''} from '../../utils';\n `,\n linkAfter: [COMMON_CHUNK_NAME.ExternalDepsImport],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: CLASS_DEFINE_CHUNK_NAME.InsVar,\n content: '_utils = this._defineUtils();',\n linkAfter: [CLASS_DEFINE_CHUNK_NAME.Start],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: CLASS_DEFINE_CHUNK_NAME.InsPrivateMethod,\n\n content: `\n _defineUtils() {\n return {\n ...__$$projectUtils,\n };\n }`,\n linkAfter: [RAX_CHUNK_NAME.ClassRenderEnd],\n });\n\n return next;\n };\n return plugin;\n};\n\nexport default pluginFactory;\n", "import {\n IPublicTypeNodeSchema,\n IPublicTypeJSExpression,\n IPublicTypeNpmInfo,\n IPublicTypeCompositeValue,\n isJSExpression,\n} from '@alilc/lowcode-types';\n\nimport _ from 'lodash';\nimport changeCase from 'change-case';\nimport {\n BuilderComponentPlugin,\n BuilderComponentPluginFactory,\n ChunkType,\n CodePiece,\n FileType,\n ICodeChunk,\n ICodeStruct,\n IContainerInfo,\n PIECE_TYPE,\n HandlerSet,\n IScope,\n NodeGeneratorConfig,\n NodePlugin,\n AttrPlugin,\n} from '../../../types';\n\nimport { RAX_CHUNK_NAME } from './const';\nimport { COMMON_CHUNK_NAME } from '../../../const/generator';\n\nimport { generateExpression } from '../../../utils/jsExpression';\nimport {\n createNodeGenerator,\n generateConditionReactCtrl,\n generateReactExprInJS,\n} from '../../../utils/nodeToJSX';\nimport { generateCompositeType } from '../../../utils/compositeType';\nimport { Scope } from '../../../utils/Scope';\nimport { parseExpressionGetGlobalVariables } from '../../../utils/expressionParser';\nimport { transformThis2Context } from '../../../core/jsx/handlers/transformThis2Context';\nimport { transformJsExpr } from '../../../core/jsx/handlers/transformJsExpression';\n\nexport interface PluginConfig {\n fileType: string;\n\n /** \u662F\u5426\u8981\u5FFD\u7565\u5C0F\u7A0B\u5E8F */\n ignoreMiniApp?: boolean;\n}\n\n// TODO: componentName \u82E5\u5E76\u975E\u5927\u5199\u5B57\u7B26\u6253\u5934\uFF0C\u751A\u81F3\u5E76\u975E\u662F\u4E00\u4E2A\u6709\u6548\u7684 JS \u6807\u8BC6\u7B26\u600E\u4E48\u529E\uFF1F\uFF1F\n// FIXME: \u6211\u60F3\u4E86\u4E0B\uFF0C\u8FD9\u5757\u5E94\u8BE5\u653E\u5230\u89E3\u6790\u9636\u6BB5\u5C31\u53BB\u505A\u6389\uFF0C\u5BF9\u6240\u6709 componentName \u505A identifier validate\uFF0C\u7136\u540E\u5BF9\u4E0D\u5408\u6CD5\u7684\u505A\u7EDF\u4E00\u66FF\u6362\u3002\nconst pluginFactory: BuilderComponentPluginFactory<PluginConfig> = (config?) => {\n const cfg: PluginConfig = {\n fileType: FileType.JSX,\n ...config,\n };\n\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n const ir = next.ir as IContainerInfo;\n const rootScope = Scope.createRootScope();\n const { tolerateEvalErrors = true, evalErrorsHandler = '' } = next.contextData;\n\n // Rax \u6784\u5EFA\u5230\u5C0F\u7A0B\u5E8F\u7684\u65F6\u5019\uFF0C\u4E0D\u80FD\u7ED9\u7EC4\u4EF6\u8D77\u8D77\u522B\u540D\uFF0C\u5F97\u76F4\u63A5\u5F15\u7528\uFF0C\u6545\u8FD9\u91CC\u5C06\u6240\u6709\u7684\u522B\u540D\u66FF\u6362\u6389\n // \u5148\u6536\u96C6\u4E0B\u6240\u6709\u7684 alias \u7684\u6620\u5C04\n const componentsNameAliasMap = new Map<string, string>();\n next.chunks.forEach((chunk) => {\n if (isImportAliasDefineChunk(chunk)) {\n componentsNameAliasMap.set(chunk.ext.aliasName, chunk.ext.originalName);\n }\n });\n\n // \u6CE8\u610F\uFF1A\u8FD9\u91CC\u5176\u5B9E\u9690\u542B\u4E86\u4E00\u4E2A\u5047\u8BBE\uFF1Aschema \u4E2D\u7684 componentName \u5E94\u8BE5\u662F\u4E00\u4E2A\u6709\u6548\u7684 JS \u6807\u8BC6\u7B26\uFF0C\u800C\u4E14\u662F\u5927\u5199\u5B57\u6BCD\u6253\u5934\u7684\n // FIXME: \u4E3A\u4E86\u5FEB\u901F\u4FEE\u590D\u4E34\u65F6\u52A0\u7684\u903B\u8F91\uFF0C\u9700\u8981\u7528 pre-process \u7684\u65B9\u5F0F\u66FF\u4EE3\u5904\u7406\u3002\n const mapComponentNameToAliasOrKeepIt = (componentName: string) => componentsNameAliasMap.get(componentName) || componentName;\n\n // \u7136\u540E\u8FC7\u6EE4\u6389\u6240\u6709\u7684\u522B\u540D chunks\n next.chunks = next.chunks.filter((chunk) => !isImportAliasDefineChunk(chunk));\n\n // \u5982\u679C\u76F4\u63A5\u6309\u76EE\u524D\u7684 React \u7684\u65B9\u5F0F\u4E4B\u95F4\u51FA\u7801 JSX \u7684\u8BDD\uFF0C\u4F1A\u6709 3 \u4E2A\u95EE\u9898\uFF1A\n // 1. \u5C0F\u7A0B\u5E8F\u51FA\u7801\u7684\u65F6\u5019\uFF0C\u5FAA\u73AF\u53D8\u91CF\u6CA1\u6CD5\u62FF\u5230\n // 2. \u5C0F\u7A0B\u5E8F\u51FA\u7801\u7684\u65F6\u5019\uFF0C\u5F88\u5BB9\u6613\u51FA\u73B0 Uncaught TypeError: Cannot read property 'avatar' of undefined \u8FD9\u6837\u7684\u5F02\u5E38(\u5982\u4E0B\u56FE\u7684 50 \u884C) -- \u56E0\u4E3A\u82E5\u76F4\u63A5\u51FA\u7801\uFF0CRax \u6784\u5EFA\u5230\u5C0F\u7A0B\u5E8F\u7684\u65F6\u5019\u4F1A\u7ACB\u5373\u8BA1\u7B97\u6240\u6709\u5728\u89C6\u56FE\u4E2D\u7528\u5230\u7684\u53D8\u91CF\n // 3. \u901A\u8FC7 this.xxx \u80FD\u62FF\u5230\u7684\u4E1C\u897F\u592A\u591A\u4E86\uFF0C\u800C\u4E14\u81EA\u5B9A\u4E49\u7684 methods \u53EF\u80FD\u4F1A\u65E0\u610F\u95F4\u7834\u574F Rax \u6846\u67B6\u6216\u5C0F\u7A0B\u5E8F\u6846\u67B6\u5728\u9875\u9762 this \u4E0A\u7684\u4E1C\u4E1C\n const customHandlers: HandlerSet<string> = {\n expression(input: IPublicTypeJSExpression, scope: IScope) {\n return transformJsExpr(generateExpression(input, scope), scope, {\n dontWrapEval: !tolerateEvalErrors,\n });\n },\n function(input, scope: IScope) {\n return transformThis2Context(input.value || 'null', scope);\n },\n };\n\n // \u521B\u5EFA\u4EE3\u7801\u751F\u6210\u5668\n const commonNodeGenerator = createNodeGenerator({\n handlers: customHandlers,\n tagMapping: mapComponentNameToAliasOrKeepIt,\n nodePlugins: [generateReactExprInJS, generateConditionReactCtrl, generateRaxLoopCtrl],\n attrPlugins: [generateNodeAttrForRax.bind({ cfg })],\n });\n\n // \u751F\u6210 JSX \u4EE3\u7801\n const jsxContent = commonNodeGenerator(ir, rootScope);\n\n if (!cfg.ignoreMiniApp) {\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: COMMON_CHUNK_NAME.ExternalDepsImport,\n content: \"import { isMiniApp as __$$isMiniApp } from 'universal-env';\",\n linkAfter: [],\n });\n }\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: RAX_CHUNK_NAME.ClassRenderPre,\n // TODO: setState, dataSourceMap, reloadDataSource, utils, i18n, i18nFormat, getLocale, setLocale \u8FD9\u4E9B\u5728 Rax \u7684\u7F16\u8BD1\u6A21\u5F0F\u4E0B\u4E0D\u80FD\u5728\u89C6\u56FE\u4E2D\u76F4\u63A5\u8BBF\u95EE\uFF0C\u9700\u8981\u8F6C\u5316\u6210 this.xxx\n content: `\n const __$$context = this._context;\n const { state, setState, dataSourceMap, reloadDataSource, utils, constants, i18n, i18nFormat, getLocale, setLocale } = __$$context;\n `,\n linkAfter: [RAX_CHUNK_NAME.ClassRenderBegin],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: RAX_CHUNK_NAME.ClassRenderJSX,\n content: `return ${jsxContent};`,\n linkAfter: [RAX_CHUNK_NAME.ClassRenderBegin, RAX_CHUNK_NAME.ClassRenderPre],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: COMMON_CHUNK_NAME.CustomContent,\n content: [\n tolerateEvalErrors &&\n `\n function __$$eval(expr) {\n try {\n return expr();\n } catch (error) {\n ${evalErrorsHandler}\n }\n }\n\n function __$$evalArray(expr) {\n const res = __$$eval(expr);\n return Array.isArray(res) ? res : [];\n }\n `,\n `\n function __$$createChildContext(oldContext, ext) {\n return Object.assign({}, oldContext, ext);\n }\n `,\n ]\n .filter(Boolean)\n .join('\\n'),\n linkAfter: [COMMON_CHUNK_NAME.FileExport],\n });\n\n return next;\n\n function generateRaxLoopCtrl(\n nodeItem: IPublicTypeNodeSchema,\n scope: IScope,\n config?: NodeGeneratorConfig,\n next?: NodePlugin,\n ): CodePiece[] {\n if (nodeItem.loop) {\n const loopItemName = nodeItem.loopArgs?.[0] || 'item';\n const loopIndexName = nodeItem.loopArgs?.[1] || 'index';\n const subScope = scope.createSubScope([loopItemName, loopIndexName]);\n const pieces: CodePiece[] = next ? next(nodeItem, subScope, config) : [];\n\n const loopDataExpr = tolerateEvalErrors\n ? `__$$evalArray(() => (${transformThis2Context(\n generateCompositeType(nodeItem.loop, scope, { handlers: config?.handlers }),\n scope,\n )}))`\n : `(${transformThis2Context(\n generateCompositeType(nodeItem.loop, scope, { handlers: config?.handlers }),\n scope,\n )})`;\n\n pieces.unshift({\n value: `${loopDataExpr}.map((${loopItemName}, ${loopIndexName}) => ((__$$context) => (`,\n type: PIECE_TYPE.BEFORE,\n });\n\n pieces.push({\n value: `))(__$$createChildContext(__$$context, { ${loopItemName}, ${loopIndexName} })))`,\n type: PIECE_TYPE.AFTER,\n });\n\n return pieces;\n }\n\n return next ? next(nodeItem, scope, config) : [];\n }\n };\n\n return plugin;\n};\n\nexport default pluginFactory;\n\nfunction isImportAliasDefineChunk(chunk: ICodeChunk): chunk is ICodeChunk & {\n ext: {\n aliasName: string;\n originalName: string;\n dependency: IPublicTypeNpmInfo;\n };\n} {\n return (\n chunk.name === COMMON_CHUNK_NAME.ImportAliasDefine &&\n !!chunk.ext &&\n typeof chunk.ext.aliasName === 'string' &&\n typeof chunk.ext.originalName === 'string' &&\n !!(chunk.ext.dependency as IPublicTypeNpmInfo | null)?.componentName\n );\n}\n\nfunction generateNodeAttrForRax(\n this: { cfg: PluginConfig },\n attrData: { attrName: string; attrValue: IPublicTypeCompositeValue },\n scope: IScope,\n config?: NodeGeneratorConfig,\n next?: AttrPlugin,\n): CodePiece[] {\n if (!this.cfg.ignoreMiniApp && /^on/.test(attrData.attrName)) {\n // else: onXxx \u7684\u90FD\u662F\u4E8B\u4EF6\u5904\u7406\u51FD\u6570\u9700\u8981\u7279\u6B8A\u5904\u7406\u4E0B\n return generateEventHandlerAttrForRax(attrData.attrName, attrData.attrValue, scope, config);\n }\n\n if (attrData.attrName === 'ref') {\n return [\n {\n name: attrData.attrName,\n value: `__$$context._refsManager.linkRef('${attrData.attrValue}')`,\n type: PIECE_TYPE.ATTR,\n },\n ];\n }\n\n return next ? next(attrData, scope, config) : [];\n}\n\nfunction generateEventHandlerAttrForRax(\n attrName: string,\n attrValue: IPublicTypeCompositeValue,\n scope: IScope,\n config?: NodeGeneratorConfig,\n): CodePiece[] {\n // -- \u4E8B\u4EF6\u5904\u7406\u51FD\u6570\u4E2D JSExpression \u8F6C\u6210 JSFunction \u6765\u5904\u7406\uFF0C\u907F\u514D\u5F53 JSExpression \u5904\u7406\u7684\u65F6\u5019\u591A\u5305\u4E00\u5C42 eval \u800C\u5BFC\u81F4 Rax \u8F6C\u7801\u6210\u5C0F\u7A0B\u5E8F\u7684\u65F6\u5019\u51FA\u95EE\u9898\n const valueExpr = generateCompositeType(\n isJSExpression(attrValue) ? { type: 'JSFunction', value: attrValue.value } : attrValue,\n scope,\n {\n handlers: config?.handlers,\n },\n );\n\n // \u67E5\u8BE2\u5F53\u524D\u4F5C\u7528\u57DF\u4E0B\u7684\u53D8\u91CF\n const currentScopeVariables = scope.bindings?.getAllBindings() || [];\n if (currentScopeVariables.length <= 0) {\n return [\n {\n type: PIECE_TYPE.ATTR,\n name: attrName,\n value: valueExpr,\n },\n ];\n }\n\n // \u63D0\u53D6\u51FA\u6240\u6709\u7684\u672A\u5B9A\u4E49\u7684\u5168\u5C40\u53D8\u91CF\n const undeclaredVariablesInValueExpr = parseExpressionGetGlobalVariables(valueExpr);\n const referencedLocalVariables = _.intersection(\n undeclaredVariablesInValueExpr,\n currentScopeVariables,\n );\n if (referencedLocalVariables.length <= 0) {\n return [\n {\n type: PIECE_TYPE.ATTR,\n name: attrName,\n value: valueExpr,\n },\n ];\n }\n\n const wrappedAttrValueExpr = [\n '(...__$$args) => {',\n ' if (__$$isMiniApp) {',\n ' const __$$event = __$$args[0];',\n ...referencedLocalVariables.map(\n (localVar) => `const ${localVar} = __$$event.target.dataset.${localVar};`,\n ),\n ` return (${valueExpr}).apply(this, __$$args);`,\n ' } else {',\n ` return (${valueExpr}).apply(this, __$$args);`,\n ' }',\n '}',\n ].join('\\n');\n\n return [\n ...referencedLocalVariables.map((localVar) => ({\n type: PIECE_TYPE.ATTR,\n name: `data-${changeCase.snake(localVar)}`,\n value: localVar,\n })),\n {\n type: PIECE_TYPE.ATTR,\n name: attrName,\n value: wrappedAttrValueExpr,\n },\n ];\n}\n", "import { COMMON_CHUNK_NAME } from '../../../const/generator';\n\nimport {\n BuilderComponentPlugin,\n BuilderComponentPluginFactory,\n ChunkType,\n FileType,\n ICodeStruct,\n} from '../../../types';\n\nconst pluginFactory: BuilderComponentPluginFactory<unknown> = () => {\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.JSX,\n name: COMMON_CHUNK_NAME.ExternalDepsImport,\n content: `\n // \u6CE8\u610F: \u51FA\u7801\u5F15\u64CE\u6CE8\u5165\u7684\u4E34\u65F6\u53D8\u91CF\u9ED8\u8BA4\u90FD\u4EE5 \"__$$\" \u5F00\u5934\uFF0C\u7981\u6B62\u5728\u642D\u5EFA\u7684\u4EE3\u7801\u4E2D\u76F4\u63A5\u8BBF\u95EE\u3002\n // \u4F8B\u5916\uFF1Arax \u6846\u67B6\u7684\u5BFC\u51FA\u540D\u548C\u5404\u79CD\u7EC4\u4EF6\u540D\u9664\u5916\u3002\n import { createElement, Component } from 'rax';\n import { getSearchParams as __$$getSearchParams } from 'rax-app';\n `,\n linkAfter: [],\n });\n\n return next;\n };\n return plugin;\n};\n\nexport default pluginFactory;\n", "/* eslint-disable max-len */\n/* Note: this file is generated by \"npm run template\", please dont modify this file directly */\n/* -- instead, you should modify \"static-files/rax/.eslintignore.template\" and run \"npm run template\" */\nimport { ResultFile } from '@alilc/lowcode-types';\n\nexport default function getFile(): [string[], ResultFile] {\n return [\n ['.'],\n {\n name: '.eslintignore',\n ext: '',\n content: 'node_modules/\\nlib/\\ndist/\\nbuild/\\ncoverage/\\ndemo/\\nes/\\n.rax/\\n',\n },\n ];\n}\n", "/* eslint-disable max-len */\n/* Note: this file is generated by \"npm run template\", please dont modify this file directly */\n/* -- instead, you should modify \"static-files/rax/.eslintrc.js.template\" and run \"npm run template\" */\nimport { ResultFile } from '@alilc/lowcode-types';\n\nexport default function getFile(): [string[], ResultFile] {\n return [\n ['.'],\n {\n name: '.eslintrc',\n ext: 'js',\n content:\n \"const { getESLintConfig } = require('@iceworks/spec');\\n\\n// https://www.npmjs.com/package/@iceworks/spec\\nmodule.exports = {\\n ...getESLintConfig('rax'),\\n rules: {\\n 'max-len': ['error', { code: 200 }],\\n 'function-paren-newline': 'off',\\n '@typescript-eslint/indent': 'off',\\n 'prettier/prettier': 'off',\\n 'no-empty': 'off',\\n 'no-unused-vars': 'off',\\n '@iceworks/best-practices/recommend-functional-component': 'off',\\n },\\n};\\n\",\n },\n ];\n}\n", "/* eslint-disable max-len */\n/* Note: this file is generated by \"npm run template\", please dont modify this file directly */\n/* -- instead, you should modify \"static-files/rax/.gitignore.template\" and run \"npm run template\" */\nimport { ResultFile } from '@alilc/lowcode-types';\n\nexport default function getFile(): [string[], ResultFile] {\n return [\n ['.'],\n {\n name: '.gitignore',\n ext: '',\n content:\n '# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.\\n\\n*~\\n*.swp\\n*.log\\n\\n.DS_Store\\n.idea/\\n.temp/\\n\\nbuild/\\ndist/\\nlib/\\ncoverage/\\nnode_modules/\\n.rax/\\n\\ntemplate.yml',\n },\n ];\n}\n", "/* eslint-disable max-len */\n/* Note: this file is generated by \"npm run template\", please dont modify this file directly */\n/* -- instead, you should modify \"static-files/rax/.prettierignore.template\" and run \"npm run template\" */\nimport { ResultFile } from '@alilc/lowcode-types';\n\nexport default function getFile(): [string[], ResultFile] {\n return [\n ['.'],\n {\n name: '.prettierignore',\n ext: '',\n content: 'node_modules/\\nlib/\\ndist/\\nbuild/\\ncoverage/\\ndemo/\\nes/\\n.rax/\\n',\n },\n ];\n}\n", "/* eslint-disable max-len */\n/* Note: this file is generated by \"npm run template\", please dont modify this file directly */\n/* -- instead, you should modify \"static-files/rax/.prettierrc.js.template\" and run \"npm run template\" */\nimport { ResultFile } from '@alilc/lowcode-types';\n\nexport default function getFile(): [string[], ResultFile] {\n return [\n ['.'],\n {\n name: '.prettierrc',\n ext: 'js',\n content:\n \"const { getPrettierConfig } = require('@iceworks/spec');\\n\\nmodule.exports = getPrettierConfig('rax');\\n\",\n },\n ];\n}\n", "/* eslint-disable max-len */\n/* Note: this file is generated by \"npm run template\", please dont modify this file directly */\n/* -- instead, you should modify \"static-files/rax/.stylelintignore.template\" and run \"npm run template\" */\nimport { ResultFile } from '@alilc/lowcode-types';\n\nexport default function getFile(): [string[], ResultFile] {\n return [\n ['.'],\n {\n name: '.stylelintignore',\n ext: '',\n content: 'node_modules/\\nlib/\\ndist/\\nbuild/\\ncoverage/\\ndemo/\\nes/\\n.rax/\\n',\n },\n ];\n}\n", "/* eslint-disable max-len */\n/* Note: this file is generated by \"npm run template\", please dont modify this file directly */\n/* -- instead, you should modify \"static-files/rax/.stylelintrc.js.template\" and run \"npm run template\" */\nimport { ResultFile } from '@alilc/lowcode-types';\n\nexport default function getFile(): [string[], ResultFile] {\n return [\n ['.'],\n {\n name: '.stylelintrc',\n ext: 'js',\n content:\n \"const { getStylelintConfig } = require('@iceworks/spec');\\n\\nmodule.exports = getStylelintConfig('rax');\\n\",\n },\n ];\n}\n", "/* eslint-disable max-len */\n/* Note: this file is generated by \"npm run template\", please dont modify this file directly */\n/* -- instead, you should modify \"static-files/rax/jsconfig.json.template\" and run \"npm run template\" */\nimport { ResultFile } from '@alilc/lowcode-types';\n\nexport default function getFile(): [string[], ResultFile] {\n return [\n ['.'],\n {\n name: 'jsconfig',\n ext: 'json',\n content:\n '{\\n \"compilerOptions\": {\\n \"baseUrl\": \".\",\\n \"jsx\": \"react\",\\n \"paths\": {\\n \"@/*\": [\"./src/*\"],\\n \"rax-app\": [\".rax/index.ts\"]\\n }\\n }\\n}\\n',\n },\n ];\n}\n", "/* eslint-disable max-len */\n/* Note: this file is generated by \"npm run template\", please dont modify this file directly */\n/* -- instead, you should modify \"static-files/rax/README.md.template\" and run \"npm run template\" */\nimport { ResultFile } from '@alilc/lowcode-types';\n\nexport default function getFile(): [string[], ResultFile] {\n return [\n ['.'],\n {\n name: 'README',\n ext: 'md',\n content:\n '# rax-materials-basic-app\\n\\n## Getting Started\\n\\n### `npm run start`\\n\\nRuns the app in development mode.\\n\\nOpen [http://localhost:3333](http://localhost:3333) to view it in the browser.\\n\\nThe page will reload if you make edits.\\n\\n### `npm run build`\\n\\nBuilds the app for production to the `build` folder.\\n',\n },\n ];\n}\n", "/* eslint-disable max-len */\n/* Note: this file is generated by \"npm run template\", please dont modify this file directly */\n/* -- instead, you should modify \"static-files/rax/tsconfig.json.template\" and run \"npm run template\" */\nimport { ResultFile } from '@alilc/lowcode-types';\n\nexport default function getFile(): [string[], ResultFile] {\n return [\n ['.'],\n {\n name: 'tsconfig',\n ext: 'json',\n content:\n '{\\n \"compileOnSave\": false,\\n \"buildOnSave\": false,\\n \"compilerOptions\": {\\n \"baseUrl\": \".\",\\n \"outDir\": \"build\",\\n \"module\": \"esnext\",\\n \"target\": \"es6\",\\n \"jsx\": \"preserve\",\\n \"jsxFactory\": \"createElement\",\\n \"moduleResolution\": \"node\",\\n \"allowSyntheticDefaultImports\": true,\\n \"lib\": [\"es6\", \"dom\"],\\n \"sourceMap\": true,\\n \"allowJs\": true,\\n \"rootDir\": \"./\",\\n \"forceConsistentCasingInFileNames\": true,\\n \"noImplicitReturns\": true,\\n \"noImplicitThis\": true,\\n \"noImplicitAny\": false,\\n \"importHelpers\": true,\\n \"strictNullChecks\": true,\\n \"suppressImplicitAnyIndexErrors\": true,\\n \"noUnusedLocals\": true,\\n \"skipLibCheck\": true,\\n \"paths\": {\\n \"@/*\": [\"./src/*\"],\\n \"rax-app\": [\".rax/index.ts\"]\\n }\\n },\\n \"include\": [\"src\", \".rax\"],\\n \"exclude\": [\"node_modules\", \"build\", \"public\"]\\n}',\n },\n ];\n}\n", "/* Note: this file is generated by \"npm run template\", please dont modify this file directly */\nimport { ResultDir } from '@alilc/lowcode-types';\n\nimport { createResultDir } from '../../../../../utils/resultHelper';\nimport { runFileGenerator } from '../../../../../utils/templateHelper';\nimport file0 from './files/.eslintignore';\nimport file1 from './files/.eslintrc.js';\nimport file2 from './files/.gitignore';\nimport file3 from './files/.prettierignore';\nimport file4 from './files/.prettierrc.js';\nimport file5 from './files/.stylelintignore';\nimport file6 from './files/.stylelintrc.js';\nimport file7 from './files/jsconfig.json';\nimport file8 from './files/README.md';\nimport file9 from './files/tsconfig.json';\n\nexport function generateStaticFiles(root = createResultDir('.')): ResultDir {\n runFileGenerator(root, file0);\n runFileGenerator(root, file1);\n runFileGenerator(root, file2);\n runFileGenerator(root, file3);\n runFileGenerator(root, file4);\n runFileGenerator(root, file5);\n runFileGenerator(root, file6);\n runFileGenerator(root, file7);\n runFileGenerator(root, file8);\n runFileGenerator(root, file9);\n return root;\n}\n", "import { ResultDir } from '@alilc/lowcode-types';\nimport { IProjectTemplate } from '../../../../../types';\nimport { generateStaticFiles } from './static-files';\n\nconst raxAppTemplate: IProjectTemplate = {\n slots: {\n components: {\n path: ['src', 'components'],\n },\n pages: {\n path: ['src', 'pages'],\n },\n router: {\n path: ['src'],\n fileName: 'router',\n },\n entry: {\n path: ['src'],\n fileName: 'app',\n },\n appConfig: {\n path: ['src'],\n fileName: 'app',\n },\n buildConfig: {\n path: [],\n fileName: 'build',\n },\n constants: {\n path: ['src'],\n fileName: 'constants',\n },\n utils: {\n path: ['src'],\n fileName: 'utils',\n },\n i18n: {\n path: ['src'],\n fileName: 'i18n',\n },\n globalStyle: {\n path: ['src'],\n fileName: 'global',\n },\n htmlEntry: {\n path: ['src', 'document'],\n fileName: 'index',\n },\n packageJSON: {\n path: [],\n fileName: 'package',\n },\n },\n\n async generateTemplate(): Promise<ResultDir> {\n return generateStaticFiles();\n },\n};\n\nexport default raxAppTemplate;\n", "import { COMMON_CHUNK_NAME } from '../../../../../const/generator';\n\nimport {\n BuilderComponentPlugin,\n BuilderComponentPluginFactory,\n ChunkType,\n FileType,\n ICodeStruct,\n} from '../../../../../types';\nimport { RaxFrameworkOptions } from '../types/RaxFrameworkOptions';\n\nconst pluginFactory: BuilderComponentPluginFactory<RaxFrameworkOptions> = (cfg) => {\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.JS,\n name: COMMON_CHUNK_NAME.ExternalDepsImport,\n content: `\nimport { runApp } from 'rax-app';\n\nimport './global.${cfg?.globalStylesFileType || 'css'}';\n`,\n linkAfter: [],\n });\n\n // \u5E94\u7528\u914D\u7F6E\n const appConfig = cfg?.appConfig || {};\n Object.assign(appConfig, {\n // \u8DEF\u7531\u914D\u7F6E\n router: {\n mode: 'hash',\n ...appConfig.router,\n },\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.JS,\n name: COMMON_CHUNK_NAME.FileMainContent,\n content: `\nrunApp(${JSON.stringify(appConfig, null, 2)});\n`,\n linkAfter: [\n COMMON_CHUNK_NAME.ExternalDepsImport,\n COMMON_CHUNK_NAME.InternalDepsImport,\n COMMON_CHUNK_NAME.ImportAliasDefine,\n COMMON_CHUNK_NAME.FileVarDefine,\n COMMON_CHUNK_NAME.FileUtilDefine,\n ],\n });\n\n return next;\n };\n return plugin;\n};\n\nexport default pluginFactory;\n", "import changeCase from 'change-case';\nimport { COMMON_CHUNK_NAME } from '../../../../../const/generator';\n\nimport {\n BuilderComponentPlugin,\n BuilderComponentPluginFactory,\n ChunkType,\n FileType,\n ICodeStruct,\n IParseResult,\n} from '../../../../../types';\nimport { ensureValidClassName } from '../../../../../utils/validate';\nimport { RaxFrameworkOptions } from '../types/RaxFrameworkOptions';\n\nconst pluginFactory: BuilderComponentPluginFactory<RaxFrameworkOptions> = (cfg) => {\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n const ir = next.ir as IParseResult;\n\n const routes = ir.globalRouter?.routes?.map((route) => ({\n path: route.path,\n source: `pages/${ensureValidClassName(changeCase.pascalCase(route.fileName))}/index`,\n })) || [{ path: '/', source: 'pages/Home/index' }];\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.JSON,\n name: COMMON_CHUNK_NAME.CustomContent,\n content: `\n{\n \"routes\": ${JSON.stringify(routes, null, 2)},\n \"window\": {\n \"title\": ${JSON.stringify(\n cfg?.title || ir.project?.meta?.title || ir.project?.meta?.name || '',\n )}\n }\n}\n `,\n linkAfter: [],\n });\n\n return next;\n };\n return plugin;\n};\n\nexport default pluginFactory;\n", "import { COMMON_CHUNK_NAME } from '../../../../../const/generator';\n\nimport {\n BuilderComponentPlugin,\n BuilderComponentPluginFactory,\n ChunkType,\n FileType,\n ICodeStruct,\n IParseResult,\n} from '../../../../../types';\nimport type { RaxFrameworkOptions } from '../types/RaxFrameworkOptions';\n\nconst pluginFactory: BuilderComponentPluginFactory<RaxFrameworkOptions> = (cfg) => {\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n const ir = next.ir as IParseResult;\n\n const miniAppBuildType =\n cfg?.buildConfig?.miniAppBuildType || ir.project?.config?.miniAppBuildType;\n const targets = cfg?.targets || ['web'];\n\n const buildCfg = {\n inlineStyle: false,\n plugins: [],\n targets,\n miniapp: miniAppBuildType\n ? {\n buildType: miniAppBuildType,\n ...cfg?.buildConfig?.miniapp,\n }\n : cfg?.buildConfig?.miniapp,\n ...cfg?.buildConfig,\n };\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.JSON,\n name: COMMON_CHUNK_NAME.CustomContent,\n content: `${JSON.stringify(buildCfg, null, 2)}\\n`,\n linkAfter: [],\n });\n\n return next;\n };\n return plugin;\n};\n\nexport default pluginFactory;\n", "import { COMMON_CHUNK_NAME } from '../../../../../const/generator';\n\nimport {\n BuilderComponentPlugin,\n BuilderComponentPluginFactory,\n ChunkType,\n FileType,\n ICodeStruct,\n IProjectInfo,\n} from '../../../../../types';\nimport { RaxFrameworkOptions } from '../types/RaxFrameworkOptions';\n\n/**\n * \u8FD9\u79CD\u65B9\u5F0F\u5DF2\u7ECF\u4E0D\u63A8\u8350\u4F7F\u7528\u4E86\n */\nconst pluginFactory: BuilderComponentPluginFactory<RaxFrameworkOptions> = (cfg) => {\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n const ir = next.ir as IProjectInfo;\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.JSX,\n name: COMMON_CHUNK_NAME.CustomContent,\n content: `\nimport { createElement } from 'rax';\nimport { Root, Style, Script } from 'rax-document';\n\nfunction Document() {\n return (\n <html>\n <head>\n <meta charset=\"utf-8\" />\n <meta\n name=\"viewport\"\n content=\"width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no,viewport-fit=cover\"\n />\n <title>${cfg?.title || ir?.meta?.name || 'Rax App'}</title>\n <Style />\n </head>\n <body>\n {/* root container */}\n <Root />\n <Script />\n </body>\n </html>\n );\n}\n\nexport default Document;\n`,\n linkAfter: [],\n });\n\n return next;\n };\n return plugin;\n};\n\nexport default pluginFactory;\n", "import { COMMON_CHUNK_NAME } from '../../../../../const/generator';\n\nimport {\n BuilderComponentPlugin,\n BuilderComponentPluginFactory,\n ChunkType,\n FileType,\n ICodeStruct,\n IProjectInfo,\n} from '../../../../../types';\n\nexport interface GlobalStylePluginConfig {\n fileType: string;\n}\n\nconst pluginFactory: BuilderComponentPluginFactory<GlobalStylePluginConfig> = (\n config?: Partial<GlobalStylePluginConfig>,\n) => {\n const cfg: GlobalStylePluginConfig = {\n fileType: FileType.SCSS,\n ...config,\n };\n\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n const ir = next.ir as IProjectInfo;\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: COMMON_CHUNK_NAME.StyleDepsImport,\n content: '',\n linkAfter: [],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: COMMON_CHUNK_NAME.StyleCssContent,\n content: `\nbody {\n -webkit-font-smoothing: antialiased;\n}\n`,\n linkAfter: [COMMON_CHUNK_NAME.StyleDepsImport],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: COMMON_CHUNK_NAME.StyleCssContent,\n content: ir.css || '',\n linkAfter: [COMMON_CHUNK_NAME.StyleDepsImport],\n });\n\n return next;\n };\n return plugin;\n};\n\nexport default pluginFactory;\n", "import semver from 'semver';\n\nexport function calcCompatibleVersion(v1: string | undefined | null, v2: string | undefined | null): string {\n if (!v1 && !v2) {\n return '*';\n }\n\n if (!v1 || v1 === '*') {\n return v2 || '*';\n }\n\n if (!v2 || v2 === '*') {\n return v1;\n }\n\n if (v1 === v2) {\n return v1;\n }\n\n if (!semver.intersects(v1, v2, { loose: true })) {\n throw new Error(`no compatible versions for \"${v1}\" and \"${v2}\"`);\n }\n\n if (semver.subset(v1, v2, { loose: true })) {\n return v1;\n }\n\n return v2;\n}\n", "import { IPublicTypeNpmInfo, PackageJSON } from '@alilc/lowcode-types';\nimport { COMMON_CHUNK_NAME } from '../../../../../const/generator';\n\nimport {\n BuilderComponentPlugin,\n BuilderComponentPluginFactory,\n ChunkType,\n FileType,\n ICodeStruct,\n IProjectInfo,\n} from '../../../../../types';\nimport { isNpmInfo } from '../../../../../utils/schema';\nimport { getErrorMessage } from '../../../../../utils/errors';\nimport { calcCompatibleVersion } from '../../../../../utils/version';\nimport { RaxFrameworkOptions } from '../types/RaxFrameworkOptions';\nimport { buildDataSourceDependencies } from '../../../../../utils/dataSource';\n\nconst pluginFactory: BuilderComponentPluginFactory<RaxFrameworkOptions> = (cfg) => {\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n const ir = next.ir as IProjectInfo;\n\n const npmDeps = getNpmDependencies(ir);\n\n const packageJson: PackageJSON = {\n name: cfg?.packageName || 'rax-demo-app',\n private: true,\n version: cfg?.packageVersion || '1.0.0',\n scripts: {\n start: 'rax-app start',\n build: 'rax-app build',\n eslint: 'eslint --ext .js,.jsx ./',\n stylelint: 'stylelint \"**/*.{css,scss,less}\"',\n prettier: 'prettier **/* --write',\n lint: 'npm run eslint && npm run stylelint',\n },\n dependencies: {\n // \u6570\u636E\u6E90\u76F8\u5173\u7684\u4F9D\u8D56:\n ...buildDataSourceDependencies(ir, cfg?.datasourceConfig),\n\n // \u73AF\u5883\u5224\u65AD\n 'universal-env': '^3.2.0',\n\n // \u56FD\u9645\u5316\u76F8\u5173\u4F9D\u8D56:\n 'intl-messageformat': '^9.3.6',\n\n // \u57FA\u7840\u5E93\n rax: '^1.1.0',\n 'rax-document': '^0.1.6',\n\n // \u5176\u4ED6\u7EC4\u4EF6\u5E93\n ...npmDeps.reduce<Record<string, string>>(\n (acc, npm) => ({\n ...acc,\n [npm.package]: npm.version || '*',\n }),\n {},\n ),\n },\n devDependencies: {\n '@iceworks/spec': '^1.0.0',\n 'rax-app': '^3.0.0',\n eslint: '^6.8.0',\n prettier: '^2.1.2',\n stylelint: '^13.7.2',\n },\n };\n\n next.chunks.push({\n type: ChunkType.JSON,\n fileType: FileType.JSON,\n name: COMMON_CHUNK_NAME.FileMainContent,\n content: packageJson,\n linkAfter: [],\n });\n\n return next;\n };\n return plugin;\n};\n\nexport default pluginFactory;\n\nfunction getNpmDependencies(project: IProjectInfo): IPublicTypeNpmInfo[] {\n const npmDeps: IPublicTypeNpmInfo[] = [];\n const npmNameToPkgMap = new Map<string, IPublicTypeNpmInfo>();\n\n const allDeps = project.packages;\n\n allDeps.forEach((dep) => {\n if (!isNpmInfo(dep)) {\n return;\n }\n\n const existing = npmNameToPkgMap.get(dep.package);\n if (!existing) {\n npmNameToPkgMap.set(dep.package, dep);\n npmDeps.push(dep);\n return;\n }\n\n if (existing.version !== dep.version) {\n try {\n npmNameToPkgMap.set(dep.package, {\n ...existing,\n version: calcCompatibleVersion(existing.version, dep.version),\n });\n } catch (e) {\n throw new Error(\n `Cannot find compatible version for ${dep.package}. Detail: ${getErrorMessage(e)}`,\n );\n }\n }\n });\n\n return npmDeps;\n}\n", "import template from './template';\nimport entry from './plugins/entry';\nimport appConfig from './plugins/appConfig';\nimport buildConfig from './plugins/buildConfig';\nimport entryDocument from './plugins/entryDocument';\nimport globalStyle from './plugins/globalStyle';\nimport packageJSON from './plugins/packageJSON';\n\nexport default {\n template,\n plugins: {\n appConfig,\n buildConfig,\n entry,\n entryDocument,\n globalStyle,\n packageJSON,\n },\n};\n", "import { IProjectBuilder, IProjectBuilderOptions } from '../types';\n\nimport { createProjectBuilder } from '../generator/ProjectBuilder';\n\nimport esModule from '../plugins/common/esmodule';\nimport containerClass from '../plugins/component/rax/containerClass';\nimport containerLifeCycles from '../plugins/component/rax/containerLifeCycle';\nimport containerMethods from '../plugins/component/rax/containerMethods';\nimport containerInitState from '../plugins/component/rax/containerInitState';\nimport containerInjectContext from '../plugins/component/rax/containerInjectContext';\nimport containerInjectDataSourceEngine from '../plugins/component/rax/containerInjectDataSourceEngine';\nimport containerInjectUtils from '../plugins/component/rax/containerInjectUtils';\nimport jsx from '../plugins/component/rax/jsx';\nimport commonDeps from '../plugins/component/rax/commonDeps';\nimport css from '../plugins/component/style/css';\nimport constants from '../plugins/project/constants';\nimport i18n from '../plugins/project/i18n';\nimport utils from '../plugins/project/utils';\n\nimport raxApp from '../plugins/project/framework/rax';\n\nimport { prettier } from '../postprocessor';\nimport { RaxFrameworkOptions } from '../plugins/project/framework/rax/types/RaxFrameworkOptions';\n\nexport interface RaxProjectBuilderOptions extends IProjectBuilderOptions, RaxFrameworkOptions {}\n\nexport default function createRaxProjectBuilder(\n options?: RaxProjectBuilderOptions,\n): IProjectBuilder {\n return createProjectBuilder({\n inStrictMode: options?.inStrictMode,\n extraContextData: { ...options },\n template: raxApp.template,\n plugins: {\n components: [\n commonDeps(),\n esModule({ fileType: 'jsx', useAliasName: false }),\n containerClass(),\n containerInitState(),\n containerMethods(),\n containerInjectContext(),\n containerInjectDataSourceEngine(options),\n containerInjectUtils(),\n containerLifeCycles(),\n jsx(),\n css(),\n ],\n pages: [\n commonDeps(),\n esModule({ fileType: 'jsx' }),\n containerClass(),\n containerInitState(),\n containerMethods(),\n containerInjectContext(),\n containerInjectDataSourceEngine(options),\n containerInjectUtils(),\n containerLifeCycles(),\n jsx(),\n css(),\n ],\n appConfig: [raxApp.plugins.appConfig(options)],\n buildConfig: [raxApp.plugins.buildConfig(options)],\n entry: [raxApp.plugins.entry(options)],\n constants: [constants()],\n utils: [esModule(), utils('rax')],\n i18n: [i18n()],\n globalStyle: [\n raxApp.plugins.globalStyle({ fileType: options?.globalStylesFileType || 'css' }),\n ],\n htmlEntry: [raxApp.plugins.entryDocument(options)],\n packageJSON: [raxApp.plugins.packageJSON(options)],\n },\n postProcessors: [prettier()],\n customizeBuilderOptions: options?.customizeBuilderOptions,\n });\n}\n\nexport const plugins = {\n containerClass,\n containerLifeCycles,\n containerMethods,\n containerInitState,\n containerInjectContext,\n containerInjectDataSourceEngine,\n containerInjectUtils,\n jsx,\n commonDeps,\n raxApp,\n};\n", "// \u751F\u6210 Vue 3 \u7EC4\u4EF6\n// import changeCase from 'change-case';\nimport {\n TEMPLATE_DEFINE_CHUNK_NAME,\n VUE_DEFAULT_LINK_AFTER,\n} from '../../../const/generator';\n\nimport {\n BuilderComponentPlugin,\n BuilderComponentPluginFactory,\n ChunkType,\n FileType,\n ICodeStruct,\n} from '../../../types';\n// import { ensureValidClassName } from '../../../utils/validate';\n\nconst pluginFactory: BuilderComponentPluginFactory<unknown> = () => {\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n // const ir = next.ir as IContainerInfo;\n\n // \u5C06\u6A21\u5757\u540D\u8F6C\u6362\u6210 PascalCase \u7684\u683C\u5F0F\uFF0C\u5E76\u6DFB\u52A0\u7279\u5B9A\u540E\u7F00\uFF0C\u9632\u6B62\u547D\u540D\u51B2\u7A81\n // const componentName = ensureValidClassName(\n // `${changeCase.pascalCase(ir.moduleName)}$$${ir.containerType}`,\n // );\n\n // template \u5F00\u59CB\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.VUE,\n name: TEMPLATE_DEFINE_CHUNK_NAME.TemplateStart,\n content: '<template>',\n linkAfter: [\n ...VUE_DEFAULT_LINK_AFTER[TEMPLATE_DEFINE_CHUNK_NAME.TemplateStart]\n ],\n });\n\n // \u9875\u9762\u7ED3\u6784\n // next.chunks.push({\n // type: ChunkType.STRING,\n // fileType: FileType.VUE,\n // name: TEMPLATE_DEFINE_CHUNK_NAME.TemplateDom,\n // content: `<div>${componentName} Component</div>`, // \u793A\u4F8B\u7ED3\u6784\n // linkAfter: [\n // ...VUE_DEFAULT_LINK_AFTER[TEMPLATE_DEFINE_CHUNK_NAME.TemplateDom]\n // ],\n // });\n\n // template \u7ED3\u675F\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.VUE,\n name: TEMPLATE_DEFINE_CHUNK_NAME.TemplateEnd,\n content: '</template>',\n linkAfter: [\n ...VUE_DEFAULT_LINK_AFTER[TEMPLATE_DEFINE_CHUNK_NAME.TemplateEnd]\n ],\n });\n\n // script \u5F00\u59CB\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.VUE,\n name: TEMPLATE_DEFINE_CHUNK_NAME.ScriptStart,\n content: '<script setup lang=\"ts\">',\n linkAfter: [\n ...VUE_DEFAULT_LINK_AFTER[TEMPLATE_DEFINE_CHUNK_NAME.ScriptStart]\n ],\n });\n\n // \u5F15\u5165\u5916\u90E8\u4F9D\u8D56(\u5199\u5728vueCommonDeps.ts\u6587\u4EF6)\n // next.chunks.push({\n // type: ChunkType.STRING,\n // fileType: FileType.VUE,\n // name: TEMPLATE_DEFINE_CHUNK_NAME.ExternalDepsImport,\n // content: \"import { ref, onMounted } from 'vue';\",\n // linkAfter: [\n // ...VUE_DEFAULT_LINK_AFTER[TEMPLATE_DEFINE_CHUNK_NAME.ScriptStart]\n // ],\n // });\n\n // \u6570\u636E\u5B9A\u4E49\n // next.chunks.push({\n // type: ChunkType.STRING,\n // fileType: FileType.VUE,\n // name: TEMPLATE_DEFINE_CHUNK_NAME.ConstVar,\n // content: '',\n // linkAfter: [TEMPLATE_DEFINE_CHUNK_NAME.ExternalDepsImport],\n // });\n\n // mounted \u751F\u547D\u5468\u671F\u5F00\u59CB\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.VUE,\n name: TEMPLATE_DEFINE_CHUNK_NAME.OnMountedStart,\n content: 'onMounted(async () => {',\n linkAfter: [\n ...VUE_DEFAULT_LINK_AFTER[TEMPLATE_DEFINE_CHUNK_NAME.OnMountedStart]\n ],\n });\n\n // mounted \u751F\u547D\u5468\u671F\u5185\u5BB9\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.VUE,\n name: TEMPLATE_DEFINE_CHUNK_NAME.OnMountedContent,\n content: '',\n linkAfter: [\n ...VUE_DEFAULT_LINK_AFTER[TEMPLATE_DEFINE_CHUNK_NAME.OnMountedContent]\n ],\n });\n\n // mounted \u751F\u547D\u5468\u671F\u7ED3\u675F\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.VUE,\n name: TEMPLATE_DEFINE_CHUNK_NAME.OnMountedEnd,\n content: '});',\n linkAfter: [\n ...VUE_DEFAULT_LINK_AFTER[TEMPLATE_DEFINE_CHUNK_NAME.OnMountedEnd]\n ],\n });\n\n // onUnMounted \u751F\u547D\u5468\u671F\u5F00\u59CB\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.VUE,\n name: TEMPLATE_DEFINE_CHUNK_NAME.UnMountedStart,\n content: 'onUnmounted(() => {',\n linkAfter: [\n ...VUE_DEFAULT_LINK_AFTER[TEMPLATE_DEFINE_CHUNK_NAME.UnMountedStart]\n ],\n });\n\n // // onUnMounted \u751F\u547D\u5468\u671F\u5185\u5BB9\n // next.chunks.push({\n // type: ChunkType.STRING,\n // fileType: FileType.VUE,\n // name: TEMPLATE_DEFINE_CHUNK_NAME.UnMountedContent,\n // content: '',\n // linkAfter: [\n // ...VUE_DEFAULT_LINK_AFTER[TEMPLATE_DEFINE_CHUNK_NAME.UnMountedContent]\n // ],\n // });\n\n // onUnMounted \u751F\u547D\u5468\u671F\u7ED3\u675F\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.VUE,\n name: TEMPLATE_DEFINE_CHUNK_NAME.UnMountedEnd,\n content: '});',\n linkAfter: [\n ...VUE_DEFAULT_LINK_AFTER[TEMPLATE_DEFINE_CHUNK_NAME.UnMountedEnd]\n ],\n });\n\n // script \u7ED3\u675F\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.VUE,\n name: TEMPLATE_DEFINE_CHUNK_NAME.ScriptEnd,\n content: '</script>',\n linkAfter: [\n ...VUE_DEFAULT_LINK_AFTER[TEMPLATE_DEFINE_CHUNK_NAME.ScriptEnd]\n ],\n });\n\n // CSS \u6837\u5F0F\u5F00\u59CB\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.VUE,\n name: TEMPLATE_DEFINE_CHUNK_NAME.CssStyleStart,\n content: '<style scoped lang=\"scss\">',\n linkAfter: [\n ...VUE_DEFAULT_LINK_AFTER[TEMPLATE_DEFINE_CHUNK_NAME.CssStyleStart]\n ],\n });\n\n // \u793A\u4F8B CSS \u6837\u5F0F\n // next.chunks.push({\n // type: ChunkType.STRING,\n // fileType: FileType.VUE,\n // name: TEMPLATE_DEFINE_CHUNK_NAME.CssStyleImport,\n // content: '', // \u793A\u4F8B\u6837\u5F0F\n // linkAfter: [\n // ...VUE_DEFAULT_LINK_AFTER[TEMPLATE_DEFINE_CHUNK_NAME.CssStyleImport]\n // ],\n // });\n\n // CSS \u6837\u5F0F\u7ED3\u675F\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.VUE,\n name: TEMPLATE_DEFINE_CHUNK_NAME.CssStyleEnd,\n content: '</style>',\n linkAfter: [\n ...VUE_DEFAULT_LINK_AFTER[TEMPLATE_DEFINE_CHUNK_NAME.CssStyleEnd]\n ],\n });\n\n return next;\n };\n return plugin;\n};\n\nexport default pluginFactory;\n", "import _ from 'lodash';\nimport {\n IScope,\n CodePiece,\n NodeGenerator,\n NodeGeneratorConfig,\n NodePlugin,\n PIECE_TYPE,\n CodeGeneratorError,\n AttrData,\n} from '../types';\nimport { generateCompositeType } from './compositeType';\nimport { IPublicTypeNodeSchema, isNodeSchema, IPublicTypeNodeDataType, IPublicTypeCompositeValue } from '@alilc/lowcode-types';\nimport {isValidIdentifier, isValidVueDirective} from './validate';\nimport { executeFunctionStack } from './aopHelper';\nimport { encodeJsxStringNode } from './encodeJsxAttrString';\nimport { getStaticExprValue } from './common';\nimport { array } from 'fp-ts';\n\n\n// \u5408\u5E76\u4E24\u4E2A NodeGeneratorConfig \u5BF9\u8C61\n// \u5B83\u4F1A\u5408\u5E76\u5904\u7406\u7A0B\u5E8F\u3001\u6807\u7B7E\u6620\u5C04\u3001\u5C5E\u6027\u63D2\u4EF6\u548C\u8282\u70B9\u63D2\u4EF6\uFF0C\u5E76\u8FD4\u56DE\u4E00\u4E2A\u65B0\u7684\u914D\u7F6E\u5BF9\u8C61\n// \u5982\u679C cfg1 \u548C cfg2 \u90FD\u6709 handlers\u3001tagMapping\u3001attrPlugins \u6216 nodePlugins\uFF0C\u5219\u5C06\u5B83\u4EEC\u5408\u5E76\u5230\u4E00\u8D77\nfunction mergeNodeGeneratorConfig(\n cfg1: NodeGeneratorConfig,\n cfg2: NodeGeneratorConfig = {},\n): NodeGeneratorConfig {\n const resCfg: NodeGeneratorConfig = {};\n if (cfg1.handlers || cfg2.handlers) {\n resCfg.handlers = {\n ...(cfg1.handlers || {}),\n ...(cfg2.handlers || {}),\n };\n }\n\n if (cfg1.tagMapping || cfg2.tagMapping) {\n resCfg.tagMapping = cfg2.tagMapping || cfg1.tagMapping;\n }\n\n if (cfg1.attrPlugins || cfg2.attrPlugins) {\n resCfg.attrPlugins = [];\n resCfg.attrPlugins.push(...(cfg2.attrPlugins || []));\n resCfg.attrPlugins.push(...(cfg1.attrPlugins || []));\n }\n\n if (cfg1.nodePlugins || cfg2.nodePlugins) {\n resCfg.nodePlugins = [];\n resCfg.nodePlugins.push(...(cfg2.nodePlugins || []));\n resCfg.nodePlugins.push(...(cfg1.nodePlugins || []));\n }\n\n return resCfg;\n}\n\n// \u68C0\u67E5\u5B57\u7B26\u4E32 v \u662F\u5426\u662F\u4E00\u4E2A\u7EAF\u5B57\u7B26\u4E32\nexport function isPureString(v: string) {\n // FIXME: \u76EE\u524D\u7684\u65B9\u5F0F\u4E0D\u591F\u4E25\u8C28\n return (v[0] === \"'\" && v[v.length - 1] === \"'\") || (v[0] === '\"' && v[v.length - 1] === '\"');\n}\n\n// \u751F\u6210\u5C5E\u6027\u503C\u3002\n// \u4F20\u5165\u7684 attrData \u5305\u542B\u5C5E\u6027\u540D\u548C\u5C5E\u6027\u503C\uFF0Cscope \u7528\u4E8E\u5B58\u50A8\u4E0A\u4E0B\u6587\u4FE1\u606F\uFF0Cconfig \u5305\u542B\u4E86\u8282\u70B9\u751F\u6210\u5668\u7684\u914D\u7F6E\u4FE1\u606F\u3002\n// \u8BE5\u51FD\u6570\u8FD4\u56DE\u4E00\u4E2A CodePiece \u6570\u7EC4\uFF0C\u5176\u4E2D\u5305\u542B\u5C5E\u6027\u540D\u548C\u5904\u7406\u540E\u7684\u5C5E\u6027\u503C\u3002\nfunction generateAttrValue(\n attrData: { attrName: string; attrValue: IPublicTypeCompositeValue },\n scope: IScope,\n config?: NodeGeneratorConfig,\n): CodePiece[] {\n const valueStr = generateCompositeType(attrData.attrValue, scope, {\n handlers: config?.handlers,\n nodeGenerator: config?.self,\n });\n return [\n {\n type: PIECE_TYPE.ATTR,\n name: attrData.attrName,\n value: valueStr,\n },\n ];\n}\n\n// \u751F\u6210 Vue \u7684\u5C5E\u6027\nfunction generateAttr(\n attrName: string,\n attrValue: IPublicTypeCompositeValue,\n scope: IScope,\n config?: NodeGeneratorConfig,\n): CodePiece[] {\n let pieces: CodePiece[] = [];\n // pieces = generateAttrValue({ attrName, attrValue }, scope, config);\n\n if (config?.attrPlugins) {\n pieces = executeFunctionStack<AttrData, CodePiece[], NodeGeneratorConfig>(\n { attrName, attrValue },\n scope,\n config.attrPlugins,\n generateAttrValue,\n config,\n );\n } else {\n pieces = generateAttrValue({ attrName, attrValue }, scope, config);\n }\n\n pieces = pieces.map((p) => {\n if (p.name === \"__events\") {\n return null;\n }\n\n let newValue: string;\n let pName: string;\n \n if ((p.name === 'style' || p.name === 'defaultLocation') && p.value) {\n // \u5BF9 Vue 3 \u7684 style \u5C5E\u6027\u683C\u5F0F\u8FDB\u884C\u5904\u7406\n const styleObject = JSON.parse(p.value.replace(/{{|}}/g, '')); // \u53BB\u6389 {{}} \u5E76\u89E3\u6790\u4E3A\u5BF9\u8C61\n const styleString = Object.entries(styleObject)\n .map(([key, value]) => {\n // \u5224\u65AD value \u662F\u5426\u4E3A\u6570\u5B57\n // const isNumber = typeof value === 'number' || (!isNaN(Number(value)));\n // return isNumber ? `${key}: ${value}` : `${key}: '${value}'`;\n return `${key}: '${value === '' ? '' : value}'`;\n })\n .join(', ');\n // .join('; ');\n pName = `:${p.name.replace(/\"/g, '')}`;\n newValue = `\"{${styleString}}\"`; // \u8F6C\u6362\u4E3A Vue \u7684 style \u683C\u5F0F\n } else if (p.name === 'onClick' || p.name === 'onMouseUp') {\n pName = `@${p.name}`\n newValue = `\"${p.value}\"`\n } else if (p.name === 'contentProps') {\n const jsonObject = JSON.parse(p.value);\n // \u4F7F\u7528 JavaScript \u5BF9\u8C61\u5B57\u9762\u91CF\u8BED\u6CD5\u91CD\u65B0\u6784\u5EFA\u5B57\u7B26\u4E32\n // const jsObjectLiteral = `{${Object.keys(jsonObject).map(key => `${key}: ${JSON.stringify(jsonObject[key])}`).join(', ')}}`;\n // eslint-disable-next-line max-len\n const fullyFormattedObjectLiteral = `{${Object.entries(jsonObject as {[key: string]: any}).map(([key, value]) => `${key}: {${Object.entries(value as {[key: string]: any}).map(([innerKey, innerValue]) => `${innerKey}: '${innerValue}'`).join(', ')}}`).join(', ')}}`;\n newValue = `\"${fullyFormattedObjectLiteral}\"`;\n pName = `:${p.name}`;\n // } else if (p.name === 'dataSource') {\n } else if (p.name === 'dataSource') {\n newValue = `'${p.value}'`;\n pName = `${p.name}`;\n } else if (p.name === 'dataList') {\n let data;\n try {\n data = JSON.parse(p.value)\n } catch (error) {\n newValue = `\"${p.value.replace(/^state\\['(.*?)'\\]\\?\\./, '$1?.')}\"`\n pName = `:${p.name}`;\n }\n if (data) {\n newValue = `\"${JSON.stringify(data).replace(/\"(\\w+)\":/g, '$1:').replace(/:\"([^\"]*)\"/g, \":'$1'\")}\"`;\n pName = `:${p.name}`;\n }\n }else if (p.name === 'items'|| p.name === 'itemArray' || p.name === 'dataSourceSetting' || p.name === 'readDataList' || p.name === 'unReadDataList') {\n const data = JSON.parse(p.value)\n newValue = `\"${JSON.stringify(data).replace(/\"(\\w+)\":/g, '$1:').replace(/:\"([^\"]*)\"/g, \":'$1'\")}\"`;\n pName = `:${p.name}`;\n } else if (p.name === 'picUrls' || p.name === 'images') {\n const data = p.value.replace(/\"/g, \"'\");\n newValue = `\"${data}\"`\n pName = `:${p.name}`\n } else if (p.value && isPureString(p.value)) {\n newValue = `${p.value}`;\n pName = `${p.name}`;\n } else {\n // Vue \u7684\u6570\u636E\u7ED1\u5B9A\u4F7F\u7528\u53CC\u82B1\u62EC\u53F7\n newValue = `\"${p.value}\"`;\n pName = `:${p.name}`;\n }\n\n return {\n value: `${pName}=${newValue}`,\n type: PIECE_TYPE.ATTR,\n };\n }).filter(p => p !== null);\n\n return pieces;\n}\n\n// \u751F\u6210\u8282\u70B9\u7684\u6240\u6709\u5C5E\u6027\u90E8\u5206\uFF0C\u8FD4\u56DE\u4EE3\u7801\u7247\u6BB5\u6570\u7EC4\nfunction generateAttrs(\n nodeItem: IPublicTypeNodeSchema,\n scope: IScope,\n config?: NodeGeneratorConfig,\n): CodePiece[] {\n const { props } = nodeItem;\n\n let pieces: CodePiece[] = [];\n\n if (props) {\n if (!Array.isArray(props)) {\n Object.keys(props).forEach((propName: string) => {\n if (isValidIdentifier(propName) || isValidVueDirective(propName)) {\n pieces = pieces.concat(generateAttr(propName, props[propName] as IPublicTypeCompositeValue, scope, config));\n }\n });\n } else {\n props.forEach((prop) => {\n if (prop.name && isValidIdentifier(prop.name) && !prop.spread) {\n pieces = pieces.concat(generateAttr(prop.name, prop.value, scope, config));\n }\n\n // TODO: \u5904\u7406 spread \u573A\u666F\uFF08<Xxx {...(something)}/>)\n // \u8FD9\u79CD\u5728 schema \u91CC\u9762\u600E\u4E48\u63CF\u8FF0\n });\n }\n }\n\n return pieces;\n}\n\n// \u751F\u6210 v-if \u903B\u8F91\nfunction generateConditionVueCtrl(\n nodeItem: IPublicTypeNodeSchema,\n scope: IScope,\n config?: NodeGeneratorConfig,\n next?: NodePlugin,\n): CodePiece[] {\n const pieces: CodePiece[] = next ? next(nodeItem, scope, config) : [];\n\n if (nodeItem.condition != null && nodeItem.condition !== true) {\n let value = generateCompositeType(nodeItem.condition, scope, {\n handlers: config?.handlers,\n });\n\n value = value.replace(/[{}]/g, '');\n\n pieces.unshift({\n value: `v-if=\"${value}\"`,\n type: PIECE_TYPE.ATTR,\n });\n }\n\n return pieces;\n}\n\n// \u751F\u6210 v-for \u903B\u8F91\nfunction generateVueLoopCtrl(\n nodeItem: IPublicTypeNodeSchema,\n scope: IScope,\n config?: NodeGeneratorConfig,\n next?: NodePlugin,\n): CodePiece[] {\n if (nodeItem.loop) {\n const loopItemName = nodeItem.loopArgs?.[0] || 'item';\n const loopIndexName = nodeItem.loopArgs?.[1] || 'index';\n\n let loopDataExpr = generateCompositeType(nodeItem.loop, scope, {\n handlers: config?.handlers,\n });\n\n // \u5C06 v-for \u8868\u8FBE\u5F0F\u4E2D\u7684\u53CC\u5F15\u53F7\u66FF\u6362\u4E3A\u5355\u5F15\u53F7\n loopDataExpr = loopDataExpr.replace(/\"/g, \"'\");\n\n const pieces: CodePiece[] = next ? next(nodeItem, scope, config) : [];\n pieces.unshift({\n value: `v-for=\"(${loopItemName}, ${loopIndexName}) in ${loopDataExpr}\"`,\n type: PIECE_TYPE.ATTR,\n });\n\n return pieces;\n }\n\n return next ? next(nodeItem, scope, config) : [];\n}\n\n// generateBasicNode \u7528\u4E8E\u751F\u6210\u8282\u70B9\u7684\u57FA\u672C\u7ED3\u6784\u3002\u5B83\u4F1A\u751F\u6210\u5305\u542B\u6807\u7B7E\u540D\u79F0\u7684 CodePiece \u5E76\u8FD4\u56DE\u8BE5\u6570\u7EC4\u3002\nfunction generateBasicNode(\n nodeItem: IPublicTypeNodeSchema,\n scope: IScope,\n config?: NodeGeneratorConfig,\n): CodePiece[] {\n const pieces: CodePiece[] = [];\n let tagName = (config?.tagMapping || _.identity)(nodeItem.componentName);\n\n // Div\u6807\u7B7E\u8F6C\u6210div\u6807\u7B7E\n tagName = tagName === 'Div' ? 'div' : tagName;\n pieces.push({\n value: tagName || '', // FIXME: type detection error\n type: PIECE_TYPE.TAG,\n });\n\n return pieces;\n}\n\n// generateSimpleNode \u751F\u6210\u7B80\u5355\u7684\u8282\u70B9\u7ED3\u6784\uFF0C\u5305\u62EC\u57FA\u672C\u90E8\u5206\uFF08\u6807\u7B7E\uFF09\u3001\u5C5E\u6027\u90E8\u5206\u548C\u5B50\u8282\u70B9\u90E8\u5206\u3002\n// \u5B50\u8282\u70B9\u901A\u8FC7\u8C03\u7528 config.self \u6765\u9012\u5F52\u751F\u6210\u3002\nfunction generateSimpleNode(\n nodeItem: IPublicTypeNodeSchema,\n scope: IScope,\n config?: NodeGeneratorConfig,\n): CodePiece[] {\n const basicParts = generateBasicNode(nodeItem, scope, config) || [];\n const attrParts = generateAttrs(nodeItem, scope, config) || [];\n const childrenParts: CodePiece[] = [];\n if (nodeItem.children && config?.self) {\n const childrenStr = config.self(nodeItem.children, scope);\n\n childrenParts.push({\n type: PIECE_TYPE.CHILDREN,\n value: childrenStr,\n });\n }\n\n return [...basicParts, ...attrParts, ...childrenParts];\n}\n\n// \u5C06\u751F\u6210\u7684\u4EE3\u7801\u7247\u6BB5\u8FDE\u63A5\u6210\u4E00\u4E2A\u5B8C\u6574\u7684 template \u8282\u70B9\u3002\n// \u5B83\u68C0\u67E5\u4EE3\u7801\u7247\u6BB5\u662F\u5426\u5305\u542B\u5355\u4E2A\u6807\u7B7E\u540D\u79F0\uFF0C\u5E76\u5C06\u5C5E\u6027\u3001\u5B50\u8282\u70B9\u3001before \u548C after \u7247\u6BB5\u6574\u5408\u6210\u4E00\u4E2A JSX \u5B57\u7B26\u4E32\u3002\n\nfunction linkPieces(pieces: CodePiece[]): string {\n const tagsPieces = pieces.filter((p) => p.type === PIECE_TYPE.TAG);\n if (tagsPieces.length !== 1) {\n throw new CodeGeneratorError('Only one tag definition required', tagsPieces);\n }\n const tagName = tagsPieces[0].value;\n\n const beforeParts = pieces\n .filter((p) => p.type === PIECE_TYPE.BEFORE)\n .map((p) => p.value)\n .join('');\n\n const afterParts = pieces\n .filter((p) => p.type === PIECE_TYPE.AFTER)\n .map((p) => p.value)\n .join('');\n\n const childrenParts = pieces\n .filter((p) => p.type === PIECE_TYPE.CHILDREN)\n .map((p) => p.value)\n .join('');\n\n let attrsParts = pieces\n .filter((p) => p.type === PIECE_TYPE.ATTR)\n .map((p) => p.value)\n .join(' ');\n\n attrsParts = attrsParts ? ` ${attrsParts}` : '';\n\n if (childrenParts) {\n return `${beforeParts}<${tagName}${attrsParts}>${childrenParts}</${tagName}>${afterParts}`;\n }\n\n return `${beforeParts}<${tagName}${attrsParts} />${afterParts}`;\n}\n\n// generateNodeSchema \u662F\u8BE5\u6A21\u5757\u7684\u6838\u5FC3\u90E8\u5206\uFF0C\u7528\u4E8E\u5C06\u8282\u70B9\u751F\u6210 template \u4EE3\u7801\u3002\n// \u5B83\u53EF\u4EE5\u5E94\u7528 nodePlugins \u6765\u751F\u6210\u989D\u5916\u7684\u4EE3\u7801\u7247\u6BB5\uFF0C\u5E76\u8C03\u7528 generateSimpleNode \u751F\u6210\u8282\u70B9\u7684\u57FA\u672C\u7ED3\u6784\u3002\nfunction generateNodeSchema(\n nodeItem: IPublicTypeNodeSchema,\n scope: IScope,\n config?: NodeGeneratorConfig,\n): string {\n const pieces: CodePiece[] = [];\n if (config?.nodePlugins) {\n const res = executeFunctionStack<IPublicTypeNodeSchema, CodePiece[], NodeGeneratorConfig>(\n nodeItem,\n scope,\n config.nodePlugins,\n generateSimpleNode,\n config,\n );\n pieces.push(...res);\n } else {\n pieces.push(...generateSimpleNode(nodeItem, scope, config));\n }\n\n return linkPieces(pieces);\n}\n\nconst handleChildren = (v: string[]) => v.join('');\n\n// createNodeGenerator \u662F\u751F\u6210\u5668\u7684\u4E3B\u51FD\u6570\uFF0C\u5B83\u4F1A\u6839\u636E\u4F20\u5165\u7684\u914D\u7F6E cfg \u751F\u6210\u8282\u70B9\u4EE3\u7801\u3002\n// \u5982\u679C nodeItem \u662F\u6570\u7EC4\uFF0C\u751F\u6210\u5668\u4F1A\u9012\u5F52\u751F\u6210\u6BCF\u4E2A\u8282\u70B9\u7684\u4EE3\u7801\uFF0C\u5E76\u5C06\u5B83\u4EEC\u5408\u5E76\u6210\u4E00\u4E2A\u5B8C\u6574\u7684\u5B57\u7B26\u4E32\u3002\nexport function createNodeGenerator(cfg: NodeGeneratorConfig = {}): NodeGenerator<string> {\n const generateNode = (nodeItem: IPublicTypeNodeDataType, scope: IScope): string => {\n const ignoreNode = ['Navigation']\n if (_.isArray(nodeItem)) {\n const resList = nodeItem.map((n) => generateNode(n, scope));\n return handleChildren(resList);\n }\n\n if (isNodeSchema(nodeItem)) {\n //\u5FFD\u7565\u6307\u5B9A\u8282\u70B9\u751F\u6210\n // \u83B7\u53D6\u6807\u7B7E\u540D\n const tagName = (cfg?.tagMapping || _.identity)(nodeItem.componentName) as string;\n\n if(ignoreNode.includes(tagName)) {\n return '';\n }\n return generateNodeSchema(nodeItem, scope, {\n ...cfg,\n self: generateNode,\n });\n }\n\n const valueStr = generateCompositeType(nodeItem, scope, {\n handlers: cfg.handlers,\n nodeGenerator: generateNode,\n });\n\n if (isPureString(valueStr)) {\n // Vue \u6A21\u677F\u4E2D\u7684\u63D2\u503C\u8868\u8FBE\u5F0F\u4F7F\u7528 {{ }}\n // return `{{${encodeJsxStringNode(getStaticExprValue<string>(valueStr))}}}`;\n return `${encodeJsxStringNode(getStaticExprValue<string>(valueStr))}`;\n }\n\n // \u5904\u7406 Vue \u6A21\u677F\u4E2D\u7684\u52A8\u6001\u7ED1\u5B9A\uFF0C\u7528 v-bind \u6216 : \u6765\u4EE3\u66FF JSX \u4E2D\u7684 {}\n return `{{${valueStr}}}`;\n };\n\n // Vue \u4E0D\u9700\u8981 JSX \u7684 {} \u5305\u88F9\uFF0C\u56E0\u6B64\u4E0D\u9700\u8981 unwrapJsExprQuoteInJsx\n return (nodeItem: IPublicTypeNodeDataType, scope: IScope) => generateNode(nodeItem, scope);\n}\n\n\n// Vue \u4EE3\u7801\u751F\u6210\u5668\u7684\u6838\u5FC3\u51FD\u6570\nexport function createVueNodeGenerator(cfg?: NodeGeneratorConfig): NodeGenerator<string> {\n const newCfg = mergeNodeGeneratorConfig({\n nodePlugins: [generateVueLoopCtrl, generateConditionVueCtrl],\n }, cfg);\n\n return createNodeGenerator(newCfg);\n}\n\n/**\n * \u67E5\u627E\u6307\u5B9A\u8282\u70B9\n * @param node\n * @param name\n */\nfunction findNodeSchema(node: IPublicTypeNodeDataType, name: string): IPublicTypeNodeSchema | null {\n // \u68C0\u67E5\u5F53\u524D\u8282\u70B9\u662F\u5426\u662F\u6211\u4EEC\u8981\u627E\u7684\n if (node && node.componentName && node.componentName === name) {\n return node as IPublicTypeNodeSchema;\n }\n\n // \u9012\u5F52\u68C0\u67E5\u5B50\u8282\u70B9\n if (node.children) {\n if (Array.isArray(node.children)) {\n // \u904D\u5386\u5B50\u8282\u70B9\u6570\u7EC4\n for (const child of node.children) {\n const found = findNodeSchema(child, name);\n if (found) {\n return found; // \u627E\u5230\u540E\u7ACB\u5373\u8FD4\u56DE\n }\n }\n } else {\n // \u5904\u7406\u5355\u4E2A\u5B50\u8282\u70B9\n return findNodeSchema(node.children, name);\n }\n }\n\n return null; // \u672A\u627E\u5230\u65F6\u8FD4\u56DE null\n}\n\n/**\n * \u751F\u6210\u6307\u5B9A\u8282\u70B9\n * @param name \u6307\u5B9A\u8282\u70B9\u540D\u79F0\n * @param nodeItem schema\u6587\u4EF6\n * @param scope\n * @param cfg \u914D\u7F6E\n * @param props \u8981\u989D\u5916\u6DFB\u52A0\u7ED9\u7EC4\u4EF6\u7684\u5C5E\u6027\n */\nexport function generateByName(cfg: NodeGeneratorConfig = {}, name: string, nodeItem: IPublicTypeNodeDataType, scope: IScope, props: Record<string, any>): { code: string, node: IPublicTypeNodeSchema } {\n const targetNode = findNodeSchema(nodeItem, name);\n if (!targetNode) {\n return { code: '', node: {} as IPublicTypeNodeSchema };\n }\n targetNode.props = { ...targetNode.props, ...props };\n // \u751F\u6210\u4EE3\u7801\n return { code: generateNodeSchema(targetNode as IPublicTypeNodeSchema, scope, {\n ...cfg,\n }), node: targetNode }\n}\n", "/**\n * \u5224\u65AD\u662F\u5426\u662F\u539F\u5B50\u7C7B\u578B\u7684\u8868\u8FBE\u5F0F\n */\nexport function isLiteralAtomicExpr(expr: string): boolean {\n return (\n expr === 'null' ||\n expr === 'undefined' ||\n expr === 'true' ||\n expr === 'false' ||\n /^-?\\d+(\\.\\d+)?$/.test(expr)\n );\n}\n", "import { Expression } from '@babel/types';\n\n/** \u5224\u65AD\u662F\u975E\u662F\u4E00\u4E9B\u7B80\u5355\u76F4\u63A5\u7684\u5B57\u9762\u503C */\nexport function isSimpleStraightLiteral(expr: Expression): boolean {\n switch (expr.type) {\n case 'BigIntLiteral':\n case 'BooleanLiteral':\n case 'DecimalLiteral':\n case 'NullLiteral':\n case 'NumericLiteral':\n case 'RegExpLiteral':\n case 'StringLiteral':\n return true;\n default:\n return false;\n }\n}\n", "import { Expression } from '@babel/types';\nimport generate from '@babel/generator';\nimport { IScope } from '../../../types';\nimport { parseExpressionConvertThis2Context } from '../../../utils/expressionParser';\n\n/**\n * \u5C06\u6240\u6709\u7684 this.xxx \u66FF\u6362\u4E3A __$$context.xxx\n * @param expr\n */\nexport function transformThis2Context(\n expr: string | Expression,\n scope: IScope,\n { ignoreRootScope = false } = {},\n): string {\n if (ignoreRootScope && scope.parent == null) {\n return typeof expr === 'string' ? expr : generate(expr).code;\n }\n\n // \u4E0B\u9762\u8FD9\u79CD\u5B57\u7B26\u4E32\u66FF\u6362\u7684\u65B9\u5F0F\u867D\u7136\u7B80\u5355\u76F4\u63A5\uFF0C\u4F46\u662F\u5BF9\u4E8E\u590D\u6742\u573A\u666F\u4F1A\u8BEF\u5339\u914D\uFF0C\u6545\u540E\u671F\u6539\u6210\u4E86\u89E3\u6790 AST \u7136\u540E\u4FEE\u6539 AST \u6700\u540E\u518D\u91CD\u65B0\u751F\u6210\u4EE3\u7801\u7684\u65B9\u5F0F\n // return expr\n // .replace(/\\bthis\\.item\\./g, () => 'item.')\n // .replace(/\\bthis\\.index\\./g, () => 'index.')\n // .replace(/\\bthis\\./g, () => '__$$context.');\n return parseExpressionConvertThis2Context(\n expr,\n '__$$context',\n scope.bindings?.getAllBindings() || [],\n );\n}\n", "import { IScope } from '../../../types';\nimport { parseExpression } from '../../../utils/expressionParser';\nimport { isLiteralAtomicExpr } from '../util/isLiteralAtomicExpr';\nimport { isSimpleStraightLiteral } from '../util/isSimpleStraightLiteral';\nimport { transformThis2Context } from './transformThis2Context';\n\nexport function transformJsExpr(\n expr: string,\n scope: IScope,\n { dontWrapEval = false, dontTransformThis2ContextAtRootScope = false } = {},\n) {\n if (!expr) {\n return 'undefined';\n }\n\n if (isLiteralAtomicExpr(expr)) {\n return expr;\n }\n\n const exprAst = parseExpression(expr);\n\n // \u5BF9\u4E8E\u4E0B\u9762\u8FD9\u4E9B\u6BD4\u8F83\u5B89\u5168\u7684\u5B57\u9762\u503C\uFF0C\u53EF\u4EE5\u76F4\u63A5\u8FD4\u56DE\u5BF9\u5E94\u7684\u8868\u8FBE\u5F0F\uFF0C\u800C\u975E\u5305\u4E00\u5C42\n if (isSimpleStraightLiteral(exprAst)) {\n return expr;\n }\n\n // \u79FB\u9664 `this` \u5173\u952E\u5B57\n const transformedExpr = transformThis2Context(exprAst, scope, {\n ignoreRootScope: dontTransformThis2ContextAtRootScope,\n }).replace(/this\\.|state\\./g, '');\n\n if (dontWrapEval) {\n return transformedExpr;\n // return transformThis2Context(exprAst, scope, {\n // ignoreRootScope: dontTransformThis2ContextAtRootScope,\n // });\n }\n\n switch (exprAst.type) {\n // \u5BF9\u4E8E\u76F4\u63A5\u5199\u4E2A\u51FD\u6570\u7684\uFF0C\u5219\u4E0D\u7528\u518D\u5305\u4E0B\uFF0C\u56E0\u4E3A\u8FD9\u6837\u4E0D\u4F1A\u629B\u51FA\u5F02\u5E38\u7684\n case 'ArrowFunctionExpression':\n case 'FunctionExpression':\n return transformThis2Context(exprAst, scope, {\n ignoreRootScope: dontTransformThis2ContextAtRootScope,\n });\n\n default:\n break;\n }\n\n // \u5176\u4ED6\u7684\u90FD\u9700\u8981\u5305\u4E00\u5C42\n // return `__$$eval(() => (${transformThis2Context(exprAst, scope, {\n // ignoreRootScope: dontTransformThis2ContextAtRootScope,\n // })}))`;\n // return `{{${transformThis2Context(exprAst, scope, {\n // ignoreRootScope: dontTransformThis2ContextAtRootScope,\n // })}}}`;\n return `${transformedExpr}`;\n}\n", "// \u4ECE\u7EC4\u4EF6\u6811\u751F\u6210template\nimport {\n BuilderComponentPlugin,\n BuilderComponentPluginFactory,\n ChunkType,\n FileType,\n HandlerSet,\n ICodeStruct,\n IContainerInfo,\n IScope,\n NodeGeneratorConfig,\n} from '../../../types';\n\nimport { TEMPLATE_DEFINE_CHUNK_NAME } from '../../../const';\n\nimport { createVueNodeGenerator } from '../../../utils/nodeToTemplate';\nimport { Scope } from '../../../utils/Scope';\nimport { IPublicTypeJSExpression } from '@alilc/lowcode-types';\nimport { generateExpression } from '../../../utils/jsExpression';\nimport { transformJsExpr } from '../../../core/vue/handlers/transformJsExpression';\nimport { transformThis2Context } from '../../../core/vue/handlers/transformThis2Context';\nimport { generateCompositeType } from '../../../utils/compositeType';\n\n// \u63D2\u4EF6\u7684\u914D\u7F6E\u63A5\u53E3\uFF0C\u7528\u4E8E\u81EA\u5B9A\u4E49\u63D2\u4EF6\u7684\u884C\u4E3A\uFF0C\u5982\u6587\u4EF6\u7C7B\u578B\u548C\u8282\u70B9\u7C7B\u578B\u6620\u5C04\nexport interface PluginConfig {\n fileType?: string;\n nodeTypeMapping?: Record<string, string>;\n}\n\n// \u6838\u5FC3\u7684\u63D2\u4EF6\u5DE5\u5382\u51FD\u6570\uFF0C\u5B83\u751F\u6210\u5E76\u8FD4\u56DE\u4E00\u4E2A\u7528\u4E8E\u5904\u7406template\u751F\u6210\u7684\u63D2\u4EF6\nconst pluginFactory: BuilderComponentPluginFactory<PluginConfig> = (config?) => {\n const cfg = {\n fileType: FileType.VUE,\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n nodeTypeMapping: {} as Record<string, string>,\n ...config,\n };\n\n const { nodeTypeMapping } = cfg;\n\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n const { tolerateEvalErrors = true } = next.contextData;\n\n // \u8FD9\u91CC\u4F1A\u5C06\u5185\u90E8\u7684\u4E00\u4E9B\u5B50\u4E0A\u4E0B\u6587\u7684\u8BBF\u95EE(this.xxx)\u8F6C\u6362\u4E3A __$$context.xxx \u7684\u5F62\u5F0F\n // \u4E0E Rax \u6240\u4E0D\u540C\u7684\u662F\uFF0C\u8FD9\u91CC\u4E0D\u4F1A\u5C06\u6700\u9876\u5C42\u7684 this \u8F6C\u6362\u6389\n const customHandlers: HandlerSet<string> = {\n expression(input: IPublicTypeJSExpression, scope: IScope, config2) {\n return transformJsExpr(generateExpression(input, scope), scope, {\n dontWrapEval: !(config2?.tolerateEvalErrors ?? tolerateEvalErrors),\n dontTransformThis2ContextAtRootScope: true,\n });\n },\n function(input, scope: IScope) {\n return transformThis2Context(\n generateCompositeType(\n {\n type: 'JSFunction',\n value: input.value || 'function () {}',\n },\n Scope.createRootScope(),\n ),\n scope,\n { ignoreRootScope: true },\n );\n },\n };\n\n // \u5B9A\u4E49\u4E86\u5982\u4F55\u5904\u7406\u5C5E\u6027\uFF08\u5982 ref\uFF09\u3001\u6807\u7B7E\u6620\u5C04\u548C\u9519\u8BEF\u5BB9\u5FCD\u673A\u5236\n const generatorPlugins: NodeGeneratorConfig = {\n handlers: customHandlers,\n tagMapping: (v) => nodeTypeMapping[v] || v,\n tolerateEvalErrors,\n };\n\n const generator = createVueNodeGenerator(generatorPlugins);\n\n // createReactNodeGenerator \u51FD\u6570\u521B\u5EFA\u4E00\u4E2A Vue \u8282\u70B9\u751F\u6210\u5668\uFF0C\u5E76\u901A\u8FC7\u4F20\u5165\u7684 ir\uFF08\u4E2D\u95F4\u8868\u793A\uFF09\u548C scope\uFF08\u4F5C\u7528\u57DF\uFF09\u751F\u6210\u6700\u7EC8\u7684 JSX \u5185\u5BB9\n const ir = next.ir as IContainerInfo;\n const scope: IScope = Scope.createRootScope();\n const templateContent = generator(ir, scope); // \u751F\u6210 Vue \u6A21\u677F\u5185\u5BB9\n // Vue \u6A21\u677F\u751F\u6210\u7ED3\u679C\u88AB\u4FDD\u5B58\u5230 next.chunks \u4E2D\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: TEMPLATE_DEFINE_CHUNK_NAME.TemplateDom,\n // content: '',\n content: `\n ${templateContent}\n `,\n linkAfter: [TEMPLATE_DEFINE_CHUNK_NAME.TemplateStart],\n });\n\n return next;\n };\n return plugin;\n};\n\nexport default pluginFactory;\n", "// VUE\u6846\u67B6\u7684\u516C\u5171\u4F9D\u8D56\nimport { TEMPLATE_DEFINE_CHUNK_NAME } from '../../../const';\n\nimport {\n BuilderComponentPlugin,\n BuilderComponentPluginFactory,\n ChunkType,\n FileType,\n ICodeStruct,\n} from '../../../types';\n\nconst pluginFactory: BuilderComponentPluginFactory<unknown> = () => {\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.VUE,\n name: TEMPLATE_DEFINE_CHUNK_NAME.ExternalDepsImport,\n content: `\nimport { onMounted, onUnmounted, ref } from 'vue';\nimport { useRouter } from 'vue-router';`,\n linkAfter: [TEMPLATE_DEFINE_CHUNK_NAME.ScriptStart],\n });\n\n return next;\n };\n return plugin;\n};\n\nexport default pluginFactory;\n", "const suffix = 'Request';\n/**\n * \u83B7\u53D6api\u540D\u79F0\n */\nexport function getApiName(apiId: string) {\n return apiId + suffix;\n}\n", "import {\n InterpretDataSourceConfig\n} from '@alilc/lowcode-types';\n\nimport {\n TEMPLATE_DEFINE_CHUNK_NAME,\n DEFAULT_LINK_AFTER\n} from '../../../const';\n\nimport {\n BuilderComponentPlugin,\n BuilderComponentPluginFactory,\n ChunkType,\n FileType,\n ICodeStruct\n} from '../../../types';\n\nimport { isValidContainerType } from '../../../utils/schema';\nimport { getApiName } from '../../../utils/apiHandler';\n\nexport interface PluginConfig {\n fileType?: string;\n\n /**\n * \u6570\u636E\u6E90\u914D\u7F6E\n */\n datasourceConfig?: {\n\n /** \u6570\u636E\u6E90\u5F15\u64CE\u7684\u7248\u672C */\n engineVersion?: string;\n\n /** \u6570\u636E\u6E90\u5F15\u64CE\u7684\u5305\u540D */\n enginePackage?: string;\n\n /** \u6570\u636E\u6E90 handlers \u7684\u7248\u672C */\n handlersVersion?: {\n [key: string]: string;\n };\n\n /** \u6570\u636E\u6E90 handlers \u7684\u5305\u540D */\n handlersPackages?: {\n [key: string]: string;\n };\n };\n}\n\nconst pluginFactory: BuilderComponentPluginFactory<PluginConfig> = () => {\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n const dataSourceConfig = isValidContainerType(pre.ir) ? pre.ir.dataSource : null;\n const dataSourceItems: InterpretDataSourceConfig[] =\n (dataSourceConfig && dataSourceConfig.list) || [];\n if (dataSourceItems.length > 0) {\n dataSourceItems.forEach((ds) => {\n const dsType = ds.type || 'fetch';\n // \u5904\u7406\u975E\u81EA\u5B9A\u4E49\u6570\u636E\u6E90\n if (dsType !== 'custom') {\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.VUE,\n name: TEMPLATE_DEFINE_CHUNK_NAME.InternalDepsImport,\n content: `import ${getApiName(ds.id)} from '@/api/${ds.id}';`,\n linkAfter: [...DEFAULT_LINK_AFTER[TEMPLATE_DEFINE_CHUNK_NAME.InternalDepsImport]],\n });\n }\n });\n }\n\n return next;\n };\n return plugin;\n};\n\nexport default pluginFactory;\n", "import { flatMap, camelCase, get } from 'lodash';\nimport {DEFAULT_LINK_AFTER, TEMPLATE_DEFINE_CHUNK_NAME, VUE_MODULE_NAME} from '../../../const';\n\nimport {\n BuilderComponentPlugin,\n BuilderComponentPluginFactory,\n ChunkType,\n CodeGeneratorError,\n DependencyType,\n FileType,\n ICodeChunk,\n ICodeStruct,\n IDependency,\n IExternalDependency,\n IInternalDependency,\n IWithDependency,\n} from '../../../types';\n\nimport { isValidIdentifier } from '../../../utils/validate';\n\n// TODO: main \u8FD9\u4E2A\u4FE1\u606F\u5230\u5E95\u600E\u4E48\u7528\uFF0C\u662F\u4E0D\u662F\u5916\u90E8\u5305\u4E0D\u9700\u8981\u4F7F\u7528\uFF1F\nconst DEP_MAIN_BLOCKLIST = ['lib', 'lib/index', 'es', 'es/index', 'main'];\nconst DEFAULT_EXPORT_NAME = '__default__';\n\n/**\n * \u5C06\u4E0D\u540C\u5305\u7684\u4F9D\u8D56\u5206\u7EC4\n * @param deps\n */\nfunction groupDepsByPack(deps: IDependency[]): Record<string, IDependency[]> {\n const depMap: Record<string, IDependency[]> = {};\n\n const addDep = (pkg: string, dep: IDependency) => {\n if (!depMap[pkg]) {\n depMap[pkg] = [];\n }\n depMap[pkg].push(dep);\n };\n\n deps.forEach((dep) => {\n if (dep.dependencyType === DependencyType.Internal) {\n addDep(`${(dep as IInternalDependency).moduleName}${dep.main ? `/${dep.main}` : ''}`, dep);\n } else {\n let depMain = '';\n // TODO: \u90E8\u5206\u7C7B\u578B\u7684 main \u6682\u65F6\u8BA4\u4E3A\u6CA1\u7528\n if (dep.main && DEP_MAIN_BLOCKLIST.indexOf(dep.main) < 0) {\n depMain = dep.main;\n }\n if (depMain.substring(0, 1) === '/') {\n depMain = depMain.substring(1);\n }\n addDep(`${(dep as IExternalDependency).package}${depMain ? `/${depMain}` : ''}`, dep);\n }\n });\n\n return depMap;\n}\n\ninterface IDependencyItem {\n exportName: string;\n aliasName?: string;\n isDefault?: boolean;\n subName?: string;\n nodeIdentifier?: string; // \u4E0E\u4F7F\u7528\u5904\u7684\u6620\u5C04\u5173\u7CFB\uFF0C\u7406\u8BBA\u4E0A\u662F\u4E0D\u53EF\u53D8\u66F4\u7684\uFF0C\u5982\u9700\u53D8\u66F4\u9700\u8981\u63D0\u4F9B\u989D\u5916\u4FE1\u606F\n source: IDependency;\n}\n\ninterface IExportItem {\n exportName: string;\n aliasNames: string[];\n isDefault?: boolean;\n needOriginExport: boolean;\n}\n\nfunction getDependencyIdentifier(info: IDependencyItem): string {\n return info.aliasName || info.exportName;\n}\n\n/**\n * \u83B7\u53D6\u4F9D\u8D56\u7684\u5BFC\u51FA\u540D\u79F0\n * @param dep\n */\nfunction getExportNameOfDep(dep: IDependency): string {\n if (dep.destructuring) {\n return (\n dep.exportName ||\n dep.componentName ||\n throwNewError('destructuring dependency must have exportName or componentName')\n );\n }\n\n if (!dep.subName) {\n return (\n dep.componentName ||\n dep.exportName ||\n throwNewError('dependency item must have componentName or exportName')\n );\n }\n\n return (\n dep.exportName ||\n `__$${camelCase(\n get(dep, 'moduleName') ||\n get(dep, 'package') ||\n throwNewError('dep.moduleName or dep.package is undefined'),\n )}_default`\n );\n}\n\nfunction throwNewError(msg: string): never {\n throw new Error(msg);\n}\n\nfunction buildPackageImport(\n pkg: string,\n deps: IDependency[],\n targetFileType: string,\n useAliasName: boolean,\n): ICodeChunk[] {\n // \u5982\u679C\u538B\u6839\u6CA1\u6709\u5305\uFF0C\u5219\u4E0D\u751F\u6210\u5BF9\u5E94\u7684 import \u8BED\u53E5\uFF08\u751F\u6210\u4E86\u6CA1\u6709\u4EFB\u4F55\u610F\u4E49\uFF09\n if (!pkg || pkg === 'undefined' || pkg === 'null') {\n // TODO: \u8981\u4E0D\u8981\u52A0\u4E2A warning\uFF1F\n return [];\n }\n\n const chunks: ICodeChunk[] = [];\n\n const exportItems: Record<string, IExportItem> = {};\n const defaultExportNames: string[] = [];\n\n const depsInfo: IDependencyItem[] = deps.map((dep) => {\n const info: IDependencyItem = {\n exportName: getExportNameOfDep(dep),\n isDefault: !dep.destructuring,\n subName: dep.subName || undefined,\n nodeIdentifier: dep.componentName || undefined,\n source: dep,\n };\n\n // \u4E0B\u9762 5 \u4E2A\u903B\u8F91\u662F\u6E05\u7406\u4E0D\u5FC5\u8981\u7684\u5197\u4F59\u4FE1\u606F\uFF0C\u505A\u5230\u6570\u636E\u7ED3\u6784\u5F52\u4E00\u5316\n if (info.isDefault) {\n if (defaultExportNames.indexOf(info.exportName) < 0) {\n defaultExportNames.push(info.exportName);\n }\n }\n\n if (!info.subName) {\n if (info.nodeIdentifier === info.exportName) {\n info.nodeIdentifier = undefined;\n }\n\n if (info.isDefault) {\n info.aliasName = info.nodeIdentifier || info.exportName;\n info.exportName = DEFAULT_EXPORT_NAME;\n }\n\n if (info.nodeIdentifier) {\n info.aliasName = info.nodeIdentifier;\n info.nodeIdentifier = undefined;\n }\n } else {\n if (info.isDefault) {\n info.aliasName = info.exportName;\n info.exportName = DEFAULT_EXPORT_NAME;\n }\n\n if (info.nodeIdentifier === `${info.exportName}.${info.subName}`) {\n info.nodeIdentifier = undefined;\n }\n }\n\n return info;\n });\n\n // \u5EFA\u7ACB export \u9879\u76EE\u7684\u5217\u8868\n depsInfo.forEach((info) => {\n if (!exportItems[info.exportName]) {\n exportItems[info.exportName] = {\n exportName: info.exportName,\n isDefault: info.isDefault,\n aliasNames: [],\n needOriginExport: false,\n };\n }\n\n if (!info.nodeIdentifier && !info.aliasName) {\n exportItems[info.exportName].needOriginExport = true;\n }\n });\n\n // \u5EFA\u7ACB\u522B\u540D\u5B57\u5178\n depsInfo.forEach((info) => {\n if (info.aliasName) {\n const { aliasNames } = exportItems[info.exportName];\n if (aliasNames.indexOf(info.aliasName) < 0) {\n aliasNames.push(info.aliasName);\n }\n }\n });\n\n // fix: \u7236\u7EC4\u4EF6ImportAliasDefine, \u4E0E\u5B50\u7EC4\u4EF6import\u7684\u7236\u7EC4\u4EF6\u51B2\u7A81\u60C5\u51B5\n depsInfo.forEach((info) => {\n if (info.nodeIdentifier) {\n const exportItem = exportItems[info.exportName];\n if (!exportItem.needOriginExport && exportItem.aliasNames.length > 0) {\n // eslint-disable-next-line no-param-reassign\n info.aliasName = exportItem.aliasNames[0];\n }\n }\n });\n\n // \u53D1\u73B0 nodeIdentifier \u4E0E exportName \u6216\u8005 aliasName \u51B2\u7A81\u7684\u573A\u666F\n const nodeIdentifiers = depsInfo.map((info) => info.nodeIdentifier).filter(Boolean);\n const conflictInfos = flatMap(Object.keys(exportItems), (exportName) => {\n const exportItem = exportItems[exportName];\n const usedNames = [\n ...exportItem.aliasNames,\n ...(exportItem.needOriginExport || exportItem.aliasNames.length <= 0 ? [exportName] : []),\n ];\n const conflictNames = usedNames.filter((n) => nodeIdentifiers.indexOf(n) >= 0);\n if (conflictNames.length > 0) {\n return [\n ...(conflictNames.indexOf(exportName) >= 0 ? [[exportName, true, exportItem]] : []),\n ...conflictNames.filter((n) => n !== exportName).map((n) => [n, false, exportItem]),\n ];\n }\n return [];\n });\n\n const conflictExports = conflictInfos.filter((c) => c[1]).map((c) => c[0] as string);\n const conflictAlias = conflictInfos.filter((c) => !c[1]).map((c) => c[0] as string);\n\n const solutions: Record<string, string> = {};\n\n depsInfo.forEach((info) => {\n if (info.aliasName && conflictAlias.indexOf(info.aliasName) >= 0) {\n // find solution\n let solution = solutions[info.aliasName];\n if (!solution) {\n solution = `${info.aliasName}Alias`;\n const conflictItem = (conflictInfos.find((c) => c[0] === info.aliasName) ||\n [])[2] as IExportItem;\n conflictItem.aliasNames = conflictItem.aliasNames.filter((a) => a !== info.aliasName);\n conflictItem.aliasNames.push(solution);\n solutions[info.aliasName] = solution;\n }\n // eslint-disable-next-line no-param-reassign\n info.aliasName = solution;\n }\n\n if (conflictExports.indexOf(info.exportName) >= 0) {\n // find solution\n let solution = solutions[info.exportName];\n if (!solution) {\n solution = `${info.exportName}Export`;\n const conflictItem = (conflictInfos.find((c) => c[0] === info.exportName) ||\n [])[2] as IExportItem;\n conflictItem.aliasNames.push(solution);\n conflictItem.needOriginExport = false;\n solutions[info.exportName] = solution;\n }\n // eslint-disable-next-line no-param-reassign\n info.aliasName = solution;\n }\n });\n\n // \u5224\u65AD\u662F\u5426\u6240\u6709\u4F9D\u8D56\u90FD\u6709\u5408\u6CD5\u7684 Identifier\n depsInfo.forEach((info) => {\n const name = info.aliasName || info.exportName;\n if (!isValidIdentifier(name)) {\n throw new CodeGeneratorError(`Invalid Identifier [${name}]`);\n }\n if (info.nodeIdentifier && !isValidIdentifier(info.nodeIdentifier)) {\n throw new CodeGeneratorError(`Invalid Identifier [${info.nodeIdentifier}]`);\n }\n });\n\n const aliasDefineStatements: Record<string, string> = {};\n if (useAliasName) {\n Object.keys(exportItems).forEach((exportName) => {\n const aliasList = exportItems[exportName]?.aliasNames || [];\n if (aliasList.length > 0) {\n const srcName = exportItems[exportName].needOriginExport ? exportName : aliasList[0];\n const aliasNameList = exportItems[exportName].needOriginExport\n ? aliasList\n : aliasList.slice(1);\n aliasNameList.forEach((a) => {\n if (!aliasDefineStatements[a]) {\n aliasDefineStatements[a] = `const ${a} = ${srcName};`;\n }\n });\n }\n });\n }\n\n function getDefaultExportName(info: IDependencyItem): string {\n if (info.isDefault) {\n return defaultExportNames[0];\n }\n return info.exportName;\n }\n\n depsInfo.forEach((info) => {\n // \u5982\u679C\u662F\u5B50\u7EC4\u4EF6\uFF0C\u5219\u5BFC\u51FA\u7236\u7EC4\u4EF6\uFF0C\u5E76\u4E14\u6839\u636E\u81EA\u7EC4\u4EF6\u547D\u540D\u89C4\u5219\uFF0C\u5224\u65AD\u662F\u5426\u9700\u8981\u5B9A\u4E49\u6807\u8BC6\u7B26\n if (info.nodeIdentifier) {\n // \u524D\u63D0\uFF0C\u5B58\u5728 nodeIdentifier \u4E00\u5B9A\u662F\u6709 subName \u7684\uFF0C\u4E0D\u7136\u524D\u9762\u4F1A\u4F18\u5316\u6389\n const ownerName = getDependencyIdentifier(info);\n\n chunks.push({\n type: ChunkType.STRING,\n fileType: targetFileType,\n name: TEMPLATE_DEFINE_CHUNK_NAME.ExternalDepsImport,\n content: useAliasName ? `const ${info.nodeIdentifier} = ${ownerName}.${info.subName};` : '',\n linkAfter: [...DEFAULT_LINK_AFTER[TEMPLATE_DEFINE_CHUNK_NAME.ExternalDepsImport]],\n ext: {\n originalName: `${getDefaultExportName(info)}.${info.subName}`,\n aliasName: info.nodeIdentifier,\n dependency: info.source,\n },\n });\n } else if (info.aliasName) {\n // default \u65B9\u5F0F\u7684\u5BFC\u5165\u4F1A\u751F\u6210\u5355\u72ECde import \u8BED\u53E5\uFF0C\u65E0\u9700\u751F\u6210\u8D4B\u503C\u8BED\u53E5\n if (info.isDefault && defaultExportNames.find((n) => n === info.aliasName)) {\n delete aliasDefineStatements[info.aliasName];\n return;\n }\n\n let contentStatement = '';\n if (aliasDefineStatements[info.aliasName]) {\n contentStatement = aliasDefineStatements[info.aliasName];\n delete aliasDefineStatements[info.aliasName];\n }\n\n chunks.push({\n type: ChunkType.STRING,\n fileType: targetFileType,\n name: TEMPLATE_DEFINE_CHUNK_NAME.ExternalDepsImport,\n content: contentStatement,\n linkAfter: [...DEFAULT_LINK_AFTER[TEMPLATE_DEFINE_CHUNK_NAME.ExternalDepsImport]],\n ext: {\n originalName: getDefaultExportName(info),\n aliasName: info.aliasName,\n dependency: info.source,\n },\n });\n }\n });\n\n // \u53EF\u80FD\u4F1A\u5269\u4F59\u4E00\u4E9B\u5B58\u5728\u4E8C\u6B21\u8F6C\u6362\u7684\u5B9A\u4E49\n Object.keys(aliasDefineStatements).forEach((a) => {\n chunks.push({\n type: ChunkType.STRING,\n fileType: targetFileType,\n name: TEMPLATE_DEFINE_CHUNK_NAME.ExternalDepsImport,\n content: aliasDefineStatements[a],\n linkAfter: [...DEFAULT_LINK_AFTER[TEMPLATE_DEFINE_CHUNK_NAME.ExternalDepsImport]],\n });\n });\n\n const exportItemList = Object.keys(exportItems).map((k) => exportItems[k]);\n const defaultExport = exportItemList.filter((item) => item.isDefault);\n const otherExports = exportItemList.filter((item) => !item.isDefault);\n\n const statementL = ['import'];\n if (defaultExport.length > 0) {\n if (useAliasName) {\n statementL.push(defaultExportNames[0]);\n } else {\n statementL.push(defaultExport[0].aliasNames[0]);\n }\n if (otherExports.length > 0) {\n statementL.push(', ');\n }\n }\n if (otherExports.length > 0) {\n const items = otherExports.map((item) => {\n return !useAliasName || item.needOriginExport || item.aliasNames.length <= 0\n ? item.exportName\n : `${item.exportName} as ${item.aliasNames[0]}`;\n });\n statementL.push(`{ ${items.join(', ')} }`);\n }\n statementL.push('from');\n\n const getInternalDependencyModuleId = () => `@/${(deps[0] as IInternalDependency).type}/${pkg}`;\n\n if (deps[0].dependencyType === DependencyType.Internal) {\n // TODO: Internal Deps path use project slot setting\n statementL.push(`'${getInternalDependencyModuleId()}';`);\n chunks.push({\n type: ChunkType.STRING,\n fileType: targetFileType,\n name: TEMPLATE_DEFINE_CHUNK_NAME.InternalDepsImport,\n content: statementL.join(' '),\n linkAfter: [TEMPLATE_DEFINE_CHUNK_NAME.ExternalDepsImport],\n });\n } else {\n statementL.push(`'${pkg}';`);\n chunks.push({\n type: ChunkType.STRING,\n fileType: targetFileType,\n name: TEMPLATE_DEFINE_CHUNK_NAME.ExternalDepsImport,\n content: statementL.join(' '),\n linkAfter: [TEMPLATE_DEFINE_CHUNK_NAME.ScriptStart],\n });\n }\n\n // \u5904\u7406\u4E0B\u4E00\u4E9B\u989D\u5916\u7684 default \u65B9\u5F0F\u7684\u5BFC\u5165\n if (defaultExportNames.length > 1) {\n if (deps[0].dependencyType === DependencyType.Internal) {\n defaultExportNames.slice(1).forEach((exportName) => {\n chunks.push({\n type: ChunkType.STRING,\n fileType: targetFileType,\n name: TEMPLATE_DEFINE_CHUNK_NAME.InternalDepsImport,\n content: `import ${exportName} from '${getInternalDependencyModuleId()}';`,\n linkAfter: [TEMPLATE_DEFINE_CHUNK_NAME.ExternalDepsImport],\n });\n });\n } else {\n defaultExportNames.slice(1).forEach((exportName) => {\n chunks.push({\n type: ChunkType.STRING,\n fileType: targetFileType,\n name: TEMPLATE_DEFINE_CHUNK_NAME.ExternalDepsImport,\n content: `import ${exportName} from '${pkg}';`,\n linkAfter: [TEMPLATE_DEFINE_CHUNK_NAME.ScriptStart],\n });\n\n chunks.push({\n type: ChunkType.STRING,\n fileType: targetFileType,\n name: TEMPLATE_DEFINE_CHUNK_NAME.ExternalDepsImport,\n content: '',\n linkAfter: [TEMPLATE_DEFINE_CHUNK_NAME.ScriptStart],\n ext: {\n aliasName: exportName,\n originalName: exportName,\n dependency: {\n package: pkg,\n componentName: exportName,\n },\n },\n });\n });\n }\n }\n\n return chunks;\n}\n\nexport interface PluginConfig {\n fileType?: string; // \u5BFC\u51FA\u7684\u6587\u4EF6\u7C7B\u578B\n useAliasName?: boolean; // \u662F\u5426\u4F7F\u7528 componentName \u91CD\u547D\u540D\u7EC4\u4EF6 identifier\n filter?: (deps: IDependency[]) => IDependency[]; // \u652F\u6301\u8FC7\u6EE4\u80FD\u529B\n}\n\n/**\n * \u5C06\u4F9D\u8D56\u5730\u5740\u8F6C\u6362\u4E3Avue\u7EC4\u4EF6\u5730\u5740\n * @param deps\n */\nfunction depConvertToVue(deps: IDependency[]) {\n return deps.map((dep) => {\n // \u5FFD\u7565\u6700\u5916\u5C42\u7684page\n if (!dep.devMode || dep.devMode !== 'lowCode') {\n dep.package = VUE_MODULE_NAME\n dep.main = ''\n }\n return dep\n })\n}\n\nconst pluginFactory: BuilderComponentPluginFactory<PluginConfig> = (config?: PluginConfig) => {\n const cfg = {\n fileType: FileType.JS,\n useAliasName: true,\n ...(config || {}),\n };\n\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n const ir = next.ir as IWithDependency;\n\n if (ir && ir.deps && ir.deps.length > 0) {\n let deps = cfg.filter ? cfg.filter(ir.deps) : ir.deps;\n // \u8F6C\u6362\u4E3Avue\u4F9D\u8D56\n deps = depConvertToVue(deps);\n const packs = groupDepsByPack(deps);\n\n Object.keys(packs).forEach((pkg) => {\n const chunks = buildPackageImport(pkg, packs[pkg], cfg.fileType, cfg.useAliasName);\n next.chunks.push(...chunks);\n });\n }\n\n return next;\n };\n\n return plugin;\n};\n\nexport default pluginFactory;\n", "import { TEMPLATE_DEFINE_CHUNK_NAME, VUE_DEFAULT_LINK_AFTER } from '../../../const';\n\nimport { generateCompositeType } from '../../../utils/compositeType';\nimport { Scope } from '../../../utils/Scope';\n\nimport {\n BuilderComponentPlugin,\n BuilderComponentPluginFactory,\n ChunkType,\n FileType,\n ICodeStruct,\n IContainerInfo,\n} from '../../../types';\nimport { isValidContainerType } from '../../../utils/schema';\nimport { InterpretDataSourceConfig } from '@alilc/lowcode-types';\n\nexport interface PluginConfig {\n fileType?: string;\n implementType: 'inConstructor' | 'insMember' | 'hooks';\n}\n\nconst pluginFactory: BuilderComponentPluginFactory<PluginConfig> = (config?) => {\n const cfg: PluginConfig & { fileType: string } = {\n fileType: FileType.VUE,\n implementType: 'inConstructor',\n ...config,\n };\n\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n const ir = next.ir as IContainerInfo;\n const scope = Scope.createRootScope();\n\n const state = ir.state || {};\n // react\u7684state\u8F6Cvue\u7684ref\n const fields = Object.keys(state).map<string>((stateName) => {\n const value = generateCompositeType(state[stateName], scope);\n return `const ${stateName} = ref(${value})`;\n });\n // \u5C06api\u7684\u7ED3\u679C\u8F6C\u4E3Aref\u53D8\u91CF\n const dataSourceConfig = isValidContainerType(pre.ir) ? pre.ir.dataSource : null;\n const dataSourceItems: InterpretDataSourceConfig[] =\n (dataSourceConfig && dataSourceConfig.list) || [];\n dataSourceItems.forEach((item) => {\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: TEMPLATE_DEFINE_CHUNK_NAME.ConstVar,\n content: `const ${item.id} = ref()`,\n linkAfter: [...VUE_DEFAULT_LINK_AFTER[TEMPLATE_DEFINE_CHUNK_NAME.ConstVar]],\n });\n });\n // state\u8F6C\u6362\u4E3Aref\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: TEMPLATE_DEFINE_CHUNK_NAME.ConstVar,\n content: `${fields.join('\\n')}`,\n linkAfter: [...VUE_DEFAULT_LINK_AFTER[TEMPLATE_DEFINE_CHUNK_NAME.ConstVar]],\n });\n // \u8DEF\u7531\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: TEMPLATE_DEFINE_CHUNK_NAME.ConstVar,\n content: `const router = useRouter()`,\n linkAfter: [...VUE_DEFAULT_LINK_AFTER[TEMPLATE_DEFINE_CHUNK_NAME.ConstVar]],\n });\n return next;\n };\n return plugin;\n};\n\nexport default pluginFactory;\n", "import { TEMPLATE_DEFINE_CHUNK_NAME, VUE_DEFAULT_LINK_AFTER } from '../../../const';\n\nimport { generateFunction } from '../../../utils/jsExpression';\n\nimport {\n BuilderComponentPlugin,\n BuilderComponentPluginFactory,\n ChunkType,\n FileType,\n ICodeChunk,\n ICodeStruct,\n IContainerInfo,\n} from '../../../types';\nimport { isJSFunction, isJSExpression, InterpretDataSourceConfig } from '@alilc/lowcode-types';\nimport { isJSExpressionFn } from '../../../utils/common';\nimport { isValidContainerType } from '../../../utils/schema';\nimport { getApiName } from '../../../utils/apiHandler';\nimport {isJsExpression} from \"../../../utils/requestHandle\";\n\nexport interface PluginConfig {\n fileType?: string;\n exportNameMapping?: Record<string, string>;\n normalizeNameMapping?: Record<string, string>;\n exclude?: string[];\n}\n\nconst pluginFactory: BuilderComponentPluginFactory<PluginConfig> = (config?) => {\n const cfg = {\n fileType: FileType.VUE,\n exportNameMapping: {},\n normalizeNameMapping: {},\n ...config,\n };\n\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n const ir = next.ir as IContainerInfo;\n\n if (ir.lifeCycles) {\n const { lifeCycles } = ir;\n const chunks = Object.keys(lifeCycles).map<ICodeChunk | null>((lifeCycleName) => {\n // \u8FC7\u6EE4\u6389\u975E\u6CD5\u6570\u636E\uFF08\u6709\u4E9B\u573A\u666F\u4E0B\u4F1A\u8BEF\u4F20\u5165\u7A7A\u5B57\u7B26\u4E32\u6216 null)\n if (\n !isJSFunction(lifeCycles[lifeCycleName]) &&\n !isJSExpressionFn(lifeCycles[lifeCycleName]) &&\n !isJSExpression(lifeCycles[lifeCycleName])\n ) {\n return null;\n }\n\n let normalizeName;\n // constructor\u4F1A\u53D6\u5230\u5BF9\u8C61\u7684\u6784\u9020\u51FD\u6570\n if (lifeCycleName === 'constructor') {\n normalizeName = lifeCycleName;\n } else {\n normalizeName = cfg.normalizeNameMapping[lifeCycleName] || lifeCycleName;\n }\n\n if (cfg?.exclude?.includes(normalizeName)) {\n return null;\n }\n\n const exportName = cfg.exportNameMapping[lifeCycleName] || lifeCycleName;\n if (normalizeName === 'constructor') {\n // todo \u6784\u9020\u51FD\u6570\u6682\u65F6\u4E0D\u5904\u7406\n // return {\n // type: ChunkType.STRING,\n // fileType: cfg.fileType,\n // name: CLASS_DEFINE_CHUNK_NAME.ConstructorContent,\n // content: generateFunction(lifeCycles[lifeCycleName], { isBlock: true }),\n // linkAfter: [...VUE_DEFAULT_LINK_AFTER[CLASS_DEFINE_CHUNK_NAME.ConstructorStart]],\n // };\n }\n // react\u7684componentDidMount\u5BF9\u5E94vue\u7684mounted\n if (normalizeName === 'componentDidMount') {\n // TODO(grammar 2024.10.29) \u6D89\u53CA\u5230react\u4E13\u6709\u8BED\u6CD5\u540E\u7EED\u9047\u5230\u518D\u5904\u7406\uFF08\u5DF2\u5904\u7406this.xxx\uFF0Cthis.setState()\uFF09\n return {\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: TEMPLATE_DEFINE_CHUNK_NAME.OnMountedContent,\n content: generateFunction(lifeCycles[lifeCycleName], { isBlock: true, isToVue: true }),\n linkAfter: [...VUE_DEFAULT_LINK_AFTER[TEMPLATE_DEFINE_CHUNK_NAME.OnMountedContent]],\n };\n }\n\n if (normalizeName === 'componentWillUnmount') {\n // TODO(grammar 2024.10.29) \u6D89\u53CA\u5230react\u4E13\u6709\u8BED\u6CD5\u540E\u7EED\u9047\u5230\u518D\u5904\u7406\uFF08\u5DF2\u5904\u7406this.xxx\uFF0Cthis.setState()\uFF09\n return {\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: TEMPLATE_DEFINE_CHUNK_NAME.UnMountedContent,\n content: generateFunction(lifeCycles[lifeCycleName], { isBlock: true, isToVue: true }),\n linkAfter: [...VUE_DEFAULT_LINK_AFTER[TEMPLATE_DEFINE_CHUNK_NAME.UnMountedContent]],\n };\n }\n\n if (normalizeName === 'render') {\n // todo \u6682\u65F6\u4E0D\u5904\u7406 render\n // return {\n // type: ChunkType.STRING,\n // fileType: cfg.fileType,\n // name: TEMPLATE_DEFINE_CHUNK_NAME.ClassRenderPre,\n // content: generateFunction(lifeCycles[lifeCycleName], { isBlock: true }),\n // linkAfter: [TEMPLATE_DEFINE_CHUNK_NAME.ClassRenderStart],\n // };\n }\n\n return {\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: TEMPLATE_DEFINE_CHUNK_NAME.Method,\n content: generateFunction(lifeCycles[lifeCycleName], {\n name: exportName,\n isMember: true,\n isToVue: true\n }),\n linkAfter: [...VUE_DEFAULT_LINK_AFTER[TEMPLATE_DEFINE_CHUNK_NAME.Method]],\n };\n }).filter((i) => !!i);\n\n next.chunks.push(...chunks.filter((x): x is ICodeChunk => x !== null));\n // \u5C06api\u7684\u7ED3\u679C\u8D4B\u503C\u7ED9ref\u53D8\u91CF\n const dataSourceConfig = isValidContainerType(pre.ir) ? pre.ir.dataSource : null;\n const dataSourceItems: InterpretDataSourceConfig[] =\n (dataSourceConfig && dataSourceConfig.list) || [];\n dataSourceItems.forEach((item) => {\n let paramsStr = ''\n let paramsObject = `const ${item.id}Params = {};`\n const strArray: { key: string, value: string }[] = []\n // \u5F53\u8BF7\u6C42\u53C2\u6570\u4E3Ajs\u8868\u8FBE\u5F0F\u65F6\u5904\u7406\n if (item.options) {\n const params = item.options.params\n const keys = Object.keys(params);\n for (let i = 0; i < keys.length; i++) {\n if (isJsExpression(params[keys[i]])) {\n // \u5982\u679C\u662F\u8868\u8FBE\u5F0F\uFF0C\u5219\u8F6C\u4E3A\u5B57\u7B26\u4E32\n strArray.push(\n {\n key: keys[i],\n value: generateFunction(params[keys[i]], { isToVue: true, isDeleteLastSemicolon: true })\n }\n )\n }\n }\n paramsStr = `${strArray.map((item) => `${item.key}: ${item.value}`).join(',')}`\n paramsObject = `const ${item.id}Params = {${paramsStr}}`\n }\n // \u8BF7\u6C42\u53C2\u6570\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: TEMPLATE_DEFINE_CHUNK_NAME.OnMountedContent,\n content: paramsObject,\n linkAfter: [...VUE_DEFAULT_LINK_AFTER[TEMPLATE_DEFINE_CHUNK_NAME.OnMountedContent]],\n });\n // \u53D1\u9001\u8BF7\u6C42\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: TEMPLATE_DEFINE_CHUNK_NAME.OnMountedContent,\n content: `${item.id}.value = await ${getApiName(item.id)}.${item.id}(${item.id}Params);`,\n linkAfter: [...VUE_DEFAULT_LINK_AFTER[TEMPLATE_DEFINE_CHUNK_NAME.OnMountedContent]],\n });\n });\n }\n\n return next;\n };\n return plugin;\n};\n\nexport default pluginFactory;\n", "import {JSONObject} from '@alilc/lowcode-datasource-types/src/value-type';\nimport _ from 'lodash';\nimport {generateFunction} from \"./jsExpression\";\nimport {lineToUppercase} from \"./changeCase\";\n// \u662F\u5426\u662F\u672C\u5730\u6D4B\u8BD5\u73AF\u5883\nconst isLocal = false\n// \u672C\u5730\u6D4B\u8BD5\u8BF7\u6C42\u5934\nconst testHeader = {\n 'Content-Type': 'application/json',\n authToken: 'ccf8a1fc959b46a59cd6f6370c2ee8b0',\n siteCode: '936702478408355840',\n dcAuthType: 'authToken-936702478408355840',\n 'authToken-936702478408355840': '597e0475c06145faa01a36306568ef58',\n}\n// \u672C\u5730\u6D4B\u8BD5\u8BF7\u6C42\u5730\u5740\nconst testUrl = 'http://122.225.55.70:18085/source/api/dynamicFormTable/'\n// \u8BF7\u6C42\u7C7B\u578B\u679A\u4E3E\nenum REQUEST_TYPE {\n PAGE = 'page',\n SYSTEM_DICTIONARY = 'systemDictionary',\n}\ninterface formRegInfo {\n // \u5339\u914D\u6B63\u5219\n regex: RegExp,\n // \u662F\u5426\u83B7\u53D6\u8868\u5355\u4FE1\u606F\n isRequestForm: boolean,\n // \u83B7\u53D6\u8868\u5355id\n getFormId?: (url: string) => string\n // \u83B7\u53D6\u6700\u7EC8\u7684url\n enUrl: (url: string, formName?: string) => string\n}\n\n// \u8BF7\u6C42\u7C7B\u578B\u5339\u914D\u6B63\u5219\nconst regInfo: Record<string, formRegInfo> = {\n [REQUEST_TYPE.PAGE]: {\n regex: /^\\/source\\/api\\/dynamicFormTableRecord\\/page/,\n isRequestForm: true,\n enUrl: (url: string, formName?: string) => {\n return `/${formName}/page`\n },\n getFormId: (url: string) => {\n const urlArray = url.split('/')\n return urlArray[urlArray.length - 1]\n }\n },\n [REQUEST_TYPE.SYSTEM_DICTIONARY]: {\n regex: /^\\/source\\/api\\/systemDictionary\\/listDictionaryByRootCode\\//,\n isRequestForm: false,\n enUrl: (url: string, formName?: string) => {\n return url.replace('/source/api', '')\n }\n }\n}\n// \u8BF7\u6C42\u5934\u5FFD\u7565\u7684key\nconst ignoreHeaderKey = [\n 'authToken',\n 'siteCode',\n 'dcAuthType'\n]\n\n/**\n * \u8BF7\u6C42\u5934\u5904\u7406\n * @param headers \u8BF7\u6C42\u5934\n */\nexport function requestHeaderHandler(headers: JSONObject): string {\n if (!headers) {\n return '';\n }\n let endHeaders = '';\n for (let i = 0; i < Object.keys(headers).length; i++) {\n const key = Object.keys(headers)[i];\n // \u5FFD\u7565\u6307\u5B9Akey\n if (shouldIgnoreKey(key)) {\n break;\n }\n if (headers[key]) {\n let tempHeaders = `defaultConfig.header.data['${key}'] = '${headers[key]}'`;\n if (isJsExpression(headers[key])) {\n // js\u8868\u8FBE\u5F0F\u5904\u7406\n tempHeaders = `defaultConfig.header.data['${key}'] = ${generateFunction(headers[key], {isToVue: true})}`\n }\n endHeaders +=\n `${tempHeaders};`;\n }\n }\n return endHeaders;\n}\n\n/**\n * \u8BF7\u6C42\u4F53\u5904\u7406\n * @param params \u8BF7\u6C42\u4F53\n */\nexport function requestParamsHandler(params: JSONObject) {\n if (!params || Object.keys(params).length === 0) {\n return '';\n }\n // \u5C06\u8BF7\u6C42\u4F53\u5904\u7406\u6210key\uFF1A value\u7684\u5B57\u7B26\u4E32\n const paramsData = params ? Object.keys(params).map((key) => {\n if (isJsExpression(params[key])) {\n // todo \u5FFD\u7565js\u8868\u8FBE\u5F0F\uFF0C\u653E\u5728script\u90A3\u8FB9\u5904\u7406\n return ''\n }\n return `${key}: ${params[key]}`\n }\n ).filter(item => item).join(',') : ''\n return `data = {\n ${paramsData ? paramsData + ',' : ''}\n ...data\n }`;\n}\n\n/**\n * \u8BF7\u6C42\u7ED3\u679C\u5904\u7406\n */\nexport function requestAfterDataHandler() {\n // todo \u5F85\u5B9E\u73B0\n}\n\n/**\n * \u662F\u5426\u662Fjs\u8868\u8FBE\u5F0F\n * @param value\n */\nexport function isJsExpression(value: any) {\n return _.isObject(value) && value?.type == 'JSExpression'\n}\n\n/**\n * \u662F\u5426\u5FFD\u7565\u8BE5key\n * @param key\n */\nfunction shouldIgnoreKey(key: string) {\n // \u5982\u679C ignoreHeaderKey \u4E2D\u5B58\u5728\u5B8C\u5168\u5339\u914D\u7684 key\uFF0C\u5219\u76F4\u63A5\u5FFD\u7565\n if (ignoreHeaderKey.includes(key)) {\n return true;\n }\n\n // \u5224\u65AD key \u662F\u5426\u4EE5 'authToken-' \u5F00\u5934\uFF0C\u5E76\u540E\u9762\u8DDF\u7740\u6570\u5B57\uFF08\u52A8\u6001\u90E8\u5206\uFF09\n const dynamicKeyPattern = /^authToken-\\d+$/;\n if (dynamicKeyPattern.test(key)) {\n return true;\n }\n\n return false;\n}\n\n/**\n * \u5C06\u7EBF\u4E0A\u5730\u5740\u8F6C\u4E3A\u51FA\u7801\u540E\u7684\u8BF7\u6C42\u5730\u5740\n * @param url\n */\nexport async function handleUrl(url: string) {\n if (!url) {\n return ''\n }\n // \u4E0D\u662F\u6D4F\u89C8\u5668\u73AF\u5883\u5219\u76F4\u63A5\u8DF3\u8FC7\n // if (!process.env.BROWSER) {\n // return url\n // }\n // \u5224\u65AD\u8BF7\u6C42\u7C7B\u578B\n let regInfoItem\n for (let i = 0; i < Object.keys(regInfo).length; i++) {\n const item = Object.keys(regInfo)[i]\n if (regInfo[item].regex.test(url)) {\n regInfoItem = regInfo[item]\n break\n }\n }\n if (!regInfoItem) {\n return ''\n }\n let formName = ''\n if (regInfoItem.isRequestForm) {\n // \u8BF7\u6C42\u8868\u5355\u4FE1\u606F\n if (regInfoItem.getFormId) {\n // \u83B7\u53D6\u8868\u5355id\n const formId = regInfoItem.getFormId(url);\n const endUrl = process.env.BROWSER ? `/source/api/dynamicFormTable/${formId}` : testUrl + formId\n console.log('endrul', endUrl)\n console.log('header', getHeader())\n try {\n await fetch(endUrl, {\n method: 'get',\n headers: getHeader(),\n })\n .then((res) => res.json())\n .then(res => {\n console.log('\u8FDB\u5165\u4E86fetch, res', res)\n formName = lineToUppercase(res.data.tableName)\n console.log('\u8FDB\u5165\u4E86fetch, formName', formName)\n })\n } catch (e) {\n console.error(\"\u8BF7\u6C42\u5931\u8D25:\", e);\n }\n }\n }\n return regInfoItem.enUrl(url, formName)\n}\n\n/**\n * \u83B7\u53D6\u8BF7\u6C42\u5934\n */\nexport const getHeader = (): HeadersInit => {\n const projectId = process.env.BROWSER ? getProjectId() : ''\n const dcAuthType = 'authToken-' + projectId\n const endHeader = {\n 'Content-Type': 'application/json',\n authToken: getLocalStorage('authToken'),\n siteCode: projectId,\n dcAuthType: dcAuthType,\n [dcAuthType]: getLocalStorage(dcAuthType),\n }\n console.log('header', process.env.BROWSER ? endHeader : testHeader)\n return process.env.BROWSER ? endHeader : testHeader\n}\n\n/**\n * \u83B7\u53D6\u9879\u76EEid\n */\nexport function getProjectId() {\n return getQueryByName('projectId', 'general')\n}\n\n/**\n * \u83B7\u53D6\u5730\u5740\u680F\u53C2\u6570\u503C\n * @param param\n * @param defaultValue\n * @returns {string}\n */\nfunction getQueryByName(param: string, defaultValue: string = ''): string {\n if (process.env.BROWSER && location.search) {\n return new URLSearchParams(location.search.slice(1)).get(param) || defaultValue\n }\n return defaultValue\n}\n\n/**\n * \u83B7\u53D6\u6D4F\u89C8\u5668\u53C2\u6570\n * @param key\n */\nfunction getLocalStorage(key: string): string {\n if (typeof window !== 'undefined' && typeof localStorage !== 'undefined' && process.env.BROWSER) {\n // localStorage \u76F8\u5173\u4EE3\u7801\n return localStorage.getItem(key) || '';\n }\n return ''\n}\n", "\n/**\n * \u9996\u5B57\u6BCD\u6539\u4E3A\u5927\u5199\uFF0C\u5176\u4ED6\u5B57\u6BCD\u5C0F\u5199\n * @param {string} str\n */\nexport function toFirstUpperCase(str: string): string {\n let name = str.toLowerCase();\n return name.charAt(0).toUpperCase() + name.slice(1);\n}\n\n/**\n * @description \u4E0B\u5212\u7EBF\u5B57\u7B26\u4E32\u8F6C\u9A7C\u5CF0\n * @param str\n */\nexport function lineToUppercase(str: string) {\n if (!str) {\n return ''\n }\n function upper(all,letter){\n return letter.toUpperCase();\n }\n\n return str.replace(/_(\\w)/g,upper);\n}\n", "/* eslint-disable @typescript-eslint/indent */\n\nimport {\n InterpretDataSourceConfig\n} from '@alilc/lowcode-types';\n\nimport {\n COMMON_CHUNK_NAME\n} from '../../../const';\n\nimport {\n BuilderComponentPlugin,\n BuilderComponentPluginFactory,\n ChunkType,\n FileType,\n ICodeStruct\n} from '../../../types';\n\nimport { isValidContainerType } from '../../../utils/schema';\nimport { toFirstUpperCase } from '../../../utils/changeCase';\nimport {handleUrl, requestHeaderHandler, requestParamsHandler} from '../../../utils/requestHandle';\nimport { JSONObject } from '@alilc/lowcode-datasource-types/src/value-type';\n\nexport interface PluginConfig {\n fileType?: string;\n\n /**\n * \u6570\u636E\u6E90\u914D\u7F6E\n */\n datasourceConfig?: {\n\n /** \u6570\u636E\u6E90\u5F15\u64CE\u7684\u7248\u672C */\n engineVersion?: string;\n\n /** \u6570\u636E\u6E90\u5F15\u64CE\u7684\u5305\u540D */\n enginePackage?: string;\n\n /** \u6570\u636E\u6E90 handlers \u7684\u7248\u672C */\n handlersVersion?: {\n [key: string]: string;\n };\n\n /** \u6570\u636E\u6E90 handlers \u7684\u5305\u540D */\n handlersPackages?: {\n [key: string]: string;\n };\n };\n}\n\nconst pluginFactory: BuilderComponentPluginFactory<PluginConfig> = () => {\n // const cfg = {\n // ...config,\n // fileType: config?.fileType || FileType.JSX,\n // };\n\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n const dataSourceConfig = isValidContainerType(pre.ir.containers[0]) ? pre.ir.containers[0].dataSource : null;\n const dataSourceItems: InterpretDataSourceConfig[] =\n (dataSourceConfig && dataSourceConfig.list) || [];\n if (dataSourceItems.length > 0) {\n dataSourceItems.forEach((ds) => {\n const dsType = ds.type || 'fetch';\n // \u8BF7\u6C42\u7C7B\u578B\n const method = toFirstUpperCase(ds.options?.method as string ?? 'Post');\n // \u5904\u7406\u975E\u81EA\u5B9A\u4E49\u6570\u636E\u6E90\n if (dsType !== 'custom') {\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.TS,\n subModule: ds.id,\n name: COMMON_CHUNK_NAME.ExternalDepsImport,\n content: `\n import { ${method}RequestModel, QueryType } from '@dc/vue-h5-base/src/http/request-model'\n import { getDefaultConfig } from '@dc/vue-h5-base/src/http/config/custom-config'\n import { PageModel } from '@dc/vue-h5-base/src/http/result-model'\n `,\n linkAfter: [],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.TS,\n subModule: ds.id,\n name: COMMON_CHUNK_NAME.FileMainContent,\n content: `\nexport default {\n /**\n * \u5206\u9875\u67E5\u8BE2\n * @param data\n */\n ${ds.id}: (data?: QueryType) => {\n const defaultConfig = getDefaultConfig<boolean>()\n // \u8BF7\u6C42\u5934\u5904\u7406\n ${requestHeaderHandler(ds.options?.headers as JSONObject)}\n // \u8BF7\u6C42\u53C2\u6570\u5904\u7406\n ${requestParamsHandler(ds.options?.params as JSONObject)}\n return new ${method}RequestModel<PageModel<any>>('${handleUrl(ds.options?.uri as string)}', data).request()\n },\n}\n `,\n linkAfter: [COMMON_CHUNK_NAME.ExternalDepsImport],\n });\n }\n });\n }\n\n return next;\n };\n return plugin;\n};\n\nexport default pluginFactory;\n", "import { VUE_DEFAULT_LINK_AFTER, TEMPLATE_DEFINE_CHUNK_NAME } from '../../../const';\n\nimport { generateFunction } from '../../../utils/jsExpression';\n\nimport {\n BuilderComponentPlugin,\n BuilderComponentPluginFactory,\n ChunkType,\n FileType,\n ICodeChunk,\n ICodeStruct,\n IContainerInfo,\n} from '../../../types';\n\nexport interface PluginConfig {\n fileType: string;\n}\n\nconst pluginFactory: BuilderComponentPluginFactory<PluginConfig> = (config?) => {\n const cfg: PluginConfig = {\n fileType: FileType.VUE,\n ...config,\n };\n\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n const ir = next.ir as IContainerInfo;\n\n if (!ir.methods) {\n return next;\n }\n\n // \u5C06\u8FD9\u4E9B methods \u90FD\u5B9A\u4E49\u5230 class \u4E0A\n const { methods } = ir;\n const chunks = Object.keys(methods).map<ICodeChunk>((methodName) => {\n // \u7279\u6B8A\u5904\u7406 goPage\uFF0Cgo page\u8F6C\u5316\u4E3A\u4F7F\u7528router\u8DF3\u8F6C\u9875\u9762\n if (methodName === 'goPage') {\n return {\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: TEMPLATE_DEFINE_CHUNK_NAME.Method,\n content: `\nfunction goPage(params, ...extParams) {\n const { pathId } = extParams.find(obj => obj.hasOwnProperty('pathId')) || {};\n const pageId = params ? params : pathId;\n router.push(pageId);\n}`,\n linkAfter: [...VUE_DEFAULT_LINK_AFTER[TEMPLATE_DEFINE_CHUNK_NAME.Method]],\n }\n }\n return {\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: TEMPLATE_DEFINE_CHUNK_NAME.Method,\n content: `function ${generateFunction(methods[methodName], { name: methodName, isMember: true, isToVue: true })}`,\n linkAfter: [...VUE_DEFAULT_LINK_AFTER[TEMPLATE_DEFINE_CHUNK_NAME.Method]],\n }});\n next.chunks.push(...chunks);\n\n return next;\n };\n return plugin;\n};\n\nexport default pluginFactory;\n", "import { ResultFile } from '@alilc/lowcode-types';\nimport { createResultFile } from '../../../../../../utils/resultHelper';\n\nexport default function getFile(): [string[], ResultFile] {\n const file = createResultFile(\n '.env',\n '',\n `\n# .env\nVITE_APP_API_LOGIN=/login\nVITE_APP_API_LOGIN_OUT=/loginOut\nVITE_APP_API_BASE_URL=\n\nVITE_APP_API_FILE_REVIEW=http://tz.future.dct99.com:8090/\n#VITE_APP_COPYRIGHT=Copyright@2022 \u7248\u6743\u6240\u6709\uFF1A\u4E2D\u56FD\u8054\u901A\u7F51\u7EDC\u901A\u4FE1\u6709\u9650\u516C\u53F8\n\n# oss\n#VITE_APP_OSS_URL=https://tz-community.oss-cn-hangzhou.aliyuncs.com\n#VITE_APP_API_OSS=/oss/logFile/upload\n#VITE_APP_OSS_SUFFIX=!tz_sy\n\n# message\n#VITE_APP_API_MESSAGE=/WxXcx/sendLoginCode\n#VITE_APP_API_CODE_LOGIN=/WxXcx/loginOrSignByMobile\n#VITE_APP_API_CODE_LOGIN_PARAMS_MOBILE=mobile\n#VITE_APP_API_CODE_LOGIN_PARAMS_CODE=smsCode\n\n# mask\nVITE_APP_DEFAULT_MASK='false'\n `,\n );\n\n return [[], file];\n}\n", "import { ResultFile } from '@alilc/lowcode-types';\nimport { createResultFile } from '../../../../../../utils/resultHelper';\n\nexport default function getFile(): [string[], ResultFile] {\n const file = createResultFile(\n '.eslintignore',\n '',\n `\nnode_modules\n.vscode\n.idea\ndist\n/public\n.eslintrc.js\n `,\n );\n\n return [[], file];\n}\n", "import { ResultFile } from '@alilc/lowcode-types';\nimport { createResultFile } from '../../../../../../utils/resultHelper';\n\nexport default function getFile(): [string[], ResultFile] {\n const file = createResultFile(\n '.eslintrc',\n 'yml',\n `\nenv:\n browser: true\n es2021: true\n node: true\n 'vue/setup-compiler-macros': true\nextends:\n - eslint:recommended\n - plugin:vue/essential\n - prettier\n - plugin:prettier/recommended\n - plugin:@typescript-eslint/recommended\nparserOptions:\n ecmaVersion: 2020\n parser: '@typescript-eslint/parser'\n sourceType: module\nparser: 'vue-eslint-parser'\nplugins:\n - vue\n - '@typescript-eslint'\nrules:\n # \u7F29\u8FDB tab\n indent:\n - error\n - tab\n - SwitchCase: 1\n # \u5B57\u7B26\u5355\u5F15\u53F7\n quotes:\n - error\n - single\n # \u5C3E\u90E8\u5206\u53F7\n semi:\n - error\n - never\n # \u652F\u6301\u5355\u4E2Atemplate\u4E2D\u591A\u4E2A\u4E00\u7EA7\u6807\u7B7E\n vue/no-multiple-template-root: off\n # \u5904\u7406v-model\u540E\u65B9\u53C2\u6570\u95EE\u9898\n vue/no-v-model-argument: off\n # \u7EC4\u4EF6\u540D\u79F0\u68C0\u67E5\n vue/multi-word-component-names: 0\n `,\n );\n\n return [[], file];\n}\n", "import { ResultFile } from '@alilc/lowcode-types';\n\nexport default function getFile(): [string[], ResultFile] {\n return [\n [],\n {\n name: '.gitignore',\n ext: '',\n content: `\n# \u9879\u76EE\u7684\u73AF\u5883\u6587\u4EF6\n.DS_Store\nnode_modules\n/dist\n\n\n# \u672C\u5730\u73AF\u5883\u6587\u4EF6\n.env.local\n.env.*.local\n\n# \u65E5\u5FD7\u6587\u4EF6\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\npnpm-debug.log*\n*-debug.log\n\n# \u7F16\u8F91\u76EE\u5F55\u548C\u6587\u4EF6\n.idea\n.vscode\n*.suo\n*.ntvs*\n*.njsproj\n*.sln\n*.sw?\nlocal\n\n# \u6B64\u6587\u4EF6\u9700\u8981\u63D0\u4EA4\uFF0C\u8BE5\u6587\u4EF6\u65E8\u5728\u8DDF\u8E2A\u88AB\u5B89\u88C5\u7684\u6BCF\u4E2A\u8F6F\u4EF6\u5305\u7684\u786E\u5207\u7248\u672C\uFF0C\u4EE5\u4FBF\u4EA7\u54C1\u53EF\u4EE5\u4EE5\u76F8\u540C\u7684\u65B9\u5F0F\u88AB 100\uFF05 \u590D\u5236\npackage-lock.json\nyarn.lock\npnpm-lock.yaml\n\n# \u6392\u9664\u672C\u5730\u6587\u4EF6\nlocal/\n\ndist.zip\n `\n }\n ];\n}\n", "import { ResultFile } from '@alilc/lowcode-types';\n\nexport default function getFile(): [string[], ResultFile] {\n return [\n [],\n {\n name: '.npmrc',\n ext: '',\n content: `\n@dc-basic-component:registry=https://nexus.dct99.com/repository/npm-public/\n@dc:registry=https://nexus.dct99.com/repository/npm-public/\nshamefully-hoist=true\nstrict-peer-dependencies=false\n `\n }\n ];\n}\n", "import { ResultFile } from '@alilc/lowcode-types';\n\nexport default function getFile(): [string[], ResultFile] {\n return [\n [],\n {\n name: '.prettierignore',\n ext: '',\n content: `\nnode_modules\n.vscode\n.idea\ndist\n/public\n.eslintrc.js\n*.yml\n*.yaml\n*.md\n*.min.js\n `\n }\n ];\n}\n\n", "import { ResultFile } from '@alilc/lowcode-types';\n\nexport default function getFile(): [string[], ResultFile] {\n return [\n [],\n {\n name: '.prettierrc',\n ext: 'yml',\n content: `\n# \u6BCF\u884C\u4EE3\u7801\u957F\u5EA6\uFF08\u9ED8\u8BA480\uFF09\nprintWidth: 160\n# \u6BCF\u4E2Atab\u76F8\u5F53\u4E8E\u591A\u5C11\u4E2A\u7A7A\u683C\uFF08\u9ED8\u8BA42\uFF09\ntabWidth: 4\n# \u662F\u5426\u4F7F\u7528tab\u8FDB\u884C\u7F29\u8FDB\uFF08\u9ED8\u8BA4false\uFF09\nuseTabs: true\n# \u4F7F\u7528\u5355\u5F15\u53F7\uFF08\u9ED8\u8BA4false\uFF09\nsingleQuote: true\n# \u58F0\u660E\u7ED3\u5C3E\u4F7F\u7528\u5206\u53F7(\u9ED8\u8BA4true)\nsemi: false\n# \u591A\u884C\u4F7F\u7528\u62D6\u5C3E\u9017\u53F7\uFF08\u9ED8\u8BA4none\uFF09\ntrailingComma: none\n# \u5BF9\u8C61\u5B57\u9762\u91CF\u7684\u5927\u62EC\u53F7\u95F4\u4F7F\u7528\u7A7A\u683C\uFF08\u9ED8\u8BA4true\uFF09\nbracketSpacing: true\n# \u53EA\u6709\u4E00\u4E2A\u53C2\u6570\u7684\u7BAD\u5934\u51FD\u6570\u7684\u53C2\u6570\u662F\u5426\u5E26\u5706\u62EC\u53F7\uFF08\u9ED8\u8BA4avoid\uFF09\narrowParens: 'avoid'\n# \u884C\u7ED3\u675F\u95EE\u9898\u5904\u7406, lf\nendOfLine: lf\n `\n }\n ];\n}\n", "import { ResultFile } from '@alilc/lowcode-types';\n\nexport default function getFile(): [string[], ResultFile] {\n return [\n [],\n {\n name: 'index',\n ext: 'html',\n content: `\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\"/>\n <link rel=\"icon\" type=\"image/png\" href=\"/logo.png\"/>\n <meta name=\"viewport\"\n content=\"width=device-width, initial-scale=1.0, user-scalable=1.0, minimum-scale=1.0, maximum-scale=1.0, viewport-fit=cover\"/>\n <title>\u7801\u94FA</title>\n <!--\u5FAE\u4FE1web view api-->\n <script type=\"text/javascript\" src=\"https://res.wx.qq.com/open/js/jweixin-1.3.2.js\"></script>\n</head>\n<body>\n<div id=\"app\">\n <div class=\"loading\" style=\"display: flex;justify-content: center;align-items: center;height: 100vh\">\n <div class=\"loading__icon\"></div>\n <div class=\"loading__text\">\u8BF7\u7A0D\u7B49\uFF0C\u9875\u9762\u52A0\u8F7D\u4E2D...</div>\n </div>\n</div>\n<script type=\"module\" src=\"/src/main.ts\"></script>\n</body>\n</html>\n `\n }\n ];\n}\n", "import { ResultFile } from '@alilc/lowcode-types';\n\nexport default function getFile(): [string[], ResultFile] {\n return [\n [],\n {\n name: 'postcss.config',\n ext: 'cjs',\n content: '// postcss.config.js\\n' +\n 'module.exports = {\\n' +\n ' plugins: {\\n' +\n ' \\'postcss-px-to-viewport\\': {\\n' +\n ' // \u8BBE\u8BA1\u7A3F\u5BBD\u5EA6\\n' +\n ' viewportWidth: 375,\\n' +\n ' // \u6392\u9664 node_modules\\n' +\n ' // exclude: /(\\\\/|\\\\\\\\)(node_modules)(\\\\/|\\\\\\\\)/,\\n' +\n ' // \u4E0D\u8F6C\u6362\u7684\u7C7B\u540D\\n' +\n ' selectorBlackList: [\\'.ignore\\', \\'.hairlines\\']\\n' +\n ' }\\n' +\n ' }\\n' +\n '}'\n }\n ];\n}\n", "import { ResultFile } from '@alilc/lowcode-types';\n\nexport default function getFile(): [string[], ResultFile] {\n return [\n [],\n {\n name: 'tsconfig.json',\n ext: 'ts',\n content: `\n{\n \"compilerOptions\": {\n \"target\": \"ESNext\",\n \"useDefineForClassFields\": true,\n \"module\": \"ESNext\",\n \"moduleResolution\": \"Node\",\n \"strict\": true,\n \"jsx\": \"preserve\",\n \"sourceMap\": true,\n \"resolveJsonModule\": true,\n \"isolatedModules\": true,\n \"esModuleInterop\": true,\n \"lib\": [\"ESNext\", \"DOM\"],\n \"skipLibCheck\": true,\n \"baseUrl\": \".\",\n \"paths\": {\n \"@/*\": [\"src/*\"]\n }\n },\n \"include\": [\"src/**/*.ts\", \"src/**/*.d.ts\", \"src/**/*.tsx\", \"src/**/*.vue\"],\n \"references\": [{ \"path\": \"./tsconfig.node.json\" }]\n}\n `\n }\n ];\n}\n", "import { ResultFile } from '@alilc/lowcode-types';\n\nexport default function getFile(): [string[], ResultFile] {\n return [\n [],\n {\n name: 'tsconfig.node',\n ext: 'json',\n content: `\n{\n \"compilerOptions\": {\n \"composite\": true,\n \"module\": \"ESNext\",\n \"moduleResolution\": \"Node\",\n \"allowSyntheticDefaultImports\": true\n },\n \"include\": [\"vite.config.ts\"]\n}\n `\n }\n ];\n}\n", "import { ResultFile } from '@alilc/lowcode-types';\n\nexport default function getFile(): [string[], ResultFile] {\n return [\n [],\n {\n name: 'vite.config',\n ext: 'ts',\n content: `\nimport { defineConfig } from 'vite'\nimport vue from '@vitejs/plugin-vue'\nimport viteCompression from 'vite-plugin-compression'\nimport * as path from 'path'\n\n// https://vitejs.dev/config/\nexport default defineConfig({\n base: '/expressH5/',\n plugins: [vue(), viteCompression()],\n resolve: {\n alias: {\n '@': path.resolve(__dirname, './src'),\n '~@': path.resolve(__dirname, './src')\n }\n },\n server: {\n // host: '127.0.0.1',\n host: '0.0.0.0',\n port: 3212,\n cors: true,\n proxy: {\n '/api': {\n // target: 'https://kdhctraining.dct99.com',\n target: 'http://122.225.55.70:18085/',\n changeOrigin: true,\n ws: true,\n // rewrite: path => path.replace(/^\\\\/api/, '/training')\n rewrite: path => path.replace(/\\\\/api\\\\/source/g, '/source')\n }\n }\n },\n css: {\n preprocessorOptions: {\n less: {\n javascriptEnabled: true\n }\n }\n },\n // \u914D\u7F6E\u6253\u5305\u5757\u5927\u5C0F\n build: {\n chunkSizeWarningLimit: 1500\n },\n optimizeDeps: {\n exclude: ['@dc/vue-h5-base'],\n include: ['axios']\n }\n})\n `\n }\n ];\n}\n", "import { ResultFile } from '@alilc/lowcode-types';\nimport { createResultFile } from '../../../../../../../utils/resultHelper';\n\nexport default function getFile(): [string[], ResultFile] {\n const file = createResultFile(\n 'global',\n 'scss',\n `\n* {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n}\n.page {\n // \u4E0D\u663E\u793A\u6EDA\u52A8\u6761\n scrollbar-width: none; /* Firefox */\n background: #fff;\n\n &::-webkit-scrollbar {\n display: none; /* Chrome Safari */\n }\n\n height: 100vh;\n width: 100vw;\n display: flex;\n flex-direction: column;\n overflow: hidden scroll;\n box-sizing: border-box;\n\n // \u5B50\u5143\u7D20\u9AD8\u5EA6\u95EE\u9898\u5904\u7406\n & > * {\n flex: 0 0 auto;\n }\n\n & > & {\n flex: 1 1 auto;\n }\n}\n\n.van-uploader {\n flex: 1 1 auto;\n}\n\n.van-search {\n background: #ffffff;\n padding: 10px 16px;\n border-top: 1px solid #f3f3f3;\n\n @at-root &__content--round {\n background: #f3f3f3;\n padding: 4px 16px;\n }\n}\n\n// \u7BA1\u7406\u9875\u9762\n.manage-page {\n overflow: hidden;\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n padding-bottom: 16px;\n\n --van-tab-text-color: var(--van-text-color-3);\n --van-tab-active-text-color: var(--van-primary-color);\n --van-tabs-bottom-bar-color: var(--van-primary-color);\n\n .van-pull-refresh {\n flex: 1 1 auto;\n overflow-y: scroll;\n padding: 16px;\n }\n}\n\n// \u8BE6\u60C5\u9875\u9762\n.detail-page {\n flex: 1 1 auto;\n overflow-y: auto;\n font-size: 14px;\n font-weight: 400;\n color: #9b9ba3;\n padding-bottom: 16px;\n position: relative;\n display: flex;\n flex-direction: column;\n\n .detail {\n display: grid;\n grid-template-columns: max-content 1fr;\n box-shadow: 0 0 0.5rem 0 rgba(35, 24, 21, 0.1);\n grid-row-gap: 16px;\n column-gap: 16px;\n background: white;\n margin: 16px 16px 0 16px;\n padding: 16px;\n border-radius: 10px;\n\n @at-root &__label {\n color: #51515c;\n display: flex;\n align-items: center;\n grid-column: 1;\n\n &:before {\n content: '';\n width: 6px;\n height: 6px;\n border-radius: 3px;\n background: #aeaeb4;\n margin-right: 6px;\n display: inline-block;\n }\n }\n\n @at-root &__value {\n grid-column: 2;\n color: #9b9ba3;\n flex: 1 1 auto;\n text-align: right;\n }\n\n @at-root &__images {\n grid-column: 1/-1;\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n\n .van-image {\n width: 100%;\n min-height: 60px;\n aspect-ratio: 1;\n }\n }\n\n .van-divider {\n grid-column: span 2;\n margin: 0;\n }\n }\n}\n\n// \u5F39\u7A97\u9875\u9762\n.overlay-page {\n width: 100vw;\n height: 100vh;\n\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n\n background: transparent;\n padding: 16px;\n\n\n .van-form {\n flex: 0 0 auto;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n background: white;\n border-radius: 10px;\n\n .van-button {\n margin: 15px 16px;\n }\n }\n\n .van-cell.tip {\n color: #d46b08;\n }\n}\n\n.card__actions {\n grid-column: 1 / -1;\n display: flex;\n justify-content: flex-end;\n align-items: center;\n gap: 10px;\n\n @at-root &__button {\n font-size: 12px;\n font-weight: 500;\n border-radius: 18px;\n padding: 0 8px;\n height: 24px;\n\n }\n}\n\n/*\u5360\u4F4D*/\n.spacer {\n flex: 1 1 auto;\n}\n\n.spacer-2 {\n flex: 2 1 auto;\n}\n`,\n );\n\n return [['src', 'assets', 'scss'], file];\n}\n", "import { ResultFile } from '@alilc/lowcode-types';\nimport { createResultFile } from '../../../../../../../utils/resultHelper';\n\nexport default function getFile(): [string[], ResultFile] {\n const file = createResultFile(\n 'mixin',\n 'scss',\n `\n//sass\u5E38\u7528\u6DF7\u5408\u5668(\u5E94\u8BE5\u5408\u7406\u4F7F\u7528)\n// \u5F39\u6027\u5E03\u5C40\u6DF7\u5408\u5668\n@mixin flexMixer($justify: center, $align: center, $flex: row) {\n\\t// \u7533\u660E\u4E3A\u5F39\u6027\u76D2\u5B50\n\\tdisplay: flex;\n\\t// \u6392\u5217\u65B9\u5F0F\n\\tflex-direction: $flex;\n\\t// \u4E3B\uFF08\u526F\uFF09\u8F74\u7684\u5BF9\u9F50\u65B9\u5F0F\n\\tjustify-content: $justify;\n\\t// \u4E3B\uFF08\u526F\uFF09\u8F74\u7684\u5BF9\u9F50\u65B9\u5F0F\n\\talign-items: $align;\n}\n// \u5B9A\u4F4D\u6DF7\u5408\u5668\n@mixin positionMixer($position: static, $left: auto, $top: auto, $right: auto, $bottom: auto) {\n\\tposition: $position;\n\\tleft: $left;\n\\ttop: $top;\n\\tright: $right;\n\\tbottom: $bottom;\n}\n// \u6D6E\u52A8\u6DF7\u5408\u5668\n@mixin floatMixer($float: left) {\n\\tfloat: $float;\n}\n// \u8BBE\u7F6E\u80CC\u666F\u6DF7\u5408\u5668\n@mixin bgMixer($url, $position: center center, $size: 100% 100%, $repeat: no-repeat) {\n\\tbackground: $url $repeat $position;\n\\tbackground-size: $size;\n}\n// \u5BBD\u9AD8\u6DF7\u5408\u5668\n@mixin widthMixer($width: 100px, $height: 100px) {\n\\twidth: $width;\n\\theight: $height;\n}\n// \u6587\u5B57\u6DF7\u5408\u5668\n@mixin fontMixer($fontSize: 16px, $color: #515a6e, $weight: 500, $font-familyt: Source Han Sans SC) {\n\\tfont-family: $font-familyt;\n\\tfont-size: $fontSize;\n\\tfont-weight: $weight;\n\\tcolor: $color;\n}\n\n// \u591A\u884C\u5B57\u4F53\u7701\u7565\u6DF7\u5408\u5668\n@mixin pointMixer($line: 2) {\n\\tdisplay: -webkit-box; //\u5FC5\u987B\u7ED3\u5408\u7684\u5C5E\u6027 \uFF0C\u5C06\u5BF9\u8C61\u4F5C\u4E3A\u5F39\u6027\u4F38\u7F29\u76D2\u5B50\u6A21\u578B\u663E\u793A \u3002\n\\tword-break: break-all;\n\\t-webkit-line-clamp: $line;\n\\tline-clamp: $line;\n\\toverflow: hidden;\n\\ttext-overflow: ellipsis; //\u53EF\u4EE5\u7528\u6765\u591A\u884C\u6587\u672C\u7684\u60C5\u51B5\u4E0B\uFF0C\u7528\u7701\u7565\u53F7\u201C\u2026\u201D\u9690\u85CF\u8D85\u51FA\u8303\u56F4\u7684\u6587\u672C \u3002\n\\twhite-space: normal;\n\\t/* autoprefixer: off */\n\\t-webkit-box-orient: vertical; //\u5FC5\u987B\u7ED3\u5408\u7684\u5C5E\u6027 \uFF0C\u8BBE\u7F6E\u6216\u68C0\u7D22\u4F38\u7F29\u76D2\u5BF9\u8C61\u7684\u5B50\u5143\u7D20\u7684\u6392\u5217\u65B9\u5F0F \u3002\n\\t/* autoprefixer: on */\n}\n`,\n );\n\n return [['src', 'assets', 'scss'], file];\n}\n", "import { ResultFile } from '@alilc/lowcode-types';\nimport { createResultFile } from '../../../../../../../utils/resultHelper';\n\nexport default function getFile(): [string[], ResultFile] {\n const file = createResultFile(\n 'theme',\n 'css',\n `\n@import '@dc/vue-h5-base/src/assets/scss/theme.css';\n\n:root {\n\\t--van-primary-color: #008fff;\n\\t/* Color Palette */\n\\t--van-gray-9: #eeeeee;\n\\t--van-gray-10: #bdbdbd;\n\\t--van-gray-11: #cccccc;\n\\t--van-blue-1: #008fff;\n\\t--van-blue-2: #3296fb;\n\\t--van-orange-1: #f27623;\n\n\\t/* --------------------------------------------- */\n\\t/* tabbar height */\n\\t--van-tabbar-height: 50px;\n\n\\t/* --------------------------------------------- */\n\\t/* input \u80CC\u666F\u8272*/\n\\t--input-background-color: #f4f4f4;\n\n\\t/* --------------------------------------------- */\n\\t/* \u6D59\u91CC\u529E\u4E3B\u9898 */\n\n\\t/* \u5706\u89D2*/\n\\t--zlb-radius-r5: 10px;\n\\t--zlb-radius-r6: 12px;\n\\t--zlb-radius-r7: 14px;\n\\t--zlb-radius-r8: 16px;\n\\t--zlb-radius-r9: 18px;\n\n\\t/* --------------------------------------------- */\n\\t/* \u5B57\u4F53\u989C\u8272 */\n\\t--van-text-color-4: #7897ba;\n\\t--van-text-color-5: #232d2d;\n\\t/*--van-text-size2: 18px;*/\n\n\\t/* --------------------------------------------- */\n\\t/* \u5B57\u4F53 */\n\\t/*\u5DF2\u6709\u5B57\u4F53\uFF0C\u53EF\u4EE5\u4E0D\u7528\u8986\u5199*/\n\\t--van-font-size-xs: 10px;\n\\t--van-font-size-sm: 12px;\n\\t--van-font-size-md: 14px;\n\\t--van-font-size-lg: 16px;\n\\t/*\u8FFD\u52A0\u4E00\u4E2A\u8D85\u5927\u53F7\u5B57\u4F53*/\n\\t--van-font-size-ml: 18px;\n\n\\t/* --------------------------------------------- */\n\\t/*\u8F93\u5165\u6846\u6837\u5F0F*/\n\\t--van-field-label-color: var(--van-text-color);\n\\t--van-field-placeholder-text-color: var(--van-text-color-3);\n\n\\t/* --------------------------------------------- */\n\\t/*\u8F93\u5165\u6846\u6837\u5F0F*/\n\\t/*--van-uploader-size: 69px;*/\n\\t/*--van-uploader-delete-icon-size: 18px;*/\n\n\\t--title-bar-height: 50px;\n\\t--title-bar-padding-top: 0;\n\n\\t--van-cascader-active-color: var(--van-primary-color);\n\\t--van-cascader-tab-color: var(--van-primary-color);\n\\t--van-tabs-bottom-bar-color: var(--van-primary-color);\n}\n `,\n );\n\n return [['src', 'assets', 'scss'], file];\n}\n", "import { ResultFile } from '@alilc/lowcode-types';\nimport { createResultFile } from '../../../../../../../utils/resultHelper';\n\nexport default function getFile(): [string[], ResultFile] {\n const file = createResultFile(\n 'App',\n 'vue',\n `\n<template>\n\\t<router-view v-slot=\"{ Component }\">\n\\t\\t<!--\\t\\t<keep-alive>-->\n\\t\\t<component :is=\"Component\" />\n\\t\\t<!--\\t\\t</keep-alive>-->\n\\t</router-view>\n</template>\n\n<script lang=\"ts\" setup>\nimport { onMounted } from 'vue'\nimport { useRequestStore } from '@dc/vue-h5-base/src/store/request'\n\nlet store = useRequestStore()\n\nonMounted(() => {\n\\tstore.$reset()\n})\n</script>\n\n<style>\n.amap-logo {\n\\tdisplay: none;\n\\topacity: 0 !important;\n}\n\n.amap-copyright {\n\\topacity: 0;\n}\n</style>\n `,\n );\n\n return [['src'], file];\n}\n", "import { ResultFile } from '@alilc/lowcode-types';\nimport { createResultFile } from '../../../../../../../utils/resultHelper';\n\nexport default function getFile(): [string[], ResultFile] {\n const file = createResultFile(\n 'main',\n 'ts',\n `\nimport { createApp } from 'vue'\nimport App from './App.vue'\n\n/**\n * \u72B6\u6001\u7BA1\u7406\n */\nimport { createPinia } from 'pinia'\nimport piniaPluginPersist from 'pinia-plugin-persist'\n// \u8DEF\u7531\nimport router from './router'\n/**\n * vant \u7EC4\u4EF6\uFF0C\u6309\u9700\u5F15\u5165\n */\nimport Vant from 'vant'\nimport 'vant/lib/index.css'\n\n// \u8986\u76D6\u4E3B\u9898\u6837\u5F0F\nimport '@/assets/scss/theme.css'\n\n/* \u8FD9\u91CC\u662F\u57FA\u7840\u6846\u67B6\u7684\u6837\u5F0F */\nimport '@/assets/scss/global.scss'\nimport '@dc/vue-h5-base/src/assets/font/iconfont.css'\nimport '@dckj-npm/lowcode-vue-materials/style.css'\n\ncreateApp(App)\n\\t.use(createPinia().use(piniaPluginPersist))\n\\t.use(Vant)\n\\t// \u8DEF\u7531\n\\t.use(router)\n\\t.mount('#app')\n\n `,\n );\n\n return [['src'], file];\n}\n", "import { ResultFile } from '@alilc/lowcode-types';\nimport { createResultFile } from '../../../../../../../utils/resultHelper';\n\nexport default function getFile(): [string[], ResultFile] {\n const file = createResultFile(\n 'vite-env.d',\n 'ts',\n `\ndeclare module '*.vue' {\n import type { DefineComponent } from 'vue'\n const component: DefineComponent<{}, {}, any>\n export default component\n}\n\ninterface ImportMetaEnv {\n // \u767B\u5F55\u7684\u63A5\u53E3\u5730\u5740\n readonly VITE_APP_API_LOGIN: string\n // \u767B\u5F55\u7684\u63A5\u53E3\u5730\u5740\n readonly VITE_APP_API_LOGIN_OUT: string\n // \u767B\u5F55\u7684\u63A5\u53E3\u5730\u5740\n readonly VITE_APP_API_BASE_URL: string\n //\u6587\u4EF6\u9884\u89C8\u5730\u5740\u524D\u7F00\n readonly VITE_APP_API_FILE_REVIEW: string\n\n // copyright\n readonly VITE_APP_COPYRIGHT: string\n // \u9ED8\u8BA4\u7684\u8BF7\u6C42\u906E\u7F69\u5C42\u662F\u5426\u5F00\u542F\n readonly VITE_APP_DEFAULT_MASK: boolean\n}\n\ninterface ImportMeta {\n readonly env: ImportMetaEnv\n}\n `,\n );\n\n return [['src'], file];\n}\n", "import { ResultFile } from '@alilc/lowcode-types';\nimport { createResultFile } from '../../../../../../../../../utils/resultHelper';\n\nexport default function getFile(): [string[], ResultFile] {\n const file = createResultFile(\n 'Welcome',\n 'vue',\n `\n<template>\n <div></div>\n</template>\n\n<script lang=\"ts\" setup>\n</script>\n\n<style lang=\"scss\" scoped>\n</style>\n `,\n );\n\n return [['src', 'views', 'index'], file];\n}\n", "import { ResultFile } from '@alilc/lowcode-types';\nimport { createResultFile } from '../../../../../../../../../utils/resultHelper';\n\nexport default function getFile(): [string[], ResultFile] {\n const file = createResultFile(\n 'tabs',\n 'ts',\n `\nimport home from '@/assets/images/index/home.png'\nimport homeActive from '@/assets/images/index/home-active.png'\nimport housekeeper from '@/assets/images/index/housekeeper.png'\nimport housekeeperActive from '@/assets/images/index/housekeeper-active.png'\nimport mine from '@/assets/images/index/mine.png'\nimport mineActive from '@/assets/images/index/mine-active.png'\n\nexport interface TabItem {\n /**\n * \u6807\u9898\n */\n label: string\n /**\n * \u56FE\u6807\n */\n icon: string\n /**\n * \u6FC0\u6D3B\u56FE\u6807\n */\n activeIcon: string\n /**\n * \u8DEF\u7531\u5730\u5740\n */\n router: string\n}\n\nexport const tabs: Array<TabItem> = [\n {\n label: '\u9996\u9875',\n icon: home,\n activeIcon: homeActive,\n router: '/home'\n },\n {\n label: '\u6D88\u606F',\n icon: housekeeper,\n activeIcon: housekeeperActive,\n router: '/message'\n },\n {\n label: '\u6211\u7684',\n icon: mine,\n activeIcon: mineActive,\n router: '/mine'\n }\n]\n `,\n );\n\n return [['src', 'views', 'index'], file];\n}\n", "import { ResultDir } from '@alilc/lowcode-types';\n\nimport { createResultDir } from '../../../../../utils/resultHelper';\nimport { runFileGenerator } from '../../../../../utils/templateHelper';\n\nimport file12 from './files/env';\nimport file11 from './files/eslintignore';\nimport file10 from './files/eslintrc.yml';\nimport file9 from './files/gitignore';\nimport file8 from './files/npmrc';\nimport file7 from './files/prettierignore';\nimport file6 from './files/prettierrc.yml';\nimport file5 from './files/index.html';\nimport file4 from './files/postcss.config.cjs';\nimport file13 from './files/tsconfig.json';\nimport file16 from './files/tsconfig.node.json';\nimport file17 from './files/vite.config.ts';\nimport file18 from './files/css/global.scss';\nimport file19 from './files/css/mixin.scss';\nimport file20 from './files/css/theme.css';\nimport file14 from './files/src/App.vue';\nimport file15 from './files/src/main';\nimport file3 from './files/src/vite-env';\nimport file21 from './files/src/views/index/welcome.vue';\nimport file22 from './files/src/views/index/tabs';\n\nexport function generateStaticFiles(root = createResultDir('.')): ResultDir {\n runFileGenerator(root, file3);\n runFileGenerator(root, file4);\n runFileGenerator(root, file5);\n runFileGenerator(root, file6);\n runFileGenerator(root, file7);\n runFileGenerator(root, file8);\n runFileGenerator(root, file9);\n runFileGenerator(root, file10);\n runFileGenerator(root, file11);\n runFileGenerator(root, file12);\n runFileGenerator(root, file13);\n runFileGenerator(root, file14);\n runFileGenerator(root, file15);\n runFileGenerator(root, file16);\n runFileGenerator(root, file17);\n runFileGenerator(root, file18);\n runFileGenerator(root, file19);\n runFileGenerator(root, file20);\n runFileGenerator(root, file21);\n runFileGenerator(root, file22);\n\n return root;\n}\n", "import { ResultDir } from '@alilc/lowcode-types';\nimport { IProjectTemplate } from '../../../../../types';\nimport { generateStaticFiles } from './static-files';\n\nconst vuejs3Template: IProjectTemplate = {\n slots: {\n // \u4E0D\u80FD\u5C11\uFF0C\u4F1A\u62A5\u9519\n components: {\n path: ['src', 'components'],\n },\n // \u4E0D\u80FD\u5C11\uFF0C\u4F1A\u62A5\u9519\n pages: {\n path: ['src', 'views'],\n },\n router: {\n path: ['src', 'router'],\n fileName: 'index',\n },\n // entry: {\n // path: ['src'],\n // fileName: 'app',\n // },\n // constants: {\n // path: ['src'],\n // fileName: 'constants',\n // },\n // \u4E0D\u80FD\u5C11\uFF0C\u4F1A\u62A5\u9519\n utils: {\n path: ['src'],\n fileName: 'utils',\n },\n // \u4E0D\u80FD\u5C11\uFF0C\u4F1A\u62A5\u9519\n i18n: {\n path: ['src'],\n fileName: 'i18n',\n },\n // globalStyle: {\n // path: ['src'],\n // fileName: 'global',\n // },\n // htmlEntry: {\n // path: ['public'],\n // fileName: 'index',\n // },\n packageJSON: {\n path: [],\n fileName: 'package',\n },\n // \u63A5\u53E3api\n api: {\n path: ['src', 'api']\n },\n // \u4E3B\u5165\u53E3\u9996\u9875\n main: {\n path: ['src', 'views', 'index'],\n fileName: 'Index',\n },\n },\n\n generateTemplate(): ResultDir {\n return generateStaticFiles();\n },\n};\n\nexport default vuejs3Template;\n", "import { PackageJSON } from '@alilc/lowcode-types';\n\nimport { COMMON_CHUNK_NAME } from '../../../../../const';\n\nimport {\n BuilderComponentPlugin,\n BuilderComponentPluginFactory,\n ChunkType,\n FileType,\n ICodeStruct,\n IProjectInfo,\n} from '../../../../../types';\n// todo \u540E\u7EED\u8003\u8651\u81EA\u5B9A\u4E49axios\u8BF7\u6C42\uFF0C\u518D\u4ECEschema\u4E2D\u83B7\u53D6\u6570\u636E\u6E90\u4F9D\u8D56\n// import { buildDataSourceDependencies } from '../../../../../utils/dataSource';\n\ninterface IIceJsPackageJSON extends PackageJSON {\n type: string;\n}\n\nexport interface IceJsPackageJsonPluginConfig {\n /**\n * \u6570\u636E\u6E90\u914D\u7F6E\n */\n datasourceConfig?: {\n /** \u6570\u636E\u6E90\u5F15\u64CE\u7684\u7248\u672C */\n engineVersion?: string;\n /** \u6570\u636E\u6E90\u5F15\u64CE\u7684\u5305\u540D */\n enginePackage?: string;\n /** \u6570\u636E\u6E90 handlers \u7684\u7248\u672C */\n handlersVersion?: {\n [key: string]: string;\n };\n /** \u6570\u636E\u6E90 handlers \u7684\u5305\u540D */\n handlersPackages?: {\n [key: string]: string;\n };\n };\n /** \u5305\u540D */\n packageName?: string;\n /** \u7248\u672C */\n packageVersion?: string;\n}\n\nconst pluginFactory: BuilderComponentPluginFactory<IceJsPackageJsonPluginConfig> = (cfg) => {\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n const ir = next.ir as IProjectInfo;\n\n const packageJson: IIceJsPackageJSON = {\n name: cfg?.packageName || 'vuejs3-demo-app',\n private: true,\n version: cfg?.packageVersion || '0.0.1',\n type: 'module',\n scripts: {\n dev: 'vite',\n build: 'vite build',\n preview: 'vite preview',\n },\n description: 'vue3\u57FA\u7840\u9879\u76EE',\n dependencies: {\n \"axios\": \"^1.7.7\",\n \"dayjs\": \"^1.11.9\",\n \"js-base64\": \"^3.7.5\",\n \"pinia\": \"^2.0.20\",\n \"pinia-plugin-persist\": \"^1.0.0\",\n \"postcss-px-to-viewport\": \"^1.1.1\",\n \"vant\": \"^3.6.4\",\n \"vue\": \"^3.3\",\n \"vue-router\": \"^4.1.3\",\n \"@dckj-npm/lowcode-vue-materials\": \"^1.2.9\",\n \"swiper\": \"^11.1.14\",\n \"ant-design-vue\": \"^4.2.5\"\n },\n devDependencies: {\n \"@dc/vue-h5-base\": \"^1.0.53-beta.10\",\n \"@types/node\": \"^17.0.45\",\n \"@typescript-eslint/eslint-plugin\": \"^5.56.0\",\n \"@typescript-eslint/parser\": \"^5.56.0\",\n \"@vitejs/plugin-vue\": \"^3.2.0\",\n \"@vue/compiler-sfc\": \"3.2.33\",\n \"@vue/eslint-config-prettier\": \"^7.1.0\",\n \"eslint\": \"^8.36.0\",\n \"eslint-plugin-prettier\": \"^4.2.1\",\n \"eslint-plugin-vue\": \"^8.7.1\",\n \"prettier\": \"^2.8.6\",\n \"sass\": \"^1.60.0\",\n \"typescript\": \"^4.9.5\",\n \"vite\": \"^3.2.5\",\n \"vite-plugin-compression\": \"^0.5.1\",\n \"vite-plugin-eslint\": \"^1.8.1\",\n \"vite-plugin-style-import\": \"^2.0.0\",\n \"vue-eslint-parser\": \"^8.3.0\",\n \"vue-tsc\": \"^0.40.13\"\n }\n };\n\n ir.packages.forEach((packageInfo) => {\n packageJson.dependencies[packageInfo.package] = packageInfo.version;\n });\n\n next.chunks.push({\n type: ChunkType.JSON,\n fileType: FileType.JSON,\n name: COMMON_CHUNK_NAME.FileMainContent,\n content: packageJson,\n linkAfter: [],\n });\n\n return next;\n };\n return plugin;\n};\n\nexport default pluginFactory;\n", "import { COMMON_CHUNK_NAME } from '../../../../../const';\n\nimport {\n BuilderComponentPlugin,\n BuilderComponentPluginFactory,\n ChunkType,\n FileType,\n ICodeStruct,\n IRouterInfo,\n} from '../../../../../types';\n\nconst pluginFactory: BuilderComponentPluginFactory<unknown> = () => {\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n const ir = next.ir as IRouterInfo;\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.TS,\n name: COMMON_CHUNK_NAME.InternalDepsImport,\n content: `\n import {\n \\tcreateRouter,\n \\tcreateWebHashHistory,\n \\tcreateWebHistory,\n \\tNavigationGuardNext,\n \\tRouteLocationNormalized,\n \\tRouteLocationNormalizedLoaded,\n \\tRouteRecordRaw\n } from \"vue-router\"\n import { useSystemStore } from \"@dc/vue-h5-base/src/store/system\"\n import { setRouter, defaultBeforeEach } from \"@dc/vue-h5-base/src/router\"\n import { useUserStore } from '@dc/vue-h5-base/src/store/user'\n `,\n linkAfter: [COMMON_CHUNK_NAME.ExternalDepsImport],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.TS,\n name: COMMON_CHUNK_NAME.FileVarDefine,\n content: `\n// \u52A8\u6001\u5BFC\u5165\u6240\u6709modules\u4E0B\u7684\u8DEF\u7531\u6587\u4EF6\u4FE1\u606F\nconst modelsFile = import.meta.globEager<Record<\"default\", Array<RouteRecordRaw>>>(\"./modules/**/*.ts\")\n\n// \u8DEF\u7531\u53BB\u4E2D\u5FC3\u5316\nconst children =\n Object.keys(modelsFile)\n .map((key: string) => modelsFile[key].default)\n .flat(1) || []\n\n/**\n * \u7CFB\u7EDF\u8DEF\u7531\u4FE1\u606F\n */\nconst routes: RouteRecordRaw[] = [\n {\n path: \"/\",\n redirect: \"${ir.routes[0].path}\",\n name: \"index\",\n meta: {\n keepAlive: true\n },\n component: () => import(\"@/views/index/Index.vue\"),\n children: [\n ${ir.routes\n .map(\n (route) => `\n {\n path: '${route.path}',\n name: '${route.componentName}',\n component: () => import(\"@/views/${route.componentName}/Index.vue\"),\n }\n `,\n )\n .join(',')}\n ]\n },\n {\n path: \"/business\",\n name: \"business\",\n component: () => import(\"@dc/vue-h5-base/src/views/Main.vue\"),\n children: children,\n // \u8FD9\u91CC\u7528\u6765\u663E\u793A\u6807\u9898\n props: (route: RouteLocationNormalizedLoaded) => ({\n title: route.query.title || route.query.title || route.name\n })\n },\n {\n path: \"/login\",\n name: \"\u767B\u5F55\",\n component: () => import(\"@dc/vue-h5-base/src/views/login/Login.vue\")\n }\n]\nconst router = createRouter({\n history: createWebHashHistory(import.meta.env.BASE_URL),\n routes,\n})\n\n// \u8BBE\u7F6E\u57FA\u7840\u6846\u67B6\u4E2D\u7684\u8DEF\u7531\u4FE1\u606F\nsetRouter(router)\n\n/**\n * \u5F00\u542F\u8DEF\u7531\u524D\u7F6E\u5B88\u536B\n */\n//router.beforeEach(defaultBeforeEach)\n `,\n linkAfter: [\n COMMON_CHUNK_NAME.ExternalDepsImport,\n COMMON_CHUNK_NAME.InternalDepsImport,\n ],\n });\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.TS,\n name: COMMON_CHUNK_NAME.FileExport,\n content: `\n export default router;\n `,\n linkAfter: [\n COMMON_CHUNK_NAME.ExternalDepsImport,\n COMMON_CHUNK_NAME.InternalDepsImport,\n COMMON_CHUNK_NAME.FileVarDefine,\n COMMON_CHUNK_NAME.FileMainContent,\n ],\n });\n\n return next;\n };\n return plugin;\n};\n\nexport default pluginFactory;\n", "import {IPublicTypeJSExpression, PackageJSON} from '@alilc/lowcode-types';\n\nimport { COMMON_CHUNK_NAME } from '../../../../../const';\n\nimport {\n BuilderComponentPlugin,\n BuilderComponentPluginFactory,\n ChunkType,\n FileType, HandlerSet,\n ICodeStruct, IContainerInfo,\n IProjectInfo, IScope, NodeGeneratorConfig,\n Tab\n} from '../../../../../types';\nimport {transformJsExpr} from \"../../../../../core/vue/handlers/transformJsExpression\";\nimport {generateExpression} from \"../../../../../utils/jsExpression\";\nimport {transformThis2Context} from \"../../../../../core/vue/handlers/transformThis2Context\";\nimport {generateCompositeType} from \"../../../../../utils/compositeType\";\nimport {Scope} from \"../../../../../utils/Scope\";\nimport {createVueNodeGenerator, generateByName} from \"../../../../../utils/nodeToTemplate\";\nimport {PluginConfig} from \"../../../../component/vue/template\";\n\ninterface IIceJsPackageJSON extends PackageJSON {\n type: string;\n}\n\nconst pluginFactory: BuilderComponentPluginFactory<PluginConfig> = (config?) => {\n const cfg = {\n fileType: FileType.VUE,\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n nodeTypeMapping: {} as Record<string, string>,\n ...config,\n };\n const { nodeTypeMapping } = cfg;\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n const { tolerateEvalErrors = true } = next.contextData;\n\n // \u8FD9\u91CC\u4F1A\u5C06\u5185\u90E8\u7684\u4E00\u4E9B\u5B50\u4E0A\u4E0B\u6587\u7684\u8BBF\u95EE(this.xxx)\u8F6C\u6362\u4E3A __$$context.xxx \u7684\u5F62\u5F0F\n // \u4E0E Rax \u6240\u4E0D\u540C\u7684\u662F\uFF0C\u8FD9\u91CC\u4E0D\u4F1A\u5C06\u6700\u9876\u5C42\u7684 this \u8F6C\u6362\u6389\n const customHandlers: HandlerSet<string> = {\n expression(input: IPublicTypeJSExpression, scope: IScope, config2) {\n return transformJsExpr(generateExpression(input, scope), scope, {\n dontWrapEval: !(config2?.tolerateEvalErrors ?? tolerateEvalErrors),\n dontTransformThis2ContextAtRootScope: true,\n });\n },\n function(input, scope: IScope) {\n return transformThis2Context(\n generateCompositeType(\n {\n type: 'JSFunction',\n value: input.value || 'function () {}',\n },\n Scope.createRootScope(),\n ),\n scope,\n { ignoreRootScope: true },\n );\n },\n };\n\n // \u5B9A\u4E49\u4E86\u5982\u4F55\u5904\u7406\u5C5E\u6027\uFF08\u5982 ref\uFF09\u3001\u6807\u7B7E\u6620\u5C04\u548C\u9519\u8BEF\u5BB9\u5FCD\u673A\u5236\n const generatorPlugins: NodeGeneratorConfig = {\n handlers: customHandlers,\n tagMapping: (v) => nodeTypeMapping[v] || v,\n tolerateEvalErrors,\n };\n\n const ir = next.ir.containers[0] as IContainerInfo;\n const scope: IScope = Scope.createRootScope();\n // \u751F\u6210\u5E95\u90E8\u5BFC\u822A\u680F\n const { code, node } = generateByName(generatorPlugins, 'Navigation', ir, scope, { 'v-model': 'active'})\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.VUE,\n name: COMMON_CHUNK_NAME.FileMainContent,\n content: `\n<template>\n\t<div class=\"page\">\n\t\t<!--\u9996\u9875-->\n\t\t<router-view v-slot=\"{ Component, route }\">\n\t\t\t<keep-alive>\n\t\t\t\t<component :is=\"Component\" :key=\"route.fullPath\" />\n\t\t\t</keep-alive>\n\t\t</router-view>\n\n\t\t<!--\u5E95\u90E8\u5BFC\u822A\u680F-->\n ${code}\n\t</div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { onMounted, ref, watchEffect } from \"vue\"\nimport { useRoute, useRouter } from 'vue-router'\nimport { Navigation } from '@dckj-npm/lowcode-vue-materials';\n\nlet router = useRouter()\n\n/**\n * \u5F53\u524D\u6FC0\u6D3B\u7684tab\n */\nconst active = ref(0)\nconst tabInfo = [\n ${(node.props?.itemArray as unknown as Tab[])\n .map(item => \n `{text: '${item.text ?? ''}', icon: '${item.icon ?? ''}', pageId: '${item.pageId ?? ''}', selectedIcon: '${item.selectedIcon ?? ''}'}`).join(',\\n')}]\n\n/**\n* \u8DF3\u8F6C\u9875\u9762\n* @param params\n* @param extParams\n*/\nfunction goPage(params, ...extParams) {\n const { pathId } = extParams.find(obj => obj.hasOwnProperty('pathId')) || {};\n const pageId = params ? params : pathId;\n router.replace(pageId);\n}\n\n/**\n * \u4ECE\u754C\u9762\u8FDB\u5165\uFF0C\u9009\u4E2Dtab\n */\nlet route = useRoute()\nwatchEffect(() => {\n\tlet number = tabInfo.findIndex((tab) => tab.pageId == route?.path)\n\tif (number != -1) {\n\t\tactive.value = number\n\t}\n})\n</script>\n\n<style lang=\"scss\" scoped>\n</style>`,\n linkAfter: [],\n });\n\n return next;\n };\n return plugin;\n};\n\nexport default pluginFactory;\n", "import template from './template';\nimport packageJSON from './plugins/packageJSON';\nimport router from './plugins/router';\nimport main from './plugins/main';\n\nexport default {\n template,\n plugins: {\n packageJSON,\n router,\n main\n },\n};\n", "import { createProjectBuilder } from '../generator/ProjectBuilder';\nimport containerVue from '../plugins/component/vue/containerVue';\nimport template from '../plugins/component/vue/template';\nimport vueCommonDeps from '../plugins/component/vue/vueCommonDeps';\nimport apiImport from '../plugins/component/vue/apiImport';\nimport esmodule from '../plugins/component/vue/esmodule';\nimport containerInitVariable from '../plugins/component/vue/containerInitVariable';\nimport containerLifeCycle from '../plugins/component/vue/containerLifeCycle';\nimport containerInjectDataSourceEngine from '../plugins/component/vue/containerInjectDataSourceEngine';\nimport containerMethod from '../plugins/component/vue/containerMethod';\nimport vuejs3 from '../plugins/project/framework/vuejs3';\nimport { prettier } from '../postprocessor';\n\nexport default function createDcSolutionProjectBuilder() {\n return createProjectBuilder({\n template: vuejs3.template,\n plugins: {\n components: [\n ],\n pages: [\n template({\n nodeTypeMapping:{\n Div: 'div',\n Component: 'div',\n Page: 'div',\n Block: 'div',\n }\n }),\n vueCommonDeps(),\n esmodule({ fileType: 'vue' }),\n containerVue(), \n apiImport(),\n containerInitVariable(),\n containerLifeCycle(),\n containerMethod()\n ],\n router: [\n // CodeGen.plugins.common.esModule(),\n vuejs3.plugins.router(),\n ],\n // entry: [CodeGen.solutionParts.icejs.plugins.entry()],\n // constants: [CodeGen.plugins.project.constants()],\n utils: [\n ],\n i18n: [],\n // globalStyle: [CodeGen.solutionParts.icejs.plugins.globalStyle()],\n // htmlEntry: [CodeGen.solutionParts.icejs.plugins.entryHtml()],\n packageJSON: [vuejs3.plugins.packageJSON()],\n api: [containerInjectDataSourceEngine()],\n main: [vuejs3.plugins.main()]\n },\n postProcessors: [prettier()],\n });\n}\nexport const plugins = {\n template,\n vueCommonDeps,\n esmodule,\n containerVue,\n apiImport,\n containerInitVariable,\n containerLifeCycle,\n containerMethod,\n vuejs3\n};\n", "import { COMMON_CHUNK_NAME } from '../../const/generator';\n\nimport { BuilderComponentPlugin, BuilderComponentPluginFactory, ChunkType, FileType, ICodeStruct } from '../../types';\n\n// TODO: How to merge this logic to common deps\nconst pluginFactory: BuilderComponentPluginFactory<unknown> = () => {\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: FileType.JSX,\n name: COMMON_CHUNK_NAME.InternalDepsImport,\n content: 'import * from \\'react\\';',\n linkAfter: [],\n });\n\n return next;\n };\n return plugin;\n};\n\nexport default pluginFactory;\n", "// \u672C\u6587\u4EF6\u662F\u8981\u5BFC\u51FA\u5230\u5916\u9762\u7684\uFF0C\u6CE8\u610F\u53EA\u5BFC\u51FA\u6BD4\u8F83\u7A33\u5B9A\u7684\u4E1C\u897F\nimport * as common from './common';\nimport * as compositeType from './compositeType';\nimport * as jsExpression from './jsExpression';\nimport * as jsSlot from './jsSlot';\nimport * as nodeToJSX from './nodeToJSX';\nimport * as resultHelper from './resultHelper';\nimport * as templateHelper from './templateHelper';\nimport * as validate from './validate';\nimport * as schema from './schema';\nimport * as version from './version';\nimport * as scope from './Scope';\nimport * as expressionParser from './expressionParser';\nimport * as dataSource from './dataSource';\nimport * as pathHelper from './pathHelper';\n\nexport {\n common,\n compositeType,\n jsExpression,\n jsSlot,\n nodeToJSX,\n resultHelper,\n templateHelper,\n validate,\n schema,\n version,\n scope,\n expressionParser,\n dataSource,\n pathHelper,\n};\n", "/**\n * \u4F4E\u4EE3\u7801\u5F15\u64CE\u7684\u51FA\u7801\u6A21\u5757\uFF0C\u8D1F\u8D23\u5C06\u7F16\u6392\u4EA7\u51FA\u7684 Schema \u8F6C\u6362\u6210\u5B9E\u9645\u53EF\u6267\u884C\u7684\u4EE3\u7801\u3002\n * \u6CE8\u610F\uFF1A\u4E3A\u4E86\u4FDD\u6301 API \u7684\u7A33\u5B9A\u6027\uFF0C\u8FD9\u91CC\u6240\u6709\u5BFC\u51FA\u7684 API \u5747\u8981\u663E\u5F0F\u547D\u540D\u65B9\u5F0F\u5BFC\u51FA\n * \uFF08\u5373\u7528 export { xxx } from 'xx' \u7684\u65B9\u5F0F\uFF0C\u4E0D\u8981\u76F4\u63A5 export * from 'xxx')\n * \u800C\u4E14\u6240\u6709\u5BFC\u51FA\u7684 API \u52A1\u5FC5\u5728 tests/public \u4E2D\u7F16\u5199\u5355\u5143\u6D4B\u8BD5\n */\nimport { createProjectBuilder } from './generator/ProjectBuilder';\nimport { createModuleBuilder } from './generator/ModuleBuilder';\nimport { createDiskPublisher } from './publisher/disk';\nimport { createZipPublisher } from './publisher/zip';\nimport createIceJsProjectBuilder, { plugins as icejsPlugins } from './solutions/icejs';\nimport createIceJs3ProjectBuilder, { plugins as icejs3Plugins } from './solutions/icejs3';\nimport createRaxAppProjectBuilder, { plugins as raxPlugins } from './solutions/rax-app';\nimport createDcSolutionProjectBuilder, { plugins as vuejs3Plugins } from './solutions/vuejs3';\n\n// \u5F15\u5165\u8BF4\u660E\nimport { REACT_CHUNK_NAME } from './plugins/component/react/const';\nimport { COMMON_CHUNK_NAME, CLASS_DEFINE_CHUNK_NAME, DEFAULT_LINK_AFTER, TEMPLATE_DEFINE_CHUNK_NAME, VUE_DEFAULT_LINK_AFTER } from './const/generator';\n\n// \u5F15\u5165\u901A\u7528\u63D2\u4EF6\u7EC4\nimport esmodule from './plugins/common/esmodule';\nimport requireUtils from './plugins/common/requireUtils';\nimport styleImport from './plugins/common/styleImport';\n\nimport css from './plugins/component/style/css';\nimport constants from './plugins/project/constants';\nimport i18n from './plugins/project/i18n';\nimport utils from './plugins/project/utils';\nimport prettier from './postprocessor/prettier';\n\n// \u5F15\u5165\u5168\u5C40\u5E38\u7528\u5DE5\u5177\nimport * as globalUtils from './utils';\n\nimport * as CONSTANTS from './const';\n\n// \u5F15\u5165\u5185\u7F6E\u89E3\u51B3\u65B9\u6848\u6A21\u5757\nimport icejs from './plugins/project/framework/icejs';\nimport icejs3 from './plugins/project/framework/icejs3';\nimport rax from './plugins/project/framework/rax';\nimport vuejs3 from './plugins/project/framework/vuejs3';\n\nexport default {\n createProjectBuilder,\n createModuleBuilder,\n solutions: {\n icejs: createIceJsProjectBuilder,\n icejs3: createIceJs3ProjectBuilder,\n rax: createRaxAppProjectBuilder,\n vuejs3: createDcSolutionProjectBuilder\n },\n solutionParts: {\n icejs,\n icejs3,\n rax,\n vuejs3\n },\n publishers: {\n disk: createDiskPublisher,\n zip: createZipPublisher,\n },\n plugins: {\n common: {\n\n /**\n * \u5904\u7406 ES Module\n * @deprecated please use esModule\n */\n esmodule,\n esModule: esmodule,\n requireUtils,\n styleImport,\n },\n style: {\n css,\n },\n project: {\n constants,\n i18n,\n utils,\n },\n icejs: {\n ...icejsPlugins,\n },\n icejs3: {\n ...icejs3Plugins,\n },\n rax: {\n ...raxPlugins,\n },\n vuejs3: {\n ...vuejs3Plugins\n },\n\n /**\n * @deprecated please use icejs\n */\n react: {\n ...icejsPlugins,\n },\n },\n postprocessor: {\n prettier,\n },\n utils: globalUtils,\n chunkNames: {\n COMMON_CHUNK_NAME,\n CLASS_DEFINE_CHUNK_NAME,\n REACT_CHUNK_NAME,\n TEMPLATE_DEFINE_CHUNK_NAME\n },\n defaultLinkAfter: {\n COMMON_DEFAULT_LINK_AFTER: DEFAULT_LINK_AFTER,\n VUE_DEFAULT_LINK_AFTER: VUE_DEFAULT_LINK_AFTER\n },\n constants: CONSTANTS,\n};\n\n// \u4E00\u4E9B\u7C7B\u578B\u5B9A\u4E49\nexport * from './types';\n\n// \u4E00\u4E9B\u5E38\u91CF\u5B9A\u4E49\nexport * from './const';\n\n// \u4E00\u4E9B\u5DE5\u5177\u51FD\u6570\nexport * from './analyzer/componentAnalyzer';\nexport * from './parser/SchemaParser';\nexport * from './generator/ChunkBuilder';\nexport * from './generator/CodeBuilder';\nexport * from './generator/ModuleBuilder';\nexport * from './generator/ProjectBuilder';\n", "/* eslint-disable no-console */\nimport * as fs from 'fs-extra';\nimport * as path from 'path';\nimport chalk from 'chalk';\nimport * as changeCase from 'change-case';\nimport { getErrorMessage } from '../utils/errors';\nimport { getLowcodeSolutionTemplateFiles } from './solutions/example-solution';\n\n\nexport async function initSolution(args: string[], options: {\n quiet?: boolean;\n verbose?: boolean;\n}) {\n try {\n const cwd = process.cwd();\n let solutionName = args[0] || 'hello';\n let solutionPath = path.resolve(cwd, solutionName);\n if (solutionName === '.') {\n solutionName = path.basename(cwd);\n solutionPath = cwd;\n }\n\n const modifyFileContent = (content: string) =>\n content\n .replace(/hello-world/g, changeCase.paramCase(solutionName))\n .replace(/HelloWorld/g, changeCase.pascalCase(solutionName))\n .replace(/Hello World/g, changeCase.titleCase(solutionName));\n\n await ensureDirExists(solutionPath);\n\n const templateFiles = getLowcodeSolutionTemplateFiles();\n for (const templateFile of templateFiles) {\n if (options.verbose) {\n console.log('%s', chalk.gray(`creating file ${templateFile.file}`));\n }\n\n const templateFilePath = path.join(solutionPath, templateFile.file);\n await ensureDirExists(path.dirname(templateFilePath));\n await fs.writeFile(templateFilePath, modifyFileContent(templateFile.content), { encoding: 'utf-8' });\n }\n\n if (!options.quiet) {\n console.log('%s', chalk.green(`solution ${solutionName} created successfully`));\n }\n\n return 0;\n } catch (e) {\n console.log(chalk.red(getErrorMessage(e) || `Unexpected error: ${e}`));\n if (typeof e === 'object' && (e as { stack: string } | null)?.stack && options.verbose) {\n console.log(chalk.gray((e as { stack: string }).stack));\n }\n return 1;\n }\n}\n\nasync function ensureDirExists(dirPath: string) {\n try {\n await fs.mkdir(dirPath, { recursive: true });\n } catch (e) {\n if ((e as { code: string }).code === 'EEXIST') {\n return;// ignore existing error\n }\n throw e;\n }\n}", "export function getLowcodeSolutionTemplateFiles() {\n return [\n {\n file: '.editorconfig',\n content: `root = true\n\n[*]\nindent_style = space\nindent_size = 2\nend_of_line = lf\ncharset = utf-8\ntrim_trailing_whitespace = true\ninsert_final_newline = true\nquote_type = single\n\n[*.md]\ntrim_trailing_whitespace = false\n`,\n },\n {\n file: '.eslintignore',\n content: `# \u5FFD\u7565\u76EE\u5F55\nnode_modules/\nbuild/\ndist/\ntest-cases/\ntest/\ntests/\noutput/\nes/\nlib/\ncoverage/\n\n# \u5FFD\u7565\u6587\u4EF6\n**/*.min.js\n**/*-min.js\n**/*.bundle.js\n`,\n },\n {\n file: '.eslintrc.js',\n content: `module.exports = {\n extends: 'eslint-config-ali/typescript/react',\n rules: {\n 'max-len': ['error', { code: 200 }],\n 'comma-dangle': 0,\n },\n};\n`,\n },\n {\n file: '.gitignore',\n content: `# project custom\nbuild\nes\nlib\ndist\noutput\npackage-lock.json\ndeploy-space/packages\ndeploy-space/.env\ngenerated\n\n# IDE\n.vscode\n.idea\n\n# Logs\nlogs\n*.log\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\nlerna-debug.log*\n\n# Runtime data\npids\n*.pid\n*.seed\n*.pid.lock\n\n\n# Directory for instrumented libs generated by jscoverage/JSCover\nlib-cov\n\n# Coverage directory used by tools like istanbul\ncoverage\n\n# nyc test coverage\n.nyc_output\n\n# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)\n.grunt\n\n# Bower dependency directory (https://bower.io/)\nbower_components\n\n# node-waf configuration\n.lock-wscript\n\n# Compiled binary addons (https://nodejs.org/api/addons.html)\nbuild/Release\nlib\n\n# Dependency directories\nnode_modules/\njspm_packages/\n\n# TypeScript v1 declaration files\ntypings/\n\n# Optional npm cache directory\n.npm\n\n# Optional eslint cache\n.eslintcache\n\n# Optional REPL history\n.node_repl_history\n\n# Output of 'npm pack'\n*.tgz\n\n# Yarn Integrity file\n.yarn-integrity\n\n# dotenv environment variables file\n.env\n.env.test\n\n# parcel-bundler cache (https://parceljs.org/)\n.cache\n\n# next.js build output\n.next\n\n# nuxt.js build output\n.nuxt\n\n# vuepress build output\n.vuepress/dist\n\n# Serverless directories\n.serverless/\n\n# FuseBox cache\n.fusebox/\n\n# DynamoDB Local files\n.dynamodb/\n\n# mac config files\n.DS_Store\n\n# codealike\ncodealike.json\n.node\n`,\n },\n {\n file: '.prettierignore',\n content: '/test-cases/',\n },\n {\n file: '.prettierrc',\n content: `{\n \"tabWidth\": 2,\n \"singleQuote\": true,\n \"trailingComma\": \"es5\"\n}\n`,\n },\n {\n file: 'CHANGELOG.md',\n content: '',\n },\n {\n file: 'CONTRIBUTING.md',\n content: `# \u6B22\u8FCE\u5171\u5EFA\n\n# \u6CE8\u610F\n\n- \u6CE8\u610F\u89E3\u51B3 eslint \u95EE\u9898\n- \u6CE8\u610F\u4EE3\u7801\u683C\u5F0F\u5316 -- \u5EFA\u8BAE\u5B89\u88C5 prettier \u63D2\u4EF6\n- \u53D1\u5E03\u524D\u6CE8\u610F\u8981\u8DD1\u901A demo \u548C\u6240\u6709\u7684\u5355\u6D4B\n\n## \u672C\u5730\u8C03\u8BD5\u8FD0\u884C Demo\n\n\\`\\`\\`sh\n> npm run demo\n\\`\\`\\`\n\n## \u672C\u5730\u8DD1\u5355\u6D4B\n\n\\`\\`\\`sh\n> npm test\n\\`\\`\\`\n`,\n },\n {\n file: 'README.md',\n content: `# \u4F4E\u4EE3\u7801\u51FA\u7801\u81EA\u5B9A\u4E49\u65B9\u6848\u4E4B Hello World\n\n## \u76F4\u63A5\u6267\u884C\n\n\\`\\`\\`sh\n> npx ali-lowcode-solution-hello-world demo-schema.json\n\\`\\`\\`\n\n## \u672C\u5730\u8C03\u8BD5\u8FD0\u884C Demo\n\n\\`\\`\\`sh\n> npm run demo\n\\`\\`\\`\n`,\n },\n {\n file: 'demo-schema.json',\n content: `{\n \"version\": \"1.0.0\",\n \"componentsMap\": [\n {\n \"componentName\": \"Button\",\n \"package\": \"@alifd/next\",\n \"version\": \"1.19.18\",\n \"destructuring\": true,\n \"exportName\": \"Button\"\n },\n {\n \"componentName\": \"Button.Group\",\n \"package\": \"@alifd/next\",\n \"version\": \"1.19.18\",\n \"destructuring\": true,\n \"exportName\": \"Button\",\n \"subName\": \"Group\"\n },\n {\n \"componentName\": \"Input\",\n \"package\": \"@alifd/next\",\n \"version\": \"1.19.18\",\n \"destructuring\": true,\n \"exportName\": \"Input\"\n },\n {\n \"componentName\": \"Form\",\n \"package\": \"@alifd/next\",\n \"version\": \"1.19.18\",\n \"destructuring\": true,\n \"exportName\": \"Form\"\n },\n {\n \"componentName\": \"Form.Item\",\n \"package\": \"@alifd/next\",\n \"version\": \"1.19.18\",\n \"destructuring\": true,\n \"exportName\": \"Form\",\n \"subName\": \"Item\"\n },\n {\n \"componentName\": \"NumberPicker\",\n \"package\": \"@alifd/next\",\n \"version\": \"1.19.18\",\n \"destructuring\": true,\n \"exportName\": \"NumberPicker\"\n },\n {\n \"componentName\": \"Select\",\n \"package\": \"@alifd/next\",\n \"version\": \"1.19.18\",\n \"destructuring\": true,\n \"exportName\": \"Select\"\n }\n ],\n \"componentsTree\": [\n {\n \"componentName\": \"Page\",\n \"id\": \"node$1\",\n \"meta\": {\n \"title\": \"\u6D4B\u8BD5\",\n \"router\": \"/\"\n },\n \"props\": {\n \"ref\": \"outterView\",\n \"autoLoading\": true\n },\n \"fileName\": \"test\",\n \"state\": {\n \"text\": \"outter\"\n },\n \"lifeCycles\": {\n \"componentDidMount\": {\n \"type\": \"JSFunction\",\n \"value\": \"function componentDidMount() {\\\\n console.log('componentDidMount');\\\\n}\"\n }\n },\n \"methodsModule\": {\n \"type\": \"JSModule\",\n \"source\": \"export function helloWorld() {\\\\n console.log('Hello world!');\\\\n}\\\\n\"\n },\n \"dataSource\": {\n \"list\": [\n {\n \"id\": \"urlParams\",\n \"type\": \"urlParams\"\n },\n\n {\n \"id\": \"user\",\n \"type\": \"fetch\",\n \"options\": {\n \"method\": \"GET\",\n \"uri\": \"https://shs.xxx.com/mock/1458/demo/user\",\n \"isSync\": true\n },\n \"dataHandler\": {\n \"type\": \"JSExpression\",\n \"value\": \"function (response) {\\\\nif (!response.data.success){\\\\n throw new Error(response.data.message);\\\\n }\\\\n return response.data.data;\\\\n}\"\n }\n },\n\n {\n \"id\": \"orders\",\n \"type\": \"fetch\",\n \"options\": {\n \"method\": \"GET\",\n \"uri\": \"https://shs.xxx.com/mock/1458/demo/orders\",\n \"isSync\": true\n },\n \"dataHandler\": {\n \"type\": \"JSExpression\",\n \"value\": \"function (response) {\\\\nif (!response.data.success){\\\\n throw new Error(response.data.message);\\\\n }\\\\n return response.data.data.result;\\\\n}\"\n }\n }\n ],\n \"dataHandler\": {\n \"type\": \"JSExpression\",\n \"value\": \"function (dataMap) {\\\\n console.info(\\\\\"All datasources loaded:\\\\\", dataMap);\\\\n}\"\n }\n },\n \"children\": [\n {\n \"componentName\": \"Form\",\n \"id\": \"node$2\",\n \"props\": {\n \"labelCol\": {\n \"type\": \"JSExpression\",\n \"value\": \"this.state.colNum\"\n },\n \"style\": {},\n \"ref\": \"testForm\"\n },\n \"children\": [\n {\n \"componentName\": \"Form.Item\",\n \"id\": \"node$3\",\n \"props\": {\n \"label\": \"\u59D3\u540D\uFF1A\",\n \"name\": \"name\",\n \"initValue\": \"\u674E\u96F7\"\n },\n \"children\": [\n {\n \"componentName\": \"Input\",\n \"id\": \"node$4\",\n \"props\": {\n \"placeholder\": \"\u8BF7\u8F93\u5165\",\n \"size\": \"medium\",\n \"style\": {\n \"width\": 320\n }\n }\n }\n ]\n },\n {\n \"componentName\": \"Form.Item\",\n \"id\": \"node$5\",\n \"props\": {\n \"label\": \"\u5E74\u9F84\uFF1A\",\n \"name\": \"age\",\n \"initValue\": \"22\"\n },\n \"children\": [\n {\n \"componentName\": \"NumberPicker\",\n \"id\": \"node$6\",\n \"props\": {\n \"size\": \"medium\",\n \"type\": \"normal\"\n }\n }\n ]\n },\n {\n \"componentName\": \"Form.Item\",\n \"id\": \"node$7\",\n \"props\": {\n \"label\": \"\u804C\u4E1A\uFF1A\",\n \"name\": \"profession\"\n },\n \"children\": [\n {\n \"componentName\": \"Select\",\n \"id\": \"node$8\",\n \"props\": {\n \"dataSource\": [\n {\n \"label\": \"\u6559\u5E08\",\n \"value\": \"t\"\n },\n {\n \"label\": \"\u533B\u751F\",\n \"value\": \"d\"\n },\n {\n \"label\": \"\u6B4C\u624B\",\n \"value\": \"s\"\n }\n ]\n }\n }\n ]\n },\n {\n \"componentName\": \"Div\",\n \"id\": \"node$9\",\n \"props\": {\n \"style\": {\n \"textAlign\": \"center\"\n }\n },\n \"children\": [\n {\n \"componentName\": \"Button.Group\",\n \"id\": \"node$a\",\n \"props\": {},\n \"children\": [\n {\n \"componentName\": \"Button\",\n \"id\": \"node$b\",\n \"condition\": {\n \"type\": \"JSExpression\",\n \"value\": \"this.index >= 1\"\n },\n \"loop\": [\"a\", \"b\", \"c\"],\n \"props\": {\n \"type\": \"primary\",\n \"style\": {\n \"margin\": \"0 5px 0 5px\"\n }\n },\n \"children\": [\n {\n \"type\": \"JSExpression\",\n \"value\": \"this.item\"\n }\n ]\n }\n ]\n }\n ]\n }\n ]\n }\n ]\n }\n ],\n \"constants\": {\n \"ENV\": \"prod\",\n \"DOMAIN\": \"xxx.xxx.com\"\n },\n \"css\": \"body {font-size: 12px;} .table { width: 100px;}\",\n \"config\": {\n \"sdkVersion\": \"1.0.3\",\n \"historyMode\": \"hash\",\n \"targetRootID\": \"J_Container\",\n \"layout\": {\n \"componentName\": \"BasicLayout\",\n \"props\": {\n \"logo\": \"...\",\n \"name\": \"\u6D4B\u8BD5\u7F51\u7AD9\"\n }\n },\n \"theme\": {\n \"package\": \"@alife/theme-fusion\",\n \"version\": \"^0.1.0\",\n \"primary\": \"#ff9966\"\n }\n },\n \"meta\": {\n \"name\": \"demo\u5E94\u7528\",\n \"git_group\": \"appGroup\",\n \"project_name\": \"app_demo\",\n \"description\": \"\u8FD9\u662F\u4E00\u4E2A\u6D4B\u8BD5\u5E94\u7528\",\n \"spma\": \"spa23d\",\n \"creator\": \"\u6708\u98DE\"\n }\n}\n`,\n },\n {\n file: 'jest.config.js',\n content: `module.exports = {\n preset: 'ts-jest',\n testEnvironment: 'node',\n testPathIgnorePatterns: ['/node_modules/', '/test-cases/', '/static-files/', '/lib/'],\n};\n`,\n },\n {\n file: 'package.json',\n content: `{\n \"name\": \"ali-lowcode-solution-hello-world\",\n \"version\": \"1.0.0\",\n \"description\": \"AlLowCode Code Generate Solution - Hello World\",\n \"files\": [\n \"src\",\n \"lib\",\n \"tests\",\n \"jest.config.js\",\n \".editorconfig\",\n \".eslintignore\",\n \".eslintrc.js\",\n \".gitignore\",\n \".prettierignore\",\n \".prettierrc\",\n \"CHANGELOG.md\",\n \"CONTRIBUTING.md\",\n \"demo-schema.json\",\n \"package.json\",\n \"README.md\",\n \"tsconfig.json\"\n ],\n \"main\": \"lib/index.js\",\n \"scripts\": {\n \"start\": \"jest --watch\",\n \"build\": \"npm run clean && concurrently 'npm run build:ts' 'npm run lint'\",\n \"build:ts\": \"tsc\",\n \"check:type\": \"tsc -p . --noEmit\",\n \"clean\": \"rm -rf build dist lib generated\",\n \"dev\": \"build-scripts start\",\n \"lint\": \"eslint --ext .tsx,.ts,.js,.jsx src\",\n \"lintfix\": \"eslint --fix --color --ext .tsx,.ts,.js,.jsx src\",\n \"lint-staged\": \"lint-staged\",\n \"prepublishOnly\": \"npm run build\",\n \"postpublish\": \"git push origin master --tags\",\n \"test\": \"jest\",\n \"test:watch\": \"jest --watch\",\n \"test:update-snapshots\": \"cross-env UPDATE_EXPECTED=true npx jest\",\n \"demo\": \"npm run build && npx @alilc/lowcode-code-generator --solution . --output generated demo-schema.json\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git@github.com:your-name/ali-lowcode-solution-hello-world.git\"\n },\n \"author\": \"\",\n \"license\": \"ISC\",\n \"publishConfig\": {\n \"registry\": \"https://registry.npm.xxx.com\"\n },\n \"dependencies\": {\n \"@alilc/lowcode-code-generator\": \"^1.0.0\",\n \"@alilc/lowcode-types\": \"^1.0.0\",\n \"tslib\": \"^2.3.0\"\n },\n \"devDependencies\": {\n \"@types/async\": \"^3.2.3\",\n \"@types/jest\": \"^26.0.17\",\n \"@typescript-eslint/eslint-plugin\": \"^4.28.4\",\n \"@typescript-eslint/parser\": \"^4.28.4\",\n \"async\": \"^3.2.0\",\n \"babel-runtime\": \"^6.26.0\",\n \"concurrently\": \"^5.2.0\",\n \"cross-env\": \"^7.0.0\",\n \"debug\": \"^4.1.1\",\n \"eslint\": \"^7.31.0\",\n \"eslint-config-ali\": \"^12.1.0\",\n \"eslint-plugin-import\": \"^2.23.4\",\n \"eslint-plugin-react\": \"^7.24.0\",\n \"eslint-plugin-react-hooks\": \"^4.2.0\",\n \"glob\": \"^7.2.0\",\n \"husky\": \"4.2.5\",\n \"jest\": \"^26.6.3\",\n \"json5\": \"^2.2.0\",\n \"lint-staged\": \"10.1.x\",\n \"lodash\": \"^4.17.21\",\n \"md5\": \"^2.2.1\",\n \"prettier\": \"^2.3.2\",\n \"ts-jest\": \"^26.4.4\",\n \"ts-node\": \"^9.0.0\",\n \"typescript\": \"4.x\"\n }\n}\n`,\n },\n {\n file: 'tsconfig.json',\n content: `{\n \"compilerOptions\": {\n \"esModuleInterop\": true,\n \"declaration\": true,\n \"experimentalDecorators\": true,\n \"forceConsistentCasingInFileNames\": true,\n \"importHelpers\": true,\n \"incremental\": false,\n \"jsx\": \"react\",\n \"moduleResolution\": \"node\",\n \"resolveJsonModule\": true,\n \"skipLibCheck\": true,\n \"sourceMap\": true,\n \"strict\": true,\n \"stripInternal\": true,\n \"outDir\": \"./lib\",\n \"declarationDir\": \"./lib\",\n \"rootDirs\": [\"./src\"],\n \"target\": \"es6\",\n \"module\": \"commonjs\",\n \"lib\": [\"esnext\"],\n \"types\": [\"jest\", \"node\"],\n \"noUnusedLocals\": false,\n \"noUnusedParameters\": false\n },\n \"include\": [\"src/**/*\", \"typings/**/*\"]\n}\n`,\n },\n {\n file: 'src/index.ts',\n content: `import CodeGen from '@alilc/lowcode-code-generator';\n\nimport examplePlugin from './plugins/example';\n\nexport default function createHelloWorldProjectBuilder() {\n return CodeGen.createProjectBuilder({\n template: CodeGen.solutionParts.icejs.template,\n plugins: {\n components: [\n CodeGen.plugins.icejs.reactCommonDeps(),\n CodeGen.plugins.common.esModule({ fileType: 'jsx' }),\n CodeGen.plugins.common.styleImport(),\n CodeGen.plugins.icejs.containerClass(),\n CodeGen.plugins.icejs.containerInjectContext(),\n CodeGen.plugins.icejs.containerInjectUtils(),\n CodeGen.plugins.icejs.containerInjectDataSourceEngine(),\n CodeGen.plugins.icejs.containerInjectI18n(),\n CodeGen.plugins.icejs.containerInjectConstants(),\n CodeGen.plugins.icejs.containerInitState(),\n CodeGen.plugins.icejs.containerLifeCycle(),\n CodeGen.plugins.icejs.containerMethod(),\n examplePlugin(),\n CodeGen.plugins.icejs.jsx({\n nodeTypeMapping: {\n Div: 'div',\n Component: 'div',\n Page: 'div',\n Block: 'div',\n },\n }),\n CodeGen.plugins.style.css(),\n ],\n pages: [\n CodeGen.plugins.icejs.reactCommonDeps(),\n CodeGen.plugins.common.esModule({ fileType: 'jsx' }),\n CodeGen.plugins.common.styleImport(),\n CodeGen.plugins.icejs.containerClass(),\n CodeGen.plugins.icejs.containerInjectContext(),\n CodeGen.plugins.icejs.containerInjectUtils(),\n CodeGen.plugins.icejs.containerInjectDataSourceEngine(),\n CodeGen.plugins.icejs.containerInjectI18n(),\n CodeGen.plugins.icejs.containerInjectConstants(),\n CodeGen.plugins.icejs.containerInitState(),\n CodeGen.plugins.icejs.containerLifeCycle(),\n CodeGen.plugins.icejs.containerMethod(),\n examplePlugin(),\n CodeGen.plugins.icejs.jsx({\n nodeTypeMapping: {\n Div: 'div',\n Component: 'div',\n Page: 'div',\n Block: 'div',\n },\n }),\n CodeGen.plugins.style.css(),\n ],\n router: [\n CodeGen.plugins.common.esModule(),\n CodeGen.solutionParts.icejs.plugins.router(),\n ],\n entry: [CodeGen.solutionParts.icejs.plugins.entry()],\n constants: [CodeGen.plugins.project.constants()],\n utils: [\n CodeGen.plugins.common.esModule(),\n CodeGen.plugins.project.utils('react'),\n ],\n i18n: [CodeGen.plugins.project.i18n()],\n globalStyle: [CodeGen.solutionParts.icejs.plugins.globalStyle()],\n htmlEntry: [CodeGen.solutionParts.icejs.plugins.entryHtml()],\n packageJSON: [CodeGen.solutionParts.icejs.plugins.packageJSON()],\n },\n postProcessors: [CodeGen.postprocessor.prettier()],\n });\n}\n`,\n },\n {\n file: 'src/plugins/example.ts',\n content: `import {\n ICodeStruct,\n BuilderComponentPlugin,\n BuilderComponentPluginFactory,\n FileType,\n ChunkType,\n IContainerInfo,\n COMMON_CHUNK_NAME,\n CLASS_DEFINE_CHUNK_NAME,\n DEFAULT_LINK_AFTER,\n} from '@alilc/lowcode-code-generator';\n\nexport interface PluginConfig {\n fileType: string;\n}\n\nconst pluginFactory: BuilderComponentPluginFactory<PluginConfig> = (\n config?\n) => {\n const cfg: PluginConfig = {\n fileType: FileType.JSX,\n ...config,\n };\n\n const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => {\n const next: ICodeStruct = {\n ...pre,\n };\n\n const ir = next.ir as IContainerInfo & {\n methodsModule?: {\n type?: 'JSModule';\n source?: string;\n };\n };\n\n if (ir.methodsModule?.type !== 'JSModule' || !ir.methodsModule?.source) {\n return next;\n }\n\n // \u521B\u5EFA methods.jsx\n next.chunks.push({\n type: ChunkType.STRING,\n subModule: 'methods',\n fileType: cfg.fileType,\n name: COMMON_CHUNK_NAME.CustomContent,\n content: ir.methodsModule.source,\n linkAfter: [],\n });\n\n // \u5F15\u5165\u5BF9\u5E94\u7684\u6A21\u5757\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: COMMON_CHUNK_NAME.InternalDepsImport,\n content: \"import __$$methodsModule from './methods';\",\n linkAfter: [...DEFAULT_LINK_AFTER[COMMON_CHUNK_NAME.InternalDepsImport]],\n });\n\n // \u5C06\u5BFC\u51FA\u7684\u4E1C\u4E1C\u90FD\u653E\u5230 class \u4E0A\u5B9E\u4F8B\u65B9\u6CD5\u90E8\u5206\n next.chunks.push({\n type: ChunkType.STRING,\n fileType: cfg.fileType,\n name: CLASS_DEFINE_CHUNK_NAME.ConstructorContent,\n content: 'Object.assign(this, __$$methodsModule);',\n linkAfter: [\n ...DEFAULT_LINK_AFTER[CLASS_DEFINE_CHUNK_NAME.ConstructorContent],\n ],\n });\n\n return next;\n };\n\n return plugin;\n};\n\nexport default pluginFactory;\n`,\n },\n {\n file: 'tests/basic.test.ts',\n content: `test('basic functions should be ok', () => {\n // \u8FD9\u91CC\u653E\u4E00\u4E9B\u5355\u5143\u6D4B\u8BD5\n expect(0).toBe(0);\n});\n`,\n },\n ];\n}\n"],
5
- "mappings": "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A;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAoBX;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAcX;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA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",
5
+ "mappings": "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AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAcX;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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",
6
6
  "names": ["import_change_case", "changeCase", "short", "ContainerType", "changeCase", "_a", "_b", "file", "nm", "t", "plugins", "file", "plugins", "path", "file", "fs", "file", "resolve", "fs", "path", "fs", "path", "JSZip", "file", "path", "import_change_case", "pluginFactory", "changeCase", "import_change_case", "pluginFactory", "changeCase", "import_lowcode_types", "import_lodash", "parser", "import_generator", "import_traverse", "t", "import_lowcode_types", "parseExpression", "import_generator", "import_types", "generate", "traverse", "path", "parseExpression", "traverse", "path", "generate", "parseExpression", "import_lowcode_types", "_", "identifier", "pluginFactory", "pluginFactory", "pluginFactory", "import_lowcode_types", "import_change_case", "pluginFactory", "changeCase", "pluginFactory", "pluginFactory", "import_lowcode_types", "pluginFactory", "pluginFactory", "import_lodash", "import_lowcode_types", "import_lodash", "_", "import_generator", "generate", "_", "parseExpression", "pluginFactory", "scope", "config", "pluginFactory", "pluginFactory", "pluginFactory", "pluginFactory", "pluginFactory", "path", "file", "getFile", "getFile", "file", "getFile", "file", "getFile", "file", "getFile", "file", "getFile", "file", "getFile", "file", "getFile", "file", "getFile", "file", "getFile", "file", "getFile", "file", "getFile", "file", "getFile", "file", "getFile", "file", "getFile", "file", "getFile", "file", "getFile", "file", "getFile", "file", "getFile", "file", "getFile", "pluginFactory", "pluginFactory", "pluginFactory", "import_change_case", "changeCase", "pluginFactory", "pluginFactory", "parser", "prettier", "parserBabel", "parserPostCss", "parserHtml", "getFile", "file", "getFile", "file", "getFile", "file", "getFile", "file", "getFile", "file", "getFile", "file", "getFile", "file", "getFile", "file", "getFile", "file", "getFile", "file", "getFile", "file", "getFile", "file", "generateStaticFiles", "getFile", "generateStaticFiles", "template_default", "pluginFactory", "globalStyle_default", "pluginFactory", "packageJSON_default", "pluginFactory", "pluginFactory", "import_prettier", "import_parser_babel", "prettier", "parserBabel", "getContent", "pluginFactory", "template_default", "globalStyle_default", "packageJSON_default", "createIceJsProjectBuilder", "plugins", "import_change_case", "pluginFactory", "changeCase", "containerClass_default", "import_lodash", "import_lowcode_types", "createDebug", "pluginFactory", "_", "containerLifeCycle_default", "pluginFactory", "pluginFactory", "containerInitState_default", "pluginFactory", "containerInjectContext_default", "import_lowcode_types", "import_change_case", "pluginFactory", "_a", "changeCase", "wrapAsFunction", "containerInjectDataSourceEngine_default", "pluginFactory", "containerInjectUtils_default", "import_lowcode_types", "import_lodash", "import_change_case", "pluginFactory", "config", "next", "jsx_default", "_", "changeCase", "pluginFactory", "getFile", "getFile", "getFile", "getFile", "getFile", "getFile", "getFile", "getFile", "getFile", "getFile", "generateStaticFiles", "getFile", "generateStaticFiles", "template_default", "pluginFactory", "entry_default", "import_change_case", "pluginFactory", "changeCase", "appConfig_default", "pluginFactory", "buildConfig_default", "pluginFactory", "pluginFactory", "globalStyle_default", "semver", "pluginFactory", "packageJSON_default", "template_default", "appConfig_default", "buildConfig_default", "entry_default", "globalStyle_default", "packageJSON_default", "containerClass_default", "containerInitState_default", "containerInjectContext_default", "containerInjectDataSourceEngine_default", "containerInjectUtils_default", "containerLifeCycle_default", "jsx_default", "plugins", "pluginFactory", "import_lodash", "import_lowcode_types", "mergeNodeGeneratorConfig", "isPureString", "generateAttrValue", "generateAttr", "generateAttrs", "generateBasicNode", "_", "generateSimpleNode", "linkPieces", "generateNodeSchema", "handleChildren", "createNodeGenerator", "isLiteralAtomicExpr", "isSimpleStraightLiteral", "import_generator", "transformThis2Context", "generate", "transformJsExpr", "isLiteralAtomicExpr", "parseExpression", "isSimpleStraightLiteral", "transformThis2Context", "pluginFactory", "scope", "transformJsExpr", "transformThis2Context", "template_default", "pluginFactory", "pluginFactory", "import_lodash", "DEP_MAIN_BLOCKLIST", "DEFAULT_EXPORT_NAME", "groupDepsByPack", "getDependencyIdentifier", "getExportNameOfDep", "throwNewError", "buildPackageImport", "pluginFactory", "esmodule_default", "pluginFactory", "import_lowcode_types", "import_lodash", "_", "pluginFactory", "item", "containerLifeCycle_default", "pluginFactory", "containerInjectDataSourceEngine_default", "pluginFactory", "containerMethod_default", "getFile", "file", "getFile", "file", "getFile", "file", "getFile", "getFile", "getFile", "getFile", "getFile", "getFile", "getFile", "getFile", "getFile", "getFile", "file", "getFile", "file", "getFile", "file", "getFile", "file", "getFile", "file", "getFile", "file", "getFile", "file", "getFile", "file", "generateStaticFiles", "getFile", "generateStaticFiles", "template_default", "pluginFactory", "packageJSON_default", "pluginFactory", "router_default", "pluginFactory", "scope", "_a", "transformJsExpr", "transformThis2Context", "template_default", "packageJSON_default", "router_default", "template_default", "esmodule_default", "containerLifeCycle_default", "containerMethod_default", "containerInjectDataSourceEngine_default", "plugins", "pluginFactory", "createIceJsProjectBuilder", "plugins", "createProjectBuilder", "chalk", "JSON5", "fs", "path", "import_chalk", "changeCase", "chalk"]
7
7
  }