neo-cmp-cli 1.10.16 → 1.10.18

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 (39) hide show
  1. package/dist/main2.js +1 -1
  2. package/dist/neo/neoRequire.js +1 -1
  3. package/dist/neo/pushCmp.js +1 -1
  4. package/dist/package.json.js +1 -1
  5. package/package.json +3 -2
  6. package/template/antd-custom-cmp-template/package.json +1 -1
  7. package/template/antd-custom-cmp-template/src/components/dataDashboard__c/model.ts +9 -0
  8. package/template/antd-custom-cmp-template/src/components/searchWidget__c/model.ts +9 -0
  9. package/template/develop//345/215/225/345/205/203/346/265/213/350/257/225/344/275/277/347/224/250/350/257/264/346/230/216.md +1139 -0
  10. package/template/echarts-custom-cmp-template/package.json +1 -1
  11. package/template/neo-bi-cmps/neo.config.js +3 -0
  12. package/template/neo-bi-cmps/package.json +1 -1
  13. package/template/neo-bi-cmps/src/components/targetNumber__c/customStyleConfig/index.tsx +2 -0
  14. package/template/neo-bi-cmps/src/components/targetNumber__c/index.tsx +1 -0
  15. package/template/neo-bi-cmps/src/components/targetNumber__c/model.ts +3 -4
  16. package/template/neo-bi-cmps/src/components/targetNumber__c/style.scss +6 -0
  17. package/template/neo-custom-cmp-template/package.json +1 -1
  18. package/template/neo-custom-cmp-template/src/components/entityCardList__c/model.ts +2 -2
  19. package/template/neo-custom-cmp-template/src/components/entityDetail__c/model.ts +11 -5
  20. package/template/neo-custom-cmp-template/src/components/entityForm__c/model.ts +9 -3
  21. package/template/neo-custom-cmp-template/src/components/entityTable__c/model.ts +5 -5
  22. package/template/neo-custom-cmp-template/src/components/simpleCmp__c/model.ts +7 -7
  23. package/template/neo-h5-cmps/package.json +1 -1
  24. package/template/neo-h5-cmps/src/components/entityList__c/index.tsx +0 -3
  25. package/template/neo-h5-cmps/src/components/entityList__c/model.ts +51 -5
  26. package/template/neo-h5-cmps/src/components/simpleTable__c/model.ts +1 -1
  27. package/template/neo-order-cmps/package.json +1 -1
  28. package/template/neo-order-cmps/src/components/entityInfoCard__c/model.ts +9 -0
  29. package/template/neo-order-cmps/src/components/simpleTable__c/model.ts +1 -1
  30. package/template/react-custom-cmp-template/package.json +1 -1
  31. package/template/react-ts-custom-cmp-template/package.json +1 -1
  32. package/template/vue2-custom-cmp-template/package.json +1 -1
  33. package/template/neo-bi-cmps/lib/customStyleConfig.css +0 -15
  34. package/template/neo-bi-cmps/lib/customStyleConfig.js +0 -2
  35. package/template/neo-bi-cmps/lib/customStyleConfig.js.LICENSE.txt +0 -61
  36. package/template/neo-bi-cmps/lib/img/unlink.99e3018.99e3018.svg +0 -8
  37. package/template/neo-bi-cmps/lib/targetNumber.css +0 -7
  38. package/template/neo-bi-cmps/lib/targetNumber.js +0 -2
  39. package/template/neo-bi-cmps/lib/targetNumber.js.LICENSE.txt +0 -9
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("./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"),y=require("./utils/configureNeoBuild.js"),_=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 E=e,N=r.__require(),h=i.__require(),w=s.__require(),B=t.__require(),{consoleTag:D}=o.__require(),P=u.__require(),k=l.__require(),M=p.__require(),I=n.__require(),L=c.__require(),U=d.__require(),O=b.__require(),S=m.__require(),R=a.__require(),A=q.__require(),{configureNeoBuild:V}=y.__require(),{errorLog:z,successLog:F}=_.__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}=O({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||e.msg),process.exit(1)}return{cmpTypes:t,defaultExports:o}}function X(e){return Object.assign(P.build2lib,e)}return C={neoInit:N,neoInitByCopy:h,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)),E.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,U(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,P.dev,{cmpTypes:e,defaultExports:r,verbose:!0,excludeModel:!1}),E.dev(P,D)},build:()=>E.build("build",P,D),build2lib:()=>{W(P.build2lib,{entryType:"widget"}),P.build2lib.removeNeoCommonModules&&V(P,P.build2lib,{cmpTypes:[],defaultExports:[],verbose:!1,excludeModel:!0}),E.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,P.build2lib,{cmpTypes:i,defaultExports:s,verbose:!0,excludeModel:!0}),E.build("lib",P,D,()=>{k(r.ossType,r.ossConfig,r.assetsRoot)})},pushCmp:e=>{const{pushCmp:r}=P;P.build2lib=X(r);const{cmpTypes:i,defaultExports:s}=W(P.build2lib,{entryType:"widget",cmpType:e});V(P,P.build2lib,{cmpTypes:i,defaultExports:s,verbose:!1,excludeModel:!0}),E.build("lib",P,D,()=>{M(r,e)})},pullCmp:(e,r)=>{I(e,r)},deleteCmp:(e,r)=>{L(e,r)},build2esm:()=>E.build2esm(P,D),openEditor:A},C};
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"),m=require("./utils/generateEntries.js"),b=require("./utils/cmpUtils/createCmpByTemplate.js"),a=require("./utils/projectUtils/createCmpProjectByTemplate.js"),q=require("./utils/projectUtils/openProject.js"),y=require("./utils/configureNeoBuild.js"),_=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 E=e,N=r.__require(),h=i.__require(),D=s.__require(),w=t.__require(),{consoleTag:B}=o.__require(),P=u.__require(),k=l.__require(),M=p.__require(),I=n.__require(),L=c.__require(),U=d.__require(),O=m.__require(),S=b.__require(),R=a.__require(),A=q.__require(),{configureNeoBuild:V}=y.__require(),{errorLog:z,successLog:F}=_.__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}=O({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||e.msg),process.exit(1)}return{cmpTypes:t,defaultExports:o}}function X(e){return Object.assign(P.build2lib,e)}return C={neoInit:N,neoInitByCopy:h,inspect:D,neoConfigInit:w,projectConfig:P,consoleTag:B,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)),E.dev(P,B)},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,U(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,P.dev,{cmpTypes:e,defaultExports:r,verbose:!0,excludeModel:!1}),E.dev(P,B)},build:()=>E.build("build",P,B),build2lib:()=>{W(P.build2lib,{entryType:"widget"}),P.build2lib.removeNeoCommonModules&&V(P,P.build2lib,{cmpTypes:[],defaultExports:[],verbose:!1,excludeModel:!0}),E.build("lib",P,B)},publish2oss:e=>{const r=P.publish2oss;P.build2lib=X(r);const{cmpTypes:i,defaultExports:s}=W(P.build2lib,{entryType:"widget",cmpType:e});V(P,P.build2lib,{cmpTypes:i,defaultExports:s,verbose:!0,excludeModel:!0}),E.build("lib",P,B,()=>{k(r.ossType,r.ossConfig,r.assetsRoot)})},pushCmp:e=>{const{pushCmp:r}=P;P.build2lib=X(r);const{cmpTypes:i,defaultExports:s}=W(P.build2lib,{entryType:"widget",cmpType:e});V(P,P.build2lib,{cmpTypes:i,defaultExports:s,verbose:!1,excludeModel:!0}),E.build("lib",P,B,()=>{M({...r,componentsDir:P.componentsDir},e)})},pullCmp:(e,r)=>{I(e,r)},deleteCmp:(e,r)=>{L(e,r)},build2esm:()=>E.build2esm(P,B),openEditor:A},C};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("lodash");var e,n;exports.__require=function(){if(n)return e;n=1;const s=o,d={react:"^16.13.1","react-dom":"^16.13.1",mobx:"^6.3.0","mobx-react":"^7.0.0","mobx-state-tree":"^5.4.0",echarts:"5.4.2",antd:"4.9.4","antd-mobile":"2.3.4","@ant-design/icons":"^4.8.0","video-react":"0.14.1",axios:"^0.27.2",classnames:"^2.3.2",qs:"^6.11.0",lodash:"^4.17.21","neo-ui-component-web":"^1.0.0","neo-ui-component-h5":"^1.0.0","neo-ui-common":"^1.0.0","neo-open-api":"^1.1.9",amis:"^1.1.5"};return e={initNeoRequire:()=>{window.neoRequire||(window.neoRequire=o=>window.__NeoCommonModules[o]||window[o])},addNeoCommonModules:o=>{if(window.__NeoCommonModules||(window.__NeoCommonModules={}),isPlainObject(o)){Object.keys(o).forEach(e=>{const n=o[e],s=window.__NeoCommonModules[e];if(!Object.isFrozen(s)&&s&&Object.keys(s).length<3)try{window.__NeoCommonModules[e]=Object.assign(s,n),void 0!==n.__esModule&&(window.__NeoCommonModules[e].__esModule=n.__esModule),void 0!==n.default&&(window.__NeoCommonModules[e].default=n.default)}catch(o){console.warn(`window.__NeoCommonModules[${e}] Object.assign error:`,o),window.__NeoCommonModules[e]=n}else window.__NeoCommonModules[e]=n})}},addNeoRemoteDeps:o=>{window.__NeoCommonModules||(window.__NeoCommonModules={}),window.__NeoCommonModules.__neoRemoteDeps||(window.__NeoCommonModules.__neoRemoteDeps={}),s.isPlainObject(o)&&(window.__NeoCommonModules.__neoRemoteDeps=Object.assign(window.__NeoCommonModules.__neoRemoteDeps,o))},getExternalsByNeoCommonModules:o=>{const e={};return Object.keys(d).forEach(o=>{e[o]=`commonjs ${o}`}),o&&o.length>0&&o.forEach(o=>{e[o]=`commonjs ${o}`}),e}}};
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("lodash");var e,n;exports.__require=function(){if(n)return e;n=1;const s=o,m={react:"^16.13.1","react-dom":"^16.13.1",mobx:"^6.3.0","mobx-react":"^7.0.0","mobx-state-tree":"^5.4.0",axios:"^0.27.2",classnames:"^2.3.2",qs:"^6.11.0",lodash:"^4.17.21","neo-open-api":"^1.1.9",amis:"^1.1.5","neo-ui-component-web":"^1.0.0","neo-ui-component-h5":"^1.0.0","neo-ui-common":"^1.0.0"};return e={initNeoRequire:()=>{window.neoRequire||(window.neoRequire=o=>window.__NeoCommonModules[o]||window[o])},addNeoCommonModules:o=>{if(window.__NeoCommonModules||(window.__NeoCommonModules={}),isPlainObject(o)){Object.keys(o).forEach(e=>{const n=o[e],s=window.__NeoCommonModules[e];if(!Object.isFrozen(s)&&s&&Object.keys(s).length<3)try{window.__NeoCommonModules[e]=Object.assign(s,n),void 0!==n.__esModule&&(window.__NeoCommonModules[e].__esModule=n.__esModule),void 0!==n.default&&(window.__NeoCommonModules[e].default=n.default)}catch(o){console.warn(`window.__NeoCommonModules[${e}] Object.assign error:`,o),window.__NeoCommonModules[e]=n}else window.__NeoCommonModules[e]=n})}},addNeoRemoteDeps:o=>{window.__NeoCommonModules||(window.__NeoCommonModules={}),window.__NeoCommonModules.__neoRemoteDeps||(window.__NeoCommonModules.__neoRemoteDeps={}),s.isPlainObject(o)&&(window.__NeoCommonModules.__neoRemoteDeps=Object.assign(window.__NeoCommonModules.__neoRemoteDeps,o))},getExternalsByNeoCommonModules:o=>{const e={};return Object.keys(m).forEach(o=>{e[o]=`commonjs ${o}`}),o&&o.length>0&&o.forEach(o=>{e[o]=`commonjs ${o}`}),e}}};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("node:fs"),t=require("node:path"),s=require("lodash"),r=require("akfun"),o=require("ora"),i=require("./neoService.js"),a=require("../utils/common.js"),n=require("../utils/pathUtils.js"),c=require("../utils/projectUtils/createCmpProjectZip.js"),l=require("../utils/projectUtils/updatePublishLog.js"),p=require("../utils/cmpTypeValidator.js");var u,g;exports.__require=function(){if(g)return u;g=1;const m=e,d=t,w=s,{getConfigObj:f}=r,y=o,h=i.__require(),{getFramework:b,errorLog:v,successLog:C}=a.__require(),{catchCurPackageJson:T}=n.__require(),q=c.__require(),j=l.__require(),{validateApiName:P}=p.__require(),$=f(T()),_=(e=[])=>e.map(e=>({label:e.label,description:e.description,propSchema:JSON.stringify(e)})),D=(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||[]})):[],S=(e=[],t)=>e&&0!==e.length?e.map(e=>({...e,componentType:t,funcScope:e.funcScope||1,pageType:e.pageType||1,targetDevice:e.targetDevice||1,custom:!0,funcInParams:e.funcInParams||[],funcOutParams:e.funcOutParams||[]})):[];return u=async(e,t)=>{const s=y("正在发布组件...").start(),{isValid:r,errors:o}=P(t);r||(v(o.join("\n")),process.exit(1));try{let r,o=new h;await o.ensureValidToken(),s.start("[1/4] 打包源码文件(含单个自定义组件源码)...");try{r=q(t,process.cwd(),e.assetsRoot),r?C(`[1/4] 源码文件打包完成: ${d.basename(r)}。`,s):v("[1/4] 源码文件打包失败,未返回 zip 文件路径。",s)}catch(e){v("[1/4] 源码文件打包失败。",s)}s.start("[2/4] 获取自定义组件构建产物...");const i=await o.getCmpAssets(t);let a;s.start("[3/4] 构建组件数据...");try{a=await(async(e,t)=>{if(!t||!t.cmpType)return v("自定义组件信息或组件名称不能为空"),null;const{cmpType:s}=t;if(!e||!m.existsSync(e))return v(`未找到自定义组件目录: ${e}`),null;const r=w.camelCase(s),o=d.join(e,`${r}Model.js`),i=globalThis.window;globalThis.window||(globalThis.window={console:console,neoRequire:()=>{},postMessage:()=>{}});try{m.existsSync(o)?require(o):(v(`未找到自定义组件模型文件,请检查以下路径是否存在:${o}`),process.exit(1)),globalThis.window&&globalThis.window.NEOEditorCustomModels||(v(`模型文件未导出有效模型方法(CatchCustomCmpModelClass),模型文件地址: ${o} `),process.exit(1));const e=globalThis.window.NEOEditorCustomModels[s];e||(v(`未找到自定义组件模型类(${s}),模型文件地址: ${o} `),process.exit(1));const r=new e;return r||(v(`未找到自定义组件模型信息(${s}),模型文件地址: ${o} `),process.exit(1)),{...t,version:$.version||"1.0.0",framework:$.framework?b($.framework):0,label:r.label||s,description:r.description||"",componentCategory:(r.tags||["自定义组件"]).join(","),targetPage:r.targetPage||["all"],targetObject:r.targetObject||["all"],targetApplication:r.targetApplication||["all"],targetDevice:r.targetDevice||"web",iconUrl:r.iconUrl||r.iconUrl,defaultProps:JSON.stringify(r.defaultComProps||{}),previewProps:JSON.stringify(r.previewComProps||{}),props:_(r.propsSchema||[]),events:D(r.events||[],s),functions:S(r.functions||r.actions||[],s),exposedToDesigner:void 0===r.exposedToDesigner||r.exposedToDesigner,namespace:r.namespace||"neo-cmp-cli",enableDuplicate:void 0===r.enableDuplicate||r.enableDuplicate}}catch(e){return v(`自定义组件模型文件解析失败 (${o||"未知路径"}): ${e.message||e.msg}`),v(e.stack),null}finally{void 0===i?delete globalThis.window:globalThis.window=i}})(e.assetsRoot,i),a?C("[3/4] 组件数据构建完成。",s):v(`[3/4] 未获取到自定义组件模型信息(${t})。`,s)}catch(e){v(`[3/4] 组件数据构建失败: ${e.message||e.msg}`,s)}s.start("[4/4] 保存组件信息到 NeoCRM 平台...");const n=["assetFile","modelAssetFile","cssAssetFile","codeLibFile"],c={...a};n.forEach(e=>{c[e]&&c[e].fileContent&&(c[e]=w.omit(c[e],["fileContent"]))}),j(c);try{await o.updateCustomComponent(a),C("[4/4] 组件信息保存成功",s)}catch(e){v("[4/4] 组件信息保存失败",s)}const{tenant_id:l,instance_uri:p}=o.tokenCache||{};console.log(`\n✅ 自定义组件发布成功!\n(当前租户 ID: ${l||"未返回"},所在租户的 API 域名: ${p||"未返回"}。)`)}catch(e){try{s&&s.isSpinning&&v(`❌ 自定义组件发布失败: ${e.message||e.msg}`,s)}catch{v(`\n❌ 自定义组件发布失败: ${e.message||e.msg}`)}throw e}},u};
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"),i=require("ora"),r=require("jsdom"),a=require("./neoService.js"),n=require("../utils/common.js"),l=require("../utils/pathUtils.js"),c=require("../utils/projectUtils/createCmpProjectZip.js"),p=require("../utils/projectUtils/updatePublishLog.js"),u=require("../utils/cmpTypeValidator.js");var g,m;exports.__require=function(){if(m)return g;m=1;const d=e,h=t,w=s,{getConfigObj:f}=o,b=i,{JSDOM:T}=r,y=a.__require(),{getFramework:v,errorLog:C,successLog:q}=n.__require(),{catchCurPackageJson:j}=l.__require(),P=c.__require(),$=p.__require(),{validateApiName:_}=u.__require(),x=f(j()),D=(e=[])=>e.map(e=>({label:e.label,description:e.description,propSchema:JSON.stringify(e)})),S=(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||[]})):[],O=(e=[],t)=>e&&0!==e.length?e.map(e=>({...e,componentType:t,funcScope:e.funcScope||1,pageType:e.pageType||1,targetDevice:e.targetDevice||1,custom:!0,funcInParams:e.funcInParams||[],funcOutParams:e.funcOutParams||[]})):[];return g=async(e,t)=>{const s=b("正在发布组件...").start(),{isValid:o,errors:i}=_(t);o||(C(i.join("\n")),process.exit(1));try{let o,i=new y;await i.ensureValidToken(),s.start("[1/4] 打包源码文件(含单个自定义组件源码)...");try{o=P(t,process.cwd(),e.assetsRoot),o?q(`[1/4] 源码文件打包完成: ${h.basename(o)}。`,s):C("[1/4] 源码文件打包失败,未返回 zip 文件路径。",s)}catch(e){C("[1/4] 源码文件打包失败。",s)}s.start("[2/4] 获取自定义组件构建产物...");const r=await i.getCmpAssets(t);let a;s.start("[3/4] 构建组件数据...");try{a=await(async(e,t)=>{if(!t||!t.cmpType)return C("自定义组件信息或组件名称不能为空"),null;const{cmpType:s}=t;if(!e||!d.existsSync(e))return C(`未找到自定义组件目录: ${e}`),null;const o=w.camelCase(s),i=h.join(e,`${o}Model.js`);d.existsSync(i)||(C(`未找到自定义组件模型文件,请检查以下路径是否存在:${i}`),process.exit(1));const r=globalThis.window;if(!globalThis.window){const e=new T("<!DOCTYPE html><p>Hello world</p>",{url:"http://localhost",contentType:"text/html",includeNodeLocations:!0,storageQuota:1e5});globalThis.window={...e.window,console:console,neoRequire:()=>{},postMessage:()=>{}},globalThis.document=e.window.document,globalThis.this={}}const a=globalThis.self;globalThis.self||(globalThis.self=globalThis);try{d.existsSync(i)?require(i):(C(`未找到自定义组件模型文件,请检查以下路径是否存在:${i}`),process.exit(1)),globalThis.window&&globalThis.window.NEOEditorCustomModels||(C(`模型文件未导出有效模型方法(CatchCustomCmpModelClass),模型文件地址: ${i} `),process.exit(1));const e=globalThis.window.NEOEditorCustomModels[s];e||(C(`未找到自定义组件模型类(${s}),模型文件地址: ${i} `),process.exit(1));const o=new e;return o||(C(`未找到自定义组件模型信息(${s}),模型文件地址: ${i} `),process.exit(1)),{...t,version:x.version||"1.0.0",framework:x.framework?v(x.framework):0,label:o.label||s,description:o.description||"",componentCategory:(o.tags||["自定义组件"]).join(","),targetPage:o.targetPage||["all"],targetObject:o.targetObject||["all"],targetApplication:o.targetApplication||["all"],targetDevice:o.targetDevice||"web",iconUrl:o.iconUrl||o.iconUrl,defaultProps:JSON.stringify(o.defaultComProps||{}),previewProps:JSON.stringify(o.previewComProps||{}),props:D(o.propsSchema||[]),events:S(o.events||[],s),functions:O(o.functions||o.actions||[],s),exposedToDesigner:void 0===o.exposedToDesigner||o.exposedToDesigner,namespace:o.namespace||"neo-cmp-cli",enableDuplicate:void 0===o.enableDuplicate||o.enableDuplicate}}catch(e){return C(`自定义组件模型文件解析失败 (${i||"未知路径"}): ${e.message||e.msg}`),C(e.stack),null}finally{void 0===r?delete globalThis.window:globalThis.window=r,void 0===a?delete globalThis.self:globalThis.self=a}})(e.assetsRoot,r),a?q("[3/4] 组件数据构建完成。",s):C(`[3/4] 未获取到自定义组件模型信息(${t})。`,s)}catch(e){C(`[3/4] 组件数据构建失败: ${e.message||e.msg}`,s)}s.start("[4/4] 保存组件信息到 NeoCRM 平台...");const n=["assetFile","modelAssetFile","cssAssetFile","codeLibFile"],l={...a};n.forEach(e=>{l[e]&&l[e].fileContent&&(l[e]=w.omit(l[e],["fileContent"]))}),$(l);try{await i.updateCustomComponent(a),q("[4/4] 组件信息保存成功",s)}catch(e){C("[4/4] 组件信息保存失败",s)}const{tenant_id:c,instance_uri:p}=i.tokenCache||{};console.log(`\n✅ 自定义组件发布成功!\n(当前租户 ID: ${c||"未返回"},所在租户的 API 域名: ${p||"未返回"}。)`)}catch(e){try{s&&s.isSpinning&&C(`❌ 自定义组件发布失败: ${e.message||e.msg}`,s)}catch{C(`\n❌ 自定义组件发布失败: ${e.message||e.msg}`)}throw e}},g};
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var e="1.10.15";const o={version:e};exports.default=o,exports.version=e;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var e="1.10.18";const o={version:e};exports.default=o,exports.version=e;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "neo-cmp-cli",
3
- "version": "1.10.16",
3
+ "version": "1.10.18",
4
4
  "description": "Neo 自定义组件开发工具,支持react 和 vue2.0技术栈。",
5
5
  "keywords": [
6
6
  "neo-cli",
@@ -56,7 +56,8 @@
56
56
  "ora": "^4.0.4",
57
57
  "portfinder": "^1.0.38",
58
58
  "webpack-sources": "^3.2.3",
59
- "yargs": "^12.0.2"
59
+ "yargs": "^12.0.2",
60
+ "jsdom": "^28.0.0"
60
61
  },
61
62
  "devDependencies": {
62
63
  "@commitlint/cli": "^8.3.5",
@@ -48,7 +48,7 @@
48
48
  "@commitlint/config-conventional": "^9.1.1",
49
49
  "@types/react": "^16.9.11",
50
50
  "@types/react-dom": "^16.9.15",
51
- "neo-cmp-cli": "^1.10.13",
51
+ "neo-cmp-cli": "^1.10.18",
52
52
  "husky": "^4.2.5",
53
53
  "lint-staged": "^10.2.9",
54
54
  "prettier": "^2.0.5"
@@ -27,6 +27,15 @@ export class DataDashboardModel {
27
27
  */
28
28
  // targetPage: string[] = ['all'];
29
29
 
30
+ /**
31
+ * 用于设置组件支持的终端类型
32
+ *
33
+ * 当前 NeoCRM 平台存在的终端类型:
34
+ * web: 网页端
35
+ * mobile: 移动端
36
+ */
37
+ targetDevice: string = 'web';
38
+
30
39
  // 组件图标,用于设置在编辑器左侧组件面板中展示的图标
31
40
  iconUrl: string = 'https://neo-widgets.bj.bcebos.com/custom-widget.svg';
32
41
 
@@ -27,6 +27,15 @@ export class SearchWidgetModel {
27
27
  */
28
28
  // targetPage: string[] = ['all'];
29
29
 
30
+ /**
31
+ * 用于设置组件支持的终端类型
32
+ *
33
+ * 当前 NeoCRM 平台存在的终端类型:
34
+ * web: 网页端
35
+ * mobile: 移动端
36
+ */
37
+ targetDevice: string = 'web';
38
+
30
39
  // 组件图标,用于设置在编辑器左侧组件面板中展示的图标
31
40
  iconUrl: string = 'https://neo-widgets.bj.bcebos.com/search.svg';
32
41
  // iconUrl = 'https://neo-widgets.bj.bcebos.com/favicon.png';