neo-cmp-cli 1.9.9 → 1.9.11
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/neo/pushCmp.js +1 -1
- package/dist/package.json.js +1 -1
- package/dist/utils/cmpUtils/getCmpModelRegisterCode.js +1 -1
- package/dist/utils/cmpUtils/getCmpPreviewCode.js +1 -1
- package/dist/utils/cmpUtils/getCmpRegisterCode.js +1 -1
- package/dist/utils/cmpUtils/previewCmp.js +1 -1
- package/dist/utils/common.js +1 -1
- package/dist/utils/projectUtils/getEntriesWithAutoRegister.js +1 -1
- package/package.json +1 -1
- package/template/antd-custom-cmp-template/package.json +1 -1
- package/template/echarts-custom-cmp-template/package.json +1 -1
- package/template/empty-custom-cmp-template/package.json +1 -1
- package/template/neo-custom-cmp-template/package.json +1 -1
- package/template/pageHtml/auth-error.html +25 -16
- package/template/pageHtml/auth-failed.html +25 -16
- package/template/pageHtml/auth-success.html +25 -17
- package/template/pageHtml/token-error.html +29 -18
- package/template/react-custom-cmp-template/package.json +1 -1
- package/template/react-ts-custom-cmp-template/package.json +1 -1
- package/template/vue2-custom-cmp-template/package.json +1 -1
- package/test/deprecate-versions.js +1 -1
package/dist/neo/pushCmp.js
CHANGED
|
@@ -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"),a=require("./neoService.js"),i=require("../utils/common.js"),n=require("../utils/pathUtils.js"),c=require("../utils/projectUtils/createCmpProjectZip.js"),l=require("../utils/projectUtils/updatePublishLog.js");var p,u;exports.__require=function(){if(u)return p;u=1;const g=e,m=t,d=s,{getConfigObj:w}=r,y=o,h=a.__require(),{getFramework:f,errorLog:b,successLog:v}=i.__require(),{catchCurPackageJson:T}=n.__require(),C=c.__require(),q=l.__require(),P=w(T()),$=(e=[])=>e.map(e=>({label:e.label,description:e.description,propSchema:JSON.stringify(e)})),j=(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||[]})):[],_=(e=[],t)=>e&&0!==e.length?e.map(e=>({...e,componentType:t,funcScope:e.funcScope||
|
|
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"),a=require("./neoService.js"),i=require("../utils/common.js"),n=require("../utils/pathUtils.js"),c=require("../utils/projectUtils/createCmpProjectZip.js"),l=require("../utils/projectUtils/updatePublishLog.js");var p,u;exports.__require=function(){if(u)return p;u=1;const g=e,m=t,d=s,{getConfigObj:w}=r,y=o,h=a.__require(),{getFramework:f,errorLog:b,successLog:v}=i.__require(),{catchCurPackageJson:T}=n.__require(),C=c.__require(),q=l.__require(),P=w(T()),$=(e=[])=>e.map(e=>({label:e.label,description:e.description,propSchema:JSON.stringify(e)})),j=(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||[]})):[],_=(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 p=async(e,t)=>{const s=y("正在发布组件...").start();try{let r,o=new h(e);await o.ensureValidToken(),s.start("[1/4] 打包源码文件(含单个自定义组件源码)...");try{r=C(t,process.cwd(),e.assetsRoot),r?v(`[1/4] 源码文件打包完成: ${m.basename(r)}。`,s):b("[1/4] 源码文件打包失败,未返回 zip 文件路径。",s)}catch(e){b("[1/4] 源码文件打包失败。",s)}s.start("[2/4] 获取自定义组件构建产物...");const a=await o.getCmpAssets(t);let i;s.start("[3/4] 构建组件数据...");try{i=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 r=d.camelCase(s),o=m.join(e,`${r}Model.js`),a=globalThis.window;globalThis.window||(globalThis.window={console:console,neoRequire:()=>{},postMessage:()=>{}});try{g.existsSync(o)?require(o):(b(`未找到自定义组件模型文件,请检查以下路径是否存在:${o}`),process.exit(1)),globalThis.window&&globalThis.window.NEOEditorCustomModels||(b(`模型文件未导出有效模型方法(CatchCustomCmpModelClass),模型文件地址: ${o} `),process.exit(1));const e=globalThis.window.NEOEditorCustomModels[s];e||(b(`未找到自定义组件模型类(${s}),模型文件地址: ${o} `),process.exit(1));const r=new e;return r||(b(`未找到自定义组件模型信息(${s}),模型文件地址: ${o} `),process.exit(1)),{...t,version:P.version||"1.0.0",framework:P.framework?f(P.framework):0,label:r.label||s,description:r.description||"",componentCategory:(r.tags||["自定义组件"]).join(","),targetPage:r.targetPage||["customPage"],targetObject:r.targetObject||["all"],targetApplication:r.targetApplication||["all"],targetDevice:r.targetDevice||"all",iconUrl:r.iconUrl||r.iconUrl,defaultProps:JSON.stringify(r.defaultComProps||{}),previewProps:JSON.stringify(r.previewComProps||{}),props:$(r.propsSchema||[]),events:j(r.events||[],s),functions:_(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 b(`自定义组件模型文件解析失败 (${o||"未知路径"}): ${e.message||e.msg}`),b(e.stack),null}finally{void 0===a?delete globalThis.window:globalThis.window=a}})(e.assetsRoot,a),i?v("[3/4] 组件数据构建完成。",s):b(`[3/4] 未获取到自定义组件模型信息(${t})。`,s)}catch(e){b(`[3/4] 组件数据构建失败: ${e.message||e.msg}`,s)}s.start("[4/4] 保存组件信息到 NeoCRM 平台..."),q(d.omit(i,["assetFile","modelAssetFile","cssAssetFile","codeLibFile"]));try{await o.updateCustomComponent(i),v("[4/4] 组件信息保存成功",s)}catch(e){b("[4/4] 组件信息保存失败",s)}const{tenant_id:n,instance_uri:c}=o.tokenCache||{};console.log(`\n✅ 自定义组件发布成功!\n(当前租户 ID: ${n||"未返回"},所在租户的 API 域名: ${c||"未返回"}。)`)}catch(e){try{s&&s.isSpinning&&b(`❌ 自定义组件发布失败: ${e.message||e.msg}`,s)}catch{b(`\n❌ 自定义组件发布失败: ${e.message||e.msg}`)}throw e}},p};
|
package/dist/package.json.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var e="1.9.
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var e="1.9.11";const o={version:e};exports.default=o,exports.version=e;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"}),require("node:fs");const e=require("../pathUtils.js");var
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"}),require("node:fs");const e=require("../pathUtils.js"),r=require("../common.js");var o,t;exports.__require=function(){if(t)return o;t=1;const{resolveToCurrentRoot:i}=e.__require(),{getRelativePathForWebpack:n}=r.__require();return o=(e,r,o)=>{const t=i(`${e}/${r}/model`);return`\n// @ts-ignore\nimport { registerNeoEditorModel } from 'neo-register';\nimport CustomCmpModel from '${n(t,o)}';\n\nregisterNeoEditorModel(CustomCmpModel, '${r}');\n `}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("node:fs"),o=require("../pathUtils.js"),r=require("../common.js");var t,n;exports.__require=function(){if(n)return t;n=1;const m=e,{resolveToCurrentRoot:s}=o.__require(),{getRelativePathForWebpack:u}=r.__require();return t=(e,o,r)=>{const t=s(`${e}/${o}`),n=s(`${e}/${o}/model`);m.existsSync(t)||(console.error(`未找到 ${o} 组件入口文件,请检查 ${t} 是否存在。`),process.exit(1));return`\nimport * as React from 'react';\nimport ReactDOM from 'react-dom';\nimport { autoConvertVueComponent } from 'neo-register';\nimport CustomCmp from '${u(t,r)}';\nimport CustomCmpModel from '${u(n,r)}';\n\n// 获取组件模型中的默认属性\nconst curDefaultComProps = new CustomCmpModel().defaultComProps;\nconst previewComProps = new CustomCmpModel().previewComProps;\nconst curPreviewComProps = Object.assign(curDefaultComProps, previewComProps);\n\nconst NewCustomCmp = autoConvertVueComponent(CustomCmp);\n\n// 预览 自定义组件\nReactDOM.render(\n <NewCustomCmp {...curPreviewComProps} />,\n document.getElementById('root'),\n);\n `}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"}),require("node:fs");const e=require("../pathUtils.js");var
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"}),require("node:fs");const e=require("../pathUtils.js"),r=require("../common.js");var t,o;exports.__require=function(){if(o)return t;o=1;const{resolveToCurrentRoot:n}=e.__require(),{getRelativePathForWebpack:i}=r.__require();return t=(e,r,t)=>{const o=n(`${e}/${r}/index`);return`\n// @ts-ignore\nimport { registerNeoCmp } from 'neo-register';\nimport CustomCmp from '${i(o,t)}';\n\nregisterNeoCmp(CustomCmp, '${r}');\n `}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("node:fs"),r=require("akfun"),o=require("../neoParams.js"),s=require("../pathUtils.js"),t=require("./getCmpPreviewCode.js");var n,i;exports.__require=function(){if(i)return n;i=1;const c=e,p=r,{consoleTag:u}=o.__require(),{resolveToCurrentRoot:y}=s.__require(),a=t.__require();return n=(e,r,o="./src/components")=>{const s=e.componentsDir||o,t=y(s);c.existsSync(t)||(console.error(`未找到组件目录,请检查 ${s} 目录是否存在`),process.exit(1));const n=`${t}/${r}`;c.existsSync(n)||(console.error(`${u}自定义组件 ${r} 不存在。`),process.exit(1));const i=y("./.neo-cli");c.existsSync(i)||c.mkdirSync(i);const d=`${i}/${r}`;c.existsSync(d)||c.mkdirSync(d);const x=a(s,r);c.writeFileSync(
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("node:fs"),r=require("akfun"),o=require("../neoParams.js"),s=require("../pathUtils.js"),t=require("./getCmpPreviewCode.js");var n,i;exports.__require=function(){if(i)return n;i=1;const c=e,p=r,{consoleTag:u}=o.__require(),{resolveToCurrentRoot:y}=s.__require(),a=t.__require();return n=(e,r,o="./src/components")=>{const s=e.componentsDir||o,t=y(s);c.existsSync(t)||(console.error(`未找到组件目录,请检查 ${s} 目录是否存在`),process.exit(1));const n=`${t}/${r}`;c.existsSync(n)||(console.error(`${u}自定义组件 ${r} 不存在。`),process.exit(1));const i=y("./.neo-cli");c.existsSync(i)||c.mkdirSync(i);const d=`${i}/${r}`;c.existsSync(d)||c.mkdirSync(d);const x=`${d}/preview.jsx`,l=a(s,r,x);c.writeFileSync(x,l),e.dev.entry||(e.dev.entry={}),e.dev.entry.index=`${d}/preview.jsx`,e.webpack.projectDir?e.webpack.projectDir.push(d):e.webpack.projectDir=[d],p.dev(e,u)}};
|
package/dist/utils/common.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("chalk"),r=require("../node_modules/typescript/lib/typescript.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("chalk"),r=require("../node_modules/typescript/lib/typescript.js"),t=require("node:path"),s=require("./neoParams.js");var o,n;exports.__require=function(){if(n)return o;n=1;const c=e,i=r.__require(),a=t,{consoleTag:u}=s.__require();function l(e,r){const t=`${u} ${c.red(e)}`;r?r.fail(t):console.error(t)}return o={getFramework:function(e){if(!e)return 0;let r=e.toLowerCase().trim();switch(r){case"jquery":case"jq":r=2;break;case"vue2":case"vue 2":case"vue2.0":case"vue 2.0":r=1;break;case"vue":case"vue3":case"vue 3":case"vue3.0":case"vue 3.0":r=3,l("暂不支持 vue3.0 技术栈。");break;case"react-js":l("暂不支持 react-js 技术栈。"),r=0;break;default:r=0}return r},errorLog:l,warningLog:function(e,r){const t=`${u} ${c.yellow(e)}`;r?r.warn(t):console.warn(t)},successLog:function(e,r){const t=`${u} ${c.green(e)}`;r?r.succeed(t):console.log(t)},parseTsConfigWithTypeScript:function(e){try{const r=i.readConfigFile(e,i.sys.readFile);if(r.error)throw new Error(`解析 tsconfig.json 失败: ${r.error.messageText}`);return r.config}catch(e){if("MODULE_NOT_FOUND"===e.code)throw new Error("请先安装 typescript: npm install typescript --save-dev");throw e}},getRelativePathForWebpack:function(e,r){if(!r)return e.split(a.sep).join("/");const t=a.dirname(r);try{const r=a.relative(t,e);let s=r.split(a.sep).join("/");return a.isAbsolute(r)?s=e.split(a.sep).join("/"):s.startsWith(".")||(s="./"+s),s}catch(r){return e.split(a.sep).join("/")}}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("node:fs"),r=require("node:path"),t=require("lodash"),s=require("../pathUtils.js"),i=require("../cmpUtils/getCmpRegisterCode.js"),o=require("../cmpUtils/getCmpModelRegisterCode.js");var n,c;exports.__require=function(){if(c)return n;c=1;const d=e,u=r,l=t,{resolveToCurrentRoot:a}=s.__require(),p=i.__require(),m=o.__require();return n=(e="./src/components",r)=>{const t={},s={index:[]},i=[],o={},n=a(e);d.existsSync(n)||(console.error(`未找到组件目录,请检查 ${e} 目录是否存在`),process.exit(1));const c=a("./.neo-cli");d.existsSync(c)||d.mkdirSync(c);try{let a=[];a=r?[r]:d.readdirSync(n),a.forEach(r=>{const a=u.join(n,r);if(d.statSync(a).isDirectory()&&!r.startsWith(".")&&"node_modules"!==r){const x=r,y=l.camelCase(x);i.push(x);const h=`${c}/${x}`;d.existsSync(h)||d.mkdirSync(h),d.readdirSync(a).filter(e=>e.match(/(index|model)\.(tsx?|jsx?|vue)$/)).map(r=>u.join(e,x,r)).forEach(e=>{if(e.match(/index\.(tsx?|jsx?|vue)$/)){o[y]=u.resolve(e);const r
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("node:fs"),r=require("node:path"),t=require("lodash"),s=require("../pathUtils.js"),i=require("../cmpUtils/getCmpRegisterCode.js"),o=require("../cmpUtils/getCmpModelRegisterCode.js");var n,c;exports.__require=function(){if(c)return n;c=1;const d=e,u=r,l=t,{resolveToCurrentRoot:a}=s.__require(),p=i.__require(),m=o.__require();return n=(e="./src/components",r)=>{const t={},s={index:[]},i=[],o={},n=a(e);d.existsSync(n)||(console.error(`未找到组件目录,请检查 ${e} 目录是否存在`),process.exit(1));const c=a("./.neo-cli");d.existsSync(c)||d.mkdirSync(c);try{let a=[];a=r?[r]:d.readdirSync(n),a.forEach(r=>{const a=u.join(n,r);if(d.statSync(a).isDirectory()&&!r.startsWith(".")&&"node_modules"!==r){const x=r,y=l.camelCase(x);i.push(x);const h=`${c}/${x}`;d.existsSync(h)||d.mkdirSync(h),d.readdirSync(a).filter(e=>e.match(/(index|model)\.(tsx?|jsx?|vue)$/)).map(r=>u.join(e,x,r)).forEach(e=>{if(e.match(/index\.(tsx?|jsx?|vue)$/)){o[y]=u.resolve(e);const r=`${h}/register.js`,i=p(n,x,r);d.writeFileSync(r,i),t[y]=r,s.index.push(r)}else if(e.match(/model\.[tj]sx?$/)){const e=`${h}/model.js`,r=m(n,x,e);d.writeFileSync(e,r),t[`${y}Model`]=e,s.index.push(e)}})}})}catch(e){console.error("获取自定义组件入口文件失败(getEntriesWithAutoRegister):",e),process.exit(1)}return{widgetEntries:t,linkDebugEntries:s,cmpTypes:i,defaultExports:o}}};
|
package/package.json
CHANGED
|
@@ -5,33 +5,42 @@
|
|
|
5
5
|
<meta charset="utf-8">
|
|
6
6
|
<style>
|
|
7
7
|
.container {
|
|
8
|
-
margin: 0 auto;
|
|
9
|
-
padding-top:
|
|
8
|
+
margin: 120px auto 0 auto;
|
|
9
|
+
padding-top: 0;
|
|
10
10
|
text-align: center;
|
|
11
|
+
font-family: "PingFang SC";
|
|
12
|
+
font-style: normal;
|
|
13
|
+
font-weight: 400;
|
|
11
14
|
}
|
|
12
|
-
.
|
|
13
|
-
|
|
15
|
+
.result-content {
|
|
16
|
+
margin: 24px auto 32px auto;
|
|
14
17
|
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
+
.result-content .title {
|
|
19
|
+
font-size: 18px;
|
|
20
|
+
font-weight: 500;
|
|
21
|
+
line-height: 28px;
|
|
22
|
+
color: #222;
|
|
23
|
+
}
|
|
24
|
+
.result-content .error-title {
|
|
25
|
+
color: red;
|
|
18
26
|
}
|
|
19
|
-
.
|
|
20
|
-
font-size:
|
|
21
|
-
|
|
27
|
+
.result-content .detail {
|
|
28
|
+
font-size: 13px;
|
|
29
|
+
color: #454545;
|
|
22
30
|
}
|
|
23
|
-
.info
|
|
24
|
-
font-size:
|
|
31
|
+
.tenant-info {
|
|
32
|
+
font-size: 13px;
|
|
33
|
+
line-height: 20px;
|
|
25
34
|
color: #666;
|
|
26
35
|
}
|
|
27
36
|
</style>
|
|
28
37
|
</head>
|
|
29
38
|
<body>
|
|
30
39
|
<div class="container">
|
|
31
|
-
<
|
|
32
|
-
<
|
|
33
|
-
|
|
34
|
-
|
|
40
|
+
<img src="https://custom-widgets.bj.bcebos.com/neocrmlogin.png" alt="NeoCRM" />
|
|
41
|
+
<div class="result-content">
|
|
42
|
+
<div class="title error-title">授权失败</div>
|
|
43
|
+
<div class="detail">错误信息: {{ERROR}}</div>
|
|
35
44
|
</div>
|
|
36
45
|
</div>
|
|
37
46
|
</body>
|
|
@@ -5,33 +5,42 @@
|
|
|
5
5
|
<meta charset="utf-8">
|
|
6
6
|
<style>
|
|
7
7
|
.container {
|
|
8
|
-
margin: 0 auto;
|
|
9
|
-
padding-top:
|
|
8
|
+
margin: 120px auto 0 auto;
|
|
9
|
+
padding-top: 0;
|
|
10
10
|
text-align: center;
|
|
11
|
+
font-family: "PingFang SC";
|
|
12
|
+
font-style: normal;
|
|
13
|
+
font-weight: 400;
|
|
11
14
|
}
|
|
12
|
-
.
|
|
13
|
-
|
|
15
|
+
.result-content {
|
|
16
|
+
margin: 24px auto 32px auto;
|
|
14
17
|
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
+
.result-content .title {
|
|
19
|
+
font-size: 18px;
|
|
20
|
+
font-weight: 500;
|
|
21
|
+
line-height: 28px;
|
|
22
|
+
color: #222;
|
|
23
|
+
}
|
|
24
|
+
.result-content .error-title {
|
|
25
|
+
color: red;
|
|
18
26
|
}
|
|
19
|
-
.
|
|
20
|
-
font-size:
|
|
21
|
-
|
|
27
|
+
.result-content .detail {
|
|
28
|
+
font-size: 13px;
|
|
29
|
+
color: #454545;
|
|
22
30
|
}
|
|
23
|
-
.info
|
|
24
|
-
font-size:
|
|
31
|
+
.tenant-info {
|
|
32
|
+
font-size: 13px;
|
|
33
|
+
line-height: 20px;
|
|
25
34
|
color: #666;
|
|
26
35
|
}
|
|
27
36
|
</style>
|
|
28
37
|
</head>
|
|
29
38
|
<body>
|
|
30
39
|
<div class="container">
|
|
31
|
-
<
|
|
32
|
-
<
|
|
33
|
-
|
|
34
|
-
|
|
40
|
+
<img src="https://custom-widgets.bj.bcebos.com/neocrmlogin.png" alt="NeoCRM" />
|
|
41
|
+
<div class="result-content">
|
|
42
|
+
<div class="title error-title">授权失败</div>
|
|
43
|
+
<div class="detail">未获取到授权码。</div>
|
|
35
44
|
</div>
|
|
36
45
|
</div>
|
|
37
46
|
</body>
|
|
@@ -5,34 +5,42 @@
|
|
|
5
5
|
<meta charset="utf-8">
|
|
6
6
|
<style>
|
|
7
7
|
.container {
|
|
8
|
-
margin: 0 auto;
|
|
9
|
-
padding-top:
|
|
8
|
+
margin: 120px auto 0 auto;
|
|
9
|
+
padding-top: 0;
|
|
10
10
|
text-align: center;
|
|
11
|
+
font-family: "PingFang SC";
|
|
12
|
+
font-style: normal;
|
|
13
|
+
font-weight: 400;
|
|
11
14
|
}
|
|
12
|
-
.
|
|
13
|
-
|
|
15
|
+
.result-content {
|
|
16
|
+
margin: 24px auto 32px auto;
|
|
14
17
|
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
+
.result-content .title {
|
|
19
|
+
font-size: 18px;
|
|
20
|
+
font-weight: 500;
|
|
21
|
+
line-height: 28px;
|
|
22
|
+
color: #222;
|
|
18
23
|
}
|
|
19
|
-
.
|
|
20
|
-
font-size:
|
|
21
|
-
|
|
24
|
+
.result-content .detail {
|
|
25
|
+
font-size: 13px;
|
|
26
|
+
color: #454545;
|
|
22
27
|
}
|
|
23
|
-
.
|
|
24
|
-
font-size:
|
|
28
|
+
.tenant-info {
|
|
29
|
+
font-size: 13px;
|
|
30
|
+
line-height: 20px;
|
|
25
31
|
color: #666;
|
|
26
32
|
}
|
|
27
33
|
</style>
|
|
28
34
|
</head>
|
|
29
35
|
<body>
|
|
30
36
|
<div class="container">
|
|
31
|
-
<
|
|
32
|
-
<
|
|
33
|
-
|
|
34
|
-
<div class="
|
|
35
|
-
|
|
37
|
+
<img src="https://custom-widgets.bj.bcebos.com/neocrmlogin.png" alt="NeoCRM" />
|
|
38
|
+
<div class="result-content">
|
|
39
|
+
<div class="title">授权成功!</div>
|
|
40
|
+
<div class="detail">您已成功授权开发账户,请关闭此页面。</div>
|
|
41
|
+
</div>
|
|
42
|
+
<div class="tenant-info">
|
|
43
|
+
租户 ID: {{TENANT_ID}},所在租户的 API 域名: {{INSTANCE_URI}}。
|
|
36
44
|
</div>
|
|
37
45
|
</div>
|
|
38
46
|
</body>
|
|
@@ -1,38 +1,49 @@
|
|
|
1
1
|
<!DOCTYPE html>
|
|
2
2
|
<html>
|
|
3
3
|
<head>
|
|
4
|
-
<title
|
|
4
|
+
<title>授权失败</title>
|
|
5
5
|
<meta charset="utf-8">
|
|
6
6
|
<style>
|
|
7
7
|
.container {
|
|
8
|
-
margin: 0 auto;
|
|
9
|
-
padding-top:
|
|
8
|
+
margin: 120px auto 0 auto;
|
|
9
|
+
padding-top: 0;
|
|
10
10
|
text-align: center;
|
|
11
|
+
font-family: "PingFang SC";
|
|
12
|
+
font-style: normal;
|
|
13
|
+
font-weight: 400;
|
|
11
14
|
}
|
|
12
|
-
.
|
|
13
|
-
|
|
15
|
+
.result-content {
|
|
16
|
+
margin: 24px auto 32px auto;
|
|
14
17
|
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
+
.result-content .title {
|
|
19
|
+
font-size: 18px;
|
|
20
|
+
font-weight: 500;
|
|
21
|
+
line-height: 28px;
|
|
22
|
+
color: #222;
|
|
18
23
|
}
|
|
19
|
-
.
|
|
20
|
-
|
|
21
|
-
font-weight: bold;
|
|
24
|
+
.result-content .error-title {
|
|
25
|
+
color: red;
|
|
22
26
|
}
|
|
23
|
-
.
|
|
24
|
-
font-size:
|
|
27
|
+
.result-content .detail {
|
|
28
|
+
font-size: 13px;
|
|
29
|
+
color: #454545;
|
|
30
|
+
}
|
|
31
|
+
.tenant-info {
|
|
32
|
+
font-size: 13px;
|
|
33
|
+
line-height: 20px;
|
|
25
34
|
color: #666;
|
|
26
35
|
}
|
|
27
36
|
</style>
|
|
28
37
|
</head>
|
|
29
38
|
<body>
|
|
30
39
|
<div class="container">
|
|
31
|
-
<
|
|
32
|
-
<
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
40
|
+
<img src="https://custom-widgets.bj.bcebos.com/neocrmlogin.png" alt="NeoCRM" />
|
|
41
|
+
<div class="result-content">
|
|
42
|
+
<div class="title error-title">授权失败</div>
|
|
43
|
+
<div class="detail">未获取到用户 token 信息,请重试。</div>
|
|
44
|
+
</div>
|
|
45
|
+
<div class="tenant-info">
|
|
46
|
+
错误信息: {{ERROR}}。
|
|
36
47
|
</div>
|
|
37
48
|
</div>
|
|
38
49
|
</body>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const { execSync } = require('child_process');
|
|
2
2
|
|
|
3
3
|
// 所有需要废弃的版本
|
|
4
|
-
const versionsToDeprecate = ["1.9.
|
|
4
|
+
const versionsToDeprecate = ["1.9.9"];
|
|
5
5
|
|
|
6
6
|
const packageName = 'neo-cmp-cli';
|
|
7
7
|
const deprecateMessage = '此版本为开发中版本(存在 bug),请升级到最新版本。';
|