@angular/compiler-cli 13.0.0-rc.1 → 13.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/bundles/index.js +49 -49
  2. package/bundles/index.js.map +2 -2
  3. package/bundles/linker/babel/index.js +12 -12
  4. package/bundles/linker/babel/index.js.map +1 -1
  5. package/bundles/linker/index.js +12 -12
  6. package/bundles/linker/index.js.map +1 -1
  7. package/bundles/ngcc/index.js +124 -127
  8. package/bundles/ngcc/index.js.map +2 -2
  9. package/bundles/ngcc/main-ngcc.js +124 -127
  10. package/bundles/ngcc/main-ngcc.js.map +2 -2
  11. package/bundles/ngcc/src/execution/cluster/ngcc_cluster_worker.js +28 -44
  12. package/bundles/ngcc/src/execution/cluster/ngcc_cluster_worker.js.map +2 -2
  13. package/bundles/private/migrations.js +8 -6
  14. package/bundles/private/migrations.js.map +2 -2
  15. package/bundles/src/bin/ng_xi18n.js +48 -48
  16. package/bundles/src/bin/ng_xi18n.js.map +2 -2
  17. package/bundles/src/bin/ngc.js +48 -48
  18. package/bundles/src/bin/ngc.js.map +2 -2
  19. package/bundles_metadata.json +1 -1
  20. package/linker/src/file_linker/partial_linkers/util.d.ts +2 -2
  21. package/linker/src/file_linker/translator.d.ts +1 -1
  22. package/ngcc/src/packages/build_marker.d.ts +1 -1
  23. package/ngcc/src/packages/entry_point.d.ts +5 -0
  24. package/ngcc/src/rendering/commonjs_rendering_formatter.d.ts +1 -1
  25. package/package.json +2 -2
  26. package/src/ngtsc/annotations/src/ng_module.d.ts +1 -2
  27. package/src/ngtsc/diagnostics/index.d.ts +4 -2
  28. package/src/ngtsc/diagnostics/src/docs.d.ts +14 -0
  29. package/src/ngtsc/diagnostics/src/error_details_base_url.d.ts +16 -0
  30. package/src/ngtsc/diagnostics/src/util.d.ts +2 -0
  31. package/src/ngtsc/typecheck/api/checker.d.ts +1 -1
  32. package/src/ngtsc/typecheck/src/tcb_util.d.ts +1 -1
@@ -403,9 +403,6 @@ import yargs from "yargs";
403
403
  import { isSyntaxError as isSyntaxError2 } from "@angular/compiler";
404
404
  import ts86 from "typescript";
405
405
 
406
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/diagnostics/src/error.mjs
407
- import ts2 from "typescript";
408
-
409
406
  // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/diagnostics/src/error_code.mjs
410
407
  var ErrorCode;
411
408
  (function(ErrorCode2) {
@@ -456,7 +453,8 @@ var ErrorCode;
456
453
  ErrorCode2[ErrorCode2["SUGGEST_STRICT_TEMPLATES"] = 10001] = "SUGGEST_STRICT_TEMPLATES";
457
454
  ErrorCode2[ErrorCode2["SUGGEST_SUBOPTIMAL_TYPE_INFERENCE"] = 10002] = "SUGGEST_SUBOPTIMAL_TYPE_INFERENCE";
458
455
  })(ErrorCode || (ErrorCode = {}));
459
- var ERROR_DETAILS_PAGE_BASE_URL = "https://angular.io/errors";
456
+
457
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/diagnostics/src/docs.mjs
460
458
  var COMPILER_ERRORS_WITH_GUIDES = new Set([
461
459
  ErrorCode.DECORATOR_ARG_NOT_LITERAL,
462
460
  ErrorCode.IMPORT_CYCLE_DETECTED,
@@ -466,6 +464,15 @@ var COMPILER_ERRORS_WITH_GUIDES = new Set([
466
464
  ErrorCode.MISSING_REFERENCE_TARGET,
467
465
  ErrorCode.COMPONENT_INVALID_SHADOW_DOM_SELECTOR
468
466
  ]);
467
+
468
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/diagnostics/src/error.mjs
469
+ import ts2 from "typescript";
470
+
471
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/diagnostics/src/util.mjs
472
+ var ERROR_CODE_MATCHER = /(\u001b\[\d+m ?)TS-99(\d+: ?\u001b\[\d+m)/g;
473
+ function replaceTsWithNgInErrors(errors) {
474
+ return errors.replace(ERROR_CODE_MATCHER, "$1NG$2");
475
+ }
469
476
  function ngErrorCode(code) {
470
477
  return parseInt("-99" + code);
471
478
  }
@@ -507,11 +514,8 @@ function makeRelatedInformation(node, messageText) {
507
514
  };
508
515
  }
509
516
 
510
- // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/diagnostics/src/util.mjs
511
- var ERROR_CODE_MATCHER = /(\u001b\[\d+m ?)TS-99(\d+: ?\u001b\[\d+m)/g;
512
- function replaceTsWithNgInErrors(errors) {
513
- return errors.replace(ERROR_CODE_MATCHER, "$1NG$2");
514
- }
517
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/diagnostics/src/error_details_base_url.mjs
518
+ var ERROR_DETAILS_PAGE_BASE_URL = "https://angular.io/errors";
515
519
 
516
520
  // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/transformers/api.mjs
517
521
  var DEFAULT_ERROR_CODE = 100;
@@ -8319,7 +8323,7 @@ function getInheritedUndecoratedCtorDiagnostic(node, baseClass, reader) {
8319
8323
  }
8320
8324
 
8321
8325
  // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/src/directive.mjs
8322
- import { compileClassMetadata, compileDeclareClassMetadata, compileDeclareDirectiveFromMetadata, compileDirectiveFromMetadata, emitDistinctChangesOnlyDefaultValue, ExternalExpr as ExternalExpr5, FactoryTarget, getSafePropertyAccessString, makeBindingParser, parseHostBindings, verifyHostBindings, WrappedNodeExpr as WrappedNodeExpr4 } from "@angular/compiler";
8326
+ import { compileClassMetadata, compileDeclareClassMetadata, compileDeclareDirectiveFromMetadata, compileDirectiveFromMetadata, createMayBeForwardRefExpression, emitDistinctChangesOnlyDefaultValue, ExternalExpr as ExternalExpr5, FactoryTarget, getSafePropertyAccessString, makeBindingParser, parseHostBindings, verifyHostBindings, WrappedNodeExpr as WrappedNodeExpr4 } from "@angular/compiler";
8323
8327
  import ts37 from "typescript";
8324
8328
 
8325
8329
  // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/src/factory.mjs
@@ -8729,17 +8733,17 @@ function extractDirectiveMetadata(clazz, decorator, reflector, evaluator, isCore
8729
8733
  };
8730
8734
  }
8731
8735
  function extractQueryMetadata(exprNode, name, args, propertyName, reflector, evaluator) {
8732
- var _a;
8733
8736
  if (args.length === 0) {
8734
8737
  throw new FatalDiagnosticError(ErrorCode.DECORATOR_ARITY_WRONG, exprNode, `@${name} must have arguments`);
8735
8738
  }
8736
8739
  const first = name === "ViewChild" || name === "ContentChild";
8737
- const node = (_a = tryUnwrapForwardRef(args[0], reflector)) != null ? _a : args[0];
8740
+ const forwardReferenceTarget = tryUnwrapForwardRef(args[0], reflector);
8741
+ const node = forwardReferenceTarget != null ? forwardReferenceTarget : args[0];
8738
8742
  const arg = evaluator.evaluate(node);
8739
8743
  let isStatic2 = false;
8740
8744
  let predicate = null;
8741
8745
  if (arg instanceof Reference || arg instanceof DynamicValue) {
8742
- predicate = new WrappedNodeExpr4(node);
8746
+ predicate = createMayBeForwardRefExpression(new WrappedNodeExpr4(node), forwardReferenceTarget !== null ? 2 : 0);
8743
8747
  } else if (typeof arg === "string") {
8744
8748
  predicate = [arg];
8745
8749
  } else if (isStringArrayOrDie(arg, `@${name} predicate`, node)) {
@@ -8984,7 +8988,7 @@ var QUERY_TYPES = new Set([
8984
8988
  ]);
8985
8989
 
8986
8990
  // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/src/ng_module.mjs
8987
- import { compileClassMetadata as compileClassMetadata2, compileDeclareClassMetadata as compileDeclareClassMetadata2, compileDeclareInjectorFromMetadata, compileDeclareNgModuleFromMetadata, compileInjector, compileNgModule, CUSTOM_ELEMENTS_SCHEMA, ExternalExpr as ExternalExpr6, FactoryTarget as FactoryTarget2, InvokeFunctionExpr, LiteralArrayExpr as LiteralArrayExpr2, LiteralExpr as LiteralExpr3, NO_ERRORS_SCHEMA, R3Identifiers, STRING_TYPE, WrappedNodeExpr as WrappedNodeExpr5 } from "@angular/compiler";
8991
+ import { compileClassMetadata as compileClassMetadata2, compileDeclareClassMetadata as compileDeclareClassMetadata2, compileDeclareInjectorFromMetadata, compileDeclareNgModuleFromMetadata, compileInjector, compileNgModule, CUSTOM_ELEMENTS_SCHEMA, ExternalExpr as ExternalExpr6, FactoryTarget as FactoryTarget2, InvokeFunctionExpr, LiteralArrayExpr as LiteralArrayExpr2, NO_ERRORS_SCHEMA, R3Identifiers, WrappedNodeExpr as WrappedNodeExpr5 } from "@angular/compiler";
8988
8992
  import ts38 from "typescript";
8989
8993
  var NgModuleSymbol = class extends SemanticSymbol {
8990
8994
  constructor() {
@@ -9031,7 +9035,7 @@ var NgModuleSymbol = class extends SemanticSymbol {
9031
9035
  }
9032
9036
  };
9033
9037
  var NgModuleDecoratorHandler = class {
9034
- constructor(reflector, evaluator, metaReader, metaRegistry, scopeRegistry, referencesRegistry, isCore, refEmitter, factoryTracker, annotateForClosureCompiler, injectableRegistry, perf, localeId) {
9038
+ constructor(reflector, evaluator, metaReader, metaRegistry, scopeRegistry, referencesRegistry, isCore, refEmitter, factoryTracker, annotateForClosureCompiler, injectableRegistry, perf) {
9035
9039
  this.reflector = reflector;
9036
9040
  this.evaluator = evaluator;
9037
9041
  this.metaReader = metaReader;
@@ -9044,7 +9048,6 @@ var NgModuleDecoratorHandler = class {
9044
9048
  this.annotateForClosureCompiler = annotateForClosureCompiler;
9045
9049
  this.injectableRegistry = injectableRegistry;
9046
9050
  this.perf = perf;
9047
- this.localeId = localeId;
9048
9051
  this.precedence = HandlerPrecedence.PRIMARY;
9049
9052
  this.name = NgModuleDecoratorHandler.name;
9050
9053
  }
@@ -9330,14 +9333,6 @@ var NgModuleDecoratorHandler = class {
9330
9333
  type: injectorDef.type
9331
9334
  }
9332
9335
  ];
9333
- if (this.localeId) {
9334
- res.push({
9335
- name: "\u0275loc",
9336
- initializer: new LiteralExpr3(this.localeId),
9337
- statements: [],
9338
- type: STRING_TYPE
9339
- });
9340
- }
9341
9336
  return res;
9342
9337
  }
9343
9338
  _toR3Reference(valueRef, valueContext, typeContext) {
@@ -10311,7 +10306,7 @@ function checkCustomElementSelectorForErrors(selector) {
10311
10306
  }
10312
10307
 
10313
10308
  // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/src/injectable.mjs
10314
- import { compileClassMetadata as compileClassMetadata4, compileDeclareClassMetadata as compileDeclareClassMetadata4, compileDeclareInjectableFromMetadata, compileInjectable, createR3ProviderExpression, FactoryTarget as FactoryTarget4, LiteralExpr as LiteralExpr4, WrappedNodeExpr as WrappedNodeExpr7 } from "@angular/compiler";
10309
+ import { compileClassMetadata as compileClassMetadata4, compileDeclareClassMetadata as compileDeclareClassMetadata4, compileDeclareInjectableFromMetadata, compileInjectable, createMayBeForwardRefExpression as createMayBeForwardRefExpression2, FactoryTarget as FactoryTarget4, LiteralExpr as LiteralExpr3, WrappedNodeExpr as WrappedNodeExpr7 } from "@angular/compiler";
10315
10310
  import ts40 from "typescript";
10316
10311
  var InjectableDecoratorHandler = class {
10317
10312
  constructor(reflector, isCore, strictCtorDeps, injectableRegistry, perf, errorOnDuplicateProv = true) {
@@ -10399,7 +10394,7 @@ function extractInjectableMetadata(clazz, decorator, reflector) {
10399
10394
  type,
10400
10395
  typeArgumentCount,
10401
10396
  internalType,
10402
- providedIn: createR3ProviderExpression(new LiteralExpr4(null), false)
10397
+ providedIn: createMayBeForwardRefExpression2(new LiteralExpr3(null), 0)
10403
10398
  };
10404
10399
  } else if (decorator.args.length === 1) {
10405
10400
  const metaNode = decorator.args[0];
@@ -10407,7 +10402,7 @@ function extractInjectableMetadata(clazz, decorator, reflector) {
10407
10402
  throw new FatalDiagnosticError(ErrorCode.DECORATOR_ARG_NOT_LITERAL, metaNode, `@Injectable argument must be an object literal`);
10408
10403
  }
10409
10404
  const meta = reflectObjectLiteral(metaNode);
10410
- const providedIn = meta.has("providedIn") ? getProviderExpression(meta.get("providedIn"), reflector) : createR3ProviderExpression(new LiteralExpr4(null), false);
10405
+ const providedIn = meta.has("providedIn") ? getProviderExpression(meta.get("providedIn"), reflector) : createMayBeForwardRefExpression2(new LiteralExpr3(null), 0);
10411
10406
  let deps = void 0;
10412
10407
  if ((meta.has("useClass") || meta.has("useFactory")) && meta.has("deps")) {
10413
10408
  const depsExpr = meta.get("deps");
@@ -10435,7 +10430,7 @@ function extractInjectableMetadata(clazz, decorator, reflector) {
10435
10430
  }
10436
10431
  function getProviderExpression(expression, reflector) {
10437
10432
  const forwardRefValue = tryUnwrapForwardRef(expression, reflector);
10438
- return createR3ProviderExpression(new WrappedNodeExpr7(forwardRefValue != null ? forwardRefValue : expression), forwardRefValue !== null);
10433
+ return createMayBeForwardRefExpression2(new WrappedNodeExpr7(forwardRefValue != null ? forwardRefValue : expression), forwardRefValue !== null ? 2 : 0);
10439
10434
  }
10440
10435
  function extractInjectableCtorDeps(clazz, meta, decorator, reflector, isCore, strictCtorDeps) {
10441
10436
  if (decorator.args === null) {
@@ -14496,12 +14491,7 @@ var TcbDirectiveInputsOp = class extends TcbOp {
14496
14491
  let dirId = null;
14497
14492
  const inputs = getBoundInputs(this.dir, this.node, this.tcb);
14498
14493
  for (const input of inputs) {
14499
- let expr = translateInput(input.attribute, this.tcb, this.scope);
14500
- if (!this.tcb.env.config.checkTypeOfInputBindings) {
14501
- expr = tsCastToAny(expr);
14502
- } else if (!this.tcb.env.config.strictNullInputBindings) {
14503
- expr = ts67.createNonNullExpression(expr);
14504
- }
14494
+ const expr = widenBinding(translateInput(input.attribute, this.tcb, this.scope), this.tcb);
14505
14495
  let assignment = wrapForDiagnostics(expr);
14506
14496
  for (const fieldName of input.fieldNames) {
14507
14497
  let target;
@@ -14622,12 +14612,7 @@ var TcbUnclaimedInputsOp = class extends TcbOp {
14622
14612
  if (binding.type === 0 && this.claimedInputs.has(binding.name)) {
14623
14613
  continue;
14624
14614
  }
14625
- let expr = tcbExpression(binding.value, this.tcb, this.scope);
14626
- if (!this.tcb.env.config.checkTypeOfInputBindings) {
14627
- expr = tsCastToAny(expr);
14628
- } else if (!this.tcb.env.config.strictNullInputBindings) {
14629
- expr = ts67.createNonNullExpression(expr);
14630
- }
14615
+ const expr = widenBinding(tcbExpression(binding.value, this.tcb, this.scope), this.tcb);
14631
14616
  if (this.tcb.env.config.checkTypeOfDomBindings && binding.type === 0) {
14632
14617
  if (binding.name !== "style" && binding.name !== "class") {
14633
14618
  if (elId === null) {
@@ -15112,12 +15097,7 @@ function tcbCallTypeCtor(dir, tcb, inputs) {
15112
15097
  const members = inputs.map((input) => {
15113
15098
  const propertyName = ts67.createStringLiteral(input.field);
15114
15099
  if (input.type === "binding") {
15115
- let expr = input.expression;
15116
- if (!tcb.env.config.checkTypeOfInputBindings) {
15117
- expr = tsCastToAny(expr);
15118
- } else if (!tcb.env.config.strictNullInputBindings) {
15119
- expr = ts67.createNonNullExpression(expr);
15120
- }
15100
+ const expr = widenBinding(input.expression, tcb);
15121
15101
  const assignment = ts67.createPropertyAssignment(propertyName, wrapForDiagnostics(expr));
15122
15102
  addParseSpanInfo(assignment, input.sourceSpan);
15123
15103
  return assignment;
@@ -15154,6 +15134,19 @@ function translateInput(attr, tcb, scope) {
15154
15134
  return ts67.createStringLiteral(attr.value);
15155
15135
  }
15156
15136
  }
15137
+ function widenBinding(expr, tcb) {
15138
+ if (!tcb.env.config.checkTypeOfInputBindings) {
15139
+ return tsCastToAny(expr);
15140
+ } else if (!tcb.env.config.strictNullInputBindings) {
15141
+ if (ts67.isObjectLiteralExpression(expr) || ts67.isArrayLiteralExpression(expr)) {
15142
+ return expr;
15143
+ } else {
15144
+ return ts67.createNonNullExpression(expr);
15145
+ }
15146
+ } else {
15147
+ return expr;
15148
+ }
15149
+ }
15157
15150
  var EVENT_PARAMETER = "$event";
15158
15151
  function tcbCreateEventHandler(event, tcb, scope, eventType) {
15159
15152
  const handler = tcbEventHandlerExpression(event.handler, tcb, scope);
@@ -17155,7 +17148,7 @@ var NgCompiler = class {
17155
17148
  new DirectiveDecoratorHandler(reflector, evaluator, metaRegistry, scopeRegistry, metaReader, injectableRegistry, isCore, semanticDepGraphUpdater, this.closureCompilerEnabled, false, this.delegatingPerfRecorder),
17156
17149
  new PipeDecoratorHandler(reflector, evaluator, metaRegistry, scopeRegistry, injectableRegistry, isCore, this.delegatingPerfRecorder),
17157
17150
  new InjectableDecoratorHandler(reflector, isCore, this.options.strictInjectionParameters || false, injectableRegistry, this.delegatingPerfRecorder),
17158
- new NgModuleDecoratorHandler(reflector, evaluator, metaReader, metaRegistry, scopeRegistry, referencesRegistry, isCore, refEmitter, this.adapter.factoryTracker, this.closureCompilerEnabled, injectableRegistry, this.delegatingPerfRecorder, this.options.i18nInLocale)
17151
+ new NgModuleDecoratorHandler(reflector, evaluator, metaReader, metaRegistry, scopeRegistry, referencesRegistry, isCore, refEmitter, this.adapter.factoryTracker, this.closureCompilerEnabled, injectableRegistry, this.delegatingPerfRecorder)
17159
17152
  ];
17160
17153
  const traitCompiler = new TraitCompiler(handlers, reflector, this.delegatingPerfRecorder, this.incrementalCompilation, this.options.compileNonExportedClasses !== false, compilationMode, dtsTransforms, semanticDepGraphUpdater);
17161
17154
  const notifyingDriver = new NotifyingProgramDriverWrapper(this.programDriver, (program) => {
@@ -17344,7 +17337,14 @@ import ts74 from "typescript";
17344
17337
 
17345
17338
  // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/diagnostics/typescript_version.mjs
17346
17339
  function toNumbers(value) {
17347
- return value.split(".").map(Number);
17340
+ const suffixIndex = value.lastIndexOf("-");
17341
+ return value.slice(0, suffixIndex === -1 ? value.length : suffixIndex).split(".").map((segment) => {
17342
+ const parsed = parseInt(segment, 10);
17343
+ if (isNaN(parsed)) {
17344
+ throw Error(`Unable to parse version string ${value}.`);
17345
+ }
17346
+ return parsed;
17347
+ });
17348
17348
  }
17349
17349
  function compareNumbers(a, b) {
17350
17350
  const max = Math.max(a.length, b.length);