UNPKG

create-next-flask

Version:
928 lines (913 loc) 113 kB
"use strict"; var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var __accessCheck = (obj, member, msg) => { if (!member.has(obj)) throw TypeError("Cannot " + msg); }; var __privateGet = (obj, member, getter) => { __accessCheck(obj, member, "read from private field"); return getter ? getter.call(obj) : member.get(obj); }; var __privateAdd = (obj, member, value) => { if (member.has(obj)) throw TypeError("Cannot add the same private member more than once"); member instanceof WeakSet ? member.add(obj) : member.set(obj, value); }; var __privateSet = (obj, member, value, setter) => { __accessCheck(obj, member, "write to private field"); setter ? setter.call(obj, value) : member.set(obj, value); return value; }; var __privateMethod = (obj, member, method) => { __accessCheck(obj, member, "access private method"); return method; }; // src/index.ts var src_exports = {}; __export(src_exports, { AccessKind: () => AccessKind, DeclarationDomain: () => DeclarationDomain, UsageDomain: () => UsageDomain, collectVariableUsage: () => collectVariableUsage, forEachComment: () => forEachComment, forEachToken: () => forEachToken, getAccessKind: () => getAccessKind, getCallSignaturesOfType: () => getCallSignaturesOfType, getPropertyOfType: () => getPropertyOfType, getWellKnownSymbolPropertyOfType: () => getWellKnownSymbolPropertyOfType, hasDecorators: () => hasDecorators, hasExpressionInitializer: () => hasExpressionInitializer, hasInitializer: () => hasInitializer, hasJSDoc: () => hasJSDoc, hasModifiers: () => hasModifiers, hasType: () => hasType, hasTypeArguments: () => hasTypeArguments, includesModifier: () => includesModifier, intersectionTypeParts: () => intersectionTypeParts, isAbstractKeyword: () => isAbstractKeyword, isAccessExpression: () => isAccessExpression, isAccessibilityModifier: () => isAccessibilityModifier, isAccessorDeclaration: () => isAccessorDeclaration, isAccessorKeyword: () => isAccessorKeyword, isAnyKeyword: () => isAnyKeyword, isArrayBindingElement: () => isArrayBindingElement, isArrayBindingOrAssignmentPattern: () => isArrayBindingOrAssignmentPattern, isAssertKeyword: () => isAssertKeyword, isAssertsKeyword: () => isAssertsKeyword, isAssignmentKind: () => isAssignmentKind, isAssignmentPattern: () => isAssignmentPattern, isAsyncKeyword: () => isAsyncKeyword, isAwaitKeyword: () => isAwaitKeyword, isBigIntKeyword: () => isBigIntKeyword, isBigIntLiteralType: () => isBigIntLiteralType, isBindingOrAssignmentElementRestIndicator: () => isBindingOrAssignmentElementRestIndicator, isBindingOrAssignmentElementTarget: () => isBindingOrAssignmentElementTarget, isBindingOrAssignmentPattern: () => isBindingOrAssignmentPattern, isBindingPattern: () => isBindingPattern, isBlockLike: () => isBlockLike, isBooleanKeyword: () => isBooleanKeyword, isBooleanLiteral: () => isBooleanLiteral, isBooleanLiteralType: () => isBooleanLiteralType, isClassLikeDeclaration: () => isClassLikeDeclaration, isClassMemberModifier: () => isClassMemberModifier, isColonToken: () => isColonToken, isCompilerOptionEnabled: () => isCompilerOptionEnabled, isConditionalType: () => isConditionalType, isConstAssertionExpression: () => isConstAssertionExpression, isConstKeyword: () => isConstKeyword, isDeclarationName: () => isDeclarationName, isDeclarationWithTypeParameterChildren: () => isDeclarationWithTypeParameterChildren, isDeclarationWithTypeParameters: () => isDeclarationWithTypeParameters, isDeclareKeyword: () => isDeclareKeyword, isDefaultKeyword: () => isDefaultKeyword, isDestructuringPattern: () => isDestructuringPattern, isDotToken: () => isDotToken, isEndOfFileToken: () => isEndOfFileToken, isEntityNameExpression: () => isEntityNameExpression, isEntityNameOrEntityNameExpression: () => isEntityNameOrEntityNameExpression, isEnumType: () => isEnumType, isEqualsGreaterThanToken: () => isEqualsGreaterThanToken, isEqualsToken: () => isEqualsToken, isEvolvingArrayType: () => isEvolvingArrayType, isExclamationToken: () => isExclamationToken, isExportKeyword: () => isExportKeyword, isFalseKeyword: () => isFalseKeyword, isFalseLiteral: () => isFalseLiteral, isFalseLiteralType: () => isFalseLiteralType, isFalsyType: () => isFalsyType, isForInOrOfStatement: () => isForInOrOfStatement, isFreshableIntrinsicType: () => isFreshableIntrinsicType, isFreshableType: () => isFreshableType, isFunctionLikeDeclaration: () => isFunctionLikeDeclaration, isFunctionScopeBoundary: () => isFunctionScopeBoundary, isImportExpression: () => isImportExpression, isImportKeyword: () => isImportKeyword, isInKeyword: () => isInKeyword, isIndexType: () => isIndexType, isIndexedAccessType: () => isIndexedAccessType, isInputFiles: () => isInputFiles, isInstantiableType: () => isInstantiableType, isIntersectionType: () => isIntersectionType, isIntrinsicAnyType: () => isIntrinsicAnyType, isIntrinsicBigIntType: () => isIntrinsicBigIntType, isIntrinsicBooleanType: () => isIntrinsicBooleanType, isIntrinsicESSymbolType: () => isIntrinsicESSymbolType, isIntrinsicErrorType: () => isIntrinsicErrorType, isIntrinsicNeverType: () => isIntrinsicNeverType, isIntrinsicNonPrimitiveType: () => isIntrinsicNonPrimitiveType, isIntrinsicNullType: () => isIntrinsicNullType, isIntrinsicNumberType: () => isIntrinsicNumberType, isIntrinsicStringType: () => isIntrinsicStringType, isIntrinsicType: () => isIntrinsicType, isIntrinsicUndefinedType: () => isIntrinsicUndefinedType, isIntrinsicUnknownType: () => isIntrinsicUnknownType, isIntrinsicVoidType: () => isIntrinsicVoidType, isIterationStatement: () => isIterationStatement, isJSDocComment: () => isJSDocComment, isJSDocNamespaceBody: () => isJSDocNamespaceBody, isJSDocNamespaceDeclaration: () => isJSDocNamespaceDeclaration, isJSDocText: () => isJSDocText, isJSDocTypeReferencingNode: () => isJSDocTypeReferencingNode, isJsonMinusNumericLiteral: () => isJsonMinusNumericLiteral, isJsonObjectExpression: () => isJsonObjectExpression, isJsxAttributeLike: () => isJsxAttributeLike, isJsxAttributeValue: () => isJsxAttributeValue, isJsxChild: () => isJsxChild, isJsxTagNameExpression: () => isJsxTagNameExpression, isJsxTagNamePropertyAccess: () => isJsxTagNamePropertyAccess, isLiteralToken: () => isLiteralToken, isLiteralType: () => isLiteralType, isModifierFlagSet: () => isModifierFlagSet, isModuleBody: () => isModuleBody, isModuleName: () => isModuleName, isModuleReference: () => isModuleReference, isNamedDeclarationWithName: () => isNamedDeclarationWithName, isNamedImportBindings: () => isNamedImportBindings, isNamedImportsOrExports: () => isNamedImportsOrExports, isNamespaceBody: () => isNamespaceBody, isNamespaceDeclaration: () => isNamespaceDeclaration, isNeverKeyword: () => isNeverKeyword, isNodeFlagSet: () => isNodeFlagSet, isNullKeyword: () => isNullKeyword, isNullLiteral: () => isNullLiteral, isNumberKeyword: () => isNumberKeyword, isNumberLiteralType: () => isNumberLiteralType, isNumericOrStringLikeLiteral: () => isNumericOrStringLikeLiteral, isNumericPropertyName: () => isNumericPropertyName, isObjectBindingOrAssignmentElement: () => isObjectBindingOrAssignmentElement, isObjectBindingOrAssignmentPattern: () => isObjectBindingOrAssignmentPattern, isObjectFlagSet: () => isObjectFlagSet, isObjectKeyword: () => isObjectKeyword, isObjectType: () => isObjectType, isObjectTypeDeclaration: () => isObjectTypeDeclaration, isOutKeyword: () => isOutKeyword, isOverrideKeyword: () => isOverrideKeyword, isParameterPropertyModifier: () => isParameterPropertyModifier, isPrivateKeyword: () => isPrivateKeyword, isPropertyAccessEntityNameExpression: () => isPropertyAccessEntityNameExpression, isPropertyNameLiteral: () => isPropertyNameLiteral, isPropertyReadonlyInType: () => isPropertyReadonlyInType, isProtectedKeyword: () => isProtectedKeyword, isPseudoLiteralToken: () => isPseudoLiteralToken, isPublicKeyword: () => isPublicKeyword, isQuestionDotToken: () => isQuestionDotToken, isQuestionToken: () => isQuestionToken, isReadonlyKeyword: () => isReadonlyKeyword, isSignatureDeclaration: () => isSignatureDeclaration, isStaticKeyword: () => isStaticKeyword, isStrictCompilerOptionEnabled: () => isStrictCompilerOptionEnabled, isStringKeyword: () => isStringKeyword, isStringLiteralType: () => isStringLiteralType, isStringMappingType: () => isStringMappingType, isSubstitutionType: () => isSubstitutionType, isSuperElementAccessExpression: () => isSuperElementAccessExpression, isSuperExpression: () => isSuperExpression, isSuperKeyword: () => isSuperKeyword, isSuperProperty: () => isSuperProperty, isSuperPropertyAccessExpression: () => isSuperPropertyAccessExpression, isSymbolFlagSet: () => isSymbolFlagSet, isSymbolKeyword: () => isSymbolKeyword, isSyntaxList: () => isSyntaxList, isTemplateLiteralType: () => isTemplateLiteralType, isThenableType: () => isThenableType, isThisExpression: () => isThisExpression, isThisKeyword: () => isThisKeyword, isTrueKeyword: () => isTrueKeyword, isTrueLiteral: () => isTrueLiteral, isTrueLiteralType: () => isTrueLiteralType, isTupleType: () => isTupleType, isTupleTypeReference: () => isTupleTypeReference, isTypeFlagSet: () => isTypeFlagSet, isTypeOnlyCompatibleAliasDeclaration: () => isTypeOnlyCompatibleAliasDeclaration, isTypeParameter: () => isTypeParameter, isTypeReference: () => isTypeReference, isTypeReferenceType: () => isTypeReferenceType, isTypeVariable: () => isTypeVariable, isUndefinedKeyword: () => isUndefinedKeyword, isUnionOrIntersectionType: () => isUnionOrIntersectionType, isUnionOrIntersectionTypeNode: () => isUnionOrIntersectionTypeNode, isUnionType: () => isUnionType, isUniqueESSymbolType: () => isUniqueESSymbolType, isUnknownKeyword: () => isUnknownKeyword, isUnknownLiteralType: () => isUnknownLiteralType, isUnparsedPrologue: () => isUnparsedPrologue, isUnparsedSourceText: () => isUnparsedSourceText, isUnparsedSyntheticReference: () => isUnparsedSyntheticReference, isValidPropertyAccess: () => isValidPropertyAccess, isVariableLikeDeclaration: () => isVariableLikeDeclaration, isVoidKeyword: () => isVoidKeyword, symbolHasReadonlyDeclaration: () => symbolHasReadonlyDeclaration, typeParts: () => typeParts, unionTypeParts: () => unionTypeParts }); module.exports = __toCommonJS(src_exports); // src/comments.ts var import_typescript2 = __toESM(require("typescript"), 1); // src/tokens.ts var import_typescript = __toESM(require("typescript"), 1); function forEachToken(node, callback, sourceFile = node.getSourceFile()) { const queue = []; while (true) { if (import_typescript.default.isTokenKind(node.kind)) { callback(node); } else if ( // eslint-disable-next-line deprecation/deprecation -- need for support of TS < 4.7 node.kind !== import_typescript.default.SyntaxKind.JSDocComment ) { const children = node.getChildren(sourceFile); if (children.length === 1) { node = children[0]; continue; } for (let i = children.length - 1; i >= 0; --i) { queue.push(children[i]); } } if (queue.length === 0) { break; } node = queue.pop(); } } // src/comments.ts function canHaveTrailingTrivia(token) { switch (token.kind) { case import_typescript2.default.SyntaxKind.CloseBraceToken: return token.parent.kind !== import_typescript2.default.SyntaxKind.JsxExpression || !isJsxElementOrFragment(token.parent.parent); case import_typescript2.default.SyntaxKind.GreaterThanToken: switch (token.parent.kind) { case import_typescript2.default.SyntaxKind.JsxOpeningElement: return token.end !== token.parent.end; case import_typescript2.default.SyntaxKind.JsxOpeningFragment: return false; case import_typescript2.default.SyntaxKind.JsxSelfClosingElement: return token.end !== token.parent.end || // if end is not equal, this is part of the type arguments list !isJsxElementOrFragment(token.parent.parent); case import_typescript2.default.SyntaxKind.JsxClosingElement: case import_typescript2.default.SyntaxKind.JsxClosingFragment: return !isJsxElementOrFragment(token.parent.parent.parent); } } return true; } function isJsxElementOrFragment(node) { return node.kind === import_typescript2.default.SyntaxKind.JsxElement || node.kind === import_typescript2.default.SyntaxKind.JsxFragment; } function forEachComment(node, callback, sourceFile = node.getSourceFile()) { const fullText = sourceFile.text; const notJsx = sourceFile.languageVariant !== import_typescript2.default.LanguageVariant.JSX; return forEachToken( node, (token) => { if (token.pos === token.end) { return; } if (token.kind !== import_typescript2.default.SyntaxKind.JsxText) { import_typescript2.default.forEachLeadingCommentRange( fullText, // skip shebang at position 0 token.pos === 0 ? (import_typescript2.default.getShebang(fullText) ?? "").length : token.pos, commentCallback ); } if (notJsx || canHaveTrailingTrivia(token)) { return import_typescript2.default.forEachTrailingCommentRange( fullText, token.end, commentCallback ); } }, sourceFile ); function commentCallback(pos, end, kind) { callback(fullText, { end, kind, pos }); } } // src/compilerOptions.ts var import_typescript3 = __toESM(require("typescript"), 1); function isCompilerOptionEnabled(options, option) { switch (option) { case "stripInternal": case "declarationMap": case "emitDeclarationOnly": return options[option] === true && isCompilerOptionEnabled(options, "declaration"); case "declaration": return options.declaration || isCompilerOptionEnabled(options, "composite"); case "incremental": return options.incremental === void 0 ? isCompilerOptionEnabled(options, "composite") : options.incremental; case "skipDefaultLibCheck": return options.skipDefaultLibCheck || isCompilerOptionEnabled(options, "skipLibCheck"); case "suppressImplicitAnyIndexErrors": return options.suppressImplicitAnyIndexErrors === true && isCompilerOptionEnabled(options, "noImplicitAny"); case "allowSyntheticDefaultImports": return options.allowSyntheticDefaultImports !== void 0 ? options.allowSyntheticDefaultImports : isCompilerOptionEnabled(options, "esModuleInterop") || options.module === import_typescript3.default.ModuleKind.System; case "noUncheckedIndexedAccess": return options.noUncheckedIndexedAccess === true && isCompilerOptionEnabled(options, "strictNullChecks"); case "allowJs": return options.allowJs === void 0 ? isCompilerOptionEnabled(options, "checkJs") : options.allowJs; case "noImplicitAny": case "noImplicitThis": case "strictNullChecks": case "strictFunctionTypes": case "strictPropertyInitialization": case "alwaysStrict": case "strictBindCallApply": return isStrictCompilerOptionEnabled( options, option ); } return options[option] === true; } function isStrictCompilerOptionEnabled(options, option) { return (options.strict ? options[option] !== false : options[option] === true) && (option !== "strictPropertyInitialization" || isStrictCompilerOptionEnabled(options, "strictNullChecks")); } // src/flags.ts var import_typescript4 = __toESM(require("typescript"), 1); function isFlagSet(allFlags, flag) { return (allFlags & flag) !== 0; } function isFlagSetOnObject(obj, flag) { return isFlagSet(obj.flags, flag); } function isModifierFlagSet(node, flag) { return isFlagSet(import_typescript4.default.getCombinedModifierFlags(node), flag); } var isNodeFlagSet = isFlagSetOnObject; function isObjectFlagSet(objectType, flag) { return isFlagSet(objectType.objectFlags, flag); } var isSymbolFlagSet = isFlagSetOnObject; var isTypeFlagSet = isFlagSetOnObject; // src/modifiers.ts function includesModifier(modifiers, ...kinds) { if (modifiers === void 0) { return false; } for (const modifier of modifiers) { if (kinds.includes(modifier.kind)) { return true; } } return false; } // src/nodes/access.ts var import_typescript6 = __toESM(require("typescript"), 1); // src/syntax.ts var import_typescript5 = __toESM(require("typescript"), 1); function isAssignmentKind(kind) { return kind >= import_typescript5.default.SyntaxKind.FirstAssignment && kind <= import_typescript5.default.SyntaxKind.LastAssignment; } function isNumericPropertyName(name) { return String(+name) === name; } function charSize(ch) { return ch >= 65536 ? 2 : 1; } function isValidPropertyAccess(text, languageVersion = import_typescript5.default.ScriptTarget.Latest) { if (text.length === 0) { return false; } let ch = text.codePointAt(0); if (!import_typescript5.default.isIdentifierStart(ch, languageVersion)) { return false; } for (let i = charSize(ch); i < text.length; i += charSize(ch)) { ch = text.codePointAt(i); if (!import_typescript5.default.isIdentifierPart(ch, languageVersion)) { return false; } } return true; } // src/nodes/access.ts var AccessKind = /* @__PURE__ */ ((AccessKind2) => { AccessKind2[AccessKind2["None"] = 0] = "None"; AccessKind2[AccessKind2["Read"] = 1] = "Read"; AccessKind2[AccessKind2["Write"] = 2] = "Write"; AccessKind2[AccessKind2["Delete"] = 4] = "Delete"; AccessKind2[AccessKind2["ReadWrite"] = 3] = "ReadWrite"; return AccessKind2; })(AccessKind || {}); function getAccessKind(node) { const parent = node.parent; switch (parent.kind) { case import_typescript6.default.SyntaxKind.DeleteExpression: return 4 /* Delete */; case import_typescript6.default.SyntaxKind.PostfixUnaryExpression: return 3 /* ReadWrite */; case import_typescript6.default.SyntaxKind.PrefixUnaryExpression: return parent.operator === import_typescript6.default.SyntaxKind.PlusPlusToken || parent.operator === import_typescript6.default.SyntaxKind.MinusMinusToken ? 3 /* ReadWrite */ : 1 /* Read */; case import_typescript6.default.SyntaxKind.BinaryExpression: return parent.right === node ? 1 /* Read */ : !isAssignmentKind(parent.operatorToken.kind) ? 1 /* Read */ : parent.operatorToken.kind === import_typescript6.default.SyntaxKind.EqualsToken ? 2 /* Write */ : 3 /* ReadWrite */; case import_typescript6.default.SyntaxKind.ShorthandPropertyAssignment: return parent.objectAssignmentInitializer === node ? 1 /* Read */ : isInDestructuringAssignment(parent) ? 2 /* Write */ : 1 /* Read */; case import_typescript6.default.SyntaxKind.PropertyAssignment: return parent.name === node ? 0 /* None */ : isInDestructuringAssignment(parent) ? 2 /* Write */ : 1 /* Read */; case import_typescript6.default.SyntaxKind.ArrayLiteralExpression: case import_typescript6.default.SyntaxKind.SpreadElement: case import_typescript6.default.SyntaxKind.SpreadAssignment: return isInDestructuringAssignment( parent ) ? 2 /* Write */ : 1 /* Read */; case import_typescript6.default.SyntaxKind.ParenthesizedExpression: case import_typescript6.default.SyntaxKind.NonNullExpression: case import_typescript6.default.SyntaxKind.TypeAssertionExpression: case import_typescript6.default.SyntaxKind.AsExpression: return getAccessKind(parent); case import_typescript6.default.SyntaxKind.ForOfStatement: case import_typescript6.default.SyntaxKind.ForInStatement: return parent.initializer === node ? 2 /* Write */ : 1 /* Read */; case import_typescript6.default.SyntaxKind.ExpressionWithTypeArguments: return parent.parent.token === import_typescript6.default.SyntaxKind.ExtendsKeyword && parent.parent.parent.kind !== import_typescript6.default.SyntaxKind.InterfaceDeclaration ? 1 /* Read */ : 0 /* None */; case import_typescript6.default.SyntaxKind.ComputedPropertyName: case import_typescript6.default.SyntaxKind.ExpressionStatement: case import_typescript6.default.SyntaxKind.TypeOfExpression: case import_typescript6.default.SyntaxKind.ElementAccessExpression: case import_typescript6.default.SyntaxKind.ForStatement: case import_typescript6.default.SyntaxKind.IfStatement: case import_typescript6.default.SyntaxKind.DoStatement: case import_typescript6.default.SyntaxKind.WhileStatement: case import_typescript6.default.SyntaxKind.SwitchStatement: case import_typescript6.default.SyntaxKind.WithStatement: case import_typescript6.default.SyntaxKind.ThrowStatement: case import_typescript6.default.SyntaxKind.CallExpression: case import_typescript6.default.SyntaxKind.NewExpression: case import_typescript6.default.SyntaxKind.TaggedTemplateExpression: case import_typescript6.default.SyntaxKind.JsxExpression: case import_typescript6.default.SyntaxKind.Decorator: case import_typescript6.default.SyntaxKind.TemplateSpan: case import_typescript6.default.SyntaxKind.JsxOpeningElement: case import_typescript6.default.SyntaxKind.JsxSelfClosingElement: case import_typescript6.default.SyntaxKind.JsxSpreadAttribute: case import_typescript6.default.SyntaxKind.VoidExpression: case import_typescript6.default.SyntaxKind.ReturnStatement: case import_typescript6.default.SyntaxKind.AwaitExpression: case import_typescript6.default.SyntaxKind.YieldExpression: case import_typescript6.default.SyntaxKind.ConditionalExpression: case import_typescript6.default.SyntaxKind.CaseClause: case import_typescript6.default.SyntaxKind.JsxElement: return 1 /* Read */; case import_typescript6.default.SyntaxKind.ArrowFunction: return parent.body === node ? 1 /* Read */ : 2 /* Write */; case import_typescript6.default.SyntaxKind.PropertyDeclaration: case import_typescript6.default.SyntaxKind.VariableDeclaration: case import_typescript6.default.SyntaxKind.Parameter: case import_typescript6.default.SyntaxKind.EnumMember: case import_typescript6.default.SyntaxKind.BindingElement: case import_typescript6.default.SyntaxKind.JsxAttribute: return parent.initializer === node ? 1 /* Read */ : 0 /* None */; case import_typescript6.default.SyntaxKind.PropertyAccessExpression: return parent.expression === node ? 1 /* Read */ : 0 /* None */; case import_typescript6.default.SyntaxKind.ExportAssignment: return parent.isExportEquals ? 1 /* Read */ : 0 /* None */; } return 0 /* None */; } function isInDestructuringAssignment(node) { switch (node.kind) { case import_typescript6.default.SyntaxKind.ShorthandPropertyAssignment: if (node.objectAssignmentInitializer !== void 0) { return true; } case import_typescript6.default.SyntaxKind.PropertyAssignment: case import_typescript6.default.SyntaxKind.SpreadAssignment: node = node.parent; break; case import_typescript6.default.SyntaxKind.SpreadElement: if (node.parent.kind !== import_typescript6.default.SyntaxKind.ArrayLiteralExpression) { return false; } node = node.parent; } while (true) { switch (node.parent.kind) { case import_typescript6.default.SyntaxKind.BinaryExpression: return node.parent.left === node && node.parent.operatorToken.kind === import_typescript6.default.SyntaxKind.EqualsToken; case import_typescript6.default.SyntaxKind.ForOfStatement: return node.parent.initializer === node; case import_typescript6.default.SyntaxKind.ArrayLiteralExpression: case import_typescript6.default.SyntaxKind.ObjectLiteralExpression: node = node.parent; break; case import_typescript6.default.SyntaxKind.SpreadAssignment: case import_typescript6.default.SyntaxKind.PropertyAssignment: node = node.parent.parent; break; case import_typescript6.default.SyntaxKind.SpreadElement: if (node.parent.parent.kind !== import_typescript6.default.SyntaxKind.ArrayLiteralExpression) { return false; } node = node.parent.parent; break; default: return false; } } } // src/nodes/typeGuards/compound.ts var import_typescript10 = __toESM(require("typescript"), 1); // src/nodes/typeGuards/single.ts var import_typescript7 = __toESM(require("typescript"), 1); function isAbstractKeyword(node) { return node.kind === import_typescript7.default.SyntaxKind.AbstractKeyword; } function isAccessorKeyword(node) { return node.kind === import_typescript7.default.SyntaxKind.AccessorKeyword; } function isAnyKeyword(node) { return node.kind === import_typescript7.default.SyntaxKind.AnyKeyword; } function isAssertKeyword(node) { return node.kind === import_typescript7.default.SyntaxKind.AssertKeyword; } function isAssertsKeyword(node) { return node.kind === import_typescript7.default.SyntaxKind.AssertsKeyword; } function isAsyncKeyword(node) { return node.kind === import_typescript7.default.SyntaxKind.AsyncKeyword; } function isAwaitKeyword(node) { return node.kind === import_typescript7.default.SyntaxKind.AwaitKeyword; } function isBigIntKeyword(node) { return node.kind === import_typescript7.default.SyntaxKind.BigIntKeyword; } function isBooleanKeyword(node) { return node.kind === import_typescript7.default.SyntaxKind.BooleanKeyword; } function isColonToken(node) { return node.kind === import_typescript7.default.SyntaxKind.ColonToken; } function isConstKeyword(node) { return node.kind === import_typescript7.default.SyntaxKind.ConstKeyword; } function isDeclareKeyword(node) { return node.kind === import_typescript7.default.SyntaxKind.DeclareKeyword; } function isDefaultKeyword(node) { return node.kind === import_typescript7.default.SyntaxKind.DefaultKeyword; } function isDotToken(node) { return node.kind === import_typescript7.default.SyntaxKind.DotToken; } function isEndOfFileToken(node) { return node.kind === import_typescript7.default.SyntaxKind.EndOfFileToken; } function isEqualsGreaterThanToken(node) { return node.kind === import_typescript7.default.SyntaxKind.EqualsGreaterThanToken; } function isEqualsToken(node) { return node.kind === import_typescript7.default.SyntaxKind.EqualsToken; } function isExclamationToken(node) { return node.kind === import_typescript7.default.SyntaxKind.ExclamationToken; } function isExportKeyword(node) { return node.kind === import_typescript7.default.SyntaxKind.ExportKeyword; } function isFalseKeyword(node) { return node.kind === import_typescript7.default.SyntaxKind.FalseKeyword; } function isFalseLiteral(node) { return node.kind === import_typescript7.default.SyntaxKind.FalseKeyword; } function isImportExpression(node) { return node.kind === import_typescript7.default.SyntaxKind.ImportKeyword; } function isImportKeyword(node) { return node.kind === import_typescript7.default.SyntaxKind.ImportKeyword; } function isInKeyword(node) { return node.kind === import_typescript7.default.SyntaxKind.InKeyword; } function isInputFiles(node) { return node.kind === import_typescript7.default.SyntaxKind.InputFiles; } function isJSDocText(node) { return node.kind === import_typescript7.default.SyntaxKind.JSDocText; } function isJsonMinusNumericLiteral(node) { return node.kind === import_typescript7.default.SyntaxKind.PrefixUnaryExpression; } function isNeverKeyword(node) { return node.kind === import_typescript7.default.SyntaxKind.NeverKeyword; } function isNullKeyword(node) { return node.kind === import_typescript7.default.SyntaxKind.NullKeyword; } function isNullLiteral(node) { return node.kind === import_typescript7.default.SyntaxKind.NullKeyword; } function isNumberKeyword(node) { return node.kind === import_typescript7.default.SyntaxKind.NumberKeyword; } function isObjectKeyword(node) { return node.kind === import_typescript7.default.SyntaxKind.ObjectKeyword; } function isOutKeyword(node) { return node.kind === import_typescript7.default.SyntaxKind.OutKeyword; } function isOverrideKeyword(node) { return node.kind === import_typescript7.default.SyntaxKind.OverrideKeyword; } function isPrivateKeyword(node) { return node.kind === import_typescript7.default.SyntaxKind.PrivateKeyword; } function isProtectedKeyword(node) { return node.kind === import_typescript7.default.SyntaxKind.ProtectedKeyword; } function isPublicKeyword(node) { return node.kind === import_typescript7.default.SyntaxKind.PublicKeyword; } function isQuestionDotToken(node) { return node.kind === import_typescript7.default.SyntaxKind.QuestionDotToken; } function isQuestionToken(node) { return node.kind === import_typescript7.default.SyntaxKind.QuestionToken; } function isReadonlyKeyword(node) { return node.kind === import_typescript7.default.SyntaxKind.ReadonlyKeyword; } function isStaticKeyword(node) { return node.kind === import_typescript7.default.SyntaxKind.StaticKeyword; } function isStringKeyword(node) { return node.kind === import_typescript7.default.SyntaxKind.StringKeyword; } function isSuperExpression(node) { return node.kind === import_typescript7.default.SyntaxKind.SuperKeyword; } function isSuperKeyword(node) { return node.kind === import_typescript7.default.SyntaxKind.SuperKeyword; } function isSymbolKeyword(node) { return node.kind === import_typescript7.default.SyntaxKind.SymbolKeyword; } function isSyntaxList(node) { return node.kind === import_typescript7.default.SyntaxKind.SyntaxList; } function isThisExpression(node) { return node.kind === import_typescript7.default.SyntaxKind.ThisKeyword; } function isThisKeyword(node) { return node.kind === import_typescript7.default.SyntaxKind.ThisKeyword; } function isTrueKeyword(node) { return node.kind === import_typescript7.default.SyntaxKind.TrueKeyword; } function isTrueLiteral(node) { return node.kind === import_typescript7.default.SyntaxKind.TrueKeyword; } function isUndefinedKeyword(node) { return node.kind === import_typescript7.default.SyntaxKind.UndefinedKeyword; } function isUnknownKeyword(node) { return node.kind === import_typescript7.default.SyntaxKind.UnknownKeyword; } function isUnparsedPrologue(node) { return node.kind === import_typescript7.default.SyntaxKind.UnparsedPrologue; } function isUnparsedSyntheticReference(node) { return node.kind === import_typescript7.default.SyntaxKind.UnparsedSyntheticReference; } function isVoidKeyword(node) { return node.kind === import_typescript7.default.SyntaxKind.VoidKeyword; } // src/nodes/typeGuards/union.ts var import_typescript9 = __toESM(require("typescript"), 1); // src/utils.ts var import_typescript8 = __toESM(require("typescript"), 1); var [tsMajor, tsMinor] = import_typescript8.default.versionMajorMinor.split(".").map((raw) => Number.parseInt(raw, 10)); function isTsVersionAtLeast(major, minor = 0) { return tsMajor > major || tsMajor === major && tsMinor >= minor; } // src/nodes/typeGuards/union.ts function isAccessExpression(node) { return import_typescript9.default.isPropertyAccessExpression(node) || import_typescript9.default.isElementAccessExpression(node); } function isAccessibilityModifier(node) { return isPublicKeyword(node) || isPrivateKeyword(node) || isProtectedKeyword(node); } function isAccessorDeclaration(node) { return import_typescript9.default.isGetAccessorDeclaration(node) || import_typescript9.default.isSetAccessorDeclaration(node); } function isArrayBindingElement(node) { return import_typescript9.default.isBindingElement(node) || import_typescript9.default.isOmittedExpression(node); } function isArrayBindingOrAssignmentPattern(node) { return import_typescript9.default.isArrayBindingPattern(node) || import_typescript9.default.isArrayLiteralExpression(node); } function isAssignmentPattern(node) { return import_typescript9.default.isObjectLiteralExpression(node) || import_typescript9.default.isArrayLiteralExpression(node); } function isBindingOrAssignmentElementRestIndicator(node) { if (import_typescript9.default.isSpreadElement(node) || import_typescript9.default.isSpreadAssignment(node)) { return true; } if (isTsVersionAtLeast(4, 4)) { return import_typescript9.default.isDotDotDotToken(node); } return false; } function isBindingOrAssignmentElementTarget(node) { return isBindingOrAssignmentPattern(node) || import_typescript9.default.isIdentifier(node) || import_typescript9.default.isPropertyAccessExpression(node) || import_typescript9.default.isElementAccessExpression(node) || import_typescript9.default.isOmittedExpression(node); } function isBindingOrAssignmentPattern(node) { return isObjectBindingOrAssignmentPattern(node) || isArrayBindingOrAssignmentPattern(node); } function isBindingPattern(node) { return import_typescript9.default.isObjectBindingPattern(node) || import_typescript9.default.isArrayBindingPattern(node); } function isBlockLike(node) { return import_typescript9.default.isSourceFile(node) || import_typescript9.default.isBlock(node) || import_typescript9.default.isModuleBlock(node) || import_typescript9.default.isCaseOrDefaultClause(node); } function isBooleanLiteral(node) { return isTrueLiteral(node) || isFalseLiteral(node); } function isClassLikeDeclaration(node) { return import_typescript9.default.isClassDeclaration(node) || import_typescript9.default.isClassExpression(node); } function isClassMemberModifier(node) { return isAccessibilityModifier(node) || isReadonlyKeyword(node) || isStaticKeyword(node) || isAccessorKeyword(node); } function isDeclarationName(node) { return import_typescript9.default.isIdentifier(node) || import_typescript9.default.isPrivateIdentifier(node) || import_typescript9.default.isStringLiteralLike(node) || import_typescript9.default.isNumericLiteral(node) || import_typescript9.default.isComputedPropertyName(node) || import_typescript9.default.isElementAccessExpression(node) || isBindingPattern(node) || isEntityNameExpression(node); } function isDeclarationWithTypeParameterChildren(node) { return isSignatureDeclaration(node) || // eslint-disable-next-line deprecation/deprecation -- Keep compatibility with ts <5 isClassLikeDeclaration(node) || import_typescript9.default.isInterfaceDeclaration(node) || import_typescript9.default.isTypeAliasDeclaration(node) || import_typescript9.default.isJSDocTemplateTag(node); } function isDeclarationWithTypeParameters(node) { return isDeclarationWithTypeParameterChildren(node) || import_typescript9.default.isJSDocTypedefTag(node) || import_typescript9.default.isJSDocCallbackTag(node) || import_typescript9.default.isJSDocSignature(node); } function isDestructuringPattern(node) { return isBindingPattern(node) || import_typescript9.default.isObjectLiteralExpression(node) || import_typescript9.default.isArrayLiteralExpression(node); } function isEntityNameExpression(node) { return import_typescript9.default.isIdentifier(node) || isPropertyAccessEntityNameExpression(node); } function isEntityNameOrEntityNameExpression(node) { return import_typescript9.default.isEntityName(node) || isEntityNameExpression(node); } function isForInOrOfStatement(node) { return import_typescript9.default.isForInStatement(node) || import_typescript9.default.isForOfStatement(node); } function isFunctionLikeDeclaration(node) { return import_typescript9.default.isFunctionDeclaration(node) || import_typescript9.default.isMethodDeclaration(node) || import_typescript9.default.isGetAccessorDeclaration(node) || import_typescript9.default.isSetAccessorDeclaration(node) || import_typescript9.default.isConstructorDeclaration(node) || import_typescript9.default.isFunctionExpression(node) || import_typescript9.default.isArrowFunction(node); } function hasDecorators(node) { return import_typescript9.default.isParameter(node) || import_typescript9.default.isPropertyDeclaration(node) || import_typescript9.default.isMethodDeclaration(node) || import_typescript9.default.isGetAccessorDeclaration(node) || import_typescript9.default.isSetAccessorDeclaration(node) || import_typescript9.default.isClassExpression(node) || import_typescript9.default.isClassDeclaration(node); } function hasExpressionInitializer(node) { return import_typescript9.default.isVariableDeclaration(node) || import_typescript9.default.isParameter(node) || import_typescript9.default.isBindingElement(node) || import_typescript9.default.isPropertyDeclaration(node) || import_typescript9.default.isPropertyAssignment(node) || import_typescript9.default.isEnumMember(node); } function hasInitializer(node) { return hasExpressionInitializer(node) || import_typescript9.default.isForStatement(node) || import_typescript9.default.isForInStatement(node) || import_typescript9.default.isForOfStatement(node) || import_typescript9.default.isJsxAttribute(node); } function hasJSDoc(node) { if ( // eslint-disable-next-line deprecation/deprecation -- Keep compatibility with ts <5 isAccessorDeclaration(node) || import_typescript9.default.isArrowFunction(node) || import_typescript9.default.isBlock(node) || import_typescript9.default.isBreakStatement(node) || import_typescript9.default.isCallSignatureDeclaration(node) || import_typescript9.default.isCaseClause(node) || // eslint-disable-next-line deprecation/deprecation -- Keep compatibility with ts <5 isClassLikeDeclaration(node) || import_typescript9.default.isConstructorDeclaration(node) || import_typescript9.default.isConstructorTypeNode(node) || import_typescript9.default.isConstructSignatureDeclaration(node) || import_typescript9.default.isContinueStatement(node) || import_typescript9.default.isDebuggerStatement(node) || import_typescript9.default.isDoStatement(node) || import_typescript9.default.isEmptyStatement(node) || isEndOfFileToken(node) || import_typescript9.default.isEnumDeclaration(node) || import_typescript9.default.isEnumMember(node) || import_typescript9.default.isExportAssignment(node) || import_typescript9.default.isExportDeclaration(node) || import_typescript9.default.isExportSpecifier(node) || import_typescript9.default.isExpressionStatement(node) || import_typescript9.default.isForInStatement(node) || import_typescript9.default.isForOfStatement(node) || import_typescript9.default.isForStatement(node) || import_typescript9.default.isFunctionDeclaration(node) || import_typescript9.default.isFunctionExpression(node) || import_typescript9.default.isFunctionTypeNode(node) || import_typescript9.default.isIfStatement(node) || import_typescript9.default.isImportDeclaration(node) || import_typescript9.default.isImportEqualsDeclaration(node) || import_typescript9.default.isIndexSignatureDeclaration(node) || import_typescript9.default.isInterfaceDeclaration(node) || import_typescript9.default.isJSDocFunctionType(node) || import_typescript9.default.isLabeledStatement(node) || import_typescript9.default.isMethodDeclaration(node) || import_typescript9.default.isMethodSignature(node) || import_typescript9.default.isModuleDeclaration(node) || import_typescript9.default.isNamedTupleMember(node) || import_typescript9.default.isNamespaceExportDeclaration(node) || import_typescript9.default.isParameter(node) || import_typescript9.default.isParenthesizedExpression(node) || import_typescript9.default.isPropertyAssignment(node) || import_typescript9.default.isPropertyDeclaration(node) || import_typescript9.default.isPropertySignature(node) || import_typescript9.default.isReturnStatement(node) || import_typescript9.default.isShorthandPropertyAssignment(node) || import_typescript9.default.isSpreadAssignment(node) || import_typescript9.default.isSwitchStatement(node) || import_typescript9.default.isThrowStatement(node) || import_typescript9.default.isTryStatement(node) || import_typescript9.default.isTypeAliasDeclaration(node) || import_typescript9.default.isVariableDeclaration(node) || import_typescript9.default.isVariableStatement(node) || import_typescript9.default.isWhileStatement(node) || import_typescript9.default.isWithStatement(node) ) { return true; } if (isTsVersionAtLeast(4, 4) && import_typescript9.default.isClassStaticBlockDeclaration(node)) { return true; } if (isTsVersionAtLeast(5, 0) && (import_typescript9.default.isBinaryExpression(node) || import_typescript9.default.isElementAccessExpression(node) || import_typescript9.default.isIdentifier(node) || import_typescript9.default.isJSDocSignature(node) || import_typescript9.default.isObjectLiteralExpression(node) || import_typescript9.default.isPropertyAccessExpression(node) || import_typescript9.default.isTypeParameterDeclaration(node))) { return true; } return false; } function hasModifiers(node) { return import_typescript9.default.isTypeParameterDeclaration(node) || import_typescript9.default.isParameter(node) || import_typescript9.default.isConstructorTypeNode(node) || import_typescript9.default.isPropertySignature(node) || import_typescript9.default.isPropertyDeclaration(node) || import_typescript9.default.isMethodSignature(node) || import_typescript9.default.isMethodDeclaration(node) || import_typescript9.default.isConstructorDeclaration(node) || import_typescript9.default.isGetAccessorDeclaration(node) || import_typescript9.default.isSetAccessorDeclaration(node) || import_typescript9.default.isIndexSignatureDeclaration(node) || import_typescript9.default.isFunctionExpression(node) || import_typescript9.default.isArrowFunction(node) || import_typescript9.default.isClassExpression(node) || import_typescript9.default.isVariableStatement(node) || import_typescript9.default.isFunctionDeclaration(node) || import_typescript9.default.isClassDeclaration(node) || import_typescript9.default.isInterfaceDeclaration(node) || import_typescript9.default.isTypeAliasDeclaration(node) || import_typescript9.default.isEnumDeclaration(node) || import_typescript9.default.isModuleDeclaration(node) || import_typescript9.default.isImportEqualsDeclaration(node) || import_typescript9.default.isImportDeclaration(node) || import_typescript9.default.isExportAssignment(node) || import_typescript9.default.isExportDeclaration(node); } function hasType(node) { return isSignatureDeclaration(node) || import_typescript9.default.isVariableDeclaration(node) || import_typescript9.default.isParameter(node) || import_typescript9.default.isPropertySignature(node) || import_typescript9.default.isPropertyDeclaration(node) || import_typescript9.default.isTypePredicateNode(node) || import_typescript9.default.isParenthesizedTypeNode(node) || import_typescript9.default.isTypeOperatorNode(node) || import_typescript9.default.isMappedTypeNode(node) || import_typescript9.default.isAssertionExpression(node) || import_typescript9.default.isTypeAliasDeclaration(node) || import_typescript9.default.isJSDocTypeExpression(node) || import_typescript9.default.isJSDocNonNullableType(node) || import_typescript9.default.isJSDocNullableType(node) || import_typescript9.default.isJSDocOptionalType(node) || import_typescript9.default.isJSDocVariadicType(node); } function hasTypeArguments(node) { return import_typescript9.default.isCallExpression(node) || import_typescript9.default.isNewExpression(node) || import_typescript9.default.isTaggedTemplateExpression(node) || import_typescript9.default.isJsxOpeningElement(node) || import_typescript9.default.isJsxSelfClosingElement(node); } function isJSDocComment(node) { if (isJSDocText(node)) { return true; } if (isTsVersionAtLeast(4, 4)) { return import_typescript9.default.isJSDocLink(node) || import_typescript9.default.isJSDocLinkCode(node) || import_typescript9.default.isJSDocLinkPlain(node); } return false; } function isJSDocNamespaceBody(node) { return import_typescript9.default.isIdentifier(node) || isJSDocNamespaceDeclaration(node); } function isJSDocTypeReferencingNode(node) { return import_typescript9.default.isJSDocVariadicType(node) || import_typescript9.default.isJSDocOptionalType(node) || import_typescript9.default.isJSDocNullableType(node) || import_typescript9.default.isJSDocNonNullableType(node); } function isJsonObjectExpression(node) { return import_typescript9.default.isObjectLiteralExpression(node) || import_typescript9.default.isArrayLiteralExpression(node) || isJsonMinusNumericLiteral(node) || import_typescript9.default.isNumericLiteral(node) || import_typescript9.default.isStringLiteral(node) || isBooleanLiteral(node) || isNullLiteral(node); } function isJsxAttributeLike(node) { return import_typescript9.default.isJsxAttribute(node) || import_typescript9.default.isJsxSpreadAttribute(node); } function isJsxAttributeValue(node) { return import_typescript9.default.isStringLiteral(node) || import_typescript9.default.isJsxExpression(node) || import_typescript9.default.isJsxElement(node) || import_typescript9.default.isJsxSelfClosingElement(node) || import_typescript9.default.isJsxFragment(node); } function isJsxChild(node) { return import_typescript9.default.isJsxText(node) || import_typescript9.default.isJsxExpression(node) || import_typescript9.default.isJsxElement(node) || import_typescript9.default.isJsxSelfClosingElement(node) || import_typescript9.default.isJsxFragment(node); } function isJsxTagNameExpression(node) { return import_typescript9.default.isIdentifier(node) || isThisExpression(node) || isJsxTagNamePropertyAccess(node); } function isLiteralToken(node) { return import_typescript9.default.isNumericLiteral(node) || import_typescript9.default.isBigIntLiteral(node) || import_typescript9.default.isStringLiteral(node) || import_typescript9.default.isJsxText(node) || import_typescript9.default.isRegularExpressionLiteral(node) || import_typescript9.default.isNoSubstitutionTemplateLiteral(node); } function isModuleBody(node) { return isNamespaceBody(node) || isJSDocNamespaceBody(node); } function isModuleName(node) { return import_typescript9.default.isIdentifier(node) || import_typescript9.default.isStringLiteral(node); } function isModuleReference(node) { return import_typescript9.default.isEntityName(node) || import_typescript9.default.isExternalModuleReference(node); } function isNamedImportBindings(node) { return import_typescript9.default.isNamespaceImport(node) || import_typescript9.default.isNamedImports(node); } function isNamedImportsOrExports(node) { return import_typescript9.default.isNamedImports(node) || import_typescript9.default.isNamedExports(node); } function isNamespaceBody(node) { return import_typescript9.default.isModuleBlock(node) || isNamespaceDeclaration(node); } function isObjectBindingOrAssignmentElement(node) { return import_typescript9.default.isBindingElement(node) || import_typescript9.default.isPropertyAssignment(node) || import_typescript9.default.isShorthandPropertyAssignment(node) || import_typescript9.default.isSpreadAssignment(node); } function isObjectBindingOrAssignmentPattern(node) { return import_typescript9.default.isObjectBindingPattern(node) || import_typescript9.default.isObjectLiteralExpression(node); } function isObjectTypeDeclaration(node) { return ( // eslint-disable-next-line deprecation/deprecation -- Keep compatibility with ts <5 isClassLikeDeclaration(node) || import_typescript9.default.isInterfaceDeclaration(node) || import_typescript9.default.isTypeLiteralNode(node) ); } function isParameterPropertyModifier(node) { return isAccessibilityModifier(node) || isReadonlyKeyword(node); } function isPropertyNameLiteral(node) { return import_typescript9.default.isIdentifier(node) || import_typescript9.default.isStringLiteralLike(node) || import_typescript9.default.isNumericLiteral(node); } function isPseudoLiteralToken(node) { return import_typescript9.default.isTemplateHead(node) || import_typescript9.default.isTemplateMiddle(node) || import_typescript9.default.isTemplateTail(node); } function isSignatureDeclaration(node) { return import_typescript9.default.isCallSignatureDeclaration(node) || import_typescript9.default.isConstructSignatureDeclaration(node) || import_typescript9.default.isMethodSignature(node) || import_typescript9.default.isIndexSignatureDeclaration(node) || import_typescript9.default.isFunctionTypeNode(node) || import_typescript9.default.isConstructorTypeNode(node) || import_typescript9.default.isJSDocFunctionType(node) || import_typescript9.default.isFunctionDeclaration(node) || import_typescript9.default.isMethodDeclar