@angular/core 18.0.0-next.4 → 18.0.0-next.5

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 (40) hide show
  1. package/esm2022/src/application/application_ref.mjs +4 -2
  2. package/esm2022/src/change_detection/scheduling/flags.mjs +10 -0
  3. package/esm2022/src/change_detection/scheduling/ng_zone_scheduling.mjs +18 -33
  4. package/esm2022/src/change_detection/scheduling/zoneless_scheduling.mjs +1 -1
  5. package/esm2022/src/change_detection/scheduling/zoneless_scheduling_impl.mjs +64 -7
  6. package/esm2022/src/core.mjs +2 -1
  7. package/esm2022/src/core_private_export.mjs +1 -3
  8. package/esm2022/src/debug/debug_node.mjs +1 -1
  9. package/esm2022/src/metadata/directives.mjs +1 -62
  10. package/esm2022/src/platform/platform_ref.mjs +3 -3
  11. package/esm2022/src/render3/component_ref.mjs +1 -1
  12. package/esm2022/src/render3/instructions/control_flow.mjs +6 -6
  13. package/esm2022/src/testability/testability.mjs +2 -30
  14. package/esm2022/src/util/callback_scheduler.mjs +3 -3
  15. package/esm2022/src/version.mjs +1 -1
  16. package/esm2022/testing/src/component_fixture.mjs +7 -12
  17. package/esm2022/testing/src/logger.mjs +3 -3
  18. package/esm2022/testing/src/test_bed_common.mjs +1 -6
  19. package/esm2022/testing/src/testing.mjs +1 -2
  20. package/event-dispatch-contract.min.js +1 -0
  21. package/fesm2022/core.mjs +99 -142
  22. package/fesm2022/core.mjs.map +1 -1
  23. package/fesm2022/primitives/signals.mjs +1 -1
  24. package/fesm2022/rxjs-interop.mjs +1 -1
  25. package/fesm2022/testing.mjs +34 -44
  26. package/fesm2022/testing.mjs.map +1 -1
  27. package/index.d.ts +127 -105
  28. package/package.json +4 -1
  29. package/primitives/signals/index.d.ts +1 -1
  30. package/rxjs-interop/index.d.ts +1 -1
  31. package/schematics/migrations/block-template-entities/bundle.js +27 -72
  32. package/schematics/migrations/block-template-entities/bundle.js.map +3 -3
  33. package/schematics/migrations/invalid-two-way-bindings/bundle.js +32 -77
  34. package/schematics/migrations/invalid-two-way-bindings/bundle.js.map +3 -3
  35. package/schematics/ng-generate/control-flow-migration/bundle.js +27 -73
  36. package/schematics/ng-generate/control-flow-migration/bundle.js.map +3 -3
  37. package/schematics/ng-generate/standalone-migration/bundle.js +54 -87
  38. package/schematics/ng-generate/standalone-migration/bundle.js.map +3 -3
  39. package/testing/index.d.ts +1 -7
  40. package/esm2022/testing/src/private_export.mjs +0 -9
@@ -9626,11 +9626,10 @@ function createAdvanceOp(delta, sourceSpan) {
9626
9626
  sourceSpan
9627
9627
  }, NEW_OP);
9628
9628
  }
9629
- function createConditionalOp(target, targetSlot, test, conditions, sourceSpan) {
9629
+ function createConditionalOp(target, test, conditions, sourceSpan) {
9630
9630
  return __spreadValues(__spreadValues(__spreadValues({
9631
9631
  kind: OpKind.Conditional,
9632
9632
  target,
9633
- targetSlot,
9634
9633
  test,
9635
9634
  conditions,
9636
9635
  processed: null,
@@ -19852,19 +19851,7 @@ function pipeBindV(slot, varOffset, args) {
19852
19851
  ]);
19853
19852
  }
19854
19853
  function textInterpolate(strings, expressions, sourceSpan) {
19855
- if (strings.length < 1 || expressions.length !== strings.length - 1) {
19856
- throw new Error(`AssertionError: expected specific shape of args for strings/expressions in interpolation`);
19857
- }
19858
- const interpolationArgs = [];
19859
- if (expressions.length === 1 && strings[0] === "" && strings[1] === "") {
19860
- interpolationArgs.push(expressions[0]);
19861
- } else {
19862
- let idx;
19863
- for (idx = 0; idx < expressions.length; idx++) {
19864
- interpolationArgs.push(literal(strings[idx]), expressions[idx]);
19865
- }
19866
- interpolationArgs.push(literal(strings[idx]));
19867
- }
19854
+ const interpolationArgs = collateInterpolationArgs(strings, expressions);
19868
19855
  return callVariadicInstruction(TEXT_INTERPOLATE_CONFIG, [], interpolationArgs, [], sourceSpan);
19869
19856
  }
19870
19857
  function i18nExp(expr, sourceSpan) {
@@ -19941,8 +19928,8 @@ function call(instruction, args, sourceSpan) {
19941
19928
  const expr = importExpr(instruction).callFn(args, sourceSpan);
19942
19929
  return createStatementOp(new ExpressionStatement(expr, sourceSpan));
19943
19930
  }
19944
- function conditional(slot, condition, contextValue, sourceSpan) {
19945
- const args = [literal(slot), condition];
19931
+ function conditional(condition, contextValue, sourceSpan) {
19932
+ const args = [condition];
19946
19933
  if (contextValue !== null) {
19947
19934
  args.push(contextValue);
19948
19935
  }
@@ -20368,10 +20355,7 @@ function reifyUpdateOperations(_unit, ops) {
20368
20355
  if (op.processed === null) {
20369
20356
  throw new Error(`Conditional test was not set.`);
20370
20357
  }
20371
- if (op.targetSlot.slot === null) {
20372
- throw new Error(`Conditional slot was not set.`);
20373
- }
20374
- OpList.replace(op, conditional(op.targetSlot.slot, op.processed, op.contextValue, op.sourceSpan));
20358
+ OpList.replace(op, conditional(op.processed, op.contextValue, op.sourceSpan));
20375
20359
  break;
20376
20360
  case OpKind.Repeater:
20377
20361
  OpList.replace(op, repeater(op.collection, op.sourceSpan));
@@ -20953,49 +20937,22 @@ function transformTwoWayBindingSet(job) {
20953
20937
  for (const op of unit.create) {
20954
20938
  if (op.kind === OpKind.TwoWayListener) {
20955
20939
  transformExpressionsInOp(op, (expr) => {
20956
- if (expr instanceof TwoWayBindingSetExpr) {
20957
- return wrapAction(expr.target, expr.value);
20940
+ if (!(expr instanceof TwoWayBindingSetExpr)) {
20941
+ return expr;
20958
20942
  }
20959
- return expr;
20943
+ const { target, value } = expr;
20944
+ if (target instanceof ReadPropExpr || target instanceof ReadKeyExpr) {
20945
+ return twoWayBindingSet(target, value).or(target.set(value));
20946
+ }
20947
+ if (target instanceof ReadVariableExpr) {
20948
+ return twoWayBindingSet(target, value);
20949
+ }
20950
+ throw new Error(`Unsupported expression in two-way action binding.`);
20960
20951
  }, VisitorContextFlag.InChildOperation);
20961
20952
  }
20962
20953
  }
20963
20954
  }
20964
20955
  }
20965
- function wrapSetOperation(target, value) {
20966
- if (target instanceof ReadVariableExpr) {
20967
- return twoWayBindingSet(target, value);
20968
- }
20969
- return twoWayBindingSet(target, value).or(target.set(value));
20970
- }
20971
- function isReadExpression(value) {
20972
- return value instanceof ReadPropExpr || value instanceof ReadKeyExpr || value instanceof ReadVariableExpr;
20973
- }
20974
- function wrapAction(target, value) {
20975
- if (isReadExpression(target)) {
20976
- return wrapSetOperation(target, value);
20977
- }
20978
- if (target instanceof BinaryOperatorExpr && isReadExpression(target.rhs)) {
20979
- return new BinaryOperatorExpr(target.operator, target.lhs, wrapSetOperation(target.rhs, value));
20980
- }
20981
- if (target instanceof ConditionalExpr && isReadExpression(target.falseCase)) {
20982
- return new ConditionalExpr(target.condition, target.trueCase, wrapSetOperation(target.falseCase, value));
20983
- }
20984
- if (target instanceof NotExpr) {
20985
- let expr = target.condition;
20986
- while (true) {
20987
- if (expr instanceof NotExpr) {
20988
- expr = expr.condition;
20989
- } else {
20990
- if (isReadExpression(expr)) {
20991
- return wrapSetOperation(expr, value);
20992
- }
20993
- break;
20994
- }
20995
- }
20996
- }
20997
- throw new Error(`Unsupported expression in two-way action binding.`);
20998
- }
20999
20956
 
21000
20957
  // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/save_restore_view.mjs
21001
20958
  function saveAndRestoreView(job) {
@@ -22006,7 +21963,6 @@ function ingestBoundText(unit, text2, icuPlaceholder) {
22006
21963
  function ingestIfBlock(unit, ifBlock) {
22007
21964
  var _a2;
22008
21965
  let firstXref = null;
22009
- let firstSlotHandle = null;
22010
21966
  let conditions = [];
22011
21967
  for (let i = 0; i < ifBlock.branches.length; i++) {
22012
21968
  const ifCase = ifBlock.branches[i];
@@ -22026,15 +21982,13 @@ function ingestIfBlock(unit, ifBlock) {
22026
21982
  unit.create.push(templateOp);
22027
21983
  if (firstXref === null) {
22028
21984
  firstXref = cView.xref;
22029
- firstSlotHandle = templateOp.handle;
22030
21985
  }
22031
21986
  const caseExpr = ifCase.expression ? convertAst(ifCase.expression, unit.job, null) : null;
22032
21987
  const conditionalCaseExpr = new ConditionalCaseExpr(caseExpr, templateOp.xref, templateOp.handle, ifCase.expressionAlias);
22033
21988
  conditions.push(conditionalCaseExpr);
22034
21989
  ingestNodes(cView, ifCase.children);
22035
21990
  }
22036
- const conditional2 = createConditionalOp(firstXref, firstSlotHandle, null, conditions, ifBlock.sourceSpan);
22037
- unit.update.push(conditional2);
21991
+ unit.update.push(createConditionalOp(firstXref, null, conditions, ifBlock.sourceSpan));
22038
21992
  }
22039
21993
  function ingestSwitchBlock(unit, switchBlock) {
22040
21994
  var _a2;
@@ -22042,7 +21996,6 @@ function ingestSwitchBlock(unit, switchBlock) {
22042
21996
  return;
22043
21997
  }
22044
21998
  let firstXref = null;
22045
- let firstSlotHandle = null;
22046
21999
  let conditions = [];
22047
22000
  for (const switchCase of switchBlock.cases) {
22048
22001
  const cView = unit.job.allocateView(unit.xref);
@@ -22058,15 +22011,13 @@ function ingestSwitchBlock(unit, switchBlock) {
22058
22011
  unit.create.push(templateOp);
22059
22012
  if (firstXref === null) {
22060
22013
  firstXref = cView.xref;
22061
- firstSlotHandle = templateOp.handle;
22062
22014
  }
22063
22015
  const caseExpr = switchCase.expression ? convertAst(switchCase.expression, unit.job, switchBlock.startSourceSpan) : null;
22064
22016
  const conditionalCaseExpr = new ConditionalCaseExpr(caseExpr, templateOp.xref, templateOp.handle);
22065
22017
  conditions.push(conditionalCaseExpr);
22066
22018
  ingestNodes(cView, switchCase.children);
22067
22019
  }
22068
- const conditional2 = createConditionalOp(firstXref, firstSlotHandle, convertAst(switchBlock.expression, unit.job, null), conditions, switchBlock.sourceSpan);
22069
- unit.update.push(conditional2);
22020
+ unit.update.push(createConditionalOp(firstXref, convertAst(switchBlock.expression, unit.job, null), conditions, switchBlock.sourceSpan));
22070
22021
  }
22071
22022
  function ingestDeferView(unit, suffix, i18nMeta, children, sourceSpan) {
22072
22023
  if (i18nMeta !== void 0 && !(i18nMeta instanceof BlockPlaceholder)) {
@@ -22761,11 +22712,12 @@ var STYLE_PREFIX = "style";
22761
22712
  var TEMPLATE_ATTR_PREFIX = "*";
22762
22713
  var ANIMATE_PROP_PREFIX = "animate-";
22763
22714
  var BindingParser = class {
22764
- constructor(_exprParser, _interpolationConfig, _schemaRegistry, errors) {
22715
+ constructor(_exprParser, _interpolationConfig, _schemaRegistry, errors, _allowInvalidAssignmentEvents = false) {
22765
22716
  this._exprParser = _exprParser;
22766
22717
  this._interpolationConfig = _interpolationConfig;
22767
22718
  this._schemaRegistry = _schemaRegistry;
22768
22719
  this.errors = errors;
22720
+ this._allowInvalidAssignmentEvents = _allowInvalidAssignmentEvents;
22769
22721
  }
22770
22722
  get interpolationConfig() {
22771
22723
  return this._interpolationConfig;
@@ -23069,6 +23021,9 @@ var BindingParser = class {
23069
23021
  if (ast instanceof PropertyRead || ast instanceof KeyedRead) {
23070
23022
  return true;
23071
23023
  }
23024
+ if (!this._allowInvalidAssignmentEvents) {
23025
+ return false;
23026
+ }
23072
23027
  if (ast instanceof Binary) {
23073
23028
  return (ast.operation === "&&" || ast.operation === "||" || ast.operation === "??") && (ast.right instanceof PropertyRead || ast.right instanceof KeyedRead);
23074
23029
  }
@@ -24314,8 +24269,8 @@ function textContents(node) {
24314
24269
  var LEADING_TRIVIA_CHARS = [" ", "\n", "\r", " "];
24315
24270
  function parseTemplate(template2, templateUrl, options = {}) {
24316
24271
  var _a2;
24317
- const { interpolationConfig, preserveWhitespaces, enableI18nLegacyMessageIdFormat } = options;
24318
- const bindingParser = makeBindingParser(interpolationConfig);
24272
+ const { interpolationConfig, preserveWhitespaces, enableI18nLegacyMessageIdFormat, allowInvalidAssignmentEvents } = options;
24273
+ const bindingParser = makeBindingParser(interpolationConfig, allowInvalidAssignmentEvents);
24319
24274
  const htmlParser = new HtmlParser();
24320
24275
  const parseResult = htmlParser.parse(template2, templateUrl, __spreadProps(__spreadValues({
24321
24276
  leadingTriviaChars: LEADING_TRIVIA_CHARS
@@ -24380,8 +24335,8 @@ function parseTemplate(template2, templateUrl, options = {}) {
24380
24335
  return parsedTemplate;
24381
24336
  }
24382
24337
  var elementRegistry = new DomElementSchemaRegistry();
24383
- function makeBindingParser(interpolationConfig = DEFAULT_INTERPOLATION_CONFIG) {
24384
- return new BindingParser(new Parser(new Lexer()), interpolationConfig, elementRegistry, []);
24338
+ function makeBindingParser(interpolationConfig = DEFAULT_INTERPOLATION_CONFIG, allowInvalidAssignmentEvents = false) {
24339
+ return new BindingParser(new Parser(new Lexer()), interpolationConfig, elementRegistry, [], allowInvalidAssignmentEvents);
24385
24340
  }
24386
24341
 
24387
24342
  // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/view/compiler.mjs
@@ -25969,7 +25924,7 @@ function publishFacade(global) {
25969
25924
  }
25970
25925
 
25971
25926
  // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/version.mjs
25972
- var VERSION2 = new Version("18.0.0-next.4");
25927
+ var VERSION2 = new Version("18.0.0-next.5");
25973
25928
 
25974
25929
  // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/i18n/extractor_merger.mjs
25975
25930
  var _I18N_ATTR = "i18n";
@@ -27032,7 +26987,7 @@ var MINIMUM_PARTIAL_LINKER_DEFER_SUPPORT_VERSION = "18.0.0";
27032
26987
  function compileDeclareClassMetadata(metadata) {
27033
26988
  const definitionMap = new DefinitionMap();
27034
26989
  definitionMap.set("minVersion", literal(MINIMUM_PARTIAL_LINKER_VERSION));
27035
- definitionMap.set("version", literal("18.0.0-next.4"));
26990
+ definitionMap.set("version", literal("18.0.0-next.5"));
27036
26991
  definitionMap.set("ngImport", importExpr(Identifiers.core));
27037
26992
  definitionMap.set("type", metadata.type);
27038
26993
  definitionMap.set("decorators", metadata.decorators);
@@ -27051,7 +27006,7 @@ function compileComponentDeclareClassMetadata(metadata, dependencies) {
27051
27006
  callbackReturnDefinitionMap.set("ctorParameters", (_a2 = metadata.ctorParameters) != null ? _a2 : literal(null));
27052
27007
  callbackReturnDefinitionMap.set("propDecorators", (_b2 = metadata.propDecorators) != null ? _b2 : literal(null));
27053
27008
  definitionMap.set("minVersion", literal(MINIMUM_PARTIAL_LINKER_DEFER_SUPPORT_VERSION));
27054
- definitionMap.set("version", literal("18.0.0-next.4"));
27009
+ definitionMap.set("version", literal("18.0.0-next.5"));
27055
27010
  definitionMap.set("ngImport", importExpr(Identifiers.core));
27056
27011
  definitionMap.set("type", metadata.type);
27057
27012
  definitionMap.set("resolveDeferredDeps", compileComponentMetadataAsyncResolver(dependencies));
@@ -27119,7 +27074,7 @@ function createDirectiveDefinitionMap(meta) {
27119
27074
  const definitionMap = new DefinitionMap();
27120
27075
  const minVersion = getMinimumVersionForPartialOutput(meta);
27121
27076
  definitionMap.set("minVersion", literal(minVersion));
27122
- definitionMap.set("version", literal("18.0.0-next.4"));
27077
+ definitionMap.set("version", literal("18.0.0-next.5"));
27123
27078
  definitionMap.set("type", meta.type.value);
27124
27079
  if (meta.isStandalone) {
27125
27080
  definitionMap.set("isStandalone", literal(meta.isStandalone));
@@ -27435,7 +27390,7 @@ var MINIMUM_PARTIAL_LINKER_VERSION2 = "12.0.0";
27435
27390
  function compileDeclareFactoryFunction(meta) {
27436
27391
  const definitionMap = new DefinitionMap();
27437
27392
  definitionMap.set("minVersion", literal(MINIMUM_PARTIAL_LINKER_VERSION2));
27438
- definitionMap.set("version", literal("18.0.0-next.4"));
27393
+ definitionMap.set("version", literal("18.0.0-next.5"));
27439
27394
  definitionMap.set("ngImport", importExpr(Identifiers.core));
27440
27395
  definitionMap.set("type", meta.type.value);
27441
27396
  definitionMap.set("deps", compileDependencies(meta.deps));
@@ -27458,7 +27413,7 @@ function compileDeclareInjectableFromMetadata(meta) {
27458
27413
  function createInjectableDefinitionMap(meta) {
27459
27414
  const definitionMap = new DefinitionMap();
27460
27415
  definitionMap.set("minVersion", literal(MINIMUM_PARTIAL_LINKER_VERSION3));
27461
- definitionMap.set("version", literal("18.0.0-next.4"));
27416
+ definitionMap.set("version", literal("18.0.0-next.5"));
27462
27417
  definitionMap.set("ngImport", importExpr(Identifiers.core));
27463
27418
  definitionMap.set("type", meta.type.value);
27464
27419
  if (meta.providedIn !== void 0) {
@@ -27496,7 +27451,7 @@ function compileDeclareInjectorFromMetadata(meta) {
27496
27451
  function createInjectorDefinitionMap(meta) {
27497
27452
  const definitionMap = new DefinitionMap();
27498
27453
  definitionMap.set("minVersion", literal(MINIMUM_PARTIAL_LINKER_VERSION4));
27499
- definitionMap.set("version", literal("18.0.0-next.4"));
27454
+ definitionMap.set("version", literal("18.0.0-next.5"));
27500
27455
  definitionMap.set("ngImport", importExpr(Identifiers.core));
27501
27456
  definitionMap.set("type", meta.type.value);
27502
27457
  definitionMap.set("providers", meta.providers);
@@ -27520,7 +27475,7 @@ function createNgModuleDefinitionMap(meta) {
27520
27475
  throw new Error("Invalid path! Local compilation mode should not get into the partial compilation path");
27521
27476
  }
27522
27477
  definitionMap.set("minVersion", literal(MINIMUM_PARTIAL_LINKER_VERSION5));
27523
- definitionMap.set("version", literal("18.0.0-next.4"));
27478
+ definitionMap.set("version", literal("18.0.0-next.5"));
27524
27479
  definitionMap.set("ngImport", importExpr(Identifiers.core));
27525
27480
  definitionMap.set("type", meta.type.value);
27526
27481
  if (meta.bootstrap.length > 0) {
@@ -27555,7 +27510,7 @@ function compileDeclarePipeFromMetadata(meta) {
27555
27510
  function createPipeDefinitionMap(meta) {
27556
27511
  const definitionMap = new DefinitionMap();
27557
27512
  definitionMap.set("minVersion", literal(MINIMUM_PARTIAL_LINKER_VERSION6));
27558
- definitionMap.set("version", literal("18.0.0-next.4"));
27513
+ definitionMap.set("version", literal("18.0.0-next.5"));
27559
27514
  definitionMap.set("ngImport", importExpr(Identifiers.core));
27560
27515
  definitionMap.set("type", meta.type.value);
27561
27516
  if (meta.isStandalone) {
@@ -27572,7 +27527,7 @@ function createPipeDefinitionMap(meta) {
27572
27527
  publishFacade(_global);
27573
27528
 
27574
27529
  // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/version.mjs
27575
- var VERSION3 = new Version("18.0.0-next.4");
27530
+ var VERSION3 = new Version("18.0.0-next.5");
27576
27531
 
27577
27532
  // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/imports/src/emitter.mjs
27578
27533
  var import_typescript5 = __toESM(require("typescript"), 1);
@@ -32375,6 +32330,10 @@ var ImportManager = class {
32375
32330
  this._config = _config;
32376
32331
  this.newImports = /* @__PURE__ */ new Map();
32377
32332
  this.nextUniqueIndex = 0;
32333
+ this.reuseGeneratedImportsTracker = {
32334
+ directReuseCache: /* @__PURE__ */ new Map(),
32335
+ namespaceImportReuseCache: /* @__PURE__ */ new Map()
32336
+ };
32378
32337
  this.config = __spreadValues({
32379
32338
  shouldUseSingleQuotes: () => false,
32380
32339
  rewriter: null,
@@ -32388,10 +32347,6 @@ var ImportManager = class {
32388
32347
  reusedAliasDeclarations: /* @__PURE__ */ new Set(),
32389
32348
  updatedImports: /* @__PURE__ */ new Map()
32390
32349
  };
32391
- this.reuseGeneratedImportsTracker = {
32392
- directReuseCache: /* @__PURE__ */ new Map(),
32393
- namespaceImportReuseCache: /* @__PURE__ */ new Map()
32394
- };
32395
32350
  }
32396
32351
  addSideEffectImport(requestedFile, moduleSpecifier) {
32397
32352
  if (this.config.rewriter !== null) {
@@ -39932,7 +39887,7 @@ var DocsExtractor = class {
39932
39887
  this.typeChecker = typeChecker;
39933
39888
  this.metadataReader = metadataReader;
39934
39889
  }
39935
- extractAll(sourceFile) {
39890
+ extractAll(sourceFile, rootDir) {
39936
39891
  const entries = [];
39937
39892
  const exportedDeclarations = this.getExportedDeclarations(sourceFile);
39938
39893
  for (const [exportName, node] of exportedDeclarations) {
@@ -39941,6 +39896,12 @@ var DocsExtractor = class {
39941
39896
  }
39942
39897
  const entry = this.extractDeclaration(node);
39943
39898
  if (entry && !isIgnoredDocEntry(entry)) {
39899
+ const realSourceFile = node.getSourceFile();
39900
+ entry.source = {
39901
+ filePath: getRelativeFilePath(realSourceFile, rootDir),
39902
+ startLine: import_typescript82.default.getLineAndCharacterOfPosition(realSourceFile, node.getFullStart()).line,
39903
+ endLine: import_typescript82.default.getLineAndCharacterOfPosition(realSourceFile, node.getEnd()).line
39904
+ };
39944
39905
  entries.push(__spreadProps(__spreadValues({}, entry), { name: exportName }));
39945
39906
  }
39946
39907
  }
@@ -39998,6 +39959,11 @@ function isIgnoredDocEntry(entry) {
39998
39959
  }
39999
39960
  return isDocsPrivate !== void 0;
40000
39961
  }
39962
+ function getRelativeFilePath(sourceFile, rootDir) {
39963
+ const fullPath = sourceFile.fileName;
39964
+ const relativePath = fullPath.replace(rootDir, "");
39965
+ return relativePath;
39966
+ }
40001
39967
 
40002
39968
  // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/entry_point/src/generator.mjs
40003
39969
  var import_typescript83 = __toESM(require("typescript"), 1);
@@ -48278,7 +48244,8 @@ var NgCompiler = class {
48278
48244
  if (!entryPointSourceFile) {
48279
48245
  throw new Error(`Entry point "${entryPoint}" not found in program sources.`);
48280
48246
  }
48281
- return docsExtractor.extractAll(entryPointSourceFile);
48247
+ const rootDir = this.inputProgram.getCurrentDirectory();
48248
+ return docsExtractor.extractAll(entryPointSourceFile, rootDir);
48282
48249
  }
48283
48250
  xi18n(ctx) {
48284
48251
  const compilation = this.ensureAnalyzed();