@angular-eslint/bundled-angular-compiler
Version:
A CJS bundled version of @angular/compiler
1,424 lines (1,422 loc) • 1.08 MB
JavaScript
"use strict";
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
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 __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/index.ts
var index_exports = {};
__export(index_exports, {
AST: () => AST,
ASTWithName: () => ASTWithName,
ASTWithSource: () => ASTWithSource,
AbsoluteSourceSpan: () => AbsoluteSourceSpan,
ArrayType: () => ArrayType,
ArrowFunctionExpr: () => ArrowFunctionExpr,
Attribute: () => Attribute,
Binary: () => Binary,
BinaryOperator: () => BinaryOperator,
BinaryOperatorExpr: () => BinaryOperatorExpr,
BindingPipe: () => BindingPipe,
BindingPipeType: () => BindingPipeType,
BindingType: () => BindingType,
Block: () => Block,
BlockParameter: () => BlockParameter,
BoundElementProperty: () => BoundElementProperty,
BuiltinType: () => BuiltinType,
BuiltinTypeName: () => BuiltinTypeName,
CUSTOM_ELEMENTS_SCHEMA: () => CUSTOM_ELEMENTS_SCHEMA,
Call: () => Call,
Chain: () => Chain,
ChangeDetectionStrategy: () => ChangeDetectionStrategy,
CombinedRecursiveAstVisitor: () => CombinedRecursiveAstVisitor,
CommaExpr: () => CommaExpr,
Comment: () => Comment2,
CompilerConfig: () => CompilerConfig,
CompilerFacadeImpl: () => CompilerFacadeImpl,
Component: () => Component2,
Conditional: () => Conditional,
ConditionalExpr: () => ConditionalExpr,
ConstantPool: () => ConstantPool,
CssSelector: () => CssSelector,
DYNAMIC_TYPE: () => DYNAMIC_TYPE,
DeclareFunctionStmt: () => DeclareFunctionStmt,
DeclareVarStmt: () => DeclareVarStmt,
Directive: () => Directive2,
DomElementSchemaRegistry: () => DomElementSchemaRegistry,
DynamicImportExpr: () => DynamicImportExpr,
EOF: () => EOF,
Element: () => Element2,
ElementSchemaRegistry: () => ElementSchemaRegistry,
EmitterVisitorContext: () => EmitterVisitorContext,
EmptyExpr: () => EmptyExpr$1,
Expansion: () => Expansion,
ExpansionCase: () => ExpansionCase,
Expression: () => Expression,
ExpressionBinding: () => ExpressionBinding,
ExpressionStatement: () => ExpressionStatement,
ExpressionType: () => ExpressionType,
ExternalExpr: () => ExternalExpr,
ExternalReference: () => ExternalReference,
FactoryTarget: () => FactoryTarget,
FunctionExpr: () => FunctionExpr,
HtmlParser: () => HtmlParser,
HtmlTagDefinition: () => HtmlTagDefinition,
I18NHtmlParser: () => I18NHtmlParser,
IfStmt: () => IfStmt,
ImplicitReceiver: () => ImplicitReceiver,
InstantiateExpr: () => InstantiateExpr,
Interpolation: () => Interpolation$1,
InvokeFunctionExpr: () => InvokeFunctionExpr,
JSDocComment: () => JSDocComment,
JitEvaluator: () => JitEvaluator,
KeyedRead: () => KeyedRead,
LeadingComment: () => LeadingComment,
LetDeclaration: () => LetDeclaration2,
Lexer: () => Lexer,
LiteralArray: () => LiteralArray,
LiteralArrayExpr: () => LiteralArrayExpr,
LiteralExpr: () => LiteralExpr,
LiteralMap: () => LiteralMap,
LiteralMapExpr: () => LiteralMapExpr,
LiteralPrimitive: () => LiteralPrimitive,
LocalizedString: () => LocalizedString,
MapType: () => MapType,
MessageBundle: () => MessageBundle,
NONE_TYPE: () => NONE_TYPE,
NO_ERRORS_SCHEMA: () => NO_ERRORS_SCHEMA,
NodeWithI18n: () => NodeWithI18n,
NonNullAssert: () => NonNullAssert,
NotExpr: () => NotExpr,
ParenthesizedExpr: () => ParenthesizedExpr,
ParenthesizedExpression: () => ParenthesizedExpression,
ParseError: () => ParseError,
ParseErrorLevel: () => ParseErrorLevel,
ParseLocation: () => ParseLocation,
ParseSourceFile: () => ParseSourceFile,
ParseSourceSpan: () => ParseSourceSpan,
ParseSpan: () => ParseSpan,
ParseTreeResult: () => ParseTreeResult,
ParsedEvent: () => ParsedEvent,
ParsedEventType: () => ParsedEventType,
ParsedProperty: () => ParsedProperty,
ParsedPropertyType: () => ParsedPropertyType,
ParsedVariable: () => ParsedVariable,
Parser: () => Parser2,
PrefixNot: () => PrefixNot,
PropertyRead: () => PropertyRead,
R3Identifiers: () => Identifiers,
R3NgModuleMetadataKind: () => R3NgModuleMetadataKind,
R3SelectorScopeMode: () => R3SelectorScopeMode,
R3TargetBinder: () => R3TargetBinder,
R3TemplateDependencyKind: () => R3TemplateDependencyKind,
ReadKeyExpr: () => ReadKeyExpr,
ReadPropExpr: () => ReadPropExpr,
ReadVarExpr: () => ReadVarExpr,
RecursiveAstVisitor: () => RecursiveAstVisitor2,
RecursiveVisitor: () => RecursiveVisitor2,
RegularExpressionLiteral: () => RegularExpressionLiteral,
RegularExpressionLiteralExpr: () => RegularExpressionLiteralExpr,
ResourceLoader: () => ResourceLoader,
ReturnStatement: () => ReturnStatement,
SCHEMA: () => SCHEMA,
SECURITY_SCHEMA: () => SECURITY_SCHEMA,
STRING_TYPE: () => STRING_TYPE,
SafeCall: () => SafeCall,
SafeKeyedRead: () => SafeKeyedRead,
SafePropertyRead: () => SafePropertyRead,
SelectorContext: () => SelectorContext,
SelectorListContext: () => SelectorListContext,
SelectorMatcher: () => SelectorMatcher,
SelectorlessMatcher: () => SelectorlessMatcher,
Serializer: () => Serializer,
SplitInterpolation: () => SplitInterpolation,
Statement: () => Statement,
StmtModifier: () => StmtModifier,
StringToken: () => StringToken,
StringTokenKind: () => StringTokenKind,
TagContentType: () => TagContentType,
TaggedTemplateLiteral: () => TaggedTemplateLiteral,
TaggedTemplateLiteralExpr: () => TaggedTemplateLiteralExpr,
TemplateBindingParseResult: () => TemplateBindingParseResult,
TemplateLiteral: () => TemplateLiteral,
TemplateLiteralElement: () => TemplateLiteralElement,
TemplateLiteralElementExpr: () => TemplateLiteralElementExpr,
TemplateLiteralExpr: () => TemplateLiteralExpr,
Text: () => Text4,
ThisReceiver: () => ThisReceiver,
TmplAstBlockNode: () => BlockNode,
TmplAstBoundAttribute: () => BoundAttribute,
TmplAstBoundDeferredTrigger: () => BoundDeferredTrigger,
TmplAstBoundEvent: () => BoundEvent,
TmplAstBoundText: () => BoundText,
TmplAstComponent: () => Component$1,
TmplAstContent: () => Content,
TmplAstDeferredBlock: () => DeferredBlock,
TmplAstDeferredBlockError: () => DeferredBlockError,
TmplAstDeferredBlockLoading: () => DeferredBlockLoading,
TmplAstDeferredBlockPlaceholder: () => DeferredBlockPlaceholder,
TmplAstDeferredTrigger: () => DeferredTrigger,
TmplAstDirective: () => Directive$1,
TmplAstElement: () => Element$1,
TmplAstForLoopBlock: () => ForLoopBlock,
TmplAstForLoopBlockEmpty: () => ForLoopBlockEmpty,
TmplAstHostElement: () => HostElement,
TmplAstHoverDeferredTrigger: () => HoverDeferredTrigger,
TmplAstIcu: () => Icu$1,
TmplAstIdleDeferredTrigger: () => IdleDeferredTrigger,
TmplAstIfBlock: () => IfBlock,
TmplAstIfBlockBranch: () => IfBlockBranch,
TmplAstImmediateDeferredTrigger: () => ImmediateDeferredTrigger,
TmplAstInteractionDeferredTrigger: () => InteractionDeferredTrigger,
TmplAstLetDeclaration: () => LetDeclaration$1,
TmplAstNeverDeferredTrigger: () => NeverDeferredTrigger,
TmplAstRecursiveVisitor: () => RecursiveVisitor$1,
TmplAstReference: () => Reference,
TmplAstSwitchBlock: () => SwitchBlock,
TmplAstSwitchBlockCase: () => SwitchBlockCase,
TmplAstTemplate: () => Template,
TmplAstText: () => Text$3,
TmplAstTextAttribute: () => TextAttribute,
TmplAstTimerDeferredTrigger: () => TimerDeferredTrigger,
TmplAstUnknownBlock: () => UnknownBlock,
TmplAstVariable: () => Variable,
TmplAstViewportDeferredTrigger: () => ViewportDeferredTrigger,
Token: () => Token,
TokenType: () => TokenType,
TransplantedType: () => TransplantedType,
TreeError: () => TreeError,
Type: () => Type,
TypeModifier: () => TypeModifier,
TypeofExpr: () => TypeofExpr,
TypeofExpression: () => TypeofExpression,
Unary: () => Unary,
UnaryOperator: () => UnaryOperator,
UnaryOperatorExpr: () => UnaryOperatorExpr,
VERSION: () => VERSION,
VariableBinding: () => VariableBinding,
Version: () => Version,
ViewEncapsulation: () => ViewEncapsulation$1,
VoidExpr: () => VoidExpr,
VoidExpression: () => VoidExpression,
WrappedNodeExpr: () => WrappedNodeExpr,
Xliff: () => Xliff,
Xliff2: () => Xliff2,
Xmb: () => Xmb,
XmlParser: () => XmlParser,
Xtb: () => Xtb,
_ATTR_TO_PROP: () => _ATTR_TO_PROP,
compileClassDebugInfo: () => compileClassDebugInfo,
compileClassMetadata: () => compileClassMetadata,
compileComponentClassMetadata: () => compileComponentClassMetadata,
compileComponentDeclareClassMetadata: () => compileComponentDeclareClassMetadata,
compileComponentFromMetadata: () => compileComponentFromMetadata,
compileDeclareClassMetadata: () => compileDeclareClassMetadata,
compileDeclareComponentFromMetadata: () => compileDeclareComponentFromMetadata,
compileDeclareDirectiveFromMetadata: () => compileDeclareDirectiveFromMetadata,
compileDeclareFactoryFunction: () => compileDeclareFactoryFunction,
compileDeclareInjectableFromMetadata: () => compileDeclareInjectableFromMetadata,
compileDeclareInjectorFromMetadata: () => compileDeclareInjectorFromMetadata,
compileDeclareNgModuleFromMetadata: () => compileDeclareNgModuleFromMetadata,
compileDeclarePipeFromMetadata: () => compileDeclarePipeFromMetadata,
compileDeferResolverFunction: () => compileDeferResolverFunction,
compileDirectiveFromMetadata: () => compileDirectiveFromMetadata,
compileFactoryFunction: () => compileFactoryFunction,
compileHmrInitializer: () => compileHmrInitializer,
compileHmrUpdateCallback: () => compileHmrUpdateCallback,
compileInjectable: () => compileInjectable,
compileInjector: () => compileInjector,
compileNgModule: () => compileNgModule,
compileOpaqueAsyncClassMetadata: () => compileOpaqueAsyncClassMetadata,
compilePipeFromMetadata: () => compilePipeFromMetadata,
computeMsgId: () => computeMsgId,
core: () => core,
createCssSelectorFromNode: () => createCssSelectorFromNode,
createInjectableType: () => createInjectableType,
createMayBeForwardRefExpression: () => createMayBeForwardRefExpression,
devOnlyGuardedExpression: () => devOnlyGuardedExpression,
emitDistinctChangesOnlyDefaultValue: () => emitDistinctChangesOnlyDefaultValue,
encapsulateStyle: () => encapsulateStyle,
escapeRegExp: () => escapeRegExp,
findMatchingDirectivesAndPipes: () => findMatchingDirectivesAndPipes,
getHtmlTagDefinition: () => getHtmlTagDefinition,
getNsPrefix: () => getNsPrefix,
getSafePropertyAccessString: () => getSafePropertyAccessString,
identifierName: () => identifierName,
isNgContainer: () => isNgContainer,
isNgContent: () => isNgContent,
isNgTemplate: () => isNgTemplate,
jsDocComment: () => jsDocComment,
leadingComment: () => leadingComment,
literal: () => literal,
literalMap: () => literalMap,
makeBindingParser: () => makeBindingParser,
mergeNsAndName: () => mergeNsAndName,
outputAst: () => output_ast,
parseHostBindings: () => parseHostBindings,
parseTemplate: () => parseTemplate,
preserveWhitespacesDefault: () => preserveWhitespacesDefault,
publishFacade: () => publishFacade,
r3JitTypeSourceSpan: () => r3JitTypeSourceSpan,
sanitizeIdentifier: () => sanitizeIdentifier,
setEnableTemplateSourceLocations: () => setEnableTemplateSourceLocations,
splitNsName: () => splitNsName,
tmplAstVisitAll: () => visitAll$1,
verifyHostBindings: () => verifyHostBindings,
visitAll: () => visitAll
});
module.exports = __toCommonJS(index_exports);
// ../../node_modules/.pnpm/@angular+compiler@21.0.1/node_modules/@angular/compiler/fesm2022/compiler.mjs
var _SELECTOR_REGEXP = new RegExp(`(\\:not\\()|(([\\.\\#]?)[-\\w]+)|(?:\\[([-.\\w*\\\\$]+)(?:=(["']?)([^\\]"']*)\\5)?\\])|(\\))|(\\s*,\\s*)`, "g");
var CssSelector = class _CssSelector {
static {
__name(this, "CssSelector");
}
element = null;
classNames = [];
attrs = [];
notSelectors = [];
static parse(selector) {
const results = [];
const _addResult = /* @__PURE__ */ __name((res, cssSel) => {
if (cssSel.notSelectors.length > 0 && !cssSel.element && cssSel.classNames.length == 0 && cssSel.attrs.length == 0) {
cssSel.element = "*";
}
res.push(cssSel);
}, "_addResult");
let cssSelector = new _CssSelector();
let match;
let current = cssSelector;
let inNot = false;
_SELECTOR_REGEXP.lastIndex = 0;
while (match = _SELECTOR_REGEXP.exec(selector)) {
if (match[1]) {
if (inNot) {
throw new Error("Nesting :not in a selector is not allowed");
}
inNot = true;
current = new _CssSelector();
cssSelector.notSelectors.push(current);
}
const tag = match[2];
if (tag) {
const prefix = match[3];
if (prefix === "#") {
current.addAttribute("id", tag.slice(1));
} else if (prefix === ".") {
current.addClassName(tag.slice(1));
} else {
current.setElement(tag);
}
}
const attribute2 = match[4];
if (attribute2) {
current.addAttribute(current.unescapeAttribute(attribute2), match[6]);
}
if (match[7]) {
inNot = false;
current = cssSelector;
}
if (match[8]) {
if (inNot) {
throw new Error("Multiple selectors in :not are not supported");
}
_addResult(results, cssSelector);
cssSelector = current = new _CssSelector();
}
}
_addResult(results, cssSelector);
return results;
}
unescapeAttribute(attr) {
let result = "";
let escaping = false;
for (let i = 0; i < attr.length; i++) {
const char = attr.charAt(i);
if (char === "\\") {
escaping = true;
continue;
}
if (char === "$" && !escaping) {
throw new Error(`Error in attribute selector "${attr}". Unescaped "$" is not supported. Please escape with "\\$".`);
}
escaping = false;
result += char;
}
return result;
}
escapeAttribute(attr) {
return attr.replace(/\\/g, "\\\\").replace(/\$/g, "\\$");
}
isElementSelector() {
return this.hasElementSelector() && this.classNames.length == 0 && this.attrs.length == 0 && this.notSelectors.length === 0;
}
hasElementSelector() {
return !!this.element;
}
setElement(element2 = null) {
this.element = element2;
}
getAttrs() {
const result = [];
if (this.classNames.length > 0) {
result.push("class", this.classNames.join(" "));
}
return result.concat(this.attrs);
}
addAttribute(name, value = "") {
this.attrs.push(name, value && value.toLowerCase() || "");
}
addClassName(name) {
this.classNames.push(name.toLowerCase());
}
toString() {
let res = this.element || "";
if (this.classNames) {
this.classNames.forEach((klass) => res += `.${klass}`);
}
if (this.attrs) {
for (let i = 0; i < this.attrs.length; i += 2) {
const name = this.escapeAttribute(this.attrs[i]);
const value = this.attrs[i + 1];
res += `[${name}${value ? "=" + value : ""}]`;
}
}
this.notSelectors.forEach((notSelector) => res += `:not(${notSelector})`);
return res;
}
};
var SelectorMatcher = class _SelectorMatcher {
static {
__name(this, "SelectorMatcher");
}
static createNotMatcher(notSelectors) {
const notMatcher = new _SelectorMatcher();
notMatcher.addSelectables(notSelectors, null);
return notMatcher;
}
_elementMap = /* @__PURE__ */ new Map();
_elementPartialMap = /* @__PURE__ */ new Map();
_classMap = /* @__PURE__ */ new Map();
_classPartialMap = /* @__PURE__ */ new Map();
_attrValueMap = /* @__PURE__ */ new Map();
_attrValuePartialMap = /* @__PURE__ */ new Map();
_listContexts = [];
addSelectables(cssSelectors, callbackCtxt) {
let listContext = null;
if (cssSelectors.length > 1) {
listContext = new SelectorListContext(cssSelectors);
this._listContexts.push(listContext);
}
for (let i = 0; i < cssSelectors.length; i++) {
this._addSelectable(cssSelectors[i], callbackCtxt, listContext);
}
}
_addSelectable(cssSelector, callbackCtxt, listContext) {
let matcher = this;
const element2 = cssSelector.element;
const classNames = cssSelector.classNames;
const attrs = cssSelector.attrs;
const selectable = new SelectorContext(cssSelector, callbackCtxt, listContext);
if (element2) {
const isTerminal = attrs.length === 0 && classNames.length === 0;
if (isTerminal) {
this._addTerminal(matcher._elementMap, element2, selectable);
} else {
matcher = this._addPartial(matcher._elementPartialMap, element2);
}
}
if (classNames) {
for (let i = 0; i < classNames.length; i++) {
const isTerminal = attrs.length === 0 && i === classNames.length - 1;
const className = classNames[i];
if (isTerminal) {
this._addTerminal(matcher._classMap, className, selectable);
} else {
matcher = this._addPartial(matcher._classPartialMap, className);
}
}
}
if (attrs) {
for (let i = 0; i < attrs.length; i += 2) {
const isTerminal = i === attrs.length - 2;
const name = attrs[i];
const value = attrs[i + 1];
if (isTerminal) {
const terminalMap = matcher._attrValueMap;
let terminalValuesMap = terminalMap.get(name);
if (!terminalValuesMap) {
terminalValuesMap = /* @__PURE__ */ new Map();
terminalMap.set(name, terminalValuesMap);
}
this._addTerminal(terminalValuesMap, value, selectable);
} else {
const partialMap = matcher._attrValuePartialMap;
let partialValuesMap = partialMap.get(name);
if (!partialValuesMap) {
partialValuesMap = /* @__PURE__ */ new Map();
partialMap.set(name, partialValuesMap);
}
matcher = this._addPartial(partialValuesMap, value);
}
}
}
}
_addTerminal(map, name, selectable) {
let terminalList = map.get(name);
if (!terminalList) {
terminalList = [];
map.set(name, terminalList);
}
terminalList.push(selectable);
}
_addPartial(map, name) {
let matcher = map.get(name);
if (!matcher) {
matcher = new _SelectorMatcher();
map.set(name, matcher);
}
return matcher;
}
match(cssSelector, matchedCallback) {
let result = false;
const element2 = cssSelector.element;
const classNames = cssSelector.classNames;
const attrs = cssSelector.attrs;
for (let i = 0; i < this._listContexts.length; i++) {
this._listContexts[i].alreadyMatched = false;
}
result = this._matchTerminal(this._elementMap, element2, cssSelector, matchedCallback) || result;
result = this._matchPartial(this._elementPartialMap, element2, cssSelector, matchedCallback) || result;
if (classNames) {
for (let i = 0; i < classNames.length; i++) {
const className = classNames[i];
result = this._matchTerminal(this._classMap, className, cssSelector, matchedCallback) || result;
result = this._matchPartial(this._classPartialMap, className, cssSelector, matchedCallback) || result;
}
}
if (attrs) {
for (let i = 0; i < attrs.length; i += 2) {
const name = attrs[i];
const value = attrs[i + 1];
const terminalValuesMap = this._attrValueMap.get(name);
if (value) {
result = this._matchTerminal(terminalValuesMap, "", cssSelector, matchedCallback) || result;
}
result = this._matchTerminal(terminalValuesMap, value, cssSelector, matchedCallback) || result;
const partialValuesMap = this._attrValuePartialMap.get(name);
if (value) {
result = this._matchPartial(partialValuesMap, "", cssSelector, matchedCallback) || result;
}
result = this._matchPartial(partialValuesMap, value, cssSelector, matchedCallback) || result;
}
}
return result;
}
_matchTerminal(map, name, cssSelector, matchedCallback) {
if (!map || typeof name !== "string") {
return false;
}
let selectables = map.get(name) || [];
const starSelectables = map.get("*");
if (starSelectables) {
selectables = selectables.concat(starSelectables);
}
if (selectables.length === 0) {
return false;
}
let selectable;
let result = false;
for (let i = 0; i < selectables.length; i++) {
selectable = selectables[i];
result = selectable.finalize(cssSelector, matchedCallback) || result;
}
return result;
}
_matchPartial(map, name, cssSelector, matchedCallback) {
if (!map || typeof name !== "string") {
return false;
}
const nestedSelector = map.get(name);
if (!nestedSelector) {
return false;
}
return nestedSelector.match(cssSelector, matchedCallback);
}
};
var SelectorListContext = class {
static {
__name(this, "SelectorListContext");
}
selectors;
alreadyMatched = false;
constructor(selectors) {
this.selectors = selectors;
}
};
var SelectorContext = class {
static {
__name(this, "SelectorContext");
}
selector;
cbContext;
listContext;
notSelectors;
constructor(selector, cbContext, listContext) {
this.selector = selector;
this.cbContext = cbContext;
this.listContext = listContext;
this.notSelectors = selector.notSelectors;
}
finalize(cssSelector, callback) {
let result = true;
if (this.notSelectors.length > 0 && (!this.listContext || !this.listContext.alreadyMatched)) {
const notMatcher = SelectorMatcher.createNotMatcher(this.notSelectors);
result = !notMatcher.match(cssSelector, null);
}
if (result && callback && (!this.listContext || !this.listContext.alreadyMatched)) {
if (this.listContext) {
this.listContext.alreadyMatched = true;
}
callback(this.selector, this.cbContext);
}
return result;
}
};
var SelectorlessMatcher = class {
static {
__name(this, "SelectorlessMatcher");
}
registry;
constructor(registry) {
this.registry = registry;
}
match(name) {
return this.registry.has(name) ? this.registry.get(name) : [];
}
};
var emitDistinctChangesOnlyDefaultValue = true;
var ViewEncapsulation$1;
(function(ViewEncapsulation2) {
ViewEncapsulation2[ViewEncapsulation2["Emulated"] = 0] = "Emulated";
ViewEncapsulation2[ViewEncapsulation2["None"] = 2] = "None";
ViewEncapsulation2[ViewEncapsulation2["ShadowDom"] = 3] = "ShadowDom";
ViewEncapsulation2[ViewEncapsulation2["ExperimentalIsolatedShadowDom"] = 4] = "ExperimentalIsolatedShadowDom";
})(ViewEncapsulation$1 || (ViewEncapsulation$1 = {}));
var ChangeDetectionStrategy;
(function(ChangeDetectionStrategy2) {
ChangeDetectionStrategy2[ChangeDetectionStrategy2["OnPush"] = 0] = "OnPush";
ChangeDetectionStrategy2[ChangeDetectionStrategy2["Default"] = 1] = "Default";
})(ChangeDetectionStrategy || (ChangeDetectionStrategy = {}));
var InputFlags;
(function(InputFlags2) {
InputFlags2[InputFlags2["None"] = 0] = "None";
InputFlags2[InputFlags2["SignalBased"] = 1] = "SignalBased";
InputFlags2[InputFlags2["HasDecoratorInputTransform"] = 2] = "HasDecoratorInputTransform";
})(InputFlags || (InputFlags = {}));
var CUSTOM_ELEMENTS_SCHEMA = {
name: "custom-elements"
};
var NO_ERRORS_SCHEMA = {
name: "no-errors-schema"
};
var Type$1 = Function;
var SecurityContext;
(function(SecurityContext2) {
SecurityContext2[SecurityContext2["NONE"] = 0] = "NONE";
SecurityContext2[SecurityContext2["HTML"] = 1] = "HTML";
SecurityContext2[SecurityContext2["STYLE"] = 2] = "STYLE";
SecurityContext2[SecurityContext2["SCRIPT"] = 3] = "SCRIPT";
SecurityContext2[SecurityContext2["URL"] = 4] = "URL";
SecurityContext2[SecurityContext2["RESOURCE_URL"] = 5] = "RESOURCE_URL";
})(SecurityContext || (SecurityContext = {}));
var MissingTranslationStrategy;
(function(MissingTranslationStrategy2) {
MissingTranslationStrategy2[MissingTranslationStrategy2["Error"] = 0] = "Error";
MissingTranslationStrategy2[MissingTranslationStrategy2["Warning"] = 1] = "Warning";
MissingTranslationStrategy2[MissingTranslationStrategy2["Ignore"] = 2] = "Ignore";
})(MissingTranslationStrategy || (MissingTranslationStrategy = {}));
function parserSelectorToSimpleSelector(selector) {
const classes = selector.classNames && selector.classNames.length ? [8, ...selector.classNames] : [];
const elementName = selector.element && selector.element !== "*" ? selector.element : "";
return [elementName, ...selector.attrs, ...classes];
}
__name(parserSelectorToSimpleSelector, "parserSelectorToSimpleSelector");
function parserSelectorToNegativeSelector(selector) {
const classes = selector.classNames && selector.classNames.length ? [8, ...selector.classNames] : [];
if (selector.element) {
return [1 | 4, selector.element, ...selector.attrs, ...classes];
} else if (selector.attrs.length) {
return [1 | 2, ...selector.attrs, ...classes];
} else {
return selector.classNames && selector.classNames.length ? [1 | 8, ...selector.classNames] : [];
}
}
__name(parserSelectorToNegativeSelector, "parserSelectorToNegativeSelector");
function parserSelectorToR3Selector(selector) {
const positive = parserSelectorToSimpleSelector(selector);
const negative = selector.notSelectors && selector.notSelectors.length ? selector.notSelectors.map((notSelector) => parserSelectorToNegativeSelector(notSelector)) : [];
return positive.concat(...negative);
}
__name(parserSelectorToR3Selector, "parserSelectorToR3Selector");
function parseSelectorToR3Selector(selector) {
return selector ? CssSelector.parse(selector).map(parserSelectorToR3Selector) : [];
}
__name(parseSelectorToR3Selector, "parseSelectorToR3Selector");
var core = /* @__PURE__ */ Object.freeze({
__proto__: null,
CUSTOM_ELEMENTS_SCHEMA,
get ChangeDetectionStrategy() {
return ChangeDetectionStrategy;
},
get InputFlags() {
return InputFlags;
},
get MissingTranslationStrategy() {
return MissingTranslationStrategy;
},
NO_ERRORS_SCHEMA,
get SecurityContext() {
return SecurityContext;
},
Type: Type$1,
get ViewEncapsulation() {
return ViewEncapsulation$1;
},
emitDistinctChangesOnlyDefaultValue,
parseSelectorToR3Selector
});
var FactoryTarget;
(function(FactoryTarget2) {
FactoryTarget2[FactoryTarget2["Directive"] = 0] = "Directive";
FactoryTarget2[FactoryTarget2["Component"] = 1] = "Component";
FactoryTarget2[FactoryTarget2["Injectable"] = 2] = "Injectable";
FactoryTarget2[FactoryTarget2["Pipe"] = 3] = "Pipe";
FactoryTarget2[FactoryTarget2["NgModule"] = 4] = "NgModule";
})(FactoryTarget || (FactoryTarget = {}));
var R3TemplateDependencyKind$1;
(function(R3TemplateDependencyKind2) {
R3TemplateDependencyKind2[R3TemplateDependencyKind2["Directive"] = 0] = "Directive";
R3TemplateDependencyKind2[R3TemplateDependencyKind2["Pipe"] = 1] = "Pipe";
R3TemplateDependencyKind2[R3TemplateDependencyKind2["NgModule"] = 2] = "NgModule";
})(R3TemplateDependencyKind$1 || (R3TemplateDependencyKind$1 = {}));
var ViewEncapsulation;
(function(ViewEncapsulation2) {
ViewEncapsulation2[ViewEncapsulation2["Emulated"] = 0] = "Emulated";
ViewEncapsulation2[ViewEncapsulation2["None"] = 2] = "None";
ViewEncapsulation2[ViewEncapsulation2["ShadowDom"] = 3] = "ShadowDom";
ViewEncapsulation2[ViewEncapsulation2["ExperimentalIsolatedShadowDom"] = 4] = "ExperimentalIsolatedShadowDom";
})(ViewEncapsulation || (ViewEncapsulation = {}));
var textEncoder;
function digest$1(message) {
return message.id || computeDigest(message);
}
__name(digest$1, "digest$1");
function computeDigest(message) {
return sha1(serializeNodes(message.nodes).join("") + `[${message.meaning}]`);
}
__name(computeDigest, "computeDigest");
function decimalDigest(message) {
return message.id || computeDecimalDigest(message);
}
__name(decimalDigest, "decimalDigest");
function computeDecimalDigest(message) {
const visitor = new _SerializerIgnoreIcuExpVisitor();
const parts = message.nodes.map((a) => a.visit(visitor, null));
return computeMsgId(parts.join(""), message.meaning);
}
__name(computeDecimalDigest, "computeDecimalDigest");
var _SerializerVisitor = class {
static {
__name(this, "_SerializerVisitor");
}
visitText(text2, context) {
return text2.value;
}
visitContainer(container, context) {
return `[${container.children.map((child) => child.visit(this)).join(", ")}]`;
}
visitIcu(icu, context) {
const strCases = Object.keys(icu.cases).map((k) => `${k} {${icu.cases[k].visit(this)}}`);
return `{${icu.expression}, ${icu.type}, ${strCases.join(", ")}}`;
}
visitTagPlaceholder(ph, context) {
return ph.isVoid ? `<ph tag name="${ph.startName}"/>` : `<ph tag name="${ph.startName}">${ph.children.map((child) => child.visit(this)).join(", ")}</ph name="${ph.closeName}">`;
}
visitPlaceholder(ph, context) {
return ph.value ? `<ph name="${ph.name}">${ph.value}</ph>` : `<ph name="${ph.name}"/>`;
}
visitIcuPlaceholder(ph, context) {
return `<ph icu name="${ph.name}">${ph.value.visit(this)}</ph>`;
}
visitBlockPlaceholder(ph, context) {
return `<ph block name="${ph.startName}">${ph.children.map((child) => child.visit(this)).join(", ")}</ph name="${ph.closeName}">`;
}
};
var serializerVisitor$1 = new _SerializerVisitor();
function serializeNodes(nodes) {
return nodes.map((a) => a.visit(serializerVisitor$1, null));
}
__name(serializeNodes, "serializeNodes");
var _SerializerIgnoreIcuExpVisitor = class extends _SerializerVisitor {
static {
__name(this, "_SerializerIgnoreIcuExpVisitor");
}
visitIcu(icu) {
let strCases = Object.keys(icu.cases).map((k) => `${k} {${icu.cases[k].visit(this)}}`);
return `{${icu.type}, ${strCases.join(", ")}}`;
}
};
function sha1(str) {
textEncoder ??= new TextEncoder();
const utf8 = [...textEncoder.encode(str)];
const words32 = bytesToWords32(utf8, Endian.Big);
const len = utf8.length * 8;
const w = new Uint32Array(80);
let a = 1732584193, b = 4023233417, c = 2562383102, d = 271733878, e = 3285377520;
words32[len >> 5] |= 128 << 24 - len % 32;
words32[(len + 64 >> 9 << 4) + 15] = len;
for (let i = 0; i < words32.length; i += 16) {
const h0 = a, h1 = b, h2 = c, h3 = d, h4 = e;
for (let j = 0; j < 80; j++) {
if (j < 16) {
w[j] = words32[i + j];
} else {
w[j] = rol32(w[j - 3] ^ w[j - 8] ^ w[j - 14] ^ w[j - 16], 1);
}
const fkVal = fk(j, b, c, d);
const f = fkVal[0];
const k = fkVal[1];
const temp = [rol32(a, 5), f, e, k, w[j]].reduce(add32);
e = d;
d = c;
c = rol32(b, 30);
b = a;
a = temp;
}
a = add32(a, h0);
b = add32(b, h1);
c = add32(c, h2);
d = add32(d, h3);
e = add32(e, h4);
}
return toHexU32(a) + toHexU32(b) + toHexU32(c) + toHexU32(d) + toHexU32(e);
}
__name(sha1, "sha1");
function toHexU32(value) {
return (value >>> 0).toString(16).padStart(8, "0");
}
__name(toHexU32, "toHexU32");
function fk(index, b, c, d) {
if (index < 20) {
return [b & c | ~b & d, 1518500249];
}
if (index < 40) {
return [b ^ c ^ d, 1859775393];
}
if (index < 60) {
return [b & c | b & d | c & d, 2400959708];
}
return [b ^ c ^ d, 3395469782];
}
__name(fk, "fk");
function fingerprint(str) {
textEncoder ??= new TextEncoder();
const utf8 = textEncoder.encode(str);
const view = new DataView(utf8.buffer, utf8.byteOffset, utf8.byteLength);
let hi = hash32(view, utf8.length, 0);
let lo = hash32(view, utf8.length, 102072);
if (hi == 0 && (lo == 0 || lo == 1)) {
hi = hi ^ 319790063;
lo = lo ^ -1801410264;
}
return BigInt.asUintN(32, BigInt(hi)) << BigInt(32) | BigInt.asUintN(32, BigInt(lo));
}
__name(fingerprint, "fingerprint");
function computeMsgId(msg, meaning = "") {
let msgFingerprint = fingerprint(msg);
if (meaning) {
msgFingerprint = BigInt.asUintN(64, msgFingerprint << BigInt(1)) | msgFingerprint >> BigInt(63) & BigInt(1);
msgFingerprint += fingerprint(meaning);
}
return BigInt.asUintN(63, msgFingerprint).toString();
}
__name(computeMsgId, "computeMsgId");
function hash32(view, length, c) {
let a = 2654435769, b = 2654435769;
let index = 0;
const end = length - 12;
for (; index <= end; index += 12) {
a += view.getUint32(index, true);
b += view.getUint32(index + 4, true);
c += view.getUint32(index + 8, true);
const res = mix(a, b, c);
a = res[0], b = res[1], c = res[2];
}
const remainder = length - index;
c += length;
if (remainder >= 4) {
a += view.getUint32(index, true);
index += 4;
if (remainder >= 8) {
b += view.getUint32(index, true);
index += 4;
if (remainder >= 9) {
c += view.getUint8(index++) << 8;
}
if (remainder >= 10) {
c += view.getUint8(index++) << 16;
}
if (remainder === 11) {
c += view.getUint8(index++) << 24;
}
} else {
if (remainder >= 5) {
b += view.getUint8(index++);
}
if (remainder >= 6) {
b += view.getUint8(index++) << 8;
}
if (remainder === 7) {
b += view.getUint8(index++) << 16;
}
}
} else {
if (remainder >= 1) {
a += view.getUint8(index++);
}
if (remainder >= 2) {
a += view.getUint8(index++) << 8;
}
if (remainder === 3) {
a += view.getUint8(index++) << 16;
}
}
return mix(a, b, c)[2];
}
__name(hash32, "hash32");
function mix(a, b, c) {
a -= b;
a -= c;
a ^= c >>> 13;
b -= c;
b -= a;
b ^= a << 8;
c -= a;
c -= b;
c ^= b >>> 13;
a -= b;
a -= c;
a ^= c >>> 12;
b -= c;
b -= a;
b ^= a << 16;
c -= a;
c -= b;
c ^= b >>> 5;
a -= b;
a -= c;
a ^= c >>> 3;
b -= c;
b -= a;
b ^= a << 10;
c -= a;
c -= b;
c ^= b >>> 15;
return [a, b, c];
}
__name(mix, "mix");
var Endian;
(function(Endian2) {
Endian2[Endian2["Little"] = 0] = "Little";
Endian2[Endian2["Big"] = 1] = "Big";
})(Endian || (Endian = {}));
function add32(a, b) {
return add32to64(a, b)[1];
}
__name(add32, "add32");
function add32to64(a, b) {
const low = (a & 65535) + (b & 65535);
const high = (a >>> 16) + (b >>> 16) + (low >>> 16);
return [high >>> 16, high << 16 | low & 65535];
}
__name(add32to64, "add32to64");
function rol32(a, count) {
return a << count | a >>> 32 - count;
}
__name(rol32, "rol32");
function bytesToWords32(bytes, endian) {
const size = bytes.length + 3 >>> 2;
const words32 = [];
for (let i = 0; i < size; i++) {
words32[i] = wordAt(bytes, i * 4, endian);
}
return words32;
}
__name(bytesToWords32, "bytesToWords32");
function byteAt(bytes, index) {
return index >= bytes.length ? 0 : bytes[index];
}
__name(byteAt, "byteAt");
function wordAt(bytes, index, endian) {
let word = 0;
if (endian === Endian.Big) {
for (let i = 0; i < 4; i++) {
word += byteAt(bytes, index + i) << 24 - 8 * i;
}
} else {
for (let i = 0; i < 4; i++) {
word += byteAt(bytes, index + i) << 8 * i;
}
}
return word;
}
__name(wordAt, "wordAt");
var TypeModifier;
(function(TypeModifier2) {
TypeModifier2[TypeModifier2["None"] = 0] = "None";
TypeModifier2[TypeModifier2["Const"] = 1] = "Const";
})(TypeModifier || (TypeModifier = {}));
var Type = class {
static {
__name(this, "Type");
}
modifiers;
constructor(modifiers = TypeModifier.None) {
this.modifiers = modifiers;
}
hasModifier(modifier) {
return (this.modifiers & modifier) !== 0;
}
};
var BuiltinTypeName;
(function(BuiltinTypeName2) {
BuiltinTypeName2[BuiltinTypeName2["Dynamic"] = 0] = "Dynamic";
BuiltinTypeName2[BuiltinTypeName2["Bool"] = 1] = "Bool";
BuiltinTypeName2[BuiltinTypeName2["String"] = 2] = "String";
BuiltinTypeName2[BuiltinTypeName2["Int"] = 3] = "Int";
BuiltinTypeName2[BuiltinTypeName2["Number"] = 4] = "Number";
BuiltinTypeName2[BuiltinTypeName2["Function"] = 5] = "Function";
BuiltinTypeName2[BuiltinTypeName2["Inferred"] = 6] = "Inferred";
BuiltinTypeName2[BuiltinTypeName2["None"] = 7] = "None";
})(BuiltinTypeName || (BuiltinTypeName = {}));
var BuiltinType = class extends Type {
static {
__name(this, "BuiltinType");
}
name;
constructor(name, modifiers) {
super(modifiers);
this.name = name;
}
visitType(visitor, context) {
return visitor.visitBuiltinType(this, context);
}
};
var ExpressionType = class extends Type {
static {
__name(this, "ExpressionType");
}
value;
typeParams;
constructor(value, modifiers, typeParams = null) {
super(modifiers);
this.value = value;
this.typeParams = typeParams;
}
visitType(visitor, context) {
return visitor.visitExpressionType(this, context);
}
};
var ArrayType = class extends Type {
static {
__name(this, "ArrayType");
}
of;
constructor(of, modifiers) {
super(modifiers);
this.of = of;
}
visitType(visitor, context) {
return visitor.visitArrayType(this, context);
}
};
var MapType = class extends Type {
static {
__name(this, "MapType");
}
valueType;
constructor(valueType, modifiers) {
super(modifiers);
this.valueType = valueType || null;
}
visitType(visitor, context) {
return visitor.visitMapType(this, context);
}
};
var TransplantedType = class extends Type {
static {
__name(this, "TransplantedType");
}
type;
constructor(type, modifiers) {
super(modifiers);
this.type = type;
}
visitType(visitor, context) {
return visitor.visitTransplantedType(this, context);
}
};
var DYNAMIC_TYPE = new BuiltinType(BuiltinTypeName.Dynamic);
var INFERRED_TYPE = new BuiltinType(BuiltinTypeName.Inferred);
var BOOL_TYPE = new BuiltinType(BuiltinTypeName.Bool);
var INT_TYPE = new BuiltinType(BuiltinTypeName.Int);
var NUMBER_TYPE = new BuiltinType(BuiltinTypeName.Number);
var STRING_TYPE = new BuiltinType(BuiltinTypeName.String);
var FUNCTION_TYPE = new BuiltinType(BuiltinTypeName.Function);
var NONE_TYPE = new BuiltinType(BuiltinTypeName.None);
var UnaryOperator;
(function(UnaryOperator2) {
UnaryOperator2[UnaryOperator2["Minus"] = 0] = "Minus";
UnaryOperator2[UnaryOperator2["Plus"] = 1] = "Plus";
})(UnaryOperator || (UnaryOperator = {}));
var BinaryOperator;
(function(BinaryOperator2) {
BinaryOperator2[BinaryOperator2["Equals"] = 0] = "Equals";
BinaryOperator2[BinaryOperator2["NotEquals"] = 1] = "NotEquals";
BinaryOperator2[BinaryOperator2["Assign"] = 2] = "Assign";
BinaryOperator2[BinaryOperator2["Identical"] = 3] = "Identical";
BinaryOperator2[BinaryOperator2["NotIdentical"] = 4] = "NotIdentical";
BinaryOperator2[BinaryOperator2["Minus"] = 5] = "Minus";
BinaryOperator2[BinaryOperator2["Plus"] = 6] = "Plus";
BinaryOperator2[BinaryOperator2["Divide"] = 7] = "Divide";
BinaryOperator2[BinaryOperator2["Multiply"] = 8] = "Multiply";
BinaryOperator2[BinaryOperator2["Modulo"] = 9] = "Modulo";
BinaryOperator2[BinaryOperator2["And"] = 10] = "And";
BinaryOperator2[BinaryOperator2["Or"] = 11] = "Or";
BinaryOperator2[BinaryOperator2["BitwiseOr"] = 12] = "BitwiseOr";
BinaryOperator2[BinaryOperator2["BitwiseAnd"] = 13] = "BitwiseAnd";
BinaryOperator2[BinaryOperator2["Lower"] = 14] = "Lower";
BinaryOperator2[BinaryOperator2["LowerEquals"] = 15] = "LowerEquals";
BinaryOperator2[BinaryOperator2["Bigger"] = 16] = "Bigger";
BinaryOperator2[BinaryOperator2["BiggerEquals"] = 17] = "BiggerEquals";
BinaryOperator2[BinaryOperator2["NullishCoalesce"] = 18] = "NullishCoalesce";
BinaryOperator2[BinaryOperator2["Exponentiation"] = 19] = "Exponentiation";
BinaryOperator2[BinaryOperator2["In"] = 20] = "In";
BinaryOperator2[BinaryOperator2["AdditionAssignment"] = 21] = "AdditionAssignment";
BinaryOperator2[BinaryOperator2["SubtractionAssignment"] = 22] = "SubtractionAssignment";
BinaryOperator2[BinaryOperator2["MultiplicationAssignment"] = 23] = "MultiplicationAssignment";
BinaryOperator2[BinaryOperator2["DivisionAssignment"] = 24] = "DivisionAssignment";
BinaryOperator2[BinaryOperator2["RemainderAssignment"] = 25] = "RemainderAssignment";
BinaryOperator2[BinaryOperator2["ExponentiationAssignment"] = 26] = "ExponentiationAssignment";
BinaryOperator2[BinaryOperator2["AndAssignment"] = 27] = "AndAssignment";
BinaryOperator2[BinaryOperator2["OrAssignment"] = 28] = "OrAssignment";
BinaryOperator2[BinaryOperator2["NullishCoalesceAssignment"] = 29] = "NullishCoalesceAssignment";
})(BinaryOperator || (BinaryOperator = {}));
function nullSafeIsEquivalent(base, other) {
if (base == null || other == null) {
return base == other;
}
return base.isEquivalent(other);
}
__name(nullSafeIsEquivalent, "nullSafeIsEquivalent");
function areAllEquivalentPredicate(base, other, equivalentPredicate) {
const len = base.length;
if (len !== other.length) {
return false;
}
for (let i = 0; i < len; i++) {
if (!equivalentPredicate(base[i], other[i])) {
return false;
}
}
return true;
}
__name(areAllEquivalentPredicate, "areAllEquivalentPredicate");
function areAllEquivalent(base, other) {
return areAllEquivalentPredicate(base, other, (baseElement, otherElement) => baseElement.isEquivalent(otherElement));
}
__name(areAllEquivalent, "areAllEquivalent");
var Expression = class {
static {
__name(this, "Expression");
}
type;
sourceSpan;
constructor(type, sourceSpan) {
this.type = type || null;
this.sourceSpan = sourceSpan || null;
}
prop(name, sourceSpan) {
return new ReadPropExpr(this, name, null, sourceSpan);
}
key(index, type, sourceSpan) {
return new ReadKeyExpr(this, index, type, sourceSpan);
}
callFn(params, sourceSpan, pure) {
return new InvokeFunctionExpr(this, params, null, sourceSpan, pure);
}
instantiate(params, type, sourceSpan) {
return new InstantiateExpr(this, params, type, sourceSpan);
}
conditional(trueCase, falseCase = null, sourceSpan) {
return new ConditionalExpr(this, trueCase, falseCase, null, sourceSpan);
}
equals(rhs, sourceSpan) {
return new BinaryOperatorExpr(BinaryOperator.Equals, this, rhs, null, sourceSpan);
}
notEquals(rhs, sourceSpan) {
return new BinaryOperatorExpr(BinaryOperator.NotEquals, this, rhs, null, sourceSpan);
}
identical(rhs, sourceSpan) {
return new BinaryOperatorExpr(BinaryOperator.Identical, this, rhs, null, sourceSpan);
}
notIdentical(rhs, sourceSpan) {
return new BinaryOperatorExpr(BinaryOperator.NotIdentical, this, rhs, null, sourceSpan);
}
minus(rhs, sourceSpan) {
return new BinaryOperatorExpr(BinaryOperator.Minus, this, rhs, null, sourceSpan);
}
plus(rhs, sourceSpan) {
return new BinaryOperatorExpr(BinaryOperator.Plus, this, rhs, null, sourceSpan);
}
divide(rhs, sourceSpan) {
return new BinaryOperatorExpr(BinaryOperator.Divide, this, rhs, null, sourceSpan);
}
multiply(rhs, sourceSpan) {
return new BinaryOperatorExpr(BinaryOperator.Multiply, this, rhs, null, sourceSpan);
}
modulo(rhs, sourceSpan) {
return new BinaryOperatorExpr(BinaryOperator.Modulo, this, rhs, null, sourceSpan);
}
power(rhs, sourceSpan) {
return new BinaryOperatorExpr(BinaryOperator.Exponentiation, this, rhs, null, sourceSpan);
}
and(rhs, sourceSpan) {
return new BinaryOperatorExpr(BinaryOperator.And, this, rhs, null, sourceSpan);
}
bitwiseOr(rhs, sourceSpan) {
return new BinaryOperatorExpr(BinaryOperator.BitwiseOr, this, rhs, null, sourceSpan);
}
bitwiseAnd(rhs, sourceSpan) {
return new BinaryOperatorExpr(BinaryOperator.BitwiseAnd, this, rhs, null, sourceSpan);
}
or(rhs, sourceSpan) {
return new BinaryOperatorExpr(BinaryOperator.Or, this, rhs, null, sourceSpan);
}
lower(rhs, sourceSpan) {
return new BinaryOperatorExpr(BinaryOperator.Lower, this, rhs, null, sourceSpan);
}
lowerEquals(rhs, sourceSpan) {
return new BinaryOperatorExpr(BinaryOperator.LowerEquals, this, rhs, null, sourceSpan);
}
bigger(rhs, sourceSpan) {
return new BinaryOperatorExpr(BinaryOperator.Bigger, this, rhs, null, sourceSpan);
}
biggerEquals(rhs, sourceSpan) {
return new BinaryOperatorExpr(BinaryOperator.BiggerEquals, this, rhs, null, sourceSpan);
}
isBlank(sourceSpan) {
return this.equals(TYPED_NULL_EXPR, sourceSpan);
}
nullishCoalesce(rhs, sourceSpan) {
return new BinaryOperatorExpr(BinaryOperator.NullishCoalesce, this, rhs, null, sourceSpan);
}
toStmt() {
return new ExpressionStatement(this, null);
}
};
var ReadVarExpr = class _ReadVarExpr extends Expression {
static {
__name(this, "ReadVarExpr");
}
name;
constructor(name, type, sourceSpan) {
super(type, sourceSpan);
this.name = name;
}
isEquivalent(e) {
return e instanceof _ReadVarExpr && this.name === e.name;
}
isConstant() {
return false;
}
visitExpression(visitor, context) {
return visitor.visitReadVarExpr(this, context);
}
clone() {
return new _ReadVarExpr(this.name, this.type, this.sourceSpan);
}
set(value) {
return new BinaryOperatorExpr(BinaryOperator.Assign, this, value, null, this.sourceSpan);
}
};
var TypeofExpr = class _TypeofExpr extends Expression {
static {
__name(this, "TypeofExpr");
}
expr;
constructor(expr, type, sourceSpan) {
super(type, sourceSpan);
this.expr = expr;
}
visitExpression(visitor, context) {
return visitor.visitTypeofExpr(this, context);
}
isEquivalent(e) {
return e instanceof _TypeofExpr && e.expr.isEquivalent(this.expr);
}
isConstant() {
return this.expr.isConstant();
}
clone() {
return new _TypeofExpr(this.expr.clone());
}
};
var VoidExpr = class _VoidExpr extends Expression {
static {
__name(this, "VoidExpr");
}
expr;
constructor(expr, type, sourceSpan) {
super(type, sourceSpan);
this.expr = expr;
}
visitExpression(visitor, context) {
return visitor.visitVoidExpr(this, context);
}
isEquivalent(e) {
return e instanceof _VoidExpr && e.expr.isEquivalent(this.expr);
}
isConstant() {
return this.expr.isConstant();
}
clone() {
return new _VoidExpr(this.expr.clone());
}
};
var WrappedNodeExpr = class _WrappedNodeExpr extends Expression {
static {
__name(this, "WrappedNodeExpr");
}
node;
constructor(node, type, sourceSpan) {
super(type, sourceSpan);
this.node = node;
}
isEquivalent(e) {
return e instanceof _WrappedNodeExpr && this.node === e.node;
}
isConstant() {
return false;
}
visitExpression(visitor, context) {
return visitor.visitWrappedNodeExpr(this, context);
}
clone() {
return new _WrappedNodeExpr(this.node, this.type, this.sourceSpan);
}
};
var InvokeFunctionExpr = class _InvokeFunctionExpr extends Expression {
static {
__name(this, "InvokeFunctionExpr");
}
fn;
args;
pure;
constructor(fn2, args, type, sourceSpan, pure = false) {
super(type, sourceSpan);
this.fn = fn2;
this.args = args;
this.pure = pure;
}
get receiver() {
return this.fn;
}
isEquivalent(e) {
return e instanceof _InvokeFunctionExpr && this.fn.isEquivalent(e.fn) && areAllEquivalent(this.args, e.args) && this.pure === e.pure;
}
isConstant() {
return false;
}
visitExpression(visitor, context) {
return visitor.visitInvokeFunctionExpr(this, context);
}
clone() {
return new _InvokeFunctionExpr(this.fn.clone(), this.args.map((arg) => arg.clone()), this.type, this.sourceSpan, this.pure);
}
};
var TaggedTemplateLiteralExpr = class _TaggedTemplateLiteralExpr extends Expression {
static {
__name(this, "TaggedTemplateLiteralExpr");
}
tag;
template;
constructor(tag, template2, type, sourceSpan) {
super(type, sourceSpan);
this.tag = tag;
this.template = template2;
}
isEquivalent(e) {
return e instanceof _TaggedTemplateLiteralExpr && this.tag.isEquivalent(e.tag) && this.template.isEquivalent(e.template);
}
isConstant() {
return false;
}
visitExpression(visitor, context) {
return visitor.visitTaggedTemplateLiteralExpr(this, context);
}
clone() {
return new _TaggedTemplateLiteralExpr(this.tag.clone(), this.template.clone(), this.type, this.sourceSpan);
}
};
var InstantiateExpr = class _InstantiateExpr extends Expression {
static {
__name(this, "InstantiateExpr");
}
classExpr;
args;
constructor(classExpr, args, type, sourceSpan) {
super(type, sourceSpan);
this.classExpr = classExpr;
this.args = args;
}
isEquivalent(e) {
return e instanceof _InstantiateExpr && this.classExpr.isEquivalent(e.classExpr) && areAllEquivalent(this.args, e.args);
}
isConstant() {
return false;
}
visitExpression(visitor, context) {
return visitor.visitInstantiateExpr(this, context);
}
clone() {
return new _InstantiateExpr(this.classExpr.clone(), this.args.map((arg) => arg.clone()), this.type, this.sourceSpan);
}
};
var RegularExpressionLiteralExpr = class _RegularExpressionLiteralExpr extends Expression {
static {
__name(this, "RegularExpressionLiteralExpr");
}
body;
flags;
constructor(body, flags, sourceSpan) {
super(null, sourceSpan);
this.body = body;
this.flags = flags;
}
isEquivalent(e) {
return e instanceof _RegularExpressionLiteralExpr && this.body === e.b