@jiaozhiye/qm-design-react 1.8.16 → 1.8.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -9,6 +9,7 @@ export interface TourStepInfo {
9
9
  title: React.ReactNode;
10
10
  description?: React.ReactNode;
11
11
  placement?: PlacementType;
12
+ type?: 'default' | 'primary';
12
13
  trigger?: 'click' | 'focus' | 'hover';
13
14
  delay?: number;
14
15
  helper?: {
@@ -1,160 +1,183 @@
1
- /*
2
- * @Author: 焦质晔
3
- * @Date: 2022-01-11 18:01:20
4
- * @Last Modified by: 焦质晔
5
- * @Last Modified time: 2023-07-26 17:22:16
6
- */
7
- @import '../../style/common';
8
-
9
- @prefix-tour: ~'@{qm-prefix}-tour';
10
-
11
- .@{prefix-tour} {
12
- .reset-container();
13
- position: absolute;
14
- display: block;
15
- visibility: visible;
16
- min-width: 500px;
17
- &-hidden {
18
- display: none;
19
- }
20
- & &-arrow {
21
- display: block;
22
- width: 15px;
23
- height: 15px;
24
- z-index: 1;
25
- overflow: hidden;
26
- pointer-events: none;
27
- &::before {
28
- content: '';
29
- position: absolute;
30
- bottom: 0px;
31
- inset-inline-start: 0px;
32
- width: 15px;
33
- height: 8px;
34
- clip-path: path('M 0 8 A 4 4 0 0 0 2.82843 6.82843 L 6.58579 3.07107 A 2 2 0 0 1 9.41421 3.07107 L 13.1716 6.82843 A 4 4 0 0 0 16 8 Z');
35
- background-color: #fff;
36
- }
37
- &::after {
38
- content: '';
39
- position: absolute;
40
- width: 8.97056px;
41
- height: 8.97056px;
42
- bottom: 0px;
43
- transform: translateY(50%) rotate(-135deg);
44
- box-shadow: rgba(0, 0, 0, 0.05) 2px 2px 5px;
45
- z-index: 0;
46
- inset-inline: 0px;
47
- margin: auto;
48
- border-radius: 0px 0px 2px;
49
- background: 0px 0px;
50
- }
51
- }
52
- & &-content {
53
- position: relative;
54
- }
55
- & &-inner {
56
- box-shadow: rgba(0, 0, 0, 0.03) 0px 1px 2px 0px, rgba(0, 0, 0, 0.02) 0px 1px 6px -1px, rgba(0, 0, 0, 0.02) 0px 2px 4px 0px;
57
- background-color: #fff;
58
- background-clip: padding-box;
59
- text-decoration: none;
60
- border-radius: 8px;
61
- }
62
- & &-close {
63
- position: absolute;
64
- top: 10px;
65
- inset-inline-end: 10px;
66
- color: @--text-color-secondary;
67
- width: 22px;
68
- height: 22px;
69
- display: flex;
70
- align-items: center;
71
- justify-content: center;
72
- outline: none;
73
- border-radius: 4px;
74
- transition: background-color 0.2s ease 0s, color 0.2s ease 0s;
75
- &:hover {
76
- color: rgba(0, 0, 0, 0.88);
77
- background-color: rgba(0, 0, 0, 0.06);
78
- }
79
- &.help-icon {
80
- right: 34px;
81
- }
82
- }
83
- & &-cover {
84
- text-align: center;
85
- padding: 45px 15px 0px;
86
- }
87
- & &-header {
88
- padding: 15px 15px 8px;
89
- }
90
- & &-title {
91
- font-weight: 600;
92
- }
93
- & &-description {
94
- overflow-wrap: break-word;
95
- padding: 0px 15px;
96
- }
97
- & &-footer {
98
- text-align: end;
99
- display: flex;
100
- padding: 8px 15px 15px;
101
- }
102
- & &-indicators {
103
- display: inline-block;
104
- }
105
- & &-indicators &-indicator {
106
- width: 6px;
107
- height: 6px;
108
- display: inline-block;
109
- border-radius: 50%;
110
- background: rgba(0, 0, 0, 0.15);
111
- &-active {
112
- background: @--primary-color;
113
- }
114
- }
115
- & &-indicators &-indicator:not(:last-child) {
116
- margin-inline-end: 6px;
117
- }
118
- & &-buttons {
119
- margin-inline-start: auto;
120
- }
121
- &-control {
122
- position: fixed;
123
- right: 20px;
124
- bottom: 20px;
125
- width: 40px;
126
- height: 40px;
127
- border-radius: 50%;
128
- border: 2px solid #fff;
129
- background: linear-gradient(to right bottom, @--primary-4, @--primary-7);
130
- display: flex;
131
- align-items: center;
132
- justify-content: center;
133
- pointer-events: auto;
134
- cursor: pointer;
135
- .anticon {
136
- color: #fff;
137
- font-size: 20px;
138
- }
139
- }
140
- // =======================================
141
- &-mask &-placeholder-animated {
142
- transition: all 0.2s ease;
143
- }
144
- &-placement-bottom &-arrow {
145
- left: 50%;
146
- transform: translateX(-50%) translateY(-100%);
147
- }
148
- &-placement-top &-arrow {
149
- left: 50%;
150
- transform: translateX(-50%) translateY(100%) rotate(180deg);
151
- }
152
- &-placement-right &-arrow {
153
- top: 50%;
154
- transform: translateY(-50%) translateX(-100%) rotate(-90deg);
155
- }
156
- &-placement-left &-arrow {
157
- top: 50%;
158
- transform: translateY(-50%) translateX(100%) rotate(90deg);
159
- }
160
- }
1
+ /*
2
+ * @Author: 焦质晔
3
+ * @Date: 2022-01-11 18:01:20
4
+ * @Last Modified by: 焦质晔
5
+ * @Last Modified time: 2023-07-26 17:22:16
6
+ */
7
+ @import '../../style/common';
8
+
9
+ @prefix-tour: ~'@{qm-prefix}-tour';
10
+
11
+ .@{prefix-tour} {
12
+ .reset-container();
13
+ position: absolute;
14
+ display: block;
15
+ visibility: visible;
16
+ min-width: 500px;
17
+ &-hidden {
18
+ display: none;
19
+ }
20
+ & &-arrow {
21
+ display: block;
22
+ width: 15px;
23
+ height: 15px;
24
+ z-index: 1;
25
+ overflow: hidden;
26
+ pointer-events: none;
27
+ &::before {
28
+ content: '';
29
+ position: absolute;
30
+ bottom: 0px;
31
+ inset-inline-start: 0px;
32
+ width: 15px;
33
+ height: 8px;
34
+ clip-path: path('M 0 8 A 4 4 0 0 0 2.82843 6.82843 L 6.58579 3.07107 A 2 2 0 0 1 9.41421 3.07107 L 13.1716 6.82843 A 4 4 0 0 0 16 8 Z');
35
+ background-color: #fff;
36
+ }
37
+ &::after {
38
+ content: '';
39
+ position: absolute;
40
+ width: 8.97056px;
41
+ height: 8.97056px;
42
+ bottom: 0px;
43
+ transform: translateY(50%) rotate(-135deg);
44
+ box-shadow: rgba(0, 0, 0, 0.05) 2px 2px 5px;
45
+ z-index: 0;
46
+ inset-inline: 0px;
47
+ margin: auto;
48
+ border-radius: 0px 0px 2px;
49
+ background: 0px 0px;
50
+ }
51
+ }
52
+ & &-content {
53
+ position: relative;
54
+ }
55
+ & &-inner {
56
+ box-shadow: rgba(0, 0, 0, 0.03) 0px 1px 2px 0px, rgba(0, 0, 0, 0.02) 0px 1px 6px -1px, rgba(0, 0, 0, 0.02) 0px 2px 4px 0px;
57
+ background-color: #fff;
58
+ background-clip: padding-box;
59
+ text-decoration: none;
60
+ border-radius: 8px;
61
+ }
62
+ & &-close {
63
+ position: absolute;
64
+ top: 10px;
65
+ inset-inline-end: 10px;
66
+ color: @--text-color-secondary;
67
+ width: 22px;
68
+ height: 22px;
69
+ display: flex;
70
+ align-items: center;
71
+ justify-content: center;
72
+ outline: none;
73
+ border-radius: 4px;
74
+ transition: background-color 0.2s ease 0s, color 0.2s ease 0s;
75
+ &:hover {
76
+ color: rgba(0, 0, 0, 0.88);
77
+ background-color: rgba(0, 0, 0, 0.06);
78
+ }
79
+ &.help-icon {
80
+ right: 34px;
81
+ }
82
+ }
83
+ & &-cover {
84
+ text-align: center;
85
+ padding: 45px 15px 0px;
86
+ }
87
+ & &-header {
88
+ padding: 15px 15px 8px;
89
+ }
90
+ & &-title {
91
+ font-weight: 600;
92
+ }
93
+ & &-description {
94
+ overflow-wrap: break-word;
95
+ padding: 0px 15px;
96
+ }
97
+ & &-footer {
98
+ text-align: end;
99
+ display: flex;
100
+ padding: 8px 15px 15px;
101
+ }
102
+ & &-indicators {
103
+ display: inline-block;
104
+ }
105
+ & &-indicators &-indicator {
106
+ width: 6px;
107
+ height: 6px;
108
+ display: inline-block;
109
+ border-radius: 50%;
110
+ background: rgba(0, 0, 0, 0.15);
111
+ &-active {
112
+ background: @--primary-color;
113
+ }
114
+ }
115
+ & &-indicators &-indicator:not(:last-child) {
116
+ margin-inline-end: 6px;
117
+ }
118
+ & &-buttons {
119
+ margin-inline-start: auto;
120
+ }
121
+ &-control {
122
+ position: fixed;
123
+ right: 20px;
124
+ bottom: 20px;
125
+ width: 40px;
126
+ height: 40px;
127
+ border-radius: 50%;
128
+ border: 2px solid #fff;
129
+ background: linear-gradient(to right bottom, @--primary-4, @--primary-7);
130
+ display: flex;
131
+ align-items: center;
132
+ justify-content: center;
133
+ pointer-events: auto;
134
+ cursor: pointer;
135
+ .anticon {
136
+ color: #fff;
137
+ font-size: 20px;
138
+ }
139
+ }
140
+ // =======================================
141
+ &-mask &-placeholder-animated {
142
+ transition: all 0.2s ease;
143
+ }
144
+ &-placement-bottom &-arrow {
145
+ left: 50%;
146
+ transform: translateX(-50%) translateY(-100%);
147
+ }
148
+ &-placement-top &-arrow {
149
+ left: 50%;
150
+ transform: translateX(-50%) translateY(100%) rotate(180deg);
151
+ }
152
+ &-placement-right &-arrow {
153
+ top: 50%;
154
+ transform: translateY(-50%) translateX(-100%) rotate(-90deg);
155
+ }
156
+ &-placement-left &-arrow {
157
+ top: 50%;
158
+ transform: translateY(-50%) translateX(100%) rotate(90deg);
159
+ }
160
+ // =======================================
161
+ &-primary {
162
+ .@{prefix-tour}-inner {
163
+ background-color: @--primary-color;
164
+ .@{prefix-tour}-close {
165
+ color: #fff;
166
+ }
167
+ .@{prefix-tour}-title {
168
+ color: #fff;
169
+ }
170
+ .@{prefix-tour}-indicator {
171
+ &-active {
172
+ background-color: #fff;
173
+ }
174
+ }
175
+ }
176
+ .@{prefix-tour}-arrow {
177
+ &::before,
178
+ &::after {
179
+ background-color: @--primary-color;
180
+ }
181
+ }
182
+ }
183
+ }
package/package.json CHANGED
@@ -1,139 +1,139 @@
1
- {
2
- "name": "@jiaozhiye/qm-design-react",
3
- "version": "1.8.16",
4
- "description": "A Component Library for React",
5
- "keywords": [
6
- "React",
7
- "components",
8
- "typescript"
9
- ],
10
- "author": "jiaozhiye",
11
- "license": "MIT",
12
- "scripts": {
13
- "dev": "cross-env NODE_ENV=development BABEL_ENV=web webpack serve --progress --config build/webpack.src.conf.js",
14
- "build:lib": "yarn clean:lib && yarn build:umd && yarn build:esm && yarn build:type && yarn build:locale && yarn build:theme",
15
- "build:umd": "cross-env NODE_ENV=production BABEL_ENV=lib webpack --config ./build/webpack.build.conf.js",
16
- "build:esm": "cross-env BABEL_ENV=lib rollup --config ./build/build-esm.rollup.js",
17
- "build:type": "gulp build --gulpfile ./build/build-type.gulp.js && cp-cli lib/packages lib && rimraf lib/packages",
18
- "build:locale": "cross-env BABEL_ENV=lib babel packages/locale --extensions .ts --out-dir lib/locale",
19
- "build:theme": "gulp build --gulpfile ./build/build-style.gulp.js",
20
- "clean:lib": "rimraf lib",
21
- "lint": "eslint ./packages --ext .js,.ts,.jsx,.tsx",
22
- "lint-fix": "eslint --fix ./packages --ext .js,.ts,.jsx,.tsx",
23
- "format": "prettier --write \"./packages/**/*.{js,ts,jsx,tsx}\""
24
- },
25
- "husky": {
26
- "hooks": {
27
- "pre-commit": "lint-staged"
28
- }
29
- },
30
- "lint-staged": {
31
- "packages/**/*.{js,ts,jsx,tsx}": [
32
- "npm run lint-fix",
33
- "git add"
34
- ],
35
- "packages/**/*.{less}": "prettier --write"
36
- },
37
- "publishConfig": {
38
- "registry": "https://registry.npmjs.org/"
39
- },
40
- "files": [
41
- "lib"
42
- ],
43
- "main": "lib/index.js",
44
- "module": "lib/index.esm.js",
45
- "unpkg": "lib/index.full.js",
46
- "types": "lib/index.d.ts",
47
- "style": "lib/style/index.css",
48
- "peerDependencies": {
49
- "react": ">=16.14.0",
50
- "react-dom": ">=16.14.0"
51
- },
52
- "dependencies": {
53
- "@rc-component/portal": "^1.1.2",
54
- "@rc-component/trigger": "^1.17.0",
55
- "add-dom-event-listener": "^1.1.0",
56
- "antd": "4.24.16",
57
- "axios": "^0.27.2",
58
- "big.js": "^6.2.1",
59
- "china-area-data": "^5.0.1",
60
- "classnames": "^2.3.2",
61
- "copy-to-clipboard": "^3.3.2",
62
- "cropperjs": "^1.5.12",
63
- "dayjs": "1.x",
64
- "exceljs": "^4.4.0",
65
- "localforage": "^1.10.0",
66
- "lodash-es": "^4.17.21",
67
- "memoize-one": "^6.0.0",
68
- "omit.js": "^2.0.2",
69
- "prop-types": "^15.8.1",
70
- "react-countup": "^6.4.0",
71
- "react-draggable": "^4.4.6",
72
- "react-sortablejs": "^6.1.4",
73
- "resize-observer-polyfill": "^1.5.1",
74
- "scroll-into-view-if-needed": "^2.2.31",
75
- "sortablejs": "^1.15.0"
76
- },
77
- "devDependencies": {
78
- "@babel/cli": "^7.18.6",
79
- "@babel/core": "^7.18.6",
80
- "@babel/plugin-proposal-class-properties": "^7.18.6",
81
- "@babel/plugin-proposal-decorators": "^7.18.6",
82
- "@babel/plugin-syntax-dynamic-import": "^7.8.3",
83
- "@babel/plugin-transform-runtime": "^7.18.6",
84
- "@babel/preset-env": "^7.18.6",
85
- "@babel/preset-react": "^7.18.6",
86
- "@babel/preset-typescript": "^7.18.6",
87
- "@rollup/plugin-babel": "^5.3.0",
88
- "@rollup/plugin-commonjs": "^22.0.2",
89
- "@rollup/plugin-json": "^4.1.0",
90
- "@rollup/plugin-node-resolve": "^14.1.0",
91
- "@rollup/plugin-replace": "^4.0.0",
92
- "@rollup/plugin-terser": "^0.4.4",
93
- "@rollup/plugin-typescript": "^8.5.0",
94
- "@types/lodash-es": "^4.17.6",
95
- "@types/react": "^17.0.58",
96
- "@types/react-dom": "^17.0.20",
97
- "@typescript-eslint/eslint-plugin": "^5.30.0",
98
- "@typescript-eslint/parser": "^5.30.0",
99
- "autoprefixer": "^10.4.14",
100
- "babel-loader": "^9.1.0",
101
- "core-js": "^3.32.0",
102
- "cp-cli": "^2.0.0",
103
- "cross-env": "^7.0.3",
104
- "css-loader": "^6.7.3",
105
- "eslint": "^8.40.0",
106
- "eslint-plugin-prettier": "^4.2.0",
107
- "eslint-plugin-react": "^7.32.0",
108
- "eslint-plugin-react-hooks": "^4.6.0",
109
- "eslint-webpack-plugin": "^3.2.0",
110
- "gulp": "^4.0.2",
111
- "gulp-autoprefixer": "^8.0.0",
112
- "gulp-clean-css": "^4.3.0",
113
- "gulp-ignore": "^3.0.0",
114
- "gulp-less": "^5.0.0",
115
- "gulp-rename": "^2.0.0",
116
- "gulp-typescript": "^6.0.0-alpha.1",
117
- "html-webpack-plugin": "^5.6.0",
118
- "husky": "^4.3.8",
119
- "less": "^4.2.0",
120
- "less-loader": "^11.1.4",
121
- "lint-staged": "^10.5.4",
122
- "mockjs": "^1.1.0",
123
- "prettier": "^2.8.8",
124
- "react": "17.0.2",
125
- "react-dom": "17.0.2",
126
- "rimraf": "^3.0.2",
127
- "rollup": "^2.79.1",
128
- "style-loader": "^3.3.4",
129
- "ts-loader": "^9.4.4",
130
- "typescript": "^4.9.5",
131
- "webpack": "^5.88.2",
132
- "webpack-cli": "^5.1.4",
133
- "webpack-dev-server": "^4.15.1",
134
- "webpack-node-externals": "^3.0.0"
135
- },
136
- "engines": {
137
- "node": ">= 14"
138
- }
139
- }
1
+ {
2
+ "name": "@jiaozhiye/qm-design-react",
3
+ "version": "1.8.18",
4
+ "description": "A Component Library for React",
5
+ "keywords": [
6
+ "React",
7
+ "components",
8
+ "typescript"
9
+ ],
10
+ "author": "jiaozhiye",
11
+ "license": "MIT",
12
+ "scripts": {
13
+ "dev": "cross-env NODE_ENV=development BABEL_ENV=web webpack serve --progress --config build/webpack.src.conf.js",
14
+ "build:lib": "yarn clean:lib && yarn build:umd && yarn build:esm && yarn build:type && yarn build:locale && yarn build:theme",
15
+ "build:umd": "cross-env NODE_ENV=production BABEL_ENV=lib webpack --config ./build/webpack.build.conf.js",
16
+ "build:esm": "cross-env BABEL_ENV=lib rollup --config ./build/build-esm.rollup.js",
17
+ "build:type": "gulp build --gulpfile ./build/build-type.gulp.js && cp-cli lib/packages lib && rimraf lib/packages",
18
+ "build:locale": "cross-env BABEL_ENV=lib babel packages/locale --extensions .ts --out-dir lib/locale",
19
+ "build:theme": "gulp build --gulpfile ./build/build-style.gulp.js",
20
+ "clean:lib": "rimraf lib",
21
+ "lint": "eslint ./packages --ext .js,.ts,.jsx,.tsx",
22
+ "lint-fix": "eslint --fix ./packages --ext .js,.ts,.jsx,.tsx",
23
+ "format": "prettier --write \"./packages/**/*.{js,ts,jsx,tsx}\""
24
+ },
25
+ "husky": {
26
+ "hooks": {
27
+ "pre-commit": "lint-staged"
28
+ }
29
+ },
30
+ "lint-staged": {
31
+ "packages/**/*.{js,ts,jsx,tsx}": [
32
+ "npm run lint-fix",
33
+ "git add"
34
+ ],
35
+ "packages/**/*.{less}": "prettier --write"
36
+ },
37
+ "publishConfig": {
38
+ "registry": "https://registry.npmjs.org/"
39
+ },
40
+ "files": [
41
+ "lib"
42
+ ],
43
+ "main": "lib/index.js",
44
+ "module": "lib/index.esm.js",
45
+ "unpkg": "lib/index.full.js",
46
+ "types": "lib/index.d.ts",
47
+ "style": "lib/style/index.css",
48
+ "peerDependencies": {
49
+ "react": ">=16.14.0",
50
+ "react-dom": ">=16.14.0"
51
+ },
52
+ "dependencies": {
53
+ "@rc-component/portal": "^1.1.2",
54
+ "@rc-component/trigger": "^1.17.0",
55
+ "add-dom-event-listener": "^1.1.0",
56
+ "antd": "4.24.16",
57
+ "axios": "^0.27.2",
58
+ "big.js": "^6.2.1",
59
+ "china-area-data": "^5.0.1",
60
+ "classnames": "^2.3.2",
61
+ "copy-to-clipboard": "^3.3.2",
62
+ "cropperjs": "^1.5.12",
63
+ "dayjs": "1.x",
64
+ "exceljs": "^4.4.0",
65
+ "localforage": "^1.10.0",
66
+ "lodash-es": "^4.17.21",
67
+ "memoize-one": "^6.0.0",
68
+ "omit.js": "^2.0.2",
69
+ "prop-types": "^15.8.1",
70
+ "react-countup": "^6.4.0",
71
+ "react-draggable": "^4.4.6",
72
+ "react-sortablejs": "^6.1.4",
73
+ "resize-observer-polyfill": "^1.5.1",
74
+ "scroll-into-view-if-needed": "^2.2.31",
75
+ "sortablejs": "^1.15.0"
76
+ },
77
+ "devDependencies": {
78
+ "@babel/cli": "^7.18.6",
79
+ "@babel/core": "^7.18.6",
80
+ "@babel/plugin-proposal-class-properties": "^7.18.6",
81
+ "@babel/plugin-proposal-decorators": "^7.18.6",
82
+ "@babel/plugin-syntax-dynamic-import": "^7.8.3",
83
+ "@babel/plugin-transform-runtime": "^7.18.6",
84
+ "@babel/preset-env": "^7.18.6",
85
+ "@babel/preset-react": "^7.18.6",
86
+ "@babel/preset-typescript": "^7.18.6",
87
+ "@rollup/plugin-babel": "^5.3.0",
88
+ "@rollup/plugin-commonjs": "^22.0.2",
89
+ "@rollup/plugin-json": "^4.1.0",
90
+ "@rollup/plugin-node-resolve": "^14.1.0",
91
+ "@rollup/plugin-replace": "^4.0.0",
92
+ "@rollup/plugin-terser": "^0.4.4",
93
+ "@rollup/plugin-typescript": "^8.5.0",
94
+ "@types/lodash-es": "^4.17.6",
95
+ "@types/react": "^17.0.58",
96
+ "@types/react-dom": "^17.0.20",
97
+ "@typescript-eslint/eslint-plugin": "^5.30.0",
98
+ "@typescript-eslint/parser": "^5.30.0",
99
+ "autoprefixer": "^10.4.14",
100
+ "babel-loader": "^9.1.0",
101
+ "core-js": "^3.32.0",
102
+ "cp-cli": "^2.0.0",
103
+ "cross-env": "^7.0.3",
104
+ "css-loader": "^6.7.3",
105
+ "eslint": "^8.40.0",
106
+ "eslint-plugin-prettier": "^4.2.0",
107
+ "eslint-plugin-react": "^7.32.0",
108
+ "eslint-plugin-react-hooks": "^4.6.0",
109
+ "eslint-webpack-plugin": "^3.2.0",
110
+ "gulp": "^4.0.2",
111
+ "gulp-autoprefixer": "^8.0.0",
112
+ "gulp-clean-css": "^4.3.0",
113
+ "gulp-ignore": "^3.0.0",
114
+ "gulp-less": "^5.0.0",
115
+ "gulp-rename": "^2.0.0",
116
+ "gulp-typescript": "^6.0.0-alpha.1",
117
+ "html-webpack-plugin": "^5.6.0",
118
+ "husky": "^4.3.8",
119
+ "less": "^4.2.0",
120
+ "less-loader": "^11.1.4",
121
+ "lint-staged": "^10.5.4",
122
+ "mockjs": "^1.1.0",
123
+ "prettier": "^2.8.8",
124
+ "react": "17.0.2",
125
+ "react-dom": "17.0.2",
126
+ "rimraf": "^3.0.2",
127
+ "rollup": "^2.79.1",
128
+ "style-loader": "^3.3.4",
129
+ "ts-loader": "^9.4.4",
130
+ "typescript": "^4.9.5",
131
+ "webpack": "^5.88.2",
132
+ "webpack-cli": "^5.1.4",
133
+ "webpack-dev-server": "^4.15.1",
134
+ "webpack-node-externals": "^3.0.0"
135
+ },
136
+ "engines": {
137
+ "node": ">= 14"
138
+ }
139
+ }