@uptrademedia/site-kit 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/README.md +305 -0
  2. package/dist/analytics/index.js +88 -0
  3. package/dist/analytics/index.js.map +1 -0
  4. package/dist/analytics/index.mjs +70 -0
  5. package/dist/analytics/index.mjs.map +1 -0
  6. package/dist/api-N35S3EES.js +57 -0
  7. package/dist/api-N35S3EES.js.map +1 -0
  8. package/dist/api-SYBTK7Z7.mjs +4 -0
  9. package/dist/api-SYBTK7Z7.mjs.map +1 -0
  10. package/dist/blog/index.js +200 -0
  11. package/dist/blog/index.js.map +1 -0
  12. package/dist/blog/index.mjs +194 -0
  13. package/dist/blog/index.mjs.map +1 -0
  14. package/dist/chunk-3MUOUXHV.js +3721 -0
  15. package/dist/chunk-3MUOUXHV.js.map +1 -0
  16. package/dist/chunk-4HVYXYQL 2.mjs +255 -0
  17. package/dist/chunk-4HVYXYQL.mjs +255 -0
  18. package/dist/chunk-4HVYXYQL.mjs.map +1 -0
  19. package/dist/chunk-7H6I3ECV.mjs +120 -0
  20. package/dist/chunk-7H6I3ECV.mjs.map +1 -0
  21. package/dist/chunk-COI6GOX2.mjs +3679 -0
  22. package/dist/chunk-COI6GOX2.mjs.map +1 -0
  23. package/dist/chunk-EQCVQC35.js +35 -0
  24. package/dist/chunk-EQCVQC35.js 2.map +1 -0
  25. package/dist/chunk-EQCVQC35.js.map +1 -0
  26. package/dist/chunk-FEBYQGY4 2.mjs +251 -0
  27. package/dist/chunk-FEBYQGY4.mjs +251 -0
  28. package/dist/chunk-FEBYQGY4.mjs.map +1 -0
  29. package/dist/chunk-FKVJOT2F.mjs +796 -0
  30. package/dist/chunk-FKVJOT2F.mjs.map +1 -0
  31. package/dist/chunk-GQ6ZOU2N.mjs +134 -0
  32. package/dist/chunk-GQ6ZOU2N.mjs.map +1 -0
  33. package/dist/chunk-HCFPU7TU.js +137 -0
  34. package/dist/chunk-HCFPU7TU.js.map +1 -0
  35. package/dist/chunk-NYKRE2FL 2.mjs +31 -0
  36. package/dist/chunk-NYKRE2FL.mjs +31 -0
  37. package/dist/chunk-NYKRE2FL.mjs 2.map +1 -0
  38. package/dist/chunk-NYKRE2FL.mjs.map +1 -0
  39. package/dist/chunk-QP5NCO2E.js +133 -0
  40. package/dist/chunk-QP5NCO2E.js.map +1 -0
  41. package/dist/chunk-RV7H3I6J.js +255 -0
  42. package/dist/chunk-RV7H3I6J.js 2.map +1 -0
  43. package/dist/chunk-RV7H3I6J.js.map +1 -0
  44. package/dist/chunk-SBVEYCSV.js +140 -0
  45. package/dist/chunk-SBVEYCSV.js.map +1 -0
  46. package/dist/chunk-TUKGA3UK.js +257 -0
  47. package/dist/chunk-TUKGA3UK.js 2.map +1 -0
  48. package/dist/chunk-TUKGA3UK.js.map +1 -0
  49. package/dist/chunk-V3F5J6CV.js +801 -0
  50. package/dist/chunk-V3F5J6CV.js.map +1 -0
  51. package/dist/chunk-WPSRS352.mjs +135 -0
  52. package/dist/chunk-WPSRS352.mjs.map +1 -0
  53. package/dist/commerce/index.js +157 -0
  54. package/dist/commerce/index.js.map +1 -0
  55. package/dist/commerce/index.mjs +4 -0
  56. package/dist/commerce/index.mjs.map +1 -0
  57. package/dist/commerce/server.js +186 -0
  58. package/dist/commerce/server.js.map +1 -0
  59. package/dist/commerce/server.mjs +176 -0
  60. package/dist/commerce/server.mjs.map +1 -0
  61. package/dist/engage/index.js +50 -0
  62. package/dist/engage/index.js.map +1 -0
  63. package/dist/engage/index.mjs +44 -0
  64. package/dist/engage/index.mjs.map +1 -0
  65. package/dist/forms/index.js +1053 -0
  66. package/dist/forms/index.js.map +1 -0
  67. package/dist/forms/index.mjs +1035 -0
  68. package/dist/forms/index.mjs.map +1 -0
  69. package/dist/generators-7Y5ABRYV 2.mjs +161 -0
  70. package/dist/generators-7Y5ABRYV.mjs +161 -0
  71. package/dist/generators-7Y5ABRYV.mjs 2.map +1 -0
  72. package/dist/generators-7Y5ABRYV.mjs.map +1 -0
  73. package/dist/generators-GWIYCA5M.js +171 -0
  74. package/dist/generators-GWIYCA5M.js 2.map +1 -0
  75. package/dist/generators-GWIYCA5M.js.map +1 -0
  76. package/dist/index 2.mjs +74 -0
  77. package/dist/index.js +326 -0
  78. package/dist/index.js 2.map +1 -0
  79. package/dist/index.js.map +1 -0
  80. package/dist/index.mjs +222 -0
  81. package/dist/index.mjs.map +1 -0
  82. package/dist/migrator-V6KS75EA 2.mjs +265 -0
  83. package/dist/migrator-V6KS75EA.mjs +265 -0
  84. package/dist/migrator-V6KS75EA.mjs 2.map +1 -0
  85. package/dist/migrator-V6KS75EA.mjs.map +1 -0
  86. package/dist/migrator-XKM7YQCY.js +272 -0
  87. package/dist/migrator-XKM7YQCY.js 2.map +1 -0
  88. package/dist/migrator-XKM7YQCY.js.map +1 -0
  89. package/dist/scanner-MF7P3CDE 2.mjs +14386 -0
  90. package/dist/scanner-MF7P3CDE.mjs +14386 -0
  91. package/dist/scanner-MF7P3CDE.mjs 2.map +1 -0
  92. package/dist/scanner-MF7P3CDE.mjs.map +1 -0
  93. package/dist/scanner-NT6YG4TD 2.js +14397 -0
  94. package/dist/scanner-NT6YG4TD.js +14397 -0
  95. package/dist/scanner-NT6YG4TD.js 2.map +1 -0
  96. package/dist/scanner-NT6YG4TD.js.map +1 -0
  97. package/dist/seo/index.js +447 -0
  98. package/dist/seo/index.js.map +1 -0
  99. package/dist/seo/index.mjs +411 -0
  100. package/dist/seo/index.mjs.map +1 -0
  101. package/dist/seo/server.js +66 -0
  102. package/dist/seo/server.js.map +1 -0
  103. package/dist/seo/server.mjs +5 -0
  104. package/dist/seo/server.mjs.map +1 -0
  105. package/dist/setup/index.js +1050 -0
  106. package/dist/setup/index.js.map +1 -0
  107. package/dist/setup/index.mjs +1046 -0
  108. package/dist/setup/index.mjs.map +1 -0
  109. package/dist/sitemap/index.js +212 -0
  110. package/dist/sitemap/index.js.map +1 -0
  111. package/dist/sitemap/index.mjs +206 -0
  112. package/dist/sitemap/index.mjs.map +1 -0
  113. package/dist/web-vitals-BH55V7EJ.js +252 -0
  114. package/dist/web-vitals-BH55V7EJ.js 2.map +1 -0
  115. package/dist/web-vitals-BH55V7EJ.js.map +1 -0
  116. package/dist/web-vitals-RJYPWAR3 2.mjs +241 -0
  117. package/dist/web-vitals-RJYPWAR3.mjs +241 -0
  118. package/dist/web-vitals-RJYPWAR3.mjs 2.map +1 -0
  119. package/dist/web-vitals-RJYPWAR3.mjs.map +1 -0
  120. package/package.json +118 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/utils/shallowEqual.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/utils/deprecationWarning.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/validators/generated/index.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/validators/matchesPattern.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/validators/buildMatchMemberExpression.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/validators/react/isReactComponent.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/validators/react/isCompatTag.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/validators/isType.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/validators/isPlaceholderType.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/validators/is.ts","../node_modules/.pnpm/@babel+helper-validator-identifier@7.28.5/node_modules/@babel/helper-validator-identifier/src/identifier.ts","../node_modules/.pnpm/@babel+helper-validator-identifier@7.28.5/node_modules/@babel/helper-validator-identifier/src/keyword.ts","../node_modules/.pnpm/@babel+helper-validator-identifier@7.28.5/node_modules/@babel/helper-validator-identifier/src/index.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/validators/isValidIdentifier.ts","../node_modules/.pnpm/@babel+helper-string-parser@7.27.1/node_modules/@babel/helper-string-parser/src/index.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/constants/index.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/definitions/utils.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/definitions/core.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/definitions/flow.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/definitions/jsx.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/definitions/placeholders.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/definitions/misc.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/definitions/experimental.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/definitions/typescript.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/definitions/deprecated-aliases.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/definitions/index.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/validators/validate.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/builders/generated/lowercase.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/builders/generated/uppercase.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/builders/generated/index.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/utils/react/cleanJSXElementLiteralChild.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/builders/react/buildChildren.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/validators/isNode.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/asserts/assertNode.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/asserts/generated/index.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/builders/flow/createTypeAnnotationBasedOnTypeof.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/modifications/flow/removeTypeDuplicates.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/builders/flow/createFlowUnionType.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/modifications/typescript/removeTypeDuplicates.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/builders/typescript/createTSUnionType.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/builders/productions.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/clone/cloneNode.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/clone/clone.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/clone/cloneDeep.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/clone/cloneDeepWithoutLoc.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/clone/cloneWithoutLoc.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/comments/addComments.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/comments/addComment.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/utils/inherit.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/comments/inheritInnerComments.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/comments/inheritLeadingComments.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/comments/inheritTrailingComments.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/comments/inheritsComments.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/comments/removeComments.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/constants/generated/index.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/converters/toBlock.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/converters/ensureBlock.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/converters/toIdentifier.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/converters/toBindingIdentifierName.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/converters/toComputedKey.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/converters/toExpression.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/traverse/traverseFast.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/modifications/removeProperties.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/modifications/removePropertiesDeep.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/converters/toKeyAlias.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/converters/toStatement.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/converters/valueToNode.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/modifications/appendToMemberExpression.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/modifications/inherits.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/modifications/prependToMemberExpression.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/retrievers/getAssignmentIdentifiers.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/retrievers/getBindingIdentifiers.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/retrievers/getOuterBindingIdentifiers.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/retrievers/getFunctionName.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/traverse/traverse.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/validators/isBinding.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/validators/isLet.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/validators/isBlockScoped.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/validators/isImmutable.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/validators/isNodesEquivalent.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/validators/isReferenced.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/validators/isScope.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/validators/isSpecifierDefault.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/validators/isValidES3Identifier.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/validators/isVar.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/converters/gatherSequenceExpressions.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/converters/toSequenceExpression.ts","../node_modules/.pnpm/@babel+types@7.28.6/node_modules/@babel/types/src/index.ts","../src/cli/scanner/index.ts"],"names":["shallowEqual","actual","expected","keys","Object","key","warnings","Set","deprecationWarning","oldName","newName","prefix","cacheKey","has","add","internal","trace","captureShortStackTrace","console","warn","skip","length","stackTraceLimit","prepareStackTrace","Error","stackTrace","err","stack","shortStackTrace","slice","test","getFileName","map","frame","join","_shallowEqual","require","_deprecationWarning","isArrayExpression","node","opts","type","isAssignmentExpression","isBinaryExpression","isInterpreterDirective","isDirective","isDirectiveLiteral","isBlockStatement","isBreakStatement","isCallExpression","isCatchClause","isConditionalExpression","isContinueStatement","isDebuggerStatement","isDoWhileStatement","isEmptyStatement","isExpressionStatement","isFile","isForInStatement","isForStatement","isFunctionDeclaration","isFunctionExpression","isIdentifier","isIfStatement","isLabeledStatement","isStringLiteral","isNumericLiteral","isNullLiteral","isBooleanLiteral","isRegExpLiteral","isLogicalExpression","isMemberExpression","isNewExpression","isProgram","isObjectExpression","isObjectMethod","isObjectProperty","isRestElement","isReturnStatement","isSequenceExpression","isParenthesizedExpression","isSwitchCase","isSwitchStatement","isThisExpression","isThrowStatement","isTryStatement","isUnaryExpression","isUpdateExpression","isVariableDeclaration","isVariableDeclarator","isWhileStatement","isWithStatement","isAssignmentPattern","isArrayPattern","isArrowFunctionExpression","isClassBody","isClassExpression","isClassDeclaration","isExportAllDeclaration","isExportDefaultDeclaration","isExportNamedDeclaration","isExportSpecifier","isForOfStatement","isImportDeclaration","isImportDefaultSpecifier","isImportNamespaceSpecifier","isImportSpecifier","isImportExpression","isMetaProperty","isClassMethod","isObjectPattern","isSpreadElement","isSuper","isTaggedTemplateExpression","isTemplateElement","isTemplateLiteral","isYieldExpression","isAwaitExpression","isImport","isBigIntLiteral","isExportNamespaceSpecifier","isOptionalMemberExpression","isOptionalCallExpression","isClassProperty","isClassAccessorProperty","isClassPrivateProperty","isClassPrivateMethod","isPrivateName","isStaticBlock","isImportAttribute","isAnyTypeAnnotation","isArrayTypeAnnotation","isBooleanTypeAnnotation","isBooleanLiteralTypeAnnotation","isNullLiteralTypeAnnotation","isClassImplements","isDeclareClass","isDeclareFunction","isDeclareInterface","isDeclareModule","isDeclareModuleExports","isDeclareTypeAlias","isDeclareOpaqueType","isDeclareVariable","isDeclareExportDeclaration","isDeclareExportAllDeclaration","isDeclaredPredicate","isExistsTypeAnnotation","isFunctionTypeAnnotation","isFunctionTypeParam","isGenericTypeAnnotation","isInferredPredicate","isInterfaceExtends","isInterfaceDeclaration","isInterfaceTypeAnnotation","isIntersectionTypeAnnotation","isMixedTypeAnnotation","isEmptyTypeAnnotation","isNullableTypeAnnotation","isNumberLiteralTypeAnnotation","isNumberTypeAnnotation","isObjectTypeAnnotation","isObjectTypeInternalSlot","isObjectTypeCallProperty","isObjectTypeIndexer","isObjectTypeProperty","isObjectTypeSpreadProperty","isOpaqueType","isQualifiedTypeIdentifier","isStringLiteralTypeAnnotation","isStringTypeAnnotation","isSymbolTypeAnnotation","isThisTypeAnnotation","isTupleTypeAnnotation","isTypeofTypeAnnotation","isTypeAlias","isTypeAnnotation","isTypeCastExpression","isTypeParameter","isTypeParameterDeclaration","isTypeParameterInstantiation","isUnionTypeAnnotation","isVariance","isVoidTypeAnnotation","isEnumDeclaration","isEnumBooleanBody","isEnumNumberBody","isEnumStringBody","isEnumSymbolBody","isEnumBooleanMember","isEnumNumberMember","isEnumStringMember","isEnumDefaultedMember","isIndexedAccessType","isOptionalIndexedAccessType","isJSXAttribute","isJSXClosingElement","isJSXElement","isJSXEmptyExpression","isJSXExpressionContainer","isJSXSpreadChild","isJSXIdentifier","isJSXMemberExpression","isJSXNamespacedName","isJSXOpeningElement","isJSXSpreadAttribute","isJSXText","isJSXFragment","isJSXOpeningFragment","isJSXClosingFragment","isNoop","isPlaceholder","isV8IntrinsicIdentifier","isArgumentPlaceholder","isBindExpression","isDecorator","isDoExpression","isExportDefaultSpecifier","isRecordExpression","isTupleExpression","isDecimalLiteral","isModuleExpression","isTopicReference","isPipelineTopicExpression","isPipelineBareFunction","isPipelinePrimaryTopicReference","isVoidPattern","isTSParameterProperty","isTSDeclareFunction","isTSDeclareMethod","isTSQualifiedName","isTSCallSignatureDeclaration","isTSConstructSignatureDeclaration","isTSPropertySignature","isTSMethodSignature","isTSIndexSignature","isTSAnyKeyword","isTSBooleanKeyword","isTSBigIntKeyword","isTSIntrinsicKeyword","isTSNeverKeyword","isTSNullKeyword","isTSNumberKeyword","isTSObjectKeyword","isTSStringKeyword","isTSSymbolKeyword","isTSUndefinedKeyword","isTSUnknownKeyword","isTSVoidKeyword","isTSThisType","isTSFunctionType","isTSConstructorType","isTSTypeReference","isTSTypePredicate","isTSTypeQuery","isTSTypeLiteral","isTSArrayType","isTSTupleType","isTSOptionalType","isTSRestType","isTSNamedTupleMember","isTSUnionType","isTSIntersectionType","isTSConditionalType","isTSInferType","isTSParenthesizedType","isTSTypeOperator","isTSIndexedAccessType","isTSMappedType","isTSTemplateLiteralType","isTSLiteralType","isTSExpressionWithTypeArguments","isTSInterfaceDeclaration","isTSInterfaceBody","isTSTypeAliasDeclaration","isTSInstantiationExpression","isTSAsExpression","isTSSatisfiesExpression","isTSTypeAssertion","isTSEnumBody","isTSEnumDeclaration","isTSEnumMember","isTSModuleDeclaration","isTSModuleBlock","isTSImportType","isTSImportEqualsDeclaration","isTSExternalModuleReference","isTSNonNullExpression","isTSExportAssignment","isTSNamespaceExportDeclaration","isTSTypeAnnotation","isTSTypeParameterInstantiation","isTSTypeParameterDeclaration","isTSTypeParameter","isStandardized","expectedNode","isExpression","isBinary","isScopable","isBlockParent","isBlock","isStatement","isTerminatorless","isCompletionStatement","isConditional","isLoop","isWhile","isExpressionWrapper","isFor","isForXStatement","isFunction","isFunctionParent","isPureish","isDeclaration","isFunctionParameter","isPatternLike","isLVal","isTSEntityName","isLiteral","isImmutable","isUserWhitespacable","isMethod","isObjectMember","isProperty","isUnaryLike","isPattern","isClass","isImportOrExportDeclaration","isExportDeclaration","isModuleSpecifier","isAccessor","isPrivate","isFlow","isFlowType","isFlowBaseAnnotation","isFlowDeclaration","isFlowPredicate","isEnumBody","isEnumMember","isJSX","isMiscellaneous","isTypeScript","isTSTypeElement","isTSType","isTSBaseType","isNumberLiteral","isRegexLiteral","isRestProperty","isSpreadProperty","isModuleDeclaration","_index","isMemberExpressionLike","matchesPattern","member","match","allowPartial","parts","Array","isArray","split","nodes","_object","object","meta","push","property","i","j","value","name","id","_matchesPattern","buildMatchMemberExpression","_buildMatchMemberExpression","isReactComponent","exports","default","isCompatTag","tagName","isType","nodeType","targetType","ALIAS_KEYS","aliases","FLIPPED_ALIAS_KEYS","includes","isPlaceholderType","placeholderType","PLACEHOLDERS_ALIAS","_isType","_isPlaceholderType","is","matches","undefined","nonASCIIidentifierStartChars","nonASCIIidentifierChars","nonASCIIidentifierStart","RegExp","nonASCIIidentifier","astralIdentifierStartCodes","astralIdentifierCodes","isInAstralSet","code","set","pos","isIdentifierStart","String","fromCharCode","isIdentifierChar","isIdentifierName","isFirst","cp","charCodeAt","trail","reservedWords","keyword","strict","strictBind","keywords","reservedWordsStrictSet","reservedWordsStrictBindSet","isReservedWord","word","inModule","isStrictReservedWord","isStrictBindOnlyReservedWord","isStrictBindReservedWord","isKeyword","_identifier","_keyword","_helperValidatorIdentifier","isValidIdentifier","reserved","isDigit","forbiddenNumericSeparatorSiblings","decBinOct","hex","isAllowedNumericSeparatorSibling","bin","ch","oct","dec","readStringContents","input","lineStart","curLine","errors","initialPos","initialLineStart","initialCurLine","out","firstInvalidLoc","chunkStart","unterminated","isStringEnd","res","readEscapedChar","str","containsInvalid","inTemplate","throwOnInvalid","readHexChar","readCodePoint","fromCodePoint","strictNumericEscape","startPos","exec","octalStr","octal","parseInt","next","len","forceLen","n","readInt","invalidEscapeSequence","radix","allowNumSeparator","bailOnError","start","forbiddenSiblings","isAllowedSibling","invalid","total","e","Infinity","val","prev","numericSeparatorInEscapeSequence","Number","isNaN","unexpectedNumericSeparator","_isDigit","invalidDigit","indexOf","invalidCodePoint","STATEMENT_OR_BLOCK_KEYS","FLATTENABLE_KEYS","FOR_INIT_KEYS","COMMENT_KEYS","LOGICAL_OPERATORS","UPDATE_OPERATORS","BOOLEAN_NUMBER_BINARY_OPERATORS","EQUALITY_BINARY_OPERATORS","COMPARISON_BINARY_OPERATORS","BOOLEAN_BINARY_OPERATORS","NUMBER_BINARY_OPERATORS","BINARY_OPERATORS","ASSIGNMENT_OPERATORS","op","BOOLEAN_UNARY_OPERATORS","NUMBER_UNARY_OPERATORS","STRING_UNARY_OPERATORS","UNARY_OPERATORS","INHERIT_KEYS","optional","force","BLOCK_SCOPED_SYMBOL","Symbol","for","NOT_LOCAL_BINDING","_is","_validate","VISITOR_KEYS","NODE_FIELDS","BUILDER_KEYS","DEPRECATED_KEYS","NODE_PARENT_VALIDATIONS","NODE_UNION_SHAPES__PRIVATE","getType","validate","validateType","typeNames","assertNodeType","validateOptional","validateOptionalType","arrayOf","elementType","chain","assertValueType","assertEach","arrayOfType","validateArrayOfType","callback","childValidator","process","env","BABEL_TYPES_8_BREAKING","validateChild","validator","subKey","toString","v","each","assertOneOf","values","TypeError","JSON","stringify","oneOf","allExpandedTypes","types","expandedTypes","valType","oneOfNodeTypes","assertNodeOrValueType","primitiveType","oneOfNodeOrValueTypes","assertShape","shape","validateField","error","message","shapeOf","assertOptionalChainStart","_current","current","callee","fns","args","fn","chainOf","validTypeOpts","validFieldKeys","store","defineAliasedType","defined","_store$opts$inherits$","inherits","additional","filter","a","unshift","defineType","fields","getOwnPropertyNames","field","def","deprecated","visitor","builder","k","deprecatedAlias","concat","forEach","alias","unionShape","_isValidIdentifier","_helperStringParser","_utils","classMethodOrPropertyUnionShapeCommon","allowPrivateName","discriminator","shapes","properties","elements","operator","assign","identifier","pattern","left","right","expression","inOp","directives","body","label","arguments","typeArguments","typeParameters","param","consequent","alternate","program","comments","tokens","init","update","functionCommon","params","generator","async","functionTypeAnnotationCommon","returnType","functionDeclarationCommon","declare","predicate","parent","patternLikeCommon","typeAnnotation","decorators","parentKey","nonComp","computed","imported","flags","normal","sourceType","interpreter","kind","shorthand","argument","listKey","index","expressions","discriminant","cases","block","handler","finalizer","declarations","withoutInit","constOrLetOrVar","usingOrAwaitUsing","parentIsForX","decl","definite","superClass","implements","mixins","abstract","importAttributes","attributes","assertions","source","exportKind","declaration","specifiers","sourced","sourceless","local","exported","lval","await","module","phase","importKind","options","classMethodOrPropertyCommon","accessibility","static","override","classMethodOrDeclareMethodCommon","access","tag","quasi","raw","cooked","templateElementCookedValidator","unterminatedCalled","tail","quasis","delegate","readonly","variance","_core","defineInterfaceishType","extends","supertype","impltype","rest","this","indexers","callProperties","internalSlots","exact","inexact","method","proto","qualification","bound","explicitType","members","hasUnknownMembers","objectType","indexType","openingElement","closingElement","children","selfClosing","namespace","openingFragment","closingFragment","PLACEHOLDERS","Declaration","Pattern","PLACEHOLDERS_FLIPPED_ALIAS","hasOwnProperty","call","_placeholders","bool","tSFunctionTypeAnnotationCommon","parameter","signatureDeclarationCommon","callConstructSignatureDeclaration","namedTypeElementCommon","parameters","tsKeywordTypes","fnOrCtrBase","typeName","parameterName","asserts","exprName","elementTypes","unionOrIntersection","checkType","extendsType","trueType","falseType","typeParameter","nameType","literal","unaryExpression","unaryOperator","TSTypeExpression","const","initializer","global","qualifier","isExport","moduleReference","in","constraint","DEPRECATED_ALIASES","ModuleDeclaration","_deprecatedAliases","TYPES","validateInternal","maybeNode","_NODE_PARENT_VALIDATI","_NODE_PARENT_VALIDATI2","utils","bigIntLiteral","defs","BigIntLiteral","arrayExpression","ArrayExpression","assignmentExpression","AssignmentExpression","binaryExpression","BinaryExpression","interpreterDirective","InterpreterDirective","directive","Directive","directiveLiteral","DirectiveLiteral","blockStatement","BlockStatement","breakStatement","BreakStatement","callExpression","_arguments","CallExpression","catchClause","CatchClause","conditionalExpression","ConditionalExpression","continueStatement","ContinueStatement","debuggerStatement","doWhileStatement","DoWhileStatement","emptyStatement","expressionStatement","ExpressionStatement","file","File","forInStatement","ForInStatement","forStatement","ForStatement","functionDeclaration","FunctionDeclaration","functionExpression","FunctionExpression","Identifier","ifStatement","IfStatement","labeledStatement","LabeledStatement","stringLiteral","StringLiteral","numericLiteral","NumericLiteral","nullLiteral","booleanLiteral","BooleanLiteral","regExpLiteral","RegExpLiteral","logicalExpression","LogicalExpression","memberExpression","MemberExpression","newExpression","NewExpression","Program","objectExpression","ObjectExpression","objectMethod","ObjectMethod","objectProperty","ObjectProperty","restElement","RestElement","returnStatement","ReturnStatement","sequenceExpression","SequenceExpression","parenthesizedExpression","ParenthesizedExpression","switchCase","SwitchCase","switchStatement","SwitchStatement","thisExpression","throwStatement","ThrowStatement","tryStatement","TryStatement","UnaryExpression","updateExpression","UpdateExpression","variableDeclaration","VariableDeclaration","variableDeclarator","VariableDeclarator","whileStatement","WhileStatement","withStatement","WithStatement","assignmentPattern","AssignmentPattern","arrayPattern","ArrayPattern","arrowFunctionExpression","ArrowFunctionExpression","classBody","ClassBody","classExpression","ClassExpression","classDeclaration","ClassDeclaration","exportAllDeclaration","ExportAllDeclaration","exportDefaultDeclaration","ExportDefaultDeclaration","exportNamedDeclaration","ExportNamedDeclaration","exportSpecifier","ExportSpecifier","forOfStatement","_await","ForOfStatement","importDeclaration","ImportDeclaration","importDefaultSpecifier","ImportDefaultSpecifier","importNamespaceSpecifier","ImportNamespaceSpecifier","importSpecifier","ImportSpecifier","importExpression","ImportExpression","metaProperty","MetaProperty","classMethod","_static","ClassMethod","objectPattern","ObjectPattern","spreadElement","SpreadElement","_super","taggedTemplateExpression","TaggedTemplateExpression","templateElement","TemplateElement","templateLiteral","TemplateLiteral","yieldExpression","YieldExpression","awaitExpression","AwaitExpression","_import","exportNamespaceSpecifier","ExportNamespaceSpecifier","optionalMemberExpression","OptionalMemberExpression","optionalCallExpression","OptionalCallExpression","classProperty","ClassProperty","classAccessorProperty","ClassAccessorProperty","classPrivateProperty","ClassPrivateProperty","classPrivateMethod","ClassPrivateMethod","privateName","PrivateName","staticBlock","StaticBlock","importAttribute","ImportAttribute","anyTypeAnnotation","arrayTypeAnnotation","ArrayTypeAnnotation","booleanTypeAnnotation","booleanLiteralTypeAnnotation","BooleanLiteralTypeAnnotation","nullLiteralTypeAnnotation","classImplements","ClassImplements","declareClass","_extends","DeclareClass","declareFunction","DeclareFunction","declareInterface","DeclareInterface","declareModule","DeclareModule","declareModuleExports","DeclareModuleExports","declareTypeAlias","DeclareTypeAlias","declareOpaqueType","DeclareOpaqueType","declareVariable","DeclareVariable","declareExportDeclaration","DeclareExportDeclaration","declareExportAllDeclaration","DeclareExportAllDeclaration","declaredPredicate","DeclaredPredicate","existsTypeAnnotation","functionTypeAnnotation","FunctionTypeAnnotation","functionTypeParam","FunctionTypeParam","genericTypeAnnotation","GenericTypeAnnotation","inferredPredicate","interfaceExtends","InterfaceExtends","interfaceDeclaration","InterfaceDeclaration","interfaceTypeAnnotation","InterfaceTypeAnnotation","intersectionTypeAnnotation","IntersectionTypeAnnotation","mixedTypeAnnotation","emptyTypeAnnotation","nullableTypeAnnotation","NullableTypeAnnotation","numberLiteralTypeAnnotation","NumberLiteralTypeAnnotation","numberTypeAnnotation","objectTypeAnnotation","ObjectTypeAnnotation","objectTypeInternalSlot","ObjectTypeInternalSlot","objectTypeCallProperty","ObjectTypeCallProperty","objectTypeIndexer","ObjectTypeIndexer","objectTypeProperty","ObjectTypeProperty","objectTypeSpreadProperty","ObjectTypeSpreadProperty","opaqueType","OpaqueType","qualifiedTypeIdentifier","QualifiedTypeIdentifier","stringLiteralTypeAnnotation","StringLiteralTypeAnnotation","stringTypeAnnotation","symbolTypeAnnotation","thisTypeAnnotation","tupleTypeAnnotation","TupleTypeAnnotation","typeofTypeAnnotation","TypeofTypeAnnotation","typeAlias","TypeAlias","TypeAnnotation","typeCastExpression","TypeCastExpression","_default","TypeParameter","typeParameterDeclaration","TypeParameterDeclaration","typeParameterInstantiation","TypeParameterInstantiation","unionTypeAnnotation","UnionTypeAnnotation","Variance","voidTypeAnnotation","enumDeclaration","EnumDeclaration","enumBooleanBody","EnumBooleanBody","enumNumberBody","EnumNumberBody","enumStringBody","EnumStringBody","enumSymbolBody","EnumSymbolBody","enumBooleanMember","EnumBooleanMember","enumNumberMember","EnumNumberMember","enumStringMember","EnumStringMember","enumDefaultedMember","EnumDefaultedMember","indexedAccessType","IndexedAccessType","optionalIndexedAccessType","OptionalIndexedAccessType","jsxAttribute","JSXAttribute","jsxClosingElement","JSXClosingElement","jsxElement","JSXElement","jsxEmptyExpression","jsxExpressionContainer","JSXExpressionContainer","jsxSpreadChild","JSXSpreadChild","jsxIdentifier","JSXIdentifier","jsxMemberExpression","JSXMemberExpression","jsxNamespacedName","JSXNamespacedName","jsxOpeningElement","JSXOpeningElement","jsxSpreadAttribute","JSXSpreadAttribute","jsxText","JSXText","jsxFragment","JSXFragment","jsxOpeningFragment","jsxClosingFragment","noop","placeholder","Placeholder","v8IntrinsicIdentifier","V8IntrinsicIdentifier","argumentPlaceholder","bindExpression","BindExpression","decorator","Decorator","doExpression","DoExpression","exportDefaultSpecifier","ExportDefaultSpecifier","recordExpression","RecordExpression","tupleExpression","TupleExpression","decimalLiteral","DecimalLiteral","moduleExpression","ModuleExpression","topicReference","pipelineTopicExpression","PipelineTopicExpression","pipelineBareFunction","PipelineBareFunction","pipelinePrimaryTopicReference","voidPattern","tsParameterProperty","TSParameterProperty","tsDeclareFunction","TSDeclareFunction","tsDeclareMethod","TSDeclareMethod","tsQualifiedName","TSQualifiedName","tsCallSignatureDeclaration","TSCallSignatureDeclaration","tsConstructSignatureDeclaration","TSConstructSignatureDeclaration","tsPropertySignature","TSPropertySignature","tsMethodSignature","TSMethodSignature","tsIndexSignature","TSIndexSignature","tsAnyKeyword","tsBooleanKeyword","tsBigIntKeyword","tsIntrinsicKeyword","tsNeverKeyword","tsNullKeyword","tsNumberKeyword","tsObjectKeyword","tsStringKeyword","tsSymbolKeyword","tsUndefinedKeyword","tsUnknownKeyword","tsVoidKeyword","tsThisType","tsFunctionType","TSFunctionType","tsConstructorType","TSConstructorType","tsTypeReference","TSTypeReference","tsTypePredicate","TSTypePredicate","tsTypeQuery","TSTypeQuery","tsTypeLiteral","TSTypeLiteral","tsArrayType","TSArrayType","tsTupleType","TSTupleType","tsOptionalType","TSOptionalType","tsRestType","TSRestType","tsNamedTupleMember","TSNamedTupleMember","tsUnionType","TSUnionType","tsIntersectionType","TSIntersectionType","tsConditionalType","TSConditionalType","tsInferType","TSInferType","tsParenthesizedType","TSParenthesizedType","tsTypeOperator","TSTypeOperator","tsIndexedAccessType","TSIndexedAccessType","tsMappedType","TSMappedType","tsTemplateLiteralType","TSTemplateLiteralType","tsLiteralType","TSLiteralType","tsExpressionWithTypeArguments","TSExpressionWithTypeArguments","tsInterfaceDeclaration","TSInterfaceDeclaration","tsInterfaceBody","TSInterfaceBody","tsTypeAliasDeclaration","TSTypeAliasDeclaration","tsInstantiationExpression","TSInstantiationExpression","tsAsExpression","TSAsExpression","tsSatisfiesExpression","TSSatisfiesExpression","tsTypeAssertion","TSTypeAssertion","tsEnumBody","TSEnumBody","tsEnumDeclaration","TSEnumDeclaration","tsEnumMember","TSEnumMember","tsModuleDeclaration","TSModuleDeclaration","tsModuleBlock","TSModuleBlock","tsImportType","TSImportType","tsImportEqualsDeclaration","TSImportEqualsDeclaration","tsExternalModuleReference","TSExternalModuleReference","tsNonNullExpression","TSNonNullExpression","tsExportAssignment","TSExportAssignment","tsNamespaceExportDeclaration","TSNamespaceExportDeclaration","tsTypeAnnotation","TSTypeAnnotation","tsTypeParameterInstantiation","TSTypeParameterInstantiation","tsTypeParameterDeclaration","TSTypeParameterDeclaration","tsTypeParameter","TSTypeParameter","NumberLiteral","RegexLiteral","RestProperty","SpreadProperty","b","lowercase","DebuggerStatement","EmptyStatement","NullLiteral","ThisExpression","Super","Import","AnyTypeAnnotation","BooleanTypeAnnotation","NullLiteralTypeAnnotation","ExistsTypeAnnotation","InferredPredicate","MixedTypeAnnotation","EmptyTypeAnnotation","NumberTypeAnnotation","StringTypeAnnotation","SymbolTypeAnnotation","ThisTypeAnnotation","VoidTypeAnnotation","JSXEmptyExpression","JSXOpeningFragment","JSXClosingFragment","Noop","ArgumentPlaceholder","TopicReference","PipelinePrimaryTopicReference","VoidPattern","TSAnyKeyword","TSBooleanKeyword","TSBigIntKeyword","TSIntrinsicKeyword","TSNeverKeyword","TSNullKeyword","TSNumberKeyword","TSObjectKeyword","TSStringKeyword","TSSymbolKeyword","TSUndefinedKeyword","TSUnknownKeyword","TSVoidKeyword","TSThisType","numberLiteral","regexLiteral","restProperty","spreadProperty","_lowercase","defineProperty","enumerable","get","_uppercase","_index2","cleanJSXElementLiteralChild","child","lines","lastNonEmptyLine","line","isFirstLine","isLastLine","isLastNonEmptyLine","trimmedLine","replace","_cleanJSXElementLiteralChild","buildChildren","isNode","_isNode","assertNode","_node$type","assert","assertArrayExpression","assertAssignmentExpression","assertBinaryExpression","assertInterpreterDirective","assertDirective","assertDirectiveLiteral","assertBlockStatement","assertBreakStatement","assertCallExpression","assertCatchClause","assertConditionalExpression","assertContinueStatement","assertDebuggerStatement","assertDoWhileStatement","assertEmptyStatement","assertExpressionStatement","assertFile","assertForInStatement","assertForStatement","assertFunctionDeclaration","assertFunctionExpression","assertIdentifier","assertIfStatement","assertLabeledStatement","assertStringLiteral","assertNumericLiteral","assertNullLiteral","assertBooleanLiteral","assertRegExpLiteral","assertLogicalExpression","assertMemberExpression","assertNewExpression","assertProgram","assertObjectExpression","assertObjectMethod","assertObjectProperty","assertRestElement","assertReturnStatement","assertSequenceExpression","assertParenthesizedExpression","assertSwitchCase","assertSwitchStatement","assertThisExpression","assertThrowStatement","assertTryStatement","assertUnaryExpression","assertUpdateExpression","assertVariableDeclaration","assertVariableDeclarator","assertWhileStatement","assertWithStatement","assertAssignmentPattern","assertArrayPattern","assertArrowFunctionExpression","assertClassBody","assertClassExpression","assertClassDeclaration","assertExportAllDeclaration","assertExportDefaultDeclaration","assertExportNamedDeclaration","assertExportSpecifier","assertForOfStatement","assertImportDeclaration","assertImportDefaultSpecifier","assertImportNamespaceSpecifier","assertImportSpecifier","assertImportExpression","assertMetaProperty","assertClassMethod","assertObjectPattern","assertSpreadElement","assertSuper","assertTaggedTemplateExpression","assertTemplateElement","assertTemplateLiteral","assertYieldExpression","assertAwaitExpression","assertImport","assertBigIntLiteral","assertExportNamespaceSpecifier","assertOptionalMemberExpression","assertOptionalCallExpression","assertClassProperty","assertClassAccessorProperty","assertClassPrivateProperty","assertClassPrivateMethod","assertPrivateName","assertStaticBlock","assertImportAttribute","assertAnyTypeAnnotation","assertArrayTypeAnnotation","assertBooleanTypeAnnotation","assertBooleanLiteralTypeAnnotation","assertNullLiteralTypeAnnotation","assertClassImplements","assertDeclareClass","assertDeclareFunction","assertDeclareInterface","assertDeclareModule","assertDeclareModuleExports","assertDeclareTypeAlias","assertDeclareOpaqueType","assertDeclareVariable","assertDeclareExportDeclaration","assertDeclareExportAllDeclaration","assertDeclaredPredicate","assertExistsTypeAnnotation","assertFunctionTypeAnnotation","assertFunctionTypeParam","assertGenericTypeAnnotation","assertInferredPredicate","assertInterfaceExtends","assertInterfaceDeclaration","assertInterfaceTypeAnnotation","assertIntersectionTypeAnnotation","assertMixedTypeAnnotation","assertEmptyTypeAnnotation","assertNullableTypeAnnotation","assertNumberLiteralTypeAnnotation","assertNumberTypeAnnotation","assertObjectTypeAnnotation","assertObjectTypeInternalSlot","assertObjectTypeCallProperty","assertObjectTypeIndexer","assertObjectTypeProperty","assertObjectTypeSpreadProperty","assertOpaqueType","assertQualifiedTypeIdentifier","assertStringLiteralTypeAnnotation","assertStringTypeAnnotation","assertSymbolTypeAnnotation","assertThisTypeAnnotation","assertTupleTypeAnnotation","assertTypeofTypeAnnotation","assertTypeAlias","assertTypeAnnotation","assertTypeCastExpression","assertTypeParameter","assertTypeParameterDeclaration","assertTypeParameterInstantiation","assertUnionTypeAnnotation","assertVariance","assertVoidTypeAnnotation","assertEnumDeclaration","assertEnumBooleanBody","assertEnumNumberBody","assertEnumStringBody","assertEnumSymbolBody","assertEnumBooleanMember","assertEnumNumberMember","assertEnumStringMember","assertEnumDefaultedMember","assertIndexedAccessType","assertOptionalIndexedAccessType","assertJSXAttribute","assertJSXClosingElement","assertJSXElement","assertJSXEmptyExpression","assertJSXExpressionContainer","assertJSXSpreadChild","assertJSXIdentifier","assertJSXMemberExpression","assertJSXNamespacedName","assertJSXOpeningElement","assertJSXSpreadAttribute","assertJSXText","assertJSXFragment","assertJSXOpeningFragment","assertJSXClosingFragment","assertNoop","assertPlaceholder","assertV8IntrinsicIdentifier","assertArgumentPlaceholder","assertBindExpression","assertDecorator","assertDoExpression","assertExportDefaultSpecifier","assertRecordExpression","assertTupleExpression","assertDecimalLiteral","assertModuleExpression","assertTopicReference","assertPipelineTopicExpression","assertPipelineBareFunction","assertPipelinePrimaryTopicReference","assertVoidPattern","assertTSParameterProperty","assertTSDeclareFunction","assertTSDeclareMethod","assertTSQualifiedName","assertTSCallSignatureDeclaration","assertTSConstructSignatureDeclaration","assertTSPropertySignature","assertTSMethodSignature","assertTSIndexSignature","assertTSAnyKeyword","assertTSBooleanKeyword","assertTSBigIntKeyword","assertTSIntrinsicKeyword","assertTSNeverKeyword","assertTSNullKeyword","assertTSNumberKeyword","assertTSObjectKeyword","assertTSStringKeyword","assertTSSymbolKeyword","assertTSUndefinedKeyword","assertTSUnknownKeyword","assertTSVoidKeyword","assertTSThisType","assertTSFunctionType","assertTSConstructorType","assertTSTypeReference","assertTSTypePredicate","assertTSTypeQuery","assertTSTypeLiteral","assertTSArrayType","assertTSTupleType","assertTSOptionalType","assertTSRestType","assertTSNamedTupleMember","assertTSUnionType","assertTSIntersectionType","assertTSConditionalType","assertTSInferType","assertTSParenthesizedType","assertTSTypeOperator","assertTSIndexedAccessType","assertTSMappedType","assertTSTemplateLiteralType","assertTSLiteralType","assertTSExpressionWithTypeArguments","assertTSInterfaceDeclaration","assertTSInterfaceBody","assertTSTypeAliasDeclaration","assertTSInstantiationExpression","assertTSAsExpression","assertTSSatisfiesExpression","assertTSTypeAssertion","assertTSEnumBody","assertTSEnumDeclaration","assertTSEnumMember","assertTSModuleDeclaration","assertTSModuleBlock","assertTSImportType","assertTSImportEqualsDeclaration","assertTSExternalModuleReference","assertTSNonNullExpression","assertTSExportAssignment","assertTSNamespaceExportDeclaration","assertTSTypeAnnotation","assertTSTypeParameterInstantiation","assertTSTypeParameterDeclaration","assertTSTypeParameter","assertStandardized","assertExpression","assertBinary","assertScopable","assertBlockParent","assertBlock","assertStatement","assertTerminatorless","assertCompletionStatement","assertConditional","assertLoop","assertWhile","assertExpressionWrapper","assertFor","assertForXStatement","assertFunction","assertFunctionParent","assertPureish","assertDeclaration","assertFunctionParameter","assertPatternLike","assertLVal","assertTSEntityName","assertLiteral","assertImmutable","assertUserWhitespacable","assertMethod","assertObjectMember","assertProperty","assertUnaryLike","assertPattern","assertClass","assertImportOrExportDeclaration","assertExportDeclaration","assertModuleSpecifier","assertAccessor","assertPrivate","assertFlow","assertFlowType","assertFlowBaseAnnotation","assertFlowDeclaration","assertFlowPredicate","assertEnumBody","assertEnumMember","assertJSX","assertMiscellaneous","assertTypeScript","assertTSTypeElement","assertTSType","assertTSBaseType","assertNumberLiteral","assertRegexLiteral","assertRestProperty","assertSpreadProperty","assertModuleDeclaration","createTypeAnnotationBasedOnTypeof","getQualifiedName","removeTypeDuplicates","nodesIn","from","generics","Map","bases","typeGroups","existing","baseType","genericName","_removeTypeDuplicates","createFlowUnionType","flattened","typeArgumentsKey","existingTypeArguments","createTSUnionType","typeAnnotations","buildUndefinedNode","hasOwn","Function","bind","prototype","cloneIfNode","obj","deep","withoutLoc","commentsCache","cloneNodeInternal","cloneIfNodeOrArray","cloneNode","newNode","maybeCloneComments","loc","leadingComments","innerComments","trailingComments","extra","comment","cache","ret","_cloneNode","clone","cloneDeep","cloneDeepWithoutLoc","cloneWithoutLoc","addComments","_addComments","addComment","content","inherit","Boolean","_inherit","inheritInnerComments","inheritLeadingComments","inheritTrailingComments","_inheritTrailingComments","_inheritLeadingComments","_inheritInnerComments","inheritsComments","removeComments","STANDARDIZED_TYPES","EXPRESSION_TYPES","BINARY_TYPES","SCOPABLE_TYPES","BLOCKPARENT_TYPES","BLOCK_TYPES","STATEMENT_TYPES","TERMINATORLESS_TYPES","COMPLETIONSTATEMENT_TYPES","CONDITIONAL_TYPES","LOOP_TYPES","WHILE_TYPES","EXPRESSIONWRAPPER_TYPES","FOR_TYPES","FORXSTATEMENT_TYPES","FUNCTION_TYPES","FUNCTIONPARENT_TYPES","PUREISH_TYPES","DECLARATION_TYPES","FUNCTIONPARAMETER_TYPES","PATTERNLIKE_TYPES","LVAL_TYPES","TSENTITYNAME_TYPES","LITERAL_TYPES","IMMUTABLE_TYPES","USERWHITESPACABLE_TYPES","METHOD_TYPES","OBJECTMEMBER_TYPES","PROPERTY_TYPES","UNARYLIKE_TYPES","PATTERN_TYPES","CLASS_TYPES","IMPORTOREXPORTDECLARATION_TYPES","EXPORTDECLARATION_TYPES","MODULESPECIFIER_TYPES","ACCESSOR_TYPES","PRIVATE_TYPES","FLOW_TYPES","FLOWTYPE_TYPES","FLOWBASEANNOTATION_TYPES","FLOWDECLARATION_TYPES","FLOWPREDICATE_TYPES","ENUMBODY_TYPES","ENUMMEMBER_TYPES","JSX_TYPES","MISCELLANEOUS_TYPES","TYPESCRIPT_TYPES","TSTYPEELEMENT_TYPES","TSTYPE_TYPES","TSBASETYPE_TYPES","MODULEDECLARATION_TYPES","toBlock","blockNodes","_toBlock","ensureBlock","result","toIdentifier","c","codePointAt","toUpperCase","_toIdentifier","toBindingIdentifierName","toComputedKey","toExpression","_skip","_stop","traverseFast","enter","subNode","stop","CLEAR_KEYS","CLEAR_KEYS_PLUS_COMMENTS","removeProperties","preserveComments","startsWith","symbols","getOwnPropertySymbols","sym","_traverseFast","_removeProperties","removePropertiesDeep","tree","_removePropertiesDeep","toKeyAlias","increment","uid","MAX_SAFE_INTEGER","toStatement","ignore","mustHaveId","newType","valueToNode","objectToString","isRegExp","isPlainObject","getPrototypeOf","isFinite","Math","abs","numerator","props","nodeKey","appendToMemberExpression","append","_inheritsComments","prependToMemberExpression","prepend","getAssignmentIdentifiers","search","ids","create","pop","getBindingIdentifiers","duplicates","outerOnly","newBindingsOnly","shift","_ids","_getBindingIdentifiers","getOuterBindingIdentifiers","getNameFromLiteralId","getObjectMemberKey","getFunctionName","originalNode","traverse","handlers","state","exit","traverseSimpleImpl","ancestors","isBinding","grandparent","isLet","_isLet","isBlockScoped","isNodesEquivalent","visitorKeys","val_a","val_b","isReferenced","isScope","isSpecifierDefault","specifier","RESERVED_WORDS_ES3_ONLY","isValidES3Identifier","isVar","_productions","gatherSequenceExpressions","declars","exprs","ensureLastUndefined","declar","bindings","_gatherSequenceExpressions","toSequenceExpression","scope","_isReactComponent","_isCompatTag","_buildChildren","_assertNode","_exportNames","_createTypeAnnotationBasedOnTypeof","_createFlowUnionType","_createTSUnionType","_clone","_cloneDeep","_cloneDeepWithoutLoc","_cloneWithoutLoc","_addComment","_removeComments","_index3","_index4","_ensureBlock","_toBindingIdentifierName","_toComputedKey","_toExpression","_toKeyAlias","_toStatement","_valueToNode","_index5","_appendToMemberExpression","_inherits","_prependToMemberExpression","_getAssignmentIdentifiers","_getOuterBindingIdentifiers","_getFunctionName","_traverse","_isBinding","_isBlockScoped","_isImmutable","_isNodesEquivalent","_isReferenced","_isScope","_isSpecifierDefault","_isValidES3Identifier","_isVar","_index6","_toSequenceExpression","react","__toESM","fs","path","parse"],"mappings":"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,EAAG,EAAA,EAAG,IAAG,CAAA,EAAE,EAAA,EAAG,CAAA,EAAE,CAAA,EAAE,GAAE,CAAA,EAAE,CAAA,EAAE,EAAA,EAAG,CAAA,EAAE,IAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,GAAE,EAAA,EAAG,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,IAAG,EAAA,EAAG,CAAA,EAAE,EAAA,EAAG,CAAA,EAAE,GAAE,EAAA,EAAG,CAAA,EAAE,CAAA,EAAE,EAAA,EAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,IAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,GAAE,EAAA,EAAG,EAAA,EAAG,EAAA,EAAG,EAAA,EAAG,IAAG,EAAA,EAAG,EAAA,EAAG,CAAA,EAAE,CAAA,EAAE,IAAG,EAAA,EAAG,EAAA,EAAG,EAAA,EAAG,CAAA,EAAE,IAAG,EAAA,EAAG,EAAA,EAAG,CAAA,EAAE,CAAA,EAAE,IAAG,CAAA,EAAE,EAAA,EAAG,CAAA,EAAE,CAAA,EAAE,GAAE,CAAA,EAAE,EAAA,EAAG,EAAA,EAAG,EAAA,EAAG,CAAA,EAAE,EAAA,EAAG,EAAA,EAAG,CAAA,EAAE,GAAE,EAAA,EAAG,EAAA,EAAG,EAAA,EAAG,EAAA,EAAG,IAAG,EAAA,EAAG,EAAA,EAAG,EAAA,EAAG,EAAA,EAAG,KAAI,EAAA,EAAG,EAAA,EAAG,EAAA,EAAG,EAAA,EAAG,IAAG,EAAA,EAAG,EAAA,EAAG,EAAA,EAAG,EAAA,EAAG,IAAG,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,CAAA,EAAE,GAAE,EAAA,EAAG,CAAA,EAAE,EAAA,EAAG,EAAA,EAAG,IAAG,CAAA,EAAE,CAAA,EAAE,EAAA,EAAG,EAAA,EAAG,EAAA,EAAG,EAAA,EAAG,EAAA,EAAG,EAAA,EAAG,IAAG,EAAA,EAAG,EAAA,EAAG,EAAA,EAAG,CAAA,EAAE,GAAE,CAAA,EAAE,EAAA,EAAG,EAAA,EAAG,EAAA,EAAG,IAAG,EAAA,EAAG,EAAA,EAAG,EAAA,EAAG,CAAA,EAAE,GAAE,CAAA,EAAE,CAAA,EAAE,EAAA,EAAG,CAAA,EAAE,GAAE,EAAA,EAAG,EAAA,EAAG,EAAA,EAAG,CAAA,EAAE,IAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,EAAA,EAAG,IAAG,CAAA,EAAE,EAAA,EAAG,EAAA,EAAG,CAAA,EAAE,EAAA,EAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAA,EAAE,CAAA,EAAE,EAAA,EAAG,CAAA,EAAE,GAAE,CAAA,EAAE,EAAA,EAAG,EAAA,EAAG,CAAA,EAAE,GAAE,CAAA,EAAE,CAAA,EAAE,EAAA,EAAG,CAAA,EAAE,GAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAA,EAAE,EAAA,EAAG,CAAA,EAAE,EAAA,EAAG,GAAE,EAAA,EAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAA,EAAE,CAAA,EAAE,EAAA,EAAG,CAAA,EAAE,CAAA,EAAE,EAAA,EAAG,CAAA,EAAE,CAAA,EAAE,GAAE,EAAA,EAAG,EAAA,EAAG,EAAA,EAAG,CAAA,EAAE,IAAG,CAAA,EAAE,EAAA,EAAG,EAAA,EAAG,EAAA,EAAG,GAAE,CAAA,EAAE,CAAA,EAAE,GAAA,EAAI,EAAA,EAAG,IAAG,CAAA,EAAE,EAAA,EAAG,EAAA,EAAG,EAAA,EAAG,GAAE,EAAA,EAAG,EAAA,EAAG,EAAA,EAAG,CAAA,EAAE,IAAG,EAAA,EAAG,EAAA,EAAG,CAAA,EAAE,GAAA,EAAI,IAAG,GAAA,EAAI,EAAA,EAAG,EAAA,EAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAA,EAAE,CAAA,EAAE,EAAA,EAAG,EAAA,EAAG,GAAE,CAAA,EAAE,CAAA,EAAE,EAAA,EAAG,CAAA,EAAE,GAAE,EAAA,EAAG,EAAA,EAAG,CAAA,EAAE,CAAA,EAAE,GAAE,EAAA,EAAG,CAAA,EAAE,EAAA,EAAG,EAAA,EAAG,GAAE,CAAA,EAAE,EAAA,EAAG,CAAA,EAAE,EAAA,EAAG,IAAG,EAAA,EAAG,CAAA,EAAE,EAAA,EAAG,EAAA,EAAG,KAAI,EAAA,EAAG,EAAA,EAAG,CAAA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,CAAA,EAAE,CAAA,EAAE,GAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,EAAA,EAAG,GAAE,EAAA,EAAG,CAAA,EAAE,GAAE,CAAA,EAAE,CAAA,EAAE,GAAE,EAAA,EAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAA,EAAE,CAAA,EAAE,EAAA,EAAG,CAAA,EAAE,IAAG,EAAA,EAAG,EAAA,EAAG,GAAE,CAAA,EAAE,CAAA,EAAE,IAAG,EAAA,EAAG,EAAA,EAAG,CAAA,EAAE,GAAA,EAAI,GAAE,CAAA,EAAE,CAAA,EAAE,EAAA,EAAG,CAAA,EAAE,IAAG,EAAA,EAAG,EAAA,EAAG,CAAA,EAAE,EAAA,EAAG,IAAG,CAAA,EAAE,CAAA,EAAE,GAAE,EAAA,EAAG,EAAA,EAAG,IAAG,CAAA,EAAE,CAAA,EAAE,GAAA,EAAI,EAAA,EAAG,KAAI,CAAA,EAAE,EAAA,EAAG,CAAA,EAAE,CAAA,EAAE,GAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAA,EAAE,EAAA,EAAG,GAAE,GAAA,EAAI,CAAA,EAAE,GAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,EAAA,EAAG,GAAE,EAAA,EAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAA,EAAE,EAAA,EAAG,EAAA,EAAG,EAAA,EAAG,IAAG,GAAA,EAAI,CAAA,EAAE,KAAI,CAAA,EAAE,EAAA,EAAG,GAAE,CAAA,EAAE,CAAA,EAAE,EAAA,EAAG,CAAA,EAAE,IAAG,EAAA,EAAG,CAAA,EAAE,EAAA,EAAG,GAAA,EAAI,GAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAA,EAAE,CAAA,EAAE,IAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAA,EAAE,CAAA,EAAE,EAAA,EAAG,CAAA,EAAE,KAAI,CAAA,EAAE,EAAA,EAAG,CAAA,EAAE,CAAA,EAAE,GAAE,EAAA,EAAG,CAAA,EAAE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","file":"scanner-NT6YG4TD.js","sourcesContent":["export default function shallowEqual<T extends object>(\n actual: object,\n expected: T,\n): actual is T {\n const keys = Object.keys(expected) as (keyof T)[];\n\n for (const key of keys) {\n if (\n // @ts-expect-error maybe we should check whether key exists first\n actual[key] !== expected[key]\n ) {\n return false;\n }\n }\n\n return true;\n}\n","const warnings = new Set();\n\nexport default function deprecationWarning(\n oldName: string,\n newName: string,\n prefix: string = \"\",\n cacheKey: string = oldName,\n) {\n if (warnings.has(cacheKey)) return;\n warnings.add(cacheKey);\n\n const { internal, trace } = captureShortStackTrace(1, 2);\n if (internal) {\n // If usage comes from an internal package, there is no point in warning because\n // 1. The new version of the package will already use the new API\n // 2. When the deprecation will become an error (in a future major version), users\n // will have to update every package anyway.\n return;\n }\n console.warn(\n `${prefix}\\`${oldName}\\` has been deprecated, please migrate to \\`${newName}\\`\\n${trace}`,\n );\n}\n\nfunction captureShortStackTrace(skip: number, length: number) {\n const { stackTraceLimit, prepareStackTrace } = Error;\n let stackTrace: NodeJS.CallSite[];\n // We add 1 to also take into account this function.\n Error.stackTraceLimit = 1 + skip + length;\n Error.prepareStackTrace = function (err, stack) {\n stackTrace = stack;\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n new Error().stack;\n Error.stackTraceLimit = stackTraceLimit;\n Error.prepareStackTrace = prepareStackTrace;\n\n if (!stackTrace) return { internal: false, trace: \"\" };\n\n const shortStackTrace = stackTrace.slice(1 + skip, 1 + skip + length);\n return {\n internal: /[\\\\/]@babel[\\\\/]/.test(shortStackTrace[1].getFileName()),\n trace: shortStackTrace.map(frame => ` at ${frame}`).join(\"\\n\"),\n };\n}\n","/*\n * This file is auto-generated! Do not modify it directly.\n * To re-generate run 'make build'\n */\n\n/* eslint-disable no-fallthrough */\n\nimport shallowEqual from \"../../utils/shallowEqual.ts\";\nimport type * as t from \"../../index.ts\";\nimport deprecationWarning from \"../../utils/deprecationWarning.ts\";\n\ntype Options<Obj> = Partial<{\n [Prop in Exclude<keyof Obj, \"type\">]: Obj[Prop] extends t.Node\n ? t.Node\n : Obj[Prop] extends t.Node[]\n ? t.Node[]\n : Obj[Prop];\n}>;\n\nexport function isArrayExpression(\n node: t.Node | null | undefined,\n): node is t.ArrayExpression;\nexport function isArrayExpression<Opts extends Options<t.ArrayExpression>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ArrayExpression & Opts;\nexport function isArrayExpression<Opts extends Options<t.ArrayExpression>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"ArrayExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isAssignmentExpression(\n node: t.Node | null | undefined,\n): node is t.AssignmentExpression;\nexport function isAssignmentExpression<\n Opts extends Options<t.AssignmentExpression>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.AssignmentExpression & Opts;\nexport function isAssignmentExpression<\n Opts extends Options<t.AssignmentExpression>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"AssignmentExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isBinaryExpression(\n node: t.Node | null | undefined,\n): node is t.BinaryExpression;\nexport function isBinaryExpression<Opts extends Options<t.BinaryExpression>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.BinaryExpression & Opts;\nexport function isBinaryExpression<Opts extends Options<t.BinaryExpression>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"BinaryExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isInterpreterDirective(\n node: t.Node | null | undefined,\n): node is t.InterpreterDirective;\nexport function isInterpreterDirective<\n Opts extends Options<t.InterpreterDirective>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.InterpreterDirective & Opts;\nexport function isInterpreterDirective<\n Opts extends Options<t.InterpreterDirective>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"InterpreterDirective\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDirective(\n node: t.Node | null | undefined,\n): node is t.Directive;\nexport function isDirective<Opts extends Options<t.Directive>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Directive & Opts;\nexport function isDirective<Opts extends Options<t.Directive>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"Directive\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDirectiveLiteral(\n node: t.Node | null | undefined,\n): node is t.DirectiveLiteral;\nexport function isDirectiveLiteral<Opts extends Options<t.DirectiveLiteral>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.DirectiveLiteral & Opts;\nexport function isDirectiveLiteral<Opts extends Options<t.DirectiveLiteral>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"DirectiveLiteral\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isBlockStatement(\n node: t.Node | null | undefined,\n): node is t.BlockStatement;\nexport function isBlockStatement<Opts extends Options<t.BlockStatement>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.BlockStatement & Opts;\nexport function isBlockStatement<Opts extends Options<t.BlockStatement>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"BlockStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isBreakStatement(\n node: t.Node | null | undefined,\n): node is t.BreakStatement;\nexport function isBreakStatement<Opts extends Options<t.BreakStatement>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.BreakStatement & Opts;\nexport function isBreakStatement<Opts extends Options<t.BreakStatement>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"BreakStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isCallExpression(\n node: t.Node | null | undefined,\n): node is t.CallExpression;\nexport function isCallExpression<Opts extends Options<t.CallExpression>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.CallExpression & Opts;\nexport function isCallExpression<Opts extends Options<t.CallExpression>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"CallExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isCatchClause(\n node: t.Node | null | undefined,\n): node is t.CatchClause;\nexport function isCatchClause<Opts extends Options<t.CatchClause>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.CatchClause & Opts;\nexport function isCatchClause<Opts extends Options<t.CatchClause>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"CatchClause\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isConditionalExpression(\n node: t.Node | null | undefined,\n): node is t.ConditionalExpression;\nexport function isConditionalExpression<\n Opts extends Options<t.ConditionalExpression>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ConditionalExpression & Opts;\nexport function isConditionalExpression<\n Opts extends Options<t.ConditionalExpression>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"ConditionalExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isContinueStatement(\n node: t.Node | null | undefined,\n): node is t.ContinueStatement;\nexport function isContinueStatement<Opts extends Options<t.ContinueStatement>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ContinueStatement & Opts;\nexport function isContinueStatement<Opts extends Options<t.ContinueStatement>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"ContinueStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDebuggerStatement(\n node: t.Node | null | undefined,\n): node is t.DebuggerStatement;\nexport function isDebuggerStatement<Opts extends Options<t.DebuggerStatement>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.DebuggerStatement & Opts;\nexport function isDebuggerStatement<Opts extends Options<t.DebuggerStatement>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"DebuggerStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDoWhileStatement(\n node: t.Node | null | undefined,\n): node is t.DoWhileStatement;\nexport function isDoWhileStatement<Opts extends Options<t.DoWhileStatement>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.DoWhileStatement & Opts;\nexport function isDoWhileStatement<Opts extends Options<t.DoWhileStatement>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"DoWhileStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isEmptyStatement(\n node: t.Node | null | undefined,\n): node is t.EmptyStatement;\nexport function isEmptyStatement<Opts extends Options<t.EmptyStatement>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.EmptyStatement & Opts;\nexport function isEmptyStatement<Opts extends Options<t.EmptyStatement>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"EmptyStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isExpressionStatement(\n node: t.Node | null | undefined,\n): node is t.ExpressionStatement;\nexport function isExpressionStatement<\n Opts extends Options<t.ExpressionStatement>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ExpressionStatement & Opts;\nexport function isExpressionStatement<\n Opts extends Options<t.ExpressionStatement>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"ExpressionStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isFile(node: t.Node | null | undefined): node is t.File;\nexport function isFile<Opts extends Options<t.File>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.File & Opts;\nexport function isFile<Opts extends Options<t.File>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"File\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isForInStatement(\n node: t.Node | null | undefined,\n): node is t.ForInStatement;\nexport function isForInStatement<Opts extends Options<t.ForInStatement>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ForInStatement & Opts;\nexport function isForInStatement<Opts extends Options<t.ForInStatement>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"ForInStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isForStatement(\n node: t.Node | null | undefined,\n): node is t.ForStatement;\nexport function isForStatement<Opts extends Options<t.ForStatement>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ForStatement & Opts;\nexport function isForStatement<Opts extends Options<t.ForStatement>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"ForStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isFunctionDeclaration(\n node: t.Node | null | undefined,\n): node is t.FunctionDeclaration;\nexport function isFunctionDeclaration<\n Opts extends Options<t.FunctionDeclaration>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.FunctionDeclaration & Opts;\nexport function isFunctionDeclaration<\n Opts extends Options<t.FunctionDeclaration>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"FunctionDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isFunctionExpression(\n node: t.Node | null | undefined,\n): node is t.FunctionExpression;\nexport function isFunctionExpression<\n Opts extends Options<t.FunctionExpression>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.FunctionExpression & Opts;\nexport function isFunctionExpression<\n Opts extends Options<t.FunctionExpression>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"FunctionExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isIdentifier(\n node: t.Node | null | undefined,\n): node is t.Identifier;\nexport function isIdentifier<Opts extends Options<t.Identifier>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Identifier & Opts;\nexport function isIdentifier<Opts extends Options<t.Identifier>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"Identifier\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isIfStatement(\n node: t.Node | null | undefined,\n): node is t.IfStatement;\nexport function isIfStatement<Opts extends Options<t.IfStatement>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.IfStatement & Opts;\nexport function isIfStatement<Opts extends Options<t.IfStatement>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"IfStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isLabeledStatement(\n node: t.Node | null | undefined,\n): node is t.LabeledStatement;\nexport function isLabeledStatement<Opts extends Options<t.LabeledStatement>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.LabeledStatement & Opts;\nexport function isLabeledStatement<Opts extends Options<t.LabeledStatement>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"LabeledStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isStringLiteral(\n node: t.Node | null | undefined,\n): node is t.StringLiteral;\nexport function isStringLiteral<Opts extends Options<t.StringLiteral>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.StringLiteral & Opts;\nexport function isStringLiteral<Opts extends Options<t.StringLiteral>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"StringLiteral\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isNumericLiteral(\n node: t.Node | null | undefined,\n): node is t.NumericLiteral;\nexport function isNumericLiteral<Opts extends Options<t.NumericLiteral>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.NumericLiteral & Opts;\nexport function isNumericLiteral<Opts extends Options<t.NumericLiteral>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"NumericLiteral\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isNullLiteral(\n node: t.Node | null | undefined,\n): node is t.NullLiteral;\nexport function isNullLiteral<Opts extends Options<t.NullLiteral>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.NullLiteral & Opts;\nexport function isNullLiteral<Opts extends Options<t.NullLiteral>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"NullLiteral\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isBooleanLiteral(\n node: t.Node | null | undefined,\n): node is t.BooleanLiteral;\nexport function isBooleanLiteral<Opts extends Options<t.BooleanLiteral>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.BooleanLiteral & Opts;\nexport function isBooleanLiteral<Opts extends Options<t.BooleanLiteral>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"BooleanLiteral\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isRegExpLiteral(\n node: t.Node | null | undefined,\n): node is t.RegExpLiteral;\nexport function isRegExpLiteral<Opts extends Options<t.RegExpLiteral>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.RegExpLiteral & Opts;\nexport function isRegExpLiteral<Opts extends Options<t.RegExpLiteral>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"RegExpLiteral\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isLogicalExpression(\n node: t.Node | null | undefined,\n): node is t.LogicalExpression;\nexport function isLogicalExpression<Opts extends Options<t.LogicalExpression>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.LogicalExpression & Opts;\nexport function isLogicalExpression<Opts extends Options<t.LogicalExpression>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"LogicalExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isMemberExpression(\n node: t.Node | null | undefined,\n): node is t.MemberExpression;\nexport function isMemberExpression<Opts extends Options<t.MemberExpression>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.MemberExpression & Opts;\nexport function isMemberExpression<Opts extends Options<t.MemberExpression>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"MemberExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isNewExpression(\n node: t.Node | null | undefined,\n): node is t.NewExpression;\nexport function isNewExpression<Opts extends Options<t.NewExpression>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.NewExpression & Opts;\nexport function isNewExpression<Opts extends Options<t.NewExpression>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"NewExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isProgram(node: t.Node | null | undefined): node is t.Program;\nexport function isProgram<Opts extends Options<t.Program>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Program & Opts;\nexport function isProgram<Opts extends Options<t.Program>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"Program\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isObjectExpression(\n node: t.Node | null | undefined,\n): node is t.ObjectExpression;\nexport function isObjectExpression<Opts extends Options<t.ObjectExpression>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ObjectExpression & Opts;\nexport function isObjectExpression<Opts extends Options<t.ObjectExpression>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"ObjectExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isObjectMethod(\n node: t.Node | null | undefined,\n): node is t.ObjectMethod;\nexport function isObjectMethod<Opts extends Options<t.ObjectMethod>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ObjectMethod & Opts;\nexport function isObjectMethod<Opts extends Options<t.ObjectMethod>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"ObjectMethod\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isObjectProperty(\n node: t.Node | null | undefined,\n): node is t.ObjectProperty;\nexport function isObjectProperty<Opts extends Options<t.ObjectProperty>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ObjectProperty & Opts;\nexport function isObjectProperty<Opts extends Options<t.ObjectProperty>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"ObjectProperty\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isRestElement(\n node: t.Node | null | undefined,\n): node is t.RestElement;\nexport function isRestElement<Opts extends Options<t.RestElement>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.RestElement & Opts;\nexport function isRestElement<Opts extends Options<t.RestElement>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"RestElement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isReturnStatement(\n node: t.Node | null | undefined,\n): node is t.ReturnStatement;\nexport function isReturnStatement<Opts extends Options<t.ReturnStatement>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ReturnStatement & Opts;\nexport function isReturnStatement<Opts extends Options<t.ReturnStatement>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"ReturnStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isSequenceExpression(\n node: t.Node | null | undefined,\n): node is t.SequenceExpression;\nexport function isSequenceExpression<\n Opts extends Options<t.SequenceExpression>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.SequenceExpression & Opts;\nexport function isSequenceExpression<\n Opts extends Options<t.SequenceExpression>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"SequenceExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isParenthesizedExpression(\n node: t.Node | null | undefined,\n): node is t.ParenthesizedExpression;\nexport function isParenthesizedExpression<\n Opts extends Options<t.ParenthesizedExpression>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ParenthesizedExpression & Opts;\nexport function isParenthesizedExpression<\n Opts extends Options<t.ParenthesizedExpression>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"ParenthesizedExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isSwitchCase(\n node: t.Node | null | undefined,\n): node is t.SwitchCase;\nexport function isSwitchCase<Opts extends Options<t.SwitchCase>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.SwitchCase & Opts;\nexport function isSwitchCase<Opts extends Options<t.SwitchCase>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"SwitchCase\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isSwitchStatement(\n node: t.Node | null | undefined,\n): node is t.SwitchStatement;\nexport function isSwitchStatement<Opts extends Options<t.SwitchStatement>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.SwitchStatement & Opts;\nexport function isSwitchStatement<Opts extends Options<t.SwitchStatement>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"SwitchStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isThisExpression(\n node: t.Node | null | undefined,\n): node is t.ThisExpression;\nexport function isThisExpression<Opts extends Options<t.ThisExpression>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ThisExpression & Opts;\nexport function isThisExpression<Opts extends Options<t.ThisExpression>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"ThisExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isThrowStatement(\n node: t.Node | null | undefined,\n): node is t.ThrowStatement;\nexport function isThrowStatement<Opts extends Options<t.ThrowStatement>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ThrowStatement & Opts;\nexport function isThrowStatement<Opts extends Options<t.ThrowStatement>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"ThrowStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTryStatement(\n node: t.Node | null | undefined,\n): node is t.TryStatement;\nexport function isTryStatement<Opts extends Options<t.TryStatement>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TryStatement & Opts;\nexport function isTryStatement<Opts extends Options<t.TryStatement>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"TryStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isUnaryExpression(\n node: t.Node | null | undefined,\n): node is t.UnaryExpression;\nexport function isUnaryExpression<Opts extends Options<t.UnaryExpression>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.UnaryExpression & Opts;\nexport function isUnaryExpression<Opts extends Options<t.UnaryExpression>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"UnaryExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isUpdateExpression(\n node: t.Node | null | undefined,\n): node is t.UpdateExpression;\nexport function isUpdateExpression<Opts extends Options<t.UpdateExpression>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.UpdateExpression & Opts;\nexport function isUpdateExpression<Opts extends Options<t.UpdateExpression>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"UpdateExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isVariableDeclaration(\n node: t.Node | null | undefined,\n): node is t.VariableDeclaration;\nexport function isVariableDeclaration<\n Opts extends Options<t.VariableDeclaration>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.VariableDeclaration & Opts;\nexport function isVariableDeclaration<\n Opts extends Options<t.VariableDeclaration>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"VariableDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isVariableDeclarator(\n node: t.Node | null | undefined,\n): node is t.VariableDeclarator;\nexport function isVariableDeclarator<\n Opts extends Options<t.VariableDeclarator>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.VariableDeclarator & Opts;\nexport function isVariableDeclarator<\n Opts extends Options<t.VariableDeclarator>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"VariableDeclarator\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isWhileStatement(\n node: t.Node | null | undefined,\n): node is t.WhileStatement;\nexport function isWhileStatement<Opts extends Options<t.WhileStatement>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.WhileStatement & Opts;\nexport function isWhileStatement<Opts extends Options<t.WhileStatement>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"WhileStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isWithStatement(\n node: t.Node | null | undefined,\n): node is t.WithStatement;\nexport function isWithStatement<Opts extends Options<t.WithStatement>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.WithStatement & Opts;\nexport function isWithStatement<Opts extends Options<t.WithStatement>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"WithStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isAssignmentPattern(\n node: t.Node | null | undefined,\n): node is t.AssignmentPattern;\nexport function isAssignmentPattern<Opts extends Options<t.AssignmentPattern>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.AssignmentPattern & Opts;\nexport function isAssignmentPattern<Opts extends Options<t.AssignmentPattern>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"AssignmentPattern\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isArrayPattern(\n node: t.Node | null | undefined,\n): node is t.ArrayPattern;\nexport function isArrayPattern<Opts extends Options<t.ArrayPattern>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ArrayPattern & Opts;\nexport function isArrayPattern<Opts extends Options<t.ArrayPattern>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"ArrayPattern\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isArrowFunctionExpression(\n node: t.Node | null | undefined,\n): node is t.ArrowFunctionExpression;\nexport function isArrowFunctionExpression<\n Opts extends Options<t.ArrowFunctionExpression>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ArrowFunctionExpression & Opts;\nexport function isArrowFunctionExpression<\n Opts extends Options<t.ArrowFunctionExpression>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"ArrowFunctionExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isClassBody(\n node: t.Node | null | undefined,\n): node is t.ClassBody;\nexport function isClassBody<Opts extends Options<t.ClassBody>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ClassBody & Opts;\nexport function isClassBody<Opts extends Options<t.ClassBody>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"ClassBody\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isClassExpression(\n node: t.Node | null | undefined,\n): node is t.ClassExpression;\nexport function isClassExpression<Opts extends Options<t.ClassExpression>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ClassExpression & Opts;\nexport function isClassExpression<Opts extends Options<t.ClassExpression>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"ClassExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isClassDeclaration(\n node: t.Node | null | undefined,\n): node is t.ClassDeclaration;\nexport function isClassDeclaration<Opts extends Options<t.ClassDeclaration>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ClassDeclaration & Opts;\nexport function isClassDeclaration<Opts extends Options<t.ClassDeclaration>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"ClassDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isExportAllDeclaration(\n node: t.Node | null | undefined,\n): node is t.ExportAllDeclaration;\nexport function isExportAllDeclaration<\n Opts extends Options<t.ExportAllDeclaration>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ExportAllDeclaration & Opts;\nexport function isExportAllDeclaration<\n Opts extends Options<t.ExportAllDeclaration>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"ExportAllDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isExportDefaultDeclaration(\n node: t.Node | null | undefined,\n): node is t.ExportDefaultDeclaration;\nexport function isExportDefaultDeclaration<\n Opts extends Options<t.ExportDefaultDeclaration>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ExportDefaultDeclaration & Opts;\nexport function isExportDefaultDeclaration<\n Opts extends Options<t.ExportDefaultDeclaration>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"ExportDefaultDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isExportNamedDeclaration(\n node: t.Node | null | undefined,\n): node is t.ExportNamedDeclaration;\nexport function isExportNamedDeclaration<\n Opts extends Options<t.ExportNamedDeclaration>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ExportNamedDeclaration & Opts;\nexport function isExportNamedDeclaration<\n Opts extends Options<t.ExportNamedDeclaration>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"ExportNamedDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isExportSpecifier(\n node: t.Node | null | undefined,\n): node is t.ExportSpecifier;\nexport function isExportSpecifier<Opts extends Options<t.ExportSpecifier>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ExportSpecifier & Opts;\nexport function isExportSpecifier<Opts extends Options<t.ExportSpecifier>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"ExportSpecifier\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isForOfStatement(\n node: t.Node | null | undefined,\n): node is t.ForOfStatement;\nexport function isForOfStatement<Opts extends Options<t.ForOfStatement>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ForOfStatement & Opts;\nexport function isForOfStatement<Opts extends Options<t.ForOfStatement>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"ForOfStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isImportDeclaration(\n node: t.Node | null | undefined,\n): node is t.ImportDeclaration;\nexport function isImportDeclaration<Opts extends Options<t.ImportDeclaration>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ImportDeclaration & Opts;\nexport function isImportDeclaration<Opts extends Options<t.ImportDeclaration>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"ImportDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isImportDefaultSpecifier(\n node: t.Node | null | undefined,\n): node is t.ImportDefaultSpecifier;\nexport function isImportDefaultSpecifier<\n Opts extends Options<t.ImportDefaultSpecifier>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ImportDefaultSpecifier & Opts;\nexport function isImportDefaultSpecifier<\n Opts extends Options<t.ImportDefaultSpecifier>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"ImportDefaultSpecifier\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isImportNamespaceSpecifier(\n node: t.Node | null | undefined,\n): node is t.ImportNamespaceSpecifier;\nexport function isImportNamespaceSpecifier<\n Opts extends Options<t.ImportNamespaceSpecifier>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ImportNamespaceSpecifier & Opts;\nexport function isImportNamespaceSpecifier<\n Opts extends Options<t.ImportNamespaceSpecifier>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"ImportNamespaceSpecifier\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isImportSpecifier(\n node: t.Node | null | undefined,\n): node is t.ImportSpecifier;\nexport function isImportSpecifier<Opts extends Options<t.ImportSpecifier>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ImportSpecifier & Opts;\nexport function isImportSpecifier<Opts extends Options<t.ImportSpecifier>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"ImportSpecifier\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isImportExpression(\n node: t.Node | null | undefined,\n): node is t.ImportExpression;\nexport function isImportExpression<Opts extends Options<t.ImportExpression>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ImportExpression & Opts;\nexport function isImportExpression<Opts extends Options<t.ImportExpression>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"ImportExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isMetaProperty(\n node: t.Node | null | undefined,\n): node is t.MetaProperty;\nexport function isMetaProperty<Opts extends Options<t.MetaProperty>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.MetaProperty & Opts;\nexport function isMetaProperty<Opts extends Options<t.MetaProperty>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"MetaProperty\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isClassMethod(\n node: t.Node | null | undefined,\n): node is t.ClassMethod;\nexport function isClassMethod<Opts extends Options<t.ClassMethod>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ClassMethod & Opts;\nexport function isClassMethod<Opts extends Options<t.ClassMethod>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"ClassMethod\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isObjectPattern(\n node: t.Node | null | undefined,\n): node is t.ObjectPattern;\nexport function isObjectPattern<Opts extends Options<t.ObjectPattern>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ObjectPattern & Opts;\nexport function isObjectPattern<Opts extends Options<t.ObjectPattern>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"ObjectPattern\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isSpreadElement(\n node: t.Node | null | undefined,\n): node is t.SpreadElement;\nexport function isSpreadElement<Opts extends Options<t.SpreadElement>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.SpreadElement & Opts;\nexport function isSpreadElement<Opts extends Options<t.SpreadElement>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"SpreadElement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isSuper(node: t.Node | null | undefined): node is t.Super;\nexport function isSuper<Opts extends Options<t.Super>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Super & Opts;\nexport function isSuper<Opts extends Options<t.Super>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"Super\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTaggedTemplateExpression(\n node: t.Node | null | undefined,\n): node is t.TaggedTemplateExpression;\nexport function isTaggedTemplateExpression<\n Opts extends Options<t.TaggedTemplateExpression>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TaggedTemplateExpression & Opts;\nexport function isTaggedTemplateExpression<\n Opts extends Options<t.TaggedTemplateExpression>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"TaggedTemplateExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTemplateElement(\n node: t.Node | null | undefined,\n): node is t.TemplateElement;\nexport function isTemplateElement<Opts extends Options<t.TemplateElement>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TemplateElement & Opts;\nexport function isTemplateElement<Opts extends Options<t.TemplateElement>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"TemplateElement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTemplateLiteral(\n node: t.Node | null | undefined,\n): node is t.TemplateLiteral;\nexport function isTemplateLiteral<Opts extends Options<t.TemplateLiteral>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TemplateLiteral & Opts;\nexport function isTemplateLiteral<Opts extends Options<t.TemplateLiteral>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"TemplateLiteral\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isYieldExpression(\n node: t.Node | null | undefined,\n): node is t.YieldExpression;\nexport function isYieldExpression<Opts extends Options<t.YieldExpression>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.YieldExpression & Opts;\nexport function isYieldExpression<Opts extends Options<t.YieldExpression>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"YieldExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isAwaitExpression(\n node: t.Node | null | undefined,\n): node is t.AwaitExpression;\nexport function isAwaitExpression<Opts extends Options<t.AwaitExpression>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.AwaitExpression & Opts;\nexport function isAwaitExpression<Opts extends Options<t.AwaitExpression>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"AwaitExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isImport(node: t.Node | null | undefined): node is t.Import;\nexport function isImport<Opts extends Options<t.Import>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Import & Opts;\nexport function isImport<Opts extends Options<t.Import>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"Import\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isBigIntLiteral(\n node: t.Node | null | undefined,\n): node is t.BigIntLiteral;\nexport function isBigIntLiteral<Opts extends Options<t.BigIntLiteral>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.BigIntLiteral & Opts;\nexport function isBigIntLiteral<Opts extends Options<t.BigIntLiteral>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"BigIntLiteral\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isExportNamespaceSpecifier(\n node: t.Node | null | undefined,\n): node is t.ExportNamespaceSpecifier;\nexport function isExportNamespaceSpecifier<\n Opts extends Options<t.ExportNamespaceSpecifier>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ExportNamespaceSpecifier & Opts;\nexport function isExportNamespaceSpecifier<\n Opts extends Options<t.ExportNamespaceSpecifier>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"ExportNamespaceSpecifier\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isOptionalMemberExpression(\n node: t.Node | null | undefined,\n): node is t.OptionalMemberExpression;\nexport function isOptionalMemberExpression<\n Opts extends Options<t.OptionalMemberExpression>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.OptionalMemberExpression & Opts;\nexport function isOptionalMemberExpression<\n Opts extends Options<t.OptionalMemberExpression>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"OptionalMemberExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isOptionalCallExpression(\n node: t.Node | null | undefined,\n): node is t.OptionalCallExpression;\nexport function isOptionalCallExpression<\n Opts extends Options<t.OptionalCallExpression>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.OptionalCallExpression & Opts;\nexport function isOptionalCallExpression<\n Opts extends Options<t.OptionalCallExpression>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"OptionalCallExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isClassProperty(\n node: t.Node | null | undefined,\n): node is t.ClassProperty;\nexport function isClassProperty<Opts extends Options<t.ClassProperty>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ClassProperty & Opts;\nexport function isClassProperty<Opts extends Options<t.ClassProperty>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"ClassProperty\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isClassAccessorProperty(\n node: t.Node | null | undefined,\n): node is t.ClassAccessorProperty;\nexport function isClassAccessorProperty<\n Opts extends Options<t.ClassAccessorProperty>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ClassAccessorProperty & Opts;\nexport function isClassAccessorProperty<\n Opts extends Options<t.ClassAccessorProperty>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"ClassAccessorProperty\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isClassPrivateProperty(\n node: t.Node | null | undefined,\n): node is t.ClassPrivateProperty;\nexport function isClassPrivateProperty<\n Opts extends Options<t.ClassPrivateProperty>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ClassPrivateProperty & Opts;\nexport function isClassPrivateProperty<\n Opts extends Options<t.ClassPrivateProperty>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"ClassPrivateProperty\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isClassPrivateMethod(\n node: t.Node | null | undefined,\n): node is t.ClassPrivateMethod;\nexport function isClassPrivateMethod<\n Opts extends Options<t.ClassPrivateMethod>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ClassPrivateMethod & Opts;\nexport function isClassPrivateMethod<\n Opts extends Options<t.ClassPrivateMethod>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"ClassPrivateMethod\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isPrivateName(\n node: t.Node | null | undefined,\n): node is t.PrivateName;\nexport function isPrivateName<Opts extends Options<t.PrivateName>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.PrivateName & Opts;\nexport function isPrivateName<Opts extends Options<t.PrivateName>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"PrivateName\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isStaticBlock(\n node: t.Node | null | undefined,\n): node is t.StaticBlock;\nexport function isStaticBlock<Opts extends Options<t.StaticBlock>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.StaticBlock & Opts;\nexport function isStaticBlock<Opts extends Options<t.StaticBlock>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"StaticBlock\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isImportAttribute(\n node: t.Node | null | undefined,\n): node is t.ImportAttribute;\nexport function isImportAttribute<Opts extends Options<t.ImportAttribute>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ImportAttribute & Opts;\nexport function isImportAttribute<Opts extends Options<t.ImportAttribute>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"ImportAttribute\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isAnyTypeAnnotation(\n node: t.Node | null | undefined,\n): node is t.AnyTypeAnnotation;\nexport function isAnyTypeAnnotation<Opts extends Options<t.AnyTypeAnnotation>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.AnyTypeAnnotation & Opts;\nexport function isAnyTypeAnnotation<Opts extends Options<t.AnyTypeAnnotation>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"AnyTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isArrayTypeAnnotation(\n node: t.Node | null | undefined,\n): node is t.ArrayTypeAnnotation;\nexport function isArrayTypeAnnotation<\n Opts extends Options<t.ArrayTypeAnnotation>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ArrayTypeAnnotation & Opts;\nexport function isArrayTypeAnnotation<\n Opts extends Options<t.ArrayTypeAnnotation>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"ArrayTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isBooleanTypeAnnotation(\n node: t.Node | null | undefined,\n): node is t.BooleanTypeAnnotation;\nexport function isBooleanTypeAnnotation<\n Opts extends Options<t.BooleanTypeAnnotation>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.BooleanTypeAnnotation & Opts;\nexport function isBooleanTypeAnnotation<\n Opts extends Options<t.BooleanTypeAnnotation>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"BooleanTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isBooleanLiteralTypeAnnotation(\n node: t.Node | null | undefined,\n): node is t.BooleanLiteralTypeAnnotation;\nexport function isBooleanLiteralTypeAnnotation<\n Opts extends Options<t.BooleanLiteralTypeAnnotation>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.BooleanLiteralTypeAnnotation & Opts;\nexport function isBooleanLiteralTypeAnnotation<\n Opts extends Options<t.BooleanLiteralTypeAnnotation>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"BooleanLiteralTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isNullLiteralTypeAnnotation(\n node: t.Node | null | undefined,\n): node is t.NullLiteralTypeAnnotation;\nexport function isNullLiteralTypeAnnotation<\n Opts extends Options<t.NullLiteralTypeAnnotation>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.NullLiteralTypeAnnotation & Opts;\nexport function isNullLiteralTypeAnnotation<\n Opts extends Options<t.NullLiteralTypeAnnotation>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"NullLiteralTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isClassImplements(\n node: t.Node | null | undefined,\n): node is t.ClassImplements;\nexport function isClassImplements<Opts extends Options<t.ClassImplements>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ClassImplements & Opts;\nexport function isClassImplements<Opts extends Options<t.ClassImplements>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"ClassImplements\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDeclareClass(\n node: t.Node | null | undefined,\n): node is t.DeclareClass;\nexport function isDeclareClass<Opts extends Options<t.DeclareClass>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.DeclareClass & Opts;\nexport function isDeclareClass<Opts extends Options<t.DeclareClass>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"DeclareClass\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDeclareFunction(\n node: t.Node | null | undefined,\n): node is t.DeclareFunction;\nexport function isDeclareFunction<Opts extends Options<t.DeclareFunction>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.DeclareFunction & Opts;\nexport function isDeclareFunction<Opts extends Options<t.DeclareFunction>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"DeclareFunction\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDeclareInterface(\n node: t.Node | null | undefined,\n): node is t.DeclareInterface;\nexport function isDeclareInterface<Opts extends Options<t.DeclareInterface>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.DeclareInterface & Opts;\nexport function isDeclareInterface<Opts extends Options<t.DeclareInterface>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"DeclareInterface\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDeclareModule(\n node: t.Node | null | undefined,\n): node is t.DeclareModule;\nexport function isDeclareModule<Opts extends Options<t.DeclareModule>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.DeclareModule & Opts;\nexport function isDeclareModule<Opts extends Options<t.DeclareModule>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"DeclareModule\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDeclareModuleExports(\n node: t.Node | null | undefined,\n): node is t.DeclareModuleExports;\nexport function isDeclareModuleExports<\n Opts extends Options<t.DeclareModuleExports>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.DeclareModuleExports & Opts;\nexport function isDeclareModuleExports<\n Opts extends Options<t.DeclareModuleExports>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"DeclareModuleExports\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDeclareTypeAlias(\n node: t.Node | null | undefined,\n): node is t.DeclareTypeAlias;\nexport function isDeclareTypeAlias<Opts extends Options<t.DeclareTypeAlias>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.DeclareTypeAlias & Opts;\nexport function isDeclareTypeAlias<Opts extends Options<t.DeclareTypeAlias>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"DeclareTypeAlias\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDeclareOpaqueType(\n node: t.Node | null | undefined,\n): node is t.DeclareOpaqueType;\nexport function isDeclareOpaqueType<Opts extends Options<t.DeclareOpaqueType>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.DeclareOpaqueType & Opts;\nexport function isDeclareOpaqueType<Opts extends Options<t.DeclareOpaqueType>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"DeclareOpaqueType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDeclareVariable(\n node: t.Node | null | undefined,\n): node is t.DeclareVariable;\nexport function isDeclareVariable<Opts extends Options<t.DeclareVariable>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.DeclareVariable & Opts;\nexport function isDeclareVariable<Opts extends Options<t.DeclareVariable>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"DeclareVariable\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDeclareExportDeclaration(\n node: t.Node | null | undefined,\n): node is t.DeclareExportDeclaration;\nexport function isDeclareExportDeclaration<\n Opts extends Options<t.DeclareExportDeclaration>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.DeclareExportDeclaration & Opts;\nexport function isDeclareExportDeclaration<\n Opts extends Options<t.DeclareExportDeclaration>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"DeclareExportDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDeclareExportAllDeclaration(\n node: t.Node | null | undefined,\n): node is t.DeclareExportAllDeclaration;\nexport function isDeclareExportAllDeclaration<\n Opts extends Options<t.DeclareExportAllDeclaration>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.DeclareExportAllDeclaration & Opts;\nexport function isDeclareExportAllDeclaration<\n Opts extends Options<t.DeclareExportAllDeclaration>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"DeclareExportAllDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDeclaredPredicate(\n node: t.Node | null | undefined,\n): node is t.DeclaredPredicate;\nexport function isDeclaredPredicate<Opts extends Options<t.DeclaredPredicate>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.DeclaredPredicate & Opts;\nexport function isDeclaredPredicate<Opts extends Options<t.DeclaredPredicate>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"DeclaredPredicate\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isExistsTypeAnnotation(\n node: t.Node | null | undefined,\n): node is t.ExistsTypeAnnotation;\nexport function isExistsTypeAnnotation<\n Opts extends Options<t.ExistsTypeAnnotation>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ExistsTypeAnnotation & Opts;\nexport function isExistsTypeAnnotation<\n Opts extends Options<t.ExistsTypeAnnotation>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"ExistsTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isFunctionTypeAnnotation(\n node: t.Node | null | undefined,\n): node is t.FunctionTypeAnnotation;\nexport function isFunctionTypeAnnotation<\n Opts extends Options<t.FunctionTypeAnnotation>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.FunctionTypeAnnotation & Opts;\nexport function isFunctionTypeAnnotation<\n Opts extends Options<t.FunctionTypeAnnotation>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"FunctionTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isFunctionTypeParam(\n node: t.Node | null | undefined,\n): node is t.FunctionTypeParam;\nexport function isFunctionTypeParam<Opts extends Options<t.FunctionTypeParam>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.FunctionTypeParam & Opts;\nexport function isFunctionTypeParam<Opts extends Options<t.FunctionTypeParam>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"FunctionTypeParam\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isGenericTypeAnnotation(\n node: t.Node | null | undefined,\n): node is t.GenericTypeAnnotation;\nexport function isGenericTypeAnnotation<\n Opts extends Options<t.GenericTypeAnnotation>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.GenericTypeAnnotation & Opts;\nexport function isGenericTypeAnnotation<\n Opts extends Options<t.GenericTypeAnnotation>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"GenericTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isInferredPredicate(\n node: t.Node | null | undefined,\n): node is t.InferredPredicate;\nexport function isInferredPredicate<Opts extends Options<t.InferredPredicate>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.InferredPredicate & Opts;\nexport function isInferredPredicate<Opts extends Options<t.InferredPredicate>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"InferredPredicate\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isInterfaceExtends(\n node: t.Node | null | undefined,\n): node is t.InterfaceExtends;\nexport function isInterfaceExtends<Opts extends Options<t.InterfaceExtends>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.InterfaceExtends & Opts;\nexport function isInterfaceExtends<Opts extends Options<t.InterfaceExtends>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"InterfaceExtends\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isInterfaceDeclaration(\n node: t.Node | null | undefined,\n): node is t.InterfaceDeclaration;\nexport function isInterfaceDeclaration<\n Opts extends Options<t.InterfaceDeclaration>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.InterfaceDeclaration & Opts;\nexport function isInterfaceDeclaration<\n Opts extends Options<t.InterfaceDeclaration>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"InterfaceDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isInterfaceTypeAnnotation(\n node: t.Node | null | undefined,\n): node is t.InterfaceTypeAnnotation;\nexport function isInterfaceTypeAnnotation<\n Opts extends Options<t.InterfaceTypeAnnotation>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.InterfaceTypeAnnotation & Opts;\nexport function isInterfaceTypeAnnotation<\n Opts extends Options<t.InterfaceTypeAnnotation>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"InterfaceTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isIntersectionTypeAnnotation(\n node: t.Node | null | undefined,\n): node is t.IntersectionTypeAnnotation;\nexport function isIntersectionTypeAnnotation<\n Opts extends Options<t.IntersectionTypeAnnotation>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.IntersectionTypeAnnotation & Opts;\nexport function isIntersectionTypeAnnotation<\n Opts extends Options<t.IntersectionTypeAnnotation>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"IntersectionTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isMixedTypeAnnotation(\n node: t.Node | null | undefined,\n): node is t.MixedTypeAnnotation;\nexport function isMixedTypeAnnotation<\n Opts extends Options<t.MixedTypeAnnotation>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.MixedTypeAnnotation & Opts;\nexport function isMixedTypeAnnotation<\n Opts extends Options<t.MixedTypeAnnotation>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"MixedTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isEmptyTypeAnnotation(\n node: t.Node | null | undefined,\n): node is t.EmptyTypeAnnotation;\nexport function isEmptyTypeAnnotation<\n Opts extends Options<t.EmptyTypeAnnotation>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.EmptyTypeAnnotation & Opts;\nexport function isEmptyTypeAnnotation<\n Opts extends Options<t.EmptyTypeAnnotation>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"EmptyTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isNullableTypeAnnotation(\n node: t.Node | null | undefined,\n): node is t.NullableTypeAnnotation;\nexport function isNullableTypeAnnotation<\n Opts extends Options<t.NullableTypeAnnotation>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.NullableTypeAnnotation & Opts;\nexport function isNullableTypeAnnotation<\n Opts extends Options<t.NullableTypeAnnotation>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"NullableTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isNumberLiteralTypeAnnotation(\n node: t.Node | null | undefined,\n): node is t.NumberLiteralTypeAnnotation;\nexport function isNumberLiteralTypeAnnotation<\n Opts extends Options<t.NumberLiteralTypeAnnotation>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.NumberLiteralTypeAnnotation & Opts;\nexport function isNumberLiteralTypeAnnotation<\n Opts extends Options<t.NumberLiteralTypeAnnotation>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"NumberLiteralTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isNumberTypeAnnotation(\n node: t.Node | null | undefined,\n): node is t.NumberTypeAnnotation;\nexport function isNumberTypeAnnotation<\n Opts extends Options<t.NumberTypeAnnotation>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.NumberTypeAnnotation & Opts;\nexport function isNumberTypeAnnotation<\n Opts extends Options<t.NumberTypeAnnotation>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"NumberTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isObjectTypeAnnotation(\n node: t.Node | null | undefined,\n): node is t.ObjectTypeAnnotation;\nexport function isObjectTypeAnnotation<\n Opts extends Options<t.ObjectTypeAnnotation>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ObjectTypeAnnotation & Opts;\nexport function isObjectTypeAnnotation<\n Opts extends Options<t.ObjectTypeAnnotation>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"ObjectTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isObjectTypeInternalSlot(\n node: t.Node | null | undefined,\n): node is t.ObjectTypeInternalSlot;\nexport function isObjectTypeInternalSlot<\n Opts extends Options<t.ObjectTypeInternalSlot>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ObjectTypeInternalSlot & Opts;\nexport function isObjectTypeInternalSlot<\n Opts extends Options<t.ObjectTypeInternalSlot>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"ObjectTypeInternalSlot\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isObjectTypeCallProperty(\n node: t.Node | null | undefined,\n): node is t.ObjectTypeCallProperty;\nexport function isObjectTypeCallProperty<\n Opts extends Options<t.ObjectTypeCallProperty>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ObjectTypeCallProperty & Opts;\nexport function isObjectTypeCallProperty<\n Opts extends Options<t.ObjectTypeCallProperty>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"ObjectTypeCallProperty\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isObjectTypeIndexer(\n node: t.Node | null | undefined,\n): node is t.ObjectTypeIndexer;\nexport function isObjectTypeIndexer<Opts extends Options<t.ObjectTypeIndexer>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ObjectTypeIndexer & Opts;\nexport function isObjectTypeIndexer<Opts extends Options<t.ObjectTypeIndexer>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"ObjectTypeIndexer\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isObjectTypeProperty(\n node: t.Node | null | undefined,\n): node is t.ObjectTypeProperty;\nexport function isObjectTypeProperty<\n Opts extends Options<t.ObjectTypeProperty>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ObjectTypeProperty & Opts;\nexport function isObjectTypeProperty<\n Opts extends Options<t.ObjectTypeProperty>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"ObjectTypeProperty\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isObjectTypeSpreadProperty(\n node: t.Node | null | undefined,\n): node is t.ObjectTypeSpreadProperty;\nexport function isObjectTypeSpreadProperty<\n Opts extends Options<t.ObjectTypeSpreadProperty>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ObjectTypeSpreadProperty & Opts;\nexport function isObjectTypeSpreadProperty<\n Opts extends Options<t.ObjectTypeSpreadProperty>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"ObjectTypeSpreadProperty\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isOpaqueType(\n node: t.Node | null | undefined,\n): node is t.OpaqueType;\nexport function isOpaqueType<Opts extends Options<t.OpaqueType>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.OpaqueType & Opts;\nexport function isOpaqueType<Opts extends Options<t.OpaqueType>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"OpaqueType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isQualifiedTypeIdentifier(\n node: t.Node | null | undefined,\n): node is t.QualifiedTypeIdentifier;\nexport function isQualifiedTypeIdentifier<\n Opts extends Options<t.QualifiedTypeIdentifier>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.QualifiedTypeIdentifier & Opts;\nexport function isQualifiedTypeIdentifier<\n Opts extends Options<t.QualifiedTypeIdentifier>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"QualifiedTypeIdentifier\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isStringLiteralTypeAnnotation(\n node: t.Node | null | undefined,\n): node is t.StringLiteralTypeAnnotation;\nexport function isStringLiteralTypeAnnotation<\n Opts extends Options<t.StringLiteralTypeAnnotation>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.StringLiteralTypeAnnotation & Opts;\nexport function isStringLiteralTypeAnnotation<\n Opts extends Options<t.StringLiteralTypeAnnotation>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"StringLiteralTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isStringTypeAnnotation(\n node: t.Node | null | undefined,\n): node is t.StringTypeAnnotation;\nexport function isStringTypeAnnotation<\n Opts extends Options<t.StringTypeAnnotation>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.StringTypeAnnotation & Opts;\nexport function isStringTypeAnnotation<\n Opts extends Options<t.StringTypeAnnotation>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"StringTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isSymbolTypeAnnotation(\n node: t.Node | null | undefined,\n): node is t.SymbolTypeAnnotation;\nexport function isSymbolTypeAnnotation<\n Opts extends Options<t.SymbolTypeAnnotation>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.SymbolTypeAnnotation & Opts;\nexport function isSymbolTypeAnnotation<\n Opts extends Options<t.SymbolTypeAnnotation>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"SymbolTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isThisTypeAnnotation(\n node: t.Node | null | undefined,\n): node is t.ThisTypeAnnotation;\nexport function isThisTypeAnnotation<\n Opts extends Options<t.ThisTypeAnnotation>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ThisTypeAnnotation & Opts;\nexport function isThisTypeAnnotation<\n Opts extends Options<t.ThisTypeAnnotation>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"ThisTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTupleTypeAnnotation(\n node: t.Node | null | undefined,\n): node is t.TupleTypeAnnotation;\nexport function isTupleTypeAnnotation<\n Opts extends Options<t.TupleTypeAnnotation>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TupleTypeAnnotation & Opts;\nexport function isTupleTypeAnnotation<\n Opts extends Options<t.TupleTypeAnnotation>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"TupleTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTypeofTypeAnnotation(\n node: t.Node | null | undefined,\n): node is t.TypeofTypeAnnotation;\nexport function isTypeofTypeAnnotation<\n Opts extends Options<t.TypeofTypeAnnotation>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TypeofTypeAnnotation & Opts;\nexport function isTypeofTypeAnnotation<\n Opts extends Options<t.TypeofTypeAnnotation>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"TypeofTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTypeAlias(\n node: t.Node | null | undefined,\n): node is t.TypeAlias;\nexport function isTypeAlias<Opts extends Options<t.TypeAlias>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TypeAlias & Opts;\nexport function isTypeAlias<Opts extends Options<t.TypeAlias>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"TypeAlias\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTypeAnnotation(\n node: t.Node | null | undefined,\n): node is t.TypeAnnotation;\nexport function isTypeAnnotation<Opts extends Options<t.TypeAnnotation>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TypeAnnotation & Opts;\nexport function isTypeAnnotation<Opts extends Options<t.TypeAnnotation>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"TypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTypeCastExpression(\n node: t.Node | null | undefined,\n): node is t.TypeCastExpression;\nexport function isTypeCastExpression<\n Opts extends Options<t.TypeCastExpression>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TypeCastExpression & Opts;\nexport function isTypeCastExpression<\n Opts extends Options<t.TypeCastExpression>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"TypeCastExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTypeParameter(\n node: t.Node | null | undefined,\n): node is t.TypeParameter;\nexport function isTypeParameter<Opts extends Options<t.TypeParameter>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TypeParameter & Opts;\nexport function isTypeParameter<Opts extends Options<t.TypeParameter>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"TypeParameter\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTypeParameterDeclaration(\n node: t.Node | null | undefined,\n): node is t.TypeParameterDeclaration;\nexport function isTypeParameterDeclaration<\n Opts extends Options<t.TypeParameterDeclaration>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TypeParameterDeclaration & Opts;\nexport function isTypeParameterDeclaration<\n Opts extends Options<t.TypeParameterDeclaration>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"TypeParameterDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTypeParameterInstantiation(\n node: t.Node | null | undefined,\n): node is t.TypeParameterInstantiation;\nexport function isTypeParameterInstantiation<\n Opts extends Options<t.TypeParameterInstantiation>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TypeParameterInstantiation & Opts;\nexport function isTypeParameterInstantiation<\n Opts extends Options<t.TypeParameterInstantiation>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"TypeParameterInstantiation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isUnionTypeAnnotation(\n node: t.Node | null | undefined,\n): node is t.UnionTypeAnnotation;\nexport function isUnionTypeAnnotation<\n Opts extends Options<t.UnionTypeAnnotation>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.UnionTypeAnnotation & Opts;\nexport function isUnionTypeAnnotation<\n Opts extends Options<t.UnionTypeAnnotation>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"UnionTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isVariance(node: t.Node | null | undefined): node is t.Variance;\nexport function isVariance<Opts extends Options<t.Variance>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Variance & Opts;\nexport function isVariance<Opts extends Options<t.Variance>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"Variance\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isVoidTypeAnnotation(\n node: t.Node | null | undefined,\n): node is t.VoidTypeAnnotation;\nexport function isVoidTypeAnnotation<\n Opts extends Options<t.VoidTypeAnnotation>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.VoidTypeAnnotation & Opts;\nexport function isVoidTypeAnnotation<\n Opts extends Options<t.VoidTypeAnnotation>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"VoidTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isEnumDeclaration(\n node: t.Node | null | undefined,\n): node is t.EnumDeclaration;\nexport function isEnumDeclaration<Opts extends Options<t.EnumDeclaration>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.EnumDeclaration & Opts;\nexport function isEnumDeclaration<Opts extends Options<t.EnumDeclaration>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"EnumDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isEnumBooleanBody(\n node: t.Node | null | undefined,\n): node is t.EnumBooleanBody;\nexport function isEnumBooleanBody<Opts extends Options<t.EnumBooleanBody>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.EnumBooleanBody & Opts;\nexport function isEnumBooleanBody<Opts extends Options<t.EnumBooleanBody>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"EnumBooleanBody\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isEnumNumberBody(\n node: t.Node | null | undefined,\n): node is t.EnumNumberBody;\nexport function isEnumNumberBody<Opts extends Options<t.EnumNumberBody>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.EnumNumberBody & Opts;\nexport function isEnumNumberBody<Opts extends Options<t.EnumNumberBody>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"EnumNumberBody\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isEnumStringBody(\n node: t.Node | null | undefined,\n): node is t.EnumStringBody;\nexport function isEnumStringBody<Opts extends Options<t.EnumStringBody>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.EnumStringBody & Opts;\nexport function isEnumStringBody<Opts extends Options<t.EnumStringBody>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"EnumStringBody\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isEnumSymbolBody(\n node: t.Node | null | undefined,\n): node is t.EnumSymbolBody;\nexport function isEnumSymbolBody<Opts extends Options<t.EnumSymbolBody>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.EnumSymbolBody & Opts;\nexport function isEnumSymbolBody<Opts extends Options<t.EnumSymbolBody>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"EnumSymbolBody\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isEnumBooleanMember(\n node: t.Node | null | undefined,\n): node is t.EnumBooleanMember;\nexport function isEnumBooleanMember<Opts extends Options<t.EnumBooleanMember>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.EnumBooleanMember & Opts;\nexport function isEnumBooleanMember<Opts extends Options<t.EnumBooleanMember>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"EnumBooleanMember\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isEnumNumberMember(\n node: t.Node | null | undefined,\n): node is t.EnumNumberMember;\nexport function isEnumNumberMember<Opts extends Options<t.EnumNumberMember>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.EnumNumberMember & Opts;\nexport function isEnumNumberMember<Opts extends Options<t.EnumNumberMember>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"EnumNumberMember\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isEnumStringMember(\n node: t.Node | null | undefined,\n): node is t.EnumStringMember;\nexport function isEnumStringMember<Opts extends Options<t.EnumStringMember>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.EnumStringMember & Opts;\nexport function isEnumStringMember<Opts extends Options<t.EnumStringMember>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"EnumStringMember\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isEnumDefaultedMember(\n node: t.Node | null | undefined,\n): node is t.EnumDefaultedMember;\nexport function isEnumDefaultedMember<\n Opts extends Options<t.EnumDefaultedMember>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.EnumDefaultedMember & Opts;\nexport function isEnumDefaultedMember<\n Opts extends Options<t.EnumDefaultedMember>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"EnumDefaultedMember\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isIndexedAccessType(\n node: t.Node | null | undefined,\n): node is t.IndexedAccessType;\nexport function isIndexedAccessType<Opts extends Options<t.IndexedAccessType>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.IndexedAccessType & Opts;\nexport function isIndexedAccessType<Opts extends Options<t.IndexedAccessType>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"IndexedAccessType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isOptionalIndexedAccessType(\n node: t.Node | null | undefined,\n): node is t.OptionalIndexedAccessType;\nexport function isOptionalIndexedAccessType<\n Opts extends Options<t.OptionalIndexedAccessType>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.OptionalIndexedAccessType & Opts;\nexport function isOptionalIndexedAccessType<\n Opts extends Options<t.OptionalIndexedAccessType>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"OptionalIndexedAccessType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXAttribute(\n node: t.Node | null | undefined,\n): node is t.JSXAttribute;\nexport function isJSXAttribute<Opts extends Options<t.JSXAttribute>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.JSXAttribute & Opts;\nexport function isJSXAttribute<Opts extends Options<t.JSXAttribute>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"JSXAttribute\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXClosingElement(\n node: t.Node | null | undefined,\n): node is t.JSXClosingElement;\nexport function isJSXClosingElement<Opts extends Options<t.JSXClosingElement>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.JSXClosingElement & Opts;\nexport function isJSXClosingElement<Opts extends Options<t.JSXClosingElement>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"JSXClosingElement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXElement(\n node: t.Node | null | undefined,\n): node is t.JSXElement;\nexport function isJSXElement<Opts extends Options<t.JSXElement>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.JSXElement & Opts;\nexport function isJSXElement<Opts extends Options<t.JSXElement>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"JSXElement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXEmptyExpression(\n node: t.Node | null | undefined,\n): node is t.JSXEmptyExpression;\nexport function isJSXEmptyExpression<\n Opts extends Options<t.JSXEmptyExpression>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.JSXEmptyExpression & Opts;\nexport function isJSXEmptyExpression<\n Opts extends Options<t.JSXEmptyExpression>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"JSXEmptyExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXExpressionContainer(\n node: t.Node | null | undefined,\n): node is t.JSXExpressionContainer;\nexport function isJSXExpressionContainer<\n Opts extends Options<t.JSXExpressionContainer>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.JSXExpressionContainer & Opts;\nexport function isJSXExpressionContainer<\n Opts extends Options<t.JSXExpressionContainer>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"JSXExpressionContainer\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXSpreadChild(\n node: t.Node | null | undefined,\n): node is t.JSXSpreadChild;\nexport function isJSXSpreadChild<Opts extends Options<t.JSXSpreadChild>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.JSXSpreadChild & Opts;\nexport function isJSXSpreadChild<Opts extends Options<t.JSXSpreadChild>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"JSXSpreadChild\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXIdentifier(\n node: t.Node | null | undefined,\n): node is t.JSXIdentifier;\nexport function isJSXIdentifier<Opts extends Options<t.JSXIdentifier>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.JSXIdentifier & Opts;\nexport function isJSXIdentifier<Opts extends Options<t.JSXIdentifier>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"JSXIdentifier\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXMemberExpression(\n node: t.Node | null | undefined,\n): node is t.JSXMemberExpression;\nexport function isJSXMemberExpression<\n Opts extends Options<t.JSXMemberExpression>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.JSXMemberExpression & Opts;\nexport function isJSXMemberExpression<\n Opts extends Options<t.JSXMemberExpression>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"JSXMemberExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXNamespacedName(\n node: t.Node | null | undefined,\n): node is t.JSXNamespacedName;\nexport function isJSXNamespacedName<Opts extends Options<t.JSXNamespacedName>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.JSXNamespacedName & Opts;\nexport function isJSXNamespacedName<Opts extends Options<t.JSXNamespacedName>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"JSXNamespacedName\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXOpeningElement(\n node: t.Node | null | undefined,\n): node is t.JSXOpeningElement;\nexport function isJSXOpeningElement<Opts extends Options<t.JSXOpeningElement>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.JSXOpeningElement & Opts;\nexport function isJSXOpeningElement<Opts extends Options<t.JSXOpeningElement>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"JSXOpeningElement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXSpreadAttribute(\n node: t.Node | null | undefined,\n): node is t.JSXSpreadAttribute;\nexport function isJSXSpreadAttribute<\n Opts extends Options<t.JSXSpreadAttribute>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.JSXSpreadAttribute & Opts;\nexport function isJSXSpreadAttribute<\n Opts extends Options<t.JSXSpreadAttribute>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"JSXSpreadAttribute\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXText(node: t.Node | null | undefined): node is t.JSXText;\nexport function isJSXText<Opts extends Options<t.JSXText>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.JSXText & Opts;\nexport function isJSXText<Opts extends Options<t.JSXText>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"JSXText\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXFragment(\n node: t.Node | null | undefined,\n): node is t.JSXFragment;\nexport function isJSXFragment<Opts extends Options<t.JSXFragment>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.JSXFragment & Opts;\nexport function isJSXFragment<Opts extends Options<t.JSXFragment>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"JSXFragment\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXOpeningFragment(\n node: t.Node | null | undefined,\n): node is t.JSXOpeningFragment;\nexport function isJSXOpeningFragment<\n Opts extends Options<t.JSXOpeningFragment>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.JSXOpeningFragment & Opts;\nexport function isJSXOpeningFragment<\n Opts extends Options<t.JSXOpeningFragment>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"JSXOpeningFragment\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXClosingFragment(\n node: t.Node | null | undefined,\n): node is t.JSXClosingFragment;\nexport function isJSXClosingFragment<\n Opts extends Options<t.JSXClosingFragment>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.JSXClosingFragment & Opts;\nexport function isJSXClosingFragment<\n Opts extends Options<t.JSXClosingFragment>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"JSXClosingFragment\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isNoop(node: t.Node | null | undefined): node is t.Noop;\nexport function isNoop<Opts extends Options<t.Noop>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Noop & Opts;\nexport function isNoop<Opts extends Options<t.Noop>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"Noop\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isPlaceholder(\n node: t.Node | null | undefined,\n): node is t.Placeholder;\nexport function isPlaceholder<Opts extends Options<t.Placeholder>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Placeholder & Opts;\nexport function isPlaceholder<Opts extends Options<t.Placeholder>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"Placeholder\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isV8IntrinsicIdentifier(\n node: t.Node | null | undefined,\n): node is t.V8IntrinsicIdentifier;\nexport function isV8IntrinsicIdentifier<\n Opts extends Options<t.V8IntrinsicIdentifier>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.V8IntrinsicIdentifier & Opts;\nexport function isV8IntrinsicIdentifier<\n Opts extends Options<t.V8IntrinsicIdentifier>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"V8IntrinsicIdentifier\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isArgumentPlaceholder(\n node: t.Node | null | undefined,\n): node is t.ArgumentPlaceholder;\nexport function isArgumentPlaceholder<\n Opts extends Options<t.ArgumentPlaceholder>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ArgumentPlaceholder & Opts;\nexport function isArgumentPlaceholder<\n Opts extends Options<t.ArgumentPlaceholder>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"ArgumentPlaceholder\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isBindExpression(\n node: t.Node | null | undefined,\n): node is t.BindExpression;\nexport function isBindExpression<Opts extends Options<t.BindExpression>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.BindExpression & Opts;\nexport function isBindExpression<Opts extends Options<t.BindExpression>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"BindExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDecorator(\n node: t.Node | null | undefined,\n): node is t.Decorator;\nexport function isDecorator<Opts extends Options<t.Decorator>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Decorator & Opts;\nexport function isDecorator<Opts extends Options<t.Decorator>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"Decorator\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDoExpression(\n node: t.Node | null | undefined,\n): node is t.DoExpression;\nexport function isDoExpression<Opts extends Options<t.DoExpression>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.DoExpression & Opts;\nexport function isDoExpression<Opts extends Options<t.DoExpression>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"DoExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isExportDefaultSpecifier(\n node: t.Node | null | undefined,\n): node is t.ExportDefaultSpecifier;\nexport function isExportDefaultSpecifier<\n Opts extends Options<t.ExportDefaultSpecifier>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ExportDefaultSpecifier & Opts;\nexport function isExportDefaultSpecifier<\n Opts extends Options<t.ExportDefaultSpecifier>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"ExportDefaultSpecifier\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isRecordExpression(\n node: t.Node | null | undefined,\n): node is t.RecordExpression;\nexport function isRecordExpression<Opts extends Options<t.RecordExpression>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.RecordExpression & Opts;\nexport function isRecordExpression<Opts extends Options<t.RecordExpression>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"RecordExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTupleExpression(\n node: t.Node | null | undefined,\n): node is t.TupleExpression;\nexport function isTupleExpression<Opts extends Options<t.TupleExpression>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TupleExpression & Opts;\nexport function isTupleExpression<Opts extends Options<t.TupleExpression>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"TupleExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDecimalLiteral(\n node: t.Node | null | undefined,\n): node is t.DecimalLiteral;\nexport function isDecimalLiteral<Opts extends Options<t.DecimalLiteral>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.DecimalLiteral & Opts;\nexport function isDecimalLiteral<Opts extends Options<t.DecimalLiteral>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"DecimalLiteral\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isModuleExpression(\n node: t.Node | null | undefined,\n): node is t.ModuleExpression;\nexport function isModuleExpression<Opts extends Options<t.ModuleExpression>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ModuleExpression & Opts;\nexport function isModuleExpression<Opts extends Options<t.ModuleExpression>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"ModuleExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTopicReference(\n node: t.Node | null | undefined,\n): node is t.TopicReference;\nexport function isTopicReference<Opts extends Options<t.TopicReference>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TopicReference & Opts;\nexport function isTopicReference<Opts extends Options<t.TopicReference>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"TopicReference\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isPipelineTopicExpression(\n node: t.Node | null | undefined,\n): node is t.PipelineTopicExpression;\nexport function isPipelineTopicExpression<\n Opts extends Options<t.PipelineTopicExpression>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.PipelineTopicExpression & Opts;\nexport function isPipelineTopicExpression<\n Opts extends Options<t.PipelineTopicExpression>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"PipelineTopicExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isPipelineBareFunction(\n node: t.Node | null | undefined,\n): node is t.PipelineBareFunction;\nexport function isPipelineBareFunction<\n Opts extends Options<t.PipelineBareFunction>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.PipelineBareFunction & Opts;\nexport function isPipelineBareFunction<\n Opts extends Options<t.PipelineBareFunction>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"PipelineBareFunction\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isPipelinePrimaryTopicReference(\n node: t.Node | null | undefined,\n): node is t.PipelinePrimaryTopicReference;\nexport function isPipelinePrimaryTopicReference<\n Opts extends Options<t.PipelinePrimaryTopicReference>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.PipelinePrimaryTopicReference & Opts;\nexport function isPipelinePrimaryTopicReference<\n Opts extends Options<t.PipelinePrimaryTopicReference>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"PipelinePrimaryTopicReference\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isVoidPattern(\n node: t.Node | null | undefined,\n): node is t.VoidPattern;\nexport function isVoidPattern<Opts extends Options<t.VoidPattern>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.VoidPattern & Opts;\nexport function isVoidPattern<Opts extends Options<t.VoidPattern>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"VoidPattern\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSParameterProperty(\n node: t.Node | null | undefined,\n): node is t.TSParameterProperty;\nexport function isTSParameterProperty<\n Opts extends Options<t.TSParameterProperty>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSParameterProperty & Opts;\nexport function isTSParameterProperty<\n Opts extends Options<t.TSParameterProperty>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSParameterProperty\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSDeclareFunction(\n node: t.Node | null | undefined,\n): node is t.TSDeclareFunction;\nexport function isTSDeclareFunction<Opts extends Options<t.TSDeclareFunction>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSDeclareFunction & Opts;\nexport function isTSDeclareFunction<Opts extends Options<t.TSDeclareFunction>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSDeclareFunction\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSDeclareMethod(\n node: t.Node | null | undefined,\n): node is t.TSDeclareMethod;\nexport function isTSDeclareMethod<Opts extends Options<t.TSDeclareMethod>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSDeclareMethod & Opts;\nexport function isTSDeclareMethod<Opts extends Options<t.TSDeclareMethod>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSDeclareMethod\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSQualifiedName(\n node: t.Node | null | undefined,\n): node is t.TSQualifiedName;\nexport function isTSQualifiedName<Opts extends Options<t.TSQualifiedName>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSQualifiedName & Opts;\nexport function isTSQualifiedName<Opts extends Options<t.TSQualifiedName>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSQualifiedName\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSCallSignatureDeclaration(\n node: t.Node | null | undefined,\n): node is t.TSCallSignatureDeclaration;\nexport function isTSCallSignatureDeclaration<\n Opts extends Options<t.TSCallSignatureDeclaration>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSCallSignatureDeclaration & Opts;\nexport function isTSCallSignatureDeclaration<\n Opts extends Options<t.TSCallSignatureDeclaration>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSCallSignatureDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSConstructSignatureDeclaration(\n node: t.Node | null | undefined,\n): node is t.TSConstructSignatureDeclaration;\nexport function isTSConstructSignatureDeclaration<\n Opts extends Options<t.TSConstructSignatureDeclaration>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSConstructSignatureDeclaration & Opts;\nexport function isTSConstructSignatureDeclaration<\n Opts extends Options<t.TSConstructSignatureDeclaration>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSConstructSignatureDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSPropertySignature(\n node: t.Node | null | undefined,\n): node is t.TSPropertySignature;\nexport function isTSPropertySignature<\n Opts extends Options<t.TSPropertySignature>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSPropertySignature & Opts;\nexport function isTSPropertySignature<\n Opts extends Options<t.TSPropertySignature>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSPropertySignature\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSMethodSignature(\n node: t.Node | null | undefined,\n): node is t.TSMethodSignature;\nexport function isTSMethodSignature<Opts extends Options<t.TSMethodSignature>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSMethodSignature & Opts;\nexport function isTSMethodSignature<Opts extends Options<t.TSMethodSignature>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSMethodSignature\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSIndexSignature(\n node: t.Node | null | undefined,\n): node is t.TSIndexSignature;\nexport function isTSIndexSignature<Opts extends Options<t.TSIndexSignature>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSIndexSignature & Opts;\nexport function isTSIndexSignature<Opts extends Options<t.TSIndexSignature>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSIndexSignature\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSAnyKeyword(\n node: t.Node | null | undefined,\n): node is t.TSAnyKeyword;\nexport function isTSAnyKeyword<Opts extends Options<t.TSAnyKeyword>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSAnyKeyword & Opts;\nexport function isTSAnyKeyword<Opts extends Options<t.TSAnyKeyword>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSAnyKeyword\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSBooleanKeyword(\n node: t.Node | null | undefined,\n): node is t.TSBooleanKeyword;\nexport function isTSBooleanKeyword<Opts extends Options<t.TSBooleanKeyword>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSBooleanKeyword & Opts;\nexport function isTSBooleanKeyword<Opts extends Options<t.TSBooleanKeyword>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSBooleanKeyword\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSBigIntKeyword(\n node: t.Node | null | undefined,\n): node is t.TSBigIntKeyword;\nexport function isTSBigIntKeyword<Opts extends Options<t.TSBigIntKeyword>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSBigIntKeyword & Opts;\nexport function isTSBigIntKeyword<Opts extends Options<t.TSBigIntKeyword>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSBigIntKeyword\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSIntrinsicKeyword(\n node: t.Node | null | undefined,\n): node is t.TSIntrinsicKeyword;\nexport function isTSIntrinsicKeyword<\n Opts extends Options<t.TSIntrinsicKeyword>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSIntrinsicKeyword & Opts;\nexport function isTSIntrinsicKeyword<\n Opts extends Options<t.TSIntrinsicKeyword>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSIntrinsicKeyword\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSNeverKeyword(\n node: t.Node | null | undefined,\n): node is t.TSNeverKeyword;\nexport function isTSNeverKeyword<Opts extends Options<t.TSNeverKeyword>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSNeverKeyword & Opts;\nexport function isTSNeverKeyword<Opts extends Options<t.TSNeverKeyword>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSNeverKeyword\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSNullKeyword(\n node: t.Node | null | undefined,\n): node is t.TSNullKeyword;\nexport function isTSNullKeyword<Opts extends Options<t.TSNullKeyword>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSNullKeyword & Opts;\nexport function isTSNullKeyword<Opts extends Options<t.TSNullKeyword>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSNullKeyword\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSNumberKeyword(\n node: t.Node | null | undefined,\n): node is t.TSNumberKeyword;\nexport function isTSNumberKeyword<Opts extends Options<t.TSNumberKeyword>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSNumberKeyword & Opts;\nexport function isTSNumberKeyword<Opts extends Options<t.TSNumberKeyword>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSNumberKeyword\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSObjectKeyword(\n node: t.Node | null | undefined,\n): node is t.TSObjectKeyword;\nexport function isTSObjectKeyword<Opts extends Options<t.TSObjectKeyword>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSObjectKeyword & Opts;\nexport function isTSObjectKeyword<Opts extends Options<t.TSObjectKeyword>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSObjectKeyword\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSStringKeyword(\n node: t.Node | null | undefined,\n): node is t.TSStringKeyword;\nexport function isTSStringKeyword<Opts extends Options<t.TSStringKeyword>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSStringKeyword & Opts;\nexport function isTSStringKeyword<Opts extends Options<t.TSStringKeyword>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSStringKeyword\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSSymbolKeyword(\n node: t.Node | null | undefined,\n): node is t.TSSymbolKeyword;\nexport function isTSSymbolKeyword<Opts extends Options<t.TSSymbolKeyword>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSSymbolKeyword & Opts;\nexport function isTSSymbolKeyword<Opts extends Options<t.TSSymbolKeyword>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSSymbolKeyword\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSUndefinedKeyword(\n node: t.Node | null | undefined,\n): node is t.TSUndefinedKeyword;\nexport function isTSUndefinedKeyword<\n Opts extends Options<t.TSUndefinedKeyword>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSUndefinedKeyword & Opts;\nexport function isTSUndefinedKeyword<\n Opts extends Options<t.TSUndefinedKeyword>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSUndefinedKeyword\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSUnknownKeyword(\n node: t.Node | null | undefined,\n): node is t.TSUnknownKeyword;\nexport function isTSUnknownKeyword<Opts extends Options<t.TSUnknownKeyword>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSUnknownKeyword & Opts;\nexport function isTSUnknownKeyword<Opts extends Options<t.TSUnknownKeyword>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSUnknownKeyword\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSVoidKeyword(\n node: t.Node | null | undefined,\n): node is t.TSVoidKeyword;\nexport function isTSVoidKeyword<Opts extends Options<t.TSVoidKeyword>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSVoidKeyword & Opts;\nexport function isTSVoidKeyword<Opts extends Options<t.TSVoidKeyword>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSVoidKeyword\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSThisType(\n node: t.Node | null | undefined,\n): node is t.TSThisType;\nexport function isTSThisType<Opts extends Options<t.TSThisType>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSThisType & Opts;\nexport function isTSThisType<Opts extends Options<t.TSThisType>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSThisType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSFunctionType(\n node: t.Node | null | undefined,\n): node is t.TSFunctionType;\nexport function isTSFunctionType<Opts extends Options<t.TSFunctionType>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSFunctionType & Opts;\nexport function isTSFunctionType<Opts extends Options<t.TSFunctionType>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSFunctionType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSConstructorType(\n node: t.Node | null | undefined,\n): node is t.TSConstructorType;\nexport function isTSConstructorType<Opts extends Options<t.TSConstructorType>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSConstructorType & Opts;\nexport function isTSConstructorType<Opts extends Options<t.TSConstructorType>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSConstructorType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSTypeReference(\n node: t.Node | null | undefined,\n): node is t.TSTypeReference;\nexport function isTSTypeReference<Opts extends Options<t.TSTypeReference>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSTypeReference & Opts;\nexport function isTSTypeReference<Opts extends Options<t.TSTypeReference>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSTypeReference\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSTypePredicate(\n node: t.Node | null | undefined,\n): node is t.TSTypePredicate;\nexport function isTSTypePredicate<Opts extends Options<t.TSTypePredicate>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSTypePredicate & Opts;\nexport function isTSTypePredicate<Opts extends Options<t.TSTypePredicate>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSTypePredicate\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSTypeQuery(\n node: t.Node | null | undefined,\n): node is t.TSTypeQuery;\nexport function isTSTypeQuery<Opts extends Options<t.TSTypeQuery>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSTypeQuery & Opts;\nexport function isTSTypeQuery<Opts extends Options<t.TSTypeQuery>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSTypeQuery\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSTypeLiteral(\n node: t.Node | null | undefined,\n): node is t.TSTypeLiteral;\nexport function isTSTypeLiteral<Opts extends Options<t.TSTypeLiteral>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSTypeLiteral & Opts;\nexport function isTSTypeLiteral<Opts extends Options<t.TSTypeLiteral>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSTypeLiteral\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSArrayType(\n node: t.Node | null | undefined,\n): node is t.TSArrayType;\nexport function isTSArrayType<Opts extends Options<t.TSArrayType>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSArrayType & Opts;\nexport function isTSArrayType<Opts extends Options<t.TSArrayType>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSArrayType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSTupleType(\n node: t.Node | null | undefined,\n): node is t.TSTupleType;\nexport function isTSTupleType<Opts extends Options<t.TSTupleType>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSTupleType & Opts;\nexport function isTSTupleType<Opts extends Options<t.TSTupleType>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSTupleType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSOptionalType(\n node: t.Node | null | undefined,\n): node is t.TSOptionalType;\nexport function isTSOptionalType<Opts extends Options<t.TSOptionalType>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSOptionalType & Opts;\nexport function isTSOptionalType<Opts extends Options<t.TSOptionalType>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSOptionalType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSRestType(\n node: t.Node | null | undefined,\n): node is t.TSRestType;\nexport function isTSRestType<Opts extends Options<t.TSRestType>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSRestType & Opts;\nexport function isTSRestType<Opts extends Options<t.TSRestType>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSRestType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSNamedTupleMember(\n node: t.Node | null | undefined,\n): node is t.TSNamedTupleMember;\nexport function isTSNamedTupleMember<\n Opts extends Options<t.TSNamedTupleMember>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSNamedTupleMember & Opts;\nexport function isTSNamedTupleMember<\n Opts extends Options<t.TSNamedTupleMember>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSNamedTupleMember\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSUnionType(\n node: t.Node | null | undefined,\n): node is t.TSUnionType;\nexport function isTSUnionType<Opts extends Options<t.TSUnionType>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSUnionType & Opts;\nexport function isTSUnionType<Opts extends Options<t.TSUnionType>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSUnionType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSIntersectionType(\n node: t.Node | null | undefined,\n): node is t.TSIntersectionType;\nexport function isTSIntersectionType<\n Opts extends Options<t.TSIntersectionType>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSIntersectionType & Opts;\nexport function isTSIntersectionType<\n Opts extends Options<t.TSIntersectionType>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSIntersectionType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSConditionalType(\n node: t.Node | null | undefined,\n): node is t.TSConditionalType;\nexport function isTSConditionalType<Opts extends Options<t.TSConditionalType>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSConditionalType & Opts;\nexport function isTSConditionalType<Opts extends Options<t.TSConditionalType>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSConditionalType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSInferType(\n node: t.Node | null | undefined,\n): node is t.TSInferType;\nexport function isTSInferType<Opts extends Options<t.TSInferType>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSInferType & Opts;\nexport function isTSInferType<Opts extends Options<t.TSInferType>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSInferType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSParenthesizedType(\n node: t.Node | null | undefined,\n): node is t.TSParenthesizedType;\nexport function isTSParenthesizedType<\n Opts extends Options<t.TSParenthesizedType>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSParenthesizedType & Opts;\nexport function isTSParenthesizedType<\n Opts extends Options<t.TSParenthesizedType>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSParenthesizedType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSTypeOperator(\n node: t.Node | null | undefined,\n): node is t.TSTypeOperator;\nexport function isTSTypeOperator<Opts extends Options<t.TSTypeOperator>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSTypeOperator & Opts;\nexport function isTSTypeOperator<Opts extends Options<t.TSTypeOperator>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSTypeOperator\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSIndexedAccessType(\n node: t.Node | null | undefined,\n): node is t.TSIndexedAccessType;\nexport function isTSIndexedAccessType<\n Opts extends Options<t.TSIndexedAccessType>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSIndexedAccessType & Opts;\nexport function isTSIndexedAccessType<\n Opts extends Options<t.TSIndexedAccessType>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSIndexedAccessType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSMappedType(\n node: t.Node | null | undefined,\n): node is t.TSMappedType;\nexport function isTSMappedType<Opts extends Options<t.TSMappedType>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSMappedType & Opts;\nexport function isTSMappedType<Opts extends Options<t.TSMappedType>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSMappedType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSTemplateLiteralType(\n node: t.Node | null | undefined,\n): node is t.TSTemplateLiteralType;\nexport function isTSTemplateLiteralType<\n Opts extends Options<t.TSTemplateLiteralType>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSTemplateLiteralType & Opts;\nexport function isTSTemplateLiteralType<\n Opts extends Options<t.TSTemplateLiteralType>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSTemplateLiteralType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSLiteralType(\n node: t.Node | null | undefined,\n): node is t.TSLiteralType;\nexport function isTSLiteralType<Opts extends Options<t.TSLiteralType>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSLiteralType & Opts;\nexport function isTSLiteralType<Opts extends Options<t.TSLiteralType>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSLiteralType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSExpressionWithTypeArguments(\n node: t.Node | null | undefined,\n): node is t.TSExpressionWithTypeArguments;\nexport function isTSExpressionWithTypeArguments<\n Opts extends Options<t.TSExpressionWithTypeArguments>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSExpressionWithTypeArguments & Opts;\nexport function isTSExpressionWithTypeArguments<\n Opts extends Options<t.TSExpressionWithTypeArguments>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSExpressionWithTypeArguments\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSInterfaceDeclaration(\n node: t.Node | null | undefined,\n): node is t.TSInterfaceDeclaration;\nexport function isTSInterfaceDeclaration<\n Opts extends Options<t.TSInterfaceDeclaration>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSInterfaceDeclaration & Opts;\nexport function isTSInterfaceDeclaration<\n Opts extends Options<t.TSInterfaceDeclaration>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSInterfaceDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSInterfaceBody(\n node: t.Node | null | undefined,\n): node is t.TSInterfaceBody;\nexport function isTSInterfaceBody<Opts extends Options<t.TSInterfaceBody>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSInterfaceBody & Opts;\nexport function isTSInterfaceBody<Opts extends Options<t.TSInterfaceBody>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSInterfaceBody\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSTypeAliasDeclaration(\n node: t.Node | null | undefined,\n): node is t.TSTypeAliasDeclaration;\nexport function isTSTypeAliasDeclaration<\n Opts extends Options<t.TSTypeAliasDeclaration>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSTypeAliasDeclaration & Opts;\nexport function isTSTypeAliasDeclaration<\n Opts extends Options<t.TSTypeAliasDeclaration>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSTypeAliasDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSInstantiationExpression(\n node: t.Node | null | undefined,\n): node is t.TSInstantiationExpression;\nexport function isTSInstantiationExpression<\n Opts extends Options<t.TSInstantiationExpression>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSInstantiationExpression & Opts;\nexport function isTSInstantiationExpression<\n Opts extends Options<t.TSInstantiationExpression>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSInstantiationExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSAsExpression(\n node: t.Node | null | undefined,\n): node is t.TSAsExpression;\nexport function isTSAsExpression<Opts extends Options<t.TSAsExpression>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSAsExpression & Opts;\nexport function isTSAsExpression<Opts extends Options<t.TSAsExpression>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSAsExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSSatisfiesExpression(\n node: t.Node | null | undefined,\n): node is t.TSSatisfiesExpression;\nexport function isTSSatisfiesExpression<\n Opts extends Options<t.TSSatisfiesExpression>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSSatisfiesExpression & Opts;\nexport function isTSSatisfiesExpression<\n Opts extends Options<t.TSSatisfiesExpression>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSSatisfiesExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSTypeAssertion(\n node: t.Node | null | undefined,\n): node is t.TSTypeAssertion;\nexport function isTSTypeAssertion<Opts extends Options<t.TSTypeAssertion>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSTypeAssertion & Opts;\nexport function isTSTypeAssertion<Opts extends Options<t.TSTypeAssertion>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSTypeAssertion\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSEnumBody(\n node: t.Node | null | undefined,\n): node is t.TSEnumBody;\nexport function isTSEnumBody<Opts extends Options<t.TSEnumBody>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSEnumBody & Opts;\nexport function isTSEnumBody<Opts extends Options<t.TSEnumBody>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSEnumBody\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSEnumDeclaration(\n node: t.Node | null | undefined,\n): node is t.TSEnumDeclaration;\nexport function isTSEnumDeclaration<Opts extends Options<t.TSEnumDeclaration>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSEnumDeclaration & Opts;\nexport function isTSEnumDeclaration<Opts extends Options<t.TSEnumDeclaration>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSEnumDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSEnumMember(\n node: t.Node | null | undefined,\n): node is t.TSEnumMember;\nexport function isTSEnumMember<Opts extends Options<t.TSEnumMember>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSEnumMember & Opts;\nexport function isTSEnumMember<Opts extends Options<t.TSEnumMember>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSEnumMember\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSModuleDeclaration(\n node: t.Node | null | undefined,\n): node is t.TSModuleDeclaration;\nexport function isTSModuleDeclaration<\n Opts extends Options<t.TSModuleDeclaration>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSModuleDeclaration & Opts;\nexport function isTSModuleDeclaration<\n Opts extends Options<t.TSModuleDeclaration>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSModuleDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSModuleBlock(\n node: t.Node | null | undefined,\n): node is t.TSModuleBlock;\nexport function isTSModuleBlock<Opts extends Options<t.TSModuleBlock>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSModuleBlock & Opts;\nexport function isTSModuleBlock<Opts extends Options<t.TSModuleBlock>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSModuleBlock\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSImportType(\n node: t.Node | null | undefined,\n): node is t.TSImportType;\nexport function isTSImportType<Opts extends Options<t.TSImportType>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSImportType & Opts;\nexport function isTSImportType<Opts extends Options<t.TSImportType>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSImportType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSImportEqualsDeclaration(\n node: t.Node | null | undefined,\n): node is t.TSImportEqualsDeclaration;\nexport function isTSImportEqualsDeclaration<\n Opts extends Options<t.TSImportEqualsDeclaration>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSImportEqualsDeclaration & Opts;\nexport function isTSImportEqualsDeclaration<\n Opts extends Options<t.TSImportEqualsDeclaration>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSImportEqualsDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSExternalModuleReference(\n node: t.Node | null | undefined,\n): node is t.TSExternalModuleReference;\nexport function isTSExternalModuleReference<\n Opts extends Options<t.TSExternalModuleReference>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSExternalModuleReference & Opts;\nexport function isTSExternalModuleReference<\n Opts extends Options<t.TSExternalModuleReference>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSExternalModuleReference\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSNonNullExpression(\n node: t.Node | null | undefined,\n): node is t.TSNonNullExpression;\nexport function isTSNonNullExpression<\n Opts extends Options<t.TSNonNullExpression>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSNonNullExpression & Opts;\nexport function isTSNonNullExpression<\n Opts extends Options<t.TSNonNullExpression>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSNonNullExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSExportAssignment(\n node: t.Node | null | undefined,\n): node is t.TSExportAssignment;\nexport function isTSExportAssignment<\n Opts extends Options<t.TSExportAssignment>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSExportAssignment & Opts;\nexport function isTSExportAssignment<\n Opts extends Options<t.TSExportAssignment>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSExportAssignment\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSNamespaceExportDeclaration(\n node: t.Node | null | undefined,\n): node is t.TSNamespaceExportDeclaration;\nexport function isTSNamespaceExportDeclaration<\n Opts extends Options<t.TSNamespaceExportDeclaration>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSNamespaceExportDeclaration & Opts;\nexport function isTSNamespaceExportDeclaration<\n Opts extends Options<t.TSNamespaceExportDeclaration>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSNamespaceExportDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSTypeAnnotation(\n node: t.Node | null | undefined,\n): node is t.TSTypeAnnotation;\nexport function isTSTypeAnnotation<Opts extends Options<t.TSTypeAnnotation>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSTypeAnnotation & Opts;\nexport function isTSTypeAnnotation<Opts extends Options<t.TSTypeAnnotation>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSTypeParameterInstantiation(\n node: t.Node | null | undefined,\n): node is t.TSTypeParameterInstantiation;\nexport function isTSTypeParameterInstantiation<\n Opts extends Options<t.TSTypeParameterInstantiation>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSTypeParameterInstantiation & Opts;\nexport function isTSTypeParameterInstantiation<\n Opts extends Options<t.TSTypeParameterInstantiation>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSTypeParameterInstantiation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSTypeParameterDeclaration(\n node: t.Node | null | undefined,\n): node is t.TSTypeParameterDeclaration;\nexport function isTSTypeParameterDeclaration<\n Opts extends Options<t.TSTypeParameterDeclaration>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSTypeParameterDeclaration & Opts;\nexport function isTSTypeParameterDeclaration<\n Opts extends Options<t.TSTypeParameterDeclaration>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSTypeParameterDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSTypeParameter(\n node: t.Node | null | undefined,\n): node is t.TSTypeParameter;\nexport function isTSTypeParameter<Opts extends Options<t.TSTypeParameter>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSTypeParameter & Opts;\nexport function isTSTypeParameter<Opts extends Options<t.TSTypeParameter>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n if (node.type !== \"TSTypeParameter\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isStandardized(\n node: t.Node | null | undefined,\n): node is t.Standardized;\nexport function isStandardized<Opts extends Options<t.Standardized>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Standardized & Opts;\nexport function isStandardized<Opts extends Options<t.Standardized>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n switch (node.type) {\n case \"ArrayExpression\":\n case \"AssignmentExpression\":\n case \"BinaryExpression\":\n case \"InterpreterDirective\":\n case \"Directive\":\n case \"DirectiveLiteral\":\n case \"BlockStatement\":\n case \"BreakStatement\":\n case \"CallExpression\":\n case \"CatchClause\":\n case \"ConditionalExpression\":\n case \"ContinueStatement\":\n case \"DebuggerStatement\":\n case \"DoWhileStatement\":\n case \"EmptyStatement\":\n case \"ExpressionStatement\":\n case \"File\":\n case \"ForInStatement\":\n case \"ForStatement\":\n case \"FunctionDeclaration\":\n case \"FunctionExpression\":\n case \"Identifier\":\n case \"IfStatement\":\n case \"LabeledStatement\":\n case \"StringLiteral\":\n case \"NumericLiteral\":\n case \"NullLiteral\":\n case \"BooleanLiteral\":\n case \"RegExpLiteral\":\n case \"LogicalExpression\":\n case \"MemberExpression\":\n case \"NewExpression\":\n case \"Program\":\n case \"ObjectExpression\":\n case \"ObjectMethod\":\n case \"ObjectProperty\":\n case \"RestElement\":\n case \"ReturnStatement\":\n case \"SequenceExpression\":\n case \"ParenthesizedExpression\":\n case \"SwitchCase\":\n case \"SwitchStatement\":\n case \"ThisExpression\":\n case \"ThrowStatement\":\n case \"TryStatement\":\n case \"UnaryExpression\":\n case \"UpdateExpression\":\n case \"VariableDeclaration\":\n case \"VariableDeclarator\":\n case \"WhileStatement\":\n case \"WithStatement\":\n case \"AssignmentPattern\":\n case \"ArrayPattern\":\n case \"ArrowFunctionExpression\":\n case \"ClassBody\":\n case \"ClassExpression\":\n case \"ClassDeclaration\":\n case \"ExportAllDeclaration\":\n case \"ExportDefaultDeclaration\":\n case \"ExportNamedDeclaration\":\n case \"ExportSpecifier\":\n case \"ForOfStatement\":\n case \"ImportDeclaration\":\n case \"ImportDefaultSpecifier\":\n case \"ImportNamespaceSpecifier\":\n case \"ImportSpecifier\":\n case \"ImportExpression\":\n case \"MetaProperty\":\n case \"ClassMethod\":\n case \"ObjectPattern\":\n case \"SpreadElement\":\n case \"Super\":\n case \"TaggedTemplateExpression\":\n case \"TemplateElement\":\n case \"TemplateLiteral\":\n case \"YieldExpression\":\n case \"AwaitExpression\":\n case \"Import\":\n case \"BigIntLiteral\":\n case \"ExportNamespaceSpecifier\":\n case \"OptionalMemberExpression\":\n case \"OptionalCallExpression\":\n case \"ClassProperty\":\n case \"ClassAccessorProperty\":\n case \"ClassPrivateProperty\":\n case \"ClassPrivateMethod\":\n case \"PrivateName\":\n case \"StaticBlock\":\n case \"ImportAttribute\":\n break;\n case \"Placeholder\":\n switch (node.expectedNode) {\n case \"Identifier\":\n case \"StringLiteral\":\n case \"BlockStatement\":\n case \"ClassBody\":\n break;\n default:\n return false;\n }\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isExpression(\n node: t.Node | null | undefined,\n): node is t.Expression;\nexport function isExpression<Opts extends Options<t.Expression>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Expression & Opts;\nexport function isExpression<Opts extends Options<t.Expression>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n switch (node.type) {\n case \"ArrayExpression\":\n case \"AssignmentExpression\":\n case \"BinaryExpression\":\n case \"CallExpression\":\n case \"ConditionalExpression\":\n case \"FunctionExpression\":\n case \"Identifier\":\n case \"StringLiteral\":\n case \"NumericLiteral\":\n case \"NullLiteral\":\n case \"BooleanLiteral\":\n case \"RegExpLiteral\":\n case \"LogicalExpression\":\n case \"MemberExpression\":\n case \"NewExpression\":\n case \"ObjectExpression\":\n case \"SequenceExpression\":\n case \"ParenthesizedExpression\":\n case \"ThisExpression\":\n case \"UnaryExpression\":\n case \"UpdateExpression\":\n case \"ArrowFunctionExpression\":\n case \"ClassExpression\":\n case \"ImportExpression\":\n case \"MetaProperty\":\n case \"Super\":\n case \"TaggedTemplateExpression\":\n case \"TemplateLiteral\":\n case \"YieldExpression\":\n case \"AwaitExpression\":\n case \"Import\":\n case \"BigIntLiteral\":\n case \"OptionalMemberExpression\":\n case \"OptionalCallExpression\":\n case \"TypeCastExpression\":\n case \"JSXElement\":\n case \"JSXFragment\":\n case \"BindExpression\":\n case \"DoExpression\":\n case \"RecordExpression\":\n case \"TupleExpression\":\n case \"DecimalLiteral\":\n case \"ModuleExpression\":\n case \"TopicReference\":\n case \"PipelineTopicExpression\":\n case \"PipelineBareFunction\":\n case \"PipelinePrimaryTopicReference\":\n case \"TSInstantiationExpression\":\n case \"TSAsExpression\":\n case \"TSSatisfiesExpression\":\n case \"TSTypeAssertion\":\n case \"TSNonNullExpression\":\n break;\n case \"Placeholder\":\n switch (node.expectedNode) {\n case \"Expression\":\n case \"Identifier\":\n case \"StringLiteral\":\n break;\n default:\n return false;\n }\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isBinary(node: t.Node | null | undefined): node is t.Binary;\nexport function isBinary<Opts extends Options<t.Binary>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Binary & Opts;\nexport function isBinary<Opts extends Options<t.Binary>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n switch (node.type) {\n case \"BinaryExpression\":\n case \"LogicalExpression\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isScopable(node: t.Node | null | undefined): node is t.Scopable;\nexport function isScopable<Opts extends Options<t.Scopable>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Scopable & Opts;\nexport function isScopable<Opts extends Options<t.Scopable>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n switch (node.type) {\n case \"BlockStatement\":\n case \"CatchClause\":\n case \"DoWhileStatement\":\n case \"ForInStatement\":\n case \"ForStatement\":\n case \"FunctionDeclaration\":\n case \"FunctionExpression\":\n case \"Program\":\n case \"ObjectMethod\":\n case \"SwitchStatement\":\n case \"WhileStatement\":\n case \"ArrowFunctionExpression\":\n case \"ClassExpression\":\n case \"ClassDeclaration\":\n case \"ForOfStatement\":\n case \"ClassMethod\":\n case \"ClassPrivateMethod\":\n case \"StaticBlock\":\n case \"TSModuleBlock\":\n break;\n case \"Placeholder\":\n if (node.expectedNode === \"BlockStatement\") break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isBlockParent(\n node: t.Node | null | undefined,\n): node is t.BlockParent;\nexport function isBlockParent<Opts extends Options<t.BlockParent>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.BlockParent & Opts;\nexport function isBlockParent<Opts extends Options<t.BlockParent>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n switch (node.type) {\n case \"BlockStatement\":\n case \"CatchClause\":\n case \"DoWhileStatement\":\n case \"ForInStatement\":\n case \"ForStatement\":\n case \"FunctionDeclaration\":\n case \"FunctionExpression\":\n case \"Program\":\n case \"ObjectMethod\":\n case \"SwitchStatement\":\n case \"WhileStatement\":\n case \"ArrowFunctionExpression\":\n case \"ForOfStatement\":\n case \"ClassMethod\":\n case \"ClassPrivateMethod\":\n case \"StaticBlock\":\n case \"TSModuleBlock\":\n break;\n case \"Placeholder\":\n if (node.expectedNode === \"BlockStatement\") break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isBlock(node: t.Node | null | undefined): node is t.Block;\nexport function isBlock<Opts extends Options<t.Block>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Block & Opts;\nexport function isBlock<Opts extends Options<t.Block>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n switch (node.type) {\n case \"BlockStatement\":\n case \"Program\":\n case \"TSModuleBlock\":\n break;\n case \"Placeholder\":\n if (node.expectedNode === \"BlockStatement\") break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isStatement(\n node: t.Node | null | undefined,\n): node is t.Statement;\nexport function isStatement<Opts extends Options<t.Statement>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Statement & Opts;\nexport function isStatement<Opts extends Options<t.Statement>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n switch (node.type) {\n case \"BlockStatement\":\n case \"BreakStatement\":\n case \"ContinueStatement\":\n case \"DebuggerStatement\":\n case \"DoWhileStatement\":\n case \"EmptyStatement\":\n case \"ExpressionStatement\":\n case \"ForInStatement\":\n case \"ForStatement\":\n case \"FunctionDeclaration\":\n case \"IfStatement\":\n case \"LabeledStatement\":\n case \"ReturnStatement\":\n case \"SwitchStatement\":\n case \"ThrowStatement\":\n case \"TryStatement\":\n case \"VariableDeclaration\":\n case \"WhileStatement\":\n case \"WithStatement\":\n case \"ClassDeclaration\":\n case \"ExportAllDeclaration\":\n case \"ExportDefaultDeclaration\":\n case \"ExportNamedDeclaration\":\n case \"ForOfStatement\":\n case \"ImportDeclaration\":\n case \"DeclareClass\":\n case \"DeclareFunction\":\n case \"DeclareInterface\":\n case \"DeclareModule\":\n case \"DeclareModuleExports\":\n case \"DeclareTypeAlias\":\n case \"DeclareOpaqueType\":\n case \"DeclareVariable\":\n case \"DeclareExportDeclaration\":\n case \"DeclareExportAllDeclaration\":\n case \"InterfaceDeclaration\":\n case \"OpaqueType\":\n case \"TypeAlias\":\n case \"EnumDeclaration\":\n case \"TSDeclareFunction\":\n case \"TSInterfaceDeclaration\":\n case \"TSTypeAliasDeclaration\":\n case \"TSEnumDeclaration\":\n case \"TSModuleDeclaration\":\n case \"TSImportEqualsDeclaration\":\n case \"TSExportAssignment\":\n case \"TSNamespaceExportDeclaration\":\n break;\n case \"Placeholder\":\n switch (node.expectedNode) {\n case \"Statement\":\n case \"Declaration\":\n case \"BlockStatement\":\n break;\n default:\n return false;\n }\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTerminatorless(\n node: t.Node | null | undefined,\n): node is t.Terminatorless;\nexport function isTerminatorless<Opts extends Options<t.Terminatorless>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Terminatorless & Opts;\nexport function isTerminatorless<Opts extends Options<t.Terminatorless>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n switch (node.type) {\n case \"BreakStatement\":\n case \"ContinueStatement\":\n case \"ReturnStatement\":\n case \"ThrowStatement\":\n case \"YieldExpression\":\n case \"AwaitExpression\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isCompletionStatement(\n node: t.Node | null | undefined,\n): node is t.CompletionStatement;\nexport function isCompletionStatement<\n Opts extends Options<t.CompletionStatement>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.CompletionStatement & Opts;\nexport function isCompletionStatement<\n Opts extends Options<t.CompletionStatement>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n switch (node.type) {\n case \"BreakStatement\":\n case \"ContinueStatement\":\n case \"ReturnStatement\":\n case \"ThrowStatement\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isConditional(\n node: t.Node | null | undefined,\n): node is t.Conditional;\nexport function isConditional<Opts extends Options<t.Conditional>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Conditional & Opts;\nexport function isConditional<Opts extends Options<t.Conditional>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n switch (node.type) {\n case \"ConditionalExpression\":\n case \"IfStatement\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isLoop(node: t.Node | null | undefined): node is t.Loop;\nexport function isLoop<Opts extends Options<t.Loop>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Loop & Opts;\nexport function isLoop<Opts extends Options<t.Loop>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n switch (node.type) {\n case \"DoWhileStatement\":\n case \"ForInStatement\":\n case \"ForStatement\":\n case \"WhileStatement\":\n case \"ForOfStatement\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isWhile(node: t.Node | null | undefined): node is t.While;\nexport function isWhile<Opts extends Options<t.While>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.While & Opts;\nexport function isWhile<Opts extends Options<t.While>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n switch (node.type) {\n case \"DoWhileStatement\":\n case \"WhileStatement\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isExpressionWrapper(\n node: t.Node | null | undefined,\n): node is t.ExpressionWrapper;\nexport function isExpressionWrapper<Opts extends Options<t.ExpressionWrapper>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ExpressionWrapper & Opts;\nexport function isExpressionWrapper<Opts extends Options<t.ExpressionWrapper>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n switch (node.type) {\n case \"ExpressionStatement\":\n case \"ParenthesizedExpression\":\n case \"TypeCastExpression\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isFor(node: t.Node | null | undefined): node is t.For;\nexport function isFor<Opts extends Options<t.For>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.For & Opts;\nexport function isFor<Opts extends Options<t.For>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n switch (node.type) {\n case \"ForInStatement\":\n case \"ForStatement\":\n case \"ForOfStatement\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isForXStatement(\n node: t.Node | null | undefined,\n): node is t.ForXStatement;\nexport function isForXStatement<Opts extends Options<t.ForXStatement>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ForXStatement & Opts;\nexport function isForXStatement<Opts extends Options<t.ForXStatement>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n switch (node.type) {\n case \"ForInStatement\":\n case \"ForOfStatement\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isFunction(node: t.Node | null | undefined): node is t.Function;\nexport function isFunction<Opts extends Options<t.Function>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Function & Opts;\nexport function isFunction<Opts extends Options<t.Function>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n switch (node.type) {\n case \"FunctionDeclaration\":\n case \"FunctionExpression\":\n case \"ObjectMethod\":\n case \"ArrowFunctionExpression\":\n case \"ClassMethod\":\n case \"ClassPrivateMethod\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isFunctionParent(\n node: t.Node | null | undefined,\n): node is t.FunctionParent;\nexport function isFunctionParent<Opts extends Options<t.FunctionParent>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.FunctionParent & Opts;\nexport function isFunctionParent<Opts extends Options<t.FunctionParent>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n switch (node.type) {\n case \"FunctionDeclaration\":\n case \"FunctionExpression\":\n case \"ObjectMethod\":\n case \"ArrowFunctionExpression\":\n case \"ClassMethod\":\n case \"ClassPrivateMethod\":\n case \"StaticBlock\":\n case \"TSModuleBlock\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isPureish(node: t.Node | null | undefined): node is t.Pureish;\nexport function isPureish<Opts extends Options<t.Pureish>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Pureish & Opts;\nexport function isPureish<Opts extends Options<t.Pureish>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n switch (node.type) {\n case \"FunctionDeclaration\":\n case \"FunctionExpression\":\n case \"StringLiteral\":\n case \"NumericLiteral\":\n case \"NullLiteral\":\n case \"BooleanLiteral\":\n case \"RegExpLiteral\":\n case \"ArrowFunctionExpression\":\n case \"BigIntLiteral\":\n case \"DecimalLiteral\":\n break;\n case \"Placeholder\":\n if (node.expectedNode === \"StringLiteral\") break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDeclaration(\n node: t.Node | null | undefined,\n): node is t.Declaration;\nexport function isDeclaration<Opts extends Options<t.Declaration>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Declaration & Opts;\nexport function isDeclaration<Opts extends Options<t.Declaration>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n switch (node.type) {\n case \"FunctionDeclaration\":\n case \"VariableDeclaration\":\n case \"ClassDeclaration\":\n case \"ExportAllDeclaration\":\n case \"ExportDefaultDeclaration\":\n case \"ExportNamedDeclaration\":\n case \"ImportDeclaration\":\n case \"DeclareClass\":\n case \"DeclareFunction\":\n case \"DeclareInterface\":\n case \"DeclareModule\":\n case \"DeclareModuleExports\":\n case \"DeclareTypeAlias\":\n case \"DeclareOpaqueType\":\n case \"DeclareVariable\":\n case \"DeclareExportDeclaration\":\n case \"DeclareExportAllDeclaration\":\n case \"InterfaceDeclaration\":\n case \"OpaqueType\":\n case \"TypeAlias\":\n case \"EnumDeclaration\":\n case \"TSDeclareFunction\":\n case \"TSInterfaceDeclaration\":\n case \"TSTypeAliasDeclaration\":\n case \"TSEnumDeclaration\":\n case \"TSModuleDeclaration\":\n case \"TSImportEqualsDeclaration\":\n break;\n case \"Placeholder\":\n if (node.expectedNode === \"Declaration\") break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isFunctionParameter(\n node: t.Node | null | undefined,\n): node is t.FunctionParameter;\nexport function isFunctionParameter<Opts extends Options<t.FunctionParameter>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.FunctionParameter & Opts;\nexport function isFunctionParameter<Opts extends Options<t.FunctionParameter>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n switch (node.type) {\n case \"Identifier\":\n case \"RestElement\":\n case \"AssignmentPattern\":\n case \"ArrayPattern\":\n case \"ObjectPattern\":\n case \"VoidPattern\":\n break;\n case \"Placeholder\":\n if (node.expectedNode === \"Identifier\") break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isPatternLike(\n node: t.Node | null | undefined,\n): node is t.PatternLike;\nexport function isPatternLike<Opts extends Options<t.PatternLike>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.PatternLike & Opts;\nexport function isPatternLike<Opts extends Options<t.PatternLike>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n switch (node.type) {\n case \"Identifier\":\n case \"MemberExpression\":\n case \"RestElement\":\n case \"AssignmentPattern\":\n case \"ArrayPattern\":\n case \"ObjectPattern\":\n case \"VoidPattern\":\n case \"TSAsExpression\":\n case \"TSSatisfiesExpression\":\n case \"TSTypeAssertion\":\n case \"TSNonNullExpression\":\n break;\n case \"Placeholder\":\n switch (node.expectedNode) {\n case \"Pattern\":\n case \"Identifier\":\n break;\n default:\n return false;\n }\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isLVal(node: t.Node | null | undefined): node is t.LVal;\nexport function isLVal<Opts extends Options<t.LVal>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.LVal & Opts;\nexport function isLVal<Opts extends Options<t.LVal>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n switch (node.type) {\n case \"Identifier\":\n case \"MemberExpression\":\n case \"RestElement\":\n case \"AssignmentPattern\":\n case \"ArrayPattern\":\n case \"ObjectPattern\":\n case \"TSParameterProperty\":\n case \"TSAsExpression\":\n case \"TSSatisfiesExpression\":\n case \"TSTypeAssertion\":\n case \"TSNonNullExpression\":\n break;\n case \"Placeholder\":\n switch (node.expectedNode) {\n case \"Pattern\":\n case \"Identifier\":\n break;\n default:\n return false;\n }\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSEntityName(\n node: t.Node | null | undefined,\n): node is t.TSEntityName;\nexport function isTSEntityName<Opts extends Options<t.TSEntityName>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSEntityName & Opts;\nexport function isTSEntityName<Opts extends Options<t.TSEntityName>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n switch (node.type) {\n case \"Identifier\":\n case \"TSQualifiedName\":\n break;\n case \"Placeholder\":\n if (node.expectedNode === \"Identifier\") break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isLiteral(node: t.Node | null | undefined): node is t.Literal;\nexport function isLiteral<Opts extends Options<t.Literal>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Literal & Opts;\nexport function isLiteral<Opts extends Options<t.Literal>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n switch (node.type) {\n case \"StringLiteral\":\n case \"NumericLiteral\":\n case \"NullLiteral\":\n case \"BooleanLiteral\":\n case \"RegExpLiteral\":\n case \"TemplateLiteral\":\n case \"BigIntLiteral\":\n case \"DecimalLiteral\":\n break;\n case \"Placeholder\":\n if (node.expectedNode === \"StringLiteral\") break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isImmutable(\n node: t.Node | null | undefined,\n): node is t.Immutable;\nexport function isImmutable<Opts extends Options<t.Immutable>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Immutable & Opts;\nexport function isImmutable<Opts extends Options<t.Immutable>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n switch (node.type) {\n case \"StringLiteral\":\n case \"NumericLiteral\":\n case \"NullLiteral\":\n case \"BooleanLiteral\":\n case \"BigIntLiteral\":\n case \"JSXAttribute\":\n case \"JSXClosingElement\":\n case \"JSXElement\":\n case \"JSXExpressionContainer\":\n case \"JSXSpreadChild\":\n case \"JSXOpeningElement\":\n case \"JSXText\":\n case \"JSXFragment\":\n case \"JSXOpeningFragment\":\n case \"JSXClosingFragment\":\n case \"DecimalLiteral\":\n break;\n case \"Placeholder\":\n if (node.expectedNode === \"StringLiteral\") break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isUserWhitespacable(\n node: t.Node | null | undefined,\n): node is t.UserWhitespacable;\nexport function isUserWhitespacable<Opts extends Options<t.UserWhitespacable>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.UserWhitespacable & Opts;\nexport function isUserWhitespacable<Opts extends Options<t.UserWhitespacable>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n switch (node.type) {\n case \"ObjectMethod\":\n case \"ObjectProperty\":\n case \"ObjectTypeInternalSlot\":\n case \"ObjectTypeCallProperty\":\n case \"ObjectTypeIndexer\":\n case \"ObjectTypeProperty\":\n case \"ObjectTypeSpreadProperty\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isMethod(node: t.Node | null | undefined): node is t.Method;\nexport function isMethod<Opts extends Options<t.Method>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Method & Opts;\nexport function isMethod<Opts extends Options<t.Method>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n switch (node.type) {\n case \"ObjectMethod\":\n case \"ClassMethod\":\n case \"ClassPrivateMethod\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isObjectMember(\n node: t.Node | null | undefined,\n): node is t.ObjectMember;\nexport function isObjectMember<Opts extends Options<t.ObjectMember>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ObjectMember & Opts;\nexport function isObjectMember<Opts extends Options<t.ObjectMember>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n switch (node.type) {\n case \"ObjectMethod\":\n case \"ObjectProperty\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isProperty(node: t.Node | null | undefined): node is t.Property;\nexport function isProperty<Opts extends Options<t.Property>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Property & Opts;\nexport function isProperty<Opts extends Options<t.Property>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n switch (node.type) {\n case \"ObjectProperty\":\n case \"ClassProperty\":\n case \"ClassAccessorProperty\":\n case \"ClassPrivateProperty\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isUnaryLike(\n node: t.Node | null | undefined,\n): node is t.UnaryLike;\nexport function isUnaryLike<Opts extends Options<t.UnaryLike>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.UnaryLike & Opts;\nexport function isUnaryLike<Opts extends Options<t.UnaryLike>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n switch (node.type) {\n case \"UnaryExpression\":\n case \"SpreadElement\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isPattern(node: t.Node | null | undefined): node is t.Pattern;\nexport function isPattern<Opts extends Options<t.Pattern>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Pattern & Opts;\nexport function isPattern<Opts extends Options<t.Pattern>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n switch (node.type) {\n case \"AssignmentPattern\":\n case \"ArrayPattern\":\n case \"ObjectPattern\":\n case \"VoidPattern\":\n break;\n case \"Placeholder\":\n if (node.expectedNode === \"Pattern\") break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isClass(node: t.Node | null | undefined): node is t.Class;\nexport function isClass<Opts extends Options<t.Class>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Class & Opts;\nexport function isClass<Opts extends Options<t.Class>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n switch (node.type) {\n case \"ClassExpression\":\n case \"ClassDeclaration\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isImportOrExportDeclaration(\n node: t.Node | null | undefined,\n): node is t.ImportOrExportDeclaration;\nexport function isImportOrExportDeclaration<\n Opts extends Options<t.ImportOrExportDeclaration>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ImportOrExportDeclaration & Opts;\nexport function isImportOrExportDeclaration<\n Opts extends Options<t.ImportOrExportDeclaration>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n switch (node.type) {\n case \"ExportAllDeclaration\":\n case \"ExportDefaultDeclaration\":\n case \"ExportNamedDeclaration\":\n case \"ImportDeclaration\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isExportDeclaration(\n node: t.Node | null | undefined,\n): node is t.ExportDeclaration;\nexport function isExportDeclaration<Opts extends Options<t.ExportDeclaration>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ExportDeclaration & Opts;\nexport function isExportDeclaration<Opts extends Options<t.ExportDeclaration>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n switch (node.type) {\n case \"ExportAllDeclaration\":\n case \"ExportDefaultDeclaration\":\n case \"ExportNamedDeclaration\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isModuleSpecifier(\n node: t.Node | null | undefined,\n): node is t.ModuleSpecifier;\nexport function isModuleSpecifier<Opts extends Options<t.ModuleSpecifier>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ModuleSpecifier & Opts;\nexport function isModuleSpecifier<Opts extends Options<t.ModuleSpecifier>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n switch (node.type) {\n case \"ExportSpecifier\":\n case \"ImportDefaultSpecifier\":\n case \"ImportNamespaceSpecifier\":\n case \"ImportSpecifier\":\n case \"ExportNamespaceSpecifier\":\n case \"ExportDefaultSpecifier\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isAccessor(node: t.Node | null | undefined): node is t.Accessor;\nexport function isAccessor<Opts extends Options<t.Accessor>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Accessor & Opts;\nexport function isAccessor<Opts extends Options<t.Accessor>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n switch (node.type) {\n case \"ClassAccessorProperty\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isPrivate(node: t.Node | null | undefined): node is t.Private;\nexport function isPrivate<Opts extends Options<t.Private>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Private & Opts;\nexport function isPrivate<Opts extends Options<t.Private>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n switch (node.type) {\n case \"ClassPrivateProperty\":\n case \"ClassPrivateMethod\":\n case \"PrivateName\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isFlow(node: t.Node | null | undefined): node is t.Flow;\nexport function isFlow<Opts extends Options<t.Flow>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Flow & Opts;\nexport function isFlow<Opts extends Options<t.Flow>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n switch (node.type) {\n case \"AnyTypeAnnotation\":\n case \"ArrayTypeAnnotation\":\n case \"BooleanTypeAnnotation\":\n case \"BooleanLiteralTypeAnnotation\":\n case \"NullLiteralTypeAnnotation\":\n case \"ClassImplements\":\n case \"DeclareClass\":\n case \"DeclareFunction\":\n case \"DeclareInterface\":\n case \"DeclareModule\":\n case \"DeclareModuleExports\":\n case \"DeclareTypeAlias\":\n case \"DeclareOpaqueType\":\n case \"DeclareVariable\":\n case \"DeclareExportDeclaration\":\n case \"DeclareExportAllDeclaration\":\n case \"DeclaredPredicate\":\n case \"ExistsTypeAnnotation\":\n case \"FunctionTypeAnnotation\":\n case \"FunctionTypeParam\":\n case \"GenericTypeAnnotation\":\n case \"InferredPredicate\":\n case \"InterfaceExtends\":\n case \"InterfaceDeclaration\":\n case \"InterfaceTypeAnnotation\":\n case \"IntersectionTypeAnnotation\":\n case \"MixedTypeAnnotation\":\n case \"EmptyTypeAnnotation\":\n case \"NullableTypeAnnotation\":\n case \"NumberLiteralTypeAnnotation\":\n case \"NumberTypeAnnotation\":\n case \"ObjectTypeAnnotation\":\n case \"ObjectTypeInternalSlot\":\n case \"ObjectTypeCallProperty\":\n case \"ObjectTypeIndexer\":\n case \"ObjectTypeProperty\":\n case \"ObjectTypeSpreadProperty\":\n case \"OpaqueType\":\n case \"QualifiedTypeIdentifier\":\n case \"StringLiteralTypeAnnotation\":\n case \"StringTypeAnnotation\":\n case \"SymbolTypeAnnotation\":\n case \"ThisTypeAnnotation\":\n case \"TupleTypeAnnotation\":\n case \"TypeofTypeAnnotation\":\n case \"TypeAlias\":\n case \"TypeAnnotation\":\n case \"TypeCastExpression\":\n case \"TypeParameter\":\n case \"TypeParameterDeclaration\":\n case \"TypeParameterInstantiation\":\n case \"UnionTypeAnnotation\":\n case \"Variance\":\n case \"VoidTypeAnnotation\":\n case \"EnumDeclaration\":\n case \"EnumBooleanBody\":\n case \"EnumNumberBody\":\n case \"EnumStringBody\":\n case \"EnumSymbolBody\":\n case \"EnumBooleanMember\":\n case \"EnumNumberMember\":\n case \"EnumStringMember\":\n case \"EnumDefaultedMember\":\n case \"IndexedAccessType\":\n case \"OptionalIndexedAccessType\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isFlowType(node: t.Node | null | undefined): node is t.FlowType;\nexport function isFlowType<Opts extends Options<t.FlowType>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.FlowType & Opts;\nexport function isFlowType<Opts extends Options<t.FlowType>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n switch (node.type) {\n case \"AnyTypeAnnotation\":\n case \"ArrayTypeAnnotation\":\n case \"BooleanTypeAnnotation\":\n case \"BooleanLiteralTypeAnnotation\":\n case \"NullLiteralTypeAnnotation\":\n case \"ExistsTypeAnnotation\":\n case \"FunctionTypeAnnotation\":\n case \"GenericTypeAnnotation\":\n case \"InterfaceTypeAnnotation\":\n case \"IntersectionTypeAnnotation\":\n case \"MixedTypeAnnotation\":\n case \"EmptyTypeAnnotation\":\n case \"NullableTypeAnnotation\":\n case \"NumberLiteralTypeAnnotation\":\n case \"NumberTypeAnnotation\":\n case \"ObjectTypeAnnotation\":\n case \"StringLiteralTypeAnnotation\":\n case \"StringTypeAnnotation\":\n case \"SymbolTypeAnnotation\":\n case \"ThisTypeAnnotation\":\n case \"TupleTypeAnnotation\":\n case \"TypeofTypeAnnotation\":\n case \"UnionTypeAnnotation\":\n case \"VoidTypeAnnotation\":\n case \"IndexedAccessType\":\n case \"OptionalIndexedAccessType\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isFlowBaseAnnotation(\n node: t.Node | null | undefined,\n): node is t.FlowBaseAnnotation;\nexport function isFlowBaseAnnotation<\n Opts extends Options<t.FlowBaseAnnotation>,\n>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.FlowBaseAnnotation & Opts;\nexport function isFlowBaseAnnotation<\n Opts extends Options<t.FlowBaseAnnotation>,\n>(node: t.Node | null | undefined, opts?: Opts | null): boolean {\n if (!node) return false;\n\n switch (node.type) {\n case \"AnyTypeAnnotation\":\n case \"BooleanTypeAnnotation\":\n case \"NullLiteralTypeAnnotation\":\n case \"MixedTypeAnnotation\":\n case \"EmptyTypeAnnotation\":\n case \"NumberTypeAnnotation\":\n case \"StringTypeAnnotation\":\n case \"SymbolTypeAnnotation\":\n case \"ThisTypeAnnotation\":\n case \"VoidTypeAnnotation\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isFlowDeclaration(\n node: t.Node | null | undefined,\n): node is t.FlowDeclaration;\nexport function isFlowDeclaration<Opts extends Options<t.FlowDeclaration>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.FlowDeclaration & Opts;\nexport function isFlowDeclaration<Opts extends Options<t.FlowDeclaration>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n switch (node.type) {\n case \"DeclareClass\":\n case \"DeclareFunction\":\n case \"DeclareInterface\":\n case \"DeclareModule\":\n case \"DeclareModuleExports\":\n case \"DeclareTypeAlias\":\n case \"DeclareOpaqueType\":\n case \"DeclareVariable\":\n case \"DeclareExportDeclaration\":\n case \"DeclareExportAllDeclaration\":\n case \"InterfaceDeclaration\":\n case \"OpaqueType\":\n case \"TypeAlias\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isFlowPredicate(\n node: t.Node | null | undefined,\n): node is t.FlowPredicate;\nexport function isFlowPredicate<Opts extends Options<t.FlowPredicate>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.FlowPredicate & Opts;\nexport function isFlowPredicate<Opts extends Options<t.FlowPredicate>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n switch (node.type) {\n case \"DeclaredPredicate\":\n case \"InferredPredicate\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isEnumBody(node: t.Node | null | undefined): node is t.EnumBody;\nexport function isEnumBody<Opts extends Options<t.EnumBody>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.EnumBody & Opts;\nexport function isEnumBody<Opts extends Options<t.EnumBody>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n switch (node.type) {\n case \"EnumBooleanBody\":\n case \"EnumNumberBody\":\n case \"EnumStringBody\":\n case \"EnumSymbolBody\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isEnumMember(\n node: t.Node | null | undefined,\n): node is t.EnumMember;\nexport function isEnumMember<Opts extends Options<t.EnumMember>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.EnumMember & Opts;\nexport function isEnumMember<Opts extends Options<t.EnumMember>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n switch (node.type) {\n case \"EnumBooleanMember\":\n case \"EnumNumberMember\":\n case \"EnumStringMember\":\n case \"EnumDefaultedMember\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSX(node: t.Node | null | undefined): node is t.JSX;\nexport function isJSX<Opts extends Options<t.JSX>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.JSX & Opts;\nexport function isJSX<Opts extends Options<t.JSX>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n switch (node.type) {\n case \"JSXAttribute\":\n case \"JSXClosingElement\":\n case \"JSXElement\":\n case \"JSXEmptyExpression\":\n case \"JSXExpressionContainer\":\n case \"JSXSpreadChild\":\n case \"JSXIdentifier\":\n case \"JSXMemberExpression\":\n case \"JSXNamespacedName\":\n case \"JSXOpeningElement\":\n case \"JSXSpreadAttribute\":\n case \"JSXText\":\n case \"JSXFragment\":\n case \"JSXOpeningFragment\":\n case \"JSXClosingFragment\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isMiscellaneous(\n node: t.Node | null | undefined,\n): node is t.Miscellaneous;\nexport function isMiscellaneous<Opts extends Options<t.Miscellaneous>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Miscellaneous & Opts;\nexport function isMiscellaneous<Opts extends Options<t.Miscellaneous>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n switch (node.type) {\n case \"Noop\":\n case \"Placeholder\":\n case \"V8IntrinsicIdentifier\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTypeScript(\n node: t.Node | null | undefined,\n): node is t.TypeScript;\nexport function isTypeScript<Opts extends Options<t.TypeScript>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TypeScript & Opts;\nexport function isTypeScript<Opts extends Options<t.TypeScript>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n switch (node.type) {\n case \"TSParameterProperty\":\n case \"TSDeclareFunction\":\n case \"TSDeclareMethod\":\n case \"TSQualifiedName\":\n case \"TSCallSignatureDeclaration\":\n case \"TSConstructSignatureDeclaration\":\n case \"TSPropertySignature\":\n case \"TSMethodSignature\":\n case \"TSIndexSignature\":\n case \"TSAnyKeyword\":\n case \"TSBooleanKeyword\":\n case \"TSBigIntKeyword\":\n case \"TSIntrinsicKeyword\":\n case \"TSNeverKeyword\":\n case \"TSNullKeyword\":\n case \"TSNumberKeyword\":\n case \"TSObjectKeyword\":\n case \"TSStringKeyword\":\n case \"TSSymbolKeyword\":\n case \"TSUndefinedKeyword\":\n case \"TSUnknownKeyword\":\n case \"TSVoidKeyword\":\n case \"TSThisType\":\n case \"TSFunctionType\":\n case \"TSConstructorType\":\n case \"TSTypeReference\":\n case \"TSTypePredicate\":\n case \"TSTypeQuery\":\n case \"TSTypeLiteral\":\n case \"TSArrayType\":\n case \"TSTupleType\":\n case \"TSOptionalType\":\n case \"TSRestType\":\n case \"TSNamedTupleMember\":\n case \"TSUnionType\":\n case \"TSIntersectionType\":\n case \"TSConditionalType\":\n case \"TSInferType\":\n case \"TSParenthesizedType\":\n case \"TSTypeOperator\":\n case \"TSIndexedAccessType\":\n case \"TSMappedType\":\n case \"TSTemplateLiteralType\":\n case \"TSLiteralType\":\n case \"TSExpressionWithTypeArguments\":\n case \"TSInterfaceDeclaration\":\n case \"TSInterfaceBody\":\n case \"TSTypeAliasDeclaration\":\n case \"TSInstantiationExpression\":\n case \"TSAsExpression\":\n case \"TSSatisfiesExpression\":\n case \"TSTypeAssertion\":\n case \"TSEnumBody\":\n case \"TSEnumDeclaration\":\n case \"TSEnumMember\":\n case \"TSModuleDeclaration\":\n case \"TSModuleBlock\":\n case \"TSImportType\":\n case \"TSImportEqualsDeclaration\":\n case \"TSExternalModuleReference\":\n case \"TSNonNullExpression\":\n case \"TSExportAssignment\":\n case \"TSNamespaceExportDeclaration\":\n case \"TSTypeAnnotation\":\n case \"TSTypeParameterInstantiation\":\n case \"TSTypeParameterDeclaration\":\n case \"TSTypeParameter\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSTypeElement(\n node: t.Node | null | undefined,\n): node is t.TSTypeElement;\nexport function isTSTypeElement<Opts extends Options<t.TSTypeElement>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSTypeElement & Opts;\nexport function isTSTypeElement<Opts extends Options<t.TSTypeElement>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n switch (node.type) {\n case \"TSCallSignatureDeclaration\":\n case \"TSConstructSignatureDeclaration\":\n case \"TSPropertySignature\":\n case \"TSMethodSignature\":\n case \"TSIndexSignature\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSType(node: t.Node | null | undefined): node is t.TSType;\nexport function isTSType<Opts extends Options<t.TSType>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSType & Opts;\nexport function isTSType<Opts extends Options<t.TSType>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n switch (node.type) {\n case \"TSAnyKeyword\":\n case \"TSBooleanKeyword\":\n case \"TSBigIntKeyword\":\n case \"TSIntrinsicKeyword\":\n case \"TSNeverKeyword\":\n case \"TSNullKeyword\":\n case \"TSNumberKeyword\":\n case \"TSObjectKeyword\":\n case \"TSStringKeyword\":\n case \"TSSymbolKeyword\":\n case \"TSUndefinedKeyword\":\n case \"TSUnknownKeyword\":\n case \"TSVoidKeyword\":\n case \"TSThisType\":\n case \"TSFunctionType\":\n case \"TSConstructorType\":\n case \"TSTypeReference\":\n case \"TSTypePredicate\":\n case \"TSTypeQuery\":\n case \"TSTypeLiteral\":\n case \"TSArrayType\":\n case \"TSTupleType\":\n case \"TSOptionalType\":\n case \"TSRestType\":\n case \"TSUnionType\":\n case \"TSIntersectionType\":\n case \"TSConditionalType\":\n case \"TSInferType\":\n case \"TSParenthesizedType\":\n case \"TSTypeOperator\":\n case \"TSIndexedAccessType\":\n case \"TSMappedType\":\n case \"TSTemplateLiteralType\":\n case \"TSLiteralType\":\n case \"TSExpressionWithTypeArguments\":\n case \"TSImportType\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSBaseType(\n node: t.Node | null | undefined,\n): node is t.TSBaseType;\nexport function isTSBaseType<Opts extends Options<t.TSBaseType>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSBaseType & Opts;\nexport function isTSBaseType<Opts extends Options<t.TSBaseType>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n if (!node) return false;\n\n switch (node.type) {\n case \"TSAnyKeyword\":\n case \"TSBooleanKeyword\":\n case \"TSBigIntKeyword\":\n case \"TSIntrinsicKeyword\":\n case \"TSNeverKeyword\":\n case \"TSNullKeyword\":\n case \"TSNumberKeyword\":\n case \"TSObjectKeyword\":\n case \"TSStringKeyword\":\n case \"TSSymbolKeyword\":\n case \"TSUndefinedKeyword\":\n case \"TSUnknownKeyword\":\n case \"TSVoidKeyword\":\n case \"TSThisType\":\n case \"TSTemplateLiteralType\":\n case \"TSLiteralType\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\n/**\n * @deprecated Use `isNumericLiteral`\n */\nexport function isNumberLiteral(node: t.Node | null | undefined): boolean;\nexport function isNumberLiteral<Opts extends Options<t.NumberLiteral>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean;\nexport function isNumberLiteral<Opts extends Options<t.NumberLiteral>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n deprecationWarning(\"isNumberLiteral\", \"isNumericLiteral\");\n if (!node) return false;\n\n if (node.type !== \"NumberLiteral\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\n/**\n * @deprecated Use `isRegExpLiteral`\n */\nexport function isRegexLiteral(node: t.Node | null | undefined): boolean;\nexport function isRegexLiteral<Opts extends Options<t.RegexLiteral>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean;\nexport function isRegexLiteral<Opts extends Options<t.RegexLiteral>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n deprecationWarning(\"isRegexLiteral\", \"isRegExpLiteral\");\n if (!node) return false;\n\n if (node.type !== \"RegexLiteral\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\n/**\n * @deprecated Use `isRestElement`\n */\nexport function isRestProperty(node: t.Node | null | undefined): boolean;\nexport function isRestProperty<Opts extends Options<t.RestProperty>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean;\nexport function isRestProperty<Opts extends Options<t.RestProperty>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n deprecationWarning(\"isRestProperty\", \"isRestElement\");\n if (!node) return false;\n\n if (node.type !== \"RestProperty\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\n/**\n * @deprecated Use `isSpreadElement`\n */\nexport function isSpreadProperty(node: t.Node | null | undefined): boolean;\nexport function isSpreadProperty<Opts extends Options<t.SpreadProperty>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean;\nexport function isSpreadProperty<Opts extends Options<t.SpreadProperty>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n deprecationWarning(\"isSpreadProperty\", \"isSpreadElement\");\n if (!node) return false;\n\n if (node.type !== \"SpreadProperty\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\n/**\n * @deprecated Use `isImportOrExportDeclaration`\n */\nexport function isModuleDeclaration<Opts extends Options<t.ModuleDeclaration>>(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ImportOrExportDeclaration & Opts {\n deprecationWarning(\"isModuleDeclaration\", \"isImportOrExportDeclaration\");\n return isImportOrExportDeclaration(node, opts);\n}\n","import {\n isIdentifier,\n isMetaProperty,\n isMemberExpression,\n isPrivateName,\n isStringLiteral,\n isSuper,\n isThisExpression,\n} from \"./generated/index.ts\";\nimport type * as t from \"../index.ts\";\n\nfunction isMemberExpressionLike(\n node: t.Node,\n): node is t.MemberExpression | t.MetaProperty {\n return isMemberExpression(node) || isMetaProperty(node);\n}\n\n/**\n * Determines whether or not the input node `member` matches the\n * input `match`.\n *\n * For example, given the match `React.createClass` it would match the\n * parsed nodes of `React.createClass` and `React[\"createClass\"]`.\n */\nexport default function matchesPattern(\n member: t.Node | null | undefined,\n match: string | string[],\n allowPartial?: boolean,\n): boolean {\n // not a member expression\n if (!isMemberExpressionLike(member)) return false;\n\n const parts = Array.isArray(match) ? match : match.split(\".\");\n const nodes = [];\n\n let node;\n for (\n node = member;\n isMemberExpressionLike(node);\n node = (node as t.MemberExpression).object ?? (node as t.MetaProperty).meta\n ) {\n nodes.push(node.property);\n }\n nodes.push(node);\n\n if (nodes.length < parts.length) return false;\n if (!allowPartial && nodes.length > parts.length) return false;\n\n for (let i = 0, j = nodes.length - 1; i < parts.length; i++, j--) {\n const node = nodes[j];\n let value;\n if (isIdentifier(node)) {\n value = node.name;\n } else if (isStringLiteral(node)) {\n value = node.value;\n } else if (isThisExpression(node)) {\n value = \"this\";\n } else if (isSuper(node)) {\n value = \"super\";\n } else if (isPrivateName(node)) {\n value = \"#\" + node.id.name;\n } else {\n return false;\n }\n\n if (parts[i] !== value) return false;\n }\n\n return true;\n}\n","import matchesPattern from \"./matchesPattern.ts\";\nimport type * as t from \"../index.ts\";\n\n/**\n * Build a function that when called will return whether or not the\n * input `node` `MemberExpression` matches the input `match`.\n *\n * For example, given the match `React.createClass` it would match the\n * parsed nodes of `React.createClass` and `React[\"createClass\"]`.\n */\nexport default function buildMatchMemberExpression(\n match: string,\n allowPartial?: boolean,\n) {\n const parts = match.split(\".\");\n\n return (member: t.Node) => matchesPattern(member, parts, allowPartial);\n}\n","import buildMatchMemberExpression from \"../buildMatchMemberExpression.ts\";\n\nconst isReactComponent = buildMatchMemberExpression(\"React.Component\");\n\nexport default isReactComponent;\n","export default function isCompatTag(tagName?: string): boolean {\n // Must start with a lowercase ASCII letter\n return !!tagName && /^[a-z]/.test(tagName);\n}\n","import { FLIPPED_ALIAS_KEYS, ALIAS_KEYS } from \"../definitions/index.ts\";\nimport type * as t from \"../index.ts\";\n\nexport default function isType<T extends t.Node[\"type\"]>(\n nodeType: string,\n targetType: T,\n): nodeType is T;\n\nexport default function isType(\n nodeType: string | null | undefined,\n targetType: string,\n): boolean;\n\n/**\n * Test if a `nodeType` is a `targetType` or if `targetType` is an alias of `nodeType`.\n */\nexport default function isType(nodeType: string, targetType: string): boolean {\n if (nodeType === targetType) return true;\n\n // If nodeType is nullish, it can't be an alias of targetType.\n if (nodeType == null) return false;\n\n // This is a fast-path. If the test above failed, but an alias key is found, then the\n // targetType was a primary node type, so there's no need to check the aliases.\n // @ts-expect-error targetType may not index ALIAS_KEYS\n if (ALIAS_KEYS[targetType]) return false;\n\n const aliases: string[] | undefined = FLIPPED_ALIAS_KEYS[targetType];\n if (aliases?.includes(nodeType)) return true;\n\n return false;\n}\n","import { PLACEHOLDERS_ALIAS } from \"../definitions/index.ts\";\n\n/**\n * Test if a `placeholderType` is a `targetType` or if `targetType` is an alias of `placeholderType`.\n */\nexport default function isPlaceholderType(\n placeholderType: string,\n targetType: string,\n): boolean {\n if (placeholderType === targetType) return true;\n\n const aliases: string[] | undefined = PLACEHOLDERS_ALIAS[placeholderType];\n if (aliases?.includes(targetType)) return true;\n\n return false;\n}\n","import shallowEqual from \"../utils/shallowEqual.ts\";\nimport isType from \"./isType.ts\";\nimport isPlaceholderType from \"./isPlaceholderType.ts\";\nimport { FLIPPED_ALIAS_KEYS } from \"../definitions/index.ts\";\nimport type * as t from \"../index.ts\";\n\nexport default function is<T extends t.Node[\"type\"]>(\n type: T,\n node: t.Node | null | undefined,\n opts?: undefined,\n): node is Extract<t.Node, { type: T }>;\n\nexport default function is<\n T extends t.Node[\"type\"],\n P extends Extract<t.Node, { type: T }>,\n>(type: T, n: t.Node | null | undefined, required: Partial<P>): n is P;\n\nexport default function is<P extends t.Node>(\n type: string,\n node: t.Node | null | undefined,\n opts: Partial<P>,\n): node is P;\n\nexport default function is(\n type: string,\n node: t.Node | null | undefined,\n opts?: Partial<t.Node>,\n): node is t.Node;\n/**\n * Returns whether `node` is of given `type`.\n *\n * For better performance, use this instead of `is[Type]` when `type` is unknown.\n */\nexport default function is(\n type: string,\n node: t.Node | null | undefined,\n opts?: Partial<t.Node>,\n): node is t.Node {\n if (!node) return false;\n\n const matches = isType(node.type, type);\n if (!matches) {\n if (!opts && node.type === \"Placeholder\" && type in FLIPPED_ALIAS_KEYS) {\n // We can only return true if the placeholder doesn't replace a real node,\n // but it replaces a category of nodes (an alias).\n //\n // t.is(\"Identifier\", node) gives some guarantees about node's shape, so we\n // can't say that Placeholder(expectedNode: \"Identifier\") is an identifier\n // because it doesn't have the same properties.\n // On the other hand, t.is(\"Expression\", node) doesn't say anything about\n // the shape of node because Expression can be many different nodes: we can,\n // and should, safely report expression placeholders as Expressions.\n return isPlaceholderType(node.expectedNode, type);\n }\n return false;\n }\n\n if (opts === undefined) {\n return true;\n } else {\n return shallowEqual(node, opts);\n }\n}\n","// We inline this package\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport * as charCodes from \"charcodes\";\n\n// ## Character categories\n\n// Big ugly regular expressions that match characters in the\n// whitespace, identifier, and identifier-start categories. These\n// are only applied when a character is found to actually have a\n// code point between 0x80 and 0xffff.\n// Generated by `scripts/generate-identifier-regex.cjs`.\n\n/* prettier-ignore */\nlet nonASCIIidentifierStartChars = \"\\xaa\\xb5\\xba\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376\\u0377\\u037a-\\u037d\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0620-\\u064a\\u066e\\u066f\\u0671-\\u06d3\\u06d5\\u06e5\\u06e6\\u06ee\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086a\\u0870-\\u0887\\u0889-\\u088f\\u08a0-\\u08c9\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098c\\u098f\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc\\u09dd\\u09df-\\u09e1\\u09f0\\u09f1\\u09fc\\u0a05-\\u0a0a\\u0a0f\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32\\u0a33\\u0a35\\u0a36\\u0a38\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0\\u0ae1\\u0af9\\u0b05-\\u0b0c\\u0b0f\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99\\u0b9a\\u0b9c\\u0b9e\\u0b9f\\u0ba3\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d\\u0c58-\\u0c5a\\u0c5c\\u0c5d\\u0c60\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cdc-\\u0cde\\u0ce0\\u0ce1\\u0cf1\\u0cf2\\u0d04-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32\\u0e33\\u0e40-\\u0e46\\u0e81\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0eb0\\u0eb2\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u1711\\u171f-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1878\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4c\\u1b83-\\u1ba0\\u1bae\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1c80-\\u1c8a\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5\\u1cf6\\u1cfa\\u1d00-\\u1dbf\\u1e00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u209c\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2ce4\\u2ceb-\\u2cee\\u2cf2\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d80-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309b-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31bf\\u31f0-\\u31ff\\u3400-\\u4dbf\\u4e00-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7dc\\ua7f1-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd\\ua8fe\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\ua9e0-\\ua9e4\\ua9e6-\\ua9ef\\ua9fa-\\ua9fe\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa7e-\\uaaaf\\uaab1\\uaab5\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab69\\uab70-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40\\ufb41\\ufb43\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc\";\n/* prettier-ignore */\nlet nonASCIIidentifierChars = \"\\xb7\\u0300-\\u036f\\u0387\\u0483-\\u0487\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u0669\\u0670\\u06d6-\\u06dc\\u06df-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u06f0-\\u06f9\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07c0-\\u07c9\\u07eb-\\u07f3\\u07fd\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0859-\\u085b\\u0897-\\u089f\\u08ca-\\u08e1\\u08e3-\\u0903\\u093a-\\u093c\\u093e-\\u094f\\u0951-\\u0957\\u0962\\u0963\\u0966-\\u096f\\u0981-\\u0983\\u09bc\\u09be-\\u09c4\\u09c7\\u09c8\\u09cb-\\u09cd\\u09d7\\u09e2\\u09e3\\u09e6-\\u09ef\\u09fe\\u0a01-\\u0a03\\u0a3c\\u0a3e-\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a66-\\u0a71\\u0a75\\u0a81-\\u0a83\\u0abc\\u0abe-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ae2\\u0ae3\\u0ae6-\\u0aef\\u0afa-\\u0aff\\u0b01-\\u0b03\\u0b3c\\u0b3e-\\u0b44\\u0b47\\u0b48\\u0b4b-\\u0b4d\\u0b55-\\u0b57\\u0b62\\u0b63\\u0b66-\\u0b6f\\u0b82\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c04\\u0c3c\\u0c3e-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0c66-\\u0c6f\\u0c81-\\u0c83\\u0cbc\\u0cbe-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0ce6-\\u0cef\\u0cf3\\u0d00-\\u0d03\\u0d3b\\u0d3c\\u0d3e-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4d\\u0d57\\u0d62\\u0d63\\u0d66-\\u0d6f\\u0d81-\\u0d83\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2\\u0df3\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0e50-\\u0e59\\u0eb1\\u0eb4-\\u0ebc\\u0ec8-\\u0ece\\u0ed0-\\u0ed9\\u0f18\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e\\u0f3f\\u0f71-\\u0f84\\u0f86\\u0f87\\u0f8d-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102b-\\u103e\\u1040-\\u1049\\u1056-\\u1059\\u105e-\\u1060\\u1062-\\u1064\\u1067-\\u106d\\u1071-\\u1074\\u1082-\\u108d\\u108f-\\u109d\\u135d-\\u135f\\u1369-\\u1371\\u1712-\\u1715\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b4-\\u17d3\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u180f-\\u1819\\u18a9\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u194f\\u19d0-\\u19da\\u1a17-\\u1a1b\\u1a55-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1ab0-\\u1abd\\u1abf-\\u1add\\u1ae0-\\u1aeb\\u1b00-\\u1b04\\u1b34-\\u1b44\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1b82\\u1ba1-\\u1bad\\u1bb0-\\u1bb9\\u1be6-\\u1bf3\\u1c24-\\u1c37\\u1c40-\\u1c49\\u1c50-\\u1c59\\u1cd0-\\u1cd2\\u1cd4-\\u1ce8\\u1ced\\u1cf4\\u1cf7-\\u1cf9\\u1dc0-\\u1dff\\u200c\\u200d\\u203f\\u2040\\u2054\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2cef-\\u2cf1\\u2d7f\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\u30fb\\ua620-\\ua629\\ua66f\\ua674-\\ua67d\\ua69e\\ua69f\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua823-\\ua827\\ua82c\\ua880\\ua881\\ua8b4-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f1\\ua8ff-\\ua909\\ua926-\\ua92d\\ua947-\\ua953\\ua980-\\ua983\\ua9b3-\\ua9c0\\ua9d0-\\ua9d9\\ua9e5\\ua9f0-\\ua9f9\\uaa29-\\uaa36\\uaa43\\uaa4c\\uaa4d\\uaa50-\\uaa59\\uaa7b-\\uaa7d\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uaaeb-\\uaaef\\uaaf5\\uaaf6\\uabe3-\\uabea\\uabec\\uabed\\uabf0-\\uabf9\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33\\ufe34\\ufe4d-\\ufe4f\\uff10-\\uff19\\uff3f\\uff65\";\n\nconst nonASCIIidentifierStart = new RegExp(\n \"[\" + nonASCIIidentifierStartChars + \"]\",\n);\nconst nonASCIIidentifier = new RegExp(\n \"[\" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + \"]\",\n);\n\nnonASCIIidentifierStartChars = nonASCIIidentifierChars = null;\n\n// These are a run-length and offset-encoded representation of the\n// >0xffff code points that are a valid part of identifiers. The\n// offset starts at 0x10000, and each pair of numbers represents an\n// offset to the next range, and then a size of the range. They were\n// generated by `scripts/generate-identifier-regex.cjs`.\n/* prettier-ignore */\nconst astralIdentifierStartCodes = [0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,4,51,13,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,7,25,39,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,39,27,10,22,251,41,7,1,17,5,57,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,20,1,64,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,31,9,2,0,3,0,2,37,2,0,26,0,2,0,45,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,200,32,32,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,24,43,261,18,16,0,2,12,2,33,125,0,80,921,103,110,18,195,2637,96,16,1071,18,5,26,3994,6,582,6842,29,1763,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,433,44,212,63,33,24,3,24,45,74,6,0,67,12,65,1,2,0,15,4,10,7381,42,31,98,114,8702,3,2,6,2,1,2,290,16,0,30,2,3,0,15,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,7,5,262,61,147,44,11,6,17,0,322,29,19,43,485,27,229,29,3,0,208,30,2,2,2,1,2,6,3,4,10,1,225,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4381,3,5773,3,7472,16,621,2467,541,1507,4938,6,8489];\n/* prettier-ignore */\nconst astralIdentifierCodes = [509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,7,9,32,4,318,1,78,5,71,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,3,0,158,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,68,8,2,0,3,0,2,3,2,4,2,0,15,1,83,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,7,19,58,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,199,7,137,9,54,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,55,9,266,3,10,1,2,0,49,6,4,4,14,10,5350,0,7,14,11465,27,2343,9,87,9,39,4,60,6,26,9,535,9,470,0,2,54,8,3,82,0,12,1,19628,1,4178,9,519,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,101,0,161,6,10,9,357,0,62,13,499,13,245,1,2,9,233,0,3,0,8,1,6,0,475,6,110,6,6,9,4759,9,787719,239];\n\n// This has a complexity linear to the value of the code. The\n// assumption is that looking up astral identifier characters is\n// rare.\nfunction isInAstralSet(code: number, set: readonly number[]): boolean {\n let pos = 0x10000;\n for (let i = 0, length = set.length; i < length; i += 2) {\n pos += set[i];\n if (pos > code) return false;\n\n pos += set[i + 1];\n if (pos >= code) return true;\n }\n return false;\n}\n\n// Test whether a given character code starts an identifier.\n\nexport function isIdentifierStart(code: number): boolean {\n if (code < charCodes.uppercaseA) return code === charCodes.dollarSign;\n if (code <= charCodes.uppercaseZ) return true;\n if (code < charCodes.lowercaseA) return code === charCodes.underscore;\n if (code <= charCodes.lowercaseZ) return true;\n if (code <= 0xffff) {\n return (\n code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code))\n );\n }\n return isInAstralSet(code, astralIdentifierStartCodes);\n}\n\n// Test whether a given character is part of an identifier.\n\nexport function isIdentifierChar(code: number): boolean {\n if (code < charCodes.digit0) return code === charCodes.dollarSign;\n if (code < charCodes.colon) return true;\n if (code < charCodes.uppercaseA) return false;\n if (code <= charCodes.uppercaseZ) return true;\n if (code < charCodes.lowercaseA) return code === charCodes.underscore;\n if (code <= charCodes.lowercaseZ) return true;\n if (code <= 0xffff) {\n return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code));\n }\n return (\n isInAstralSet(code, astralIdentifierStartCodes) ||\n isInAstralSet(code, astralIdentifierCodes)\n );\n}\n\n// Test whether a given string is a valid identifier name\n\nexport function isIdentifierName(name: string): boolean {\n let isFirst = true;\n for (let i = 0; i < name.length; i++) {\n // The implementation is based on\n // https://source.chromium.org/chromium/chromium/src/+/master:v8/src/builtins/builtins-string-gen.cc;l=1455;drc=221e331b49dfefadbc6fa40b0c68e6f97606d0b3;bpv=0;bpt=1\n // We reimplement `codePointAt` because `codePointAt` is a V8 builtin which is not inlined by TurboFan (as of M91)\n // since `name` is mostly ASCII, an inlined `charCodeAt` wins here\n let cp = name.charCodeAt(i);\n if ((cp & 0xfc00) === 0xd800 && i + 1 < name.length) {\n const trail = name.charCodeAt(++i);\n if ((trail & 0xfc00) === 0xdc00) {\n cp = 0x10000 + ((cp & 0x3ff) << 10) + (trail & 0x3ff);\n }\n }\n if (isFirst) {\n isFirst = false;\n if (!isIdentifierStart(cp)) {\n return false;\n }\n } else if (!isIdentifierChar(cp)) {\n return false;\n }\n }\n return !isFirst;\n}\n","const reservedWords = {\n keyword: [\n \"break\",\n \"case\",\n \"catch\",\n \"continue\",\n \"debugger\",\n \"default\",\n \"do\",\n \"else\",\n \"finally\",\n \"for\",\n \"function\",\n \"if\",\n \"return\",\n \"switch\",\n \"throw\",\n \"try\",\n \"var\",\n \"const\",\n \"while\",\n \"with\",\n \"new\",\n \"this\",\n \"super\",\n \"class\",\n \"extends\",\n \"export\",\n \"import\",\n \"null\",\n \"true\",\n \"false\",\n \"in\",\n \"instanceof\",\n \"typeof\",\n \"void\",\n \"delete\",\n ],\n strict: [\n \"implements\",\n \"interface\",\n \"let\",\n \"package\",\n \"private\",\n \"protected\",\n \"public\",\n \"static\",\n \"yield\",\n ],\n strictBind: [\"eval\", \"arguments\"],\n};\nconst keywords = new Set(reservedWords.keyword);\nconst reservedWordsStrictSet = new Set(reservedWords.strict);\nconst reservedWordsStrictBindSet = new Set(reservedWords.strictBind);\n\n/**\n * Checks if word is a reserved word in non-strict mode\n */\nexport function isReservedWord(word: string, inModule: boolean): boolean {\n return (inModule && word === \"await\") || word === \"enum\";\n}\n\n/**\n * Checks if word is a reserved word in non-binding strict mode\n *\n * Includes non-strict reserved words\n */\nexport function isStrictReservedWord(word: string, inModule: boolean): boolean {\n return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word);\n}\n\n/**\n * Checks if word is a reserved word in binding strict mode, but it is allowed as\n * a normal identifier.\n */\nexport function isStrictBindOnlyReservedWord(word: string): boolean {\n return reservedWordsStrictBindSet.has(word);\n}\n\n/**\n * Checks if word is a reserved word in binding strict mode\n *\n * Includes non-strict reserved words and non-binding strict reserved words\n */\nexport function isStrictBindReservedWord(\n word: string,\n inModule: boolean,\n): boolean {\n return (\n isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word)\n );\n}\n\nexport function isKeyword(word: string): boolean {\n return keywords.has(word);\n}\n","export {\n isIdentifierName,\n isIdentifierChar,\n isIdentifierStart,\n} from \"./identifier.ts\";\nexport {\n isReservedWord,\n isStrictBindOnlyReservedWord,\n isStrictBindReservedWord,\n isStrictReservedWord,\n isKeyword,\n} from \"./keyword.ts\";\n","import {\n isIdentifierName,\n isStrictReservedWord,\n isKeyword,\n} from \"@babel/helper-validator-identifier\";\n\n/**\n * Check if the input `name` is a valid identifier name\n * and isn't a reserved word.\n */\nexport default function isValidIdentifier(\n name: string,\n reserved: boolean = true,\n): boolean {\n if (typeof name !== \"string\") return false;\n\n if (reserved) {\n // \"await\" is invalid in module, valid in script; better be safe (see #4952)\n if (isKeyword(name) || isStrictReservedWord(name, true)) {\n return false;\n }\n }\n\n return isIdentifierName(name);\n}\n","// We inline this package\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport * as charCodes from \"charcodes\";\n\n// The following character codes are forbidden from being\n// an immediate sibling of NumericLiteralSeparator _\nconst forbiddenNumericSeparatorSiblings = {\n decBinOct: new Set<number>([\n charCodes.dot,\n charCodes.uppercaseB,\n charCodes.uppercaseE,\n charCodes.uppercaseO,\n charCodes.underscore, // multiple separators are not allowed\n charCodes.lowercaseB,\n charCodes.lowercaseE,\n charCodes.lowercaseO,\n ]),\n hex: new Set<number>([\n charCodes.dot,\n charCodes.uppercaseX,\n charCodes.underscore, // multiple separators are not allowed\n charCodes.lowercaseX,\n ]),\n};\n\nconst isAllowedNumericSeparatorSibling = {\n // 0 - 1\n bin: (ch: number) => ch === charCodes.digit0 || ch === charCodes.digit1,\n\n // 0 - 7\n oct: (ch: number) => ch >= charCodes.digit0 && ch <= charCodes.digit7,\n\n // 0 - 9\n dec: (ch: number) => ch >= charCodes.digit0 && ch <= charCodes.digit9,\n\n // 0 - 9, A - F, a - f,\n hex: (ch: number) =>\n (ch >= charCodes.digit0 && ch <= charCodes.digit9) ||\n (ch >= charCodes.uppercaseA && ch <= charCodes.uppercaseF) ||\n (ch >= charCodes.lowercaseA && ch <= charCodes.lowercaseF),\n};\n\nexport type StringContentsErrorHandlers = EscapedCharErrorHandlers & {\n unterminated(\n initialPos: number,\n initialLineStart: number,\n initialCurLine: number,\n ): void;\n};\n\nexport function readStringContents(\n type: \"single\" | \"double\" | \"template\",\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n errors: StringContentsErrorHandlers,\n) {\n const initialPos = pos;\n const initialLineStart = lineStart;\n const initialCurLine = curLine;\n\n let out = \"\";\n let firstInvalidLoc = null;\n let chunkStart = pos;\n const { length } = input;\n for (;;) {\n if (pos >= length) {\n errors.unterminated(initialPos, initialLineStart, initialCurLine);\n out += input.slice(chunkStart, pos);\n break;\n }\n const ch = input.charCodeAt(pos);\n if (isStringEnd(type, ch, input, pos)) {\n out += input.slice(chunkStart, pos);\n break;\n }\n if (ch === charCodes.backslash) {\n out += input.slice(chunkStart, pos);\n const res = readEscapedChar(\n input,\n pos,\n lineStart,\n curLine,\n type === \"template\",\n errors,\n );\n if (res.ch === null && !firstInvalidLoc) {\n firstInvalidLoc = { pos, lineStart, curLine };\n } else {\n out += res.ch;\n }\n ({ pos, lineStart, curLine } = res);\n chunkStart = pos;\n } else if (\n ch === charCodes.lineSeparator ||\n ch === charCodes.paragraphSeparator\n ) {\n ++pos;\n ++curLine;\n lineStart = pos;\n } else if (ch === charCodes.lineFeed || ch === charCodes.carriageReturn) {\n if (type === \"template\") {\n out += input.slice(chunkStart, pos) + \"\\n\";\n ++pos;\n if (\n ch === charCodes.carriageReturn &&\n input.charCodeAt(pos) === charCodes.lineFeed\n ) {\n ++pos;\n }\n ++curLine;\n chunkStart = lineStart = pos;\n } else {\n errors.unterminated(initialPos, initialLineStart, initialCurLine);\n }\n } else {\n ++pos;\n }\n }\n return process.env.BABEL_8_BREAKING\n ? { pos, str: out, firstInvalidLoc, lineStart, curLine }\n : {\n pos,\n str: out,\n firstInvalidLoc,\n lineStart,\n curLine,\n containsInvalid: !!firstInvalidLoc,\n };\n}\n\nfunction isStringEnd(\n type: \"single\" | \"double\" | \"template\",\n ch: number,\n input: string,\n pos: number,\n) {\n if (type === \"template\") {\n return (\n ch === charCodes.graveAccent ||\n (ch === charCodes.dollarSign &&\n input.charCodeAt(pos + 1) === charCodes.leftCurlyBrace)\n );\n }\n return (\n ch === (type === \"double\" ? charCodes.quotationMark : charCodes.apostrophe)\n );\n}\n\ntype EscapedCharErrorHandlers = HexCharErrorHandlers &\n CodePointErrorHandlers & {\n strictNumericEscape(pos: number, lineStart: number, curLine: number): void;\n };\n\nfunction readEscapedChar(\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n inTemplate: boolean,\n errors: EscapedCharErrorHandlers,\n) {\n const throwOnInvalid = !inTemplate;\n pos++; // skip '\\'\n\n const res = (ch: string | null) => ({ pos, ch, lineStart, curLine });\n\n const ch = input.charCodeAt(pos++);\n switch (ch) {\n case charCodes.lowercaseN:\n return res(\"\\n\");\n case charCodes.lowercaseR:\n return res(\"\\r\");\n case charCodes.lowercaseX: {\n let code;\n ({ code, pos } = readHexChar(\n input,\n pos,\n lineStart,\n curLine,\n 2,\n false,\n throwOnInvalid,\n errors,\n ));\n return res(code === null ? null : String.fromCharCode(code));\n }\n case charCodes.lowercaseU: {\n let code;\n ({ code, pos } = readCodePoint(\n input,\n pos,\n lineStart,\n curLine,\n throwOnInvalid,\n errors,\n ));\n return res(code === null ? null : String.fromCodePoint(code));\n }\n case charCodes.lowercaseT:\n return res(\"\\t\");\n case charCodes.lowercaseB:\n return res(\"\\b\");\n case charCodes.lowercaseV:\n return res(\"\\u000b\");\n case charCodes.lowercaseF:\n return res(\"\\f\");\n case charCodes.carriageReturn:\n if (input.charCodeAt(pos) === charCodes.lineFeed) {\n ++pos;\n }\n // fall through\n case charCodes.lineFeed:\n lineStart = pos;\n ++curLine;\n // fall through\n case charCodes.lineSeparator:\n case charCodes.paragraphSeparator:\n return res(\"\");\n case charCodes.digit8:\n case charCodes.digit9:\n if (inTemplate) {\n return res(null);\n } else {\n errors.strictNumericEscape(pos - 1, lineStart, curLine);\n }\n // fall through\n default:\n if (ch >= charCodes.digit0 && ch <= charCodes.digit7) {\n const startPos = pos - 1;\n const match = /^[0-7]+/.exec(input.slice(startPos, pos + 2));\n\n let octalStr = match[0];\n\n let octal = parseInt(octalStr, 8);\n if (octal > 255) {\n octalStr = octalStr.slice(0, -1);\n octal = parseInt(octalStr, 8);\n }\n pos += octalStr.length - 1;\n const next = input.charCodeAt(pos);\n if (\n octalStr !== \"0\" ||\n next === charCodes.digit8 ||\n next === charCodes.digit9\n ) {\n if (inTemplate) {\n return res(null);\n } else {\n errors.strictNumericEscape(startPos, lineStart, curLine);\n }\n }\n\n return res(String.fromCharCode(octal));\n }\n\n return res(String.fromCharCode(ch));\n }\n}\n\ntype HexCharErrorHandlers = IntErrorHandlers & {\n invalidEscapeSequence(pos: number, lineStart: number, curLine: number): void;\n};\n\n// Used to read character escape sequences ('\\x', '\\u').\nfunction readHexChar(\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n len: number,\n forceLen: boolean,\n throwOnInvalid: boolean,\n errors: HexCharErrorHandlers,\n) {\n const initialPos = pos;\n let n;\n ({ n, pos } = readInt(\n input,\n pos,\n lineStart,\n curLine,\n 16,\n len,\n forceLen,\n false,\n errors,\n /* bailOnError */ !throwOnInvalid,\n ));\n if (n === null) {\n if (throwOnInvalid) {\n errors.invalidEscapeSequence(initialPos, lineStart, curLine);\n } else {\n pos = initialPos - 1;\n }\n }\n return { code: n, pos };\n}\n\nexport type IntErrorHandlers = {\n numericSeparatorInEscapeSequence(\n pos: number,\n lineStart: number,\n curLine: number,\n ): void;\n unexpectedNumericSeparator(\n pos: number,\n lineStart: number,\n curLine: number,\n ): void;\n // It can return \"true\" to indicate that the error was handled\n // and the int parsing should continue.\n invalidDigit(\n pos: number,\n lineStart: number,\n curLine: number,\n radix: number,\n ): boolean;\n};\n\nexport function readInt(\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n radix: number,\n len: number | undefined,\n forceLen: boolean,\n allowNumSeparator: boolean | \"bail\",\n errors: IntErrorHandlers,\n bailOnError: boolean,\n) {\n const start = pos;\n const forbiddenSiblings =\n radix === 16\n ? forbiddenNumericSeparatorSiblings.hex\n : forbiddenNumericSeparatorSiblings.decBinOct;\n const isAllowedSibling =\n radix === 16\n ? isAllowedNumericSeparatorSibling.hex\n : radix === 10\n ? isAllowedNumericSeparatorSibling.dec\n : radix === 8\n ? isAllowedNumericSeparatorSibling.oct\n : isAllowedNumericSeparatorSibling.bin;\n\n let invalid = false;\n let total = 0;\n\n for (let i = 0, e = len == null ? Infinity : len; i < e; ++i) {\n const code = input.charCodeAt(pos);\n let val;\n\n if (code === charCodes.underscore && allowNumSeparator !== \"bail\") {\n const prev = input.charCodeAt(pos - 1);\n const next = input.charCodeAt(pos + 1);\n\n if (!allowNumSeparator) {\n if (bailOnError) return { n: null, pos };\n errors.numericSeparatorInEscapeSequence(pos, lineStart, curLine);\n } else if (\n Number.isNaN(next) ||\n !isAllowedSibling(next) ||\n forbiddenSiblings.has(prev) ||\n forbiddenSiblings.has(next)\n ) {\n if (bailOnError) return { n: null, pos };\n errors.unexpectedNumericSeparator(pos, lineStart, curLine);\n }\n\n // Ignore this _ character\n ++pos;\n continue;\n }\n\n if (code >= charCodes.lowercaseA) {\n val = code - charCodes.lowercaseA + charCodes.lineFeed;\n } else if (code >= charCodes.uppercaseA) {\n val = code - charCodes.uppercaseA + charCodes.lineFeed;\n } else if (charCodes.isDigit(code)) {\n val = code - charCodes.digit0; // 0-9\n } else {\n val = Infinity;\n }\n if (val >= radix) {\n // If we found a digit which is too big, errors.invalidDigit can return true to avoid\n // breaking the loop (this is used for error recovery).\n if (val <= 9 && bailOnError) {\n return { n: null, pos };\n } else if (\n val <= 9 &&\n errors.invalidDigit(pos, lineStart, curLine, radix)\n ) {\n val = 0;\n } else if (forceLen) {\n val = 0;\n invalid = true;\n } else {\n break;\n }\n }\n ++pos;\n total = total * radix + val;\n }\n if (pos === start || (len != null && pos - start !== len) || invalid) {\n return { n: null, pos };\n }\n\n return { n: total, pos };\n}\n\nexport type CodePointErrorHandlers = HexCharErrorHandlers & {\n invalidCodePoint(pos: number, lineStart: number, curLine: number): void;\n};\n\nexport function readCodePoint(\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n throwOnInvalid: boolean,\n errors: CodePointErrorHandlers,\n) {\n const ch = input.charCodeAt(pos);\n let code;\n\n if (ch === charCodes.leftCurlyBrace) {\n ++pos;\n ({ code, pos } = readHexChar(\n input,\n pos,\n lineStart,\n curLine,\n input.indexOf(\"}\", pos) - pos,\n true,\n throwOnInvalid,\n errors,\n ));\n ++pos;\n if (code !== null && code > 0x10ffff) {\n if (throwOnInvalid) {\n errors.invalidCodePoint(pos, lineStart, curLine);\n } else {\n return { code: null, pos };\n }\n }\n } else {\n ({ code, pos } = readHexChar(\n input,\n pos,\n lineStart,\n curLine,\n 4,\n false,\n throwOnInvalid,\n errors,\n ));\n }\n return { code, pos };\n}\n","export const STATEMENT_OR_BLOCK_KEYS = [\"consequent\", \"body\", \"alternate\"];\nexport const FLATTENABLE_KEYS = [\"body\", \"expressions\"];\nexport const FOR_INIT_KEYS = [\"left\", \"init\"];\nexport const COMMENT_KEYS = [\n \"leadingComments\",\n \"trailingComments\",\n \"innerComments\",\n] as const;\n\nexport const LOGICAL_OPERATORS = [\"||\", \"&&\", \"??\"];\nexport const UPDATE_OPERATORS = [\"++\", \"--\"];\n\nexport const BOOLEAN_NUMBER_BINARY_OPERATORS = [\">\", \"<\", \">=\", \"<=\"];\nexport const EQUALITY_BINARY_OPERATORS = [\"==\", \"===\", \"!=\", \"!==\"];\nexport const COMPARISON_BINARY_OPERATORS = [\n ...EQUALITY_BINARY_OPERATORS,\n \"in\",\n \"instanceof\",\n];\nexport const BOOLEAN_BINARY_OPERATORS = [\n ...COMPARISON_BINARY_OPERATORS,\n ...BOOLEAN_NUMBER_BINARY_OPERATORS,\n];\nexport const NUMBER_BINARY_OPERATORS = [\n \"-\",\n \"/\",\n \"%\",\n \"*\",\n \"**\",\n \"&\",\n \"|\",\n \">>\",\n \">>>\",\n \"<<\",\n \"^\",\n];\nexport const BINARY_OPERATORS = [\n \"+\",\n ...NUMBER_BINARY_OPERATORS,\n ...BOOLEAN_BINARY_OPERATORS,\n \"|>\",\n];\n\nexport const ASSIGNMENT_OPERATORS = [\n \"=\",\n \"+=\",\n ...NUMBER_BINARY_OPERATORS.map(op => op + \"=\"),\n ...LOGICAL_OPERATORS.map(op => op + \"=\"),\n];\n\nexport const BOOLEAN_UNARY_OPERATORS = [\"delete\", \"!\"];\nexport const NUMBER_UNARY_OPERATORS = [\"+\", \"-\", \"~\"];\nexport const STRING_UNARY_OPERATORS = [\"typeof\"];\nexport const UNARY_OPERATORS = [\n \"void\",\n \"throw\",\n ...BOOLEAN_UNARY_OPERATORS,\n ...NUMBER_UNARY_OPERATORS,\n ...STRING_UNARY_OPERATORS,\n];\n\nexport const INHERIT_KEYS = {\n optional: [\"typeAnnotation\", \"typeParameters\", \"returnType\"],\n force: [\"start\", \"loc\", \"end\"],\n} as const;\n\nif (!process.env.BABEL_8_BREAKING && !USE_ESM) {\n // eslint-disable-next-line no-restricted-globals\n exports.BLOCK_SCOPED_SYMBOL = Symbol.for(\"var used to be block scoped\");\n // eslint-disable-next-line no-restricted-globals\n exports.NOT_LOCAL_BINDING = Symbol.for(\n \"should not be considered a local binding\",\n );\n}\n","import is from \"../validators/is.ts\";\nimport { validateField, validateChild } from \"../validators/validate.ts\";\nimport type * as t from \"../index.ts\";\n\nexport const VISITOR_KEYS: Record<string, string[]> = {};\nexport const ALIAS_KEYS: Partial<Record<NodeTypesWithoutComment, string[]>> =\n {};\nexport const FLIPPED_ALIAS_KEYS: Record<string, NodeTypesWithoutComment[]> = {};\nexport const NODE_FIELDS: Record<string, FieldDefinitions> = {};\nexport const BUILDER_KEYS: Record<string, string[]> = {};\nexport const DEPRECATED_KEYS: Record<string, NodeTypesWithoutComment> = {};\nexport const NODE_PARENT_VALIDATIONS: Record<string, Validator> = {};\nexport const NODE_UNION_SHAPES__PRIVATE: Record<string, UnionShape> = {};\n\nfunction getType(val: any) {\n if (Array.isArray(val)) {\n return \"array\";\n } else if (val === null) {\n return \"null\";\n } else {\n return typeof val;\n }\n}\n\ntype NodeTypesWithoutComment = t.Node[\"type\"] | keyof t.Aliases;\n\ntype NodeTypes = NodeTypesWithoutComment | t.Comment[\"type\"];\n\ntype PrimitiveTypes = ReturnType<typeof getType>;\n\ntype FieldDefinitions = Record<string, FieldOptions>;\n\ntype UnionShape = {\n discriminator: string;\n shapes: {\n name: string;\n value: any[];\n properties: Record<string, FieldOptions>;\n }[];\n};\n\ntype DefineTypeOpts = {\n fields?: FieldDefinitions;\n visitor?: string[];\n aliases?: string[];\n builder?: string[];\n inherits?: NodeTypes;\n deprecatedAlias?: string;\n validate?: Validator;\n unionShape?: UnionShape;\n};\n\nexport type ValidatorImpl = (\n node?: t.Node,\n key?: string | { toString(): string },\n val?: any,\n) => void;\n\nexport type ValidatorType = { type: PrimitiveTypes } & ValidatorImpl;\nexport type ValidatorEach = { each: Validator } & ValidatorImpl;\nexport type ValidatorChainOf = {\n chainOf: readonly Validator[];\n} & ValidatorImpl;\nexport type ValidatorOneOf = { oneOf: readonly any[] } & ValidatorImpl;\nexport type ValidatorOneOfNodeTypes = {\n oneOfNodeTypes: readonly NodeTypes[];\n} & ValidatorImpl;\nexport type ValidatorOneOfNodeOrValueTypes = {\n oneOfNodeOrValueTypes: readonly (NodeTypes | PrimitiveTypes)[];\n} & ValidatorImpl;\nexport type ValidatorShapeOf = {\n shapeOf: Record<string, FieldOptions>;\n} & ValidatorImpl;\n\nexport type Validator =\n | ValidatorType\n | ValidatorEach\n | ValidatorChainOf\n | ValidatorOneOf\n | ValidatorOneOfNodeTypes\n | ValidatorOneOfNodeOrValueTypes\n | ValidatorShapeOf\n | ValidatorImpl;\n\nexport type FieldOptions = {\n default?: string | number | boolean | [];\n optional?: boolean;\n deprecated?: boolean;\n validate?: Validator;\n};\n\nexport function validate(validate: Validator): FieldOptions {\n return { validate };\n}\n\nexport function validateType(...typeNames: NodeTypes[]) {\n return validate(assertNodeType(...typeNames));\n}\n\nexport function validateOptional(validate: Validator): FieldOptions {\n return { validate, optional: true };\n}\n\nexport function validateOptionalType(...typeNames: NodeTypes[]): FieldOptions {\n return { validate: assertNodeType(...typeNames), optional: true };\n}\n\nexport function arrayOf(elementType: Validator): Validator {\n return chain(assertValueType(\"array\"), assertEach(elementType));\n}\n\nexport function arrayOfType(...typeNames: NodeTypes[]) {\n return arrayOf(assertNodeType(...typeNames));\n}\n\nexport function validateArrayOfType(...typeNames: NodeTypes[]) {\n return validate(arrayOfType(...typeNames));\n}\n\nexport function assertEach(callback: Validator): Validator {\n const childValidator =\n process.env.BABEL_8_BREAKING || process.env.BABEL_TYPES_8_BREAKING\n ? validateChild\n : () => {};\n\n function validator(node: t.Node, key: string, val: any) {\n if (!Array.isArray(val)) return;\n\n let i = 0;\n // We lazily concatenate strings here for performance reasons.\n // Concatenating the strings is expensive because we are actually concatenating a string and a number,\n // so V8 cannot just create a \"rope string\" but has to allocate memory for the string resulting from the number\n // This string is very rarely used, only in error paths, so we can skip the concatenation cost in most cases\n const subKey = {\n toString() {\n return `${key}[${i}]`;\n },\n };\n\n for (; i < val.length; i++) {\n const v = val[i];\n callback(node, subKey, v);\n childValidator(node, subKey, v);\n }\n }\n validator.each = callback;\n return validator;\n}\n\nexport function assertOneOf(...values: any[]): Validator {\n function validate(node: any, key: string, val: any) {\n if (!values.includes(val)) {\n throw new TypeError(\n `Property ${key} expected value to be one of ${JSON.stringify(\n values,\n )} but got ${JSON.stringify(val)}`,\n );\n }\n }\n\n validate.oneOf = values;\n\n return validate;\n}\n\nexport const allExpandedTypes: {\n types: NodeTypes[];\n set: Set<string>;\n}[] = [];\n\nexport function assertNodeType(...types: NodeTypes[]): Validator {\n const expandedTypes = new Set<string>();\n\n allExpandedTypes.push({ types, set: expandedTypes });\n\n function validate(node: t.Node, key: string, val: any) {\n const valType = val?.type;\n if (valType != null) {\n if (expandedTypes.has(valType)) {\n validateChild(node, key, val);\n return;\n }\n if (valType === \"Placeholder\") {\n for (const type of types) {\n if (is(type, val)) {\n validateChild(node, key, val);\n return;\n }\n }\n }\n }\n\n throw new TypeError(\n `Property ${key} of ${\n node.type\n } expected node to be of a type ${JSON.stringify(\n types,\n )} but instead got ${JSON.stringify(valType)}`,\n );\n }\n\n validate.oneOfNodeTypes = types;\n\n return validate;\n}\n\nexport function assertNodeOrValueType(\n ...types: (NodeTypes | PrimitiveTypes)[]\n): Validator {\n function validate(node: t.Node, key: string, val: any) {\n const primitiveType = getType(val);\n for (const type of types) {\n if (primitiveType === type || is(type, val)) {\n validateChild(node, key, val);\n return;\n }\n }\n\n throw new TypeError(\n `Property ${key} of ${\n node.type\n } expected node to be of a type ${JSON.stringify(\n types,\n )} but instead got ${JSON.stringify(val?.type)}`,\n );\n }\n\n validate.oneOfNodeOrValueTypes = types;\n\n return validate;\n}\n\nexport function assertValueType(type: PrimitiveTypes): Validator {\n function validate(node: t.Node, key: string, val: any) {\n if (getType(val) === type) {\n return;\n }\n\n throw new TypeError(\n `Property ${key} expected type of ${type} but got ${getType(val)}`,\n );\n }\n\n validate.type = type;\n\n return validate;\n}\n\nexport function assertShape(shape: Record<string, FieldOptions>): Validator {\n const keys = Object.keys(shape);\n function validate(node: t.Node, key: string, val: any) {\n const errors = [];\n for (const property of keys) {\n try {\n validateField(node, property, val[property], shape[property]);\n } catch (error) {\n if (error instanceof TypeError) {\n errors.push(error.message);\n continue;\n }\n throw error;\n }\n }\n if (errors.length) {\n throw new TypeError(\n `Property ${key} of ${\n node.type\n } expected to have the following:\\n${errors.join(\"\\n\")}`,\n );\n }\n }\n\n validate.shapeOf = shape;\n\n return validate;\n}\n\nexport function assertOptionalChainStart(): Validator {\n function validate(node: t.Node) {\n let current = node;\n while (node) {\n const { type } = current;\n if (type === \"OptionalCallExpression\") {\n if (current.optional) return;\n current = current.callee;\n continue;\n }\n\n if (type === \"OptionalMemberExpression\") {\n if (current.optional) return;\n current = current.object;\n continue;\n }\n\n break;\n }\n\n throw new TypeError(\n `Non-optional ${node.type} must chain from an optional OptionalMemberExpression or OptionalCallExpression. Found chain from ${current?.type}`,\n );\n }\n\n return validate;\n}\n\nexport function chain(...fns: Validator[]): Validator {\n function validate(...args: Parameters<Validator>) {\n for (const fn of fns) {\n fn(...args);\n }\n }\n validate.chainOf = fns;\n\n if (\n fns.length >= 2 &&\n \"type\" in fns[0] &&\n fns[0].type === \"array\" &&\n !(\"each\" in fns[1])\n ) {\n throw new Error(\n `An assertValueType(\"array\") validator can only be followed by an assertEach(...) validator.`,\n );\n }\n\n return validate;\n}\n\nconst validTypeOpts = new Set([\n \"aliases\",\n \"builder\",\n \"deprecatedAlias\",\n \"fields\",\n \"inherits\",\n \"visitor\",\n \"validate\",\n \"unionShape\",\n]);\nconst validFieldKeys = new Set([\n \"default\",\n \"optional\",\n \"deprecated\",\n \"validate\",\n]);\n\nconst store = {} as Record<string, DefineTypeOpts>;\n\n// Wraps defineType to ensure these aliases are included.\nexport function defineAliasedType(...aliases: string[]) {\n return (type: string, opts: DefineTypeOpts = {}) => {\n let defined = opts.aliases;\n if (!defined) {\n if (opts.inherits) defined = store[opts.inherits].aliases?.slice();\n defined ??= [];\n opts.aliases = defined;\n }\n const additional = aliases.filter(a => !defined.includes(a));\n defined.unshift(...additional);\n defineType(type, opts);\n };\n}\n\nexport default function defineType(type: string, opts: DefineTypeOpts = {}) {\n const inherits = (opts.inherits && store[opts.inherits]) || {};\n\n let fields = opts.fields;\n if (!fields) {\n fields = {};\n if (inherits.fields) {\n const keys = Object.getOwnPropertyNames(inherits.fields);\n for (const key of keys) {\n const field = inherits.fields[key];\n const def = field.default;\n if (\n Array.isArray(def) ? def.length > 0 : def && typeof def === \"object\"\n ) {\n throw new Error(\n \"field defaults can only be primitives or empty arrays currently\",\n );\n }\n fields[key] = {\n default: Array.isArray(def) ? [] : def,\n optional: field.optional,\n deprecated: field.deprecated,\n validate: field.validate,\n };\n }\n }\n }\n\n const visitor: string[] = opts.visitor || inherits.visitor || [];\n const aliases: string[] = opts.aliases || inherits.aliases || [];\n const builder: string[] =\n opts.builder || inherits.builder || opts.visitor || [];\n\n for (const k of Object.keys(opts)) {\n if (!validTypeOpts.has(k)) {\n throw new Error(`Unknown type option \"${k}\" on ${type}`);\n }\n }\n\n if (opts.deprecatedAlias) {\n DEPRECATED_KEYS[opts.deprecatedAlias] = type as NodeTypesWithoutComment;\n }\n\n // ensure all field keys are represented in `fields`\n for (const key of visitor.concat(builder)) {\n fields[key] = fields[key] || {};\n }\n\n for (const key of Object.keys(fields)) {\n const field = fields[key];\n\n if (field.default !== undefined && !builder.includes(key)) {\n field.optional = true;\n }\n if (field.default === undefined) {\n field.default = null;\n } else if (!field.validate && field.default != null) {\n field.validate = assertValueType(getType(field.default));\n }\n\n for (const k of Object.keys(field)) {\n if (!validFieldKeys.has(k)) {\n throw new Error(`Unknown field key \"${k}\" on ${type}.${key}`);\n }\n }\n }\n\n VISITOR_KEYS[type] = opts.visitor = visitor;\n BUILDER_KEYS[type] = opts.builder = builder;\n NODE_FIELDS[type] = opts.fields = fields;\n ALIAS_KEYS[type as NodeTypesWithoutComment] = opts.aliases = aliases;\n aliases.forEach(alias => {\n FLIPPED_ALIAS_KEYS[alias] = FLIPPED_ALIAS_KEYS[alias] || [];\n FLIPPED_ALIAS_KEYS[alias].push(type as NodeTypesWithoutComment);\n });\n\n if (opts.validate) {\n NODE_PARENT_VALIDATIONS[type] = opts.validate;\n }\n if (opts.unionShape) {\n NODE_UNION_SHAPES__PRIVATE[type] = opts.unionShape;\n }\n\n store[type] = opts;\n}\n","import is from \"../validators/is.ts\";\nimport isValidIdentifier from \"../validators/isValidIdentifier.ts\";\nimport { isKeyword, isReservedWord } from \"@babel/helper-validator-identifier\";\nimport type * as t from \"../index.ts\";\nimport { readStringContents } from \"@babel/helper-string-parser\";\n\nimport {\n BINARY_OPERATORS,\n LOGICAL_OPERATORS,\n ASSIGNMENT_OPERATORS,\n UNARY_OPERATORS,\n UPDATE_OPERATORS,\n} from \"../constants/index.ts\";\n\nimport {\n defineAliasedType,\n assertShape,\n assertOptionalChainStart,\n assertValueType,\n assertNodeType,\n assertNodeOrValueType,\n assertEach,\n chain,\n assertOneOf,\n validateOptional,\n arrayOf,\n arrayOfType,\n validateArrayOfType,\n validateType,\n type Validator,\n type ValidatorImpl,\n type ValidatorOneOfNodeTypes,\n type ValidatorType,\n} from \"./utils.ts\";\n\nexport const classMethodOrPropertyUnionShapeCommon = (\n allowPrivateName = false,\n) => ({\n unionShape: {\n discriminator: \"computed\",\n shapes: [\n {\n name: \"computed\",\n value: [true],\n properties: {\n key: {\n validate: assertNodeType(\"Expression\"),\n },\n },\n },\n {\n name: \"nonComputed\",\n value: [false],\n properties: {\n key: {\n validate: allowPrivateName\n ? assertNodeType(\n \"Identifier\",\n \"StringLiteral\",\n \"NumericLiteral\",\n \"BigIntLiteral\",\n \"PrivateName\",\n )\n : assertNodeType(\n \"Identifier\",\n \"StringLiteral\",\n \"NumericLiteral\",\n \"BigIntLiteral\",\n ),\n },\n },\n },\n ],\n },\n});\n\nconst defineType = defineAliasedType(\"Standardized\");\n\ndefineType(\"ArrayExpression\", {\n fields: {\n elements: {\n validate: arrayOf(\n assertNodeOrValueType(\"null\", \"Expression\", \"SpreadElement\"),\n ),\n default:\n !process.env.BABEL_8_BREAKING && !process.env.BABEL_TYPES_8_BREAKING\n ? []\n : undefined,\n },\n },\n visitor: [\"elements\"],\n aliases: [\"Expression\"],\n});\n\ndefineType(\"AssignmentExpression\", {\n fields: {\n operator: {\n validate:\n !process.env.BABEL_8_BREAKING && !process.env.BABEL_TYPES_8_BREAKING\n ? assertValueType(\"string\")\n : Object.assign(\n (function () {\n const identifier = assertOneOf(...ASSIGNMENT_OPERATORS);\n const pattern = assertOneOf(\"=\");\n\n return function (node: t.AssignmentExpression, key, val) {\n const validator = is(\"Pattern\", node.left)\n ? pattern\n : identifier;\n validator(node, key, val);\n } satisfies ValidatorImpl;\n })(),\n { oneOf: ASSIGNMENT_OPERATORS },\n ),\n },\n left: {\n validate:\n !process.env.BABEL_8_BREAKING && !process.env.BABEL_TYPES_8_BREAKING\n ? assertNodeType(\"LVal\", \"OptionalMemberExpression\")\n : assertNodeType(\n \"Identifier\",\n \"MemberExpression\",\n \"OptionalMemberExpression\",\n \"ArrayPattern\",\n \"ObjectPattern\",\n \"TSAsExpression\",\n \"TSSatisfiesExpression\",\n \"TSTypeAssertion\",\n \"TSNonNullExpression\",\n ),\n },\n right: {\n validate: assertNodeType(\"Expression\"),\n },\n },\n builder: [\"operator\", \"left\", \"right\"],\n visitor: [\"left\", \"right\"],\n aliases: [\"Expression\"],\n});\n\ndefineType(\"BinaryExpression\", {\n builder: [\"operator\", \"left\", \"right\"],\n fields: {\n operator: {\n validate: assertOneOf(...BINARY_OPERATORS),\n },\n left: {\n validate: (function () {\n const expression = assertNodeType(\"Expression\");\n const inOp = assertNodeType(\"Expression\", \"PrivateName\");\n\n const validator: ValidatorOneOfNodeTypes = Object.assign(\n function (node: t.BinaryExpression, key, val) {\n const validator = node.operator === \"in\" ? inOp : expression;\n validator(node, key, val);\n } satisfies ValidatorImpl,\n // todo(ts): can be discriminated union by `operator` property\n { oneOfNodeTypes: [\"Expression\", \"PrivateName\"] as const },\n );\n return validator;\n })(),\n },\n right: {\n validate: assertNodeType(\"Expression\"),\n },\n },\n visitor: [\"left\", \"right\"],\n aliases: [\"Binary\", \"Expression\"],\n});\n\ndefineType(\"InterpreterDirective\", {\n builder: [\"value\"],\n fields: {\n value: {\n validate: assertValueType(\"string\"),\n },\n },\n});\n\ndefineType(\"Directive\", {\n visitor: [\"value\"],\n fields: {\n value: {\n validate: assertNodeType(\"DirectiveLiteral\"),\n },\n },\n});\n\ndefineType(\"DirectiveLiteral\", {\n builder: [\"value\"],\n fields: {\n value: {\n validate: assertValueType(\"string\"),\n },\n },\n});\n\ndefineType(\"BlockStatement\", {\n builder: [\"body\", \"directives\"],\n visitor: [\"directives\", \"body\"],\n fields: {\n directives: {\n validate: arrayOfType(\"Directive\"),\n default: [],\n },\n body: validateArrayOfType(\"Statement\"),\n },\n aliases: [\"Scopable\", \"BlockParent\", \"Block\", \"Statement\"],\n});\n\ndefineType(\"BreakStatement\", {\n visitor: [\"label\"],\n fields: {\n label: {\n validate: assertNodeType(\"Identifier\"),\n optional: true,\n },\n },\n aliases: [\"Statement\", \"Terminatorless\", \"CompletionStatement\"],\n});\n\ndefineType(\"CallExpression\", {\n visitor: process.env.BABEL_8_BREAKING\n ? [\"callee\", \"typeArguments\", \"arguments\"]\n : [\"callee\", \"typeParameters\", \"typeArguments\", \"arguments\"],\n builder: [\"callee\", \"arguments\"],\n aliases: [\"Expression\"],\n fields: {\n callee: {\n validate: assertNodeType(\"Expression\", \"Super\", \"V8IntrinsicIdentifier\"),\n },\n arguments: validateArrayOfType(\n \"Expression\",\n \"SpreadElement\",\n \"ArgumentPlaceholder\",\n ),\n typeArguments: {\n validate: process.env.BABEL_8_BREAKING\n ? assertNodeType(\n \"TypeParameterInstantiation\",\n \"TSTypeParameterInstantiation\",\n )\n : assertNodeType(\"TypeParameterInstantiation\"),\n optional: true,\n },\n ...(process.env.BABEL_8_BREAKING || process.env.BABEL_TYPES_8_BREAKING\n ? {}\n : {\n optional: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n typeParameters: {\n validate: assertNodeType(\"TSTypeParameterInstantiation\"),\n optional: true,\n },\n }),\n },\n});\n\ndefineType(\"CatchClause\", {\n visitor: [\"param\", \"body\"],\n fields: {\n param: {\n validate: assertNodeType(\"Identifier\", \"ArrayPattern\", \"ObjectPattern\"),\n optional: true,\n },\n body: {\n validate: assertNodeType(\"BlockStatement\"),\n },\n },\n aliases: [\"Scopable\", \"BlockParent\"],\n});\n\ndefineType(\"ConditionalExpression\", {\n visitor: [\"test\", \"consequent\", \"alternate\"],\n fields: {\n test: {\n validate: assertNodeType(\"Expression\"),\n },\n consequent: {\n validate: assertNodeType(\"Expression\"),\n },\n alternate: {\n validate: assertNodeType(\"Expression\"),\n },\n },\n aliases: [\"Expression\", \"Conditional\"],\n});\n\ndefineType(\"ContinueStatement\", {\n visitor: [\"label\"],\n fields: {\n label: {\n validate: assertNodeType(\"Identifier\"),\n optional: true,\n },\n },\n aliases: [\"Statement\", \"Terminatorless\", \"CompletionStatement\"],\n});\n\ndefineType(\"DebuggerStatement\", {\n aliases: [\"Statement\"],\n});\n\ndefineType(\"DoWhileStatement\", {\n builder: [\"test\", \"body\"],\n visitor: [\"body\", \"test\"],\n fields: {\n test: {\n validate: assertNodeType(\"Expression\"),\n },\n body: {\n validate: assertNodeType(\"Statement\"),\n },\n },\n aliases: [\"Statement\", \"BlockParent\", \"Loop\", \"While\", \"Scopable\"],\n});\n\ndefineType(\"EmptyStatement\", {\n aliases: [\"Statement\"],\n});\n\ndefineType(\"ExpressionStatement\", {\n visitor: [\"expression\"],\n fields: {\n expression: {\n validate: assertNodeType(\"Expression\"),\n },\n },\n aliases: [\"Statement\", \"ExpressionWrapper\"],\n});\n\ndefineType(\"File\", {\n builder: [\"program\", \"comments\", \"tokens\"],\n visitor: [\"program\"],\n fields: {\n program: {\n validate: assertNodeType(\"Program\"),\n },\n comments: {\n validate:\n !process.env.BABEL_8_BREAKING && !process.env.BABEL_TYPES_8_BREAKING\n ? Object.assign(() => {}, {\n each: { oneOfNodeTypes: [\"CommentBlock\", \"CommentLine\"] },\n })\n : assertEach(assertNodeType(\"CommentBlock\", \"CommentLine\")),\n optional: true,\n },\n tokens: {\n // todo(ts): add Token type\n validate: assertEach(Object.assign(() => {}, { type: \"any\" })),\n optional: true,\n },\n },\n});\n\ndefineType(\"ForInStatement\", {\n visitor: [\"left\", \"right\", \"body\"],\n aliases: [\n \"Scopable\",\n \"Statement\",\n \"For\",\n \"BlockParent\",\n \"Loop\",\n \"ForXStatement\",\n ],\n fields: {\n left: {\n validate:\n !process.env.BABEL_8_BREAKING && !process.env.BABEL_TYPES_8_BREAKING\n ? assertNodeType(\"VariableDeclaration\", \"LVal\")\n : assertNodeType(\n \"VariableDeclaration\",\n \"Identifier\",\n \"MemberExpression\",\n \"ArrayPattern\",\n \"ObjectPattern\",\n \"TSAsExpression\",\n \"TSSatisfiesExpression\",\n \"TSTypeAssertion\",\n \"TSNonNullExpression\",\n ),\n },\n right: {\n validate: assertNodeType(\"Expression\"),\n },\n body: {\n validate: assertNodeType(\"Statement\"),\n },\n },\n});\n\ndefineType(\"ForStatement\", {\n visitor: [\"init\", \"test\", \"update\", \"body\"],\n aliases: [\"Scopable\", \"Statement\", \"For\", \"BlockParent\", \"Loop\"],\n fields: {\n init: {\n validate: assertNodeType(\"VariableDeclaration\", \"Expression\"),\n optional: true,\n },\n test: {\n validate: assertNodeType(\"Expression\"),\n optional: true,\n },\n update: {\n validate: assertNodeType(\"Expression\"),\n optional: true,\n },\n body: {\n validate: assertNodeType(\"Statement\"),\n },\n },\n});\n\nexport const functionCommon = () => ({\n params: validateArrayOfType(\"FunctionParameter\"),\n generator: {\n default: false,\n },\n async: {\n default: false,\n },\n});\n\nexport const functionTypeAnnotationCommon = () => ({\n returnType: {\n validate: process.env.BABEL_8_BREAKING\n ? assertNodeType(\"TypeAnnotation\", \"TSTypeAnnotation\")\n : assertNodeType(\n \"TypeAnnotation\",\n \"TSTypeAnnotation\",\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n \"Noop\",\n ),\n optional: true,\n },\n typeParameters: {\n validate: process.env.BABEL_8_BREAKING\n ? assertNodeType(\"TypeParameterDeclaration\", \"TSTypeParameterDeclaration\")\n : assertNodeType(\n \"TypeParameterDeclaration\",\n \"TSTypeParameterDeclaration\",\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n \"Noop\",\n ),\n optional: true,\n },\n});\n\nexport const functionDeclarationCommon = () => ({\n ...functionCommon(),\n declare: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n id: {\n validate: assertNodeType(\"Identifier\"),\n optional: true, // May be null for `export default function`\n },\n});\n\ndefineType(\"FunctionDeclaration\", {\n builder: [\"id\", \"params\", \"body\", \"generator\", \"async\"],\n visitor: [\n \"id\",\n \"typeParameters\",\n \"params\",\n \"predicate\",\n \"returnType\",\n \"body\",\n ],\n fields: {\n ...functionDeclarationCommon(),\n ...functionTypeAnnotationCommon(),\n body: {\n validate: assertNodeType(\"BlockStatement\"),\n },\n predicate: {\n validate: assertNodeType(\"DeclaredPredicate\", \"InferredPredicate\"),\n optional: true,\n },\n },\n aliases: [\n \"Scopable\",\n \"Function\",\n \"BlockParent\",\n \"FunctionParent\",\n \"Statement\",\n \"Pureish\",\n \"Declaration\",\n ],\n validate:\n !process.env.BABEL_8_BREAKING && !process.env.BABEL_TYPES_8_BREAKING\n ? undefined\n : (function () {\n const identifier = assertNodeType(\"Identifier\");\n\n return function (parent, key, node) {\n if (!is(\"ExportDefaultDeclaration\", parent)) {\n identifier(node, \"id\", node.id);\n }\n };\n })(),\n});\n\ndefineType(\"FunctionExpression\", {\n inherits: \"FunctionDeclaration\",\n aliases: [\n \"Scopable\",\n \"Function\",\n \"BlockParent\",\n \"FunctionParent\",\n \"Expression\",\n \"Pureish\",\n ],\n fields: {\n ...functionCommon(),\n ...functionTypeAnnotationCommon(),\n id: {\n validate: assertNodeType(\"Identifier\"),\n optional: true,\n },\n body: {\n validate: assertNodeType(\"BlockStatement\"),\n },\n predicate: {\n validate: assertNodeType(\"DeclaredPredicate\", \"InferredPredicate\"),\n optional: true,\n },\n },\n});\n\nexport const patternLikeCommon = () => ({\n typeAnnotation: {\n validate: process.env.BABEL_8_BREAKING\n ? assertNodeType(\"TypeAnnotation\", \"TSTypeAnnotation\")\n : assertNodeType(\n \"TypeAnnotation\",\n \"TSTypeAnnotation\",\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n \"Noop\",\n ),\n optional: true,\n },\n optional: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n decorators: {\n validate: arrayOfType(\"Decorator\"),\n optional: true,\n },\n});\n\ndefineType(\"Identifier\", {\n builder: [\"name\"],\n visitor: [\"typeAnnotation\", \"decorators\" /* for legacy param decorators */],\n aliases: [\n \"Expression\",\n \"FunctionParameter\",\n \"PatternLike\",\n \"LVal\",\n \"TSEntityName\",\n ],\n fields: {\n ...patternLikeCommon(),\n name: {\n validate:\n process.env.BABEL_8_BREAKING || process.env.BABEL_TYPES_8_BREAKING\n ? chain(\n assertValueType(\"string\"),\n Object.assign(\n function (node, key, val) {\n if (!isValidIdentifier(val, false)) {\n throw new TypeError(\n `\"${val}\" is not a valid identifier name`,\n );\n }\n } satisfies ValidatorImpl,\n { type: \"string\" as const },\n ) satisfies ValidatorType,\n )\n : assertValueType(\"string\"),\n },\n },\n validate:\n process.env.BABEL_8_BREAKING || process.env.BABEL_TYPES_8_BREAKING\n ? function (parent, key, node) {\n const match = /\\.(\\w+)$/.exec(key.toString());\n if (!match) return;\n\n const [, parentKey] = match;\n const nonComp = { computed: false };\n\n // We can't check if `parent.property === node`, because nodes are validated\n // before replacing them in the AST.\n if (parentKey === \"property\") {\n if (is(\"MemberExpression\", parent, nonComp)) return;\n if (is(\"OptionalMemberExpression\", parent, nonComp)) return;\n } else if (parentKey === \"key\") {\n if (is(\"Property\", parent, nonComp)) return;\n if (is(\"Method\", parent, nonComp)) return;\n } else if (parentKey === \"exported\") {\n if (is(\"ExportSpecifier\", parent)) return;\n } else if (parentKey === \"imported\") {\n if (is(\"ImportSpecifier\", parent, { imported: node })) return;\n } else if (parentKey === \"meta\") {\n if (is(\"MetaProperty\", parent, { meta: node })) return;\n }\n\n if (\n // Ideally we should call isStrictReservedWord if this node is a descendant\n // of a block in strict mode. Also, we should pass the inModule option so\n // we can disable \"await\" in module.\n (isKeyword(node.name) || isReservedWord(node.name, false)) &&\n // Even if \"this\" is a keyword, we are using the Identifier\n // node to represent it.\n node.name !== \"this\"\n ) {\n throw new TypeError(`\"${node.name}\" is not a valid identifier`);\n }\n }\n : undefined,\n});\n\ndefineType(\"IfStatement\", {\n visitor: [\"test\", \"consequent\", \"alternate\"],\n aliases: [\"Statement\", \"Conditional\"],\n fields: {\n test: {\n validate: assertNodeType(\"Expression\"),\n },\n consequent: {\n validate: assertNodeType(\"Statement\"),\n },\n alternate: {\n optional: true,\n validate: assertNodeType(\"Statement\"),\n },\n },\n});\n\ndefineType(\"LabeledStatement\", {\n visitor: [\"label\", \"body\"],\n aliases: [\"Statement\"],\n fields: {\n label: {\n validate: assertNodeType(\"Identifier\"),\n },\n body: {\n validate: assertNodeType(\"Statement\"),\n },\n },\n});\n\ndefineType(\"StringLiteral\", {\n builder: [\"value\"],\n fields: {\n value: {\n validate: assertValueType(\"string\"),\n },\n },\n aliases: [\"Expression\", \"Pureish\", \"Literal\", \"Immutable\"],\n});\n\ndefineType(\"NumericLiteral\", {\n builder: [\"value\"],\n deprecatedAlias: \"NumberLiteral\",\n fields: {\n value: {\n validate: chain(\n assertValueType(\"number\"),\n Object.assign(\n function (node, key, val) {\n if (1 / val < 0 || !Number.isFinite(val)) {\n const error = new Error(\n \"NumericLiterals must be non-negative finite numbers. \" +\n `You can use t.valueToNode(${val}) instead.`,\n );\n if (process.env.BABEL_8_BREAKING) {\n // TODO(@nicolo-ribaudo) Fix regenerator to not pass negative\n // numbers here.\n if (!IS_STANDALONE) {\n if (!new Error().stack.includes(\"regenerator\")) {\n throw error;\n }\n }\n } else {\n // TODO: Enable this warning once regenerator is fixed.\n // https://github.com/facebook/regenerator/pull/680\n // console.warn(error);\n }\n }\n } satisfies ValidatorImpl,\n { type: \"number\" as const },\n ) satisfies ValidatorType,\n ),\n },\n },\n aliases: [\"Expression\", \"Pureish\", \"Literal\", \"Immutable\"],\n});\n\ndefineType(\"NullLiteral\", {\n aliases: [\"Expression\", \"Pureish\", \"Literal\", \"Immutable\"],\n});\n\ndefineType(\"BooleanLiteral\", {\n builder: [\"value\"],\n fields: {\n value: {\n validate: assertValueType(\"boolean\"),\n },\n },\n aliases: [\"Expression\", \"Pureish\", \"Literal\", \"Immutable\"],\n});\n\ndefineType(\"RegExpLiteral\", {\n builder: [\"pattern\", \"flags\"],\n deprecatedAlias: \"RegexLiteral\",\n aliases: [\"Expression\", \"Pureish\", \"Literal\"],\n fields: {\n pattern: {\n validate: assertValueType(\"string\"),\n },\n flags: {\n validate:\n process.env.BABEL_8_BREAKING || process.env.BABEL_TYPES_8_BREAKING\n ? chain(\n assertValueType(\"string\"),\n Object.assign(\n function (node, key, val) {\n const invalid = /[^dgimsuvy]/.exec(val);\n if (invalid) {\n throw new TypeError(\n `\"${invalid[0]}\" is not a valid RegExp flag`,\n );\n }\n } satisfies ValidatorImpl,\n { type: \"string\" as const },\n ) satisfies ValidatorType,\n )\n : assertValueType(\"string\"),\n default: \"\",\n },\n },\n});\n\ndefineType(\"LogicalExpression\", {\n builder: [\"operator\", \"left\", \"right\"],\n visitor: [\"left\", \"right\"],\n aliases: [\"Binary\", \"Expression\"],\n fields: {\n operator: {\n validate: assertOneOf(...LOGICAL_OPERATORS),\n },\n left: {\n validate: assertNodeType(\"Expression\"),\n },\n right: {\n validate: assertNodeType(\"Expression\"),\n },\n },\n});\n\ndefineType(\"MemberExpression\", {\n builder: [\n \"object\",\n \"property\",\n \"computed\",\n ...(!process.env.BABEL_8_BREAKING && !process.env.BABEL_TYPES_8_BREAKING\n ? [\"optional\"]\n : []),\n ],\n visitor: [\"object\", \"property\"],\n aliases: [\"Expression\", \"LVal\", \"PatternLike\"],\n unionShape: {\n discriminator: \"computed\",\n shapes: [\n {\n name: \"computed\",\n value: [true],\n properties: {\n property: {\n validate: assertNodeType(\"Expression\"),\n },\n },\n },\n {\n name: \"nonComputed\",\n value: [false],\n properties: {\n property: {\n validate: assertNodeType(\"Identifier\", \"PrivateName\"),\n },\n },\n },\n ],\n },\n fields: {\n object: {\n validate: assertNodeType(\"Expression\", \"Super\"),\n },\n property: {\n validate: (function () {\n const normal = assertNodeType(\"Identifier\", \"PrivateName\");\n const computed = assertNodeType(\"Expression\");\n\n const validator: ValidatorOneOfNodeTypes = function (\n node: t.MemberExpression,\n key,\n val,\n ) {\n const validator: Validator = node.computed ? computed : normal;\n validator(node, key, val);\n };\n // todo(ts): can be discriminated union by `computed` property\n validator.oneOfNodeTypes = [\"Expression\", \"Identifier\", \"PrivateName\"];\n return validator;\n })(),\n },\n computed: {\n default: false,\n },\n ...(!process.env.BABEL_8_BREAKING && !process.env.BABEL_TYPES_8_BREAKING\n ? {\n optional: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n }\n : {}),\n },\n});\n\ndefineType(\"NewExpression\", { inherits: \"CallExpression\" });\n\ndefineType(\"Program\", {\n // Note: We explicitly leave 'interpreter' out here because it is\n // conceptually comment-like, and Babel does not traverse comments either.\n visitor: [\"directives\", \"body\"],\n builder: [\"body\", \"directives\", \"sourceType\", \"interpreter\"],\n fields: {\n sourceType: {\n validate: assertOneOf(\"script\", \"module\"),\n default: \"script\",\n },\n interpreter: {\n validate: assertNodeType(\"InterpreterDirective\"),\n default: null,\n optional: true,\n },\n directives: {\n validate: arrayOfType(\"Directive\"),\n default: [],\n },\n body: validateArrayOfType(\"Statement\"),\n },\n aliases: [\"Scopable\", \"BlockParent\", \"Block\"],\n});\n\ndefineType(\"ObjectExpression\", {\n visitor: [\"properties\"],\n aliases: [\"Expression\"],\n fields: {\n properties: validateArrayOfType(\n \"ObjectMethod\",\n \"ObjectProperty\",\n \"SpreadElement\",\n ),\n },\n});\n\ndefineType(\"ObjectMethod\", {\n builder: [\"kind\", \"key\", \"params\", \"body\", \"computed\", \"generator\", \"async\"],\n visitor: [\n \"decorators\",\n \"key\",\n \"typeParameters\",\n \"params\",\n \"returnType\",\n \"body\",\n ],\n ...classMethodOrPropertyUnionShapeCommon(),\n fields: {\n ...functionCommon(),\n ...functionTypeAnnotationCommon(),\n kind: {\n validate: assertOneOf(\"method\", \"get\", \"set\"),\n ...(!process.env.BABEL_8_BREAKING && !process.env.BABEL_TYPES_8_BREAKING\n ? { default: \"method\" }\n : {}),\n },\n computed: {\n default: false,\n },\n key: {\n validate: (function () {\n const normal = assertNodeType(\n \"Identifier\",\n \"StringLiteral\",\n \"NumericLiteral\",\n \"BigIntLiteral\",\n );\n const computed = assertNodeType(\"Expression\");\n\n const validator: ValidatorOneOfNodeTypes = function (\n node: t.ObjectMethod,\n key,\n val,\n ) {\n const validator = node.computed ? computed : normal;\n validator(node, key, val);\n };\n // todo(ts): can be discriminated union by `computed` property\n validator.oneOfNodeTypes = [\n \"Expression\",\n \"Identifier\",\n \"StringLiteral\",\n \"NumericLiteral\",\n \"BigIntLiteral\",\n ];\n return validator;\n })(),\n },\n decorators: {\n validate: arrayOfType(\"Decorator\"),\n optional: true,\n },\n body: {\n validate: assertNodeType(\"BlockStatement\"),\n },\n },\n aliases: [\n \"UserWhitespacable\",\n \"Function\",\n \"Scopable\",\n \"BlockParent\",\n \"FunctionParent\",\n \"Method\",\n \"ObjectMember\",\n ],\n});\n\ndefineType(\"ObjectProperty\", {\n builder: [\n \"key\",\n \"value\",\n \"computed\",\n \"shorthand\",\n ...(!process.env.BABEL_8_BREAKING && !process.env.BABEL_TYPES_8_BREAKING\n ? [\"decorators\"]\n : []),\n ],\n unionShape: {\n discriminator: \"computed\",\n shapes: [\n {\n name: \"computed\",\n value: [true],\n properties: {\n key: {\n validate: assertNodeType(\"Expression\"),\n },\n },\n },\n {\n name: \"nonComputed\",\n value: [false],\n properties: {\n key: {\n validate: process.env.BABEL_8_BREAKING\n ? assertNodeType(\n \"Identifier\",\n \"StringLiteral\",\n \"NumericLiteral\",\n \"BigIntLiteral\",\n \"PrivateName\",\n )\n : assertNodeType(\n \"Identifier\",\n \"StringLiteral\",\n \"NumericLiteral\",\n \"BigIntLiteral\",\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n \"DecimalLiteral\",\n \"PrivateName\",\n ),\n },\n },\n },\n ],\n },\n fields: {\n computed: {\n default: false,\n },\n key: {\n validate: (function () {\n const normal = process.env.BABEL_8_BREAKING\n ? assertNodeType(\n \"Identifier\",\n \"StringLiteral\",\n \"NumericLiteral\",\n \"BigIntLiteral\",\n \"PrivateName\",\n )\n : assertNodeType(\n \"Identifier\",\n \"StringLiteral\",\n \"NumericLiteral\",\n \"BigIntLiteral\",\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n \"DecimalLiteral\",\n \"PrivateName\",\n );\n const computed = assertNodeType(\"Expression\");\n\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST allows DecimalLiteral\n const validator: ValidatorOneOfNodeTypes = Object.assign(\n function (node: t.ObjectProperty, key, val) {\n const validator = node.computed ? computed : normal;\n validator(node, key, val);\n } satisfies ValidatorImpl,\n {\n // todo(ts): can be discriminated union by `computed` property\n oneOfNodeTypes: process.env.BABEL_8_BREAKING\n ? ([\n \"Expression\",\n \"Identifier\",\n \"StringLiteral\",\n \"NumericLiteral\",\n \"BigIntLiteral\",\n \"PrivateName\",\n ] as const)\n : ([\n \"Expression\",\n \"Identifier\",\n \"StringLiteral\",\n \"NumericLiteral\",\n \"BigIntLiteral\",\n \"DecimalLiteral\",\n \"PrivateName\",\n ] as const),\n },\n );\n return validator;\n })(),\n },\n value: {\n // Value may be PatternLike if this is an AssignmentProperty\n // https://github.com/babel/babylon/issues/434\n validate: assertNodeType(\"Expression\", \"PatternLike\"),\n },\n shorthand: {\n validate:\n process.env.BABEL_8_BREAKING || process.env.BABEL_TYPES_8_BREAKING\n ? chain(\n assertValueType(\"boolean\"),\n Object.assign(\n function (node: t.ObjectProperty, key, shorthand) {\n if (!shorthand) return;\n\n if (node.computed) {\n throw new TypeError(\n \"Property shorthand of ObjectProperty cannot be true if computed is true\",\n );\n }\n\n if (!is(\"Identifier\", node.key)) {\n throw new TypeError(\n \"Property shorthand of ObjectProperty cannot be true if key is not an Identifier\",\n );\n }\n } satisfies ValidatorImpl,\n { type: \"boolean\" as const },\n ) satisfies ValidatorType,\n )\n : assertValueType(\"boolean\"),\n default: false,\n },\n decorators: {\n validate: arrayOfType(\"Decorator\"),\n optional: true,\n },\n },\n visitor: [\"decorators\", \"key\", \"value\"],\n aliases: [\"UserWhitespacable\", \"Property\", \"ObjectMember\"],\n validate:\n !process.env.BABEL_8_BREAKING && !process.env.BABEL_TYPES_8_BREAKING\n ? undefined\n : (function () {\n const pattern = assertNodeType(\n \"Identifier\",\n \"Pattern\",\n \"TSAsExpression\",\n \"TSSatisfiesExpression\",\n \"TSNonNullExpression\",\n \"TSTypeAssertion\",\n );\n const expression = assertNodeType(\"Expression\");\n\n return function (parent, key, node) {\n const validator = is(\"ObjectPattern\", parent)\n ? pattern\n : expression;\n validator(node, \"value\", node.value);\n };\n })(),\n});\n\ndefineType(\"RestElement\", {\n visitor: [\"argument\", \"typeAnnotation\"],\n builder: [\"argument\"],\n aliases: process.env.BABEL_8_BREAKING\n ? [\"FunctionParameter\", \"PatternLike\"]\n : [\"FunctionParameter\", \"PatternLike\", \"LVal\"],\n deprecatedAlias: \"RestProperty\",\n fields: {\n ...patternLikeCommon(),\n argument: {\n validate:\n !process.env.BABEL_8_BREAKING && !process.env.BABEL_TYPES_8_BREAKING\n ? assertNodeType(\n \"Identifier\",\n \"ArrayPattern\",\n \"ObjectPattern\",\n \"MemberExpression\",\n \"TSAsExpression\",\n \"TSSatisfiesExpression\",\n \"TSTypeAssertion\",\n \"TSNonNullExpression\",\n // These are not valid in RestElement, but we allow them for backwards compatibility.\n \"RestElement\",\n \"AssignmentPattern\",\n )\n : assertNodeType(\n \"Identifier\",\n \"ArrayPattern\",\n \"ObjectPattern\",\n \"MemberExpression\",\n \"TSAsExpression\",\n \"TSSatisfiesExpression\",\n \"TSTypeAssertion\",\n \"TSNonNullExpression\",\n ),\n },\n },\n validate:\n process.env.BABEL_8_BREAKING || process.env.BABEL_TYPES_8_BREAKING\n ? (function (parent: t.ArrayPattern | t.ObjectPattern, key) {\n const match = /(\\w+)\\[(\\d+)\\]/.exec(key.toString());\n if (!match) throw new Error(\"Internal Babel error: malformed key.\");\n\n const [, listKey, index] = match as unknown as [\n string,\n keyof typeof parent,\n string,\n ];\n if ((parent[listKey] as t.Node[]).length > +index + 1) {\n throw new TypeError(\n `RestElement must be last element of ${listKey}`,\n );\n }\n } satisfies ValidatorImpl)\n : undefined,\n});\n\ndefineType(\"ReturnStatement\", {\n visitor: [\"argument\"],\n aliases: [\"Statement\", \"Terminatorless\", \"CompletionStatement\"],\n fields: {\n argument: {\n validate: assertNodeType(\"Expression\"),\n optional: true,\n },\n },\n});\n\ndefineType(\"SequenceExpression\", {\n visitor: [\"expressions\"],\n fields: {\n expressions: validateArrayOfType(\"Expression\"),\n },\n aliases: [\"Expression\"],\n});\n\ndefineType(\"ParenthesizedExpression\", {\n visitor: [\"expression\"],\n aliases: [\"Expression\", \"ExpressionWrapper\"],\n fields: {\n expression: {\n validate: assertNodeType(\"Expression\"),\n },\n },\n});\n\ndefineType(\"SwitchCase\", {\n visitor: [\"test\", \"consequent\"],\n fields: {\n test: {\n validate: assertNodeType(\"Expression\"),\n optional: true,\n },\n consequent: validateArrayOfType(\"Statement\"),\n },\n});\n\ndefineType(\"SwitchStatement\", {\n visitor: [\"discriminant\", \"cases\"],\n aliases: [\"Statement\", \"BlockParent\", \"Scopable\"],\n fields: {\n discriminant: {\n validate: assertNodeType(\"Expression\"),\n },\n cases: validateArrayOfType(\"SwitchCase\"),\n },\n});\n\ndefineType(\"ThisExpression\", {\n aliases: process.env.BABEL_8_BREAKING\n ? [\"Expression\", \"TSEntityName\"]\n : [\"Expression\"],\n});\n\ndefineType(\"ThrowStatement\", {\n visitor: [\"argument\"],\n aliases: [\"Statement\", \"Terminatorless\", \"CompletionStatement\"],\n fields: {\n argument: {\n validate: assertNodeType(\"Expression\"),\n },\n },\n});\n\ndefineType(\"TryStatement\", {\n visitor: [\"block\", \"handler\", \"finalizer\"],\n aliases: [\"Statement\"],\n fields: {\n block: {\n validate:\n process.env.BABEL_8_BREAKING || process.env.BABEL_TYPES_8_BREAKING\n ? chain(\n assertNodeType(\"BlockStatement\"),\n Object.assign(\n function (node: t.TryStatement) {\n // This validator isn't put at the top level because we can run it\n // even if this node doesn't have a parent.\n\n if (!node.handler && !node.finalizer) {\n throw new TypeError(\n \"TryStatement expects either a handler or finalizer, or both\",\n );\n }\n } satisfies ValidatorImpl,\n { oneOfNodeTypes: [\"BlockStatement\"] as const },\n ) satisfies ValidatorOneOfNodeTypes,\n )\n : assertNodeType(\"BlockStatement\"),\n },\n handler: {\n optional: true,\n validate: assertNodeType(\"CatchClause\"),\n },\n finalizer: {\n optional: true,\n validate: assertNodeType(\"BlockStatement\"),\n },\n },\n});\n\ndefineType(\"UnaryExpression\", {\n builder: [\"operator\", \"argument\", \"prefix\"],\n fields: {\n prefix: {\n default: true,\n },\n argument: {\n validate: assertNodeType(\"Expression\"),\n },\n operator: {\n validate: assertOneOf(...UNARY_OPERATORS),\n },\n },\n visitor: [\"argument\"],\n aliases: [\"UnaryLike\", \"Expression\"],\n});\n\ndefineType(\"UpdateExpression\", {\n builder: [\"operator\", \"argument\", \"prefix\"],\n fields: {\n prefix: {\n default: false,\n },\n argument: {\n validate:\n !process.env.BABEL_8_BREAKING && !process.env.BABEL_TYPES_8_BREAKING\n ? assertNodeType(\"Expression\")\n : assertNodeType(\"Identifier\", \"MemberExpression\"),\n },\n operator: {\n validate: assertOneOf(...UPDATE_OPERATORS),\n },\n },\n visitor: [\"argument\"],\n aliases: [\"Expression\"],\n});\n\ndefineType(\"VariableDeclaration\", {\n builder: [\"kind\", \"declarations\"],\n visitor: [\"declarations\"],\n aliases: [\"Statement\", \"Declaration\"],\n fields: {\n declare: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n kind: {\n validate: assertOneOf(\n \"var\",\n \"let\",\n \"const\",\n // https://github.com/tc39/proposal-explicit-resource-management\n \"using\",\n // https://github.com/tc39/proposal-async-explicit-resource-management\n \"await using\",\n ),\n },\n declarations: validateArrayOfType(\"VariableDeclarator\"),\n },\n validate:\n process.env.BABEL_8_BREAKING || process.env.BABEL_TYPES_8_BREAKING\n ? (() => {\n const withoutInit = assertNodeType(\"Identifier\", \"Placeholder\");\n const constOrLetOrVar = assertNodeType(\n \"Identifier\",\n \"ArrayPattern\",\n \"ObjectPattern\",\n \"Placeholder\",\n );\n const usingOrAwaitUsing = assertNodeType(\n \"Identifier\",\n \"VoidPattern\",\n \"Placeholder\",\n );\n\n return function (parent, key, node: t.VariableDeclaration) {\n const { kind, declarations } = node;\n const parentIsForX = is(\"ForXStatement\", parent, { left: node });\n if (parentIsForX) {\n if (declarations.length !== 1) {\n throw new TypeError(\n `Exactly one VariableDeclarator is required in the VariableDeclaration of a ${parent.type}`,\n );\n }\n }\n for (const decl of declarations) {\n if (kind === \"const\" || kind === \"let\" || kind === \"var\") {\n if (!parentIsForX && !decl.init) {\n withoutInit(decl, \"id\", decl.id);\n } else {\n constOrLetOrVar(decl, \"id\", decl.id);\n }\n } else {\n usingOrAwaitUsing(decl, \"id\", decl.id);\n }\n }\n };\n })()\n : undefined,\n});\n\ndefineType(\"VariableDeclarator\", {\n visitor: [\"id\", \"init\"],\n fields: {\n id: {\n validate:\n !process.env.BABEL_8_BREAKING && !process.env.BABEL_TYPES_8_BREAKING\n ? assertNodeType(\"LVal\", \"VoidPattern\")\n : assertNodeType(\n \"Identifier\",\n \"ArrayPattern\",\n \"ObjectPattern\",\n \"VoidPattern\",\n ),\n },\n definite: {\n optional: true,\n validate: assertValueType(\"boolean\"),\n },\n init: {\n optional: true,\n validate: assertNodeType(\"Expression\"),\n },\n },\n});\n\ndefineType(\"WhileStatement\", {\n visitor: [\"test\", \"body\"],\n aliases: [\"Statement\", \"BlockParent\", \"Loop\", \"While\", \"Scopable\"],\n fields: {\n test: {\n validate: assertNodeType(\"Expression\"),\n },\n body: {\n validate: assertNodeType(\"Statement\"),\n },\n },\n});\n\ndefineType(\"WithStatement\", {\n visitor: [\"object\", \"body\"],\n aliases: [\"Statement\"],\n fields: {\n object: {\n validate: assertNodeType(\"Expression\"),\n },\n body: {\n validate: assertNodeType(\"Statement\"),\n },\n },\n});\n\n// --- ES2015 ---\ndefineType(\"AssignmentPattern\", {\n visitor: [\"left\", \"right\", \"decorators\" /* for legacy param decorators */],\n builder: [\"left\", \"right\"],\n aliases: process.env.BABEL_8_BREAKING\n ? [\"FunctionParameter\", \"Pattern\", \"PatternLike\"]\n : [\"FunctionParameter\", \"Pattern\", \"PatternLike\", \"LVal\"],\n fields: {\n ...patternLikeCommon(),\n left: {\n validate: assertNodeType(\n \"Identifier\",\n \"ObjectPattern\",\n \"ArrayPattern\",\n \"MemberExpression\",\n \"TSAsExpression\",\n \"TSSatisfiesExpression\",\n \"TSTypeAssertion\",\n \"TSNonNullExpression\",\n ),\n },\n right: {\n validate: assertNodeType(\"Expression\"),\n },\n // For TypeScript\n decorators: {\n validate: arrayOfType(\"Decorator\"),\n optional: true,\n },\n },\n});\n\ndefineType(\"ArrayPattern\", {\n visitor: [\"elements\", \"typeAnnotation\"],\n builder: [\"elements\"],\n aliases: [\"FunctionParameter\", \"Pattern\", \"PatternLike\", \"LVal\"],\n fields: {\n ...patternLikeCommon(),\n elements: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeOrValueType(\"null\", \"PatternLike\")),\n ),\n },\n },\n});\n\ndefineType(\"ArrowFunctionExpression\", {\n builder: [\"params\", \"body\", \"async\"],\n visitor: [\"typeParameters\", \"params\", \"predicate\", \"returnType\", \"body\"],\n aliases: [\n \"Scopable\",\n \"Function\",\n \"BlockParent\",\n \"FunctionParent\",\n \"Expression\",\n \"Pureish\",\n ],\n fields: {\n ...functionCommon(),\n ...functionTypeAnnotationCommon(),\n expression: {\n // https://github.com/babel/babylon/issues/505\n validate: assertValueType(\"boolean\"),\n },\n body: {\n validate: assertNodeType(\"BlockStatement\", \"Expression\"),\n },\n predicate: {\n validate: assertNodeType(\"DeclaredPredicate\", \"InferredPredicate\"),\n optional: true,\n },\n },\n});\n\ndefineType(\"ClassBody\", {\n visitor: [\"body\"],\n fields: {\n body: validateArrayOfType(\n \"ClassMethod\",\n \"ClassPrivateMethod\",\n \"ClassProperty\",\n \"ClassPrivateProperty\",\n \"ClassAccessorProperty\",\n \"TSDeclareMethod\",\n \"TSIndexSignature\",\n \"StaticBlock\",\n ),\n },\n});\n\ndefineType(\"ClassExpression\", {\n builder: [\"id\", \"superClass\", \"body\", \"decorators\"],\n visitor: [\n \"decorators\",\n \"id\",\n \"typeParameters\",\n \"superClass\",\n process.env.BABEL_8_BREAKING ? \"superTypeArguments\" : \"superTypeParameters\",\n \"mixins\",\n \"implements\",\n \"body\",\n ],\n aliases: [\"Scopable\", \"Class\", \"Expression\"],\n fields: {\n id: {\n validate: assertNodeType(\"Identifier\"),\n optional: true,\n },\n typeParameters: {\n validate: process.env.BABEL_8_BREAKING\n ? assertNodeType(\n \"TypeParameterDeclaration\",\n \"TSTypeParameterDeclaration\",\n )\n : assertNodeType(\n \"TypeParameterDeclaration\",\n \"TSTypeParameterDeclaration\",\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n \"Noop\",\n ),\n optional: true,\n },\n body: {\n validate: assertNodeType(\"ClassBody\"),\n },\n superClass: {\n optional: true,\n validate: assertNodeType(\"Expression\"),\n },\n [process.env.BABEL_8_BREAKING\n ? \"superTypeArguments\"\n : \"superTypeParameters\"]: {\n validate: assertNodeType(\n \"TypeParameterInstantiation\",\n \"TSTypeParameterInstantiation\",\n ),\n optional: true,\n },\n implements: {\n validate: arrayOfType(\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n process.env.BABEL_8_BREAKING\n ? \"TSClassImplements\"\n : \"TSExpressionWithTypeArguments\",\n \"ClassImplements\",\n ),\n optional: true,\n },\n decorators: {\n validate: arrayOfType(\"Decorator\"),\n optional: true,\n },\n mixins: {\n validate: assertNodeType(\"InterfaceExtends\"),\n optional: true,\n },\n },\n});\n\ndefineType(\"ClassDeclaration\", {\n inherits: \"ClassExpression\",\n aliases: [\"Scopable\", \"Class\", \"Statement\", \"Declaration\"],\n fields: {\n id: {\n validate: assertNodeType(\"Identifier\"),\n // The id may be omitted if this is the child of an\n // ExportDefaultDeclaration.\n optional: true,\n },\n typeParameters: {\n validate: process.env.BABEL_8_BREAKING\n ? assertNodeType(\n \"TypeParameterDeclaration\",\n \"TSTypeParameterDeclaration\",\n )\n : assertNodeType(\n \"TypeParameterDeclaration\",\n \"TSTypeParameterDeclaration\",\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n \"Noop\",\n ),\n optional: true,\n },\n body: {\n validate: assertNodeType(\"ClassBody\"),\n },\n superClass: {\n optional: true,\n validate: assertNodeType(\"Expression\"),\n },\n [process.env.BABEL_8_BREAKING\n ? \"superTypeArguments\"\n : \"superTypeParameters\"]: {\n validate: assertNodeType(\n \"TypeParameterInstantiation\",\n \"TSTypeParameterInstantiation\",\n ),\n optional: true,\n },\n implements: {\n validate: arrayOfType(\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n process.env.BABEL_8_BREAKING\n ? \"TSClassImplements\"\n : \"TSExpressionWithTypeArguments\",\n \"ClassImplements\",\n ),\n optional: true,\n },\n decorators: {\n validate: arrayOfType(\"Decorator\"),\n optional: true,\n },\n mixins: {\n validate: assertNodeType(\"InterfaceExtends\"),\n optional: true,\n },\n declare: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n abstract: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n },\n validate:\n !process.env.BABEL_8_BREAKING && !process.env.BABEL_TYPES_8_BREAKING\n ? undefined\n : (function () {\n const identifier = assertNodeType(\"Identifier\");\n return function (parent, key, node) {\n if (!is(\"ExportDefaultDeclaration\", parent)) {\n identifier(node, \"id\", node.id);\n }\n };\n })(),\n});\n\nexport const importAttributes = {\n attributes: {\n optional: true,\n validate: arrayOfType(\"ImportAttribute\"),\n },\n};\nif (!process.env.BABEL_8_BREAKING) {\n // @ts-expect-error (Babel 7 only)\n importAttributes.assertions = {\n deprecated: true,\n optional: true,\n validate: arrayOfType(\"ImportAttribute\"),\n };\n}\n\ndefineType(\"ExportAllDeclaration\", {\n builder: [\"source\"],\n visitor: [\"source\", \"attributes\", \"assertions\"],\n aliases: [\n \"Statement\",\n \"Declaration\",\n \"ImportOrExportDeclaration\",\n \"ExportDeclaration\",\n ],\n fields: {\n source: {\n validate: assertNodeType(\"StringLiteral\"),\n },\n exportKind: validateOptional(assertOneOf(\"type\", \"value\")),\n ...importAttributes,\n },\n});\n\ndefineType(\"ExportDefaultDeclaration\", {\n visitor: [\"declaration\"],\n aliases: [\n \"Statement\",\n \"Declaration\",\n \"ImportOrExportDeclaration\",\n \"ExportDeclaration\",\n ],\n fields: {\n declaration: validateType(\n \"TSDeclareFunction\",\n \"FunctionDeclaration\",\n \"ClassDeclaration\",\n \"Expression\",\n ),\n exportKind: validateOptional(assertOneOf(\"value\")),\n },\n});\n\ndefineType(\"ExportNamedDeclaration\", {\n builder: [\"declaration\", \"specifiers\", \"source\"],\n visitor: process.env.BABEL_8_BREAKING\n ? [\"declaration\", \"specifiers\", \"source\", \"attributes\"]\n : [\"declaration\", \"specifiers\", \"source\", \"attributes\", \"assertions\"],\n aliases: [\n \"Statement\",\n \"Declaration\",\n \"ImportOrExportDeclaration\",\n \"ExportDeclaration\",\n ],\n fields: {\n declaration: {\n optional: true,\n validate:\n process.env.BABEL_8_BREAKING || process.env.BABEL_TYPES_8_BREAKING\n ? chain(\n assertNodeType(\"Declaration\"),\n Object.assign(\n function (node: t.ExportNamedDeclaration, key, val) {\n // This validator isn't put at the top level because we can run it\n // even if this node doesn't have a parent.\n\n if (val && node.specifiers.length) {\n throw new TypeError(\n \"Only declaration or specifiers is allowed on ExportNamedDeclaration\",\n );\n }\n\n // This validator isn't put at the top level because we can run it\n // even if this node doesn't have a parent.\n\n if (val && node.source) {\n throw new TypeError(\n \"Cannot export a declaration from a source\",\n );\n }\n } satisfies ValidatorImpl,\n { oneOfNodeTypes: [\"Declaration\"] as const },\n ) satisfies ValidatorOneOfNodeTypes,\n )\n : assertNodeType(\"Declaration\"),\n },\n ...importAttributes,\n specifiers: {\n default: [],\n validate: arrayOf(\n (function () {\n const sourced = assertNodeType(\n \"ExportSpecifier\",\n \"ExportDefaultSpecifier\",\n \"ExportNamespaceSpecifier\",\n );\n const sourceless = assertNodeType(\"ExportSpecifier\");\n\n if (\n !process.env.BABEL_8_BREAKING &&\n !process.env.BABEL_TYPES_8_BREAKING\n )\n return sourced;\n\n return Object.assign(\n function (node: t.ExportNamedDeclaration, key, val) {\n const validator = node.source ? sourced : sourceless;\n validator(node, key, val);\n } satisfies ValidatorImpl,\n {\n oneOfNodeTypes: [\n \"ExportSpecifier\",\n \"ExportDefaultSpecifier\",\n \"ExportNamespaceSpecifier\",\n ] as const,\n },\n ) satisfies ValidatorOneOfNodeTypes;\n })(),\n ),\n },\n source: {\n validate: assertNodeType(\"StringLiteral\"),\n optional: true,\n },\n exportKind: validateOptional(assertOneOf(\"type\", \"value\")),\n },\n});\n\ndefineType(\"ExportSpecifier\", {\n visitor: [\"local\", \"exported\"],\n aliases: [\"ModuleSpecifier\"],\n fields: {\n local: {\n validate: assertNodeType(\"Identifier\"),\n },\n exported: {\n validate: assertNodeType(\"Identifier\", \"StringLiteral\"),\n },\n exportKind: {\n // And TypeScript's \"export { type foo } from\"\n validate: assertOneOf(\"type\", \"value\"),\n optional: true,\n },\n },\n});\n\ndefineType(\"ForOfStatement\", {\n visitor: [\"left\", \"right\", \"body\"],\n builder: [\"left\", \"right\", \"body\", \"await\"],\n aliases: [\n \"Scopable\",\n \"Statement\",\n \"For\",\n \"BlockParent\",\n \"Loop\",\n \"ForXStatement\",\n ],\n fields: {\n left: {\n validate: (function () {\n if (\n !process.env.BABEL_8_BREAKING &&\n !process.env.BABEL_TYPES_8_BREAKING\n ) {\n return assertNodeType(\"VariableDeclaration\", \"LVal\");\n }\n\n const declaration = assertNodeType(\"VariableDeclaration\");\n const lval = assertNodeType(\n \"Identifier\",\n \"MemberExpression\",\n \"ArrayPattern\",\n \"ObjectPattern\",\n \"TSAsExpression\",\n \"TSSatisfiesExpression\",\n \"TSTypeAssertion\",\n \"TSNonNullExpression\",\n );\n\n return Object.assign(\n function (node, key, val) {\n if (is(\"VariableDeclaration\", val)) {\n declaration(node, key, val);\n } else {\n lval(node, key, val);\n }\n } satisfies ValidatorImpl,\n {\n oneOfNodeTypes: [\n \"VariableDeclaration\",\n \"Identifier\",\n \"MemberExpression\",\n \"ArrayPattern\",\n \"ObjectPattern\",\n \"TSAsExpression\",\n \"TSSatisfiesExpression\",\n \"TSTypeAssertion\",\n \"TSNonNullExpression\",\n ] as const,\n },\n ) satisfies ValidatorOneOfNodeTypes;\n })(),\n },\n right: {\n validate: assertNodeType(\"Expression\"),\n },\n body: {\n validate: assertNodeType(\"Statement\"),\n },\n await: {\n default: false,\n },\n },\n});\n\ndefineType(\"ImportDeclaration\", {\n builder: [\"specifiers\", \"source\"],\n visitor: process.env.BABEL_8_BREAKING\n ? [\"specifiers\", \"source\", \"attributes\"]\n : [\"specifiers\", \"source\", \"attributes\", \"assertions\"],\n aliases: [\"Statement\", \"Declaration\", \"ImportOrExportDeclaration\"],\n fields: {\n ...importAttributes,\n module: {\n optional: true,\n validate: assertValueType(\"boolean\"),\n },\n phase: {\n default: null,\n validate: assertOneOf(\"source\", \"defer\"),\n },\n specifiers: validateArrayOfType(\n \"ImportSpecifier\",\n \"ImportDefaultSpecifier\",\n \"ImportNamespaceSpecifier\",\n ),\n source: {\n validate: assertNodeType(\"StringLiteral\"),\n },\n importKind: {\n // Handle TypeScript/Flowtype's extension \"import type foo from\"\n // TypeScript doesn't support typeof\n validate: assertOneOf(\"type\", \"typeof\", \"value\"),\n optional: true,\n },\n },\n});\n\ndefineType(\"ImportDefaultSpecifier\", {\n visitor: [\"local\"],\n aliases: [\"ModuleSpecifier\"],\n fields: {\n local: {\n validate: assertNodeType(\"Identifier\"),\n },\n },\n});\n\ndefineType(\"ImportNamespaceSpecifier\", {\n visitor: [\"local\"],\n aliases: [\"ModuleSpecifier\"],\n fields: {\n local: {\n validate: assertNodeType(\"Identifier\"),\n },\n },\n});\n\ndefineType(\"ImportSpecifier\", {\n visitor: [\"imported\", \"local\"],\n builder: [\"local\", \"imported\"],\n aliases: [\"ModuleSpecifier\"],\n fields: {\n local: {\n validate: assertNodeType(\"Identifier\"),\n },\n imported: {\n validate: assertNodeType(\"Identifier\", \"StringLiteral\"),\n },\n importKind: {\n // Handle Flowtype's extension \"import {typeof foo} from\"\n // And TypeScript's \"import { type foo } from\"\n validate: assertOneOf(\"type\", \"typeof\", \"value\"),\n optional: true,\n },\n },\n});\n\ndefineType(\"ImportExpression\", {\n visitor: [\"source\", \"options\"],\n aliases: [\"Expression\"],\n fields: {\n phase: {\n default: null,\n validate: assertOneOf(\"source\", \"defer\"),\n },\n source: {\n validate: assertNodeType(\"Expression\"),\n },\n options: {\n validate: assertNodeType(\"Expression\"),\n optional: true,\n },\n },\n});\n\ndefineType(\"MetaProperty\", {\n visitor: [\"meta\", \"property\"],\n aliases: [\"Expression\"],\n fields: {\n meta: {\n validate:\n process.env.BABEL_8_BREAKING || process.env.BABEL_TYPES_8_BREAKING\n ? chain(\n assertNodeType(\"Identifier\"),\n Object.assign(\n function (node: t.MetaProperty, key, val) {\n let property;\n switch (val.name) {\n case \"function\":\n property = \"sent\";\n break;\n case \"new\":\n property = \"target\";\n break;\n case \"import\":\n property = \"meta\";\n break;\n }\n if (!is(\"Identifier\", node.property, { name: property })) {\n throw new TypeError(\"Unrecognised MetaProperty\");\n }\n } satisfies ValidatorImpl,\n { oneOfNodeTypes: [\"Identifier\"] as const },\n ) satisfies ValidatorOneOfNodeTypes,\n )\n : assertNodeType(\"Identifier\"),\n },\n property: {\n validate: assertNodeType(\"Identifier\"),\n },\n },\n});\n\nexport const classMethodOrPropertyCommon = () => ({\n abstract: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n accessibility: {\n validate: assertOneOf(\"public\", \"private\", \"protected\"),\n optional: true,\n },\n static: {\n default: false,\n },\n override: {\n default: false,\n },\n computed: {\n default: false,\n },\n optional: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n key: {\n validate: chain(\n (function () {\n const normal = assertNodeType(\n \"Identifier\",\n \"StringLiteral\",\n \"NumericLiteral\",\n \"BigIntLiteral\",\n );\n const computed = assertNodeType(\"Expression\");\n\n return function (\n node: Extract<t.Node, { computed: boolean }>,\n key,\n val,\n ) {\n const validator = node.computed ? computed : normal;\n validator(node, key, val);\n } satisfies ValidatorImpl;\n })(),\n assertNodeType(\n \"Identifier\",\n \"StringLiteral\",\n \"NumericLiteral\",\n \"BigIntLiteral\",\n \"Expression\",\n ),\n ),\n },\n});\n\nexport const classMethodOrDeclareMethodCommon = () => ({\n ...functionCommon(),\n ...classMethodOrPropertyCommon(),\n params: validateArrayOfType(\"FunctionParameter\", \"TSParameterProperty\"),\n kind: {\n validate: assertOneOf(\"get\", \"set\", \"method\", \"constructor\"),\n default: \"method\",\n },\n access: {\n validate: chain(\n assertValueType(\"string\"),\n assertOneOf(\"public\", \"private\", \"protected\"),\n ),\n optional: true,\n },\n decorators: {\n validate: arrayOfType(\"Decorator\"),\n optional: true,\n },\n});\n\ndefineType(\"ClassMethod\", {\n aliases: [\"Function\", \"Scopable\", \"BlockParent\", \"FunctionParent\", \"Method\"],\n builder: [\n \"kind\",\n \"key\",\n \"params\",\n \"body\",\n \"computed\",\n \"static\",\n \"generator\",\n \"async\",\n ],\n visitor: [\n \"decorators\",\n \"key\",\n \"typeParameters\",\n \"params\",\n \"returnType\",\n \"body\",\n ],\n ...classMethodOrPropertyUnionShapeCommon(),\n fields: {\n ...classMethodOrDeclareMethodCommon(),\n ...functionTypeAnnotationCommon(),\n body: {\n validate: assertNodeType(\"BlockStatement\"),\n },\n },\n});\n\ndefineType(\"ObjectPattern\", {\n visitor: [\n \"decorators\" /* for legacy param decorators */,\n \"properties\",\n \"typeAnnotation\",\n ],\n builder: [\"properties\"],\n aliases: [\"FunctionParameter\", \"Pattern\", \"PatternLike\", \"LVal\"],\n fields: {\n ...patternLikeCommon(),\n properties: validateArrayOfType(\"RestElement\", \"ObjectProperty\"),\n },\n});\n\ndefineType(\"SpreadElement\", {\n visitor: [\"argument\"],\n aliases: [\"UnaryLike\"],\n deprecatedAlias: \"SpreadProperty\",\n fields: {\n argument: {\n validate: assertNodeType(\"Expression\"),\n },\n },\n});\n\ndefineType(\n \"Super\",\n process.env.BABEL_8_BREAKING\n ? undefined\n : {\n aliases: [\"Expression\"],\n },\n);\n\ndefineType(\"TaggedTemplateExpression\", {\n visitor: process.env.BABEL_8_BREAKING\n ? [\"tag\", \"typeArguments\", \"quasi\"]\n : [\"tag\", \"typeParameters\", \"quasi\"],\n builder: [\"tag\", \"quasi\"],\n aliases: [\"Expression\"],\n fields: {\n tag: {\n validate: assertNodeType(\"Expression\"),\n },\n quasi: {\n validate: assertNodeType(\"TemplateLiteral\"),\n },\n [process.env.BABEL_8_BREAKING ? \"typeArguments\" : \"typeParameters\"]: {\n validate: assertNodeType(\n \"TypeParameterInstantiation\",\n \"TSTypeParameterInstantiation\",\n ),\n optional: true,\n },\n },\n});\n\ndefineType(\"TemplateElement\", {\n builder: [\"value\", \"tail\"],\n fields: {\n value: {\n validate: chain(\n assertShape({\n raw: {\n validate: assertValueType(\"string\"),\n },\n cooked: {\n validate: assertValueType(\"string\"),\n optional: true,\n },\n }),\n function templateElementCookedValidator(node: t.TemplateElement) {\n const raw = node.value.raw;\n\n let unterminatedCalled = false;\n\n const error = () => {\n // unreachable\n throw new Error(\"Internal @babel/types error.\");\n };\n const { str, firstInvalidLoc } = readStringContents(\n \"template\",\n raw,\n 0,\n 0,\n 0,\n {\n unterminated() {\n unterminatedCalled = true;\n },\n strictNumericEscape: error,\n invalidEscapeSequence: error,\n numericSeparatorInEscapeSequence: error,\n unexpectedNumericSeparator: error,\n invalidDigit: error,\n invalidCodePoint: error,\n },\n );\n if (!unterminatedCalled) throw new Error(\"Invalid raw\");\n\n node.value.cooked = firstInvalidLoc ? null : str;\n },\n ),\n },\n tail: {\n default: false,\n },\n },\n});\n\ndefineType(\"TemplateLiteral\", {\n visitor: [\"quasis\", \"expressions\"],\n aliases: [\"Expression\", \"Literal\"],\n fields: {\n quasis: validateArrayOfType(\"TemplateElement\"),\n expressions: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(\n assertNodeType(\n \"Expression\",\n // For TypeScript template literal types\n \"TSType\",\n ),\n ),\n function (node: t.TemplateLiteral, key, val) {\n if (node.quasis.length !== val.length + 1) {\n throw new TypeError(\n `Number of ${\n node.type\n } quasis should be exactly one more than the number of expressions.\\nExpected ${\n val.length + 1\n } quasis but got ${node.quasis.length}`,\n );\n }\n } satisfies ValidatorImpl,\n ),\n },\n },\n});\n\ndefineType(\"YieldExpression\", {\n builder: [\"argument\", \"delegate\"],\n visitor: [\"argument\"],\n aliases: [\"Expression\", \"Terminatorless\"],\n fields: {\n delegate: {\n validate:\n process.env.BABEL_8_BREAKING || process.env.BABEL_TYPES_8_BREAKING\n ? chain(\n assertValueType(\"boolean\"),\n Object.assign(\n function (node: t.YieldExpression, key, val) {\n if (val && !node.argument) {\n throw new TypeError(\n \"Property delegate of YieldExpression cannot be true if there is no argument\",\n );\n }\n } satisfies ValidatorImpl,\n { type: \"boolean\" as const },\n ) satisfies ValidatorType,\n )\n : assertValueType(\"boolean\"),\n default: false,\n },\n argument: {\n optional: true,\n validate: assertNodeType(\"Expression\"),\n },\n },\n});\n\n// --- ES2017 ---\ndefineType(\"AwaitExpression\", {\n builder: [\"argument\"],\n visitor: [\"argument\"],\n aliases: [\"Expression\", \"Terminatorless\"],\n fields: {\n argument: {\n validate: assertNodeType(\"Expression\"),\n },\n },\n});\n\n// --- ES2019 ---\ndefineType(\"Import\", {\n aliases: [\"Expression\"],\n});\n\n// --- ES2020 ---\ndefineType(\"BigIntLiteral\", {\n builder: [\"value\"],\n fields: {\n value: {\n validate: process.env.BABEL_8_BREAKING\n ? assertValueType(\"bigint\")\n : assertValueType(\"string\"),\n },\n },\n aliases: [\"Expression\", \"Pureish\", \"Literal\", \"Immutable\"],\n});\n\ndefineType(\"ExportNamespaceSpecifier\", {\n visitor: [\"exported\"],\n aliases: [\"ModuleSpecifier\"],\n fields: {\n exported: {\n validate: assertNodeType(\"Identifier\"),\n },\n },\n});\n\ndefineType(\"OptionalMemberExpression\", {\n builder: [\"object\", \"property\", \"computed\", \"optional\"],\n visitor: [\"object\", \"property\"],\n // todo: Add OptionalMemberExpression to LVal when optional-chaining-assign reaches stage 4\n aliases: [\"Expression\"],\n fields: {\n object: {\n validate: assertNodeType(\"Expression\"),\n },\n property: {\n validate: (function () {\n const normal = assertNodeType(\"Identifier\");\n const computed = assertNodeType(\"Expression\");\n\n const validator: ValidatorOneOfNodeTypes = Object.assign(\n function (node: t.OptionalMemberExpression, key, val) {\n const validator = node.computed ? computed : normal;\n validator(node, key, val);\n } satisfies ValidatorImpl,\n // todo(ts): can be discriminated union by `computed` property\n { oneOfNodeTypes: [\"Expression\", \"Identifier\"] as const },\n );\n return validator;\n })(),\n },\n computed: {\n default: false,\n },\n optional: {\n validate:\n !process.env.BABEL_8_BREAKING && !process.env.BABEL_TYPES_8_BREAKING\n ? assertValueType(\"boolean\")\n : chain(assertValueType(\"boolean\"), assertOptionalChainStart()),\n },\n },\n});\n\ndefineType(\"OptionalCallExpression\", {\n visitor: process.env.BABEL_8_BREAKING\n ? [\"callee\", \"typeArguments\", \"arguments\"]\n : [\"callee\", \"typeParameters\", \"typeArguments\", \"arguments\"],\n builder: [\"callee\", \"arguments\", \"optional\"],\n aliases: [\"Expression\"],\n fields: {\n callee: {\n validate: assertNodeType(\"Expression\"),\n },\n arguments: validateArrayOfType(\n \"Expression\",\n \"SpreadElement\",\n \"ArgumentPlaceholder\",\n ),\n optional: {\n validate:\n !process.env.BABEL_8_BREAKING && !process.env.BABEL_TYPES_8_BREAKING\n ? assertValueType(\"boolean\")\n : chain(assertValueType(\"boolean\"), assertOptionalChainStart()),\n },\n typeArguments: {\n validate: process.env.BABEL_8_BREAKING\n ? assertNodeType(\n \"TypeParameterInstantiation\",\n \"TSTypeParameterInstantiation\",\n )\n : assertNodeType(\"TypeParameterInstantiation\"),\n optional: true,\n },\n ...(process.env.BABEL_8_BREAKING\n ? {}\n : {\n typeParameters: {\n validate: assertNodeType(\"TSTypeParameterInstantiation\"),\n optional: true,\n },\n }),\n },\n});\n\n// --- ES2022 ---\ndefineType(\"ClassProperty\", {\n visitor: [\"decorators\", \"variance\", \"key\", \"typeAnnotation\", \"value\"],\n builder: [\n \"key\",\n \"value\",\n \"typeAnnotation\",\n \"decorators\",\n \"computed\",\n \"static\",\n ],\n aliases: [\"Property\"],\n ...classMethodOrPropertyUnionShapeCommon(),\n fields: {\n ...classMethodOrPropertyCommon(),\n value: {\n validate: assertNodeType(\"Expression\"),\n optional: true,\n },\n definite: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n typeAnnotation: {\n validate: process.env.BABEL_8_BREAKING\n ? assertNodeType(\"TypeAnnotation\", \"TSTypeAnnotation\")\n : assertNodeType(\n \"TypeAnnotation\",\n \"TSTypeAnnotation\",\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n \"Noop\",\n ),\n optional: true,\n },\n decorators: {\n validate: arrayOfType(\"Decorator\"),\n optional: true,\n },\n readonly: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n declare: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n variance: {\n validate: assertNodeType(\"Variance\"),\n optional: true,\n },\n },\n});\n\ndefineType(\"ClassAccessorProperty\", {\n visitor: [\"decorators\", \"key\", \"typeAnnotation\", \"value\"],\n builder: [\n \"key\",\n \"value\",\n \"typeAnnotation\",\n \"decorators\",\n \"computed\",\n \"static\",\n ],\n aliases: [\"Property\", \"Accessor\"],\n ...classMethodOrPropertyUnionShapeCommon(true),\n fields: {\n ...classMethodOrPropertyCommon(),\n key: {\n validate: chain(\n (function () {\n const normal = assertNodeType(\n \"Identifier\",\n \"StringLiteral\",\n \"NumericLiteral\",\n \"BigIntLiteral\",\n \"PrivateName\",\n );\n const computed = assertNodeType(\"Expression\");\n\n return function (\n node: t.ClassAccessorProperty,\n key: string,\n val: any,\n ) {\n const validator = node.computed ? computed : normal;\n validator(node, key, val);\n } satisfies ValidatorImpl;\n })(),\n assertNodeType(\n \"Identifier\",\n \"StringLiteral\",\n \"NumericLiteral\",\n \"BigIntLiteral\",\n \"Expression\",\n \"PrivateName\",\n ),\n ),\n },\n value: {\n validate: assertNodeType(\"Expression\"),\n optional: true,\n },\n definite: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n typeAnnotation: {\n validate: process.env.BABEL_8_BREAKING\n ? assertNodeType(\"TypeAnnotation\", \"TSTypeAnnotation\")\n : assertNodeType(\n \"TypeAnnotation\",\n \"TSTypeAnnotation\",\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n \"Noop\",\n ),\n optional: true,\n },\n decorators: {\n validate: arrayOfType(\"Decorator\"),\n optional: true,\n },\n readonly: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n declare: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n variance: {\n validate: assertNodeType(\"Variance\"),\n optional: true,\n },\n },\n});\n\ndefineType(\"ClassPrivateProperty\", {\n visitor: [\"decorators\", \"variance\", \"key\", \"typeAnnotation\", \"value\"],\n builder: [\"key\", \"value\", \"decorators\", \"static\"],\n aliases: [\"Property\", \"Private\"],\n fields: {\n key: {\n validate: assertNodeType(\"PrivateName\"),\n },\n value: {\n validate: assertNodeType(\"Expression\"),\n optional: true,\n },\n typeAnnotation: {\n validate: process.env.BABEL_8_BREAKING\n ? assertNodeType(\"TypeAnnotation\", \"TSTypeAnnotation\")\n : assertNodeType(\n \"TypeAnnotation\",\n \"TSTypeAnnotation\",\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n \"Noop\",\n ),\n optional: true,\n },\n decorators: {\n validate: arrayOfType(\"Decorator\"),\n optional: true,\n },\n static: {\n validate: assertValueType(\"boolean\"),\n default: false,\n },\n readonly: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n optional: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n definite: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n variance: {\n validate: assertNodeType(\"Variance\"),\n optional: true,\n },\n },\n});\n\ndefineType(\"ClassPrivateMethod\", {\n builder: [\"kind\", \"key\", \"params\", \"body\", \"static\"],\n visitor: [\n \"decorators\",\n \"key\",\n \"typeParameters\",\n \"params\",\n \"returnType\",\n \"body\",\n ],\n aliases: [\n \"Function\",\n \"Scopable\",\n \"BlockParent\",\n \"FunctionParent\",\n \"Method\",\n \"Private\",\n ],\n // `computed` is not included in the `builder`\n // ...classMethodOrPropertyUnionShapeCommon(),\n fields: {\n ...classMethodOrDeclareMethodCommon(),\n ...functionTypeAnnotationCommon(),\n kind: {\n validate: assertOneOf(\"get\", \"set\", \"method\"),\n default: \"method\",\n },\n key: {\n validate: assertNodeType(\"PrivateName\"),\n },\n body: {\n validate: assertNodeType(\"BlockStatement\"),\n },\n },\n});\n\ndefineType(\"PrivateName\", {\n visitor: [\"id\"],\n aliases: [\"Private\"],\n fields: {\n id: {\n validate: assertNodeType(\"Identifier\"),\n },\n },\n});\n\ndefineType(\"StaticBlock\", {\n visitor: [\"body\"],\n fields: {\n body: validateArrayOfType(\"Statement\"),\n },\n aliases: [\"Scopable\", \"BlockParent\", \"FunctionParent\"],\n});\n\n// --- ES2025 ---\ndefineType(\"ImportAttribute\", {\n visitor: [\"key\", \"value\"],\n fields: {\n key: {\n validate: assertNodeType(\"Identifier\", \"StringLiteral\"),\n },\n value: {\n validate: assertNodeType(\"StringLiteral\"),\n },\n },\n});\n","import { importAttributes } from \"./core.ts\";\nimport {\n defineAliasedType,\n arrayOfType,\n assertOneOf,\n assertValueType,\n validate,\n validateArrayOfType,\n validateOptional,\n validateOptionalType,\n validateType,\n} from \"./utils.ts\";\n\nconst defineType = defineAliasedType(\"Flow\");\n\nconst defineInterfaceishType = (\n name: \"DeclareClass\" | \"DeclareInterface\" | \"InterfaceDeclaration\",\n) => {\n const isDeclareClass = name === \"DeclareClass\";\n\n defineType(name, {\n builder: [\"id\", \"typeParameters\", \"extends\", \"body\"],\n visitor: [\n \"id\",\n \"typeParameters\",\n \"extends\",\n ...(isDeclareClass ? [\"mixins\", \"implements\"] : []),\n \"body\",\n ],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: {\n id: validateType(\"Identifier\"),\n typeParameters: validateOptionalType(\"TypeParameterDeclaration\"),\n extends: validateOptional(arrayOfType(\"InterfaceExtends\")),\n ...(isDeclareClass\n ? {\n mixins: validateOptional(arrayOfType(\"InterfaceExtends\")),\n implements: validateOptional(arrayOfType(\"ClassImplements\")),\n }\n : {}),\n body: validateType(\"ObjectTypeAnnotation\"),\n },\n });\n};\n\ndefineType(\"AnyTypeAnnotation\", {\n aliases: [\"FlowType\", \"FlowBaseAnnotation\"],\n});\n\ndefineType(\"ArrayTypeAnnotation\", {\n visitor: [\"elementType\"],\n aliases: [\"FlowType\"],\n fields: {\n elementType: validateType(\"FlowType\"),\n },\n});\n\ndefineType(\"BooleanTypeAnnotation\", {\n aliases: [\"FlowType\", \"FlowBaseAnnotation\"],\n});\n\ndefineType(\"BooleanLiteralTypeAnnotation\", {\n builder: [\"value\"],\n aliases: [\"FlowType\"],\n fields: {\n value: validate(assertValueType(\"boolean\")),\n },\n});\n\ndefineType(\"NullLiteralTypeAnnotation\", {\n aliases: [\"FlowType\", \"FlowBaseAnnotation\"],\n});\n\ndefineType(\"ClassImplements\", {\n visitor: [\"id\", \"typeParameters\"],\n fields: {\n id: validateType(\"Identifier\"),\n typeParameters: validateOptionalType(\"TypeParameterInstantiation\"),\n },\n});\n\ndefineInterfaceishType(\"DeclareClass\");\n\ndefineType(\"DeclareFunction\", {\n builder: [\"id\"],\n visitor: [\"id\", \"predicate\"],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: {\n id: validateType(\"Identifier\"),\n predicate: validateOptionalType(\"DeclaredPredicate\"),\n },\n});\n\ndefineInterfaceishType(\"DeclareInterface\");\n\ndefineType(\"DeclareModule\", {\n builder: [\"id\", \"body\", \"kind\"],\n visitor: [\"id\", \"body\"],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: {\n id: validateType(\"Identifier\", \"StringLiteral\"),\n body: validateType(\"BlockStatement\"),\n kind: validateOptional(assertOneOf(\"CommonJS\", \"ES\")),\n },\n});\n\ndefineType(\"DeclareModuleExports\", {\n visitor: [\"typeAnnotation\"],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: {\n typeAnnotation: validateType(\"TypeAnnotation\"),\n },\n});\n\ndefineType(\"DeclareTypeAlias\", {\n visitor: [\"id\", \"typeParameters\", \"right\"],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: {\n id: validateType(\"Identifier\"),\n typeParameters: validateOptionalType(\"TypeParameterDeclaration\"),\n right: validateType(\"FlowType\"),\n },\n});\n\ndefineType(\"DeclareOpaqueType\", {\n visitor: [\"id\", \"typeParameters\", \"supertype\"],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: {\n id: validateType(\"Identifier\"),\n typeParameters: validateOptionalType(\"TypeParameterDeclaration\"),\n supertype: validateOptionalType(\"FlowType\"),\n impltype: validateOptionalType(\"FlowType\"),\n },\n});\n\ndefineType(\"DeclareVariable\", {\n visitor: [\"id\"],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: {\n id: validateType(\"Identifier\"),\n },\n});\n\ndefineType(\"DeclareExportDeclaration\", {\n visitor: [\"declaration\", \"specifiers\", \"source\", \"attributes\"],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: {\n declaration: validateOptionalType(\"Flow\"),\n specifiers: validateOptional(\n arrayOfType(\"ExportSpecifier\", \"ExportNamespaceSpecifier\"),\n ),\n source: validateOptionalType(\"StringLiteral\"),\n default: validateOptional(assertValueType(\"boolean\")),\n ...importAttributes,\n },\n});\n\ndefineType(\"DeclareExportAllDeclaration\", {\n visitor: [\"source\", \"attributes\"],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: {\n source: validateType(\"StringLiteral\"),\n exportKind: validateOptional(assertOneOf(\"type\", \"value\")),\n ...importAttributes,\n },\n});\n\ndefineType(\"DeclaredPredicate\", {\n visitor: [\"value\"],\n aliases: [\"FlowPredicate\"],\n fields: {\n value: validateType(\"Flow\"),\n },\n});\n\ndefineType(\"ExistsTypeAnnotation\", {\n aliases: [\"FlowType\"],\n});\n\ndefineType(\"FunctionTypeAnnotation\", {\n builder: [\"typeParameters\", \"params\", \"rest\", \"returnType\"],\n visitor: [\"typeParameters\", \"this\", \"params\", \"rest\", \"returnType\"],\n aliases: [\"FlowType\"],\n fields: {\n typeParameters: validateOptionalType(\"TypeParameterDeclaration\"),\n params: validateArrayOfType(\"FunctionTypeParam\"),\n rest: validateOptionalType(\"FunctionTypeParam\"),\n this: validateOptionalType(\"FunctionTypeParam\"),\n returnType: validateType(\"FlowType\"),\n },\n});\n\ndefineType(\"FunctionTypeParam\", {\n visitor: [\"name\", \"typeAnnotation\"],\n fields: {\n name: validateOptionalType(\"Identifier\"),\n typeAnnotation: validateType(\"FlowType\"),\n optional: validateOptional(assertValueType(\"boolean\")),\n },\n});\n\ndefineType(\"GenericTypeAnnotation\", {\n visitor: [\"id\", \"typeParameters\"],\n aliases: [\"FlowType\"],\n fields: {\n id: validateType(\"Identifier\", \"QualifiedTypeIdentifier\"),\n typeParameters: validateOptionalType(\"TypeParameterInstantiation\"),\n },\n});\n\ndefineType(\"InferredPredicate\", {\n aliases: [\"FlowPredicate\"],\n});\n\ndefineType(\"InterfaceExtends\", {\n visitor: [\"id\", \"typeParameters\"],\n fields: {\n id: validateType(\"Identifier\", \"QualifiedTypeIdentifier\"),\n typeParameters: validateOptionalType(\"TypeParameterInstantiation\"),\n },\n});\n\ndefineInterfaceishType(\"InterfaceDeclaration\");\n\ndefineType(\"InterfaceTypeAnnotation\", {\n visitor: [\"extends\", \"body\"],\n aliases: [\"FlowType\"],\n fields: {\n extends: validateOptional(arrayOfType(\"InterfaceExtends\")),\n body: validateType(\"ObjectTypeAnnotation\"),\n },\n});\n\ndefineType(\"IntersectionTypeAnnotation\", {\n visitor: [\"types\"],\n aliases: [\"FlowType\"],\n fields: {\n types: validate(arrayOfType(\"FlowType\")),\n },\n});\n\ndefineType(\"MixedTypeAnnotation\", {\n aliases: [\"FlowType\", \"FlowBaseAnnotation\"],\n});\n\ndefineType(\"EmptyTypeAnnotation\", {\n aliases: [\"FlowType\", \"FlowBaseAnnotation\"],\n});\n\ndefineType(\"NullableTypeAnnotation\", {\n visitor: [\"typeAnnotation\"],\n aliases: [\"FlowType\"],\n fields: {\n typeAnnotation: validateType(\"FlowType\"),\n },\n});\n\ndefineType(\"NumberLiteralTypeAnnotation\", {\n builder: [\"value\"],\n aliases: [\"FlowType\"],\n fields: {\n value: validate(assertValueType(\"number\")),\n },\n});\n\ndefineType(\"NumberTypeAnnotation\", {\n aliases: [\"FlowType\", \"FlowBaseAnnotation\"],\n});\n\ndefineType(\"ObjectTypeAnnotation\", {\n visitor: [\"properties\", \"indexers\", \"callProperties\", \"internalSlots\"],\n aliases: [\"FlowType\"],\n builder: [\n \"properties\",\n \"indexers\",\n \"callProperties\",\n \"internalSlots\",\n \"exact\",\n ],\n fields: {\n properties: validate(\n arrayOfType(\"ObjectTypeProperty\", \"ObjectTypeSpreadProperty\"),\n ),\n indexers: {\n validate: arrayOfType(\"ObjectTypeIndexer\"),\n optional: process.env.BABEL_8_BREAKING ? false : true,\n default: [],\n },\n callProperties: {\n validate: arrayOfType(\"ObjectTypeCallProperty\"),\n optional: process.env.BABEL_8_BREAKING ? false : true,\n default: [],\n },\n internalSlots: {\n validate: arrayOfType(\"ObjectTypeInternalSlot\"),\n optional: process.env.BABEL_8_BREAKING ? false : true,\n default: [],\n },\n exact: {\n validate: assertValueType(\"boolean\"),\n default: false,\n },\n // If the inexact flag is present then this is an object type, and not a\n // declare class, declare interface, or interface. If it is true, the\n // object uses ... to express that it is inexact.\n inexact: validateOptional(assertValueType(\"boolean\")),\n },\n});\n\ndefineType(\"ObjectTypeInternalSlot\", {\n visitor: [\"id\", \"value\"],\n builder: [\"id\", \"value\", \"optional\", \"static\", \"method\"],\n aliases: [\"UserWhitespacable\"],\n fields: {\n id: validateType(\"Identifier\"),\n value: validateType(\"FlowType\"),\n optional: validate(assertValueType(\"boolean\")),\n static: validate(assertValueType(\"boolean\")),\n method: validate(assertValueType(\"boolean\")),\n },\n});\n\ndefineType(\"ObjectTypeCallProperty\", {\n visitor: [\"value\"],\n aliases: [\"UserWhitespacable\"],\n fields: {\n value: validateType(\"FlowType\"),\n static: validate(assertValueType(\"boolean\")),\n },\n});\n\ndefineType(\"ObjectTypeIndexer\", {\n visitor: [\"variance\", \"id\", \"key\", \"value\"],\n builder: [\"id\", \"key\", \"value\", \"variance\"],\n aliases: [\"UserWhitespacable\"],\n fields: {\n id: validateOptionalType(\"Identifier\"),\n key: validateType(\"FlowType\"),\n value: validateType(\"FlowType\"),\n static: validate(assertValueType(\"boolean\")),\n variance: validateOptionalType(\"Variance\"),\n },\n});\n\ndefineType(\"ObjectTypeProperty\", {\n visitor: [\"key\", \"value\", \"variance\"],\n aliases: [\"UserWhitespacable\"],\n fields: {\n key: validateType(\"Identifier\", \"StringLiteral\"),\n value: validateType(\"FlowType\"),\n kind: validate(assertOneOf(\"init\", \"get\", \"set\")),\n static: validate(assertValueType(\"boolean\")),\n proto: validate(assertValueType(\"boolean\")),\n optional: validate(assertValueType(\"boolean\")),\n variance: validateOptionalType(\"Variance\"),\n method: validate(assertValueType(\"boolean\")),\n },\n});\n\ndefineType(\"ObjectTypeSpreadProperty\", {\n visitor: [\"argument\"],\n aliases: [\"UserWhitespacable\"],\n fields: {\n argument: validateType(\"FlowType\"),\n },\n});\n\ndefineType(\"OpaqueType\", {\n visitor: [\"id\", \"typeParameters\", \"supertype\", \"impltype\"],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: {\n id: validateType(\"Identifier\"),\n typeParameters: validateOptionalType(\"TypeParameterDeclaration\"),\n supertype: validateOptionalType(\"FlowType\"),\n impltype: validateType(\"FlowType\"),\n },\n});\n\ndefineType(\"QualifiedTypeIdentifier\", {\n visitor: [\"qualification\", \"id\"],\n builder: [\"id\", \"qualification\"],\n fields: {\n id: validateType(\"Identifier\"),\n qualification: validateType(\"Identifier\", \"QualifiedTypeIdentifier\"),\n },\n});\n\ndefineType(\"StringLiteralTypeAnnotation\", {\n builder: [\"value\"],\n aliases: [\"FlowType\"],\n fields: {\n value: validate(assertValueType(\"string\")),\n },\n});\n\ndefineType(\"StringTypeAnnotation\", {\n aliases: [\"FlowType\", \"FlowBaseAnnotation\"],\n});\n\ndefineType(\"SymbolTypeAnnotation\", {\n aliases: [\"FlowType\", \"FlowBaseAnnotation\"],\n});\n\ndefineType(\"ThisTypeAnnotation\", {\n aliases: [\"FlowType\", \"FlowBaseAnnotation\"],\n});\n\ndefineType(\"TupleTypeAnnotation\", {\n visitor: [\"types\"],\n aliases: [\"FlowType\"],\n fields: {\n types: validate(arrayOfType(\"FlowType\")),\n },\n});\n\ndefineType(\"TypeofTypeAnnotation\", {\n visitor: [\"argument\"],\n aliases: [\"FlowType\"],\n fields: {\n argument: validateType(\"FlowType\"),\n },\n});\n\ndefineType(\"TypeAlias\", {\n visitor: [\"id\", \"typeParameters\", \"right\"],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: {\n id: validateType(\"Identifier\"),\n typeParameters: validateOptionalType(\"TypeParameterDeclaration\"),\n right: validateType(\"FlowType\"),\n },\n});\n\ndefineType(\"TypeAnnotation\", {\n visitor: [\"typeAnnotation\"],\n fields: {\n typeAnnotation: validateType(\"FlowType\"),\n },\n});\n\ndefineType(\"TypeCastExpression\", {\n visitor: [\"expression\", \"typeAnnotation\"],\n aliases: [\"ExpressionWrapper\", \"Expression\"],\n fields: {\n expression: validateType(\"Expression\"),\n typeAnnotation: validateType(\"TypeAnnotation\"),\n },\n});\n\ndefineType(\"TypeParameter\", {\n visitor: [\"bound\", \"default\", \"variance\"],\n fields: {\n name: validate(assertValueType(\"string\")),\n bound: validateOptionalType(\"TypeAnnotation\"),\n default: validateOptionalType(\"FlowType\"),\n variance: validateOptionalType(\"Variance\"),\n },\n});\n\ndefineType(\"TypeParameterDeclaration\", {\n visitor: [\"params\"],\n fields: {\n params: validate(arrayOfType(\"TypeParameter\")),\n },\n});\n\ndefineType(\"TypeParameterInstantiation\", {\n visitor: [\"params\"],\n fields: {\n params: validate(arrayOfType(\"FlowType\")),\n },\n});\n\ndefineType(\"UnionTypeAnnotation\", {\n visitor: [\"types\"],\n aliases: [\"FlowType\"],\n fields: {\n types: validate(arrayOfType(\"FlowType\")),\n },\n});\n\ndefineType(\"Variance\", {\n builder: [\"kind\"],\n fields: {\n kind: validate(assertOneOf(\"minus\", \"plus\")),\n },\n});\n\ndefineType(\"VoidTypeAnnotation\", {\n aliases: [\"FlowType\", \"FlowBaseAnnotation\"],\n});\n\n// Enums\ndefineType(\"EnumDeclaration\", {\n aliases: [\"Statement\", \"Declaration\"],\n visitor: [\"id\", \"body\"],\n fields: {\n id: validateType(\"Identifier\"),\n body: validateType(\n \"EnumBooleanBody\",\n \"EnumNumberBody\",\n \"EnumStringBody\",\n \"EnumSymbolBody\",\n ),\n },\n});\n\ndefineType(\"EnumBooleanBody\", {\n aliases: [\"EnumBody\"],\n visitor: [\"members\"],\n fields: {\n explicitType: validate(assertValueType(\"boolean\")),\n members: validateArrayOfType(\"EnumBooleanMember\"),\n hasUnknownMembers: validate(assertValueType(\"boolean\")),\n },\n});\n\ndefineType(\"EnumNumberBody\", {\n aliases: [\"EnumBody\"],\n visitor: [\"members\"],\n fields: {\n explicitType: validate(assertValueType(\"boolean\")),\n members: validateArrayOfType(\"EnumNumberMember\"),\n hasUnknownMembers: validate(assertValueType(\"boolean\")),\n },\n});\n\ndefineType(\"EnumStringBody\", {\n aliases: [\"EnumBody\"],\n visitor: [\"members\"],\n fields: {\n explicitType: validate(assertValueType(\"boolean\")),\n members: validateArrayOfType(\"EnumStringMember\", \"EnumDefaultedMember\"),\n hasUnknownMembers: validate(assertValueType(\"boolean\")),\n },\n});\n\ndefineType(\"EnumSymbolBody\", {\n aliases: [\"EnumBody\"],\n visitor: [\"members\"],\n fields: {\n members: validateArrayOfType(\"EnumDefaultedMember\"),\n hasUnknownMembers: validate(assertValueType(\"boolean\")),\n },\n});\n\ndefineType(\"EnumBooleanMember\", {\n aliases: [\"EnumMember\"],\n builder: [\"id\"],\n visitor: [\"id\", \"init\"],\n fields: {\n id: validateType(\"Identifier\"),\n init: validateType(\"BooleanLiteral\"),\n },\n});\n\ndefineType(\"EnumNumberMember\", {\n aliases: [\"EnumMember\"],\n visitor: [\"id\", \"init\"],\n fields: {\n id: validateType(\"Identifier\"),\n init: validateType(\"NumericLiteral\"),\n },\n});\n\ndefineType(\"EnumStringMember\", {\n aliases: [\"EnumMember\"],\n visitor: [\"id\", \"init\"],\n fields: {\n id: validateType(\"Identifier\"),\n init: validateType(\"StringLiteral\"),\n },\n});\n\ndefineType(\"EnumDefaultedMember\", {\n aliases: [\"EnumMember\"],\n visitor: [\"id\"],\n fields: {\n id: validateType(\"Identifier\"),\n },\n});\n\ndefineType(\"IndexedAccessType\", {\n visitor: [\"objectType\", \"indexType\"],\n aliases: [\"FlowType\"],\n fields: {\n objectType: validateType(\"FlowType\"),\n indexType: validateType(\"FlowType\"),\n },\n});\n\ndefineType(\"OptionalIndexedAccessType\", {\n visitor: [\"objectType\", \"indexType\"],\n aliases: [\"FlowType\"],\n fields: {\n objectType: validateType(\"FlowType\"),\n indexType: validateType(\"FlowType\"),\n optional: validate(assertValueType(\"boolean\")),\n },\n});\n","import {\n defineAliasedType,\n assertNodeType,\n assertValueType,\n validateArrayOfType,\n} from \"./utils.ts\";\n\nconst defineType = defineAliasedType(\"JSX\");\n\ndefineType(\"JSXAttribute\", {\n visitor: [\"name\", \"value\"],\n aliases: [\"Immutable\"],\n fields: {\n name: {\n validate: assertNodeType(\"JSXIdentifier\", \"JSXNamespacedName\"),\n },\n value: {\n optional: true,\n validate: assertNodeType(\n \"JSXElement\",\n \"JSXFragment\",\n \"StringLiteral\",\n \"JSXExpressionContainer\",\n ),\n },\n },\n});\n\ndefineType(\"JSXClosingElement\", {\n visitor: [\"name\"],\n aliases: [\"Immutable\"],\n fields: {\n name: {\n validate: assertNodeType(\n \"JSXIdentifier\",\n \"JSXMemberExpression\",\n \"JSXNamespacedName\",\n ),\n },\n },\n});\n\ndefineType(\"JSXElement\", {\n builder: process.env.BABEL_8_BREAKING\n ? [\"openingElement\", \"closingElement\", \"children\"]\n : [\"openingElement\", \"closingElement\", \"children\", \"selfClosing\"],\n visitor: [\"openingElement\", \"children\", \"closingElement\"],\n aliases: [\"Immutable\", \"Expression\"],\n fields: {\n openingElement: {\n validate: assertNodeType(\"JSXOpeningElement\"),\n },\n closingElement: {\n optional: true,\n validate: assertNodeType(\"JSXClosingElement\"),\n },\n children: validateArrayOfType(\n \"JSXText\",\n \"JSXExpressionContainer\",\n \"JSXSpreadChild\",\n \"JSXElement\",\n \"JSXFragment\",\n ),\n ...(process.env.BABEL_8_BREAKING\n ? {}\n : {\n selfClosing: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n }),\n },\n});\n\ndefineType(\"JSXEmptyExpression\", {});\n\ndefineType(\"JSXExpressionContainer\", {\n visitor: [\"expression\"],\n aliases: [\"Immutable\"],\n fields: {\n expression: {\n validate: assertNodeType(\"Expression\", \"JSXEmptyExpression\"),\n },\n },\n});\n\ndefineType(\"JSXSpreadChild\", {\n visitor: [\"expression\"],\n aliases: [\"Immutable\"],\n fields: {\n expression: {\n validate: assertNodeType(\"Expression\"),\n },\n },\n});\n\ndefineType(\"JSXIdentifier\", {\n builder: [\"name\"],\n fields: {\n name: {\n validate: assertValueType(\"string\"),\n },\n },\n});\n\ndefineType(\"JSXMemberExpression\", {\n visitor: [\"object\", \"property\"],\n fields: {\n object: {\n validate: assertNodeType(\"JSXMemberExpression\", \"JSXIdentifier\"),\n },\n property: {\n validate: assertNodeType(\"JSXIdentifier\"),\n },\n },\n});\n\ndefineType(\"JSXNamespacedName\", {\n visitor: [\"namespace\", \"name\"],\n fields: {\n namespace: {\n validate: assertNodeType(\"JSXIdentifier\"),\n },\n name: {\n validate: assertNodeType(\"JSXIdentifier\"),\n },\n },\n});\n\ndefineType(\"JSXOpeningElement\", {\n builder: [\"name\", \"attributes\", \"selfClosing\"],\n visitor: process.env.BABEL_8_BREAKING\n ? [\"name\", \"typeArguments\", \"attributes\"]\n : [\"name\", \"typeParameters\", \"typeArguments\", \"attributes\"],\n aliases: [\"Immutable\"],\n fields: {\n name: {\n validate: assertNodeType(\n \"JSXIdentifier\",\n \"JSXMemberExpression\",\n \"JSXNamespacedName\",\n ),\n },\n selfClosing: {\n default: false,\n },\n attributes: validateArrayOfType(\"JSXAttribute\", \"JSXSpreadAttribute\"),\n typeArguments: {\n validate: process.env.BABEL_8_BREAKING\n ? assertNodeType(\n \"TypeParameterInstantiation\",\n \"TSTypeParameterInstantiation\",\n )\n : assertNodeType(\"TypeParameterInstantiation\"),\n optional: true,\n },\n ...(process.env.BABEL_8_BREAKING\n ? {}\n : {\n typeParameters: {\n validate: assertNodeType(\"TSTypeParameterInstantiation\"),\n optional: true,\n },\n }),\n },\n});\n\ndefineType(\"JSXSpreadAttribute\", {\n visitor: [\"argument\"],\n fields: {\n argument: {\n validate: assertNodeType(\"Expression\"),\n },\n },\n});\n\ndefineType(\"JSXText\", {\n aliases: [\"Immutable\"],\n builder: [\"value\"],\n fields: {\n value: {\n validate: assertValueType(\"string\"),\n },\n },\n});\n\ndefineType(\"JSXFragment\", {\n builder: [\"openingFragment\", \"closingFragment\", \"children\"],\n visitor: [\"openingFragment\", \"children\", \"closingFragment\"],\n aliases: [\"Immutable\", \"Expression\"],\n fields: {\n openingFragment: {\n validate: assertNodeType(\"JSXOpeningFragment\"),\n },\n closingFragment: {\n validate: assertNodeType(\"JSXClosingFragment\"),\n },\n children: validateArrayOfType(\n \"JSXText\",\n \"JSXExpressionContainer\",\n \"JSXSpreadChild\",\n \"JSXElement\",\n \"JSXFragment\",\n ),\n },\n});\n\ndefineType(\"JSXOpeningFragment\", {\n aliases: [\"Immutable\"],\n});\n\ndefineType(\"JSXClosingFragment\", {\n aliases: [\"Immutable\"],\n});\n","import { ALIAS_KEYS } from \"./utils.ts\";\n\nexport const PLACEHOLDERS = [\n \"Identifier\",\n \"StringLiteral\",\n \"Expression\",\n \"Statement\",\n \"Declaration\",\n \"BlockStatement\",\n \"ClassBody\",\n \"Pattern\",\n] as const;\n\nexport const PLACEHOLDERS_ALIAS: Record<string, string[]> = {\n Declaration: [\"Statement\"],\n Pattern: [\"PatternLike\", \"LVal\"],\n};\n\nfor (const type of PLACEHOLDERS) {\n const alias = ALIAS_KEYS[type];\n if (alias?.length) PLACEHOLDERS_ALIAS[type] = alias;\n}\n\nexport const PLACEHOLDERS_FLIPPED_ALIAS: Record<string, string[]> = {};\n\nObject.keys(PLACEHOLDERS_ALIAS).forEach(type => {\n PLACEHOLDERS_ALIAS[type].forEach(alias => {\n if (!Object.hasOwn(PLACEHOLDERS_FLIPPED_ALIAS, alias)) {\n PLACEHOLDERS_FLIPPED_ALIAS[alias] = [];\n }\n PLACEHOLDERS_FLIPPED_ALIAS[alias].push(type);\n });\n});\n","import {\n defineAliasedType,\n assertNodeType,\n assertOneOf,\n assertValueType,\n} from \"./utils.ts\";\nimport { PLACEHOLDERS } from \"./placeholders.ts\";\nimport { patternLikeCommon } from \"./core.ts\";\n\nconst defineType = defineAliasedType(\"Miscellaneous\");\n\nif (!process.env.BABEL_8_BREAKING) {\n defineType(\"Noop\", {\n visitor: [],\n });\n}\n\ndefineType(\"Placeholder\", {\n visitor: [],\n builder: [\"expectedNode\", \"name\"],\n // aliases: [], defined in placeholders.js\n fields: {\n name: {\n validate: assertNodeType(\"Identifier\"),\n },\n expectedNode: {\n validate: assertOneOf(...PLACEHOLDERS),\n },\n ...patternLikeCommon(),\n },\n});\n\ndefineType(\"V8IntrinsicIdentifier\", {\n builder: [\"name\"],\n fields: {\n name: {\n validate: assertValueType(\"string\"),\n },\n },\n});\n","import defineType, {\n arrayOfType,\n assertNodeType,\n assertValueType,\n validateArrayOfType,\n type ValidatorOneOfNodeTypes,\n} from \"./utils.ts\";\n\ndefineType(\"ArgumentPlaceholder\", {});\n\ndefineType(\"BindExpression\", {\n visitor: [\"object\", \"callee\"],\n aliases: [\"Expression\"],\n fields:\n !process.env.BABEL_8_BREAKING && !process.env.BABEL_TYPES_8_BREAKING\n ? {\n object: {\n validate: Object.assign(() => {}, {\n oneOfNodeTypes: [\"Expression\"] as const,\n }) satisfies ValidatorOneOfNodeTypes,\n },\n callee: {\n validate: Object.assign(() => {}, {\n oneOfNodeTypes: [\"Expression\"] as const,\n }) satisfies ValidatorOneOfNodeTypes,\n },\n }\n : {\n object: {\n validate: assertNodeType(\"Expression\"),\n },\n callee: {\n validate: assertNodeType(\"Expression\"),\n },\n },\n});\n\ndefineType(\"Decorator\", {\n visitor: [\"expression\"],\n fields: {\n expression: {\n validate: assertNodeType(\"Expression\"),\n },\n },\n});\n\ndefineType(\"DoExpression\", {\n visitor: [\"body\"],\n builder: [\"body\", \"async\"],\n aliases: [\"Expression\"],\n fields: {\n body: {\n validate: assertNodeType(\"BlockStatement\"),\n },\n async: {\n validate: assertValueType(\"boolean\"),\n default: false,\n },\n },\n});\n\ndefineType(\"ExportDefaultSpecifier\", {\n visitor: [\"exported\"],\n aliases: [\"ModuleSpecifier\"],\n fields: {\n exported: {\n validate: assertNodeType(\"Identifier\"),\n },\n },\n});\n\nif (!process.env.BABEL_8_BREAKING) {\n defineType(\"RecordExpression\", {\n visitor: [\"properties\"],\n aliases: [\"Expression\"],\n fields: {\n properties: validateArrayOfType(\"ObjectProperty\", \"SpreadElement\"),\n },\n });\n\n defineType(\"TupleExpression\", {\n fields: {\n elements: {\n validate: arrayOfType(\"Expression\", \"SpreadElement\"),\n default: [],\n },\n },\n visitor: [\"elements\"],\n aliases: [\"Expression\"],\n });\n\n defineType(\"DecimalLiteral\", {\n builder: [\"value\"],\n fields: {\n value: {\n validate: assertValueType(\"string\"),\n },\n },\n aliases: [\"Expression\", \"Pureish\", \"Literal\", \"Immutable\"],\n });\n}\n\n// https://github.com/tc39/proposal-js-module-blocks\ndefineType(\"ModuleExpression\", {\n visitor: [\"body\"],\n fields: {\n body: {\n validate: assertNodeType(\"Program\"),\n },\n },\n aliases: [\"Expression\"],\n});\n\n// https://github.com/tc39/proposal-pipeline-operator\n// https://github.com/js-choi/proposal-hack-pipes\ndefineType(\"TopicReference\", {\n aliases: [\"Expression\"],\n});\n\n// https://github.com/tc39/proposal-pipeline-operator\n// https://github.com/js-choi/proposal-smart-pipes\ndefineType(\"PipelineTopicExpression\", {\n builder: [\"expression\"],\n visitor: [\"expression\"],\n fields: {\n expression: {\n validate: assertNodeType(\"Expression\"),\n },\n },\n aliases: [\"Expression\"],\n});\n\ndefineType(\"PipelineBareFunction\", {\n builder: [\"callee\"],\n visitor: [\"callee\"],\n fields: {\n callee: {\n validate: assertNodeType(\"Expression\"),\n },\n },\n aliases: [\"Expression\"],\n});\n\ndefineType(\"PipelinePrimaryTopicReference\", {\n aliases: [\"Expression\"],\n});\n\n// https://github.com/tc39/proposal-discard-binding\ndefineType(\"VoidPattern\", {\n aliases: [\"Pattern\", \"PatternLike\", \"FunctionParameter\"],\n});\n","import type * as t from \"../index.ts\";\nimport {\n defineAliasedType,\n arrayOfType,\n assertEach,\n assertNodeType,\n assertOneOf,\n assertValueType,\n chain,\n validate,\n validateArrayOfType,\n validateOptional,\n validateOptionalType,\n validateType,\n type ValidatorImpl,\n type ValidatorOneOfNodeTypes,\n} from \"./utils.ts\";\nimport {\n functionDeclarationCommon,\n classMethodOrDeclareMethodCommon,\n classMethodOrPropertyUnionShapeCommon,\n} from \"./core.ts\";\nimport is from \"../validators/is.ts\";\n\nconst defineType = defineAliasedType(\"TypeScript\");\n\nconst bool = assertValueType(\"boolean\");\n\nconst tSFunctionTypeAnnotationCommon = () => ({\n returnType: {\n validate: process.env.BABEL_8_BREAKING\n ? assertNodeType(\"TSTypeAnnotation\")\n : // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n assertNodeType(\"TSTypeAnnotation\", \"Noop\"),\n optional: true,\n },\n typeParameters: {\n validate: process.env.BABEL_8_BREAKING\n ? assertNodeType(\"TSTypeParameterDeclaration\")\n : // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n assertNodeType(\"TSTypeParameterDeclaration\", \"Noop\"),\n optional: true,\n },\n});\n\ndefineType(\"TSParameterProperty\", {\n aliases: process.env.BABEL_8_BREAKING ? [] : [\"LVal\"],\n visitor: [\"parameter\"],\n fields: {\n accessibility: {\n validate: assertOneOf(\"public\", \"private\", \"protected\"),\n optional: true,\n },\n readonly: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n parameter: {\n validate: assertNodeType(\"Identifier\", \"AssignmentPattern\"),\n },\n override: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n decorators: {\n validate: arrayOfType(\"Decorator\"),\n optional: true,\n },\n },\n});\n\ndefineType(\"TSDeclareFunction\", {\n aliases: [\"Statement\", \"Declaration\"],\n visitor: [\"id\", \"typeParameters\", \"params\", \"returnType\"],\n fields: {\n ...functionDeclarationCommon(),\n ...tSFunctionTypeAnnotationCommon(),\n },\n});\n\ndefineType(\"TSDeclareMethod\", {\n visitor: [\"decorators\", \"key\", \"typeParameters\", \"params\", \"returnType\"],\n ...classMethodOrPropertyUnionShapeCommon(),\n fields: {\n ...classMethodOrDeclareMethodCommon(),\n ...tSFunctionTypeAnnotationCommon(),\n },\n});\n\ndefineType(\"TSQualifiedName\", {\n aliases: [\"TSEntityName\"],\n visitor: [\"left\", \"right\"],\n fields: {\n left: validateType(\"TSEntityName\"),\n right: validateType(\"Identifier\"),\n },\n});\n\nconst signatureDeclarationCommon = () => ({\n typeParameters: validateOptionalType(\"TSTypeParameterDeclaration\"),\n [process.env.BABEL_8_BREAKING ? \"params\" : \"parameters\"]: validateArrayOfType(\n \"ArrayPattern\",\n \"Identifier\",\n \"ObjectPattern\",\n \"RestElement\",\n ),\n [process.env.BABEL_8_BREAKING ? \"returnType\" : \"typeAnnotation\"]:\n validateOptionalType(\"TSTypeAnnotation\"),\n});\n\nconst callConstructSignatureDeclaration = {\n aliases: [\"TSTypeElement\"],\n visitor: [\n \"typeParameters\",\n process.env.BABEL_8_BREAKING ? \"params\" : \"parameters\",\n process.env.BABEL_8_BREAKING ? \"returnType\" : \"typeAnnotation\",\n ],\n fields: signatureDeclarationCommon(),\n};\n\ndefineType(\"TSCallSignatureDeclaration\", callConstructSignatureDeclaration);\ndefineType(\n \"TSConstructSignatureDeclaration\",\n callConstructSignatureDeclaration,\n);\n\nconst namedTypeElementCommon = () => ({\n key: validateType(\"Expression\"),\n computed: { default: false },\n optional: validateOptional(bool),\n});\n\ndefineType(\"TSPropertySignature\", {\n aliases: [\"TSTypeElement\"],\n visitor: [\"key\", \"typeAnnotation\"],\n fields: {\n ...namedTypeElementCommon(),\n readonly: validateOptional(bool),\n typeAnnotation: validateOptionalType(\"TSTypeAnnotation\"),\n kind: {\n optional: true,\n validate: assertOneOf(\"get\", \"set\"),\n },\n },\n});\n\ndefineType(\"TSMethodSignature\", {\n aliases: [\"TSTypeElement\"],\n visitor: [\n \"key\",\n \"typeParameters\",\n process.env.BABEL_8_BREAKING ? \"params\" : \"parameters\",\n process.env.BABEL_8_BREAKING ? \"returnType\" : \"typeAnnotation\",\n ],\n fields: {\n ...signatureDeclarationCommon(),\n ...namedTypeElementCommon(),\n kind: {\n validate: assertOneOf(\"method\", \"get\", \"set\"),\n },\n },\n});\n\ndefineType(\"TSIndexSignature\", {\n aliases: [\"TSTypeElement\"],\n visitor: [\"parameters\", \"typeAnnotation\"],\n fields: {\n readonly: validateOptional(bool),\n static: validateOptional(bool),\n parameters: validateArrayOfType(\"Identifier\"), // Length must be 1\n typeAnnotation: validateOptionalType(\"TSTypeAnnotation\"),\n },\n});\n\nconst tsKeywordTypes = [\n \"TSAnyKeyword\",\n \"TSBooleanKeyword\",\n \"TSBigIntKeyword\",\n \"TSIntrinsicKeyword\",\n \"TSNeverKeyword\",\n \"TSNullKeyword\",\n \"TSNumberKeyword\",\n \"TSObjectKeyword\",\n \"TSStringKeyword\",\n \"TSSymbolKeyword\",\n \"TSUndefinedKeyword\",\n \"TSUnknownKeyword\",\n \"TSVoidKeyword\",\n] as const;\n\nfor (const type of tsKeywordTypes) {\n defineType(type, {\n aliases: [\"TSType\", \"TSBaseType\"],\n visitor: [],\n fields: {},\n });\n}\n\ndefineType(\"TSThisType\", {\n aliases: [\"TSType\", \"TSBaseType\"],\n visitor: [],\n fields: {},\n});\n\nconst fnOrCtrBase = {\n aliases: [\"TSType\"],\n visitor: [\n \"typeParameters\",\n process.env.BABEL_8_BREAKING ? \"params\" : \"parameters\",\n process.env.BABEL_8_BREAKING ? \"returnType\" : \"typeAnnotation\",\n ],\n};\n\ndefineType(\"TSFunctionType\", {\n ...fnOrCtrBase,\n fields: signatureDeclarationCommon(),\n});\ndefineType(\"TSConstructorType\", {\n ...fnOrCtrBase,\n fields: {\n ...signatureDeclarationCommon(),\n abstract: validateOptional(bool),\n },\n});\n\ndefineType(\"TSTypeReference\", {\n aliases: [\"TSType\"],\n visitor: [\n \"typeName\",\n process.env.BABEL_8_BREAKING ? \"typeArguments\" : \"typeParameters\",\n ],\n fields: {\n typeName: validateType(\"TSEntityName\"),\n [process.env.BABEL_8_BREAKING ? \"typeArguments\" : \"typeParameters\"]:\n validateOptionalType(\"TSTypeParameterInstantiation\"),\n },\n});\n\ndefineType(\"TSTypePredicate\", {\n aliases: [\"TSType\"],\n visitor: [\"parameterName\", \"typeAnnotation\"],\n builder: [\"parameterName\", \"typeAnnotation\", \"asserts\"],\n fields: {\n parameterName: validateType(\"Identifier\", \"TSThisType\"),\n typeAnnotation: validateOptionalType(\"TSTypeAnnotation\"),\n asserts: validateOptional(bool),\n },\n});\n\ndefineType(\"TSTypeQuery\", {\n aliases: [\"TSType\"],\n visitor: [\n \"exprName\",\n process.env.BABEL_8_BREAKING ? \"typeArguments\" : \"typeParameters\",\n ],\n fields: {\n exprName: validateType(\"TSEntityName\", \"TSImportType\"),\n [process.env.BABEL_8_BREAKING ? \"typeArguments\" : \"typeParameters\"]:\n validateOptionalType(\"TSTypeParameterInstantiation\"),\n },\n});\n\ndefineType(\"TSTypeLiteral\", {\n aliases: [\"TSType\"],\n visitor: [\"members\"],\n fields: {\n members: validateArrayOfType(\"TSTypeElement\"),\n },\n});\n\ndefineType(\"TSArrayType\", {\n aliases: [\"TSType\"],\n visitor: [\"elementType\"],\n fields: {\n elementType: validateType(\"TSType\"),\n },\n});\n\ndefineType(\"TSTupleType\", {\n aliases: [\"TSType\"],\n visitor: [\"elementTypes\"],\n fields: {\n elementTypes: validateArrayOfType(\"TSType\", \"TSNamedTupleMember\"),\n },\n});\n\ndefineType(\"TSOptionalType\", {\n aliases: [\"TSType\"],\n visitor: [\"typeAnnotation\"],\n fields: {\n typeAnnotation: validateType(\"TSType\"),\n },\n});\n\ndefineType(\"TSRestType\", {\n aliases: [\"TSType\"],\n visitor: [\"typeAnnotation\"],\n fields: {\n typeAnnotation: validateType(\"TSType\"),\n },\n});\n\ndefineType(\"TSNamedTupleMember\", {\n visitor: [\"label\", \"elementType\"],\n builder: [\"label\", \"elementType\", \"optional\"],\n fields: {\n label: validateType(\"Identifier\"),\n optional: {\n validate: bool,\n default: false,\n },\n elementType: validateType(\"TSType\"),\n },\n});\n\nconst unionOrIntersection = {\n aliases: [\"TSType\"],\n visitor: [\"types\"],\n fields: {\n types: validateArrayOfType(\"TSType\"),\n },\n};\n\ndefineType(\"TSUnionType\", unionOrIntersection);\ndefineType(\"TSIntersectionType\", unionOrIntersection);\n\ndefineType(\"TSConditionalType\", {\n aliases: [\"TSType\"],\n visitor: [\"checkType\", \"extendsType\", \"trueType\", \"falseType\"],\n fields: {\n checkType: validateType(\"TSType\"),\n extendsType: validateType(\"TSType\"),\n trueType: validateType(\"TSType\"),\n falseType: validateType(\"TSType\"),\n },\n});\n\ndefineType(\"TSInferType\", {\n aliases: [\"TSType\"],\n visitor: [\"typeParameter\"],\n fields: {\n typeParameter: validateType(\"TSTypeParameter\"),\n },\n});\n\ndefineType(\"TSParenthesizedType\", {\n aliases: [\"TSType\"],\n visitor: [\"typeAnnotation\"],\n fields: {\n typeAnnotation: validateType(\"TSType\"),\n },\n});\n\ndefineType(\"TSTypeOperator\", {\n aliases: [\"TSType\"],\n visitor: [\"typeAnnotation\"],\n builder: [\"typeAnnotation\", \"operator\"],\n fields: {\n operator: {\n validate: process.env.BABEL_8_BREAKING\n ? assertOneOf(\"keyof\", \"readonly\", \"unique\")\n : assertValueType(\"string\"),\n // \"keyof\" is not a good default, but as this field is required better\n // pick one. We need it for backwards compatibility with older versions\n // of Babel 7.\n default: process.env.BABEL_8_BREAKING ? undefined : \"keyof\",\n },\n typeAnnotation: validateType(\"TSType\"),\n },\n});\n\ndefineType(\"TSIndexedAccessType\", {\n aliases: [\"TSType\"],\n visitor: [\"objectType\", \"indexType\"],\n fields: {\n objectType: validateType(\"TSType\"),\n indexType: validateType(\"TSType\"),\n },\n});\n\ndefineType(\"TSMappedType\", {\n aliases: [\"TSType\"],\n visitor: process.env.BABEL_8_BREAKING\n ? [\"key\", \"constraint\", \"nameType\", \"typeAnnotation\"]\n : [\"typeParameter\", \"nameType\", \"typeAnnotation\"],\n builder: process.env.BABEL_8_BREAKING\n ? [\"key\", \"constraint\", \"nameType\", \"typeAnnotation\"]\n : [\"typeParameter\", \"typeAnnotation\", \"nameType\"],\n fields: {\n ...(process.env.BABEL_8_BREAKING\n ? {\n key: validateType(\"Identifier\"),\n constraint: validateType(\"TSType\"),\n }\n : {\n typeParameter: validateType(\"TSTypeParameter\"),\n }),\n readonly: validateOptional(assertOneOf(true, false, \"+\", \"-\")),\n optional: validateOptional(assertOneOf(true, false, \"+\", \"-\")),\n typeAnnotation: validateOptionalType(\"TSType\"),\n nameType: validateOptionalType(\"TSType\"),\n },\n});\n\ndefineType(\"TSTemplateLiteralType\", {\n aliases: [\"TSType\", \"TSBaseType\"],\n visitor: [\"quasis\", \"types\"],\n fields: {\n quasis: validateArrayOfType(\"TemplateElement\"),\n types: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"TSType\")),\n function (node: t.TSTemplateLiteralType, key, val) {\n if (node.quasis.length !== val.length + 1) {\n throw new TypeError(\n `Number of ${\n node.type\n } quasis should be exactly one more than the number of types.\\nExpected ${\n val.length + 1\n } quasis but got ${node.quasis.length}`,\n );\n }\n } satisfies ValidatorImpl,\n ),\n },\n },\n});\n\ndefineType(\"TSLiteralType\", {\n aliases: [\"TSType\", \"TSBaseType\"],\n visitor: [\"literal\"],\n fields: {\n literal: {\n validate: (function () {\n const unaryExpression = assertNodeType(\n \"NumericLiteral\",\n \"BigIntLiteral\",\n );\n const unaryOperator = assertOneOf(\"-\");\n\n const literal = assertNodeType(\n \"NumericLiteral\",\n \"StringLiteral\",\n \"BooleanLiteral\",\n \"BigIntLiteral\",\n \"TemplateLiteral\",\n );\n const validator: ValidatorOneOfNodeTypes = function validator(\n parent: t.Node,\n key: string,\n node: t.Node,\n ) {\n // type A = -1 | 1;\n if (is(\"UnaryExpression\", node)) {\n // check operator first\n unaryOperator(node, \"operator\", node.operator);\n unaryExpression(node, \"argument\", node.argument);\n } else {\n // type A = 'foo' | 'bar' | false | 1;\n literal(parent, key, node);\n }\n };\n\n validator.oneOfNodeTypes = [\n \"NumericLiteral\",\n \"StringLiteral\",\n \"BooleanLiteral\",\n \"BigIntLiteral\",\n \"TemplateLiteral\",\n \"UnaryExpression\",\n ];\n\n return validator;\n })(),\n },\n },\n});\n\nif (process.env.BABEL_8_BREAKING) {\n defineType(\"TSClassImplements\", {\n aliases: [\"TSType\"],\n visitor: [\"expression\", \"typeArguments\"],\n fields: {\n expression: validateType(\"Expression\"),\n typeArguments: validateOptionalType(\"TSTypeParameterInstantiation\"),\n },\n });\n defineType(\"TSInterfaceHeritage\", {\n aliases: [\"TSType\"],\n visitor: [\"expression\", \"typeArguments\"],\n fields: {\n expression: validateType(\"Expression\"),\n typeArguments: validateOptionalType(\"TSTypeParameterInstantiation\"),\n },\n });\n} else {\n defineType(\"TSExpressionWithTypeArguments\", {\n aliases: [\"TSType\"],\n visitor: [\"expression\", \"typeParameters\"],\n fields: {\n expression: validateType(\"TSEntityName\"),\n typeParameters: validateOptionalType(\"TSTypeParameterInstantiation\"),\n },\n });\n}\n\ndefineType(\"TSInterfaceDeclaration\", {\n // \"Statement\" alias prevents a semicolon from appearing after it in an export declaration.\n aliases: [\"Statement\", \"Declaration\"],\n visitor: [\"id\", \"typeParameters\", \"extends\", \"body\"],\n fields: {\n declare: validateOptional(bool),\n id: validateType(\"Identifier\"),\n typeParameters: validateOptionalType(\"TSTypeParameterDeclaration\"),\n extends: validateOptional(\n arrayOfType(\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n process.env.BABEL_8_BREAKING\n ? \"TSClassImplements\"\n : \"TSExpressionWithTypeArguments\",\n ),\n ),\n body: validateType(\"TSInterfaceBody\"),\n },\n});\n\ndefineType(\"TSInterfaceBody\", {\n visitor: [\"body\"],\n fields: {\n body: validateArrayOfType(\"TSTypeElement\"),\n },\n});\n\ndefineType(\"TSTypeAliasDeclaration\", {\n aliases: [\"Statement\", \"Declaration\"],\n visitor: [\"id\", \"typeParameters\", \"typeAnnotation\"],\n fields: {\n declare: validateOptional(bool),\n id: validateType(\"Identifier\"),\n typeParameters: validateOptionalType(\"TSTypeParameterDeclaration\"),\n typeAnnotation: validateType(\"TSType\"),\n },\n});\n\ndefineType(\"TSInstantiationExpression\", {\n aliases: [\"Expression\"],\n visitor: process.env.BABEL_8_BREAKING\n ? [\"expression\", \"typeArguments\"]\n : [\"expression\", \"typeParameters\"],\n fields: {\n expression: validateType(\"Expression\"),\n [process.env.BABEL_8_BREAKING ? \"typeArguments\" : \"typeParameters\"]:\n validateOptionalType(\"TSTypeParameterInstantiation\"),\n },\n});\n\nconst TSTypeExpression = {\n aliases: [\"Expression\", \"LVal\", \"PatternLike\"],\n visitor: [\"expression\", \"typeAnnotation\"],\n fields: {\n expression: validateType(\"Expression\"),\n typeAnnotation: validateType(\"TSType\"),\n },\n};\n\ndefineType(\"TSAsExpression\", TSTypeExpression);\ndefineType(\"TSSatisfiesExpression\", TSTypeExpression);\n\ndefineType(\"TSTypeAssertion\", {\n aliases: [\"Expression\", \"LVal\", \"PatternLike\"],\n visitor: [\"typeAnnotation\", \"expression\"],\n fields: {\n typeAnnotation: validateType(\"TSType\"),\n expression: validateType(\"Expression\"),\n },\n});\n\ndefineType(\"TSEnumBody\", {\n visitor: [\"members\"],\n fields: {\n members: validateArrayOfType(\"TSEnumMember\"),\n },\n});\n\nif (process.env.BABEL_8_BREAKING) {\n defineType(\"TSEnumDeclaration\", {\n // \"Statement\" alias prevents a semicolon from appearing after it in an export declaration.\n aliases: [\"Statement\", \"Declaration\"],\n visitor: [\"id\", \"body\"],\n fields: {\n declare: validateOptional(bool),\n const: validateOptional(bool),\n id: validateType(\"Identifier\"),\n // @ts-ignore(Babel 7 vs Babel 8) Babel 8 AST\n body: validateType(\"TSEnumBody\"),\n },\n });\n} else {\n defineType(\"TSEnumDeclaration\", {\n // \"Statement\" alias prevents a semicolon from appearing after it in an export declaration.\n aliases: [\"Statement\", \"Declaration\"],\n visitor: [\"id\", \"members\"],\n fields: {\n declare: validateOptional(bool),\n const: validateOptional(bool),\n id: validateType(\"Identifier\"),\n members: validateArrayOfType(\"TSEnumMember\"),\n initializer: validateOptionalType(\"Expression\"),\n body: validateOptionalType(\"TSEnumBody\"),\n },\n });\n}\n\ndefineType(\"TSEnumMember\", {\n visitor: [\"id\", \"initializer\"],\n fields: {\n id: validateType(\"Identifier\", \"StringLiteral\"),\n initializer: validateOptionalType(\"Expression\"),\n },\n});\n\ndefineType(\"TSModuleDeclaration\", {\n aliases: [\"Statement\", \"Declaration\"],\n visitor: [\"id\", \"body\"],\n fields: {\n kind: {\n validate: assertOneOf(\"global\", \"module\", \"namespace\"),\n },\n declare: validateOptional(bool),\n ...(!process.env.BABEL_8_BREAKING && { global: validateOptional(bool) }),\n id: process.env.BABEL_8_BREAKING\n ? validateType(\"TSEntityName\", \"StringLiteral\")\n : validateType(\"Identifier\", \"StringLiteral\"),\n body: process.env.BABEL_8_BREAKING\n ? validateType(\"TSModuleBlock\")\n : validateType(\"TSModuleBlock\", \"TSModuleDeclaration\"),\n },\n});\n\ndefineType(\"TSModuleBlock\", {\n aliases: [\"Scopable\", \"Block\", \"BlockParent\", \"FunctionParent\"],\n visitor: [\"body\"],\n fields: {\n body: validateArrayOfType(\"Statement\"),\n },\n});\n\ndefineType(\"TSImportType\", {\n aliases: [\"TSType\"],\n builder: [\n process.env.BABEL_8_BREAKING ? \"source\" : \"argument\",\n \"qualifier\",\n process.env.BABEL_8_BREAKING ? \"typeArguments\" : \"typeParameters\",\n ],\n visitor: [\n process.env.BABEL_8_BREAKING ? \"source\" : \"argument\",\n \"options\",\n \"qualifier\",\n process.env.BABEL_8_BREAKING ? \"typeArguments\" : \"typeParameters\",\n ],\n fields: {\n ...(process.env.BABEL_8_BREAKING\n ? { source: validateType(\"StringLiteral\") }\n : { argument: validateType(\"StringLiteral\") }),\n qualifier: validateOptionalType(\"TSEntityName\"),\n ...(process.env.BABEL_8_BREAKING\n ? {\n typeArguments: validateOptionalType(\"TSTypeParameterInstantiation\"),\n }\n : {\n typeParameters: validateOptionalType(\"TSTypeParameterInstantiation\"),\n }),\n options: {\n validate: assertNodeType(\"ObjectExpression\"),\n optional: true,\n },\n },\n});\n\ndefineType(\"TSImportEqualsDeclaration\", {\n aliases: [\"Statement\", \"Declaration\"],\n visitor: [\"id\", \"moduleReference\"],\n fields: {\n ...(process.env.BABEL_8_BREAKING ? {} : { isExport: validate(bool) }),\n id: validateType(\"Identifier\"),\n moduleReference: validateType(\"TSEntityName\", \"TSExternalModuleReference\"),\n importKind: {\n validate: assertOneOf(\"type\", \"value\"),\n optional: true,\n },\n },\n});\n\ndefineType(\"TSExternalModuleReference\", {\n visitor: [\"expression\"],\n fields: {\n expression: validateType(\"StringLiteral\"),\n },\n});\n\ndefineType(\"TSNonNullExpression\", {\n aliases: [\"Expression\", \"LVal\", \"PatternLike\"],\n visitor: [\"expression\"],\n fields: {\n expression: validateType(\"Expression\"),\n },\n});\n\ndefineType(\"TSExportAssignment\", {\n aliases: [\"Statement\"],\n visitor: [\"expression\"],\n fields: {\n expression: validateType(\"Expression\"),\n },\n});\n\ndefineType(\"TSNamespaceExportDeclaration\", {\n aliases: [\"Statement\"],\n visitor: [\"id\"],\n fields: {\n id: validateType(\"Identifier\"),\n },\n});\n\ndefineType(\"TSTypeAnnotation\", {\n visitor: [\"typeAnnotation\"],\n fields: {\n typeAnnotation: {\n validate: assertNodeType(\"TSType\"),\n },\n },\n});\n\ndefineType(\"TSTypeParameterInstantiation\", {\n visitor: [\"params\"],\n fields: {\n params: validateArrayOfType(\"TSType\"),\n },\n});\n\ndefineType(\"TSTypeParameterDeclaration\", {\n visitor: [\"params\"],\n fields: {\n params: validateArrayOfType(\"TSTypeParameter\"),\n },\n});\n\ndefineType(\"TSTypeParameter\", {\n builder: [\"constraint\", \"default\", \"name\"],\n visitor: process.env.BABEL_8_BREAKING\n ? [\"name\", \"constraint\", \"default\"]\n : [\"constraint\", \"default\"],\n fields: {\n name: {\n validate: !process.env.BABEL_8_BREAKING\n ? assertValueType(\"string\")\n : assertNodeType(\"Identifier\"),\n },\n in: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n out: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n const: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n constraint: {\n validate: assertNodeType(\"TSType\"),\n optional: true,\n },\n default: {\n validate: assertNodeType(\"TSType\"),\n optional: true,\n },\n },\n});\n","export const DEPRECATED_ALIASES = {\n ModuleDeclaration: \"ImportOrExportDeclaration\",\n};\n","import \"./core.ts\";\nimport \"./flow.ts\";\nimport \"./jsx.ts\";\nimport \"./misc.ts\";\nimport \"./experimental.ts\";\nimport \"./typescript.ts\";\nimport {\n VISITOR_KEYS,\n ALIAS_KEYS,\n FLIPPED_ALIAS_KEYS,\n NODE_FIELDS,\n BUILDER_KEYS,\n DEPRECATED_KEYS,\n NODE_PARENT_VALIDATIONS,\n NODE_UNION_SHAPES__PRIVATE,\n allExpandedTypes,\n} from \"./utils.ts\";\nimport {\n PLACEHOLDERS,\n PLACEHOLDERS_ALIAS,\n PLACEHOLDERS_FLIPPED_ALIAS,\n} from \"./placeholders.ts\";\nimport { DEPRECATED_ALIASES } from \"./deprecated-aliases.ts\";\n\n(\n Object.keys(DEPRECATED_ALIASES) as (keyof typeof DEPRECATED_ALIASES)[]\n).forEach(deprecatedAlias => {\n FLIPPED_ALIAS_KEYS[deprecatedAlias] =\n FLIPPED_ALIAS_KEYS[DEPRECATED_ALIASES[deprecatedAlias]];\n});\n\nfor (const { types, set } of allExpandedTypes) {\n for (const type of types) {\n const aliases = FLIPPED_ALIAS_KEYS[type];\n if (aliases) {\n aliases.forEach(set.add, set);\n } else {\n set.add(type);\n }\n }\n}\n\nconst TYPES: string[] = [].concat(\n Object.keys(VISITOR_KEYS),\n Object.keys(FLIPPED_ALIAS_KEYS),\n Object.keys(DEPRECATED_KEYS),\n);\n\n/**\n * @internal\n */\nexport { NODE_UNION_SHAPES__PRIVATE };\n\nexport {\n VISITOR_KEYS,\n ALIAS_KEYS,\n FLIPPED_ALIAS_KEYS,\n NODE_FIELDS,\n BUILDER_KEYS,\n DEPRECATED_ALIASES,\n DEPRECATED_KEYS,\n NODE_PARENT_VALIDATIONS,\n PLACEHOLDERS,\n PLACEHOLDERS_ALIAS,\n PLACEHOLDERS_FLIPPED_ALIAS,\n TYPES,\n};\n\nexport type { FieldOptions } from \"./utils.ts\";\n","import {\n NODE_FIELDS,\n NODE_PARENT_VALIDATIONS,\n type FieldOptions,\n} from \"../definitions/index.ts\";\nimport type * as t from \"../index.ts\";\n\nexport default function validate(\n node: t.Node | undefined | null,\n key: string,\n val: unknown,\n): void {\n if (!node) return;\n\n const fields = NODE_FIELDS[node.type];\n if (!fields) return;\n\n const field = fields[key];\n validateField(node, key, val, field);\n validateChild(node, key, val);\n}\n\nexport function validateInternal(\n field: FieldOptions,\n node: t.Node | undefined | null,\n key: string,\n val: unknown,\n maybeNode?: 1,\n): void {\n if (!field?.validate) return;\n if (field.optional && val == null) return;\n\n field.validate(node, key, val);\n\n if (maybeNode) {\n const type = (val as t.Node).type;\n if (type == null) return;\n NODE_PARENT_VALIDATIONS[type]?.(node, key, val);\n }\n}\n\nexport function validateField(\n node: t.Node | undefined | null,\n key: string,\n val: unknown,\n field: FieldOptions | undefined | null,\n): void {\n if (!field?.validate) return;\n if (field.optional && val == null) return;\n\n field.validate(node, key, val);\n}\n\nexport function validateChild(\n node: t.Node | undefined | null,\n key: string | { toString(): string },\n val?: unknown,\n) {\n const type = (val as t.Node)?.type;\n if (type == null) return;\n NODE_PARENT_VALIDATIONS[type]?.(node, key, val);\n}\n","/*\n * This file is auto-generated! Do not modify it directly.\n * To re-generate run 'make build'\n */\nimport * as _validate from \"../../validators/validate.ts\";\nimport type * as t from \"../../ast-types/generated/index.ts\";\nimport deprecationWarning from \"../../utils/deprecationWarning.ts\";\nimport * as utils from \"../../definitions/utils.ts\";\n\nconst { validateInternal: validate } = _validate;\nconst { NODE_FIELDS } = utils;\n\n/** @deprecated */ export function bigIntLiteral(\n value: string,\n): t.BigIntLiteral;\nexport function bigIntLiteral(value: bigint): t.BigIntLiteral;\nexport function bigIntLiteral(value: bigint | string): t.BigIntLiteral {\n if (typeof value === \"bigint\") {\n value = value.toString();\n }\n const node: t.BigIntLiteral = {\n type: \"BigIntLiteral\",\n value,\n };\n const defs = NODE_FIELDS.BigIntLiteral;\n validate(defs.value, node, \"value\", value);\n return node;\n}\nexport function arrayExpression(\n elements: (null | t.Expression | t.SpreadElement)[] = [],\n): t.ArrayExpression {\n const node: t.ArrayExpression = {\n type: \"ArrayExpression\",\n elements,\n };\n const defs = NODE_FIELDS.ArrayExpression;\n validate(defs.elements, node, \"elements\", elements, 1);\n return node;\n}\nexport function assignmentExpression(\n operator: string,\n left: t.LVal | t.OptionalMemberExpression,\n right: t.Expression,\n): t.AssignmentExpression {\n const node: t.AssignmentExpression = {\n type: \"AssignmentExpression\",\n operator,\n left,\n right,\n };\n const defs = NODE_FIELDS.AssignmentExpression;\n validate(defs.operator, node, \"operator\", operator);\n validate(defs.left, node, \"left\", left, 1);\n validate(defs.right, node, \"right\", right, 1);\n return node;\n}\nexport function binaryExpression(\n operator:\n | \"+\"\n | \"-\"\n | \"/\"\n | \"%\"\n | \"*\"\n | \"**\"\n | \"&\"\n | \"|\"\n | \">>\"\n | \">>>\"\n | \"<<\"\n | \"^\"\n | \"==\"\n | \"===\"\n | \"!=\"\n | \"!==\"\n | \"in\"\n | \"instanceof\"\n | \">\"\n | \"<\"\n | \">=\"\n | \"<=\"\n | \"|>\",\n left: t.Expression | t.PrivateName,\n right: t.Expression,\n): t.BinaryExpression {\n const node: t.BinaryExpression = {\n type: \"BinaryExpression\",\n operator,\n left,\n right,\n };\n const defs = NODE_FIELDS.BinaryExpression;\n validate(defs.operator, node, \"operator\", operator);\n validate(defs.left, node, \"left\", left, 1);\n validate(defs.right, node, \"right\", right, 1);\n return node;\n}\nexport function interpreterDirective(value: string): t.InterpreterDirective {\n const node: t.InterpreterDirective = {\n type: \"InterpreterDirective\",\n value,\n };\n const defs = NODE_FIELDS.InterpreterDirective;\n validate(defs.value, node, \"value\", value);\n return node;\n}\nexport function directive(value: t.DirectiveLiteral): t.Directive {\n const node: t.Directive = {\n type: \"Directive\",\n value,\n };\n const defs = NODE_FIELDS.Directive;\n validate(defs.value, node, \"value\", value, 1);\n return node;\n}\nexport function directiveLiteral(value: string): t.DirectiveLiteral {\n const node: t.DirectiveLiteral = {\n type: \"DirectiveLiteral\",\n value,\n };\n const defs = NODE_FIELDS.DirectiveLiteral;\n validate(defs.value, node, \"value\", value);\n return node;\n}\nexport function blockStatement(\n body: t.Statement[],\n directives: t.Directive[] = [],\n): t.BlockStatement {\n const node: t.BlockStatement = {\n type: \"BlockStatement\",\n body,\n directives,\n };\n const defs = NODE_FIELDS.BlockStatement;\n validate(defs.body, node, \"body\", body, 1);\n validate(defs.directives, node, \"directives\", directives, 1);\n return node;\n}\nexport function breakStatement(\n label: t.Identifier | null = null,\n): t.BreakStatement {\n const node: t.BreakStatement = {\n type: \"BreakStatement\",\n label,\n };\n const defs = NODE_FIELDS.BreakStatement;\n validate(defs.label, node, \"label\", label, 1);\n return node;\n}\nexport function callExpression(\n callee: t.Expression | t.Super | t.V8IntrinsicIdentifier,\n _arguments: (t.Expression | t.SpreadElement | t.ArgumentPlaceholder)[],\n): t.CallExpression {\n const node: t.CallExpression = {\n type: \"CallExpression\",\n callee,\n arguments: _arguments,\n };\n const defs = NODE_FIELDS.CallExpression;\n validate(defs.callee, node, \"callee\", callee, 1);\n validate(defs.arguments, node, \"arguments\", _arguments, 1);\n return node;\n}\nexport function catchClause(\n param:\n | t.Identifier\n | t.ArrayPattern\n | t.ObjectPattern\n | null\n | undefined = null,\n body: t.BlockStatement,\n): t.CatchClause {\n const node: t.CatchClause = {\n type: \"CatchClause\",\n param,\n body,\n };\n const defs = NODE_FIELDS.CatchClause;\n validate(defs.param, node, \"param\", param, 1);\n validate(defs.body, node, \"body\", body, 1);\n return node;\n}\nexport function conditionalExpression(\n test: t.Expression,\n consequent: t.Expression,\n alternate: t.Expression,\n): t.ConditionalExpression {\n const node: t.ConditionalExpression = {\n type: \"ConditionalExpression\",\n test,\n consequent,\n alternate,\n };\n const defs = NODE_FIELDS.ConditionalExpression;\n validate(defs.test, node, \"test\", test, 1);\n validate(defs.consequent, node, \"consequent\", consequent, 1);\n validate(defs.alternate, node, \"alternate\", alternate, 1);\n return node;\n}\nexport function continueStatement(\n label: t.Identifier | null = null,\n): t.ContinueStatement {\n const node: t.ContinueStatement = {\n type: \"ContinueStatement\",\n label,\n };\n const defs = NODE_FIELDS.ContinueStatement;\n validate(defs.label, node, \"label\", label, 1);\n return node;\n}\nexport function debuggerStatement(): t.DebuggerStatement {\n return {\n type: \"DebuggerStatement\",\n };\n}\nexport function doWhileStatement(\n test: t.Expression,\n body: t.Statement,\n): t.DoWhileStatement {\n const node: t.DoWhileStatement = {\n type: \"DoWhileStatement\",\n test,\n body,\n };\n const defs = NODE_FIELDS.DoWhileStatement;\n validate(defs.test, node, \"test\", test, 1);\n validate(defs.body, node, \"body\", body, 1);\n return node;\n}\nexport function emptyStatement(): t.EmptyStatement {\n return {\n type: \"EmptyStatement\",\n };\n}\nexport function expressionStatement(\n expression: t.Expression,\n): t.ExpressionStatement {\n const node: t.ExpressionStatement = {\n type: \"ExpressionStatement\",\n expression,\n };\n const defs = NODE_FIELDS.ExpressionStatement;\n validate(defs.expression, node, \"expression\", expression, 1);\n return node;\n}\nexport function file(\n program: t.Program,\n comments: (t.CommentBlock | t.CommentLine)[] | null = null,\n tokens: any[] | null = null,\n): t.File {\n const node: t.File = {\n type: \"File\",\n program,\n comments,\n tokens,\n };\n const defs = NODE_FIELDS.File;\n validate(defs.program, node, \"program\", program, 1);\n validate(defs.comments, node, \"comments\", comments, 1);\n validate(defs.tokens, node, \"tokens\", tokens);\n return node;\n}\nexport function forInStatement(\n left: t.VariableDeclaration | t.LVal,\n right: t.Expression,\n body: t.Statement,\n): t.ForInStatement {\n const node: t.ForInStatement = {\n type: \"ForInStatement\",\n left,\n right,\n body,\n };\n const defs = NODE_FIELDS.ForInStatement;\n validate(defs.left, node, \"left\", left, 1);\n validate(defs.right, node, \"right\", right, 1);\n validate(defs.body, node, \"body\", body, 1);\n return node;\n}\nexport function forStatement(\n init: t.VariableDeclaration | t.Expression | null | undefined = null,\n test: t.Expression | null | undefined = null,\n update: t.Expression | null | undefined = null,\n body: t.Statement,\n): t.ForStatement {\n const node: t.ForStatement = {\n type: \"ForStatement\",\n init,\n test,\n update,\n body,\n };\n const defs = NODE_FIELDS.ForStatement;\n validate(defs.init, node, \"init\", init, 1);\n validate(defs.test, node, \"test\", test, 1);\n validate(defs.update, node, \"update\", update, 1);\n validate(defs.body, node, \"body\", body, 1);\n return node;\n}\nexport function functionDeclaration(\n id: t.Identifier | null | undefined = null,\n params: t.FunctionParameter[],\n body: t.BlockStatement,\n generator: boolean = false,\n async: boolean = false,\n): t.FunctionDeclaration {\n const node: t.FunctionDeclaration = {\n type: \"FunctionDeclaration\",\n id,\n params,\n body,\n generator,\n async,\n };\n const defs = NODE_FIELDS.FunctionDeclaration;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.params, node, \"params\", params, 1);\n validate(defs.body, node, \"body\", body, 1);\n validate(defs.generator, node, \"generator\", generator);\n validate(defs.async, node, \"async\", async);\n return node;\n}\nexport function functionExpression(\n id: t.Identifier | null | undefined = null,\n params: t.FunctionParameter[],\n body: t.BlockStatement,\n generator: boolean = false,\n async: boolean = false,\n): t.FunctionExpression {\n const node: t.FunctionExpression = {\n type: \"FunctionExpression\",\n id,\n params,\n body,\n generator,\n async,\n };\n const defs = NODE_FIELDS.FunctionExpression;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.params, node, \"params\", params, 1);\n validate(defs.body, node, \"body\", body, 1);\n validate(defs.generator, node, \"generator\", generator);\n validate(defs.async, node, \"async\", async);\n return node;\n}\nexport function identifier(name: string): t.Identifier {\n const node: t.Identifier = {\n type: \"Identifier\",\n name,\n };\n const defs = NODE_FIELDS.Identifier;\n validate(defs.name, node, \"name\", name);\n return node;\n}\nexport function ifStatement(\n test: t.Expression,\n consequent: t.Statement,\n alternate: t.Statement | null = null,\n): t.IfStatement {\n const node: t.IfStatement = {\n type: \"IfStatement\",\n test,\n consequent,\n alternate,\n };\n const defs = NODE_FIELDS.IfStatement;\n validate(defs.test, node, \"test\", test, 1);\n validate(defs.consequent, node, \"consequent\", consequent, 1);\n validate(defs.alternate, node, \"alternate\", alternate, 1);\n return node;\n}\nexport function labeledStatement(\n label: t.Identifier,\n body: t.Statement,\n): t.LabeledStatement {\n const node: t.LabeledStatement = {\n type: \"LabeledStatement\",\n label,\n body,\n };\n const defs = NODE_FIELDS.LabeledStatement;\n validate(defs.label, node, \"label\", label, 1);\n validate(defs.body, node, \"body\", body, 1);\n return node;\n}\nexport function stringLiteral(value: string): t.StringLiteral {\n const node: t.StringLiteral = {\n type: \"StringLiteral\",\n value,\n };\n const defs = NODE_FIELDS.StringLiteral;\n validate(defs.value, node, \"value\", value);\n return node;\n}\nexport function numericLiteral(value: number): t.NumericLiteral {\n const node: t.NumericLiteral = {\n type: \"NumericLiteral\",\n value,\n };\n const defs = NODE_FIELDS.NumericLiteral;\n validate(defs.value, node, \"value\", value);\n return node;\n}\nexport function nullLiteral(): t.NullLiteral {\n return {\n type: \"NullLiteral\",\n };\n}\nexport function booleanLiteral(value: boolean): t.BooleanLiteral {\n const node: t.BooleanLiteral = {\n type: \"BooleanLiteral\",\n value,\n };\n const defs = NODE_FIELDS.BooleanLiteral;\n validate(defs.value, node, \"value\", value);\n return node;\n}\nexport function regExpLiteral(\n pattern: string,\n flags: string = \"\",\n): t.RegExpLiteral {\n const node: t.RegExpLiteral = {\n type: \"RegExpLiteral\",\n pattern,\n flags,\n };\n const defs = NODE_FIELDS.RegExpLiteral;\n validate(defs.pattern, node, \"pattern\", pattern);\n validate(defs.flags, node, \"flags\", flags);\n return node;\n}\nexport function logicalExpression(\n operator: \"||\" | \"&&\" | \"??\",\n left: t.Expression,\n right: t.Expression,\n): t.LogicalExpression {\n const node: t.LogicalExpression = {\n type: \"LogicalExpression\",\n operator,\n left,\n right,\n };\n const defs = NODE_FIELDS.LogicalExpression;\n validate(defs.operator, node, \"operator\", operator);\n validate(defs.left, node, \"left\", left, 1);\n validate(defs.right, node, \"right\", right, 1);\n return node;\n}\nexport function memberExpression(\n object: t.Expression | t.Super,\n property: t.Expression | t.Identifier | t.PrivateName,\n computed: boolean = false,\n optional: boolean | null = null,\n): t.MemberExpression {\n const node: t.MemberExpression = {\n type: \"MemberExpression\",\n object,\n property,\n computed,\n optional,\n };\n const defs = NODE_FIELDS.MemberExpression;\n validate(defs.object, node, \"object\", object, 1);\n validate(defs.property, node, \"property\", property, 1);\n validate(defs.computed, node, \"computed\", computed);\n validate(defs.optional, node, \"optional\", optional);\n return node;\n}\nexport function newExpression(\n callee: t.Expression | t.Super | t.V8IntrinsicIdentifier,\n _arguments: (t.Expression | t.SpreadElement | t.ArgumentPlaceholder)[],\n): t.NewExpression {\n const node: t.NewExpression = {\n type: \"NewExpression\",\n callee,\n arguments: _arguments,\n };\n const defs = NODE_FIELDS.NewExpression;\n validate(defs.callee, node, \"callee\", callee, 1);\n validate(defs.arguments, node, \"arguments\", _arguments, 1);\n return node;\n}\nexport function program(\n body: t.Statement[],\n directives: t.Directive[] = [],\n sourceType: \"script\" | \"module\" = \"script\",\n interpreter: t.InterpreterDirective | null = null,\n): t.Program {\n const node: t.Program = {\n type: \"Program\",\n body,\n directives,\n sourceType,\n interpreter,\n };\n const defs = NODE_FIELDS.Program;\n validate(defs.body, node, \"body\", body, 1);\n validate(defs.directives, node, \"directives\", directives, 1);\n validate(defs.sourceType, node, \"sourceType\", sourceType);\n validate(defs.interpreter, node, \"interpreter\", interpreter, 1);\n return node;\n}\nexport function objectExpression(\n properties: (t.ObjectMethod | t.ObjectProperty | t.SpreadElement)[],\n): t.ObjectExpression {\n const node: t.ObjectExpression = {\n type: \"ObjectExpression\",\n properties,\n };\n const defs = NODE_FIELDS.ObjectExpression;\n validate(defs.properties, node, \"properties\", properties, 1);\n return node;\n}\nexport function objectMethod(\n kind: \"method\" | \"get\" | \"set\" | undefined = \"method\",\n key:\n | t.Expression\n | t.Identifier\n | t.StringLiteral\n | t.NumericLiteral\n | t.BigIntLiteral,\n params: t.FunctionParameter[],\n body: t.BlockStatement,\n computed: boolean = false,\n generator: boolean = false,\n async: boolean = false,\n): t.ObjectMethod {\n const node: t.ObjectMethod = {\n type: \"ObjectMethod\",\n kind,\n key,\n params,\n body,\n computed,\n generator,\n async,\n };\n const defs = NODE_FIELDS.ObjectMethod;\n validate(defs.kind, node, \"kind\", kind);\n validate(defs.key, node, \"key\", key, 1);\n validate(defs.params, node, \"params\", params, 1);\n validate(defs.body, node, \"body\", body, 1);\n validate(defs.computed, node, \"computed\", computed);\n validate(defs.generator, node, \"generator\", generator);\n validate(defs.async, node, \"async\", async);\n return node;\n}\nexport function objectProperty(\n key:\n | t.Expression\n | t.Identifier\n | t.StringLiteral\n | t.NumericLiteral\n | t.BigIntLiteral\n | t.DecimalLiteral\n | t.PrivateName,\n value: t.Expression | t.PatternLike,\n computed: boolean = false,\n shorthand: boolean = false,\n decorators: t.Decorator[] | null = null,\n): t.ObjectProperty {\n const node: t.ObjectProperty = {\n type: \"ObjectProperty\",\n key,\n value,\n computed,\n shorthand,\n decorators,\n };\n const defs = NODE_FIELDS.ObjectProperty;\n validate(defs.key, node, \"key\", key, 1);\n validate(defs.value, node, \"value\", value, 1);\n validate(defs.computed, node, \"computed\", computed);\n validate(defs.shorthand, node, \"shorthand\", shorthand);\n validate(defs.decorators, node, \"decorators\", decorators, 1);\n return node;\n}\nexport function restElement(\n argument:\n | t.Identifier\n | t.ArrayPattern\n | t.ObjectPattern\n | t.MemberExpression\n | t.TSAsExpression\n | t.TSSatisfiesExpression\n | t.TSTypeAssertion\n | t.TSNonNullExpression\n | t.RestElement\n | t.AssignmentPattern,\n): t.RestElement {\n const node: t.RestElement = {\n type: \"RestElement\",\n argument,\n };\n const defs = NODE_FIELDS.RestElement;\n validate(defs.argument, node, \"argument\", argument, 1);\n return node;\n}\nexport function returnStatement(\n argument: t.Expression | null = null,\n): t.ReturnStatement {\n const node: t.ReturnStatement = {\n type: \"ReturnStatement\",\n argument,\n };\n const defs = NODE_FIELDS.ReturnStatement;\n validate(defs.argument, node, \"argument\", argument, 1);\n return node;\n}\nexport function sequenceExpression(\n expressions: t.Expression[],\n): t.SequenceExpression {\n const node: t.SequenceExpression = {\n type: \"SequenceExpression\",\n expressions,\n };\n const defs = NODE_FIELDS.SequenceExpression;\n validate(defs.expressions, node, \"expressions\", expressions, 1);\n return node;\n}\nexport function parenthesizedExpression(\n expression: t.Expression,\n): t.ParenthesizedExpression {\n const node: t.ParenthesizedExpression = {\n type: \"ParenthesizedExpression\",\n expression,\n };\n const defs = NODE_FIELDS.ParenthesizedExpression;\n validate(defs.expression, node, \"expression\", expression, 1);\n return node;\n}\nexport function switchCase(\n test: t.Expression | null | undefined = null,\n consequent: t.Statement[],\n): t.SwitchCase {\n const node: t.SwitchCase = {\n type: \"SwitchCase\",\n test,\n consequent,\n };\n const defs = NODE_FIELDS.SwitchCase;\n validate(defs.test, node, \"test\", test, 1);\n validate(defs.consequent, node, \"consequent\", consequent, 1);\n return node;\n}\nexport function switchStatement(\n discriminant: t.Expression,\n cases: t.SwitchCase[],\n): t.SwitchStatement {\n const node: t.SwitchStatement = {\n type: \"SwitchStatement\",\n discriminant,\n cases,\n };\n const defs = NODE_FIELDS.SwitchStatement;\n validate(defs.discriminant, node, \"discriminant\", discriminant, 1);\n validate(defs.cases, node, \"cases\", cases, 1);\n return node;\n}\nexport function thisExpression(): t.ThisExpression {\n return {\n type: \"ThisExpression\",\n };\n}\nexport function throwStatement(argument: t.Expression): t.ThrowStatement {\n const node: t.ThrowStatement = {\n type: \"ThrowStatement\",\n argument,\n };\n const defs = NODE_FIELDS.ThrowStatement;\n validate(defs.argument, node, \"argument\", argument, 1);\n return node;\n}\nexport function tryStatement(\n block: t.BlockStatement,\n handler: t.CatchClause | null = null,\n finalizer: t.BlockStatement | null = null,\n): t.TryStatement {\n const node: t.TryStatement = {\n type: \"TryStatement\",\n block,\n handler,\n finalizer,\n };\n const defs = NODE_FIELDS.TryStatement;\n validate(defs.block, node, \"block\", block, 1);\n validate(defs.handler, node, \"handler\", handler, 1);\n validate(defs.finalizer, node, \"finalizer\", finalizer, 1);\n return node;\n}\nexport function unaryExpression(\n operator: \"void\" | \"throw\" | \"delete\" | \"!\" | \"+\" | \"-\" | \"~\" | \"typeof\",\n argument: t.Expression,\n prefix: boolean = true,\n): t.UnaryExpression {\n const node: t.UnaryExpression = {\n type: \"UnaryExpression\",\n operator,\n argument,\n prefix,\n };\n const defs = NODE_FIELDS.UnaryExpression;\n validate(defs.operator, node, \"operator\", operator);\n validate(defs.argument, node, \"argument\", argument, 1);\n validate(defs.prefix, node, \"prefix\", prefix);\n return node;\n}\nexport function updateExpression(\n operator: \"++\" | \"--\",\n argument: t.Expression,\n prefix: boolean = false,\n): t.UpdateExpression {\n const node: t.UpdateExpression = {\n type: \"UpdateExpression\",\n operator,\n argument,\n prefix,\n };\n const defs = NODE_FIELDS.UpdateExpression;\n validate(defs.operator, node, \"operator\", operator);\n validate(defs.argument, node, \"argument\", argument, 1);\n validate(defs.prefix, node, \"prefix\", prefix);\n return node;\n}\nexport function variableDeclaration(\n kind: \"var\" | \"let\" | \"const\" | \"using\" | \"await using\",\n declarations: t.VariableDeclarator[],\n): t.VariableDeclaration {\n const node: t.VariableDeclaration = {\n type: \"VariableDeclaration\",\n kind,\n declarations,\n };\n const defs = NODE_FIELDS.VariableDeclaration;\n validate(defs.kind, node, \"kind\", kind);\n validate(defs.declarations, node, \"declarations\", declarations, 1);\n return node;\n}\nexport function variableDeclarator(\n id: t.LVal | t.VoidPattern,\n init: t.Expression | null = null,\n): t.VariableDeclarator {\n const node: t.VariableDeclarator = {\n type: \"VariableDeclarator\",\n id,\n init,\n };\n const defs = NODE_FIELDS.VariableDeclarator;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.init, node, \"init\", init, 1);\n return node;\n}\nexport function whileStatement(\n test: t.Expression,\n body: t.Statement,\n): t.WhileStatement {\n const node: t.WhileStatement = {\n type: \"WhileStatement\",\n test,\n body,\n };\n const defs = NODE_FIELDS.WhileStatement;\n validate(defs.test, node, \"test\", test, 1);\n validate(defs.body, node, \"body\", body, 1);\n return node;\n}\nexport function withStatement(\n object: t.Expression,\n body: t.Statement,\n): t.WithStatement {\n const node: t.WithStatement = {\n type: \"WithStatement\",\n object,\n body,\n };\n const defs = NODE_FIELDS.WithStatement;\n validate(defs.object, node, \"object\", object, 1);\n validate(defs.body, node, \"body\", body, 1);\n return node;\n}\nexport function assignmentPattern(\n left:\n | t.Identifier\n | t.ObjectPattern\n | t.ArrayPattern\n | t.MemberExpression\n | t.TSAsExpression\n | t.TSSatisfiesExpression\n | t.TSTypeAssertion\n | t.TSNonNullExpression,\n right: t.Expression,\n): t.AssignmentPattern {\n const node: t.AssignmentPattern = {\n type: \"AssignmentPattern\",\n left,\n right,\n };\n const defs = NODE_FIELDS.AssignmentPattern;\n validate(defs.left, node, \"left\", left, 1);\n validate(defs.right, node, \"right\", right, 1);\n return node;\n}\nexport function arrayPattern(\n elements: (null | t.PatternLike)[],\n): t.ArrayPattern {\n const node: t.ArrayPattern = {\n type: \"ArrayPattern\",\n elements,\n };\n const defs = NODE_FIELDS.ArrayPattern;\n validate(defs.elements, node, \"elements\", elements, 1);\n return node;\n}\nexport function arrowFunctionExpression(\n params: t.FunctionParameter[],\n body: t.BlockStatement | t.Expression,\n async: boolean = false,\n): t.ArrowFunctionExpression {\n const node: t.ArrowFunctionExpression = {\n type: \"ArrowFunctionExpression\",\n params,\n body,\n async,\n expression: null,\n };\n const defs = NODE_FIELDS.ArrowFunctionExpression;\n validate(defs.params, node, \"params\", params, 1);\n validate(defs.body, node, \"body\", body, 1);\n validate(defs.async, node, \"async\", async);\n return node;\n}\nexport function classBody(\n body: (\n | t.ClassMethod\n | t.ClassPrivateMethod\n | t.ClassProperty\n | t.ClassPrivateProperty\n | t.ClassAccessorProperty\n | t.TSDeclareMethod\n | t.TSIndexSignature\n | t.StaticBlock\n )[],\n): t.ClassBody {\n const node: t.ClassBody = {\n type: \"ClassBody\",\n body,\n };\n const defs = NODE_FIELDS.ClassBody;\n validate(defs.body, node, \"body\", body, 1);\n return node;\n}\nexport function classExpression(\n id: t.Identifier | null | undefined = null,\n superClass: t.Expression | null | undefined = null,\n body: t.ClassBody,\n decorators: t.Decorator[] | null = null,\n): t.ClassExpression {\n const node: t.ClassExpression = {\n type: \"ClassExpression\",\n id,\n superClass,\n body,\n decorators,\n };\n const defs = NODE_FIELDS.ClassExpression;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.superClass, node, \"superClass\", superClass, 1);\n validate(defs.body, node, \"body\", body, 1);\n validate(defs.decorators, node, \"decorators\", decorators, 1);\n return node;\n}\nexport function classDeclaration(\n id: t.Identifier | null | undefined = null,\n superClass: t.Expression | null | undefined = null,\n body: t.ClassBody,\n decorators: t.Decorator[] | null = null,\n): t.ClassDeclaration {\n const node: t.ClassDeclaration = {\n type: \"ClassDeclaration\",\n id,\n superClass,\n body,\n decorators,\n };\n const defs = NODE_FIELDS.ClassDeclaration;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.superClass, node, \"superClass\", superClass, 1);\n validate(defs.body, node, \"body\", body, 1);\n validate(defs.decorators, node, \"decorators\", decorators, 1);\n return node;\n}\nexport function exportAllDeclaration(\n source: t.StringLiteral,\n): t.ExportAllDeclaration {\n const node: t.ExportAllDeclaration = {\n type: \"ExportAllDeclaration\",\n source,\n };\n const defs = NODE_FIELDS.ExportAllDeclaration;\n validate(defs.source, node, \"source\", source, 1);\n return node;\n}\nexport function exportDefaultDeclaration(\n declaration:\n | t.TSDeclareFunction\n | t.FunctionDeclaration\n | t.ClassDeclaration\n | t.Expression,\n): t.ExportDefaultDeclaration {\n const node: t.ExportDefaultDeclaration = {\n type: \"ExportDefaultDeclaration\",\n declaration,\n };\n const defs = NODE_FIELDS.ExportDefaultDeclaration;\n validate(defs.declaration, node, \"declaration\", declaration, 1);\n return node;\n}\nexport function exportNamedDeclaration(\n declaration: t.Declaration | null = null,\n specifiers: (\n | t.ExportSpecifier\n | t.ExportDefaultSpecifier\n | t.ExportNamespaceSpecifier\n )[] = [],\n source: t.StringLiteral | null = null,\n): t.ExportNamedDeclaration {\n const node: t.ExportNamedDeclaration = {\n type: \"ExportNamedDeclaration\",\n declaration,\n specifiers,\n source,\n };\n const defs = NODE_FIELDS.ExportNamedDeclaration;\n validate(defs.declaration, node, \"declaration\", declaration, 1);\n validate(defs.specifiers, node, \"specifiers\", specifiers, 1);\n validate(defs.source, node, \"source\", source, 1);\n return node;\n}\nexport function exportSpecifier(\n local: t.Identifier,\n exported: t.Identifier | t.StringLiteral,\n): t.ExportSpecifier {\n const node: t.ExportSpecifier = {\n type: \"ExportSpecifier\",\n local,\n exported,\n };\n const defs = NODE_FIELDS.ExportSpecifier;\n validate(defs.local, node, \"local\", local, 1);\n validate(defs.exported, node, \"exported\", exported, 1);\n return node;\n}\nexport function forOfStatement(\n left: t.VariableDeclaration | t.LVal,\n right: t.Expression,\n body: t.Statement,\n _await: boolean = false,\n): t.ForOfStatement {\n const node: t.ForOfStatement = {\n type: \"ForOfStatement\",\n left,\n right,\n body,\n await: _await,\n };\n const defs = NODE_FIELDS.ForOfStatement;\n validate(defs.left, node, \"left\", left, 1);\n validate(defs.right, node, \"right\", right, 1);\n validate(defs.body, node, \"body\", body, 1);\n validate(defs.await, node, \"await\", _await);\n return node;\n}\nexport function importDeclaration(\n specifiers: (\n | t.ImportSpecifier\n | t.ImportDefaultSpecifier\n | t.ImportNamespaceSpecifier\n )[],\n source: t.StringLiteral,\n): t.ImportDeclaration {\n const node: t.ImportDeclaration = {\n type: \"ImportDeclaration\",\n specifiers,\n source,\n };\n const defs = NODE_FIELDS.ImportDeclaration;\n validate(defs.specifiers, node, \"specifiers\", specifiers, 1);\n validate(defs.source, node, \"source\", source, 1);\n return node;\n}\nexport function importDefaultSpecifier(\n local: t.Identifier,\n): t.ImportDefaultSpecifier {\n const node: t.ImportDefaultSpecifier = {\n type: \"ImportDefaultSpecifier\",\n local,\n };\n const defs = NODE_FIELDS.ImportDefaultSpecifier;\n validate(defs.local, node, \"local\", local, 1);\n return node;\n}\nexport function importNamespaceSpecifier(\n local: t.Identifier,\n): t.ImportNamespaceSpecifier {\n const node: t.ImportNamespaceSpecifier = {\n type: \"ImportNamespaceSpecifier\",\n local,\n };\n const defs = NODE_FIELDS.ImportNamespaceSpecifier;\n validate(defs.local, node, \"local\", local, 1);\n return node;\n}\nexport function importSpecifier(\n local: t.Identifier,\n imported: t.Identifier | t.StringLiteral,\n): t.ImportSpecifier {\n const node: t.ImportSpecifier = {\n type: \"ImportSpecifier\",\n local,\n imported,\n };\n const defs = NODE_FIELDS.ImportSpecifier;\n validate(defs.local, node, \"local\", local, 1);\n validate(defs.imported, node, \"imported\", imported, 1);\n return node;\n}\nexport function importExpression(\n source: t.Expression,\n options: t.Expression | null = null,\n): t.ImportExpression {\n const node: t.ImportExpression = {\n type: \"ImportExpression\",\n source,\n options,\n };\n const defs = NODE_FIELDS.ImportExpression;\n validate(defs.source, node, \"source\", source, 1);\n validate(defs.options, node, \"options\", options, 1);\n return node;\n}\nexport function metaProperty(\n meta: t.Identifier,\n property: t.Identifier,\n): t.MetaProperty {\n const node: t.MetaProperty = {\n type: \"MetaProperty\",\n meta,\n property,\n };\n const defs = NODE_FIELDS.MetaProperty;\n validate(defs.meta, node, \"meta\", meta, 1);\n validate(defs.property, node, \"property\", property, 1);\n return node;\n}\nexport function classMethod(\n kind: \"get\" | \"set\" | \"method\" | \"constructor\" | undefined = \"method\",\n key:\n | t.Identifier\n | t.StringLiteral\n | t.NumericLiteral\n | t.BigIntLiteral\n | t.Expression,\n params: (t.FunctionParameter | t.TSParameterProperty)[],\n body: t.BlockStatement,\n computed: boolean = false,\n _static: boolean = false,\n generator: boolean = false,\n async: boolean = false,\n): t.ClassMethod {\n const node: t.ClassMethod = {\n type: \"ClassMethod\",\n kind,\n key,\n params,\n body,\n computed,\n static: _static,\n generator,\n async,\n };\n const defs = NODE_FIELDS.ClassMethod;\n validate(defs.kind, node, \"kind\", kind);\n validate(defs.key, node, \"key\", key, 1);\n validate(defs.params, node, \"params\", params, 1);\n validate(defs.body, node, \"body\", body, 1);\n validate(defs.computed, node, \"computed\", computed);\n validate(defs.static, node, \"static\", _static);\n validate(defs.generator, node, \"generator\", generator);\n validate(defs.async, node, \"async\", async);\n return node;\n}\nexport function objectPattern(\n properties: (t.RestElement | t.ObjectProperty)[],\n): t.ObjectPattern {\n const node: t.ObjectPattern = {\n type: \"ObjectPattern\",\n properties,\n };\n const defs = NODE_FIELDS.ObjectPattern;\n validate(defs.properties, node, \"properties\", properties, 1);\n return node;\n}\nexport function spreadElement(argument: t.Expression): t.SpreadElement {\n const node: t.SpreadElement = {\n type: \"SpreadElement\",\n argument,\n };\n const defs = NODE_FIELDS.SpreadElement;\n validate(defs.argument, node, \"argument\", argument, 1);\n return node;\n}\nfunction _super(): t.Super {\n return {\n type: \"Super\",\n };\n}\nexport { _super as super };\nexport function taggedTemplateExpression(\n tag: t.Expression,\n quasi: t.TemplateLiteral,\n): t.TaggedTemplateExpression {\n const node: t.TaggedTemplateExpression = {\n type: \"TaggedTemplateExpression\",\n tag,\n quasi,\n };\n const defs = NODE_FIELDS.TaggedTemplateExpression;\n validate(defs.tag, node, \"tag\", tag, 1);\n validate(defs.quasi, node, \"quasi\", quasi, 1);\n return node;\n}\nexport function templateElement(\n value: { raw: string; cooked?: string },\n tail: boolean = false,\n): t.TemplateElement {\n const node: t.TemplateElement = {\n type: \"TemplateElement\",\n value,\n tail,\n };\n const defs = NODE_FIELDS.TemplateElement;\n validate(defs.value, node, \"value\", value);\n validate(defs.tail, node, \"tail\", tail);\n return node;\n}\nexport function templateLiteral(\n quasis: t.TemplateElement[],\n expressions: (t.Expression | t.TSType)[],\n): t.TemplateLiteral {\n const node: t.TemplateLiteral = {\n type: \"TemplateLiteral\",\n quasis,\n expressions,\n };\n const defs = NODE_FIELDS.TemplateLiteral;\n validate(defs.quasis, node, \"quasis\", quasis, 1);\n validate(defs.expressions, node, \"expressions\", expressions, 1);\n return node;\n}\nexport function yieldExpression(\n argument: t.Expression | null = null,\n delegate: boolean = false,\n): t.YieldExpression {\n const node: t.YieldExpression = {\n type: \"YieldExpression\",\n argument,\n delegate,\n };\n const defs = NODE_FIELDS.YieldExpression;\n validate(defs.argument, node, \"argument\", argument, 1);\n validate(defs.delegate, node, \"delegate\", delegate);\n return node;\n}\nexport function awaitExpression(argument: t.Expression): t.AwaitExpression {\n const node: t.AwaitExpression = {\n type: \"AwaitExpression\",\n argument,\n };\n const defs = NODE_FIELDS.AwaitExpression;\n validate(defs.argument, node, \"argument\", argument, 1);\n return node;\n}\nfunction _import(): t.Import {\n return {\n type: \"Import\",\n };\n}\nexport { _import as import };\nexport function exportNamespaceSpecifier(\n exported: t.Identifier,\n): t.ExportNamespaceSpecifier {\n const node: t.ExportNamespaceSpecifier = {\n type: \"ExportNamespaceSpecifier\",\n exported,\n };\n const defs = NODE_FIELDS.ExportNamespaceSpecifier;\n validate(defs.exported, node, \"exported\", exported, 1);\n return node;\n}\nexport function optionalMemberExpression(\n object: t.Expression,\n property: t.Expression | t.Identifier,\n computed: boolean | undefined = false,\n optional: boolean,\n): t.OptionalMemberExpression {\n const node: t.OptionalMemberExpression = {\n type: \"OptionalMemberExpression\",\n object,\n property,\n computed,\n optional,\n };\n const defs = NODE_FIELDS.OptionalMemberExpression;\n validate(defs.object, node, \"object\", object, 1);\n validate(defs.property, node, \"property\", property, 1);\n validate(defs.computed, node, \"computed\", computed);\n validate(defs.optional, node, \"optional\", optional);\n return node;\n}\nexport function optionalCallExpression(\n callee: t.Expression,\n _arguments: (t.Expression | t.SpreadElement | t.ArgumentPlaceholder)[],\n optional: boolean,\n): t.OptionalCallExpression {\n const node: t.OptionalCallExpression = {\n type: \"OptionalCallExpression\",\n callee,\n arguments: _arguments,\n optional,\n };\n const defs = NODE_FIELDS.OptionalCallExpression;\n validate(defs.callee, node, \"callee\", callee, 1);\n validate(defs.arguments, node, \"arguments\", _arguments, 1);\n validate(defs.optional, node, \"optional\", optional);\n return node;\n}\nexport function classProperty(\n key:\n | t.Identifier\n | t.StringLiteral\n | t.NumericLiteral\n | t.BigIntLiteral\n | t.Expression,\n value: t.Expression | null = null,\n typeAnnotation: t.TypeAnnotation | t.TSTypeAnnotation | t.Noop | null = null,\n decorators: t.Decorator[] | null = null,\n computed: boolean = false,\n _static: boolean = false,\n): t.ClassProperty {\n const node: t.ClassProperty = {\n type: \"ClassProperty\",\n key,\n value,\n typeAnnotation,\n decorators,\n computed,\n static: _static,\n };\n const defs = NODE_FIELDS.ClassProperty;\n validate(defs.key, node, \"key\", key, 1);\n validate(defs.value, node, \"value\", value, 1);\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n validate(defs.decorators, node, \"decorators\", decorators, 1);\n validate(defs.computed, node, \"computed\", computed);\n validate(defs.static, node, \"static\", _static);\n return node;\n}\nexport function classAccessorProperty(\n key:\n | t.Identifier\n | t.StringLiteral\n | t.NumericLiteral\n | t.BigIntLiteral\n | t.Expression\n | t.PrivateName,\n value: t.Expression | null = null,\n typeAnnotation: t.TypeAnnotation | t.TSTypeAnnotation | t.Noop | null = null,\n decorators: t.Decorator[] | null = null,\n computed: boolean = false,\n _static: boolean = false,\n): t.ClassAccessorProperty {\n const node: t.ClassAccessorProperty = {\n type: \"ClassAccessorProperty\",\n key,\n value,\n typeAnnotation,\n decorators,\n computed,\n static: _static,\n };\n const defs = NODE_FIELDS.ClassAccessorProperty;\n validate(defs.key, node, \"key\", key, 1);\n validate(defs.value, node, \"value\", value, 1);\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n validate(defs.decorators, node, \"decorators\", decorators, 1);\n validate(defs.computed, node, \"computed\", computed);\n validate(defs.static, node, \"static\", _static);\n return node;\n}\nexport function classPrivateProperty(\n key: t.PrivateName,\n value: t.Expression | null = null,\n decorators: t.Decorator[] | null = null,\n _static: boolean = false,\n): t.ClassPrivateProperty {\n const node: t.ClassPrivateProperty = {\n type: \"ClassPrivateProperty\",\n key,\n value,\n decorators,\n static: _static,\n };\n const defs = NODE_FIELDS.ClassPrivateProperty;\n validate(defs.key, node, \"key\", key, 1);\n validate(defs.value, node, \"value\", value, 1);\n validate(defs.decorators, node, \"decorators\", decorators, 1);\n validate(defs.static, node, \"static\", _static);\n return node;\n}\nexport function classPrivateMethod(\n kind: \"get\" | \"set\" | \"method\" | undefined = \"method\",\n key: t.PrivateName,\n params: (t.FunctionParameter | t.TSParameterProperty)[],\n body: t.BlockStatement,\n _static: boolean = false,\n): t.ClassPrivateMethod {\n const node: t.ClassPrivateMethod = {\n type: \"ClassPrivateMethod\",\n kind,\n key,\n params,\n body,\n static: _static,\n };\n const defs = NODE_FIELDS.ClassPrivateMethod;\n validate(defs.kind, node, \"kind\", kind);\n validate(defs.key, node, \"key\", key, 1);\n validate(defs.params, node, \"params\", params, 1);\n validate(defs.body, node, \"body\", body, 1);\n validate(defs.static, node, \"static\", _static);\n return node;\n}\nexport function privateName(id: t.Identifier): t.PrivateName {\n const node: t.PrivateName = {\n type: \"PrivateName\",\n id,\n };\n const defs = NODE_FIELDS.PrivateName;\n validate(defs.id, node, \"id\", id, 1);\n return node;\n}\nexport function staticBlock(body: t.Statement[]): t.StaticBlock {\n const node: t.StaticBlock = {\n type: \"StaticBlock\",\n body,\n };\n const defs = NODE_FIELDS.StaticBlock;\n validate(defs.body, node, \"body\", body, 1);\n return node;\n}\nexport function importAttribute(\n key: t.Identifier | t.StringLiteral,\n value: t.StringLiteral,\n): t.ImportAttribute {\n const node: t.ImportAttribute = {\n type: \"ImportAttribute\",\n key,\n value,\n };\n const defs = NODE_FIELDS.ImportAttribute;\n validate(defs.key, node, \"key\", key, 1);\n validate(defs.value, node, \"value\", value, 1);\n return node;\n}\nexport function anyTypeAnnotation(): t.AnyTypeAnnotation {\n return {\n type: \"AnyTypeAnnotation\",\n };\n}\nexport function arrayTypeAnnotation(\n elementType: t.FlowType,\n): t.ArrayTypeAnnotation {\n const node: t.ArrayTypeAnnotation = {\n type: \"ArrayTypeAnnotation\",\n elementType,\n };\n const defs = NODE_FIELDS.ArrayTypeAnnotation;\n validate(defs.elementType, node, \"elementType\", elementType, 1);\n return node;\n}\nexport function booleanTypeAnnotation(): t.BooleanTypeAnnotation {\n return {\n type: \"BooleanTypeAnnotation\",\n };\n}\nexport function booleanLiteralTypeAnnotation(\n value: boolean,\n): t.BooleanLiteralTypeAnnotation {\n const node: t.BooleanLiteralTypeAnnotation = {\n type: \"BooleanLiteralTypeAnnotation\",\n value,\n };\n const defs = NODE_FIELDS.BooleanLiteralTypeAnnotation;\n validate(defs.value, node, \"value\", value);\n return node;\n}\nexport function nullLiteralTypeAnnotation(): t.NullLiteralTypeAnnotation {\n return {\n type: \"NullLiteralTypeAnnotation\",\n };\n}\nexport function classImplements(\n id: t.Identifier,\n typeParameters: t.TypeParameterInstantiation | null = null,\n): t.ClassImplements {\n const node: t.ClassImplements = {\n type: \"ClassImplements\",\n id,\n typeParameters,\n };\n const defs = NODE_FIELDS.ClassImplements;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n return node;\n}\nexport function declareClass(\n id: t.Identifier,\n typeParameters: t.TypeParameterDeclaration | null | undefined = null,\n _extends: t.InterfaceExtends[] | null | undefined = null,\n body: t.ObjectTypeAnnotation,\n): t.DeclareClass {\n const node: t.DeclareClass = {\n type: \"DeclareClass\",\n id,\n typeParameters,\n extends: _extends,\n body,\n };\n const defs = NODE_FIELDS.DeclareClass;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n validate(defs.extends, node, \"extends\", _extends, 1);\n validate(defs.body, node, \"body\", body, 1);\n return node;\n}\nexport function declareFunction(id: t.Identifier): t.DeclareFunction {\n const node: t.DeclareFunction = {\n type: \"DeclareFunction\",\n id,\n };\n const defs = NODE_FIELDS.DeclareFunction;\n validate(defs.id, node, \"id\", id, 1);\n return node;\n}\nexport function declareInterface(\n id: t.Identifier,\n typeParameters: t.TypeParameterDeclaration | null | undefined = null,\n _extends: t.InterfaceExtends[] | null | undefined = null,\n body: t.ObjectTypeAnnotation,\n): t.DeclareInterface {\n const node: t.DeclareInterface = {\n type: \"DeclareInterface\",\n id,\n typeParameters,\n extends: _extends,\n body,\n };\n const defs = NODE_FIELDS.DeclareInterface;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n validate(defs.extends, node, \"extends\", _extends, 1);\n validate(defs.body, node, \"body\", body, 1);\n return node;\n}\nexport function declareModule(\n id: t.Identifier | t.StringLiteral,\n body: t.BlockStatement,\n kind: \"CommonJS\" | \"ES\" | null = null,\n): t.DeclareModule {\n const node: t.DeclareModule = {\n type: \"DeclareModule\",\n id,\n body,\n kind,\n };\n const defs = NODE_FIELDS.DeclareModule;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.body, node, \"body\", body, 1);\n validate(defs.kind, node, \"kind\", kind);\n return node;\n}\nexport function declareModuleExports(\n typeAnnotation: t.TypeAnnotation,\n): t.DeclareModuleExports {\n const node: t.DeclareModuleExports = {\n type: \"DeclareModuleExports\",\n typeAnnotation,\n };\n const defs = NODE_FIELDS.DeclareModuleExports;\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n return node;\n}\nexport function declareTypeAlias(\n id: t.Identifier,\n typeParameters: t.TypeParameterDeclaration | null | undefined = null,\n right: t.FlowType,\n): t.DeclareTypeAlias {\n const node: t.DeclareTypeAlias = {\n type: \"DeclareTypeAlias\",\n id,\n typeParameters,\n right,\n };\n const defs = NODE_FIELDS.DeclareTypeAlias;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n validate(defs.right, node, \"right\", right, 1);\n return node;\n}\nexport function declareOpaqueType(\n id: t.Identifier,\n typeParameters: t.TypeParameterDeclaration | null = null,\n supertype: t.FlowType | null = null,\n): t.DeclareOpaqueType {\n const node: t.DeclareOpaqueType = {\n type: \"DeclareOpaqueType\",\n id,\n typeParameters,\n supertype,\n };\n const defs = NODE_FIELDS.DeclareOpaqueType;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n validate(defs.supertype, node, \"supertype\", supertype, 1);\n return node;\n}\nexport function declareVariable(id: t.Identifier): t.DeclareVariable {\n const node: t.DeclareVariable = {\n type: \"DeclareVariable\",\n id,\n };\n const defs = NODE_FIELDS.DeclareVariable;\n validate(defs.id, node, \"id\", id, 1);\n return node;\n}\nexport function declareExportDeclaration(\n declaration: t.Flow | null = null,\n specifiers: (t.ExportSpecifier | t.ExportNamespaceSpecifier)[] | null = null,\n source: t.StringLiteral | null = null,\n attributes: t.ImportAttribute[] | null = null,\n): t.DeclareExportDeclaration {\n const node: t.DeclareExportDeclaration = {\n type: \"DeclareExportDeclaration\",\n declaration,\n specifiers,\n source,\n attributes,\n };\n const defs = NODE_FIELDS.DeclareExportDeclaration;\n validate(defs.declaration, node, \"declaration\", declaration, 1);\n validate(defs.specifiers, node, \"specifiers\", specifiers, 1);\n validate(defs.source, node, \"source\", source, 1);\n validate(defs.attributes, node, \"attributes\", attributes, 1);\n return node;\n}\nexport function declareExportAllDeclaration(\n source: t.StringLiteral,\n attributes: t.ImportAttribute[] | null = null,\n): t.DeclareExportAllDeclaration {\n const node: t.DeclareExportAllDeclaration = {\n type: \"DeclareExportAllDeclaration\",\n source,\n attributes,\n };\n const defs = NODE_FIELDS.DeclareExportAllDeclaration;\n validate(defs.source, node, \"source\", source, 1);\n validate(defs.attributes, node, \"attributes\", attributes, 1);\n return node;\n}\nexport function declaredPredicate(value: t.Flow): t.DeclaredPredicate {\n const node: t.DeclaredPredicate = {\n type: \"DeclaredPredicate\",\n value,\n };\n const defs = NODE_FIELDS.DeclaredPredicate;\n validate(defs.value, node, \"value\", value, 1);\n return node;\n}\nexport function existsTypeAnnotation(): t.ExistsTypeAnnotation {\n return {\n type: \"ExistsTypeAnnotation\",\n };\n}\nexport function functionTypeAnnotation(\n typeParameters: t.TypeParameterDeclaration | null | undefined = null,\n params: t.FunctionTypeParam[],\n rest: t.FunctionTypeParam | null | undefined = null,\n returnType: t.FlowType,\n): t.FunctionTypeAnnotation {\n const node: t.FunctionTypeAnnotation = {\n type: \"FunctionTypeAnnotation\",\n typeParameters,\n params,\n rest,\n returnType,\n };\n const defs = NODE_FIELDS.FunctionTypeAnnotation;\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n validate(defs.params, node, \"params\", params, 1);\n validate(defs.rest, node, \"rest\", rest, 1);\n validate(defs.returnType, node, \"returnType\", returnType, 1);\n return node;\n}\nexport function functionTypeParam(\n name: t.Identifier | null | undefined = null,\n typeAnnotation: t.FlowType,\n): t.FunctionTypeParam {\n const node: t.FunctionTypeParam = {\n type: \"FunctionTypeParam\",\n name,\n typeAnnotation,\n };\n const defs = NODE_FIELDS.FunctionTypeParam;\n validate(defs.name, node, \"name\", name, 1);\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n return node;\n}\nexport function genericTypeAnnotation(\n id: t.Identifier | t.QualifiedTypeIdentifier,\n typeParameters: t.TypeParameterInstantiation | null = null,\n): t.GenericTypeAnnotation {\n const node: t.GenericTypeAnnotation = {\n type: \"GenericTypeAnnotation\",\n id,\n typeParameters,\n };\n const defs = NODE_FIELDS.GenericTypeAnnotation;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n return node;\n}\nexport function inferredPredicate(): t.InferredPredicate {\n return {\n type: \"InferredPredicate\",\n };\n}\nexport function interfaceExtends(\n id: t.Identifier | t.QualifiedTypeIdentifier,\n typeParameters: t.TypeParameterInstantiation | null = null,\n): t.InterfaceExtends {\n const node: t.InterfaceExtends = {\n type: \"InterfaceExtends\",\n id,\n typeParameters,\n };\n const defs = NODE_FIELDS.InterfaceExtends;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n return node;\n}\nexport function interfaceDeclaration(\n id: t.Identifier,\n typeParameters: t.TypeParameterDeclaration | null | undefined = null,\n _extends: t.InterfaceExtends[] | null | undefined = null,\n body: t.ObjectTypeAnnotation,\n): t.InterfaceDeclaration {\n const node: t.InterfaceDeclaration = {\n type: \"InterfaceDeclaration\",\n id,\n typeParameters,\n extends: _extends,\n body,\n };\n const defs = NODE_FIELDS.InterfaceDeclaration;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n validate(defs.extends, node, \"extends\", _extends, 1);\n validate(defs.body, node, \"body\", body, 1);\n return node;\n}\nexport function interfaceTypeAnnotation(\n _extends: t.InterfaceExtends[] | null | undefined = null,\n body: t.ObjectTypeAnnotation,\n): t.InterfaceTypeAnnotation {\n const node: t.InterfaceTypeAnnotation = {\n type: \"InterfaceTypeAnnotation\",\n extends: _extends,\n body,\n };\n const defs = NODE_FIELDS.InterfaceTypeAnnotation;\n validate(defs.extends, node, \"extends\", _extends, 1);\n validate(defs.body, node, \"body\", body, 1);\n return node;\n}\nexport function intersectionTypeAnnotation(\n types: t.FlowType[],\n): t.IntersectionTypeAnnotation {\n const node: t.IntersectionTypeAnnotation = {\n type: \"IntersectionTypeAnnotation\",\n types,\n };\n const defs = NODE_FIELDS.IntersectionTypeAnnotation;\n validate(defs.types, node, \"types\", types, 1);\n return node;\n}\nexport function mixedTypeAnnotation(): t.MixedTypeAnnotation {\n return {\n type: \"MixedTypeAnnotation\",\n };\n}\nexport function emptyTypeAnnotation(): t.EmptyTypeAnnotation {\n return {\n type: \"EmptyTypeAnnotation\",\n };\n}\nexport function nullableTypeAnnotation(\n typeAnnotation: t.FlowType,\n): t.NullableTypeAnnotation {\n const node: t.NullableTypeAnnotation = {\n type: \"NullableTypeAnnotation\",\n typeAnnotation,\n };\n const defs = NODE_FIELDS.NullableTypeAnnotation;\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n return node;\n}\nexport function numberLiteralTypeAnnotation(\n value: number,\n): t.NumberLiteralTypeAnnotation {\n const node: t.NumberLiteralTypeAnnotation = {\n type: \"NumberLiteralTypeAnnotation\",\n value,\n };\n const defs = NODE_FIELDS.NumberLiteralTypeAnnotation;\n validate(defs.value, node, \"value\", value);\n return node;\n}\nexport function numberTypeAnnotation(): t.NumberTypeAnnotation {\n return {\n type: \"NumberTypeAnnotation\",\n };\n}\nexport function objectTypeAnnotation(\n properties: (t.ObjectTypeProperty | t.ObjectTypeSpreadProperty)[],\n indexers: t.ObjectTypeIndexer[] = [],\n callProperties: t.ObjectTypeCallProperty[] = [],\n internalSlots: t.ObjectTypeInternalSlot[] = [],\n exact: boolean = false,\n): t.ObjectTypeAnnotation {\n const node: t.ObjectTypeAnnotation = {\n type: \"ObjectTypeAnnotation\",\n properties,\n indexers,\n callProperties,\n internalSlots,\n exact,\n };\n const defs = NODE_FIELDS.ObjectTypeAnnotation;\n validate(defs.properties, node, \"properties\", properties, 1);\n validate(defs.indexers, node, \"indexers\", indexers, 1);\n validate(defs.callProperties, node, \"callProperties\", callProperties, 1);\n validate(defs.internalSlots, node, \"internalSlots\", internalSlots, 1);\n validate(defs.exact, node, \"exact\", exact);\n return node;\n}\nexport function objectTypeInternalSlot(\n id: t.Identifier,\n value: t.FlowType,\n optional: boolean,\n _static: boolean,\n method: boolean,\n): t.ObjectTypeInternalSlot {\n const node: t.ObjectTypeInternalSlot = {\n type: \"ObjectTypeInternalSlot\",\n id,\n value,\n optional,\n static: _static,\n method,\n };\n const defs = NODE_FIELDS.ObjectTypeInternalSlot;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.value, node, \"value\", value, 1);\n validate(defs.optional, node, \"optional\", optional);\n validate(defs.static, node, \"static\", _static);\n validate(defs.method, node, \"method\", method);\n return node;\n}\nexport function objectTypeCallProperty(\n value: t.FlowType,\n): t.ObjectTypeCallProperty {\n const node: t.ObjectTypeCallProperty = {\n type: \"ObjectTypeCallProperty\",\n value,\n static: null,\n };\n const defs = NODE_FIELDS.ObjectTypeCallProperty;\n validate(defs.value, node, \"value\", value, 1);\n return node;\n}\nexport function objectTypeIndexer(\n id: t.Identifier | null | undefined = null,\n key: t.FlowType,\n value: t.FlowType,\n variance: t.Variance | null = null,\n): t.ObjectTypeIndexer {\n const node: t.ObjectTypeIndexer = {\n type: \"ObjectTypeIndexer\",\n id,\n key,\n value,\n variance,\n static: null,\n };\n const defs = NODE_FIELDS.ObjectTypeIndexer;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.key, node, \"key\", key, 1);\n validate(defs.value, node, \"value\", value, 1);\n validate(defs.variance, node, \"variance\", variance, 1);\n return node;\n}\nexport function objectTypeProperty(\n key: t.Identifier | t.StringLiteral,\n value: t.FlowType,\n variance: t.Variance | null = null,\n): t.ObjectTypeProperty {\n const node: t.ObjectTypeProperty = {\n type: \"ObjectTypeProperty\",\n key,\n value,\n variance,\n kind: null,\n method: null,\n optional: null,\n proto: null,\n static: null,\n };\n const defs = NODE_FIELDS.ObjectTypeProperty;\n validate(defs.key, node, \"key\", key, 1);\n validate(defs.value, node, \"value\", value, 1);\n validate(defs.variance, node, \"variance\", variance, 1);\n return node;\n}\nexport function objectTypeSpreadProperty(\n argument: t.FlowType,\n): t.ObjectTypeSpreadProperty {\n const node: t.ObjectTypeSpreadProperty = {\n type: \"ObjectTypeSpreadProperty\",\n argument,\n };\n const defs = NODE_FIELDS.ObjectTypeSpreadProperty;\n validate(defs.argument, node, \"argument\", argument, 1);\n return node;\n}\nexport function opaqueType(\n id: t.Identifier,\n typeParameters: t.TypeParameterDeclaration | null | undefined = null,\n supertype: t.FlowType | null | undefined = null,\n impltype: t.FlowType,\n): t.OpaqueType {\n const node: t.OpaqueType = {\n type: \"OpaqueType\",\n id,\n typeParameters,\n supertype,\n impltype,\n };\n const defs = NODE_FIELDS.OpaqueType;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n validate(defs.supertype, node, \"supertype\", supertype, 1);\n validate(defs.impltype, node, \"impltype\", impltype, 1);\n return node;\n}\nexport function qualifiedTypeIdentifier(\n id: t.Identifier,\n qualification: t.Identifier | t.QualifiedTypeIdentifier,\n): t.QualifiedTypeIdentifier {\n const node: t.QualifiedTypeIdentifier = {\n type: \"QualifiedTypeIdentifier\",\n id,\n qualification,\n };\n const defs = NODE_FIELDS.QualifiedTypeIdentifier;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.qualification, node, \"qualification\", qualification, 1);\n return node;\n}\nexport function stringLiteralTypeAnnotation(\n value: string,\n): t.StringLiteralTypeAnnotation {\n const node: t.StringLiteralTypeAnnotation = {\n type: \"StringLiteralTypeAnnotation\",\n value,\n };\n const defs = NODE_FIELDS.StringLiteralTypeAnnotation;\n validate(defs.value, node, \"value\", value);\n return node;\n}\nexport function stringTypeAnnotation(): t.StringTypeAnnotation {\n return {\n type: \"StringTypeAnnotation\",\n };\n}\nexport function symbolTypeAnnotation(): t.SymbolTypeAnnotation {\n return {\n type: \"SymbolTypeAnnotation\",\n };\n}\nexport function thisTypeAnnotation(): t.ThisTypeAnnotation {\n return {\n type: \"ThisTypeAnnotation\",\n };\n}\nexport function tupleTypeAnnotation(\n types: t.FlowType[],\n): t.TupleTypeAnnotation {\n const node: t.TupleTypeAnnotation = {\n type: \"TupleTypeAnnotation\",\n types,\n };\n const defs = NODE_FIELDS.TupleTypeAnnotation;\n validate(defs.types, node, \"types\", types, 1);\n return node;\n}\nexport function typeofTypeAnnotation(\n argument: t.FlowType,\n): t.TypeofTypeAnnotation {\n const node: t.TypeofTypeAnnotation = {\n type: \"TypeofTypeAnnotation\",\n argument,\n };\n const defs = NODE_FIELDS.TypeofTypeAnnotation;\n validate(defs.argument, node, \"argument\", argument, 1);\n return node;\n}\nexport function typeAlias(\n id: t.Identifier,\n typeParameters: t.TypeParameterDeclaration | null | undefined = null,\n right: t.FlowType,\n): t.TypeAlias {\n const node: t.TypeAlias = {\n type: \"TypeAlias\",\n id,\n typeParameters,\n right,\n };\n const defs = NODE_FIELDS.TypeAlias;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n validate(defs.right, node, \"right\", right, 1);\n return node;\n}\nexport function typeAnnotation(typeAnnotation: t.FlowType): t.TypeAnnotation {\n const node: t.TypeAnnotation = {\n type: \"TypeAnnotation\",\n typeAnnotation,\n };\n const defs = NODE_FIELDS.TypeAnnotation;\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n return node;\n}\nexport function typeCastExpression(\n expression: t.Expression,\n typeAnnotation: t.TypeAnnotation,\n): t.TypeCastExpression {\n const node: t.TypeCastExpression = {\n type: \"TypeCastExpression\",\n expression,\n typeAnnotation,\n };\n const defs = NODE_FIELDS.TypeCastExpression;\n validate(defs.expression, node, \"expression\", expression, 1);\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n return node;\n}\nexport function typeParameter(\n bound: t.TypeAnnotation | null = null,\n _default: t.FlowType | null = null,\n variance: t.Variance | null = null,\n): t.TypeParameter {\n const node: t.TypeParameter = {\n type: \"TypeParameter\",\n bound,\n default: _default,\n variance,\n name: null,\n };\n const defs = NODE_FIELDS.TypeParameter;\n validate(defs.bound, node, \"bound\", bound, 1);\n validate(defs.default, node, \"default\", _default, 1);\n validate(defs.variance, node, \"variance\", variance, 1);\n return node;\n}\nexport function typeParameterDeclaration(\n params: t.TypeParameter[],\n): t.TypeParameterDeclaration {\n const node: t.TypeParameterDeclaration = {\n type: \"TypeParameterDeclaration\",\n params,\n };\n const defs = NODE_FIELDS.TypeParameterDeclaration;\n validate(defs.params, node, \"params\", params, 1);\n return node;\n}\nexport function typeParameterInstantiation(\n params: t.FlowType[],\n): t.TypeParameterInstantiation {\n const node: t.TypeParameterInstantiation = {\n type: \"TypeParameterInstantiation\",\n params,\n };\n const defs = NODE_FIELDS.TypeParameterInstantiation;\n validate(defs.params, node, \"params\", params, 1);\n return node;\n}\nexport function unionTypeAnnotation(\n types: t.FlowType[],\n): t.UnionTypeAnnotation {\n const node: t.UnionTypeAnnotation = {\n type: \"UnionTypeAnnotation\",\n types,\n };\n const defs = NODE_FIELDS.UnionTypeAnnotation;\n validate(defs.types, node, \"types\", types, 1);\n return node;\n}\nexport function variance(kind: \"minus\" | \"plus\"): t.Variance {\n const node: t.Variance = {\n type: \"Variance\",\n kind,\n };\n const defs = NODE_FIELDS.Variance;\n validate(defs.kind, node, \"kind\", kind);\n return node;\n}\nexport function voidTypeAnnotation(): t.VoidTypeAnnotation {\n return {\n type: \"VoidTypeAnnotation\",\n };\n}\nexport function enumDeclaration(\n id: t.Identifier,\n body:\n | t.EnumBooleanBody\n | t.EnumNumberBody\n | t.EnumStringBody\n | t.EnumSymbolBody,\n): t.EnumDeclaration {\n const node: t.EnumDeclaration = {\n type: \"EnumDeclaration\",\n id,\n body,\n };\n const defs = NODE_FIELDS.EnumDeclaration;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.body, node, \"body\", body, 1);\n return node;\n}\nexport function enumBooleanBody(\n members: t.EnumBooleanMember[],\n): t.EnumBooleanBody {\n const node: t.EnumBooleanBody = {\n type: \"EnumBooleanBody\",\n members,\n explicitType: null,\n hasUnknownMembers: null,\n };\n const defs = NODE_FIELDS.EnumBooleanBody;\n validate(defs.members, node, \"members\", members, 1);\n return node;\n}\nexport function enumNumberBody(\n members: t.EnumNumberMember[],\n): t.EnumNumberBody {\n const node: t.EnumNumberBody = {\n type: \"EnumNumberBody\",\n members,\n explicitType: null,\n hasUnknownMembers: null,\n };\n const defs = NODE_FIELDS.EnumNumberBody;\n validate(defs.members, node, \"members\", members, 1);\n return node;\n}\nexport function enumStringBody(\n members: (t.EnumStringMember | t.EnumDefaultedMember)[],\n): t.EnumStringBody {\n const node: t.EnumStringBody = {\n type: \"EnumStringBody\",\n members,\n explicitType: null,\n hasUnknownMembers: null,\n };\n const defs = NODE_FIELDS.EnumStringBody;\n validate(defs.members, node, \"members\", members, 1);\n return node;\n}\nexport function enumSymbolBody(\n members: t.EnumDefaultedMember[],\n): t.EnumSymbolBody {\n const node: t.EnumSymbolBody = {\n type: \"EnumSymbolBody\",\n members,\n hasUnknownMembers: null,\n };\n const defs = NODE_FIELDS.EnumSymbolBody;\n validate(defs.members, node, \"members\", members, 1);\n return node;\n}\nexport function enumBooleanMember(id: t.Identifier): t.EnumBooleanMember {\n const node: t.EnumBooleanMember = {\n type: \"EnumBooleanMember\",\n id,\n init: null,\n };\n const defs = NODE_FIELDS.EnumBooleanMember;\n validate(defs.id, node, \"id\", id, 1);\n return node;\n}\nexport function enumNumberMember(\n id: t.Identifier,\n init: t.NumericLiteral,\n): t.EnumNumberMember {\n const node: t.EnumNumberMember = {\n type: \"EnumNumberMember\",\n id,\n init,\n };\n const defs = NODE_FIELDS.EnumNumberMember;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.init, node, \"init\", init, 1);\n return node;\n}\nexport function enumStringMember(\n id: t.Identifier,\n init: t.StringLiteral,\n): t.EnumStringMember {\n const node: t.EnumStringMember = {\n type: \"EnumStringMember\",\n id,\n init,\n };\n const defs = NODE_FIELDS.EnumStringMember;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.init, node, \"init\", init, 1);\n return node;\n}\nexport function enumDefaultedMember(id: t.Identifier): t.EnumDefaultedMember {\n const node: t.EnumDefaultedMember = {\n type: \"EnumDefaultedMember\",\n id,\n };\n const defs = NODE_FIELDS.EnumDefaultedMember;\n validate(defs.id, node, \"id\", id, 1);\n return node;\n}\nexport function indexedAccessType(\n objectType: t.FlowType,\n indexType: t.FlowType,\n): t.IndexedAccessType {\n const node: t.IndexedAccessType = {\n type: \"IndexedAccessType\",\n objectType,\n indexType,\n };\n const defs = NODE_FIELDS.IndexedAccessType;\n validate(defs.objectType, node, \"objectType\", objectType, 1);\n validate(defs.indexType, node, \"indexType\", indexType, 1);\n return node;\n}\nexport function optionalIndexedAccessType(\n objectType: t.FlowType,\n indexType: t.FlowType,\n): t.OptionalIndexedAccessType {\n const node: t.OptionalIndexedAccessType = {\n type: \"OptionalIndexedAccessType\",\n objectType,\n indexType,\n optional: null,\n };\n const defs = NODE_FIELDS.OptionalIndexedAccessType;\n validate(defs.objectType, node, \"objectType\", objectType, 1);\n validate(defs.indexType, node, \"indexType\", indexType, 1);\n return node;\n}\nexport function jsxAttribute(\n name: t.JSXIdentifier | t.JSXNamespacedName,\n value:\n | t.JSXElement\n | t.JSXFragment\n | t.StringLiteral\n | t.JSXExpressionContainer\n | null = null,\n): t.JSXAttribute {\n const node: t.JSXAttribute = {\n type: \"JSXAttribute\",\n name,\n value,\n };\n const defs = NODE_FIELDS.JSXAttribute;\n validate(defs.name, node, \"name\", name, 1);\n validate(defs.value, node, \"value\", value, 1);\n return node;\n}\nexport { jsxAttribute as jSXAttribute };\nexport function jsxClosingElement(\n name: t.JSXIdentifier | t.JSXMemberExpression | t.JSXNamespacedName,\n): t.JSXClosingElement {\n const node: t.JSXClosingElement = {\n type: \"JSXClosingElement\",\n name,\n };\n const defs = NODE_FIELDS.JSXClosingElement;\n validate(defs.name, node, \"name\", name, 1);\n return node;\n}\nexport { jsxClosingElement as jSXClosingElement };\nexport function jsxElement(\n openingElement: t.JSXOpeningElement,\n closingElement: t.JSXClosingElement | null | undefined = null,\n children: (\n | t.JSXText\n | t.JSXExpressionContainer\n | t.JSXSpreadChild\n | t.JSXElement\n | t.JSXFragment\n )[],\n selfClosing: boolean | null = null,\n): t.JSXElement {\n const node: t.JSXElement = {\n type: \"JSXElement\",\n openingElement,\n closingElement,\n children,\n selfClosing,\n };\n const defs = NODE_FIELDS.JSXElement;\n validate(defs.openingElement, node, \"openingElement\", openingElement, 1);\n validate(defs.closingElement, node, \"closingElement\", closingElement, 1);\n validate(defs.children, node, \"children\", children, 1);\n validate(defs.selfClosing, node, \"selfClosing\", selfClosing);\n return node;\n}\nexport { jsxElement as jSXElement };\nexport function jsxEmptyExpression(): t.JSXEmptyExpression {\n return {\n type: \"JSXEmptyExpression\",\n };\n}\nexport { jsxEmptyExpression as jSXEmptyExpression };\nexport function jsxExpressionContainer(\n expression: t.Expression | t.JSXEmptyExpression,\n): t.JSXExpressionContainer {\n const node: t.JSXExpressionContainer = {\n type: \"JSXExpressionContainer\",\n expression,\n };\n const defs = NODE_FIELDS.JSXExpressionContainer;\n validate(defs.expression, node, \"expression\", expression, 1);\n return node;\n}\nexport { jsxExpressionContainer as jSXExpressionContainer };\nexport function jsxSpreadChild(expression: t.Expression): t.JSXSpreadChild {\n const node: t.JSXSpreadChild = {\n type: \"JSXSpreadChild\",\n expression,\n };\n const defs = NODE_FIELDS.JSXSpreadChild;\n validate(defs.expression, node, \"expression\", expression, 1);\n return node;\n}\nexport { jsxSpreadChild as jSXSpreadChild };\nexport function jsxIdentifier(name: string): t.JSXIdentifier {\n const node: t.JSXIdentifier = {\n type: \"JSXIdentifier\",\n name,\n };\n const defs = NODE_FIELDS.JSXIdentifier;\n validate(defs.name, node, \"name\", name);\n return node;\n}\nexport { jsxIdentifier as jSXIdentifier };\nexport function jsxMemberExpression(\n object: t.JSXMemberExpression | t.JSXIdentifier,\n property: t.JSXIdentifier,\n): t.JSXMemberExpression {\n const node: t.JSXMemberExpression = {\n type: \"JSXMemberExpression\",\n object,\n property,\n };\n const defs = NODE_FIELDS.JSXMemberExpression;\n validate(defs.object, node, \"object\", object, 1);\n validate(defs.property, node, \"property\", property, 1);\n return node;\n}\nexport { jsxMemberExpression as jSXMemberExpression };\nexport function jsxNamespacedName(\n namespace: t.JSXIdentifier,\n name: t.JSXIdentifier,\n): t.JSXNamespacedName {\n const node: t.JSXNamespacedName = {\n type: \"JSXNamespacedName\",\n namespace,\n name,\n };\n const defs = NODE_FIELDS.JSXNamespacedName;\n validate(defs.namespace, node, \"namespace\", namespace, 1);\n validate(defs.name, node, \"name\", name, 1);\n return node;\n}\nexport { jsxNamespacedName as jSXNamespacedName };\nexport function jsxOpeningElement(\n name: t.JSXIdentifier | t.JSXMemberExpression | t.JSXNamespacedName,\n attributes: (t.JSXAttribute | t.JSXSpreadAttribute)[],\n selfClosing: boolean = false,\n): t.JSXOpeningElement {\n const node: t.JSXOpeningElement = {\n type: \"JSXOpeningElement\",\n name,\n attributes,\n selfClosing,\n };\n const defs = NODE_FIELDS.JSXOpeningElement;\n validate(defs.name, node, \"name\", name, 1);\n validate(defs.attributes, node, \"attributes\", attributes, 1);\n validate(defs.selfClosing, node, \"selfClosing\", selfClosing);\n return node;\n}\nexport { jsxOpeningElement as jSXOpeningElement };\nexport function jsxSpreadAttribute(\n argument: t.Expression,\n): t.JSXSpreadAttribute {\n const node: t.JSXSpreadAttribute = {\n type: \"JSXSpreadAttribute\",\n argument,\n };\n const defs = NODE_FIELDS.JSXSpreadAttribute;\n validate(defs.argument, node, \"argument\", argument, 1);\n return node;\n}\nexport { jsxSpreadAttribute as jSXSpreadAttribute };\nexport function jsxText(value: string): t.JSXText {\n const node: t.JSXText = {\n type: \"JSXText\",\n value,\n };\n const defs = NODE_FIELDS.JSXText;\n validate(defs.value, node, \"value\", value);\n return node;\n}\nexport { jsxText as jSXText };\nexport function jsxFragment(\n openingFragment: t.JSXOpeningFragment,\n closingFragment: t.JSXClosingFragment,\n children: (\n | t.JSXText\n | t.JSXExpressionContainer\n | t.JSXSpreadChild\n | t.JSXElement\n | t.JSXFragment\n )[],\n): t.JSXFragment {\n const node: t.JSXFragment = {\n type: \"JSXFragment\",\n openingFragment,\n closingFragment,\n children,\n };\n const defs = NODE_FIELDS.JSXFragment;\n validate(defs.openingFragment, node, \"openingFragment\", openingFragment, 1);\n validate(defs.closingFragment, node, \"closingFragment\", closingFragment, 1);\n validate(defs.children, node, \"children\", children, 1);\n return node;\n}\nexport { jsxFragment as jSXFragment };\nexport function jsxOpeningFragment(): t.JSXOpeningFragment {\n return {\n type: \"JSXOpeningFragment\",\n };\n}\nexport { jsxOpeningFragment as jSXOpeningFragment };\nexport function jsxClosingFragment(): t.JSXClosingFragment {\n return {\n type: \"JSXClosingFragment\",\n };\n}\nexport { jsxClosingFragment as jSXClosingFragment };\nexport function noop(): t.Noop {\n return {\n type: \"Noop\",\n };\n}\nexport function placeholder(\n expectedNode:\n | \"Identifier\"\n | \"StringLiteral\"\n | \"Expression\"\n | \"Statement\"\n | \"Declaration\"\n | \"BlockStatement\"\n | \"ClassBody\"\n | \"Pattern\",\n name: t.Identifier,\n): t.Placeholder {\n const node: t.Placeholder = {\n type: \"Placeholder\",\n expectedNode,\n name,\n };\n const defs = NODE_FIELDS.Placeholder;\n validate(defs.expectedNode, node, \"expectedNode\", expectedNode);\n validate(defs.name, node, \"name\", name, 1);\n return node;\n}\nexport function v8IntrinsicIdentifier(name: string): t.V8IntrinsicIdentifier {\n const node: t.V8IntrinsicIdentifier = {\n type: \"V8IntrinsicIdentifier\",\n name,\n };\n const defs = NODE_FIELDS.V8IntrinsicIdentifier;\n validate(defs.name, node, \"name\", name);\n return node;\n}\nexport function argumentPlaceholder(): t.ArgumentPlaceholder {\n return {\n type: \"ArgumentPlaceholder\",\n };\n}\nexport function bindExpression(\n object: t.Expression,\n callee: t.Expression,\n): t.BindExpression {\n const node: t.BindExpression = {\n type: \"BindExpression\",\n object,\n callee,\n };\n const defs = NODE_FIELDS.BindExpression;\n validate(defs.object, node, \"object\", object, 1);\n validate(defs.callee, node, \"callee\", callee, 1);\n return node;\n}\nexport function decorator(expression: t.Expression): t.Decorator {\n const node: t.Decorator = {\n type: \"Decorator\",\n expression,\n };\n const defs = NODE_FIELDS.Decorator;\n validate(defs.expression, node, \"expression\", expression, 1);\n return node;\n}\nexport function doExpression(\n body: t.BlockStatement,\n async: boolean = false,\n): t.DoExpression {\n const node: t.DoExpression = {\n type: \"DoExpression\",\n body,\n async,\n };\n const defs = NODE_FIELDS.DoExpression;\n validate(defs.body, node, \"body\", body, 1);\n validate(defs.async, node, \"async\", async);\n return node;\n}\nexport function exportDefaultSpecifier(\n exported: t.Identifier,\n): t.ExportDefaultSpecifier {\n const node: t.ExportDefaultSpecifier = {\n type: \"ExportDefaultSpecifier\",\n exported,\n };\n const defs = NODE_FIELDS.ExportDefaultSpecifier;\n validate(defs.exported, node, \"exported\", exported, 1);\n return node;\n}\nexport function recordExpression(\n properties: (t.ObjectProperty | t.SpreadElement)[],\n): t.RecordExpression {\n const node: t.RecordExpression = {\n type: \"RecordExpression\",\n properties,\n };\n const defs = NODE_FIELDS.RecordExpression;\n validate(defs.properties, node, \"properties\", properties, 1);\n return node;\n}\nexport function tupleExpression(\n elements: (t.Expression | t.SpreadElement)[] = [],\n): t.TupleExpression {\n const node: t.TupleExpression = {\n type: \"TupleExpression\",\n elements,\n };\n const defs = NODE_FIELDS.TupleExpression;\n validate(defs.elements, node, \"elements\", elements, 1);\n return node;\n}\nexport function decimalLiteral(value: string): t.DecimalLiteral {\n const node: t.DecimalLiteral = {\n type: \"DecimalLiteral\",\n value,\n };\n const defs = NODE_FIELDS.DecimalLiteral;\n validate(defs.value, node, \"value\", value);\n return node;\n}\nexport function moduleExpression(body: t.Program): t.ModuleExpression {\n const node: t.ModuleExpression = {\n type: \"ModuleExpression\",\n body,\n };\n const defs = NODE_FIELDS.ModuleExpression;\n validate(defs.body, node, \"body\", body, 1);\n return node;\n}\nexport function topicReference(): t.TopicReference {\n return {\n type: \"TopicReference\",\n };\n}\nexport function pipelineTopicExpression(\n expression: t.Expression,\n): t.PipelineTopicExpression {\n const node: t.PipelineTopicExpression = {\n type: \"PipelineTopicExpression\",\n expression,\n };\n const defs = NODE_FIELDS.PipelineTopicExpression;\n validate(defs.expression, node, \"expression\", expression, 1);\n return node;\n}\nexport function pipelineBareFunction(\n callee: t.Expression,\n): t.PipelineBareFunction {\n const node: t.PipelineBareFunction = {\n type: \"PipelineBareFunction\",\n callee,\n };\n const defs = NODE_FIELDS.PipelineBareFunction;\n validate(defs.callee, node, \"callee\", callee, 1);\n return node;\n}\nexport function pipelinePrimaryTopicReference(): t.PipelinePrimaryTopicReference {\n return {\n type: \"PipelinePrimaryTopicReference\",\n };\n}\nexport function voidPattern(): t.VoidPattern {\n return {\n type: \"VoidPattern\",\n };\n}\nexport function tsParameterProperty(\n parameter: t.Identifier | t.AssignmentPattern,\n): t.TSParameterProperty {\n const node: t.TSParameterProperty = {\n type: \"TSParameterProperty\",\n parameter,\n };\n const defs = NODE_FIELDS.TSParameterProperty;\n validate(defs.parameter, node, \"parameter\", parameter, 1);\n return node;\n}\nexport { tsParameterProperty as tSParameterProperty };\nexport function tsDeclareFunction(\n id: t.Identifier | null | undefined = null,\n typeParameters:\n | t.TSTypeParameterDeclaration\n | t.Noop\n | null\n | undefined = null,\n params: t.FunctionParameter[],\n returnType: t.TSTypeAnnotation | t.Noop | null = null,\n): t.TSDeclareFunction {\n const node: t.TSDeclareFunction = {\n type: \"TSDeclareFunction\",\n id,\n typeParameters,\n params,\n returnType,\n };\n const defs = NODE_FIELDS.TSDeclareFunction;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n validate(defs.params, node, \"params\", params, 1);\n validate(defs.returnType, node, \"returnType\", returnType, 1);\n return node;\n}\nexport { tsDeclareFunction as tSDeclareFunction };\nexport function tsDeclareMethod(\n decorators: t.Decorator[] | null | undefined = null,\n key:\n | t.Identifier\n | t.StringLiteral\n | t.NumericLiteral\n | t.BigIntLiteral\n | t.Expression,\n typeParameters:\n | t.TSTypeParameterDeclaration\n | t.Noop\n | null\n | undefined = null,\n params: (t.FunctionParameter | t.TSParameterProperty)[],\n returnType: t.TSTypeAnnotation | t.Noop | null = null,\n): t.TSDeclareMethod {\n const node: t.TSDeclareMethod = {\n type: \"TSDeclareMethod\",\n decorators,\n key,\n typeParameters,\n params,\n returnType,\n };\n const defs = NODE_FIELDS.TSDeclareMethod;\n validate(defs.decorators, node, \"decorators\", decorators, 1);\n validate(defs.key, node, \"key\", key, 1);\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n validate(defs.params, node, \"params\", params, 1);\n validate(defs.returnType, node, \"returnType\", returnType, 1);\n return node;\n}\nexport { tsDeclareMethod as tSDeclareMethod };\nexport function tsQualifiedName(\n left: t.TSEntityName,\n right: t.Identifier,\n): t.TSQualifiedName {\n const node: t.TSQualifiedName = {\n type: \"TSQualifiedName\",\n left,\n right,\n };\n const defs = NODE_FIELDS.TSQualifiedName;\n validate(defs.left, node, \"left\", left, 1);\n validate(defs.right, node, \"right\", right, 1);\n return node;\n}\nexport { tsQualifiedName as tSQualifiedName };\nexport function tsCallSignatureDeclaration(\n typeParameters: t.TSTypeParameterDeclaration | null | undefined = null,\n parameters: (\n | t.ArrayPattern\n | t.Identifier\n | t.ObjectPattern\n | t.RestElement\n )[],\n typeAnnotation: t.TSTypeAnnotation | null = null,\n): t.TSCallSignatureDeclaration {\n const node: t.TSCallSignatureDeclaration = {\n type: \"TSCallSignatureDeclaration\",\n typeParameters,\n parameters,\n typeAnnotation,\n };\n const defs = NODE_FIELDS.TSCallSignatureDeclaration;\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n validate(defs.parameters, node, \"parameters\", parameters, 1);\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n return node;\n}\nexport { tsCallSignatureDeclaration as tSCallSignatureDeclaration };\nexport function tsConstructSignatureDeclaration(\n typeParameters: t.TSTypeParameterDeclaration | null | undefined = null,\n parameters: (\n | t.ArrayPattern\n | t.Identifier\n | t.ObjectPattern\n | t.RestElement\n )[],\n typeAnnotation: t.TSTypeAnnotation | null = null,\n): t.TSConstructSignatureDeclaration {\n const node: t.TSConstructSignatureDeclaration = {\n type: \"TSConstructSignatureDeclaration\",\n typeParameters,\n parameters,\n typeAnnotation,\n };\n const defs = NODE_FIELDS.TSConstructSignatureDeclaration;\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n validate(defs.parameters, node, \"parameters\", parameters, 1);\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n return node;\n}\nexport { tsConstructSignatureDeclaration as tSConstructSignatureDeclaration };\nexport function tsPropertySignature(\n key: t.Expression,\n typeAnnotation: t.TSTypeAnnotation | null = null,\n): t.TSPropertySignature {\n const node: t.TSPropertySignature = {\n type: \"TSPropertySignature\",\n key,\n typeAnnotation,\n };\n const defs = NODE_FIELDS.TSPropertySignature;\n validate(defs.key, node, \"key\", key, 1);\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n return node;\n}\nexport { tsPropertySignature as tSPropertySignature };\nexport function tsMethodSignature(\n key: t.Expression,\n typeParameters: t.TSTypeParameterDeclaration | null | undefined = null,\n parameters: (\n | t.ArrayPattern\n | t.Identifier\n | t.ObjectPattern\n | t.RestElement\n )[],\n typeAnnotation: t.TSTypeAnnotation | null = null,\n): t.TSMethodSignature {\n const node: t.TSMethodSignature = {\n type: \"TSMethodSignature\",\n key,\n typeParameters,\n parameters,\n typeAnnotation,\n kind: null,\n };\n const defs = NODE_FIELDS.TSMethodSignature;\n validate(defs.key, node, \"key\", key, 1);\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n validate(defs.parameters, node, \"parameters\", parameters, 1);\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n return node;\n}\nexport { tsMethodSignature as tSMethodSignature };\nexport function tsIndexSignature(\n parameters: t.Identifier[],\n typeAnnotation: t.TSTypeAnnotation | null = null,\n): t.TSIndexSignature {\n const node: t.TSIndexSignature = {\n type: \"TSIndexSignature\",\n parameters,\n typeAnnotation,\n };\n const defs = NODE_FIELDS.TSIndexSignature;\n validate(defs.parameters, node, \"parameters\", parameters, 1);\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n return node;\n}\nexport { tsIndexSignature as tSIndexSignature };\nexport function tsAnyKeyword(): t.TSAnyKeyword {\n return {\n type: \"TSAnyKeyword\",\n };\n}\nexport { tsAnyKeyword as tSAnyKeyword };\nexport function tsBooleanKeyword(): t.TSBooleanKeyword {\n return {\n type: \"TSBooleanKeyword\",\n };\n}\nexport { tsBooleanKeyword as tSBooleanKeyword };\nexport function tsBigIntKeyword(): t.TSBigIntKeyword {\n return {\n type: \"TSBigIntKeyword\",\n };\n}\nexport { tsBigIntKeyword as tSBigIntKeyword };\nexport function tsIntrinsicKeyword(): t.TSIntrinsicKeyword {\n return {\n type: \"TSIntrinsicKeyword\",\n };\n}\nexport { tsIntrinsicKeyword as tSIntrinsicKeyword };\nexport function tsNeverKeyword(): t.TSNeverKeyword {\n return {\n type: \"TSNeverKeyword\",\n };\n}\nexport { tsNeverKeyword as tSNeverKeyword };\nexport function tsNullKeyword(): t.TSNullKeyword {\n return {\n type: \"TSNullKeyword\",\n };\n}\nexport { tsNullKeyword as tSNullKeyword };\nexport function tsNumberKeyword(): t.TSNumberKeyword {\n return {\n type: \"TSNumberKeyword\",\n };\n}\nexport { tsNumberKeyword as tSNumberKeyword };\nexport function tsObjectKeyword(): t.TSObjectKeyword {\n return {\n type: \"TSObjectKeyword\",\n };\n}\nexport { tsObjectKeyword as tSObjectKeyword };\nexport function tsStringKeyword(): t.TSStringKeyword {\n return {\n type: \"TSStringKeyword\",\n };\n}\nexport { tsStringKeyword as tSStringKeyword };\nexport function tsSymbolKeyword(): t.TSSymbolKeyword {\n return {\n type: \"TSSymbolKeyword\",\n };\n}\nexport { tsSymbolKeyword as tSSymbolKeyword };\nexport function tsUndefinedKeyword(): t.TSUndefinedKeyword {\n return {\n type: \"TSUndefinedKeyword\",\n };\n}\nexport { tsUndefinedKeyword as tSUndefinedKeyword };\nexport function tsUnknownKeyword(): t.TSUnknownKeyword {\n return {\n type: \"TSUnknownKeyword\",\n };\n}\nexport { tsUnknownKeyword as tSUnknownKeyword };\nexport function tsVoidKeyword(): t.TSVoidKeyword {\n return {\n type: \"TSVoidKeyword\",\n };\n}\nexport { tsVoidKeyword as tSVoidKeyword };\nexport function tsThisType(): t.TSThisType {\n return {\n type: \"TSThisType\",\n };\n}\nexport { tsThisType as tSThisType };\nexport function tsFunctionType(\n typeParameters: t.TSTypeParameterDeclaration | null | undefined = null,\n parameters: (\n | t.ArrayPattern\n | t.Identifier\n | t.ObjectPattern\n | t.RestElement\n )[],\n typeAnnotation: t.TSTypeAnnotation | null = null,\n): t.TSFunctionType {\n const node: t.TSFunctionType = {\n type: \"TSFunctionType\",\n typeParameters,\n parameters,\n typeAnnotation,\n };\n const defs = NODE_FIELDS.TSFunctionType;\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n validate(defs.parameters, node, \"parameters\", parameters, 1);\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n return node;\n}\nexport { tsFunctionType as tSFunctionType };\nexport function tsConstructorType(\n typeParameters: t.TSTypeParameterDeclaration | null | undefined = null,\n parameters: (\n | t.ArrayPattern\n | t.Identifier\n | t.ObjectPattern\n | t.RestElement\n )[],\n typeAnnotation: t.TSTypeAnnotation | null = null,\n): t.TSConstructorType {\n const node: t.TSConstructorType = {\n type: \"TSConstructorType\",\n typeParameters,\n parameters,\n typeAnnotation,\n };\n const defs = NODE_FIELDS.TSConstructorType;\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n validate(defs.parameters, node, \"parameters\", parameters, 1);\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n return node;\n}\nexport { tsConstructorType as tSConstructorType };\nexport function tsTypeReference(\n typeName: t.TSEntityName,\n typeParameters: t.TSTypeParameterInstantiation | null = null,\n): t.TSTypeReference {\n const node: t.TSTypeReference = {\n type: \"TSTypeReference\",\n typeName,\n typeParameters,\n };\n const defs = NODE_FIELDS.TSTypeReference;\n validate(defs.typeName, node, \"typeName\", typeName, 1);\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n return node;\n}\nexport { tsTypeReference as tSTypeReference };\nexport function tsTypePredicate(\n parameterName: t.Identifier | t.TSThisType,\n typeAnnotation: t.TSTypeAnnotation | null = null,\n asserts: boolean | null = null,\n): t.TSTypePredicate {\n const node: t.TSTypePredicate = {\n type: \"TSTypePredicate\",\n parameterName,\n typeAnnotation,\n asserts,\n };\n const defs = NODE_FIELDS.TSTypePredicate;\n validate(defs.parameterName, node, \"parameterName\", parameterName, 1);\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n validate(defs.asserts, node, \"asserts\", asserts);\n return node;\n}\nexport { tsTypePredicate as tSTypePredicate };\nexport function tsTypeQuery(\n exprName: t.TSEntityName | t.TSImportType,\n typeParameters: t.TSTypeParameterInstantiation | null = null,\n): t.TSTypeQuery {\n const node: t.TSTypeQuery = {\n type: \"TSTypeQuery\",\n exprName,\n typeParameters,\n };\n const defs = NODE_FIELDS.TSTypeQuery;\n validate(defs.exprName, node, \"exprName\", exprName, 1);\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n return node;\n}\nexport { tsTypeQuery as tSTypeQuery };\nexport function tsTypeLiteral(members: t.TSTypeElement[]): t.TSTypeLiteral {\n const node: t.TSTypeLiteral = {\n type: \"TSTypeLiteral\",\n members,\n };\n const defs = NODE_FIELDS.TSTypeLiteral;\n validate(defs.members, node, \"members\", members, 1);\n return node;\n}\nexport { tsTypeLiteral as tSTypeLiteral };\nexport function tsArrayType(elementType: t.TSType): t.TSArrayType {\n const node: t.TSArrayType = {\n type: \"TSArrayType\",\n elementType,\n };\n const defs = NODE_FIELDS.TSArrayType;\n validate(defs.elementType, node, \"elementType\", elementType, 1);\n return node;\n}\nexport { tsArrayType as tSArrayType };\nexport function tsTupleType(\n elementTypes: (t.TSType | t.TSNamedTupleMember)[],\n): t.TSTupleType {\n const node: t.TSTupleType = {\n type: \"TSTupleType\",\n elementTypes,\n };\n const defs = NODE_FIELDS.TSTupleType;\n validate(defs.elementTypes, node, \"elementTypes\", elementTypes, 1);\n return node;\n}\nexport { tsTupleType as tSTupleType };\nexport function tsOptionalType(typeAnnotation: t.TSType): t.TSOptionalType {\n const node: t.TSOptionalType = {\n type: \"TSOptionalType\",\n typeAnnotation,\n };\n const defs = NODE_FIELDS.TSOptionalType;\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n return node;\n}\nexport { tsOptionalType as tSOptionalType };\nexport function tsRestType(typeAnnotation: t.TSType): t.TSRestType {\n const node: t.TSRestType = {\n type: \"TSRestType\",\n typeAnnotation,\n };\n const defs = NODE_FIELDS.TSRestType;\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n return node;\n}\nexport { tsRestType as tSRestType };\nexport function tsNamedTupleMember(\n label: t.Identifier,\n elementType: t.TSType,\n optional: boolean = false,\n): t.TSNamedTupleMember {\n const node: t.TSNamedTupleMember = {\n type: \"TSNamedTupleMember\",\n label,\n elementType,\n optional,\n };\n const defs = NODE_FIELDS.TSNamedTupleMember;\n validate(defs.label, node, \"label\", label, 1);\n validate(defs.elementType, node, \"elementType\", elementType, 1);\n validate(defs.optional, node, \"optional\", optional);\n return node;\n}\nexport { tsNamedTupleMember as tSNamedTupleMember };\nexport function tsUnionType(types: t.TSType[]): t.TSUnionType {\n const node: t.TSUnionType = {\n type: \"TSUnionType\",\n types,\n };\n const defs = NODE_FIELDS.TSUnionType;\n validate(defs.types, node, \"types\", types, 1);\n return node;\n}\nexport { tsUnionType as tSUnionType };\nexport function tsIntersectionType(types: t.TSType[]): t.TSIntersectionType {\n const node: t.TSIntersectionType = {\n type: \"TSIntersectionType\",\n types,\n };\n const defs = NODE_FIELDS.TSIntersectionType;\n validate(defs.types, node, \"types\", types, 1);\n return node;\n}\nexport { tsIntersectionType as tSIntersectionType };\nexport function tsConditionalType(\n checkType: t.TSType,\n extendsType: t.TSType,\n trueType: t.TSType,\n falseType: t.TSType,\n): t.TSConditionalType {\n const node: t.TSConditionalType = {\n type: \"TSConditionalType\",\n checkType,\n extendsType,\n trueType,\n falseType,\n };\n const defs = NODE_FIELDS.TSConditionalType;\n validate(defs.checkType, node, \"checkType\", checkType, 1);\n validate(defs.extendsType, node, \"extendsType\", extendsType, 1);\n validate(defs.trueType, node, \"trueType\", trueType, 1);\n validate(defs.falseType, node, \"falseType\", falseType, 1);\n return node;\n}\nexport { tsConditionalType as tSConditionalType };\nexport function tsInferType(typeParameter: t.TSTypeParameter): t.TSInferType {\n const node: t.TSInferType = {\n type: \"TSInferType\",\n typeParameter,\n };\n const defs = NODE_FIELDS.TSInferType;\n validate(defs.typeParameter, node, \"typeParameter\", typeParameter, 1);\n return node;\n}\nexport { tsInferType as tSInferType };\nexport function tsParenthesizedType(\n typeAnnotation: t.TSType,\n): t.TSParenthesizedType {\n const node: t.TSParenthesizedType = {\n type: \"TSParenthesizedType\",\n typeAnnotation,\n };\n const defs = NODE_FIELDS.TSParenthesizedType;\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n return node;\n}\nexport { tsParenthesizedType as tSParenthesizedType };\nexport function tsTypeOperator(\n typeAnnotation: t.TSType,\n operator: string = \"keyof\",\n): t.TSTypeOperator {\n const node: t.TSTypeOperator = {\n type: \"TSTypeOperator\",\n typeAnnotation,\n operator,\n };\n const defs = NODE_FIELDS.TSTypeOperator;\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n validate(defs.operator, node, \"operator\", operator);\n return node;\n}\nexport { tsTypeOperator as tSTypeOperator };\nexport function tsIndexedAccessType(\n objectType: t.TSType,\n indexType: t.TSType,\n): t.TSIndexedAccessType {\n const node: t.TSIndexedAccessType = {\n type: \"TSIndexedAccessType\",\n objectType,\n indexType,\n };\n const defs = NODE_FIELDS.TSIndexedAccessType;\n validate(defs.objectType, node, \"objectType\", objectType, 1);\n validate(defs.indexType, node, \"indexType\", indexType, 1);\n return node;\n}\nexport { tsIndexedAccessType as tSIndexedAccessType };\nexport function tsMappedType(\n typeParameter: t.TSTypeParameter,\n typeAnnotation: t.TSType | null = null,\n nameType: t.TSType | null = null,\n): t.TSMappedType {\n const node: t.TSMappedType = {\n type: \"TSMappedType\",\n typeParameter,\n typeAnnotation,\n nameType,\n };\n const defs = NODE_FIELDS.TSMappedType;\n validate(defs.typeParameter, node, \"typeParameter\", typeParameter, 1);\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n validate(defs.nameType, node, \"nameType\", nameType, 1);\n return node;\n}\nexport { tsMappedType as tSMappedType };\nexport function tsTemplateLiteralType(\n quasis: t.TemplateElement[],\n types: t.TSType[],\n): t.TSTemplateLiteralType {\n const node: t.TSTemplateLiteralType = {\n type: \"TSTemplateLiteralType\",\n quasis,\n types,\n };\n const defs = NODE_FIELDS.TSTemplateLiteralType;\n validate(defs.quasis, node, \"quasis\", quasis, 1);\n validate(defs.types, node, \"types\", types, 1);\n return node;\n}\nexport { tsTemplateLiteralType as tSTemplateLiteralType };\nexport function tsLiteralType(\n literal:\n | t.NumericLiteral\n | t.StringLiteral\n | t.BooleanLiteral\n | t.BigIntLiteral\n | t.TemplateLiteral\n | t.UnaryExpression,\n): t.TSLiteralType {\n const node: t.TSLiteralType = {\n type: \"TSLiteralType\",\n literal,\n };\n const defs = NODE_FIELDS.TSLiteralType;\n validate(defs.literal, node, \"literal\", literal, 1);\n return node;\n}\nexport { tsLiteralType as tSLiteralType };\nexport function tsExpressionWithTypeArguments(\n expression: t.TSEntityName,\n typeParameters: t.TSTypeParameterInstantiation | null = null,\n): t.TSExpressionWithTypeArguments {\n const node: t.TSExpressionWithTypeArguments = {\n type: \"TSExpressionWithTypeArguments\",\n expression,\n typeParameters,\n };\n const defs = NODE_FIELDS.TSExpressionWithTypeArguments;\n validate(defs.expression, node, \"expression\", expression, 1);\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n return node;\n}\nexport { tsExpressionWithTypeArguments as tSExpressionWithTypeArguments };\nexport function tsInterfaceDeclaration(\n id: t.Identifier,\n typeParameters: t.TSTypeParameterDeclaration | null | undefined = null,\n _extends: t.TSExpressionWithTypeArguments[] | null | undefined = null,\n body: t.TSInterfaceBody,\n): t.TSInterfaceDeclaration {\n const node: t.TSInterfaceDeclaration = {\n type: \"TSInterfaceDeclaration\",\n id,\n typeParameters,\n extends: _extends,\n body,\n };\n const defs = NODE_FIELDS.TSInterfaceDeclaration;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n validate(defs.extends, node, \"extends\", _extends, 1);\n validate(defs.body, node, \"body\", body, 1);\n return node;\n}\nexport { tsInterfaceDeclaration as tSInterfaceDeclaration };\nexport function tsInterfaceBody(body: t.TSTypeElement[]): t.TSInterfaceBody {\n const node: t.TSInterfaceBody = {\n type: \"TSInterfaceBody\",\n body,\n };\n const defs = NODE_FIELDS.TSInterfaceBody;\n validate(defs.body, node, \"body\", body, 1);\n return node;\n}\nexport { tsInterfaceBody as tSInterfaceBody };\nexport function tsTypeAliasDeclaration(\n id: t.Identifier,\n typeParameters: t.TSTypeParameterDeclaration | null | undefined = null,\n typeAnnotation: t.TSType,\n): t.TSTypeAliasDeclaration {\n const node: t.TSTypeAliasDeclaration = {\n type: \"TSTypeAliasDeclaration\",\n id,\n typeParameters,\n typeAnnotation,\n };\n const defs = NODE_FIELDS.TSTypeAliasDeclaration;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n return node;\n}\nexport { tsTypeAliasDeclaration as tSTypeAliasDeclaration };\nexport function tsInstantiationExpression(\n expression: t.Expression,\n typeParameters: t.TSTypeParameterInstantiation | null = null,\n): t.TSInstantiationExpression {\n const node: t.TSInstantiationExpression = {\n type: \"TSInstantiationExpression\",\n expression,\n typeParameters,\n };\n const defs = NODE_FIELDS.TSInstantiationExpression;\n validate(defs.expression, node, \"expression\", expression, 1);\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n return node;\n}\nexport { tsInstantiationExpression as tSInstantiationExpression };\nexport function tsAsExpression(\n expression: t.Expression,\n typeAnnotation: t.TSType,\n): t.TSAsExpression {\n const node: t.TSAsExpression = {\n type: \"TSAsExpression\",\n expression,\n typeAnnotation,\n };\n const defs = NODE_FIELDS.TSAsExpression;\n validate(defs.expression, node, \"expression\", expression, 1);\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n return node;\n}\nexport { tsAsExpression as tSAsExpression };\nexport function tsSatisfiesExpression(\n expression: t.Expression,\n typeAnnotation: t.TSType,\n): t.TSSatisfiesExpression {\n const node: t.TSSatisfiesExpression = {\n type: \"TSSatisfiesExpression\",\n expression,\n typeAnnotation,\n };\n const defs = NODE_FIELDS.TSSatisfiesExpression;\n validate(defs.expression, node, \"expression\", expression, 1);\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n return node;\n}\nexport { tsSatisfiesExpression as tSSatisfiesExpression };\nexport function tsTypeAssertion(\n typeAnnotation: t.TSType,\n expression: t.Expression,\n): t.TSTypeAssertion {\n const node: t.TSTypeAssertion = {\n type: \"TSTypeAssertion\",\n typeAnnotation,\n expression,\n };\n const defs = NODE_FIELDS.TSTypeAssertion;\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n validate(defs.expression, node, \"expression\", expression, 1);\n return node;\n}\nexport { tsTypeAssertion as tSTypeAssertion };\nexport function tsEnumBody(members: t.TSEnumMember[]): t.TSEnumBody {\n const node: t.TSEnumBody = {\n type: \"TSEnumBody\",\n members,\n };\n const defs = NODE_FIELDS.TSEnumBody;\n validate(defs.members, node, \"members\", members, 1);\n return node;\n}\nexport { tsEnumBody as tSEnumBody };\nexport function tsEnumDeclaration(\n id: t.Identifier,\n members: t.TSEnumMember[],\n): t.TSEnumDeclaration {\n const node: t.TSEnumDeclaration = {\n type: \"TSEnumDeclaration\",\n id,\n members,\n };\n const defs = NODE_FIELDS.TSEnumDeclaration;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.members, node, \"members\", members, 1);\n return node;\n}\nexport { tsEnumDeclaration as tSEnumDeclaration };\nexport function tsEnumMember(\n id: t.Identifier | t.StringLiteral,\n initializer: t.Expression | null = null,\n): t.TSEnumMember {\n const node: t.TSEnumMember = {\n type: \"TSEnumMember\",\n id,\n initializer,\n };\n const defs = NODE_FIELDS.TSEnumMember;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.initializer, node, \"initializer\", initializer, 1);\n return node;\n}\nexport { tsEnumMember as tSEnumMember };\nexport function tsModuleDeclaration(\n id: t.Identifier | t.StringLiteral,\n body: t.TSModuleBlock | t.TSModuleDeclaration,\n): t.TSModuleDeclaration {\n const node: t.TSModuleDeclaration = {\n type: \"TSModuleDeclaration\",\n id,\n body,\n kind: null,\n };\n const defs = NODE_FIELDS.TSModuleDeclaration;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.body, node, \"body\", body, 1);\n return node;\n}\nexport { tsModuleDeclaration as tSModuleDeclaration };\nexport function tsModuleBlock(body: t.Statement[]): t.TSModuleBlock {\n const node: t.TSModuleBlock = {\n type: \"TSModuleBlock\",\n body,\n };\n const defs = NODE_FIELDS.TSModuleBlock;\n validate(defs.body, node, \"body\", body, 1);\n return node;\n}\nexport { tsModuleBlock as tSModuleBlock };\nexport function tsImportType(\n argument: t.StringLiteral,\n qualifier: t.TSEntityName | null = null,\n typeParameters: t.TSTypeParameterInstantiation | null = null,\n): t.TSImportType {\n const node: t.TSImportType = {\n type: \"TSImportType\",\n argument,\n qualifier,\n typeParameters,\n };\n const defs = NODE_FIELDS.TSImportType;\n validate(defs.argument, node, \"argument\", argument, 1);\n validate(defs.qualifier, node, \"qualifier\", qualifier, 1);\n validate(defs.typeParameters, node, \"typeParameters\", typeParameters, 1);\n return node;\n}\nexport { tsImportType as tSImportType };\nexport function tsImportEqualsDeclaration(\n id: t.Identifier,\n moduleReference: t.TSEntityName | t.TSExternalModuleReference,\n): t.TSImportEqualsDeclaration {\n const node: t.TSImportEqualsDeclaration = {\n type: \"TSImportEqualsDeclaration\",\n id,\n moduleReference,\n isExport: null,\n };\n const defs = NODE_FIELDS.TSImportEqualsDeclaration;\n validate(defs.id, node, \"id\", id, 1);\n validate(defs.moduleReference, node, \"moduleReference\", moduleReference, 1);\n return node;\n}\nexport { tsImportEqualsDeclaration as tSImportEqualsDeclaration };\nexport function tsExternalModuleReference(\n expression: t.StringLiteral,\n): t.TSExternalModuleReference {\n const node: t.TSExternalModuleReference = {\n type: \"TSExternalModuleReference\",\n expression,\n };\n const defs = NODE_FIELDS.TSExternalModuleReference;\n validate(defs.expression, node, \"expression\", expression, 1);\n return node;\n}\nexport { tsExternalModuleReference as tSExternalModuleReference };\nexport function tsNonNullExpression(\n expression: t.Expression,\n): t.TSNonNullExpression {\n const node: t.TSNonNullExpression = {\n type: \"TSNonNullExpression\",\n expression,\n };\n const defs = NODE_FIELDS.TSNonNullExpression;\n validate(defs.expression, node, \"expression\", expression, 1);\n return node;\n}\nexport { tsNonNullExpression as tSNonNullExpression };\nexport function tsExportAssignment(\n expression: t.Expression,\n): t.TSExportAssignment {\n const node: t.TSExportAssignment = {\n type: \"TSExportAssignment\",\n expression,\n };\n const defs = NODE_FIELDS.TSExportAssignment;\n validate(defs.expression, node, \"expression\", expression, 1);\n return node;\n}\nexport { tsExportAssignment as tSExportAssignment };\nexport function tsNamespaceExportDeclaration(\n id: t.Identifier,\n): t.TSNamespaceExportDeclaration {\n const node: t.TSNamespaceExportDeclaration = {\n type: \"TSNamespaceExportDeclaration\",\n id,\n };\n const defs = NODE_FIELDS.TSNamespaceExportDeclaration;\n validate(defs.id, node, \"id\", id, 1);\n return node;\n}\nexport { tsNamespaceExportDeclaration as tSNamespaceExportDeclaration };\nexport function tsTypeAnnotation(typeAnnotation: t.TSType): t.TSTypeAnnotation {\n const node: t.TSTypeAnnotation = {\n type: \"TSTypeAnnotation\",\n typeAnnotation,\n };\n const defs = NODE_FIELDS.TSTypeAnnotation;\n validate(defs.typeAnnotation, node, \"typeAnnotation\", typeAnnotation, 1);\n return node;\n}\nexport { tsTypeAnnotation as tSTypeAnnotation };\nexport function tsTypeParameterInstantiation(\n params: t.TSType[],\n): t.TSTypeParameterInstantiation {\n const node: t.TSTypeParameterInstantiation = {\n type: \"TSTypeParameterInstantiation\",\n params,\n };\n const defs = NODE_FIELDS.TSTypeParameterInstantiation;\n validate(defs.params, node, \"params\", params, 1);\n return node;\n}\nexport { tsTypeParameterInstantiation as tSTypeParameterInstantiation };\nexport function tsTypeParameterDeclaration(\n params: t.TSTypeParameter[],\n): t.TSTypeParameterDeclaration {\n const node: t.TSTypeParameterDeclaration = {\n type: \"TSTypeParameterDeclaration\",\n params,\n };\n const defs = NODE_FIELDS.TSTypeParameterDeclaration;\n validate(defs.params, node, \"params\", params, 1);\n return node;\n}\nexport { tsTypeParameterDeclaration as tSTypeParameterDeclaration };\nexport function tsTypeParameter(\n constraint: t.TSType | null | undefined = null,\n _default: t.TSType | null | undefined = null,\n name: string,\n): t.TSTypeParameter {\n const node: t.TSTypeParameter = {\n type: \"TSTypeParameter\",\n constraint,\n default: _default,\n name,\n };\n const defs = NODE_FIELDS.TSTypeParameter;\n validate(defs.constraint, node, \"constraint\", constraint, 1);\n validate(defs.default, node, \"default\", _default, 1);\n validate(defs.name, node, \"name\", name);\n return node;\n}\nexport { tsTypeParameter as tSTypeParameter };\n/** @deprecated */\nfunction NumberLiteral(value: number) {\n deprecationWarning(\"NumberLiteral\", \"NumericLiteral\", \"The node type \");\n return numericLiteral(value);\n}\nexport { NumberLiteral as numberLiteral };\n/** @deprecated */\nfunction RegexLiteral(pattern: string, flags: string = \"\") {\n deprecationWarning(\"RegexLiteral\", \"RegExpLiteral\", \"The node type \");\n return regExpLiteral(pattern, flags);\n}\nexport { RegexLiteral as regexLiteral };\n/** @deprecated */\nfunction RestProperty(\n argument:\n | t.Identifier\n | t.ArrayPattern\n | t.ObjectPattern\n | t.MemberExpression\n | t.TSAsExpression\n | t.TSSatisfiesExpression\n | t.TSTypeAssertion\n | t.TSNonNullExpression\n | t.RestElement\n | t.AssignmentPattern,\n) {\n deprecationWarning(\"RestProperty\", \"RestElement\", \"The node type \");\n return restElement(argument);\n}\nexport { RestProperty as restProperty };\n/** @deprecated */\nfunction SpreadProperty(argument: t.Expression) {\n deprecationWarning(\"SpreadProperty\", \"SpreadElement\", \"The node type \");\n return spreadElement(argument);\n}\nexport { SpreadProperty as spreadProperty };\n","/*\n * This file is auto-generated! Do not modify it directly.\n * To re-generate run 'make build'\n */\n\nimport * as b from \"./lowercase.ts\";\nimport deprecationWarning from \"../../utils/deprecationWarning.ts\";\n\nfunction alias<const N extends keyof typeof b>(lowercase: N): (typeof b)[N] {\n if (process.env.BABEL_8_BREAKING) {\n return function () {\n deprecationWarning(\n lowercase.replace(/^(?:ts|jsx|[a-z])/, x => x.toUpperCase()),\n lowercase,\n \"Usage of builders starting with an uppercase letter such as \",\n \"uppercase builders\",\n );\n return (b[lowercase] as any)(...arguments);\n } as any;\n } else {\n return b[lowercase];\n }\n}\n\nexport const ArrayExpression = alias(\"arrayExpression\"),\n AssignmentExpression = alias(\"assignmentExpression\"),\n BinaryExpression = alias(\"binaryExpression\"),\n InterpreterDirective = alias(\"interpreterDirective\"),\n Directive = alias(\"directive\"),\n DirectiveLiteral = alias(\"directiveLiteral\"),\n BlockStatement = alias(\"blockStatement\"),\n BreakStatement = alias(\"breakStatement\"),\n CallExpression = alias(\"callExpression\"),\n CatchClause = alias(\"catchClause\"),\n ConditionalExpression = alias(\"conditionalExpression\"),\n ContinueStatement = alias(\"continueStatement\"),\n DebuggerStatement = alias(\"debuggerStatement\"),\n DoWhileStatement = alias(\"doWhileStatement\"),\n EmptyStatement = alias(\"emptyStatement\"),\n ExpressionStatement = alias(\"expressionStatement\"),\n File = alias(\"file\"),\n ForInStatement = alias(\"forInStatement\"),\n ForStatement = alias(\"forStatement\"),\n FunctionDeclaration = alias(\"functionDeclaration\"),\n FunctionExpression = alias(\"functionExpression\"),\n Identifier = alias(\"identifier\"),\n IfStatement = alias(\"ifStatement\"),\n LabeledStatement = alias(\"labeledStatement\"),\n StringLiteral = alias(\"stringLiteral\"),\n NumericLiteral = alias(\"numericLiteral\"),\n NullLiteral = alias(\"nullLiteral\"),\n BooleanLiteral = alias(\"booleanLiteral\"),\n RegExpLiteral = alias(\"regExpLiteral\"),\n LogicalExpression = alias(\"logicalExpression\"),\n MemberExpression = alias(\"memberExpression\"),\n NewExpression = alias(\"newExpression\"),\n Program = alias(\"program\"),\n ObjectExpression = alias(\"objectExpression\"),\n ObjectMethod = alias(\"objectMethod\"),\n ObjectProperty = alias(\"objectProperty\"),\n RestElement = alias(\"restElement\"),\n ReturnStatement = alias(\"returnStatement\"),\n SequenceExpression = alias(\"sequenceExpression\"),\n ParenthesizedExpression = alias(\"parenthesizedExpression\"),\n SwitchCase = alias(\"switchCase\"),\n SwitchStatement = alias(\"switchStatement\"),\n ThisExpression = alias(\"thisExpression\"),\n ThrowStatement = alias(\"throwStatement\"),\n TryStatement = alias(\"tryStatement\"),\n UnaryExpression = alias(\"unaryExpression\"),\n UpdateExpression = alias(\"updateExpression\"),\n VariableDeclaration = alias(\"variableDeclaration\"),\n VariableDeclarator = alias(\"variableDeclarator\"),\n WhileStatement = alias(\"whileStatement\"),\n WithStatement = alias(\"withStatement\"),\n AssignmentPattern = alias(\"assignmentPattern\"),\n ArrayPattern = alias(\"arrayPattern\"),\n ArrowFunctionExpression = alias(\"arrowFunctionExpression\"),\n ClassBody = alias(\"classBody\"),\n ClassExpression = alias(\"classExpression\"),\n ClassDeclaration = alias(\"classDeclaration\"),\n ExportAllDeclaration = alias(\"exportAllDeclaration\"),\n ExportDefaultDeclaration = alias(\"exportDefaultDeclaration\"),\n ExportNamedDeclaration = alias(\"exportNamedDeclaration\"),\n ExportSpecifier = alias(\"exportSpecifier\"),\n ForOfStatement = alias(\"forOfStatement\"),\n ImportDeclaration = alias(\"importDeclaration\"),\n ImportDefaultSpecifier = alias(\"importDefaultSpecifier\"),\n ImportNamespaceSpecifier = alias(\"importNamespaceSpecifier\"),\n ImportSpecifier = alias(\"importSpecifier\"),\n ImportExpression = alias(\"importExpression\"),\n MetaProperty = alias(\"metaProperty\"),\n ClassMethod = alias(\"classMethod\"),\n ObjectPattern = alias(\"objectPattern\"),\n SpreadElement = alias(\"spreadElement\"),\n Super = alias(\"super\"),\n TaggedTemplateExpression = alias(\"taggedTemplateExpression\"),\n TemplateElement = alias(\"templateElement\"),\n TemplateLiteral = alias(\"templateLiteral\"),\n YieldExpression = alias(\"yieldExpression\"),\n AwaitExpression = alias(\"awaitExpression\"),\n Import = alias(\"import\"),\n BigIntLiteral = alias(\"bigIntLiteral\"),\n ExportNamespaceSpecifier = alias(\"exportNamespaceSpecifier\"),\n OptionalMemberExpression = alias(\"optionalMemberExpression\"),\n OptionalCallExpression = alias(\"optionalCallExpression\"),\n ClassProperty = alias(\"classProperty\"),\n ClassAccessorProperty = alias(\"classAccessorProperty\"),\n ClassPrivateProperty = alias(\"classPrivateProperty\"),\n ClassPrivateMethod = alias(\"classPrivateMethod\"),\n PrivateName = alias(\"privateName\"),\n StaticBlock = alias(\"staticBlock\"),\n ImportAttribute = alias(\"importAttribute\"),\n AnyTypeAnnotation = alias(\"anyTypeAnnotation\"),\n ArrayTypeAnnotation = alias(\"arrayTypeAnnotation\"),\n BooleanTypeAnnotation = alias(\"booleanTypeAnnotation\"),\n BooleanLiteralTypeAnnotation = alias(\"booleanLiteralTypeAnnotation\"),\n NullLiteralTypeAnnotation = alias(\"nullLiteralTypeAnnotation\"),\n ClassImplements = alias(\"classImplements\"),\n DeclareClass = alias(\"declareClass\"),\n DeclareFunction = alias(\"declareFunction\"),\n DeclareInterface = alias(\"declareInterface\"),\n DeclareModule = alias(\"declareModule\"),\n DeclareModuleExports = alias(\"declareModuleExports\"),\n DeclareTypeAlias = alias(\"declareTypeAlias\"),\n DeclareOpaqueType = alias(\"declareOpaqueType\"),\n DeclareVariable = alias(\"declareVariable\"),\n DeclareExportDeclaration = alias(\"declareExportDeclaration\"),\n DeclareExportAllDeclaration = alias(\"declareExportAllDeclaration\"),\n DeclaredPredicate = alias(\"declaredPredicate\"),\n ExistsTypeAnnotation = alias(\"existsTypeAnnotation\"),\n FunctionTypeAnnotation = alias(\"functionTypeAnnotation\"),\n FunctionTypeParam = alias(\"functionTypeParam\"),\n GenericTypeAnnotation = alias(\"genericTypeAnnotation\"),\n InferredPredicate = alias(\"inferredPredicate\"),\n InterfaceExtends = alias(\"interfaceExtends\"),\n InterfaceDeclaration = alias(\"interfaceDeclaration\"),\n InterfaceTypeAnnotation = alias(\"interfaceTypeAnnotation\"),\n IntersectionTypeAnnotation = alias(\"intersectionTypeAnnotation\"),\n MixedTypeAnnotation = alias(\"mixedTypeAnnotation\"),\n EmptyTypeAnnotation = alias(\"emptyTypeAnnotation\"),\n NullableTypeAnnotation = alias(\"nullableTypeAnnotation\"),\n NumberLiteralTypeAnnotation = alias(\"numberLiteralTypeAnnotation\"),\n NumberTypeAnnotation = alias(\"numberTypeAnnotation\"),\n ObjectTypeAnnotation = alias(\"objectTypeAnnotation\"),\n ObjectTypeInternalSlot = alias(\"objectTypeInternalSlot\"),\n ObjectTypeCallProperty = alias(\"objectTypeCallProperty\"),\n ObjectTypeIndexer = alias(\"objectTypeIndexer\"),\n ObjectTypeProperty = alias(\"objectTypeProperty\"),\n ObjectTypeSpreadProperty = alias(\"objectTypeSpreadProperty\"),\n OpaqueType = alias(\"opaqueType\"),\n QualifiedTypeIdentifier = alias(\"qualifiedTypeIdentifier\"),\n StringLiteralTypeAnnotation = alias(\"stringLiteralTypeAnnotation\"),\n StringTypeAnnotation = alias(\"stringTypeAnnotation\"),\n SymbolTypeAnnotation = alias(\"symbolTypeAnnotation\"),\n ThisTypeAnnotation = alias(\"thisTypeAnnotation\"),\n TupleTypeAnnotation = alias(\"tupleTypeAnnotation\"),\n TypeofTypeAnnotation = alias(\"typeofTypeAnnotation\"),\n TypeAlias = alias(\"typeAlias\"),\n TypeAnnotation = alias(\"typeAnnotation\"),\n TypeCastExpression = alias(\"typeCastExpression\"),\n TypeParameter = alias(\"typeParameter\"),\n TypeParameterDeclaration = alias(\"typeParameterDeclaration\"),\n TypeParameterInstantiation = alias(\"typeParameterInstantiation\"),\n UnionTypeAnnotation = alias(\"unionTypeAnnotation\"),\n Variance = alias(\"variance\"),\n VoidTypeAnnotation = alias(\"voidTypeAnnotation\"),\n EnumDeclaration = alias(\"enumDeclaration\"),\n EnumBooleanBody = alias(\"enumBooleanBody\"),\n EnumNumberBody = alias(\"enumNumberBody\"),\n EnumStringBody = alias(\"enumStringBody\"),\n EnumSymbolBody = alias(\"enumSymbolBody\"),\n EnumBooleanMember = alias(\"enumBooleanMember\"),\n EnumNumberMember = alias(\"enumNumberMember\"),\n EnumStringMember = alias(\"enumStringMember\"),\n EnumDefaultedMember = alias(\"enumDefaultedMember\"),\n IndexedAccessType = alias(\"indexedAccessType\"),\n OptionalIndexedAccessType = alias(\"optionalIndexedAccessType\"),\n JSXAttribute = alias(\"jsxAttribute\"),\n JSXClosingElement = alias(\"jsxClosingElement\"),\n JSXElement = alias(\"jsxElement\"),\n JSXEmptyExpression = alias(\"jsxEmptyExpression\"),\n JSXExpressionContainer = alias(\"jsxExpressionContainer\"),\n JSXSpreadChild = alias(\"jsxSpreadChild\"),\n JSXIdentifier = alias(\"jsxIdentifier\"),\n JSXMemberExpression = alias(\"jsxMemberExpression\"),\n JSXNamespacedName = alias(\"jsxNamespacedName\"),\n JSXOpeningElement = alias(\"jsxOpeningElement\"),\n JSXSpreadAttribute = alias(\"jsxSpreadAttribute\"),\n JSXText = alias(\"jsxText\"),\n JSXFragment = alias(\"jsxFragment\"),\n JSXOpeningFragment = alias(\"jsxOpeningFragment\"),\n JSXClosingFragment = alias(\"jsxClosingFragment\"),\n Noop = alias(\"noop\"),\n Placeholder = alias(\"placeholder\"),\n V8IntrinsicIdentifier = alias(\"v8IntrinsicIdentifier\"),\n ArgumentPlaceholder = alias(\"argumentPlaceholder\"),\n BindExpression = alias(\"bindExpression\"),\n Decorator = alias(\"decorator\"),\n DoExpression = alias(\"doExpression\"),\n ExportDefaultSpecifier = alias(\"exportDefaultSpecifier\"),\n RecordExpression = alias(\"recordExpression\"),\n TupleExpression = alias(\"tupleExpression\"),\n DecimalLiteral = alias(\"decimalLiteral\"),\n ModuleExpression = alias(\"moduleExpression\"),\n TopicReference = alias(\"topicReference\"),\n PipelineTopicExpression = alias(\"pipelineTopicExpression\"),\n PipelineBareFunction = alias(\"pipelineBareFunction\"),\n PipelinePrimaryTopicReference = alias(\"pipelinePrimaryTopicReference\"),\n VoidPattern = alias(\"voidPattern\"),\n TSParameterProperty = alias(\"tsParameterProperty\"),\n TSDeclareFunction = alias(\"tsDeclareFunction\"),\n TSDeclareMethod = alias(\"tsDeclareMethod\"),\n TSQualifiedName = alias(\"tsQualifiedName\"),\n TSCallSignatureDeclaration = alias(\"tsCallSignatureDeclaration\"),\n TSConstructSignatureDeclaration = alias(\"tsConstructSignatureDeclaration\"),\n TSPropertySignature = alias(\"tsPropertySignature\"),\n TSMethodSignature = alias(\"tsMethodSignature\"),\n TSIndexSignature = alias(\"tsIndexSignature\"),\n TSAnyKeyword = alias(\"tsAnyKeyword\"),\n TSBooleanKeyword = alias(\"tsBooleanKeyword\"),\n TSBigIntKeyword = alias(\"tsBigIntKeyword\"),\n TSIntrinsicKeyword = alias(\"tsIntrinsicKeyword\"),\n TSNeverKeyword = alias(\"tsNeverKeyword\"),\n TSNullKeyword = alias(\"tsNullKeyword\"),\n TSNumberKeyword = alias(\"tsNumberKeyword\"),\n TSObjectKeyword = alias(\"tsObjectKeyword\"),\n TSStringKeyword = alias(\"tsStringKeyword\"),\n TSSymbolKeyword = alias(\"tsSymbolKeyword\"),\n TSUndefinedKeyword = alias(\"tsUndefinedKeyword\"),\n TSUnknownKeyword = alias(\"tsUnknownKeyword\"),\n TSVoidKeyword = alias(\"tsVoidKeyword\"),\n TSThisType = alias(\"tsThisType\"),\n TSFunctionType = alias(\"tsFunctionType\"),\n TSConstructorType = alias(\"tsConstructorType\"),\n TSTypeReference = alias(\"tsTypeReference\"),\n TSTypePredicate = alias(\"tsTypePredicate\"),\n TSTypeQuery = alias(\"tsTypeQuery\"),\n TSTypeLiteral = alias(\"tsTypeLiteral\"),\n TSArrayType = alias(\"tsArrayType\"),\n TSTupleType = alias(\"tsTupleType\"),\n TSOptionalType = alias(\"tsOptionalType\"),\n TSRestType = alias(\"tsRestType\"),\n TSNamedTupleMember = alias(\"tsNamedTupleMember\"),\n TSUnionType = alias(\"tsUnionType\"),\n TSIntersectionType = alias(\"tsIntersectionType\"),\n TSConditionalType = alias(\"tsConditionalType\"),\n TSInferType = alias(\"tsInferType\"),\n TSParenthesizedType = alias(\"tsParenthesizedType\"),\n TSTypeOperator = alias(\"tsTypeOperator\"),\n TSIndexedAccessType = alias(\"tsIndexedAccessType\"),\n TSMappedType = alias(\"tsMappedType\"),\n TSTemplateLiteralType = alias(\"tsTemplateLiteralType\"),\n TSLiteralType = alias(\"tsLiteralType\"),\n TSExpressionWithTypeArguments = alias(\"tsExpressionWithTypeArguments\"),\n TSInterfaceDeclaration = alias(\"tsInterfaceDeclaration\"),\n TSInterfaceBody = alias(\"tsInterfaceBody\"),\n TSTypeAliasDeclaration = alias(\"tsTypeAliasDeclaration\"),\n TSInstantiationExpression = alias(\"tsInstantiationExpression\"),\n TSAsExpression = alias(\"tsAsExpression\"),\n TSSatisfiesExpression = alias(\"tsSatisfiesExpression\"),\n TSTypeAssertion = alias(\"tsTypeAssertion\"),\n TSEnumBody = alias(\"tsEnumBody\"),\n TSEnumDeclaration = alias(\"tsEnumDeclaration\"),\n TSEnumMember = alias(\"tsEnumMember\"),\n TSModuleDeclaration = alias(\"tsModuleDeclaration\"),\n TSModuleBlock = alias(\"tsModuleBlock\"),\n TSImportType = alias(\"tsImportType\"),\n TSImportEqualsDeclaration = alias(\"tsImportEqualsDeclaration\"),\n TSExternalModuleReference = alias(\"tsExternalModuleReference\"),\n TSNonNullExpression = alias(\"tsNonNullExpression\"),\n TSExportAssignment = alias(\"tsExportAssignment\"),\n TSNamespaceExportDeclaration = alias(\"tsNamespaceExportDeclaration\"),\n TSTypeAnnotation = alias(\"tsTypeAnnotation\"),\n TSTypeParameterInstantiation = alias(\"tsTypeParameterInstantiation\"),\n TSTypeParameterDeclaration = alias(\"tsTypeParameterDeclaration\"),\n TSTypeParameter = alias(\"tsTypeParameter\");\nexport const NumberLiteral = b.numberLiteral,\n RegexLiteral = b.regexLiteral,\n RestProperty = b.restProperty,\n SpreadProperty = b.spreadProperty;\n","/*\n * This file is auto-generated! Do not modify it directly.\n * To re-generate run 'make build'\n */\n\nexport * from \"./lowercase.ts\";\nexport * from \"./uppercase.ts\";\n\n// Uppercase builders and AST types conflict with each other, which is\n// not allowed by TypeScript when using `export * from ...`\n// We instead explicity list the AST types here, so that:\n// - From a TypeScript perspective, the AST types win over the uppercase\n// builders (which is the standard behavior for JS when a named\n// re-export conflicts with a * re-export.)\n// - At runtime, this `export type` is removed, leaving only the uppercase\n// builders behind (which are thus visible to JavaScript code).\n// This ensures compatibility with legacy code that uses the uppercase\n// builders, while allowing TypeScript users to use the lowercase builders\n// together with the AST types.\n\n// prettier-ignore\nexport type {\n ArrayExpression, AssignmentExpression, BinaryExpression, InterpreterDirective, Directive, DirectiveLiteral, BlockStatement, BreakStatement, CallExpression, CatchClause, ConditionalExpression, ContinueStatement, DebuggerStatement, DoWhileStatement, EmptyStatement, ExpressionStatement, File, ForInStatement, ForStatement, FunctionDeclaration, FunctionExpression, Identifier, IfStatement, LabeledStatement, StringLiteral, NumericLiteral, NullLiteral, BooleanLiteral, RegExpLiteral, LogicalExpression, MemberExpression, NewExpression, Program, ObjectExpression, ObjectMethod, ObjectProperty, RestElement, ReturnStatement, SequenceExpression, ParenthesizedExpression, SwitchCase, SwitchStatement, ThisExpression, ThrowStatement, TryStatement, UnaryExpression, UpdateExpression, VariableDeclaration, VariableDeclarator, WhileStatement, WithStatement, AssignmentPattern, ArrayPattern, ArrowFunctionExpression, ClassBody, ClassExpression, ClassDeclaration, ExportAllDeclaration, ExportDefaultDeclaration, ExportNamedDeclaration, ExportSpecifier, ForOfStatement, ImportDeclaration, ImportDefaultSpecifier, ImportNamespaceSpecifier, ImportSpecifier, ImportExpression, MetaProperty, ClassMethod, ObjectPattern, SpreadElement, Super, TaggedTemplateExpression, TemplateElement, TemplateLiteral, YieldExpression, AwaitExpression, Import, BigIntLiteral, ExportNamespaceSpecifier, OptionalMemberExpression, OptionalCallExpression, ClassProperty, ClassAccessorProperty, ClassPrivateProperty, ClassPrivateMethod, PrivateName, StaticBlock, ImportAttribute, AnyTypeAnnotation, ArrayTypeAnnotation, BooleanTypeAnnotation, BooleanLiteralTypeAnnotation, NullLiteralTypeAnnotation, ClassImplements, DeclareClass, DeclareFunction, DeclareInterface, DeclareModule, DeclareModuleExports, DeclareTypeAlias, DeclareOpaqueType, DeclareVariable, DeclareExportDeclaration, DeclareExportAllDeclaration, DeclaredPredicate, ExistsTypeAnnotation, FunctionTypeAnnotation, FunctionTypeParam, GenericTypeAnnotation, InferredPredicate, InterfaceExtends, InterfaceDeclaration, InterfaceTypeAnnotation, IntersectionTypeAnnotation, MixedTypeAnnotation, EmptyTypeAnnotation, NullableTypeAnnotation, NumberLiteralTypeAnnotation, NumberTypeAnnotation, ObjectTypeAnnotation, ObjectTypeInternalSlot, ObjectTypeCallProperty, ObjectTypeIndexer, ObjectTypeProperty, ObjectTypeSpreadProperty, OpaqueType, QualifiedTypeIdentifier, StringLiteralTypeAnnotation, StringTypeAnnotation, SymbolTypeAnnotation, ThisTypeAnnotation, TupleTypeAnnotation, TypeofTypeAnnotation, TypeAlias, TypeAnnotation, TypeCastExpression, TypeParameter, TypeParameterDeclaration, TypeParameterInstantiation, UnionTypeAnnotation, Variance, VoidTypeAnnotation, EnumDeclaration, EnumBooleanBody, EnumNumberBody, EnumStringBody, EnumSymbolBody, EnumBooleanMember, EnumNumberMember, EnumStringMember, EnumDefaultedMember, IndexedAccessType, OptionalIndexedAccessType, JSXAttribute, JSXClosingElement, JSXElement, JSXEmptyExpression, JSXExpressionContainer, JSXSpreadChild, JSXIdentifier, JSXMemberExpression, JSXNamespacedName, JSXOpeningElement, JSXSpreadAttribute, JSXText, JSXFragment, JSXOpeningFragment, JSXClosingFragment, Noop, Placeholder, V8IntrinsicIdentifier, ArgumentPlaceholder, BindExpression, Decorator, DoExpression, ExportDefaultSpecifier, RecordExpression, TupleExpression, DecimalLiteral, ModuleExpression, TopicReference, PipelineTopicExpression, PipelineBareFunction, PipelinePrimaryTopicReference, VoidPattern, TSParameterProperty, TSDeclareFunction, TSDeclareMethod, TSQualifiedName, TSCallSignatureDeclaration, TSConstructSignatureDeclaration, TSPropertySignature, TSMethodSignature, TSIndexSignature, TSAnyKeyword, TSBooleanKeyword, TSBigIntKeyword, TSIntrinsicKeyword, TSNeverKeyword, TSNullKeyword, TSNumberKeyword, TSObjectKeyword, TSStringKeyword, TSSymbolKeyword, TSUndefinedKeyword, TSUnknownKeyword, TSVoidKeyword, TSThisType, TSFunctionType, TSConstructorType, TSTypeReference, TSTypePredicate, TSTypeQuery, TSTypeLiteral, TSArrayType, TSTupleType, TSOptionalType, TSRestType, TSNamedTupleMember, TSUnionType, TSIntersectionType, TSConditionalType, TSInferType, TSParenthesizedType, TSTypeOperator, TSIndexedAccessType, TSMappedType, TSTemplateLiteralType, TSLiteralType, TSExpressionWithTypeArguments, TSInterfaceDeclaration, TSInterfaceBody, TSTypeAliasDeclaration, TSInstantiationExpression, TSAsExpression, TSSatisfiesExpression, TSTypeAssertion, TSEnumBody, TSEnumDeclaration, TSEnumMember, TSModuleDeclaration, TSModuleBlock, TSImportType, TSImportEqualsDeclaration, TSExternalModuleReference, TSNonNullExpression, TSExportAssignment, TSNamespaceExportDeclaration, TSTypeAnnotation, TSTypeParameterInstantiation, TSTypeParameterDeclaration, TSTypeParameter,\n NumberLiteral, RegexLiteral, RestProperty, SpreadProperty\n} from \"../../ast-types/generated/index.ts\";\n\n// This will re-export all the type definitions that do not conflict with\n// uppercase builders, such as aliases.\nexport type * from \"../../ast-types/generated/index.ts\";\n","import { stringLiteral } from \"../../builders/generated/index.ts\";\nimport type * as t from \"../../index.ts\";\nimport { inherits } from \"../../index.ts\";\n\nexport default function cleanJSXElementLiteralChild(\n child: t.JSXText,\n args: t.Node[],\n) {\n const lines = child.value.split(/\\r\\n|\\n|\\r/);\n\n let lastNonEmptyLine = 0;\n\n for (let i = 0; i < lines.length; i++) {\n if (/[^ \\t]/.exec(lines[i])) {\n lastNonEmptyLine = i;\n }\n }\n\n let str = \"\";\n\n for (let i = 0; i < lines.length; i++) {\n const line = lines[i];\n\n const isFirstLine = i === 0;\n const isLastLine = i === lines.length - 1;\n const isLastNonEmptyLine = i === lastNonEmptyLine;\n\n // replace rendered whitespace tabs with spaces\n let trimmedLine = line.replace(/\\t/g, \" \");\n\n // trim whitespace touching a newline\n if (!isFirstLine) {\n trimmedLine = trimmedLine.replace(/^ +/, \"\");\n }\n\n // trim whitespace touching an endline\n if (!isLastLine) {\n trimmedLine = trimmedLine.replace(/ +$/, \"\");\n }\n\n if (trimmedLine) {\n if (!isLastNonEmptyLine) {\n trimmedLine += \" \";\n }\n\n str += trimmedLine;\n }\n }\n\n if (str) args.push(inherits(stringLiteral(str), child));\n}\n","import {\n isJSXText,\n isJSXExpressionContainer,\n isJSXEmptyExpression,\n} from \"../../validators/generated/index.ts\";\nimport cleanJSXElementLiteralChild from \"../../utils/react/cleanJSXElementLiteralChild.ts\";\nimport type * as t from \"../../index.ts\";\n\ntype ReturnedChild =\n | t.JSXSpreadChild\n | t.JSXElement\n | t.JSXFragment\n | t.Expression;\n\nexport default function buildChildren(\n node: t.JSXElement | t.JSXFragment,\n): ReturnedChild[] {\n const elements = [];\n\n for (let i = 0; i < node.children.length; i++) {\n let child: any = node.children[i];\n\n if (isJSXText(child)) {\n cleanJSXElementLiteralChild(child, elements);\n continue;\n }\n\n if (isJSXExpressionContainer(child)) child = child.expression;\n if (isJSXEmptyExpression(child)) continue;\n\n elements.push(child);\n }\n\n return elements;\n}\n","import { VISITOR_KEYS } from \"../definitions/index.ts\";\nimport type * as t from \"../index.ts\";\n\nexport default function isNode(node: any): node is t.Node {\n return !!(node && VISITOR_KEYS[node.type]);\n}\n","import isNode from \"../validators/isNode.ts\";\nimport type * as t from \"../index.ts\";\n\nexport default function assertNode(node?: any): asserts node is t.Node {\n if (!isNode(node)) {\n const type = node?.type ?? JSON.stringify(node);\n throw new TypeError(`Not a valid node of type \"${type}\"`);\n }\n}\n","/*\n * This file is auto-generated! Do not modify it directly.\n * To re-generate run 'make build'\n */\nimport is from \"../../validators/is.ts\";\nimport type * as t from \"../../index.ts\";\nimport deprecationWarning from \"../../utils/deprecationWarning.ts\";\n\nfunction assert(type: string, node: any, opts?: any): void {\n if (!is(type, node, opts)) {\n throw new Error(\n `Expected type \"${type}\" with option ${JSON.stringify(opts)}, ` +\n `but instead got \"${node.type}\".`,\n );\n }\n}\n\nexport function assertArrayExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ArrayExpression {\n assert(\"ArrayExpression\", node, opts);\n}\nexport function assertAssignmentExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.AssignmentExpression {\n assert(\"AssignmentExpression\", node, opts);\n}\nexport function assertBinaryExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.BinaryExpression {\n assert(\"BinaryExpression\", node, opts);\n}\nexport function assertInterpreterDirective(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.InterpreterDirective {\n assert(\"InterpreterDirective\", node, opts);\n}\nexport function assertDirective(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Directive {\n assert(\"Directive\", node, opts);\n}\nexport function assertDirectiveLiteral(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.DirectiveLiteral {\n assert(\"DirectiveLiteral\", node, opts);\n}\nexport function assertBlockStatement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.BlockStatement {\n assert(\"BlockStatement\", node, opts);\n}\nexport function assertBreakStatement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.BreakStatement {\n assert(\"BreakStatement\", node, opts);\n}\nexport function assertCallExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.CallExpression {\n assert(\"CallExpression\", node, opts);\n}\nexport function assertCatchClause(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.CatchClause {\n assert(\"CatchClause\", node, opts);\n}\nexport function assertConditionalExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ConditionalExpression {\n assert(\"ConditionalExpression\", node, opts);\n}\nexport function assertContinueStatement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ContinueStatement {\n assert(\"ContinueStatement\", node, opts);\n}\nexport function assertDebuggerStatement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.DebuggerStatement {\n assert(\"DebuggerStatement\", node, opts);\n}\nexport function assertDoWhileStatement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.DoWhileStatement {\n assert(\"DoWhileStatement\", node, opts);\n}\nexport function assertEmptyStatement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.EmptyStatement {\n assert(\"EmptyStatement\", node, opts);\n}\nexport function assertExpressionStatement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ExpressionStatement {\n assert(\"ExpressionStatement\", node, opts);\n}\nexport function assertFile(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.File {\n assert(\"File\", node, opts);\n}\nexport function assertForInStatement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ForInStatement {\n assert(\"ForInStatement\", node, opts);\n}\nexport function assertForStatement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ForStatement {\n assert(\"ForStatement\", node, opts);\n}\nexport function assertFunctionDeclaration(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.FunctionDeclaration {\n assert(\"FunctionDeclaration\", node, opts);\n}\nexport function assertFunctionExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.FunctionExpression {\n assert(\"FunctionExpression\", node, opts);\n}\nexport function assertIdentifier(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Identifier {\n assert(\"Identifier\", node, opts);\n}\nexport function assertIfStatement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.IfStatement {\n assert(\"IfStatement\", node, opts);\n}\nexport function assertLabeledStatement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.LabeledStatement {\n assert(\"LabeledStatement\", node, opts);\n}\nexport function assertStringLiteral(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.StringLiteral {\n assert(\"StringLiteral\", node, opts);\n}\nexport function assertNumericLiteral(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.NumericLiteral {\n assert(\"NumericLiteral\", node, opts);\n}\nexport function assertNullLiteral(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.NullLiteral {\n assert(\"NullLiteral\", node, opts);\n}\nexport function assertBooleanLiteral(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.BooleanLiteral {\n assert(\"BooleanLiteral\", node, opts);\n}\nexport function assertRegExpLiteral(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.RegExpLiteral {\n assert(\"RegExpLiteral\", node, opts);\n}\nexport function assertLogicalExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.LogicalExpression {\n assert(\"LogicalExpression\", node, opts);\n}\nexport function assertMemberExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.MemberExpression {\n assert(\"MemberExpression\", node, opts);\n}\nexport function assertNewExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.NewExpression {\n assert(\"NewExpression\", node, opts);\n}\nexport function assertProgram(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Program {\n assert(\"Program\", node, opts);\n}\nexport function assertObjectExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ObjectExpression {\n assert(\"ObjectExpression\", node, opts);\n}\nexport function assertObjectMethod(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ObjectMethod {\n assert(\"ObjectMethod\", node, opts);\n}\nexport function assertObjectProperty(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ObjectProperty {\n assert(\"ObjectProperty\", node, opts);\n}\nexport function assertRestElement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.RestElement {\n assert(\"RestElement\", node, opts);\n}\nexport function assertReturnStatement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ReturnStatement {\n assert(\"ReturnStatement\", node, opts);\n}\nexport function assertSequenceExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.SequenceExpression {\n assert(\"SequenceExpression\", node, opts);\n}\nexport function assertParenthesizedExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ParenthesizedExpression {\n assert(\"ParenthesizedExpression\", node, opts);\n}\nexport function assertSwitchCase(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.SwitchCase {\n assert(\"SwitchCase\", node, opts);\n}\nexport function assertSwitchStatement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.SwitchStatement {\n assert(\"SwitchStatement\", node, opts);\n}\nexport function assertThisExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ThisExpression {\n assert(\"ThisExpression\", node, opts);\n}\nexport function assertThrowStatement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ThrowStatement {\n assert(\"ThrowStatement\", node, opts);\n}\nexport function assertTryStatement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TryStatement {\n assert(\"TryStatement\", node, opts);\n}\nexport function assertUnaryExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.UnaryExpression {\n assert(\"UnaryExpression\", node, opts);\n}\nexport function assertUpdateExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.UpdateExpression {\n assert(\"UpdateExpression\", node, opts);\n}\nexport function assertVariableDeclaration(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.VariableDeclaration {\n assert(\"VariableDeclaration\", node, opts);\n}\nexport function assertVariableDeclarator(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.VariableDeclarator {\n assert(\"VariableDeclarator\", node, opts);\n}\nexport function assertWhileStatement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.WhileStatement {\n assert(\"WhileStatement\", node, opts);\n}\nexport function assertWithStatement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.WithStatement {\n assert(\"WithStatement\", node, opts);\n}\nexport function assertAssignmentPattern(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.AssignmentPattern {\n assert(\"AssignmentPattern\", node, opts);\n}\nexport function assertArrayPattern(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ArrayPattern {\n assert(\"ArrayPattern\", node, opts);\n}\nexport function assertArrowFunctionExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ArrowFunctionExpression {\n assert(\"ArrowFunctionExpression\", node, opts);\n}\nexport function assertClassBody(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ClassBody {\n assert(\"ClassBody\", node, opts);\n}\nexport function assertClassExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ClassExpression {\n assert(\"ClassExpression\", node, opts);\n}\nexport function assertClassDeclaration(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ClassDeclaration {\n assert(\"ClassDeclaration\", node, opts);\n}\nexport function assertExportAllDeclaration(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ExportAllDeclaration {\n assert(\"ExportAllDeclaration\", node, opts);\n}\nexport function assertExportDefaultDeclaration(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ExportDefaultDeclaration {\n assert(\"ExportDefaultDeclaration\", node, opts);\n}\nexport function assertExportNamedDeclaration(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ExportNamedDeclaration {\n assert(\"ExportNamedDeclaration\", node, opts);\n}\nexport function assertExportSpecifier(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ExportSpecifier {\n assert(\"ExportSpecifier\", node, opts);\n}\nexport function assertForOfStatement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ForOfStatement {\n assert(\"ForOfStatement\", node, opts);\n}\nexport function assertImportDeclaration(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ImportDeclaration {\n assert(\"ImportDeclaration\", node, opts);\n}\nexport function assertImportDefaultSpecifier(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ImportDefaultSpecifier {\n assert(\"ImportDefaultSpecifier\", node, opts);\n}\nexport function assertImportNamespaceSpecifier(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ImportNamespaceSpecifier {\n assert(\"ImportNamespaceSpecifier\", node, opts);\n}\nexport function assertImportSpecifier(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ImportSpecifier {\n assert(\"ImportSpecifier\", node, opts);\n}\nexport function assertImportExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ImportExpression {\n assert(\"ImportExpression\", node, opts);\n}\nexport function assertMetaProperty(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.MetaProperty {\n assert(\"MetaProperty\", node, opts);\n}\nexport function assertClassMethod(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ClassMethod {\n assert(\"ClassMethod\", node, opts);\n}\nexport function assertObjectPattern(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ObjectPattern {\n assert(\"ObjectPattern\", node, opts);\n}\nexport function assertSpreadElement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.SpreadElement {\n assert(\"SpreadElement\", node, opts);\n}\nexport function assertSuper(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Super {\n assert(\"Super\", node, opts);\n}\nexport function assertTaggedTemplateExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TaggedTemplateExpression {\n assert(\"TaggedTemplateExpression\", node, opts);\n}\nexport function assertTemplateElement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TemplateElement {\n assert(\"TemplateElement\", node, opts);\n}\nexport function assertTemplateLiteral(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TemplateLiteral {\n assert(\"TemplateLiteral\", node, opts);\n}\nexport function assertYieldExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.YieldExpression {\n assert(\"YieldExpression\", node, opts);\n}\nexport function assertAwaitExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.AwaitExpression {\n assert(\"AwaitExpression\", node, opts);\n}\nexport function assertImport(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Import {\n assert(\"Import\", node, opts);\n}\nexport function assertBigIntLiteral(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.BigIntLiteral {\n assert(\"BigIntLiteral\", node, opts);\n}\nexport function assertExportNamespaceSpecifier(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ExportNamespaceSpecifier {\n assert(\"ExportNamespaceSpecifier\", node, opts);\n}\nexport function assertOptionalMemberExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.OptionalMemberExpression {\n assert(\"OptionalMemberExpression\", node, opts);\n}\nexport function assertOptionalCallExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.OptionalCallExpression {\n assert(\"OptionalCallExpression\", node, opts);\n}\nexport function assertClassProperty(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ClassProperty {\n assert(\"ClassProperty\", node, opts);\n}\nexport function assertClassAccessorProperty(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ClassAccessorProperty {\n assert(\"ClassAccessorProperty\", node, opts);\n}\nexport function assertClassPrivateProperty(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ClassPrivateProperty {\n assert(\"ClassPrivateProperty\", node, opts);\n}\nexport function assertClassPrivateMethod(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ClassPrivateMethod {\n assert(\"ClassPrivateMethod\", node, opts);\n}\nexport function assertPrivateName(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.PrivateName {\n assert(\"PrivateName\", node, opts);\n}\nexport function assertStaticBlock(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.StaticBlock {\n assert(\"StaticBlock\", node, opts);\n}\nexport function assertImportAttribute(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ImportAttribute {\n assert(\"ImportAttribute\", node, opts);\n}\nexport function assertAnyTypeAnnotation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.AnyTypeAnnotation {\n assert(\"AnyTypeAnnotation\", node, opts);\n}\nexport function assertArrayTypeAnnotation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ArrayTypeAnnotation {\n assert(\"ArrayTypeAnnotation\", node, opts);\n}\nexport function assertBooleanTypeAnnotation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.BooleanTypeAnnotation {\n assert(\"BooleanTypeAnnotation\", node, opts);\n}\nexport function assertBooleanLiteralTypeAnnotation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.BooleanLiteralTypeAnnotation {\n assert(\"BooleanLiteralTypeAnnotation\", node, opts);\n}\nexport function assertNullLiteralTypeAnnotation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.NullLiteralTypeAnnotation {\n assert(\"NullLiteralTypeAnnotation\", node, opts);\n}\nexport function assertClassImplements(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ClassImplements {\n assert(\"ClassImplements\", node, opts);\n}\nexport function assertDeclareClass(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.DeclareClass {\n assert(\"DeclareClass\", node, opts);\n}\nexport function assertDeclareFunction(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.DeclareFunction {\n assert(\"DeclareFunction\", node, opts);\n}\nexport function assertDeclareInterface(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.DeclareInterface {\n assert(\"DeclareInterface\", node, opts);\n}\nexport function assertDeclareModule(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.DeclareModule {\n assert(\"DeclareModule\", node, opts);\n}\nexport function assertDeclareModuleExports(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.DeclareModuleExports {\n assert(\"DeclareModuleExports\", node, opts);\n}\nexport function assertDeclareTypeAlias(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.DeclareTypeAlias {\n assert(\"DeclareTypeAlias\", node, opts);\n}\nexport function assertDeclareOpaqueType(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.DeclareOpaqueType {\n assert(\"DeclareOpaqueType\", node, opts);\n}\nexport function assertDeclareVariable(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.DeclareVariable {\n assert(\"DeclareVariable\", node, opts);\n}\nexport function assertDeclareExportDeclaration(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.DeclareExportDeclaration {\n assert(\"DeclareExportDeclaration\", node, opts);\n}\nexport function assertDeclareExportAllDeclaration(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.DeclareExportAllDeclaration {\n assert(\"DeclareExportAllDeclaration\", node, opts);\n}\nexport function assertDeclaredPredicate(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.DeclaredPredicate {\n assert(\"DeclaredPredicate\", node, opts);\n}\nexport function assertExistsTypeAnnotation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ExistsTypeAnnotation {\n assert(\"ExistsTypeAnnotation\", node, opts);\n}\nexport function assertFunctionTypeAnnotation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.FunctionTypeAnnotation {\n assert(\"FunctionTypeAnnotation\", node, opts);\n}\nexport function assertFunctionTypeParam(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.FunctionTypeParam {\n assert(\"FunctionTypeParam\", node, opts);\n}\nexport function assertGenericTypeAnnotation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.GenericTypeAnnotation {\n assert(\"GenericTypeAnnotation\", node, opts);\n}\nexport function assertInferredPredicate(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.InferredPredicate {\n assert(\"InferredPredicate\", node, opts);\n}\nexport function assertInterfaceExtends(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.InterfaceExtends {\n assert(\"InterfaceExtends\", node, opts);\n}\nexport function assertInterfaceDeclaration(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.InterfaceDeclaration {\n assert(\"InterfaceDeclaration\", node, opts);\n}\nexport function assertInterfaceTypeAnnotation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.InterfaceTypeAnnotation {\n assert(\"InterfaceTypeAnnotation\", node, opts);\n}\nexport function assertIntersectionTypeAnnotation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.IntersectionTypeAnnotation {\n assert(\"IntersectionTypeAnnotation\", node, opts);\n}\nexport function assertMixedTypeAnnotation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.MixedTypeAnnotation {\n assert(\"MixedTypeAnnotation\", node, opts);\n}\nexport function assertEmptyTypeAnnotation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.EmptyTypeAnnotation {\n assert(\"EmptyTypeAnnotation\", node, opts);\n}\nexport function assertNullableTypeAnnotation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.NullableTypeAnnotation {\n assert(\"NullableTypeAnnotation\", node, opts);\n}\nexport function assertNumberLiteralTypeAnnotation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.NumberLiteralTypeAnnotation {\n assert(\"NumberLiteralTypeAnnotation\", node, opts);\n}\nexport function assertNumberTypeAnnotation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.NumberTypeAnnotation {\n assert(\"NumberTypeAnnotation\", node, opts);\n}\nexport function assertObjectTypeAnnotation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ObjectTypeAnnotation {\n assert(\"ObjectTypeAnnotation\", node, opts);\n}\nexport function assertObjectTypeInternalSlot(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ObjectTypeInternalSlot {\n assert(\"ObjectTypeInternalSlot\", node, opts);\n}\nexport function assertObjectTypeCallProperty(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ObjectTypeCallProperty {\n assert(\"ObjectTypeCallProperty\", node, opts);\n}\nexport function assertObjectTypeIndexer(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ObjectTypeIndexer {\n assert(\"ObjectTypeIndexer\", node, opts);\n}\nexport function assertObjectTypeProperty(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ObjectTypeProperty {\n assert(\"ObjectTypeProperty\", node, opts);\n}\nexport function assertObjectTypeSpreadProperty(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ObjectTypeSpreadProperty {\n assert(\"ObjectTypeSpreadProperty\", node, opts);\n}\nexport function assertOpaqueType(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.OpaqueType {\n assert(\"OpaqueType\", node, opts);\n}\nexport function assertQualifiedTypeIdentifier(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.QualifiedTypeIdentifier {\n assert(\"QualifiedTypeIdentifier\", node, opts);\n}\nexport function assertStringLiteralTypeAnnotation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.StringLiteralTypeAnnotation {\n assert(\"StringLiteralTypeAnnotation\", node, opts);\n}\nexport function assertStringTypeAnnotation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.StringTypeAnnotation {\n assert(\"StringTypeAnnotation\", node, opts);\n}\nexport function assertSymbolTypeAnnotation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.SymbolTypeAnnotation {\n assert(\"SymbolTypeAnnotation\", node, opts);\n}\nexport function assertThisTypeAnnotation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ThisTypeAnnotation {\n assert(\"ThisTypeAnnotation\", node, opts);\n}\nexport function assertTupleTypeAnnotation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TupleTypeAnnotation {\n assert(\"TupleTypeAnnotation\", node, opts);\n}\nexport function assertTypeofTypeAnnotation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TypeofTypeAnnotation {\n assert(\"TypeofTypeAnnotation\", node, opts);\n}\nexport function assertTypeAlias(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TypeAlias {\n assert(\"TypeAlias\", node, opts);\n}\nexport function assertTypeAnnotation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TypeAnnotation {\n assert(\"TypeAnnotation\", node, opts);\n}\nexport function assertTypeCastExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TypeCastExpression {\n assert(\"TypeCastExpression\", node, opts);\n}\nexport function assertTypeParameter(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TypeParameter {\n assert(\"TypeParameter\", node, opts);\n}\nexport function assertTypeParameterDeclaration(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TypeParameterDeclaration {\n assert(\"TypeParameterDeclaration\", node, opts);\n}\nexport function assertTypeParameterInstantiation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TypeParameterInstantiation {\n assert(\"TypeParameterInstantiation\", node, opts);\n}\nexport function assertUnionTypeAnnotation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.UnionTypeAnnotation {\n assert(\"UnionTypeAnnotation\", node, opts);\n}\nexport function assertVariance(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Variance {\n assert(\"Variance\", node, opts);\n}\nexport function assertVoidTypeAnnotation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.VoidTypeAnnotation {\n assert(\"VoidTypeAnnotation\", node, opts);\n}\nexport function assertEnumDeclaration(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.EnumDeclaration {\n assert(\"EnumDeclaration\", node, opts);\n}\nexport function assertEnumBooleanBody(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.EnumBooleanBody {\n assert(\"EnumBooleanBody\", node, opts);\n}\nexport function assertEnumNumberBody(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.EnumNumberBody {\n assert(\"EnumNumberBody\", node, opts);\n}\nexport function assertEnumStringBody(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.EnumStringBody {\n assert(\"EnumStringBody\", node, opts);\n}\nexport function assertEnumSymbolBody(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.EnumSymbolBody {\n assert(\"EnumSymbolBody\", node, opts);\n}\nexport function assertEnumBooleanMember(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.EnumBooleanMember {\n assert(\"EnumBooleanMember\", node, opts);\n}\nexport function assertEnumNumberMember(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.EnumNumberMember {\n assert(\"EnumNumberMember\", node, opts);\n}\nexport function assertEnumStringMember(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.EnumStringMember {\n assert(\"EnumStringMember\", node, opts);\n}\nexport function assertEnumDefaultedMember(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.EnumDefaultedMember {\n assert(\"EnumDefaultedMember\", node, opts);\n}\nexport function assertIndexedAccessType(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.IndexedAccessType {\n assert(\"IndexedAccessType\", node, opts);\n}\nexport function assertOptionalIndexedAccessType(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.OptionalIndexedAccessType {\n assert(\"OptionalIndexedAccessType\", node, opts);\n}\nexport function assertJSXAttribute(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.JSXAttribute {\n assert(\"JSXAttribute\", node, opts);\n}\nexport function assertJSXClosingElement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.JSXClosingElement {\n assert(\"JSXClosingElement\", node, opts);\n}\nexport function assertJSXElement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.JSXElement {\n assert(\"JSXElement\", node, opts);\n}\nexport function assertJSXEmptyExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.JSXEmptyExpression {\n assert(\"JSXEmptyExpression\", node, opts);\n}\nexport function assertJSXExpressionContainer(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.JSXExpressionContainer {\n assert(\"JSXExpressionContainer\", node, opts);\n}\nexport function assertJSXSpreadChild(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.JSXSpreadChild {\n assert(\"JSXSpreadChild\", node, opts);\n}\nexport function assertJSXIdentifier(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.JSXIdentifier {\n assert(\"JSXIdentifier\", node, opts);\n}\nexport function assertJSXMemberExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.JSXMemberExpression {\n assert(\"JSXMemberExpression\", node, opts);\n}\nexport function assertJSXNamespacedName(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.JSXNamespacedName {\n assert(\"JSXNamespacedName\", node, opts);\n}\nexport function assertJSXOpeningElement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.JSXOpeningElement {\n assert(\"JSXOpeningElement\", node, opts);\n}\nexport function assertJSXSpreadAttribute(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.JSXSpreadAttribute {\n assert(\"JSXSpreadAttribute\", node, opts);\n}\nexport function assertJSXText(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.JSXText {\n assert(\"JSXText\", node, opts);\n}\nexport function assertJSXFragment(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.JSXFragment {\n assert(\"JSXFragment\", node, opts);\n}\nexport function assertJSXOpeningFragment(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.JSXOpeningFragment {\n assert(\"JSXOpeningFragment\", node, opts);\n}\nexport function assertJSXClosingFragment(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.JSXClosingFragment {\n assert(\"JSXClosingFragment\", node, opts);\n}\nexport function assertNoop(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Noop {\n assert(\"Noop\", node, opts);\n}\nexport function assertPlaceholder(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Placeholder {\n assert(\"Placeholder\", node, opts);\n}\nexport function assertV8IntrinsicIdentifier(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.V8IntrinsicIdentifier {\n assert(\"V8IntrinsicIdentifier\", node, opts);\n}\nexport function assertArgumentPlaceholder(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ArgumentPlaceholder {\n assert(\"ArgumentPlaceholder\", node, opts);\n}\nexport function assertBindExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.BindExpression {\n assert(\"BindExpression\", node, opts);\n}\nexport function assertDecorator(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Decorator {\n assert(\"Decorator\", node, opts);\n}\nexport function assertDoExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.DoExpression {\n assert(\"DoExpression\", node, opts);\n}\nexport function assertExportDefaultSpecifier(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ExportDefaultSpecifier {\n assert(\"ExportDefaultSpecifier\", node, opts);\n}\nexport function assertRecordExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.RecordExpression {\n assert(\"RecordExpression\", node, opts);\n}\nexport function assertTupleExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TupleExpression {\n assert(\"TupleExpression\", node, opts);\n}\nexport function assertDecimalLiteral(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.DecimalLiteral {\n assert(\"DecimalLiteral\", node, opts);\n}\nexport function assertModuleExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ModuleExpression {\n assert(\"ModuleExpression\", node, opts);\n}\nexport function assertTopicReference(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TopicReference {\n assert(\"TopicReference\", node, opts);\n}\nexport function assertPipelineTopicExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.PipelineTopicExpression {\n assert(\"PipelineTopicExpression\", node, opts);\n}\nexport function assertPipelineBareFunction(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.PipelineBareFunction {\n assert(\"PipelineBareFunction\", node, opts);\n}\nexport function assertPipelinePrimaryTopicReference(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.PipelinePrimaryTopicReference {\n assert(\"PipelinePrimaryTopicReference\", node, opts);\n}\nexport function assertVoidPattern(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.VoidPattern {\n assert(\"VoidPattern\", node, opts);\n}\nexport function assertTSParameterProperty(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSParameterProperty {\n assert(\"TSParameterProperty\", node, opts);\n}\nexport function assertTSDeclareFunction(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSDeclareFunction {\n assert(\"TSDeclareFunction\", node, opts);\n}\nexport function assertTSDeclareMethod(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSDeclareMethod {\n assert(\"TSDeclareMethod\", node, opts);\n}\nexport function assertTSQualifiedName(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSQualifiedName {\n assert(\"TSQualifiedName\", node, opts);\n}\nexport function assertTSCallSignatureDeclaration(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSCallSignatureDeclaration {\n assert(\"TSCallSignatureDeclaration\", node, opts);\n}\nexport function assertTSConstructSignatureDeclaration(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSConstructSignatureDeclaration {\n assert(\"TSConstructSignatureDeclaration\", node, opts);\n}\nexport function assertTSPropertySignature(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSPropertySignature {\n assert(\"TSPropertySignature\", node, opts);\n}\nexport function assertTSMethodSignature(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSMethodSignature {\n assert(\"TSMethodSignature\", node, opts);\n}\nexport function assertTSIndexSignature(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSIndexSignature {\n assert(\"TSIndexSignature\", node, opts);\n}\nexport function assertTSAnyKeyword(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSAnyKeyword {\n assert(\"TSAnyKeyword\", node, opts);\n}\nexport function assertTSBooleanKeyword(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSBooleanKeyword {\n assert(\"TSBooleanKeyword\", node, opts);\n}\nexport function assertTSBigIntKeyword(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSBigIntKeyword {\n assert(\"TSBigIntKeyword\", node, opts);\n}\nexport function assertTSIntrinsicKeyword(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSIntrinsicKeyword {\n assert(\"TSIntrinsicKeyword\", node, opts);\n}\nexport function assertTSNeverKeyword(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSNeverKeyword {\n assert(\"TSNeverKeyword\", node, opts);\n}\nexport function assertTSNullKeyword(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSNullKeyword {\n assert(\"TSNullKeyword\", node, opts);\n}\nexport function assertTSNumberKeyword(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSNumberKeyword {\n assert(\"TSNumberKeyword\", node, opts);\n}\nexport function assertTSObjectKeyword(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSObjectKeyword {\n assert(\"TSObjectKeyword\", node, opts);\n}\nexport function assertTSStringKeyword(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSStringKeyword {\n assert(\"TSStringKeyword\", node, opts);\n}\nexport function assertTSSymbolKeyword(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSSymbolKeyword {\n assert(\"TSSymbolKeyword\", node, opts);\n}\nexport function assertTSUndefinedKeyword(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSUndefinedKeyword {\n assert(\"TSUndefinedKeyword\", node, opts);\n}\nexport function assertTSUnknownKeyword(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSUnknownKeyword {\n assert(\"TSUnknownKeyword\", node, opts);\n}\nexport function assertTSVoidKeyword(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSVoidKeyword {\n assert(\"TSVoidKeyword\", node, opts);\n}\nexport function assertTSThisType(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSThisType {\n assert(\"TSThisType\", node, opts);\n}\nexport function assertTSFunctionType(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSFunctionType {\n assert(\"TSFunctionType\", node, opts);\n}\nexport function assertTSConstructorType(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSConstructorType {\n assert(\"TSConstructorType\", node, opts);\n}\nexport function assertTSTypeReference(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSTypeReference {\n assert(\"TSTypeReference\", node, opts);\n}\nexport function assertTSTypePredicate(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSTypePredicate {\n assert(\"TSTypePredicate\", node, opts);\n}\nexport function assertTSTypeQuery(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSTypeQuery {\n assert(\"TSTypeQuery\", node, opts);\n}\nexport function assertTSTypeLiteral(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSTypeLiteral {\n assert(\"TSTypeLiteral\", node, opts);\n}\nexport function assertTSArrayType(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSArrayType {\n assert(\"TSArrayType\", node, opts);\n}\nexport function assertTSTupleType(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSTupleType {\n assert(\"TSTupleType\", node, opts);\n}\nexport function assertTSOptionalType(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSOptionalType {\n assert(\"TSOptionalType\", node, opts);\n}\nexport function assertTSRestType(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSRestType {\n assert(\"TSRestType\", node, opts);\n}\nexport function assertTSNamedTupleMember(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSNamedTupleMember {\n assert(\"TSNamedTupleMember\", node, opts);\n}\nexport function assertTSUnionType(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSUnionType {\n assert(\"TSUnionType\", node, opts);\n}\nexport function assertTSIntersectionType(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSIntersectionType {\n assert(\"TSIntersectionType\", node, opts);\n}\nexport function assertTSConditionalType(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSConditionalType {\n assert(\"TSConditionalType\", node, opts);\n}\nexport function assertTSInferType(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSInferType {\n assert(\"TSInferType\", node, opts);\n}\nexport function assertTSParenthesizedType(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSParenthesizedType {\n assert(\"TSParenthesizedType\", node, opts);\n}\nexport function assertTSTypeOperator(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSTypeOperator {\n assert(\"TSTypeOperator\", node, opts);\n}\nexport function assertTSIndexedAccessType(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSIndexedAccessType {\n assert(\"TSIndexedAccessType\", node, opts);\n}\nexport function assertTSMappedType(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSMappedType {\n assert(\"TSMappedType\", node, opts);\n}\nexport function assertTSTemplateLiteralType(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSTemplateLiteralType {\n assert(\"TSTemplateLiteralType\", node, opts);\n}\nexport function assertTSLiteralType(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSLiteralType {\n assert(\"TSLiteralType\", node, opts);\n}\nexport function assertTSExpressionWithTypeArguments(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSExpressionWithTypeArguments {\n assert(\"TSExpressionWithTypeArguments\", node, opts);\n}\nexport function assertTSInterfaceDeclaration(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSInterfaceDeclaration {\n assert(\"TSInterfaceDeclaration\", node, opts);\n}\nexport function assertTSInterfaceBody(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSInterfaceBody {\n assert(\"TSInterfaceBody\", node, opts);\n}\nexport function assertTSTypeAliasDeclaration(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSTypeAliasDeclaration {\n assert(\"TSTypeAliasDeclaration\", node, opts);\n}\nexport function assertTSInstantiationExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSInstantiationExpression {\n assert(\"TSInstantiationExpression\", node, opts);\n}\nexport function assertTSAsExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSAsExpression {\n assert(\"TSAsExpression\", node, opts);\n}\nexport function assertTSSatisfiesExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSSatisfiesExpression {\n assert(\"TSSatisfiesExpression\", node, opts);\n}\nexport function assertTSTypeAssertion(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSTypeAssertion {\n assert(\"TSTypeAssertion\", node, opts);\n}\nexport function assertTSEnumBody(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSEnumBody {\n assert(\"TSEnumBody\", node, opts);\n}\nexport function assertTSEnumDeclaration(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSEnumDeclaration {\n assert(\"TSEnumDeclaration\", node, opts);\n}\nexport function assertTSEnumMember(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSEnumMember {\n assert(\"TSEnumMember\", node, opts);\n}\nexport function assertTSModuleDeclaration(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSModuleDeclaration {\n assert(\"TSModuleDeclaration\", node, opts);\n}\nexport function assertTSModuleBlock(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSModuleBlock {\n assert(\"TSModuleBlock\", node, opts);\n}\nexport function assertTSImportType(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSImportType {\n assert(\"TSImportType\", node, opts);\n}\nexport function assertTSImportEqualsDeclaration(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSImportEqualsDeclaration {\n assert(\"TSImportEqualsDeclaration\", node, opts);\n}\nexport function assertTSExternalModuleReference(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSExternalModuleReference {\n assert(\"TSExternalModuleReference\", node, opts);\n}\nexport function assertTSNonNullExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSNonNullExpression {\n assert(\"TSNonNullExpression\", node, opts);\n}\nexport function assertTSExportAssignment(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSExportAssignment {\n assert(\"TSExportAssignment\", node, opts);\n}\nexport function assertTSNamespaceExportDeclaration(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSNamespaceExportDeclaration {\n assert(\"TSNamespaceExportDeclaration\", node, opts);\n}\nexport function assertTSTypeAnnotation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSTypeAnnotation {\n assert(\"TSTypeAnnotation\", node, opts);\n}\nexport function assertTSTypeParameterInstantiation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSTypeParameterInstantiation {\n assert(\"TSTypeParameterInstantiation\", node, opts);\n}\nexport function assertTSTypeParameterDeclaration(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSTypeParameterDeclaration {\n assert(\"TSTypeParameterDeclaration\", node, opts);\n}\nexport function assertTSTypeParameter(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSTypeParameter {\n assert(\"TSTypeParameter\", node, opts);\n}\nexport function assertStandardized(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Standardized {\n assert(\"Standardized\", node, opts);\n}\nexport function assertExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Expression {\n assert(\"Expression\", node, opts);\n}\nexport function assertBinary(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Binary {\n assert(\"Binary\", node, opts);\n}\nexport function assertScopable(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Scopable {\n assert(\"Scopable\", node, opts);\n}\nexport function assertBlockParent(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.BlockParent {\n assert(\"BlockParent\", node, opts);\n}\nexport function assertBlock(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Block {\n assert(\"Block\", node, opts);\n}\nexport function assertStatement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Statement {\n assert(\"Statement\", node, opts);\n}\nexport function assertTerminatorless(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Terminatorless {\n assert(\"Terminatorless\", node, opts);\n}\nexport function assertCompletionStatement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.CompletionStatement {\n assert(\"CompletionStatement\", node, opts);\n}\nexport function assertConditional(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Conditional {\n assert(\"Conditional\", node, opts);\n}\nexport function assertLoop(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Loop {\n assert(\"Loop\", node, opts);\n}\nexport function assertWhile(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.While {\n assert(\"While\", node, opts);\n}\nexport function assertExpressionWrapper(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ExpressionWrapper {\n assert(\"ExpressionWrapper\", node, opts);\n}\nexport function assertFor(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.For {\n assert(\"For\", node, opts);\n}\nexport function assertForXStatement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ForXStatement {\n assert(\"ForXStatement\", node, opts);\n}\nexport function assertFunction(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Function {\n assert(\"Function\", node, opts);\n}\nexport function assertFunctionParent(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.FunctionParent {\n assert(\"FunctionParent\", node, opts);\n}\nexport function assertPureish(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Pureish {\n assert(\"Pureish\", node, opts);\n}\nexport function assertDeclaration(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Declaration {\n assert(\"Declaration\", node, opts);\n}\nexport function assertFunctionParameter(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.FunctionParameter {\n assert(\"FunctionParameter\", node, opts);\n}\nexport function assertPatternLike(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.PatternLike {\n assert(\"PatternLike\", node, opts);\n}\nexport function assertLVal(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.LVal {\n assert(\"LVal\", node, opts);\n}\nexport function assertTSEntityName(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSEntityName {\n assert(\"TSEntityName\", node, opts);\n}\nexport function assertLiteral(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Literal {\n assert(\"Literal\", node, opts);\n}\nexport function assertImmutable(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Immutable {\n assert(\"Immutable\", node, opts);\n}\nexport function assertUserWhitespacable(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.UserWhitespacable {\n assert(\"UserWhitespacable\", node, opts);\n}\nexport function assertMethod(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Method {\n assert(\"Method\", node, opts);\n}\nexport function assertObjectMember(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ObjectMember {\n assert(\"ObjectMember\", node, opts);\n}\nexport function assertProperty(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Property {\n assert(\"Property\", node, opts);\n}\nexport function assertUnaryLike(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.UnaryLike {\n assert(\"UnaryLike\", node, opts);\n}\nexport function assertPattern(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Pattern {\n assert(\"Pattern\", node, opts);\n}\nexport function assertClass(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Class {\n assert(\"Class\", node, opts);\n}\nexport function assertImportOrExportDeclaration(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ImportOrExportDeclaration {\n assert(\"ImportOrExportDeclaration\", node, opts);\n}\nexport function assertExportDeclaration(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ExportDeclaration {\n assert(\"ExportDeclaration\", node, opts);\n}\nexport function assertModuleSpecifier(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ModuleSpecifier {\n assert(\"ModuleSpecifier\", node, opts);\n}\nexport function assertAccessor(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Accessor {\n assert(\"Accessor\", node, opts);\n}\nexport function assertPrivate(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Private {\n assert(\"Private\", node, opts);\n}\nexport function assertFlow(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Flow {\n assert(\"Flow\", node, opts);\n}\nexport function assertFlowType(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.FlowType {\n assert(\"FlowType\", node, opts);\n}\nexport function assertFlowBaseAnnotation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.FlowBaseAnnotation {\n assert(\"FlowBaseAnnotation\", node, opts);\n}\nexport function assertFlowDeclaration(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.FlowDeclaration {\n assert(\"FlowDeclaration\", node, opts);\n}\nexport function assertFlowPredicate(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.FlowPredicate {\n assert(\"FlowPredicate\", node, opts);\n}\nexport function assertEnumBody(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.EnumBody {\n assert(\"EnumBody\", node, opts);\n}\nexport function assertEnumMember(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.EnumMember {\n assert(\"EnumMember\", node, opts);\n}\nexport function assertJSX(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.JSX {\n assert(\"JSX\", node, opts);\n}\nexport function assertMiscellaneous(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Miscellaneous {\n assert(\"Miscellaneous\", node, opts);\n}\nexport function assertTypeScript(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TypeScript {\n assert(\"TypeScript\", node, opts);\n}\nexport function assertTSTypeElement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSTypeElement {\n assert(\"TSTypeElement\", node, opts);\n}\nexport function assertTSType(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSType {\n assert(\"TSType\", node, opts);\n}\nexport function assertTSBaseType(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSBaseType {\n assert(\"TSBaseType\", node, opts);\n}\nexport function assertNumberLiteral(node: any, opts: any): void {\n deprecationWarning(\"assertNumberLiteral\", \"assertNumericLiteral\");\n assert(\"NumberLiteral\", node, opts);\n}\nexport function assertRegexLiteral(node: any, opts: any): void {\n deprecationWarning(\"assertRegexLiteral\", \"assertRegExpLiteral\");\n assert(\"RegexLiteral\", node, opts);\n}\nexport function assertRestProperty(node: any, opts: any): void {\n deprecationWarning(\"assertRestProperty\", \"assertRestElement\");\n assert(\"RestProperty\", node, opts);\n}\nexport function assertSpreadProperty(node: any, opts: any): void {\n deprecationWarning(\"assertSpreadProperty\", \"assertSpreadElement\");\n assert(\"SpreadProperty\", node, opts);\n}\nexport function assertModuleDeclaration(node: any, opts: any): void {\n deprecationWarning(\n \"assertModuleDeclaration\",\n \"assertImportOrExportDeclaration\",\n );\n assert(\"ModuleDeclaration\", node, opts);\n}\n","import {\n anyTypeAnnotation,\n stringTypeAnnotation,\n numberTypeAnnotation,\n voidTypeAnnotation,\n booleanTypeAnnotation,\n genericTypeAnnotation,\n identifier,\n} from \"../generated/index.ts\";\nimport type * as t from \"../../index.ts\";\n\nexport default createTypeAnnotationBasedOnTypeof as {\n (type: \"string\"): t.StringTypeAnnotation;\n (type: \"number\"): t.NumberTypeAnnotation;\n (type: \"undefined\"): t.VoidTypeAnnotation;\n (type: \"boolean\"): t.BooleanTypeAnnotation;\n (type: \"function\"): t.GenericTypeAnnotation;\n (type: \"object\"): t.GenericTypeAnnotation;\n (type: \"symbol\"): t.GenericTypeAnnotation;\n (type: \"bigint\"): t.AnyTypeAnnotation;\n};\n\n/**\n * Create a type annotation based on typeof expression.\n */\nfunction createTypeAnnotationBasedOnTypeof(type: string): t.FlowType {\n switch (type) {\n case \"string\":\n return stringTypeAnnotation();\n case \"number\":\n return numberTypeAnnotation();\n case \"undefined\":\n return voidTypeAnnotation();\n case \"boolean\":\n return booleanTypeAnnotation();\n case \"function\":\n return genericTypeAnnotation(identifier(\"Function\"));\n case \"object\":\n return genericTypeAnnotation(identifier(\"Object\"));\n case \"symbol\":\n return genericTypeAnnotation(identifier(\"Symbol\"));\n case \"bigint\":\n // todo: use BigInt annotation when Flow supports BigInt\n // https://github.com/facebook/flow/issues/6639\n return anyTypeAnnotation();\n }\n throw new Error(\"Invalid typeof value: \" + type);\n}\n","import {\n isAnyTypeAnnotation,\n isGenericTypeAnnotation,\n isUnionTypeAnnotation,\n isFlowBaseAnnotation,\n isIdentifier,\n} from \"../../validators/generated/index.ts\";\nimport type * as t from \"../../index.ts\";\n\nfunction getQualifiedName(node: t.GenericTypeAnnotation[\"id\"]): string {\n return isIdentifier(node)\n ? node.name\n : `${node.id.name}.${getQualifiedName(node.qualification)}`;\n}\n\n/**\n * Dedupe type annotations.\n */\nexport default function removeTypeDuplicates(\n nodesIn: readonly (t.FlowType | false | null | undefined)[],\n): t.FlowType[] {\n const nodes = Array.from(nodesIn);\n\n const generics = new Map<string, t.GenericTypeAnnotation>();\n const bases = new Map<t.FlowBaseAnnotation[\"type\"], t.FlowBaseAnnotation>();\n\n // store union type groups to circular references\n const typeGroups = new Set<t.FlowType[]>();\n\n const types: t.FlowType[] = [];\n\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n if (!node) continue;\n\n // detect duplicates\n if (types.includes(node)) {\n continue;\n }\n\n // this type matches anything\n if (isAnyTypeAnnotation(node)) {\n return [node];\n }\n\n if (isFlowBaseAnnotation(node)) {\n bases.set(node.type, node);\n continue;\n }\n\n if (isUnionTypeAnnotation(node)) {\n if (!typeGroups.has(node.types)) {\n nodes.push(...node.types);\n typeGroups.add(node.types);\n }\n continue;\n }\n\n // find a matching generic type and merge and deduplicate the type parameters\n if (isGenericTypeAnnotation(node)) {\n const name = getQualifiedName(node.id);\n\n if (generics.has(name)) {\n let existing: t.Flow = generics.get(name);\n if (existing.typeParameters) {\n if (node.typeParameters) {\n existing.typeParameters.params.push(...node.typeParameters.params);\n existing.typeParameters.params = removeTypeDuplicates(\n existing.typeParameters.params,\n );\n }\n } else {\n existing = node.typeParameters;\n }\n } else {\n generics.set(name, node);\n }\n\n continue;\n }\n\n types.push(node);\n }\n\n // add back in bases\n for (const [, baseType] of bases) {\n types.push(baseType);\n }\n\n // add back in generics\n for (const [, genericName] of generics) {\n types.push(genericName);\n }\n\n return types;\n}\n","import { unionTypeAnnotation } from \"../generated/index.ts\";\nimport removeTypeDuplicates from \"../../modifications/flow/removeTypeDuplicates.ts\";\nimport type * as t from \"../../index.ts\";\n\n/**\n * Takes an array of `types` and flattens them, removing duplicates and\n * returns a `UnionTypeAnnotation` node containing them.\n */\nexport default function createFlowUnionType<T extends t.FlowType>(\n types: [T] | T[],\n): T | t.UnionTypeAnnotation {\n const flattened = removeTypeDuplicates(types);\n\n if (flattened.length === 1) {\n return flattened[0] as T;\n } else {\n return unionTypeAnnotation(flattened);\n }\n}\n","import {\n isIdentifier,\n isThisExpression,\n isTSAnyKeyword,\n isTSTypeReference,\n isTSUnionType,\n isTSBaseType,\n} from \"../../validators/generated/index.ts\";\nimport type * as t from \"../../index.ts\";\n\nfunction getQualifiedName(node: t.TSTypeReference[\"typeName\"]): string {\n return isIdentifier(node)\n ? node.name\n : isThisExpression(node)\n ? \"this\"\n : `${node.right.name}.${getQualifiedName(node.left)}`;\n}\n\n/**\n * Dedupe type annotations.\n */\nexport default function removeTypeDuplicates(\n nodesIn: readonly t.TSType[],\n): t.TSType[] {\n const nodes = Array.from(nodesIn);\n\n const generics = new Map<string, t.TSTypeReference>();\n const bases = new Map<t.TSBaseType[\"type\"], t.TSBaseType>();\n\n // store union type groups to circular references\n const typeGroups = new Set<t.TSType[]>();\n\n const types: t.TSType[] = [];\n\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n if (!node) continue;\n\n // detect duplicates\n if (types.includes(node)) {\n continue;\n }\n\n // this type matches anything\n if (isTSAnyKeyword(node)) {\n return [node];\n }\n\n // Analogue of FlowBaseAnnotation\n if (isTSBaseType(node)) {\n bases.set(node.type, node);\n continue;\n }\n\n if (isTSUnionType(node)) {\n if (!typeGroups.has(node.types)) {\n nodes.push(...node.types);\n typeGroups.add(node.types);\n }\n continue;\n }\n\n // todo: support merging tuples: number[]\n const typeArgumentsKey = process.env.BABEL_8_BREAKING\n ? \"typeArguments\"\n : \"typeParameters\";\n // @ts-ignore(Babel 7 vs Babel 8) Babel 8 AST\n if (isTSTypeReference(node) && node[typeArgumentsKey]) {\n // @ts-ignore(Babel 7 vs Babel 8) Babel 8 AST\n const typeArguments = node[typeArgumentsKey];\n const name = getQualifiedName(node.typeName);\n\n if (generics.has(name)) {\n let existing: t.TypeScript = generics.get(name);\n // @ts-ignore(Babel 7 vs Babel 8) Babel 8 AST\n const existingTypeArguments = existing[typeArgumentsKey];\n if (existingTypeArguments) {\n existingTypeArguments.params.push(...typeArguments.params);\n existingTypeArguments.params = removeTypeDuplicates(\n existingTypeArguments.params,\n );\n } else {\n existing = typeArguments;\n }\n } else {\n generics.set(name, node);\n }\n\n continue;\n }\n\n types.push(node);\n }\n\n // add back in bases\n for (const [, baseType] of bases) {\n types.push(baseType);\n }\n\n // add back in generics\n for (const [, genericName] of generics) {\n types.push(genericName);\n }\n\n return types;\n}\n","import { tsUnionType } from \"../generated/index.ts\";\nimport removeTypeDuplicates from \"../../modifications/typescript/removeTypeDuplicates.ts\";\nimport { isTSTypeAnnotation } from \"../../validators/generated/index.ts\";\nimport type * as t from \"../../index.ts\";\n\n/**\n * Takes an array of `types` and flattens them, removing duplicates and\n * returns a `UnionTypeAnnotation` node containing them.\n */\nexport default function createTSUnionType(\n typeAnnotations: (t.TSTypeAnnotation | t.TSType)[],\n): t.TSType {\n const types = typeAnnotations.map(type => {\n return isTSTypeAnnotation(type) ? type.typeAnnotation : type;\n });\n const flattened = removeTypeDuplicates(types);\n\n if (flattened.length === 1) {\n return flattened[0];\n } else {\n return tsUnionType(flattened);\n }\n}\n","import { numericLiteral, unaryExpression } from \"./generated/index.ts\";\n\nexport function buildUndefinedNode() {\n return unaryExpression(\"void\", numericLiteral(0), true);\n}\n","import { NODE_FIELDS } from \"../definitions/index.ts\";\nimport type * as t from \"../index.ts\";\nimport { isFile, isIdentifier } from \"../validators/generated/index.ts\";\n\nconst { hasOwn } = process.env.BABEL_8_BREAKING\n ? Object\n : { hasOwn: Function.call.bind(Object.prototype.hasOwnProperty) };\n\ntype CommentCache = Map<t.Comment, t.Comment>;\n\n// This function will never be called for comments, only for real nodes.\nfunction cloneIfNode(\n obj: t.Node | undefined | null,\n deep: boolean,\n withoutLoc: boolean,\n commentsCache: CommentCache,\n) {\n if (obj && typeof obj.type === \"string\") {\n return cloneNodeInternal(obj, deep, withoutLoc, commentsCache);\n }\n\n return obj;\n}\n\nfunction cloneIfNodeOrArray(\n obj: t.Node | undefined | null | (t.Node | undefined | null)[],\n deep: boolean,\n withoutLoc: boolean,\n commentsCache: CommentCache,\n) {\n if (Array.isArray(obj)) {\n return obj.map(node => cloneIfNode(node, deep, withoutLoc, commentsCache));\n }\n return cloneIfNode(obj, deep, withoutLoc, commentsCache);\n}\n\n/**\n * Create a clone of a `node` including only properties belonging to the node.\n * If the second parameter is `false`, cloneNode performs a shallow clone.\n * If the third parameter is true, the cloned nodes exclude location properties.\n */\nexport default function cloneNode<T extends t.Node>(\n node: T,\n deep: boolean = true,\n withoutLoc: boolean = false,\n): T {\n return cloneNodeInternal(node, deep, withoutLoc, new Map());\n}\n\nfunction cloneNodeInternal<T extends t.Node>(\n node: T,\n deep: boolean = true,\n withoutLoc: boolean = false,\n commentsCache: CommentCache,\n): T {\n if (!node) return node;\n\n const { type } = node;\n const newNode: any = { type: node.type };\n\n // Special-case identifiers since they are the most cloned nodes.\n if (isIdentifier(node)) {\n newNode.name = node.name;\n\n if (hasOwn(node, \"optional\") && typeof node.optional === \"boolean\") {\n newNode.optional = node.optional;\n }\n\n if (hasOwn(node, \"typeAnnotation\")) {\n newNode.typeAnnotation = deep\n ? cloneIfNodeOrArray(\n node.typeAnnotation,\n true,\n withoutLoc,\n commentsCache,\n )\n : node.typeAnnotation;\n }\n\n if (hasOwn(node, \"decorators\")) {\n newNode.decorators = deep\n ? cloneIfNodeOrArray(node.decorators, true, withoutLoc, commentsCache)\n : node.decorators;\n }\n } else if (!hasOwn(NODE_FIELDS, type)) {\n throw new Error(`Unknown node type: \"${type}\"`);\n } else {\n for (const field of Object.keys(NODE_FIELDS[type])) {\n if (hasOwn(node, field)) {\n if (deep) {\n newNode[field] =\n isFile(node) && field === \"comments\"\n ? maybeCloneComments(\n node.comments,\n deep,\n withoutLoc,\n commentsCache,\n )\n : cloneIfNodeOrArray(\n // @ts-expect-error node[field] has been guarded by has check\n node[field],\n true,\n withoutLoc,\n commentsCache,\n );\n } else {\n newNode[field] =\n // @ts-expect-error node[field] has been guarded by has check\n node[field];\n }\n }\n }\n }\n\n if (hasOwn(node, \"loc\")) {\n if (withoutLoc) {\n newNode.loc = null;\n } else {\n newNode.loc = node.loc;\n }\n }\n if (hasOwn(node, \"leadingComments\")) {\n newNode.leadingComments = maybeCloneComments(\n node.leadingComments,\n deep,\n withoutLoc,\n commentsCache,\n );\n }\n if (hasOwn(node, \"innerComments\")) {\n newNode.innerComments = maybeCloneComments(\n node.innerComments,\n deep,\n withoutLoc,\n commentsCache,\n );\n }\n if (hasOwn(node, \"trailingComments\")) {\n newNode.trailingComments = maybeCloneComments(\n node.trailingComments,\n deep,\n withoutLoc,\n commentsCache,\n );\n }\n if (hasOwn(node, \"extra\")) {\n newNode.extra = {\n ...node.extra,\n };\n }\n\n return newNode;\n}\n\nfunction maybeCloneComments<T extends t.Comment>(\n comments: readonly T[] | null,\n deep: boolean,\n withoutLoc: boolean,\n commentsCache: Map<T, T>,\n): readonly T[] | null {\n if (!comments || !deep) {\n return comments;\n }\n return comments.map(comment => {\n const cache = commentsCache.get(comment);\n if (cache) return cache;\n\n const { type, value, loc } = comment;\n\n const ret = { type, value, loc } as T;\n if (withoutLoc) {\n ret.loc = null;\n }\n\n commentsCache.set(comment, ret);\n\n return ret;\n });\n}\n","import cloneNode from \"./cloneNode.ts\";\nimport type * as t from \"../index.ts\";\n\n/**\n * Create a shallow clone of a `node`, including only\n * properties belonging to the node.\n * @deprecated Use t.cloneNode instead.\n */\nexport default function clone<T extends t.Node>(node: T): T {\n return cloneNode(node, /* deep */ false);\n}\n","import cloneNode from \"./cloneNode.ts\";\nimport type * as t from \"../index.ts\";\n\n/**\n * Create a deep clone of a `node` and all of it's child nodes\n * including only properties belonging to the node.\n * @deprecated Use t.cloneNode instead.\n */\nexport default function cloneDeep<T extends t.Node>(node: T): T {\n return cloneNode(node);\n}\n","import cloneNode from \"./cloneNode.ts\";\nimport type * as t from \"../index.ts\";\n/**\n * Create a deep clone of a `node` and all of it's child nodes\n * including only properties belonging to the node.\n * excluding `_private` and location properties.\n */\nexport default function cloneDeepWithoutLoc<T extends t.Node>(node: T): T {\n return cloneNode(node, /* deep */ true, /* withoutLoc */ true);\n}\n","import cloneNode from \"./cloneNode.ts\";\nimport type * as t from \"../index.ts\";\n\n/**\n * Create a shallow clone of a `node` excluding `_private` and location properties.\n */\nexport default function cloneWithoutLoc<T extends t.Node>(node: T): T {\n return cloneNode(node, /* deep */ false, /* withoutLoc */ true);\n}\n","import type * as t from \"../index.ts\";\n\n/**\n * Add comments of certain type to a node.\n */\nexport default function addComments<T extends t.Node>(\n node: T,\n type: t.CommentTypeShorthand,\n comments: t.Comment[],\n): T {\n if (!comments || !node) return node;\n\n const key = `${type}Comments` as const;\n\n if (node[key]) {\n if (type === \"leading\") {\n node[key] = comments.concat(node[key]);\n } else {\n node[key].push(...comments);\n }\n } else {\n node[key] = comments;\n }\n\n return node;\n}\n","import addComments from \"./addComments.ts\";\nimport type * as t from \"../index.ts\";\n\n/**\n * Add comment of certain type to a node.\n */\nexport default function addComment<T extends t.Node>(\n node: T,\n type: t.CommentTypeShorthand,\n content: string,\n line?: boolean,\n): T {\n return addComments(node, type, [\n {\n type: line ? \"CommentLine\" : \"CommentBlock\",\n value: content,\n } as t.Comment,\n ]);\n}\n","import type * as t from \"../index.ts\";\n\nexport default function inherit<\n C extends t.Node | undefined,\n P extends t.Node | undefined,\n>(key: keyof C & keyof P, child: C, parent: P): void {\n if (child && parent) {\n // @ts-expect-error Could further refine key definitions\n child[key] = Array.from(\n new Set([].concat(child[key], parent[key]).filter(Boolean)),\n );\n }\n}\n","import inherit from \"../utils/inherit.ts\";\nimport type * as t from \"../index.ts\";\n\nexport default function inheritInnerComments(\n child: t.Node,\n parent: t.Node,\n): void {\n inherit(\"innerComments\", child, parent);\n}\n","import inherit from \"../utils/inherit.ts\";\nimport type * as t from \"../index.ts\";\n\nexport default function inheritLeadingComments(\n child: t.Node,\n parent: t.Node,\n): void {\n inherit(\"leadingComments\", child, parent);\n}\n","import inherit from \"../utils/inherit.ts\";\nimport type * as t from \"../index.ts\";\n\nexport default function inheritTrailingComments(\n child: t.Node,\n parent: t.Node,\n): void {\n inherit(\"trailingComments\", child, parent);\n}\n","import inheritTrailingComments from \"./inheritTrailingComments.ts\";\nimport inheritLeadingComments from \"./inheritLeadingComments.ts\";\nimport inheritInnerComments from \"./inheritInnerComments.ts\";\nimport type * as t from \"../index.ts\";\n\n/**\n * Inherit all unique comments from `parent` node to `child` node.\n */\nexport default function inheritsComments<T extends t.Node>(\n child: T,\n parent: t.Node,\n): T {\n inheritTrailingComments(child, parent);\n inheritLeadingComments(child, parent);\n inheritInnerComments(child, parent);\n\n return child;\n}\n","import { COMMENT_KEYS } from \"../constants/index.ts\";\nimport type * as t from \"../index.ts\";\n\n/**\n * Remove comment properties from a node.\n */\nexport default function removeComments<T extends t.Node>(node: T): T {\n COMMENT_KEYS.forEach(key => {\n node[key] = null;\n });\n\n return node;\n}\n","/*\n * This file is auto-generated! Do not modify it directly.\n * To re-generate run 'make build'\n */\nimport { FLIPPED_ALIAS_KEYS } from \"../../definitions/index.ts\";\n\nexport const STANDARDIZED_TYPES = FLIPPED_ALIAS_KEYS[\"Standardized\"];\nexport const EXPRESSION_TYPES = FLIPPED_ALIAS_KEYS[\"Expression\"];\nexport const BINARY_TYPES = FLIPPED_ALIAS_KEYS[\"Binary\"];\nexport const SCOPABLE_TYPES = FLIPPED_ALIAS_KEYS[\"Scopable\"];\nexport const BLOCKPARENT_TYPES = FLIPPED_ALIAS_KEYS[\"BlockParent\"];\nexport const BLOCK_TYPES = FLIPPED_ALIAS_KEYS[\"Block\"];\nexport const STATEMENT_TYPES = FLIPPED_ALIAS_KEYS[\"Statement\"];\nexport const TERMINATORLESS_TYPES = FLIPPED_ALIAS_KEYS[\"Terminatorless\"];\nexport const COMPLETIONSTATEMENT_TYPES =\n FLIPPED_ALIAS_KEYS[\"CompletionStatement\"];\nexport const CONDITIONAL_TYPES = FLIPPED_ALIAS_KEYS[\"Conditional\"];\nexport const LOOP_TYPES = FLIPPED_ALIAS_KEYS[\"Loop\"];\nexport const WHILE_TYPES = FLIPPED_ALIAS_KEYS[\"While\"];\nexport const EXPRESSIONWRAPPER_TYPES = FLIPPED_ALIAS_KEYS[\"ExpressionWrapper\"];\nexport const FOR_TYPES = FLIPPED_ALIAS_KEYS[\"For\"];\nexport const FORXSTATEMENT_TYPES = FLIPPED_ALIAS_KEYS[\"ForXStatement\"];\nexport const FUNCTION_TYPES = FLIPPED_ALIAS_KEYS[\"Function\"];\nexport const FUNCTIONPARENT_TYPES = FLIPPED_ALIAS_KEYS[\"FunctionParent\"];\nexport const PUREISH_TYPES = FLIPPED_ALIAS_KEYS[\"Pureish\"];\nexport const DECLARATION_TYPES = FLIPPED_ALIAS_KEYS[\"Declaration\"];\nexport const FUNCTIONPARAMETER_TYPES = FLIPPED_ALIAS_KEYS[\"FunctionParameter\"];\nexport const PATTERNLIKE_TYPES = FLIPPED_ALIAS_KEYS[\"PatternLike\"];\nexport const LVAL_TYPES = FLIPPED_ALIAS_KEYS[\"LVal\"];\nexport const TSENTITYNAME_TYPES = FLIPPED_ALIAS_KEYS[\"TSEntityName\"];\nexport const LITERAL_TYPES = FLIPPED_ALIAS_KEYS[\"Literal\"];\nexport const IMMUTABLE_TYPES = FLIPPED_ALIAS_KEYS[\"Immutable\"];\nexport const USERWHITESPACABLE_TYPES = FLIPPED_ALIAS_KEYS[\"UserWhitespacable\"];\nexport const METHOD_TYPES = FLIPPED_ALIAS_KEYS[\"Method\"];\nexport const OBJECTMEMBER_TYPES = FLIPPED_ALIAS_KEYS[\"ObjectMember\"];\nexport const PROPERTY_TYPES = FLIPPED_ALIAS_KEYS[\"Property\"];\nexport const UNARYLIKE_TYPES = FLIPPED_ALIAS_KEYS[\"UnaryLike\"];\nexport const PATTERN_TYPES = FLIPPED_ALIAS_KEYS[\"Pattern\"];\nexport const CLASS_TYPES = FLIPPED_ALIAS_KEYS[\"Class\"];\nexport const IMPORTOREXPORTDECLARATION_TYPES =\n FLIPPED_ALIAS_KEYS[\"ImportOrExportDeclaration\"];\nexport const EXPORTDECLARATION_TYPES = FLIPPED_ALIAS_KEYS[\"ExportDeclaration\"];\nexport const MODULESPECIFIER_TYPES = FLIPPED_ALIAS_KEYS[\"ModuleSpecifier\"];\nexport const ACCESSOR_TYPES = FLIPPED_ALIAS_KEYS[\"Accessor\"];\nexport const PRIVATE_TYPES = FLIPPED_ALIAS_KEYS[\"Private\"];\nexport const FLOW_TYPES = FLIPPED_ALIAS_KEYS[\"Flow\"];\nexport const FLOWTYPE_TYPES = FLIPPED_ALIAS_KEYS[\"FlowType\"];\nexport const FLOWBASEANNOTATION_TYPES =\n FLIPPED_ALIAS_KEYS[\"FlowBaseAnnotation\"];\nexport const FLOWDECLARATION_TYPES = FLIPPED_ALIAS_KEYS[\"FlowDeclaration\"];\nexport const FLOWPREDICATE_TYPES = FLIPPED_ALIAS_KEYS[\"FlowPredicate\"];\nexport const ENUMBODY_TYPES = FLIPPED_ALIAS_KEYS[\"EnumBody\"];\nexport const ENUMMEMBER_TYPES = FLIPPED_ALIAS_KEYS[\"EnumMember\"];\nexport const JSX_TYPES = FLIPPED_ALIAS_KEYS[\"JSX\"];\nexport const MISCELLANEOUS_TYPES = FLIPPED_ALIAS_KEYS[\"Miscellaneous\"];\nexport const TYPESCRIPT_TYPES = FLIPPED_ALIAS_KEYS[\"TypeScript\"];\nexport const TSTYPEELEMENT_TYPES = FLIPPED_ALIAS_KEYS[\"TSTypeElement\"];\nexport const TSTYPE_TYPES = FLIPPED_ALIAS_KEYS[\"TSType\"];\nexport const TSBASETYPE_TYPES = FLIPPED_ALIAS_KEYS[\"TSBaseType\"];\n/**\n * @deprecated migrate to IMPORTOREXPORTDECLARATION_TYPES.\n */\nexport const MODULEDECLARATION_TYPES = IMPORTOREXPORTDECLARATION_TYPES;\n","import {\n isBlockStatement,\n isFunction,\n isEmptyStatement,\n isStatement,\n} from \"../validators/generated/index.ts\";\nimport {\n returnStatement,\n expressionStatement,\n blockStatement,\n} from \"../builders/generated/index.ts\";\nimport type * as t from \"../index.ts\";\n\nexport default function toBlock(\n node: t.Statement | t.Expression,\n parent?: t.Node,\n): t.BlockStatement {\n if (isBlockStatement(node)) {\n return node;\n }\n\n let blockNodes: t.Statement[] = [];\n\n if (isEmptyStatement(node)) {\n blockNodes = [];\n } else {\n if (!isStatement(node)) {\n if (isFunction(parent)) {\n node = returnStatement(node);\n } else {\n node = expressionStatement(node);\n }\n }\n\n blockNodes = [node];\n }\n\n return blockStatement(blockNodes);\n}\n","import toBlock from \"./toBlock.ts\";\nimport type * as t from \"../index.ts\";\n\n/**\n * Ensure the `key` (defaults to \"body\") of a `node` is a block.\n * Casting it to a block if it is not.\n *\n * Returns the BlockStatement\n */\nexport default function ensureBlock(\n node: t.Node,\n key: string = \"body\",\n): t.BlockStatement {\n // @ts-expect-error Fixme: key may not exist in node, consider remove key = \"body\"\n const result = toBlock(node[key], node);\n // @ts-expect-error Fixme: key may not exist in node, consider remove key = \"body\"\n node[key] = result;\n return result;\n}\n","import isValidIdentifier from \"../validators/isValidIdentifier.ts\";\nimport { isIdentifierChar } from \"@babel/helper-validator-identifier\";\n\nexport default function toIdentifier(input: string): string {\n input = input + \"\";\n\n // replace all non-valid identifiers with dashes\n let name = \"\";\n for (const c of input) {\n name += isIdentifierChar(c.codePointAt(0)) ? c : \"-\";\n }\n\n // remove all dashes and numbers from start of name\n name = name.replace(/^[-0-9]+/, \"\");\n\n // camel case\n name = name.replace(/[-\\s]+(.)?/g, function (match, c) {\n return c ? c.toUpperCase() : \"\";\n });\n\n if (!isValidIdentifier(name)) {\n name = `_${name}`;\n }\n\n return name || \"_\";\n}\n","import toIdentifier from \"./toIdentifier.ts\";\n\nexport default function toBindingIdentifierName(name: string): string {\n name = toIdentifier(name);\n if (name === \"eval\" || name === \"arguments\") name = \"_\" + name;\n\n return name;\n}\n","import { isIdentifier } from \"../validators/generated/index.ts\";\nimport { stringLiteral } from \"../builders/generated/index.ts\";\nimport type * as t from \"../index.ts\";\n\nexport default function toComputedKey(\n node:\n | t.ObjectMember\n | t.ObjectProperty\n | t.ClassMethod\n | t.ClassProperty\n | t.ClassAccessorProperty\n | t.MemberExpression\n | t.OptionalMemberExpression,\n // @ts-expect-error todo(flow->ts): maybe check the type of node before accessing .key and .property\n key: t.Expression | t.PrivateName = node.key || node.property,\n) {\n if (!node.computed && isIdentifier(key)) key = stringLiteral(key.name);\n\n return key;\n}\n","import {\n isExpression,\n isFunction,\n isClass,\n isExpressionStatement,\n} from \"../validators/generated/index.ts\";\nimport type * as t from \"../index.ts\";\n\nexport default toExpression as {\n (node: t.Function): t.FunctionExpression;\n (node: t.Class): t.ClassExpression;\n (\n node: t.ExpressionStatement | t.Expression | t.Class | t.Function,\n ): t.Expression;\n};\n\nfunction toExpression(\n node: t.ExpressionStatement | t.Expression | t.Class | t.Function,\n): t.Expression {\n if (isExpressionStatement(node)) {\n node = node.expression;\n }\n\n // return unmodified node\n // important for things like ArrowFunctions where\n // type change from ArrowFunction to FunctionExpression\n // produces bugs like -> `()=>a` to `function () a`\n // without generating a BlockStatement for it\n // ref: https://github.com/babel/babili/issues/130\n if (isExpression(node)) {\n return node;\n }\n\n // convert all classes and functions\n // ClassDeclaration -> ClassExpression\n // FunctionDeclaration, ObjectMethod, ClassMethod -> FunctionExpression\n if (isClass(node)) {\n // @ts-expect-error todo(flow->ts): avoid type unsafe mutations\n node.type = \"ClassExpression\";\n // abstract modifiers are only allowed on class declarations\n node.abstract = false;\n } else if (isFunction(node)) {\n // @ts-expect-error todo(flow->ts): avoid type unsafe mutations\n node.type = \"FunctionExpression\";\n }\n\n // if it's still not an expression\n if (!isExpression(node)) {\n throw new Error(`cannot turn ${node.type} to an expression`);\n }\n\n return node;\n}\n","import { VISITOR_KEYS } from \"../definitions/index.ts\";\nimport type * as t from \"../index.ts\";\n\nconst _skip = Symbol();\nconst _stop = Symbol();\n\n/**\n * A prefix AST traversal implementation meant for simple searching and processing.\n * @param enter The callback can return `traverseFast.skip` to skip the subtree of the current node, or `traverseFast.stop` to stop the traversal.\n * @returns `true` if the traversal was stopped by callback, `false` otherwise.\n */\nexport default function traverseFast<Options = object>(\n node: t.Node | null | undefined,\n enter: (\n node: t.Node,\n opts?: Options,\n ) => void | typeof traverseFast.skip | typeof traverseFast.stop,\n opts?: Options,\n): boolean {\n if (!node) return false;\n\n const keys = VISITOR_KEYS[node.type];\n if (!keys) return false;\n\n opts = opts || ({} as Options);\n const ret = enter(node, opts);\n if (ret !== undefined) {\n switch (ret) {\n case _skip:\n return false;\n case _stop:\n return true;\n }\n }\n\n for (const key of keys) {\n const subNode: t.Node | undefined | null =\n // @ts-expect-error key must present in node\n node[key];\n\n if (!subNode) continue;\n\n if (Array.isArray(subNode)) {\n for (const node of subNode) {\n if (traverseFast(node, enter, opts)) return true;\n }\n } else {\n if (traverseFast(subNode, enter, opts)) return true;\n }\n }\n return false;\n}\n\ntraverseFast.skip = _skip;\ntraverseFast.stop = _stop;\n","import { COMMENT_KEYS } from \"../constants/index.ts\";\nimport type * as t from \"../index.ts\";\n\nconst CLEAR_KEYS = [\n \"tokens\", // only exist in t.File\n \"start\",\n \"end\",\n \"loc\",\n // Fixme: should be extra.raw / extra.rawValue?\n \"raw\",\n \"rawValue\",\n] as const;\n\nconst CLEAR_KEYS_PLUS_COMMENTS = [\n ...COMMENT_KEYS,\n \"comments\",\n ...CLEAR_KEYS,\n] as const;\n\nexport type Options = { preserveComments?: boolean };\n/**\n * Remove all of the _* properties from a node along with the additional metadata\n * properties like location data and raw token data.\n */\nexport default function removeProperties(\n node: t.Node,\n opts: Options = {},\n): void {\n const map = opts.preserveComments ? CLEAR_KEYS : CLEAR_KEYS_PLUS_COMMENTS;\n for (const key of map) {\n // @ts-expect-error tokens only exist in t.File\n if (node[key] != null) node[key] = undefined;\n }\n\n for (const key of Object.keys(node)) {\n // @ts-expect-error string can not index node\n if (key.startsWith(\"_\") && node[key] != null) node[key] = undefined;\n }\n\n const symbols: symbol[] = Object.getOwnPropertySymbols(node);\n for (const sym of symbols) {\n // @ts-expect-error Fixme: document symbol properties\n node[sym] = null;\n }\n}\n","import traverseFast from \"../traverse/traverseFast.ts\";\nimport removeProperties from \"./removeProperties.ts\";\nimport type * as t from \"../index.ts\";\n\nexport default function removePropertiesDeep<T extends t.Node>(\n tree: T,\n opts?: { preserveComments: boolean } | null,\n): T {\n traverseFast(tree, removeProperties, opts);\n\n return tree;\n}\n","import {\n isIdentifier,\n isStringLiteral,\n} from \"../validators/generated/index.ts\";\nimport cloneNode from \"../clone/cloneNode.ts\";\nimport removePropertiesDeep from \"../modifications/removePropertiesDeep.ts\";\nimport type * as t from \"../index.ts\";\n\nexport default function toKeyAlias(\n node: t.Method | t.Property,\n key: t.Node = node.key,\n): string {\n let alias;\n\n // @ts-expect-error todo(flow->ts): maybe add node type check before checking `.kind`\n if (node.kind === \"method\") {\n return toKeyAlias.increment() + \"\";\n } else if (isIdentifier(key)) {\n alias = key.name;\n } else if (isStringLiteral(key)) {\n alias = JSON.stringify(key.value);\n } else {\n alias = JSON.stringify(removePropertiesDeep(cloneNode(key)));\n }\n\n // @ts-expect-error todo(flow->ts): maybe add node type check before checking `.computed`\n if (node.computed) {\n alias = `[${alias}]`;\n }\n\n // @ts-expect-error todo(flow->ts): maybe add node type check before checking `.static`\n if (node.static) {\n alias = `static:${alias}`;\n }\n\n return alias;\n}\n\ntoKeyAlias.uid = 0;\n\ntoKeyAlias.increment = function () {\n if (toKeyAlias.uid >= Number.MAX_SAFE_INTEGER) {\n return (toKeyAlias.uid = 0);\n } else {\n return toKeyAlias.uid++;\n }\n};\n","import {\n isStatement,\n isFunction,\n isClass,\n isAssignmentExpression,\n} from \"../validators/generated/index.ts\";\nimport { expressionStatement } from \"../builders/generated/index.ts\";\nimport type * as t from \"../index.ts\";\n\nexport default toStatement as {\n (node: t.AssignmentExpression, ignore?: boolean): t.ExpressionStatement;\n\n <T extends t.Statement>(node: T, ignore: false): T;\n <T extends t.Statement>(node: T, ignore?: boolean): T | false;\n\n (node: t.Class, ignore: false): t.ClassDeclaration;\n (node: t.Class, ignore?: boolean): t.ClassDeclaration | false;\n\n (node: t.Function, ignore: false): t.FunctionDeclaration;\n (node: t.Function, ignore?: boolean): t.FunctionDeclaration | false;\n\n (node: t.Node, ignore: false): t.Statement;\n (node: t.Node, ignore?: boolean): t.Statement | false;\n};\n\nfunction toStatement(node: t.Node, ignore?: boolean): t.Statement | false {\n if (isStatement(node)) {\n return node;\n }\n\n let mustHaveId = false;\n let newType;\n\n if (isClass(node)) {\n mustHaveId = true;\n newType = \"ClassDeclaration\" as const;\n } else if (isFunction(node)) {\n mustHaveId = true;\n newType = \"FunctionDeclaration\" as const;\n } else if (isAssignmentExpression(node)) {\n return expressionStatement(node);\n }\n\n // @ts-expect-error todo(flow->ts): node.id might be missing\n if (mustHaveId && !node.id) {\n newType = false;\n }\n\n if (!newType) {\n if (ignore) {\n return false;\n } else {\n throw new Error(`cannot turn ${node.type} to a statement`);\n }\n }\n\n // @ts-expect-error manipulating node.type\n node.type = newType;\n\n // @ts-expect-error todo(flow->ts) refactor to avoid type unsafe mutations like reassigning node type above\n return node;\n}\n","import isValidIdentifier from \"../validators/isValidIdentifier.ts\";\nimport {\n identifier,\n booleanLiteral,\n nullLiteral,\n stringLiteral,\n numericLiteral,\n bigIntLiteral,\n regExpLiteral,\n arrayExpression,\n objectProperty,\n objectExpression,\n unaryExpression,\n binaryExpression,\n} from \"../builders/generated/index.ts\";\nimport type * as t from \"../index.ts\";\n\nexport default valueToNode as {\n (value: undefined): t.Identifier; // TODO: This should return \"void 0\"\n (value: boolean): t.BooleanLiteral;\n (value: null): t.NullLiteral;\n (value: string): t.StringLiteral;\n // Infinities and NaN need to use a BinaryExpression; negative values must be wrapped in UnaryExpression\n (value: number): t.NumericLiteral | t.BinaryExpression | t.UnaryExpression;\n (value: bigint): t.BigIntLiteral;\n (value: RegExp): t.RegExpLiteral;\n (value: readonly unknown[]): t.ArrayExpression;\n\n // this throws with objects that are not plain objects,\n // or if there are non-valueToNode-able values\n (value: object): t.ObjectExpression;\n\n (value: unknown): t.Expression;\n};\n\n// @ts-expect-error: Object.prototype.toString must return a string\nconst objectToString: (value: unknown) => string = Function.call.bind(\n Object.prototype.toString,\n);\n\nfunction isRegExp(value: unknown): value is RegExp {\n return objectToString(value) === \"[object RegExp]\";\n}\n\nfunction isPlainObject(value: unknown): value is object {\n if (\n typeof value !== \"object\" ||\n value === null ||\n Object.prototype.toString.call(value) !== \"[object Object]\"\n ) {\n return false;\n }\n const proto = Object.getPrototypeOf(value);\n // Object.prototype's __proto__ is null. Every other class's __proto__.__proto__ is\n // not null by default. We cannot check if proto === Object.prototype because it\n // could come from another realm.\n return proto === null || Object.getPrototypeOf(proto) === null;\n}\n\nfunction valueToNode(value: unknown): t.Expression {\n // undefined\n if (value === undefined) {\n return identifier(\"undefined\");\n }\n\n // boolean\n if (value === true || value === false) {\n return booleanLiteral(value);\n }\n\n // null\n if (value === null) {\n return nullLiteral();\n }\n\n // strings\n if (typeof value === \"string\") {\n return stringLiteral(value);\n }\n\n // numbers\n if (typeof value === \"number\") {\n let result;\n if (Number.isFinite(value)) {\n result = numericLiteral(Math.abs(value));\n } else {\n let numerator;\n if (Number.isNaN(value)) {\n // NaN\n numerator = numericLiteral(0);\n } else {\n // Infinity / -Infinity\n numerator = numericLiteral(1);\n }\n\n result = binaryExpression(\"/\", numerator, numericLiteral(0));\n }\n\n if (value < 0 || Object.is(value, -0)) {\n result = unaryExpression(\"-\", result);\n }\n\n return result;\n }\n\n // bigints\n if (typeof value === \"bigint\") {\n if (value < 0) {\n return unaryExpression(\"-\", bigIntLiteral(-value));\n } else {\n return bigIntLiteral(value);\n }\n }\n\n // regexes\n if (isRegExp(value)) {\n const pattern = value.source;\n const flags = /\\/([a-z]*)$/.exec(value.toString())[1];\n return regExpLiteral(pattern, flags);\n }\n\n // array\n if (Array.isArray(value)) {\n return arrayExpression(value.map(valueToNode));\n }\n\n // object\n if (isPlainObject(value)) {\n const props = [];\n for (const key of Object.keys(value)) {\n let nodeKey,\n computed = false;\n if (isValidIdentifier(key)) {\n if (key === \"__proto__\") {\n computed = true;\n nodeKey = stringLiteral(key);\n } else {\n nodeKey = identifier(key);\n }\n } else {\n nodeKey = stringLiteral(key);\n }\n props.push(\n objectProperty(\n nodeKey,\n valueToNode(\n // @ts-expect-error key must present in value\n value[key],\n ),\n computed,\n ),\n );\n }\n return objectExpression(props);\n }\n\n throw new Error(\"don't know how to turn this value into a node\");\n}\n","import { memberExpression } from \"../builders/generated/index.ts\";\nimport type * as t from \"../index.ts\";\n\n/**\n * Append a node to a member expression.\n */\nexport default function appendToMemberExpression(\n member: t.MemberExpression,\n append: t.MemberExpression[\"property\"],\n computed: boolean = false,\n): t.MemberExpression {\n member.object = memberExpression(\n member.object,\n member.property,\n member.computed,\n );\n member.property = append;\n member.computed = !!computed;\n\n return member;\n}\n","import { INHERIT_KEYS } from \"../constants/index.ts\";\nimport inheritsComments from \"../comments/inheritsComments.ts\";\nimport type * as t from \"../index.ts\";\n\n/**\n * Inherit all contextual properties from `parent` node to `child` node.\n */\nexport default function inherits<T extends t.Node | null | undefined>(\n child: T,\n parent: t.Node | null | undefined,\n): T {\n if (!child || !parent) return child;\n\n // optionally inherit specific properties if not null\n for (const key of INHERIT_KEYS.optional) {\n // @ts-expect-error Fixme: refine parent types\n if (child[key] == null) {\n // @ts-expect-error Fixme: refine parent types\n child[key] = parent[key];\n }\n }\n\n // force inherit \"private\" properties\n for (const key of Object.keys(parent)) {\n if (key.startsWith(\"_\") && key !== \"__clone\") {\n // @ts-expect-error Fixme: refine parent types\n child[key] = parent[key];\n }\n }\n\n // force inherit select properties\n for (const key of INHERIT_KEYS.force) {\n // @ts-expect-error Fixme: refine parent types\n child[key] = parent[key];\n }\n\n inheritsComments(child, parent);\n\n return child;\n}\n","import { memberExpression } from \"../builders/generated/index.ts\";\nimport { isSuper } from \"../index.ts\";\nimport type * as t from \"../index.ts\";\n\n/**\n * Prepend a node to a member expression.\n */\nexport default function prependToMemberExpression<\n T extends Pick<t.MemberExpression, \"object\" | \"property\">,\n>(member: T, prepend: t.MemberExpression[\"object\"]): T {\n if (isSuper(member.object)) {\n throw new Error(\n \"Cannot prepend node to super property access (`super.foo`).\",\n );\n }\n member.object = memberExpression(prepend, member.object);\n\n return member;\n}\n","import type * as t from \"../index.ts\";\n\n/**\n * For the given node, generate a map from assignment id names to the identifier node.\n * Unlike getBindingIdentifiers, this function does not handle declarations and imports.\n * @param node the assignment expression or forXstatement\n * @returns an object map\n * @see getBindingIdentifiers\n */\nexport default function getAssignmentIdentifiers(\n node: t.Node | t.Node[],\n): Record<string, t.Identifier> {\n // null represents holes in an array pattern\n const search: (t.Node | null)[] = [].concat(node);\n const ids = Object.create(null);\n\n while (search.length) {\n const id = search.pop();\n if (!id) continue;\n\n switch (id.type) {\n case \"ArrayPattern\":\n search.push(...id.elements);\n break;\n\n case \"AssignmentExpression\":\n case \"AssignmentPattern\":\n case \"ForInStatement\":\n case \"ForOfStatement\":\n search.push(id.left);\n break;\n\n case \"ObjectPattern\":\n search.push(...id.properties);\n break;\n\n case \"ObjectProperty\":\n search.push(id.value);\n break;\n\n case \"RestElement\":\n case \"UpdateExpression\":\n search.push(id.argument);\n break;\n\n case \"UnaryExpression\":\n if (id.operator === \"delete\") {\n search.push(id.argument);\n }\n break;\n\n case \"Identifier\":\n ids[id.name] = id;\n break;\n\n default:\n break;\n }\n }\n\n return ids;\n}\n","import {\n isExportDeclaration,\n isIdentifier,\n isClassExpression,\n isDeclaration,\n isFunctionDeclaration,\n isFunctionExpression,\n isExportAllDeclaration,\n isAssignmentExpression,\n isUnaryExpression,\n isUpdateExpression,\n} from \"../validators/generated/index.ts\";\nimport type * as t from \"../index.ts\";\n\nexport { getBindingIdentifiers as default };\n\nfunction getBindingIdentifiers(\n node: t.Node,\n duplicates: true,\n outerOnly?: boolean,\n newBindingsOnly?: boolean,\n): Record<string, t.Identifier[]>;\n\nfunction getBindingIdentifiers(\n node: t.Node,\n duplicates?: false,\n outerOnly?: boolean,\n newBindingsOnly?: boolean,\n): Record<string, t.Identifier>;\n\nfunction getBindingIdentifiers(\n node: t.Node,\n duplicates?: boolean,\n outerOnly?: boolean,\n newBindingsOnly?: boolean,\n): Record<string, t.Identifier> | Record<string, t.Identifier[]>;\n\n/**\n * Return a list of binding identifiers associated with the input `node`.\n */\nfunction getBindingIdentifiers(\n node: t.Node,\n duplicates?: boolean,\n outerOnly?: boolean,\n newBindingsOnly?: boolean,\n): Record<string, t.Identifier> | Record<string, t.Identifier[]> {\n const search: t.Node[] = [].concat(node);\n const ids = Object.create(null);\n\n while (search.length) {\n const id = search.shift();\n if (!id) continue;\n\n if (\n newBindingsOnly &&\n // These nodes do not introduce _new_ bindings, but they are included\n // in getBindingIdentifiers.keys for backwards compatibility.\n // TODO(@nicolo-ribaudo): Check if we can remove them from .keys in a\n // backward-compatible way, and if not what we need to do to remove them\n // in Babel 8.\n (isAssignmentExpression(id) ||\n isUnaryExpression(id) ||\n isUpdateExpression(id))\n ) {\n continue;\n }\n\n if (isIdentifier(id)) {\n if (duplicates) {\n const _ids = (ids[id.name] = ids[id.name] || []);\n _ids.push(id);\n } else {\n ids[id.name] = id;\n }\n continue;\n }\n\n if (isExportDeclaration(id) && !isExportAllDeclaration(id)) {\n if (isDeclaration(id.declaration)) {\n search.push(id.declaration);\n }\n continue;\n }\n\n if (outerOnly) {\n if (isFunctionDeclaration(id)) {\n search.push(id.id);\n continue;\n }\n\n if (\n isFunctionExpression(id) ||\n (process.env.BABEL_8_BREAKING && isClassExpression(id))\n ) {\n continue;\n }\n }\n\n const keys = getBindingIdentifiers.keys[id.type];\n\n if (keys) {\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const nodes =\n // @ts-expect-error key must present in id\n id[key] as t.Node[] | t.Node | undefined | null;\n if (nodes) {\n if (Array.isArray(nodes)) {\n search.push(...nodes);\n } else {\n search.push(nodes);\n }\n }\n }\n }\n }\n return ids;\n}\n\n/**\n * Mapping of types to their identifier keys.\n */\ntype KeysMap = {\n [N in t.Node as N[\"type\"]]?: (keyof N)[];\n};\n\nconst keys: KeysMap = {\n DeclareClass: [\"id\"],\n DeclareFunction: [\"id\"],\n DeclareModule: [\"id\"],\n DeclareVariable: [\"id\"],\n DeclareInterface: [\"id\"],\n DeclareTypeAlias: [\"id\"],\n DeclareOpaqueType: [\"id\"],\n InterfaceDeclaration: [\"id\"],\n TypeAlias: [\"id\"],\n OpaqueType: [\"id\"],\n\n CatchClause: [\"param\"],\n LabeledStatement: [\"label\"],\n UnaryExpression: [\"argument\"],\n AssignmentExpression: [\"left\"],\n\n ImportSpecifier: [\"local\"],\n ImportNamespaceSpecifier: [\"local\"],\n ImportDefaultSpecifier: [\"local\"],\n ImportDeclaration: [\"specifiers\"],\n TSImportEqualsDeclaration: [\"id\"],\n\n ExportSpecifier: [\"exported\"],\n ExportNamespaceSpecifier: [\"exported\"],\n ExportDefaultSpecifier: [\"exported\"],\n\n FunctionDeclaration: [\"id\", \"params\"],\n FunctionExpression: [\"id\", \"params\"],\n ArrowFunctionExpression: [\"params\"],\n ObjectMethod: [\"params\"],\n ClassMethod: [\"params\"],\n ClassPrivateMethod: [\"params\"],\n\n ForInStatement: [\"left\"],\n ForOfStatement: [\"left\"],\n\n ClassDeclaration: [\"id\"],\n ClassExpression: [\"id\"],\n\n RestElement: [\"argument\"],\n UpdateExpression: [\"argument\"],\n\n ObjectProperty: [\"value\"],\n\n AssignmentPattern: [\"left\"],\n ArrayPattern: [\"elements\"],\n ObjectPattern: [\"properties\"],\n\n VariableDeclaration: [\"declarations\"],\n VariableDeclarator: [\"id\"],\n};\n\ngetBindingIdentifiers.keys = keys;\n","import getBindingIdentifiers from \"./getBindingIdentifiers.ts\";\nimport type * as t from \"../index.ts\";\n\nexport default getOuterBindingIdentifiers as {\n (node: t.Node, duplicates: true): Record<string, t.Identifier[]>;\n (node: t.Node, duplicates?: false): Record<string, t.Identifier>;\n (\n node: t.Node,\n duplicates?: boolean,\n ): Record<string, t.Identifier> | Record<string, t.Identifier[]>;\n};\n\nfunction getOuterBindingIdentifiers(\n node: t.Node,\n duplicates: boolean,\n): Record<string, t.Identifier> | Record<string, t.Identifier[]> {\n return getBindingIdentifiers(node, duplicates, true);\n}\n","import type * as t from \"../index.ts\";\n\nimport {\n isAssignmentExpression,\n isClassMethod,\n isIdentifier,\n isLiteral,\n isNullLiteral,\n isObjectMethod,\n isObjectProperty,\n isPrivateName,\n isRegExpLiteral,\n isTemplateLiteral,\n isVariableDeclarator,\n} from \"../validators/generated/index.ts\";\n\nfunction getNameFromLiteralId(id: t.Literal): string {\n if (isNullLiteral(id)) {\n return \"null\";\n }\n\n if (isRegExpLiteral(id)) {\n return `/${id.pattern}/${id.flags}`;\n }\n\n if (isTemplateLiteral(id)) {\n return id.quasis.map(quasi => quasi.value.raw).join(\"\");\n }\n\n if (id.value !== undefined) {\n return String(id.value);\n }\n\n return null;\n}\n\nfunction getObjectMemberKey(\n node: t.ObjectProperty | t.ObjectMethod | t.ClassProperty | t.ClassMethod,\n): t.Expression | t.PrivateName {\n if (!node.computed || isLiteral(node.key)) {\n return node.key;\n }\n}\n\ntype GetFunctionNameResult = {\n name: string;\n originalNode: t.Node;\n} | null;\n\nexport default function getFunctionName(\n node: t.ObjectMethod | t.ClassMethod,\n): GetFunctionNameResult;\nexport default function getFunctionName(\n node: t.Function | t.Class,\n parent: t.Node,\n): GetFunctionNameResult;\nexport default function getFunctionName(\n node: t.Function | t.Class,\n parent?: t.Node,\n): GetFunctionNameResult {\n if (\"id\" in node && node.id) {\n return {\n name: node.id.name,\n originalNode: node.id,\n };\n }\n\n let prefix = \"\";\n\n let id;\n if (isObjectProperty(parent, { value: node })) {\n // { foo: () => {} };\n id = getObjectMemberKey(parent);\n } else if (isObjectMethod(node) || isClassMethod(node)) {\n // { foo() {} };\n id = getObjectMemberKey(node);\n if (node.kind === \"get\") prefix = \"get \";\n else if (node.kind === \"set\") prefix = \"set \";\n } else if (isVariableDeclarator(parent, { init: node })) {\n // let foo = function () {};\n id = parent.id;\n } else if (isAssignmentExpression(parent, { operator: \"=\", right: node })) {\n // foo = function () {};\n id = parent.left;\n }\n\n if (!id) return null;\n\n const name = isLiteral(id)\n ? getNameFromLiteralId(id)\n : isIdentifier(id)\n ? id.name\n : isPrivateName(id)\n ? id.id.name\n : null;\n if (name == null) return null;\n\n return { name: prefix + name, originalNode: id };\n}\n","import { VISITOR_KEYS } from \"../definitions/index.ts\";\nimport type * as t from \"../index.ts\";\n\nexport type TraversalAncestors = {\n node: t.Node;\n key: string;\n index?: number;\n}[];\n\nexport type TraversalHandler<T> = (\n this: undefined,\n node: t.Node,\n parent: TraversalAncestors,\n state: T,\n) => void;\n\nexport type TraversalHandlers<T> = {\n enter?: TraversalHandler<T>;\n exit?: TraversalHandler<T>;\n};\n\n/**\n * A general AST traversal with both prefix and postfix handlers, and a\n * state object. Exposes ancestry data to each handler so that more complex\n * AST data can be taken into account.\n */\nexport default function traverse<T>(\n node: t.Node,\n handlers: TraversalHandler<T> | TraversalHandlers<T>,\n state?: T,\n): void {\n if (typeof handlers === \"function\") {\n handlers = { enter: handlers };\n }\n\n const { enter, exit } = handlers;\n\n traverseSimpleImpl(node, enter, exit, state, []);\n}\n\nfunction traverseSimpleImpl<T>(\n node: any,\n enter: Function | undefined,\n exit: Function | undefined,\n state: T | undefined,\n ancestors: TraversalAncestors,\n) {\n const keys = VISITOR_KEYS[node.type];\n if (!keys) return;\n\n if (enter) enter(node, ancestors, state);\n\n for (const key of keys) {\n const subNode = node[key];\n\n if (Array.isArray(subNode)) {\n for (let i = 0; i < subNode.length; i++) {\n const child = subNode[i];\n if (!child) continue;\n\n ancestors.push({\n node,\n key,\n index: i,\n });\n\n traverseSimpleImpl(child, enter, exit, state, ancestors);\n\n ancestors.pop();\n }\n } else if (subNode) {\n ancestors.push({\n node,\n key,\n });\n\n traverseSimpleImpl(subNode, enter, exit, state, ancestors);\n\n ancestors.pop();\n }\n }\n\n if (exit) exit(node, ancestors, state);\n}\n","import getBindingIdentifiers from \"../retrievers/getBindingIdentifiers.ts\";\nimport type * as t from \"../index.ts\";\n/**\n * Check if the input `node` is a binding identifier.\n */\nexport default function isBinding(\n node: t.Node,\n parent: t.Node,\n grandparent?: t.Node,\n): boolean {\n if (\n grandparent &&\n node.type === \"Identifier\" &&\n parent.type === \"ObjectProperty\" &&\n grandparent.type === \"ObjectExpression\"\n ) {\n // We need to special-case this, because getBindingIdentifiers\n // has an ObjectProperty->value entry for destructuring patterns.\n return false;\n }\n\n const keys = getBindingIdentifiers.keys[parent.type];\n if (keys) {\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const val =\n // @ts-expect-error key must present in parent\n parent[key];\n if (Array.isArray(val)) {\n if (val.includes(node)) return true;\n } else {\n if (val === node) return true;\n }\n }\n }\n\n return false;\n}\n","import { isVariableDeclaration } from \"./generated/index.ts\";\nimport type * as t from \"../index.ts\";\n\nif (!process.env.BABEL_8_BREAKING) {\n // eslint-disable-next-line no-var\n var BLOCK_SCOPED_SYMBOL = Symbol.for(\"var used to be block scoped\");\n}\n\n/**\n * Check if the input `node` is a `let` variable declaration.\n */\nexport default function isLet(node: t.Node): boolean {\n if (process.env.BABEL_8_BREAKING) {\n return isVariableDeclaration(node) && node.kind !== \"var\";\n } else {\n return (\n isVariableDeclaration(node) &&\n (node.kind !== \"var\" ||\n // @ts-expect-error Fixme: document private properties\n node[BLOCK_SCOPED_SYMBOL])\n );\n }\n}\n","import {\n isClassDeclaration,\n isFunctionDeclaration,\n} from \"./generated/index.ts\";\nimport isLet from \"./isLet.ts\";\nimport type * as t from \"../index.ts\";\n\n/**\n * Check if the input `node` is block scoped.\n */\nexport default function isBlockScoped(\n node: t.Node | null | undefined,\n): boolean {\n return isFunctionDeclaration(node) || isClassDeclaration(node) || isLet(node);\n}\n","import isType from \"./isType.ts\";\nimport { isIdentifier } from \"./generated/index.ts\";\nimport type * as t from \"../index.ts\";\n\n/**\n * Check if the input `node` is definitely immutable.\n */\nexport default function isImmutable(node: t.Node): boolean {\n if (isType(node.type, \"Immutable\")) return true;\n\n if (isIdentifier(node)) {\n if (node.name === \"undefined\") {\n // immutable!\n return true;\n } else {\n // no idea...\n return false;\n }\n }\n\n return false;\n}\n","import { NODE_FIELDS, VISITOR_KEYS } from \"../definitions/index.ts\";\nimport type * as t from \"../index.ts\";\n\n/**\n * Check if two nodes are equivalent\n */\nexport default function isNodesEquivalent<T extends Partial<t.Node>>(\n a: T,\n b: any,\n): b is T {\n if (\n typeof a !== \"object\" ||\n typeof b !== \"object\" ||\n a == null ||\n b == null\n ) {\n return a === b;\n }\n\n if (a.type !== b.type) {\n return false;\n }\n\n const fields = Object.keys(NODE_FIELDS[a.type] || a.type);\n const visitorKeys = VISITOR_KEYS[a.type];\n\n for (const field of fields) {\n const val_a =\n // @ts-expect-error field must present in a\n a[field];\n const val_b = b[field];\n if (typeof val_a !== typeof val_b) {\n return false;\n }\n if (val_a == null && val_b == null) {\n continue;\n } else if (val_a == null || val_b == null) {\n return false;\n }\n\n if (Array.isArray(val_a)) {\n if (!Array.isArray(val_b)) {\n return false;\n }\n if (val_a.length !== val_b.length) {\n return false;\n }\n\n for (let i = 0; i < val_a.length; i++) {\n if (!isNodesEquivalent(val_a[i], val_b[i])) {\n return false;\n }\n }\n continue;\n }\n\n if (typeof val_a === \"object\" && !visitorKeys?.includes(field)) {\n for (const key of Object.keys(val_a)) {\n if (val_a[key] !== val_b[key]) {\n return false;\n }\n }\n continue;\n }\n\n if (!isNodesEquivalent(val_a, val_b)) {\n return false;\n }\n }\n\n return true;\n}\n","import type * as t from \"../index.ts\";\n\n/**\n * Check if the input `node` is a reference to a bound variable.\n */\nexport default function isReferenced(\n node: t.Node | null | undefined,\n parent: t.Node,\n grandparent?: t.Node,\n): boolean {\n switch (parent.type) {\n // yes: PARENT[NODE]\n // yes: NODE.child\n // no: parent.NODE\n case \"MemberExpression\":\n case \"OptionalMemberExpression\":\n if (parent.property === node) {\n return !!parent.computed;\n }\n return parent.object === node;\n\n case \"JSXMemberExpression\":\n return parent.object === node;\n // no: let NODE = init;\n // yes: let id = NODE;\n case \"VariableDeclarator\":\n return parent.init === node;\n\n // yes: () => NODE\n // no: (NODE) => {}\n case \"ArrowFunctionExpression\":\n return parent.body === node;\n\n // no: class { #NODE; }\n // no: class { get #NODE() {} }\n // no: class { #NODE() {} }\n // no: class { fn() { return this.#NODE; } }\n case \"PrivateName\":\n return false;\n\n // no: class { NODE() {} }\n // yes: class { [NODE]() {} }\n // no: class { foo(NODE) {} }\n case \"ClassMethod\":\n case \"ClassPrivateMethod\":\n case \"ObjectMethod\":\n if (parent.key === node) {\n return !!parent.computed;\n }\n return false;\n\n // yes: { [NODE]: \"\" }\n // no: { NODE: \"\" }\n // depends: { NODE }\n // depends: { key: NODE }\n case \"ObjectProperty\":\n if (parent.key === node) {\n return !!parent.computed;\n }\n // parent.value === node\n return grandparent?.type !== \"ObjectPattern\";\n // no: class { NODE = value; }\n // yes: class { [NODE] = value; }\n // yes: class { key = NODE; }\n case \"ClassProperty\":\n case \"ClassAccessorProperty\":\n if (parent.key === node) {\n return !!parent.computed;\n }\n return true;\n case \"ClassPrivateProperty\":\n return parent.key !== node;\n\n // no: class NODE {}\n // yes: class Foo extends NODE {}\n case \"ClassDeclaration\":\n case \"ClassExpression\":\n return parent.superClass === node;\n\n // yes: left = NODE;\n // no: NODE = right;\n case \"AssignmentExpression\":\n return parent.right === node;\n\n // no: [NODE = foo] = [];\n // yes: [foo = NODE] = [];\n case \"AssignmentPattern\":\n return parent.right === node;\n\n // no: NODE: for (;;) {}\n case \"LabeledStatement\":\n return false;\n\n // no: try {} catch (NODE) {}\n case \"CatchClause\":\n return false;\n\n // no: function foo(...NODE) {}\n case \"RestElement\":\n return false;\n\n case \"BreakStatement\":\n case \"ContinueStatement\":\n return false;\n\n // no: function NODE() {}\n // no: function foo(NODE) {}\n case \"FunctionDeclaration\":\n case \"FunctionExpression\":\n return false;\n\n // no: export NODE from \"foo\";\n // no: export * as NODE from \"foo\";\n case \"ExportNamespaceSpecifier\":\n case \"ExportDefaultSpecifier\":\n return false;\n\n // no: export { foo as NODE };\n // yes: export { NODE as foo };\n // no: export { NODE as foo } from \"foo\";\n case \"ExportSpecifier\":\n // @ts-expect-error todo(flow->ts): Property 'source' does not exist on type 'AnyTypeAnnotation'.\n if (grandparent?.source) {\n return false;\n }\n return parent.local === node;\n\n // no: import NODE from \"foo\";\n // no: import * as NODE from \"foo\";\n // no: import { NODE as foo } from \"foo\";\n // no: import { foo as NODE } from \"foo\";\n // no: import NODE from \"bar\";\n case \"ImportDefaultSpecifier\":\n case \"ImportNamespaceSpecifier\":\n case \"ImportSpecifier\":\n return false;\n\n // no: import \"foo\" assert { NODE: \"json\" }\n case \"ImportAttribute\":\n return false;\n\n // no: <div NODE=\"foo\" />\n case \"JSXAttribute\":\n return false;\n\n // no: [NODE] = [];\n // no: ({ NODE }) = [];\n case \"ObjectPattern\":\n case \"ArrayPattern\":\n return false;\n\n // no: new.NODE\n // no: NODE.target\n case \"MetaProperty\":\n return false;\n\n // yes: type X = { someProperty: NODE }\n // no: type X = { NODE: OtherType }\n case \"ObjectTypeProperty\":\n return parent.key !== node;\n\n // yes: enum X { Foo = NODE }\n // no: enum X { NODE }\n case \"TSEnumMember\":\n return parent.id !== node;\n\n // yes: { [NODE]: value }\n // no: { NODE: value }\n case \"TSPropertySignature\":\n if (parent.key === node) {\n return !!parent.computed;\n }\n\n return true;\n }\n\n return true;\n}\n","import {\n isFunction,\n isCatchClause,\n isBlockStatement,\n isScopable,\n isPattern,\n} from \"./generated/index.ts\";\nimport type * as t from \"../index.ts\";\n\n/**\n * Check if the input `node` is a scope.\n */\nexport default function isScope(\n node: t.Node | null | undefined,\n parent: t.Node,\n): boolean {\n // If a BlockStatement is an immediate descendent of a Function/CatchClause, it must be in the body.\n // Hence we skipped the parentKey === \"params\" check\n if (isBlockStatement(node) && (isFunction(parent) || isCatchClause(parent))) {\n return false;\n }\n\n // If a Pattern is an immediate descendent of a Function/CatchClause, it must be in the params.\n // Hence we skipped the parentKey === \"params\" check\n if (isPattern(node) && (isFunction(parent) || isCatchClause(parent))) {\n return true;\n }\n\n return isScopable(node);\n}\n","import { isIdentifier, isImportDefaultSpecifier } from \"./generated/index.ts\";\nimport type * as t from \"../index.ts\";\n\n/**\n * Check if the input `specifier` is a `default` import or export.\n */\nexport default function isSpecifierDefault(\n specifier: t.ModuleSpecifier,\n): boolean {\n return (\n isImportDefaultSpecifier(specifier) ||\n // @ts-expect-error todo(flow->ts): stricter type for specifier\n isIdentifier(specifier.imported || specifier.exported, {\n name: \"default\",\n })\n );\n}\n","import isValidIdentifier from \"./isValidIdentifier.ts\";\n\nconst RESERVED_WORDS_ES3_ONLY = new Set<string>([\n \"abstract\",\n \"boolean\",\n \"byte\",\n \"char\",\n \"double\",\n \"enum\",\n \"final\",\n \"float\",\n \"goto\",\n \"implements\",\n \"int\",\n \"interface\",\n \"long\",\n \"native\",\n \"package\",\n \"private\",\n \"protected\",\n \"public\",\n \"short\",\n \"static\",\n \"synchronized\",\n \"throws\",\n \"transient\",\n \"volatile\",\n]);\n\n/**\n * Check if the input `name` is a valid identifier name according to the ES3 specification.\n *\n * Additional ES3 reserved words are\n */\nexport default function isValidES3Identifier(name: string): boolean {\n return isValidIdentifier(name) && !RESERVED_WORDS_ES3_ONLY.has(name);\n}\n","import { isVariableDeclaration } from \"./generated/index.ts\";\nimport type * as t from \"../index.ts\";\n\nif (!process.env.BABEL_8_BREAKING) {\n // eslint-disable-next-line no-var\n var BLOCK_SCOPED_SYMBOL = Symbol.for(\"var used to be block scoped\");\n}\n\n/**\n * Check if the input `node` is a variable declaration.\n */\nexport default function isVar(node: t.Node | null | undefined): boolean {\n if (process.env.BABEL_8_BREAKING) {\n return isVariableDeclaration(node) && node.kind === \"var\";\n } else {\n return (\n isVariableDeclaration(node, { kind: \"var\" }) &&\n !(\n // @ts-expect-error document private properties\n node[BLOCK_SCOPED_SYMBOL]\n )\n );\n }\n}\n","// TODO(Babel 8) Remove this file\nif (process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH) {\n throw new Error(\n \"Internal Babel error: This file should only be loaded in Babel 7\",\n );\n}\n\nimport getBindingIdentifiers from \"../retrievers/getBindingIdentifiers.ts\";\nimport {\n isExpression,\n isExpressionStatement,\n isVariableDeclaration,\n isIfStatement,\n isBlockStatement,\n isEmptyStatement,\n} from \"../validators/generated/index.ts\";\nimport {\n sequenceExpression,\n assignmentExpression,\n conditionalExpression,\n} from \"../builders/generated/index.ts\";\nimport { buildUndefinedNode } from \"../builders/productions.ts\";\nimport cloneNode from \"../clone/cloneNode.ts\";\nimport type * as t from \"../index.ts\";\n\nexport type DeclarationInfo = {\n kind: t.VariableDeclaration[\"kind\"];\n id: t.Identifier;\n};\n\nexport default function gatherSequenceExpressions(\n nodes: readonly t.Node[],\n declars: DeclarationInfo[],\n) {\n const exprs: t.Expression[] = [];\n let ensureLastUndefined = true;\n\n for (const node of nodes) {\n // if we encounter emptyStatement before a non-emptyStatement\n // we want to disregard that\n if (!isEmptyStatement(node)) {\n ensureLastUndefined = false;\n }\n\n if (isExpression(node)) {\n exprs.push(node);\n } else if (isExpressionStatement(node)) {\n exprs.push(node.expression);\n } else if (isVariableDeclaration(node)) {\n if (node.kind !== \"var\") return; // bailed\n\n for (const declar of node.declarations) {\n const bindings = getBindingIdentifiers(declar);\n for (const key of Object.keys(bindings)) {\n declars.push({\n kind: node.kind,\n id: cloneNode(bindings[key]),\n });\n }\n\n if (declar.init) {\n exprs.push(\n assignmentExpression(\n \"=\",\n // var declarator must not be a void pattern\n declar.id as Exclude<t.VariableDeclarator[\"id\"], t.VoidPattern>,\n declar.init,\n ),\n );\n }\n }\n\n ensureLastUndefined = true;\n } else if (isIfStatement(node)) {\n const consequent = node.consequent\n ? gatherSequenceExpressions([node.consequent], declars)\n : buildUndefinedNode();\n const alternate = node.alternate\n ? gatherSequenceExpressions([node.alternate], declars)\n : buildUndefinedNode();\n if (!consequent || !alternate) return; // bailed\n\n exprs.push(conditionalExpression(node.test, consequent, alternate));\n } else if (isBlockStatement(node)) {\n const body = gatherSequenceExpressions(node.body, declars);\n if (!body) return; // bailed\n\n exprs.push(body);\n } else if (isEmptyStatement(node)) {\n // empty statement so ensure the last item is undefined if we're last\n // checks if emptyStatement is first\n if (nodes.indexOf(node) === 0) {\n ensureLastUndefined = true;\n }\n } else {\n // bailed, we can't turn this statement into an expression\n return;\n }\n }\n\n if (ensureLastUndefined) {\n exprs.push(buildUndefinedNode());\n }\n\n if (exprs.length === 1) {\n return exprs[0];\n } else {\n return sequenceExpression(exprs);\n }\n}\n","// TODO(Babel 8) Remove this file\nif (process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH) {\n throw new Error(\n \"Internal Babel error: This file should only be loaded in Babel 7\",\n );\n}\n\nimport gatherSequenceExpressions from \"./gatherSequenceExpressions.ts\";\nimport type * as t from \"../index.ts\";\nimport type { DeclarationInfo } from \"./gatherSequenceExpressions.ts\";\n\n/**\n * Turn an array of statement `nodes` into a `SequenceExpression`.\n *\n * Variable declarations are turned into simple assignments and their\n * declarations hoisted to the top of the current scope.\n *\n * Expression statements are just resolved to their expression.\n */\nexport default function toSequenceExpression(\n nodes: readonly t.Node[],\n scope: any,\n): t.SequenceExpression | undefined {\n if (!nodes?.length) return;\n\n const declars: DeclarationInfo[] = [];\n const result = gatherSequenceExpressions(nodes, declars);\n if (!result) return;\n\n for (const declar of declars) {\n scope.push(declar);\n }\n\n // @ts-expect-error fixme: gatherSequenceExpressions will return an Expression when there are only one element\n return result;\n}\n","import isReactComponent from \"./validators/react/isReactComponent.ts\";\nimport isCompatTag from \"./validators/react/isCompatTag.ts\";\nimport buildChildren from \"./builders/react/buildChildren.ts\";\n\n// asserts\nexport { default as assertNode } from \"./asserts/assertNode.ts\";\nexport * from \"./asserts/generated/index.ts\";\n\n// builders\nexport { default as createTypeAnnotationBasedOnTypeof } from \"./builders/flow/createTypeAnnotationBasedOnTypeof.ts\";\n/** @deprecated use createFlowUnionType instead */\nexport { default as createUnionTypeAnnotation } from \"./builders/flow/createFlowUnionType.ts\";\nexport { default as createFlowUnionType } from \"./builders/flow/createFlowUnionType.ts\";\nexport { default as createTSUnionType } from \"./builders/typescript/createTSUnionType.ts\";\nexport * from \"./builders/productions.ts\";\nexport * from \"./builders/generated/index.ts\"; // includes AST types\n\n// clone\nexport { default as cloneNode } from \"./clone/cloneNode.ts\";\nexport { default as clone } from \"./clone/clone.ts\";\nexport { default as cloneDeep } from \"./clone/cloneDeep.ts\";\nexport { default as cloneDeepWithoutLoc } from \"./clone/cloneDeepWithoutLoc.ts\";\nexport { default as cloneWithoutLoc } from \"./clone/cloneWithoutLoc.ts\";\n\n// comments\nexport { default as addComment } from \"./comments/addComment.ts\";\nexport { default as addComments } from \"./comments/addComments.ts\";\nexport { default as inheritInnerComments } from \"./comments/inheritInnerComments.ts\";\nexport { default as inheritLeadingComments } from \"./comments/inheritLeadingComments.ts\";\nexport { default as inheritsComments } from \"./comments/inheritsComments.ts\";\nexport { default as inheritTrailingComments } from \"./comments/inheritTrailingComments.ts\";\nexport { default as removeComments } from \"./comments/removeComments.ts\";\n\n// constants\nexport * from \"./constants/generated/index.ts\";\nexport * from \"./constants/index.ts\";\n\n// converters\nexport { default as ensureBlock } from \"./converters/ensureBlock.ts\";\nexport { default as toBindingIdentifierName } from \"./converters/toBindingIdentifierName.ts\";\nexport { default as toBlock } from \"./converters/toBlock.ts\";\nexport { default as toComputedKey } from \"./converters/toComputedKey.ts\";\nexport { default as toExpression } from \"./converters/toExpression.ts\";\nexport { default as toIdentifier } from \"./converters/toIdentifier.ts\";\nexport { default as toKeyAlias } from \"./converters/toKeyAlias.ts\";\nexport { default as toStatement } from \"./converters/toStatement.ts\";\nexport { default as valueToNode } from \"./converters/valueToNode.ts\";\n\n// definitions\nexport * from \"./definitions/index.ts\";\n\n// modifications\nexport { default as appendToMemberExpression } from \"./modifications/appendToMemberExpression.ts\";\nexport { default as inherits } from \"./modifications/inherits.ts\";\nexport { default as prependToMemberExpression } from \"./modifications/prependToMemberExpression.ts\";\nexport {\n default as removeProperties,\n type Options as RemovePropertiesOptions,\n} from \"./modifications/removeProperties.ts\";\nexport { default as removePropertiesDeep } from \"./modifications/removePropertiesDeep.ts\";\nexport { default as removeTypeDuplicates } from \"./modifications/flow/removeTypeDuplicates.ts\";\n\n// retrievers\nexport { default as getAssignmentIdentifiers } from \"./retrievers/getAssignmentIdentifiers.ts\";\nexport { default as getBindingIdentifiers } from \"./retrievers/getBindingIdentifiers.ts\";\nexport { default as getOuterBindingIdentifiers } from \"./retrievers/getOuterBindingIdentifiers.ts\";\nexport { default as getFunctionName } from \"./retrievers/getFunctionName.ts\";\n\n// traverse\nexport { default as traverse } from \"./traverse/traverse.ts\";\nexport * from \"./traverse/traverse.ts\";\nexport { default as traverseFast } from \"./traverse/traverseFast.ts\";\n\n// utils\nexport { default as shallowEqual } from \"./utils/shallowEqual.ts\";\n\n// validators\nexport { default as is } from \"./validators/is.ts\";\nexport { default as isBinding } from \"./validators/isBinding.ts\";\nexport { default as isBlockScoped } from \"./validators/isBlockScoped.ts\";\nexport { default as isImmutable } from \"./validators/isImmutable.ts\";\nexport { default as isLet } from \"./validators/isLet.ts\";\nexport { default as isNode } from \"./validators/isNode.ts\";\nexport { default as isNodesEquivalent } from \"./validators/isNodesEquivalent.ts\";\nexport { default as isPlaceholderType } from \"./validators/isPlaceholderType.ts\";\nexport { default as isReferenced } from \"./validators/isReferenced.ts\";\nexport { default as isScope } from \"./validators/isScope.ts\";\nexport { default as isSpecifierDefault } from \"./validators/isSpecifierDefault.ts\";\nexport { default as isType } from \"./validators/isType.ts\";\nexport { default as isValidES3Identifier } from \"./validators/isValidES3Identifier.ts\";\nexport { default as isValidIdentifier } from \"./validators/isValidIdentifier.ts\";\nexport { default as isVar } from \"./validators/isVar.ts\";\nexport { default as matchesPattern } from \"./validators/matchesPattern.ts\";\nexport { default as validate } from \"./validators/validate.ts\";\nexport { default as buildMatchMemberExpression } from \"./validators/buildMatchMemberExpression.ts\";\nexport * from \"./validators/generated/index.ts\";\n\n// react\nexport const react = {\n isReactComponent,\n isCompatTag,\n buildChildren,\n};\n\n// this is used by @babel/traverse to warn about deprecated visitors\nexport { default as __internal__deprecationWarning } from \"./utils/deprecationWarning.ts\";\n\nimport toSequenceExpression from \"./converters/toSequenceExpression.ts\" with { if: \"!process.env.BABEL_8_BREAKING && !USE_ESM && !IS_STANDALONE\" };\nif (!process.env.BABEL_8_BREAKING && !USE_ESM && !IS_STANDALONE) {\n // eslint-disable-next-line no-restricted-globals\n exports.toSequenceExpression = toSequenceExpression;\n}\n\nif (!process.env.BABEL_8_BREAKING && process.env.BABEL_TYPES_8_BREAKING) {\n console.warn(\n \"BABEL_TYPES_8_BREAKING is not supported anymore. Use the latest Babel 8.0.0 pre-release instead!\",\n );\n}\n","/**\n * Codebase Scanner - Finds forms, metadata, and widgets in Next.js projects\n */\n\nimport fs from 'fs/promises'\nimport path from 'path'\nimport { parse } from '@babel/parser'\nimport traverse from '@babel/traverse'\nimport * as t from '@babel/types'\n\n// ============================================\n// Types\n// ============================================\n\nexport interface ScanResults {\n forms: DetectedForm[]\n metadata: DetectedMetadata[]\n widgets: DetectedWidget[]\n}\n\nexport interface DetectedForm {\n filePath: string\n componentName: string\n fields: DetectedField[]\n hasValidation: boolean\n formLibrary: 'native' | 'react-hook-form' | 'formik' | 'unknown'\n submitsTo: string | null\n complexity: 'simple' | 'moderate' | 'complex'\n suggestedAction: 'auto-migrate' | 'assisted' | 'manual'\n startLine: number\n endLine: number\n}\n\nexport interface DetectedField {\n name: string\n type: string\n label?: string\n placeholder?: string\n required: boolean\n validation?: string\n options?: Array<{ label: string; value: string }>\n}\n\nexport interface DetectedMetadata {\n filePath: string\n type: 'next-metadata' | 'head' | 'next-seo' | 'other'\n title?: string\n description?: string\n}\n\nexport interface DetectedWidget {\n filePath: string\n widgetType: 'intercom' | 'crisp' | 'drift' | 'hubspot' | 'zendesk' | 'other'\n scriptTag?: string\n startLine: number\n endLine: number\n}\n\n// ============================================\n// Main Scanner\n// ============================================\n\nexport async function scanCodebase(rootDir: string): Promise<ScanResults> {\n const results: ScanResults = {\n forms: [],\n metadata: [],\n widgets: [],\n }\n\n // Find all TSX/JSX files\n const files = await findSourceFiles(rootDir)\n\n for (const file of files) {\n try {\n const content = await fs.readFile(file, 'utf-8')\n const relPath = path.relative(rootDir, file)\n\n // Parse the file\n const ast = parse(content, {\n sourceType: 'module',\n plugins: ['jsx', 'typescript'],\n })\n\n // Scan for forms\n const forms = scanForForms(ast, content, relPath)\n results.forms.push(...forms)\n\n // Scan for metadata\n const metadata = scanForMetadata(ast, content, relPath)\n results.metadata.push(...metadata)\n\n // Scan for widgets\n const widgets = scanForWidgets(ast, content, relPath)\n results.widgets.push(...widgets)\n\n } catch (error) {\n // Skip files that can't be parsed\n continue\n }\n }\n\n return results\n}\n\n// ============================================\n// File Discovery\n// ============================================\n\nasync function findSourceFiles(dir: string, files: string[] = []): Promise<string[]> {\n const entries = await fs.readdir(dir, { withFileTypes: true })\n\n for (const entry of entries) {\n const fullPath = path.join(dir, entry.name)\n\n // Skip node_modules, .next, etc\n if (entry.isDirectory()) {\n if (['node_modules', '.next', '.git', 'dist', 'build'].includes(entry.name)) {\n continue\n }\n await findSourceFiles(fullPath, files)\n } else if (entry.isFile()) {\n if (/\\.(tsx?|jsx?)$/.test(entry.name) && !entry.name.includes('.d.ts')) {\n files.push(fullPath)\n }\n }\n }\n\n return files\n}\n\n// ============================================\n// Form Scanner\n// ============================================\n\nfunction scanForForms(ast: any, content: string, filePath: string): DetectedForm[] {\n const forms: DetectedForm[] = []\n const lines = content.split('\\n')\n\n traverse(ast, {\n JSXElement(path) {\n const opening = path.node.openingElement\n \n // Check if it's a <form> element\n if (t.isJSXIdentifier(opening.name) && opening.name.name === 'form') {\n const fields = extractFieldsFromForm(path)\n const hasOnSubmit = opening.attributes.some(\n attr => t.isJSXAttribute(attr) && \n t.isJSXIdentifier(attr.name) && \n attr.name.name === 'onSubmit'\n )\n\n if (hasOnSubmit && fields.length > 0) {\n const startLine = path.node.loc?.start.line || 0\n const endLine = path.node.loc?.end.line || 0\n\n // Try to find component name\n let componentName = 'UnknownForm'\n let current = path.parentPath\n while (current) {\n if (t.isFunctionDeclaration(current.node) && current.node.id) {\n componentName = current.node.id.name\n break\n }\n if (t.isVariableDeclarator(current.node) && t.isIdentifier(current.node.id)) {\n componentName = current.node.id.name\n break\n }\n current = current.parentPath\n }\n\n // Determine complexity\n let complexity: 'simple' | 'moderate' | 'complex' = 'simple'\n if (fields.length > 5) complexity = 'moderate'\n if (fields.length > 10 || content.includes('useFieldArray') || content.includes('steps')) {\n complexity = 'complex'\n }\n\n forms.push({\n filePath,\n componentName,\n fields,\n hasValidation: content.includes('required') || content.includes('validate'),\n formLibrary: detectFormLibrary(content),\n submitsTo: extractSubmitUrl(content),\n complexity,\n suggestedAction: complexity === 'complex' ? 'manual' : complexity === 'moderate' ? 'assisted' : 'auto-migrate',\n startLine,\n endLine,\n })\n }\n }\n\n // Check for Formik <Form>\n if (t.isJSXIdentifier(opening.name) && opening.name.name === 'Form') {\n if (content.includes('Formik') || content.includes('formik')) {\n // Handle Formik forms\n const fields = extractFieldsFromFormik(path, content)\n if (fields.length > 0) {\n forms.push({\n filePath,\n componentName: 'FormikForm',\n fields,\n hasValidation: true,\n formLibrary: 'formik',\n submitsTo: null,\n complexity: 'moderate',\n suggestedAction: 'assisted',\n startLine: path.node.loc?.start.line || 0,\n endLine: path.node.loc?.end.line || 0,\n })\n }\n }\n }\n }\n })\n\n // Also check for react-hook-form usage\n if (content.includes('useForm') && content.includes('react-hook-form')) {\n const rhfForms = extractReactHookFormFields(content, filePath)\n forms.push(...rhfForms)\n }\n\n return forms\n}\n\nfunction extractFieldsFromForm(formPath: any): DetectedField[] {\n const fields: DetectedField[] = []\n // Track radio/checkbox groups to consolidate them\n const radioGroups = new Map<string, { required: boolean; options: Array<{ label: string; value: string }> }>()\n const checkboxGroups = new Map<string, { required: boolean; options: Array<{ label: string; value: string }> }>()\n\n formPath.traverse({\n JSXElement(path: any) {\n const opening = path.node.openingElement\n const tagName = t.isJSXIdentifier(opening.name) ? opening.name.name : null\n\n if (['input', 'textarea', 'select'].includes(tagName || '')) {\n const attrs = opening.attributes\n let name = ''\n let type = 'text'\n let placeholder = ''\n let required = false\n let value = ''\n\n for (const attr of attrs) {\n if (!t.isJSXAttribute(attr) || !t.isJSXIdentifier(attr.name)) continue\n\n const attrName = attr.name.name\n let attrValue = ''\n\n if (t.isStringLiteral(attr.value)) {\n attrValue = attr.value.value\n } else if (t.isJSXExpressionContainer(attr.value) && t.isStringLiteral(attr.value.expression)) {\n attrValue = attr.value.expression.value\n }\n\n if (attrName === 'name') name = attrValue\n if (attrName === 'type') type = attrValue\n if (attrName === 'placeholder') placeholder = attrValue\n if (attrName === 'required') required = true\n if (attrName === 'value') value = attrValue\n }\n\n if (!name) return\n\n // Handle radio buttons - group by name\n if (type === 'radio') {\n if (!radioGroups.has(name)) {\n radioGroups.set(name, { required, options: [] })\n }\n const group = radioGroups.get(name)!\n if (required) group.required = true\n if (value) {\n // Use value as both label and value (label can be extracted from nearby text/label in future)\n group.options.push({ label: value, value })\n }\n return\n }\n\n // Handle checkbox groups (multiple checkboxes with same name)\n if (type === 'checkbox' && value) {\n if (!checkboxGroups.has(name)) {\n checkboxGroups.set(name, { required, options: [] })\n }\n const group = checkboxGroups.get(name)!\n if (required) group.required = true\n group.options.push({ label: value, value })\n return\n }\n\n // Handle select elements - extract options from children\n if (tagName === 'select') {\n const selectOptions: Array<{ label: string; value: string }> = []\n \n // Traverse children to find <option> elements\n path.traverse({\n JSXElement(optionPath: any) {\n const optOpening = optionPath.node.openingElement\n const optTagName = t.isJSXIdentifier(optOpening.name) ? optOpening.name.name : null\n \n if (optTagName === 'option') {\n let optValue = ''\n let optLabel = ''\n \n // Get value attribute\n for (const attr of optOpening.attributes || []) {\n if (!t.isJSXAttribute(attr) || !t.isJSXIdentifier(attr.name)) continue\n if (attr.name.name === 'value' && t.isStringLiteral(attr.value)) {\n optValue = attr.value.value\n }\n }\n \n // Get label from children (text content)\n const children = optionPath.node.children || []\n for (const child of children) {\n if (t.isJSXText(child)) {\n optLabel = child.value.trim()\n }\n }\n \n if (optValue || optLabel) {\n selectOptions.push({\n label: optLabel || optValue,\n value: optValue || optLabel.toLowerCase().replace(/\\s+/g, '_'),\n })\n }\n }\n }\n })\n \n fields.push({\n name,\n type: 'select',\n placeholder,\n required,\n options: selectOptions.length > 0 ? selectOptions : undefined,\n })\n return\n }\n\n // Regular field\n fields.push({\n name,\n type: tagName === 'textarea' ? 'textarea' : type,\n placeholder,\n required,\n })\n }\n }\n })\n\n // Add consolidated radio groups as single fields\n for (const [name, group] of radioGroups) {\n fields.push({\n name,\n type: 'radio',\n required: group.required,\n options: group.options,\n })\n }\n\n // Add consolidated checkbox groups (only if they have multiple options)\n for (const [name, group] of checkboxGroups) {\n if (group.options.length > 1) {\n fields.push({\n name,\n type: 'checkbox',\n required: group.required,\n options: group.options,\n })\n } else {\n // Single checkbox - just a boolean field\n fields.push({\n name,\n type: 'checkbox',\n required: group.required,\n })\n }\n }\n\n return fields\n}\n\nfunction extractFieldsFromFormik(formPath: any, content: string): DetectedField[] {\n const fields: DetectedField[] = []\n\n formPath.traverse({\n JSXElement(path: any) {\n const opening = path.node.openingElement\n const tagName = t.isJSXIdentifier(opening.name) ? opening.name.name : null\n\n if (tagName === 'Field' || tagName === 'FastField') {\n const attrs = opening.attributes\n let name = ''\n let type = 'text'\n\n for (const attr of attrs) {\n if (!t.isJSXAttribute(attr) || !t.isJSXIdentifier(attr.name)) continue\n\n const attrName = attr.name.name\n let attrValue = ''\n\n if (t.isStringLiteral(attr.value)) {\n attrValue = attr.value.value\n }\n\n if (attrName === 'name') name = attrValue\n if (attrName === 'type' || attrName === 'as') type = attrValue\n }\n\n if (name) {\n fields.push({\n name,\n type,\n required: false,\n })\n }\n }\n }\n })\n\n return fields\n}\n\nfunction extractReactHookFormFields(content: string, filePath: string): DetectedForm[] {\n const forms: DetectedForm[] = []\n const fields: DetectedField[] = []\n\n // Find register calls\n const registerRegex = /register\\(['\"](\\w+)['\"]/g\n let match\n while ((match = registerRegex.exec(content)) !== null) {\n const fieldName = match[1]\n if (!fields.find(f => f.name === fieldName)) {\n fields.push({\n name: fieldName,\n type: 'text', // Can't easily determine type\n required: false,\n })\n }\n }\n\n if (fields.length > 0) {\n forms.push({\n filePath,\n componentName: 'ReactHookForm',\n fields,\n hasValidation: content.includes('errors') || content.includes('formState'),\n formLibrary: 'react-hook-form',\n submitsTo: extractSubmitUrl(content),\n complexity: fields.length > 5 ? 'moderate' : 'simple',\n suggestedAction: 'assisted',\n startLine: 0,\n endLine: 0,\n })\n }\n\n return forms\n}\n\nfunction detectFormLibrary(content: string): 'native' | 'react-hook-form' | 'formik' | 'unknown' {\n if (content.includes('react-hook-form') || content.includes('useForm')) {\n return 'react-hook-form'\n }\n if (content.includes('formik') || content.includes('Formik')) {\n return 'formik'\n }\n if (content.includes('<form') && content.includes('onSubmit')) {\n return 'native'\n }\n return 'unknown'\n}\n\nfunction extractSubmitUrl(content: string): string | null {\n // Look for fetch/axios calls\n const fetchMatch = content.match(/fetch\\(['\"]([^'\"]+)['\"]/)\n if (fetchMatch) return fetchMatch[1]\n\n const axiosMatch = content.match(/axios\\.(post|put)\\(['\"]([^'\"]+)['\"]/)\n if (axiosMatch) return axiosMatch[2]\n\n return null\n}\n\n// ============================================\n// Metadata Scanner\n// ============================================\n\nfunction scanForMetadata(ast: any, content: string, filePath: string): DetectedMetadata[] {\n const metadata: DetectedMetadata[] = []\n\n // Check for Next.js metadata export\n if (content.includes('export const metadata') || content.includes('export const generateMetadata')) {\n let title: string | undefined\n let description: string | undefined\n\n const titleMatch = content.match(/title:\\s*['\"]([^'\"]+)['\"]/)\n const descMatch = content.match(/description:\\s*['\"]([^'\"]+)['\"]/)\n\n if (titleMatch) title = titleMatch[1]\n if (descMatch) description = descMatch[1]\n\n metadata.push({\n filePath,\n type: 'next-metadata',\n title,\n description,\n })\n }\n\n // Check for next-seo\n if (content.includes('NextSeo') || content.includes('next-seo')) {\n metadata.push({\n filePath,\n type: 'next-seo',\n })\n }\n\n // Check for Head component\n traverse(ast, {\n JSXElement(path) {\n const opening = path.node.openingElement\n if (t.isJSXIdentifier(opening.name) && opening.name.name === 'Head') {\n metadata.push({\n filePath,\n type: 'head',\n })\n }\n }\n })\n\n return metadata\n}\n\n// ============================================\n// Widget Scanner\n// ============================================\n\nfunction scanForWidgets(ast: any, content: string, filePath: string): DetectedWidget[] {\n const widgets: DetectedWidget[] = []\n\n // Check for known chat widget scripts\n const widgetPatterns: Array<{ pattern: RegExp; type: DetectedWidget['widgetType'] }> = [\n { pattern: /intercom|Intercom/i, type: 'intercom' },\n { pattern: /crisp\\.chat|$crisp/i, type: 'crisp' },\n { pattern: /drift\\.com|driftt/i, type: 'drift' },\n { pattern: /hubspot\\.com|hs-scripts/i, type: 'hubspot' },\n { pattern: /zopim|zendesk/i, type: 'zendesk' },\n ]\n\n for (const { pattern, type } of widgetPatterns) {\n if (pattern.test(content)) {\n // Try to find the script tag\n traverse(ast, {\n JSXElement(path) {\n const opening = path.node.openingElement\n if (t.isJSXIdentifier(opening.name) && \n (opening.name.name === 'script' || opening.name.name === 'Script')) {\n const srcAttr = opening.attributes.find(\n attr => t.isJSXAttribute(attr) && \n t.isJSXIdentifier(attr.name) && \n attr.name.name === 'src'\n )\n \n if (srcAttr && t.isJSXAttribute(srcAttr)) {\n let src = ''\n if (t.isStringLiteral(srcAttr.value)) {\n src = srcAttr.value.value\n }\n \n if (pattern.test(src)) {\n widgets.push({\n filePath,\n widgetType: type,\n scriptTag: src,\n startLine: path.node.loc?.start.line || 0,\n endLine: path.node.loc?.end.line || 0,\n })\n }\n }\n }\n }\n })\n\n // If no script tag found but pattern matched, still record it\n if (!widgets.find(w => w.widgetType === type)) {\n widgets.push({\n filePath,\n widgetType: type,\n startLine: 0,\n endLine: 0,\n })\n }\n }\n }\n\n return widgets\n}\n\n// ============================================\n// Exports\n// ============================================\n\nexport { scanForForms, scanForMetadata, scanForWidgets }\n"]}