neo-cmp-cli 1.8.6-beta.6 → 1.8.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. package/bin/index.js +2 -2
  2. package/package.json +3 -3
  3. package/src/config/auth.config.js +27 -0
  4. package/src/config/default.config.js +176 -0
  5. package/src/config/index.js +9 -0
  6. package/src/initData/defaultTemplate.html +13 -0
  7. package/src/initData/neo.config.js +138 -0
  8. package/src/main.js +221 -0
  9. package/src/module/inspect.js +41 -0
  10. package/src/module/neoInit.js +55 -0
  11. package/src/module/neoInitByCopy.js +61 -0
  12. package/src/neo/NeoUMDContent.js +30 -0
  13. package/src/neo/neoLogin.js +565 -0
  14. package/src/neo/neoRequire.js +125 -0
  15. package/src/neo/neoService.js +874 -0
  16. package/src/neo/webpack.mf.js +60 -0
  17. package/src/neo/wrapperContent.js +16 -0
  18. package/src/oss/publish2oss.js +348 -0
  19. package/src/plugins/AddNeoRequirePlugin-v1.js +47 -0
  20. package/src/plugins/AddNeoRequirePlugin.js +179 -0
  21. package/src/plugins/README.md +109 -0
  22. package/src/utils/autoEntryRootDir.js +85 -0
  23. package/src/utils/cmpUtils/createCmpByTemplate.js +60 -0
  24. package/src/utils/cmpUtils/createCmpByZip.js +408 -0
  25. package/src/utils/cmpUtils/createCommonModulesCode.js +121 -0
  26. package/src/utils/cmpUtils/deleteCmp.js +63 -0
  27. package/src/utils/cmpUtils/getCmpModelRegisterCode.js +31 -0
  28. package/src/utils/cmpUtils/getCmpPreviewCode.js +43 -0
  29. package/src/utils/cmpUtils/getCmpRegisterCode.js +31 -0
  30. package/src/utils/cmpUtils/getCmpTypeByDir.js +41 -0
  31. package/src/utils/cmpUtils/hasCmpTypeByDir.js +11 -0
  32. package/src/utils/cmpUtils/previewCmp.js +55 -0
  33. package/src/utils/cmpUtils/pullCmp.js +104 -0
  34. package/src/utils/cmpUtils/pushCmp.js +230 -0
  35. package/src/utils/common.js +107 -0
  36. package/src/utils/configureNeoBuild.js +109 -0
  37. package/src/utils/generateEntries.js +63 -0
  38. package/src/utils/neoConfigInit.js +13 -0
  39. package/src/utils/neoParams.js +12 -0
  40. package/src/utils/pathUtils.js +23 -0
  41. package/src/utils/projectNameValidator.js +76 -0
  42. package/src/utils/projectUtils/createCmpProjectByTemplate.js +59 -0
  43. package/src/utils/projectUtils/createCmpProjectZip.js +120 -0
  44. package/src/utils/projectUtils/getEntries.js +80 -0
  45. package/src/utils/projectUtils/getEntriesWithAutoRegister.js +108 -0
  46. package/src/utils/projectUtils/hasNeoProject.js +17 -0
  47. package/src/utils/projectUtils/openProject.js +96 -0
  48. package/src/utils/projectUtils/updatePublishLog.js +30 -0
  49. package/src/utils/replaceInFiles.js +47 -0
  50. package/src/utils/replaceInFilesByMap.js +54 -0
  51. package/src/utils/replaceInPackage.js +134 -0
  52. package/src/utils/resetPackageVersion.js +115 -0
  53. package/test/deprecate-versions.js +1 -1
  54. package/test/neo.config.js +1 -25
  55. package/dist/_virtual/AddNeoRequirePlugin.js +0 -8
  56. package/dist/_virtual/OverloadYield.js +0 -5
  57. package/dist/_virtual/_commonjsHelpers.js +0 -40
  58. package/dist/_virtual/array-set.js +0 -5
  59. package/dist/_virtual/base64-vlq.js +0 -5
  60. package/dist/_virtual/base64.js +0 -5
  61. package/dist/_virtual/binary-search.js +0 -5
  62. package/dist/_virtual/createCmpByZip.js +0 -8
  63. package/dist/_virtual/deleteCmp.js +0 -8
  64. package/dist/_virtual/index.js +0 -9
  65. package/dist/_virtual/mapping-list.js +0 -5
  66. package/dist/_virtual/neoLogin.js +0 -8
  67. package/dist/_virtual/neoService.js +0 -8
  68. package/dist/_virtual/openProject.js +0 -8
  69. package/dist/_virtual/publish2oss.js +0 -8
  70. package/dist/_virtual/pullCmp.js +0 -8
  71. package/dist/_virtual/pushCmp.js +0 -8
  72. package/dist/_virtual/quick-sort.js +0 -5
  73. package/dist/_virtual/regenerator.js +0 -5
  74. package/dist/_virtual/regeneratorAsync.js +0 -5
  75. package/dist/_virtual/regeneratorAsyncGen.js +0 -5
  76. package/dist/_virtual/regeneratorAsyncIterator.js +0 -5
  77. package/dist/_virtual/regeneratorDefine.js +0 -5
  78. package/dist/_virtual/regeneratorKeys.js +0 -5
  79. package/dist/_virtual/regeneratorRuntime.js +0 -5
  80. package/dist/_virtual/regeneratorValues.js +0 -5
  81. package/dist/_virtual/source-map-consumer.js +0 -5
  82. package/dist/_virtual/source-map-generator.js +0 -5
  83. package/dist/_virtual/source-map-support.js +0 -5
  84. package/dist/_virtual/source-map.js +0 -5
  85. package/dist/_virtual/source-node.js +0 -5
  86. package/dist/_virtual/typeof.js +0 -5
  87. package/dist/_virtual/typescript.js +0 -5
  88. package/dist/_virtual/util.js +0 -5
  89. package/dist/config/auth.config.js +0 -50
  90. package/dist/config/default.config.js +0 -225
  91. package/dist/config/index.js +0 -27
  92. package/dist/main.js +0 -9
  93. package/dist/main2.js +0 -261
  94. package/dist/module/inspect.js +0 -64
  95. package/dist/module/neoInit.js +0 -69
  96. package/dist/module/neoInitByCopy.js +0 -81
  97. package/dist/neo/neoLogin.js +0 -663
  98. package/dist/neo/neoRequire.js +0 -118
  99. package/dist/neo/neoService.js +0 -1246
  100. package/dist/node_modules/@babel/runtime/helpers/OverloadYield.js +0 -19
  101. package/dist/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js +0 -29
  102. package/dist/node_modules/@babel/runtime/helpers/esm/extends.js +0 -13
  103. package/dist/node_modules/@babel/runtime/helpers/regenerator.js +0 -105
  104. package/dist/node_modules/@babel/runtime/helpers/regeneratorAsync.js +0 -24
  105. package/dist/node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js +0 -23
  106. package/dist/node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js +0 -50
  107. package/dist/node_modules/@babel/runtime/helpers/regeneratorDefine.js +0 -37
  108. package/dist/node_modules/@babel/runtime/helpers/regeneratorKeys.js +0 -25
  109. package/dist/node_modules/@babel/runtime/helpers/regeneratorRuntime.js +0 -98
  110. package/dist/node_modules/@babel/runtime/helpers/regeneratorValues.js +0 -35
  111. package/dist/node_modules/@babel/runtime/helpers/typeof.js +0 -25
  112. package/dist/node_modules/@babel/runtime/regenerator/index.js +0 -29
  113. package/dist/node_modules/buffer-from/index.js +0 -57
  114. package/dist/node_modules/source-map/lib/array-set.js +0 -134
  115. package/dist/node_modules/source-map/lib/base64-vlq.js +0 -144
  116. package/dist/node_modules/source-map/lib/base64.js +0 -81
  117. package/dist/node_modules/source-map/lib/binary-search.js +0 -122
  118. package/dist/node_modules/source-map/lib/mapping-list.js +0 -94
  119. package/dist/node_modules/source-map/lib/quick-sort.js +0 -126
  120. package/dist/node_modules/source-map/lib/source-map-consumer.js +0 -1018
  121. package/dist/node_modules/source-map/lib/source-map-generator.js +0 -385
  122. package/dist/node_modules/source-map/lib/source-node.js +0 -400
  123. package/dist/node_modules/source-map/lib/util.js +0 -449
  124. package/dist/node_modules/source-map/source-map.js +0 -25
  125. package/dist/node_modules/source-map-support/source-map-support.js +0 -610
  126. package/dist/node_modules/typescript/lib/typescript.js +0 -22376
  127. package/dist/oss/publish2oss.js +0 -378
  128. package/dist/plugins/AddNeoRequirePlugin.js +0 -178
  129. package/dist/utils/autoEntryRootDir.js +0 -98
  130. package/dist/utils/cmpUtils/createCmpByTemplate.js +0 -73
  131. package/dist/utils/cmpUtils/createCmpByZip.js +0 -530
  132. package/dist/utils/cmpUtils/createCommonModulesCode.js +0 -84
  133. package/dist/utils/cmpUtils/deleteCmp.js +0 -98
  134. package/dist/utils/cmpUtils/getCmpModelRegisterCode.js +0 -38
  135. package/dist/utils/cmpUtils/getCmpPreviewCode.js +0 -37
  136. package/dist/utils/cmpUtils/getCmpRegisterCode.js +0 -38
  137. package/dist/utils/cmpUtils/getCmpTypeByDir.js +0 -58
  138. package/dist/utils/cmpUtils/hasCmpTypeByDir.js +0 -25
  139. package/dist/utils/cmpUtils/previewCmp.js +0 -74
  140. package/dist/utils/cmpUtils/pullCmp.js +0 -144
  141. package/dist/utils/cmpUtils/pushCmp.js +0 -290
  142. package/dist/utils/common.js +0 -121
  143. package/dist/utils/configureNeoBuild.js +0 -153
  144. package/dist/utils/generateEntries.js +0 -73
  145. package/dist/utils/neoConfigInit.js +0 -25
  146. package/dist/utils/neoParams.js +0 -23
  147. package/dist/utils/pathUtils.js +0 -48
  148. package/dist/utils/projectNameValidator.js +0 -89
  149. package/dist/utils/projectUtils/createCmpProjectByTemplate.js +0 -74
  150. package/dist/utils/projectUtils/createCmpProjectZip.js +0 -135
  151. package/dist/utils/projectUtils/getEntries.js +0 -99
  152. package/dist/utils/projectUtils/getEntriesWithAutoRegister.js +0 -127
  153. package/dist/utils/projectUtils/hasNeoProject.js +0 -31
  154. package/dist/utils/projectUtils/openProject.js +0 -169
  155. package/dist/utils/projectUtils/updatePublishLog.js +0 -45
  156. package/dist/utils/replaceInFilesByMap.js +0 -70
  157. package/dist/utils/replaceInPackage.js +0 -151
  158. package/dist/utils/resetPackageVersion.js +0 -134
@@ -1,84 +0,0 @@
1
- 'use strict';
2
-
3
- var require$$0 = require('node:fs');
4
- var pathUtils = require('../pathUtils.js');
5
- var require$$2 = require('lodash');
6
-
7
- var createCommonModulesCode_1;
8
- var hasRequiredCreateCommonModulesCode;
9
-
10
- function requireCreateCommonModulesCode () {
11
- if (hasRequiredCreateCommonModulesCode) return createCommonModulesCode_1;
12
- hasRequiredCreateCommonModulesCode = 1;
13
- var fs = require$$0;
14
- var _require = pathUtils.__require(),
15
- resolveToCurrentRoot = _require.resolveToCurrentRoot;
16
- var _require2 = require$$2,
17
- isPlainObject = _require2.isPlainObject;
18
-
19
- /**
20
- * 获取组件预览代码
21
- * @param {*} cmpsDir 自定义组件目录
22
- * @param {*} cmpName 自定义组件名称
23
- * @returns 组件预览代码
24
- */
25
- var createCommonModulesCode = function createCommonModulesCode(neoCommonModule, cmpTypes) {
26
- var exports$1 = neoCommonModule.exports,
27
- remoteDeps = neoCommonModule.remoteDeps;
28
- if (!exports$1 && !remoteDeps) {
29
- return '';
30
- }
31
- // 记录当前自定义组件共享出去的模块
32
- var CustomCmpCommonModules = {};
33
- // 记录当前自定义组件需要的远程依赖组件
34
- var CustomCmpRemoteDeps = {};
35
-
36
- // 根据 exports 获取共享的依赖模块
37
- if (Array.isArray(exports$1) && exports$1.length > 0) {
38
- exports$1.forEach(function (module) {
39
- CustomCmpCommonModules[module] = require(module);
40
- });
41
- } else if (isPlainObject(exports$1) && Object.keys(exports$1).length > 0) {
42
- Object.keys(exports$1).forEach(function (moduleId) {
43
- CustomCmpCommonModules[moduleId] = "require('" + exports$1[moduleId] + "')";
44
- });
45
- } else if (exports$1) {
46
- console.error('exports 格式不正确,请检查 neo.config.js 文件中的 neoCommonModule / exports 配置');
47
- process.exit(1);
48
- }
49
-
50
- // 根据 cmpTypes 和 remoteDeps 设置远程依赖组件信息
51
- if (Array.isArray(remoteDeps) && remoteDeps.length > 0) {
52
- cmpTypes.forEach(function (cmpType) {
53
- CustomCmpRemoteDeps[cmpType] = remoteDeps;
54
- });
55
- }
56
-
57
- // 构建 CustomCmpCommonModules 对象的代码字符串
58
- var customCmpCommonModulesCode = '{\n';
59
- var moduleEntries = Object.entries(CustomCmpCommonModules);
60
- moduleEntries.forEach(function (_ref, index) {
61
- var moduleId = _ref[0],
62
- moduleValue = _ref[1];
63
- var isLast = index === moduleEntries.length - 1;
64
- customCmpCommonModulesCode += " \"" + moduleId + "\": " + moduleValue + (isLast ? '' : ',') + "\n";
65
- });
66
- customCmpCommonModulesCode += '}';
67
- var commonModulesCode = "\n/**\n * \u81EA\u5B9A\u4E49\u7EC4\u4EF6 \u5171\u4EAB\u51FA\u6765\u7684\u4F9D\u8D56\u6A21\u5757\n * \u5907\u6CE8\uFF1A\u53EF\u5728\u5176\u4ED6\u6A21\u5757\u4E2D\u901A\u8FC7 neoRequire \u4E2D\u4F7F\u7528\n */\nimport { isPlainObject } from 'lodash';\nconst CustomCmpCommonModules = " + customCmpCommonModulesCode + ";\nconst CustomCmpRemoteDeps = " + JSON.stringify(CustomCmpRemoteDeps) + ";\n\n// \u7528\u4E8E\u6DFB\u52A0\u5171\u4EAB\u7684\u4F9D\u8D56\u6A21\u5757\nconst addNeoCommonModules = (modules) => {\n if (!window.__NeoCommonModules) {\n window.__NeoCommonModules = {}\n }\n if (isPlainObject(modules)) {\n const moduleIds = Object.keys(modules)\n moduleIds.forEach((moduleId) => {\n const curModule = modules[moduleId];\n const curCommonModule = window.__NeoCommonModules[moduleId];\n \n if (curCommonModule && Object.keys(curCommonModule).length < 3) {\n window.__NeoCommonModules[moduleId] = Object.assign(window.__NeoCommonModules[moduleId], curModule);\n\n // \u5904\u7406\u6A21\u5757\u4E2D\u7684\u7279\u6B8A\u5C5E\u6027\n if (curModule.__esModule !== undefined) {\n window.__NeoCommonModules[moduleId].__esModule = curModule.__esModule;\n }\n if (curModule.default !== undefined) {\n window.__NeoCommonModules[moduleId].default = curModule.default;\n }\n } else {\n window.__NeoCommonModules[moduleId] = curModule;\n }\n })\n }\n}\n\n// \u7528\u4E8E\u6DFB\u52A0\u81EA\u5B9A\u4E49\u7EC4\u4EF6\u7684\u8FDC\u7A0B\u4F9D\u8D56\u7EC4\u4EF6\uFF08\u5173\u8054\u4F7F\u7528\uFF09\nconst addNeoRemoteDeps = (remoteDeps) => {\n if (!window.__NeoCommonModules) {\n window.__NeoCommonModules = {}\n }\n if (!window.__NeoCommonModules.__neoRemoteDeps) {\n window.__NeoCommonModules.__neoRemoteDeps = {}\n }\n if (isPlainObject(remoteDeps)) {\n window.__NeoCommonModules.__neoRemoteDeps = Object.assign(window.__NeoCommonModules.__neoRemoteDeps, remoteDeps)\n }\n}\n\naddNeoCommonModules(CustomCmpCommonModules);\naddNeoRemoteDeps(CustomCmpRemoteDeps);\n ";
68
-
69
- // 创建存放 cli 的临时目录
70
- var cliTempDir = resolveToCurrentRoot('./.neo-cli');
71
- if (!fs.existsSync(cliTempDir)) {
72
- fs.mkdirSync(cliTempDir);
73
- }
74
-
75
- // 将 commonModulesCode 写入到临时目录中
76
- var commonModulesFilePath = cliTempDir + "/commonModules.js";
77
- fs.writeFileSync(commonModulesFilePath, commonModulesCode);
78
- return commonModulesFilePath;
79
- };
80
- createCommonModulesCode_1 = createCommonModulesCode;
81
- return createCommonModulesCode_1;
82
- }
83
-
84
- exports.__require = requireCreateCommonModulesCode;
@@ -1,98 +0,0 @@
1
- 'use strict';
2
-
3
- var require$$3 = require('ora');
4
- var neoService = require('../../_virtual/neoService.js');
5
- var common = require('../common.js');
6
- var asyncToGenerator = require('../../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js');
7
- var index = require('../../_virtual/index.js');
8
-
9
- var ora = require$$3;
10
- var NeoService = neoService;
11
- var _require = common.__require(),
12
- errorLog = _require.errorLog,
13
- successLog = _require.successLog;
14
-
15
- /**
16
- * 从 NeoCRM 删除自定义组件
17
- * @param {string} cmpType 自定义组件类型
18
- * @param {object} authConfig 授权配置
19
- * @param {object} _neoService 可选的 NeoService 实例(用于复用已获取的组件列表)
20
- *
21
- * 删除流程说明
22
- * 1. 获取当前租户下的自定义组件列表
23
- * 2. 验证组件是否存在
24
- * 3. 调用删除 API 删除组件
25
- */
26
- var deleteCmp = /*#__PURE__*/function () {
27
- var _ref = asyncToGenerator(/*#__PURE__*/index.mark(function _callee(cmpType, authConfig, _neoService) {
28
- var spinner, neoService, cmpList, cmpInfo, _t;
29
- return index.wrap(function (_context) {
30
- while (1) switch (_context.prev = _context.next) {
31
- case 0:
32
- if (authConfig) {
33
- _context.next = 1;
34
- break;
35
- }
36
- errorLog('未找到 NeoCRM 平台授权配置(neo.config.js / authConfig)。');
37
- return _context.abrupt("return");
38
- case 1:
39
- spinner = ora('正在删除组件...').start();
40
- _context.prev = 2;
41
- neoService = _neoService;
42
- cmpList = [];
43
- cmpInfo = null;
44
- if (!_neoService) {
45
- _context.next = 3;
46
- break;
47
- }
48
- // 使用传入的 neoService 实例
49
- cmpList = _neoService.cmpList || [];
50
- _context.next = 5;
51
- break;
52
- case 3:
53
- // 创建新的 neoService 实例
54
- neoService = new NeoService(authConfig);
55
-
56
- // 获取自定义组件列表
57
- spinner.info('正在获取自定义组件列表...');
58
- _context.next = 4;
59
- return neoService.getCustomCmpList();
60
- case 4:
61
- cmpList = _context.sent;
62
- case 5:
63
- if (cmpList.length === 0) {
64
- errorLog('删除失败,当前租户暂无任何自定义组件。', spinner);
65
- process.exit(1);
66
- }
67
-
68
- // 获取自定义组件信息
69
- cmpInfo = neoService.getCmpInfoByCmpType(cmpType);
70
- if (!cmpInfo) {
71
- errorLog("\u5220\u9664\u5931\u8D25\uFF0C\u5F53\u524D\u79DF\u6237\u4E0D\u5B58\u5728" + cmpType + "\u81EA\u5B9A\u4E49\u7EC4\u4EF6\u3002", spinner);
72
- process.exit(1);
73
- }
74
-
75
- // 调用删除 API
76
- spinner.info("\u6B63\u5728\u5220\u9664" + cmpType + "\u81EA\u5B9A\u4E49\u7EC4\u4EF6...");
77
- _context.next = 6;
78
- return neoService.deleteCmp(cmpType);
79
- case 6:
80
- successLog("\u5DF2\u6210\u529F\u5220\u9664" + cmpType + "\u81EA\u5B9A\u4E49\u7EC4\u4EF6\uFF01\n", spinner);
81
- _context.next = 8;
82
- break;
83
- case 7:
84
- _context.prev = 7;
85
- _t = _context["catch"](2);
86
- errorLog("\u5220\u9664\u81EA\u5B9A\u4E49\u7EC4\u4EF6\u5931\u8D25: " + _t.message, spinner);
87
- process.exit(1);
88
- case 8:
89
- case "end":
90
- return _context.stop();
91
- }
92
- }, _callee, null, [[2, 7]]);
93
- }));
94
- return function deleteCmp(_x, _x2, _x3) {
95
- return _ref.apply(this, arguments);
96
- };
97
- }();
98
- module.exports = deleteCmp;
@@ -1,38 +0,0 @@
1
- 'use strict';
2
-
3
- require('node:fs');
4
- var pathUtils = require('../pathUtils.js');
5
-
6
- var getCmpModelRegisterCode_1;
7
- var hasRequiredGetCmpModelRegisterCode;
8
-
9
- function requireGetCmpModelRegisterCode () {
10
- if (hasRequiredGetCmpModelRegisterCode) return getCmpModelRegisterCode_1;
11
- hasRequiredGetCmpModelRegisterCode = 1;
12
- var _require = pathUtils.__require(),
13
- resolveToCurrentRoot = _require.resolveToCurrentRoot;
14
-
15
- /**
16
- * 获取组件注册文件内容
17
- * @param {*} cmpsDir 自定义组件目录
18
- * @param {*} cmpName 自定义组件名称
19
- * @returns 组件注册文件内容
20
- */
21
- var getCmpModelRegisterCode = function getCmpModelRegisterCode(cmpsDir, cmpName) {
22
- var cpmModelDir = resolveToCurrentRoot(cmpsDir + "/" + cmpName + "/model");
23
-
24
- /*
25
- if (!fs.existsSync(cpmModelDir)) {
26
- console.error(`未找到 ${cmpName} 组件模型文件,请检查 ${cpmModelDir} 是否存在。`);
27
- // 退出进程
28
- process.exit(1);
29
- }
30
- */
31
-
32
- return "\n// @ts-ignore\nimport { registerNeoEditorModel } from 'neo-register';\nimport CustomCmpModel from '" + cpmModelDir + "';\n\nregisterNeoEditorModel(CustomCmpModel, '" + cmpName + "');\n ";
33
- };
34
- getCmpModelRegisterCode_1 = getCmpModelRegisterCode;
35
- return getCmpModelRegisterCode_1;
36
- }
37
-
38
- exports.__require = requireGetCmpModelRegisterCode;
@@ -1,37 +0,0 @@
1
- 'use strict';
2
-
3
- var require$$0 = require('node:fs');
4
- var pathUtils = require('../pathUtils.js');
5
-
6
- var getCmpPreviewCode_1;
7
- var hasRequiredGetCmpPreviewCode;
8
-
9
- function requireGetCmpPreviewCode () {
10
- if (hasRequiredGetCmpPreviewCode) return getCmpPreviewCode_1;
11
- hasRequiredGetCmpPreviewCode = 1;
12
- var fs = require$$0;
13
- var _require = pathUtils.__require(),
14
- resolveToCurrentRoot = _require.resolveToCurrentRoot;
15
-
16
- /**
17
- * 获取组件预览代码
18
- * @param {*} cmpsDir 自定义组件目录
19
- * @param {*} cmpName 自定义组件名称
20
- * @returns 组件预览代码
21
- */
22
- var getCmpPreviewCode = function getCmpPreviewCode(cmpsDir, cmpName) {
23
- var cpmDir = resolveToCurrentRoot(cmpsDir + "/" + cmpName);
24
- var cpmModelDir = resolveToCurrentRoot(cmpsDir + "/" + cmpName + "/model");
25
- if (!fs.existsSync(cpmDir)) {
26
- console.error("\u672A\u627E\u5230 " + cmpName + " \u7EC4\u4EF6\u5165\u53E3\u6587\u4EF6\uFF0C\u8BF7\u68C0\u67E5 " + cpmDir + " \u662F\u5426\u5B58\u5728\u3002");
27
-
28
- // 退出进程
29
- process.exit(1);
30
- }
31
- return "\nimport * as React from 'react';\nimport ReactDOM from 'react-dom';\nimport { autoConvertVueComponent } from 'neo-register';\nimport CustomCmp from '" + cpmDir + "';\nimport CustomCmpModel from '" + cpmModelDir + "';\n\n// \u83B7\u53D6\u7EC4\u4EF6\u6A21\u578B\u4E2D\u7684\u9ED8\u8BA4\u5C5E\u6027\nconst curDefaultComProps = new CustomCmpModel().defaultComProps;\nconst previewComProps = new CustomCmpModel().previewComProps;\nconst curPreviewComProps = Object.assign(curDefaultComProps, previewComProps);\n\nconst NewCustomCmp = autoConvertVueComponent(CustomCmp);\n\n// \u9884\u89C8 \u81EA\u5B9A\u4E49\u7EC4\u4EF6\nReactDOM.render(\n <NewCustomCmp {...curPreviewComProps} />,\n document.getElementById('root'),\n);\n ";
32
- };
33
- getCmpPreviewCode_1 = getCmpPreviewCode;
34
- return getCmpPreviewCode_1;
35
- }
36
-
37
- exports.__require = requireGetCmpPreviewCode;
@@ -1,38 +0,0 @@
1
- 'use strict';
2
-
3
- require('node:fs');
4
- var pathUtils = require('../pathUtils.js');
5
-
6
- var getCmpRegisterCode_1;
7
- var hasRequiredGetCmpRegisterCode;
8
-
9
- function requireGetCmpRegisterCode () {
10
- if (hasRequiredGetCmpRegisterCode) return getCmpRegisterCode_1;
11
- hasRequiredGetCmpRegisterCode = 1;
12
- var _require = pathUtils.__require(),
13
- resolveToCurrentRoot = _require.resolveToCurrentRoot;
14
-
15
- /**
16
- * 获取组件注册文件内容
17
- * @param {*} cmpsDir 自定义组件目录
18
- * @param {*} cmpName 自定义组件名称
19
- * @returns 组件注册文件内容
20
- */
21
- var getCmpRegisterCode = function getCmpRegisterCode(cmpsDir, cmpName) {
22
- var cpmIndexDir = resolveToCurrentRoot(cmpsDir + "/" + cmpName + "/index");
23
-
24
- /*
25
- if (!fs.existsSync(cpmIndexDir)) {
26
- console.error(`未找到 ${cmpName} 组件入口文件,请检查 ${cpmIndexDir} 是否存在。`);
27
- // 退出进程
28
- process.exit(1);
29
- }
30
- */
31
-
32
- return "\n// @ts-ignore\nimport { registerNeoCmp } from 'neo-register';\nimport CustomCmp from '" + cpmIndexDir + "';\n\nregisterNeoCmp(CustomCmp, '" + cmpName + "');\n ";
33
- };
34
- getCmpRegisterCode_1 = getCmpRegisterCode;
35
- return getCmpRegisterCode_1;
36
- }
37
-
38
- exports.__require = requireGetCmpRegisterCode;
@@ -1,58 +0,0 @@
1
- 'use strict';
2
-
3
- var require$$0 = require('node:fs');
4
- var require$$1 = require('node:path');
5
- var pathUtils = require('../pathUtils.js');
6
-
7
- var getCmpTypeByDir_1;
8
- var hasRequiredGetCmpTypeByDir;
9
-
10
- function requireGetCmpTypeByDir () {
11
- if (hasRequiredGetCmpTypeByDir) return getCmpTypeByDir_1;
12
- hasRequiredGetCmpTypeByDir = 1;
13
- var fs = require$$0;
14
- var path = require$$1;
15
- var _require = pathUtils.__require(),
16
- resolveToCurrentRoot = _require.resolveToCurrentRoot;
17
- /**
18
- * 根据当前组件目录,获取所有组件类型
19
- * @param {*} componentsBaseDir 自定义组件目录
20
- * @returns 组件类型列表
21
- */
22
- var getCmpTypeByDir = function getCmpTypeByDir(componentsBaseDir) {
23
- if (componentsBaseDir === void 0) {
24
- componentsBaseDir = './src/components';
25
- }
26
- var componentsDir = resolveToCurrentRoot(componentsBaseDir);
27
- if (!fs.existsSync(componentsDir)) {
28
- console.error("\u672A\u627E\u5230\u81EA\u5B9A\u4E49\u7EC4\u4EF6\u76EE\u5F55\uFF0C\u8BF7\u68C0\u67E5 " + componentsDir + " \u76EE\u5F55\u662F\u5426\u5B58\u5728\u3002");
29
- // 退出进程
30
- process.exit(1);
31
- }
32
- try {
33
- // 读取组件目录下的所有子目录
34
- var dirs = fs.readdirSync(componentsDir);
35
- var cmpTypes = [];
36
-
37
- // 遍历所有目录,过滤出有效的组件类型
38
- dirs.forEach(function (dir) {
39
- var dirPath = path.join(componentsDir, dir);
40
- var stat = fs.statSync(dirPath);
41
-
42
- // 只处理目录,过滤掉隐藏目录和 node_modules
43
- if (stat.isDirectory() && !dir.startsWith('.') && dir !== 'node_modules') {
44
- cmpTypes.push(dir);
45
- }
46
- });
47
- return cmpTypes;
48
- } catch (error) {
49
- console.error('获取组件类型失败(getCmpTypeByDir):', error);
50
- // 退出进程
51
- process.exit(1);
52
- }
53
- };
54
- getCmpTypeByDir_1 = getCmpTypeByDir;
55
- return getCmpTypeByDir_1;
56
- }
57
-
58
- exports.__require = requireGetCmpTypeByDir;
@@ -1,25 +0,0 @@
1
- 'use strict';
2
-
3
- var getCmpTypeByDir = require('./getCmpTypeByDir.js');
4
-
5
- var hasCmpTypeByDir;
6
- var hasRequiredHasCmpTypeByDir;
7
-
8
- function requireHasCmpTypeByDir () {
9
- if (hasRequiredHasCmpTypeByDir) return hasCmpTypeByDir;
10
- hasRequiredHasCmpTypeByDir = 1;
11
- var getCmpTypeByDir$1 = getCmpTypeByDir.__require();
12
- /**
13
- * 判断当前组件目录是否已经存在该组件类型
14
- * @param {*} componentsBaseDir 自定义组件目录
15
- * @param {*} cmpType 组件类型
16
- * @returns Boolean
17
- */
18
- hasCmpTypeByDir = function (cmpType) {
19
- var cmpTypes = getCmpTypeByDir$1();
20
- return cmpTypes.includes(cmpType);
21
- };
22
- return hasCmpTypeByDir;
23
- }
24
-
25
- exports.__require = requireHasCmpTypeByDir;
@@ -1,74 +0,0 @@
1
- 'use strict';
2
-
3
- var require$$0 = require('node:fs');
4
- var require$$0$1 = require('akfun');
5
- var neoParams = require('../neoParams.js');
6
- var pathUtils = require('../pathUtils.js');
7
- var getCmpPreviewCode = require('./getCmpPreviewCode.js');
8
-
9
- var previewCmp;
10
- var hasRequiredPreviewCmp;
11
-
12
- function requirePreviewCmp () {
13
- if (hasRequiredPreviewCmp) return previewCmp;
14
- hasRequiredPreviewCmp = 1;
15
- var fs = require$$0;
16
- var akfun = require$$0$1;
17
- var _require = neoParams.__require(),
18
- consoleTag = _require.consoleTag; // 输出标记
19
- var _require2 = pathUtils.__require(),
20
- resolveToCurrentRoot = _require2.resolveToCurrentRoot;
21
- var getCmpPreviewCode$1 = getCmpPreviewCode.__require(); // 获取自定义组件预览代码
22
-
23
- /**
24
- * 用于预览指定自定义组件的脚本
25
- */
26
- previewCmp = function (config, cmpName, defaultComponentsDir) {
27
- if (defaultComponentsDir === void 0) {
28
- defaultComponentsDir = './src/components';
29
- }
30
- var cmpsDir = config.componentsDir || defaultComponentsDir;
31
- var curCmpsDir = resolveToCurrentRoot(cmpsDir);
32
- if (!fs.existsSync(curCmpsDir)) {
33
- console.error("\u672A\u627E\u5230\u7EC4\u4EF6\u76EE\u5F55\uFF0C\u8BF7\u68C0\u67E5 " + cmpsDir + " \u76EE\u5F55\u662F\u5426\u5B58\u5728");
34
- process.exit(1);
35
- }
36
-
37
- // 判断当前自定义组件是否存在
38
- var cpmDir = curCmpsDir + "/" + cmpName;
39
- if (!fs.existsSync(cpmDir)) {
40
- console.error(consoleTag + "\u81EA\u5B9A\u4E49\u7EC4\u4EF6 " + cmpName + " \u4E0D\u5B58\u5728\u3002");
41
- process.exit(1);
42
- }
43
-
44
- // 创建 cli 的临时目录
45
- var cliTempDir = resolveToCurrentRoot('./.neo-cli');
46
- if (!fs.existsSync(cliTempDir)) {
47
- fs.mkdirSync(cliTempDir);
48
- }
49
-
50
- // 当前自定义组件临时目录
51
- var cmpTempDir = cliTempDir + "/" + cmpName;
52
- if (!fs.existsSync(cmpTempDir)) {
53
- fs.mkdirSync(cmpTempDir);
54
- }
55
- var cmpPreviewContent = getCmpPreviewCode$1(cmpsDir, cmpName);
56
- fs.writeFileSync(cmpTempDir + "/preview.jsx", cmpPreviewContent);
57
-
58
- // 将临时预览文件添加到预览配置中
59
- if (!config.dev.entry) {
60
- config.dev.entry = {};
61
- }
62
- // 添加预览入口文件
63
- config.dev.entry.index = cmpTempDir + "/preview.jsx";
64
- if (config.webpack.projectDir) {
65
- config.webpack.projectDir.push(cmpTempDir);
66
- } else {
67
- config.webpack.projectDir = [cmpTempDir];
68
- }
69
- akfun.dev(config, consoleTag);
70
- };
71
- return previewCmp;
72
- }
73
-
74
- exports.__require = requirePreviewCmp;
@@ -1,144 +0,0 @@
1
- 'use strict';
2
-
3
- require('lodash');
4
- var require$$0 = require('akfun');
5
- var pathUtils = require('../pathUtils.js');
6
- var require$$3 = require('ora');
7
- var neoService = require('../../_virtual/neoService.js');
8
- var common = require('../common.js');
9
- var getCmpTypeByDir$1 = require('./getCmpTypeByDir.js');
10
- var createCmpByZip$1 = require('../../_virtual/createCmpByZip.js');
11
- var asyncToGenerator = require('../../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js');
12
- var index = require('../../_virtual/index.js');
13
-
14
- var _require = require$$0,
15
- getConfigObj = _require.getConfigObj;
16
- var _require2 = pathUtils.__require(),
17
- catchCurPackageJson = _require2.catchCurPackageJson;
18
- var ora = require$$3;
19
- var NeoService = neoService;
20
- var _require3 = common.__require(),
21
- getFramework = _require3.getFramework,
22
- errorLog = _require3.errorLog,
23
- successLog = _require3.successLog;
24
- var getCmpTypeByDir = getCmpTypeByDir$1.__require();
25
- var createCmpByZip = createCmpByZip$1;
26
-
27
- // 获取当前项目的package文件
28
- var currentPackageJsonDir = catchCurPackageJson();
29
- var currentPackageJson = getConfigObj(currentPackageJsonDir);
30
- var framework = getFramework(currentPackageJson.framework);
31
-
32
- /**
33
- * 从 NeoCRM 拉取自定义组件
34
- * @param {string} cmpType 自定义组件类型
35
- * @param {object} authConfig 授权配置
36
- *
37
- * 拉取流程说明
38
- * 1. 获取当前租户下的自定义组件列表
39
- * 2. 验证组件是否存在、是否已存在本地、技术栈是否一致
40
- * 3. 下载组件源码 zip 包到临时目录(`.neo-cli/zip-source`)
41
- * 4. 解压并解析组件源码到 `src/components` 目录
42
- * 5. 合并 `package.json` 中的依赖配置(如有新增依赖会提示安装)
43
- * 6. 清理解压目录,保留 zip 源文件(便于后续问题排查)
44
- */
45
- var pullCmp = /*#__PURE__*/function () {
46
- var _ref = asyncToGenerator(/*#__PURE__*/index.mark(function _callee(cmpType, authConfig, _neoService) {
47
- var cmpTypes, spinner, neoService, cmpList, cmpInfo, codeLib, token, cmpResult, _t;
48
- return index.wrap(function (_context) {
49
- while (1) switch (_context.prev = _context.next) {
50
- case 0:
51
- if (authConfig) {
52
- _context.next = 1;
53
- break;
54
- }
55
- errorLog('未找到 NeoCRM 平台授权配置(neo.config.js / authConfig)。');
56
- return _context.abrupt("return");
57
- case 1:
58
- cmpTypes = getCmpTypeByDir(); // 获取当前项目目录中已存在的自定义组件类型
59
- if (cmpTypes.indexOf(cmpType) > -1) {
60
- errorLog("\u5F53\u524D\u9879\u76EE\u76EE\u5F55\u4E2D\u5DF2\u5B58\u5728" + cmpType + "\u81EA\u5B9A\u4E49\u7EC4\u4EF6\u3002\uFF08./src/components \u76EE\u5F55\u4E0B\uFF09");
61
- process.exit(1);
62
- }
63
- spinner = ora('正在拉取组件...').start();
64
- _context.prev = 2;
65
- neoService = _neoService;
66
- cmpList = [];
67
- cmpInfo = null;
68
- if (!_neoService) {
69
- _context.next = 3;
70
- break;
71
- }
72
- // 使用传入的 neoService 实例
73
- cmpList = _neoService.cmpList || [];
74
- _neoService.cmpInfoMap || {};
75
- _context.next = 5;
76
- break;
77
- case 3:
78
- // 创建新的 neoService 实例
79
- neoService = new NeoService(authConfig);
80
-
81
- // 获取自定义组件列表
82
- spinner.info('正在获取自定义组件列表...');
83
- _context.next = 4;
84
- return neoService.getCustomCmpList();
85
- case 4:
86
- cmpList = _context.sent;
87
- neoService.cmpInfoMap || {};
88
- case 5:
89
- if (cmpList.length === 0) {
90
- errorLog('拉取失败,当前租户暂无任何自定义组件。', spinner);
91
- process.exit(1);
92
- }
93
-
94
- // 获取自定义组件信息
95
- cmpInfo = neoService.getCmpInfoByCmpType(cmpType);
96
- if (!cmpInfo) {
97
- errorLog("\u62C9\u53D6\u5931\u8D25\uFF0C\u5F53\u524D\u79DF\u6237\u4E0D\u5B58\u5728" + cmpType + "\u81EA\u5B9A\u4E49\u7EC4\u4EF6\u3002", spinner);
98
- process.exit(1);
99
- }
100
-
101
- // 判断拉取的组件和当前项目是否为同一技术栈
102
- if (cmpInfo.framework && cmpInfo.framework !== framework) {
103
- errorLog("\u62C9\u53D6\u5931\u8D25\uFF0C" + cmpType + "\u81EA\u5B9A\u4E49\u7EC4\u4EF6\u4E0E\u5F53\u524D\u9879\u76EE\u6280\u672F\u6808\u4E0D\u4E00\u81F4\u3002", spinner);
104
- process.exit(1);
105
- }
106
-
107
- // 下载源码文件并解析到 src/components 目录下
108
- codeLib = neoService.getCodeLibByCmpType(cmpType); // 源码文件地址(zip包地址)
109
- // 确保 token 有效
110
- _context.next = 6;
111
- return neoService.ensureValidToken();
112
- case 6:
113
- token = _context.sent;
114
- _context.next = 7;
115
- return createCmpByZip(codeLib, {
116
- token: token,
117
- cmpName: cmpType,
118
- componentBaseDir: './src/components'
119
- });
120
- case 7:
121
- cmpResult = _context.sent;
122
- if (!cmpResult) {
123
- errorLog("\u62C9\u53D6\u5931\u8D25\uFF0C" + cmpType + "\u81EA\u5B9A\u4E49\u7EC4\u4EF6\u6E90\u7801\u89E3\u6790\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u6E90\u7801\u6587\u4EF6\u662F\u5426\u6B63\u786E\u3002", spinner);
124
- process.exit(1);
125
- }
126
- successLog("\u5DF2\u6210\u529F\u62C9\u53D6" + cmpType + "\u81EA\u5B9A\u4E49\u7EC4\u4EF6\uFF01\n", spinner);
127
- _context.next = 9;
128
- break;
129
- case 8:
130
- _context.prev = 8;
131
- _t = _context["catch"](2);
132
- errorLog("\u62C9\u53D6\u81EA\u5B9A\u4E49\u7EC4\u4EF6\u5931\u8D25: " + _t.message, spinner);
133
- throw _t;
134
- case 9:
135
- case "end":
136
- return _context.stop();
137
- }
138
- }, _callee, null, [[2, 8]]);
139
- }));
140
- return function pullCmp(_x, _x2, _x3) {
141
- return _ref.apply(this, arguments);
142
- };
143
- }();
144
- module.exports = pullCmp;