@angular/core 19.2.18 → 19.2.20
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.
- package/event_dispatcher.d-K56StcHr.d.ts +1 -1
- package/fesm2022/core.mjs +34 -14
- package/fesm2022/core.mjs.map +1 -1
- package/fesm2022/primitives/di.mjs +1 -1
- package/fesm2022/primitives/di.mjs.map +1 -1
- package/fesm2022/primitives/event-dispatch.mjs +1 -1
- package/fesm2022/primitives/event-dispatch.mjs.map +1 -1
- package/fesm2022/primitives/signals.mjs +1 -1
- package/fesm2022/primitives/signals.mjs.map +1 -1
- package/fesm2022/rxjs-interop.mjs +1 -1
- package/fesm2022/rxjs-interop.mjs.map +1 -1
- package/fesm2022/testing.mjs +1 -1
- package/fesm2022/testing.mjs.map +1 -1
- package/fesm2022/untracked-BKcld_ew.mjs +1 -1
- package/fesm2022/untracked-BKcld_ew.mjs.map +1 -1
- package/index.d.ts +1 -1
- package/navigation_types.d-fAxd92YV.d.ts +1 -1
- package/package.json +1 -1
- package/primitives/di/index.d.ts +1 -1
- package/primitives/event-dispatch/index.d.ts +1 -1
- package/primitives/signals/index.d.ts +1 -1
- package/rxjs-interop/index.d.ts +1 -1
- package/schematics/bundles/add-bootstrap-context-to-server-main.cjs +2 -2
- package/schematics/bundles/{apply_import_manager-BDckZ-aO.cjs → apply_import_manager-QEWElZT-.cjs} +3 -3
- package/schematics/bundles/{change_tracker-EC4_OX_3.cjs → change_tracker-BPk3UwXG.cjs} +2 -2
- package/schematics/bundles/{checker-B7WeiY-n.cjs → checker-DLkGMJj-.cjs} +5 -4
- package/schematics/bundles/cleanup-unused-imports.cjs +5 -5
- package/schematics/bundles/compiler_host-CAfDJO3W.cjs +1 -1
- package/schematics/bundles/control-flow-migration.cjs +3 -3
- package/schematics/bundles/explicit-standalone-flag.cjs +3 -3
- package/schematics/bundles/imports-CIX-JgAN.cjs +1 -1
- package/schematics/bundles/{index-DyN3x_2s.cjs → index-BPwBW8Gv.cjs} +4 -4
- package/schematics/bundles/{index-DeAjKhiO.cjs → index-iQYWEThN.cjs} +12 -12
- package/schematics/bundles/inject-migration.cjs +3 -3
- package/schematics/bundles/leading_space-D9nQ8UQC.cjs +1 -1
- package/schematics/bundles/{migrate_ts_type_references-L5PQQLA-.cjs → migrate_ts_type_references-BhOqwhYA.cjs} +5 -5
- package/schematics/bundles/ng_decorators-B5HCqr20.cjs +1 -1
- package/schematics/bundles/nodes-B16H9JUd.cjs +1 -1
- package/schematics/bundles/output-migration.cjs +6 -6
- package/schematics/bundles/pending-tasks.cjs +3 -3
- package/schematics/bundles/{project_paths-DIZUxMOI.cjs → project_paths-DePtMwan.cjs} +3 -3
- package/schematics/bundles/project_tsconfig_paths-CDVxT6Ov.cjs +1 -1
- package/schematics/bundles/property_name-BBwFuqMe.cjs +1 -1
- package/schematics/bundles/provide-initializer.cjs +3 -3
- package/schematics/bundles/route-lazy-loading.cjs +3 -3
- package/schematics/bundles/self-closing-tags-migration.cjs +4 -4
- package/schematics/bundles/signal-input-migration.cjs +7 -7
- package/schematics/bundles/signal-queries-migration.cjs +7 -7
- package/schematics/bundles/signals.cjs +7 -7
- package/schematics/bundles/standalone-migration.cjs +4 -4
- package/testing/index.d.ts +1 -1
- package/weak_ref.d-DWHPG08n.d.ts +1 -1
package/fesm2022/core.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v19.2.
|
|
2
|
+
* @license Angular v19.2.20
|
|
3
3
|
* (c) 2010-2025 Google LLC. https://angular.io/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -10880,6 +10880,13 @@ const VALID_ATTRS = merge(URI_ATTRS, HTML_ATTRS, ARIA_ATTRS);
|
|
|
10880
10880
|
// `Some content`, but strip `invalid-element` opening/closing tags. For some elements, though, we
|
|
10881
10881
|
// don't want to preserve the content, if the elements themselves are going to be removed.
|
|
10882
10882
|
const SKIP_TRAVERSING_CONTENT_IF_INVALID_ELEMENTS = tagSet('script,style,template');
|
|
10883
|
+
/**
|
|
10884
|
+
* Attributes that are potential attach vectors and may need to be sanitized.
|
|
10885
|
+
*/
|
|
10886
|
+
const SENSITIVE_ATTRS = merge(URI_ATTRS,
|
|
10887
|
+
// Note: we don't include these attributes in `URI_ATTRS`, because `URI_ATTRS` also
|
|
10888
|
+
// determines whether an attribute should be dropped when sanitizing an HTML string.
|
|
10889
|
+
tagSet('action,formaction,data,codebase'));
|
|
10883
10890
|
/**
|
|
10884
10891
|
* SanitizingHtmlSerializer serializes a DOM fragment, stripping out any unsafe elements and unsafe
|
|
10885
10892
|
* attributes.
|
|
@@ -18079,7 +18086,7 @@ class ComponentFactory extends ComponentFactory$1 {
|
|
|
18079
18086
|
const cmpDef = this.componentDef;
|
|
18080
18087
|
ngDevMode && verifyNotAnOrphanComponent(cmpDef);
|
|
18081
18088
|
const tAttributes = rootSelectorOrNode
|
|
18082
|
-
? ['ng-version', '19.2.
|
|
18089
|
+
? ['ng-version', '19.2.20']
|
|
18083
18090
|
: // Extract attributes and classes from the first selector only to match VE behavior.
|
|
18084
18091
|
extractAttrsAndClassesFromSelector(this.componentDef.selectors[0]);
|
|
18085
18092
|
// Create the root view. Uses empty TView and ContentTemplate.
|
|
@@ -29469,7 +29476,7 @@ function i18nAttributesFirstPass(tView, index, values) {
|
|
|
29469
29476
|
// the compiler treats static i18n attributes as regular attribute bindings.
|
|
29470
29477
|
// Since this may not be the first i18n attribute on this element we need to pass in how
|
|
29471
29478
|
// many previous bindings there have already been.
|
|
29472
|
-
generateBindingUpdateOpCodes(updateOpCodes, message, previousElementIndex, attrName, countBindings(updateOpCodes), null);
|
|
29479
|
+
generateBindingUpdateOpCodes(updateOpCodes, message, previousElementIndex, attrName, countBindings(updateOpCodes), SENSITIVE_ATTRS[attrName.toLowerCase()] ? _sanitizeUrl : null);
|
|
29473
29480
|
}
|
|
29474
29481
|
}
|
|
29475
29482
|
tView.data[index] = updateOpCodes;
|
|
@@ -29795,15 +29802,9 @@ function walkIcuTree(ast, tView, tIcu, lView, sharedUpdateOpCodes, create, remov
|
|
|
29795
29802
|
const attr = elAttrs.item(i);
|
|
29796
29803
|
const lowerAttrName = attr.name.toLowerCase();
|
|
29797
29804
|
const hasBinding = !!attr.value.match(BINDING_REGEXP);
|
|
29798
|
-
// we assume the input string is safe, unless it's using a binding
|
|
29799
29805
|
if (hasBinding) {
|
|
29800
29806
|
if (VALID_ATTRS.hasOwnProperty(lowerAttrName)) {
|
|
29801
|
-
|
|
29802
|
-
generateBindingUpdateOpCodes(update, attr.value, newIndex, attr.name, 0, _sanitizeUrl);
|
|
29803
|
-
}
|
|
29804
|
-
else {
|
|
29805
|
-
generateBindingUpdateOpCodes(update, attr.value, newIndex, attr.name, 0, null);
|
|
29806
|
-
}
|
|
29807
|
+
generateBindingUpdateOpCodes(update, attr.value, newIndex, attr.name, 0, SENSITIVE_ATTRS[lowerAttrName] ? _sanitizeUrl : null);
|
|
29807
29808
|
}
|
|
29808
29809
|
else {
|
|
29809
29810
|
ngDevMode &&
|
|
@@ -29812,8 +29813,27 @@ function walkIcuTree(ast, tView, tIcu, lView, sharedUpdateOpCodes, create, remov
|
|
|
29812
29813
|
`(see ${XSS_SECURITY_URL})`);
|
|
29813
29814
|
}
|
|
29814
29815
|
}
|
|
29816
|
+
else if (VALID_ATTRS[lowerAttrName]) {
|
|
29817
|
+
if (SENSITIVE_ATTRS[lowerAttrName]) {
|
|
29818
|
+
// Don't sanitize, because no value is acceptable in sensitive attributes.
|
|
29819
|
+
// Translators are not allowed to create URIs.
|
|
29820
|
+
if (typeof ngDevMode !== 'undefined' && ngDevMode) {
|
|
29821
|
+
console.warn(`WARNING: ignoring unsafe attribute ` +
|
|
29822
|
+
`${lowerAttrName} on element ${tagName} ` +
|
|
29823
|
+
`(see ${XSS_SECURITY_URL})`);
|
|
29824
|
+
}
|
|
29825
|
+
addCreateAttribute(create, newIndex, attr.name, 'unsafe:blocked');
|
|
29826
|
+
}
|
|
29827
|
+
else {
|
|
29828
|
+
addCreateAttribute(create, newIndex, attr.name, attr.value);
|
|
29829
|
+
}
|
|
29830
|
+
}
|
|
29815
29831
|
else {
|
|
29816
|
-
|
|
29832
|
+
if (typeof ngDevMode !== 'undefined' && ngDevMode) {
|
|
29833
|
+
console.warn(`WARNING: ignoring unknown attribute name ` +
|
|
29834
|
+
`${lowerAttrName} on element ${tagName} ` +
|
|
29835
|
+
`(see ${XSS_SECURITY_URL})`);
|
|
29836
|
+
}
|
|
29817
29837
|
}
|
|
29818
29838
|
}
|
|
29819
29839
|
const elementNode = {
|
|
@@ -29882,8 +29902,8 @@ function addCreateNodeAndAppend(create, marker, text, appendToParentIdx, createA
|
|
|
29882
29902
|
}
|
|
29883
29903
|
create.push(text, createAtIdx, icuCreateOpCode(0 /* IcuCreateOpCode.AppendChild */, appendToParentIdx, createAtIdx));
|
|
29884
29904
|
}
|
|
29885
|
-
function addCreateAttribute(create, newIndex,
|
|
29886
|
-
create.push((newIndex << 1 /* IcuCreateOpCode.SHIFT_REF */) | 1 /* IcuCreateOpCode.Attr */,
|
|
29905
|
+
function addCreateAttribute(create, newIndex, attrName, attrValue) {
|
|
29906
|
+
create.push((newIndex << 1 /* IcuCreateOpCode.SHIFT_REF */) | 1 /* IcuCreateOpCode.Attr */, attrName, attrValue);
|
|
29887
29907
|
}
|
|
29888
29908
|
|
|
29889
29909
|
// i18nPostprocess consts
|
|
@@ -34786,7 +34806,7 @@ class Version {
|
|
|
34786
34806
|
/**
|
|
34787
34807
|
* @publicApi
|
|
34788
34808
|
*/
|
|
34789
|
-
const VERSION = new Version('19.2.
|
|
34809
|
+
const VERSION = new Version('19.2.20');
|
|
34790
34810
|
|
|
34791
34811
|
/**
|
|
34792
34812
|
* Combination of NgModuleFactory and ComponentFactories.
|