@eslint-react/eslint-plugin 1.10.2-next.2 → 1.11.0-beta.4
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/README.md +12 -34
- package/dist/index.d.mts +467 -413
- package/dist/index.d.ts +467 -413
- package/dist/index.js +43 -25
- package/dist/index.mjs +43 -26
- package/package.json +10 -9
package/dist/index.js
CHANGED
|
@@ -6,6 +6,7 @@ var reactDebug = require('eslint-plugin-react-debug');
|
|
|
6
6
|
var reactDom = require('eslint-plugin-react-dom');
|
|
7
7
|
var reactHooksExtra = require('eslint-plugin-react-hooks-extra');
|
|
8
8
|
var reactNamingConvention = require('eslint-plugin-react-naming-convention');
|
|
9
|
+
var reactWebApi = require('eslint-plugin-react-web-api');
|
|
9
10
|
var react = require('eslint-plugin-react-x');
|
|
10
11
|
|
|
11
12
|
function _interopNamespace(e) {
|
|
@@ -30,13 +31,14 @@ var reactDebug__namespace = /*#__PURE__*/_interopNamespace(reactDebug);
|
|
|
30
31
|
var reactDom__namespace = /*#__PURE__*/_interopNamespace(reactDom);
|
|
31
32
|
var reactHooksExtra__namespace = /*#__PURE__*/_interopNamespace(reactHooksExtra);
|
|
32
33
|
var reactNamingConvention__namespace = /*#__PURE__*/_interopNamespace(reactNamingConvention);
|
|
34
|
+
var reactWebApi__namespace = /*#__PURE__*/_interopNamespace(reactWebApi);
|
|
33
35
|
var react__namespace = /*#__PURE__*/_interopNamespace(react);
|
|
34
36
|
|
|
35
37
|
// src/index.ts
|
|
36
38
|
|
|
37
39
|
// package.json
|
|
38
40
|
var name = "@eslint-react/eslint-plugin";
|
|
39
|
-
var version = "1.
|
|
41
|
+
var version = "1.11.0-beta.4";
|
|
40
42
|
function transformKeys(obj, transform) {
|
|
41
43
|
if (tools.typeOf(obj) !== "object") return obj;
|
|
42
44
|
const res = {};
|
|
@@ -53,6 +55,7 @@ function padKeysLeft(obj, left) {
|
|
|
53
55
|
|
|
54
56
|
// src/index.ts
|
|
55
57
|
var allPreset = {
|
|
58
|
+
// Part: Core
|
|
56
59
|
"avoid-shorthand-boolean": "warn",
|
|
57
60
|
"avoid-shorthand-fragment": "warn",
|
|
58
61
|
"ensure-forward-ref-using-ref": "warn",
|
|
@@ -98,7 +101,7 @@ var allPreset = {
|
|
|
98
101
|
// "prefer-read-only-props": "warn", // This rule requires type information
|
|
99
102
|
"prefer-shorthand-boolean": "warn",
|
|
100
103
|
"prefer-shorthand-fragment": "warn",
|
|
101
|
-
//
|
|
104
|
+
// Part: DOM
|
|
102
105
|
"dom/no-children-in-void-dom-elements": "warn",
|
|
103
106
|
"dom/no-dangerously-set-innerhtml": "warn",
|
|
104
107
|
"dom/no-dangerously-set-innerhtml-with-children": "error",
|
|
@@ -110,6 +113,9 @@ var allPreset = {
|
|
|
110
113
|
"dom/no-script-url": "warn",
|
|
111
114
|
"dom/no-unsafe-iframe-sandbox": "warn",
|
|
112
115
|
"dom/no-unsafe-target-blank": "warn",
|
|
116
|
+
// Part: Web API
|
|
117
|
+
"web-api/no-leaked-event-listener": "warn",
|
|
118
|
+
// Part: Hooks Extra
|
|
113
119
|
"hooks-extra/ensure-custom-hooks-using-other-hooks": "warn",
|
|
114
120
|
"hooks-extra/ensure-use-callback-has-non-empty-deps": "warn",
|
|
115
121
|
"hooks-extra/ensure-use-memo-has-non-empty-deps": "warn",
|
|
@@ -181,9 +187,13 @@ var domPreset = {
|
|
|
181
187
|
"dom/no-unsafe-iframe-sandbox": "warn",
|
|
182
188
|
"dom/no-unsafe-target-blank": "warn"
|
|
183
189
|
};
|
|
190
|
+
var webApiPreset = {
|
|
191
|
+
"web-api/no-leaked-event-listener": "warn"
|
|
192
|
+
};
|
|
184
193
|
var recommendedPreset = {
|
|
185
194
|
...corePreset,
|
|
186
|
-
...domPreset
|
|
195
|
+
...domPreset,
|
|
196
|
+
...webApiPreset
|
|
187
197
|
};
|
|
188
198
|
var recommendedTypeCheckedPreset = {
|
|
189
199
|
...recommendedPreset,
|
|
@@ -198,9 +208,13 @@ var debugPreset = {
|
|
|
198
208
|
"debug/function-component": "warn",
|
|
199
209
|
"debug/react-hooks": "warn"
|
|
200
210
|
};
|
|
211
|
+
var disableDomPreset = tools.fromEntries(tools.entries(domPreset).map(([key]) => [key, "off"]));
|
|
212
|
+
var disableWebApiPreset = tools.fromEntries(tools.entries(webApiPreset).map(([key]) => [key, "off"]));
|
|
201
213
|
var allPresetEntries = tools.entries(allPreset);
|
|
202
|
-
var offPreset =
|
|
203
|
-
|
|
214
|
+
var offPreset = {
|
|
215
|
+
...tools.fromEntries(allPresetEntries.map(([key]) => [key, "off"])),
|
|
216
|
+
...disableTypeCheckedPreset
|
|
217
|
+
};
|
|
204
218
|
var corePresetSettings = {
|
|
205
219
|
...shared.DEFAULT_ESLINT_REACT_SETTINGS
|
|
206
220
|
};
|
|
@@ -225,21 +239,22 @@ var flatConfigPlugins = {
|
|
|
225
239
|
"@eslint-react/debug": reactDebug__namespace,
|
|
226
240
|
"@eslint-react/dom": reactDom__namespace,
|
|
227
241
|
"@eslint-react/hooks-extra": reactHooksExtra__namespace,
|
|
228
|
-
"@eslint-react/naming-convention": reactNamingConvention__namespace
|
|
242
|
+
"@eslint-react/naming-convention": reactNamingConvention__namespace,
|
|
243
|
+
"@eslint-react/web-api": reactWebApi__namespace
|
|
229
244
|
};
|
|
230
|
-
function createLegacyConfig(
|
|
245
|
+
function createLegacyConfig(rules7, settings = shared.DEFAULT_ESLINT_REACT_SETTINGS) {
|
|
231
246
|
return {
|
|
232
247
|
plugins: legacyConfigPlugins,
|
|
233
|
-
rules: padKeysLeft(
|
|
248
|
+
rules: padKeysLeft(rules7, "@eslint-react/"),
|
|
234
249
|
settings: {
|
|
235
250
|
"react-x": settings
|
|
236
251
|
}
|
|
237
252
|
};
|
|
238
253
|
}
|
|
239
|
-
function createFlatConfig(
|
|
254
|
+
function createFlatConfig(rules7, settings = shared.DEFAULT_ESLINT_REACT_SETTINGS) {
|
|
240
255
|
return {
|
|
241
256
|
plugins: flatConfigPlugins,
|
|
242
|
-
rules: padKeysLeft(
|
|
257
|
+
rules: padKeysLeft(rules7, "@eslint-react/"),
|
|
243
258
|
settings: {
|
|
244
259
|
"react-x": settings
|
|
245
260
|
}
|
|
@@ -251,37 +266,40 @@ var src_default = {
|
|
|
251
266
|
version
|
|
252
267
|
},
|
|
253
268
|
configs: {
|
|
254
|
-
|
|
255
|
-
["all-legacy"]: createLegacyConfig(allPreset),
|
|
269
|
+
/* eslint-disable perfectionist/sort-objects */
|
|
256
270
|
["core"]: createFlatConfig(corePreset, corePresetSettings),
|
|
257
271
|
["core-legacy"]: createLegacyConfig(corePreset, corePresetSettings),
|
|
258
272
|
["debug"]: createFlatConfig(debugPreset),
|
|
259
273
|
["debug-legacy"]: createLegacyConfig(debugPreset),
|
|
260
274
|
["dom"]: createFlatConfig(domPreset, domPresetSettings),
|
|
261
275
|
["dom-legacy"]: createLegacyConfig(domPreset),
|
|
262
|
-
["off"]: createFlatConfig(offPreset),
|
|
263
|
-
/**
|
|
264
|
-
* @deprecated Use `disable-dom` instead
|
|
265
|
-
*/
|
|
266
|
-
["off-dom"]: createFlatConfig(offDomPreset),
|
|
267
|
-
/**
|
|
268
|
-
* @deprecated Use `disable-dom-legacy` instead
|
|
269
|
-
*/
|
|
270
|
-
["off-dom-legacy"]: createLegacyConfig(offDomPreset),
|
|
271
|
-
["off-legacy"]: createLegacyConfig(offPreset),
|
|
272
276
|
["recommended"]: createFlatConfig(recommendedPreset),
|
|
273
277
|
["recommended-legacy"]: createLegacyConfig(recommendedPreset),
|
|
274
278
|
["recommended-type-checked"]: createFlatConfig(recommendedTypeCheckedPreset),
|
|
275
279
|
["recommended-type-checked-legacy"]: createLegacyConfig(recommendedTypeCheckedPreset),
|
|
276
280
|
// Part: disable presets
|
|
277
|
-
["disable-dom"]: createFlatConfig(
|
|
278
|
-
["disable-dom-legacy"]: createLegacyConfig(
|
|
281
|
+
["disable-dom"]: createFlatConfig(disableDomPreset),
|
|
282
|
+
["disable-dom-legacy"]: createLegacyConfig(disableDomPreset),
|
|
283
|
+
["disable-web-api"]: createFlatConfig(disableWebApiPreset),
|
|
284
|
+
["disable-web-api-legacy"]: createLegacyConfig(disableWebApiPreset),
|
|
279
285
|
["disable-type-checked"]: createFlatConfig(disableTypeCheckedPreset),
|
|
280
|
-
["disable-type-checked-legacy"]: createLegacyConfig(disableTypeCheckedPreset)
|
|
286
|
+
["disable-type-checked-legacy"]: createLegacyConfig(disableTypeCheckedPreset),
|
|
287
|
+
// Part: all or off presets
|
|
288
|
+
["all"]: createFlatConfig(allPreset),
|
|
289
|
+
["all-legacy"]: createLegacyConfig(allPreset),
|
|
290
|
+
["off"]: createFlatConfig(offPreset),
|
|
291
|
+
["off-legacy"]: createLegacyConfig(offPreset),
|
|
292
|
+
// Part: deprecated presets
|
|
293
|
+
/** @deprecated Use `disable-dom` instead */
|
|
294
|
+
["off-dom"]: createFlatConfig(disableDomPreset),
|
|
295
|
+
/** @deprecated Use `disable-dom-legacy` instead */
|
|
296
|
+
["off-dom-legacy"]: createLegacyConfig(disableDomPreset)
|
|
297
|
+
/* eslint-enable perfectionist/sort-objects */
|
|
281
298
|
},
|
|
282
299
|
rules: {
|
|
283
300
|
...react__namespace.rules,
|
|
284
301
|
...padKeysLeft(reactDom__namespace.rules, "dom/"),
|
|
302
|
+
...padKeysLeft(reactWebApi__namespace.rules, "web-api/"),
|
|
285
303
|
...padKeysLeft(reactHooksExtra__namespace.rules, "hooks-extra/"),
|
|
286
304
|
...padKeysLeft(reactNamingConvention__namespace.rules, "naming-convention/"),
|
|
287
305
|
...padKeysLeft(reactDebug__namespace.rules, "debug/")
|
package/dist/index.mjs
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import { DEFAULT_ESLINT_REACT_SETTINGS } from '@eslint-react/shared';
|
|
2
|
-
import {
|
|
2
|
+
import { fromEntries, entries, typeOf } from '@eslint-react/tools';
|
|
3
3
|
import * as reactDebug from 'eslint-plugin-react-debug';
|
|
4
4
|
import * as reactDom from 'eslint-plugin-react-dom';
|
|
5
5
|
import * as reactHooksExtra from 'eslint-plugin-react-hooks-extra';
|
|
6
6
|
import * as reactNamingConvention from 'eslint-plugin-react-naming-convention';
|
|
7
|
+
import * as reactWebApi from 'eslint-plugin-react-web-api';
|
|
7
8
|
import * as react from 'eslint-plugin-react-x';
|
|
8
9
|
|
|
9
10
|
// src/index.ts
|
|
10
11
|
|
|
11
12
|
// package.json
|
|
12
13
|
var name = "@eslint-react/eslint-plugin";
|
|
13
|
-
var version = "1.
|
|
14
|
+
var version = "1.11.0-beta.4";
|
|
14
15
|
function transformKeys(obj, transform) {
|
|
15
16
|
if (typeOf(obj) !== "object") return obj;
|
|
16
17
|
const res = {};
|
|
@@ -27,6 +28,7 @@ function padKeysLeft(obj, left) {
|
|
|
27
28
|
|
|
28
29
|
// src/index.ts
|
|
29
30
|
var allPreset = {
|
|
31
|
+
// Part: Core
|
|
30
32
|
"avoid-shorthand-boolean": "warn",
|
|
31
33
|
"avoid-shorthand-fragment": "warn",
|
|
32
34
|
"ensure-forward-ref-using-ref": "warn",
|
|
@@ -72,7 +74,7 @@ var allPreset = {
|
|
|
72
74
|
// "prefer-read-only-props": "warn", // This rule requires type information
|
|
73
75
|
"prefer-shorthand-boolean": "warn",
|
|
74
76
|
"prefer-shorthand-fragment": "warn",
|
|
75
|
-
//
|
|
77
|
+
// Part: DOM
|
|
76
78
|
"dom/no-children-in-void-dom-elements": "warn",
|
|
77
79
|
"dom/no-dangerously-set-innerhtml": "warn",
|
|
78
80
|
"dom/no-dangerously-set-innerhtml-with-children": "error",
|
|
@@ -84,6 +86,9 @@ var allPreset = {
|
|
|
84
86
|
"dom/no-script-url": "warn",
|
|
85
87
|
"dom/no-unsafe-iframe-sandbox": "warn",
|
|
86
88
|
"dom/no-unsafe-target-blank": "warn",
|
|
89
|
+
// Part: Web API
|
|
90
|
+
"web-api/no-leaked-event-listener": "warn",
|
|
91
|
+
// Part: Hooks Extra
|
|
87
92
|
"hooks-extra/ensure-custom-hooks-using-other-hooks": "warn",
|
|
88
93
|
"hooks-extra/ensure-use-callback-has-non-empty-deps": "warn",
|
|
89
94
|
"hooks-extra/ensure-use-memo-has-non-empty-deps": "warn",
|
|
@@ -155,9 +160,13 @@ var domPreset = {
|
|
|
155
160
|
"dom/no-unsafe-iframe-sandbox": "warn",
|
|
156
161
|
"dom/no-unsafe-target-blank": "warn"
|
|
157
162
|
};
|
|
163
|
+
var webApiPreset = {
|
|
164
|
+
"web-api/no-leaked-event-listener": "warn"
|
|
165
|
+
};
|
|
158
166
|
var recommendedPreset = {
|
|
159
167
|
...corePreset,
|
|
160
|
-
...domPreset
|
|
168
|
+
...domPreset,
|
|
169
|
+
...webApiPreset
|
|
161
170
|
};
|
|
162
171
|
var recommendedTypeCheckedPreset = {
|
|
163
172
|
...recommendedPreset,
|
|
@@ -172,9 +181,13 @@ var debugPreset = {
|
|
|
172
181
|
"debug/function-component": "warn",
|
|
173
182
|
"debug/react-hooks": "warn"
|
|
174
183
|
};
|
|
184
|
+
var disableDomPreset = fromEntries(entries(domPreset).map(([key]) => [key, "off"]));
|
|
185
|
+
var disableWebApiPreset = fromEntries(entries(webApiPreset).map(([key]) => [key, "off"]));
|
|
175
186
|
var allPresetEntries = entries(allPreset);
|
|
176
|
-
var offPreset =
|
|
177
|
-
|
|
187
|
+
var offPreset = {
|
|
188
|
+
...fromEntries(allPresetEntries.map(([key]) => [key, "off"])),
|
|
189
|
+
...disableTypeCheckedPreset
|
|
190
|
+
};
|
|
178
191
|
var corePresetSettings = {
|
|
179
192
|
...DEFAULT_ESLINT_REACT_SETTINGS
|
|
180
193
|
};
|
|
@@ -199,21 +212,22 @@ var flatConfigPlugins = {
|
|
|
199
212
|
"@eslint-react/debug": reactDebug,
|
|
200
213
|
"@eslint-react/dom": reactDom,
|
|
201
214
|
"@eslint-react/hooks-extra": reactHooksExtra,
|
|
202
|
-
"@eslint-react/naming-convention": reactNamingConvention
|
|
215
|
+
"@eslint-react/naming-convention": reactNamingConvention,
|
|
216
|
+
"@eslint-react/web-api": reactWebApi
|
|
203
217
|
};
|
|
204
|
-
function createLegacyConfig(
|
|
218
|
+
function createLegacyConfig(rules7, settings = DEFAULT_ESLINT_REACT_SETTINGS) {
|
|
205
219
|
return {
|
|
206
220
|
plugins: legacyConfigPlugins,
|
|
207
|
-
rules: padKeysLeft(
|
|
221
|
+
rules: padKeysLeft(rules7, "@eslint-react/"),
|
|
208
222
|
settings: {
|
|
209
223
|
"react-x": settings
|
|
210
224
|
}
|
|
211
225
|
};
|
|
212
226
|
}
|
|
213
|
-
function createFlatConfig(
|
|
227
|
+
function createFlatConfig(rules7, settings = DEFAULT_ESLINT_REACT_SETTINGS) {
|
|
214
228
|
return {
|
|
215
229
|
plugins: flatConfigPlugins,
|
|
216
|
-
rules: padKeysLeft(
|
|
230
|
+
rules: padKeysLeft(rules7, "@eslint-react/"),
|
|
217
231
|
settings: {
|
|
218
232
|
"react-x": settings
|
|
219
233
|
}
|
|
@@ -225,37 +239,40 @@ var src_default = {
|
|
|
225
239
|
version
|
|
226
240
|
},
|
|
227
241
|
configs: {
|
|
228
|
-
|
|
229
|
-
["all-legacy"]: createLegacyConfig(allPreset),
|
|
242
|
+
/* eslint-disable perfectionist/sort-objects */
|
|
230
243
|
["core"]: createFlatConfig(corePreset, corePresetSettings),
|
|
231
244
|
["core-legacy"]: createLegacyConfig(corePreset, corePresetSettings),
|
|
232
245
|
["debug"]: createFlatConfig(debugPreset),
|
|
233
246
|
["debug-legacy"]: createLegacyConfig(debugPreset),
|
|
234
247
|
["dom"]: createFlatConfig(domPreset, domPresetSettings),
|
|
235
248
|
["dom-legacy"]: createLegacyConfig(domPreset),
|
|
236
|
-
["off"]: createFlatConfig(offPreset),
|
|
237
|
-
/**
|
|
238
|
-
* @deprecated Use `disable-dom` instead
|
|
239
|
-
*/
|
|
240
|
-
["off-dom"]: createFlatConfig(offDomPreset),
|
|
241
|
-
/**
|
|
242
|
-
* @deprecated Use `disable-dom-legacy` instead
|
|
243
|
-
*/
|
|
244
|
-
["off-dom-legacy"]: createLegacyConfig(offDomPreset),
|
|
245
|
-
["off-legacy"]: createLegacyConfig(offPreset),
|
|
246
249
|
["recommended"]: createFlatConfig(recommendedPreset),
|
|
247
250
|
["recommended-legacy"]: createLegacyConfig(recommendedPreset),
|
|
248
251
|
["recommended-type-checked"]: createFlatConfig(recommendedTypeCheckedPreset),
|
|
249
252
|
["recommended-type-checked-legacy"]: createLegacyConfig(recommendedTypeCheckedPreset),
|
|
250
253
|
// Part: disable presets
|
|
251
|
-
["disable-dom"]: createFlatConfig(
|
|
252
|
-
["disable-dom-legacy"]: createLegacyConfig(
|
|
254
|
+
["disable-dom"]: createFlatConfig(disableDomPreset),
|
|
255
|
+
["disable-dom-legacy"]: createLegacyConfig(disableDomPreset),
|
|
256
|
+
["disable-web-api"]: createFlatConfig(disableWebApiPreset),
|
|
257
|
+
["disable-web-api-legacy"]: createLegacyConfig(disableWebApiPreset),
|
|
253
258
|
["disable-type-checked"]: createFlatConfig(disableTypeCheckedPreset),
|
|
254
|
-
["disable-type-checked-legacy"]: createLegacyConfig(disableTypeCheckedPreset)
|
|
259
|
+
["disable-type-checked-legacy"]: createLegacyConfig(disableTypeCheckedPreset),
|
|
260
|
+
// Part: all or off presets
|
|
261
|
+
["all"]: createFlatConfig(allPreset),
|
|
262
|
+
["all-legacy"]: createLegacyConfig(allPreset),
|
|
263
|
+
["off"]: createFlatConfig(offPreset),
|
|
264
|
+
["off-legacy"]: createLegacyConfig(offPreset),
|
|
265
|
+
// Part: deprecated presets
|
|
266
|
+
/** @deprecated Use `disable-dom` instead */
|
|
267
|
+
["off-dom"]: createFlatConfig(disableDomPreset),
|
|
268
|
+
/** @deprecated Use `disable-dom-legacy` instead */
|
|
269
|
+
["off-dom-legacy"]: createLegacyConfig(disableDomPreset)
|
|
270
|
+
/* eslint-enable perfectionist/sort-objects */
|
|
255
271
|
},
|
|
256
272
|
rules: {
|
|
257
273
|
...react.rules,
|
|
258
274
|
...padKeysLeft(reactDom.rules, "dom/"),
|
|
275
|
+
...padKeysLeft(reactWebApi.rules, "web-api/"),
|
|
259
276
|
...padKeysLeft(reactHooksExtra.rules, "hooks-extra/"),
|
|
260
277
|
...padKeysLeft(reactNamingConvention.rules, "naming-convention/"),
|
|
261
278
|
...padKeysLeft(reactDebug.rules, "debug/")
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eslint-react/eslint-plugin",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.11.0-beta.4",
|
|
4
4
|
"description": "The main ESLint plugin of ESLint React. Contains all the rules and presets of ESLint React.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"eslint",
|
|
@@ -47,14 +47,15 @@
|
|
|
47
47
|
"@typescript-eslint/type-utils": "^8.1.0",
|
|
48
48
|
"@typescript-eslint/types": "^8.1.0",
|
|
49
49
|
"@typescript-eslint/utils": "^8.1.0",
|
|
50
|
-
"@eslint-react/shared": "1.
|
|
51
|
-
"@eslint-react/tools": "1.
|
|
52
|
-
"@eslint-react/types": "1.
|
|
53
|
-
"eslint-plugin-react-
|
|
54
|
-
"eslint-plugin-react-
|
|
55
|
-
"eslint-plugin-react-
|
|
56
|
-
"eslint-plugin-react-
|
|
57
|
-
"eslint-plugin-react-
|
|
50
|
+
"@eslint-react/shared": "1.11.0-beta.4",
|
|
51
|
+
"@eslint-react/tools": "1.11.0-beta.4",
|
|
52
|
+
"@eslint-react/types": "1.11.0-beta.4",
|
|
53
|
+
"eslint-plugin-react-debug": "1.11.0-beta.4",
|
|
54
|
+
"eslint-plugin-react-dom": "1.11.0-beta.4",
|
|
55
|
+
"eslint-plugin-react-hooks-extra": "1.11.0-beta.4",
|
|
56
|
+
"eslint-plugin-react-naming-convention": "1.11.0-beta.4",
|
|
57
|
+
"eslint-plugin-react-web-api": "1.11.0-beta.4",
|
|
58
|
+
"eslint-plugin-react-x": "1.11.0-beta.4"
|
|
58
59
|
},
|
|
59
60
|
"devDependencies": {
|
|
60
61
|
"tsup": "^8.2.4"
|