@angular/core 22.0.0-next.5 → 22.0.0-next.6
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/fesm2022/_attribute-chunk.mjs +1 -1
- package/fesm2022/_debug_node-chunk.mjs +68 -12
- package/fesm2022/_debug_node-chunk.mjs.map +1 -1
- package/fesm2022/_effect-chunk.mjs +1 -1
- package/fesm2022/_not_found-chunk.mjs +1 -1
- package/fesm2022/_pending_tasks-chunk.mjs +2 -2
- package/fesm2022/_pending_tasks-chunk.mjs.map +1 -1
- package/fesm2022/_resource-chunk.mjs +1 -1
- package/fesm2022/_untracked-chunk.mjs +1 -1
- package/fesm2022/_weak_ref-chunk.mjs +1 -1
- package/fesm2022/core.mjs +1 -1
- package/fesm2022/primitives-di.mjs +1 -1
- package/fesm2022/primitives-event-dispatch.mjs +1 -1
- package/fesm2022/primitives-signals.mjs +1 -1
- package/fesm2022/rxjs-interop.mjs +1 -1
- package/fesm2022/testing.mjs +1 -1
- package/package.json +2 -2
- package/schematics/bundles/apply_import_manager-CxA_YYgB.cjs +1 -1
- package/schematics/bundles/change-detection-eager.cjs +1 -1
- package/schematics/bundles/cleanup-unused-imports.cjs +1 -1
- package/schematics/bundles/common-to-standalone-migration.cjs +1 -1
- package/schematics/bundles/compiler_host-CY14HvaP.cjs +1 -1
- package/schematics/bundles/control-flow-migration.cjs +1 -1
- package/schematics/bundles/http-xhr-backend.cjs +6 -11
- package/schematics/bundles/imports-CKV-ITqD.cjs +1 -1
- package/schematics/bundles/index-BtLcQH8g.cjs +1 -1
- package/schematics/bundles/inject-migration.cjs +1 -1
- package/schematics/bundles/leading_space-BTPRV0wu.cjs +1 -1
- package/schematics/bundles/migrate_ts_type_references-Dp33iyGx.cjs +1 -1
- package/schematics/bundles/ng_component_template-DPAF1aEA.cjs +1 -1
- package/schematics/bundles/ng_decorators-IVztR9rk.cjs +1 -1
- package/schematics/bundles/ngclass-to-class-migration.cjs +1 -1
- package/schematics/bundles/ngstyle-to-style-migration.cjs +1 -1
- package/schematics/bundles/nodes-ZSQ7WZRB.cjs +1 -1
- package/schematics/bundles/output-migration.cjs +1 -1
- package/schematics/bundles/parse_html-C8eKA9px.cjs +1 -1
- package/schematics/bundles/project_paths-D2V-Uh2L.cjs +1 -1
- package/schematics/bundles/project_tsconfig_paths-DkkMibv-.cjs +1 -1
- package/schematics/bundles/property_name-BCpALNpZ.cjs +1 -1
- package/schematics/bundles/route-lazy-loading.cjs +22 -2
- package/schematics/bundles/router-testing-module-migration.cjs +1 -1
- package/schematics/bundles/self-closing-tags-migration.cjs +1 -1
- package/schematics/bundles/signal-input-migration.cjs +1 -1
- package/schematics/bundles/signal-queries-migration.cjs +1 -1
- package/schematics/bundles/signals.cjs +1 -1
- package/schematics/bundles/standalone-migration.cjs +1 -1
- package/schematics/bundles/strict-templates.cjs +55 -0
- package/schematics/migrations.json +5 -0
- package/types/_api-chunk.d.ts +1 -1
- package/types/_chrome_dev_tools_performance-chunk.d.ts +1 -1
- package/types/_debug_node-chunk.d.ts +6 -2
- package/types/_effect-chunk.d.ts +1 -1
- package/types/_event_dispatcher-chunk.d.ts +1 -1
- package/types/_formatter-chunk.d.ts +1 -1
- package/types/_weak_ref-chunk.d.ts +1 -1
- package/types/core.d.ts +1 -1
- package/types/primitives-di.d.ts +1 -1
- package/types/primitives-event-dispatch.d.ts +1 -1
- package/types/primitives-signals.d.ts +1 -1
- package/types/rxjs-interop.d.ts +1 -1
- package/types/testing.d.ts +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v22.0.0-next.
|
|
2
|
+
* @license Angular v22.0.0-next.6
|
|
3
3
|
* (c) 2010-2026 Google LLC. https://angular.dev/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -3354,10 +3354,37 @@ function ɵɵtrustConstantResourceUrl(url) {
|
|
|
3354
3354
|
}
|
|
3355
3355
|
return trustedScriptURLFromString(url[0]);
|
|
3356
3356
|
}
|
|
3357
|
-
const
|
|
3358
|
-
|
|
3357
|
+
const RESOURCE_MAP = {
|
|
3358
|
+
'embed': {
|
|
3359
|
+
'src': true
|
|
3360
|
+
},
|
|
3361
|
+
'frame': {
|
|
3362
|
+
'src': true
|
|
3363
|
+
},
|
|
3364
|
+
'iframe': {
|
|
3365
|
+
'src': true
|
|
3366
|
+
},
|
|
3367
|
+
'media': {
|
|
3368
|
+
'src': true
|
|
3369
|
+
},
|
|
3370
|
+
'script': {
|
|
3371
|
+
'src': true,
|
|
3372
|
+
'href': true,
|
|
3373
|
+
'xlink:href': true
|
|
3374
|
+
},
|
|
3375
|
+
'base': {
|
|
3376
|
+
'href': true
|
|
3377
|
+
},
|
|
3378
|
+
'link': {
|
|
3379
|
+
'href': true
|
|
3380
|
+
},
|
|
3381
|
+
'object': {
|
|
3382
|
+
'data': true,
|
|
3383
|
+
'codebase': true
|
|
3384
|
+
}
|
|
3385
|
+
};
|
|
3359
3386
|
function getUrlSanitizer(tag, prop) {
|
|
3360
|
-
const isResource =
|
|
3387
|
+
const isResource = RESOURCE_MAP[tag]?.[prop] === true;
|
|
3361
3388
|
return isResource ? ɵɵsanitizeResourceUrl : ɵɵsanitizeUrl;
|
|
3362
3389
|
}
|
|
3363
3390
|
function ɵɵsanitizeUrlOrResourceUrl(unsafeUrl, tag, prop) {
|
|
@@ -3379,18 +3406,38 @@ function getSanitizer() {
|
|
|
3379
3406
|
const lView = getLView();
|
|
3380
3407
|
return lView && lView[ENVIRONMENT].sanitizer;
|
|
3381
3408
|
}
|
|
3382
|
-
const
|
|
3409
|
+
const SECURITY_SENSITIVE_ATTRIBUTE_NAMES = new Set(['href', 'xlink:href']);
|
|
3383
3410
|
const SECURITY_SENSITIVE_ELEMENTS = {
|
|
3384
|
-
'iframe':
|
|
3385
|
-
|
|
3386
|
-
|
|
3387
|
-
|
|
3388
|
-
|
|
3411
|
+
'iframe': {
|
|
3412
|
+
'sandbox': true,
|
|
3413
|
+
'allow': true,
|
|
3414
|
+
'allowfullscreen': true,
|
|
3415
|
+
'referrerpolicy': true,
|
|
3416
|
+
'csp': true,
|
|
3417
|
+
'fetchpriority': true
|
|
3418
|
+
},
|
|
3419
|
+
'animate': {
|
|
3420
|
+
'attributename': true,
|
|
3421
|
+
'to': SECURITY_SENSITIVE_ATTRIBUTE_NAMES,
|
|
3422
|
+
'values': SECURITY_SENSITIVE_ATTRIBUTE_NAMES,
|
|
3423
|
+
'from': SECURITY_SENSITIVE_ATTRIBUTE_NAMES
|
|
3424
|
+
},
|
|
3425
|
+
'set': {
|
|
3426
|
+
'attributename': true,
|
|
3427
|
+
'to': SECURITY_SENSITIVE_ATTRIBUTE_NAMES
|
|
3428
|
+
},
|
|
3429
|
+
'animatemotion': {
|
|
3430
|
+
'attributename': true
|
|
3431
|
+
},
|
|
3432
|
+
'animatetransform': {
|
|
3433
|
+
'attributename': true
|
|
3434
|
+
}
|
|
3389
3435
|
};
|
|
3390
3436
|
function ɵɵvalidateAttribute(value, tagName, attributeName) {
|
|
3391
3437
|
const lowerCaseTagName = tagName.toLowerCase();
|
|
3392
3438
|
const lowerCaseAttrName = attributeName.toLowerCase();
|
|
3393
|
-
|
|
3439
|
+
const validationConfig = SECURITY_SENSITIVE_ELEMENTS[lowerCaseTagName]?.[lowerCaseAttrName];
|
|
3440
|
+
if (!validationConfig) {
|
|
3394
3441
|
return value;
|
|
3395
3442
|
}
|
|
3396
3443
|
const tNode = getSelectedTNode();
|
|
@@ -3402,6 +3449,15 @@ function ɵɵvalidateAttribute(value, tagName, attributeName) {
|
|
|
3402
3449
|
const element = getNativeByTNode(tNode, lView);
|
|
3403
3450
|
enforceIframeSecurity(element);
|
|
3404
3451
|
}
|
|
3452
|
+
if (typeof validationConfig !== 'boolean') {
|
|
3453
|
+
const element = getNativeByTNode(tNode, lView);
|
|
3454
|
+
const attributeNameValue = element.getAttribute('attributeName');
|
|
3455
|
+
if (attributeNameValue && validationConfig.has(attributeNameValue.toLowerCase())) {
|
|
3456
|
+
const errorMessage = ngDevMode && `Angular has detected that the \`${attributeName}\` was applied ` + `as a binding to the <${tagName}> element${getTemplateLocationDetails(lView)}. ` + `For security reasons, the \`${attributeName}\` can be set on the <${tagName}> element ` + `as a static attribute only when the "attributeName" is set to \'${attributeNameValue}\'. \n` + `To fix this, switch the \`${attributeNameValue}\` binding to a static attribute ` + `in a template or in host bindings section.`;
|
|
3457
|
+
throw new RuntimeError(-910, errorMessage);
|
|
3458
|
+
}
|
|
3459
|
+
return value;
|
|
3460
|
+
}
|
|
3405
3461
|
const errorMessage = ngDevMode && `Angular has detected that the \`${attributeName}\` was applied ` + `as a binding to the <${tagName}> element${getTemplateLocationDetails(lView)}. ` + `For security reasons, the \`${attributeName}\` can be set on the <${tagName}> element ` + `as a static attribute only. \n` + `To fix this, switch the \`${attributeName}\` binding to a static attribute ` + `in a template or in host bindings section.`;
|
|
3406
3462
|
throw new RuntimeError(-910, errorMessage);
|
|
3407
3463
|
}
|
|
@@ -8890,7 +8946,7 @@ class ComponentFactory extends ComponentFactory$1 {
|
|
|
8890
8946
|
}
|
|
8891
8947
|
}
|
|
8892
8948
|
function createRootTView(rootSelectorOrNode, componentDef, componentBindings, directives) {
|
|
8893
|
-
const tAttributes = rootSelectorOrNode ? ['ng-version', '22.0.0-next.
|
|
8949
|
+
const tAttributes = rootSelectorOrNode ? ['ng-version', '22.0.0-next.6'] : extractAttrsAndClassesFromSelector(componentDef.selectors[0]);
|
|
8894
8950
|
let creationBindings = null;
|
|
8895
8951
|
let updateBindings = null;
|
|
8896
8952
|
let varsToAllocate = 0;
|