@eslint-react/shared 1.24.0-beta.3 → 1.24.0-beta.8

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
@@ -1489,33 +1489,19 @@ declare const CustomComponentSchema: ObjectSchema<{
1489
1489
  readonly defaultValue: OptionalSchema<StringSchema<undefined>, undefined>;
1490
1490
  }, undefined>, undefined>, undefined>;
1491
1491
  }, undefined>;
1492
+ declare const CustomAttributeNormalizedSchema: ObjectSchema<{
1493
+ readonly name: StringSchema<undefined>;
1494
+ readonly as: StringSchema<undefined>;
1495
+ readonly controlled: OptionalSchema<BooleanSchema<undefined>, undefined>;
1496
+ readonly defaultValue: OptionalSchema<StringSchema<undefined>, undefined>;
1497
+ }, undefined>;
1492
1498
  declare const CustomComponentNormalizedSchema: ObjectSchema<{
1493
1499
  readonly name: StringSchema<undefined>;
1494
1500
  readonly as: StringSchema<undefined>;
1495
1501
  readonly attributes: OptionalSchema<ArraySchema<ObjectSchema<{
1496
- /**
1497
- * The name of the attribute in the user-defined component.
1498
- * @example
1499
- * "to"
1500
- */
1501
1502
  readonly name: StringSchema<undefined>;
1502
- /**
1503
- * The name of the attribute in the built-in component.
1504
- * @example
1505
- * "href"
1506
- */
1507
- readonly as: OptionalSchema<StringSchema<undefined>, undefined>;
1508
- /**
1509
- * Whether the attribute is controlled or not in the user-defined component.
1510
- * @example
1511
- * `true`
1512
- */
1503
+ readonly as: StringSchema<undefined>;
1513
1504
  readonly controlled: OptionalSchema<BooleanSchema<undefined>, undefined>;
1514
- /**
1515
- * The default value of the attribute in the user-defined component.
1516
- * @example
1517
- * `"/"`
1518
- */
1519
1505
  readonly defaultValue: OptionalSchema<StringSchema<undefined>, undefined>;
1520
1506
  }, undefined>, undefined>, readonly []>;
1521
1507
  readonly re: InstanceSchema<RegExpConstructor, undefined>;
@@ -1908,6 +1894,7 @@ declare const ESLintSettingsSchema: OptionalSchema<ObjectSchema<{
1908
1894
  type CustomHook = InferOutput<typeof CustomHookSchema>;
1909
1895
  type CustomAttribute = InferOutput<typeof CustomAttributeSchema>;
1910
1896
  type CustomComponent = InferOutput<typeof CustomComponentSchema>;
1897
+ type CustomAttributeNormalized = InferOutput<typeof CustomAttributeNormalizedSchema>;
1911
1898
  type CustomComponentNormalized = InferOutput<typeof CustomComponentNormalizedSchema>;
1912
1899
  type ESLintReactSettings = InferOutput<typeof ESLintReactSettingsSchema>;
1913
1900
  type ESLintSettings = InferOutput<typeof ESLintSettingsSchema>;
@@ -1919,6 +1906,17 @@ interface ESLintReactSettingsNormalized extends ESLintReactSettings {
1919
1906
  additionalComponents: CustomComponentNormalized[];
1920
1907
  version: string;
1921
1908
  }
1909
+ /**
1910
+ * The default ESLint settings for "react-x".
1911
+ */
1912
+ declare const DEFAULT_ESLINT_REACT_SETTINGS: {
1913
+ readonly additionalHooks: {
1914
+ readonly useLayoutEffect: ["useIsomorphicLayoutEffect"];
1915
+ };
1916
+ readonly polymorphicPropName: "as";
1917
+ readonly strictImportCheck: false;
1918
+ readonly version: "detect";
1919
+ };
1922
1920
 
1923
1921
  interface Dictionary<Type> {
1924
1922
  [key: string]: Type;
@@ -2186,17 +2184,6 @@ type PartialObjectDeep<ObjectType extends object, Options extends PartialDeepOpt
2186
2184
  [KeyType in keyof ObjectType]?: PartialDeep<ObjectType[KeyType], Options>
2187
2185
  };
2188
2186
 
2189
- /**
2190
- * The default ESLint settings for "react-x".
2191
- */
2192
- declare const DEFAULT_ESLINT_REACT_SETTINGS: {
2193
- readonly additionalHooks: {
2194
- readonly useLayoutEffect: ["useIsomorphicLayoutEffect"];
2195
- };
2196
- readonly polymorphicPropName: "as";
2197
- readonly strictImportCheck: false;
2198
- readonly version: "detect";
2199
- };
2200
2187
  /**
2201
2188
  * Unsafely casts settings from a data object from `context.settings`.
2202
2189
  * @internal
@@ -2233,4 +2220,47 @@ declare module "@typescript-eslint/utils/ts-eslint" {
2233
2220
  }
2234
2221
  }
2235
2222
 
2236
- export { type CustomAttribute, CustomAttributeSchema, type CustomComponent, type CustomComponentNormalized, CustomComponentNormalizedSchema, CustomComponentSchema, type CustomHook, CustomHookSchema, DEFAULT_ESLINT_REACT_SETTINGS, DOM_HTML_COMPONENT_TYPES, DOM_SVG_COMPONENT_TYPES, type ESLintReactSettings, type ESLintReactSettingsNormalized, ESLintReactSettingsSchema, type ESLintSettings, ESLintSettingsSchema, GITHUB_URL, NPM_SCOPE, REACT_BUILD_IN_HOOKS, RE_CAMEL_CASE, RE_CONSTANT_CASE, RE_JAVASCRIPT_PROTOCOL, RE_KEBAB_CASE, RE_PASCAL_CASE, RE_SNAKE_CASE, WEBSITE_URL, createRuleForPlugin, decodeSettings, defineSettings, getReactVersion, getSettingsFromContext, normalizeSettings, unsafeDecodeSettings };
2223
+ /**
2224
+ * Rule severity.
2225
+ * @since 0.0.1
2226
+ */
2227
+ type RuleSeverity = "error" | "off" | "warn";
2228
+ /**
2229
+ * Rule declaration.
2230
+ * @internal
2231
+ * @since 0.0.1
2232
+ */
2233
+ type RuleDeclaration = [RuleSeverity, Record<string, unknown>?] | RuleSeverity;
2234
+ /**
2235
+ * Rule config preset.
2236
+ * @since 0.0.1
2237
+ */
2238
+ type RulePreset = Record<string, RuleDeclaration>;
2239
+ /**
2240
+ * Rule creator function.
2241
+ * @since 0.0.1
2242
+ * @internal
2243
+ */
2244
+ type RuleCreator = Parameters<ReturnType<typeof ESLintUtils.RuleCreator>>[0]["create"];
2245
+ /**
2246
+ * Rule context.
2247
+ * @since 0.0.1
2248
+ */
2249
+ type RuleContext = Parameters<RuleCreator>[0];
2250
+ /**
2251
+ * Rule options.
2252
+ * @since 0.0.1
2253
+ */
2254
+ type RuleOptions = Parameters<RuleCreator>[1];
2255
+ /**
2256
+ * Rule namespace.
2257
+ * @since 0.0.1
2258
+ */
2259
+ type RuleNamespace = "x" | "dom" | "web-api" | "hooks-extra" | "naming-convention" | "debug";
2260
+ /**
2261
+ * Rule feature.
2262
+ * @since 1.20.0
2263
+ */
2264
+ type RuleFeature = "CFG" | "CHK" | "DBG" | "FIX" | "MOD" | "TSC";
2265
+
2266
+ export { type CustomAttribute, type CustomAttributeNormalized, CustomAttributeNormalizedSchema, CustomAttributeSchema, type CustomComponent, type CustomComponentNormalized, CustomComponentNormalizedSchema, CustomComponentSchema, type CustomHook, CustomHookSchema, DEFAULT_ESLINT_REACT_SETTINGS, DOM_HTML_COMPONENT_TYPES, DOM_SVG_COMPONENT_TYPES, type ESLintReactSettings, type ESLintReactSettingsNormalized, ESLintReactSettingsSchema, type ESLintSettings, ESLintSettingsSchema, GITHUB_URL, NPM_SCOPE, REACT_BUILD_IN_HOOKS, RE_CAMEL_CASE, RE_CONSTANT_CASE, RE_JAVASCRIPT_PROTOCOL, RE_KEBAB_CASE, RE_PASCAL_CASE, RE_SNAKE_CASE, type RuleContext, type RuleDeclaration, type RuleFeature, type RuleNamespace, type RuleOptions, type RulePreset, type RuleSeverity, WEBSITE_URL, createRuleForPlugin, decodeSettings, defineSettings, getReactVersion, getSettingsFromContext, normalizeSettings, unsafeDecodeSettings };
package/dist/index.d.ts CHANGED
@@ -1489,33 +1489,19 @@ declare const CustomComponentSchema: ObjectSchema<{
1489
1489
  readonly defaultValue: OptionalSchema<StringSchema<undefined>, undefined>;
1490
1490
  }, undefined>, undefined>, undefined>;
1491
1491
  }, undefined>;
1492
+ declare const CustomAttributeNormalizedSchema: ObjectSchema<{
1493
+ readonly name: StringSchema<undefined>;
1494
+ readonly as: StringSchema<undefined>;
1495
+ readonly controlled: OptionalSchema<BooleanSchema<undefined>, undefined>;
1496
+ readonly defaultValue: OptionalSchema<StringSchema<undefined>, undefined>;
1497
+ }, undefined>;
1492
1498
  declare const CustomComponentNormalizedSchema: ObjectSchema<{
1493
1499
  readonly name: StringSchema<undefined>;
1494
1500
  readonly as: StringSchema<undefined>;
1495
1501
  readonly attributes: OptionalSchema<ArraySchema<ObjectSchema<{
1496
- /**
1497
- * The name of the attribute in the user-defined component.
1498
- * @example
1499
- * "to"
1500
- */
1501
1502
  readonly name: StringSchema<undefined>;
1502
- /**
1503
- * The name of the attribute in the built-in component.
1504
- * @example
1505
- * "href"
1506
- */
1507
- readonly as: OptionalSchema<StringSchema<undefined>, undefined>;
1508
- /**
1509
- * Whether the attribute is controlled or not in the user-defined component.
1510
- * @example
1511
- * `true`
1512
- */
1503
+ readonly as: StringSchema<undefined>;
1513
1504
  readonly controlled: OptionalSchema<BooleanSchema<undefined>, undefined>;
1514
- /**
1515
- * The default value of the attribute in the user-defined component.
1516
- * @example
1517
- * `"/"`
1518
- */
1519
1505
  readonly defaultValue: OptionalSchema<StringSchema<undefined>, undefined>;
1520
1506
  }, undefined>, undefined>, readonly []>;
1521
1507
  readonly re: InstanceSchema<RegExpConstructor, undefined>;
@@ -1908,6 +1894,7 @@ declare const ESLintSettingsSchema: OptionalSchema<ObjectSchema<{
1908
1894
  type CustomHook = InferOutput<typeof CustomHookSchema>;
1909
1895
  type CustomAttribute = InferOutput<typeof CustomAttributeSchema>;
1910
1896
  type CustomComponent = InferOutput<typeof CustomComponentSchema>;
1897
+ type CustomAttributeNormalized = InferOutput<typeof CustomAttributeNormalizedSchema>;
1911
1898
  type CustomComponentNormalized = InferOutput<typeof CustomComponentNormalizedSchema>;
1912
1899
  type ESLintReactSettings = InferOutput<typeof ESLintReactSettingsSchema>;
1913
1900
  type ESLintSettings = InferOutput<typeof ESLintSettingsSchema>;
@@ -1919,6 +1906,17 @@ interface ESLintReactSettingsNormalized extends ESLintReactSettings {
1919
1906
  additionalComponents: CustomComponentNormalized[];
1920
1907
  version: string;
1921
1908
  }
1909
+ /**
1910
+ * The default ESLint settings for "react-x".
1911
+ */
1912
+ declare const DEFAULT_ESLINT_REACT_SETTINGS: {
1913
+ readonly additionalHooks: {
1914
+ readonly useLayoutEffect: ["useIsomorphicLayoutEffect"];
1915
+ };
1916
+ readonly polymorphicPropName: "as";
1917
+ readonly strictImportCheck: false;
1918
+ readonly version: "detect";
1919
+ };
1922
1920
 
1923
1921
  interface Dictionary<Type> {
1924
1922
  [key: string]: Type;
@@ -2186,17 +2184,6 @@ type PartialObjectDeep<ObjectType extends object, Options extends PartialDeepOpt
2186
2184
  [KeyType in keyof ObjectType]?: PartialDeep<ObjectType[KeyType], Options>
2187
2185
  };
2188
2186
 
2189
- /**
2190
- * The default ESLint settings for "react-x".
2191
- */
2192
- declare const DEFAULT_ESLINT_REACT_SETTINGS: {
2193
- readonly additionalHooks: {
2194
- readonly useLayoutEffect: ["useIsomorphicLayoutEffect"];
2195
- };
2196
- readonly polymorphicPropName: "as";
2197
- readonly strictImportCheck: false;
2198
- readonly version: "detect";
2199
- };
2200
2187
  /**
2201
2188
  * Unsafely casts settings from a data object from `context.settings`.
2202
2189
  * @internal
@@ -2233,4 +2220,47 @@ declare module "@typescript-eslint/utils/ts-eslint" {
2233
2220
  }
2234
2221
  }
2235
2222
 
2236
- export { type CustomAttribute, CustomAttributeSchema, type CustomComponent, type CustomComponentNormalized, CustomComponentNormalizedSchema, CustomComponentSchema, type CustomHook, CustomHookSchema, DEFAULT_ESLINT_REACT_SETTINGS, DOM_HTML_COMPONENT_TYPES, DOM_SVG_COMPONENT_TYPES, type ESLintReactSettings, type ESLintReactSettingsNormalized, ESLintReactSettingsSchema, type ESLintSettings, ESLintSettingsSchema, GITHUB_URL, NPM_SCOPE, REACT_BUILD_IN_HOOKS, RE_CAMEL_CASE, RE_CONSTANT_CASE, RE_JAVASCRIPT_PROTOCOL, RE_KEBAB_CASE, RE_PASCAL_CASE, RE_SNAKE_CASE, WEBSITE_URL, createRuleForPlugin, decodeSettings, defineSettings, getReactVersion, getSettingsFromContext, normalizeSettings, unsafeDecodeSettings };
2223
+ /**
2224
+ * Rule severity.
2225
+ * @since 0.0.1
2226
+ */
2227
+ type RuleSeverity = "error" | "off" | "warn";
2228
+ /**
2229
+ * Rule declaration.
2230
+ * @internal
2231
+ * @since 0.0.1
2232
+ */
2233
+ type RuleDeclaration = [RuleSeverity, Record<string, unknown>?] | RuleSeverity;
2234
+ /**
2235
+ * Rule config preset.
2236
+ * @since 0.0.1
2237
+ */
2238
+ type RulePreset = Record<string, RuleDeclaration>;
2239
+ /**
2240
+ * Rule creator function.
2241
+ * @since 0.0.1
2242
+ * @internal
2243
+ */
2244
+ type RuleCreator = Parameters<ReturnType<typeof ESLintUtils.RuleCreator>>[0]["create"];
2245
+ /**
2246
+ * Rule context.
2247
+ * @since 0.0.1
2248
+ */
2249
+ type RuleContext = Parameters<RuleCreator>[0];
2250
+ /**
2251
+ * Rule options.
2252
+ * @since 0.0.1
2253
+ */
2254
+ type RuleOptions = Parameters<RuleCreator>[1];
2255
+ /**
2256
+ * Rule namespace.
2257
+ * @since 0.0.1
2258
+ */
2259
+ type RuleNamespace = "x" | "dom" | "web-api" | "hooks-extra" | "naming-convention" | "debug";
2260
+ /**
2261
+ * Rule feature.
2262
+ * @since 1.20.0
2263
+ */
2264
+ type RuleFeature = "CFG" | "CHK" | "DBG" | "FIX" | "MOD" | "TSC";
2265
+
2266
+ export { type CustomAttribute, type CustomAttributeNormalized, CustomAttributeNormalizedSchema, CustomAttributeSchema, type CustomComponent, type CustomComponentNormalized, CustomComponentNormalizedSchema, CustomComponentSchema, type CustomHook, CustomHookSchema, DEFAULT_ESLINT_REACT_SETTINGS, DOM_HTML_COMPONENT_TYPES, DOM_SVG_COMPONENT_TYPES, type ESLintReactSettings, type ESLintReactSettingsNormalized, ESLintReactSettingsSchema, type ESLintSettings, ESLintSettingsSchema, GITHUB_URL, NPM_SCOPE, REACT_BUILD_IN_HOOKS, RE_CAMEL_CASE, RE_CONSTANT_CASE, RE_JAVASCRIPT_PROTOCOL, RE_KEBAB_CASE, RE_PASCAL_CASE, RE_SNAKE_CASE, type RuleContext, type RuleDeclaration, type RuleFeature, type RuleNamespace, type RuleOptions, type RulePreset, type RuleSeverity, WEBSITE_URL, createRuleForPlugin, decodeSettings, defineSettings, getReactVersion, getSettingsFromContext, normalizeSettings, unsafeDecodeSettings };
package/dist/index.js CHANGED
@@ -612,10 +612,16 @@ var CustomComponentSchema = object({
612
612
  */
613
613
  attributes: optional(array(CustomAttributeSchema))
614
614
  });
615
+ var CustomAttributeNormalizedSchema = object({
616
+ name: string(),
617
+ as: string(),
618
+ controlled: optional(boolean()),
619
+ defaultValue: optional(string())
620
+ });
615
621
  var CustomComponentNormalizedSchema = object({
616
622
  name: string(),
617
623
  as: string(),
618
- attributes: optional(array(CustomAttributeSchema), []),
624
+ attributes: optional(array(CustomAttributeNormalizedSchema), []),
619
625
  re: instance(RegExp),
620
626
  selector: optional(string())
621
627
  });
@@ -702,6 +708,14 @@ var ESLintSettingsSchema = optional(
702
708
  }),
703
709
  {}
704
710
  );
711
+ var DEFAULT_ESLINT_REACT_SETTINGS = {
712
+ additionalHooks: {
713
+ useLayoutEffect: ["useIsomorphicLayoutEffect"]
714
+ },
715
+ polymorphicPropName: "as",
716
+ strictImportCheck: false,
717
+ version: "detect"
718
+ };
705
719
 
706
720
  // ../../node_modules/.pnpm/fast-equals@5.2.2/node_modules/fast-equals/dist/esm/index.mjs
707
721
  var getOwnPropertyNames = Object.getOwnPropertyNames;
@@ -1396,14 +1410,6 @@ function createMemoizedFunction(fn, options) {
1396
1410
  memoized.options = normalizedOptions;
1397
1411
  return memoized;
1398
1412
  }
1399
- var DEFAULT_ESLINT_REACT_SETTINGS = {
1400
- additionalHooks: {
1401
- useLayoutEffect: ["useIsomorphicLayoutEffect"]
1402
- },
1403
- polymorphicPropName: "as",
1404
- strictImportCheck: false,
1405
- version: "detect"
1406
- };
1407
1413
  function unsafeDecodeSettings(data) {
1408
1414
  return data?.["react-x"] ?? {};
1409
1415
  }
@@ -1434,6 +1440,7 @@ function getSettingsFromContext(context) {
1434
1440
  }
1435
1441
  var defineSettings = eff.identity;
1436
1442
 
1443
+ exports.CustomAttributeNormalizedSchema = CustomAttributeNormalizedSchema;
1437
1444
  exports.CustomAttributeSchema = CustomAttributeSchema;
1438
1445
  exports.CustomComponentNormalizedSchema = CustomComponentNormalizedSchema;
1439
1446
  exports.CustomComponentSchema = CustomComponentSchema;
package/dist/index.mjs CHANGED
@@ -604,10 +604,16 @@ var CustomComponentSchema = object({
604
604
  */
605
605
  attributes: optional(array(CustomAttributeSchema))
606
606
  });
607
+ var CustomAttributeNormalizedSchema = object({
608
+ name: string(),
609
+ as: string(),
610
+ controlled: optional(boolean()),
611
+ defaultValue: optional(string())
612
+ });
607
613
  var CustomComponentNormalizedSchema = object({
608
614
  name: string(),
609
615
  as: string(),
610
- attributes: optional(array(CustomAttributeSchema), []),
616
+ attributes: optional(array(CustomAttributeNormalizedSchema), []),
611
617
  re: instance(RegExp),
612
618
  selector: optional(string())
613
619
  });
@@ -694,6 +700,14 @@ var ESLintSettingsSchema = optional(
694
700
  }),
695
701
  {}
696
702
  );
703
+ var DEFAULT_ESLINT_REACT_SETTINGS = {
704
+ additionalHooks: {
705
+ useLayoutEffect: ["useIsomorphicLayoutEffect"]
706
+ },
707
+ polymorphicPropName: "as",
708
+ strictImportCheck: false,
709
+ version: "detect"
710
+ };
697
711
 
698
712
  // ../../node_modules/.pnpm/fast-equals@5.2.2/node_modules/fast-equals/dist/esm/index.mjs
699
713
  var getOwnPropertyNames = Object.getOwnPropertyNames;
@@ -1388,14 +1402,6 @@ function createMemoizedFunction(fn, options) {
1388
1402
  memoized.options = normalizedOptions;
1389
1403
  return memoized;
1390
1404
  }
1391
- var DEFAULT_ESLINT_REACT_SETTINGS = {
1392
- additionalHooks: {
1393
- useLayoutEffect: ["useIsomorphicLayoutEffect"]
1394
- },
1395
- polymorphicPropName: "as",
1396
- strictImportCheck: false,
1397
- version: "detect"
1398
- };
1399
1405
  function unsafeDecodeSettings(data) {
1400
1406
  return data?.["react-x"] ?? {};
1401
1407
  }
@@ -1426,4 +1432,4 @@ function getSettingsFromContext(context) {
1426
1432
  }
1427
1433
  var defineSettings = identity;
1428
1434
 
1429
- export { CustomAttributeSchema, CustomComponentNormalizedSchema, CustomComponentSchema, CustomHookSchema, DEFAULT_ESLINT_REACT_SETTINGS, DOM_HTML_COMPONENT_TYPES, DOM_SVG_COMPONENT_TYPES, ESLintReactSettingsSchema, ESLintSettingsSchema, GITHUB_URL, NPM_SCOPE, REACT_BUILD_IN_HOOKS, RE_CAMEL_CASE, RE_CONSTANT_CASE, RE_JAVASCRIPT_PROTOCOL, RE_KEBAB_CASE, RE_PASCAL_CASE, RE_SNAKE_CASE, WEBSITE_URL, createRuleForPlugin, decodeSettings, defineSettings, getReactVersion, getSettingsFromContext, normalizeSettings, unsafeDecodeSettings };
1435
+ export { CustomAttributeNormalizedSchema, CustomAttributeSchema, CustomComponentNormalizedSchema, CustomComponentSchema, CustomHookSchema, DEFAULT_ESLINT_REACT_SETTINGS, DOM_HTML_COMPONENT_TYPES, DOM_SVG_COMPONENT_TYPES, ESLintReactSettingsSchema, ESLintSettingsSchema, GITHUB_URL, NPM_SCOPE, REACT_BUILD_IN_HOOKS, RE_CAMEL_CASE, RE_CONSTANT_CASE, RE_JAVASCRIPT_PROTOCOL, RE_KEBAB_CASE, RE_PASCAL_CASE, RE_SNAKE_CASE, WEBSITE_URL, createRuleForPlugin, decodeSettings, defineSettings, getReactVersion, getSettingsFromContext, normalizeSettings, unsafeDecodeSettings };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eslint-react/shared",
3
- "version": "1.24.0-beta.3",
3
+ "version": "1.24.0-beta.8",
4
4
  "description": "ESLint React's Shared constants and functions.",
5
5
  "homepage": "https://github.com/Rel1cx/eslint-react",
6
6
  "bugs": {
@@ -33,10 +33,10 @@
33
33
  "./package.json"
34
34
  ],
35
35
  "dependencies": {
36
- "@typescript-eslint/utils": "^8.19.1",
36
+ "@typescript-eslint/utils": "^8.20.0",
37
37
  "picomatch": "^4.0.2",
38
38
  "ts-pattern": "^5.6.0",
39
- "@eslint-react/eff": "1.24.0-beta.3"
39
+ "@eslint-react/eff": "1.24.0-beta.8"
40
40
  },
41
41
  "devDependencies": {
42
42
  "@types/picomatch": "^3.0.1",