oxlint-plugin-react-doctor 0.9.2-dev.d81eeda → 0.9.2-dev.de6d280
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.
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import{parseSync as e,visitorKeys as t}from"oxc-parser";import{KEYS as n}from"eslint-visitor-keys";import*as r from"node:fs";import*as i from"node:path";const a=[[`nextjs`,`Next.js`,`NEXT_PUBLIC_*`],[`vite`,`Vite`,`VITE_*`],[`tanstack-start`,`TanStack Start`,`VITE_*`],[`cra`,`Create React App`,`REACT_APP_*`],[`gatsby`,`Gatsby`,`GATSBY_*`]],o=e=>{for(let[t,n,r]of a)if(e(t))return`Move secrets to server-only code. In ${n}, only \`${r}\` env vars are exposed to the browser, and they must not contain secrets`},s=e=>e(`nextjs:static-export`)?`Avoid redirects inside useEffect — they flash the wrong page first. Use an event handler (e.g. onClick), or call redirect() from next/navigation during render (it prerenders a client-side redirect under output: "export"). Middleware and getServerSideProps redirects aren't available in a static export.`:void 0,c=[{key:`react-hooks-js/set-state-in-render`,source:`react-compiler`,severity:`error`},{key:`react-hooks-js/immutability`,source:`react-compiler`,severity:`error`},{key:`react-hooks-js/refs`,source:`react-compiler`,severity:`error`},{key:`react-hooks-js/purity`,source:`react-compiler`,severity:`error`},{key:`react-hooks-js/hooks`,source:`react-compiler`,severity:`error`},{key:`react-hooks-js/set-state-in-effect`,source:`react-compiler`,severity:`warn`},{key:`react-hooks-js/globals`,source:`react-compiler`,severity:`error`},{key:`react-hooks-js/error-boundaries`,source:`react-compiler`,severity:`error`},{key:`react-hooks-js/preserve-manual-memoization`,source:`react-compiler`,severity:`error`},{key:`react-hooks-js/unsupported-syntax`,source:`react-compiler`,severity:`error`},{key:`react-hooks-js/component-hook-factories`,source:`react-compiler`,severity:`error`},{key:`react-hooks-js/static-components`,source:`react-compiler`,severity:`error`},{key:`react-hooks-js/use-memo`,source:`react-compiler`,severity:`error`},{key:`react-hooks-js/void-use-memo`,source:`react-compiler`,severity:`error`},{key:`react-hooks-js/incompatible-library`,source:`react-compiler`,severity:`error`},{key:`react-hooks-js/todo`,source:`react-compiler`,severity:`error`}],l=Object.fromEntries(c.map(e=>[e.key,e.severity])),u=new Set(`width.height.min-width.max-width.min-height.max-height.top.right.bottom.left.padding.padding-top.padding-right.padding-bottom.padding-left.margin.margin-top.margin-right.margin-bottom.margin-left.border-width.border-top-width.border-right-width.border-bottom-width.border-left-width.line-height.column-width`.split(`.`)),d=new Set([`width`,`height`,`top`,`left`,`right`,`bottom`,`padding`,`paddingTop`,`paddingRight`,`paddingBottom`,`paddingLeft`,`margin`,`marginTop`,`marginRight`,`marginBottom`,`marginLeft`,`borderWidth`,`fontSize`,`lineHeight`,`gap`]),f=new Set([`animate`,`initial`,`exit`,`whileHover`,`whileTap`,`whileFocus`,`whileDrag`,`whileInView`]),p=/blur\((\d+(?:\.\d+)?)px\)/,m=new Set([`requestAnimationFrame`,`setInterval`]),h=new Set([`framer-motion`,`motion`]),ee=new Set([`bounce`,`elastic`,`wobble`,`jiggle`,`spring`]),te={base:`3.0.0`,textLayoutGuard:`3.0.1`,aria:`6.2.0`,cursor:`6.7.0`,concurrent:`6.7.0`,renderToString:`6.8.0`,modernHooks:`7.0.0`,suspendTerminal:`7.1.0`},g=[`ink-ctrl-c-handler-requires-exit-option`,`ink-newline-inside-text`,`ink-no-bare-process-exit`,`ink-no-direct-raw-mode`,`ink-no-dom-host-elements`,`ink-no-dom-router`,`ink-no-focus-in-render`,`ink-no-layout-inside-text`,`ink-no-live-hooks-in-render-to-string`,`ink-no-measure-element-in-render`,`ink-no-multiple-static`,`ink-no-raw-text`,`ink-no-repeated-render`,`ink-prefer-use-animation`,`ink-prefer-use-paste`,`ink-static-is-append-only`,`ink-static-requires-key`,`ink-suspense-requires-concurrent`,`ink-use-reactive-window-size`,`ink-use-string-width-for-cursor`,`ink-use-suspend-terminal`,`ink-valid-aria-semantics`],ne=[`@react-router/dev`,`react-router-dom`,`react-router`],re=`react-router-csp-nonce-consistency.react-router-descendant-routes-require-splat.react-router-guard-aborted-handle-error.react-router-internal-route-anchor.react-router-loader-fetch-forwards-signal.react-router-loader-parallel-fetch.react-router-nested-route-requires-outlet.react-router-no-catch-middleware-next.react-router-no-client-module-in-server-render.react-router-no-duplicate-route-id.react-router-no-empty-leaf-route.react-router-no-invalid-absolute-child-path.react-router-no-invalid-lazy-route-properties.react-router-no-invalid-splat-path.react-router-no-loader-request-body.react-router-no-middleware-response-body-consumption.react-router-no-multiple-blockers.react-router-no-multiple-middleware-next.react-router-no-multiple-set-search-params-in-tick.react-router-no-navigate-in-render.react-router-no-nested-router.react-router-no-redirect-in-try-catch.react-router-no-route-module-environment-suffix.react-router-no-router-in-render.react-router-no-session-mutation-in-loader.react-router-no-static-cookie-expires.react-router-no-unsynchronized-search-params-mutation.react-router-no-use-loader-data-in-error-ui.react-router-prefer-route-lazy.react-router-require-root-error-boundary.react-router-resource-link-requires-reload.react-router-return-navigation-promise-in-transition.react-router-server-middleware-return-response.react-router-session-mutation-requires-commit.react-router-v8-no-meta-data-field.react-router-v8-no-react-router-dom-import.react-router-v8-no-removed-future-flags.react-router-valid-route-object`.split(`.`),ie=new Set([`@react-router/cloudflare`,`@react-router/node`,`react-router/dom`,`react-router-dom`,`react-router`]),ae=new Set([`flash`,`set`,`unset`]),oe=new Set([`createCookieSessionStorage`,`createFileSessionStorage`,`createMemorySessionStorage`,`createSessionStorage`,`createWorkersKVSessionStorage`]),se=new Set([`createBrowserRouter`,`createHashRouter`,`createMemoryRouter`]),ce=new Set([`append`,`delete`,`set`,`sort`]),le=new Set([`caseSensitive`,`children`,`id`,`index`,`lazy`,`path`]),ue=new Set([`arrayBuffer`,`blob`,`bytes`,`formData`,`json`,`text`]),de=new Set([`unstable_previewServerPrerendering`,`v8_middleware`,`v8_passThroughRequests`,`v8_splitRouteModules`,`v8_trailingSlashAwareDataRequests`,`v8_viteEnvironmentApi`]),fe=new Set([`BrowserRouter`,`HashRouter`,`MemoryRouter`,`Router`,`RouterProvider`]),pe=new Set([...g,`client-passive-event-listeners`,`exhaustive-deps`,`no-barrel-import`,`nextjs-async-dynamic-api-not-awaited`,`nextjs-missing-metadata`,`nextjs-no-img-element`,`nextjs-no-use-search-params-without-suspense`,`no-dynamic-import-path`,`no-full-lodash-import`,`no-hydration-branch-on-browser-global`,`no-indeterminate-attribute`,`no-loading-flag-reset-outside-finally`,`no-locale-format-in-render`,`no-match-media-in-state-initializer`,`no-create-ref-in-function-component`,`no-adjust-state-on-prop-change`,`no-derived-state`,`no-derived-state-effect`,`no-event-handler`,`no-effect-with-fresh-deps`,`no-initialize-state`,`no-mutating-reducer-state`,`only-export-components`,`no-unguarded-browser-global-at-module-scope`,`no-unguarded-browser-global-in-render-or-hook-init`,`window-open-without-noopener`,`prefer-dynamic-import`,`rendering-hydration-mismatch-time`,`remotion-calculate-metadata-fetch-signal`,`remotion-deterministic-randomness`,`remotion-no-css-animation`,`remotion-no-css-transition`,`remotion-no-css-url-assets`,`remotion-no-native-media-elements`,`remotion-no-next-image`,`rerender-memo-with-default-value`,`rn-no-legacy-shadow-styles`,`rn-no-raw-text`,`rn-prefer-expo-image`,`rn-style-prefer-boxshadow`,...re]),me=new Set([`implements`,`returnType`,`superTypeArguments`,`superTypeParameters`,`typeAnnotation`,`typeArguments`,`typeParameters`]),_=e=>typeof e==`object`&&!!e&&typeof e.type==`string`,v=e=>e!=null&&(e.type===`ArrowFunctionExpression`||e.type===`FunctionExpression`||e.type===`FunctionDeclaration`),y=(e,t)=>typeof e==`object`&&!!e&&e.type===t,he={...t,...n,ArrayPattern:[`decorators`,...n.ArrayPattern],AssignmentPattern:[`decorators`,...n.AssignmentPattern],ClassDeclaration:[`decorators`,...n.ClassDeclaration],ClassExpression:[`decorators`,...n.ClassExpression],Identifier:[`decorators`,...n.Identifier],MethodDefinition:[`decorators`,...n.MethodDefinition],ObjectPattern:[`decorators`,...n.ObjectPattern],PropertyDefinition:[`decorators`,...n.PropertyDefinition],RestElement:[`decorators`,...n.RestElement]},ge=e=>e===`var`||e===`function`,_e=e=>{let t=e;for(;t;){if(t.kind===`module`||t.kind===`function`||t.kind===`arrow-function`||t.kind===`method`)return t;t=t.parent}return e},ve=(e,t,n,r)=>{let i={id:r.nextScopeId++,kind:e,node:t,parent:n,children:[],symbols:[],references:[],symbolsByName:new Map};return n&&n.children.push(i),i},b=(e,t,n)=>{let r=ve(e,t,n.currentScope,n);return n.scopeStack.push(r),n.currentScope=r,n.ownScopeForNode.set(t,r),r},x=e=>{e.scopeStack.pop();let t=e.scopeStack[e.scopeStack.length-1];if(!t)throw Error(`scope stack underflow`);e.currentScope=t},S=(e,t,n)=>{let r={id:t.nextSymbolId++,name:n.name,kind:n.kind,bindingIdentifier:n.bindingIdentifier,declarationNode:n.declarationNode,scope:e,initializer:n.initializer,references:[]};return e.symbols.push(r),e.symbolsByName.set(n.name,r),t.symbolByBindingIdentifier.set(n.bindingIdentifier,r),r},ye=e=>{let t=[],n=e=>{if(y(e,`Identifier`)){t.push(e);return}if(y(e,`ObjectPattern`)){for(let t of e.properties)if(y(t,`Property`)){let e=t.value;n(e)}else y(t,`RestElement`)&&n(t.argument);return}if(y(e,`ArrayPattern`)){for(let t of e.elements)t&&n(t);return}if(y(e,`RestElement`)){n(e.argument);return}y(e,`AssignmentPattern`)&&n(e.left)};return n(e),t},C=(e,t,n,r,i,a)=>{if(y(e,`Identifier`)){S(n,r,{name:e.name,kind:i,bindingIdentifier:e,declarationNode:a,initializer:t});return}if(y(e,`ObjectPattern`)){for(let o of e.properties)if(y(o,`Property`)){let e=o.value;C(e,y(e,`AssignmentPattern`)?e.right:t,n,r,i,a)}else y(o,`RestElement`)&&C(o.argument,t,n,r,i,a);return}if(y(e,`ArrayPattern`)){for(let o of e.elements)o&&C(o,y(o,`AssignmentPattern`)?o.right??null:t,n,r,i,a);return}if(y(e,`AssignmentPattern`)){C(e.left,e.right??null,n,r,i,a);return}y(e,`RestElement`)&&C(e.argument,null,n,r,i,a)},w=(e,t)=>{be.add(t)},be=new WeakSet,xe=(e,t,n)=>{let r={id:e.nextReferenceId++,identifier:t,resolvedSymbol:null,flag:n,scope:e.currentScope};e.currentScope.references.push(r),e.referenceByIdentifier.set(t,r)},Se=e=>e.parent?v(e.parent):!1,Ce=e=>e.parent!==null&&e.parent!==void 0&&e.parent.type===`CatchClause`,we=(e,t)=>{if(!y(e,`VariableDeclaration`))return;let n=e.kind===`var`?`var`:e.kind===`let`?`let`:e.kind===`const`?`const`:`using`,r=ge(n)?_e(t.currentScope):t.currentScope;for(let i of e.declarations){let e=i,a=i.init??null;C(i.id,a,r,t,n,e);for(let e of ye(i.id))w(t,e)}},Te=(e,t)=>{y(e,`FunctionDeclaration`)&&e.id&&(S(_e(t.currentScope),t,{name:e.id.name,kind:`function`,bindingIdentifier:e.id,declarationNode:e,initializer:e}),w(t,e.id))},Ee=(e,t)=>{y(e,`ClassDeclaration`)&&e.id&&(S(t.currentScope,t,{name:e.id.name,kind:`class`,bindingIdentifier:e.id,declarationNode:e,initializer:e}),w(t,e.id))},De=(e,t)=>{if(!y(e,`ImportDeclaration`))return;let n=_e(t.currentScope);for(let r of e.specifiers){let e=r.local;y(e,`Identifier`)&&(S(n,t,{name:e.name,kind:`import`,bindingIdentifier:e,declarationNode:r,initializer:r}),w(t,e))}},Oe=(e,t)=>{if(e.type!==`TSImportEqualsDeclaration`&&e.type!==`TSEnumDeclaration`&&e.type!==`TSTypeAliasDeclaration`&&e.type!==`TSInterfaceDeclaration`&&e.type!==`TSModuleDeclaration`)return;let n=e.id;if(!n||!y(n,`Identifier`))return;let r=e.type===`TSImportEqualsDeclaration`?`ts-import-equals`:e.type===`TSEnumDeclaration`?`ts-enum`:e.type===`TSTypeAliasDeclaration`?`ts-type-alias`:e.type===`TSInterfaceDeclaration`?`ts-interface`:`ts-module`;S(_e(t.currentScope),t,{name:n.name,kind:r,bindingIdentifier:n,declarationNode:e,initializer:null}),w(t,n)},ke=(e,t,n)=>{for(let r of e){C(r,null,t,n,`parameter`,r);for(let e of ye(r))w(n,e)}},Ae=e=>!(!y(e,`BlockStatement`)||Se(e)||Ce(e)||e.parent&&e.parent.type===`TSModuleDeclaration`),je=e=>{let t=e.parent;if(!t)return!1;if(t.type===`JSXMemberExpression`)return t.object===e;if(t.type===`JSXNamespacedName`)return!1;let n=e.name.charCodeAt(0);return!(n>=97&&n<=122)},Me=e=>{let t=e.parent;if(!t)return!1;switch(t.type){case`MemberExpression`:return t.property===e&&!t.computed;case`Property`:return t.key===e&&!t.computed&&!t.shorthand;case`MethodDefinition`:case`PropertyDefinition`:return t.key===e&&!t.computed;case`JSXAttribute`:return t.name===e;case`ImportSpecifier`:return t.imported===e;case`ExportSpecifier`:return t.exported===e&&t.local!==t.exported;case`LabeledStatement`:case`BreakStatement`:case`ContinueStatement`:return t.label===e;default:return!1}},Ne=e=>{let t=e.parent;if(!t)return`read`;switch(t.type){case`AssignmentExpression`:return t.left===e?t.operator===`=`?`write`:`read-write`:`read`;case`UpdateExpression`:return`read-write`;case`ForInStatement`:case`ForOfStatement`:return t.left===e?`write`:`read`;default:return`read`}},T=(e,t)=>{t.nodeScope.set(e,t.currentScope)},Pe=(e,t)=>{if(e.type===`AssignmentPattern`){Pe(e.left,t);let n=e.right??null;n&&E(n,t);return}if(e.type===`ObjectPattern`){for(let n of e.properties){let e=n;if(e.type===`RestElement`){Pe(e.argument,t);continue}if(e.type!==`Property`)continue;let r=e;r.computed&&E(r.key,t),Pe(r.value,t)}return}if(e.type===`ArrayPattern`){for(let n of e.elements)n&&Pe(n,t);return}e.type===`RestElement`&&Pe(e.argument,t)},E=(e,t)=>{if(e.type===`ArrowFunctionExpression`||e.type===`FunctionExpression`||e.type===`FunctionDeclaration`){e.type===`FunctionDeclaration`&&e.id&&Te(e,t);let n=e.params??[];for(let e of n)if(!(!(`decorators`in e)||!Array.isArray(e.decorators)))for(let n of e.decorators)_(n)&&E(n,t);T(e,t);let r=b(e.type===`ArrowFunctionExpression`?`arrow-function`:`function`,e,t);(e.type===`FunctionExpression`||e.type===`FunctionDeclaration`)&&e.id&&(S(r,t,{name:e.id.name,kind:`function`,bindingIdentifier:e.id,declarationNode:e,initializer:e}),w(t,e.id)),ke(n,r,t);for(let e of n)Pe(e,t);let i=e.body;i&&E(i,t),x(t);return}if(e.type===`ClassDeclaration`||e.type===`ClassExpression`){if(e.type===`ClassDeclaration`&&e.id&&Ee(e,t),Array.isArray(e.decorators))for(let n of e.decorators)_(n)&&E(n,t);let n=b(`class`,e,t);T(e,t),e.type===`ClassExpression`&&e.id&&(S(n,t,{name:e.id.name,kind:`class`,bindingIdentifier:e.id,declarationNode:e,initializer:e}),w(t,e.id)),e.superClass&&E(e.superClass,t),e.body&&E(e.body,t),x(t);return}if(e.type===`CatchClause`){let n=b(`catch`,e,t);if(T(e,t),e.param){C(e.param,null,n,t,`catch-clause-parameter`,e);for(let n of ye(e.param))w(t,n)}e.body&&E(e.body,t),x(t);return}if(e.type===`ForStatement`||e.type===`ForInStatement`||e.type===`ForOfStatement`){b(`for`,e,t),T(e,t);let n=e,r=he[e.type]??Object.keys(n);for(let e of r){if(e===`parent`||me.has(e))continue;let r=n[e];if(Array.isArray(r))for(let e of r)_(e)&&E(e,t);else _(r)&&E(r,t)}x(t);return}if(e.type===`SwitchStatement`){b(`switch`,e,t),T(e,t),e.discriminant&&E(e.discriminant,t);for(let n of e.cases)E(n,t);x(t);return}if(e.type===`TSModuleDeclaration`){let n=b(`ts-module`,e,t);if(T(e,t),e.id&&y(e.id,`Identifier`)){let r=e.id;S(_e(n.parent??t.currentScope),t,{name:r.name,kind:`ts-module`,bindingIdentifier:r,declarationNode:e,initializer:null}),w(t,r)}e.body&&E(e.body,t),x(t);return}if(e.type===`TSEnumDeclaration`){Oe(e,t),b(`ts-enum`,e,t),T(e,t);let n=e.members??[];for(let e of n)E(e,t);x(t);return}if(e.type===`BlockStatement`&&Ae(e)){b(`block`,e,t),T(e,t);for(let n of e.body)E(n,t);x(t);return}switch(T(e,t),e.type){case`VariableDeclaration`:we(e,t);break;case`ImportDeclaration`:De(e,t);break;case`TSImportEqualsDeclaration`:case`TSTypeAliasDeclaration`:case`TSInterfaceDeclaration`:Oe(e,t);break}(e.type===`Identifier`||e.type===`JSXIdentifier`)&&!be.has(e)&&!Me(e)&&(e.type===`JSXIdentifier`?je(e)&&xe(t,e,Ne(e)):xe(t,e,Ne(e)));let n=e,r=he[e.type]??Object.keys(n);for(let e of r){if(e===`parent`||me.has(e))continue;let r=n[e];if(Array.isArray(r))for(let e of r)_(e)&&E(e,t);else _(r)&&E(r,t)}},Fe=e=>{let t=e=>{for(let t of e.references){let n=t.identifier.name;if(typeof n!=`string`)continue;let r=e;for(;r;){let e=r.symbolsByName.get(n);if(e){t.resolvedSymbol=e,e.references.push(t);break}r=r.parent}}for(let n of e.children)t(n)};t(e)},Ie=e=>{let t={id:0,kind:`module`,node:e,parent:null,children:[],symbols:[],references:[],symbolsByName:new Map},n={nextScopeId:1,nextSymbolId:0,nextReferenceId:0,currentScope:t,scopeStack:[t],rootScope:t,nodeScope:new WeakMap,ownScopeForNode:new WeakMap,symbolByBindingIdentifier:new WeakMap,referenceByIdentifier:new WeakMap};if(n.nodeScope.set(e,t),n.ownScopeForNode.set(e,t),e.type===`Program`)for(let t of e.body)E(t,n);else E(e,n);return Fe(t),{rootScope:t,scopeFor:e=>{let r=e;for(;r;){let e=n.nodeScope.get(r);if(e)return e;r=r.parent??null}return t},ownScopeFor:e=>n.ownScopeForNode.get(e)??null,symbolFor:e=>{let t=n.referenceByIdentifier.get(e);return t?t.resolvedSymbol:n.symbolByBindingIdentifier.get(e)||null},referenceFor:e=>n.referenceByIdentifier.get(e)??null,isGlobalReference:e=>{let t=n.referenceByIdentifier.get(e);return t?t.resolvedSymbol===null:!1}}},Le=(e,t)=>{let n=e;for(;n;){if(n===t)return!0;n=n.parent}return!1},Re=`(?:tsx?|jsx?|mts|mjs)`,ze=RegExp(`/page\\.${Re}$`),Be=RegExp(`/(page|layout)\\.${Re}$`),Ve=[`layout.tsx`,`layout.jsx`,`layout.ts`,`layout.js`,`layout.mts`,`layout.mjs`],He=[`metadata`,`generateMetadata`],Ue=/\/(?:(?:\((?:dashboard|admin|settings|account|internal|manage|console|portal|auth|onboarding|app|ee|protected)\))|(?:dashboard|admin|settings|account|internal|manage|console|portal))\//i,We=new Set([`redirect`,`permanentRedirect`,`notFound`,`forbidden`,`unauthorized`]),Ge=new Set([`revalidateTag`,`revalidatePath`,`expireTag`,`expirePath`,`unstable_expireTag`,`unstable_expirePath`]),Ke=/fonts\.googleapis\.com/,qe=/polyfill\.io|polyfill\.min\.js|cdn\.polyfill/,Je=RegExp(`/route\\.${Re}$`),Ye=/\/(?:cron|jobs\/cron)(?:\/|$)/i,Xe=new Set([`logout`,`log-out`,`signout`,`sign-out`,`unsubscribe`,`delete`,`remove`,`revoke`,`cancel`,`deactivate`]),Ze=RegExp(`/(error|global-error)\\.${Re}$`),Qe=RegExp(`/global-error\\.${Re}$`),$e=new Set([`GET`,`POST`,`PUT`,`PATCH`,`DELETE`,`OPTIONS`,`HEAD`]),et=/google-analytics\.com|googletagmanager\.com\/gtag/,tt=RegExp(`/(opengraph-image|twitter-image)\\d*\\.${Re}$`),nt=1024,rt=1e3,it=1e3,at=new Set([`expo`,`expo-router`,`@expo/cli`,`@expo/metro-config`,`@expo/metro-runtime`]),ot=new Set([`react-native`,`react-native-tvos`,...at,`react-native-windows`,`react-native-macos`]),st=[`@react-native/`,`@react-native-`],ct=e=>at.has(e),lt=e=>{if(ot.has(e))return!0;for(let t of st)if(e.startsWith(t))return!0;return!1};let ut=null;const dt=e=>{ut?.existencePaths.add(e)},D=e=>{ut?.contentPaths.add(e)},ft=()=>ut!==null,pt=e=>{let t=ut,n={existencePaths:new Set,contentPaths:new Set};ut=n;try{return{value:e(),trace:n}}finally{if(ut=t,t!==null){for(let e of n.existencePaths)t.existencePaths.add(e);for(let e of n.contentPaths)t.contentPaths.add(e)}}},mt=e=>pt(e).trace,ht=new Map,gt=new Map,_t=()=>{ht.clear(),gt.clear()},vt=e=>{if(!e)return null;let t=ht.get(e);if(t!==void 0){if(ft()){let n=i.dirname(e);for(;dt(i.join(n,`package.json`)),n!==t;){let e=i.dirname(n);if(e===n)break;n=e}}return t}let n=i.dirname(e);for(;;){let t=i.join(n,`package.json`);dt(t);let a=!1;try{a=r.statSync(t).isFile()}catch{a=!1}if(a)return ht.set(e,n),n;let o=i.dirname(n);if(o===n)return ht.set(e,null),null;n=o}},yt=e=>{let t=vt(e);return t?bt(t):null},bt=e=>{let t=i.join(e,`package.json`);D(t);let n=gt.get(e);if(n!==void 0)return n;let a=null;try{let e=JSON.parse(r.readFileSync(t,`utf-8`));typeof e==`object`&&e&&(a=e)}catch{a=null}return gt.set(e,a),a},xt=new Set([`next`,`vite`,`react-scripts`,`gatsby`,`@remix-run/react`,`@remix-run/node`,`@docusaurus/core`,`@docusaurus/preset-classic`,`@storybook/react`,`@storybook/react-vite`,`@storybook/react-webpack5`,`@storybook/nextjs`,`@storybook/web-components`,`storybook`,`react-dom`,`@vitejs/plugin-react`,`@vitejs/plugin-react-swc`]),St=[`dependencies`,`devDependencies`,`peerDependencies`,`optionalDependencies`],Ct=function*(e){for(let t of St){let n=e[t];if(n)for(let e of Object.keys(n))yield e}},wt=e=>{if(typeof e[`react-native`]==`string`)return!0;for(let t of Ct(e))if(lt(t))return!0;return!1},Tt=e=>{for(let t of Ct(e))if(ct(t))return!0;return!1},Et=e=>{for(let t of Ct(e))if(xt.has(t))return!0;return!1},Dt=e=>St.some(t=>{let n=e[t];return typeof n==`object`&&!!n&&Object.keys(n).length>0}),Ot=(e,t)=>St.some(n=>{let r=e[n];return typeof r==`object`&&!!r&&Object.prototype.propertyIsEnumerable.call(r,t)}),kt=new WeakMap,At=e=>{let t=yt(e);if(!t)return`unknown`;let n=kt.get(t);if(n!==void 0)return n;let r;return r=Tt(t)?`expo`:wt(t)?`react-native`:Et(t)?`web`:Dt(t)?`neutral`:`unknown`,kt.set(t,r),r},jt=new Set([`ParenthesizedExpression`,`TSAsExpression`,`TSSatisfiesExpression`,`TSTypeAssertion`,`TSNonNullExpression`,`TSInstantiationExpression`,`ChainExpression`]),O=e=>{let t=e;for(;;)switch(t.type){case`ParenthesizedExpression`:case`TSAsExpression`:case`TSSatisfiesExpression`:case`TSTypeAssertion`:case`TSNonNullExpression`:case`TSInstantiationExpression`:case`ChainExpression`:if(!(`expression`in t)||!t.expression)return t;t=t.expression;break;default:return t}},Mt=(e,t)=>{if(!y(e,`Program`))return null;let n=new Map,r=new Map,i=null,a=null,o=e=>{for(let t of e.declarations??[])y(t,`VariableDeclarator`)&&(!y(t.id,`Identifier`)||!t.init||n.set(t.id.name,O(t.init)))};for(let t of e.body??[]){if(y(t,`VariableDeclaration`)){o(t);continue}if(y(t,`FunctionDeclaration`)&&t.id){n.set(t.id.name,t);continue}if(y(t,`ExportNamedDeclaration`)){if(t.exportKind===`type`)continue;let e=t.declaration;if(e&&y(e,`VariableDeclaration`)){o(e);for(let t of e.declarations??[])y(t,`VariableDeclarator`)&&y(t.id,`Identifier`)&&r.set(t.id.name,t.id.name)}else e&&y(e,`FunctionDeclaration`)&&e.id&&(n.set(e.id.name,e),r.set(e.id.name,e.id.name));if(t.source)continue;for(let e of t.specifiers??[]){if(!y(e,`ExportSpecifier`)||e.exportKind===`type`)continue;let t=y(e.local,`Identifier`)?e.local.name:null,n=null;y(e.exported,`Identifier`)?n=e.exported.name:y(e.exported,`Literal`)&&typeof e.exported.value==`string`&&(n=e.exported.value),t&&n&&r.set(n,t)}continue}if(!y(t,`ExportDefaultDeclaration`))continue;let e=t.declaration;e&&(y(e,`Identifier`)?a=e.name:((y(e,`FunctionDeclaration`)||y(e,`ClassDeclaration`))&&e.id&&n.set(e.id.name,e),i=O(e)))}if(t===`default`){if(i)return i;if(a){let e=n.get(a);if(e)return e}}let s=r.get(t);return s?n.get(s)??null:null},Nt=e=>{if(y(e,`ImportSpecifier`)){let t=e.imported;return y(t,`Identifier`)?t.name:y(t,`Literal`)&&typeof t.value==`string`?t.value:null}return y(e,`ImportDefaultSpecifier`)?`default`:null},Pt=(e,t)=>{if(!y(e,`Program`))return[];let n=[];for(let r of e.body??[]){if(y(r,`ExportNamedDeclaration`)&&r.source){if(r.exportKind===`type`)continue;let e=r.source.value;if(typeof e!=`string`)continue;for(let n of r.specifiers??[]){if(!y(n,`ExportSpecifier`)||n.exportKind===`type`)continue;let r=n.exported;if((y(r,`Identifier`)?r.name:y(r,`Literal`)&&typeof r.value==`string`?r.value:null)!==t)continue;let i=n.local,a=y(i,`Identifier`)?i.name:y(i,`Literal`)&&typeof i.value==`string`?i.value:null;if(a)return[{importedName:a,source:e}]}}if(y(r,`ExportAllDeclaration`)&&r.source){if(r.exportKind===`type`||r.exported)continue;let e=r.source.value;typeof e==`string`&&n.push({importedName:t,source:e})}}return n},Ft=e=>{let t=(e,n)=>{let r=e;r.parent=n,r.range==null&&typeof r.start==`number`&&typeof r.end==`number`&&(r.range=[r.start,r.end]);let i=e;for(let n of Object.keys(i)){if(n===`parent`)continue;let r=i[n];if(Array.isArray(r))for(let n of r)_(n)&&t(n,e);else _(r)&&t(r,e)}};t(e,null)},It={".ts":`ts`,".tsx":`tsx`,".js":`js`,".jsx":`jsx`,".mjs":`js`,".cjs":`js`,".mts":`ts`,".cts":`ts`},Lt=e=>It[i.extname(e).toLowerCase()]??`tsx`,Rt=({filename:t,sourceText:n,shouldAttachParentReferences:r=!0})=>{try{let i=e(t,n,{astType:`ts`,lang:Lt(t)});if(i.errors.some(e=>e.severity===`Error`))return null;let a=i.program;return r&&Ft(a),a}catch{return null}},zt=new Map,Bt=e=>{e.endsWith(`.d.ts`)||e.endsWith(`.d.mts`)||e.endsWith(`.d.cts`)||D(e);let t;try{t=r.statSync(e)}catch{return null}if(!t.isFile()||t.size>2e6)return null;let n=zt.get(e);if(n&&n.mtimeMs===t.mtimeMs&&n.size===t.size)return n.program;if(e.endsWith(`.d.ts`)||e.endsWith(`.d.mts`)||e.endsWith(`.d.cts`))return zt.set(e,{mtimeMs:t.mtimeMs,size:t.size,program:null}),null;let i;try{i=r.readFileSync(e,`utf8`)}catch{return zt.set(e,{mtimeMs:t.mtimeMs,size:t.size,program:null}),null}let a=Rt({filename:e,sourceText:i});return zt.set(e,{mtimeMs:t.mtimeMs,size:t.size,program:a}),a},Vt=[`.ts`,`.tsx`,`.js`,`.jsx`,`.mjs`,`.cjs`,`.mts`,`.cts`],Ht=[`import`,`default`,`module`,`browser`,`require`],Ut=[`module`,`main`,`browser`],Wt=e=>{dt(e);try{return r.statSync(e).isFile()?e:null}catch{return null}},Gt=e=>{dt(e);try{return r.statSync(e).isDirectory()?e:null}catch{return null}},Kt=e=>{let t=i.extname(e);if(!t)return Vt.map(t=>`${e}${t}`);let n=e.slice(0,-t.length);return t===`.js`?[e,`${n}.ts`,`${n}.tsx`,`${n}.jsx`]:t===`.jsx`?[e,`${n}.tsx`]:t===`.mjs`?[e,`${n}.mts`]:t===`.cjs`?[e,`${n}.cts`]:[e]},qt=e=>typeof e==`object`&&!!e,Jt=e=>{if(typeof e==`string`)return e;if(Array.isArray(e)){for(let t of e){let e=Jt(t);if(e)return e}return null}if(!qt(e))return null;for(let t of Ht){let n=Jt(e[t]);if(n)return n}return null},Yt=e=>{let t=e.exports;return t?Jt(t)||(qt(t)?Jt(t[`.`]):null):null},Xt=e=>Qt(e)||Qt(i.join(e,`index`)),Zt=e=>{let t=Gt(e);if(!t)return null;let n=i.join(t,`package.json`);D(n);try{let e=JSON.parse(r.readFileSync(n,`utf8`)),a=Yt(e)??Ut.map(t=>e[t]).find(e=>typeof e==`string`);return a?Xt(i.resolve(t,a)):null}catch{return null}},Qt=e=>{let t=Wt(e);if(t)return t;for(let t of Kt(e)){let e=Wt(t);if(e)return e}return null},$t=e=>Qt(e)||Zt(e)||Qt(i.join(e,`index`)),en=(e,t)=>$t(i.resolve(i.dirname(e),t)),tn=[`tsconfig.json`,`jsconfig.json`],nn=e=>typeof e==`object`&&!!e,rn=e=>{let t=``,n=!1,r=!1,i=!1;for(let a=0;a<e.length;a++){let o=e[a],s=e[a+1];if(r){o===`
|
|
2
|
-
`&&(r=!1,t+=o);continue}if(i){o===`*`&&s===`/`&&(i=!1,a++);continue}if(n){t+=o,o===`\\`?(t+=s??``,a++):o===`"`&&(n=!1);continue}if(o===`"`){n=!0,t+=o;continue}if(o===`/`&&s===`/`){r=!0,a++;continue}if(o===`/`&&s===`*`){i=!0,a++;continue}t+=o}return t.replace(/,(\s*[}\]])/g,`$1`)},an=(e,t)=>{D(e),t.push(e);let n;try{n=r.readFileSync(e,`utf8`)}catch{return null}try{let e=JSON.parse(rn(n));return nn(e)?e:null}catch{return null}},on=(e,t)=>{let n=e.endsWith(`.json`)?e:`${e}.json`;return e.startsWith(`./`)||e.startsWith(`../`)?i.resolve(t,n):i.join(t,`node_modules`,n)},sn=e=>{let t=new Map;if(!nn(e))return t;for(let[n,r]of Object.entries(e)){if(!Array.isArray(r))continue;let e=r.filter(e=>typeof e==`string`);e.length>0&&t.set(n,e)}return t},cn=(e,t,n)=>{let r=an(e,n);if(!r)return null;let a=i.dirname(e),o=nn(r.compilerOptions)?r.compilerOptions:{},s=typeof o.baseUrl==`string`?o.baseUrl:null,c=s!==null,l=s===null?a:i.resolve(a,s);if(nn(o.paths))return{baseAbsolutePath:l,hasExplicitBaseUrl:c,paths:sn(o.paths)};if(typeof r.extends==`string`&&t<8){let e=on(r.extends,a),i=e?cn(e,t+1,n):null;if(i)return i}return c?{baseAbsolutePath:l,hasExplicitBaseUrl:c,paths:new Map}:null},ln=new Map,un=new Map,dn=e=>{D(e);let t;try{t=r.statSync(e)}catch{return{config:null,probedContentPaths:new Set([e])}}let n=ln.get(e);if(n&&n.mtimeMs===t.mtimeMs){for(let e of n.probedChainPaths)D(e);return{config:n.config,probedContentPaths:new Set(n.probedChainPaths)}}let i=[],a=cn(e,0,i);return ln.set(e,{mtimeMs:t.mtimeMs,config:a,probedChainPaths:i}),{config:a,probedContentPaths:new Set(i)}},fn=e=>{let t=ft(),n=t?un.get(e):void 0;if(n!==void 0){for(let e of n.probedContentPaths)D(e);return n.config}let r=new Set,a=e;for(let n=0;n<30;n++){for(let n of tn){let o=dn(i.join(a,n));for(let e of o.probedContentPaths)r.add(e);if(o.config)return t&&un.set(e,{config:o.config,probedContentPaths:r}),o.config}let n=i.dirname(a);if(n===a)break;a=n}return t&&un.set(e,{config:null,probedContentPaths:r}),null},pn=(e,t)=>{let n=t.indexOf(`*`);if(n===-1)return e===t?``:null;let r=t.slice(0,n),i=t.slice(n+1);return e.length>=r.length+i.length&&e.startsWith(r)&&e.endsWith(i)?e.slice(r.length,e.length-i.length):null},mn=(e,t)=>{let n=fn(i.dirname(e));if(!n)return null;let r=null,a=``,o=-1;for(let e of n.paths.keys()){let n=pn(t,e);if(n===null)continue;let i=e.indexOf(`*`),s=i===-1?e.length:i;s>o&&(r=e,a=n,o=s)}if(r)for(let e of n.paths.get(r)??[]){let t=e.replaceAll(`*`,a),r=$t(i.resolve(n.baseAbsolutePath,t));if(r)return r}return n.hasExplicitBaseUrl?$t(i.resolve(n.baseAbsolutePath,t)):null},hn=()=>{ln.clear(),un.clear()},gn=(e,t)=>i.isAbsolute(t)?null:t.startsWith(`.`)?en(e,t):mn(e,t),_n=new Map,vn=()=>{_n.clear()},yn=(e,t,n)=>{if(n.size>=4||n.has(e))return null;n.add(e);let r=Bt(e);if(!r)return null;let i=Mt(r,t);if(i)return{filePath:e,exportedNode:i,programNode:r};let a=new Map;for(let i of Pt(r,t)){let t=gn(e,i.source);if(!t)continue;let r=yn(t,i.importedName,new Set(n));r&&a.set(r.exportedNode,r)}return a.size===1?a.values().next().value??null:null},bn=(e,t,n)=>xn(e,t,n)?.functionNode??null,xn=(e,t,n)=>{let r=k(e,t,n);return!r||!v(r.exportedNode)?null:{filePath:r.filePath,functionNode:r.exportedNode,programNode:r.programNode}},k=(e,t,n)=>{if(!ft()){let r=gn(e,t);return r?yn(r,n,new Set):null}let r=`${e}\0${t}\0${n}`,i=_n.get(r);if(i!==void 0){for(let e of i.trace.contentPaths)D(e);for(let e of i.trace.existencePaths)dt(e);return i.result}let a=pt(()=>{let r=gn(e,t);return r?yn(r,n,new Set):null});return _n.set(r,{result:a.value,trace:a.trace}),a.value},Sn=(e,t)=>{let n=e,r=he[e.type];if(r!==void 0){for(let e=r.length-1;e>=0;--e){let i=n[r[e]];if(Array.isArray(i))for(let e=i.length-1;e>=0;--e){let n=i[e];_(n)&&t.push(n)}else _(i)&&t.push(i)}return}let i=Object.keys(n);for(let e=i.length-1;e>=0;--e){let r=i[e];if(r===`parent`)continue;let a=n[r];if(Array.isArray(a))for(let e=a.length-1;e>=0;--e){let n=a[e];_(n)&&t.push(n)}else _(a)&&t.push(a)}},Cn=(e,t)=>{let n=e,r=he[e.type];if(r!==void 0){for(let e=0;e<r.length;e+=1){let i=n[r[e]];if(Array.isArray(i))for(let e=0;e<i.length;e+=1){let n=i[e];_(n)&&t(n)}else _(i)&&t(i)}return}for(let e in n){if(e===`parent`||!Object.hasOwn(n,e))continue;let r=n[e];if(Array.isArray(r))for(let e=0;e<r.length;e+=1){let n=r[e];_(n)&&t(n)}else _(r)&&t(r)}},A=(e,t)=>{if(!e||typeof e!=`object`)return;let n=[e];for(;n.length>0;){let e=n.pop();e===void 0||t(e)===!1||Sn(e,n)}},wn=({absoluteFilePath:e,staticImports:t,program:n})=>{let r=new Set;if(A(n,e=>{if(e.type!==`JSXOpeningElement`)return;let t=e.name;if(t){if(t.type===`JSXIdentifier`){let e=t.name;typeof e==`string`&&r.add(e)}else if(t.type===`JSXMemberExpression`){let e=t.property;e?.type===`JSXIdentifier`&&typeof e.name==`string`&&r.add(e.name)}else if(t.type===`JSXNamespacedName`){let e=t.namespace;typeof e?.name==`string`&&r.add(e.name)}}}),r.size!==0)for(let n of t)for(let t of n.entries){let{importName:i}=t;if(i.kind===`NamespaceObject`||!r.has(t.localName.value))continue;let a=i.kind===`Default`?`default`:i.name;a&&bn(e,n.moduleRequest.value,a)}},Tn=e=>e.replace(/^type\s+/,``).trim(),En=(e,t)=>e.split(`,`).map(e=>e.trim()).filter(Boolean).map(e=>{let n=t||e.startsWith(`type `),[r,i]=e.split(/\s+as\s+/),a=Tn(r??``);return{localName:a,exportedName:Tn(i??a),isTypeOnly:n}}),Dn=/\/\*[\s\S]*?\*\//g,On=/^\s*\/\/.*$/gm,kn=e=>e.replace(Dn,``).replace(On,``),An=/^\s*export\s+default\b/m,jn=/^\s*export\s+(?:declare\s+)?(?:(?:async\s+)?function|(?:abstract\s+)?class|const|let|var|enum|interface|type)\s+([\w$]+)/gm,Mn=/^\s*export\s+(?:type\s+)?\{([\s\S]*?)\}(?:\s+from\s+["'][^"']+["'])?\s*;?\s*(?:(?:\/\/[^\n]*)?\s*)/gm,Nn=e=>{let t=kn(e),n=new Set;An.test(t)&&n.add(`default`);for(let e of t.matchAll(jn))e[1]&&n.add(e[1]);for(let e of t.matchAll(Mn)){let t=e[1]??``;for(let e of En(t,!1))n.add(e.exportedName)}return n},Pn=new Map,Fn=(e,t)=>{D(e);try{let n=r.statSync(e),i=Pn.get(e);if(i&&i.mtimeMs===n.mtimeMs&&i.size===n.size)return i.exportedNames.has(t);let a=Nn(r.readFileSync(e,`utf8`));return Pn.set(e,{mtimeMs:n.mtimeMs,size:n.size,exportedNames:a}),a.has(t)}catch{return!1}},In=(e,t)=>{let n=e.replaceAll(`\\`,`/`),r=i.dirname(n);for(let e=0;e<30;e++){for(let e of Ve){let a=i.join(r,e);if(a.replaceAll(`\\`,`/`)!==n&&t(a))return!0}let e=i.dirname(r);if(i.basename(r)===`app`&&i.basename(e)!==`app`||e===r)break;r=e}return!1},Ln=e=>In(e,e=>He.some(t=>Fn(e,t))),j=e=>{if(!y(e,`ImportSpecifier`))return;let t=e.imported;if(y(t,`Identifier`))return t.name;if(y(t,`Literal`)&&typeof t.value==`string`)return t.value},Rn=e=>y(e,`JSXIdentifier`)?e.name===`Suspense`:y(e,`JSXMemberExpression`)&&y(e.property,`JSXIdentifier`)&&e.property.name===`Suspense`,zn=e=>{let t=!1;return A(e,e=>{if(t)return!1;if(y(e,`JSXOpeningElement`)&&Rn(e.name)||y(e,`ImportDeclaration`)&&e.source?.value===`react`&&(e.specifiers??[]).some(e=>y(e,`ImportSpecifier`)&&j(e)===`Suspense`))return t=!0,!1}),t},Bn=e=>In(e,e=>{let t=Bt(e);return!!(t&&zn(t))}),Vn=/^index\.(?:[cm]?[jt]sx?|mjs)$/,Hn=/^\s*import\s+(type\s+)?(?!["'])([^;]*?)\s+from\s+["']([^"']+)["']\s*;?\s*(?:(?:\/\/[^\n]*)?\s*)/gm,Un=/^\s*export\s+(type\s+)?(?:\*(?:\s+as\s+([\w$]+))?|\{([\s\S]*?)\})\s+from\s+["']([^"']+)["']\s*;?\s*(?:(?:\/\/[^\n]*)?\s*)/gm,Wn=/^\s*export\s+(type\s+)?\{([\s\S]*?)\}\s*;?\s*(?:(?:\/\/[^\n]*)?\s*)/gm,Gn=new Map,Kn=e=>Vn.test(i.basename(e)),qn=()=>({isBarrel:!1,exportsByName:new Map,starExportSources:[]}),Jn=(e,t)=>{e.set(t.localName,{...t,didExport:!1})},Yn=(e,t,n,r)=>{for(let i of En(e,n))Jn(r,{localName:i.exportedName,importedName:i.localName,source:t,isTypeOnly:i.isTypeOnly})},Xn=(e,t,n,r)=>{let i=e.trim(),a=i.match(/(?:^|,\s*)\*\s+as\s+([\w$]+)/);a?.[1]&&Jn(r,{localName:a[1],importedName:`*`,source:t,isTypeOnly:n});let o=i.match(/\{([\s\S]*?)\}/);o?.[1]&&Yn(o[1],t,n,r);let s=i.split(`,`)[0]?.trim();s&&!s.startsWith(`{`)&&!s.startsWith(`*`)&&Jn(r,{localName:s,importedName:`default`,source:t,isTypeOnly:n})},Zn=(e,t,n,r)=>{let i=e.replace(Hn,(e,n,r,i)=>(Xn(r,i,!!n,t),``));return i=i.replace(Un,(e,t,i,a,o)=>{let s=!!t;if(i)return n.set(i,{exportedName:i,importedName:`*`,source:o,isTypeOnly:s}),``;if(a){for(let e of En(a,s))n.set(e.exportedName,{exportedName:e.exportedName,importedName:e.localName,source:o,isTypeOnly:e.isTypeOnly});return``}return r.push(o),``}),i=i.replace(Wn,(e,r,i)=>{for(let a of En(i,!!r)){let r=t.get(a.localName);if(!r)return e;r.didExport=!0,n.set(a.exportedName,{exportedName:a.exportedName,importedName:r.importedName,source:r.source,isTypeOnly:a.isTypeOnly||r.isTypeOnly})}return``}),i},Qn=e=>{for(let t of e.values())if(!t.isTypeOnly&&!t.didExport)return!0;return!1},$n=e=>{let t=kn(e).trim();if(!t)return qn();let n=new Map,r=new Map,i=[];return Zn(t,n,r,i).trim()||Qn(n)?qn():{isBarrel:r.size>0||i.length>0,exportsByName:r,starExportSources:i}},er=e=>{if(!Kn(e))return qn();D(e);let t;try{t=r.statSync(e)}catch{t=null}let n=Gn.get(e);if(n!==void 0&&t!==null&&n.mtimeMs===t.mtimeMs&&n.size===t.size)return n.moduleInfo;if(t===null)return qn();let i=qn();try{i=$n(r.readFileSync(e,`utf8`))}catch{i=qn()}return Gn.set(e,{mtimeMs:t.mtimeMs,size:t.size,moduleInfo:i}),i},tr=e=>er(e).isBarrel,nr=i.join(`android`,`gradle.properties`),rr=/^\s*newArchEnabled\s*=\s*false\s*$/m,ir=[`app.config.ts`,`app.config.js`,`app.config.cjs`,`app.config.mjs`],ar=[`app.config.json`,`app.json`],or=new WeakMap,sr=e=>{D(i.join(e,nr));for(let t of ir)dt(i.join(e,t));for(let t of ar)D(i.join(e,t))},cr=e=>{try{return r.readFileSync(e,`utf-8`)}catch{return null}},lr=e=>{let t=e.dependencies?.[`react-native`]??e.devDependencies?.[`react-native`];return typeof t==`string`?t:null},ur=e=>{let t=e.match(/(?:^|[^\d.])0\.(\d+)/);return t?Number.parseInt(t[1],10):null},dr=e=>{let t=cr(i.join(e,nr));return t!==null&&rr.test(t)},fr=e=>{for(let t of ir)if(r.existsSync(i.join(e,t)))return!1;for(let t of ar){let n=cr(i.join(e,t));if(n===null)continue;let r;try{r=JSON.parse(n)}catch{continue}if(typeof r!=`object`||!r)continue;let a=Object.getOwnPropertyDescriptor(r,`expo`)?.value;if(!(typeof a!=`object`||!a)&&Object.getOwnPropertyDescriptor(a,`newArchEnabled`)?.value===!1)return!0}return!1},pr=(e,t)=>{let n=lr(t);if(n!==null){let e=ur(n);if(e!==null&&e<76)return!0}return dr(e)||fr(e)},mr=e=>{let t=vt(e);if(!t)return!1;let n=yt(e);if(!n)return!1;sr(t);let r=or.get(n);if(r!==void 0)return r;let i=pr(t,n);return or.set(n,i),i},hr=e=>{let t=e.match(/^(\d+)(?:\.(\d+))?(?:\.(\d+))?(-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/);return t?{major:Number(t[1]),minor:Number(t[2]??0),patch:Number(t[3]??0),isPrerelease:!!t[4]}:null},gr=(e,t)=>e.major-t.major||e.minor-t.minor||e.patch-t.patch||Number(t.isPrerelease)-Number(e.isPrerelease),_r=e=>{if(typeof e!=`string`)return null;let t=e.trim();if(!t||/^(?:catalog|file|git|https?|link|npm|workspace):/.test(t)||/^(?:latest|next|\*)$/.test(t))return null;let n=[];for(let e of t.split(`||`)){let t=e.trim();if(/^<(?!=)/.test(t)||/^<=/.test(t))return null;let r=t.match(/\d+(?:\.\d+)?(?:\.\d+)?(?:-[0-9A-Za-z.-]+)?/)?.[0];if(!r)return null;let i=hr(r);if(!i)return null;n.push(i)}return n.reduce((e,t)=>gr(t,e)<0?t:e)},vr=e=>_r(e.dependencies?.ink??e.devDependencies?.ink??e.peerDependencies?.ink??e.optionalDependencies?.ink),yr=e=>{let t=e;for(;;){let e=bt(i.join(t,`node_modules`,`ink`));if(e)return{didFindPackage:!0,version:typeof e.version==`string`?hr(e.version):null};let n=i.dirname(t);if(n===t)return{didFindPackage:!1,version:null};t=n}},br=e=>{if(!e)return null;let t=vt(i.resolve(e));if(!t)return null;let n=yr(t);if(n.didFindPackage)return n.version;let r=bt(t);return r?vr(r):null},xr=(e,t)=>{let n=br(e),r=hr(t);return!!(n&&r&&gr(n,r)>=0)},Sr=new Set([`@monaco-editor/react`,`monaco-editor`,`recharts`,`@react-pdf/renderer`,`react-quill`,`@codemirror/view`,`@codemirror/state`,`chart.js`,`react-chartjs-2`,`@toast-ui/editor`,`draft-js`,`mermaid`]),Cr=new Set([`fetch`,`ky`,`got`,`wretch`,`ofetch`]),wr=new Set([`axios`,`ky`,`got`,`ofetch`,`wretch`,`request`]),Tr=new Set([`create`,`insert`,`insertInto`,`update`,`upsert`,`delete`,`remove`,`destroy`,`set`,`append`]),Er=new Set([`POST`,`PUT`,`DELETE`,`PATCH`]),Dr=new Set([`Map`,`Set`,`WeakMap`,`WeakSet`,`Headers`,`URLSearchParams`,`FormData`,`Response`,`NextResponse`]),Or=new Set([`Response`,`NextResponse`]),kr=new Set([`json`,`redirect`,`next`,`rewrite`,`error`]),Ar=new Set([`wheel`,`mousewheel`,`touchstart`,`touchmove`]),jr=new Set([`defer`,`async`]),Mr=new Set([`text/javascript`,`application/javascript`,`module`]),Nr=new Set([`setTimeout`,`setInterval`,`requestAnimationFrame`,`requestIdleCallback`,`queueMicrotask`]),Pr=new Set([`setInterval`,`setTimeout`]),Fr=new Set([`clearInterval`,`clearTimeout`]),Ir=new Set([`WebSocket`,`EventSource`,`BroadcastChannel`,`RTCPeerConnection`]),Lr=new Set([`location`,`window`,`document`,`navigator`,`history`,`screen`,`performance`]),Rr=new Set([`IntersectionObserver`,`MutationObserver`,`ResizeObserver`,`PerformanceObserver`]),zr=new Set([`blur`,`focus`,`getBoundingClientRect`,`getClientRects`,`measure`,`measureInWindow`,`measureLayout`,`scroll`,`scrollBy`,`scrollIntoView`,`scrollTo`,`select`,`setRangeText`,`setSelectionRange`]),Br=new Set([`localStorage`,`sessionStorage`]),Vr=new Set([`index`,`idx`,`i`]),Hr=new Set([`react`,`react-dom`,`preact/compat`,`preact/hooks`,`@wordpress/element`]),Ur=new Set([`next`,`next-themes`,`@remix-run/react`,`swr`,`zustand`,`jotai`,`recoil`,`wouter`,`framer-motion`,`@apollo/client`,`urql`,`usehooks-ts`]),Wr=/^(?:isLoading|isPending)$/,Gr=new Set([`useState`,`useMemo`,`useRef`]),Kr=new Set([`Click`,`Change`,`Input`,`Blur`,`Focus`]),qr=new Set([`Boolean`,`String`,`Number`,`Array`,`Object`,`parseInt`,`parseFloat`]),Jr=/^set[A-Z]/,Yr=/^render[A-Z]/,Xr=/^[A-Z]/,Zr=/^on[A-Z]/,Qr=/^use[A-Z]/,$r=/^(?:on|handle)[A-Z]/,ei=new Set([`useEffect`,`useLayoutEffect`]),ti=new Set([`useEffect`,`useLayoutEffect`,`useMemo`,`useCallback`]),ni=new Set([`use`,`useState`,`useRef`,`useMemo`,`useCallback`,`useReducer`,`useContext`,`useEffect`,`useLayoutEffect`,`useInsertionEffect`,`useImperativeHandle`,`useSyncExternalStore`,`useDeferredValue`,`useTransition`,`useId`,`useDebugValue`]),ri=new Set([`memo`,`forwardRef`,`React.memo`,`React.forwardRef`]),ii=new Set([`useMemo`,`useCallback`]),ai=new Set([`memo`,`forwardRef`,`observer`,`lazy`]),oi=new Set([`subscribe`,`addEventListener`,`addListener`,`on`,`watch`,`listen`,`sub`]),si=new Set([`subscribe`,`sub`,`listen`]),ci=new Set([`unsubscribe`,`removeEventListener`,`removeListener`,`off`,`unwatch`,`unlisten`,`unsub`,`abort`,`disconnect`,`unobserve`,`close`]),li=new Set([`remove`,`cleanup`,`dispose`,`destroy`,`stop`,`teardown`]),ui=new Set([...ci,`cleanup`,`dispose`,`destroy`,`teardown`]),di=new Set([...oi,`connect`,`disconnect`,`open`,`close`,`fetch`,`post`,`put`,`patch`]);new Set([...wr,`api`,`client`,`http`,`fetcher`]);const fi=new Set([`get`,`head`,`options`,`delete`]),pi=new Set([...Cr,...Nr]),mi=new Set([...Cr,`post`,`put`,`patch`,`navigate`,`navigateTo`,`showNotification`,`toast`,`alert`,`confirm`,`logVisit`,`captureEvent`]),hi=new Set([`post`,`put`,`patch`,`delete`,`navigate`,`capture`,`track`,`logEvent`]),gi=new Set([`push`,`replace`]),_i=new Set([`router`,`navigation`,`navigator`,`history`,`location`]),M=(e,t={})=>{if(!y(e,`Property`)&&!y(e,`MethodDefinition`)&&!y(e,`PropertyDefinition`)&&!y(e,`MemberExpression`))return null;let n=y(e,`MemberExpression`)?e.property:e.key;if(e.computed)return t.allowComputedString&&y(n,`Literal`)&&typeof n.value==`string`?n.value:t.allowComputedString&&t.stringifyNonStringLiterals&&y(n,`Literal`)?String(n.value):t.allowComputedString&&y(n,`TemplateLiteral`)&&n.expressions.length===0?n.quasis[0]?.value.cooked??n.quasis[0]?.value.raw??null:null;if(y(n,`Identifier`))return n.name;if(y(n,`Literal`)){if(typeof n.value==`string`)return n.value;if(t.stringifyNonStringLiterals)return String(n.value)}return null},N=e=>{let t=e.property;return!e.computed&&y(t,`Identifier`)?t.name:e.computed&&y(t,`Literal`)?typeof t.value==`string`?t.value:null:e.computed&&y(t,`TemplateLiteral`)&&t.expressions.length===0?t.quasis[0]?.value.cooked??t.quasis[0]?.value.raw??null:null},P=(e,t,n=!1)=>{if(e.type!==`Identifier`&&e.type!==`JSXIdentifier`)return null;let r=null,i=t.symbolFor(e);for(;i?.kind===`const`;){if(!i.initializer||i.declarationNode.type!==`VariableDeclarator`)return null;if(i.declarationNode.id!==i.bindingIdentifier)return n?i:null;let e=O(i.initializer);if(e.type!==`Identifier`)return i;if(r?.has(i.id))return null;r||=new Set,r.add(i.id),i=t.symbolFor(e)}return i},vi={},yi=new WeakMap,bi=(e,t)=>typeof e==`string`?e===t:e.has(t),xi=e=>{let t=yi.get(e);if(t)return t;let n=e.declarationNode.parent,r=!!(e.kind===`import`&&n&&n.type===`ImportDeclaration`&&typeof n.source.value==`string`&&Hr.has(n.source.value)),i={importedName:r?j(e.declarationNode):void 0,isReactImport:r};return yi.set(e,i),i},Si=e=>xi(e).isReactImport,Ci=(e,t,n,r)=>{if(e.type!==`Identifier`)return!1;let i=r?P(e,n):n.symbolFor(e);if(!i)return!1;let a=xi(i);return!!(a.isReactImport&&a.importedName&&bi(t,a.importedName))},wi=(e,t)=>{let n=P(e,t);if(!n)return!1;let r=xi(n);return r.isReactImport?n.declarationNode.type===`ImportDefaultSpecifier`||n.declarationNode.type===`ImportNamespaceSpecifier`||r.importedName===`default`:!1},Ti=(e,t,n)=>e.type===`Identifier`?wi(e,t)?!0:!!(n.allowGlobalReactNamespace&&e.name===`React`&&t.isGlobalReference(e)):!1,Ei=(e,t,n,r)=>{let i=n.symbolFor(e);if(!i||i.kind!==`const`||!i.initializer||i.declarationNode.type!==`VariableDeclarator`)return!1;let a=i.declarationNode.id;if(a.type!==`ObjectPattern`)return!1;for(let e of a.properties){if(e.type!==`Property`||e.value!==i.bindingIdentifier)continue;let a=M(e);return!!(a&&bi(t,a)&&Ti(O(i.initializer),n,r))}return!1},F=(e,t,n,r=vi)=>e.type===`CallExpression`?Di(e.callee,t,n,r):!1,Di=(e,t,n,r,i)=>{let a=O(e);if(r.resolveConditionalAliases&&a.type===`ConditionalExpression`)return Di(a.consequent,t,n,r,new Set(i))&&Di(a.alternate,t,n,r,new Set(i));if(a.type===`Identifier`){if(Ci(a,t,n,!!r.resolveNamedAliases)||r.resolveNamedAliases&&Ei(a,t,n,r))return!0;if(r.resolveConditionalAliases){let e=n.symbolFor(a);if(e?.kind===`const`&&e.initializer&&!i?.has(e.id)){let a=i??new Set;return a.add(e.id),Di(e.initializer,t,n,r,a)}}return!!(r.allowUnboundBareCalls&&bi(t,a.name)&&n.isGlobalReference(a))}return a.type!==`MemberExpression`||!bi(t,N(a)??``)?!1:Ti(O(a.object),n,r)},Oi=e=>e.includes(`\\`)?e.replaceAll(`\\`,`/`):e,ki=e=>{let t=new Set(e);if(t.size!==1)return null;let[n]=t;return n??null},Ai=(e,t,n,r)=>{let i=en(e,n);return i?ji(i,t,new Set(r))||(Fn(i,t)?i:null):null},ji=(e,t,n=new Set)=>{if(n.has(e))return null;n.add(e);let r=er(e);if(!r.isBarrel)return null;let i=r.exportsByName.get(t);if(i){let t=en(e,i.source);return t?ji(t,i.importedName,n)??t:null}return t===`default`?null:ki(r.starExportSources.map(r=>Ai(e,t,r,n)).filter(e=>!!e))},Mi=(e,t,n)=>{let r=k(e,t,n);return r?{filePath:r.filePath,node:r.exportedNode,programNode:r.programNode,kind:v(r.exportedNode)?`function`:`initializer`}:null},I=e=>{let t=e;for(;t.parent&&jt.has(t.parent.type);)t=t.parent;return t},Ni=(e,t)=>{if(!y(e,`ArrowFunctionExpression`)&&!y(e,`FunctionExpression`)&&!y(e,`FunctionDeclaration`))return null;let n=e.params[0],r=y(n,`AssignmentPattern`)?n.left:n;if(y(r,`ObjectPattern`)){let e=r.properties.find(e=>y(e,`Property`)&&M(e,{allowComputedString:!0})===`children`);if(!e||!y(e,`Property`))return null;let n=y(e.value,`AssignmentPattern`)?e.value.left:e.value;if(!y(n,`Identifier`))return null;let i=t.symbolFor(n);return!i||i.references.length===0||i.references.some(e=>e.flag!==`read`)?null:i.references.map(e=>e.identifier)}if(!y(r,`Identifier`))return null;let i=t.symbolFor(r);if(!i||i.references.length===0)return null;let a=[];for(let e of i.references){if(e.flag!==`read`)return null;let t=[],n=I(e.identifier);for(;n.parent&&y(n.parent,`MemberExpression`)&&n.parent.object===n;){let e=N(n.parent);if(!e)return null;t.push(e),n=I(n.parent)}if(t[0]!==`children`){if(t.length===0)return null;continue}if(t.length!==1)return null;a.push(n)}return a.length>0?a:null},L=e=>{let t=e.parent;for(;t;){if(v(t))return t;t=t.parent??null}return null},Pi=e=>{let t=e;for(;t;){if(y(t,`Program`))return t;t=t.parent??null}return null},Fi=e=>{let t=new Map,n=e.body??[];for(let e of n){if(e.type!==`ImportDeclaration`||!(`source`in e)||!e.source)continue;let n=e.source.value;if(typeof n==`string`&&!(!(`specifiers`in e)||!Array.isArray(e.specifiers)))for(let r of e.specifiers){if(!(`local`in r)||!r.local)continue;let e=r.local;if(typeof e.name==`string`){if(r.type===`ImportDefaultSpecifier`)t.set(e.name,{source:n,imported:null,isDefault:!0,isNamespace:!1});else if(r.type===`ImportNamespaceSpecifier`)t.set(e.name,{source:n,imported:null,isDefault:!1,isNamespace:!0});else if(r.type===`ImportSpecifier`){let i=r.imported,a=i?.name??(typeof i?.value==`string`?i.value:null);t.set(e.name,{source:n,imported:a,isDefault:!1,isNamespace:!1})}}}}return t},Ii=new WeakMap,Li=e=>{let t=Pi(e);if(!t)return null;let n=Ii.get(t);return n||(n=Fi(t),Ii.set(t,n)),n},Ri=(e,t)=>{let n=Li(e);if(!n)return!1;for(let e of n.values())if(t.includes(e.source))return!0;return!1},zi=(e,t,n)=>{let r=Li(e);if(!r)return!1;let i=r.get(t);return i?i.source===n:!1},Bi=(e,t,n)=>{let r=Li(e);if(!r)return!1;let i=r.get(t);return i?i.isNamespace&&i.source===n:!1},Vi=(e,t,n)=>{let r=Li(e);if(!r)return!1;let i=r.get(t);return i?i.isDefault&&i.source===n:!1},Hi=(e,t,n)=>{let r=Li(e);if(!r)return null;let i=r.get(t);return!i||i.source!==n?null:i.imported},Ui=(e,t)=>{let n=Li(e);return n?n.get(t)?.source??null:null},Wi=(e,t)=>{let n=Li(e)?.get(t);return n?n.isNamespace?{source:n.source,exportedName:null,isNamespace:!0}:{source:n.source,exportedName:n.isDefault?`default`:n.imported,isNamespace:!1}:null},Gi=e=>{let t=e,n=t.parent;for(;n&&O(n)===e;)t=n,n=t.parent;return n&&y(n,`AssignmentExpression`)&&n.operator===`=`&&n.left===t?n.right:null},Ki=e=>{let t=e.range?.[0];return typeof t==`number`?t:null},qi=new Set([`let`,`var`]),Ji=new Set([`ConditionalExpression`,`LogicalExpression`]),Yi=new WeakMap,Xi=(e,t,n)=>{let r=e.parent??null;for(;r&&n.blockOf(r)===t;){if(Ji.has(r.type))return!0;r=r.parent??null}return!1},Zi=(e,t)=>e.size===t.size&&[...e].every(e=>t.has(e)),Qi=(e,t)=>{let n=new Set(e);for(let e of t)e.isConditionalWithinBlock||(n=new Set),n.add(e);return n},$i=(e,t,n)=>{let r=L(t);if(L(e.bindingIdentifier)!==r||!r)return[];let i=n.cfgFor(r);if(!i)return[];let a=i.blockOf(t);if(!a)return[];let o=Ki(t),s=Ki(e.bindingIdentifier);if(o===null||s===null)return[];let c=new Map,l=(e,t,n)=>{let r=i.blockOf(t);if(!r)return;let a=c.get(r)??[];a.push({expression:e,position:n,isConditionalWithinBlock:Xi(t,r,i)}),c.set(r,a)};e.initializer&&l(e.initializer,e.bindingIdentifier,s);for(let t of e.references){let e=Ki(t.identifier);if(t.flag===`read`||L(t.identifier)!==r||e===null||e>=o)continue;let n=Gi(t.identifier);n&&l(n,t.identifier,e)}for(let e of c.values())e.sort((e,t)=>e.position-t.position);let u=new Map,d=new Map,f=new Set([i.entry]),p=[i.entry];for(;p.length>0;){let e=p.pop();if(!e)break;for(let t of e.successors)f.has(t.to)||(f.add(t.to),p.push(t.to))}if(!f.has(a))return[];let m=!0;for(;m;){m=!1;for(let e of i.blocks){if(!f.has(e))continue;let t=new Set;for(let n of e.predecessors)if(f.has(n.from))for(let e of d.get(n.from)??[])t.add(e);let n=Qi(t,c.get(e)??[]),r=u.get(e)??new Set,i=d.get(e)??new Set;(!Zi(t,r)||!Zi(n,i))&&(u.set(e,t),d.set(e,n),m=!0)}}let h=(c.get(a)??[]).filter(e=>e.position<o);return[...Qi(u.get(a)??new Set,h)].map(e=>e.expression)},ea=(e,t,n)=>{if(!qi.has(e.kind))return e.initializer?[e.initializer]:[];if(!n)return[];let r=Yi.get(n);r||(r=new WeakMap,Yi.set(n,r));let i=r.get(e);i||(i=new WeakMap,r.set(e,i));let a=i.get(t);if(a)return a;let o=$i(e,t,n);return i.set(t,o),o},ta=e=>{if(!v(e)||!y(e.body,`BlockStatement`))return[];let t=[];return A(e.body,n=>{if(n!==e.body&&(v(n)||y(n,`ClassDeclaration`)||y(n,`ClassExpression`)))return!1;y(n,`ReturnStatement`)&&t.push(n)}),t},R=e=>{if(y(e,`ReturnStatement`)||y(e,`ThrowStatement`))return!0;if(y(e,`IfStatement`)){if(y(e.test,`Literal`)){let t=e.test.value?e.consequent:e.alternate;return t?R(t):!1}return!!(e.alternate&&R(e.consequent)&&R(e.alternate))}if(y(e,`TryStatement`))return e.finalizer&&R(e.finalizer)?!0:R(e.block)?e.handler?R(e.handler.body):!0:!1;if(y(e,`DoWhileStatement`))return R(e.body);if(y(e,`WhileStatement`)){let t=e.test;return!!(y(t,`Literal`)&&t.value&&R(e.body))}if(y(e,`ForStatement`)){let t=e.test;return!!((!t||y(t,`Literal`)&&t.value)&&R(e.body))}return y(e,`BlockStatement`)?e.body.some(e=>R(e)):!1},na=new Set([`let`,`var`]),ra=e=>!v(e)||!e.body?[]:y(e.body,`BlockStatement`)?ta(e).flatMap(e=>e.argument?[e.argument]:[]):[e.body],ia=e=>{if(!v(e)||!y(e.body,`BlockStatement`))return!1;let t=!1;return A(e.body,n=>{if(t||n!==e.body&&v(n))return!1;y(n,`ReturnStatement`)&&!n.argument&&(t=!0)}),t},aa=(e,t,n,r=`some`)=>{let i=new Set,a=new Set,o,s=e=>{if(a.has(e))return!1;a.add(e);try{let t=ra(e);return r===`every`&&v(e)&&y(e.body,`BlockStatement`)&&(!R(e.body)||ia(e))?!1:t.length>0&&(r===`every`?t.every(o):t.some(o))}finally{a.delete(e)}};o=a=>{let l=O(a);if(i.has(l))return!1;i.add(l);try{if(t(l))return!0;if(y(l,`Identifier`)){let t=e.symbolFor(l);if(!t||t.kind!==`const`&&!na.has(t.kind))return!1;let i=ea(t,l,n),a=e=>{let t=O(e);return!v(t)&&o(t)};return r===`every`?i.length>0&&i.every(a):i.some(a)}if(y(l,`CallExpression`)){if(l.arguments.length!==0||!y(l.callee,`Identifier`))return!1;let t=e.symbolFor(l.callee);if(!t||t.kind!==`const`&&t.kind!==`function`)return!1;let n=t.initializer?O(t.initializer):null,r=null;return v(n)?r=n:v(t.declarationNode)&&(r=t.declarationNode),!r||r.async||r.generator||r.params.length!==0?!1:s(r)}return y(l,`ConditionalExpression`)?c(l.consequent,l.alternate):y(l,`LogicalExpression`)?c(l.left,l.right):!1}finally{i.delete(l)}};let c=(e,t)=>{let n=[o(e),o(t)];return r===`every`?n.every(Boolean):n.some(Boolean)};return{expressionMatches:o,functionMatches:s}},oa=(e,t,n,r,i=`some`)=>aa(t,n,r,i).functionMatches(e),sa=(e,t,n,r,i)=>{let a=i.cfgFor(e),o=a?.blockOf(t);if(!a||!o)return!1;let s=new Set(ta(e).flatMap(e=>{if(!e.argument||!aa(n,r,i,`every`).expressionMatches(e.argument))return[];let t=a.blockOf(e.argument);return t?[t]:[]}));if(s.size===0)return!1;let c=new Set([o]),l=[o];for(;l.length>0;){let e=l.pop();if(!e)break;if(!s.has(e))for(let t of e.successors){if(t.to===a.exit)return!1;c.has(t.to)||(c.add(t.to),l.push(t.to))}}return!0},ca=e=>y(e,`Program`)?e.range[1]:e.range[0],la=new WeakMap,ua=(e,t)=>{t.push(...e.symbols);for(let n of e.children)ua(n,t)},da=e=>{let t=new Map,n=[];ua(e.rootScope,n);for(let r of n){let n=P(r.bindingIdentifier,e);if(!n)continue;let i=t.get(n.id)??[];i.push(r),t.set(n.id,i)}return t},fa=(e,t)=>{let n=P(e,t);if(!n)return[];let r=la.get(t);return r||(r=da(t),la.set(t,r)),r.get(n.id)??[]},pa=e=>{let t=e.expressions??[],n=e.quasis??[];if(t.length!==0||n.length!==1)return null;let r=n[0]?.value;return r?.cooked??r?.raw??null},z=(e,t,n={})=>{let r=M(e,{allowComputedString:!0,stringifyNonStringLiterals:n.stringifyNonStringLiterals});if(r!==null||!y(e,`Property`)&&!y(e,`MethodDefinition`)&&!y(e,`PropertyDefinition`)&&!y(e,`MemberExpression`)||!e.computed)return r;let i=O(y(e,`MemberExpression`)?e.property:e.key);if(!y(i,`Identifier`))return null;let a=P(i,t);if(a?.kind!==`const`||!a.initializer)return null;let o=O(a.initializer);return y(o,`Literal`)?typeof o.value==`string`?o.value:n.allowConstNumericLiteral&&typeof o.value==`number`?String(o.value):null:n.allowConstTemplateLiteral&&y(o,`TemplateLiteral`)?pa(o):null},ma=new Set([`CatchClause`,`ConditionalExpression`,`DoWhileStatement`,`ForInStatement`,`ForOfStatement`,`ForStatement`,`IfStatement`,`LogicalExpression`,`SwitchCase`,`SwitchStatement`,`TryStatement`,`WhileStatement`]),ha=(e,t)=>{let n=e.parent??null;for(;n&&n!==t;){if(ma.has(n.type))return!1;n=n.parent??null}return n===t},ga=e=>L(e)??Pi(e),_a=e=>{let t=I(e),n=t.parent;return!!(n&&y(n,`VariableDeclarator`)&&n.init===t&&n.parent&&y(n.parent,`VariableDeclaration`)&&n.parent.kind===`const`)},va=e=>{let t=I(e),n=t.parent;return!!(n&&(y(n,`AssignmentExpression`)&&n.left===t||y(n,`UpdateExpression`)&&n.argument===t||y(n,`UnaryExpression`)&&n.operator===`delete`&&n.argument===t))},ya=e=>{let t=I(e),n=t.parent;return n&&y(n,`MemberExpression`)&&O(n.object)===t?n:null},ba=(e,t,n,r)=>{if(!y(e,`ObjectExpression`))return null;for(let i of e.properties.toReversed()){if(!y(i,`Property`))return null;let e=z(i,n);if(e===null)return null;if(e===t)return i.kind===`init`?B(i.value,n,r):null}return null},xa=(e,t,n,r)=>{if(!y(e,`ObjectExpression`))return[];let i=[],a=new Set;for(let o of e.properties){if(!y(o,`Property`))continue;let e=z(o,n),s=o.kind===`init`||o.kind===`get`?B(o.value,n,new Set(r)):null;e===t?(i=s?[s]:[],a.clear(),s&&a.add(s)):e===null&&s&&!a.has(s)&&(i.push(s),a.add(s))}return i},Sa=(e,t,n,r)=>{if(!y(e,`ClassDeclaration`)&&!y(e,`ClassExpression`))return null;for(let i of e.body.body.toReversed()){if(!y(i,`MethodDefinition`)&&!y(i,`PropertyDefinition`)||!i.static)continue;let e=z(i,n);if(e===null)return null;if(e===t)return y(i,`MethodDefinition`)&&i.kind!==`method`?null:i.value?B(i.value,n,r):null}return null},Ca=(e,t,n,r)=>{if(!y(e,`ClassDeclaration`)&&!y(e,`ClassExpression`))return[];let i=[],a=new Set;for(let o of e.body.body){if(!y(o,`MethodDefinition`)&&!y(o,`PropertyDefinition`)||!o.static)continue;let e=z(o,n),s=o.value&&(!y(o,`MethodDefinition`)||o.kind===`method`||o.kind===`get`)?B(o.value,n,new Set(r)):null;e===t?(i=s?[s]:[],a.clear(),s&&a.add(s)):e===null&&s&&!a.has(s)&&(i.push(s),a.add(s))}return i},wa=(e,t,n,r,i,a,o)=>{let s=ga(t);if(!s||!y(e,`Identifier`))return{exactFunction:null,possibleFunctions:[]};let c=[];for(let r of fa(e,a))for(let e of r.references){let r=e.identifier;if(r.range[0]>=t.range[0]||_a(r))continue;let i=ya(r);if(!i){ga(r)===s&&c.push({assignedExpression:null,isDefinite:!1,offset:r.range[0]});continue}if(!va(i)||ga(i)!==s)continue;let o=z(i,a),l=I(i).parent,u=l&&y(l,`AssignmentExpression`)&&l.operator===`=`?l.right:null;if(o===null){c.push({assignedExpression:u,isDefinite:!1,offset:i.range[0]});continue}if(o===n){if(!l||!y(l,`AssignmentExpression`)||l.operator!==`=`||!ha(i,s)){c.push({assignedExpression:u,isDefinite:!1,offset:i.range[0]});continue}c.push({assignedExpression:u,isDefinite:!0,offset:l.range[0]})}}c.sort((e,t)=>e.offset-t.offset);let l=r,u=i,d=new Set(i);for(let e of c){let t=e.assignedExpression?B(e.assignedExpression,a,new Set(o)):null;if(e.isDefinite){l=t,u=t?[t]:[],d.clear(),t&&d.add(t);continue}l=null,t&&!d.has(t)&&(u.push(t),d.add(t))}return{exactFunction:l,possibleFunctions:u}},Ta=(e,t,n)=>{if(!y(e,`MemberExpression`))return{exactFunction:null,possibleFunctions:[]};let r=N(e);if(r===null)return{exactFunction:null,possibleFunctions:[]};let i=O(e.object);if(y(i,`ObjectExpression`))return{exactFunction:ba(i,r,t,n),possibleFunctions:xa(i,r,t,n)};if(y(i,`ClassExpression`))return{exactFunction:Sa(i,r,t,n),possibleFunctions:Ca(i,r,t,n)};if(!y(i,`Identifier`))return{exactFunction:null,possibleFunctions:[]};let a=P(i,t);if(!a||n.has(a.id))return{exactFunction:null,possibleFunctions:[]};n.add(a.id);let o=null,s=[];if(a.kind===`const`&&a.initializer){let e=O(a.initializer);o=ba(e,r,t,n),s=xa(e,r,t,n)}else a.kind===`class`&&a.initializer&&(o=Sa(a.initializer,r,t,n),s=Ca(a.initializer,r,t,n));return wa(i,e,r,o,s,t,n)},Ea=(e,t,n)=>{let r=O(e);if(y(r,`CallExpression`)){let e=O(r.callee);return y(e,`MemberExpression`)&&N(e)===`bind`?Ea(e.object,t,n):[]}if(y(r,`MemberExpression`)){let e=N(r);return e===`call`||e===`apply`?Ea(r.object,t,n):Ta(r,t,n).possibleFunctions}let i=B(r,t,n);return i?[i]:[]},B=(e,t,n)=>{let r=O(e);if(v(r))return r;if(y(r,`CallExpression`)){let e=O(r.callee);return y(e,`MemberExpression`)&&N(e)===`bind`?B(e.object,t,n):null}if(y(r,`MemberExpression`)){let e=N(r);return e===`call`||e===`apply`?B(r.object,t,n):Ta(r,t,n).exactFunction}if(!y(r,`Identifier`))return null;let i=P(r,t);return!i||n.has(i.id)?null:(n.add(i.id),i.kind===`function`?!i.references.some(e=>e.flag!==`read`)&&v(i.declarationNode)?i.declarationNode:null:i.kind!==`const`||!i.initializer?null:B(i.initializer,t,n))},Da=(e,t)=>B(e,t,new Set),Oa=(e,t)=>Ea(e,t,new Set),ka=new WeakMap,Aa=(e,t)=>{let n=O(e);return y(n,`Identifier`)?t.symbolFor(n):null},ja=(e,t)=>{let n=I(e),r=n.parent;return!r||!y(r,`AssignmentExpression`)||r.operator!==`=`||r.left!==n?null:Aa(r.right,t)},Ma=e=>{let t=I(e),n=t.parent;return n&&y(n,`VariableDeclarator`)&&n.init===t&&(y(n.id,`Identifier`)||y(n.id,`ObjectPattern`))?!0:!!(n&&y(n,`AssignmentExpression`)&&n.operator===`=`&&n.right===t&&y(O(n.left),`Identifier`))},Na=(e,t,n)=>{if(e.initializer&&y(e.declarationNode,`VariableDeclarator`)&&e.declarationNode.id===e.bindingIdentifier){let r=Aa(e.initializer,n);if(r&&t.has(r.id))return!0}return e.references.some(e=>{let r=ja(e.identifier,n);return!!(r&&t.has(r.id))})},Pa=(e,t)=>{let n=P(e,t);if(!n)return[];let r=ka.get(t);r||(r=new Map,ka.set(t,r));let i=r.get(n.id);if(i)return i;let a=[],o=[t.rootScope];for(;o.length>0;){let e=o.pop();e&&(a.push(...e.symbols),o.push(...e.children))}let s=new Set([n.id]),c=!0;for(;c;){c=!1;for(let e of a)s.has(e.id)||Na(e,s,t)&&(s.add(e.id),c=!0)}let l=a.filter(e=>s.has(e.id));return r.set(n.id,l),l},Fa=e=>{let t=e;for(;t;){if(v(t)||y(t,`Program`))return t;t=t.parent??null}return null},Ia=new WeakMap,La=(e,t)=>{let n=Ia.get(t);if(!n){let r=new Map,i=new Map,a=Pi(e);a&&A(a,e=>{if(!y(e,`CallExpression`))return;let n=O(e.callee),a=y(n,`Identifier`)?t.symbolFor(n):null,o=a?i.get(a.id):void 0;o===void 0&&(o=Oa(e.callee,t),a&&i.set(a.id,o));for(let t of o){let n=r.get(t)??[];n.push(e),r.set(t,n)}}),n=r,Ia.set(t,n)}return n.get(e)??[]},Ra=new WeakMap,za=(e,t)=>{let n=Ra.get(t);if(n===void 0){let e=null;A(t,n=>{y(n,`AwaitExpression`)&&L(n)===t&&(e===null||n.range[0]<e)&&(e=n.range[0])}),n=e,Ra.set(t,n)}return n===null||e.range[0]<n},Ba=(e,t,n,r=new Set,i=null,a)=>{if(r.has(e)||!v(e)||e.generator||i!==null&&!ha(i,e)||i!==null&&a!==void 0&&!a(i)||i!==null&&e.async&&!za(i,e))return[];r.add(e);let o=Fa(t);return o?La(e,n).flatMap(e=>{let s=Fa(e);return!s||i!==null&&!ha(e,s)||i!==null&&a!==void 0&&!a(e)?[]:s===o?e.range[0]<ca(t)?[[e.range[0]]]:[]:v(s)?Ba(s,t,n,new Set(r),i===null?null:e,a).map(t=>[...t,e.range[0]]):[]}):[]},Va=(e,t,n,r=new Set,i=null)=>Ba(e,t,n,r,i).length>0,Ha=e=>{let t=e.parent;return t?y(t,`AssignmentExpression`)?t.left===e:(y(t,`UpdateExpression`)||y(t,`UnaryExpression`)&&t.operator===`delete`)&&t.argument===e:!1},Ua=e=>{let t=e.parent;for(;t&&O(t)===e;)t=t.parent;return!t||!y(t,`MemberExpression`)||O(t.object)!==e||!Ha(t)?null:t},Wa=(e,t,n)=>{let r=Ua(e);return r&&z(r,n)===t?r:null},Ga=(e,t,n,r)=>e.references.some(e=>{let i=Wa(e.identifier,t,r);if(!i)return!1;let a=Fa(i),o=Fa(n);return!a||!o||!ha(i,a)?!1:a===o?i.range[0]<ca(n):v(a)&&Va(a,n,r)}),Ka=e=>{if(Ma(e))return!0;let t=I(e),n=t.parent;return!!(n&&y(n,`MemberExpression`)&&O(n.object)===t)},qa=e=>{if(Ma(e))return!0;let t=I(e),n=t.parent;if(!n||!y(n,`MemberExpression`)||O(n.object)!==t)return!1;let r=I(n),i=r.parent;return!(i&&y(i,`CallExpression`)&&i.callee===r)},Ja=(e,t,n)=>y(e,`Identifier`)?Pa(e,n).some(e=>e.references.some(e=>{let r=Ua(e.identifier);if(!r)return!1;let i=z(r,n);return i===null||i===t})):!1,Ya=(e,t,n)=>{let r=Fa(e),i=Fa(t);return!r||!i?!0:r===i?e.range[0]<ca(t):v(r)?Va(r,t,n):!0},Xa=(e,t,n,r)=>y(e,`Identifier`)?Pa(e,r).some(e=>e.references.some(e=>{let i=Ua(e.identifier);if(!i||!Ya(i,n,r))return!1;let a=z(i,r);return a===null||a===t})):!1,Za=(e,t,n)=>y(e,`Identifier`)?Ja(e,t,n)?!0:Pa(e,n).some(e=>e.references.some(e=>!Ka(e.identifier))):!1,Qa=(e,t,n,r)=>y(e,`Identifier`)?Xa(e,t,n,r)?!0:Pa(e,r).some(e=>e.references.some(e=>!qa(e.identifier)&&Ya(e.identifier,n,r))):!1,$a=(e,t)=>{let n=O(e);if(!y(n,`CallExpression`))return!1;let r=O(n.callee);if(!y(r,`MemberExpression`))return!1;let i=N(r);if(i===null)return!1;let a=O(r.object);return y(a,`Identifier`)&&Ja(a,i,t)},eo=(e,t,n,r)=>y(e,`Identifier`)?fa(e,r).some(e=>Ga(e,t,n,r)):!1,to=(e,t,n,r={})=>{let i=L(e);return i===L(t)?e.range[0]>=ca(t)||r.requireSynchronousWrite&&(!i||!ha(e,i)||r.isSynchronousNode!==void 0&&!r.isSynchronousNode(e))?[]:[[e.range[0]]]:i?r.requireSynchronousWrite?Ba(i,t,n,new Set,e,r.isSynchronousNode).map(t=>[...t,e.range[0]]):Ba(i,t,n).map(t=>[...t,e.range[0]]):r.requireSynchronousWrite?[]:[[-1/0,e.range[0]]]},no=(e,t,n,r={})=>to(e,t,n,r).length>0,V=(e,t,n,r={})=>e.references.some(e=>e.flag===`read`?!1:no(e.identifier,t,n,r)),ro=(e,t)=>{if(!y(e,`CallExpression`))return!1;let n=O(e.callee);if(y(n,`Identifier`)){let e=t.symbolFor(n);return!!(e&&!V(e,n,t))}if(!y(n,`MemberExpression`))return!1;let r=N(n),i=O(n.object);return!!(r&&y(i,`Identifier`)&&!eo(i,r,n,t))},io=new Set([`FunctionDeclaration`,`FunctionExpression`,`ArrowFunctionExpression`,`ClassDeclaration`,`ClassExpression`]),ao={allowGlobalReactNamespace:!1,allowUnboundBareCalls:!1},oo=new Set([`lodash/sortBy`,`lodash/sortBy.js`,`lodash-es/sortBy`,`lodash-es/sortBy.js`]),so=e=>y(e,`TSArrayType`)||y(e,`TSTupleType`)?!0:y(e,`TSTypeReference`)?y(e.typeName,`Identifier`)&&(e.typeName.name===`Array`||e.typeName.name===`ReadonlyArray`):!1,co=e=>{if(!y(e,`Identifier`))return!1;let t=e.typeAnnotation;return!!(t&&y(t,`TSTypeAnnotation`)&&so(t.typeAnnotation))},lo=(e,t)=>{if(!y(e,`CallExpression`))return!1;let n=O(e.callee);if(!y(n,`Identifier`))return!1;let r=t.symbolFor(n);if(!r||V(r,n,t)||!y(r.declarationNode,`ImportDefaultSpecifier`)&&!y(r.declarationNode,`ImportSpecifier`))return!1;let i=Wi(n,n.name);return!i||i.isNamespace?!1:oo.has(i.source)&&i.exportedName===`default`?!0:(i.source===`lodash`||i.source===`lodash-es`)&&i.exportedName===`sortBy`},uo=(e,t,n,r=new Set)=>{let i=O(e);if(y(i,`ArrayExpression`)||lo(i,t))return!0;if(!y(i,`Identifier`))return!1;let a=t.symbolFor(i);return!a||r.has(a.id)||V(a,n,t)?!1:co(a.bindingIdentifier)?!0:a.initializer?(r.add(a.id),uo(a.initializer,t,n,r)):!1},fo=(e,t)=>{if(!y(e,`CallExpression`))return!1;let n=O(e.callee);if(!y(n,`MemberExpression`)||N(n)!==`map`)return!1;let r=O(n.object);return uo(r,t,e)?!(y(r,`Identifier`)&&eo(r,`map`,e,t)):!1},po=(e,t)=>{if(e.type!==`ArrowFunctionExpression`&&e.type!==`FunctionExpression`)return!1;let n=e.parent;return y(n,`CallExpression`)?F(n,`useMemo`,t,{resolveNamedAliases:!0})&&ro(n,t)?n.arguments[0]===e:n.arguments.some(t=>t===e)&&fo(n,t):!1},mo=(e,t)=>io.has(e.type)&&!po(e,t),ho=(e,t)=>e.type===`JSXElement`||e.type===`JSXFragment`||F(e,`createElement`,t,ao)||go(e,t),go=(e,t)=>{if(!y(e,`CallExpression`))return!1;let n=O(e.callee);if(y(n,`Identifier`))return t.symbolFor(n)?.kind===`import`&&Hi(n,n.name,`react-dom`)===`createPortal`;if(!y(n,`MemberExpression`)||n.computed||!y(n.object,`Identifier`)||!y(n.property,`Identifier`)||n.property.name!==`createPortal`)return!1;let r=t.symbolFor(n.object);return!r||r.kind!==`import`?!1:Vi(n.object,n.object.name,`react-dom`)||Bi(n.object,n.object.name,`react-dom`)},_o=(e,t)=>{let n=!1;return A(e,r=>{if(n||r!==e&&mo(r,t))return!1;if(ho(r,t))return n=!0,!1}),n},vo=new WeakMap,yo=(e,t,n)=>{let r=vo.get(e);if(r&&r.scopes===t&&r.controlFlow===n)return r.hasRenderOutput;let i=oa(e,t,e=>_o(e,t),n);return vo.set(e,{scopes:t,controlFlow:n,hasRenderOutput:i}),i},bo=e=>y(e,`JSXIdentifier`)?e.name:y(e,`JSXNamespacedName`)?`${e.namespace.name}:${e.name.name}`:null,xo=new Set([`Component`,`PureComponent`]),So=(e,t,n,r)=>{let i=O(e);if(y(i,`MemberExpression`)){let e=N(i),n=O(i.object);return!!(e&&xo.has(e)&&y(n,`Identifier`)&&!eo(n,e,i,t)&&wi(n,t))}if(y(i,`ClassExpression`))return Co(i,t,n,r);if(!y(i,`Identifier`))return!1;let a=t.symbolFor(i);if(!a||r.has(a.id)||V(a,i,t))return!1;if(r.add(a.id),Si(a)){let e=j(a.declarationNode);return!!(e&&xo.has(e))}return y(a.declarationNode,`ClassDeclaration`)||y(a.declarationNode,`ClassExpression`)?Co(a.declarationNode,t,n,r):!!(a.kind===`const`&&a.initializer&&So(a.initializer,t,n,r))},Co=(e,t,n=new Set,r=new Set)=>!y(e,`ClassDeclaration`)&&!y(e,`ClassExpression`)||n.has(e)||!e.superClass?!1:(n.add(e),So(e.superClass,t,n,r)),wo=new Set([`FunctionDeclaration`,`FunctionExpression`,`ArrowFunctionExpression`,`MethodDefinition`,`Program`]),To=e=>{let t=e;for(;t;){if(wo.has(t.type))return t;t=t.parent??null}return null},Eo=(e,t)=>{if(t!==`let`&&t!==`const`)return To(e);let n=e.parent;for(;n;){if(n.type===`BlockStatement`){let t=n.parent;return t&&(t.type===`FunctionDeclaration`||t.type===`FunctionExpression`||t.type===`ArrowFunctionExpression`||t.type===`MethodDefinition`)?To(e):n}if(wo.has(n.type))return n;n=n.parent??null}return null},Do=(e,t,n,r)=>{if(y(e,`Identifier`)){let i=r.get(e.name)??[];i.push({bindingIdentifier:e,initializer:t,scopeOwner:n}),r.set(e.name,i);return}if(y(e,`ObjectPattern`)){for(let t of e.properties)if(y(t,`Property`)){let e=t.value;Do(e,y(e,`AssignmentPattern`)?e.right:null,n,r)}else y(t,`RestElement`)&&Do(t.argument,null,n,r);return}if(y(e,`ArrayPattern`)){for(let t of e.elements)t&&Do(t,y(t,`AssignmentPattern`)?t.right??null:null,n,r);return}if(y(e,`AssignmentPattern`)){Do(e.left,e.right??null,n,r);return}y(e,`RestElement`)&&Do(e.argument,null,n,r)},Oo=e=>{let t=new Map;return A(e,e=>{switch(e.type){case`VariableDeclarator`:{let n=e.parent,r=Eo(e,n?.type===`VariableDeclaration`?n.kind:void 0);r&&Do(e.id,e.init??null,r,t);break}case`FunctionDeclaration`:case`FunctionExpression`:case`ArrowFunctionExpression`:if(e.type!==`ArrowFunctionExpression`&&e.id){let n=e.parent?To(e.parent):null;if(n){let r=t.get(e.id.name)??[];r.push({bindingIdentifier:e.id,initializer:e,scopeOwner:n}),t.set(e.id.name,r)}}for(let n of e.params)Do(n,null,e,t);break;case`ClassDeclaration`:case`ClassExpression`:{if(!e.id)break;let n=e.parent?To(e.parent):null;if(n){let r=t.get(e.id.name)??[];r.push({bindingIdentifier:e.id,initializer:e,scopeOwner:n}),t.set(e.id.name,r)}break}case`ImportDeclaration`:{let n=To(e);if(!n)break;for(let r of e.specifiers){let e=r.local;if(e&&y(e,`Identifier`)){let i=t.get(e.name)??[];i.push({bindingIdentifier:e,initializer:r,scopeOwner:n}),t.set(e.name,i)}}break}case`TSImportEqualsDeclaration`:case`TSEnumDeclaration`:case`TSModuleDeclaration`:{let n=e.id;if(n?.type===`Identifier`){let r=To(e);if(r){let e=t.get(n.name)??[];e.push({bindingIdentifier:n,initializer:null,scopeOwner:r}),t.set(n.name,e)}}break}}}),t},ko=new WeakMap,Ao=new WeakMap,jo=e=>{let t=Pi(e);if(!t)return null;let n=ko.get(t);return n||(n=Oo(t),ko.set(t,n)),n},Mo=(e,t,n)=>{let r=jo(e);if(!r)return null;let i=r.get(t);if(!i||i.length===0)return null;let a=i[0];if(i.length===1&&a){let t=e;for(;t;){if(t===a.scopeOwner)return a;t=t.parent??null}return null}let o=e;for(;o;){let t=null;for(let r of i)if(r.scopeOwner===o){if(t===null){t=r;continue}if(n?.preferInitializerBeforeReference){let n=!!(r.initializer&&(y(r.initializer,`FunctionDeclaration`)||r.bindingIdentifier.range[0]<e.range[0]));if(n!==!!(t.initializer&&(y(t.initializer,`FunctionDeclaration`)||t.bindingIdentifier.range[0]<e.range[0]))){n&&(t=r);continue}}(r.initializer!==null||t.initializer===null)&&(t=r)}if(t)return t;o=o.parent??null}return null},No=(e,t,n)=>{let r=Ao.get(e),i;if(!r)i={},Ao.set(e,{primaryBindingName:t,primaryLookup:i});else if(r.primaryBindingName===t)i=r.primaryLookup;else{let e=r.additionalLookups;e||(e=new Map,r.additionalLookups=e);let n=e.get(t);n?i=n:(i={},e.set(t,i))}let a=n?.preferInitializerBeforeReference?`preferredResult`:`defaultResult`;if(a in i)return i[a]??null;let o=Mo(e,t,n);return i[a]=o,o},Po=e=>Xr.test(e),Fo=e=>{let t=No(e,e.name);if(!t?.initializer)return null;let n=t.bindingIdentifier.parent;if(!n||!y(n,`VariableDeclarator`)||n.id!==t.bindingIdentifier)return null;let r=n.parent;if(!r||!y(r,`VariableDeclaration`)||r.kind!==`const`)return null;let i=O(t.initializer);return y(i,`Literal`)&&typeof i.value==`string`?i.value:null},Io=e=>y(e,`JSXIdentifier`)?e.name:y(e,`JSXMemberExpression`)?`${Io(e.object)}.${e.property.name}`:y(e,`JSXNamespacedName`)?`${e.namespace.name}:${e.name.name}`:``,Lo=e=>{let t=e.name;return y(t,`JSXIdentifier`)?Po(t.name)?Fo(t)??t.name:t.name:Io(t)},Ro=(e,t)=>{if(!y(e.name,`JSXIdentifier`))return!1;let n=Lo(e);if(n[0]===n[0]?.toLowerCase())return!0;let r=new Set,i=e=>{let n=I(e);if(y(n,`Literal`))return typeof n.value==`string`;if(y(n,`Identifier`)||y(n,`JSXIdentifier`)){let e=t.symbolFor(n);if(!e||e.kind!==`const`||!e.initializer||r.has(e.id))return!1;r.add(e.id);let a=i(e.initializer);return r.delete(e.id),a}return y(n,`ConditionalExpression`)?i(n.consequent)&&i(n.alternate):!1};return i(e.name)},zo=(e,t,n=new Set)=>{if(!e)return null;let r=O(e);if(v(r))return r;if(y(r,`Identifier`)){let e=t.symbolFor(r);return!e||n.has(e.id)||!e.initializer||V(e,r,t)?null:(n.add(e.id),zo(e.initializer,t,n))}if(!y(r,`CallExpression`)||!F(r,`memo`,t,{resolveNamedAliases:!0})&&!F(r,`forwardRef`,t,{resolveNamedAliases:!0}))return null;let i=r.arguments[0];return!i||y(i,`SpreadElement`)?null:zo(i,t,n)},Bo=(e,t)=>{let n=I(e);if(!v(n)||n.async||n.generator)return!1;let r=n.parent;if(!r||!y(r,`JSXExpressionContainer`))return!1;let i=r.parent;if(!i||!y(i,`JSXAttribute`)||bo(i.name)!==`ref`)return!1;let a=i.parent;return!!(a&&y(a,`JSXOpeningElement`)&&Ro(a,t))},Vo=(e,t)=>t.every((t,n)=>e[n]===t),Ho=e=>{let t=I(e);for(;t.parent&&y(t.parent,`MemberExpression`)&&t.parent.object===t;){if(!N(t.parent))return null;t=I(t.parent)}return t},Uo=(e,t,n,r)=>{if(t.length!==n.length+1||!Vo(t,n)||t[n.length]!==`current`)return!1;let i=Ho(e),a=i?.parent;if(!i||!a||!y(a,`AssignmentExpression`)||a.operator!==`=`||a.left!==i)return!1;let o=L(e);if(!o)return!1;if(Bo(o,r))return!0;if(!v(o)||o.async||o.generator)return!1;let s=L(o);if(!s||!Bo(s,r))return!1;let c=I(o),l=c.parent;return!!(y(l,`ReturnStatement`)&&l.argument===c&&L(l)===s||y(s,`ArrowFunctionExpression`)&&s.body===c)},Wo=(e,t)=>{if(!y(e,`JSXOpeningElement`))return!1;let n=e.name;if(y(n,`JSXIdentifier`)){if(!t)return n.name===`Fragment`;let e=P(n,t);return e?Si(e)&&j(e.declarationNode)===`Fragment`:n.name===`Fragment`&&t.isGlobalReference(n)}return y(n,`JSXMemberExpression`)?!y(n.object,`JSXIdentifier`)||n.property.name!==`Fragment`?!1:t?wi(n.object,t)?!0:n.object.name===`React`&&t.isGlobalReference(n.object):n.object.name===`React`:!1},Go=(e,t,n,r,i)=>{let a=I(e),o=a.parent;if(!o)return!1;if(y(o,`ReturnStatement`)&&o.argument===a)return L(o)===t;if(y(o,`ArrowFunctionExpression`)&&o.body===a)return o===t;if(y(o,`JSXFragment`)&&o.children.some(e=>e===a)||y(o,`JSXElement`)&&o.children.some(e=>e===a)&&(Ro(o.openingElement,n)||Wo(o.openingElement,n)||i.doesCustomElementRenderChildren?.(o.openingElement)))return Go(o,t,n,r,i);if(y(o,`JSXExpressionContainer`)&&o.expression===a&&o.parent&&(y(o.parent,`JSXFragment`)||y(o.parent,`JSXElement`)&&(Ro(o.parent.openingElement,n)||Wo(o.parent.openingElement,n)||i.doesCustomElementRenderChildren?.(o.parent.openingElement))))return Go(o.parent,t,n,r,i);if(y(o,`ConditionalExpression`)&&(o.consequent===a||o.alternate===a)||y(o,`LogicalExpression`)&&(o.left===a||o.right===a)||y(o,`ArrayExpression`)&&o.elements.some(e=>e===a))return Go(o,t,n,r,i);if(!y(o,`VariableDeclarator`)||o.init!==a||!y(o.id,`Identifier`))return!1;let s=n.symbolFor(o.id);if(!s||s.kind!==`const`||s.references.length===0||r.has(s.id))return!1;r.add(s.id);let c=s.references.every(e=>e.flag===`read`&&Go(e.identifier,t,n,r,i));return r.delete(s.id),c},Ko=(e,t,n={})=>Go(e,L(e),t,new Set,n),qo=(e,t)=>t.every((t,n)=>e[n]===t),Jo=(e,t)=>qo(e,t)||qo(t,e),Yo=e=>v(e)&&y(e.body,`BlockStatement`)&&e.body.body.length===0,Xo=(e,t,n)=>F(e,t,n,{resolveNamedAliases:!0}),Zo=(e,t,n=new Set)=>y(e,`ObjectExpression`)?e.properties.every(e=>{if(y(e,`SpreadElement`)){let r=I(e.argument);if(y(r,`ObjectExpression`))return Zo(r,t,n);if(!y(r,`Identifier`))return!1;let i=t.symbolFor(r);if(!i||i.kind!==`const`||n.has(i.id)||!y(i.initializer,`ObjectExpression`))return!1;n.add(i.id);let a=Zo(i.initializer,t,n);return n.delete(i.id),a}return y(e,`Property`)?!v(e.value)||Yo(e.value):!1}):!1,Qo=e=>N(e)||(e.computed&&y(e.property,`Literal`)&&typeof e.property.value==`number`&&Number.isSafeInteger(e.property.value)&&e.property.value>=0?String(e.property.value):null),$o=e=>{let t=[],n=I(e);for(;n.parent&&y(n.parent,`MemberExpression`)&&n.parent.object===n;){let e=Qo(n.parent);if(!e)return null;t.push(e),n=I(n.parent)}return{expression:n,propertyPath:t}},es=(e,t,n)=>{let r=n.environmentsByProgram.get(e);if(r)return r;let i={filename:t,program:e,scopes:Ie(e)};return n.environmentsByProgram.set(e,i),i},ts=(e,t,n=new Set)=>{let r=I(e);if(y(r,`Identifier`)){let e=t.symbolFor(r);return!e||!e.initializer||n.has(e.id)||V(e,r,t)?!1:(n.add(e.id),ts(e.initializer,t,n))}if(!y(r,`CallExpression`))return!1;if(Xo(r,`forwardRef`,t))return!0;if(!Xo(r,`memo`,t))return!1;let i=r.arguments[0];return!i||y(i,`SpreadElement`)?!1:ts(i,t,n)},ns=(e,t)=>{let n=es(e.programNode,e.filePath,t),r=zo(e.exportedNode,n.scopes);return r?{environment:n,functionNode:r,isForwardRef:ts(e.exportedNode,n.scopes)}:null},rs=(e,t,n)=>{if(!y(e,`Identifier`)&&!y(e,`JSXIdentifier`))return null;let r=t.scopes.symbolFor(e);if(r&&r.kind!==`import`){if(V(r,e,t.scopes))return null;let n=zo(r.initializer,t.scopes);return n?{environment:t,functionNode:n,isForwardRef:!!(r.initializer&&ts(r.initializer,t.scopes))}:null}let i=Wi(e,e.name);if(!i||i.isNamespace||i.exportedName===null)return null;let a=k(t.filename,i.source,i.exportedName);return a?ns(a,n):null},is=(e,t,n)=>{if(y(e,`JSXIdentifier`))return rs(e,t,n);if(!y(e,`JSXMemberExpression`)||!y(e.object,`JSXIdentifier`))return null;let r=Wi(e.object,e.object.name);if(!r?.isNamespace)return null;let i=k(t.filename,r.source,e.property.name);return i?ns(i,n):null},as=(e,t,n=new Set)=>{let r=I(e);if(y(r,`Identifier`)){let e=t.scopes.symbolFor(r);return!e||!e.initializer||n.has(e.id)||V(e,r,t.scopes)?!1:(n.add(e.id),as(e.initializer,t,n))}return Co(r,t.scopes)},os=(e,t,n)=>{if(!y(e,`JSXIdentifier`))return!1;let r=t.scopes.symbolFor(e);if(r&&r.kind!==`import`)return V(r,e,t.scopes)?!1:!!(r.initializer&&as(r.initializer,t));let i=Wi(e,e.name);if(!i||i.isNamespace||i.exportedName===null)return!1;let a=k(t.filename,i.source,i.exportedName);if(!a)return!1;let o=es(a.programNode,a.filePath,n);return as(a.exportedNode,o)},ss=(e,t)=>{if(!e)return null;let n=I(e);return!y(n,`ClassDeclaration`)&&!y(n,`ClassExpression`)||!as(n,t)?null:{classNode:n,environment:t}},cs=(e,t,n)=>{if(!y(e,`JSXIdentifier`))return null;let r=t.scopes.symbolFor(e);if(r&&r.kind!==`import`)return V(r,e,t.scopes)?null:ss(r.initializer,t);let i=Wi(e,e.name);if(!i||i.isNamespace||i.exportedName===null)return null;let a=k(t.filename,i.source,i.exportedName);if(!a)return null;let o=es(a.programNode,a.filePath,n);return ss(a.exportedNode,o)},ls=(e,t,n)=>{let r=[...t],i=I(e);for(;i.parent;){let e=i.parent;if(y(e,`ArrayExpression`)){if(e.elements.some(e=>e&&y(e,`SpreadElement`)))return null;let t=e.elements.findIndex(e=>e===i);if(t<0)return null;r.unshift(String(t)),i=I(e);continue}if(y(e,`Property`)&&e.value===i){let t=M(e,{allowComputedString:!0}),a=e.parent;if(!t||!a||!Zo(a,n.scopes))return null;r.unshift(t),i=I(a);continue}if(y(e,`ConditionalExpression`)&&(e.consequent===i||e.alternate===i)||y(e,`LogicalExpression`)&&(e.left===i||e.right===i)){i=I(e);continue}if(y(e,`VariableDeclarator`)&&e.init===i&&y(e.id,`Identifier`)){let t=n.scopes.symbolFor(e.id);return!t||t.kind!==`const`?null:{environment:n,propertyPath:r,symbol:t}}if(y(e,`AssignmentExpression`)&&e.operator===`=`&&e.right===i&&y(e.left,`MemberExpression`)){let t=[],i=e.left;for(;y(i,`MemberExpression`);){let e=Qo(i);if(!e)return null;t.unshift(e),i=I(i.object)}if(!y(i,`Identifier`))return null;let a=n.scopes.symbolFor(i);return!a||a.kind!==`const`?null:{environment:n,originWriteReference:i,propertyPath:[...t,...r],symbol:a}}return null}return null},us=(e,t,n,r,i)=>{if(y(e,`AssignmentPattern`))return us(e.left,t,n,r,i);if(y(e,`Identifier`)){let a=n.scopes.symbolFor(e);return!!(a&&Ts({environment:n,propertyPath:t,symbol:a},r,i-1))}if(!y(e,`ObjectPattern`)||t.length===0)return!1;let[a,...o]=t;for(let t of e.properties){if(!y(t,`Property`))continue;let e=M(t,{allowComputedString:!0});if(!e)return!1;if(e===a)return us(t.value,o,n,r,i)}let s=e.properties.find(e=>y(e,`RestElement`));return s?us(s.argument,t,n,r,i):!0},ds=(e,t)=>{let n=e.arguments[0];return!n||y(n,`SpreadElement`)?!1:Xo(e,`createElement`,t.scopes)?y(n,`Literal`)&&typeof n.value==`string`:!Xo(e,`cloneElement`,t.scopes)||!y(n,`JSXElement`)?!1:Ro(n.openingElement,t.scopes)},fs=(e,t,n,r,i)=>{if(t.length>0)return!1;let a=e.parent;if(!a||!y(a,`Property`)||a.value!==e||M(a,{allowComputedString:!0})!==`ref`)return!1;let o=a.parent;if(!o||!y(o,`ObjectExpression`))return!1;let s=o.parent;return!(!s||!y(s,`CallExpression`)||s.arguments[1]!==o||!ds(s,n)||!H(s,n,r,i))},ps=(e,t,n,r,i)=>{if(i<=0||!v(e.functionNode)||e.functionNode.async||e.functionNode.generator)return!1;let a=e.functionNode.params[t];return!!(a&&us(a,n,e.environment,r,i))},ms=e=>{if(!y(e,`MemberExpression`)||N(e)!==`children`)return!1;let t=I(e.object);return!!(y(t,`MemberExpression`)&&N(t)===`props`&&y(I(t.object),`ThisExpression`))},hs=(e,t)=>{if(!y(e,`JSXOpeningElement`)||!y(e.name,`JSXMemberExpression`)||e.name.property.name!==`Provider`||!y(e.name.object,`JSXIdentifier`))return!1;let n=t.scopes.symbolFor(e.name.object);return!!(n?.kind===`const`&&n.initializer&&y(n.initializer,`CallExpression`)&&Xo(n.initializer,`createContext`,t.scopes))},H=(e,t,n,r)=>Ko(e,t.scopes,{doesCustomElementRenderChildren:e=>vs(e,t,n,r-1)}),gs=(e,t,n)=>{let{functionNode:r}=e;if(n<=0||t.activeRenderedChildrenComponents.has(r)||!y(r,`ArrowFunctionExpression`)&&!y(r,`FunctionExpression`)&&!y(r,`FunctionDeclaration`)||r.async||r.generator)return!1;let i=Ni(r,e.environment.scopes);if(!i)return!1;t.activeRenderedChildrenComponents.add(r);let a=i.every(r=>H(r,e.environment,t,n));return t.activeRenderedChildrenComponents.delete(r),a},_s=(e,t,n)=>{let{classNode:r,environment:i}=e;if(n<=0||t.activeRenderedChildrenComponents.has(r)||!y(r,`ClassDeclaration`)&&!y(r,`ClassExpression`))return!1;let a=r.body.body.find(e=>y(e,`MethodDefinition`)&&!e.computed&&y(e.key,`Identifier`)&&e.key.name===`render`);if(!a||!y(a,`MethodDefinition`))return!1;let o=[];if(A(r,e=>{ms(e)&&o.push(e)}),o.length===0)return!1;t.activeRenderedChildrenComponents.add(r);let s=o.every(e=>L(e)===a.value&&H(e,i,t,n));return t.activeRenderedChildrenComponents.delete(r),s},vs=(e,t,n,r)=>{if(r<=0||!y(e,`JSXOpeningElement`))return!1;if(hs(e,t))return!0;let i=is(e.name,t,n);if(i)return gs(i,n,r);let a=cs(e.name,t,n);return!!(a&&_s(a,n,r))},ys=(e,t,n,r,i)=>{let a=bo(e.name),o=e.parent;if(!a||!o||!y(o,`JSXOpeningElement`))return!1;let s=o.parent;if(!s||!y(s,`JSXElement`)||!H(s,n,r,i))return!1;if(Ro(o,n.scopes))return a===`ref`&&t.length===0;if(y(o.name,`JSXIdentifier`)&&a===`ref`&&t.length===0&&os(o.name,n,r))return!0;let c=is(o.name,n,r);return c?a===`ref`&&c.isForwardRef?ps(c,1,t,r,i):ps(c,0,[a,...t],r,i):!1},bs=(e,t,n,r,i,a)=>{let o=e.arguments.findIndex(e=>e===t);if(o<0)return!1;if(o===0&&y(e.callee,`Identifier`)&&e.callee.name===`Boolean`&&r.scopes.isGlobalReference(e.callee))return!0;if(o===0&&Xo(e,`useImperativeHandle`,r.scopes))return n.length===0;if(o===1&&n.length===1&&n[0]===`ref`&&ds(e,r)&&H(e,r,i,a))return!0;let s=I(e.callee);if(v(s))return yo(s,r.scopes)&&!H(e,r,i,a)?!1:ps({environment:r,functionNode:s,isForwardRef:!1},o,n,i,a);if(!y(e.callee,`Identifier`))return!1;let c=rs(e.callee,r,i);return!!(c&&(!yo(c.functionNode,c.environment.scopes)||H(e,r,i,a))&&ps(c,o,n,i,a))},xs=(e,t,n,r,i)=>{let a;if(t.length===1&&t[0]===`ref`)a=e.parent;else if(t.length===0){let t=e.parent;if(!t||!y(t,`Property`)||t.value!==e||M(t,{allowComputedString:!0})!==`ref`)return!1;a=t.parent?.parent}if(!a||!y(a,`JSXSpreadAttribute`))return!1;let o=a.parent;if(!o||!y(o,`JSXOpeningElement`))return!1;let s=o.parent;return!!(Ro(o,n.scopes)&&s&&y(s,`JSXElement`)&&H(s,n,r,i))},Ss=(e,t,n,r,i)=>{let a=I(e),o=a.parent;if(!o)return!1;if(y(o,`ExpressionStatement`)||y(o,`UnaryExpression`)&&o.operator===`void`&&o.argument===a)return!0;if(t.length===0&&y(o,`BinaryExpression`)&&(o.operator===`===`||o.operator===`!==`||o.operator===`==`||o.operator===`!=`)){let e=o.left===a?o.right:o.left;return!!(y(a,`Identifier`)&&y(e,`Identifier`)&&n.scopes.symbolFor(a)?.id===n.scopes.symbolFor(e)?.id)}if(xs(a,t,n,r,i)||fs(a,t,n,r,i)||t.length>0&&(y(o,`LogicalExpression`)&&o.left===a||y(o,`ConditionalExpression`)&&o.test===a||y(o,`IfStatement`)&&o.test===a||y(o,`UnaryExpression`)&&o.operator===`!`&&o.argument===a))return!0;if(y(o,`JSXExpressionContainer`)&&o.expression===a){let e=o.parent;return!!(e&&y(e,`JSXAttribute`)&&ys(e,t,n,r,i))}if(y(o,`CallExpression`))return bs(o,a,t,n,r,i);if(y(o,`VariableDeclarator`)&&o.init===a&&!y(o.id,`Identifier`))return us(o.id,t,n,r,i);let s=ls(a,t,n);return!!(s&&Ts(s,r,i-1))},Cs=e=>{let t=e.parent;return t&&y(t,`VariableDeclarator`)&&t.init===e&&y(t.id,`Identifier`)?t.id:(y(e,`FunctionDeclaration`)||y(e,`FunctionExpression`))&&e.id?e.id:null},ws=(e,t,n)=>{if(!e||!t||!v(e)||e.async||e.generator)return!1;let r=Cs(e);if(!r||((y(e,`FunctionDeclaration`)||y(e,`FunctionExpression`))&&e.id===r?L(e):L(r))!==t)return!1;let i=y(e,`FunctionDeclaration`)?n.ownScopeFor(t)?.symbolsByName.get(r.name):n.symbolFor(r);return!!(i&&i.references.length>0&&i.references.every(e=>{let r=I(e.identifier),i=r.parent;return!!(i&&y(i,`CallExpression`)&&i.callee===r&&L(i)===t&&Ko(i,n))}))},Ts=(e,t,n)=>{if(n<=0)return!1;let r=`${e.environment.filename}:${e.symbol.id}:${e.propertyPath.join(`.`)}`;if(t.activePaths.has(r))return!1;t.activePaths.add(r);let i=L(e.symbol.bindingIdentifier),a=e.symbol.references.every(r=>{if(r.identifier===e.originWriteReference)return!0;let a=r.identifier.parent;if(a&&y(a,`Property`)&&!a.computed&&a.key===r.identifier&&a.value!==r.identifier)return!0;let o=$o(r.identifier);if(!o)return!1;if(!Jo(o.propertyPath,e.propertyPath))return!0;let s=L(r.identifier);if(s!==i&&!ws(s,i,e.environment.scopes))return!!Uo(r.identifier,o.propertyPath,e.propertyPath,e.environment.scopes);if(r.flag!==`read`)return!1;if(qo(o.propertyPath,e.propertyPath)){if(o.propertyPath.length>e.propertyPath.length){let t=o.expression.parent;return!!(o.propertyPath.length===e.propertyPath.length+1&&o.propertyPath[e.propertyPath.length]===`current`&&t&&y(t,`UnaryExpression`)&&t.operator===`void`&&t.argument===o.expression)}return Ss(o.expression,[],e.environment,t,n)}return Ss(o.expression,e.propertyPath.slice(o.propertyPath.length),e.environment,t,n)});return t.activePaths.delete(r),a},Es=(e,t,n)=>{if(!t)return!1;let r=Pi(e);if(!r)return!1;let i={filename:t,program:r,scopes:n},a={activePaths:new Set,activeRenderedChildrenComponents:new WeakSet,environmentsByProgram:new WeakMap([[r,i]])},o=ls(e,[],i);return o?Ts(o,a,12):Ss(e,[],i,a,12)},Ds=e=>{let t=[];for(let n of e)for(let e of n.entries){if(e.importName.kind===`NamespaceObject`)continue;let r=e.importName.kind===`Default`?`default`:e.importName.name??null;r!==null&&t.push({source:n.moduleRequest.value,exportedName:r})}return t},Os=({absoluteFilePath:e,staticImports:t})=>{let n=!1;for(let r of t){let t=r.moduleRequest.value;if(!t.startsWith(`.`))continue;let i=r.entries.filter(e=>!e.isType);if(i.length===0)continue;let a=en(e,t);if(!(!a||!tr(a))){n||(n=!0,At(e));for(let e of i){let t=e.importName.kind===`Default`?`default`:e.importName.name;t&&ji(a,t)}}}},ks=({absoluteFilePath:e})=>{ze.test(e)&&(Ue.test(e)||Ln(e))},As=({absoluteFilePath:e,staticImports:t})=>{if(Be.test(e)&&!Bn(e))for(let n of Ds(t))bn(e,n.source,n.exportedName)},js=({absoluteFilePath:e,staticImports:t})=>{for(let n of Ds(t))bn(e,n.source,n.exportedName)},Ms=({absoluteFilePath:e,staticImports:t})=>{for(let n of Ds(t))Mi(e,n.source,n.exportedName)},Ns=e=>{let t=[];for(let n of e.body??[]){if(n.type!==`ImportDeclaration`)continue;let e=n.source?.value;if(typeof e==`string`){for(let r of n.specifiers??[])if(r.type===`ImportDefaultSpecifier`)t.push({source:e,exportedName:`default`});else if(r.type===`ImportSpecifier`){let n=r.imported,i=null;typeof n?.name==`string`?i=n.name:typeof n?.value==`string`&&(i=n.value),i&&t.push({source:e,exportedName:i})}}}return t},Ps=({absoluteFilePath:e,staticImports:t},n,r=()=>!0,i=()=>!0)=>{let a=new Map,o=(e,t,n)=>{if(!((a.get(e)??-1)>=n)){a.set(e,n);for(let a of Ns(t)){let t=k(e,a.source,a.exportedName);!t||n===0||!r(t)||!i(t.filePath)||o(t.filePath,t.programNode,n-1)}}};for(let a of Ds(t)){let t=k(e,a.source,a.exportedName);!t||!r(t)||!i(t.filePath)||o(t.filePath,t.programNode,n)}},Fs=e=>{Ps(e,4)},Is=({absoluteFilePath:e,sourceText:t,getProgram:n})=>{if(!t.includes(`createRef`)&&!t.includes(`\\u`))return;let r=n();Ft(r);let i=Ie(r);A(r,t=>{!y(t,`CallExpression`)||!F(t,`createRef`,i,{allowGlobalReactNamespace:!0,allowUnboundBareCalls:!0,resolveNamedAliases:!0})||Es(t,e,i)})},Ls=({absoluteFilePath:e,sourceText:t,staticImports:n,getProgram:r})=>{let i=new Set,a=new Set;for(let e of n)if(e.moduleRequest.value===`react`)for(let t of e.entries){let{importName:e}=t;e.kind===`Name`&&e.name===`useReducer`?i.add(t.localName.value):(e.kind===`Default`||e.kind===`NamespaceObject`)&&a.add(t.localName.value)}if(!(i.size>0||a.size>0&&(t.includes(`useReducer`)||t.includes(`\\u`))))return;let o=r(),s=e=>{if(e?.type!==`Identifier`)return null;let{name:t}=e;return typeof t==`string`?t:null},c=e=>{let t=s(e);if(t!==null)return i.has(t);if(e.type!==`MemberExpression`)return!1;let n=e,r=s(n.object);return r!==null&&a.has(r)&&s(n.property)===`useReducer`},l=new Set;if(A(o,e=>{if(e.type!==`CallExpression`)return;let t=e;if(!t.callee||!c(t.callee))return;let n=t.arguments?.[0];if(!n)return;let r=s(O(n));r!==null&&l.add(r)}),l.size!==0)for(let t of n)for(let n of t.entries){if(n.importName.kind===`NamespaceObject`||!l.has(n.localName.value))continue;let r=n.importName.kind===`Default`?`default`:n.importName.name;r&&bn(e,t.moduleRequest.value,r)}},Rs=({absoluteFilePath:e,staticImports:t,getProgram:n})=>{At(e),wn({absoluteFilePath:e,staticImports:t,program:n()})},U=({absoluteFilePath:e})=>{At(e)},zs=e=>{U(e),Ps(e,1/0,e=>v(e.exportedNode),e=>!e.split(/[\\/]/).includes(`node_modules`))},Bs=({absoluteFilePath:e})=>{mr(e)},Vs=({absoluteFilePath:e})=>{br(e)},Hs=e=>{Vs(e),wn({absoluteFilePath:e.absoluteFilePath,staticImports:e.staticImports,program:e.getProgram()})},Us=new Map([...g.map(e=>[e,Vs]),[`ink-no-raw-text`,Hs],[`client-passive-event-listeners`,js],[`exhaustive-deps`,Fs],[`no-barrel-import`,Os],[`nextjs-async-dynamic-api-not-awaited`,U],[`nextjs-missing-metadata`,ks],[`nextjs-no-use-search-params-without-suspense`,As],[`no-dynamic-import-path`,U],[`no-full-lodash-import`,U],[`no-hydration-branch-on-browser-global`,U],[`no-indeterminate-attribute`,U],[`no-locale-format-in-render`,U],[`no-match-media-in-state-initializer`,U],[`no-create-ref-in-function-component`,Is],[`no-adjust-state-on-prop-change`,js],[`no-derived-state`,js],[`no-derived-state-effect`,js],[`no-event-handler`,js],[`no-effect-with-fresh-deps`,Fs],[`no-initialize-state`,js],[`no-mutating-reducer-state`,Ls],[`no-unguarded-browser-global-at-module-scope`,Ms],[`no-unguarded-browser-global-in-render-or-hook-init`,zs],[`prefer-dynamic-import`,U],[`rendering-hydration-mismatch-time`,U],[`rerender-memo-with-default-value`,Fs],[`rn-no-legacy-shadow-styles`,Bs],[`rn-no-raw-text`,Rs],[`rn-prefer-expo-image`,U],[`rn-style-prefer-boxshadow`,Bs],...re.map(e=>[e,U])]),Ws=new Set([`nextjs-no-img-element`,`no-loading-flag-reset-outside-finally`,`only-export-components`,`remotion-calculate-metadata-fetch-signal`,`remotion-deterministic-randomness`,`remotion-no-css-animation`,`remotion-no-css-transition`,`remotion-no-css-url-assets`,`remotion-no-native-media-elements`,`remotion-no-next-image`,`window-open-without-noopener`]),Gs=t=>{let n=new Set;for(let e of t.ruleIds){let t=Us.get(e);if(!t)return null;n.add(t)}let r=Oi(t.absoluteFilePath),i,a;try{let n=e(r,t.sourceText,{astType:`ts`,lang:Lt(r)});if(n.errors.some(e=>e.severity===`Error`))return null;i=n.module.staticImports;let o;a=()=>(o??=n.program,o)}catch{return null}let o={absoluteFilePath:r,sourceText:t.sourceText,staticImports:i,getProgram:a};return mt(()=>{for(let e of n)e(o)})},Ks={},qs=(e,t,n)=>!e||e.length===0?!1:e.every(e=>y(e,t)&&e[n]===`type`),Js=e=>e.importKind===`type`||qs(e.specifiers,`ImportSpecifier`,`importKind`),Ys=new Set([`solid-js`,`solid-js/web`,`solid-js/store`,`solid-js/h`,`solid-js/html`,`@builder.io/qwik`,`@builder.io/qwik-city`,`@builder.io/qwik-react`,`voby`,`vidode`]),Xs=[`solid-js`,`@builder.io/qwik`],Zs=[`react`,`react-dom`,`preact`],Qs=new WeakMap,$s=new WeakMap,ec=(e,t)=>t.some(t=>e===t||e.startsWith(`${t}/`)),tc=e=>{let t=Qs.get(e);if(t)return t;let n=!1,r=!1;for(let t of e.body){if(!y(t,`ImportDeclaration`))continue;let e=t;if(Js(e))continue;let i=e.source,a=i&&typeof i.value==`string`?i.value:null;a&&((Ys.has(a)||ec(a,Xs))&&(n=!0),ec(a,Zs)&&(r=!0))}let i={hasNonReactRuntime:n,hasReactRuntime:r};return Qs.set(e,i),i},nc=e=>{let t=tc(e);return t.hasNonReactRuntime&&!t.hasReactRuntime},rc=e=>{let t=$s.get(e);if(t!==void 0)return t;let n=!1;for(let t of e.attributes){if(!y(t,`JSXAttribute`)||!y(t.name,`JSXIdentifier`))continue;let e=t.name.name;if(e===`classList`||e.startsWith(`class:`)||e.startsWith(`bind:`)){n=!0;break}}return $s.set(e,n),n},ic=`/test/,/tests/,/testing/,/__tests__/,/__test__/,/__fixtures__/,/fixtures/,/__mocks__/,/mocks/,/testUtils/,/test-utils/,/testutils/,/cypress/,/playwright/,/.storybook/,/.dumi/,/stories/,/__stories__/,/playground/,/playgrounds/,/examples/,/example/,/demo/,/demos/,/sandbox/,/sandboxes/,/e2e/,/e2e-tests/,/specs/,/spec/,/integration-tests/,/integration/,/it/,/benchmarks/,/benchmark/,/__benchmarks__/,/perf/,/perf-tests/,/scripts/,/cli/,/bin/,/tooling/,/tools/,/codemods/,/codemod/,/migrations/,/migration/,/generators/,/generator/,/runbooks/,/devtools/,/internal-tools/,/seeds/,/seed/,/dev-seeder/`.split(`,`),ac=[`.test.`,`.spec.`,`.cy.`,`.stories.`,`.story.`,`.bench.`,`.benchmark.`,`.e2e.`,`.integration-spec.`,`.int-spec.`,`.mock.`,`.mocks.`,`.fixture.`],oc=new Set(`setuptests.js,setuptests.ts,setuptests.jsx,setuptests.tsx,setupvitest.js,setupvitest.ts,setupvitest.jsx,setupvitest.tsx,setupjest.js,setupjest.ts,vitest.setup.js,vitest.setup.ts,vitest.setup.mjs,vitest.config.ts,vitest.config.js,vitest.config.mts,vitest.config.mjs,jest.setup.js,jest.setup.ts,jest.setup.jsx,jest.setup.tsx,jest.config.js,jest.config.ts,jest.config.mjs,playwright.config.ts,playwright.config.js,cypress.config.ts,cypress.config.js,karma.conf.js,karma.conf.ts,vite.config.ts,vite.config.js,vite.config.mts,vite.config.mjs,webpack.config.ts,webpack.config.js,webpack.config.mjs,rollup.config.ts,rollup.config.js,rollup.config.mjs,esbuild.config.ts,esbuild.config.js,esbuild.config.mjs,tsup.config.ts,tsup.config.js,tsup.config.mjs,rsbuild.config.ts,rsbuild.config.js,rspack.config.ts,rspack.config.js,next.config.ts,next.config.js,next.config.mjs,remix.config.js,remix.config.ts,astro.config.ts,astro.config.js,astro.config.mjs,tailwind.config.ts,tailwind.config.js,tailwind.config.mjs,postcss.config.ts,postcss.config.js,postcss.config.mjs,biome.config.ts,biome.config.js,drizzle.config.ts,drizzle.config.js,prisma.config.ts,prisma.config.js,knip.config.ts,knip.config.js,knip.config.mjs,lint-staged.config.js,lint-staged.config.mjs`.split(`,`)),sc=[`/src/`,`/app/`,`/lib/`,`/components/`,`/pages/`,`/features/`,`/modules/`,`/packages/`,`/apps/`,`/frontend/`,`/client/`],cc=ic.filter(e=>e.startsWith(`/.`)),lc=e=>{let t=-1;for(let n of sc){let r=e.lastIndexOf(n);r>t&&(t=r)}return t<0?e:e.slice(t)};let uc,dc=!1;const fc=e=>e?e===uc?dc:(uc=e,dc=mc(e),dc):!1,pc=(e,t)=>e?mc(e,t):!1,mc=(e,t=new Set)=>{let n=e.replaceAll(`\\`,`/`),r=n.lastIndexOf(`/`),i=r===-1?n:n.slice(r+1);if(oc.has(i.toLowerCase()))return!0;for(let e of ac)if(i.includes(e))return!0;let a=n.startsWith(`/`)?n:`/${n}`;for(let e of cc)if(!t.has(e)&&a.includes(e))return!0;let o=lc(n);for(let e of ic)if(!t.has(e)&&(e.startsWith(`/.`)?n:o).includes(e))return!0;return!1},hc=e=>t=>fc(t.filename)?Ks:e(t),gc=e=>(t=>{let n=e(t),r=!1,i=!1,a={};for(let e in n){if(!Object.hasOwn(n,e))continue;let t=n[e];if(typeof t!=`function`){a[e]=t;continue}let o=e.charAt(0);if(o<`A`||o>`Z`){a[e]=t;continue}if(e===`Program`){a.Program=e=>{let n=tc(e);i=n.hasReactRuntime,r=n.hasNonReactRuntime&&!n.hasReactRuntime,t(e)};continue}if(e===`JSXOpeningElement`){a.JSXOpeningElement=e=>{!i&&!r&&rc(e)&&(r=!0),!r&&t(e)};continue}a[e]=(...e)=>{r||t(...e)}}return`Program`in a||(a.Program=e=>{let t=tc(e);i=t.hasReactRuntime,r=t.hasNonReactRuntime&&!t.hasReactRuntime}),a}),W=e=>{if(!(`create`in e))return{...e,create:()=>Ks};let t=e.tags,n=e.create,r=t?.includes(`test-noise`)&&!t?.includes(`migration-hint`);return t?.includes(`react-jsx-only`)&&(n=gc(n)),r&&(n=hc(n)),n===e.create?e:{...e,create:n}};let _c;const vc=e=>{let t=[0];for(let n=0;n<e.length;n+=1){let r=e[n];if(r===`\r`&&e[n+1]===`
|
|
1
|
+
import{parseSync as e,visitorKeys as t}from"oxc-parser";import{KEYS as n}from"eslint-visitor-keys";import*as r from"node:fs";import*as i from"node:path";const a=[[`nextjs`,`Next.js`,`NEXT_PUBLIC_*`],[`vite`,`Vite`,`VITE_*`],[`tanstack-start`,`TanStack Start`,`VITE_*`],[`cra`,`Create React App`,`REACT_APP_*`],[`gatsby`,`Gatsby`,`GATSBY_*`]],o=e=>{for(let[t,n,r]of a)if(e(t))return`Move secrets to server-only code. In ${n}, only \`${r}\` env vars are exposed to the browser, and they must not contain secrets`},s=e=>e(`nextjs:static-export`)?`Avoid redirects inside useEffect — they flash the wrong page first. Use an event handler (e.g. onClick), or call redirect() from next/navigation during render (it prerenders a client-side redirect under output: "export"). Middleware and getServerSideProps redirects aren't available in a static export.`:void 0,c=[{key:`react-hooks-js/set-state-in-render`,source:`react-compiler`,severity:`error`},{key:`react-hooks-js/immutability`,source:`react-compiler`,severity:`error`},{key:`react-hooks-js/refs`,source:`react-compiler`,severity:`error`},{key:`react-hooks-js/purity`,source:`react-compiler`,severity:`error`},{key:`react-hooks-js/hooks`,source:`react-compiler`,severity:`error`},{key:`react-hooks-js/set-state-in-effect`,source:`react-compiler`,severity:`warn`},{key:`react-hooks-js/globals`,source:`react-compiler`,severity:`error`},{key:`react-hooks-js/error-boundaries`,source:`react-compiler`,severity:`error`},{key:`react-hooks-js/preserve-manual-memoization`,source:`react-compiler`,severity:`error`},{key:`react-hooks-js/unsupported-syntax`,source:`react-compiler`,severity:`error`},{key:`react-hooks-js/component-hook-factories`,source:`react-compiler`,severity:`error`},{key:`react-hooks-js/static-components`,source:`react-compiler`,severity:`error`},{key:`react-hooks-js/use-memo`,source:`react-compiler`,severity:`error`},{key:`react-hooks-js/void-use-memo`,source:`react-compiler`,severity:`error`},{key:`react-hooks-js/incompatible-library`,source:`react-compiler`,severity:`error`},{key:`react-hooks-js/todo`,source:`react-compiler`,severity:`error`}],l=Object.fromEntries(c.map(e=>[e.key,e.severity])),u=new Set(`width.height.min-width.max-width.min-height.max-height.top.right.bottom.left.padding.padding-top.padding-right.padding-bottom.padding-left.margin.margin-top.margin-right.margin-bottom.margin-left.border-width.border-top-width.border-right-width.border-bottom-width.border-left-width.line-height.column-width`.split(`.`)),d=new Set([`width`,`height`,`top`,`left`,`right`,`bottom`,`padding`,`paddingTop`,`paddingRight`,`paddingBottom`,`paddingLeft`,`margin`,`marginTop`,`marginRight`,`marginBottom`,`marginLeft`,`borderWidth`,`fontSize`,`lineHeight`,`gap`]),f=new Set([`animate`,`initial`,`exit`,`whileHover`,`whileTap`,`whileFocus`,`whileDrag`,`whileInView`]),p=/blur\((\d+(?:\.\d+)?)px\)/,m=new Set([`requestAnimationFrame`,`setInterval`]),h=new Set([`framer-motion`,`motion`]),ee=new Set([`bounce`,`elastic`,`wobble`,`jiggle`,`spring`]),te={base:`3.0.0`,textLayoutGuard:`3.0.1`,aria:`6.2.0`,cursor:`6.7.0`,concurrent:`6.7.0`,renderToString:`6.8.0`,modernHooks:`7.0.0`,suspendTerminal:`7.1.0`},g=[`ink-ctrl-c-handler-requires-exit-option`,`ink-newline-inside-text`,`ink-no-bare-process-exit`,`ink-no-direct-raw-mode`,`ink-no-dom-host-elements`,`ink-no-dom-router`,`ink-no-focus-in-render`,`ink-no-layout-inside-text`,`ink-no-live-hooks-in-render-to-string`,`ink-no-measure-element-in-render`,`ink-no-multiple-static`,`ink-no-raw-text`,`ink-no-repeated-render`,`ink-prefer-use-animation`,`ink-prefer-use-paste`,`ink-static-is-append-only`,`ink-static-requires-key`,`ink-suspense-requires-concurrent`,`ink-use-reactive-window-size`,`ink-use-string-width-for-cursor`,`ink-use-suspend-terminal`,`ink-valid-aria-semantics`],ne=[`@react-router/dev`,`react-router-dom`,`react-router`],re=`react-router-csp-nonce-consistency.react-router-descendant-routes-require-splat.react-router-guard-aborted-handle-error.react-router-internal-route-anchor.react-router-loader-fetch-forwards-signal.react-router-loader-parallel-fetch.react-router-nested-route-requires-outlet.react-router-no-catch-middleware-next.react-router-no-client-module-in-server-render.react-router-no-duplicate-route-id.react-router-no-empty-leaf-route.react-router-no-invalid-absolute-child-path.react-router-no-invalid-lazy-route-properties.react-router-no-invalid-splat-path.react-router-no-loader-request-body.react-router-no-middleware-response-body-consumption.react-router-no-multiple-blockers.react-router-no-multiple-middleware-next.react-router-no-multiple-set-search-params-in-tick.react-router-no-navigate-in-render.react-router-no-nested-router.react-router-no-redirect-in-try-catch.react-router-no-route-module-environment-suffix.react-router-no-router-in-render.react-router-no-session-mutation-in-loader.react-router-no-static-cookie-expires.react-router-no-unsynchronized-search-params-mutation.react-router-no-use-loader-data-in-error-ui.react-router-prefer-route-lazy.react-router-require-root-error-boundary.react-router-resource-link-requires-reload.react-router-return-navigation-promise-in-transition.react-router-server-middleware-return-response.react-router-session-mutation-requires-commit.react-router-v8-no-meta-data-field.react-router-v8-no-react-router-dom-import.react-router-v8-no-removed-future-flags.react-router-valid-route-object`.split(`.`),ie=new Set([`@react-router/cloudflare`,`@react-router/node`,`react-router/dom`,`react-router-dom`,`react-router`]),ae=new Set([`flash`,`set`,`unset`]),oe=new Set([`createCookieSessionStorage`,`createFileSessionStorage`,`createMemorySessionStorage`,`createSessionStorage`,`createWorkersKVSessionStorage`]),se=new Set([`createBrowserRouter`,`createHashRouter`,`createMemoryRouter`]),ce=new Set([`append`,`delete`,`set`,`sort`]),le=new Set([`caseSensitive`,`children`,`id`,`index`,`lazy`,`path`]),ue=new Set([`arrayBuffer`,`blob`,`bytes`,`formData`,`json`,`text`]),de=new Set([`unstable_previewServerPrerendering`,`v8_middleware`,`v8_passThroughRequests`,`v8_splitRouteModules`,`v8_trailingSlashAwareDataRequests`,`v8_viteEnvironmentApi`]),fe=new Set([`BrowserRouter`,`HashRouter`,`MemoryRouter`,`Router`,`RouterProvider`]),pe=new Set([...g,`client-passive-event-listeners`,`exhaustive-deps`,`no-barrel-import`,`nextjs-async-dynamic-api-not-awaited`,`nextjs-missing-metadata`,`nextjs-no-img-element`,`nextjs-no-use-search-params-without-suspense`,`no-dynamic-import-path`,`no-full-lodash-import`,`no-hydration-branch-on-browser-global`,`no-indeterminate-attribute`,`no-loading-flag-reset-outside-finally`,`no-locale-format-in-render`,`no-match-media-in-state-initializer`,`no-create-ref-in-function-component`,`no-adjust-state-on-prop-change`,`no-derived-state`,`no-derived-state-effect`,`no-event-handler`,`no-initialize-state`,`no-mutating-reducer-state`,`only-export-components`,`no-unguarded-browser-global-at-module-scope`,`no-unguarded-browser-global-in-render-or-hook-init`,`window-open-without-noopener`,`prefer-dynamic-import`,`rendering-hydration-mismatch-time`,`remotion-calculate-metadata-fetch-signal`,`remotion-deterministic-randomness`,`remotion-no-css-animation`,`remotion-no-css-transition`,`remotion-no-css-url-assets`,`remotion-no-native-media-elements`,`remotion-no-next-image`,`rerender-memo-with-default-value`,`rn-no-legacy-shadow-styles`,`rn-no-raw-text`,`rn-prefer-expo-image`,`rn-style-prefer-boxshadow`,...re]),me=new Set([`implements`,`returnType`,`superTypeArguments`,`superTypeParameters`,`typeAnnotation`,`typeArguments`,`typeParameters`]),_=e=>typeof e==`object`&&!!e&&typeof e.type==`string`,v=e=>e!=null&&(e.type===`ArrowFunctionExpression`||e.type===`FunctionExpression`||e.type===`FunctionDeclaration`),y=(e,t)=>typeof e==`object`&&!!e&&e.type===t,he={...t,...n,ArrayPattern:[`decorators`,...n.ArrayPattern],AssignmentPattern:[`decorators`,...n.AssignmentPattern],ClassDeclaration:[`decorators`,...n.ClassDeclaration],ClassExpression:[`decorators`,...n.ClassExpression],Identifier:[`decorators`,...n.Identifier],MethodDefinition:[`decorators`,...n.MethodDefinition],ObjectPattern:[`decorators`,...n.ObjectPattern],PropertyDefinition:[`decorators`,...n.PropertyDefinition],RestElement:[`decorators`,...n.RestElement]},ge=e=>e===`var`||e===`function`,_e=e=>{let t=e;for(;t;){if(t.kind===`module`||t.kind===`function`||t.kind===`arrow-function`||t.kind===`method`)return t;t=t.parent}return e},ve=(e,t,n,r)=>{let i={id:r.nextScopeId++,kind:e,node:t,parent:n,children:[],symbols:[],references:[],symbolsByName:new Map};return n&&n.children.push(i),i},b=(e,t,n)=>{let r=ve(e,t,n.currentScope,n);return n.scopeStack.push(r),n.currentScope=r,n.ownScopeForNode.set(t,r),r},x=e=>{e.scopeStack.pop();let t=e.scopeStack[e.scopeStack.length-1];if(!t)throw Error(`scope stack underflow`);e.currentScope=t},S=(e,t,n)=>{let r={id:t.nextSymbolId++,name:n.name,kind:n.kind,bindingIdentifier:n.bindingIdentifier,declarationNode:n.declarationNode,scope:e,initializer:n.initializer,references:[]};return e.symbols.push(r),e.symbolsByName.set(n.name,r),t.symbolByBindingIdentifier.set(n.bindingIdentifier,r),r},ye=e=>{let t=[],n=e=>{if(y(e,`Identifier`)){t.push(e);return}if(y(e,`ObjectPattern`)){for(let t of e.properties)if(y(t,`Property`)){let e=t.value;n(e)}else y(t,`RestElement`)&&n(t.argument);return}if(y(e,`ArrayPattern`)){for(let t of e.elements)t&&n(t);return}if(y(e,`RestElement`)){n(e.argument);return}y(e,`AssignmentPattern`)&&n(e.left)};return n(e),t},C=(e,t,n,r,i,a)=>{if(y(e,`Identifier`)){S(n,r,{name:e.name,kind:i,bindingIdentifier:e,declarationNode:a,initializer:t});return}if(y(e,`ObjectPattern`)){for(let o of e.properties)if(y(o,`Property`)){let e=o.value;C(e,y(e,`AssignmentPattern`)?e.right:t,n,r,i,a)}else y(o,`RestElement`)&&C(o.argument,t,n,r,i,a);return}if(y(e,`ArrayPattern`)){for(let o of e.elements)o&&C(o,y(o,`AssignmentPattern`)?o.right??null:t,n,r,i,a);return}if(y(e,`AssignmentPattern`)){C(e.left,e.right??null,n,r,i,a);return}y(e,`RestElement`)&&C(e.argument,null,n,r,i,a)},w=(e,t)=>{be.add(t)},be=new WeakSet,xe=(e,t,n)=>{let r={id:e.nextReferenceId++,identifier:t,resolvedSymbol:null,flag:n,scope:e.currentScope};e.currentScope.references.push(r),e.referenceByIdentifier.set(t,r)},Se=e=>e.parent?v(e.parent):!1,Ce=e=>e.parent!==null&&e.parent!==void 0&&e.parent.type===`CatchClause`,we=(e,t)=>{if(!y(e,`VariableDeclaration`))return;let n=e.kind===`var`?`var`:e.kind===`let`?`let`:e.kind===`const`?`const`:`using`,r=ge(n)?_e(t.currentScope):t.currentScope;for(let i of e.declarations){let e=i,a=i.init??null;C(i.id,a,r,t,n,e);for(let e of ye(i.id))w(t,e)}},Te=(e,t)=>{y(e,`FunctionDeclaration`)&&e.id&&(S(_e(t.currentScope),t,{name:e.id.name,kind:`function`,bindingIdentifier:e.id,declarationNode:e,initializer:e}),w(t,e.id))},Ee=(e,t)=>{y(e,`ClassDeclaration`)&&e.id&&(S(t.currentScope,t,{name:e.id.name,kind:`class`,bindingIdentifier:e.id,declarationNode:e,initializer:e}),w(t,e.id))},De=(e,t)=>{if(!y(e,`ImportDeclaration`))return;let n=_e(t.currentScope);for(let r of e.specifiers){let e=r.local;y(e,`Identifier`)&&(S(n,t,{name:e.name,kind:`import`,bindingIdentifier:e,declarationNode:r,initializer:r}),w(t,e))}},Oe=(e,t)=>{if(e.type!==`TSImportEqualsDeclaration`&&e.type!==`TSEnumDeclaration`&&e.type!==`TSTypeAliasDeclaration`&&e.type!==`TSInterfaceDeclaration`&&e.type!==`TSModuleDeclaration`)return;let n=e.id;if(!n||!y(n,`Identifier`))return;let r=e.type===`TSImportEqualsDeclaration`?`ts-import-equals`:e.type===`TSEnumDeclaration`?`ts-enum`:e.type===`TSTypeAliasDeclaration`?`ts-type-alias`:e.type===`TSInterfaceDeclaration`?`ts-interface`:`ts-module`;S(_e(t.currentScope),t,{name:n.name,kind:r,bindingIdentifier:n,declarationNode:e,initializer:null}),w(t,n)},ke=(e,t,n)=>{for(let r of e){C(r,null,t,n,`parameter`,r);for(let e of ye(r))w(n,e)}},Ae=e=>!(!y(e,`BlockStatement`)||Se(e)||Ce(e)||e.parent&&e.parent.type===`TSModuleDeclaration`),je=e=>{let t=e.parent;if(!t)return!1;if(t.type===`JSXMemberExpression`)return t.object===e;if(t.type===`JSXNamespacedName`)return!1;let n=e.name.charCodeAt(0);return!(n>=97&&n<=122)},Me=e=>{let t=e.parent;if(!t)return!1;switch(t.type){case`MemberExpression`:return t.property===e&&!t.computed;case`Property`:return t.key===e&&!t.computed&&!t.shorthand;case`MethodDefinition`:case`PropertyDefinition`:return t.key===e&&!t.computed;case`JSXAttribute`:return t.name===e;case`ImportSpecifier`:return t.imported===e;case`ExportSpecifier`:return t.exported===e&&t.local!==t.exported;case`LabeledStatement`:case`BreakStatement`:case`ContinueStatement`:return t.label===e;default:return!1}},Ne=e=>{let t=e.parent;if(!t)return`read`;switch(t.type){case`AssignmentExpression`:return t.left===e?t.operator===`=`?`write`:`read-write`:`read`;case`UpdateExpression`:return`read-write`;case`ForInStatement`:case`ForOfStatement`:return t.left===e?`write`:`read`;default:return`read`}},T=(e,t)=>{t.nodeScope.set(e,t.currentScope)},Pe=(e,t)=>{if(e.type===`AssignmentPattern`){Pe(e.left,t);let n=e.right??null;n&&E(n,t);return}if(e.type===`ObjectPattern`){for(let n of e.properties){let e=n;if(e.type===`RestElement`){Pe(e.argument,t);continue}if(e.type!==`Property`)continue;let r=e;r.computed&&E(r.key,t),Pe(r.value,t)}return}if(e.type===`ArrayPattern`){for(let n of e.elements)n&&Pe(n,t);return}e.type===`RestElement`&&Pe(e.argument,t)},E=(e,t)=>{if(e.type===`ArrowFunctionExpression`||e.type===`FunctionExpression`||e.type===`FunctionDeclaration`){e.type===`FunctionDeclaration`&&e.id&&Te(e,t);let n=e.params??[];for(let e of n)if(!(!(`decorators`in e)||!Array.isArray(e.decorators)))for(let n of e.decorators)_(n)&&E(n,t);T(e,t);let r=b(e.type===`ArrowFunctionExpression`?`arrow-function`:`function`,e,t);(e.type===`FunctionExpression`||e.type===`FunctionDeclaration`)&&e.id&&(S(r,t,{name:e.id.name,kind:`function`,bindingIdentifier:e.id,declarationNode:e,initializer:e}),w(t,e.id)),ke(n,r,t);for(let e of n)Pe(e,t);let i=e.body;i&&E(i,t),x(t);return}if(e.type===`ClassDeclaration`||e.type===`ClassExpression`){if(e.type===`ClassDeclaration`&&e.id&&Ee(e,t),Array.isArray(e.decorators))for(let n of e.decorators)_(n)&&E(n,t);let n=b(`class`,e,t);T(e,t),e.type===`ClassExpression`&&e.id&&(S(n,t,{name:e.id.name,kind:`class`,bindingIdentifier:e.id,declarationNode:e,initializer:e}),w(t,e.id)),e.superClass&&E(e.superClass,t),e.body&&E(e.body,t),x(t);return}if(e.type===`CatchClause`){let n=b(`catch`,e,t);if(T(e,t),e.param){C(e.param,null,n,t,`catch-clause-parameter`,e);for(let n of ye(e.param))w(t,n)}e.body&&E(e.body,t),x(t);return}if(e.type===`ForStatement`||e.type===`ForInStatement`||e.type===`ForOfStatement`){b(`for`,e,t),T(e,t);let n=e,r=he[e.type]??Object.keys(n);for(let e of r){if(e===`parent`||me.has(e))continue;let r=n[e];if(Array.isArray(r))for(let e of r)_(e)&&E(e,t);else _(r)&&E(r,t)}x(t);return}if(e.type===`SwitchStatement`){b(`switch`,e,t),T(e,t),e.discriminant&&E(e.discriminant,t);for(let n of e.cases)E(n,t);x(t);return}if(e.type===`TSModuleDeclaration`){let n=b(`ts-module`,e,t);if(T(e,t),e.id&&y(e.id,`Identifier`)){let r=e.id;S(_e(n.parent??t.currentScope),t,{name:r.name,kind:`ts-module`,bindingIdentifier:r,declarationNode:e,initializer:null}),w(t,r)}e.body&&E(e.body,t),x(t);return}if(e.type===`TSEnumDeclaration`){Oe(e,t),b(`ts-enum`,e,t),T(e,t);let n=e.members??[];for(let e of n)E(e,t);x(t);return}if(e.type===`BlockStatement`&&Ae(e)){b(`block`,e,t),T(e,t);for(let n of e.body)E(n,t);x(t);return}switch(T(e,t),e.type){case`VariableDeclaration`:we(e,t);break;case`ImportDeclaration`:De(e,t);break;case`TSImportEqualsDeclaration`:case`TSTypeAliasDeclaration`:case`TSInterfaceDeclaration`:Oe(e,t);break}(e.type===`Identifier`||e.type===`JSXIdentifier`)&&!be.has(e)&&!Me(e)&&(e.type===`JSXIdentifier`?je(e)&&xe(t,e,Ne(e)):xe(t,e,Ne(e)));let n=e,r=he[e.type]??Object.keys(n);for(let e of r){if(e===`parent`||me.has(e))continue;let r=n[e];if(Array.isArray(r))for(let e of r)_(e)&&E(e,t);else _(r)&&E(r,t)}},Fe=e=>{let t=e=>{for(let t of e.references){let n=t.identifier.name;if(typeof n!=`string`)continue;let r=e;for(;r;){let e=r.symbolsByName.get(n);if(e){t.resolvedSymbol=e,e.references.push(t);break}r=r.parent}}for(let n of e.children)t(n)};t(e)},Ie=e=>{let t={id:0,kind:`module`,node:e,parent:null,children:[],symbols:[],references:[],symbolsByName:new Map},n={nextScopeId:1,nextSymbolId:0,nextReferenceId:0,currentScope:t,scopeStack:[t],rootScope:t,nodeScope:new WeakMap,ownScopeForNode:new WeakMap,symbolByBindingIdentifier:new WeakMap,referenceByIdentifier:new WeakMap};if(n.nodeScope.set(e,t),n.ownScopeForNode.set(e,t),e.type===`Program`)for(let t of e.body)E(t,n);else E(e,n);return Fe(t),{rootScope:t,scopeFor:e=>{let r=e;for(;r;){let e=n.nodeScope.get(r);if(e)return e;r=r.parent??null}return t},ownScopeFor:e=>n.ownScopeForNode.get(e)??null,symbolFor:e=>{let t=n.referenceByIdentifier.get(e);return t?t.resolvedSymbol:n.symbolByBindingIdentifier.get(e)||null},referenceFor:e=>n.referenceByIdentifier.get(e)??null,isGlobalReference:e=>{let t=n.referenceByIdentifier.get(e);return t?t.resolvedSymbol===null:!1}}},Le=(e,t)=>{let n=e;for(;n;){if(n===t)return!0;n=n.parent}return!1},Re=`(?:tsx?|jsx?|mts|mjs)`,ze=RegExp(`/page\\.${Re}$`),Be=RegExp(`/(page|layout)\\.${Re}$`),Ve=[`layout.tsx`,`layout.jsx`,`layout.ts`,`layout.js`,`layout.mts`,`layout.mjs`],He=[`metadata`,`generateMetadata`],Ue=/\/(?:(?:\((?:dashboard|admin|settings|account|internal|manage|console|portal|auth|onboarding|app|ee|protected)\))|(?:dashboard|admin|settings|account|internal|manage|console|portal))\//i,We=new Set([`redirect`,`permanentRedirect`,`notFound`,`forbidden`,`unauthorized`]),Ge=new Set([`revalidateTag`,`revalidatePath`,`expireTag`,`expirePath`,`unstable_expireTag`,`unstable_expirePath`]),Ke=/fonts\.googleapis\.com/,qe=/polyfill\.io|polyfill\.min\.js|cdn\.polyfill/,Je=RegExp(`/route\\.${Re}$`),Ye=/\/(?:cron|jobs\/cron)(?:\/|$)/i,Xe=new Set([`logout`,`log-out`,`signout`,`sign-out`,`unsubscribe`,`delete`,`remove`,`revoke`,`cancel`,`deactivate`]),Ze=RegExp(`/(error|global-error)\\.${Re}$`),Qe=RegExp(`/global-error\\.${Re}$`),$e=new Set([`GET`,`POST`,`PUT`,`PATCH`,`DELETE`,`OPTIONS`,`HEAD`]),et=/google-analytics\.com|googletagmanager\.com\/gtag/,tt=RegExp(`/(opengraph-image|twitter-image)\\d*\\.${Re}$`),nt=1024,rt=1e3,it=1e3,at=new Set([`expo`,`expo-router`,`@expo/cli`,`@expo/metro-config`,`@expo/metro-runtime`]),ot=new Set([`react-native`,`react-native-tvos`,...at,`react-native-windows`,`react-native-macos`]),st=[`@react-native/`,`@react-native-`],ct=e=>at.has(e),lt=e=>{if(ot.has(e))return!0;for(let t of st)if(e.startsWith(t))return!0;return!1};let ut=null;const dt=e=>{ut?.existencePaths.add(e)},D=e=>{ut?.contentPaths.add(e)},ft=()=>ut!==null,pt=e=>{let t=ut,n={existencePaths:new Set,contentPaths:new Set};ut=n;try{return{value:e(),trace:n}}finally{if(ut=t,t!==null){for(let e of n.existencePaths)t.existencePaths.add(e);for(let e of n.contentPaths)t.contentPaths.add(e)}}},mt=e=>pt(e).trace,ht=new Map,gt=new Map,_t=()=>{ht.clear(),gt.clear()},vt=e=>{if(!e)return null;let t=ht.get(e);if(t!==void 0){if(ft()){let n=i.dirname(e);for(;dt(i.join(n,`package.json`)),n!==t;){let e=i.dirname(n);if(e===n)break;n=e}}return t}let n=i.dirname(e);for(;;){let t=i.join(n,`package.json`);dt(t);let a=!1;try{a=r.statSync(t).isFile()}catch{a=!1}if(a)return ht.set(e,n),n;let o=i.dirname(n);if(o===n)return ht.set(e,null),null;n=o}},yt=e=>{let t=vt(e);return t?bt(t):null},bt=e=>{let t=i.join(e,`package.json`);D(t);let n=gt.get(e);if(n!==void 0)return n;let a=null;try{let e=JSON.parse(r.readFileSync(t,`utf-8`));typeof e==`object`&&e&&(a=e)}catch{a=null}return gt.set(e,a),a},xt=new Set([`next`,`vite`,`react-scripts`,`gatsby`,`@remix-run/react`,`@remix-run/node`,`@docusaurus/core`,`@docusaurus/preset-classic`,`@storybook/react`,`@storybook/react-vite`,`@storybook/react-webpack5`,`@storybook/nextjs`,`@storybook/web-components`,`storybook`,`react-dom`,`@vitejs/plugin-react`,`@vitejs/plugin-react-swc`]),St=[`dependencies`,`devDependencies`,`peerDependencies`,`optionalDependencies`],Ct=function*(e){for(let t of St){let n=e[t];if(n)for(let e of Object.keys(n))yield e}},wt=e=>{if(typeof e[`react-native`]==`string`)return!0;for(let t of Ct(e))if(lt(t))return!0;return!1},Tt=e=>{for(let t of Ct(e))if(ct(t))return!0;return!1},Et=e=>{for(let t of Ct(e))if(xt.has(t))return!0;return!1},Dt=e=>St.some(t=>{let n=e[t];return typeof n==`object`&&!!n&&Object.keys(n).length>0}),Ot=(e,t)=>St.some(n=>{let r=e[n];return typeof r==`object`&&!!r&&Object.prototype.propertyIsEnumerable.call(r,t)}),kt=new WeakMap,At=e=>{let t=yt(e);if(!t)return`unknown`;let n=kt.get(t);if(n!==void 0)return n;let r;return r=Tt(t)?`expo`:wt(t)?`react-native`:Et(t)?`web`:Dt(t)?`neutral`:`unknown`,kt.set(t,r),r},jt=new Set([`ParenthesizedExpression`,`TSAsExpression`,`TSSatisfiesExpression`,`TSTypeAssertion`,`TSNonNullExpression`,`TSInstantiationExpression`,`ChainExpression`]),O=e=>{let t=e;for(;;)switch(t.type){case`ParenthesizedExpression`:case`TSAsExpression`:case`TSSatisfiesExpression`:case`TSTypeAssertion`:case`TSNonNullExpression`:case`TSInstantiationExpression`:case`ChainExpression`:if(!(`expression`in t)||!t.expression)return t;t=t.expression;break;default:return t}},Mt=(e,t)=>{if(!y(e,`Program`))return null;let n=new Map,r=new Map,i=null,a=null,o=e=>{for(let t of e.declarations??[])y(t,`VariableDeclarator`)&&(!y(t.id,`Identifier`)||!t.init||n.set(t.id.name,O(t.init)))};for(let t of e.body??[]){if(y(t,`VariableDeclaration`)){o(t);continue}if(y(t,`FunctionDeclaration`)&&t.id){n.set(t.id.name,t);continue}if(y(t,`ExportNamedDeclaration`)){if(t.exportKind===`type`)continue;let e=t.declaration;if(e&&y(e,`VariableDeclaration`)){o(e);for(let t of e.declarations??[])y(t,`VariableDeclarator`)&&y(t.id,`Identifier`)&&r.set(t.id.name,t.id.name)}else e&&y(e,`FunctionDeclaration`)&&e.id&&(n.set(e.id.name,e),r.set(e.id.name,e.id.name));if(t.source)continue;for(let e of t.specifiers??[]){if(!y(e,`ExportSpecifier`)||e.exportKind===`type`)continue;let t=y(e.local,`Identifier`)?e.local.name:null,n=null;y(e.exported,`Identifier`)?n=e.exported.name:y(e.exported,`Literal`)&&typeof e.exported.value==`string`&&(n=e.exported.value),t&&n&&r.set(n,t)}continue}if(!y(t,`ExportDefaultDeclaration`))continue;let e=t.declaration;e&&(y(e,`Identifier`)?a=e.name:((y(e,`FunctionDeclaration`)||y(e,`ClassDeclaration`))&&e.id&&n.set(e.id.name,e),i=O(e)))}if(t===`default`){if(i)return i;if(a){let e=n.get(a);if(e)return e}}let s=r.get(t);return s?n.get(s)??null:null},Nt=e=>{if(y(e,`ImportSpecifier`)){let t=e.imported;return y(t,`Identifier`)?t.name:y(t,`Literal`)&&typeof t.value==`string`?t.value:null}return y(e,`ImportDefaultSpecifier`)?`default`:null},Pt=(e,t)=>{if(!y(e,`Program`))return[];let n=[];for(let r of e.body??[]){if(y(r,`ExportNamedDeclaration`)&&r.source){if(r.exportKind===`type`)continue;let e=r.source.value;if(typeof e!=`string`)continue;for(let n of r.specifiers??[]){if(!y(n,`ExportSpecifier`)||n.exportKind===`type`)continue;let r=n.exported;if((y(r,`Identifier`)?r.name:y(r,`Literal`)&&typeof r.value==`string`?r.value:null)!==t)continue;let i=n.local,a=y(i,`Identifier`)?i.name:y(i,`Literal`)&&typeof i.value==`string`?i.value:null;if(a)return[{importedName:a,source:e}]}}if(y(r,`ExportAllDeclaration`)&&r.source){if(r.exportKind===`type`||r.exported)continue;let e=r.source.value;typeof e==`string`&&n.push({importedName:t,source:e})}}return n},Ft=e=>{let t=(e,n)=>{let r=e;r.parent=n,r.range==null&&typeof r.start==`number`&&typeof r.end==`number`&&(r.range=[r.start,r.end]);let i=e;for(let n of Object.keys(i)){if(n===`parent`)continue;let r=i[n];if(Array.isArray(r))for(let n of r)_(n)&&t(n,e);else _(r)&&t(r,e)}};t(e,null)},It={".ts":`ts`,".tsx":`tsx`,".js":`js`,".jsx":`jsx`,".mjs":`js`,".cjs":`js`,".mts":`ts`,".cts":`ts`},Lt=e=>It[i.extname(e).toLowerCase()]??`tsx`,Rt=({filename:t,sourceText:n,shouldAttachParentReferences:r=!0})=>{try{let i=e(t,n,{astType:`ts`,lang:Lt(t)});if(i.errors.some(e=>e.severity===`Error`))return null;let a=i.program;return r&&Ft(a),a}catch{return null}},zt=new Map,Bt=e=>{e.endsWith(`.d.ts`)||e.endsWith(`.d.mts`)||e.endsWith(`.d.cts`)||D(e);let t;try{t=r.statSync(e)}catch{return null}if(!t.isFile()||t.size>2e6)return null;let n=zt.get(e);if(n&&n.mtimeMs===t.mtimeMs&&n.size===t.size)return n.program;if(e.endsWith(`.d.ts`)||e.endsWith(`.d.mts`)||e.endsWith(`.d.cts`))return zt.set(e,{mtimeMs:t.mtimeMs,size:t.size,program:null}),null;let i;try{i=r.readFileSync(e,`utf8`)}catch{return zt.set(e,{mtimeMs:t.mtimeMs,size:t.size,program:null}),null}let a=Rt({filename:e,sourceText:i});return zt.set(e,{mtimeMs:t.mtimeMs,size:t.size,program:a}),a},Vt=[`.ts`,`.tsx`,`.js`,`.jsx`,`.mjs`,`.cjs`,`.mts`,`.cts`],Ht=[`import`,`default`,`module`,`browser`,`require`],Ut=[`module`,`main`,`browser`],Wt=e=>{dt(e);try{return r.statSync(e).isFile()?e:null}catch{return null}},Gt=e=>{dt(e);try{return r.statSync(e).isDirectory()?e:null}catch{return null}},Kt=e=>{let t=i.extname(e);if(!t)return Vt.map(t=>`${e}${t}`);let n=e.slice(0,-t.length);return t===`.js`?[e,`${n}.ts`,`${n}.tsx`,`${n}.jsx`]:t===`.jsx`?[e,`${n}.tsx`]:t===`.mjs`?[e,`${n}.mts`]:t===`.cjs`?[e,`${n}.cts`]:[e]},qt=e=>typeof e==`object`&&!!e,Jt=e=>{if(typeof e==`string`)return e;if(Array.isArray(e)){for(let t of e){let e=Jt(t);if(e)return e}return null}if(!qt(e))return null;for(let t of Ht){let n=Jt(e[t]);if(n)return n}return null},Yt=e=>{let t=e.exports;return t?Jt(t)||(qt(t)?Jt(t[`.`]):null):null},Xt=e=>Qt(e)||Qt(i.join(e,`index`)),Zt=e=>{let t=Gt(e);if(!t)return null;let n=i.join(t,`package.json`);D(n);try{let e=JSON.parse(r.readFileSync(n,`utf8`)),a=Yt(e)??Ut.map(t=>e[t]).find(e=>typeof e==`string`);return a?Xt(i.resolve(t,a)):null}catch{return null}},Qt=e=>{let t=Wt(e);if(t)return t;for(let t of Kt(e)){let e=Wt(t);if(e)return e}return null},$t=e=>Qt(e)||Zt(e)||Qt(i.join(e,`index`)),en=(e,t)=>$t(i.resolve(i.dirname(e),t)),tn=[`tsconfig.json`,`jsconfig.json`],nn=e=>typeof e==`object`&&!!e,rn=e=>{let t=``,n=!1,r=!1,i=!1;for(let a=0;a<e.length;a++){let o=e[a],s=e[a+1];if(r){o===`
|
|
2
|
+
`&&(r=!1,t+=o);continue}if(i){o===`*`&&s===`/`&&(i=!1,a++);continue}if(n){t+=o,o===`\\`?(t+=s??``,a++):o===`"`&&(n=!1);continue}if(o===`"`){n=!0,t+=o;continue}if(o===`/`&&s===`/`){r=!0,a++;continue}if(o===`/`&&s===`*`){i=!0,a++;continue}t+=o}return t.replace(/,(\s*[}\]])/g,`$1`)},an=(e,t)=>{D(e),t.push(e);let n;try{n=r.readFileSync(e,`utf8`)}catch{return null}try{let e=JSON.parse(rn(n));return nn(e)?e:null}catch{return null}},on=(e,t)=>{let n=e.endsWith(`.json`)?e:`${e}.json`;return e.startsWith(`./`)||e.startsWith(`../`)?i.resolve(t,n):i.join(t,`node_modules`,n)},sn=e=>{let t=new Map;if(!nn(e))return t;for(let[n,r]of Object.entries(e)){if(!Array.isArray(r))continue;let e=r.filter(e=>typeof e==`string`);e.length>0&&t.set(n,e)}return t},cn=(e,t,n)=>{let r=an(e,n);if(!r)return null;let a=i.dirname(e),o=nn(r.compilerOptions)?r.compilerOptions:{},s=typeof o.baseUrl==`string`?o.baseUrl:null,c=s!==null,l=s===null?a:i.resolve(a,s);if(nn(o.paths))return{baseAbsolutePath:l,hasExplicitBaseUrl:c,paths:sn(o.paths)};if(typeof r.extends==`string`&&t<8){let e=on(r.extends,a),i=e?cn(e,t+1,n):null;if(i)return i}return c?{baseAbsolutePath:l,hasExplicitBaseUrl:c,paths:new Map}:null},ln=new Map,un=new Map,dn=e=>{D(e);let t;try{t=r.statSync(e)}catch{return{config:null,probedContentPaths:new Set([e])}}let n=ln.get(e);if(n&&n.mtimeMs===t.mtimeMs){for(let e of n.probedChainPaths)D(e);return{config:n.config,probedContentPaths:new Set(n.probedChainPaths)}}let i=[],a=cn(e,0,i);return ln.set(e,{mtimeMs:t.mtimeMs,config:a,probedChainPaths:i}),{config:a,probedContentPaths:new Set(i)}},fn=e=>{let t=ft(),n=t?un.get(e):void 0;if(n!==void 0){for(let e of n.probedContentPaths)D(e);return n.config}let r=new Set,a=e;for(let n=0;n<30;n++){for(let n of tn){let o=dn(i.join(a,n));for(let e of o.probedContentPaths)r.add(e);if(o.config)return t&&un.set(e,{config:o.config,probedContentPaths:r}),o.config}let n=i.dirname(a);if(n===a)break;a=n}return t&&un.set(e,{config:null,probedContentPaths:r}),null},pn=(e,t)=>{let n=t.indexOf(`*`);if(n===-1)return e===t?``:null;let r=t.slice(0,n),i=t.slice(n+1);return e.length>=r.length+i.length&&e.startsWith(r)&&e.endsWith(i)?e.slice(r.length,e.length-i.length):null},mn=(e,t)=>{let n=fn(i.dirname(e));if(!n)return null;let r=null,a=``,o=-1;for(let e of n.paths.keys()){let n=pn(t,e);if(n===null)continue;let i=e.indexOf(`*`),s=i===-1?e.length:i;s>o&&(r=e,a=n,o=s)}if(r)for(let e of n.paths.get(r)??[]){let t=e.replaceAll(`*`,a),r=$t(i.resolve(n.baseAbsolutePath,t));if(r)return r}return n.hasExplicitBaseUrl?$t(i.resolve(n.baseAbsolutePath,t)):null},hn=()=>{ln.clear(),un.clear()},gn=(e,t)=>i.isAbsolute(t)?null:t.startsWith(`.`)?en(e,t):mn(e,t),_n=new Map,vn=()=>{_n.clear()},yn=(e,t,n)=>{if(n.size>=4||n.has(e))return null;n.add(e);let r=Bt(e);if(!r)return null;let i=Mt(r,t);if(i)return{filePath:e,exportedNode:i,programNode:r};let a=new Map;for(let i of Pt(r,t)){let t=gn(e,i.source);if(!t)continue;let r=yn(t,i.importedName,new Set(n));r&&a.set(r.exportedNode,r)}return a.size===1?a.values().next().value??null:null},bn=(e,t,n)=>xn(e,t,n)?.functionNode??null,xn=(e,t,n)=>{let r=k(e,t,n);return!r||!v(r.exportedNode)?null:{filePath:r.filePath,functionNode:r.exportedNode,programNode:r.programNode}},k=(e,t,n)=>{if(!ft()){let r=gn(e,t);return r?yn(r,n,new Set):null}let r=`${e}\0${t}\0${n}`,i=_n.get(r);if(i!==void 0){for(let e of i.trace.contentPaths)D(e);for(let e of i.trace.existencePaths)dt(e);return i.result}let a=pt(()=>{let r=gn(e,t);return r?yn(r,n,new Set):null});return _n.set(r,{result:a.value,trace:a.trace}),a.value},Sn=(e,t)=>{let n=e,r=he[e.type];if(r!==void 0){for(let e=r.length-1;e>=0;--e){let i=n[r[e]];if(Array.isArray(i))for(let e=i.length-1;e>=0;--e){let n=i[e];_(n)&&t.push(n)}else _(i)&&t.push(i)}return}let i=Object.keys(n);for(let e=i.length-1;e>=0;--e){let r=i[e];if(r===`parent`)continue;let a=n[r];if(Array.isArray(a))for(let e=a.length-1;e>=0;--e){let n=a[e];_(n)&&t.push(n)}else _(a)&&t.push(a)}},Cn=(e,t)=>{let n=e,r=he[e.type];if(r!==void 0){for(let e=0;e<r.length;e+=1){let i=n[r[e]];if(Array.isArray(i))for(let e=0;e<i.length;e+=1){let n=i[e];_(n)&&t(n)}else _(i)&&t(i)}return}for(let e in n){if(e===`parent`||!Object.hasOwn(n,e))continue;let r=n[e];if(Array.isArray(r))for(let e=0;e<r.length;e+=1){let n=r[e];_(n)&&t(n)}else _(r)&&t(r)}},A=(e,t)=>{if(!e||typeof e!=`object`)return;let n=[e];for(;n.length>0;){let e=n.pop();e===void 0||t(e)===!1||Sn(e,n)}},wn=({absoluteFilePath:e,staticImports:t,program:n})=>{let r=new Set;if(A(n,e=>{if(e.type!==`JSXOpeningElement`)return;let t=e.name;if(t){if(t.type===`JSXIdentifier`){let e=t.name;typeof e==`string`&&r.add(e)}else if(t.type===`JSXMemberExpression`){let e=t.property;e?.type===`JSXIdentifier`&&typeof e.name==`string`&&r.add(e.name)}else if(t.type===`JSXNamespacedName`){let e=t.namespace;typeof e?.name==`string`&&r.add(e.name)}}}),r.size!==0)for(let n of t)for(let t of n.entries){let{importName:i}=t;if(i.kind===`NamespaceObject`||!r.has(t.localName.value))continue;let a=i.kind===`Default`?`default`:i.name;a&&bn(e,n.moduleRequest.value,a)}},Tn=e=>e.replace(/^type\s+/,``).trim(),En=(e,t)=>e.split(`,`).map(e=>e.trim()).filter(Boolean).map(e=>{let n=t||e.startsWith(`type `),[r,i]=e.split(/\s+as\s+/),a=Tn(r??``);return{localName:a,exportedName:Tn(i??a),isTypeOnly:n}}),Dn=/\/\*[\s\S]*?\*\//g,On=/^\s*\/\/.*$/gm,kn=e=>e.replace(Dn,``).replace(On,``),An=/^\s*export\s+default\b/m,jn=/^\s*export\s+(?:declare\s+)?(?:(?:async\s+)?function|(?:abstract\s+)?class|const|let|var|enum|interface|type)\s+([\w$]+)/gm,Mn=/^\s*export\s+(?:type\s+)?\{([\s\S]*?)\}(?:\s+from\s+["'][^"']+["'])?\s*;?\s*(?:(?:\/\/[^\n]*)?\s*)/gm,Nn=e=>{let t=kn(e),n=new Set;An.test(t)&&n.add(`default`);for(let e of t.matchAll(jn))e[1]&&n.add(e[1]);for(let e of t.matchAll(Mn)){let t=e[1]??``;for(let e of En(t,!1))n.add(e.exportedName)}return n},Pn=new Map,Fn=(e,t)=>{D(e);try{let n=r.statSync(e),i=Pn.get(e);if(i&&i.mtimeMs===n.mtimeMs&&i.size===n.size)return i.exportedNames.has(t);let a=Nn(r.readFileSync(e,`utf8`));return Pn.set(e,{mtimeMs:n.mtimeMs,size:n.size,exportedNames:a}),a.has(t)}catch{return!1}},In=(e,t)=>{let n=e.replaceAll(`\\`,`/`),r=i.dirname(n);for(let e=0;e<30;e++){for(let e of Ve){let a=i.join(r,e);if(a.replaceAll(`\\`,`/`)!==n&&t(a))return!0}let e=i.dirname(r);if(i.basename(r)===`app`&&i.basename(e)!==`app`||e===r)break;r=e}return!1},Ln=e=>In(e,e=>He.some(t=>Fn(e,t))),j=e=>{if(!y(e,`ImportSpecifier`))return;let t=e.imported;if(y(t,`Identifier`))return t.name;if(y(t,`Literal`)&&typeof t.value==`string`)return t.value},Rn=e=>y(e,`JSXIdentifier`)?e.name===`Suspense`:y(e,`JSXMemberExpression`)&&y(e.property,`JSXIdentifier`)&&e.property.name===`Suspense`,zn=e=>{let t=!1;return A(e,e=>{if(t)return!1;if(y(e,`JSXOpeningElement`)&&Rn(e.name)||y(e,`ImportDeclaration`)&&e.source?.value===`react`&&(e.specifiers??[]).some(e=>y(e,`ImportSpecifier`)&&j(e)===`Suspense`))return t=!0,!1}),t},Bn=e=>In(e,e=>{let t=Bt(e);return!!(t&&zn(t))}),Vn=/^index\.(?:[cm]?[jt]sx?|mjs)$/,Hn=/^\s*import\s+(type\s+)?(?!["'])([^;]*?)\s+from\s+["']([^"']+)["']\s*;?\s*(?:(?:\/\/[^\n]*)?\s*)/gm,Un=/^\s*export\s+(type\s+)?(?:\*(?:\s+as\s+([\w$]+))?|\{([\s\S]*?)\})\s+from\s+["']([^"']+)["']\s*;?\s*(?:(?:\/\/[^\n]*)?\s*)/gm,Wn=/^\s*export\s+(type\s+)?\{([\s\S]*?)\}\s*;?\s*(?:(?:\/\/[^\n]*)?\s*)/gm,Gn=new Map,Kn=e=>Vn.test(i.basename(e)),qn=()=>({isBarrel:!1,exportsByName:new Map,starExportSources:[]}),Jn=(e,t)=>{e.set(t.localName,{...t,didExport:!1})},Yn=(e,t,n,r)=>{for(let i of En(e,n))Jn(r,{localName:i.exportedName,importedName:i.localName,source:t,isTypeOnly:i.isTypeOnly})},Xn=(e,t,n,r)=>{let i=e.trim(),a=i.match(/(?:^|,\s*)\*\s+as\s+([\w$]+)/);a?.[1]&&Jn(r,{localName:a[1],importedName:`*`,source:t,isTypeOnly:n});let o=i.match(/\{([\s\S]*?)\}/);o?.[1]&&Yn(o[1],t,n,r);let s=i.split(`,`)[0]?.trim();s&&!s.startsWith(`{`)&&!s.startsWith(`*`)&&Jn(r,{localName:s,importedName:`default`,source:t,isTypeOnly:n})},Zn=(e,t,n,r)=>{let i=e.replace(Hn,(e,n,r,i)=>(Xn(r,i,!!n,t),``));return i=i.replace(Un,(e,t,i,a,o)=>{let s=!!t;if(i)return n.set(i,{exportedName:i,importedName:`*`,source:o,isTypeOnly:s}),``;if(a){for(let e of En(a,s))n.set(e.exportedName,{exportedName:e.exportedName,importedName:e.localName,source:o,isTypeOnly:e.isTypeOnly});return``}return r.push(o),``}),i=i.replace(Wn,(e,r,i)=>{for(let a of En(i,!!r)){let r=t.get(a.localName);if(!r)return e;r.didExport=!0,n.set(a.exportedName,{exportedName:a.exportedName,importedName:r.importedName,source:r.source,isTypeOnly:a.isTypeOnly||r.isTypeOnly})}return``}),i},Qn=e=>{for(let t of e.values())if(!t.isTypeOnly&&!t.didExport)return!0;return!1},$n=e=>{let t=kn(e).trim();if(!t)return qn();let n=new Map,r=new Map,i=[];return Zn(t,n,r,i).trim()||Qn(n)?qn():{isBarrel:r.size>0||i.length>0,exportsByName:r,starExportSources:i}},er=e=>{if(!Kn(e))return qn();D(e);let t;try{t=r.statSync(e)}catch{t=null}let n=Gn.get(e);if(n!==void 0&&t!==null&&n.mtimeMs===t.mtimeMs&&n.size===t.size)return n.moduleInfo;if(t===null)return qn();let i=qn();try{i=$n(r.readFileSync(e,`utf8`))}catch{i=qn()}return Gn.set(e,{mtimeMs:t.mtimeMs,size:t.size,moduleInfo:i}),i},tr=e=>er(e).isBarrel,nr=i.join(`android`,`gradle.properties`),rr=/^\s*newArchEnabled\s*=\s*false\s*$/m,ir=[`app.config.ts`,`app.config.js`,`app.config.cjs`,`app.config.mjs`],ar=[`app.config.json`,`app.json`],or=new WeakMap,sr=e=>{D(i.join(e,nr));for(let t of ir)dt(i.join(e,t));for(let t of ar)D(i.join(e,t))},cr=e=>{try{return r.readFileSync(e,`utf-8`)}catch{return null}},lr=e=>{let t=e.dependencies?.[`react-native`]??e.devDependencies?.[`react-native`];return typeof t==`string`?t:null},ur=e=>{let t=e.match(/(?:^|[^\d.])0\.(\d+)/);return t?Number.parseInt(t[1],10):null},dr=e=>{let t=cr(i.join(e,nr));return t!==null&&rr.test(t)},fr=e=>{for(let t of ir)if(r.existsSync(i.join(e,t)))return!1;for(let t of ar){let n=cr(i.join(e,t));if(n===null)continue;let r;try{r=JSON.parse(n)}catch{continue}if(typeof r!=`object`||!r)continue;let a=Object.getOwnPropertyDescriptor(r,`expo`)?.value;if(!(typeof a!=`object`||!a)&&Object.getOwnPropertyDescriptor(a,`newArchEnabled`)?.value===!1)return!0}return!1},pr=(e,t)=>{let n=lr(t);if(n!==null){let e=ur(n);if(e!==null&&e<76)return!0}return dr(e)||fr(e)},mr=e=>{let t=vt(e);if(!t)return!1;let n=yt(e);if(!n)return!1;sr(t);let r=or.get(n);if(r!==void 0)return r;let i=pr(t,n);return or.set(n,i),i},hr=e=>{let t=e.match(/^(\d+)(?:\.(\d+))?(?:\.(\d+))?(-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/);return t?{major:Number(t[1]),minor:Number(t[2]??0),patch:Number(t[3]??0),isPrerelease:!!t[4]}:null},gr=(e,t)=>e.major-t.major||e.minor-t.minor||e.patch-t.patch||Number(t.isPrerelease)-Number(e.isPrerelease),_r=e=>{if(typeof e!=`string`)return null;let t=e.trim();if(!t||/^(?:catalog|file|git|https?|link|npm|workspace):/.test(t)||/^(?:latest|next|\*)$/.test(t))return null;let n=[];for(let e of t.split(`||`)){let t=e.trim();if(/^<(?!=)/.test(t)||/^<=/.test(t))return null;let r=t.match(/\d+(?:\.\d+)?(?:\.\d+)?(?:-[0-9A-Za-z.-]+)?/)?.[0];if(!r)return null;let i=hr(r);if(!i)return null;n.push(i)}return n.reduce((e,t)=>gr(t,e)<0?t:e)},vr=e=>_r(e.dependencies?.ink??e.devDependencies?.ink??e.peerDependencies?.ink??e.optionalDependencies?.ink),yr=e=>{let t=e;for(;;){let e=bt(i.join(t,`node_modules`,`ink`));if(e)return{didFindPackage:!0,version:typeof e.version==`string`?hr(e.version):null};let n=i.dirname(t);if(n===t)return{didFindPackage:!1,version:null};t=n}},br=e=>{if(!e)return null;let t=vt(i.resolve(e));if(!t)return null;let n=yr(t);if(n.didFindPackage)return n.version;let r=bt(t);return r?vr(r):null},xr=(e,t)=>{let n=br(e),r=hr(t);return!!(n&&r&&gr(n,r)>=0)},Sr=new Set([`@monaco-editor/react`,`monaco-editor`,`recharts`,`@react-pdf/renderer`,`react-quill`,`@codemirror/view`,`@codemirror/state`,`chart.js`,`react-chartjs-2`,`@toast-ui/editor`,`draft-js`,`mermaid`]),Cr=new Set([`fetch`,`ky`,`got`,`wretch`,`ofetch`]),wr=new Set([`axios`,`ky`,`got`,`ofetch`,`wretch`,`request`]),Tr=new Set([`create`,`insert`,`insertInto`,`update`,`upsert`,`delete`,`remove`,`destroy`,`set`,`append`]),Er=new Set([`POST`,`PUT`,`DELETE`,`PATCH`]),Dr=new Set([`Map`,`Set`,`WeakMap`,`WeakSet`,`Headers`,`URLSearchParams`,`FormData`,`Response`,`NextResponse`]),Or=new Set([`Response`,`NextResponse`]),kr=new Set([`json`,`redirect`,`next`,`rewrite`,`error`]),Ar=new Set([`wheel`,`mousewheel`,`touchstart`,`touchmove`]),jr=new Set([`defer`,`async`]),Mr=new Set([`text/javascript`,`application/javascript`,`module`]),Nr=new Set([`setTimeout`,`setInterval`,`requestAnimationFrame`,`requestIdleCallback`,`queueMicrotask`]),Pr=new Set([`setInterval`,`setTimeout`]),Fr=new Set([`clearInterval`,`clearTimeout`]),Ir=new Set([`WebSocket`,`EventSource`,`BroadcastChannel`,`RTCPeerConnection`]),Lr=new Set([`location`,`window`,`document`,`navigator`,`history`,`screen`,`performance`]),Rr=new Set([`IntersectionObserver`,`MutationObserver`,`ResizeObserver`,`PerformanceObserver`]),zr=new Set([`blur`,`focus`,`getBoundingClientRect`,`getClientRects`,`measure`,`measureInWindow`,`measureLayout`,`scroll`,`scrollBy`,`scrollIntoView`,`scrollTo`,`select`,`setRangeText`,`setSelectionRange`]),Br=new Set([`localStorage`,`sessionStorage`]),Vr=new Set([`index`,`idx`,`i`]),Hr=new Set([`react`,`react-dom`,`preact/compat`,`preact/hooks`,`@wordpress/element`]),Ur=new Set([`next`,`next-themes`,`@remix-run/react`,`swr`,`zustand`,`jotai`,`recoil`,`wouter`,`framer-motion`,`@apollo/client`,`urql`,`usehooks-ts`]),Wr=/^(?:isLoading|isPending)$/,Gr=new Set([`useState`,`useMemo`,`useRef`]),Kr=new Set([`Click`,`Change`,`Input`,`Blur`,`Focus`]),qr=new Set([`Boolean`,`String`,`Number`,`Array`,`Object`,`parseInt`,`parseFloat`]),Jr=/^set[A-Z]/,Yr=/^render[A-Z]/,Xr=/^[A-Z]/,Zr=/^on[A-Z]/,Qr=/^use[A-Z]/,$r=/^(?:on|handle)[A-Z]/,ei=new Set([`useEffect`,`useLayoutEffect`]),ti=new Set([`useEffect`,`useLayoutEffect`,`useMemo`,`useCallback`]),ni=new Set([`use`,`useState`,`useRef`,`useMemo`,`useCallback`,`useReducer`,`useContext`,`useEffect`,`useLayoutEffect`,`useInsertionEffect`,`useImperativeHandle`,`useSyncExternalStore`,`useDeferredValue`,`useTransition`,`useId`,`useDebugValue`]),ri=new Set([`memo`,`forwardRef`,`React.memo`,`React.forwardRef`]),ii=new Set([`useMemo`,`useCallback`]),ai=new Set([`memo`,`forwardRef`,`observer`,`lazy`]),oi=new Set([`subscribe`,`addEventListener`,`addListener`,`on`,`watch`,`listen`,`sub`]),si=new Set([`subscribe`,`sub`,`listen`]),ci=new Set([`unsubscribe`,`removeEventListener`,`removeListener`,`off`,`unwatch`,`unlisten`,`unsub`,`abort`,`disconnect`,`unobserve`,`close`]),li=new Set([`remove`,`cleanup`,`dispose`,`destroy`,`stop`,`teardown`]),ui=new Set([...ci,`cleanup`,`dispose`,`destroy`,`teardown`]),di=new Set([...oi,`connect`,`disconnect`,`open`,`close`,`fetch`,`post`,`put`,`patch`]);new Set([...wr,`api`,`client`,`http`,`fetcher`]);const fi=new Set([`get`,`head`,`options`,`delete`]),pi=new Set([...Cr,...Nr]),mi=new Set([...Cr,`post`,`put`,`patch`,`navigate`,`navigateTo`,`showNotification`,`toast`,`alert`,`confirm`,`logVisit`,`captureEvent`]),hi=new Set([`post`,`put`,`patch`,`delete`,`navigate`,`capture`,`track`,`logEvent`]),gi=new Set([`push`,`replace`]),_i=new Set([`router`,`navigation`,`navigator`,`history`,`location`]),M=(e,t={})=>{if(!y(e,`Property`)&&!y(e,`MethodDefinition`)&&!y(e,`PropertyDefinition`)&&!y(e,`MemberExpression`))return null;let n=y(e,`MemberExpression`)?e.property:e.key;if(e.computed)return t.allowComputedString&&y(n,`Literal`)&&typeof n.value==`string`?n.value:t.allowComputedString&&t.stringifyNonStringLiterals&&y(n,`Literal`)?String(n.value):t.allowComputedString&&y(n,`TemplateLiteral`)&&n.expressions.length===0?n.quasis[0]?.value.cooked??n.quasis[0]?.value.raw??null:null;if(y(n,`Identifier`))return n.name;if(y(n,`Literal`)){if(typeof n.value==`string`)return n.value;if(t.stringifyNonStringLiterals)return String(n.value)}return null},N=e=>{let t=e.property;return!e.computed&&y(t,`Identifier`)?t.name:e.computed&&y(t,`Literal`)?typeof t.value==`string`?t.value:null:e.computed&&y(t,`TemplateLiteral`)&&t.expressions.length===0?t.quasis[0]?.value.cooked??t.quasis[0]?.value.raw??null:null},P=(e,t,n=!1)=>{if(e.type!==`Identifier`&&e.type!==`JSXIdentifier`)return null;let r=null,i=t.symbolFor(e);for(;i?.kind===`const`;){if(!i.initializer||i.declarationNode.type!==`VariableDeclarator`)return null;if(i.declarationNode.id!==i.bindingIdentifier)return n?i:null;let e=O(i.initializer);if(e.type!==`Identifier`)return i;if(r?.has(i.id))return null;r||=new Set,r.add(i.id),i=t.symbolFor(e)}return i},vi={},yi=new WeakMap,bi=(e,t)=>typeof e==`string`?e===t:e.has(t),xi=e=>{let t=yi.get(e);if(t)return t;let n=e.declarationNode.parent,r=!!(e.kind===`import`&&n&&n.type===`ImportDeclaration`&&typeof n.source.value==`string`&&Hr.has(n.source.value)),i={importedName:r?j(e.declarationNode):void 0,isReactImport:r};return yi.set(e,i),i},Si=e=>xi(e).isReactImport,Ci=(e,t,n,r)=>{if(e.type!==`Identifier`)return!1;let i=r?P(e,n):n.symbolFor(e);if(!i)return!1;let a=xi(i);return!!(a.isReactImport&&a.importedName&&bi(t,a.importedName))},wi=(e,t)=>{let n=P(e,t);if(!n)return!1;let r=xi(n);return r.isReactImport?n.declarationNode.type===`ImportDefaultSpecifier`||n.declarationNode.type===`ImportNamespaceSpecifier`||r.importedName===`default`:!1},Ti=(e,t,n)=>e.type===`Identifier`?wi(e,t)?!0:!!(n.allowGlobalReactNamespace&&e.name===`React`&&t.isGlobalReference(e)):!1,Ei=(e,t,n,r)=>{let i=n.symbolFor(e);if(!i||i.kind!==`const`||!i.initializer||i.declarationNode.type!==`VariableDeclarator`)return!1;let a=i.declarationNode.id;if(a.type!==`ObjectPattern`)return!1;for(let e of a.properties){if(e.type!==`Property`||e.value!==i.bindingIdentifier)continue;let a=M(e);return!!(a&&bi(t,a)&&Ti(O(i.initializer),n,r))}return!1},F=(e,t,n,r=vi)=>e.type===`CallExpression`?Di(e.callee,t,n,r):!1,Di=(e,t,n,r,i)=>{let a=O(e);if(r.resolveConditionalAliases&&a.type===`ConditionalExpression`)return Di(a.consequent,t,n,r,new Set(i))&&Di(a.alternate,t,n,r,new Set(i));if(a.type===`Identifier`){if(Ci(a,t,n,!!r.resolveNamedAliases)||r.resolveNamedAliases&&Ei(a,t,n,r))return!0;if(r.resolveConditionalAliases){let e=n.symbolFor(a);if(e?.kind===`const`&&e.initializer&&!i?.has(e.id)){let a=i??new Set;return a.add(e.id),Di(e.initializer,t,n,r,a)}}return!!(r.allowUnboundBareCalls&&bi(t,a.name)&&n.isGlobalReference(a))}return a.type!==`MemberExpression`||!bi(t,N(a)??``)?!1:Ti(O(a.object),n,r)},Oi=e=>e.includes(`\\`)?e.replaceAll(`\\`,`/`):e,ki=e=>{let t=new Set(e);if(t.size!==1)return null;let[n]=t;return n??null},Ai=(e,t,n,r)=>{let i=en(e,n);return i?ji(i,t,new Set(r))||(Fn(i,t)?i:null):null},ji=(e,t,n=new Set)=>{if(n.has(e))return null;n.add(e);let r=er(e);if(!r.isBarrel)return null;let i=r.exportsByName.get(t);if(i){let t=en(e,i.source);return t?ji(t,i.importedName,n)??t:null}return t===`default`?null:ki(r.starExportSources.map(r=>Ai(e,t,r,n)).filter(e=>!!e))},Mi=(e,t,n)=>{let r=k(e,t,n);return r?{filePath:r.filePath,node:r.exportedNode,programNode:r.programNode,kind:v(r.exportedNode)?`function`:`initializer`}:null},I=e=>{let t=e;for(;t.parent&&jt.has(t.parent.type);)t=t.parent;return t},Ni=(e,t)=>{if(!y(e,`ArrowFunctionExpression`)&&!y(e,`FunctionExpression`)&&!y(e,`FunctionDeclaration`))return null;let n=e.params[0],r=y(n,`AssignmentPattern`)?n.left:n;if(y(r,`ObjectPattern`)){let e=r.properties.find(e=>y(e,`Property`)&&M(e,{allowComputedString:!0})===`children`);if(!e||!y(e,`Property`))return null;let n=y(e.value,`AssignmentPattern`)?e.value.left:e.value;if(!y(n,`Identifier`))return null;let i=t.symbolFor(n);return!i||i.references.length===0||i.references.some(e=>e.flag!==`read`)?null:i.references.map(e=>e.identifier)}if(!y(r,`Identifier`))return null;let i=t.symbolFor(r);if(!i||i.references.length===0)return null;let a=[];for(let e of i.references){if(e.flag!==`read`)return null;let t=[],n=I(e.identifier);for(;n.parent&&y(n.parent,`MemberExpression`)&&n.parent.object===n;){let e=N(n.parent);if(!e)return null;t.push(e),n=I(n.parent)}if(t[0]!==`children`){if(t.length===0)return null;continue}if(t.length!==1)return null;a.push(n)}return a.length>0?a:null},L=e=>{let t=e.parent;for(;t;){if(v(t))return t;t=t.parent??null}return null},Pi=e=>{let t=e;for(;t;){if(y(t,`Program`))return t;t=t.parent??null}return null},Fi=e=>{let t=new Map,n=e.body??[];for(let e of n){if(e.type!==`ImportDeclaration`||!(`source`in e)||!e.source)continue;let n=e.source.value;if(typeof n==`string`&&!(!(`specifiers`in e)||!Array.isArray(e.specifiers)))for(let r of e.specifiers){if(!(`local`in r)||!r.local)continue;let e=r.local;if(typeof e.name==`string`){if(r.type===`ImportDefaultSpecifier`)t.set(e.name,{source:n,imported:null,isDefault:!0,isNamespace:!1});else if(r.type===`ImportNamespaceSpecifier`)t.set(e.name,{source:n,imported:null,isDefault:!1,isNamespace:!0});else if(r.type===`ImportSpecifier`){let i=r.imported,a=i?.name??(typeof i?.value==`string`?i.value:null);t.set(e.name,{source:n,imported:a,isDefault:!1,isNamespace:!1})}}}}return t},Ii=new WeakMap,Li=e=>{let t=Pi(e);if(!t)return null;let n=Ii.get(t);return n||(n=Fi(t),Ii.set(t,n)),n},Ri=(e,t)=>{let n=Li(e);if(!n)return!1;for(let e of n.values())if(t.includes(e.source))return!0;return!1},zi=(e,t,n)=>{let r=Li(e);if(!r)return!1;let i=r.get(t);return i?i.source===n:!1},Bi=(e,t,n)=>{let r=Li(e);if(!r)return!1;let i=r.get(t);return i?i.isNamespace&&i.source===n:!1},Vi=(e,t,n)=>{let r=Li(e);if(!r)return!1;let i=r.get(t);return i?i.isDefault&&i.source===n:!1},Hi=(e,t,n)=>{let r=Li(e);if(!r)return null;let i=r.get(t);return!i||i.source!==n?null:i.imported},Ui=(e,t)=>{let n=Li(e);return n?n.get(t)?.source??null:null},Wi=(e,t)=>{let n=Li(e)?.get(t);return n?n.isNamespace?{source:n.source,exportedName:null,isNamespace:!0}:{source:n.source,exportedName:n.isDefault?`default`:n.imported,isNamespace:!1}:null},Gi=e=>{let t=e,n=t.parent;for(;n&&O(n)===e;)t=n,n=t.parent;return n&&y(n,`AssignmentExpression`)&&n.operator===`=`&&n.left===t?n.right:null},Ki=e=>{let t=e.range?.[0];return typeof t==`number`?t:null},qi=new Set([`let`,`var`]),Ji=new Set([`ConditionalExpression`,`LogicalExpression`]),Yi=new WeakMap,Xi=(e,t,n)=>{let r=e.parent??null;for(;r&&n.blockOf(r)===t;){if(Ji.has(r.type))return!0;r=r.parent??null}return!1},Zi=(e,t)=>e.size===t.size&&[...e].every(e=>t.has(e)),Qi=(e,t)=>{let n=new Set(e);for(let e of t)e.isConditionalWithinBlock||(n=new Set),n.add(e);return n},$i=(e,t,n)=>{let r=L(t);if(L(e.bindingIdentifier)!==r||!r)return[];let i=n.cfgFor(r);if(!i)return[];let a=i.blockOf(t);if(!a)return[];let o=Ki(t),s=Ki(e.bindingIdentifier);if(o===null||s===null)return[];let c=new Map,l=(e,t,n)=>{let r=i.blockOf(t);if(!r)return;let a=c.get(r)??[];a.push({expression:e,position:n,isConditionalWithinBlock:Xi(t,r,i)}),c.set(r,a)};e.initializer&&l(e.initializer,e.bindingIdentifier,s);for(let t of e.references){let e=Ki(t.identifier);if(t.flag===`read`||L(t.identifier)!==r||e===null||e>=o)continue;let n=Gi(t.identifier);n&&l(n,t.identifier,e)}for(let e of c.values())e.sort((e,t)=>e.position-t.position);let u=new Map,d=new Map,f=new Set([i.entry]),p=[i.entry];for(;p.length>0;){let e=p.pop();if(!e)break;for(let t of e.successors)f.has(t.to)||(f.add(t.to),p.push(t.to))}if(!f.has(a))return[];let m=!0;for(;m;){m=!1;for(let e of i.blocks){if(!f.has(e))continue;let t=new Set;for(let n of e.predecessors)if(f.has(n.from))for(let e of d.get(n.from)??[])t.add(e);let n=Qi(t,c.get(e)??[]),r=u.get(e)??new Set,i=d.get(e)??new Set;(!Zi(t,r)||!Zi(n,i))&&(u.set(e,t),d.set(e,n),m=!0)}}let h=(c.get(a)??[]).filter(e=>e.position<o);return[...Qi(u.get(a)??new Set,h)].map(e=>e.expression)},ea=(e,t,n)=>{if(!qi.has(e.kind))return e.initializer?[e.initializer]:[];if(!n)return[];let r=Yi.get(n);r||(r=new WeakMap,Yi.set(n,r));let i=r.get(e);i||(i=new WeakMap,r.set(e,i));let a=i.get(t);if(a)return a;let o=$i(e,t,n);return i.set(t,o),o},ta=e=>{if(!v(e)||!y(e.body,`BlockStatement`))return[];let t=[];return A(e.body,n=>{if(n!==e.body&&(v(n)||y(n,`ClassDeclaration`)||y(n,`ClassExpression`)))return!1;y(n,`ReturnStatement`)&&t.push(n)}),t},R=e=>{if(y(e,`ReturnStatement`)||y(e,`ThrowStatement`))return!0;if(y(e,`IfStatement`)){if(y(e.test,`Literal`)){let t=e.test.value?e.consequent:e.alternate;return t?R(t):!1}return!!(e.alternate&&R(e.consequent)&&R(e.alternate))}if(y(e,`TryStatement`))return e.finalizer&&R(e.finalizer)?!0:R(e.block)?e.handler?R(e.handler.body):!0:!1;if(y(e,`DoWhileStatement`))return R(e.body);if(y(e,`WhileStatement`)){let t=e.test;return!!(y(t,`Literal`)&&t.value&&R(e.body))}if(y(e,`ForStatement`)){let t=e.test;return!!((!t||y(t,`Literal`)&&t.value)&&R(e.body))}return y(e,`BlockStatement`)?e.body.some(e=>R(e)):!1},na=new Set([`let`,`var`]),ra=e=>!v(e)||!e.body?[]:y(e.body,`BlockStatement`)?ta(e).flatMap(e=>e.argument?[e.argument]:[]):[e.body],ia=e=>{if(!v(e)||!y(e.body,`BlockStatement`))return!1;let t=!1;return A(e.body,n=>{if(t||n!==e.body&&v(n))return!1;y(n,`ReturnStatement`)&&!n.argument&&(t=!0)}),t},aa=(e,t,n,r=`some`)=>{let i=new Set,a=new Set,o,s=e=>{if(a.has(e))return!1;a.add(e);try{let t=ra(e);return r===`every`&&v(e)&&y(e.body,`BlockStatement`)&&(!R(e.body)||ia(e))?!1:t.length>0&&(r===`every`?t.every(o):t.some(o))}finally{a.delete(e)}};o=a=>{let l=O(a);if(i.has(l))return!1;i.add(l);try{if(t(l))return!0;if(y(l,`Identifier`)){let t=e.symbolFor(l);if(!t||t.kind!==`const`&&!na.has(t.kind))return!1;let i=ea(t,l,n),a=e=>{let t=O(e);return!v(t)&&o(t)};return r===`every`?i.length>0&&i.every(a):i.some(a)}if(y(l,`CallExpression`)){if(l.arguments.length!==0||!y(l.callee,`Identifier`))return!1;let t=e.symbolFor(l.callee);if(!t||t.kind!==`const`&&t.kind!==`function`)return!1;let n=t.initializer?O(t.initializer):null,r=null;return v(n)?r=n:v(t.declarationNode)&&(r=t.declarationNode),!r||r.async||r.generator||r.params.length!==0?!1:s(r)}return y(l,`ConditionalExpression`)?c(l.consequent,l.alternate):y(l,`LogicalExpression`)?c(l.left,l.right):!1}finally{i.delete(l)}};let c=(e,t)=>{let n=[o(e),o(t)];return r===`every`?n.every(Boolean):n.some(Boolean)};return{expressionMatches:o,functionMatches:s}},oa=(e,t,n,r,i=`some`)=>aa(t,n,r,i).functionMatches(e),sa=(e,t,n,r,i)=>{let a=i.cfgFor(e),o=a?.blockOf(t);if(!a||!o)return!1;let s=new Set(ta(e).flatMap(e=>{if(!e.argument||!aa(n,r,i,`every`).expressionMatches(e.argument))return[];let t=a.blockOf(e.argument);return t?[t]:[]}));if(s.size===0)return!1;let c=new Set([o]),l=[o];for(;l.length>0;){let e=l.pop();if(!e)break;if(!s.has(e))for(let t of e.successors){if(t.to===a.exit)return!1;c.has(t.to)||(c.add(t.to),l.push(t.to))}}return!0},ca=e=>y(e,`Program`)?e.range[1]:e.range[0],la=new WeakMap,ua=(e,t)=>{t.push(...e.symbols);for(let n of e.children)ua(n,t)},da=e=>{let t=new Map,n=[];ua(e.rootScope,n);for(let r of n){let n=P(r.bindingIdentifier,e);if(!n)continue;let i=t.get(n.id)??[];i.push(r),t.set(n.id,i)}return t},fa=(e,t)=>{let n=P(e,t);if(!n)return[];let r=la.get(t);return r||(r=da(t),la.set(t,r)),r.get(n.id)??[]},pa=e=>{let t=e.expressions??[],n=e.quasis??[];if(t.length!==0||n.length!==1)return null;let r=n[0]?.value;return r?.cooked??r?.raw??null},z=(e,t,n={})=>{let r=M(e,{allowComputedString:!0,stringifyNonStringLiterals:n.stringifyNonStringLiterals});if(r!==null||!y(e,`Property`)&&!y(e,`MethodDefinition`)&&!y(e,`PropertyDefinition`)&&!y(e,`MemberExpression`)||!e.computed)return r;let i=O(y(e,`MemberExpression`)?e.property:e.key);if(!y(i,`Identifier`))return null;let a=P(i,t);if(a?.kind!==`const`||!a.initializer)return null;let o=O(a.initializer);return y(o,`Literal`)?typeof o.value==`string`?o.value:n.allowConstNumericLiteral&&typeof o.value==`number`?String(o.value):null:n.allowConstTemplateLiteral&&y(o,`TemplateLiteral`)?pa(o):null},ma=new Set([`CatchClause`,`ConditionalExpression`,`DoWhileStatement`,`ForInStatement`,`ForOfStatement`,`ForStatement`,`IfStatement`,`LogicalExpression`,`SwitchCase`,`SwitchStatement`,`TryStatement`,`WhileStatement`]),ha=(e,t)=>{let n=e.parent??null;for(;n&&n!==t;){if(ma.has(n.type))return!1;n=n.parent??null}return n===t},ga=e=>L(e)??Pi(e),_a=e=>{let t=I(e),n=t.parent;return!!(n&&y(n,`VariableDeclarator`)&&n.init===t&&n.parent&&y(n.parent,`VariableDeclaration`)&&n.parent.kind===`const`)},va=e=>{let t=I(e),n=t.parent;return!!(n&&(y(n,`AssignmentExpression`)&&n.left===t||y(n,`UpdateExpression`)&&n.argument===t||y(n,`UnaryExpression`)&&n.operator===`delete`&&n.argument===t))},ya=e=>{let t=I(e),n=t.parent;return n&&y(n,`MemberExpression`)&&O(n.object)===t?n:null},ba=(e,t,n,r)=>{if(!y(e,`ObjectExpression`))return null;for(let i of e.properties.toReversed()){if(!y(i,`Property`))return null;let e=z(i,n);if(e===null)return null;if(e===t)return i.kind===`init`?B(i.value,n,r):null}return null},xa=(e,t,n,r)=>{if(!y(e,`ObjectExpression`))return[];let i=[],a=new Set;for(let o of e.properties){if(!y(o,`Property`))continue;let e=z(o,n),s=o.kind===`init`||o.kind===`get`?B(o.value,n,new Set(r)):null;e===t?(i=s?[s]:[],a.clear(),s&&a.add(s)):e===null&&s&&!a.has(s)&&(i.push(s),a.add(s))}return i},Sa=(e,t,n,r)=>{if(!y(e,`ClassDeclaration`)&&!y(e,`ClassExpression`))return null;for(let i of e.body.body.toReversed()){if(!y(i,`MethodDefinition`)&&!y(i,`PropertyDefinition`)||!i.static)continue;let e=z(i,n);if(e===null)return null;if(e===t)return y(i,`MethodDefinition`)&&i.kind!==`method`?null:i.value?B(i.value,n,r):null}return null},Ca=(e,t,n,r)=>{if(!y(e,`ClassDeclaration`)&&!y(e,`ClassExpression`))return[];let i=[],a=new Set;for(let o of e.body.body){if(!y(o,`MethodDefinition`)&&!y(o,`PropertyDefinition`)||!o.static)continue;let e=z(o,n),s=o.value&&(!y(o,`MethodDefinition`)||o.kind===`method`||o.kind===`get`)?B(o.value,n,new Set(r)):null;e===t?(i=s?[s]:[],a.clear(),s&&a.add(s)):e===null&&s&&!a.has(s)&&(i.push(s),a.add(s))}return i},wa=(e,t,n,r,i,a,o)=>{let s=ga(t);if(!s||!y(e,`Identifier`))return{exactFunction:null,possibleFunctions:[]};let c=[];for(let r of fa(e,a))for(let e of r.references){let r=e.identifier;if(r.range[0]>=t.range[0]||_a(r))continue;let i=ya(r);if(!i){ga(r)===s&&c.push({assignedExpression:null,isDefinite:!1,offset:r.range[0]});continue}if(!va(i)||ga(i)!==s)continue;let o=z(i,a),l=I(i).parent,u=l&&y(l,`AssignmentExpression`)&&l.operator===`=`?l.right:null;if(o===null){c.push({assignedExpression:u,isDefinite:!1,offset:i.range[0]});continue}if(o===n){if(!l||!y(l,`AssignmentExpression`)||l.operator!==`=`||!ha(i,s)){c.push({assignedExpression:u,isDefinite:!1,offset:i.range[0]});continue}c.push({assignedExpression:u,isDefinite:!0,offset:l.range[0]})}}c.sort((e,t)=>e.offset-t.offset);let l=r,u=i,d=new Set(i);for(let e of c){let t=e.assignedExpression?B(e.assignedExpression,a,new Set(o)):null;if(e.isDefinite){l=t,u=t?[t]:[],d.clear(),t&&d.add(t);continue}l=null,t&&!d.has(t)&&(u.push(t),d.add(t))}return{exactFunction:l,possibleFunctions:u}},Ta=(e,t,n)=>{if(!y(e,`MemberExpression`))return{exactFunction:null,possibleFunctions:[]};let r=N(e);if(r===null)return{exactFunction:null,possibleFunctions:[]};let i=O(e.object);if(y(i,`ObjectExpression`))return{exactFunction:ba(i,r,t,n),possibleFunctions:xa(i,r,t,n)};if(y(i,`ClassExpression`))return{exactFunction:Sa(i,r,t,n),possibleFunctions:Ca(i,r,t,n)};if(!y(i,`Identifier`))return{exactFunction:null,possibleFunctions:[]};let a=P(i,t);if(!a||n.has(a.id))return{exactFunction:null,possibleFunctions:[]};n.add(a.id);let o=null,s=[];if(a.kind===`const`&&a.initializer){let e=O(a.initializer);o=ba(e,r,t,n),s=xa(e,r,t,n)}else a.kind===`class`&&a.initializer&&(o=Sa(a.initializer,r,t,n),s=Ca(a.initializer,r,t,n));return wa(i,e,r,o,s,t,n)},Ea=(e,t,n)=>{let r=O(e);if(y(r,`CallExpression`)){let e=O(r.callee);return y(e,`MemberExpression`)&&N(e)===`bind`?Ea(e.object,t,n):[]}if(y(r,`MemberExpression`)){let e=N(r);return e===`call`||e===`apply`?Ea(r.object,t,n):Ta(r,t,n).possibleFunctions}let i=B(r,t,n);return i?[i]:[]},B=(e,t,n)=>{let r=O(e);if(v(r))return r;if(y(r,`CallExpression`)){let e=O(r.callee);return y(e,`MemberExpression`)&&N(e)===`bind`?B(e.object,t,n):null}if(y(r,`MemberExpression`)){let e=N(r);return e===`call`||e===`apply`?B(r.object,t,n):Ta(r,t,n).exactFunction}if(!y(r,`Identifier`))return null;let i=P(r,t);return!i||n.has(i.id)?null:(n.add(i.id),i.kind===`function`?!i.references.some(e=>e.flag!==`read`)&&v(i.declarationNode)?i.declarationNode:null:i.kind!==`const`||!i.initializer?null:B(i.initializer,t,n))},Da=(e,t)=>B(e,t,new Set),Oa=(e,t)=>Ea(e,t,new Set),ka=new WeakMap,Aa=(e,t)=>{let n=O(e);return y(n,`Identifier`)?t.symbolFor(n):null},ja=(e,t)=>{let n=I(e),r=n.parent;return!r||!y(r,`AssignmentExpression`)||r.operator!==`=`||r.left!==n?null:Aa(r.right,t)},Ma=e=>{let t=I(e),n=t.parent;return n&&y(n,`VariableDeclarator`)&&n.init===t&&(y(n.id,`Identifier`)||y(n.id,`ObjectPattern`))?!0:!!(n&&y(n,`AssignmentExpression`)&&n.operator===`=`&&n.right===t&&y(O(n.left),`Identifier`))},Na=(e,t,n)=>{if(e.initializer&&y(e.declarationNode,`VariableDeclarator`)&&e.declarationNode.id===e.bindingIdentifier){let r=Aa(e.initializer,n);if(r&&t.has(r.id))return!0}return e.references.some(e=>{let r=ja(e.identifier,n);return!!(r&&t.has(r.id))})},Pa=(e,t)=>{let n=P(e,t);if(!n)return[];let r=ka.get(t);r||(r=new Map,ka.set(t,r));let i=r.get(n.id);if(i)return i;let a=[],o=[t.rootScope];for(;o.length>0;){let e=o.pop();e&&(a.push(...e.symbols),o.push(...e.children))}let s=new Set([n.id]),c=!0;for(;c;){c=!1;for(let e of a)s.has(e.id)||Na(e,s,t)&&(s.add(e.id),c=!0)}let l=a.filter(e=>s.has(e.id));return r.set(n.id,l),l},Fa=e=>{let t=e;for(;t;){if(v(t)||y(t,`Program`))return t;t=t.parent??null}return null},Ia=new WeakMap,La=(e,t)=>{let n=Ia.get(t);if(!n){let r=new Map,i=new Map,a=Pi(e);a&&A(a,e=>{if(!y(e,`CallExpression`))return;let n=O(e.callee),a=y(n,`Identifier`)?t.symbolFor(n):null,o=a?i.get(a.id):void 0;o===void 0&&(o=Oa(e.callee,t),a&&i.set(a.id,o));for(let t of o){let n=r.get(t)??[];n.push(e),r.set(t,n)}}),n=r,Ia.set(t,n)}return n.get(e)??[]},Ra=new WeakMap,za=(e,t)=>{let n=Ra.get(t);if(n===void 0){let e=null;A(t,n=>{y(n,`AwaitExpression`)&&L(n)===t&&(e===null||n.range[0]<e)&&(e=n.range[0])}),n=e,Ra.set(t,n)}return n===null||e.range[0]<n},Ba=(e,t,n,r=new Set,i=null,a)=>{if(r.has(e)||!v(e)||e.generator||i!==null&&!ha(i,e)||i!==null&&a!==void 0&&!a(i)||i!==null&&e.async&&!za(i,e))return[];r.add(e);let o=Fa(t);return o?La(e,n).flatMap(e=>{let s=Fa(e);return!s||i!==null&&!ha(e,s)||i!==null&&a!==void 0&&!a(e)?[]:s===o?e.range[0]<ca(t)?[[e.range[0]]]:[]:v(s)?Ba(s,t,n,new Set(r),i===null?null:e,a).map(t=>[...t,e.range[0]]):[]}):[]},Va=(e,t,n,r=new Set,i=null)=>Ba(e,t,n,r,i).length>0,Ha=e=>{let t=e.parent;return t?y(t,`AssignmentExpression`)?t.left===e:(y(t,`UpdateExpression`)||y(t,`UnaryExpression`)&&t.operator===`delete`)&&t.argument===e:!1},Ua=e=>{let t=e.parent;for(;t&&O(t)===e;)t=t.parent;return!t||!y(t,`MemberExpression`)||O(t.object)!==e||!Ha(t)?null:t},Wa=(e,t,n)=>{let r=Ua(e);return r&&z(r,n)===t?r:null},Ga=(e,t,n,r)=>e.references.some(e=>{let i=Wa(e.identifier,t,r);if(!i)return!1;let a=Fa(i),o=Fa(n);return!a||!o||!ha(i,a)?!1:a===o?i.range[0]<ca(n):v(a)&&Va(a,n,r)}),Ka=e=>{if(Ma(e))return!0;let t=I(e),n=t.parent;return!!(n&&y(n,`MemberExpression`)&&O(n.object)===t)},qa=e=>{if(Ma(e))return!0;let t=I(e),n=t.parent;if(!n||!y(n,`MemberExpression`)||O(n.object)!==t)return!1;let r=I(n),i=r.parent;return!(i&&y(i,`CallExpression`)&&i.callee===r)},Ja=(e,t,n)=>y(e,`Identifier`)?Pa(e,n).some(e=>e.references.some(e=>{let r=Ua(e.identifier);if(!r)return!1;let i=z(r,n);return i===null||i===t})):!1,Ya=(e,t,n)=>{let r=Fa(e),i=Fa(t);return!r||!i?!0:r===i?e.range[0]<ca(t):v(r)?Va(r,t,n):!0},Xa=(e,t,n,r)=>y(e,`Identifier`)?Pa(e,r).some(e=>e.references.some(e=>{let i=Ua(e.identifier);if(!i||!Ya(i,n,r))return!1;let a=z(i,r);return a===null||a===t})):!1,Za=(e,t,n)=>y(e,`Identifier`)?Ja(e,t,n)?!0:Pa(e,n).some(e=>e.references.some(e=>!Ka(e.identifier))):!1,Qa=(e,t,n,r)=>y(e,`Identifier`)?Xa(e,t,n,r)?!0:Pa(e,r).some(e=>e.references.some(e=>!qa(e.identifier)&&Ya(e.identifier,n,r))):!1,$a=(e,t)=>{let n=O(e);if(!y(n,`CallExpression`))return!1;let r=O(n.callee);if(!y(r,`MemberExpression`))return!1;let i=N(r);if(i===null)return!1;let a=O(r.object);return y(a,`Identifier`)&&Ja(a,i,t)},eo=(e,t,n,r)=>y(e,`Identifier`)?fa(e,r).some(e=>Ga(e,t,n,r)):!1,to=(e,t,n,r={})=>{let i=L(e);return i===L(t)?e.range[0]>=ca(t)||r.requireSynchronousWrite&&(!i||!ha(e,i)||r.isSynchronousNode!==void 0&&!r.isSynchronousNode(e))?[]:[[e.range[0]]]:i?r.requireSynchronousWrite?Ba(i,t,n,new Set,e,r.isSynchronousNode).map(t=>[...t,e.range[0]]):Ba(i,t,n).map(t=>[...t,e.range[0]]):r.requireSynchronousWrite?[]:[[-1/0,e.range[0]]]},no=(e,t,n,r={})=>to(e,t,n,r).length>0,V=(e,t,n,r={})=>e.references.some(e=>e.flag===`read`?!1:no(e.identifier,t,n,r)),ro=(e,t)=>{if(!y(e,`CallExpression`))return!1;let n=O(e.callee);if(y(n,`Identifier`)){let e=t.symbolFor(n);return!!(e&&!V(e,n,t))}if(!y(n,`MemberExpression`))return!1;let r=N(n),i=O(n.object);return!!(r&&y(i,`Identifier`)&&!eo(i,r,n,t))},io=new Set([`FunctionDeclaration`,`FunctionExpression`,`ArrowFunctionExpression`,`ClassDeclaration`,`ClassExpression`]),ao={allowGlobalReactNamespace:!1,allowUnboundBareCalls:!1},oo=new Set([`lodash/sortBy`,`lodash/sortBy.js`,`lodash-es/sortBy`,`lodash-es/sortBy.js`]),so=e=>y(e,`TSArrayType`)||y(e,`TSTupleType`)?!0:y(e,`TSTypeReference`)?y(e.typeName,`Identifier`)&&(e.typeName.name===`Array`||e.typeName.name===`ReadonlyArray`):!1,co=e=>{if(!y(e,`Identifier`))return!1;let t=e.typeAnnotation;return!!(t&&y(t,`TSTypeAnnotation`)&&so(t.typeAnnotation))},lo=(e,t)=>{if(!y(e,`CallExpression`))return!1;let n=O(e.callee);if(!y(n,`Identifier`))return!1;let r=t.symbolFor(n);if(!r||V(r,n,t)||!y(r.declarationNode,`ImportDefaultSpecifier`)&&!y(r.declarationNode,`ImportSpecifier`))return!1;let i=Wi(n,n.name);return!i||i.isNamespace?!1:oo.has(i.source)&&i.exportedName===`default`?!0:(i.source===`lodash`||i.source===`lodash-es`)&&i.exportedName===`sortBy`},uo=(e,t,n,r=new Set)=>{let i=O(e);if(y(i,`ArrayExpression`)||lo(i,t))return!0;if(!y(i,`Identifier`))return!1;let a=t.symbolFor(i);return!a||r.has(a.id)||V(a,n,t)?!1:co(a.bindingIdentifier)?!0:a.initializer?(r.add(a.id),uo(a.initializer,t,n,r)):!1},fo=(e,t)=>{if(!y(e,`CallExpression`))return!1;let n=O(e.callee);if(!y(n,`MemberExpression`)||N(n)!==`map`)return!1;let r=O(n.object);return uo(r,t,e)?!(y(r,`Identifier`)&&eo(r,`map`,e,t)):!1},po=(e,t)=>{if(e.type!==`ArrowFunctionExpression`&&e.type!==`FunctionExpression`)return!1;let n=e.parent;return y(n,`CallExpression`)?F(n,`useMemo`,t,{resolveNamedAliases:!0})&&ro(n,t)?n.arguments[0]===e:n.arguments.some(t=>t===e)&&fo(n,t):!1},mo=(e,t)=>io.has(e.type)&&!po(e,t),ho=(e,t)=>e.type===`JSXElement`||e.type===`JSXFragment`||F(e,`createElement`,t,ao)||go(e,t),go=(e,t)=>{if(!y(e,`CallExpression`))return!1;let n=O(e.callee);if(y(n,`Identifier`))return t.symbolFor(n)?.kind===`import`&&Hi(n,n.name,`react-dom`)===`createPortal`;if(!y(n,`MemberExpression`)||n.computed||!y(n.object,`Identifier`)||!y(n.property,`Identifier`)||n.property.name!==`createPortal`)return!1;let r=t.symbolFor(n.object);return!r||r.kind!==`import`?!1:Vi(n.object,n.object.name,`react-dom`)||Bi(n.object,n.object.name,`react-dom`)},_o=(e,t)=>{let n=!1;return A(e,r=>{if(n||r!==e&&mo(r,t))return!1;if(ho(r,t))return n=!0,!1}),n},vo=new WeakMap,yo=(e,t,n)=>{let r=vo.get(e);if(r&&r.scopes===t&&r.controlFlow===n)return r.hasRenderOutput;let i=oa(e,t,e=>_o(e,t),n);return vo.set(e,{scopes:t,controlFlow:n,hasRenderOutput:i}),i},bo=e=>y(e,`JSXIdentifier`)?e.name:y(e,`JSXNamespacedName`)?`${e.namespace.name}:${e.name.name}`:null,xo=new Set([`Component`,`PureComponent`]),So=(e,t,n,r)=>{let i=O(e);if(y(i,`MemberExpression`)){let e=N(i),n=O(i.object);return!!(e&&xo.has(e)&&y(n,`Identifier`)&&!eo(n,e,i,t)&&wi(n,t))}if(y(i,`ClassExpression`))return Co(i,t,n,r);if(!y(i,`Identifier`))return!1;let a=t.symbolFor(i);if(!a||r.has(a.id)||V(a,i,t))return!1;if(r.add(a.id),Si(a)){let e=j(a.declarationNode);return!!(e&&xo.has(e))}return y(a.declarationNode,`ClassDeclaration`)||y(a.declarationNode,`ClassExpression`)?Co(a.declarationNode,t,n,r):!!(a.kind===`const`&&a.initializer&&So(a.initializer,t,n,r))},Co=(e,t,n=new Set,r=new Set)=>!y(e,`ClassDeclaration`)&&!y(e,`ClassExpression`)||n.has(e)||!e.superClass?!1:(n.add(e),So(e.superClass,t,n,r)),wo=new Set([`FunctionDeclaration`,`FunctionExpression`,`ArrowFunctionExpression`,`MethodDefinition`,`Program`]),To=e=>{let t=e;for(;t;){if(wo.has(t.type))return t;t=t.parent??null}return null},Eo=(e,t)=>{if(t!==`let`&&t!==`const`)return To(e);let n=e.parent;for(;n;){if(n.type===`BlockStatement`){let t=n.parent;return t&&(t.type===`FunctionDeclaration`||t.type===`FunctionExpression`||t.type===`ArrowFunctionExpression`||t.type===`MethodDefinition`)?To(e):n}if(wo.has(n.type))return n;n=n.parent??null}return null},Do=(e,t,n,r)=>{if(y(e,`Identifier`)){let i=r.get(e.name)??[];i.push({bindingIdentifier:e,initializer:t,scopeOwner:n}),r.set(e.name,i);return}if(y(e,`ObjectPattern`)){for(let t of e.properties)if(y(t,`Property`)){let e=t.value;Do(e,y(e,`AssignmentPattern`)?e.right:null,n,r)}else y(t,`RestElement`)&&Do(t.argument,null,n,r);return}if(y(e,`ArrayPattern`)){for(let t of e.elements)t&&Do(t,y(t,`AssignmentPattern`)?t.right??null:null,n,r);return}if(y(e,`AssignmentPattern`)){Do(e.left,e.right??null,n,r);return}y(e,`RestElement`)&&Do(e.argument,null,n,r)},Oo=e=>{let t=new Map;return A(e,e=>{switch(e.type){case`VariableDeclarator`:{let n=e.parent,r=Eo(e,n?.type===`VariableDeclaration`?n.kind:void 0);r&&Do(e.id,e.init??null,r,t);break}case`FunctionDeclaration`:case`FunctionExpression`:case`ArrowFunctionExpression`:if(e.type!==`ArrowFunctionExpression`&&e.id){let n=e.parent?To(e.parent):null;if(n){let r=t.get(e.id.name)??[];r.push({bindingIdentifier:e.id,initializer:e,scopeOwner:n}),t.set(e.id.name,r)}}for(let n of e.params)Do(n,null,e,t);break;case`ClassDeclaration`:case`ClassExpression`:{if(!e.id)break;let n=e.parent?To(e.parent):null;if(n){let r=t.get(e.id.name)??[];r.push({bindingIdentifier:e.id,initializer:e,scopeOwner:n}),t.set(e.id.name,r)}break}case`ImportDeclaration`:{let n=To(e);if(!n)break;for(let r of e.specifiers){let e=r.local;if(e&&y(e,`Identifier`)){let i=t.get(e.name)??[];i.push({bindingIdentifier:e,initializer:r,scopeOwner:n}),t.set(e.name,i)}}break}case`TSImportEqualsDeclaration`:case`TSEnumDeclaration`:case`TSModuleDeclaration`:{let n=e.id;if(n?.type===`Identifier`){let r=To(e);if(r){let e=t.get(n.name)??[];e.push({bindingIdentifier:n,initializer:null,scopeOwner:r}),t.set(n.name,e)}}break}}}),t},ko=new WeakMap,Ao=new WeakMap,jo=e=>{let t=Pi(e);if(!t)return null;let n=ko.get(t);return n||(n=Oo(t),ko.set(t,n)),n},Mo=(e,t,n)=>{let r=jo(e);if(!r)return null;let i=r.get(t);if(!i||i.length===0)return null;let a=i[0];if(i.length===1&&a){let t=e;for(;t;){if(t===a.scopeOwner)return a;t=t.parent??null}return null}let o=e;for(;o;){let t=null;for(let r of i)if(r.scopeOwner===o){if(t===null){t=r;continue}if(n?.preferInitializerBeforeReference){let n=!!(r.initializer&&(y(r.initializer,`FunctionDeclaration`)||r.bindingIdentifier.range[0]<e.range[0]));if(n!==!!(t.initializer&&(y(t.initializer,`FunctionDeclaration`)||t.bindingIdentifier.range[0]<e.range[0]))){n&&(t=r);continue}}(r.initializer!==null||t.initializer===null)&&(t=r)}if(t)return t;o=o.parent??null}return null},No=(e,t,n)=>{let r=Ao.get(e),i;if(!r)i={},Ao.set(e,{primaryBindingName:t,primaryLookup:i});else if(r.primaryBindingName===t)i=r.primaryLookup;else{let e=r.additionalLookups;e||(e=new Map,r.additionalLookups=e);let n=e.get(t);n?i=n:(i={},e.set(t,i))}let a=n?.preferInitializerBeforeReference?`preferredResult`:`defaultResult`;if(a in i)return i[a]??null;let o=Mo(e,t,n);return i[a]=o,o},Po=e=>Xr.test(e),Fo=e=>{let t=No(e,e.name);if(!t?.initializer)return null;let n=t.bindingIdentifier.parent;if(!n||!y(n,`VariableDeclarator`)||n.id!==t.bindingIdentifier)return null;let r=n.parent;if(!r||!y(r,`VariableDeclaration`)||r.kind!==`const`)return null;let i=O(t.initializer);return y(i,`Literal`)&&typeof i.value==`string`?i.value:null},Io=e=>y(e,`JSXIdentifier`)?e.name:y(e,`JSXMemberExpression`)?`${Io(e.object)}.${e.property.name}`:y(e,`JSXNamespacedName`)?`${e.namespace.name}:${e.name.name}`:``,Lo=e=>{let t=e.name;return y(t,`JSXIdentifier`)?Po(t.name)?Fo(t)??t.name:t.name:Io(t)},Ro=(e,t)=>{if(!y(e.name,`JSXIdentifier`))return!1;let n=Lo(e);if(n[0]===n[0]?.toLowerCase())return!0;let r=new Set,i=e=>{let n=I(e);if(y(n,`Literal`))return typeof n.value==`string`;if(y(n,`Identifier`)||y(n,`JSXIdentifier`)){let e=t.symbolFor(n);if(!e||e.kind!==`const`||!e.initializer||r.has(e.id))return!1;r.add(e.id);let a=i(e.initializer);return r.delete(e.id),a}return y(n,`ConditionalExpression`)?i(n.consequent)&&i(n.alternate):!1};return i(e.name)},zo=(e,t,n=new Set)=>{if(!e)return null;let r=O(e);if(v(r))return r;if(y(r,`Identifier`)){let e=t.symbolFor(r);return!e||n.has(e.id)||!e.initializer||V(e,r,t)?null:(n.add(e.id),zo(e.initializer,t,n))}if(!y(r,`CallExpression`)||!F(r,`memo`,t,{resolveNamedAliases:!0})&&!F(r,`forwardRef`,t,{resolveNamedAliases:!0}))return null;let i=r.arguments[0];return!i||y(i,`SpreadElement`)?null:zo(i,t,n)},Bo=(e,t)=>{let n=I(e);if(!v(n)||n.async||n.generator)return!1;let r=n.parent;if(!r||!y(r,`JSXExpressionContainer`))return!1;let i=r.parent;if(!i||!y(i,`JSXAttribute`)||bo(i.name)!==`ref`)return!1;let a=i.parent;return!!(a&&y(a,`JSXOpeningElement`)&&Ro(a,t))},Vo=(e,t)=>t.every((t,n)=>e[n]===t),Ho=e=>{let t=I(e);for(;t.parent&&y(t.parent,`MemberExpression`)&&t.parent.object===t;){if(!N(t.parent))return null;t=I(t.parent)}return t},Uo=(e,t,n,r)=>{if(t.length!==n.length+1||!Vo(t,n)||t[n.length]!==`current`)return!1;let i=Ho(e),a=i?.parent;if(!i||!a||!y(a,`AssignmentExpression`)||a.operator!==`=`||a.left!==i)return!1;let o=L(e);if(!o)return!1;if(Bo(o,r))return!0;if(!v(o)||o.async||o.generator)return!1;let s=L(o);if(!s||!Bo(s,r))return!1;let c=I(o),l=c.parent;return!!(y(l,`ReturnStatement`)&&l.argument===c&&L(l)===s||y(s,`ArrowFunctionExpression`)&&s.body===c)},Wo=(e,t)=>{if(!y(e,`JSXOpeningElement`))return!1;let n=e.name;if(y(n,`JSXIdentifier`)){if(!t)return n.name===`Fragment`;let e=P(n,t);return e?Si(e)&&j(e.declarationNode)===`Fragment`:n.name===`Fragment`&&t.isGlobalReference(n)}return y(n,`JSXMemberExpression`)?!y(n.object,`JSXIdentifier`)||n.property.name!==`Fragment`?!1:t?wi(n.object,t)?!0:n.object.name===`React`&&t.isGlobalReference(n.object):n.object.name===`React`:!1},Go=(e,t,n,r,i)=>{let a=I(e),o=a.parent;if(!o)return!1;if(y(o,`ReturnStatement`)&&o.argument===a)return L(o)===t;if(y(o,`ArrowFunctionExpression`)&&o.body===a)return o===t;if(y(o,`JSXFragment`)&&o.children.some(e=>e===a)||y(o,`JSXElement`)&&o.children.some(e=>e===a)&&(Ro(o.openingElement,n)||Wo(o.openingElement,n)||i.doesCustomElementRenderChildren?.(o.openingElement)))return Go(o,t,n,r,i);if(y(o,`JSXExpressionContainer`)&&o.expression===a&&o.parent&&(y(o.parent,`JSXFragment`)||y(o.parent,`JSXElement`)&&(Ro(o.parent.openingElement,n)||Wo(o.parent.openingElement,n)||i.doesCustomElementRenderChildren?.(o.parent.openingElement))))return Go(o.parent,t,n,r,i);if(y(o,`ConditionalExpression`)&&(o.consequent===a||o.alternate===a)||y(o,`LogicalExpression`)&&(o.left===a||o.right===a)||y(o,`ArrayExpression`)&&o.elements.some(e=>e===a))return Go(o,t,n,r,i);if(!y(o,`VariableDeclarator`)||o.init!==a||!y(o.id,`Identifier`))return!1;let s=n.symbolFor(o.id);if(!s||s.kind!==`const`||s.references.length===0||r.has(s.id))return!1;r.add(s.id);let c=s.references.every(e=>e.flag===`read`&&Go(e.identifier,t,n,r,i));return r.delete(s.id),c},Ko=(e,t,n={})=>Go(e,L(e),t,new Set,n),qo=(e,t)=>t.every((t,n)=>e[n]===t),Jo=(e,t)=>qo(e,t)||qo(t,e),Yo=e=>v(e)&&y(e.body,`BlockStatement`)&&e.body.body.length===0,Xo=(e,t,n)=>F(e,t,n,{resolveNamedAliases:!0}),Zo=(e,t,n=new Set)=>y(e,`ObjectExpression`)?e.properties.every(e=>{if(y(e,`SpreadElement`)){let r=I(e.argument);if(y(r,`ObjectExpression`))return Zo(r,t,n);if(!y(r,`Identifier`))return!1;let i=t.symbolFor(r);if(!i||i.kind!==`const`||n.has(i.id)||!y(i.initializer,`ObjectExpression`))return!1;n.add(i.id);let a=Zo(i.initializer,t,n);return n.delete(i.id),a}return y(e,`Property`)?!v(e.value)||Yo(e.value):!1}):!1,Qo=e=>N(e)||(e.computed&&y(e.property,`Literal`)&&typeof e.property.value==`number`&&Number.isSafeInteger(e.property.value)&&e.property.value>=0?String(e.property.value):null),$o=e=>{let t=[],n=I(e);for(;n.parent&&y(n.parent,`MemberExpression`)&&n.parent.object===n;){let e=Qo(n.parent);if(!e)return null;t.push(e),n=I(n.parent)}return{expression:n,propertyPath:t}},es=(e,t,n)=>{let r=n.environmentsByProgram.get(e);if(r)return r;let i={filename:t,program:e,scopes:Ie(e)};return n.environmentsByProgram.set(e,i),i},ts=(e,t,n=new Set)=>{let r=I(e);if(y(r,`Identifier`)){let e=t.symbolFor(r);return!e||!e.initializer||n.has(e.id)||V(e,r,t)?!1:(n.add(e.id),ts(e.initializer,t,n))}if(!y(r,`CallExpression`))return!1;if(Xo(r,`forwardRef`,t))return!0;if(!Xo(r,`memo`,t))return!1;let i=r.arguments[0];return!i||y(i,`SpreadElement`)?!1:ts(i,t,n)},ns=(e,t)=>{let n=es(e.programNode,e.filePath,t),r=zo(e.exportedNode,n.scopes);return r?{environment:n,functionNode:r,isForwardRef:ts(e.exportedNode,n.scopes)}:null},rs=(e,t,n)=>{if(!y(e,`Identifier`)&&!y(e,`JSXIdentifier`))return null;let r=t.scopes.symbolFor(e);if(r&&r.kind!==`import`){if(V(r,e,t.scopes))return null;let n=zo(r.initializer,t.scopes);return n?{environment:t,functionNode:n,isForwardRef:!!(r.initializer&&ts(r.initializer,t.scopes))}:null}let i=Wi(e,e.name);if(!i||i.isNamespace||i.exportedName===null)return null;let a=k(t.filename,i.source,i.exportedName);return a?ns(a,n):null},is=(e,t,n)=>{if(y(e,`JSXIdentifier`))return rs(e,t,n);if(!y(e,`JSXMemberExpression`)||!y(e.object,`JSXIdentifier`))return null;let r=Wi(e.object,e.object.name);if(!r?.isNamespace)return null;let i=k(t.filename,r.source,e.property.name);return i?ns(i,n):null},as=(e,t,n=new Set)=>{let r=I(e);if(y(r,`Identifier`)){let e=t.scopes.symbolFor(r);return!e||!e.initializer||n.has(e.id)||V(e,r,t.scopes)?!1:(n.add(e.id),as(e.initializer,t,n))}return Co(r,t.scopes)},os=(e,t,n)=>{if(!y(e,`JSXIdentifier`))return!1;let r=t.scopes.symbolFor(e);if(r&&r.kind!==`import`)return V(r,e,t.scopes)?!1:!!(r.initializer&&as(r.initializer,t));let i=Wi(e,e.name);if(!i||i.isNamespace||i.exportedName===null)return!1;let a=k(t.filename,i.source,i.exportedName);if(!a)return!1;let o=es(a.programNode,a.filePath,n);return as(a.exportedNode,o)},ss=(e,t)=>{if(!e)return null;let n=I(e);return!y(n,`ClassDeclaration`)&&!y(n,`ClassExpression`)||!as(n,t)?null:{classNode:n,environment:t}},cs=(e,t,n)=>{if(!y(e,`JSXIdentifier`))return null;let r=t.scopes.symbolFor(e);if(r&&r.kind!==`import`)return V(r,e,t.scopes)?null:ss(r.initializer,t);let i=Wi(e,e.name);if(!i||i.isNamespace||i.exportedName===null)return null;let a=k(t.filename,i.source,i.exportedName);if(!a)return null;let o=es(a.programNode,a.filePath,n);return ss(a.exportedNode,o)},ls=(e,t,n)=>{let r=[...t],i=I(e);for(;i.parent;){let e=i.parent;if(y(e,`ArrayExpression`)){if(e.elements.some(e=>e&&y(e,`SpreadElement`)))return null;let t=e.elements.findIndex(e=>e===i);if(t<0)return null;r.unshift(String(t)),i=I(e);continue}if(y(e,`Property`)&&e.value===i){let t=M(e,{allowComputedString:!0}),a=e.parent;if(!t||!a||!Zo(a,n.scopes))return null;r.unshift(t),i=I(a);continue}if(y(e,`ConditionalExpression`)&&(e.consequent===i||e.alternate===i)||y(e,`LogicalExpression`)&&(e.left===i||e.right===i)){i=I(e);continue}if(y(e,`VariableDeclarator`)&&e.init===i&&y(e.id,`Identifier`)){let t=n.scopes.symbolFor(e.id);return!t||t.kind!==`const`?null:{environment:n,propertyPath:r,symbol:t}}if(y(e,`AssignmentExpression`)&&e.operator===`=`&&e.right===i&&y(e.left,`MemberExpression`)){let t=[],i=e.left;for(;y(i,`MemberExpression`);){let e=Qo(i);if(!e)return null;t.unshift(e),i=I(i.object)}if(!y(i,`Identifier`))return null;let a=n.scopes.symbolFor(i);return!a||a.kind!==`const`?null:{environment:n,originWriteReference:i,propertyPath:[...t,...r],symbol:a}}return null}return null},us=(e,t,n,r,i)=>{if(y(e,`AssignmentPattern`))return us(e.left,t,n,r,i);if(y(e,`Identifier`)){let a=n.scopes.symbolFor(e);return!!(a&&Ts({environment:n,propertyPath:t,symbol:a},r,i-1))}if(!y(e,`ObjectPattern`)||t.length===0)return!1;let[a,...o]=t;for(let t of e.properties){if(!y(t,`Property`))continue;let e=M(t,{allowComputedString:!0});if(!e)return!1;if(e===a)return us(t.value,o,n,r,i)}let s=e.properties.find(e=>y(e,`RestElement`));return s?us(s.argument,t,n,r,i):!0},ds=(e,t)=>{let n=e.arguments[0];return!n||y(n,`SpreadElement`)?!1:Xo(e,`createElement`,t.scopes)?y(n,`Literal`)&&typeof n.value==`string`:!Xo(e,`cloneElement`,t.scopes)||!y(n,`JSXElement`)?!1:Ro(n.openingElement,t.scopes)},fs=(e,t,n,r,i)=>{if(t.length>0)return!1;let a=e.parent;if(!a||!y(a,`Property`)||a.value!==e||M(a,{allowComputedString:!0})!==`ref`)return!1;let o=a.parent;if(!o||!y(o,`ObjectExpression`))return!1;let s=o.parent;return!(!s||!y(s,`CallExpression`)||s.arguments[1]!==o||!ds(s,n)||!H(s,n,r,i))},ps=(e,t,n,r,i)=>{if(i<=0||!v(e.functionNode)||e.functionNode.async||e.functionNode.generator)return!1;let a=e.functionNode.params[t];return!!(a&&us(a,n,e.environment,r,i))},ms=e=>{if(!y(e,`MemberExpression`)||N(e)!==`children`)return!1;let t=I(e.object);return!!(y(t,`MemberExpression`)&&N(t)===`props`&&y(I(t.object),`ThisExpression`))},hs=(e,t)=>{if(!y(e,`JSXOpeningElement`)||!y(e.name,`JSXMemberExpression`)||e.name.property.name!==`Provider`||!y(e.name.object,`JSXIdentifier`))return!1;let n=t.scopes.symbolFor(e.name.object);return!!(n?.kind===`const`&&n.initializer&&y(n.initializer,`CallExpression`)&&Xo(n.initializer,`createContext`,t.scopes))},H=(e,t,n,r)=>Ko(e,t.scopes,{doesCustomElementRenderChildren:e=>vs(e,t,n,r-1)}),gs=(e,t,n)=>{let{functionNode:r}=e;if(n<=0||t.activeRenderedChildrenComponents.has(r)||!y(r,`ArrowFunctionExpression`)&&!y(r,`FunctionExpression`)&&!y(r,`FunctionDeclaration`)||r.async||r.generator)return!1;let i=Ni(r,e.environment.scopes);if(!i)return!1;t.activeRenderedChildrenComponents.add(r);let a=i.every(r=>H(r,e.environment,t,n));return t.activeRenderedChildrenComponents.delete(r),a},_s=(e,t,n)=>{let{classNode:r,environment:i}=e;if(n<=0||t.activeRenderedChildrenComponents.has(r)||!y(r,`ClassDeclaration`)&&!y(r,`ClassExpression`))return!1;let a=r.body.body.find(e=>y(e,`MethodDefinition`)&&!e.computed&&y(e.key,`Identifier`)&&e.key.name===`render`);if(!a||!y(a,`MethodDefinition`))return!1;let o=[];if(A(r,e=>{ms(e)&&o.push(e)}),o.length===0)return!1;t.activeRenderedChildrenComponents.add(r);let s=o.every(e=>L(e)===a.value&&H(e,i,t,n));return t.activeRenderedChildrenComponents.delete(r),s},vs=(e,t,n,r)=>{if(r<=0||!y(e,`JSXOpeningElement`))return!1;if(hs(e,t))return!0;let i=is(e.name,t,n);if(i)return gs(i,n,r);let a=cs(e.name,t,n);return!!(a&&_s(a,n,r))},ys=(e,t,n,r,i)=>{let a=bo(e.name),o=e.parent;if(!a||!o||!y(o,`JSXOpeningElement`))return!1;let s=o.parent;if(!s||!y(s,`JSXElement`)||!H(s,n,r,i))return!1;if(Ro(o,n.scopes))return a===`ref`&&t.length===0;if(y(o.name,`JSXIdentifier`)&&a===`ref`&&t.length===0&&os(o.name,n,r))return!0;let c=is(o.name,n,r);return c?a===`ref`&&c.isForwardRef?ps(c,1,t,r,i):ps(c,0,[a,...t],r,i):!1},bs=(e,t,n,r,i,a)=>{let o=e.arguments.findIndex(e=>e===t);if(o<0)return!1;if(o===0&&y(e.callee,`Identifier`)&&e.callee.name===`Boolean`&&r.scopes.isGlobalReference(e.callee))return!0;if(o===0&&Xo(e,`useImperativeHandle`,r.scopes))return n.length===0;if(o===1&&n.length===1&&n[0]===`ref`&&ds(e,r)&&H(e,r,i,a))return!0;let s=I(e.callee);if(v(s))return yo(s,r.scopes)&&!H(e,r,i,a)?!1:ps({environment:r,functionNode:s,isForwardRef:!1},o,n,i,a);if(!y(e.callee,`Identifier`))return!1;let c=rs(e.callee,r,i);return!!(c&&(!yo(c.functionNode,c.environment.scopes)||H(e,r,i,a))&&ps(c,o,n,i,a))},xs=(e,t,n,r,i)=>{let a;if(t.length===1&&t[0]===`ref`)a=e.parent;else if(t.length===0){let t=e.parent;if(!t||!y(t,`Property`)||t.value!==e||M(t,{allowComputedString:!0})!==`ref`)return!1;a=t.parent?.parent}if(!a||!y(a,`JSXSpreadAttribute`))return!1;let o=a.parent;if(!o||!y(o,`JSXOpeningElement`))return!1;let s=o.parent;return!!(Ro(o,n.scopes)&&s&&y(s,`JSXElement`)&&H(s,n,r,i))},Ss=(e,t,n,r,i)=>{let a=I(e),o=a.parent;if(!o)return!1;if(y(o,`ExpressionStatement`)||y(o,`UnaryExpression`)&&o.operator===`void`&&o.argument===a)return!0;if(t.length===0&&y(o,`BinaryExpression`)&&(o.operator===`===`||o.operator===`!==`||o.operator===`==`||o.operator===`!=`)){let e=o.left===a?o.right:o.left;return!!(y(a,`Identifier`)&&y(e,`Identifier`)&&n.scopes.symbolFor(a)?.id===n.scopes.symbolFor(e)?.id)}if(xs(a,t,n,r,i)||fs(a,t,n,r,i)||t.length>0&&(y(o,`LogicalExpression`)&&o.left===a||y(o,`ConditionalExpression`)&&o.test===a||y(o,`IfStatement`)&&o.test===a||y(o,`UnaryExpression`)&&o.operator===`!`&&o.argument===a))return!0;if(y(o,`JSXExpressionContainer`)&&o.expression===a){let e=o.parent;return!!(e&&y(e,`JSXAttribute`)&&ys(e,t,n,r,i))}if(y(o,`CallExpression`))return bs(o,a,t,n,r,i);if(y(o,`VariableDeclarator`)&&o.init===a&&!y(o.id,`Identifier`))return us(o.id,t,n,r,i);let s=ls(a,t,n);return!!(s&&Ts(s,r,i-1))},Cs=e=>{let t=e.parent;return t&&y(t,`VariableDeclarator`)&&t.init===e&&y(t.id,`Identifier`)?t.id:(y(e,`FunctionDeclaration`)||y(e,`FunctionExpression`))&&e.id?e.id:null},ws=(e,t,n)=>{if(!e||!t||!v(e)||e.async||e.generator)return!1;let r=Cs(e);if(!r||((y(e,`FunctionDeclaration`)||y(e,`FunctionExpression`))&&e.id===r?L(e):L(r))!==t)return!1;let i=y(e,`FunctionDeclaration`)?n.ownScopeFor(t)?.symbolsByName.get(r.name):n.symbolFor(r);return!!(i&&i.references.length>0&&i.references.every(e=>{let r=I(e.identifier),i=r.parent;return!!(i&&y(i,`CallExpression`)&&i.callee===r&&L(i)===t&&Ko(i,n))}))},Ts=(e,t,n)=>{if(n<=0)return!1;let r=`${e.environment.filename}:${e.symbol.id}:${e.propertyPath.join(`.`)}`;if(t.activePaths.has(r))return!1;t.activePaths.add(r);let i=L(e.symbol.bindingIdentifier),a=e.symbol.references.every(r=>{if(r.identifier===e.originWriteReference)return!0;let a=r.identifier.parent;if(a&&y(a,`Property`)&&!a.computed&&a.key===r.identifier&&a.value!==r.identifier)return!0;let o=$o(r.identifier);if(!o)return!1;if(!Jo(o.propertyPath,e.propertyPath))return!0;let s=L(r.identifier);if(s!==i&&!ws(s,i,e.environment.scopes))return!!Uo(r.identifier,o.propertyPath,e.propertyPath,e.environment.scopes);if(r.flag!==`read`)return!1;if(qo(o.propertyPath,e.propertyPath)){if(o.propertyPath.length>e.propertyPath.length){let t=o.expression.parent;return!!(o.propertyPath.length===e.propertyPath.length+1&&o.propertyPath[e.propertyPath.length]===`current`&&t&&y(t,`UnaryExpression`)&&t.operator===`void`&&t.argument===o.expression)}return Ss(o.expression,[],e.environment,t,n)}return Ss(o.expression,e.propertyPath.slice(o.propertyPath.length),e.environment,t,n)});return t.activePaths.delete(r),a},Es=(e,t,n)=>{if(!t)return!1;let r=Pi(e);if(!r)return!1;let i={filename:t,program:r,scopes:n},a={activePaths:new Set,activeRenderedChildrenComponents:new WeakSet,environmentsByProgram:new WeakMap([[r,i]])},o=ls(e,[],i);return o?Ts(o,a,12):Ss(e,[],i,a,12)},Ds=e=>{let t=[];for(let n of e)for(let e of n.entries){if(e.importName.kind===`NamespaceObject`)continue;let r=e.importName.kind===`Default`?`default`:e.importName.name??null;r!==null&&t.push({source:n.moduleRequest.value,exportedName:r})}return t},Os=({absoluteFilePath:e,staticImports:t})=>{let n=!1;for(let r of t){let t=r.moduleRequest.value;if(!t.startsWith(`.`))continue;let i=r.entries.filter(e=>!e.isType);if(i.length===0)continue;let a=en(e,t);if(!(!a||!tr(a))){n||(n=!0,At(e));for(let e of i){let t=e.importName.kind===`Default`?`default`:e.importName.name;t&&ji(a,t)}}}},ks=({absoluteFilePath:e})=>{ze.test(e)&&(Ue.test(e)||Ln(e))},As=({absoluteFilePath:e,staticImports:t})=>{if(Be.test(e)&&!Bn(e))for(let n of Ds(t))bn(e,n.source,n.exportedName)},js=({absoluteFilePath:e,staticImports:t})=>{for(let n of Ds(t))bn(e,n.source,n.exportedName)},Ms=({absoluteFilePath:e,staticImports:t})=>{for(let n of Ds(t))Mi(e,n.source,n.exportedName)},Ns=e=>{let t=[];for(let n of e.body??[]){if(n.type!==`ImportDeclaration`)continue;let e=n.source?.value;if(typeof e==`string`){for(let r of n.specifiers??[])if(r.type===`ImportDefaultSpecifier`)t.push({source:e,exportedName:`default`});else if(r.type===`ImportSpecifier`){let n=r.imported,i=null;typeof n?.name==`string`?i=n.name:typeof n?.value==`string`&&(i=n.value),i&&t.push({source:e,exportedName:i})}}}return t},Ps=({absoluteFilePath:e,staticImports:t},n,r=()=>!0,i=()=>!0)=>{let a=new Map,o=(e,t,n)=>{if(!((a.get(e)??-1)>=n)){a.set(e,n);for(let a of Ns(t)){let t=k(e,a.source,a.exportedName);!t||n===0||!r(t)||!i(t.filePath)||o(t.filePath,t.programNode,n-1)}}};for(let a of Ds(t)){let t=k(e,a.source,a.exportedName);!t||!r(t)||!i(t.filePath)||o(t.filePath,t.programNode,n)}},Fs=e=>{Ps(e,4)},Is=({absoluteFilePath:e,sourceText:t,getProgram:n})=>{if(!t.includes(`createRef`)&&!t.includes(`\\u`))return;let r=n();Ft(r);let i=Ie(r);A(r,t=>{!y(t,`CallExpression`)||!F(t,`createRef`,i,{allowGlobalReactNamespace:!0,allowUnboundBareCalls:!0,resolveNamedAliases:!0})||Es(t,e,i)})},Ls=({absoluteFilePath:e,sourceText:t,staticImports:n,getProgram:r})=>{let i=new Set,a=new Set;for(let e of n)if(e.moduleRequest.value===`react`)for(let t of e.entries){let{importName:e}=t;e.kind===`Name`&&e.name===`useReducer`?i.add(t.localName.value):(e.kind===`Default`||e.kind===`NamespaceObject`)&&a.add(t.localName.value)}if(!(i.size>0||a.size>0&&(t.includes(`useReducer`)||t.includes(`\\u`))))return;let o=r(),s=e=>{if(e?.type!==`Identifier`)return null;let{name:t}=e;return typeof t==`string`?t:null},c=e=>{let t=s(e);if(t!==null)return i.has(t);if(e.type!==`MemberExpression`)return!1;let n=e,r=s(n.object);return r!==null&&a.has(r)&&s(n.property)===`useReducer`},l=new Set;if(A(o,e=>{if(e.type!==`CallExpression`)return;let t=e;if(!t.callee||!c(t.callee))return;let n=t.arguments?.[0];if(!n)return;let r=s(O(n));r!==null&&l.add(r)}),l.size!==0)for(let t of n)for(let n of t.entries){if(n.importName.kind===`NamespaceObject`||!l.has(n.localName.value))continue;let r=n.importName.kind===`Default`?`default`:n.importName.name;r&&bn(e,t.moduleRequest.value,r)}},Rs=({absoluteFilePath:e,staticImports:t,getProgram:n})=>{At(e),wn({absoluteFilePath:e,staticImports:t,program:n()})},U=({absoluteFilePath:e})=>{At(e)},zs=e=>{U(e),Ps(e,1/0,e=>v(e.exportedNode),e=>!e.split(/[\\/]/).includes(`node_modules`))},Bs=({absoluteFilePath:e})=>{mr(e)},Vs=({absoluteFilePath:e})=>{br(e)},Hs=e=>{Vs(e),wn({absoluteFilePath:e.absoluteFilePath,staticImports:e.staticImports,program:e.getProgram()})},Us=new Map([...g.map(e=>[e,Vs]),[`ink-no-raw-text`,Hs],[`client-passive-event-listeners`,js],[`exhaustive-deps`,Fs],[`no-barrel-import`,Os],[`nextjs-async-dynamic-api-not-awaited`,U],[`nextjs-missing-metadata`,ks],[`nextjs-no-use-search-params-without-suspense`,As],[`no-dynamic-import-path`,U],[`no-full-lodash-import`,U],[`no-hydration-branch-on-browser-global`,U],[`no-indeterminate-attribute`,U],[`no-locale-format-in-render`,U],[`no-match-media-in-state-initializer`,U],[`no-create-ref-in-function-component`,Is],[`no-adjust-state-on-prop-change`,js],[`no-derived-state`,js],[`no-derived-state-effect`,js],[`no-event-handler`,js],[`no-initialize-state`,js],[`no-mutating-reducer-state`,Ls],[`no-unguarded-browser-global-at-module-scope`,Ms],[`no-unguarded-browser-global-in-render-or-hook-init`,zs],[`prefer-dynamic-import`,U],[`rendering-hydration-mismatch-time`,U],[`rerender-memo-with-default-value`,Fs],[`rn-no-legacy-shadow-styles`,Bs],[`rn-no-raw-text`,Rs],[`rn-prefer-expo-image`,U],[`rn-style-prefer-boxshadow`,Bs],...re.map(e=>[e,U])]),Ws=new Set([`nextjs-no-img-element`,`no-loading-flag-reset-outside-finally`,`only-export-components`,`remotion-calculate-metadata-fetch-signal`,`remotion-deterministic-randomness`,`remotion-no-css-animation`,`remotion-no-css-transition`,`remotion-no-css-url-assets`,`remotion-no-native-media-elements`,`remotion-no-next-image`,`window-open-without-noopener`]),Gs=t=>{let n=new Set;for(let e of t.ruleIds){let t=Us.get(e);if(!t)return null;n.add(t)}let r=Oi(t.absoluteFilePath),i,a;try{let n=e(r,t.sourceText,{astType:`ts`,lang:Lt(r)});if(n.errors.some(e=>e.severity===`Error`))return null;i=n.module.staticImports;let o;a=()=>(o??=n.program,o)}catch{return null}let o={absoluteFilePath:r,sourceText:t.sourceText,staticImports:i,getProgram:a};return mt(()=>{for(let e of n)e(o)})},Ks={},qs=(e,t,n)=>!e||e.length===0?!1:e.every(e=>y(e,t)&&e[n]===`type`),Js=e=>e.importKind===`type`||qs(e.specifiers,`ImportSpecifier`,`importKind`),Ys=new Set([`solid-js`,`solid-js/web`,`solid-js/store`,`solid-js/h`,`solid-js/html`,`@builder.io/qwik`,`@builder.io/qwik-city`,`@builder.io/qwik-react`,`voby`,`vidode`]),Xs=[`solid-js`,`@builder.io/qwik`],Zs=[`react`,`react-dom`,`preact`],Qs=new WeakMap,$s=new WeakMap,ec=(e,t)=>t.some(t=>e===t||e.startsWith(`${t}/`)),tc=e=>{let t=Qs.get(e);if(t)return t;let n=!1,r=!1;for(let t of e.body){if(!y(t,`ImportDeclaration`))continue;let e=t;if(Js(e))continue;let i=e.source,a=i&&typeof i.value==`string`?i.value:null;a&&((Ys.has(a)||ec(a,Xs))&&(n=!0),ec(a,Zs)&&(r=!0))}let i={hasNonReactRuntime:n,hasReactRuntime:r};return Qs.set(e,i),i},nc=e=>{let t=tc(e);return t.hasNonReactRuntime&&!t.hasReactRuntime},rc=e=>{let t=$s.get(e);if(t!==void 0)return t;let n=!1;for(let t of e.attributes){if(!y(t,`JSXAttribute`)||!y(t.name,`JSXIdentifier`))continue;let e=t.name.name;if(e===`classList`||e.startsWith(`class:`)||e.startsWith(`bind:`)){n=!0;break}}return $s.set(e,n),n},ic=`/test/,/tests/,/testing/,/__tests__/,/__test__/,/__fixtures__/,/fixtures/,/__mocks__/,/mocks/,/testUtils/,/test-utils/,/testutils/,/cypress/,/playwright/,/.storybook/,/.dumi/,/stories/,/__stories__/,/playground/,/playgrounds/,/examples/,/example/,/demo/,/demos/,/sandbox/,/sandboxes/,/e2e/,/e2e-tests/,/specs/,/spec/,/integration-tests/,/integration/,/it/,/benchmarks/,/benchmark/,/__benchmarks__/,/perf/,/perf-tests/,/scripts/,/cli/,/bin/,/tooling/,/tools/,/codemods/,/codemod/,/migrations/,/migration/,/generators/,/generator/,/runbooks/,/devtools/,/internal-tools/,/seeds/,/seed/,/dev-seeder/`.split(`,`),ac=[`.test.`,`.spec.`,`.cy.`,`.stories.`,`.story.`,`.bench.`,`.benchmark.`,`.e2e.`,`.integration-spec.`,`.int-spec.`,`.mock.`,`.mocks.`,`.fixture.`],oc=new Set(`setuptests.js,setuptests.ts,setuptests.jsx,setuptests.tsx,setupvitest.js,setupvitest.ts,setupvitest.jsx,setupvitest.tsx,setupjest.js,setupjest.ts,vitest.setup.js,vitest.setup.ts,vitest.setup.mjs,vitest.config.ts,vitest.config.js,vitest.config.mts,vitest.config.mjs,jest.setup.js,jest.setup.ts,jest.setup.jsx,jest.setup.tsx,jest.config.js,jest.config.ts,jest.config.mjs,playwright.config.ts,playwright.config.js,cypress.config.ts,cypress.config.js,karma.conf.js,karma.conf.ts,vite.config.ts,vite.config.js,vite.config.mts,vite.config.mjs,webpack.config.ts,webpack.config.js,webpack.config.mjs,rollup.config.ts,rollup.config.js,rollup.config.mjs,esbuild.config.ts,esbuild.config.js,esbuild.config.mjs,tsup.config.ts,tsup.config.js,tsup.config.mjs,rsbuild.config.ts,rsbuild.config.js,rspack.config.ts,rspack.config.js,next.config.ts,next.config.js,next.config.mjs,remix.config.js,remix.config.ts,astro.config.ts,astro.config.js,astro.config.mjs,tailwind.config.ts,tailwind.config.js,tailwind.config.mjs,postcss.config.ts,postcss.config.js,postcss.config.mjs,biome.config.ts,biome.config.js,drizzle.config.ts,drizzle.config.js,prisma.config.ts,prisma.config.js,knip.config.ts,knip.config.js,knip.config.mjs,lint-staged.config.js,lint-staged.config.mjs`.split(`,`)),sc=[`/src/`,`/app/`,`/lib/`,`/components/`,`/pages/`,`/features/`,`/modules/`,`/packages/`,`/apps/`,`/frontend/`,`/client/`],cc=ic.filter(e=>e.startsWith(`/.`)),lc=e=>{let t=-1;for(let n of sc){let r=e.lastIndexOf(n);r>t&&(t=r)}return t<0?e:e.slice(t)};let uc,dc=!1;const fc=e=>e?e===uc?dc:(uc=e,dc=mc(e),dc):!1,pc=(e,t)=>e?mc(e,t):!1,mc=(e,t=new Set)=>{let n=e.replaceAll(`\\`,`/`),r=n.lastIndexOf(`/`),i=r===-1?n:n.slice(r+1);if(oc.has(i.toLowerCase()))return!0;for(let e of ac)if(i.includes(e))return!0;let a=n.startsWith(`/`)?n:`/${n}`;for(let e of cc)if(!t.has(e)&&a.includes(e))return!0;let o=lc(n);for(let e of ic)if(!t.has(e)&&(e.startsWith(`/.`)?n:o).includes(e))return!0;return!1},hc=e=>t=>fc(t.filename)?Ks:e(t),gc=e=>(t=>{let n=e(t),r=!1,i=!1,a={};for(let e in n){if(!Object.hasOwn(n,e))continue;let t=n[e];if(typeof t!=`function`){a[e]=t;continue}let o=e.charAt(0);if(o<`A`||o>`Z`){a[e]=t;continue}if(e===`Program`){a.Program=e=>{let n=tc(e);i=n.hasReactRuntime,r=n.hasNonReactRuntime&&!n.hasReactRuntime,t(e)};continue}if(e===`JSXOpeningElement`){a.JSXOpeningElement=e=>{!i&&!r&&rc(e)&&(r=!0),!r&&t(e)};continue}a[e]=(...e)=>{r||t(...e)}}return`Program`in a||(a.Program=e=>{let t=tc(e);i=t.hasReactRuntime,r=t.hasNonReactRuntime&&!t.hasReactRuntime}),a}),W=e=>{if(!(`create`in e))return{...e,create:()=>Ks};let t=e.tags,n=e.create,r=t?.includes(`test-noise`)&&!t?.includes(`migration-hint`);return t?.includes(`react-jsx-only`)&&(n=gc(n)),r&&(n=hc(n)),n===e.create?e:{...e,create:n}};let _c;const vc=e=>{let t=[0];for(let n=0;n<e.length;n+=1){let r=e[n];if(r===`\r`&&e[n+1]===`
|
|
3
3
|
`){n+=1,t.push(n+1);continue}(r===`\r`||r===`
|
|
4
4
|
`||r===`\u2028`||r===`\u2029`)&&t.push(n+1)}return t},yc=e=>{if(_c?.content===e)return _c.lineStartOffsets;let t=vc(e);return _c={content:e,lineStartOffsets:t},t},G=(e,t)=>{if(Number.isNaN(t)||t<0)return{line:1,column:1};let n=yc(e),r=Math.min(Math.trunc(t),e.length),i=0,a=n.length-1;for(;i<a;){let e=i+a+1>>1;n[e]<=r?i=e:a=e-1}return{line:i+1,column:r-n[i]+1}},bc=(e,t)=>G(e,e.search(t)),xc=/\.(?:[cm]?[jt]sx?|json|jsonc|map|html?|mdx?|ya?ml|toml|sql|rules|env|txt|log|svg|xml|pem|key|crt|cert|pub|py|php)$/i,Sc=/(?:^|\/)\.env(?:\.|$)/,Cc=/\.(?:[cm]?[jt]sx?)$/i,wc=/\.(?:[cm]?[jt]sx?|py|php)$/i,Tc=/\.(?:[cm]?[jt]sx?|py)$/i,Ec=/(?:^|\/)(?:api|backend|server|servers|middleware|route|routes|functions|lambdas|workers)(?:\/|$)|(?:^|\/)[^/]+\.server\.[cm]?[jt]sx?$/i,Dc=/(?:^|\/)(?:__fixtures__|__mocks__|__tests__|__integration__|fixtures|mocks|test|tests|testdata|test-data|e2e|playwright|cypress|specs?)(?:\/|$)|^(?:test|spec)-[^/]+\.[cm]?[jt]sx?$|\.(?:test|spec|e2e|e2e-spec|integration-test|fixture|fixtures|stories|story)\.[cm]?[jt]sx?$|(?:^|\/)(?:playwright|cypress|vitest|jest|karma)[^/]*\.conf(?:ig)?\.[cm]?[jt]s$|(?:^|\/)(?:test_[^/]+|[^/]+_test|conftest)\.py$|\.env\.[^/]*(?:test|e2e)[^/]*$/i,Oc=/(?:^|\/)(?:vite|next|nuxt|astro|remix|webpack|rollup|rspack|rsbuild|esbuild|tsup|metro|expo|babel|tailwind|postcss|svelte|farm|parcel|snowpack)[^/]*\.config\.[cm]?[jt]sx?$/i,kc=/(?:^|\/)scripts(?:\/|$)/i,Ac=/(?:^|\/)(?:examples?|tutorials?|demos?|samples?|playgrounds?)(?:\/|$)/i,jc=/(?:^|\/)(?:README|CHANGELOG|CONTRIBUTING|PUBLISHING|DOCS)\.mdx?$|\.mdx?$/i,Mc=/(?:^|\/)(?:generated|__generated__|dist|build|coverage|out|storybook-static|vendor|vendors|third[-_]?party|libraries)(?:\/|$)|(?:^|\/)\.next\/|(?:^|\/)\.yarn\/|(?:^|\/)public\/(?:chunks?|assets?|build|dist|static)\/|(?:generated|\.gen)\.[cm]?[jt]sx?$|@\d+\.\d+\.\d+(?:[-.][\w.]+)?\.[cm]?js$|[.-]min\.[cm]?js$|\.asm\.js$|(?:^|\/)[\w-]+[.@-]\d+\.\d+\.\d+(?:[-.][\w.]+)?\//i,Nc=/\.(iife|umd|global|min)\.js$/i,Pc=[/(?:^|\/)\.next\/static\//,/(?:^|\/)\.output\/public\//,/(?:^|\/)build\/static\//,/(?:^|\/)dist\/assets\//,/(?:^|\/)public\//,/(?:^|\/)out\//,/(?:^|\/)storybook-static\//],Fc=/\b(?:exec|execSync|spawn|child_process|eval|new Function|vm\.run|readFile|writeFile|fs\.read|fs\.write|fetch|axios|http\.request|sandbox|runCode|executeCode)\b/,Ic=new Set([`.next`,`.output`]),Lc=e=>{let t=e.split(`/`);for(let e=0;e<t.length;e+=1)if(Ic.has(t[e])&&(t[e]===`.next`&&t[e+1]===`dev`||t[e+1]===`server`&&e+2<t.length))return!0;return!1},Rc=(e,t)=>Lc(e)?!1:t||e.endsWith(`.map`)?!0:Pc.some(t=>t.test(e)),zc=e=>/(?:^|\/)(?:package\.json|Dockerfile|docker-compose\.ya?ml|\.github\/workflows\/[^/]+\.ya?ml|vercel\.json|next\.config\.[cm]?[jt]s|netlify\.toml)$/i.test(e),Bc=new Map,Vc=(e,t)=>{let n=Bc.get(t);n||(n=new Map,Bc.set(t,n));let r=n.get(e);if(r!==void 0)return r;let i=t.test(e)&&!Dc.test(e)&&!kc.test(e)&&!jc.test(e)&&!Mc.test(e);return n.set(e,i),i},K=e=>/\.d\.[cm]?[jt]s$/i.test(e)?!1:Vc(e,Cc),Hc=/<script\b|on(?:load|error|click|mouseover)\s*=/i,Uc=/dangerouslyAllowSVG\s*:\s*true/i,Wc=/<(?:object|embed|iframe)\b[^>]+(?:data|src)=["'][^"']+\.svg(?:\?[^"']*)?["']/i,Gc=W({id:`active-static-asset`,title:`Executable SVG exposure`,severity:`warn`,recommendation:"Prefer `<img>` for SVG images; if SVG must be served directly, use attachment disposition and a CSP that blocks scripts and objects.",scan:e=>{let t=[];if(e.relativePath.endsWith(`.svg`)&&Rc(e.relativePath,e.isGeneratedBundle)){if(Hc.test(e.content)){let n=bc(e.content,Hc);t.push({message:`A browser-reachable SVG contains script or event-handler code.`,line:n.line,column:n.column,severity:`error`,title:`Active SVG in public assets`,help:`Serve untrusted SVG as downloads, sanitize it, or isolate it on a cookieless asset origin with a restrictive CSP.`})}return t}if(!K(e.relativePath)&&!zc(e.relativePath))return t;let n=[Uc,Wc].find(t=>t.test(e.content));if(n!==void 0){let r=bc(e.content,n);t.push({message:`The app enables or embeds SVG in an executable browser context.`,line:r.line,column:r.column})}return t}}),Kc=e=>/(?:^|\/)(?:firestore\.rules|storage\.rules|database\.rules\.json)$/.test(e),qc=/\s/,Jc=/[\p{ID_Continue}$]/u,Yc=new Set([`return`,`typeof`,`case`,`in`,`of`,`new`,`delete`,`void`,`instanceof`,`do`,`else`,`yield`,`await`,`throw`]),Xc=(e,t,n)=>{let r=n-1;for(;r>=0&&qc.test(t[r]);)--r;if(r<0)return!0;let i=t[r],a=r>0?t[r-1]:``;if(Jc.test(i)){let n=r;for(;n>0&&Jc.test(t[n-1]);)--n;return n>0&&t[n-1]===`.`?!1:Yc.has(e.slice(n,r+1))}return i===`<`?!1:i===`>`?a===`=`:i===`+`||i===`-`?a!==i:i===`!`?!(Jc.test(a)||a===`)`||a===`]`):!(i===`)`||i===`]`||i===`}`||i===`"`||i===`'`||i==="`")},Zc=(e,t)=>{let n=t+1,r=!1;for(;n<e.length;){let t=e[n];if(t===`\\`){n+=2;continue}if(t===`
|
|
5
5
|
`)return null;if(t===`[`)r=!0;else if(t===`]`)r=!1;else if(t===`/`&&!r)return e[n+1]===`/`?null:n+1;n+=1}return null},Qc=(e,t,n)=>{for(let r=t+1;r<e.length;r+=1){let t=e[r];if(t===`\\`){r+=1;continue}if(t===n)return!1;if(qc.test(t))return!0}return!1},$c=(e,t)=>{let n=null,r=null,i=!1,a=[],o=0,s=t=>{t>=e.length||e[t]===`
|
|
@@ -28,4 +28,4 @@ import{parseSync as e,visitorKeys as t}from"oxc-parser";import{KEYS as n}from"es
|
|
|
28
28
|
`&&(t[r]=` `);n=o;continue}}if(r===`"`){for(n+=1;n<e.length;){if(e[n]===`"`){if(e[n+1]===`"`){n+=2;continue}n+=1;break}n+=1}continue}n+=1}return t.join(``)},Cm=/disable\s+row\s+level\s+security/i,wm=/auth\.role\(\)\s*=\s*["']service_role["']/i,Tm=/create\s+policy/gi,Em=/;|create\s+policy/i,Dm=/\b(?:using|with\s+check)\s*\(\s*true\s*\)/i,Om=/\bfor\s+select\b/i,km=/\bto\s+([\s\S]+?)(?=\s+(?:using|with\s+check|as|for)\b|;|$)/i,Am=new Set([`service_role`,`postgres`,`supabase_admin`]),jm=e=>{let t=km.exec(e);if(t===null)return!1;let n=t[1].split(`,`).map(e=>e.trim().replace(/["'`]/g,``).toLowerCase()).filter(Boolean);return n.length>0&&n.every(e=>Am.has(e))},Mm=(e,t)=>wm.test(t)?!0:!Dm.test(e)||Om.test(e)?!1:!jm(e),Nm=W({id:`supabase-rls-policy-risk`,title:`Permissive Supabase RLS policy`,severity:`error`,recommendation:"Keep public-read policies explicit, but gate inserts, updates, deletes, and service-role bypasses behind `auth.uid()` plus trusted tenant membership.",scan:e=>{if(!_m(e.relativePath))return[];let t=Sm(e.content),n=t.search(Cm);Tm.lastIndex=0;for(let r=Tm.exec(t);r!==null;r=Tm.exec(t)){let i=r.index+r[0].length,a=t.slice(i).search(Em),o=a<0?t.length:i+a;if(Mm(t.slice(r.index,o),e.content.slice(r.index,o))){(n<0||r.index<n)&&(n=r.index);break}}if(n<0)return[];let{line:r,column:i}=G(t,n);return[{message:`Supabase policy SQL disables RLS, permits writes broadly, or references a service-role bypass.`,line:r,column:i}]}}),Pm=/create\s+(?:unlogged\s+)?table\s+(?:if\s+not\s+exists\s+)?(?!["`]?(?:auth|storage|realtime|vault|extensions|graphql|graphql_public|pgbouncer|net|supabase_functions|supabase_migrations|cron|pgsodium|pgmq|information_schema|pg_catalog|pg_temp|private|internal)["`]?\s*\.)(?:["`]?public["`]?\s*\.\s*)?["`]?([A-Za-z_][\w$]*)["`]?(?:\s*\(|\s+as\b)/gi,Fm=/alter\s+table\s+(?:if\s+exists\s+)?(?:only\s+)?(?:["`]?public["`]?\s*\.\s*)?["`]?([A-Za-z_][\w$]*)["`]?\s+(?:force\s+)?enable\s+row\s+level\s+security/gi,Im=/\benable\s+row\s+level\s+security\b/gi,Lm=e=>{let t=new Map,n=0;for(let r of e.matchAll(Fm)){let e=r[1];e!==void 0&&(n+=1,t.set(e.toLowerCase(),r.index))}return{lastEnableIndexByTable:t,staticEnableCount:n}},Rm=(e,t)=>(e.match(Im)?.length??0)>t,zm=W({id:`supabase-table-missing-rls`,title:`Supabase table created without Row Level Security`,severity:`error`,recommendation:"Enable RLS in the same migration (`alter table <name> enable row level security;`) and add `auth.uid()`-scoped policies for select/insert/update/delete. A public table without RLS is fully readable and writable with the public anon key.",scan:e=>{if(!gm(e.relativePath))return[];let t=Sm(e.content);if(!/create\s+(?:unlogged\s+)?table/i.test(t))return[];let n=[],{lastEnableIndexByTable:r,staticEnableCount:i}=Lm(t);if(Rm(t,i))return[];Pm.lastIndex=0;for(let e=Pm.exec(t);e!==null;e=Pm.exec(t)){let i=e[1];if(i===void 0)continue;let a=r.get(i.toLowerCase());if(a!==void 0&&a>=e.index)continue;let o=G(t,e.index);n.push({message:`Supabase migration creates a public table but never enables Row Level Security, leaving every row exposed to the anon key.`,line:o.line,column:o.column})}return n}}),Bm=W({id:`svg-filter-clickjacking-risk`,title:`SVG-filtered iframe clickjacking primitive`,severity:`warn`,recommendation:"Avoid filtering cross-origin iframes. Use `frame-ancestors` on sensitive pages and keep SVG filters away from embedded privileged UI.",scan:q({shouldScan:e=>K(e.relativePath),pattern:/<iframe\b(?:=>|[^>]){0,300}\bfilter\s*:\s*["']?url\(#|filter\s*:\s*url\(#[\s\S]{0,700}<iframe\b|<fe(?:DisplacementMap|ColorMatrix|Composite|Tile|Morphology)\b[\s\S]{0,700}<iframe\b/i,message:`An iframe is rendered through an SVG/CSS filter, which can support advanced clickjacking or visual exfiltration tricks.`})}),Vm=e=>K(e)?Ec.test(e)?!0:/(?:^|\/)(?:middleware|route)\.[cm]?[jt]sx?$/.test(e):!1,Hm=W({id:`tenant-static-proxy-risk`,title:`Tenant-controlled static asset proxy`,severity:`warn`,recommendation:`Bind tenant identity to the trusted host or authenticated org, canonicalize after decoding, reject traversal, and never let one tenant choose another tenant's asset prefix.`,scan:q({shouldScan:e=>Vm(e.relativePath),pattern:/\b(?:fetch|path\.join|getObject\w*|GetObjectCommand|getSignedUrl|createReadStream)\s*\([^;]{0,200}(?:\$\{[^}]{0,100}\b(?:tenant|subdomain|workspace|hostPattern|(?<!\.)organization(?:Id|Slug)?)\b|\b(?:tenant|subdomain|workspace)(?:Id|Slug|Name)?\b\s*[,)+\].])/i,message:`Route code appears to compose tenant or subdomain input into a static/CDN/object-store fetch path.`})}),Um=[/dangerouslySetInnerHTML\s*=\s*\{\{\s*__html\s*:[\s\S]{0,300}?\bJSON\.stringify\s*\(/gi,/<script\b[^>]*>(?:(?!<\/script>)[\s\S]){0,300}?\bJSON\.stringify\s*\(/gi],Wm=/\$\{|["'`]\s*\+\s*$/,Gm=/^\s*\{(?!\{)/,Km=/"(?:[^"\\\n]|\\.)*"|'(?:[^'\\\n]|\\.)*'/g,qm=/\b(?:true|false|null)\b|[\d.]+(?:e[+-]?\d+)?/gi,Jm=e=>{if(e.includes("`")||e.includes("${"))return!1;let t=e.replace(Km,``).replace(qm,``);return!/[A-Za-z_$]/.test(t)},Ym=/^[\s)]*\.replace\s*\([^)]*(?:\\u003[cC]|<|<)/,Xm=/(?:\b(?:escapeHtml|escapeJSON|escapeJson|htmlEscape|jsesc)|(?<![.\w])(?:serialize|serializeJavascript|devalue|uneval|superjson))\s*\(\s*$/i,Zm=/\bJSON\.stringify\s*\($/i,Qm=W({id:`unsafe-json-in-html`,title:`Unescaped JSON in HTML or script sink`,severity:`warn`,recommendation:'JSON.stringify does not HTML-escape, so a `<\/script>` (or `<`) in the data breaks out and becomes XSS. Use an HTML-safe serializer (serialize-javascript, devalue) or escape `<`, `>`, and `&`, or pass data via a JSON `<script type="application/json">` read with JSON.parse.',scan:e=>{if(!K(e.relativePath))return[];let t=il(e);if(!t.includes(`JSON.stringify`))return[];let n=[],r=new Set;for(let[e,i]of Um.entries()){i.lastIndex=0;for(let a=i.exec(t);a!==null;a=i.exec(t)){let i=a[0].replace(Zm,``);if(Xm.test(i))continue;if(e===1){let e=t.indexOf(`>`,a.index),n=a[0].search(/\bJSON\.stringify\s*\($/i);if(e>=0&&n>=0){let r=t.slice(e+1,a.index+n);if(!Wm.test(r)||Gm.test(r))continue}}let o=a.index+a[0].length-1,s=Tu(t,o);if(s>=0){let e=t.slice(s+1,s+1+160);if(Ym.test(e)||Jm(t.slice(o+1,s)))continue}if(r.has(a.index))continue;r.add(a.index);let c=G(t,a.index);n.push({message:"JSON.stringify is embedded in HTML/script markup without HTML-escaping; data containing `<\/script>` or `<` breaks out and becomes XSS.",line:c.line,column:c.column})}}return n}}),$m=/(?:(?<![.\w$])fetch|\baxios\.\s*(?:get|post|put|delete|head)|\bgot|\bgot\.\s*(?:get|post))\s*\(\s*([^,)]+)/,eh=/\b(?:url|targetUrl|callbackUrl|redirectUrl|webhookUrl|companyUrl|websiteUrl|domainUrl|imageUrl|fetchUrl|next|return_to|returnTo|destination|location)\b/i,th=/\breq\.|\brequest\.(?:query|body|params|nextUrl)|\bsearchParams\b|\bparams\.|\bbody\.|\bquery\./,nh=/\bredirect\s*:\s*["'](?:manual|error)["']/,rh=/\b(params|body|query)\./g,ih=(e,t)=>RegExp(`(?:const|let|var)\\s+${e}\\s*(?::[^=;\\n]{0,80})?=\\s*new\\s+URLSearchParams\\b`).test(t),ah=(e,t)=>{let n=e.replace(rh,(e,n)=>ih(n,t)?``:e);return th.test(n)},oh=(e,t)=>{if(ah(e,t))return!0;let n=/^[\w$]+$/.exec(e.trim());if(n===null)return!1;let r=RegExp(`(?:const|let|var)[^=;\\n]{0,80}\\b${n[0]}\\b[^=;\\n]{0,80}=([^;\\n]*)`,`g`);for(let e of t.matchAll(r)){let n=e[1]??``;if(/\breq\.|\brequest\.|\bsearchParams\b|\$_(?:GET|POST|REQUEST)/.test(n)||ah(n,t))return!0}return!1},sh=W({id:`untrusted-redirect-following`,title:`Server fetch follows redirects for caller-shaped URL`,severity:`warn`,recommendation:'Use `redirect: "manual"` or equivalent and re-validate every redirect target before following it to avoid SSRF redirect bypasses.',scan:e=>{if(!Vm(e.relativePath)||!$m.test(e.content))return[];let t=[],n=e.content.split(`
|
|
29
29
|
`);for(let r=0;r<n.length;r+=1){let i=n[r]??``,a=i.match($m),o=a?.[1]??``;if(!a||!eh.test(o)||!oh(o,e.content))continue;let s=n.slice(r,r+5).join(`
|
|
30
30
|
`);nh.test(s)||t.push({message:`Server-side fetch code appears to follow redirects for a URL shaped like caller-controlled input.`,line:r+1,column:i.search(/\S/)+1})}return t}}),ch=W({id:`url-prefilled-privileged-action`,title:`URL pre-fills a privileged action`,severity:`warn`,recommendation:`Require server-side validation and explicit confirmation for URL-sourced invite, role, permission, redirect, or sharing parameters.`,scan:q({shouldScan:e=>xf(e.relativePath),pattern:/(?<!(?:safe|valid|sanitiz|relativ|allowlist|whitelist|parse|normaliz)[\w$]*\(\s*(?:new\s+)?(?:[\w$]+\s*\.\s*){0,4})\b(?:searchParams|useSearchParams\s*\(\s*\)|URLSearchParams\s*\([^)]{0,120}\))(?:[?!])?\.get(?:All)?\s*\(\s*["'](?:userstoinvite|role|permission|sharingaction|invite|admin|next|continue|returnTo|redirect_uri|callbackUrl)["']|\bsearchParams\.(?:userstoinvite|role|permission|sharingaction|invite|admin|returnTo|redirect_uri|callbackUrl)\b/i,message:`Client code reads sensitive action state from the URL, which can pre-fill invites, roles, redirects, or sharing flows with attacker values.`})}),lh=/(?:^|\/)[^/]*webhook[^/]*\/|(?:^|\/)[^/]*webhook[^/]*\.[cm]?[jt]s$|\bwebhook\b/i,uh=/\b(?:export\s+(?:async\s+)?function\s+POST|export\s+const\s+(?:POST|handler|webhook)|webhookHandler|webhookRoute)\b/i,dh=RegExp(`verifySignature|verify.*signature|verify\\w*(?:Webhook|Auth)|constructEvent|createHmac|timingSafeEqual|svix|webhookSecret|stripe\\.webhooks|["'][\\w-]*signature["']|\\b[A-Za-z]{0,40}(?:verif|valid|check|assert|authenticat|compare|guard)[A-Za-z]{0,40}(?:secret|signature|hmac|webhook|digest)[A-Za-z]{0,40}\\s*\\(`,`i`),fh=/webhook[\s_-]?ur[il]\w*/gi,ph=/process\.env\.\w*WEBHOOK_URL|\b(?:send|post|dispatch|publish|notify)\w*Webhook/,mh=/\b(?:req|request)\b/,hh=/\/\/[^\n]*|\/\*[\s\S]*?\*\/|"(?:\\.|[^"\\\n])*"|'(?:\\.|[^'\\\n])*'|`(?:\\.|[^`\\])*`/g,gh=W({id:`webhook-signature-risk`,title:`Webhook handler lacks signature verification`,severity:`warn`,recommendation:`Verify provider signatures before parsing or acting on webhook bodies. Use provider SDK helpers or HMAC verification with timing-safe comparison.`,scan:q({shouldScan:e=>{if(!K(e.relativePath)||ph.test(e.content))return!1;let t=e.content.replace(hh,``).replace(fh,``);return lh.test(e.relativePath)||lh.test(t)},pattern:uh,requireAll:[mh],suppressWhen:dh,message:`Webhook handler code does not show an obvious signature verification step.`})}),_h=()=>{vn(),_t(),hn()},vh=e=>xc.test(e)||Sc.test(e),yh=e=>{let t=Nc.test(e);return om(e)||_m(e)||Kc(e)||zc(e)?{bucket:`priority`,isGeneratedBundleByName:t}:Rc(e,t)?{bucket:`artifact`,isGeneratedBundleByName:t}:vh(e)?{bucket:`other`,isGeneratedBundleByName:t}:null},bh=(e,t)=>t||vh(e)||zc(e)||om(e),xh=[`nextjs`,`astro`,`vite`,`cra`,`remix`,`gatsby`,`expo`,`react-native`,`tanstack-start`,`preact`,`unknown`];export{yl as $,ee as $i,ci as $n,Mt as $r,to as $t,bp as A,Je as Ai,I as An,Sr as Ar,hc as At,ju as B,fe as Bi,li as Bn,zn as Br,Es as Bt,Np as C,Xe as Ci,Hi as Cn,Ir as Cr,Pl as Ct,Op as D,ze as Di,Bi as Dn,Fr as Dr,cl as Dt,kp as E,tt as Ei,zi as En,Pr as Er,ll as Et,Tf as F,y as Fi,F as Fn,Dr as Fr,Js as Ft,Cu as G,ie as Gi,ei as Gn,Sn as Gr,Lo as Gt,Du as H,le as Hi,ui as Hn,Ln as Hr,Bo as Ht,wf as I,v as Ii,wi as In,xr as Ir,Ks as It,au as J,oe as Ji,hi as Jn,k as Jr,Co as Jt,hu as K,ce as Ki,gi as Kn,bn as Kr,Po as Kt,Cf as L,_ as Li,P as Ln,mr as Lr,Us as Lt,op as M,Ie as Mi,ji as Mn,Tr as Mr,pc as Mt,Rf as N,Le as Ni,Oi as Nn,kr as Nr,nc as Nt,Cp as O,Be as Oi,Pi as On,Cr as Or,Gc as Ot,jf as P,he as Pi,Si as Pn,Or as Pr,qs as Pt,ml as Q,p as Qi,Kr as Qn,Nt as Qr,ro as Qt,bf as R,me as Ri,N as Rn,er as Rr,Ws as Rt,Bp as S,He as Si,Ui as Sn,jr as Sr,Nl as St,Ap as T,Re as Ti,Vi as Tn,Nr as Tr,Ml as Tt,Y as U,ne as Ui,si as Un,Cn as Ur,zo as Ut,Ou as V,se as Vi,ni as Vn,j as Vr,Wo as Vt,wu as W,ue as Wi,ai as Wn,A as Wr,Ro as Wt,pl as X,te as Xi,pi as Xn,en as Xr,yo as Xt,iu as Y,de as Yi,fi as Yn,gn as Yr,bo as Yt,ul as Z,m as Zi,di as Zn,Bt as Zr,go as Zt,cm as _,Ze as _i,ta as _n,Mr as _r,Il as _t,gh as a,l as aa,vt as ai,Qa as an,ii as ar,vl as at,em as b,Ke as bi,Gi as bn,Lr as br,Fl as bt,Qm as c,dt as ci,eo as cn,Zr as cr,zl as ct,zm as d,lt as di,z as dn,Yr as dr,Kl as dt,d as ea,jt as ei,V as en,$r as er,hl as et,Nm as f,it as fi,pa as fn,Jr as fr,Rl as ft,um as g,Ye as gi,R as gn,Xr as gr,Ll as gt,dm as h,Ge as hi,sa as hn,qr as hr,Vl as ht,_h as i,c as ia,Ot as ii,Za as in,Wr as ir,_l as it,_p as j,$e as ji,Mi as jn,Er as jr,fc as jt,Sp as k,qe as ki,L as kn,wr as kr,W as kt,Hm as l,ot as li,Da as ln,ri as lr,Gl as lt,fm as m,rt as mi,oa as mn,oi as mr,jl as mt,yh as n,f as na,At as ni,Ya as nn,Qr as nr,gl as nt,ch as o,s as oa,yt as oi,Ja as on,_i as or,Ol as ot,hm as p,nt as pi,ca as pn,Gr as pr,bl as pt,mu as q,ae as qi,mi as qn,xn as qr,No as qt,bh as r,h as ra,Dt as ri,$a as rn,Vr as rr,dl as rt,sh as s,o as sa,bt as si,Xa as sn,Ur as sr,Bl as st,xh as t,u as ta,O as ti,no as tn,ti as tr,fl as tt,Bm as u,st as ui,ha as un,Hr as ur,Al as ut,am as v,Qe as vi,ea as vn,zr as vr,Hl as vt,Mp as w,We as wi,Ri as wn,Br as wr,kl as wt,Xp as x,Ue as xi,Wi as xn,Ar as xr,Wl as xt,nm as y,et as yi,Ki as yn,Rr as yr,Ul as yt,Mu as z,pe as zi,M as zn,Bn as zr,Gs as zt};
|
|
31
|
-
//# sourceMappingURL=capability-
|
|
31
|
+
//# sourceMappingURL=capability-CGSnrcnu.js.map
|