From 7dbe4b9e3736284aedb83da830db1eead6b676ab Mon Sep 17 00:00:00 2001 From: yangfan <18767120422@163.com> Date: Thu, 29 Jul 2021 14:05:21 +0800 Subject: [PATCH] Release 1.3.1 (#923) * feat: update official materials #922 * feat: update doctor codemod #902 * feat: update git url and readme #924 * feat: update ali registry #926 * feat: update sidebar-logo icon * fix: fail to update material source #921 * fix: components-helper version update #925 --- .github/CONTRIBUTING.md | 4 +- .github/DOCUMENT_SPECIFIC.md | 2 +- .github/O2_SPECIFIC.md | 2 +- .github/workflows/ci.yml | 2 + .stylelintrc.js | 5 +- README.md | 7 +- README.zh-CN.md | 6 +- extensions/application-manager/CHANGELOG.md | 4 + extensions/application-manager/README.md | 4 +- .../application-manager/README.zh-CN.md | 4 +- .../assets/sidebar-logo.png | Bin 6058 -> 36157 bytes extensions/application-manager/package.json | 8 +- .../src/debugConfig/index.ts | 2 +- .../web/mocks/project/getProjectGitInfo.json | 2 +- .../application-manager/web/package.json | 2 +- .../Welcome/components/Information/index.tsx | 2 +- .../application-manager/web/tsconfig.json | 2 +- extensions/appworks/CHANGELOG.md | 62 ++-- extensions/appworks/README.md | 6 +- extensions/appworks/README.zh-CN.md | 6 +- extensions/appworks/package.json | 6 +- extensions/codemod/README.md | 2 +- extensions/codemod/README.zh-CN.md | 2 +- extensions/codemod/package.json | 6 +- extensions/codemod/web/tsconfig.json | 2 +- extensions/doctor/CHANGELOG.md | 5 +- extensions/doctor/README.md | 2 +- extensions/doctor/README.zh-CN.md | 2 +- extensions/doctor/package.json | 8 +- extensions/doctor/src/codemod.ts | 81 +++--- .../doctor/web/mocks/action/getScanReport.ts | 28 ++ .../CodemodReport/index.module.scss | 4 + .../components/CodemodReport/index.tsx | 16 +- .../components/ScanFailedWrap/index.tsx | 4 +- extensions/material-helper/CHANGELOG.md | 6 +- extensions/material-helper/README.md | 2 +- extensions/material-helper/README.zh-CN.md | 2 +- extensions/material-helper/package.json | 8 +- .../src/componentDocSupport/getHoverItem.ts | 2 +- extensions/material-helper/src/extension.ts | 2 +- .../propsAutoComplete/getPropKeysFromCode.ts | 2 +- extensions/material-helper/web/package.json | 2 +- extensions/material-helper/web/tsconfig.json | 2 +- extensions/project-creator/CHANGELOG.md | 9 +- extensions/project-creator/README.md | 2 +- extensions/project-creator/README.zh-CN.md | 2 +- extensions/project-creator/package.json | 8 +- extensions/project-creator/web/package.json | 2 +- .../index.module.scss | 0 .../index.tsx | 4 +- .../ScaffoldMarket/index.module.scss | 18 -- .../components/ScaffoldMarket/index.tsx | 266 +++++++----------- .../web/src/pages/CreateProject/constants.ts | 29 -- extensions/project-creator/web/tsconfig.json | 2 +- extensions/react-refactor/README.md | 2 +- extensions/react-refactor/README.zh-CN.md | 2 +- extensions/react-refactor/package.json | 4 +- extensions/style-helper/README.md | 2 +- extensions/style-helper/README.zh-CN.md | 2 +- extensions/style-helper/package.json | 6 +- extensions/time-master/README.md | 2 +- extensions/time-master/README.zh-CN.md | 4 +- extensions/time-master/package.json | 6 +- package.json | 6 +- packages/constant/CHANGELOG.md | 4 + packages/constant/package.json | 2 +- packages/constant/src/index.ts | 2 +- packages/doctor-ui/src/index.tsx | 4 +- packages/doctor/CHANGELOG.md | 4 + packages/doctor/bin/appworks-doctor | 2 +- packages/doctor/package.json | 4 +- packages/material-engine/CHANGELOG.md | 8 +- packages/material-engine/package.json | 2 +- .../material-engine/src/material/index.ts | 35 +-- .../src/material/locales/en-US.json | 14 +- .../src/material/locales/zh-CN.json | 16 +- packages/material-utils/CHANGELOG.md | 6 + packages/material-utils/package.json | 2 +- packages/material-utils/src/types.ts | 46 +-- packages/project-service/CHANGELOG.md | 2 +- packages/project-utils/src/git.ts | 4 +- .../scripts/get-def-login-client.ts | 4 +- .../src/templates/extension/package.json.ejs | 4 +- 83 files changed, 422 insertions(+), 449 deletions(-) rename extensions/project-creator/web/src/components/{ScaffoldCard => PCScaffoldCard}/index.module.scss (100%) rename extensions/project-creator/web/src/components/{ScaffoldCard => PCScaffoldCard}/index.tsx (86%) create mode 100644 packages/material-utils/CHANGELOG.md diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index ee819b596..998a87e85 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -21,7 +21,7 @@ Hi! I’m really excited that you are interested in contributing to AppWorks. Be Clone repo and initialize the setup environment: ```bash -$ git clone git@github.com:appworks-lab/pack.git +$ git clone git@github.com:appworks-lab/appworks.git $ cd appworks && npm run setup # This will take about 20 minutes # add dep to some package @@ -114,7 +114,7 @@ Get a Personal Access Token: Set Personal Access Token for Github Actions: -1. Visit [Actions secrets](https://github.com/appworks-lab/pack/settings/secrets/actions) +1. Visit [Actions secrets](https://github.com/appworks-lab/appworks/settings/secrets/actions) 2. Update `VSCE_TOKEN`: ![](https://img.alicdn.com/imgextra/i2/O1CN01NpeNCf2558rTm9812_!!6000000007474-2-tps-2880-1754.png_790x10000.jpg) diff --git a/.github/DOCUMENT_SPECIFIC.md b/.github/DOCUMENT_SPECIFIC.md index a1b37fba7..62771f408 100644 --- a/.github/DOCUMENT_SPECIFIC.md +++ b/.github/DOCUMENT_SPECIFIC.md @@ -46,7 +46,7 @@ ## License -[MIT](https://github.com/appworks-lab/pack/blob/master/LICENSE) +[MIT](https://github.com/appworks-lab/appworks/blob/master/LICENSE) ``` - When there is only one function, there is no need for a three-level title diff --git a/.github/O2_SPECIFIC.md b/.github/O2_SPECIFIC.md index ab85e53c6..1ddcca15d 100644 --- a/.github/O2_SPECIFIC.md +++ b/.github/O2_SPECIFIC.md @@ -9,7 +9,7 @@ AppWorks converts VS Code Pack to O2 Pack, this document describes the develop, General O2 pack by following commands: ```bash -$ git clone git@github.com:appworks-lab/pack.git +$ git clone git@github.com:appworks-lab/appworks.git $ cd appworks/ $ npm install # before run this script, modify `pushExtension2Npm` param which is in `./config.ts` to true when publish to tnpm diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 27bd1d840..0d12d6b8e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,6 +19,7 @@ jobs: - run: | npm run setup:packages npm run dependency:check + npm run lint npm run test npm run coverage env: @@ -28,3 +29,4 @@ jobs: uses: codecov/codecov-action@v1 with: fail_ci_if_error: true + \ No newline at end of file diff --git a/.stylelintrc.js b/.stylelintrc.js index df89a3f06..2805e3924 100644 --- a/.stylelintrc.js +++ b/.stylelintrc.js @@ -1,4 +1,3 @@ -const { getESLintConfig } = require('@iceworks/spec'); +const { getStylelintConfig } = require('@iceworks/spec'); -// getESLintConfig(rule: 'rax'|'react'|'vue', customConfig?); -module.exports = getESLintConfig('react'); \ No newline at end of file +module.exports = getStylelintConfig('rax'); diff --git a/README.md b/README.md index ec2106fa8..80a3b4216 100644 --- a/README.md +++ b/README.md @@ -15,9 +15,8 @@ English | [简体中文](./README.zh-CN.md) - - Test Coverage - PRs Welcome + + PRs Welcome GitHub license

@@ -36,7 +35,7 @@ Use AppWorks to develop Universal Application quickly: ## Contributors -Feel free to report any questions as an [issue](https://github.com/appworks-lab/pack/issues/new), we'd love to have your helping hand on AppWorks. +Feel free to report any questions as an [issue](https://github.com/appworks-lab/appworks/issues/new), we'd love to have your helping hand on AppWorks. If you're interested in AppWorks, see [CONTRIBUTING.md](./.github/CONTRIBUTING.md) for more information to learn how to get started. diff --git a/README.zh-CN.md b/README.zh-CN.md index 7c76d5f1a..b1d485dca 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -15,9 +15,9 @@ - + Test Coverage - PRs Welcome + PRs Welcome GitHub license

@@ -34,7 +34,7 @@ ## 参与贡献 -欢迎通过 [issue](https://github.com/appworks-lab/pack/issues/new) 反馈问题。 +欢迎通过 [issue](https://github.com/appworks-lab/appworks/issues/new) 反馈问题。 如果对 `AppWorks` 感兴趣,请参考 [CONTRIBUTING.md](./.github/CONTRIBUTING.md) 学习如何贡献代码。 diff --git a/extensions/application-manager/CHANGELOG.md b/extensions/application-manager/CHANGELOG.md index 20dde7ba0..568b05e88 100644 --- a/extensions/application-manager/CHANGELOG.md +++ b/extensions/application-manager/CHANGELOG.md @@ -1,5 +1,9 @@ # Change Log +## 1.0.4 + +- fix: fail to update the material source + ## 1.0.3 - fix: can not get project info in dashboard when in external diff --git a/extensions/application-manager/README.md b/extensions/application-manager/README.md index 2654b48a7..bea8c8114 100644 --- a/extensions/application-manager/README.md +++ b/extensions/application-manager/README.md @@ -1,4 +1,4 @@ -English | [简体中文](https://github.com/appworks-lab/pack/blob/master/extensions/application-manager/README.zh-CN.md) +English | [简体中文](https://github.com/appworks-lab/appworks/blob/master/extensions/application-manager/README.zh-CN.md) # Application Manager @@ -77,7 +77,7 @@ The dashboard shows some status of the current application. If your application 2. Add a customize device or delete devices 3. Select the custom device for debugging -For more information, please see [Reference Document](https://github.com/appworks-lab/pack/blob/master/extensions/application-manager/docs/debug.en.md) +For more information, please see [Reference Document](https://github.com/appworks-lab/appworks/blob/master/extensions/application-manager/docs/debug.en.md) ### Node Dependencies diff --git a/extensions/application-manager/README.zh-CN.md b/extensions/application-manager/README.zh-CN.md index 289574e08..149560f6a 100644 --- a/extensions/application-manager/README.zh-CN.md +++ b/extensions/application-manager/README.zh-CN.md @@ -1,4 +1,4 @@ -简体中文 | [English](https://github.com/appworks-lab/pack/blob/master/extensions/application-manager/README.md) +简体中文 | [English](https://github.com/appworks-lab/appworks/blob/master/extensions/application-manager/README.md) # 应用管理器 @@ -79,7 +79,7 @@ 2. 添加或删除设备信息 3. 选择自定义的设备进行调试 -更多请看[参考文档](https://github.com/appworks-lab/pack/blob/master/extensions/application-manager/docs/debug.md) +更多请看[参考文档](https://github.com/appworks-lab/appworks/blob/master/extensions/application-manager/docs/debug.md) ### 依赖信息视图 diff --git a/extensions/application-manager/assets/sidebar-logo.png b/extensions/application-manager/assets/sidebar-logo.png index 6b7e2ab6417f3c6720c3b0d5062d6bc63b9cd8bf..4411e8d0e99b925ab19e891fe0ba1ffd8915c193 100644 GIT binary patch literal 36157 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 x3x6w16KuZo?lz*5dykl1-&#Lt(Z&2T8k%j~olG { title: intl.formatMessage({ id: 'web.applicationManager.Welcome.Information.updates.title' }), description: intl.formatMessage({ id: 'web.applicationManager.Welcome.Information.updates.desc' }), linkName: intl.formatMessage({ id: 'web.applicationManager.Welcome.Information.updates.link' }), - link: 'https://github.com/appworks-lab/pack/releases', + link: 'https://github.com/appworks-lab/appworks/releases', }, ]; diff --git a/extensions/application-manager/web/tsconfig.json b/extensions/application-manager/web/tsconfig.json index a83b4ad1a..ff499eeae 100644 --- a/extensions/application-manager/web/tsconfig.json +++ b/extensions/application-manager/web/tsconfig.json @@ -11,6 +11,6 @@ }, "resolveJsonModule": true }, - "include": ["src/*", ".ice"], + "include": ["src", ".ice"], "exclude": ["node_modules", "public"] } diff --git a/extensions/appworks/CHANGELOG.md b/extensions/appworks/CHANGELOG.md index c9ed9fd5e..8014a83dc 100644 --- a/extensions/appworks/CHANGELOG.md +++ b/extensions/appworks/CHANGELOG.md @@ -1,44 +1,48 @@ # Change Log -## [1.3.1] +## [1.3.1](https://github.com/appworks-lab/appworks/releases/tag/v1.3.1) +- feat: update doctor codemod report [#920](https://github.com/appworks-lab/appworks/pull/920) +- feat: update official materials [#922](https://github.com/appworks-lab/appworks/pull/922) +- fix: fail to update material source [#921](https://github.com/appworks-lab/appworks/pull/921) - fix: remove stylelint extension that causes some bugs in vscode -## [1.3.0](https://github.com/appworks-lab/pack/releases/tag/v1.3.0) -- feat: add jsx files propTypes auto complete [#902](https://github.com/appworks-lab/pack/pull/902) -- feat: add code snippets [#903](https://github.com/appworks-lab/pack/pull/903) -- feat: auto fill content in store's files when create [#908](https://github.com/appworks-lab/pack/pull/908) -- feat: add auto complete when import modules [#905](https://github.com/appworks-lab/pack/pull/905) -- fix: dashboard show 404 and 500 error [#911](https://github.com/appworks-lab/pack/pull/911) -- fix: eslint config `overrides` not work [#901](https://github.com/appworks-lab/pack/pull/901) +## [1.3.0](https://github.com/appworks-lab/appworks/releases/tag/v1.3.0) -## [1.2.1](https://github.com/appworks-lab/pack/releases/tag/v1.2.1) +- feat: add jsx files propTypes auto complete [#902](https://github.com/appworks-lab/appworks/pull/902) +- feat: add code snippets [#903](https://github.com/appworks-lab/appworks/pull/903) +- feat: auto fill content in store's files when create [#908](https://github.com/appworks-lab/appworks/pull/908) +- feat: add auto complete when import modules [#905](https://github.com/appworks-lab/appworks/pull/905) +- fix: dashboard show 404 and 500 error [#911](https://github.com/appworks-lab/appworks/pull/911) +- fix: eslint config `overrides` not work [#901](https://github.com/appworks-lab/appworks/pull/901) -- feat: support double click to select scaffold [#895](https://github.com/appworks-lab/pack/pull/895) -- feat: loading status when reinstalling deps [#896](https://github.com/appworks-lab/pack/pull/896) -- fix: build error in macos platform [#891](https://github.com/appworks-lab/pack/pull/891) -- fix: empty project wrong CodeMod notice [#894](https://github.com/appworks-lab/pack/pull/894) +## [1.2.1](https://github.com/appworks-lab/appworks/releases/tag/v1.2.1) -## [1.2.0](https://github.com/appworks-lab/pack/releases/tag/v1.2.0) +- feat: support double click to select scaffold [#895](https://github.com/appworks-lab/appworks/pull/895) +- feat: loading status when reinstalling deps [#896](https://github.com/appworks-lab/appworks/pull/896) +- fix: build error in macos platform [#891](https://github.com/appworks-lab/appworks/pull/891) +- fix: empty project wrong CodeMod notice [#894](https://github.com/appworks-lab/appworks/pull/894) -- feat: remove Auto Complete Tag Feat remove Auto Complete Tag [#878](https://github.com/appworks-lab/pack/pull/878) -- feat: add time master configuration enableDataAnalysisServices Feat add time master configuration [#871](https://github.com/appworks-lab/pack/pull/871) -- feat: update vscodeignore Feat update vscodeignore [#883](https://github.com/appworks-lab/pack/pull/883) -- feat: add codemod check to doctor package Feat add codemod check to doctor package [#870](https://github.com/appworks-lab/pack/pull/870) -- feat: doctor extension add codemod Feat doctor extension add codemod [#873](https://github.com/appworks-lab/pack/pull/873) -- fix: auto-complete-tag confused typescript coding [#877](https://github.com/appworks-lab/pack/issues/877) -- fix: command Find Components In Current File not working Fix command Find Components In Current File not working [#876](https://github.com/appworks-lab/pack/pull/876) -- fix: component docs link fix: component link [#884](https://github.com/appworks-lab/pack/pull/884) +## [1.2.0](https://github.com/appworks-lab/appworks/releases/tag/v1.2.0) + +- feat: remove Auto Complete Tag Feat remove Auto Complete Tag [#878](https://github.com/appworks-lab/appworks/pull/878) +- feat: add time master configuration enableDataAnalysisServices Feat add time master configuration [#871](https://github.com/appworks-lab/appworks/pull/871) +- feat: update vscodeignore Feat update vscodeignore [#883](https://github.com/appworks-lab/appworks/pull/883) +- feat: add codemod check to doctor package Feat add codemod check to doctor package [#870](https://github.com/appworks-lab/appworks/pull/870) +- feat: doctor extension add codemod Feat doctor extension add codemod [#873](https://github.com/appworks-lab/appworks/pull/873) +- fix: auto-complete-tag confused typescript coding [#877](https://github.com/appworks-lab/appworks/issues/877) +- fix: command Find Components In Current File not working Fix command Find Components In Current File not working [#876](https://github.com/appworks-lab/appworks/pull/876) +- fix: component docs link fix: component link [#884](https://github.com/appworks-lab/appworks/pull/884) ## 1.1.0 -- feat: hint user install types/rax [#854](https://github.com/appworks-lab/pack/pull/854) -- fix: rax-spa project targets null [#862](https://github.com/appworks-lab/pack/pull/862) -- Chore: update webview icon [#856](https://github.com/appworks-lab/pack/pull/856) [#846](https://github.com/appworks-lab/pack/pull/846) -- feat: add recommend extensions [#837](https://github.com/appworks-lab/pack/pull/837) -- fix: only exit process when prepublishOnly [#836](https://github.com/appworks-lab/pack/pull/836) -- fix: make sure that the start & end fields exist [#838](https://github.com/appworks-lab/pack/pull/838) +- feat: hint user install types/rax [#854](https://github.com/appworks-lab/appworks/pull/854) +- fix: rax-spa project targets null [#862](https://github.com/appworks-lab/appworks/pull/862) +- Chore: update webview icon [#856](https://github.com/appworks-lab/appworks/pull/856) [#846](https://github.com/appworks-lab/appworks/pull/846) +- feat: add recommend extensions [#837](https://github.com/appworks-lab/appworks/pull/837) +- fix: only exit process when prepublishOnly [#836](https://github.com/appworks-lab/appworks/pull/836) +- fix: make sure that the start & end fields exist [#838](https://github.com/appworks-lab/appworks/pull/838) - fix: vsce [#576](https://github.com/microsoft/vscode-vsce/issues/576) .vscodeignore configuration ## 1.0.3 @@ -47,7 +51,7 @@ ## 1.0.2 -- Fix [#848](https://github.com/appworks-lab/pack/issues/848), remove [Chinese (Simplified) Language Pack for Visual Studio Code](https://marketplace.visualstudio.com/items?itemName=MS-CEINTL.vscode-language-pack-zh-hans). +- Fix [#848](https://github.com/appworks-lab/appworks/issues/848), remove [Chinese (Simplified) Language Pack for Visual Studio Code](https://marketplace.visualstudio.com/items?itemName=MS-CEINTL.vscode-language-pack-zh-hans). ## 1.0.1 diff --git a/extensions/appworks/README.md b/extensions/appworks/README.md index 1d903a8f0..551a4f016 100644 --- a/extensions/appworks/README.md +++ b/extensions/appworks/README.md @@ -1,4 +1,4 @@ -English | [简体中文](https://github.com/appworks-lab/pack/blob/master/extensions/iceworks/README.zh-CN.md) +English | [简体中文](https://github.com/appworks-lab/appworks/blob/master/extensions/iceworks/README.zh-CN.md) # AppWorks @@ -6,7 +6,7 @@ English | [简体中文](https://github.com/appworks-lab/pack/blob/master/extens [![Installs](https://vsmarketplacebadge.apphb.com/installs-short/iceworks-team.iceworks.svg)](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks) [![Downloads](https://vsmarketplacebadge.apphb.com/downloads-short/iceworks-team.iceworks.svg)](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks) [![Rating](https://vsmarketplacebadge.apphb.com/rating-star/iceworks-team.iceworks.svg)](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks&ssr=false#review-details) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/appworks-lab/pack/pulls) +[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/appworks-lab/appworks/pulls) [![The MIT License](https://img.shields.io/badge/license-MIT-blue.svg)](http://opensource.org/licenses/MIT) AppWorks is a Application Development Pack, provide visualization and intelligent technology to build Universal Application faster and better, support Web / H5 / MiniProgram Application. @@ -82,4 +82,4 @@ AppWorks Pack extension installs these recommend extensions: ## Help -Open an [issue](https://github.com/appworks-lab/pack/issues/new), We will respond quickly to the submitted issues. +Open an [issue](https://github.com/appworks-lab/appworks/issues/new), We will respond quickly to the submitted issues. diff --git a/extensions/appworks/README.zh-CN.md b/extensions/appworks/README.zh-CN.md index c03a162c2..3243adda0 100644 --- a/extensions/appworks/README.zh-CN.md +++ b/extensions/appworks/README.zh-CN.md @@ -1,4 +1,4 @@ -简体中文 | [English](https://github.com/appworks-lab/pack/blob/master/extensions/iceworks/README.md) +简体中文 | [English](https://github.com/appworks-lab/appworks/blob/master/extensions/iceworks/README.md) # AppWorks @@ -6,7 +6,7 @@ [![Installs](https://vsmarketplacebadge.apphb.com/installs-short/iceworks-team.iceworks.svg)](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks) [![Downloads](https://vsmarketplacebadge.apphb.com/downloads-short/iceworks-team.iceworks.svg)](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks) [![Rating](https://vsmarketplacebadge.apphb.com/rating-star/iceworks-team.iceworks.svg)](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks&ssr=false#review-details) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/appworks-lab/pack/pulls) +[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/appworks-lab/appworks/pulls) [![The MIT License](https://img.shields.io/badge/license-MIT-blue.svg)](http://opensource.org/licenses/MIT) 前端研发套件,通过可视化编程和编码辅助手段,更快更好地构建多端应用,支持 Web 、HTML 5 和小程序应用。 @@ -82,4 +82,4 @@ AppWorks 套件内包含以下推荐的三方插件: ## 获取帮助 -向 AppWorks 的 Github 仓库提交 [issue](https://github.com/appworks-lab/pack/issues/new) ,我们会快速响应所提交的问题。 +向 AppWorks 的 Github 仓库提交 [issue](https://github.com/appworks-lab/appworks/issues/new) ,我们会快速响应所提交的问题。 diff --git a/extensions/appworks/package.json b/extensions/appworks/package.json index 7febc6322..a239577fd 100644 --- a/extensions/appworks/package.json +++ b/extensions/appworks/package.json @@ -29,7 +29,7 @@ ], "repository": { "type": "git", - "url": "https://github.com/appworks-lab/pack.git" + "url": "https://github.com/appworks-lab/appworks.git" }, "icon": "public/logo.png", "extensionPack": [ @@ -51,9 +51,9 @@ "msjsdiag.debugger-for-chrome", "alefragnani.Bookmarks" ], - "homepage": "https://github.com/appworks-lab/pack/blob/master/extensions/appworks/README.md", + "homepage": "https://github.com/appworks-lab/appworks/blob/master/extensions/appworks/README.md", "bugs": { - "url": "https://github.com/appworks-lab/pack/issues", + "url": "https://github.com/appworks-lab/appworks/issues", "email": "iceworksteam@163.com" } } diff --git a/extensions/codemod/README.md b/extensions/codemod/README.md index fbaf09038..232f77911 100644 --- a/extensions/codemod/README.md +++ b/extensions/codemod/README.md @@ -1,4 +1,4 @@ -English | [简体中文](https://github.com/appworks-lab/pack/blob/master/extensions/codemod/README.zh-CN.md) +English | [简体中文](https://github.com/appworks-lab/appworks/blob/master/extensions/codemod/README.zh-CN.md) # CodeMod diff --git a/extensions/codemod/README.zh-CN.md b/extensions/codemod/README.zh-CN.md index 35c45c0f5..d964b5ece 100644 --- a/extensions/codemod/README.zh-CN.md +++ b/extensions/codemod/README.zh-CN.md @@ -1,4 +1,4 @@ -简体中文 | [English](https://github.com/appworks-lab/pack/blob/master/extensions/codemod/README.md) +简体中文 | [English](https://github.com/appworks-lab/appworks/blob/master/extensions/codemod/README.md) # 代码更新插件 diff --git a/extensions/codemod/package.json b/extensions/codemod/package.json index 92f71c2e0..fc0b6e7d4 100644 --- a/extensions/codemod/package.json +++ b/extensions/codemod/package.json @@ -29,7 +29,7 @@ }, "repository": { "type": "git", - "url": "https://github.com/appworks-lab/pack.git" + "url": "https://github.com/appworks-lab/appworks.git" }, "main": "./build/extension.js", "scripts": { @@ -63,9 +63,9 @@ "lodash.clonedeep": "^4.5.0", "lodash.flatten": "^4.4.0" }, - "homepage": "https://github.com/appworks-lab/pack/blob/master/extensions/codemod/README.md", + "homepage": "https://github.com/appworks-lab/appworks/blob/master/extensions/codemod/README.md", "bugs": { - "url": "https://github.com/appworks-lab/pack/issues", + "url": "https://github.com/appworks-lab/appworks/issues", "email": "iceworksteam@163.com" } } diff --git a/extensions/codemod/web/tsconfig.json b/extensions/codemod/web/tsconfig.json index a83b4ad1a..ff499eeae 100644 --- a/extensions/codemod/web/tsconfig.json +++ b/extensions/codemod/web/tsconfig.json @@ -11,6 +11,6 @@ }, "resolveJsonModule": true }, - "include": ["src/*", ".ice"], + "include": ["src", ".ice"], "exclude": ["node_modules", "public"] } diff --git a/extensions/doctor/CHANGELOG.md b/extensions/doctor/CHANGELOG.md index f8c55ef6f..44dcabe17 100644 --- a/extensions/doctor/CHANGELOG.md +++ b/extensions/doctor/CHANGELOG.md @@ -1,6 +1,9 @@ # Change Log +# 1.1.3 +- feat: update @appworks/codemod +- feat: update codemod check result list ## 1.1.2 - feat: update @appworks/doctor to support custom config set extends and plugins. @@ -65,7 +68,7 @@ Release 1.0.0 ## 0.1.6 -- fix: [#604](https://github.com/appworks-lab/pack/issues/604) +- fix: [#604](https://github.com/appworks-lab/appworks/issues/604) ## 0.1.5 diff --git a/extensions/doctor/README.md b/extensions/doctor/README.md index dd6ecf690..52afb228e 100644 --- a/extensions/doctor/README.md +++ b/extensions/doctor/README.md @@ -1,4 +1,4 @@ -English | [简体中文](https://github.com/appworks-lab/pack/blob/master/extensions/doctor/README.zh-CN.md) +English | [简体中文](https://github.com/appworks-lab/appworks/blob/master/extensions/doctor/README.zh-CN.md) # Doctor diff --git a/extensions/doctor/README.zh-CN.md b/extensions/doctor/README.zh-CN.md index 09cf8021c..7b5a54d67 100644 --- a/extensions/doctor/README.zh-CN.md +++ b/extensions/doctor/README.zh-CN.md @@ -1,4 +1,4 @@ -简体中文 | [English](https://github.com/appworks-lab/pack/blob/master/extensions/doctor/README.md) +简体中文 | [English](https://github.com/appworks-lab/appworks/blob/master/extensions/doctor/README.md) # Doctor diff --git a/extensions/doctor/package.json b/extensions/doctor/package.json index 541df17f7..64f6ed496 100644 --- a/extensions/doctor/package.json +++ b/extensions/doctor/package.json @@ -3,7 +3,7 @@ "displayName": "Doctor", "description": "A free security and quality audit tool for modern DevOps teams", "publisher": "iceworks-team", - "version": "1.1.2", + "version": "1.1.3", "engines": { "vscode": "^1.41.0" }, @@ -30,11 +30,11 @@ "main": "./build/extension.js", "repository": { "type": "git", - "url": "https://github.com/appworks-lab/pack.git" + "url": "https://github.com/appworks-lab/appworks.git" }, - "homepage": "https://github.com/appworks-lab/pack/blob/master/extensions/doctor/README.md", + "homepage": "https://github.com/appworks-lab/appworks/blob/master/extensions/doctor/README.md", "bugs": { - "url": "https://github.com/appworks-lab/pack/issues", + "url": "https://github.com/appworks-lab/appworks/issues", "email": "iceworksteam@163.com" }, "scripts": { diff --git a/extensions/doctor/src/codemod.ts b/extensions/doctor/src/codemod.ts index 8b97572d3..a09e54e18 100644 --- a/extensions/doctor/src/codemod.ts +++ b/extensions/doctor/src/codemod.ts @@ -17,10 +17,7 @@ const SCAN_OPTIONS = { }; export async function runCodemod(transform: string) { - const result = await doctor.scan( - projectPath, - Object.assign({ transforms: [transform] }, SCAN_OPTIONS), - ); + const result = await doctor.scan(projectPath, Object.assign({ transforms: [transform] }, SCAN_OPTIONS)); setOutput(result.codemod?.reports[0].output || ''); return result; } @@ -31,53 +28,63 @@ export async function activateCodemod(context: vscode.ExtensionContext) { const deprecatedPackageConfig = {}; - const reports = await doctor.scan(projectPath, SCAN_OPTIONS); const packageFile = path.join(projectPath, 'package.json'); const packageJSON = fs.existsSync(packageFile) ? JSON.parse(fs.readFileSync(packageFile, 'utf-8')) : {}; // Show notifaction - if (projectPath) { + if (fs.existsSync(packageFile) && projectPath) { + const reports = await doctor.scan(projectPath, SCAN_OPTIONS); (reports.codemod?.reports || []).forEach((codemod) => { - const action = 'Run a Codemod'; + if (codemod.severity > 0) { + const action = 'Run a Codemod'; - if (codemod.npm_deprecate) { - const { name, version } = parse(codemod.npm_deprecate); - const dependence = (packageJSON.dependencies || {})[name] || (packageJSON.devDependencies || {})[name]; + if (codemod.npm_deprecate) { + const { name, version } = parse(codemod.npm_deprecate); + const dependence = (packageJSON.dependencies || {})[name] || (packageJSON.devDependencies || {})[name]; - if (dependence && semver.satisfies(semver.coerce(dependence), version || '*')) { - deprecatedPackageConfig[name] = { - ...codemod, - name, - version, - }; + if (dependence && semver.satisfies(semver.coerce(dependence), version || '*')) { + deprecatedPackageConfig[name] = { + ...codemod, + name, + version, + }; + } } - } - const message = - `${isEn ? codemod.title_en : codemod.title}: ` + - `${isEn ? codemod.message_en : codemod.message} ` + - `( [${isEn ? 'docs' : '文档'}](${codemod.docs}) )`; - const showMessage = codemod.severity === 2 ? window.showErrorMessage : window.showWarningMessage; + const message = + `${isEn ? codemod.title_en : codemod.title}: ` + + `${isEn ? codemod.message_en : codemod.message} ` + + `( [${isEn ? 'docs' : '文档'}](${codemod.docs}) )`; + const showMessage = codemod.severity === 2 ? window.showErrorMessage : window.showWarningMessage; - showMessage(message, action).then(async (item) => { - // Run codemod - if (item === action) { - const result = await runCodemod(codemod.transform); + showMessage(message, action).then(async (item) => { + // Run codemod + if (item === action) { + const result = await runCodemod(codemod.transform); - // Remove fixed deprecated package - if (result.codemod?.reports[0].npm_deprecate) { - delete deprecatedPackageConfig[result.codemod?.reports[0].npm_deprecate]; + // Remove fixed deprecated package + if (result.codemod?.reports[0].npm_deprecate) { + delete deprecatedPackageConfig[result.codemod?.reports[0].npm_deprecate]; + } } - } - }); + }); + } }); } // Show deprecate package setDeprecatedPackage(deprecatedPackageConfig); - vscode.window.onDidChangeActiveTextEditor(() => { - setDeprecatedPackage(deprecatedPackageConfig); - }, null, context.subscriptions); - vscode.workspace.onDidChangeTextDocument(() => { - setDeprecatedPackage(deprecatedPackageConfig); - }, null, context.subscriptions); + vscode.window.onDidChangeActiveTextEditor( + () => { + setDeprecatedPackage(deprecatedPackageConfig); + }, + null, + context.subscriptions, + ); + vscode.workspace.onDidChangeTextDocument( + () => { + setDeprecatedPackage(deprecatedPackageConfig); + }, + null, + context.subscriptions, + ); } diff --git a/extensions/doctor/web/mocks/action/getScanReport.ts b/extensions/doctor/web/mocks/action/getScanReport.ts index 6060c1cbd..ed2430f87 100644 --- a/extensions/doctor/web/mocks/action/getScanReport.ts +++ b/extensions/doctor/web/mocks/action/getScanReport.ts @@ -451,6 +451,34 @@ export default { codemod: { score: 98, reports: [ + { + title: '遵循阿里巴巴前端规范,并接入 @iceworks/spec 的最佳实践', + title_en: 'Follow Alibaba FED lint rules, and use @iceworks/spec best practices', + message: '遵循阿里巴巴前端规范,并更新 rax, ice 和 react 项目中的 eslint / stylelint / prettier 配置。', + message_en: 'Follow Alibaba FED lint rules, and update eslint / stylelint / prettier in rax, ice and react project.', + severity: 0, + npm_deprecate: '@ice/spec', + transform: 'lint-config-to-spec', + docs: 'https://github.com/appworks-lab/codemod/tree/master/transforms/docs/lint-config-to-spec.md', + mode: 'check', + output: 'Processing 211 files... \n' + + 'Spawning 7 workers...\n' + + 'Running in dry mode, no files will be written! \n' + + 'Sending 31 files to free worker...\n' + + 'Sending 31 files to free worker...\n' + + 'Sending 31 files to free worker...\n' + + 'Sending 31 files to free worker...\n' + + 'Sending 31 files to free worker...\n' + + 'Sending 31 files to free worker...\n' + + 'Sending 25 files to free worker...\n' + + 'All done. \n' + + 'Results: \n' + + '0 errors\n' + + '0 unmodified\n' + + '194 skipped\n' + + '17 ok\n' + + 'Time elapsed: 3.707seconds \n' + }, { title: 'Rax 组件工程升级', title_en: 'Rax component project upgrade', diff --git a/extensions/doctor/web/src/pages/Dashboard/components/ScanCard/components/CodemodReport/index.module.scss b/extensions/doctor/web/src/pages/Dashboard/components/ScanCard/components/CodemodReport/index.module.scss index b55e9d08d..ff52c28a3 100644 --- a/extensions/doctor/web/src/pages/Dashboard/components/ScanCard/components/CodemodReport/index.module.scss +++ b/extensions/doctor/web/src/pages/Dashboard/components/ScanCard/components/CodemodReport/index.module.scss @@ -15,6 +15,10 @@ } .title { + .icon { + margin-right: 6px; + } + font-size: 16px; font-weight: bold; } diff --git a/extensions/doctor/web/src/pages/Dashboard/components/ScanCard/components/CodemodReport/index.tsx b/extensions/doctor/web/src/pages/Dashboard/components/ScanCard/components/CodemodReport/index.tsx index 6946a19d6..c4620c2d9 100644 --- a/extensions/doctor/web/src/pages/Dashboard/components/ScanCard/components/CodemodReport/index.tsx +++ b/extensions/doctor/web/src/pages/Dashboard/components/ScanCard/components/CodemodReport/index.tsx @@ -1,5 +1,6 @@ import React, { useState } from 'react'; import { Element } from 'react-scroll'; +import { Icon } from '@alifd/next'; import { getReportKey } from '@/config'; import callService from '@/callService'; import Appreciate from '../Appreciate'; @@ -54,7 +55,17 @@ const CodemodReport = (props) => { {(data.reports || []).map((codemod, index) => { return (
-

{window.USE_EN ? codemod.title_en : codemod.title}

+

+ {codemod.severity > 0 ? ( + + ) : null} + {window.USE_EN ? codemod.title_en : codemod.title} +

{window.USE_EN ? codemod.message_en : codemod.message} {window.USE_EN ? ' [docs] ' : '【文档】'} @@ -78,7 +89,8 @@ const CodemodReport = (props) => { ); })}

- )} + ) + } ); }; diff --git a/extensions/doctor/web/src/pages/Dashboard/components/ScanCard/components/ScanFailedWrap/index.tsx b/extensions/doctor/web/src/pages/Dashboard/components/ScanCard/components/ScanFailedWrap/index.tsx index 5839c7e8d..b34e45432 100644 --- a/extensions/doctor/web/src/pages/Dashboard/components/ScanCard/components/ScanFailedWrap/index.tsx +++ b/extensions/doctor/web/src/pages/Dashboard/components/ScanCard/components/ScanFailedWrap/index.tsx @@ -7,8 +7,8 @@ const ScanFailedWrap = () => {
{window.USE_EN ? 'Scan Failed, open ' : '扫描失败,请至 '} - - https://github.com/appworks-lab/pack/issues + + https://github.com/appworks-lab/appworks/issues {window.USE_EN ? ' report your problem' : ' 反馈'} diff --git a/extensions/material-helper/CHANGELOG.md b/extensions/material-helper/CHANGELOG.md index 44a32cfc2..ea00f1496 100644 --- a/extensions/material-helper/CHANGELOG.md +++ b/extensions/material-helper/CHANGELOG.md @@ -1,5 +1,9 @@ # Change Log +## 1.0.8 + +- fix: update code snippets, the snippet - mtop.[request | config] => mtop[Request | Config] + ## 1.0.7 - feat: add import auxiliary @@ -176,7 +180,7 @@ ## 0.1.4 -Fix React component completion items, See: https://github.com/appworks-lab/pack/issues/233 +Fix React component completion items, See: https://github.com/appworks-lab/appworks/issues/233 ## 0.1.3 diff --git a/extensions/material-helper/README.md b/extensions/material-helper/README.md index e94cc1126..dec0b48d0 100644 --- a/extensions/material-helper/README.md +++ b/extensions/material-helper/README.md @@ -1,4 +1,4 @@ -English | [简体中文](https://github.com/appworks-lab/pack/blob/master/extensions/material-helper/README.zh-CN.md) +English | [简体中文](https://github.com/appworks-lab/appworks/blob/master/extensions/material-helper/README.zh-CN.md) # Component Helper diff --git a/extensions/material-helper/README.zh-CN.md b/extensions/material-helper/README.zh-CN.md index f40c8f72b..8f12e83c2 100644 --- a/extensions/material-helper/README.zh-CN.md +++ b/extensions/material-helper/README.zh-CN.md @@ -1,4 +1,4 @@ -简体中文 | [English](https://github.com/appworks-lab/pack/blob/master/extensions/material-helper/README.md) +简体中文 | [English](https://github.com/appworks-lab/appworks/blob/master/extensions/material-helper/README.md) # 前端组件开发辅助插件 diff --git a/extensions/material-helper/package.json b/extensions/material-helper/package.json index ff275a922..5d59faa39 100644 --- a/extensions/material-helper/package.json +++ b/extensions/material-helper/package.json @@ -3,7 +3,7 @@ "displayName": "Component Helper", "description": "Easily use Component in React/Vue/Rax.", "publisher": "iceworks-team", - "version": "1.0.7", + "version": "1.0.8", "main": "./build/extension.js", "engines": { "vscode": "^1.41.0" @@ -392,11 +392,11 @@ }, "repository": { "type": "git", - "url": "https://github.com/appworks-lab/pack.git" + "url": "https://github.com/appworks-lab/appworks.git" }, - "homepage": "https://github.com/appworks-lab/pack/blob/master/extensions/material-helper/README.md", + "homepage": "https://github.com/appworks-lab/appworks/blob/master/extensions/material-helper/README.md", "bugs": { - "url": "https://github.com/appworks-lab/pack/issues", + "url": "https://github.com/appworks-lab/appworks/issues", "email": "iceworksteam@163.com" } } diff --git a/extensions/material-helper/src/componentDocSupport/getHoverItem.ts b/extensions/material-helper/src/componentDocSupport/getHoverItem.ts index 9a11f2f8e..8dd545d8a 100644 --- a/extensions/material-helper/src/componentDocSupport/getHoverItem.ts +++ b/extensions/material-helper/src/componentDocSupport/getHoverItem.ts @@ -5,7 +5,7 @@ import i18n from '../i18n'; export default function getHoverItem(tagName: string, source: string) { const docInfos = getDocInfos(); const tagInfo = docInfos.find((info) => { - return info.label === tagName && info.source.npm === source + return info.label === tagName && info.source.npm === source; }); if (tagInfo) { const docsLink = new vscode.MarkdownString( diff --git a/extensions/material-helper/src/extension.ts b/extensions/material-helper/src/extension.ts index 03ecac3bd..dd88215e8 100644 --- a/extensions/material-helper/src/extension.ts +++ b/extensions/material-helper/src/extension.ts @@ -129,7 +129,7 @@ export function activate(context: vscode.ExtensionContext) { createPagesTreeView(context); importAutoComplete(); - // help user complete React Component's propTypes; + // help user complete React Component's propTypes; propTypesAutoComplete(); } diff --git a/extensions/material-helper/src/propsAutoComplete/getPropKeysFromCode.ts b/extensions/material-helper/src/propsAutoComplete/getPropKeysFromCode.ts index 00c9bf8c0..3752e6af3 100644 --- a/extensions/material-helper/src/propsAutoComplete/getPropKeysFromCode.ts +++ b/extensions/material-helper/src/propsAutoComplete/getPropKeysFromCode.ts @@ -21,7 +21,7 @@ export default function getPropKeysFromCode(componentPath: string): string[] { } catch (error) { // ignore } - console.log(propKeys) + console.log(propKeys); return propKeys; } diff --git a/extensions/material-helper/web/package.json b/extensions/material-helper/web/package.json index 88e11ff12..23808eef8 100644 --- a/extensions/material-helper/web/package.json +++ b/extensions/material-helper/web/package.json @@ -38,6 +38,6 @@ }, "repository": { "type": "git", - "url": "https://github.com/appworks-lab/pack.git" + "url": "https://github.com/appworks-lab/appworks.git" } } diff --git a/extensions/material-helper/web/tsconfig.json b/extensions/material-helper/web/tsconfig.json index a83b4ad1a..ff499eeae 100644 --- a/extensions/material-helper/web/tsconfig.json +++ b/extensions/material-helper/web/tsconfig.json @@ -11,6 +11,6 @@ }, "resolveJsonModule": true }, - "include": ["src/*", ".ice"], + "include": ["src", ".ice"], "exclude": ["node_modules", "public"] } diff --git a/extensions/project-creator/CHANGELOG.md b/extensions/project-creator/CHANGELOG.md index f37294607..25d69c864 100644 --- a/extensions/project-creator/CHANGELOG.md +++ b/extensions/project-creator/CHANGELOG.md @@ -1,13 +1,18 @@ # Changelog +## 1.0.4 + +- feat: update official materials +- feat: display ts or js icon which depends on the projectType in material source data + ## 1.0.3 -- feat: support double click to select scaffold. [#872](https://github.com/appworks-lab/pack/issues/872) +- feat: support double click to select scaffold. [#872](https://github.com/appworks-lab/appworks/issues/872) - fix: service api(setUserInfo) not found ## 1.0.2 -- fix: rax-spa project targets null problem. [#861](https://github.com/appworks-lab/pack/issues/861) +- fix: rax-spa project targets null problem. [#861](https://github.com/appworks-lab/appworks/issues/861) - fix .vscodeignore configuration [#576](https://github.com/microsoft/vscode-vsce/issues/576) ## 1.0.1 diff --git a/extensions/project-creator/README.md b/extensions/project-creator/README.md index f13904067..e29977c00 100644 --- a/extensions/project-creator/README.md +++ b/extensions/project-creator/README.md @@ -1,4 +1,4 @@ -English | [简体中文](https://github.com/appworks-lab/pack/blob/master/extensions/project-creator/README.zh-CN.md) +English | [简体中文](https://github.com/appworks-lab/appworks/blob/master/extensions/project-creator/README.zh-CN.md) # Application Creator diff --git a/extensions/project-creator/README.zh-CN.md b/extensions/project-creator/README.zh-CN.md index ddcf033b6..063d9dc1f 100644 --- a/extensions/project-creator/README.zh-CN.md +++ b/extensions/project-creator/README.zh-CN.md @@ -1,4 +1,4 @@ -简体中文 | [English](https://github.com/appworks-lab/pack/blob/master/extensions/project-creator/README.md) +简体中文 | [English](https://github.com/appworks-lab/appworks/blob/master/extensions/project-creator/README.md) # 应用创建器 diff --git a/extensions/project-creator/package.json b/extensions/project-creator/package.json index 8c10e0d44..a5c92413d 100644 --- a/extensions/project-creator/package.json +++ b/extensions/project-creator/package.json @@ -3,7 +3,7 @@ "displayName": "Application Creator", "description": "Quick create a Universal Application(React/Rax/Vue, etc).", "publisher": "iceworks-team", - "version": "1.0.3", + "version": "1.0.4", "engines": { "vscode": "^1.41.0" }, @@ -53,7 +53,7 @@ }, "repository": { "type": "git", - "url": "https://github.com/appworks-lab/pack.git" + "url": "https://github.com/appworks-lab/appworks.git" }, "scripts": { "vscode:prepublish": "rm -rf build && npm run build:web && npm run build:extension", @@ -83,9 +83,9 @@ "@appworks/connector": "^0.1.0", "js-base64": "^3.6.0" }, - "homepage": "https://github.com/appworks-lab/pack/blob/master/extensions/project-creator/README.md", + "homepage": "https://github.com/appworks-lab/appworks/blob/master/extensions/project-creator/README.md", "bugs": { - "url": "https://github.com/appworks-lab/pack/issues", + "url": "https://github.com/appworks-lab/appworks/issues", "email": "iceworksteam@163.com" } } diff --git a/extensions/project-creator/web/package.json b/extensions/project-creator/web/package.json index e2f0a144f..f56125d18 100644 --- a/extensions/project-creator/web/package.json +++ b/extensions/project-creator/web/package.json @@ -39,6 +39,6 @@ }, "repository": { "type": "git", - "url": "https://github.com/appworks-lab/pack.git" + "url": "https://github.com/appworks-lab/appworks.git" } } diff --git a/extensions/project-creator/web/src/components/ScaffoldCard/index.module.scss b/extensions/project-creator/web/src/components/PCScaffoldCard/index.module.scss similarity index 100% rename from extensions/project-creator/web/src/components/ScaffoldCard/index.module.scss rename to extensions/project-creator/web/src/components/PCScaffoldCard/index.module.scss diff --git a/extensions/project-creator/web/src/components/ScaffoldCard/index.tsx b/extensions/project-creator/web/src/components/PCScaffoldCard/index.tsx similarity index 86% rename from extensions/project-creator/web/src/components/ScaffoldCard/index.tsx rename to extensions/project-creator/web/src/components/PCScaffoldCard/index.tsx index f749e479d..4e5dced60 100644 --- a/extensions/project-creator/web/src/components/ScaffoldCard/index.tsx +++ b/extensions/project-creator/web/src/components/PCScaffoldCard/index.tsx @@ -13,7 +13,7 @@ interface IScaffoldCardProps { onDoubleClick?: (event: React.MouseEvent) => void; } -const ScaffoldCard: React.FC = ({ title, content, selected, onClick, media, onDoubleClick = () => {} }) => { +const PCScaffoldCard: React.FC = ({ title, content, selected, onClick, media, onDoubleClick = () => {} }) => { return (
= ({ title, content, selected, ); }; -export default ScaffoldCard; +export default PCScaffoldCard; diff --git a/extensions/project-creator/web/src/pages/CreateProject/components/ScaffoldMarket/index.module.scss b/extensions/project-creator/web/src/pages/CreateProject/components/ScaffoldMarket/index.module.scss index 5907a28bf..d2987a77d 100644 --- a/extensions/project-creator/web/src/pages/CreateProject/components/ScaffoldMarket/index.module.scss +++ b/extensions/project-creator/web/src/pages/CreateProject/components/ScaffoldMarket/index.module.scss @@ -52,24 +52,6 @@ justify-content: flex-start; flex-wrap: wrap; } - - .collapse { - width: 100%; - border: none; - :global { - .next-collapse-panel-expanded > .next-collapse-panel-content { - padding: 12px 0; - } - .next-collapse-panel-title:hover { - background: $color-brand1-1; - } - } - .collapseScaffolds { - display: flex; - justify-content: flex-start; - flex-wrap: wrap; - } - } } } diff --git a/extensions/project-creator/web/src/pages/CreateProject/components/ScaffoldMarket/index.tsx b/extensions/project-creator/web/src/pages/CreateProject/components/ScaffoldMarket/index.tsx index 083f34921..f348bdf26 100644 --- a/extensions/project-creator/web/src/pages/CreateProject/components/ScaffoldMarket/index.tsx +++ b/extensions/project-creator/web/src/pages/CreateProject/components/ScaffoldMarket/index.tsx @@ -1,17 +1,15 @@ -/* eslint-disable */ import React, { useState, useEffect } from 'react'; -import { Collapse, Notification, Loading, Button, Icon, Divider } from '@alifd/next'; +import { Notification, Loading, Button, Icon, Divider } from '@alifd/next'; import MaterialSourceCard from '@/components/MaterialSourceCard'; import MobileScaffoldCard from '@/components/MobileScaffoldCard'; -import ScaffoldCard from '@/components/ScaffoldCard'; +import PCScaffoldCard from '@/components/PCScaffoldCard'; import AddScaffoldCard from '@/components/AddScaffoldCard'; import NotFound from '@/components/NotFound'; import PegasusCard from '@/components/PegasusCard'; import PegasusScaffoldContent from '@/components/PegasusScaffoldContent'; import callService from '@/callService'; import { IMaterialSource, IMaterialScaffold } from '@appworks/material-utils'; -import { mainScaffoldsList, scaffoldsBlackList, tsScaffoldsList, jsScaffoldsList } from '../../constants'; -import { IScaffoldMarket } from '@/types'; +import { scaffoldsBlackList } from '../../constants'; import styles from './index.module.scss'; import { useIntl } from 'react-intl'; @@ -32,8 +30,7 @@ const ScaffoldMarket = ({ }) => { const intl = useIntl(); const [selectedSource, setSelectedSource] = useState({}); - const [mainScaffolds, setMainScaffolds] = useState([]); - const [otherScaffolds, setOtherScaffolds] = useState([]); + const [scaffolds, setScaffolds] = useState([]); const [loading, setLoading] = useState(false); const [pegasusCardSelected, setPegasusCardSelected] = useState(false); @@ -43,11 +40,9 @@ const ScaffoldMarket = ({ setLoading(true); setSelectedSource(scaffold); const data = await getScaffolds(scaffold.source); - const { mainScaffolds, otherScaffolds } = data as any; - setMainScaffolds(mainScaffolds); - setOtherScaffolds(otherScaffolds); + setScaffolds(data); } catch (err) { - console.log(err); + console.error(err); } finally { setLoading(false); } @@ -62,33 +57,16 @@ const ScaffoldMarket = ({ onScaffoldSelect(selectedSource, scaffold); } - async function getScaffolds(source: string): Promise { + async function getScaffolds(source: string): Promise { try { - const scaffolds = (await callService('scaffold', 'getAll', source)) as IMaterialScaffold[]; - let main = scaffolds.filter((scaffold) => { - const isMainScaffold = mainScaffoldsList.includes(scaffold.source.npm); - let isInScaffoldBlackList = false; - if (isAliInternal) { - isInScaffoldBlackList = scaffoldsBlackList.includes(scaffold.source.npm) - } - return isMainScaffold && !isInScaffoldBlackList; - }); - let other = scaffolds.filter((scaffold) => { - const isOtherScaffold = !mainScaffoldsList.includes(scaffold.source.npm); - let isInScaffoldBlackList = false; - if (isAliInternal) { - isInScaffoldBlackList = scaffoldsBlackList.includes(scaffold.source.npm) - } - return isOtherScaffold && !isInScaffoldBlackList; - }); - if (!main.length && other.length) { - main = other; - other = []; + const allScaffolds = (await callService('scaffold', 'getAll', source)) as IMaterialScaffold[]; + if (isAliInternal) { + return allScaffolds.filter((scaffold: IMaterialScaffold) => !scaffoldsBlackList.includes(scaffold.source.npm)); } - return { mainScaffolds: main, otherScaffolds: other }; + return allScaffolds; } catch (e) { Notification.error({ content: e.message }); - return { mainScaffolds: [], otherScaffolds: [] }; + return []; } } @@ -98,17 +76,15 @@ const ScaffoldMarket = ({ if (!materialSources.length) { return; } - const selectedSource = curProjectField.source ? curProjectField.source : materialSources[0]; - setSelectedSource(selectedSource); - const source = selectedSource.source; + const curSelectedSource = curProjectField.source ? curProjectField.source : materialSources[0]; + setSelectedSource(curSelectedSource); + const { source } = curSelectedSource; - const data = await getScaffolds(source); - const { mainScaffolds, otherScaffolds } = data as IScaffoldMarket; - setMainScaffolds(mainScaffolds); - setOtherScaffolds(otherScaffolds); - if (mainScaffolds.length > 0) { - const selectedScaffold = curProjectField.scaffold ? curProjectField.scaffold : mainScaffolds[0]; - onScaffoldSelect(selectedSource, selectedScaffold); + const allScaffolds = await getScaffolds(source); + setScaffolds(allScaffolds); + if (allScaffolds.length > 0) { + const selectedScaffold = curProjectField.scaffold ? curProjectField.scaffold : allScaffolds[0]; + onScaffoldSelect(curSelectedSource, selectedScaffold); } } catch (error) { Notification.error({ content: error.message }); @@ -125,37 +101,96 @@ const ScaffoldMarket = ({ } } + const SourceCard = ({ materialSource }: { materialSource: IMaterialSource }) => { + let iconName = 'app'; + const projectType = materialSource.type.toLocaleLowerCase(); + if (materialSource.client) { + iconName = materialSource.client.toLocaleLowerCase(); + } else if (projectTypes.includes(projectType)) { + iconName = projectType; + } + return ( + + {projectType} +
{materialSource.name}
+
+ } + selected={selectedSource.name && selectedSource.name === materialSource.name} + onClick={() => onMaterialSourceClick(materialSource)} + /> + ); + }; + + const ScaffoldCard = ({ scaffold }: { scaffold: IMaterialScaffold }) => { + const scaffoldType = scaffold.languageType || ''; + const isWireless = checkIsWireless(selectedSource); + const CardComponent = isWireless ? MobileScaffoldCard : PCScaffoldCard; + return ( + + {scaffoldType && ( + languageType + )} +
+ {scaffoldType ? scaffold.title.replace(' - TS', '').replace(' - JS', '') : scaffold.title} +
+
+ } + content={scaffold.description} + media={scaffold.screenshot} + selected={curProjectField.scaffold && curProjectField.scaffold.name === scaffold.name} + onClick={() => onScaffoldClick(scaffold)} + onDoubleClick={onScaffoldSubmit} + /> + ); + }; + + const ScaffoldCardsList = ({ scaffoldsList }: {scaffoldsList: IMaterialScaffold[]}) => { + return ( + pegasusCardSelected ? ( + + ) : ( + <> +
+ {scaffoldsList.length ? ( + <> + {scaffoldsList.map((scaffold: IMaterialScaffold) => )} + {selectedSource.name === 'PC Web' && } + + ) : ( + + )} +
+ + ) + ); + }; + useEffect(() => { initData(); }, [materialSources]); + return (
- {materialSources && - materialSources.map((item) => { - let iconName = 'app'; - const projectType = item.type.toLocaleLowerCase(); - if (item.client) { - iconName = item.client.toLocaleLowerCase(); - } else if (projectTypes.includes(projectType)) { - iconName = projectType; - } - return ( - - {projectType} -
{item.name}
-
- } - selected={selectedSource.name && selectedSource.name === item.name} - onClick={() => onMaterialSourceClick(item)} - /> - ); - })} + { + materialSources && + materialSources.map((materialSource: IMaterialSource) => ) + }
{isAliInternal ? : null}
@@ -169,102 +204,9 @@ const ScaffoldMarket = ({ {selectedSource.description &&
{selectedSource.description}
} {loading ? ( - ) : pegasusCardSelected ? ( - ) : ( - <> -
- {!!mainScaffolds.length ? ( - <> - {mainScaffolds.map((item) => { - // tsScaffoldsList and jsScaffoldsList only contain the official scaffolds - // so the TypeScript and JavaScript logo only display in official scaffolds - const scaffoldType = tsScaffoldsList.includes(item.source.npm) - ? 'ts' - : jsScaffoldsList.includes(item.source.npm) - ? 'js' - : ''; - const isWireless = checkIsWireless(selectedSource); - const CardComponent = isWireless ? MobileScaffoldCard : ScaffoldCard; - return ( - - {scaffoldType && ( - languageType - )} -
- {scaffoldType ? item.title.replace(' - TS', '').replace(' - JS', '') : item.title} -
-
- } - content={item.description} - media={item.screenshot} - selected={curProjectField.scaffold && curProjectField.scaffold.name === item.name} - onClick={() => onScaffoldClick(item)} - onDoubleClick={onScaffoldSubmit} - /> - ); - })} - {selectedSource.name === 'PC Web' && } - - ) : ( - - )} -
- {!!otherScaffolds.length && ( - - -
- {otherScaffolds.map((item) => { - // tsScaffoldsList and jsScaffoldsList only contain the official scaffolds - // so the TypeScript and JavaScript logo only display in official scaffolds - const scaffoldType = tsScaffoldsList.includes(item.source.npm) - ? 'ts' - : jsScaffoldsList.includes(item.source.npm) - ? 'js' - : ''; - const isWireless = checkIsWireless(selectedSource); - const CardComponent = isWireless ? MobileScaffoldCard : ScaffoldCard; - return ( - - {scaffoldType && ( - languageType - )} -
- {scaffoldType ? item.title.replace(' - JS', '').replace(' - TS', '') : item.title} -
-
- } - content={item.description} - media={item.screenshot} - selected={curProjectField.scaffold && curProjectField.scaffold.name === item.name} - onClick={() => onScaffoldClick(item)} - /> - ); - })} -
- - - )} - - )} + + )}
{pegasusCardSelected ? null :
{children}
} diff --git a/extensions/project-creator/web/src/pages/CreateProject/constants.ts b/extensions/project-creator/web/src/pages/CreateProject/constants.ts index d0cd3c5fc..2f5deb435 100644 --- a/extensions/project-creator/web/src/pages/CreateProject/constants.ts +++ b/extensions/project-creator/web/src/pages/CreateProject/constants.ts @@ -1,32 +1,3 @@ -export const mainScaffoldsList = [ - '@alifd/fusion-design-pro', - '@alifd/scaffold-lite', - '@alifd/scaffold-simple', - '@rax-materials/scaffolds-app-js', - '@rax-materials/scaffolds-app-ts', - '@miniprogram-materials/scaffolds-app-js', - '@miniprogram-materials/scaffolds-app-ts', - '@miniprogram-materials/scaffolds-todos', -]; - -export const tsScaffoldsList = [ - '@alifd/fusion-design-pro', - '@alifd/scaffold-lite', - '@alifd/scaffold-simple', - '@icedesign/stark-layout-scaffold', - '@icedesign/stark-child-scaffold', - '@rax-materials/scaffolds-app-ts', - '@miniprogram-materials/scaffolds-app-ts', -]; - -export const jsScaffoldsList = [ - '@alifd/fusion-design-pro-js', - '@alifd/scaffold-lite-js', - '@rax-materials/scaffolds-app-js', - '@miniprogram-materials/scaffolds-app-js', - '@miniprogram-materials/scaffolds-todos', -]; - export const scaffoldsBlackList = [ '@icedesign/scaffold-midway-faas', '@rax-materials/scaffolds-app-midway-faas', diff --git a/extensions/project-creator/web/tsconfig.json b/extensions/project-creator/web/tsconfig.json index a83b4ad1a..ff499eeae 100644 --- a/extensions/project-creator/web/tsconfig.json +++ b/extensions/project-creator/web/tsconfig.json @@ -11,6 +11,6 @@ }, "resolveJsonModule": true }, - "include": ["src/*", ".ice"], + "include": ["src", ".ice"], "exclude": ["node_modules", "public"] } diff --git a/extensions/react-refactor/README.md b/extensions/react-refactor/README.md index ddde2b139..2c4ef0acb 100644 --- a/extensions/react-refactor/README.md +++ b/extensions/react-refactor/README.md @@ -1,6 +1,6 @@ # React Refactor -English | [简体中文](https://github.com/appworks-lab/pack/blob/master/extensions/react-refactor/README.zh-CN.md) +English | [简体中文](https://github.com/appworks-lab/appworks/blob/master/extensions/react-refactor/README.zh-CN.md) [![Version for VS Code Extension](https://vsmarketplacebadge.apphb.com/version-short/iceworks-team.iceworks-refactor.svg?logo=visual-studio-code)](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks-refactor) [![Installs](https://vsmarketplacebadge.apphb.com/installs-short/iceworks-team.iceworks-refactor.svg)](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks-refactor) diff --git a/extensions/react-refactor/README.zh-CN.md b/extensions/react-refactor/README.zh-CN.md index c360817fb..3d58d701b 100644 --- a/extensions/react-refactor/README.zh-CN.md +++ b/extensions/react-refactor/README.zh-CN.md @@ -1,6 +1,6 @@ # React 代码重构 -English | [简体中文](https://github.com/appworks-lab/pack/blob/master/extensions/react-refactor/README.zh-CN.md) +English | [简体中文](https://github.com/appworks-lab/appworks/blob/master/extensions/react-refactor/README.zh-CN.md) [![Version for VS Code Extension](https://vsmarketplacebadge.apphb.com/version-short/iceworks-team.iceworks-refactor.svg?logo=visual-studio-code)](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks-refactor) [![Installs](https://vsmarketplacebadge.apphb.com/installs-short/iceworks-team.iceworks-refactor.svg)](https://marketplace.visualstudio.com/items?itemName=iceworks-team.iceworks-refactor) diff --git a/extensions/react-refactor/package.json b/extensions/react-refactor/package.json index 5a350a3bc..d0ef53f90 100644 --- a/extensions/react-refactor/package.json +++ b/extensions/react-refactor/package.json @@ -57,10 +57,10 @@ "main": "./build/extension.js", "repository": { "type": "git", - "url": "https://github.com/appworks-lab/pack.git" + "url": "https://github.com/appworks-lab/appworks.git" }, "bugs": { - "url": "https://github.com/appworks-lab/pack/issues", + "url": "https://github.com/appworks-lab/appworks/issues", "email": "iceworksteam@163.com" }, "scripts": { diff --git a/extensions/style-helper/README.md b/extensions/style-helper/README.md index 539ce4701..09992e674 100644 --- a/extensions/style-helper/README.md +++ b/extensions/style-helper/README.md @@ -1,4 +1,4 @@ -English | [简体中文](https://github.com/appworks-lab/pack/blob/master/extensions/style-helper/README.zh-CN.md) +English | [简体中文](https://github.com/appworks-lab/appworks/blob/master/extensions/style-helper/README.zh-CN.md) # React Style Helper diff --git a/extensions/style-helper/README.zh-CN.md b/extensions/style-helper/README.zh-CN.md index 446940428..b8d9f43a5 100644 --- a/extensions/style-helper/README.zh-CN.md +++ b/extensions/style-helper/README.zh-CN.md @@ -1,4 +1,4 @@ -简体中文 | [English](https://github.com/appworks-lab/pack/blob/master/extensions/style-helper/README.md) +简体中文 | [English](https://github.com/appworks-lab/appworks/blob/master/extensions/style-helper/README.md) # React 样式开发辅助插件 diff --git a/extensions/style-helper/package.json b/extensions/style-helper/package.json index af53f3e11..c82e15c4e 100644 --- a/extensions/style-helper/package.json +++ b/extensions/style-helper/package.json @@ -37,7 +37,7 @@ ], "repository": { "type": "git", - "url": "https://github.com/appworks-lab/pack.git" + "url": "https://github.com/appworks-lab/appworks.git" }, "main": "./build/extension.js", "scripts": { @@ -82,9 +82,9 @@ "tinycolor2": "^1.4.1", "vscode-web-custom-data": "^0.1.4" }, - "homepage": "https://github.com/appworks-lab/pack/blob/master/extensions/style-helper/README.md", + "homepage": "https://github.com/appworks-lab/appworks/blob/master/extensions/style-helper/README.md", "bugs": { - "url": "https://github.com/appworks-lab/pack/issues", + "url": "https://github.com/appworks-lab/appworks/issues", "email": "iceworksteam@163.com" } } diff --git a/extensions/time-master/README.md b/extensions/time-master/README.md index 600fe51e1..081ccec23 100644 --- a/extensions/time-master/README.md +++ b/extensions/time-master/README.md @@ -1,4 +1,4 @@ -English | [简体中文](https://github.com/appworks-lab/pack/blob/master/extensions/time-master/README.zh-CN.md) +English | [简体中文](https://github.com/appworks-lab/appworks/blob/master/extensions/time-master/README.zh-CN.md) # Time Master diff --git a/extensions/time-master/README.zh-CN.md b/extensions/time-master/README.zh-CN.md index 01bd44c4a..22097647c 100644 --- a/extensions/time-master/README.zh-CN.md +++ b/extensions/time-master/README.zh-CN.md @@ -1,4 +1,4 @@ -简体中文 | [English](https://github.com/appworks-lab/pack/blob/master/extensions/time-master/README.md) +简体中文 | [English](https://github.com/appworks-lab/appworks/blob/master/extensions/time-master/README.md) # 时间管理大师 @@ -29,7 +29,7 @@ - **从不访问您的代码**:我们不处理、发送或存储您的代码。 - **您的数据是私有的**:我们不会与任何人共享您的个人数据。 -最重要的一点,插件代码是[开源](https://github.com/appworks-lab/pack/tree/master/extensions/iceworks-time-master)的,您可以很容易地看到我们对于数据处理的实现。 +最重要的一点,插件代码是[开源](https://github.com/appworks-lab/appworks/tree/master/extensions/iceworks-time-master)的,您可以很容易地看到我们对于数据处理的实现。 > 备注 1:这是针对社区开发者而言的,如果您是阿里内部用户,我们将默认上传您的数据。 > diff --git a/extensions/time-master/package.json b/extensions/time-master/package.json index 3ce17fc6d..a0094c303 100644 --- a/extensions/time-master/package.json +++ b/extensions/time-master/package.json @@ -73,7 +73,7 @@ }, "repository": { "type": "git", - "url": "https://github.com/appworks-lab/pack.git" + "url": "https://github.com/appworks-lab/appworks.git" }, "main": "./build/extension.js", "scripts": { @@ -114,9 +114,9 @@ "node-cache": "^5.1.2", "numeral": "^2.0.6" }, - "homepage": "https://github.com/appworks-lab/pack/blob/master/extensions/time-master/README.md", + "homepage": "https://github.com/appworks-lab/appworks/blob/master/extensions/time-master/README.md", "bugs": { - "url": "https://github.com/appworks-lab/pack/issues", + "url": "https://github.com/appworks-lab/appworks/issues", "email": "iceworksteam@163.com" } } diff --git a/package.json b/package.json index 71975e04b..b8717c4f2 100644 --- a/package.json +++ b/package.json @@ -45,13 +45,13 @@ }, "repository": { "type": "git", - "url": "git+https://github.com/appworks-lab/pack.git" + "url": "git+https://github.com/appworks-lab/appworks.git" }, "license": "ISC", "bugs": { - "url": "https://github.com/appworks-lab/pack/issues" + "url": "https://github.com/appworks-lab/appworks/issues" }, - "homepage": "https://github.com/appworks-lab/pack#readme", + "homepage": "https://github.com/appworks-lab/appworks#readme", "devDependencies": { "@commitlint/cli": "^12.1.1", "@appworks/constant": "^0.1.0", diff --git a/packages/constant/CHANGELOG.md b/packages/constant/CHANGELOG.md index 7412e7414..c2aebfc26 100644 --- a/packages/constant/CHANGELOG.md +++ b/packages/constant/CHANGELOG.md @@ -1,5 +1,9 @@ # CHANGELOG +## 0.1.4 + +- Chore: update ALI_NPM_REGISTRY + ## 0.1.3 - Feat: remove typescript from dependencies diff --git a/packages/constant/package.json b/packages/constant/package.json index 2d5c9263c..35f72e7c6 100644 --- a/packages/constant/package.json +++ b/packages/constant/package.json @@ -1,6 +1,6 @@ { "name": "@appworks/constant", - "version": "0.1.3", + "version": "0.1.4", "main": "lib/index.js", "scripts": { "compile": "rm -rf lib && tsc -p ./tsconfig.json", diff --git a/packages/constant/src/index.ts b/packages/constant/src/index.ts index e4657c4e8..c897d53a3 100644 --- a/packages/constant/src/index.ts +++ b/packages/constant/src/index.ts @@ -1,7 +1,7 @@ import { Base64 } from 'js-base64'; // Some internal URLs are not suitable for direct disclosure -export const ALI_NPM_REGISTRY = Base64.decode('aHR0cHM6Ly9yZWdpc3RyeS5ucG0uYWxpYmFiYS1pbmMuY29t'); +export const ALI_NPM_REGISTRY = Base64.decode('aHR0cHM6Ly9yZWdpc3RyeS5ucG0uYWxpYmFiYS1pbmMuY29tLw=='); export const ALI_GITACCOUNT_URL = Base64.decode('aHR0cDovL2dpdGxhYi5hbGliYWJhLWluYy5jb20vcHJvZmlsZS9hY2NvdW50'); export const ALI_GITACCOUNT_SHORTURL = Base64.decode('Z2l0bGFiLmFsaWJhYmEtaW5jLmNvbS9wcm9maWxlL2FjY291bnQ='); export const ALI_GITLABGROUPS_API = Base64.decode('aHR0cDovL2dpdGxhYi5hbGliYWJhLWluYy5jb20vYXBpL3YzL2dyb3Vwcw=='); diff --git a/packages/doctor-ui/src/index.tsx b/packages/doctor-ui/src/index.tsx index 7ce9f42f7..176507056 100644 --- a/packages/doctor-ui/src/index.tsx +++ b/packages/doctor-ui/src/index.tsx @@ -31,8 +31,8 @@ const Dashboard = (props: Props) => { {locale.projectRating}

}>

{locale.haveProblem} - - https://github.com/appworks-lab/pack/issues + + https://github.com/appworks-lab/appworks/issues {locale.reportProblem}

diff --git a/packages/doctor/CHANGELOG.md b/packages/doctor/CHANGELOG.md index 9400029ef..8add7e0bb 100644 --- a/packages/doctor/CHANGELOG.md +++ b/packages/doctor/CHANGELOG.md @@ -1,5 +1,9 @@ # changelog +## 0.2.2 + +- Feat update @appworks/codemod. + ## 0.2.1 - Support custom config set extends and plugins. diff --git a/packages/doctor/bin/appworks-doctor b/packages/doctor/bin/appworks-doctor index db85e0b3a..8320b4c66 100755 --- a/packages/doctor/bin/appworks-doctor +++ b/packages/doctor/bin/appworks-doctor @@ -45,7 +45,7 @@ if (args.scan) { }, score: result.score || 0, }; - ['ESLint', 'maintainability', 'repeatability'].forEach((key) => { + ['ESLint', 'maintainability', 'repeatability', 'codemod'].forEach((key) => { if (result[key]) { report[key] = result[key].score; } diff --git a/packages/doctor/package.json b/packages/doctor/package.json index 668310611..1809e603b 100644 --- a/packages/doctor/package.json +++ b/packages/doctor/package.json @@ -1,7 +1,7 @@ { "name": "@appworks/doctor", "description": "Analyse and running codemods over react/rax projects, troubleshooting and automatically fixing errors", - "version": "0.2.1", + "version": "0.2.2", "keywords": [ "doctor", "analysis", @@ -25,7 +25,7 @@ "prepublishOnly": "npm run compile" }, "dependencies": { - "@appworks/codemod": "^0.1.0", + "@appworks/codemod": "^0.2.0", "@babel/parser": "^7.12.5", "@babel/traverse": "^7.12.5", "@iceworks/spec": "^1.0.2", diff --git a/packages/material-engine/CHANGELOG.md b/packages/material-engine/CHANGELOG.md index 21d630cdf..d1c08871d 100644 --- a/packages/material-engine/CHANGELOG.md +++ b/packages/material-engine/CHANGELOG.md @@ -1,6 +1,12 @@ # CHANGELOG -## 0.1.0 +## 0.1.2 + +- feat: update official materials +- chore: remove antd material source +- fix: fail to update material source + +## 0.1.1 - feat: support generate antd and fusion mobile base material info diff --git a/packages/material-engine/package.json b/packages/material-engine/package.json index 953b613ee..865a04917 100644 --- a/packages/material-engine/package.json +++ b/packages/material-engine/package.json @@ -1,6 +1,6 @@ { "name": "@appworks/material-engine", - "version": "0.1.1", + "version": "0.1.2", "description": "AppWorks Material Engine for VSCode extension.", "files": [ "lib" diff --git a/packages/material-engine/src/material/index.ts b/packages/material-engine/src/material/index.ts index b277e4c48..3bdaa8f3e 100644 --- a/packages/material-engine/src/material/index.ts +++ b/packages/material-engine/src/material/index.ts @@ -18,7 +18,6 @@ export { generateDebugMaterialData }; // material source const ICE_MATERIAL_SOURCE = 'https://ice.alicdn.com/assets/materials/react-materials.json'; -const ANTD_MATERIAL_SOURCE = 'https://ice.alicdn.com/assets/materials/antd-materials.json'; const VUE_MATERIAL_SOURCE = 'https://ice.alicdn.com/assets/materials/vue-materials.json'; // const MINI_PROGRAM_MATERIAL_SOURCE = 'https://ice.alicdn.com/assets/materials/miniprogram-materials.json'; const RAX_MATERIAL_SOURCE = 'https://ice.alicdn.com/assets/materials/rax-materials.json'; @@ -53,7 +52,7 @@ const componentSourceDetails = [ }, ]; -const OFFICAL_MATERIAL_SOURCES = [ +const OFFICIAL_MATERIAL_SOURCES = [ { name: i18n.format('package.materialService.index.webTitle'), type: 'react', @@ -61,13 +60,6 @@ const OFFICAL_MATERIAL_SOURCES = [ source: ICE_MATERIAL_SOURCE, description: i18n.format('package.materialService.index.webDescription'), }, - { - name: i18n.format('package.materialService.index.antdTitle'), - type: 'react', - client: 'pc', - source: ANTD_MATERIAL_SOURCE, - description: i18n.format('package.materialService.index.antdDescription'), - }, { name: i18n.format('package.materialService.index.raxTitle'), type: 'rax', @@ -77,7 +69,7 @@ const OFFICAL_MATERIAL_SOURCES = [ }, ]; -const OFFICAL_MATERIAL_SOURCES_FOR_EXTERNAL = [ +const OFFICIAL_MATERIAL_SOURCES_FOR_EXTERNAL = [ // { // name: i18n.format('package.materialService.index.miniProgramTitle'), // type: 'miniProgram', @@ -98,10 +90,6 @@ const isIceMaterial = (source: string) => { return source === ICE_MATERIAL_SOURCE; }; -const isAntdMaterial = (source: string) => { - return source === ANTD_MATERIAL_SOURCE; -}; - const isRaxMaterial = (source: string) => { return source === RAX_MATERIAL_SOURCE; }; @@ -112,7 +100,7 @@ export const getSourcesByProjectType = async function () { return getSources(type); }; -export const getOfficalMaterialSources = () => [].concat(OFFICAL_MATERIAL_SOURCES); +export const getOfficialMaterialSources = () => [].concat(OFFICIAL_MATERIAL_SOURCES); export const getUserSources = () => getDataFromSettingJson(CONFIGURATION_KEY_MATERIAL_SOURCES); @@ -126,10 +114,10 @@ export async function getSources(specifiedType?: string): Promise { let bases: IMaterialBase[]; try { if (isIceMaterial(source)) { - const baseResult = await axios({ url: FUSION_PC_COMPONENTS_SOURCE }); - bases = getBaseMaterials(baseResult.data, '@alifd/next', '1.18.16'); - } else if (isAntdMaterial(source)) { - const baseResult = await axios({ url: ANTD_PC_COMPONENTS_SOURCE }); - bases = getBaseMaterials(baseResult.data, 'antd', '4.16.5'); + const fusionBaseResult = await axios({ url: FUSION_PC_COMPONENTS_SOURCE }); + const fusionBaseMaterials = getBaseMaterials(fusionBaseResult.data, '@alifd/next', '1.18.16'); + const antdBaseResult = await axios({ url: ANTD_PC_COMPONENTS_SOURCE }); + const antdBaseMaterials = getBaseMaterials(antdBaseResult.data, 'antd', '4.16.5'); + bases = [...fusionBaseMaterials, ...antdBaseMaterials]; } else if (isRaxMaterial(source)) { const baseResult = await axios({ url: RAX_BASE_COMPONENTS_SOURCE }); bases = baseResult.data; @@ -243,6 +231,7 @@ export const addSource = async function (materialSource: IMaterialSource) { export const updateSource = async function (newMaterialSource: IMaterialSource, originSource: IMaterialSource) { const sources: IMaterialSource[] = await getSources(); + // don't update source when the source has already existed const existedSource = sources.some( ({ source: defaultSource }) => defaultSource === newMaterialSource.source && defaultSource !== originSource.source, ); @@ -263,7 +252,7 @@ export const updateSource = async function (newMaterialSource: IMaterialSource, const materialSources = getDataFromSettingJson(CONFIGURATION_KEY_MATERIAL_SOURCES); const newSources = materialSources.map((item) => { - if (item.source === newMaterialSource.source) { + if (item.source === originSource.source) { return { ...item, ...newMaterialSource, diff --git a/packages/material-engine/src/material/locales/en-US.json b/packages/material-engine/src/material/locales/en-US.json index aee92d4ed..2465d23f3 100644 --- a/packages/material-engine/src/material/locales/en-US.json +++ b/packages/material-engine/src/material/locales/en-US.json @@ -1,13 +1,11 @@ { - "package.materialService.index.webTitle": "Fusion Materials", - "package.materialService.index.webDescription": "Based On React, Fusion Design and icejs Framework", - "package.materialService.index.antdTitle": "Antd Materials", - "package.materialService.index.antdDescription": "Based On React, Ant Design and icejs Framework", + "package.materialService.index.webTitle": "PC", + "package.materialService.index.webDescription": "Based On React and icejs Framework", "package.materialService.index.raxTitle": "Mobile Apps", "package.materialService.index.raxDescription": "Based On Rax Components and Rax App", - "package.materialService.index.vueTitle": "Vue materials", + "package.materialService.index.vueTitle": "Vue", "package.materialService.index.vueDescription": "Based On Vue, Element and Vue CLI ", - "package.materialService.index.materialSourceExistError": "Material source already exists.", - "package.materialService.index.materialNameExistError": "Material name s already exists.", - "package.materialService.index.materialDataError": "Incorrect material source " + "package.materialService.index.materialSourceExistError": "Material source already exists, please try again.", + "package.materialService.index.materialNameExistError": "Material name s already exists, please try again.", + "package.materialService.index.materialDataError": "Incorrect material source, please try again." } diff --git a/packages/material-engine/src/material/locales/zh-CN.json b/packages/material-engine/src/material/locales/zh-CN.json index 6774b38ad..f97807564 100644 --- a/packages/material-engine/src/material/locales/zh-CN.json +++ b/packages/material-engine/src/material/locales/zh-CN.json @@ -1,13 +1,11 @@ { - "package.materialService.index.webTitle": "Fusion 物料", - "package.materialService.index.webDescription": "基于 React, Fusion 组件和 icejs 框架的官方物料", - "package.materialService.index.antdTitle": "Antd 物料", - "package.materialService.index.antdDescription": "基于 React,antd 组件和 icejs 框架的官方物料", - "package.materialService.index.raxTitle": "Rax 物料", + "package.materialService.index.webTitle": "PC", + "package.materialService.index.webDescription": "基于 React 和 icejs 框架的官方物料", + "package.materialService.index.raxTitle": "跨端应用", "package.materialService.index.raxDescription": "基于 Rax 组件和 Rax 脚手架的官方物料", - "package.materialService.index.vueTitle": "Vue 物料", + "package.materialService.index.vueTitle": "Vue", "package.materialService.index.vueDescription": "基于 Vue,Element, Vue CLI 的官方物料", - "package.materialService.index.materialSourceExistError": "物料源已存在。", - "package.materialService.index.materialNameExistError": "物料源名称已存在。", - "package.materialService.index.materialDataError": "物料源数据错误。" + "package.materialService.index.materialSourceExistError": "物料源已存在,请重新输入", + "package.materialService.index.materialNameExistError": "物料源名称已存在,请重新输入", + "package.materialService.index.materialDataError": "物料源数据错误,请重试" } diff --git a/packages/material-utils/CHANGELOG.md b/packages/material-utils/CHANGELOG.md new file mode 100644 index 000000000..b741c1ee6 --- /dev/null +++ b/packages/material-utils/CHANGELOG.md @@ -0,0 +1,6 @@ +# CHANGELOG + +## 0.1.1 + +- feat: add languageType type to IMaterialScaffold +- feat: add client type to IMaterialSource diff --git a/packages/material-utils/package.json b/packages/material-utils/package.json index 48d857dc3..2cec30d3d 100644 --- a/packages/material-utils/package.json +++ b/packages/material-utils/package.json @@ -1,6 +1,6 @@ { "name": "@appworks/material-utils", - "version": "0.1.0", + "version": "0.1.1", "description": "General tool library for materials.", "files": [ "lib" diff --git a/packages/material-utils/src/types.ts b/packages/material-utils/src/types.ts index 7c32c3cfb..7cd34ca41 100644 --- a/packages/material-utils/src/types.ts +++ b/packages/material-utils/src/types.ts @@ -6,6 +6,7 @@ export interface IMaterialSource { name: string; type: string; source: string; + client?: string; official?: boolean; checked?: boolean; description?: string; @@ -52,6 +53,7 @@ export interface IMaterialScaffold { title: string; updateTime: string; isNewlyCreated?: boolean; + languageType?: 'js' | 'ts'; } export interface IMaterialComponent { @@ -142,11 +144,11 @@ export const MaterialServerPath = 'MaterialServerPath'; export const IMaterialServer = Symbol('IMaterialServer'); export interface IMaterialServer { - getSources(type?: string): Promise; - getData(source: string): Promise; - addSource(param: IMaterialAddSourceParam): Promise; - updateSource(newSource: IMaterialAddSourceParam, originSource: IMaterialSource): Promise; - removeSource(source: string): Promise; + getSources: (type?: string) => Promise; + getData: (source: string) => Promise; + addSource: (param: IMaterialAddSourceParam) => Promise; + updateSource: (newSource: IMaterialAddSourceParam, originSource: IMaterialSource) => Promise; + removeSource: (source: string) => Promise; } export interface ILocalBack { @@ -155,16 +157,16 @@ export interface ILocalBack { } export interface IMaterialModule extends IMaterialServer { - goldlog(originParam: any); - maxComposePanel(); - checkIsTemplate(fsPath: string): boolean; - getLocalBlocks(): ILocalBack[]; - editLocalBlock(oldBlock: ILocalBack, newBlock: ILocalBack): void; - composeLocalBlock(blockName: string): void; - deleteLocalBlock(blockName: string): void; - createLocalBlock(): void; - addBlockCode(block: IMaterialBlock): Promise; - addCode(dataSource: IMaterialComponent): Promise; + goldlog: (originParam: any) => any; + maxComposePanel: () => any; + checkIsTemplate: (fsPath: string) => boolean; + getLocalBlocks: () => ILocalBack[]; + editLocalBlock: (oldBlock: ILocalBack, newBlock: ILocalBack) => void; + composeLocalBlock: (blockName: string) => void; + deleteLocalBlock: (blockName: string) => void; + createLocalBlock: () => void; + addBlockCode: (block: IMaterialBlock) => Promise; + addCode: (dataSource: IMaterialComponent) => Promise; } export const IMaterialModule = Symbol('IMaterialModule'); @@ -184,11 +186,11 @@ export interface IMaterialService { sources: IMaterialSource[]; data: IMaterialTypeDatum[]; currentSource: string; - getSources(): Promise; - setCurrentSource(source: string): Promise; - addSource(param: IMaterialAddSourceParam): Promise; - removeSource(source: string): Promise; - getMaterialData(source: string): Promise; - setSourceIsEditing(source: string, isEditing: boolean): Promise; - updateSource(newSource: IMaterialAddSourceParam, originSource: IMaterialSource): Promise; + getSources: () => Promise; + setCurrentSource: (source: string) => Promise; + addSource: (param: IMaterialAddSourceParam) => Promise; + removeSource: (source: string) => Promise; + getMaterialData: (source: string) => Promise; + setSourceIsEditing: (source: string, isEditing: boolean) => Promise; + updateSource: (newSource: IMaterialAddSourceParam, originSource: IMaterialSource) => Promise; } diff --git a/packages/project-service/CHANGELOG.md b/packages/project-service/CHANGELOG.md index a62c7fa3b..1f3587637 100644 --- a/packages/project-service/CHANGELOG.md +++ b/packages/project-service/CHANGELOG.md @@ -7,7 +7,7 @@ ## 0.1.1 -- fix: rax-spa project targets null problem. [#861](https://github.com/appworks-lab/pack/issues/861) +- fix: rax-spa project targets null problem. [#861](https://github.com/appworks-lab/appworks/issues/861) ## 0.1.0 diff --git a/packages/project-utils/src/git.ts b/packages/project-utils/src/git.ts index 60f9cbcb6..81c8dcbcc 100644 --- a/packages/project-utils/src/git.ts +++ b/packages/project-utils/src/git.ts @@ -8,8 +8,8 @@ const gitRemoteOriginUrl = require('git-remote-origin-url'); export interface GitInfo { branch: string; // master - repository: string; // git@github.com:appworks-lab/pack.git - remoteUrl: string; // https://github.com/appworks-lab/pack + repository: string; // git@github.com:appworks-lab/appworks.git + remoteUrl: string; // https://github.com/appworks-lab/appworks group: string; // appworks-lab project: string; // pack tag?: string; diff --git a/packages/user-service/scripts/get-def-login-client.ts b/packages/user-service/scripts/get-def-login-client.ts index 42033a2b2..4ab66ff85 100644 --- a/packages/user-service/scripts/get-def-login-client.ts +++ b/packages/user-service/scripts/get-def-login-client.ts @@ -15,9 +15,9 @@ async function getDefLoginClient() { accessKeySecret: ACCESS_KEY_SECRET, timeout: '300s', }); - + const target = 'packages/def-login-client.zip'; - + try { const result = await ossClient.get(target); const zipPath = path.join(__dirname, '..', 'tmp.zip'); diff --git a/packages/vscode-generator/src/templates/extension/package.json.ejs b/packages/vscode-generator/src/templates/extension/package.json.ejs index e029ff175..1580ef5d7 100644 --- a/packages/vscode-generator/src/templates/extension/package.json.ejs +++ b/packages/vscode-generator/src/templates/extension/package.json.ejs @@ -20,10 +20,10 @@ "main": "./build/extension.js", "repository": { "type": "git", - "url": "https://github.com/appworks-lab/pack.git" + "url": "https://github.com/appworks-lab/appworks.git" }, "bugs": { - "url": "https://github.com/appworks-lab/pack/issues" + "url": "https://github.com/appworks-lab/appworks/issues" }, "scripts": { "vscode:prepublish": "rm -rf build && npm run build:web && webpack --mode production",