Skip to content

Commit e162191

Browse files
committed
Improve react queries
1 parent 4715cdf commit e162191

9 files changed

Lines changed: 132 additions & 16 deletions

‎repository/jsrepository-ast.js‎

Lines changed: 52 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -352,7 +352,22 @@ exports.queries = {
352352
]/Identifier/:name == "exports"
353353
]
354354
]
355-
]/$$:right/:value`
355+
]/$$:right/:value`,
356+
/*
357+
Some bundlers (e.g. Vite/Rollup production builds) merge each module's
358+
assignments into a single comma-joined SequenceExpression and rename the
359+
CJS "exports" object to a short bundler-local identifier (e.g. `e`), and
360+
may emit the version as a template literal (backtick string) rather than
361+
a plain string Literal:
362+
e.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=i,e.createPortal=...,e.version=`19.2.7`
363+
Match structurally on the assignment target object instead of the name.
364+
*/
365+
`//SequenceExpression[
366+
/AssignmentExpression[/:left/:property/:name == "__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE"]/:left/$:object ==
367+
/AssignmentExpression[/:left/:property/:name == "version"]/:left/$:object
368+
]/AssignmentExpression[
369+
/:left/:property/:name == "version"
370+
]/:right/TemplateElement/:value/:cooked`,
356371
],
357372
react: [
358373
`//CallExpression[
@@ -366,11 +381,46 @@ exports.queries = {
366381
]/ExpressionStatement/AssignmentExpression[/MemberExpression/:property/:name == "version"]/$$:right/:value`,
367382
`/ExpressionStatement/AssignmentExpression[
368383
/MemberExpression/:property/:name == "version" &&
369-
/MemberExpression/:$object ==
384+
/MemberExpression/:$object ==
370385
../../ExpressionStatement/AssignmentExpression/MemberExpression[
371386
/:property/:name == "__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"
372387
]/$:object
373388
]/$$:right/:value`,
389+
/*
390+
React 19 renamed __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED to
391+
__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE. The four
392+
queries below mirror the three patterns above (plus the react-dom-style
393+
SequenceExpression form) for the new name, covering: standalone CJS
394+
builds where "exports" is an undeclared free variable referenced by
395+
name (cdnjs minified, unpkg unminified), and bundler output where the
396+
exports object is a declared local/parameter with an arbitrary name and
397+
the version may be a template literal (Vite/Rollup production builds).
398+
*/
399+
`//SequenceExpression[
400+
/AssignmentExpression/:left[/:object/:name == "exports" && /:property/:name == "__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE"]
401+
]/AssignmentExpression[
402+
/:left/:object/:name == "exports" && /:left/:property/:name == "version"
403+
]/:right/:value`,
404+
`//SequenceExpression[
405+
/AssignmentExpression[/:left/:property/:name == "__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE"]/:left/$:object ==
406+
/AssignmentExpression[/:left/:property/:name == "version"]/:left/$:object
407+
]/AssignmentExpression[
408+
/:left/:property/:name == "version"
409+
]/$$:right/:value`,
410+
`//SequenceExpression[
411+
/AssignmentExpression[/:left/:property/:name == "__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE"]/:left/$:object ==
412+
/AssignmentExpression[/:left/:property/:name == "version"]/:left/$:object
413+
]/AssignmentExpression[
414+
/:left/:property/:name == "version"
415+
]/:right/TemplateElement/:value/:cooked`,
416+
`/ExpressionStatement/AssignmentExpression[
417+
/MemberExpression/:property/:name == "version" &&
418+
/MemberExpression/:object/:name == "exports" &&
419+
../../ExpressionStatement/AssignmentExpression/MemberExpression[
420+
/:property/:name == "__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE" &&
421+
/:object/:name == "exports"
422+
]
423+
]/$$:right/:value`,
374424
],
375425
"moment.js": [
376426
/*

‎repository/jsrepository-v2.json‎

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6114,7 +6114,11 @@
61146114
"ast": [
61156115
"//CallExpression[ /FunctionExpression//MemberExpression/:property/:name == \"React\" ]/FunctionExpression/BlockStatement/ExpressionStatement/AssignmentExpression[ /:left/:property/:name == \"version\" ]/$$:right/:value",
61166116
"//BlockStatement[ /ExpressionStatement/AssignmentExpression/MemberExpression[/:property/:name == \"__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED\"]/$:object == /ExpressionStatement/AssignmentExpression/MemberExpression[/:property/:name == \"version\"]/$:object ]/ExpressionStatement/AssignmentExpression[/MemberExpression/:property/:name == \"version\"]/$$:right/:value",
6117-
"/ExpressionStatement/AssignmentExpression[ /MemberExpression/:property/:name == \"version\" && /MemberExpression/:$object == ../../ExpressionStatement/AssignmentExpression/MemberExpression[ /:property/:name == \"__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED\" ]/$:object ]/$$:right/:value"
6117+
"/ExpressionStatement/AssignmentExpression[ /MemberExpression/:property/:name == \"version\" && /MemberExpression/:$object == ../../ExpressionStatement/AssignmentExpression/MemberExpression[ /:property/:name == \"__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED\" ]/$:object ]/$$:right/:value",
6118+
"//SequenceExpression[ /AssignmentExpression/:left[/:object/:name == \"exports\" && /:property/:name == \"__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE\"] ]/AssignmentExpression[ /:left/:object/:name == \"exports\" && /:left/:property/:name == \"version\" ]/:right/:value",
6119+
"//SequenceExpression[ /AssignmentExpression[/:left/:property/:name == \"__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE\"]/:left/$:object == /AssignmentExpression[/:left/:property/:name == \"version\"]/:left/$:object ]/AssignmentExpression[ /:left/:property/:name == \"version\" ]/$$:right/:value",
6120+
"//SequenceExpression[ /AssignmentExpression[/:left/:property/:name == \"__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE\"]/:left/$:object == /AssignmentExpression[/:left/:property/:name == \"version\"]/:left/$:object ]/AssignmentExpression[ /:left/:property/:name == \"version\" ]/:right/TemplateElement/:value/:cooked",
6121+
"/ExpressionStatement/AssignmentExpression[ /MemberExpression/:property/:name == \"version\" && /MemberExpression/:object/:name == \"exports\" && ../../ExpressionStatement/AssignmentExpression/MemberExpression[ /:property/:name == \"__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE\" && /:object/:name == \"exports\" ] ]/$$:right/:value"
61186122
]
61196123
}
61206124
},
@@ -6235,7 +6239,8 @@
62356239
"//ObjectExpression/Property[/:key/:name == \"reconcilerVersion\"]/$$:value/:value",
62366240
"//ObjectExpression[ /Property[/:key/:name == \"rendererPackageName\" && /:value/:value == \"react-dom\"] ]/Property[/:key/:name == \"version\"]/:value/:value",
62376241
"//SequenceExpression[ /AssignmentExpression/:left[/:object/:name == \"exports\" && /:property/:name == \"__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE\"] ]/AssignmentExpression[ /:left/:object/:name == \"exports\" && /:left/:property/:name == \"version\" ]/:right/:value",
6238-
"/ExpressionStatement/AssignmentExpression[ /MemberExpression/:property/:name == \"version\" && /MemberExpression [/:$object == ../../../ExpressionStatement/AssignmentExpression/MemberExpression[ /:property/:name == \"__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE\" ]/$:object || /Identifier[ /:name == \"exports\" && ../../../../ExpressionStatement/AssignmentExpression/MemberExpression[ /:property/:name == \"__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE\" ]/Identifier/:name == \"exports\" ] ] ]/$$:right/:value"
6242+
"/ExpressionStatement/AssignmentExpression[ /MemberExpression/:property/:name == \"version\" && /MemberExpression [/:$object == ../../../ExpressionStatement/AssignmentExpression/MemberExpression[ /:property/:name == \"__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE\" ]/$:object || /Identifier[ /:name == \"exports\" && ../../../../ExpressionStatement/AssignmentExpression/MemberExpression[ /:property/:name == \"__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE\" ]/Identifier/:name == \"exports\" ] ] ]/$$:right/:value",
6243+
"//SequenceExpression[ /AssignmentExpression[/:left/:property/:name == \"__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE\"]/:left/$:object == /AssignmentExpression[/:left/:property/:name == \"version\"]/:left/$:object ]/AssignmentExpression[ /:left/:property/:name == \"version\" ]/:right/TemplateElement/:value/:cooked"
62396244
]
62406245
}
62416246
},

‎repository/jsrepository-v3.json‎

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6214,7 +6214,11 @@
62146214
"ast": [
62156215
"//CallExpression[ /FunctionExpression//MemberExpression/:property/:name == \"React\" ]/FunctionExpression/BlockStatement/ExpressionStatement/AssignmentExpression[ /:left/:property/:name == \"version\" ]/$$:right/:value",
62166216
"//BlockStatement[ /ExpressionStatement/AssignmentExpression/MemberExpression[/:property/:name == \"__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED\"]/$:object == /ExpressionStatement/AssignmentExpression/MemberExpression[/:property/:name == \"version\"]/$:object ]/ExpressionStatement/AssignmentExpression[/MemberExpression/:property/:name == \"version\"]/$$:right/:value",
6217-
"/ExpressionStatement/AssignmentExpression[ /MemberExpression/:property/:name == \"version\" && /MemberExpression/:$object == ../../ExpressionStatement/AssignmentExpression/MemberExpression[ /:property/:name == \"__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED\" ]/$:object ]/$$:right/:value"
6217+
"/ExpressionStatement/AssignmentExpression[ /MemberExpression/:property/:name == \"version\" && /MemberExpression/:$object == ../../ExpressionStatement/AssignmentExpression/MemberExpression[ /:property/:name == \"__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED\" ]/$:object ]/$$:right/:value",
6218+
"//SequenceExpression[ /AssignmentExpression/:left[/:object/:name == \"exports\" && /:property/:name == \"__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE\"] ]/AssignmentExpression[ /:left/:object/:name == \"exports\" && /:left/:property/:name == \"version\" ]/:right/:value",
6219+
"//SequenceExpression[ /AssignmentExpression[/:left/:property/:name == \"__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE\"]/:left/$:object == /AssignmentExpression[/:left/:property/:name == \"version\"]/:left/$:object ]/AssignmentExpression[ /:left/:property/:name == \"version\" ]/$$:right/:value",
6220+
"//SequenceExpression[ /AssignmentExpression[/:left/:property/:name == \"__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE\"]/:left/$:object == /AssignmentExpression[/:left/:property/:name == \"version\"]/:left/$:object ]/AssignmentExpression[ /:left/:property/:name == \"version\" ]/:right/TemplateElement/:value/:cooked",
6221+
"/ExpressionStatement/AssignmentExpression[ /MemberExpression/:property/:name == \"version\" && /MemberExpression/:object/:name == \"exports\" && ../../ExpressionStatement/AssignmentExpression/MemberExpression[ /:property/:name == \"__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE\" && /:object/:name == \"exports\" ] ]/$$:right/:value"
62186222
]
62196223
}
62206224
},
@@ -6338,7 +6342,8 @@
63386342
"//ObjectExpression/Property[/:key/:name == \"reconcilerVersion\"]/$$:value/:value",
63396343
"//ObjectExpression[ /Property[/:key/:name == \"rendererPackageName\" && /:value/:value == \"react-dom\"] ]/Property[/:key/:name == \"version\"]/:value/:value",
63406344
"//SequenceExpression[ /AssignmentExpression/:left[/:object/:name == \"exports\" && /:property/:name == \"__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE\"] ]/AssignmentExpression[ /:left/:object/:name == \"exports\" && /:left/:property/:name == \"version\" ]/:right/:value",
6341-
"/ExpressionStatement/AssignmentExpression[ /MemberExpression/:property/:name == \"version\" && /MemberExpression [/:$object == ../../../ExpressionStatement/AssignmentExpression/MemberExpression[ /:property/:name == \"__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE\" ]/$:object || /Identifier[ /:name == \"exports\" && ../../../../ExpressionStatement/AssignmentExpression/MemberExpression[ /:property/:name == \"__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE\" ]/Identifier/:name == \"exports\" ] ] ]/$$:right/:value"
6345+
"/ExpressionStatement/AssignmentExpression[ /MemberExpression/:property/:name == \"version\" && /MemberExpression [/:$object == ../../../ExpressionStatement/AssignmentExpression/MemberExpression[ /:property/:name == \"__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE\" ]/$:object || /Identifier[ /:name == \"exports\" && ../../../../ExpressionStatement/AssignmentExpression/MemberExpression[ /:property/:name == \"__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE\" ]/Identifier/:name == \"exports\" ] ] ]/$$:right/:value",
6346+
"//SequenceExpression[ /AssignmentExpression[/:left/:property/:name == \"__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE\"]/:left/$:object == /AssignmentExpression[/:left/:property/:name == \"version\"]/:left/$:object ]/AssignmentExpression[ /:left/:property/:name == \"version\" ]/:right/TemplateElement/:value/:cooked"
63426347
]
63436348
}
63446349
},

‎repository/jsrepository-v4.json‎

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6213,7 +6213,11 @@
62136213
"ast": [
62146214
"//CallExpression[ /FunctionExpression//MemberExpression/:property/:name == \"React\" ]/FunctionExpression/BlockStatement/ExpressionStatement/AssignmentExpression[ /:left/:property/:name == \"version\" ]/$$:right/:value",
62156215
"//BlockStatement[ /ExpressionStatement/AssignmentExpression/MemberExpression[/:property/:name == \"__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED\"]/$:object == /ExpressionStatement/AssignmentExpression/MemberExpression[/:property/:name == \"version\"]/$:object ]/ExpressionStatement/AssignmentExpression[/MemberExpression/:property/:name == \"version\"]/$$:right/:value",
6216-
"/ExpressionStatement/AssignmentExpression[ /MemberExpression/:property/:name == \"version\" && /MemberExpression/:$object == ../../ExpressionStatement/AssignmentExpression/MemberExpression[ /:property/:name == \"__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED\" ]/$:object ]/$$:right/:value"
6216+
"/ExpressionStatement/AssignmentExpression[ /MemberExpression/:property/:name == \"version\" && /MemberExpression/:$object == ../../ExpressionStatement/AssignmentExpression/MemberExpression[ /:property/:name == \"__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED\" ]/$:object ]/$$:right/:value",
6217+
"//SequenceExpression[ /AssignmentExpression/:left[/:object/:name == \"exports\" && /:property/:name == \"__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE\"] ]/AssignmentExpression[ /:left/:object/:name == \"exports\" && /:left/:property/:name == \"version\" ]/:right/:value",
6218+
"//SequenceExpression[ /AssignmentExpression[/:left/:property/:name == \"__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE\"]/:left/$:object == /AssignmentExpression[/:left/:property/:name == \"version\"]/:left/$:object ]/AssignmentExpression[ /:left/:property/:name == \"version\" ]/$$:right/:value",
6219+
"//SequenceExpression[ /AssignmentExpression[/:left/:property/:name == \"__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE\"]/:left/$:object == /AssignmentExpression[/:left/:property/:name == \"version\"]/:left/$:object ]/AssignmentExpression[ /:left/:property/:name == \"version\" ]/:right/TemplateElement/:value/:cooked",
6220+
"/ExpressionStatement/AssignmentExpression[ /MemberExpression/:property/:name == \"version\" && /MemberExpression/:object/:name == \"exports\" && ../../ExpressionStatement/AssignmentExpression/MemberExpression[ /:property/:name == \"__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE\" && /:object/:name == \"exports\" ] ]/$$:right/:value"
62176221
]
62186222
}
62196223
},
@@ -6337,7 +6341,8 @@
63376341
"//ObjectExpression/Property[/:key/:name == \"reconcilerVersion\"]/$$:value/:value",
63386342
"//ObjectExpression[ /Property[/:key/:name == \"rendererPackageName\" && /:value/:value == \"react-dom\"] ]/Property[/:key/:name == \"version\"]/:value/:value",
63396343
"//SequenceExpression[ /AssignmentExpression/:left[/:object/:name == \"exports\" && /:property/:name == \"__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE\"] ]/AssignmentExpression[ /:left/:object/:name == \"exports\" && /:left/:property/:name == \"version\" ]/:right/:value",
6340-
"/ExpressionStatement/AssignmentExpression[ /MemberExpression/:property/:name == \"version\" && /MemberExpression [/:$object == ../../../ExpressionStatement/AssignmentExpression/MemberExpression[ /:property/:name == \"__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE\" ]/$:object || /Identifier[ /:name == \"exports\" && ../../../../ExpressionStatement/AssignmentExpression/MemberExpression[ /:property/:name == \"__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE\" ]/Identifier/:name == \"exports\" ] ] ]/$$:right/:value"
6344+
"/ExpressionStatement/AssignmentExpression[ /MemberExpression/:property/:name == \"version\" && /MemberExpression [/:$object == ../../../ExpressionStatement/AssignmentExpression/MemberExpression[ /:property/:name == \"__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE\" ]/$:object || /Identifier[ /:name == \"exports\" && ../../../../ExpressionStatement/AssignmentExpression/MemberExpression[ /:property/:name == \"__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE\" ]/Identifier/:name == \"exports\" ] ] ]/$$:right/:value",
6345+
"//SequenceExpression[ /AssignmentExpression[/:left/:property/:name == \"__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE\"]/:left/$:object == /AssignmentExpression[/:left/:property/:name == \"version\"]/:left/$:object ]/AssignmentExpression[ /:left/:property/:name == \"version\" ]/:right/TemplateElement/:value/:cooked"
63416346
]
63426347
}
63436348
},

0 commit comments

Comments
 (0)