oxlint-plugin-react-doctor 0.4.0-dev.15bd9d8 → 0.4.0-dev.36ecd05

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.
Files changed (2) hide show
  1. package/dist/index.js +9 -5
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -829,6 +829,9 @@ const isNextjsMetadataImageRouteFilename = (rawFilename) => {
829
829
  return /^(opengraph-image|twitter-image|icon|apple-icon)\d*\.(jsx?|tsx?)$/.test(path.basename(rawFilename));
830
830
  };
831
831
  //#endregion
832
+ //#region src/plugin/utils/normalize-filename.ts
833
+ const normalizeFilename$1 = (filename) => filename.replaceAll("\\", "/");
834
+ //#endregion
832
835
  //#region src/plugin/utils/is-hidden-from-screen-reader.ts
833
836
  const isHiddenFromScreenReader = (openingElement, settings) => {
834
837
  if (getElementType(openingElement, settings).toLowerCase() === "input") {
@@ -1000,7 +1003,7 @@ const altText = defineRule({
1000
1003
  recommendation: "Give every meaningful image an `alt`, `aria-label`, or `aria-labelledby`.",
1001
1004
  category: "Accessibility",
1002
1005
  create: (context) => {
1003
- if (isNextjsMetadataImageRouteFilename(context.filename)) return {};
1006
+ if (isNextjsMetadataImageRouteFilename(normalizeFilename$1(context.filename ?? ""))) return {};
1004
1007
  const settings = resolveSettings$53(context.settings);
1005
1008
  const checkImg = !settings.elements || settings.elements.includes("img");
1006
1009
  const checkObject = !settings.elements || settings.elements.includes("object");
@@ -3073,9 +3076,6 @@ const asyncDeferAwait = defineRule({
3073
3076
  }
3074
3077
  });
3075
3078
  //#endregion
3076
- //#region src/plugin/utils/normalize-filename.ts
3077
- const normalizeFilename$1 = (filename) => filename.replaceAll("\\", "/");
3078
- //#endregion
3079
3079
  //#region src/plugin/utils/get-callee-identifier-trail.ts
3080
3080
  const getCalleeIdentifierTrail = (call) => {
3081
3081
  let entry = call;
@@ -12954,8 +12954,9 @@ const nextjsNoImgElement = defineRule({
12954
12954
  create: (context) => {
12955
12955
  const filename = normalizeFilename$1(context.filename ?? "");
12956
12956
  const isOgRoute = OG_ROUTE_PATTERN.test(filename);
12957
+ const isMetadataImageRoute = isNextjsMetadataImageRouteFilename(filename);
12957
12958
  return { JSXOpeningElement(node) {
12958
- if (isOgRoute) return;
12959
+ if (isOgRoute || isMetadataImageRoute) return;
12959
12960
  if (isNodeOfType(node.name, "JSXIdentifier") && node.name.name === "img") context.report({
12960
12961
  node,
12961
12962
  message: "Plain <img> ships unoptimized, oversized images to your users."
@@ -23517,6 +23518,7 @@ const noUnknownProperty = defineRule({
23517
23518
  create: (context) => {
23518
23519
  const { ignore = [], requireDataLowercase = false } = resolveSettings$10(context.settings);
23519
23520
  const ignoreSet = new Set(ignore);
23521
+ if (isNextjsMetadataImageRouteFilename(context.filename)) ignoreSet.add("tw");
23520
23522
  let fileIsNonReactJsx = false;
23521
23523
  return {
23522
23524
  Program(node) {
@@ -24211,6 +24213,8 @@ const ENTRY_POINT_BASENAMES = new Set([
24211
24213
  "global-error.jsx",
24212
24214
  "route.tsx",
24213
24215
  "route.jsx",
24216
+ "_layout.tsx",
24217
+ "_layout.jsx",
24214
24218
  "_app.tsx",
24215
24219
  "_app.jsx",
24216
24220
  "_document.tsx",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oxlint-plugin-react-doctor",
3
- "version": "0.4.0-dev.15bd9d8",
3
+ "version": "0.4.0-dev.36ecd05",
4
4
  "description": "oxlint plugin for React Doctor: diagnose React codebases for security, performance, correctness, accessibility, bundle-size, and architecture issues",
5
5
  "keywords": [
6
6
  "accessibility",