devextreme-cli 1.5.2 → 1.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "devextreme-cli",
3
- "version": "1.5.2",
3
+ "version": "1.6.1",
4
4
  "description": "DevExtreme CLI",
5
5
  "keywords": [
6
6
  "devexpress",
@@ -30,7 +30,7 @@
30
30
  "test-template": "node ./testing/testing.js",
31
31
  "test-dev": "cross-env TEST_MODE=dev jest",
32
32
  "test-themebuilder": "jest --config=./jest-themebuilder.config.js --runInBand",
33
- "docker:build": "docker build --rm -f \"testing/docker/Dockerfile\" -t devextreme-cli:latest \"testing/docker\"",
33
+ "docker:build": "docker build --rm -f \"testing/docker/Dockerfile\" -t devextreme-cli:latest \"testing/docker\" --progress=plain",
34
34
  "docker:run": "docker run --rm -d -p 9222:9222/tcp devextreme-cli:latest"
35
35
  },
36
36
  "author": "Developer Express Inc.",
@@ -49,8 +49,8 @@
49
49
  "strip-bom": "^4.0.0"
50
50
  },
51
51
  "devDependencies": {
52
- "@typescript-eslint/eslint-plugin": "^4.15.1",
53
- "@typescript-eslint/parser": "^4.0.1",
52
+ "@typescript-eslint/eslint-plugin": "^4.33.0",
53
+ "@typescript-eslint/parser": "^4.33.0",
54
54
  "babel-eslint": "^10.1.0",
55
55
  "cross-env": "^5.2.1",
56
56
  "eslint": "^7.32.0",
@@ -62,17 +62,16 @@
62
62
  "eslint-plugin-react": "^7.30.1",
63
63
  "eslint-plugin-react-hooks": "^4.6.0",
64
64
  "eslint-plugin-unused-imports": "^1.1.5",
65
- "eslint-plugin-vue": "^7.0.0-beta.2",
65
+ "eslint-plugin-vue": "^7.20.0",
66
66
  "eslint-stylish": "^0.2.0",
67
- "jest": "^27.3.1",
68
- "jest-image-snapshot": "^5.1.1",
67
+ "jest": "^29.5.0",
68
+ "jest-image-snapshot": "^6.1.0",
69
69
  "prettier": "^2.6.2",
70
- "puppeteer": "^2.1.1",
71
- "rimraf": "^2.6.3",
72
- "tree-kill": "^1.2.1",
73
- "tree-kill-promise": "^1.0.3",
70
+ "rimraf": "^2.7.1",
71
+ "tree-kill": "^1.2.2",
72
+ "tree-kill-promise": "^1.0.12",
74
73
  "typescript": "^4.0.2",
75
74
  "typescript-eslint-parser": "^22.0.0"
76
75
  },
77
- "gitHead": "5ee9255ab8afb5d38770b2cc74c798c5c549f629"
76
+ "gitHead": "a18bca062ee354ea47ad90df2c18e87e03d0db7e"
78
77
  }
@@ -56,7 +56,7 @@ const preparePackageJsonForTemplate = (appPath, appName, version) => {
56
56
  async function createVueApp(name, templateOptions) {
57
57
  const { version } = templateOptions;
58
58
  const toolingVersion = extractToolingVersion(templateOptions);
59
- const argList = ['-p', `@vue/cli${toolingVersion}`, 'vue', 'create', name];
59
+ const argList = ['-p', `@vue/cli${toolingVersion}`, 'vue', 'create', name, '--registry', 'https://registry.npmjs.org/'];
60
60
 
61
61
  if(version === 'v2') {
62
62
  argList.push('-p "Default (Vue 2)"');
@@ -10,7 +10,7 @@ import Form, {
10
10
  } from 'devextreme-react/form';
11
11
  import LoadIndicator from 'devextreme-react/load-indicator';
12
12
  import notify from 'devextreme/ui/notify';
13
- <%=#isTypeScript%>import { ValidationType } from '../../types';<%=/isTypeScript%>
13
+ <%=#isTypeScript%>import { ValidationCallbackData } from 'devextreme-react/common';<%=/isTypeScript%>
14
14
  import { changePassword } from '../../api/auth';
15
15
 
16
16
  export default function ChangePasswordForm() {
@@ -35,7 +35,7 @@ export default function ChangePasswordForm() {
35
35
  }, [navigate, recoveryCode]);
36
36
 
37
37
  const confirmPassword = useCallback(
38
- ({ value }<%=#isTypeScript%>: ValidationType<%=/isTypeScript%>) => value === formData.current.password,
38
+ ({ value }<%=#isTypeScript%>: ValidationCallbackData<%=/isTypeScript%>) => value === formData.current.password,
39
39
  []
40
40
  );
41
41
 
@@ -12,7 +12,7 @@ import Form, {
12
12
  import notify from 'devextreme/ui/notify';
13
13
  import LoadIndicator from 'devextreme-react/load-indicator';
14
14
  import { createAccount } from '../../api/auth';
15
- <%=#isTypeScript%>import { ValidationType } from '../../types';<%=/isTypeScript%>
15
+ <%=#isTypeScript%>import { ValidationCallbackData } from 'devextreme-react/common';<%=/isTypeScript%>
16
16
  import './CreateAccountForm.scss';
17
17
 
18
18
  export default function CreateAccountForm() {
@@ -36,7 +36,7 @@ export default function CreateAccountForm() {
36
36
  }, [navigate]);
37
37
 
38
38
  const confirmPassword = useCallback(
39
- ({ value }<%=#isTypeScript%>: ValidationType<%=/isTypeScript%>) => value === formData.current.password,
39
+ ({ value }<%=#isTypeScript%>: ValidationCallbackData<%=/isTypeScript%>) => value === formData.current.password,
40
40
  []
41
41
  );
42
42
 
@@ -47,7 +47,7 @@ export default function UserPanel({ menuMode }<%=#isTypeScript%>: UserPanelProps
47
47
  width={210}
48
48
  cssClass={'user-menu'}
49
49
  >
50
- <Position my={'top center'} at={'bottom center'} />
50
+ <Position my={{ x: 'center', y: 'top' }} at={{ x: 'center', y: 'bottom' }} />
51
51
  </ContextMenu>
52
52
  )}
53
53
  {menuMode === 'list' && (
@@ -9,9 +9,9 @@ import './side-nav-inner-toolbar.scss';
9
9
  import { useScreenSize } from '../../utils/media-query';
10
10
  import { Template } from 'devextreme-react/core/template';
11
11
  import { useMenuPatch } from '../../utils/patches';
12
- <%=#isTypeScript%>import { ItemClickEvent } from 'devextreme/ui/tree_view';<%=/isTypeScript%>
12
+ <%=#isTypeScript%>import { TreeViewTypes } from 'devextreme-react/tree-view';<%=/isTypeScript%>
13
13
  <%=#isTypeScript%>import type { SideNavToolbarProps } from '../../types';<%=/isTypeScript%>
14
- <%=#isTypeScript%>import { ClickEvent } from 'devextreme/ui/button';<%=/isTypeScript%>
14
+ <%=#isTypeScript%>import { ButtonTypes } from 'devextreme-react/button';<%=/isTypeScript%>
15
15
 
16
16
  export default function SideNavInnerToolbar({ title, children }<%=#isTypeScript%>: React.PropsWithChildren<SideNavToolbarProps><%=/isTypeScript%>) {
17
17
  const scrollViewRef = useRef<%=#isTypeScript%><ScrollView><%=/isTypeScript%>(null);
@@ -22,7 +22,7 @@ export default function SideNavInnerToolbar({ title, children }<%=#isTypeScript%
22
22
  isLarge ? MenuStatus.Opened : MenuStatus.Closed
23
23
  );
24
24
 
25
- const toggleMenu = useCallback(({ event }<%=#isTypeScript%>: ClickEvent<%=/isTypeScript%>) => {
25
+ const toggleMenu = useCallback(({ event }<%=#isTypeScript%>: ButtonTypes.ClickEvent<%=/isTypeScript%>) => {
26
26
  setMenuStatus(
27
27
  prevMenuStatus => prevMenuStatus === MenuStatus.Closed
28
28
  ? MenuStatus.Opened
@@ -48,7 +48,7 @@ export default function SideNavInnerToolbar({ title, children }<%=#isTypeScript%
48
48
  return menuStatus === MenuStatus.Closed ? true : false;
49
49
  }, [isLarge]);
50
50
 
51
- const onNavigationChanged = useCallback(({ itemData, event, node }<%=#isTypeScript%>: ItemClickEvent<%=/isTypeScript%>) => {
51
+ const onNavigationChanged = useCallback(({ itemData, event, node }<%=#isTypeScript%>: TreeViewTypes.ItemClickEvent<%=/isTypeScript%>) => {
52
52
  if (menuStatus === MenuStatus.Closed || !itemData<%=#isTypeScript%>?<%=/isTypeScript%>.path || node<%=#isTypeScript%>?<%=/isTypeScript%>.selected) {
53
53
  event<%=#isTypeScript%>?<%=/isTypeScript%>.preventDefault();
54
54
  return;
@@ -7,8 +7,8 @@ import './side-nav-outer-toolbar.scss';
7
7
  import { useScreenSize } from '../../utils/media-query';
8
8
  import { Template } from 'devextreme-react/core/template';
9
9
  import { useMenuPatch } from '../../utils/patches';
10
- <%=#isTypeScript%>import { ClickEvent } from 'devextreme/ui/button';<%=/isTypeScript%>
11
- <%=#isTypeScript%>import { ItemClickEvent } from 'devextreme/ui/tree_view';<%=/isTypeScript%>
10
+ <%=#isTypeScript%>import { ButtonTypes } from 'devextreme-react/button';<%=/isTypeScript%>
11
+ <%=#isTypeScript%>import { TreeViewTypes } from 'devextreme-react/tree-view';<%=/isTypeScript%>
12
12
  <%=#isTypeScript%>import type { SideNavToolbarProps } from '../../types';<%=/isTypeScript%>
13
13
 
14
14
  export default function SideNavOuterToolbar({ title, children }<%=#isTypeScript%>: React.PropsWithChildren<SideNavToolbarProps><%=/isTypeScript%>) {
@@ -20,7 +20,7 @@ export default function SideNavOuterToolbar({ title, children }<%=#isTypeScript%
20
20
  isLarge ? MenuStatus.Opened : MenuStatus.Closed
21
21
  );
22
22
 
23
- const toggleMenu = useCallback(({ event }<%=#isTypeScript%>: ClickEvent<%=/isTypeScript%>) => {
23
+ const toggleMenu = useCallback(({ event }<%=#isTypeScript%>: ButtonTypes.ClickEvent<%=/isTypeScript%>) => {
24
24
  setMenuStatus(
25
25
  prevMenuStatus => prevMenuStatus === MenuStatus.Closed
26
26
  ? MenuStatus.Opened
@@ -46,7 +46,7 @@ export default function SideNavOuterToolbar({ title, children }<%=#isTypeScript%
46
46
  return menuStatus === MenuStatus.Closed ? true : false;
47
47
  }, [isLarge]);
48
48
 
49
- const onNavigationChanged = useCallback(({ itemData, event, node }<%=#isTypeScript%>: ItemClickEvent<%=/isTypeScript%>) => {
49
+ const onNavigationChanged = useCallback(({ itemData, event, node }<%=#isTypeScript%>: TreeViewTypes.ItemClickEvent<%=/isTypeScript%>) => {
50
50
  if (menuStatus === MenuStatus.Closed || !itemData<%=#isTypeScript%>?<%=/isTypeScript%>.path || node<%=#isTypeScript%>?<%=/isTypeScript%>.selected) {
51
51
  event<%=#isTypeScript%>?<%=/isTypeScript%>.preventDefault();
52
52
  return;
@@ -1,19 +1,18 @@
1
- import dxTreeView, { ItemClickEvent } from 'devextreme/ui/tree_view';
2
- import { ClickEvent } from 'devextreme/ui/button';
3
- import { EventInfo } from 'devextreme/events';
1
+ import { TreeViewTypes } from 'devextreme-react/tree-view';
2
+ import { ButtonTypes } from 'devextreme-react/button';
4
3
  import React from 'react';
5
4
 
6
5
  export interface HeaderProps {
7
6
  menuToggleEnabled: boolean;
8
7
  title?: string;
9
- toggleMenu: (e: ClickEvent) => void;
8
+ toggleMenu: (e: ButtonTypes.ClickEvent) => void;
10
9
  }
11
10
 
12
11
  export interface SideNavigationMenuProps {
13
- selectedItemChanged: (e: ItemClickEvent) => void;
12
+ selectedItemChanged: (e: TreeViewTypes.ItemClickEvent) => void;
14
13
  openMenu: (e: React.PointerEvent) => void;
15
14
  compactMode: boolean;
16
- onMenuReady: (e: EventInfo<dxTreeView>) => void;
15
+ onMenuReady: (e: TreeViewTypes.ContentReadyEvent) => void;
17
16
  }
18
17
 
19
18
  export interface UserPanelProps {
@@ -20,17 +20,17 @@
20
20
  </template>
21
21
 
22
22
  <script>
23
- import DxTreeView from "devextreme-vue/ui/tree-view";
23
+ import DxTreeView from 'devextreme-vue/tree-view';
24
24
  import { sizes } from '../utils/media-query';
25
25
  import navigation from '../app-navigation';
26
26
 
27
27
  const treeViewRef = "treeViewRef";
28
28
  const isLargeScreen = sizes()['screen-large'];
29
29
  const items = navigation.map((item) => {
30
- if(item.path && !(/^\//.test(item.path))){
30
+ if(item.path && !(/^\//.test(item.path))){
31
31
  item.path = `/${item.path}`;
32
32
  }
33
- return {...item, expanded: isLargeScreen}
33
+ return {...item, expanded: isLargeScreen}
34
34
  });
35
35
 
36
36
  export default {
@@ -20,11 +20,11 @@
20
20
  </template>
21
21
 
22
22
  <script>
23
- import DxTreeView from "devextreme-vue/ui/tree-view";
23
+ import DxTreeView from 'devextreme-vue/tree-view';
24
24
  import { sizes } from '../utils/media-query';
25
25
  import navigation from '../app-navigation';
26
26
  import { onMounted, ref, watch } from 'vue';
27
- import { useRoute, useRouter } from 'vue-router';
27
+ import { useRoute, useRouter } from 'vue-router';
28
28
 
29
29
  export default {
30
30
  props: {
@@ -36,10 +36,10 @@ export default {
36
36
 
37
37
  const isLargeScreen = sizes()['screen-large'];
38
38
  const items = navigation.map((item) => {
39
- if(item.path && !(/^\//.test(item.path))){
39
+ if(item.path && !(/^\//.test(item.path))){
40
40
  item.path = `/${item.path}`;
41
41
  }
42
- return {...item, expanded: isLargeScreen}
42
+ return {...item, expanded: isLargeScreen}
43
43
  });
44
44
 
45
45
  const treeViewRef = ref(null);
@@ -67,13 +67,13 @@ export default {
67
67
  treeViewRef.value.instance.expandItem(route.path);
68
68
  }
69
69
 
70
- onMounted(() => {
70
+ onMounted(() => {
71
71
  updateSelection();
72
72
  if (props.compactMode) {
73
73
  treeViewRef.value.instance.collapseAll();
74
74
  }
75
75
  });
76
-
76
+
77
77
 
78
78
  watch(
79
79
  () => route.path,
@@ -81,7 +81,7 @@ export default {
81
81
  updateSelection();
82
82
  }
83
83
  );
84
-
84
+
85
85
  watch(
86
86
  () => props.compactMode,
87
87
  () => {
@@ -131,7 +131,7 @@ const installThemeBuilder = async version => {
131
131
  cwd: process.cwd(),
132
132
  stdio: 'inherit'
133
133
  }, {
134
- npm: ['--no-save', '--fund=false', '--package-lock=false', '--omit=dev', '--omit=optional']
134
+ npm: ['--no-save', '--fund=false', '--package-lock=false', '--omit=dev']
135
135
  });
136
136
  };
137
137
 
@@ -1,8 +1,8 @@
1
1
  const packageJson = require('../../package.json');
2
2
  module.exports = {
3
- 'devextreme': '^22.2.4',
4
- 'devextreme-react': '^22.2.4',
5
- 'devextreme-vue': '^22.2.4',
3
+ 'devextreme': '^23.1.5',
4
+ 'devextreme-react': '^23.1.5',
5
+ 'devextreme-vue': '^23.1.5',
6
6
  'devextreme-cli': packageJson.version,
7
7
  'devextreme-schematics': 'latest'
8
8
  };