@unhead/angular 2.1.11 → 2.1.12
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.
|
@@ -15,7 +15,7 @@ function attrToElement(element, acc) {
|
|
|
15
15
|
else if (key === 'style') {
|
|
16
16
|
const styleObj = value.split(';').reduce((acc, style) => {
|
|
17
17
|
const [prop, val] = style.split(':').map(s => s.trim());
|
|
18
|
-
if (prop && val)
|
|
18
|
+
if (prop && val && prop !== '__proto__' && prop !== 'constructor' && prop !== 'prototype')
|
|
19
19
|
acc[prop] = val;
|
|
20
20
|
return acc;
|
|
21
21
|
}, {});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unhead-angular-server.mjs","sources":["../../server/src/ssr.service.ts","../../server/src/server.ts","../../server/src/public_api.ts","../../server/src/unhead-angular-server.ts"],"sourcesContent":["import type { Unhead as UnheadSchema } from 'unhead/types'\nimport { DOCUMENT } from '@angular/common'\nimport { Inject, Injectable } from '@angular/core'\nimport { UnheadInjectionToken } from '@unhead/angular'\nimport { extractUnheadInputFromHtml, renderSSRHead } from 'unhead/server'\n\nfunction attrToElement(element: HTMLElement, acc: string) {\n const [key, value] = acc.match(/([a-z0-9-]+)(?:=\"([^\"]*)\")?/i)?.slice(1, 3) || []\n if (!key)\n return\n\n if (value === undefined) {\n element.setAttribute(key, '')\n }\n else if (key === 'style') {\n const styleObj = value.split(';').reduce((acc, style) => {\n const [prop, val] = style.split(':').map(s => s.trim())\n if (prop && val)\n acc[prop] = val\n return acc\n }, {} as Record<string, string>)\n Object.entries(styleObj).forEach(([prop, val]) => {\n element.style.setProperty(prop, val)\n })\n }\n else if (key === 'class') {\n value.split(' ').forEach(className => element.classList.add(className))\n }\n else {\n element.setAttribute(key, value)\n }\n}\n\nconst attrRegex = /([a-z0-9-]+(?:=\"[^\"]*\")?)/gi\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UnheadSSRService {\n constructor(\n @Inject(DOCUMENT) private document: Document,\n @Inject(UnheadInjectionToken) private unhead: UnheadSchema,\n ) {}\n\n async render() {\n const { input } = extractUnheadInputFromHtml(this.document.documentElement.outerHTML)\n this.unhead.entries.set(0, { _i: 0, input, options: {} })\n const { headTags, htmlAttrs, bodyAttrs, bodyTags, bodyTagsOpen } = await renderSSRHead(this.unhead, {\n omitLineBreaks: false,\n })\n htmlAttrs.match(attrRegex)?.forEach(attr => attrToElement(this.document.documentElement, attr))\n bodyAttrs.match(attrRegex)?.forEach(attr => attrToElement(this.document.body, attr))\n this.document.body.innerHTML = bodyTagsOpen + this.document.body.innerHTML + bodyTags\n this.document.head.innerHTML = headTags\n }\n}\n","import type { CreateServerHeadOptions } from 'unhead/types'\nimport { makeEnvironmentProviders } from '@angular/core'\nimport { BEFORE_APP_SERIALIZED } from '@angular/platform-server'\nimport { UnheadInjectionToken } from '@unhead/angular'\nimport { createHead as _createServerHead } from 'unhead/server'\nimport { UnheadSSRService } from './ssr.service'\n\nexport function provideServerHead(options: CreateServerHeadOptions = {}) {\n const head = _createServerHead(options)\n return makeEnvironmentProviders([\n { provide: UnheadInjectionToken, useValue: head },\n UnheadSSRService,\n {\n provide: BEFORE_APP_SERIALIZED,\n useFactory: (service: UnheadSSRService) => () => {\n return service.render()\n },\n deps: [UnheadSSRService],\n multi: true,\n },\n ])\n}\n","/*\n * Public API Surface of unhead\n */\n\nexport * from './server'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["_createServerHead"],"mappings":";;;;;;;AAMA,SAAS,aAAa,CAAC,OAAoB,EAAE,GAAW,EAAA;IACtD,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,8BAA8B,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE;AACjF,IAAA,IAAI,CAAC,GAAG;QACN;AAEF,IAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AACvB,QAAA,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE,EAAE,CAAC;IAC/B;AACK,SAAA,IAAI,GAAG,KAAK,OAAO,EAAE;AACxB,QAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,KAAI;YACtD,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"unhead-angular-server.mjs","sources":["../../server/src/ssr.service.ts","../../server/src/server.ts","../../server/src/public_api.ts","../../server/src/unhead-angular-server.ts"],"sourcesContent":["import type { Unhead as UnheadSchema } from 'unhead/types'\nimport { DOCUMENT } from '@angular/common'\nimport { Inject, Injectable } from '@angular/core'\nimport { UnheadInjectionToken } from '@unhead/angular'\nimport { extractUnheadInputFromHtml, renderSSRHead } from 'unhead/server'\n\nfunction attrToElement(element: HTMLElement, acc: string) {\n const [key, value] = acc.match(/([a-z0-9-]+)(?:=\"([^\"]*)\")?/i)?.slice(1, 3) || []\n if (!key)\n return\n\n if (value === undefined) {\n element.setAttribute(key, '')\n }\n else if (key === 'style') {\n const styleObj = value.split(';').reduce((acc, style) => {\n const [prop, val] = style.split(':').map(s => s.trim())\n if (prop && val && prop !== '__proto__' && prop !== 'constructor' && prop !== 'prototype')\n acc[prop] = val\n return acc\n }, {} as Record<string, string>)\n Object.entries(styleObj).forEach(([prop, val]) => {\n element.style.setProperty(prop, val)\n })\n }\n else if (key === 'class') {\n value.split(' ').forEach(className => element.classList.add(className))\n }\n else {\n element.setAttribute(key, value)\n }\n}\n\nconst attrRegex = /([a-z0-9-]+(?:=\"[^\"]*\")?)/gi\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UnheadSSRService {\n constructor(\n @Inject(DOCUMENT) private document: Document,\n @Inject(UnheadInjectionToken) private unhead: UnheadSchema,\n ) {}\n\n async render() {\n const { input } = extractUnheadInputFromHtml(this.document.documentElement.outerHTML)\n this.unhead.entries.set(0, { _i: 0, input, options: {} })\n const { headTags, htmlAttrs, bodyAttrs, bodyTags, bodyTagsOpen } = await renderSSRHead(this.unhead, {\n omitLineBreaks: false,\n })\n htmlAttrs.match(attrRegex)?.forEach(attr => attrToElement(this.document.documentElement, attr))\n bodyAttrs.match(attrRegex)?.forEach(attr => attrToElement(this.document.body, attr))\n this.document.body.innerHTML = bodyTagsOpen + this.document.body.innerHTML + bodyTags\n this.document.head.innerHTML = headTags\n }\n}\n","import type { CreateServerHeadOptions } from 'unhead/types'\nimport { makeEnvironmentProviders } from '@angular/core'\nimport { BEFORE_APP_SERIALIZED } from '@angular/platform-server'\nimport { UnheadInjectionToken } from '@unhead/angular'\nimport { createHead as _createServerHead } from 'unhead/server'\nimport { UnheadSSRService } from './ssr.service'\n\nexport function provideServerHead(options: CreateServerHeadOptions = {}) {\n const head = _createServerHead(options)\n return makeEnvironmentProviders([\n { provide: UnheadInjectionToken, useValue: head },\n UnheadSSRService,\n {\n provide: BEFORE_APP_SERIALIZED,\n useFactory: (service: UnheadSSRService) => () => {\n return service.render()\n },\n deps: [UnheadSSRService],\n multi: true,\n },\n ])\n}\n","/*\n * Public API Surface of unhead\n */\n\nexport * from './server'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["_createServerHead"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@unhead/angular",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "2.1.
|
|
4
|
+
"version": "2.1.12",
|
|
5
5
|
"description": "Full-stack <head> manager built for Angular.",
|
|
6
6
|
"author": "Harlan Wilton <harlan@harlanzw.com>",
|
|
7
7
|
"license": "MIT",
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
},
|
|
62
62
|
"dependencies": {
|
|
63
63
|
"tslib": "^2.8.1",
|
|
64
|
-
"unhead": "2.1.
|
|
64
|
+
"unhead": "2.1.12"
|
|
65
65
|
},
|
|
66
66
|
"devDependencies": {
|
|
67
67
|
"@angular-devkit/build-angular": "^21.2.0",
|