@eslint-react/kit 1.52.10-next.0 → 1.52.10-next.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/dist/chunk-B9dir_RE.mjs +11 -0
- package/dist/index.d.mts +85 -127
- package/dist/index.d.ts +87 -127
- package/dist/index.js +303 -187
- package/dist/index.mjs +250 -185
- package/package.json +4 -4
package/dist/index.mjs
CHANGED
|
@@ -1,219 +1,284 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { __export } from "./chunk-B9dir_RE.mjs";
|
|
2
|
+
import { dual, getOrElseUpdate } from "@eslint-react/eff";
|
|
3
|
+
import { z } from "zod/v4";
|
|
3
4
|
|
|
4
|
-
|
|
5
|
-
var __export = (target, all) => {
|
|
6
|
-
for (var name in all)
|
|
7
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
-
};
|
|
9
|
-
|
|
10
|
-
// src/JsxConfig/index.ts
|
|
11
|
-
var JsxConfig_exports = {};
|
|
12
|
-
__export(JsxConfig_exports, {
|
|
13
|
-
JsxEmit: () => JsxEmit,
|
|
14
|
-
getFromAnnotation: () => getFromAnnotation,
|
|
15
|
-
getFromContext: () => getFromContext,
|
|
16
|
-
make: () => make
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
// src/RegExp.ts
|
|
5
|
+
//#region src/RegExp.ts
|
|
20
6
|
var RegExp_exports = {};
|
|
21
7
|
__export(RegExp_exports, {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
8
|
+
ANNOTATION_JSX: () => ANNOTATION_JSX,
|
|
9
|
+
ANNOTATION_JSX_FRAG: () => ANNOTATION_JSX_FRAG,
|
|
10
|
+
ANNOTATION_JSX_IMPORT_SOURCE: () => ANNOTATION_JSX_IMPORT_SOURCE,
|
|
11
|
+
ANNOTATION_JSX_RUNTIME: () => ANNOTATION_JSX_RUNTIME,
|
|
12
|
+
CAMEL_CASE: () => CAMEL_CASE,
|
|
13
|
+
COMPONENT_NAME: () => COMPONENT_NAME,
|
|
14
|
+
COMPONENT_NAME_LOOSE: () => COMPONENT_NAME_LOOSE,
|
|
15
|
+
CONSTANT_CASE: () => CONSTANT_CASE,
|
|
16
|
+
HOOK_NAME: () => HOOK_NAME,
|
|
17
|
+
HTML_TAG: () => HTML_TAG,
|
|
18
|
+
JAVASCRIPT_PROTOCOL: () => JAVASCRIPT_PROTOCOL,
|
|
19
|
+
JS_EXT: () => JS_EXT,
|
|
20
|
+
JS_IDENTIFIER: () => JS_IDENTIFIER,
|
|
21
|
+
KEBAB_CASE: () => KEBAB_CASE,
|
|
22
|
+
PASCAL_CASE: () => PASCAL_CASE,
|
|
23
|
+
REGEXP_STR: () => REGEXP_STR,
|
|
24
|
+
SNAKE_CASE: () => SNAKE_CASE,
|
|
25
|
+
TS_EXT: () => TS_EXT,
|
|
26
|
+
isRegExp: () => isRegExp,
|
|
27
|
+
toRegExp: () => toRegExp
|
|
42
28
|
});
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
29
|
+
/**
|
|
30
|
+
* Regular expressions for matching a HTML tag name
|
|
31
|
+
*/
|
|
32
|
+
const HTML_TAG = /^[a-z][^-]*$/u;
|
|
33
|
+
/**
|
|
34
|
+
* Regular expression for matching a TypeScript file extension.
|
|
35
|
+
*/
|
|
36
|
+
const TS_EXT = /^[cm]?tsx?$/u;
|
|
37
|
+
/**
|
|
38
|
+
* Regular expression for matching a JavaScript file extension.
|
|
39
|
+
*/
|
|
40
|
+
const JS_EXT = /^[cm]?jsx?$/u;
|
|
41
|
+
/**
|
|
42
|
+
* Regular expression for matching a PascalCase string.
|
|
43
|
+
*/
|
|
44
|
+
const PASCAL_CASE = /^[A-Z][\dA-Za-z]*$/u;
|
|
45
|
+
/**
|
|
46
|
+
* Regular expression for matching a camelCase string.
|
|
47
|
+
*/
|
|
48
|
+
const CAMEL_CASE = /^[a-z][\dA-Za-z]*$/u;
|
|
49
|
+
/**
|
|
50
|
+
* Regular expression for matching a kebab-case string.
|
|
51
|
+
*/
|
|
52
|
+
const KEBAB_CASE = /^[a-z][\d\-a-z]*$/u;
|
|
53
|
+
/**
|
|
54
|
+
* Regular expression for matching a snake_case string.
|
|
55
|
+
*/
|
|
56
|
+
const SNAKE_CASE = /^[a-z][\d_a-z]*$/u;
|
|
57
|
+
/**
|
|
58
|
+
* Regular expression for matching a CONSTANT_CASE string.
|
|
59
|
+
*/
|
|
60
|
+
const CONSTANT_CASE = /^[A-Z][\d_A-Z]*$/u;
|
|
61
|
+
const JAVASCRIPT_PROTOCOL = /^[\u0000-\u001F ]*j[\t\n\r]*a[\t\n\r]*v[\t\n\r]*a[\t\n\r]*s[\t\n\r]*c[\t\n\r]*r[\t\n\r]*i[\t\n\r]*p[\t\n\r]*t[\t\n\r]*:/iu;
|
|
62
|
+
/**
|
|
63
|
+
* Regular expression for matching a valid JavaScript identifier.
|
|
64
|
+
*/
|
|
65
|
+
const JS_IDENTIFIER = /^[_$a-z][\w$]*$/i;
|
|
66
|
+
/**
|
|
67
|
+
* Regular expression for matching a RegExp string.
|
|
68
|
+
*/
|
|
69
|
+
const REGEXP_STR = /^\/(.+)\/([A-Za-z]*)$/u;
|
|
70
|
+
/**
|
|
71
|
+
* Regular expression for matching a `@jsx` annotation comment.
|
|
72
|
+
*/
|
|
73
|
+
const ANNOTATION_JSX = /@jsx\s+(\S+)/u;
|
|
74
|
+
/**
|
|
75
|
+
* Regular expression for matching a `@jsxFrag` annotation comment.
|
|
76
|
+
*/
|
|
77
|
+
const ANNOTATION_JSX_FRAG = /@jsxFrag\s+(\S+)/u;
|
|
78
|
+
/**
|
|
79
|
+
* Regular expression for matching a `@jsxRuntime` annotation comment.
|
|
80
|
+
*/
|
|
81
|
+
const ANNOTATION_JSX_RUNTIME = /@jsxRuntime\s+(\S+)/u;
|
|
82
|
+
/**
|
|
83
|
+
* Regular expression for matching a `@jsxImportSource` annotation comment.
|
|
84
|
+
*/
|
|
85
|
+
const ANNOTATION_JSX_IMPORT_SOURCE = /@jsxImportSource\s+(\S+)/u;
|
|
86
|
+
/**
|
|
87
|
+
* Regular expression for matching a React component name.
|
|
88
|
+
*/
|
|
89
|
+
const COMPONENT_NAME = /^[A-Z]/u;
|
|
90
|
+
/**
|
|
91
|
+
* Regular expression for matching a React component name (loose).
|
|
92
|
+
*/
|
|
93
|
+
const COMPONENT_NAME_LOOSE = /^_?[A-Z]/u;
|
|
94
|
+
/**
|
|
95
|
+
* Regular expression for matching a React Hook name.
|
|
96
|
+
*/
|
|
97
|
+
const HOOK_NAME = /^use/u;
|
|
98
|
+
/**
|
|
99
|
+
* Convert a string to the `RegExp`.
|
|
100
|
+
* Normal strings (e.g. `"foo"`) is converted to `/^foo$/` of `RegExp`.
|
|
101
|
+
* Strings like `"/^foo/i"` are converted to `/^foo/i` of `RegExp`.
|
|
102
|
+
* @see https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/utils/regexp.ts
|
|
103
|
+
* @param string The string to convert.
|
|
104
|
+
* @returns Returns the `RegExp`.
|
|
105
|
+
*/
|
|
61
106
|
function toRegExp(string) {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
107
|
+
const [, pattern, flags = "u"] = REGEXP_STR.exec(string) ?? [];
|
|
108
|
+
if (pattern != null) return new RegExp(pattern, flags);
|
|
109
|
+
return { test: (s) => s === string };
|
|
65
110
|
}
|
|
111
|
+
/**
|
|
112
|
+
* Checks whether given string is regexp string
|
|
113
|
+
* @param string The string to check
|
|
114
|
+
* @returns boolean
|
|
115
|
+
*/
|
|
66
116
|
function isRegExp(string) {
|
|
67
|
-
|
|
117
|
+
return REGEXP_STR.test(string);
|
|
68
118
|
}
|
|
69
119
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
120
|
+
//#endregion
|
|
121
|
+
//#region src/JsxConfig/JsxConfig.ts
|
|
122
|
+
const JsxEmit = {
|
|
123
|
+
None: 0,
|
|
124
|
+
Preserve: 1,
|
|
125
|
+
React: 2,
|
|
126
|
+
ReactNative: 3,
|
|
127
|
+
ReactJSX: 4,
|
|
128
|
+
ReactJSXDev: 5
|
|
78
129
|
};
|
|
79
|
-
|
|
80
|
-
|
|
130
|
+
/**
|
|
131
|
+
* Create a JsxConfig object
|
|
132
|
+
* @returns JsxConfig
|
|
133
|
+
*/
|
|
134
|
+
function make$2() {
|
|
135
|
+
return {};
|
|
81
136
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
137
|
+
/**
|
|
138
|
+
* Get JsxConfig from RuleContext
|
|
139
|
+
* @param context The RuleContext
|
|
140
|
+
* @returns JsxConfig
|
|
141
|
+
*/
|
|
142
|
+
function getFromContext$1(context) {
|
|
143
|
+
const options = context.sourceCode.parserServices?.program?.getCompilerOptions() ?? {};
|
|
144
|
+
return {
|
|
145
|
+
jsx: options.jsx ?? JsxEmit.ReactJSX,
|
|
146
|
+
jsxFactory: options.jsxFactory ?? "React.createElement",
|
|
147
|
+
jsxFragmentFactory: options.jsxFragmentFactory ?? "React.Fragment",
|
|
148
|
+
jsxImportSource: options.jsxImportSource ?? "react",
|
|
149
|
+
reactNamespace: options.reactNamespace ?? "React"
|
|
150
|
+
};
|
|
91
151
|
}
|
|
92
|
-
|
|
152
|
+
const cache = /* @__PURE__ */ new WeakMap();
|
|
153
|
+
/**
|
|
154
|
+
* Get JsxConfig from annotation
|
|
155
|
+
* @param context The RuleContext
|
|
156
|
+
* @returns JsxConfig
|
|
157
|
+
*/
|
|
93
158
|
function getFromAnnotation(context) {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
if (jsxImportSource != null) options.jsxImportSource = jsxImportSource;
|
|
112
|
-
return options;
|
|
113
|
-
}
|
|
114
|
-
);
|
|
159
|
+
return getOrElseUpdate(cache, context.sourceCode, () => {
|
|
160
|
+
const options = make$2();
|
|
161
|
+
if (!context.sourceCode.text.includes("@jsx")) return options;
|
|
162
|
+
let jsx, jsxFrag, jsxRuntime, jsxImportSource;
|
|
163
|
+
for (const comment of context.sourceCode.getAllComments().reverse()) {
|
|
164
|
+
const value = comment.value;
|
|
165
|
+
jsx ??= value.match(ANNOTATION_JSX)?.[1];
|
|
166
|
+
jsxFrag ??= value.match(ANNOTATION_JSX_FRAG)?.[1];
|
|
167
|
+
jsxRuntime ??= value.match(ANNOTATION_JSX_RUNTIME)?.[1];
|
|
168
|
+
jsxImportSource ??= value.match(ANNOTATION_JSX_IMPORT_SOURCE)?.[1];
|
|
169
|
+
}
|
|
170
|
+
if (jsx != null) options.jsxFactory = jsx;
|
|
171
|
+
if (jsxFrag != null) options.jsxFragmentFactory = jsxFrag;
|
|
172
|
+
if (jsxRuntime != null) options.jsx = jsxRuntime === "classic" ? JsxEmit.React : JsxEmit.ReactJSX;
|
|
173
|
+
if (jsxImportSource != null) options.jsxImportSource = jsxImportSource;
|
|
174
|
+
return options;
|
|
175
|
+
});
|
|
115
176
|
}
|
|
116
177
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
178
|
+
//#endregion
|
|
179
|
+
//#region src/JsxConfig/index.ts
|
|
180
|
+
var JsxConfig_exports = {};
|
|
181
|
+
__export(JsxConfig_exports, {
|
|
182
|
+
JsxEmit: () => JsxEmit,
|
|
183
|
+
getFromAnnotation: () => getFromAnnotation,
|
|
184
|
+
getFromContext: () => getFromContext$1,
|
|
185
|
+
make: () => make$2
|
|
124
186
|
});
|
|
125
187
|
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
188
|
+
//#endregion
|
|
189
|
+
//#region src/LanguagePreference/LanguagePreference.ts
|
|
190
|
+
/**
|
|
191
|
+
* Get a copy of the default LanguagePreference.
|
|
192
|
+
*/
|
|
193
|
+
function make$1() {
|
|
194
|
+
return {
|
|
195
|
+
indentStyle: "space",
|
|
196
|
+
indentWidth: 2,
|
|
197
|
+
jsxQuoteStyle: "double",
|
|
198
|
+
quoteStyle: "single",
|
|
199
|
+
semicolons: "always",
|
|
200
|
+
trailingCommas: "all"
|
|
201
|
+
};
|
|
136
202
|
}
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
203
|
+
/**
|
|
204
|
+
* A default LanguagePreference object.
|
|
205
|
+
*/
|
|
206
|
+
const defaultLanguagePreference = make$1();
|
|
207
|
+
function getFromContext() {
|
|
208
|
+
throw new Error("getFromContext is not implemented");
|
|
140
209
|
}
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
z.literal("asNeeded")
|
|
159
|
-
])
|
|
160
|
-
),
|
|
161
|
-
trailingCommas: z.optional(
|
|
162
|
-
z.union([
|
|
163
|
-
z.literal("all"),
|
|
164
|
-
z.literal("es5"),
|
|
165
|
-
z.literal("none")
|
|
166
|
-
])
|
|
167
|
-
),
|
|
168
|
-
// JSX specific options
|
|
169
|
-
jsxQuoteStyle: z.optional(
|
|
170
|
-
z.union([
|
|
171
|
-
z.literal("single"),
|
|
172
|
-
z.literal("double")
|
|
173
|
-
])
|
|
174
|
-
)
|
|
210
|
+
|
|
211
|
+
//#endregion
|
|
212
|
+
//#region src/LanguagePreference/LanguagePreferenceSchema.ts
|
|
213
|
+
/**
|
|
214
|
+
* @internal
|
|
215
|
+
*/
|
|
216
|
+
const LanguagePreferenceSchema = z.object({
|
|
217
|
+
indentStyle: z.optional(z.union([z.literal("tab"), z.literal("space")])),
|
|
218
|
+
indentWidth: z.optional(z.number()),
|
|
219
|
+
quoteStyle: z.optional(z.union([z.literal("single"), z.literal("double")])),
|
|
220
|
+
semicolons: z.optional(z.union([z.literal("always"), z.literal("asNeeded")])),
|
|
221
|
+
trailingCommas: z.optional(z.union([
|
|
222
|
+
z.literal("all"),
|
|
223
|
+
z.literal("es5"),
|
|
224
|
+
z.literal("none")
|
|
225
|
+
])),
|
|
226
|
+
jsxQuoteStyle: z.optional(z.union([z.literal("single"), z.literal("double")]))
|
|
175
227
|
}, {});
|
|
176
228
|
|
|
177
|
-
|
|
229
|
+
//#endregion
|
|
230
|
+
//#region src/LanguagePreference/index.ts
|
|
231
|
+
var LanguagePreference_exports = {};
|
|
232
|
+
__export(LanguagePreference_exports, {
|
|
233
|
+
LanguagePreferenceSchema: () => LanguagePreferenceSchema,
|
|
234
|
+
defaultLanguagePreference: () => defaultLanguagePreference,
|
|
235
|
+
getFromContext: () => getFromContext,
|
|
236
|
+
make: () => make$1
|
|
237
|
+
});
|
|
238
|
+
|
|
239
|
+
//#endregion
|
|
240
|
+
//#region src/Reporter.ts
|
|
178
241
|
var Reporter_exports = {};
|
|
179
242
|
__export(Reporter_exports, {
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
243
|
+
make: () => make,
|
|
244
|
+
send: () => send,
|
|
245
|
+
sendOrElse: () => sendOrElse
|
|
183
246
|
});
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
247
|
+
const send = dual(2, (context, descriptor) => {
|
|
248
|
+
if (descriptor == null) return;
|
|
249
|
+
return context.report(descriptor);
|
|
187
250
|
});
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
251
|
+
const sendOrElse = dual(3, (context, descriptor, cb) => {
|
|
252
|
+
if (descriptor == null) return cb();
|
|
253
|
+
return context.report(descriptor);
|
|
191
254
|
});
|
|
192
|
-
function
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
255
|
+
function make(context) {
|
|
256
|
+
return {
|
|
257
|
+
send: (...args) => send(context, ...args),
|
|
258
|
+
sendOrElse: (...args) => sendOrElse(context, ...args)
|
|
259
|
+
};
|
|
197
260
|
}
|
|
198
261
|
|
|
199
|
-
|
|
262
|
+
//#endregion
|
|
263
|
+
//#region src/Selector.ts
|
|
200
264
|
var Selector_exports = {};
|
|
201
265
|
__export(Selector_exports, {
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
266
|
+
DISPLAY_NAME_ASSIGNMENT_EXPRESSION: () => DISPLAY_NAME_ASSIGNMENT_EXPRESSION,
|
|
267
|
+
IMPLICIT_RETURN_ARROW_FUNCTION_EXPRESSION: () => IMPLICIT_RETURN_ARROW_FUNCTION_EXPRESSION,
|
|
268
|
+
OBJECT_DESTRUCTURING_VARIABLE_DECLARATOR: () => OBJECT_DESTRUCTURING_VARIABLE_DECLARATOR
|
|
205
269
|
});
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
270
|
+
const IMPLICIT_RETURN_ARROW_FUNCTION_EXPRESSION = "ArrowFunctionExpression[body.type!='BlockStatement']";
|
|
271
|
+
const OBJECT_DESTRUCTURING_VARIABLE_DECLARATOR = [
|
|
272
|
+
"VariableDeclarator",
|
|
273
|
+
"[id.type='ObjectPattern']",
|
|
274
|
+
"[init.type='Identifier']"
|
|
211
275
|
].join("");
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
276
|
+
const DISPLAY_NAME_ASSIGNMENT_EXPRESSION = [
|
|
277
|
+
"AssignmentExpression",
|
|
278
|
+
"[operator='=']",
|
|
279
|
+
"[left.type='MemberExpression']",
|
|
280
|
+
"[left.property.name='displayName']"
|
|
217
281
|
].join("");
|
|
218
282
|
|
|
219
|
-
|
|
283
|
+
//#endregion
|
|
284
|
+
export { JsxConfig_exports as JsxConfig, LanguagePreference_exports as LanguagePreference, RegExp_exports as RegExp, Reporter_exports as Reporter, Selector_exports as Selector };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eslint-react/kit",
|
|
3
|
-
"version": "1.52.10-next.
|
|
3
|
+
"version": "1.52.10-next.1",
|
|
4
4
|
"description": "ESLint React's plugin kit for building plugins and rules.",
|
|
5
5
|
"homepage": "https://github.com/Rel1cx/eslint-react",
|
|
6
6
|
"bugs": {
|
|
@@ -38,11 +38,11 @@
|
|
|
38
38
|
"@typescript-eslint/utils": "^8.41.0",
|
|
39
39
|
"ts-pattern": "^5.8.0",
|
|
40
40
|
"zod": "^4.1.5",
|
|
41
|
-
"@eslint-react/eff": "1.52.10-next.
|
|
41
|
+
"@eslint-react/eff": "1.52.10-next.1"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"@tsconfig/node22": "^22.0.2",
|
|
45
|
-
"
|
|
45
|
+
"tsdown": "^0.14.2",
|
|
46
46
|
"type-fest": "^4.41.0",
|
|
47
47
|
"@local/configs": "0.0.0"
|
|
48
48
|
},
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
"node": ">=18.18.0"
|
|
51
51
|
},
|
|
52
52
|
"scripts": {
|
|
53
|
-
"build": "
|
|
53
|
+
"build": "tsdown",
|
|
54
54
|
"build:docs": "typedoc",
|
|
55
55
|
"lint:publish": "publint",
|
|
56
56
|
"lint:ts": "tsc --noEmit"
|