@eslint-react/kit 1.45.4-next.2 → 1.45.4-next.5

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/index.d.mts CHANGED
@@ -1,8 +1,7 @@
1
1
  import * as tseslint from '@typescript-eslint/utils/ts-eslint';
2
2
  import { ReportDescriptor } from '@typescript-eslint/utils/ts-eslint';
3
3
  import { CompilerOptions, JsxEmit } from 'typescript';
4
- import * as valibot from 'valibot';
5
- import { InferOutput } from 'valibot';
4
+ import * as z from '@zod/mini';
6
5
  import { _ } from '@eslint-react/eff';
7
6
  import { TSESTree } from '@typescript-eslint/utils';
8
7
 
@@ -67,30 +66,19 @@ declare namespace index$1 {
67
66
  /**
68
67
  * @internal
69
68
  */
70
- declare const LanguagePreferenceSchema: valibot.ObjectSchema<{
71
- readonly indentStyle: valibot.OptionalSchema<valibot.UnionSchema<[valibot.LiteralSchema<"tab", undefined>, valibot.LiteralSchema<"space", undefined>], undefined>, "space">;
72
- readonly indentWidth: valibot.OptionalSchema<valibot.NumberSchema<undefined>, 2>;
73
- readonly quoteStyle: valibot.OptionalSchema<valibot.UnionSchema<[valibot.LiteralSchema<"single", undefined>, valibot.LiteralSchema<"double", undefined>], undefined>, "single">;
74
- readonly semicolons: valibot.OptionalSchema<valibot.UnionSchema<[valibot.LiteralSchema<"always", undefined>, valibot.LiteralSchema<"asNeeded", undefined>], undefined>, "always">;
75
- readonly trailingCommas: valibot.OptionalSchema<valibot.UnionSchema<[valibot.LiteralSchema<"all", undefined>, valibot.LiteralSchema<"es5", undefined>, valibot.LiteralSchema<"none", undefined>], undefined>, "all">;
76
- readonly jsxQuoteStyle: valibot.OptionalSchema<valibot.UnionSchema<[valibot.LiteralSchema<"single", undefined>, valibot.LiteralSchema<"double", undefined>], undefined>, "double">;
77
- }, undefined>;
69
+ declare const LanguagePreferenceSchema: z.ZodMiniObject<{
70
+ indentStyle: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniLiteral<"tab">, z.ZodMiniLiteral<"space">]>>;
71
+ indentWidth: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
72
+ quoteStyle: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniLiteral<"single">, z.ZodMiniLiteral<"double">]>>;
73
+ semicolons: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniLiteral<"always">, z.ZodMiniLiteral<"asNeeded">]>>;
74
+ trailingCommas: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniLiteral<"all">, z.ZodMiniLiteral<"es5">, z.ZodMiniLiteral<"none">]>>;
75
+ jsxQuoteStyle: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniLiteral<"single">, z.ZodMiniLiteral<"double">]>>;
76
+ }, {}>;
78
77
 
79
78
  /**
80
79
  * @internal
81
80
  */
82
- type LanguagePreference = InferOutput<typeof LanguagePreferenceSchema>;
83
- /**
84
- * The default language preference.
85
- */
86
- declare const DEFAULT_LANGUAGE_PREFERENCE: {
87
- readonly indentStyle: "space";
88
- readonly indentWidth: 2;
89
- readonly jsxQuoteStyle: "double";
90
- readonly quoteStyle: "single";
91
- readonly semicolons: "always";
92
- readonly trailingCommas: "all";
93
- };
81
+ type LanguagePreference = z.infer<typeof LanguagePreferenceSchema>;
94
82
  /**
95
83
  * Get a copy of the default LanguagePreference.
96
84
  */
@@ -101,12 +89,11 @@ declare module "@typescript-eslint/utils/ts-eslint" {
101
89
  }
102
90
  }
103
91
 
104
- declare const index_DEFAULT_LANGUAGE_PREFERENCE: typeof DEFAULT_LANGUAGE_PREFERENCE;
105
92
  type index_LanguagePreference = LanguagePreference;
106
93
  declare const index_LanguagePreferenceSchema: typeof LanguagePreferenceSchema;
107
94
  declare const index_getFromContext: typeof getFromContext;
108
95
  declare namespace index {
109
- export { index_DEFAULT_LANGUAGE_PREFERENCE as DEFAULT_LANGUAGE_PREFERENCE, type index_LanguagePreference as LanguagePreference, index_LanguagePreferenceSchema as LanguagePreferenceSchema, index_getFromContext as getFromContext, make$1 as make };
96
+ export { type index_LanguagePreference as LanguagePreference, index_LanguagePreferenceSchema as LanguagePreferenceSchema, index_getFromContext as getFromContext, make$1 as make };
110
97
  }
111
98
 
112
99
  /**
package/dist/index.d.ts CHANGED
@@ -1,8 +1,7 @@
1
1
  import * as tseslint from '@typescript-eslint/utils/ts-eslint';
2
2
  import { ReportDescriptor } from '@typescript-eslint/utils/ts-eslint';
3
3
  import { CompilerOptions, JsxEmit } from 'typescript';
4
- import * as valibot from 'valibot';
5
- import { InferOutput } from 'valibot';
4
+ import * as z from '@zod/mini';
6
5
  import { _ } from '@eslint-react/eff';
7
6
  import { TSESTree } from '@typescript-eslint/utils';
8
7
 
@@ -67,30 +66,19 @@ declare namespace index$1 {
67
66
  /**
68
67
  * @internal
69
68
  */
70
- declare const LanguagePreferenceSchema: valibot.ObjectSchema<{
71
- readonly indentStyle: valibot.OptionalSchema<valibot.UnionSchema<[valibot.LiteralSchema<"tab", undefined>, valibot.LiteralSchema<"space", undefined>], undefined>, "space">;
72
- readonly indentWidth: valibot.OptionalSchema<valibot.NumberSchema<undefined>, 2>;
73
- readonly quoteStyle: valibot.OptionalSchema<valibot.UnionSchema<[valibot.LiteralSchema<"single", undefined>, valibot.LiteralSchema<"double", undefined>], undefined>, "single">;
74
- readonly semicolons: valibot.OptionalSchema<valibot.UnionSchema<[valibot.LiteralSchema<"always", undefined>, valibot.LiteralSchema<"asNeeded", undefined>], undefined>, "always">;
75
- readonly trailingCommas: valibot.OptionalSchema<valibot.UnionSchema<[valibot.LiteralSchema<"all", undefined>, valibot.LiteralSchema<"es5", undefined>, valibot.LiteralSchema<"none", undefined>], undefined>, "all">;
76
- readonly jsxQuoteStyle: valibot.OptionalSchema<valibot.UnionSchema<[valibot.LiteralSchema<"single", undefined>, valibot.LiteralSchema<"double", undefined>], undefined>, "double">;
77
- }, undefined>;
69
+ declare const LanguagePreferenceSchema: z.ZodMiniObject<{
70
+ indentStyle: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniLiteral<"tab">, z.ZodMiniLiteral<"space">]>>;
71
+ indentWidth: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
72
+ quoteStyle: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniLiteral<"single">, z.ZodMiniLiteral<"double">]>>;
73
+ semicolons: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniLiteral<"always">, z.ZodMiniLiteral<"asNeeded">]>>;
74
+ trailingCommas: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniLiteral<"all">, z.ZodMiniLiteral<"es5">, z.ZodMiniLiteral<"none">]>>;
75
+ jsxQuoteStyle: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniLiteral<"single">, z.ZodMiniLiteral<"double">]>>;
76
+ }, {}>;
78
77
 
79
78
  /**
80
79
  * @internal
81
80
  */
82
- type LanguagePreference = InferOutput<typeof LanguagePreferenceSchema>;
83
- /**
84
- * The default language preference.
85
- */
86
- declare const DEFAULT_LANGUAGE_PREFERENCE: {
87
- readonly indentStyle: "space";
88
- readonly indentWidth: 2;
89
- readonly jsxQuoteStyle: "double";
90
- readonly quoteStyle: "single";
91
- readonly semicolons: "always";
92
- readonly trailingCommas: "all";
93
- };
81
+ type LanguagePreference = z.infer<typeof LanguagePreferenceSchema>;
94
82
  /**
95
83
  * Get a copy of the default LanguagePreference.
96
84
  */
@@ -101,12 +89,11 @@ declare module "@typescript-eslint/utils/ts-eslint" {
101
89
  }
102
90
  }
103
91
 
104
- declare const index_DEFAULT_LANGUAGE_PREFERENCE: typeof DEFAULT_LANGUAGE_PREFERENCE;
105
92
  type index_LanguagePreference = LanguagePreference;
106
93
  declare const index_LanguagePreferenceSchema: typeof LanguagePreferenceSchema;
107
94
  declare const index_getFromContext: typeof getFromContext;
108
95
  declare namespace index {
109
- export { index_DEFAULT_LANGUAGE_PREFERENCE as DEFAULT_LANGUAGE_PREFERENCE, type index_LanguagePreference as LanguagePreference, index_LanguagePreferenceSchema as LanguagePreferenceSchema, index_getFromContext as getFromContext, make$1 as make };
96
+ export { type index_LanguagePreference as LanguagePreference, index_LanguagePreferenceSchema as LanguagePreferenceSchema, index_getFromContext as getFromContext, make$1 as make };
110
97
  }
111
98
 
112
99
  /**
package/dist/index.js CHANGED
@@ -1,8 +1,28 @@
1
1
  'use strict';
2
2
 
3
+ var eff = require('@eslint-react/eff');
3
4
  var typescript = require('typescript');
4
- var valibot = require('valibot');
5
- require('@eslint-react/eff');
5
+ var z = require('@zod/mini');
6
+
7
+ function _interopNamespace(e) {
8
+ if (e && e.__esModule) return e;
9
+ var n = Object.create(null);
10
+ if (e) {
11
+ Object.keys(e).forEach(function (k) {
12
+ if (k !== 'default') {
13
+ var d = Object.getOwnPropertyDescriptor(e, k);
14
+ Object.defineProperty(n, k, d.get ? d : {
15
+ enumerable: true,
16
+ get: function () { return e[k]; }
17
+ });
18
+ }
19
+ });
20
+ }
21
+ n.default = e;
22
+ return Object.freeze(n);
23
+ }
24
+
25
+ var z__namespace = /*#__PURE__*/_interopNamespace(z);
6
26
 
7
27
  var __defProp = Object.defineProperty;
8
28
  var __export = (target, all) => {
@@ -81,88 +101,88 @@ function getFromContext(context) {
81
101
  reactNamespace: options.reactNamespace ?? "React"
82
102
  };
83
103
  }
104
+ var cache = /* @__PURE__ */ new WeakMap();
84
105
  function getFromAnnotation(context) {
85
- if (!context.sourceCode.text.includes("@jsx")) return {};
86
- let jsx, jsxFrag, jsxRuntime, jsxImportSource;
87
- for (const comment of context.sourceCode.getAllComments().reverse()) {
88
- const value = comment.value;
89
- jsx ??= value.match(ANNOTATION_JSX)?.[1];
90
- jsxFrag ??= value.match(ANNOTATION_JSX_FRAG)?.[1];
91
- jsxRuntime ??= value.match(ANNOTATION_JSX_RUNTIME)?.[1];
92
- jsxImportSource ??= value.match(ANNOTATION_JSX_IMPORT_SOURCE)?.[1];
93
- }
94
- const options = make();
95
- if (jsx != null) options.jsxFactory = jsx;
96
- if (jsxFrag != null) options.jsxFragmentFactory = jsxFrag;
97
- if (jsxRuntime != null) options.jsx = jsxRuntime === "classic" ? typescript.JsxEmit.React : typescript.JsxEmit.ReactJSX;
98
- if (jsxImportSource != null) options.jsxImportSource = jsxImportSource;
99
- return options;
106
+ return eff.getOrElseUpdate(
107
+ cache,
108
+ context.sourceCode,
109
+ () => {
110
+ const options = make();
111
+ if (!context.sourceCode.text.includes("@jsx")) return options;
112
+ let jsx, jsxFrag, jsxRuntime, jsxImportSource;
113
+ for (const comment of context.sourceCode.getAllComments().reverse()) {
114
+ const value = comment.value;
115
+ jsx ??= value.match(ANNOTATION_JSX)?.[1];
116
+ jsxFrag ??= value.match(ANNOTATION_JSX_FRAG)?.[1];
117
+ jsxRuntime ??= value.match(ANNOTATION_JSX_RUNTIME)?.[1];
118
+ jsxImportSource ??= value.match(ANNOTATION_JSX_IMPORT_SOURCE)?.[1];
119
+ }
120
+ if (jsx != null) options.jsxFactory = jsx;
121
+ if (jsxFrag != null) options.jsxFragmentFactory = jsxFrag;
122
+ if (jsxRuntime != null) options.jsx = jsxRuntime === "classic" ? typescript.JsxEmit.React : typescript.JsxEmit.ReactJSX;
123
+ if (jsxImportSource != null) options.jsxImportSource = jsxImportSource;
124
+ return options;
125
+ }
126
+ );
100
127
  }
101
128
 
102
129
  // src/LanguagePreference/index.ts
103
130
  var LanguagePreference_exports = {};
104
131
  __export(LanguagePreference_exports, {
105
- DEFAULT_LANGUAGE_PREFERENCE: () => DEFAULT_LANGUAGE_PREFERENCE,
106
132
  LanguagePreferenceSchema: () => LanguagePreferenceSchema,
107
133
  getFromContext: () => getFromContext2,
108
134
  make: () => make2
109
135
  });
110
- var DEFAULT_LANGUAGE_PREFERENCE = {
111
- indentStyle: "space",
112
- indentWidth: 2,
113
- jsxQuoteStyle: "double",
114
- quoteStyle: "single",
115
- semicolons: "always",
116
- trailingCommas: "all"
117
- };
136
+
137
+ // src/LanguagePreference/LanguagePreference.ts
118
138
  function make2() {
119
139
  return {
120
- ...DEFAULT_LANGUAGE_PREFERENCE
140
+ indentStyle: "space",
141
+ indentWidth: 2,
142
+ jsxQuoteStyle: "double",
143
+ quoteStyle: "single",
144
+ semicolons: "always",
145
+ trailingCommas: "all"
121
146
  };
122
147
  }
123
148
  function getFromContext2() {
124
149
  throw new Error("getFromContext is not implemented");
125
150
  }
126
- var LanguagePreferenceSchema = valibot.object({
127
- indentStyle: valibot.optional(
128
- valibot.union([
129
- valibot.literal("tab"),
130
- valibot.literal("space")
131
- ]),
132
- "space"
151
+ var LanguagePreferenceSchema = z__namespace.object({
152
+ indentStyle: z__namespace.optional(
153
+ z__namespace.union([
154
+ z__namespace.literal("tab"),
155
+ z__namespace.literal("space")
156
+ ])
133
157
  ),
134
- indentWidth: valibot.optional(valibot.number(), 2),
135
- quoteStyle: valibot.optional(
136
- valibot.union([
137
- valibot.literal("single"),
138
- valibot.literal("double")
139
- ]),
140
- "single"
158
+ indentWidth: z__namespace.optional(z__namespace.number()),
159
+ quoteStyle: z__namespace.optional(
160
+ z__namespace.union([
161
+ z__namespace.literal("single"),
162
+ z__namespace.literal("double")
163
+ ])
141
164
  ),
142
- semicolons: valibot.optional(
143
- valibot.union([
144
- valibot.literal("always"),
145
- valibot.literal("asNeeded")
146
- ]),
147
- "always"
165
+ semicolons: z__namespace.optional(
166
+ z__namespace.union([
167
+ z__namespace.literal("always"),
168
+ z__namespace.literal("asNeeded")
169
+ ])
148
170
  ),
149
- trailingCommas: valibot.optional(
150
- valibot.union([
151
- valibot.literal("all"),
152
- valibot.literal("es5"),
153
- valibot.literal("none")
154
- ]),
155
- "all"
171
+ trailingCommas: z__namespace.optional(
172
+ z__namespace.union([
173
+ z__namespace.literal("all"),
174
+ z__namespace.literal("es5"),
175
+ z__namespace.literal("none")
176
+ ])
156
177
  ),
157
178
  // JSX specific options
158
- jsxQuoteStyle: valibot.optional(
159
- valibot.union([
160
- valibot.literal("single"),
161
- valibot.literal("double")
162
- ]),
163
- "double"
179
+ jsxQuoteStyle: z__namespace.optional(
180
+ z__namespace.union([
181
+ z__namespace.literal("single"),
182
+ z__namespace.literal("double")
183
+ ])
164
184
  )
165
- });
185
+ }, {});
166
186
 
167
187
  // src/Report.ts
168
188
  var Report_exports = {};
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
+ import { getOrElseUpdate } from '@eslint-react/eff';
1
2
  import { JsxEmit } from 'typescript';
2
- import { object, optional, union, literal, number } from 'valibot';
3
- import '@eslint-react/eff';
3
+ import * as z from '@zod/mini';
4
4
 
5
5
  var __defProp = Object.defineProperty;
6
6
  var __export = (target, all) => {
@@ -79,88 +79,88 @@ function getFromContext(context) {
79
79
  reactNamespace: options.reactNamespace ?? "React"
80
80
  };
81
81
  }
82
+ var cache = /* @__PURE__ */ new WeakMap();
82
83
  function getFromAnnotation(context) {
83
- if (!context.sourceCode.text.includes("@jsx")) return {};
84
- let jsx, jsxFrag, jsxRuntime, jsxImportSource;
85
- for (const comment of context.sourceCode.getAllComments().reverse()) {
86
- const value = comment.value;
87
- jsx ??= value.match(ANNOTATION_JSX)?.[1];
88
- jsxFrag ??= value.match(ANNOTATION_JSX_FRAG)?.[1];
89
- jsxRuntime ??= value.match(ANNOTATION_JSX_RUNTIME)?.[1];
90
- jsxImportSource ??= value.match(ANNOTATION_JSX_IMPORT_SOURCE)?.[1];
91
- }
92
- const options = make();
93
- if (jsx != null) options.jsxFactory = jsx;
94
- if (jsxFrag != null) options.jsxFragmentFactory = jsxFrag;
95
- if (jsxRuntime != null) options.jsx = jsxRuntime === "classic" ? JsxEmit.React : JsxEmit.ReactJSX;
96
- if (jsxImportSource != null) options.jsxImportSource = jsxImportSource;
97
- return options;
84
+ return getOrElseUpdate(
85
+ cache,
86
+ context.sourceCode,
87
+ () => {
88
+ const options = make();
89
+ if (!context.sourceCode.text.includes("@jsx")) return options;
90
+ let jsx, jsxFrag, jsxRuntime, jsxImportSource;
91
+ for (const comment of context.sourceCode.getAllComments().reverse()) {
92
+ const value = comment.value;
93
+ jsx ??= value.match(ANNOTATION_JSX)?.[1];
94
+ jsxFrag ??= value.match(ANNOTATION_JSX_FRAG)?.[1];
95
+ jsxRuntime ??= value.match(ANNOTATION_JSX_RUNTIME)?.[1];
96
+ jsxImportSource ??= value.match(ANNOTATION_JSX_IMPORT_SOURCE)?.[1];
97
+ }
98
+ if (jsx != null) options.jsxFactory = jsx;
99
+ if (jsxFrag != null) options.jsxFragmentFactory = jsxFrag;
100
+ if (jsxRuntime != null) options.jsx = jsxRuntime === "classic" ? JsxEmit.React : JsxEmit.ReactJSX;
101
+ if (jsxImportSource != null) options.jsxImportSource = jsxImportSource;
102
+ return options;
103
+ }
104
+ );
98
105
  }
99
106
 
100
107
  // src/LanguagePreference/index.ts
101
108
  var LanguagePreference_exports = {};
102
109
  __export(LanguagePreference_exports, {
103
- DEFAULT_LANGUAGE_PREFERENCE: () => DEFAULT_LANGUAGE_PREFERENCE,
104
110
  LanguagePreferenceSchema: () => LanguagePreferenceSchema,
105
111
  getFromContext: () => getFromContext2,
106
112
  make: () => make2
107
113
  });
108
- var DEFAULT_LANGUAGE_PREFERENCE = {
109
- indentStyle: "space",
110
- indentWidth: 2,
111
- jsxQuoteStyle: "double",
112
- quoteStyle: "single",
113
- semicolons: "always",
114
- trailingCommas: "all"
115
- };
114
+
115
+ // src/LanguagePreference/LanguagePreference.ts
116
116
  function make2() {
117
117
  return {
118
- ...DEFAULT_LANGUAGE_PREFERENCE
118
+ indentStyle: "space",
119
+ indentWidth: 2,
120
+ jsxQuoteStyle: "double",
121
+ quoteStyle: "single",
122
+ semicolons: "always",
123
+ trailingCommas: "all"
119
124
  };
120
125
  }
121
126
  function getFromContext2() {
122
127
  throw new Error("getFromContext is not implemented");
123
128
  }
124
- var LanguagePreferenceSchema = object({
125
- indentStyle: optional(
126
- union([
127
- literal("tab"),
128
- literal("space")
129
- ]),
130
- "space"
129
+ var LanguagePreferenceSchema = z.object({
130
+ indentStyle: z.optional(
131
+ z.union([
132
+ z.literal("tab"),
133
+ z.literal("space")
134
+ ])
131
135
  ),
132
- indentWidth: optional(number(), 2),
133
- quoteStyle: optional(
134
- union([
135
- literal("single"),
136
- literal("double")
137
- ]),
138
- "single"
136
+ indentWidth: z.optional(z.number()),
137
+ quoteStyle: z.optional(
138
+ z.union([
139
+ z.literal("single"),
140
+ z.literal("double")
141
+ ])
139
142
  ),
140
- semicolons: optional(
141
- union([
142
- literal("always"),
143
- literal("asNeeded")
144
- ]),
145
- "always"
143
+ semicolons: z.optional(
144
+ z.union([
145
+ z.literal("always"),
146
+ z.literal("asNeeded")
147
+ ])
146
148
  ),
147
- trailingCommas: optional(
148
- union([
149
- literal("all"),
150
- literal("es5"),
151
- literal("none")
152
- ]),
153
- "all"
149
+ trailingCommas: z.optional(
150
+ z.union([
151
+ z.literal("all"),
152
+ z.literal("es5"),
153
+ z.literal("none")
154
+ ])
154
155
  ),
155
156
  // JSX specific options
156
- jsxQuoteStyle: optional(
157
- union([
158
- literal("single"),
159
- literal("double")
160
- ]),
161
- "double"
157
+ jsxQuoteStyle: z.optional(
158
+ z.union([
159
+ z.literal("single"),
160
+ z.literal("double")
161
+ ])
162
162
  )
163
- });
163
+ }, {});
164
164
 
165
165
  // src/Report.ts
166
166
  var Report_exports = {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eslint-react/kit",
3
- "version": "1.45.4-next.2",
3
+ "version": "1.45.4-next.5",
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": {
@@ -36,9 +36,9 @@
36
36
  ],
37
37
  "dependencies": {
38
38
  "@typescript-eslint/utils": "^8.29.1",
39
+ "@zod/mini": "^4.0.0-beta.0",
39
40
  "ts-pattern": "^5.7.0",
40
- "valibot": "^1.0.0",
41
- "@eslint-react/eff": "1.45.4-next.2"
41
+ "@eslint-react/eff": "1.45.4-next.5"
42
42
  },
43
43
  "devDependencies": {
44
44
  "@tsconfig/node22": "^22.0.1",