| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640 |
- import {createRequire as __cjsCompatRequire} from 'module';
- const require = __cjsCompatRequire(import.meta.url);
-
- // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/reflection/src/typescript.mjs
- import ts4 from "typescript";
- // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/reflection/src/host.mjs
- import ts from "typescript";
- function isDecoratorIdentifier(exp) {
- return ts.isIdentifier(exp) || ts.isPropertyAccessExpression(exp) && ts.isIdentifier(exp.expression) && ts.isIdentifier(exp.name);
- }
- var ClassMemberKind;
- (function(ClassMemberKind2) {
- ClassMemberKind2[ClassMemberKind2["Constructor"] = 0] = "Constructor";
- ClassMemberKind2[ClassMemberKind2["Getter"] = 1] = "Getter";
- ClassMemberKind2[ClassMemberKind2["Setter"] = 2] = "Setter";
- ClassMemberKind2[ClassMemberKind2["Property"] = 3] = "Property";
- ClassMemberKind2[ClassMemberKind2["Method"] = 4] = "Method";
- })(ClassMemberKind || (ClassMemberKind = {}));
- // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/reflection/src/type_to_value.mjs
- import ts2 from "typescript";
- function typeToValue(typeNode, checker) {
- if (typeNode === null) {
- return missingType();
- }
- if (!ts2.isTypeReferenceNode(typeNode)) {
- return unsupportedType(typeNode);
- }
- const symbols = resolveTypeSymbols(typeNode, checker);
- if (symbols === null) {
- return unknownReference(typeNode);
- }
- const { local, decl } = symbols;
- if (decl.valueDeclaration === void 0 || decl.flags & ts2.SymbolFlags.ConstEnum) {
- let typeOnlyDecl = null;
- if (decl.declarations !== void 0 && decl.declarations.length > 0) {
- typeOnlyDecl = decl.declarations[0];
- }
- return noValueDeclaration(typeNode, typeOnlyDecl);
- }
- const firstDecl = local.declarations && local.declarations[0];
- if (firstDecl !== void 0) {
- if (ts2.isImportClause(firstDecl) && firstDecl.name !== void 0) {
- if (firstDecl.isTypeOnly) {
- return typeOnlyImport(typeNode, firstDecl);
- }
- return {
- kind: 0,
- expression: firstDecl.name,
- defaultImportStatement: firstDecl.parent
- };
- } else if (ts2.isImportSpecifier(firstDecl)) {
- if (firstDecl.isTypeOnly) {
- return typeOnlyImport(typeNode, firstDecl);
- }
- if (firstDecl.parent.parent.isTypeOnly) {
- return typeOnlyImport(typeNode, firstDecl.parent.parent);
- }
- const importedName = (firstDecl.propertyName || firstDecl.name).text;
- const [_localName, ...nestedPath] = symbols.symbolNames;
- const moduleName = extractModuleName(firstDecl.parent.parent.parent);
- return {
- kind: 1,
- valueDeclaration: decl.valueDeclaration,
- moduleName,
- importedName,
- nestedPath
- };
- } else if (ts2.isNamespaceImport(firstDecl)) {
- if (firstDecl.parent.isTypeOnly) {
- return typeOnlyImport(typeNode, firstDecl.parent);
- }
- if (symbols.symbolNames.length === 1) {
- return namespaceImport(typeNode, firstDecl.parent);
- }
- const [_ns, importedName, ...nestedPath] = symbols.symbolNames;
- const moduleName = extractModuleName(firstDecl.parent.parent);
- return {
- kind: 1,
- valueDeclaration: decl.valueDeclaration,
- moduleName,
- importedName,
- nestedPath
- };
- }
- }
- const expression = typeNodeToValueExpr(typeNode);
- if (expression !== null) {
- return {
- kind: 0,
- expression,
- defaultImportStatement: null
- };
- } else {
- return unsupportedType(typeNode);
- }
- }
- function unsupportedType(typeNode) {
- return {
- kind: 2,
- reason: { kind: 5, typeNode }
- };
- }
- function noValueDeclaration(typeNode, decl) {
- return {
- kind: 2,
- reason: { kind: 1, typeNode, decl }
- };
- }
- function typeOnlyImport(typeNode, node) {
- return {
- kind: 2,
- reason: { kind: 2, typeNode, node }
- };
- }
- function unknownReference(typeNode) {
- return {
- kind: 2,
- reason: { kind: 3, typeNode }
- };
- }
- function namespaceImport(typeNode, importClause) {
- return {
- kind: 2,
- reason: { kind: 4, typeNode, importClause }
- };
- }
- function missingType() {
- return {
- kind: 2,
- reason: { kind: 0 }
- };
- }
- function typeNodeToValueExpr(node) {
- if (ts2.isTypeReferenceNode(node)) {
- return entityNameToValue(node.typeName);
- } else {
- return null;
- }
- }
- function resolveTypeSymbols(typeRef, checker) {
- const typeName = typeRef.typeName;
- const typeRefSymbol = checker.getSymbolAtLocation(typeName);
- if (typeRefSymbol === void 0) {
- return null;
- }
- let local = typeRefSymbol;
- let leftMost = typeName;
- const symbolNames = [];
- while (ts2.isQualifiedName(leftMost)) {
- symbolNames.unshift(leftMost.right.text);
- leftMost = leftMost.left;
- }
- symbolNames.unshift(leftMost.text);
- if (leftMost !== typeName) {
- const localTmp = checker.getSymbolAtLocation(leftMost);
- if (localTmp !== void 0) {
- local = localTmp;
- }
- }
- let decl = typeRefSymbol;
- if (typeRefSymbol.flags & ts2.SymbolFlags.Alias) {
- decl = checker.getAliasedSymbol(typeRefSymbol);
- }
- return { local, decl, symbolNames };
- }
- function entityNameToValue(node) {
- if (ts2.isQualifiedName(node)) {
- const left = entityNameToValue(node.left);
- return left !== null ? ts2.factory.createPropertyAccessExpression(left, node.right) : null;
- } else if (ts2.isIdentifier(node)) {
- const clone = ts2.setOriginalNode(ts2.factory.createIdentifier(node.text), node);
- clone.parent = node.parent;
- return clone;
- } else {
- return null;
- }
- }
- function extractModuleName(node) {
- if (!ts2.isStringLiteral(node.moduleSpecifier)) {
- throw new Error("not a module specifier");
- }
- return node.moduleSpecifier.text;
- }
- // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/reflection/src/util.mjs
- import ts3 from "typescript";
- function isNamedClassDeclaration(node) {
- return ts3.isClassDeclaration(node) && isIdentifier(node.name);
- }
- function isIdentifier(node) {
- return node !== void 0 && ts3.isIdentifier(node);
- }
- // bazel-out/darwin-fastbuild/bin/packages/compiler-cli/src/ngtsc/reflection/src/typescript.mjs
- var TypeScriptReflectionHost = class {
- constructor(checker) {
- this.checker = checker;
- }
- getDecoratorsOfDeclaration(declaration) {
- const decorators = ts4.canHaveDecorators(declaration) ? ts4.getDecorators(declaration) : void 0;
- return decorators !== void 0 && decorators.length ? decorators.map((decorator) => this._reflectDecorator(decorator)).filter((dec) => dec !== null) : null;
- }
- getMembersOfClass(clazz) {
- const tsClazz = castDeclarationToClassOrDie(clazz);
- return tsClazz.members.map((member) => this._reflectMember(member)).filter((member) => member !== null);
- }
- getConstructorParameters(clazz) {
- const tsClazz = castDeclarationToClassOrDie(clazz);
- const isDeclaration = tsClazz.getSourceFile().isDeclarationFile;
- const ctor = tsClazz.members.find((member) => ts4.isConstructorDeclaration(member) && (isDeclaration || member.body !== void 0));
- if (ctor === void 0) {
- return null;
- }
- return ctor.parameters.map((node) => {
- const name = parameterName(node.name);
- const decorators = this.getDecoratorsOfDeclaration(node);
- let originalTypeNode = node.type || null;
- let typeNode = originalTypeNode;
- if (typeNode && ts4.isUnionTypeNode(typeNode)) {
- let childTypeNodes = typeNode.types.filter((childTypeNode) => !(ts4.isLiteralTypeNode(childTypeNode) && childTypeNode.literal.kind === ts4.SyntaxKind.NullKeyword));
- if (childTypeNodes.length === 1) {
- typeNode = childTypeNodes[0];
- }
- }
- const typeValueReference = typeToValue(typeNode, this.checker);
- return {
- name,
- nameNode: node.name,
- typeValueReference,
- typeNode: originalTypeNode,
- decorators
- };
- });
- }
- getImportOfIdentifier(id) {
- const directImport = this.getDirectImportOfIdentifier(id);
- if (directImport !== null) {
- return directImport;
- } else if (ts4.isQualifiedName(id.parent) && id.parent.right === id) {
- return this.getImportOfNamespacedIdentifier(id, getQualifiedNameRoot(id.parent));
- } else if (ts4.isPropertyAccessExpression(id.parent) && id.parent.name === id) {
- return this.getImportOfNamespacedIdentifier(id, getFarLeftIdentifier(id.parent));
- } else {
- return null;
- }
- }
- getExportsOfModule(node) {
- if (!ts4.isSourceFile(node)) {
- throw new Error(`getExportsOfModule() called on non-SourceFile in TS code`);
- }
- const symbol = this.checker.getSymbolAtLocation(node);
- if (symbol === void 0) {
- return null;
- }
- const map = /* @__PURE__ */ new Map();
- this.checker.getExportsOfModule(symbol).forEach((exportSymbol) => {
- const decl = this.getDeclarationOfSymbol(exportSymbol, null);
- if (decl !== null) {
- map.set(exportSymbol.name, decl);
- }
- });
- return map;
- }
- isClass(node) {
- return isNamedClassDeclaration(node);
- }
- hasBaseClass(clazz) {
- return this.getBaseClassExpression(clazz) !== null;
- }
- getBaseClassExpression(clazz) {
- if (!(ts4.isClassDeclaration(clazz) || ts4.isClassExpression(clazz)) || clazz.heritageClauses === void 0) {
- return null;
- }
- const extendsClause = clazz.heritageClauses.find((clause) => clause.token === ts4.SyntaxKind.ExtendsKeyword);
- if (extendsClause === void 0) {
- return null;
- }
- const extendsType = extendsClause.types[0];
- if (extendsType === void 0) {
- return null;
- }
- return extendsType.expression;
- }
- getDeclarationOfIdentifier(id) {
- let symbol = this.checker.getSymbolAtLocation(id);
- if (symbol === void 0) {
- return null;
- }
- return this.getDeclarationOfSymbol(symbol, id);
- }
- getDefinitionOfFunction(node) {
- if (!ts4.isFunctionDeclaration(node) && !ts4.isMethodDeclaration(node) && !ts4.isFunctionExpression(node) && !ts4.isArrowFunction(node)) {
- return null;
- }
- let body = null;
- if (node.body !== void 0) {
- body = ts4.isBlock(node.body) ? Array.from(node.body.statements) : [ts4.factory.createReturnStatement(node.body)];
- }
- return {
- node,
- body,
- typeParameters: node.typeParameters === void 0 ? null : Array.from(node.typeParameters),
- parameters: node.parameters.map((param) => {
- const name = parameterName(param.name);
- const initializer = param.initializer || null;
- return { name, node: param, initializer, type: param.type || null };
- })
- };
- }
- getGenericArityOfClass(clazz) {
- if (!ts4.isClassDeclaration(clazz)) {
- return null;
- }
- return clazz.typeParameters !== void 0 ? clazz.typeParameters.length : 0;
- }
- getVariableValue(declaration) {
- return declaration.initializer || null;
- }
- isStaticallyExported(decl) {
- let topLevel = decl;
- if (ts4.isVariableDeclaration(decl) && ts4.isVariableDeclarationList(decl.parent)) {
- topLevel = decl.parent.parent;
- }
- const modifiers = ts4.canHaveModifiers(topLevel) ? ts4.getModifiers(topLevel) : void 0;
- if (modifiers !== void 0 && modifiers.some((modifier) => modifier.kind === ts4.SyntaxKind.ExportKeyword)) {
- return true;
- }
- if (topLevel.parent === void 0 || !ts4.isSourceFile(topLevel.parent)) {
- return false;
- }
- const localExports = this.getLocalExportedDeclarationsOfSourceFile(decl.getSourceFile());
- return localExports.has(decl);
- }
- getDirectImportOfIdentifier(id) {
- const symbol = this.checker.getSymbolAtLocation(id);
- if (symbol === void 0 || symbol.declarations === void 0 || symbol.declarations.length !== 1) {
- return null;
- }
- const decl = symbol.declarations[0];
- const importDecl = getContainingImportDeclaration(decl);
- if (importDecl === null) {
- return null;
- }
- if (!ts4.isStringLiteral(importDecl.moduleSpecifier)) {
- return null;
- }
- return { from: importDecl.moduleSpecifier.text, name: getExportedName(decl, id) };
- }
- getImportOfNamespacedIdentifier(id, namespaceIdentifier) {
- if (namespaceIdentifier === null) {
- return null;
- }
- const namespaceSymbol = this.checker.getSymbolAtLocation(namespaceIdentifier);
- if (!namespaceSymbol || namespaceSymbol.declarations === void 0) {
- return null;
- }
- const declaration = namespaceSymbol.declarations.length === 1 ? namespaceSymbol.declarations[0] : null;
- if (!declaration) {
- return null;
- }
- const namespaceDeclaration = ts4.isNamespaceImport(declaration) ? declaration : null;
- if (!namespaceDeclaration) {
- return null;
- }
- const importDeclaration = namespaceDeclaration.parent.parent;
- if (!ts4.isStringLiteral(importDeclaration.moduleSpecifier)) {
- return null;
- }
- return {
- from: importDeclaration.moduleSpecifier.text,
- name: id.text
- };
- }
- getDeclarationOfSymbol(symbol, originalId) {
- let valueDeclaration = void 0;
- if (symbol.valueDeclaration !== void 0) {
- valueDeclaration = symbol.valueDeclaration;
- } else if (symbol.declarations !== void 0 && symbol.declarations.length > 0) {
- valueDeclaration = symbol.declarations[0];
- }
- if (valueDeclaration !== void 0 && ts4.isShorthandPropertyAssignment(valueDeclaration)) {
- const shorthandSymbol = this.checker.getShorthandAssignmentValueSymbol(valueDeclaration);
- if (shorthandSymbol === void 0) {
- return null;
- }
- return this.getDeclarationOfSymbol(shorthandSymbol, originalId);
- } else if (valueDeclaration !== void 0 && ts4.isExportSpecifier(valueDeclaration)) {
- const targetSymbol = this.checker.getExportSpecifierLocalTargetSymbol(valueDeclaration);
- if (targetSymbol === void 0) {
- return null;
- }
- return this.getDeclarationOfSymbol(targetSymbol, originalId);
- }
- const importInfo = originalId && this.getImportOfIdentifier(originalId);
- const viaModule = importInfo !== null && importInfo.from !== null && !importInfo.from.startsWith(".") ? importInfo.from : null;
- while (symbol.flags & ts4.SymbolFlags.Alias) {
- symbol = this.checker.getAliasedSymbol(symbol);
- }
- if (symbol.valueDeclaration !== void 0) {
- return {
- node: symbol.valueDeclaration,
- viaModule
- };
- } else if (symbol.declarations !== void 0 && symbol.declarations.length > 0) {
- return {
- node: symbol.declarations[0],
- viaModule
- };
- } else {
- return null;
- }
- }
- _reflectDecorator(node) {
- let decoratorExpr = node.expression;
- let args = null;
- if (ts4.isCallExpression(decoratorExpr)) {
- args = Array.from(decoratorExpr.arguments);
- decoratorExpr = decoratorExpr.expression;
- }
- if (!isDecoratorIdentifier(decoratorExpr)) {
- return null;
- }
- const decoratorIdentifier = ts4.isIdentifier(decoratorExpr) ? decoratorExpr : decoratorExpr.name;
- const importDecl = this.getImportOfIdentifier(decoratorIdentifier);
- return {
- name: decoratorIdentifier.text,
- identifier: decoratorExpr,
- import: importDecl,
- node,
- args
- };
- }
- _reflectMember(node) {
- let kind = null;
- let value = null;
- let name = null;
- let nameNode = null;
- if (ts4.isPropertyDeclaration(node)) {
- kind = ClassMemberKind.Property;
- value = node.initializer || null;
- } else if (ts4.isGetAccessorDeclaration(node)) {
- kind = ClassMemberKind.Getter;
- } else if (ts4.isSetAccessorDeclaration(node)) {
- kind = ClassMemberKind.Setter;
- } else if (ts4.isMethodDeclaration(node)) {
- kind = ClassMemberKind.Method;
- } else if (ts4.isConstructorDeclaration(node)) {
- kind = ClassMemberKind.Constructor;
- } else {
- return null;
- }
- if (ts4.isConstructorDeclaration(node)) {
- name = "constructor";
- } else if (ts4.isIdentifier(node.name)) {
- name = node.name.text;
- nameNode = node.name;
- } else if (ts4.isStringLiteral(node.name)) {
- name = node.name.text;
- nameNode = node.name;
- } else {
- return null;
- }
- const decorators = this.getDecoratorsOfDeclaration(node);
- const modifiers = ts4.getModifiers(node);
- const isStatic = modifiers !== void 0 && modifiers.some((mod) => mod.kind === ts4.SyntaxKind.StaticKeyword);
- return {
- node,
- implementation: node,
- kind,
- type: node.type || null,
- name,
- nameNode,
- decorators,
- value,
- isStatic
- };
- }
- getLocalExportedDeclarationsOfSourceFile(file) {
- const cacheSf = file;
- if (cacheSf[LocalExportedDeclarations] !== void 0) {
- return cacheSf[LocalExportedDeclarations];
- }
- const exportSet = /* @__PURE__ */ new Set();
- cacheSf[LocalExportedDeclarations] = exportSet;
- const sfSymbol = this.checker.getSymbolAtLocation(cacheSf);
- if (sfSymbol === void 0 || sfSymbol.exports === void 0) {
- return exportSet;
- }
- const iter = sfSymbol.exports.values();
- let item = iter.next();
- while (item.done !== true) {
- let exportedSymbol = item.value;
- if (exportedSymbol.flags & ts4.SymbolFlags.Alias) {
- exportedSymbol = this.checker.getAliasedSymbol(exportedSymbol);
- }
- if (exportedSymbol.valueDeclaration !== void 0 && exportedSymbol.valueDeclaration.getSourceFile() === file) {
- exportSet.add(exportedSymbol.valueDeclaration);
- }
- item = iter.next();
- }
- return exportSet;
- }
- };
- function reflectTypeEntityToDeclaration(type, checker) {
- let realSymbol = checker.getSymbolAtLocation(type);
- if (realSymbol === void 0) {
- throw new Error(`Cannot resolve type entity ${type.getText()} to symbol`);
- }
- while (realSymbol.flags & ts4.SymbolFlags.Alias) {
- realSymbol = checker.getAliasedSymbol(realSymbol);
- }
- let node = null;
- if (realSymbol.valueDeclaration !== void 0) {
- node = realSymbol.valueDeclaration;
- } else if (realSymbol.declarations !== void 0 && realSymbol.declarations.length === 1) {
- node = realSymbol.declarations[0];
- } else {
- throw new Error(`Cannot resolve type entity symbol to declaration`);
- }
- if (ts4.isQualifiedName(type)) {
- if (!ts4.isIdentifier(type.left)) {
- throw new Error(`Cannot handle qualified name with non-identifier lhs`);
- }
- const symbol = checker.getSymbolAtLocation(type.left);
- if (symbol === void 0 || symbol.declarations === void 0 || symbol.declarations.length !== 1) {
- throw new Error(`Cannot resolve qualified type entity lhs to symbol`);
- }
- const decl = symbol.declarations[0];
- if (ts4.isNamespaceImport(decl)) {
- const clause = decl.parent;
- const importDecl = clause.parent;
- if (!ts4.isStringLiteral(importDecl.moduleSpecifier)) {
- throw new Error(`Module specifier is not a string`);
- }
- return { node, from: importDecl.moduleSpecifier.text };
- } else if (ts4.isModuleDeclaration(decl)) {
- return { node, from: null };
- } else {
- throw new Error(`Unknown import type?`);
- }
- } else {
- return { node, from: null };
- }
- }
- function filterToMembersWithDecorator(members, name, module) {
- return members.filter((member) => !member.isStatic).map((member) => {
- if (member.decorators === null) {
- return null;
- }
- const decorators = member.decorators.filter((dec) => {
- if (dec.import !== null) {
- return dec.import.name === name && (module === void 0 || dec.import.from === module);
- } else {
- return dec.name === name && module === void 0;
- }
- });
- if (decorators.length === 0) {
- return null;
- }
- return { member, decorators };
- }).filter((value) => value !== null);
- }
- function reflectObjectLiteral(node) {
- const map = /* @__PURE__ */ new Map();
- node.properties.forEach((prop) => {
- if (ts4.isPropertyAssignment(prop)) {
- const name = propertyNameToString(prop.name);
- if (name === null) {
- return;
- }
- map.set(name, prop.initializer);
- } else if (ts4.isShorthandPropertyAssignment(prop)) {
- map.set(prop.name.text, prop.name);
- } else {
- return;
- }
- });
- return map;
- }
- function castDeclarationToClassOrDie(declaration) {
- if (!ts4.isClassDeclaration(declaration)) {
- throw new Error(`Reflecting on a ${ts4.SyntaxKind[declaration.kind]} instead of a ClassDeclaration.`);
- }
- return declaration;
- }
- function parameterName(name) {
- if (ts4.isIdentifier(name)) {
- return name.text;
- } else {
- return null;
- }
- }
- function propertyNameToString(node) {
- if (ts4.isIdentifier(node) || ts4.isStringLiteral(node) || ts4.isNumericLiteral(node)) {
- return node.text;
- } else {
- return null;
- }
- }
- function getQualifiedNameRoot(qualifiedName) {
- while (ts4.isQualifiedName(qualifiedName.left)) {
- qualifiedName = qualifiedName.left;
- }
- return ts4.isIdentifier(qualifiedName.left) ? qualifiedName.left : null;
- }
- function getFarLeftIdentifier(propertyAccess) {
- while (ts4.isPropertyAccessExpression(propertyAccess.expression)) {
- propertyAccess = propertyAccess.expression;
- }
- return ts4.isIdentifier(propertyAccess.expression) ? propertyAccess.expression : null;
- }
- function getContainingImportDeclaration(node) {
- return ts4.isImportSpecifier(node) ? node.parent.parent.parent : ts4.isNamespaceImport(node) ? node.parent.parent : null;
- }
- function getExportedName(decl, originalId) {
- return ts4.isImportSpecifier(decl) ? (decl.propertyName !== void 0 ? decl.propertyName : decl.name).text : originalId.text;
- }
- var LocalExportedDeclarations = Symbol("LocalExportedDeclarations");
- export {
- ClassMemberKind,
- typeNodeToValueExpr,
- isNamedClassDeclaration,
- TypeScriptReflectionHost,
- reflectTypeEntityToDeclaration,
- filterToMembersWithDecorator,
- reflectObjectLiteral
- };
- /**
- * @license
- * Copyright Google LLC All Rights Reserved.
- *
- * Use of this source code is governed by an MIT-style license that can be
- * found in the LICENSE file at https://angular.io/license
- */
- //# sourceMappingURL=chunk-4NU6EGYK.js.map
|