@angular/core 19.0.0-rc.2 → 19.0.0

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/fesm2022/core.mjs +63 -4
  2. package/fesm2022/core.mjs.map +1 -1
  3. package/fesm2022/primitives/event-dispatch.mjs +1 -1
  4. package/fesm2022/primitives/signals.mjs +1 -1
  5. package/fesm2022/rxjs-interop.mjs +1 -1
  6. package/fesm2022/testing.mjs +4 -4
  7. package/index.d.ts +62 -2
  8. package/package.json +1 -1
  9. package/primitives/event-dispatch/index.d.ts +1 -1
  10. package/primitives/signals/index.d.ts +1 -1
  11. package/rxjs-interop/index.d.ts +1 -1
  12. package/schematics/bundles/{checker-cd95ebda.js → checker-e3da3b0a.js} +67 -35
  13. package/schematics/bundles/{combine_units-528c4a5d.js → combine_units-2adebceb.js} +3 -3
  14. package/schematics/bundles/{compiler_host-40e8d55f.js → compiler_host-d642e87e.js} +2 -2
  15. package/schematics/bundles/control-flow-migration.js +3 -3
  16. package/schematics/bundles/explicit-standalone-flag.js +3 -3
  17. package/schematics/bundles/imports-4ac08251.js +1 -1
  18. package/schematics/bundles/inject-migration.js +3 -3
  19. package/schematics/bundles/leading_space-d190b83b.js +1 -1
  20. package/schematics/bundles/{migrate_ts_type_references-0bcee7cb.js → migrate_ts_type_references-ed2c0669.js} +4 -4
  21. package/schematics/bundles/nodes-0e7d45ca.js +1 -1
  22. package/schematics/bundles/output-migration.js +11 -7
  23. package/schematics/bundles/pending-tasks.js +3 -3
  24. package/schematics/bundles/{program-8f30df93.js → program-f984ab63.js} +11 -11
  25. package/schematics/bundles/project_tsconfig_paths-e9ccccbf.js +1 -1
  26. package/schematics/bundles/provide-initializer.js +3 -3
  27. package/schematics/bundles/route-lazy-loading.js +3 -3
  28. package/schematics/bundles/signal-input-migration.js +5 -5
  29. package/schematics/bundles/signal-queries-migration.js +5 -5
  30. package/schematics/bundles/signals.js +5 -5
  31. package/schematics/bundles/standalone-migration.js +5 -5
  32. package/testing/index.d.ts +1 -1
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v19.0.0-rc.2
2
+ * @license Angular v19.0.0
3
3
  * (c) 2010-2024 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v19.0.0-rc.2
2
+ * @license Angular v19.0.0
3
3
  * (c) 2010-2024 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v19.0.0-rc.2
2
+ * @license Angular v19.0.0
3
3
  * (c) 2010-2024 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v19.0.0-rc.2
2
+ * @license Angular v19.0.0
3
3
  * (c) 2010-2024 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -175,10 +175,10 @@ class TestBedApplicationErrorHandler {
175
175
  throw e;
176
176
  }
177
177
  }
178
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-rc.2", ngImport: i0, type: TestBedApplicationErrorHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
179
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0-rc.2", ngImport: i0, type: TestBedApplicationErrorHandler });
178
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: TestBedApplicationErrorHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
179
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: TestBedApplicationErrorHandler });
180
180
  }
181
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-rc.2", ngImport: i0, type: TestBedApplicationErrorHandler, decorators: [{
181
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: TestBedApplicationErrorHandler, decorators: [{
182
182
  type: Injectable
183
183
  }] });
184
184
 
package/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v19.0.0-rc.2
2
+ * @license Angular v19.0.0
3
3
  * (c) 2010-2024 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -6793,12 +6793,20 @@ declare enum LContainerFlags {
6793
6793
  declare type LegacyInputPartialMapping = string | [bindingPropertyName: string, classPropertyName: string, transformFunction?: Function];
6794
6794
 
6795
6795
  /**
6796
- * @experimental
6796
+ * Creates a writable signals whose value is initialized and reset by the linked, reactive computation.
6797
+ *
6798
+ * @developerPreview
6797
6799
  */
6798
6800
  export declare function linkedSignal<D>(computation: () => D, options?: {
6799
6801
  equal?: ValueEqualityFn<NoInfer<D>>;
6800
6802
  }): WritableSignal<D>;
6801
6803
 
6804
+ /**
6805
+ * Creates a writable signals whose value is initialized and reset by the linked, reactive computation.
6806
+ * This is an advanced API form where the computation has access to the previous value of the signal and the computation result.
6807
+ *
6808
+ * @developerPreview
6809
+ */
6802
6810
  export declare function linkedSignal<S, D>(options: {
6803
6811
  source: () => S;
6804
6812
  computation: (source: NoInfer<S>, previous?: {
@@ -9582,6 +9590,38 @@ export declare interface RendererType2 {
9582
9590
  getExternalStyles?: ((encapsulationId?: string) => string[]) | null;
9583
9591
  }
9584
9592
 
9593
+ /**
9594
+ * Injection token representing the current HTTP request object.
9595
+ *
9596
+ * Use this token to access the current request when handling server-side
9597
+ * rendering (SSR).
9598
+ *
9599
+ * @remarks
9600
+ * This token may be `null` in the following scenarios:
9601
+ *
9602
+ * * During the build processes.
9603
+ * * When the application is rendered in the browser (client-side rendering).
9604
+ * * When performing static site generation (SSG).
9605
+ * * During route extraction in development (at the time of the request).
9606
+ *
9607
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Request | `Request` on MDN}
9608
+ *
9609
+ * @developerPreview
9610
+ */
9611
+ export declare const REQUEST: InjectionToken<Request | null>;
9612
+
9613
+ /**
9614
+ * Injection token for additional request context.
9615
+ *
9616
+ * Use this token to pass custom metadata or context related to the current request in server-side rendering.
9617
+ *
9618
+ * @remarks
9619
+ * This token is only available during server-side rendering and will be `null` in other contexts.
9620
+ *
9621
+ * @developerPreview
9622
+ */
9623
+ export declare const REQUEST_CONTEXT: InjectionToken<unknown>;
9624
+
9585
9625
  /**
9586
9626
  * Lazily retrieves the reference value from a forwardRef.
9587
9627
  *
@@ -9755,6 +9795,26 @@ export declare enum ResourceStatus {
9755
9795
  Local = 5
9756
9796
  }
9757
9797
 
9798
+ /**
9799
+ * Injection token for response initialization options.
9800
+ *
9801
+ * Use this token to provide response options for configuring or initializing
9802
+ * HTTP responses in server-side rendering or API endpoints.
9803
+ *
9804
+ * @remarks
9805
+ * This token may be `null` in the following scenarios:
9806
+ *
9807
+ * * During the build processes.
9808
+ * * When the application is rendered in the browser (client-side rendering).
9809
+ * * When performing static site generation (SSG).
9810
+ * * During route extraction in development (at the time of the request).
9811
+ *
9812
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Response/Response | `ResponseInit` on MDN}
9813
+ *
9814
+ * @developerPreview
9815
+ */
9816
+ export declare const RESPONSE_INIT: InjectionToken<ResponseInit | null>;
9817
+
9758
9818
  /**
9759
9819
  * The goal here is to make sure that the browser DOM API is the Renderer.
9760
9820
  * We do this by defining a subset of DOM API to be the renderer and then
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@angular/core",
3
- "version": "19.0.0-rc.2",
3
+ "version": "19.0.0",
4
4
  "description": "Angular - the core framework",
5
5
  "author": "angular",
6
6
  "license": "MIT",
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v19.0.0-rc.2
2
+ * @license Angular v19.0.0
3
3
  * (c) 2010-2024 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v19.0.0-rc.2
2
+ * @license Angular v19.0.0
3
3
  * (c) 2010-2024 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v19.0.0-rc.2
2
+ * @license Angular v19.0.0
3
3
  * (c) 2010-2024 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v19.0.0-rc.2
3
+ * @license Angular v19.0.0
4
4
  * (c) 2010-2024 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -7767,13 +7767,15 @@ class ShadowCss {
7767
7767
  _polyfillHostRe.lastIndex = 0;
7768
7768
  if (_polyfillHostRe.test(selector)) {
7769
7769
  const replaceBy = `[${hostSelector}]`;
7770
- return selector
7771
- .replace(_polyfillHostNoCombinatorReGlobal, (_hnc, selector) => {
7772
- return selector.replace(/([^:\)]*)(:*)(.*)/, (_, before, colon, after) => {
7773
- return before + replaceBy + colon + after;
7770
+ let result = selector;
7771
+ while (result.match(_polyfillHostNoCombinatorRe)) {
7772
+ result = result.replace(_polyfillHostNoCombinatorRe, (_hnc, selector) => {
7773
+ return selector.replace(/([^:\)]*)(:*)(.*)/, (_, before, colon, after) => {
7774
+ return before + replaceBy + colon + after;
7775
+ });
7774
7776
  });
7775
- })
7776
- .replace(_polyfillHostRe, replaceBy + ' ');
7777
+ }
7778
+ return result.replace(_polyfillHostRe, replaceBy);
7777
7779
  }
7778
7780
  return scopeSelector + ' ' + selector;
7779
7781
  }
@@ -7782,7 +7784,7 @@ class ShadowCss {
7782
7784
  _applySelectorScope({ selector, scopeSelector, hostSelector, isParentSelector, }) {
7783
7785
  const isRe = /\[is=([^\]]*)\]/g;
7784
7786
  scopeSelector = scopeSelector.replace(isRe, (_, ...parts) => parts[0]);
7785
- const attrName = '[' + scopeSelector + ']';
7787
+ const attrName = `[${scopeSelector}]`;
7786
7788
  const _scopeSelectorPart = (p) => {
7787
7789
  let scopedP = p.trim();
7788
7790
  if (!scopedP) {
@@ -7790,8 +7792,8 @@ class ShadowCss {
7790
7792
  }
7791
7793
  if (p.includes(_polyfillHostNoCombinator)) {
7792
7794
  scopedP = this._applySimpleSelectorScope(p, scopeSelector, hostSelector);
7793
- if (_polyfillHostNoCombinatorWithinPseudoFunction.test(p)) {
7794
- const [_, before, colon, after] = scopedP.match(/([^:]*)(:*)(.*)/);
7795
+ if (!p.match(_polyfillHostNoCombinatorOutsidePseudoFunction)) {
7796
+ const [_, before, colon, after] = scopedP.match(/([^:]*)(:*)([\s\S]*)/);
7795
7797
  scopedP = before + attrName + colon + after;
7796
7798
  }
7797
7799
  }
@@ -7799,7 +7801,7 @@ class ShadowCss {
7799
7801
  // remove :host since it should be unnecessary
7800
7802
  const t = p.replace(_polyfillHostRe, '');
7801
7803
  if (t.length > 0) {
7802
- const matches = t.match(/([^:]*)(:*)(.*)/);
7804
+ const matches = t.match(/([^:]*)(:*)([\s\S]*)/);
7803
7805
  if (matches) {
7804
7806
  scopedP = matches[1] + attrName + matches[2] + matches[3];
7805
7807
  }
@@ -7812,24 +7814,55 @@ class ShadowCss {
7812
7814
  // functions are recursively sent to `_scopeSelector()`.
7813
7815
  const _pseudoFunctionAwareScopeSelectorPart = (selectorPart) => {
7814
7816
  let scopedPart = '';
7815
- const cssPrefixWithPseudoSelectorFunctionMatch = selectorPart.match(_cssPrefixWithPseudoSelectorFunction);
7816
- if (cssPrefixWithPseudoSelectorFunctionMatch) {
7817
- const [cssPseudoSelectorFunction] = cssPrefixWithPseudoSelectorFunctionMatch;
7818
- // Unwrap the pseudo selector to scope its contents.
7819
- // For example,
7820
- // - `:where(selectorToScope)` -> `selectorToScope`;
7821
- // - `:is(.foo, .bar)` -> `.foo, .bar`.
7822
- const selectorToScope = selectorPart.slice(cssPseudoSelectorFunction.length, -1);
7823
- if (selectorToScope.includes(_polyfillHostNoCombinator)) {
7824
- this._shouldScopeIndicator = true;
7825
- }
7826
- const scopedInnerPart = this._scopeSelector({
7827
- selector: selectorToScope,
7828
- scopeSelector,
7829
- hostSelector,
7830
- });
7831
- // Put the result back into the pseudo selector function.
7832
- scopedPart = `${cssPseudoSelectorFunction}${scopedInnerPart})`;
7817
+ // Collect all outer `:where()` and `:is()` selectors,
7818
+ // counting parenthesis to keep nested selectors intact.
7819
+ const pseudoSelectorParts = [];
7820
+ let pseudoSelectorMatch;
7821
+ while ((pseudoSelectorMatch = _cssPrefixWithPseudoSelectorFunction.exec(selectorPart)) !== null) {
7822
+ let openedBrackets = 1;
7823
+ let index = _cssPrefixWithPseudoSelectorFunction.lastIndex;
7824
+ while (index < selectorPart.length) {
7825
+ const currentSymbol = selectorPart[index];
7826
+ index++;
7827
+ if (currentSymbol === '(') {
7828
+ openedBrackets++;
7829
+ continue;
7830
+ }
7831
+ if (currentSymbol === ')') {
7832
+ openedBrackets--;
7833
+ if (openedBrackets === 0) {
7834
+ break;
7835
+ }
7836
+ continue;
7837
+ }
7838
+ }
7839
+ pseudoSelectorParts.push(`${pseudoSelectorMatch[0]}${selectorPart.slice(_cssPrefixWithPseudoSelectorFunction.lastIndex, index)}`);
7840
+ _cssPrefixWithPseudoSelectorFunction.lastIndex = index;
7841
+ }
7842
+ // If selector consists of only `:where()` and `:is()` on the outer level
7843
+ // scope those pseudo-selectors individually, otherwise scope the whole
7844
+ // selector.
7845
+ if (pseudoSelectorParts.join('') === selectorPart) {
7846
+ scopedPart = pseudoSelectorParts
7847
+ .map((selectorPart) => {
7848
+ const [cssPseudoSelectorFunction] = selectorPart.match(_cssPrefixWithPseudoSelectorFunction) ?? [];
7849
+ // Unwrap the pseudo selector to scope its contents.
7850
+ // For example,
7851
+ // - `:where(selectorToScope)` -> `selectorToScope`;
7852
+ // - `:is(.foo, .bar)` -> `.foo, .bar`.
7853
+ const selectorToScope = selectorPart.slice(cssPseudoSelectorFunction?.length, -1);
7854
+ if (selectorToScope.includes(_polyfillHostNoCombinator)) {
7855
+ this._shouldScopeIndicator = true;
7856
+ }
7857
+ const scopedInnerPart = this._scopeSelector({
7858
+ selector: selectorToScope,
7859
+ scopeSelector,
7860
+ hostSelector,
7861
+ });
7862
+ // Put the result back into the pseudo selector function.
7863
+ return `${cssPseudoSelectorFunction}${scopedInnerPart})`;
7864
+ })
7865
+ .join('');
7833
7866
  }
7834
7867
  else {
7835
7868
  this._shouldScopeIndicator =
@@ -7950,7 +7983,7 @@ class SafeSelector {
7950
7983
  }
7951
7984
  }
7952
7985
  const _cssScopedPseudoFunctionPrefix = '(:(where|is)\\()?';
7953
- const _cssPrefixWithPseudoSelectorFunction = /^:(where|is)\(/i;
7986
+ const _cssPrefixWithPseudoSelectorFunction = /:(where|is)\(/gi;
7954
7987
  const _cssContentNextSelectorRe = /polyfill-next-selector[^}]*content:[\s]*?(['"])(.*?)\1[;\s]*}([^{]*?){/gim;
7955
7988
  const _cssContentRuleRe = /(polyfill-rule)[^}]*(content:[\s]*(['"])(.*?)\3)[;\s]*[^}]*}/gim;
7956
7989
  const _cssContentUnscopedRuleRe = /(polyfill-unscoped-rule)[^}]*(content:[\s]*(['"])(.*?)\3)[;\s]*[^}]*}/gim;
@@ -7962,9 +7995,8 @@ const _cssColonHostRe = new RegExp(_polyfillHost + _parenSuffix, 'gim');
7962
7995
  const _cssColonHostContextReGlobal = new RegExp(_cssScopedPseudoFunctionPrefix + '(' + _polyfillHostContext + _parenSuffix + ')', 'gim');
7963
7996
  const _cssColonHostContextRe = new RegExp(_polyfillHostContext + _parenSuffix, 'im');
7964
7997
  const _polyfillHostNoCombinator = _polyfillHost + '-no-combinator';
7965
- const _polyfillHostNoCombinatorWithinPseudoFunction = new RegExp(`:.*\\(.*${_polyfillHostNoCombinator}.*\\)`);
7966
- const _polyfillHostNoCombinatorRe = /-shadowcsshost-no-combinator([^\s]*)/;
7967
- const _polyfillHostNoCombinatorReGlobal = new RegExp(_polyfillHostNoCombinatorRe, 'g');
7998
+ const _polyfillHostNoCombinatorOutsidePseudoFunction = new RegExp(`${_polyfillHostNoCombinator}(?![^(]*\\))`, 'g');
7999
+ const _polyfillHostNoCombinatorRe = /-shadowcsshost-no-combinator([^\s,]*)/;
7968
8000
  const _shadowDOMSelectorsRe = [
7969
8001
  /::shadow/g,
7970
8002
  /::content/g,
@@ -30278,7 +30310,7 @@ function publishFacade(global) {
30278
30310
  * @description
30279
30311
  * Entry point for all public APIs of the compiler package.
30280
30312
  */
30281
- new Version('19.0.0-rc.2');
30313
+ new Version('19.0.0');
30282
30314
 
30283
30315
  const _I18N_ATTR = 'i18n';
30284
30316
  const _I18N_ATTR_PREFIX = 'i18n-';
@@ -31686,7 +31718,7 @@ class NodeJSPathManipulation {
31686
31718
  // G3-ESM-MARKER: G3 uses CommonJS, but externally everything in ESM.
31687
31719
  // CommonJS/ESM interop for determining the current file name and containing dir.
31688
31720
  const isCommonJS = typeof __filename !== 'undefined';
31689
- const currentFileUrl = isCommonJS ? null : (typeof document === 'undefined' ? new (require('u' + 'rl').URL)('file:' + __filename).href : (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT' && document.currentScript.src || new URL('checker-cd95ebda.js', document.baseURI).href));
31721
+ const currentFileUrl = isCommonJS ? null : (typeof document === 'undefined' ? new (require('u' + 'rl').URL)('file:' + __filename).href : (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT' && document.currentScript.src || new URL('checker-e3da3b0a.js', document.baseURI).href));
31690
31722
  const currentFileName = isCommonJS ? __filename : url.fileURLToPath(currentFileUrl);
31691
31723
  /**
31692
31724
  * A wrapper around the Node.js file-system that supports readonly operations and path manipulation.
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v19.0.0-rc.2
3
+ * @license Angular v19.0.0
4
4
  * (c) 2010-2024 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -10,8 +10,8 @@ var core = require('@angular-devkit/core');
10
10
  var posixPath = require('node:path/posix');
11
11
  var os = require('os');
12
12
  var ts = require('typescript');
13
- var checker = require('./checker-cd95ebda.js');
14
- var program = require('./program-8f30df93.js');
13
+ var checker = require('./checker-e3da3b0a.js');
14
+ var program = require('./program-f984ab63.js');
15
15
  require('path');
16
16
 
17
17
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -1,13 +1,13 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v19.0.0-rc.2
3
+ * @license Angular v19.0.0
4
4
  * (c) 2010-2024 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
7
7
  'use strict';
8
8
 
9
9
  var ts = require('typescript');
10
- var checker = require('./checker-cd95ebda.js');
10
+ var checker = require('./checker-e3da3b0a.js');
11
11
  require('os');
12
12
  var p = require('path');
13
13
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v19.0.0-rc.2
3
+ * @license Angular v19.0.0
4
4
  * (c) 2010-2024 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -10,8 +10,8 @@ Object.defineProperty(exports, '__esModule', { value: true });
10
10
 
11
11
  var schematics = require('@angular-devkit/schematics');
12
12
  var p = require('path');
13
- var compiler_host = require('./compiler_host-40e8d55f.js');
14
- var checker = require('./checker-cd95ebda.js');
13
+ var compiler_host = require('./compiler_host-d642e87e.js');
14
+ var checker = require('./checker-e3da3b0a.js');
15
15
  var ts = require('typescript');
16
16
  require('os');
17
17
  require('fs');
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v19.0.0-rc.2
3
+ * @license Angular v19.0.0
4
4
  * (c) 2010-2024 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -11,11 +11,11 @@ Object.defineProperty(exports, '__esModule', { value: true });
11
11
  var schematics = require('@angular-devkit/schematics');
12
12
  var p = require('path');
13
13
  var project_tsconfig_paths = require('./project_tsconfig_paths-e9ccccbf.js');
14
- var compiler_host = require('./compiler_host-40e8d55f.js');
14
+ var compiler_host = require('./compiler_host-d642e87e.js');
15
15
  var ts = require('typescript');
16
16
  var imports = require('./imports-4ac08251.js');
17
17
  require('@angular-devkit/core');
18
- require('./checker-cd95ebda.js');
18
+ require('./checker-e3da3b0a.js');
19
19
  require('os');
20
20
  require('fs');
21
21
  require('module');
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v19.0.0-rc.2
3
+ * @license Angular v19.0.0
4
4
  * (c) 2010-2024 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v19.0.0-rc.2
3
+ * @license Angular v19.0.0
4
4
  * (c) 2010-2024 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -10,12 +10,12 @@ Object.defineProperty(exports, '__esModule', { value: true });
10
10
 
11
11
  var schematics = require('@angular-devkit/schematics');
12
12
  var p = require('path');
13
- var compiler_host = require('./compiler_host-40e8d55f.js');
13
+ var compiler_host = require('./compiler_host-d642e87e.js');
14
14
  var ts = require('typescript');
15
15
  var nodes = require('./nodes-0e7d45ca.js');
16
16
  var imports = require('./imports-4ac08251.js');
17
17
  var leading_space = require('./leading_space-d190b83b.js');
18
- require('./checker-cd95ebda.js');
18
+ require('./checker-e3da3b0a.js');
19
19
  require('os');
20
20
  require('fs');
21
21
  require('module');
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v19.0.0-rc.2
3
+ * @license Angular v19.0.0
4
4
  * (c) 2010-2024 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -1,18 +1,18 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v19.0.0-rc.2
3
+ * @license Angular v19.0.0
4
4
  * (c) 2010-2024 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
7
7
  'use strict';
8
8
 
9
- var checker = require('./checker-cd95ebda.js');
9
+ var checker = require('./checker-e3da3b0a.js');
10
10
  var ts = require('typescript');
11
11
  require('os');
12
12
  var assert = require('assert');
13
- var combine_units = require('./combine_units-528c4a5d.js');
13
+ var combine_units = require('./combine_units-2adebceb.js');
14
14
  var leading_space = require('./leading_space-d190b83b.js');
15
- require('./program-8f30df93.js');
15
+ require('./program-f984ab63.js');
16
16
  require('path');
17
17
 
18
18
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v19.0.0-rc.2
3
+ * @license Angular v19.0.0
4
4
  * (c) 2010-2024 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v19.0.0-rc.2
3
+ * @license Angular v19.0.0
4
4
  * (c) 2010-2024 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -10,11 +10,11 @@ Object.defineProperty(exports, '__esModule', { value: true });
10
10
 
11
11
  var schematics = require('@angular-devkit/schematics');
12
12
  var project_tsconfig_paths = require('./project_tsconfig_paths-e9ccccbf.js');
13
- var combine_units = require('./combine_units-528c4a5d.js');
13
+ var combine_units = require('./combine_units-2adebceb.js');
14
14
  require('os');
15
15
  var ts = require('typescript');
16
- var checker = require('./checker-cd95ebda.js');
17
- var program = require('./program-8f30df93.js');
16
+ var checker = require('./checker-e3da3b0a.js');
17
+ var program = require('./program-f984ab63.js');
18
18
  require('path');
19
19
  require('@angular-devkit/core');
20
20
  require('node:path/posix');
@@ -268,7 +268,7 @@ class OutputMigration extends combine_units.TsurgeFunnelMigration {
268
268
  const knownFields = {
269
269
  // Note: We don't support cross-target migration of `Partial<T>` usages.
270
270
  // This is an acceptable limitation for performance reasons.
271
- shouldTrackClassReference: (node) => false,
271
+ shouldTrackClassReference: () => false,
272
272
  attemptRetrieveDescriptorFromSymbol: (s) => {
273
273
  const propDeclaration = getTargetPropertyDeclaration(s);
274
274
  if (propDeclaration !== null) {
@@ -377,13 +377,17 @@ class OutputMigration extends combine_units.TsurgeFunnelMigration {
377
377
  // detect .next usages that should be migrated to .emit in template and host binding expressions
378
378
  if (ref.kind === combine_units.ReferenceKind.InTemplate) {
379
379
  const callExpr = checkNonTsReferenceCallsField(ref, 'next');
380
- if (callExpr !== null) {
380
+ // TODO: here and below for host bindings, we should ideally filter in the global meta stage
381
+ // (instead of using the `outputFieldReplacements` map)
382
+ // as technically, the call expression could refer to an output
383
+ // from a whole different compilation unit (e.g. tsconfig.json).
384
+ if (callExpr !== null && outputFieldReplacements[ref.target.key] !== undefined) {
381
385
  addOutputReplacement(outputFieldReplacements, ref.target.key, ref.from.templateFile, calculateNextFnReplacementInTemplate(ref.from.templateFile, callExpr.nameSpan));
382
386
  }
383
387
  }
384
388
  else if (ref.kind === combine_units.ReferenceKind.InHostBinding) {
385
389
  const callExpr = checkNonTsReferenceCallsField(ref, 'next');
386
- if (callExpr !== null) {
390
+ if (callExpr !== null && outputFieldReplacements[ref.target.key] !== undefined) {
387
391
  addOutputReplacement(outputFieldReplacements, ref.target.key, ref.from.file, calculateNextFnReplacementInHostBinding(ref.from.file, ref.from.hostPropertyNode.getStart() + 1, callExpr.nameSpan));
388
392
  }
389
393
  }
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v19.0.0-rc.2
3
+ * @license Angular v19.0.0
4
4
  * (c) 2010-2024 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -11,11 +11,11 @@ Object.defineProperty(exports, '__esModule', { value: true });
11
11
  var schematics = require('@angular-devkit/schematics');
12
12
  var p = require('path');
13
13
  var project_tsconfig_paths = require('./project_tsconfig_paths-e9ccccbf.js');
14
- var compiler_host = require('./compiler_host-40e8d55f.js');
14
+ var compiler_host = require('./compiler_host-d642e87e.js');
15
15
  var ts = require('typescript');
16
16
  var imports = require('./imports-4ac08251.js');
17
17
  require('@angular-devkit/core');
18
- require('./checker-cd95ebda.js');
18
+ require('./checker-e3da3b0a.js');
19
19
  require('os');
20
20
  require('fs');
21
21
  require('module');