neo-cmp-cli 1.9.0 → 1.9.1
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/main2.js +1 -1
- package/dist/neo/deleteCmp.js +1 -0
- package/dist/neo/pullCmp.js +1 -0
- package/dist/neo/pushCmp.js +1 -0
- package/package.json +1 -1
- package/template/neo-custom-cmp-template/src/components/entityForm_c/index.tsx +9 -1
- package/template/neo-custom-cmp-template/src/components/entityForm_c/model.ts +5 -0
- package/test/deprecate-versions.js +1 -1
- package/dist/utils/cmpUtils/deleteCmp.js +0 -1
- package/dist/utils/cmpUtils/pullCmp.js +0 -1
- package/dist/utils/cmpUtils/pushCmp.js +0 -1
package/dist/main2.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("akfun");require("lodash");const r=require("./module/neoInit.js"),i=require("./module/neoInitByCopy.js"),s=require("./module/inspect.js"),t=require("./utils/neoConfigInit.js"),o=require("./utils/neoParams.js"),u=require("./config/index.js"),l=require("./oss/publish2oss.js"),p=require("./
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("akfun");require("lodash");const r=require("./module/neoInit.js"),i=require("./module/neoInitByCopy.js"),s=require("./module/inspect.js"),t=require("./utils/neoConfigInit.js"),o=require("./utils/neoParams.js"),u=require("./config/index.js"),l=require("./oss/publish2oss.js"),p=require("./neo/pushCmp.js"),n=require("./neo/pullCmp.js"),c=require("./neo/deleteCmp.js"),d=require("./utils/cmpUtils/previewCmp.js"),b=require("./utils/generateEntries.js"),m=require("./utils/cmpUtils/createCmpByTemplate.js"),a=require("./utils/projectUtils/createCmpProjectByTemplate.js"),q=require("./utils/projectUtils/openProject.js"),_=require("./utils/configureNeoBuild.js"),y=require("./utils/common.js"),g=require("./utils/projectNameValidator.js"),j=require("./utils/cmpUtils/getCmpTypeByDir.js"),v=require("./neo/neoService.js"),T=require("./neo/neoLogin.js"),f=require("./utils/projectUtils/hasNeoProject.js");var C,x;exports.__require=function(){if(x)return C;x=1;const h=e,E=r.__require(),N=i.__require(),w=s.__require(),B=t.__require(),{consoleTag:D}=o.__require(),P=u.__require(),k=l.__require(),I=p.__require(),L=n.__require(),M=c.__require(),O=d.__require(),U=b.__require(),S=m.__require(),R=a.__require(),A=q.__require(),{configureNeoBuild:V}=_.__require(),{errorLog:z,successLog:F}=y.__require(),{validateProjectName:G}=g.__require(),H=j.__require(),J=v.__require(),K=T.__require(),Q=f.__require();function W(e,r){const{entryType:i,cmpType:s}=r;let t=[],o={};try{const{entries:r,cmpTypes:u,defaultExports:l}=U({configEntry:e.entry,disableAutoRegister:e.disableAutoRegister,componentsDir:P.componentsDir,entryType:i,cmpType:s});r&&Object.keys(r).length>0&&(e.entry=r,t=u,console.info("已自动生成 entry 入口配置:",r)),o=l}catch(e){z(e.message),process.exit(1)}return{cmpTypes:t,defaultExports:o}}function X(e){return Object.assign(P.build2lib,e)}return C={neoInit:E,neoInitByCopy:N,inspect:w,neoConfigInit:B,projectConfig:P,consoleTag:D,errorLog:z,successLog:F,validateProjectName:G,getCmpTypeByDir:H,NeoService:J,NeoLoginService:K,hasNeoProject:Q,createCmpProjectByTemplate:R,createCmpByTemplate:S,dev:()=>{P.dev||(z("未找到 dev 相关配置。"),process.exit(1)),h.dev(P,D)},previewCmp:e=>{e||(z("请输入要预览的组件名称。"),process.exit(1)),P.preview||(z("未找到 preview 相关配置。"),process.exit(1)),P.dev=Object.assign(P.dev,P.preview),delete P.preview,O(P,e)},linkDebug:()=>{P.linkDebug||(z("未找到 debug 相关配置。"),process.exit(1)),P.dev=Object.assign(P.dev,P.linkDebug),delete P.linkDebug,delete P.dev.ignoreNodeModules,P.webpack.ignoreNodeModules=!1;const{cmpTypes:e,defaultExports:r}=W(P.dev,{entryType:"linkDebug"});V(P.dev,{cmpTypes:e,defaultExports:r,verbose:!0,excludeModel:!1}),h.dev(P,D)},build:()=>h.build("build",P,D),build2lib:()=>{W(P.build2lib,{entryType:"widget"}),h.build("lib",P,D)},publish2oss:e=>{const r=P.publish2oss;P.build2lib=X(r);const{cmpTypes:i,defaultExports:s}=W(P.build2lib,{entryType:"widget",cmpType:e});V(P.build2lib,{cmpTypes:i,defaultExports:s,verbose:!0,excludeModel:!0}),h.build("lib",P,D,()=>{k(r.ossType,r.ossConfig,r.assetsRoot)})},pushCmp:e=>{const{neoConfig:r,pushCmp:i}=P,s=Object.assign({},i,r);P.build2lib=X(s);const{cmpTypes:t,defaultExports:o}=W(P.build2lib,{entryType:"widget",cmpType:e});V(P.build2lib,{cmpTypes:t,defaultExports:o,verbose:!1,excludeModel:!0}),h.build("lib",P,D,()=>{I(s,e)})},pullCmp:(e,r)=>{L(e,P.neoConfig,r)},deleteCmp:(e,r)=>{M(e,P.neoConfig,r)},build2esm:()=>h.build2esm(P,D),openEditor:A},C};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("ora"),r=require("./neoService.js"),t=require("../utils/common.js");var o,s;exports.__require=function(){if(s)return o;s=1;const i=e,n=r.__require(),{errorLog:c,successLog:u}=t.__require();return o=async(e,r,t)=>{if(!r)return void c("未找到 NeoCRM 平台授权配置(neo.config.js / authConfig)。");const o=i("正在删除组件...").start();try{let s=t,i=[],a=null;t?i=t.cmpList||[]:(s=new n(r),o.info("正在获取自定义组件列表..."),i=await s.getCustomCmpList()),0===i.length&&(c("删除失败,当前租户暂无任何自定义组件。",o),process.exit(1)),a=s.getCmpInfoByCmpType(e),a||(c(`删除失败,当前租户不存在${e}自定义组件。`,o),process.exit(1)),o.info(`正在删除${e}自定义组件...`),await s.deleteCmp(e),u(`已成功删除${e}自定义组件!\n`,o)}catch(e){c(`删除自定义组件失败: ${e.message}`,o),process.exit(1)}},o};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"}),require("lodash");const e=require("akfun"),r=require("ora"),t=require("./neoService.js"),o=require("../utils/common.js"),i=require("../utils/pathUtils.js"),s=require("../utils/cmpUtils/getCmpTypeByDir.js"),n=require("../utils/cmpUtils/createCmpByZip.js");var c,u;exports.__require=function(){if(u)return c;u=1;const{getConfigObj:a}=e,p=r,m=t.__require(),{getFramework:f,errorLog:g,successLog:l}=o.__require(),{catchCurPackageJson:q}=i.__require(),C=s.__require(),_=n.__require(),y=f(a(q()).framework);return c=async(e,r,t)=>{if(!r)return void g("未找到 NeoCRM 平台授权配置(neo.config.js / authConfig)。");C().indexOf(e)>-1&&(g(`当前项目目录中已存在${e}自定义组件。(./src/components 目录下)`),process.exit(1));const o=p("正在拉取组件...").start();try{let i=t,s=[],n={},c=null;t?(s=t.cmpList||[],n=t.cmpInfoMap||{}):(i=new m(r),o.info("正在获取自定义组件列表..."),s=await i.getCustomCmpList(),n=i.cmpInfoMap||{}),0===s.length&&(g("拉取失败,当前租户暂无任何自定义组件。",o),process.exit(1)),c=i.getCmpInfoByCmpType(e),c||(g(`拉取失败,当前租户不存在${e}自定义组件。`,o),process.exit(1)),c.framework&&c.framework!==y&&(g(`拉取失败,${e}自定义组件与当前项目技术栈不一致。`,o),process.exit(1));const u=i.getCodeLibByCmpType(e),a=await i.ensureValidToken();await _(u,{token:a,cmpName:e,componentBaseDir:"./src/components"})||(g(`拉取失败,${e}自定义组件源码解析失败,请检查源码文件是否正确。`,o),process.exit(1)),l(`已成功拉取${e}自定义组件!\n`,o)}catch(e){throw g(`拉取自定义组件失败: ${e.message}`,o),e}},c};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("node:fs"),t=require("node:path"),s=require("lodash"),o=require("akfun"),r=require("ora"),i=require("./neoService.js"),a=require("../utils/common.js"),n=require("../utils/pathUtils.js"),c=require("../utils/projectUtils/createCmpProjectZip.js");var l,p;exports.__require=function(){if(p)return l;p=1;const g=e,u=t,m=s,{getConfigObj:d}=o,w=r,h=i.__require(),{getFramework:y,errorLog:b,successLog:v}=a.__require(),{catchCurPackageJson:C}=n.__require(),f=c.__require(),T=d(C()),$=(e=[])=>e.map(e=>({label:e.label,description:e.description,propSchema:JSON.stringify(e)})),q=(e=[],t)=>e&&0!==e.length?e.map(e=>({...e,componentType:t,eventCategory:e.eventCategory||2,pageType:e.pageType||1,targetDevice:e.targetDevice||1,eventParams:e.eventParams||[]})):[];return l=async(e,t)=>{const s=w("正在发布组件...").start();try{let o,r=new h(e);await r.ensureValidToken(),s.start("[1/4] 打包源码文件(含单个自定义组件源码)...");try{o=f(t,process.cwd(),e.assetsRoot),o?v(`[1/4] 源码文件打包完成: ${u.basename(o)}。`,s):b("[1/4] 源码文件打包失败,未返回 zip 文件路径。",s)}catch(e){b("[1/4] 源码文件打包失败。",s)}s.start("[2/4] 获取自定义组件构建产物...");const i=await r.getCmpAssets(t);let a;s.start("[3/4] 构建组件数据...");try{a=await(async(e,t)=>{if(!t||!t.cmpType)return b("自定义组件信息或组件名称不能为空"),null;const{cmpType:s}=t;if(!e||!g.existsSync(e))return b(`未找到自定义组件目录: ${e}`),null;const o=m.camelCase(s),r=u.join(e,`${o}Model.js`),i=globalThis.window;globalThis.window||(globalThis.window={console:console,neoRequire:()=>{},postMessage:()=>{}});try{g.existsSync(r)?require(r):(b(`未找到自定义组件模型文件,请检查以下路径是否存在:${r}`),process.exit(1)),globalThis.window&&globalThis.window.NEOEditorCustomModels||(b(`模型文件未导出有效模型方法(CatchCustomCmpModelClass),模型文件地址: ${r} `),process.exit(1));const e=globalThis.window.NEOEditorCustomModels[s];e||(b(`未找到自定义组件模型类(${s}),模型文件地址: ${r} `),process.exit(1));const o=new e;o||(b(`未找到自定义组件模型信息(${s}),模型文件地址: ${r} `),process.exit(1));const i={...t,version:T.version||"1.0.0",framework:T.framework?y(T.framework):0,label:o.label||s,description:o.description||"",componentCategory:(o.tags||["自定义组件"]).join(","),targetPage:o.targetPage||["customPage"],targetObject:o.targetObject||["all"],targetApplication:o.targetApplication||["all"],targetDevice:o.targetDevice||"all",iconUrl:o.iconUrl||o.iconUrl,defaultProps:JSON.stringify(o.defaultComProps||{}),previewProps:JSON.stringify(o.previewComProps||{}),props:$(o.propsSchema||[]),events:q(o.events||[],s),functions:o.functions||o.actions||[],exposedToDesigner:void 0===o.exposedToDesigner||o.exposedToDesigner,namespace:o.namespace||"neo-cmp-cli",enableDuplicate:void 0===o.enableDuplicate||o.enableDuplicate};return console.log(`自定义组件模型信息(${s}):`,m.omit(i,["assetFile","modelAssetFile","cssAssetFile","codeLibFile"])),i}catch(e){return b(`自定义组件模型文件解析失败 (${r||"未知路径"}): ${e.message}`),b(e.stack),null}finally{void 0===i?delete globalThis.window:globalThis.window=i}})(e.assetsRoot,i),a?v("[3/4] 组件数据构建完成。",s):b(`[3/4] 未获取到自定义组件模型信息(${t})。`,s)}catch(e){b(`[3/4] 组件数据构建失败: ${e.message}`,s)}s.start("[4/4] 保存组件信息到 NeoCRM 平台...");try{await r.updateCustomComponent(a),v("[4/4] 组件信息保存成功",s)}catch(e){b("[4/4] 组件信息保存失败",s)}const{tenant_id:n,instance_uri:c}=r.tokenCache||{};console.log(`\n✅ 自定义组件发布成功!\n(当前租户 ID: ${n},所在租户的 API 域名: ${c}。)`)}catch(e){try{s&&s.isSpinning&&b(`❌ 自定义组件发布失败: ${e.message}`,s)}catch{b(`\n❌ 自定义组件发布失败: ${e.message}`)}throw e}},l};
|
package/package.json
CHANGED
|
@@ -29,7 +29,7 @@ import { xObject } from 'neo-open-api'; // Neo Open API
|
|
|
29
29
|
import isEqual from 'lodash/isEqual';
|
|
30
30
|
// 引入 neo-ui-common / aop
|
|
31
31
|
// @ts-ignore
|
|
32
|
-
import { aop } from 'neo-ui-common';
|
|
32
|
+
import { aop } from 'neo-ui-common'; // 后续考虑 使用 props.dispatchEvent 方法替代
|
|
33
33
|
import './style.scss';
|
|
34
34
|
|
|
35
35
|
const { Option } = Select;
|
|
@@ -238,6 +238,11 @@ export default class EntityForm extends React.PureComponent<
|
|
|
238
238
|
console.log('触发了表单提交事件:', this.props);
|
|
239
239
|
}
|
|
240
240
|
|
|
241
|
+
@aop
|
|
242
|
+
onBeforeSubmit(formValues: any) {
|
|
243
|
+
console.log('触发了表单提交前事件:', formValues);
|
|
244
|
+
}
|
|
245
|
+
|
|
241
246
|
/**
|
|
242
247
|
* 处理表单提交
|
|
243
248
|
* 执行新增操作
|
|
@@ -247,6 +252,9 @@ export default class EntityForm extends React.PureComponent<
|
|
|
247
252
|
const { xObjectApiKey } = this.props.xObjectDataApi || {};
|
|
248
253
|
const { fieldList } = this.state;
|
|
249
254
|
|
|
255
|
+
// 触发表单提交事件
|
|
256
|
+
this.onBeforeSubmit(values);
|
|
257
|
+
|
|
250
258
|
if (!xObjectApiKey) {
|
|
251
259
|
message.error('请先选择要操作的对象');
|
|
252
260
|
return;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const { execSync } = require('child_process');
|
|
2
2
|
|
|
3
3
|
// 所有需要废弃的版本
|
|
4
|
-
const versionsToDeprecate = ["1.8.
|
|
4
|
+
const versionsToDeprecate = ["1.8.25", "1.9.0"];
|
|
5
5
|
|
|
6
6
|
const packageName = 'neo-cmp-cli';
|
|
7
7
|
const deprecateMessage = '此版本为开发中版本(存在 bug),请升级到最新版本。';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("ora"),r=require("../../neo/neoService.js"),t=require("../common.js");var o,s;exports.__require=function(){if(s)return o;s=1;const i=e,n=r.__require(),{errorLog:c,successLog:u}=t.__require();return o=async(e,r,t)=>{if(!r)return void c("未找到 NeoCRM 平台授权配置(neo.config.js / authConfig)。");const o=i("正在删除组件...").start();try{let s=t,i=[],a=null;t?i=t.cmpList||[]:(s=new n(r),o.info("正在获取自定义组件列表..."),i=await s.getCustomCmpList()),0===i.length&&(c("删除失败,当前租户暂无任何自定义组件。",o),process.exit(1)),a=s.getCmpInfoByCmpType(e),a||(c(`删除失败,当前租户不存在${e}自定义组件。`,o),process.exit(1)),o.info(`正在删除${e}自定义组件...`),await s.deleteCmp(e),u(`已成功删除${e}自定义组件!\n`,o)}catch(e){c(`删除自定义组件失败: ${e.message}`,o),process.exit(1)}},o};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"}),require("lodash");const e=require("akfun"),r=require("../pathUtils.js"),o=require("ora"),t=require("../../neo/neoService.js"),i=require("../common.js"),s=require("./getCmpTypeByDir.js"),n=require("./createCmpByZip.js");var c,a;exports.__require=function(){if(a)return c;a=1;const{getConfigObj:p}=e,{catchCurPackageJson:u}=r.__require(),m=o,f=t.__require(),{getFramework:g,errorLog:q,successLog:C}=i.__require(),_=s.__require(),y=n.__require(),l=g(p(u()).framework);return c=async(e,r,o)=>{if(!r)return void q("未找到 NeoCRM 平台授权配置(neo.config.js / authConfig)。");_().indexOf(e)>-1&&(q(`当前项目目录中已存在${e}自定义组件。(./src/components 目录下)`),process.exit(1));const t=m("正在拉取组件...").start();try{let i=o,s=[],n={},c=null;o?(s=o.cmpList||[],n=o.cmpInfoMap||{}):(i=new f(r),t.info("正在获取自定义组件列表..."),s=await i.getCustomCmpList(),n=i.cmpInfoMap||{}),0===s.length&&(q("拉取失败,当前租户暂无任何自定义组件。",t),process.exit(1)),c=i.getCmpInfoByCmpType(e),c||(q(`拉取失败,当前租户不存在${e}自定义组件。`,t),process.exit(1)),c.framework&&c.framework!==l&&(q(`拉取失败,${e}自定义组件与当前项目技术栈不一致。`,t),process.exit(1));const a=i.getCodeLibByCmpType(e),p=await i.ensureValidToken();await y(a,{token:p,cmpName:e,componentBaseDir:"./src/components"})||(q(`拉取失败,${e}自定义组件源码解析失败,请检查源码文件是否正确。`,t),process.exit(1)),C(`已成功拉取${e}自定义组件!\n`,t)}catch(e){throw q(`拉取自定义组件失败: ${e.message}`,t),e}},c};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("node:fs"),t=require("node:path"),o=require("lodash"),s=require("akfun"),r=require("../pathUtils.js"),a=require("ora"),i=require("../../neo/neoService.js"),n=require("../common.js"),c=require("../projectUtils/createCmpProjectZip.js");var l,p;exports.__require=function(){if(p)return l;p=1;const g=e,u=t,m=o,{getConfigObj:d}=s,{catchCurPackageJson:w}=r.__require(),h=a,y=i.__require(),{getFramework:b,errorLog:v,successLog:C}=n.__require(),f=c.__require(),T=d(w()),$=(e=[])=>e.map(e=>({label:e.label,description:e.description,propSchema:JSON.stringify(e)})),q=(e=[],t)=>e&&0!==e.length?e.map(e=>({...e,componentType:t,eventCategory:e.eventCategory||2,pageType:e.pageType||1,targetDevice:e.targetDevice||1,eventParams:e.eventParams||[]})):[];return l=async(e,t)=>{const o=h("正在发布组件...").start();try{let s,r=new y(e);await r.ensureValidToken(),o.start("[1/4] 打包源码文件(含单个自定义组件源码)...");try{s=f(t,process.cwd(),e.assetsRoot),s?C(`[1/4] 源码文件打包完成: ${u.basename(s)}。`,o):v("[1/4] 源码文件打包失败,未返回 zip 文件路径。",o)}catch(e){v("[1/4] 源码文件打包失败。",o)}o.start("[2/4] 获取自定义组件构建产物...");const a=await r.getCmpAssets(t);let i;o.start("[3/4] 构建组件数据...");try{i=await(async(e,t)=>{if(!t||!t.cmpType)return v("自定义组件信息或组件名称不能为空"),null;const{cmpType:o}=t;if(!e||!g.existsSync(e))return v(`未找到自定义组件目录: ${e}`),null;const s=m.camelCase(o),r=u.join(e,`${s}Model.js`),a=globalThis.window;globalThis.window||(globalThis.window={console:console,neoRequire:()=>{},postMessage:()=>{}});try{g.existsSync(r)?require(r):(v(`未找到自定义组件模型文件,请检查以下路径是否存在:${r}`),process.exit(1)),globalThis.window&&globalThis.window.NEOEditorCustomModels||(v(`模型文件未导出有效模型方法(CatchCustomCmpModelClass),模型文件地址: ${r} `),process.exit(1));const e=globalThis.window.NEOEditorCustomModels[o];e||(v(`未找到自定义组件模型类(${o}),模型文件地址: ${r} `),process.exit(1));const s=new e;s||(v(`未找到自定义组件模型信息(${o}),模型文件地址: ${r} `),process.exit(1));const a={...t,version:T.version||"1.0.0",framework:T.framework?b(T.framework):0,label:s.label||o,description:s.description||"",componentCategory:(s.tags||["自定义组件"]).join(","),targetPage:s.targetPage||["customPage"],targetObject:s.targetObject||["all"],targetApplication:s.targetApplication||["all"],targetDevice:s.targetDevice||"all",iconUrl:s.iconUrl||s.iconUrl,defaultProps:JSON.stringify(s.defaultComProps||{}),previewProps:JSON.stringify(s.previewComProps||{}),props:$(s.propsSchema||[]),events:q(s.events||[],o),functions:s.functions||s.actions||[],exposedToDesigner:void 0===s.exposedToDesigner||s.exposedToDesigner,namespace:s.namespace||"neo-cmp-cli",enableDuplicate:void 0===s.enableDuplicate||s.enableDuplicate};return console.log(`自定义组件模型信息(${o}):`,m.omit(a,["assetFile","modelAssetFile","cssAssetFile","codeLibFile"])),a}catch(e){return v(`自定义组件模型文件解析失败 (${r||"未知路径"}): ${e.message}`),v(e.stack),null}finally{void 0===a?delete globalThis.window:globalThis.window=a}})(e.assetsRoot,a),i?C("[3/4] 组件数据构建完成。",o):v(`[3/4] 未获取到自定义组件模型信息(${t})。`,o)}catch(e){v(`[3/4] 组件数据构建失败: ${e.message}`,o)}o.start("[4/4] 保存组件信息到 NeoCRM 平台...");try{await r.updateCustomComponent(i),C("[4/4] 组件信息保存成功",o)}catch(e){v("[4/4] 组件信息保存失败",o)}const{tenant_id:n,instance_uri:c}=r.tokenCache||{};console.log(`\n✅ 自定义组件发布成功!\n(当前租户 ID: ${n},所在租户的 API 域名: ${c}。)`)}catch(e){try{o&&o.isSpinning&&v(`❌ 自定义组件发布失败: ${e.message}`,o)}catch{v(`\n❌ 自定义组件发布失败: ${e.message}`)}throw e}},l};
|