UNPKG

78.2 kBSource Map (JSON)View Raw
1{"version":3,"file":"platform-server.mjs","sources":["../../../../../../packages/platform-server/src/domino_adapter.ts","../../../../../../packages/platform-server/src/platform_state.ts","../../../../../../packages/platform-server/src/tokens.ts","../../../../../../packages/platform-server/src/http.ts","../../../../../../packages/platform-server/src/location.ts","../../../../../../packages/platform-server/src/server_events.ts","../../../../../../packages/platform-server/src/server_renderer.ts","../../../../../../packages/platform-server/src/styles_host.ts","../../../../../../packages/platform-server/src/transfer_state.ts","../../../../../../packages/platform-server/src/server.ts","../../../../../../packages/platform-server/src/utils.ts","../../../../../../packages/platform-server/src/private_export.ts","../../../../../../packages/platform-server/src/version.ts","../../../../../../packages/platform-server/src/platform-server.ts","../../../../../../packages/platform-server/public_api.ts","../../../../../../packages/platform-server/index.ts","../../../../../../packages/platform-server/platform-server.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ɵsetRootDomAdapter as setRootDomAdapter} from '@angular/common';\nimport {ɵBrowserDomAdapter as BrowserDomAdapter} from '@angular/platform-browser';\nimport * as domino from 'domino';\n\nexport function setDomTypes() {\n // Make all Domino types available in the global env.\n Object.assign(global, domino.impl);\n (global as any)['KeyboardEvent'] = domino.impl.Event;\n}\n\n/**\n * Parses a document string to a Document object.\n */\nexport function parseDocument(html: string, url = '/') {\n let window = domino.createWindow(html, url);\n let doc = window.document;\n return doc;\n}\n\n/**\n * Serializes a document to string.\n */\nexport function serializeDocument(doc: Document): string {\n return (doc as any).serialize();\n}\n\n/**\n * DOM Adapter for the server platform based on https://github.com/fgnass/domino.\n */\nexport class DominoAdapter extends BrowserDomAdapter {\n static override makeCurrent() {\n setDomTypes();\n setRootDomAdapter(new DominoAdapter());\n }\n\n override readonly supportsDOMEvents = false;\n private static defaultDoc: Document;\n\n override createHtmlDocument(): Document {\n return parseDocument('<html><head><title>fakeTitle</title></head><body></body></html>');\n }\n\n override getDefaultDocument(): Document {\n if (!DominoAdapter.defaultDoc) {\n DominoAdapter.defaultDoc = domino.createDocument();\n }\n return DominoAdapter.defaultDoc;\n }\n\n override isElementNode(node: any): boolean {\n return node ? node.nodeType === DominoAdapter.defaultDoc.ELEMENT_NODE : false;\n }\n override isShadowRoot(node: any): boolean {\n return node.shadowRoot == node;\n }\n\n /** @deprecated No longer being used in Ivy code. To be removed in version 14. */\n override getGlobalEventTarget(doc: Document, target: string): EventTarget|null {\n if (target === 'window') {\n return doc.defaultView;\n }\n if (target === 'document') {\n return doc;\n }\n if (target === 'body') {\n return doc.body;\n }\n return null;\n }\n\n override getBaseHref(doc: Document): string {\n // TODO(alxhub): Need relative path logic from BrowserDomAdapter here?\n return doc.documentElement!.querySelector('base')?.getAttribute('href') || '';\n }\n\n override dispatchEvent(el: Node, evt: any) {\n el.dispatchEvent(evt);\n\n // Dispatch the event to the window also.\n const doc = el.ownerDocument || el;\n const win = (doc as any).defaultView;\n if (win) {\n win.dispatchEvent(evt);\n }\n }\n\n override getUserAgent(): string {\n return 'Fake user agent';\n }\n\n override getCookie(name: string): string {\n throw new Error('getCookie has not been implemented');\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {DOCUMENT} from '@angular/common';\nimport {Inject, Injectable} from '@angular/core';\n\nimport {serializeDocument} from './domino_adapter';\n\n/**\n * Representation of the current platform state.\n *\n * @publicApi\n */\n@Injectable()\nexport class PlatformState {\n constructor(@Inject(DOCUMENT) private _doc: any) {}\n\n /**\n * Renders the current state of the platform to string.\n */\n renderToString(): string {\n return serializeDocument(this._doc);\n }\n\n /**\n * Returns the current DOM state.\n */\n getDocument(): any {\n return this._doc;\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {InjectionToken} from '@angular/core';\n\n/**\n * Config object passed to initialize the platform.\n *\n * @publicApi\n */\nexport interface PlatformConfig {\n /**\n * The initial DOM to use to bootstrap the server application.\n * @default create a new DOM using Domino\n */\n document?: string;\n /**\n * The URL for the current application state. This is used for initializing\n * the platform's location. `protocol`, `hostname`, and `port` will be\n * overridden if `baseUrl` is set.\n * @default none\n */\n url?: string;\n /**\n * Whether to append the absolute URL to any relative HTTP requests. If set to\n * true, this logic executes prior to any HTTP interceptors that may run later\n * on in the request. `baseUrl` must be supplied if this flag is enabled.\n * @default false\n */\n useAbsoluteUrl?: boolean;\n /**\n * The base URL for resolving absolute URL for HTTP requests. It must be set\n * if `useAbsoluteUrl` is true, and must consist of protocol, hostname,\n * and optional port. This option has no effect if `useAbsoluteUrl` is not\n * enabled.\n */\n baseUrl?: string;\n}\n\n/**\n * The DI token for setting the initial config for the platform.\n *\n * @publicApi\n */\nexport const INITIAL_CONFIG = new InjectionToken<PlatformConfig>('Server.INITIAL_CONFIG');\n\n/**\n * A function that will be executed when calling `renderApplication`, `renderModuleFactory` or\n * `renderModule` just before current platform state is rendered to string.\n *\n * @publicApi\n */\nexport const BEFORE_APP_SERIALIZED =\n new InjectionToken<Array<() => void | Promise<void>>>('Server.RENDER_MODULE_HOOK');\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {PlatformLocation, XhrFactory} from '@angular/common';\nimport {HttpBackend, HttpEvent, HttpHandler, HttpRequest, ɵHttpInterceptorHandler as HttpInterceptorHandler} from '@angular/common/http';\nimport {EnvironmentInjector, inject, Injectable, Provider} from '@angular/core';\nimport {Observable, Observer, Subscription} from 'rxjs';\nimport * as xhr2 from 'xhr2';\n\nimport {INITIAL_CONFIG, PlatformConfig} from './tokens';\n\n// @see https://www.w3.org/Protocols/HTTP/1.1/draft-ietf-http-v11-spec-01#URI-syntax\nconst isAbsoluteUrl = /^[a-zA-Z\\-\\+.]+:\\/\\//;\n\n@Injectable()\nexport class ServerXhr implements XhrFactory {\n build(): XMLHttpRequest {\n return new xhr2.XMLHttpRequest();\n }\n}\n\nexport abstract class ZoneMacroTaskWrapper<S, R> {\n wrap(request: S): Observable<R> {\n return new Observable((observer: Observer<R>) => {\n let task: Task = null!;\n let scheduled: boolean = false;\n let sub: Subscription|null = null;\n let savedResult: any = null;\n let savedError: any = null;\n\n const scheduleTask = (_task: Task) => {\n task = _task;\n scheduled = true;\n\n const delegate = this.delegate(request);\n sub = delegate.subscribe(\n res => savedResult = res,\n err => {\n if (!scheduled) {\n throw new Error(\n 'An http observable was completed twice. This shouldn\\'t happen, please file a bug.');\n }\n savedError = err;\n scheduled = false;\n task.invoke();\n },\n () => {\n if (!scheduled) {\n throw new Error(\n 'An http observable was completed twice. This shouldn\\'t happen, please file a bug.');\n }\n scheduled = false;\n task.invoke();\n });\n };\n\n const cancelTask = (_task: Task) => {\n if (!scheduled) {\n return;\n }\n scheduled = false;\n if (sub) {\n sub.unsubscribe();\n sub = null;\n }\n };\n\n const onComplete = () => {\n if (savedError !== null) {\n observer.error(savedError);\n } else {\n observer.next(savedResult);\n observer.complete();\n }\n };\n\n // MockBackend for Http is synchronous, which means that if scheduleTask is by\n // scheduleMacroTask, the request will hit MockBackend and the response will be\n // sent, causing task.invoke() to be called.\n const _task = Zone.current.scheduleMacroTask(\n 'ZoneMacroTaskWrapper.subscribe', onComplete, {}, () => null, cancelTask);\n scheduleTask(_task);\n\n return () => {\n if (scheduled && task) {\n task.zone.cancelTask(task);\n scheduled = false;\n }\n if (sub) {\n sub.unsubscribe();\n sub = null;\n }\n };\n });\n }\n\n protected abstract delegate(request: S): Observable<R>;\n}\n\nexport class ZoneClientBackend extends\n ZoneMacroTaskWrapper<HttpRequest<any>, HttpEvent<any>> implements HttpBackend {\n constructor(\n private backend: HttpBackend, private platformLocation: PlatformLocation,\n private config: PlatformConfig) {\n super();\n }\n\n handle(request: HttpRequest<any>): Observable<HttpEvent<any>> {\n const {href, protocol, hostname, port} = this.platformLocation;\n if (this.config.useAbsoluteUrl && !isAbsoluteUrl.test(request.url) &&\n isAbsoluteUrl.test(href)) {\n const baseHref = this.platformLocation.getBaseHrefFromDOM() || href;\n const urlPrefix = `${protocol}//${hostname}` + (port ? `:${port}` : '');\n const baseUrl = new URL(baseHref, urlPrefix);\n const url = new URL(request.url, baseUrl);\n return this.wrap(request.clone({url: url.toString()}));\n }\n return this.wrap(request);\n }\n\n protected override delegate(request: HttpRequest<any>): Observable<HttpEvent<any>> {\n return this.backend.handle(request);\n }\n}\n\nexport function zoneWrappedInterceptorHandler(\n platformLocation: PlatformLocation, config: PlatformConfig) {\n return new ZoneClientBackend(\n new HttpInterceptorHandler(inject(HttpBackend), inject(EnvironmentInjector)),\n platformLocation, config);\n}\n\nexport const SERVER_HTTP_PROVIDERS: Provider[] = [\n {provide: XhrFactory, useClass: ServerXhr}, {\n provide: HttpHandler,\n useFactory: zoneWrappedInterceptorHandler,\n deps: [PlatformLocation, INITIAL_CONFIG]\n }\n];\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {DOCUMENT, LocationChangeEvent, LocationChangeListener, PlatformLocation, ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable, Optional} from '@angular/core';\nimport {Subject} from 'rxjs';\nimport * as url from 'url';\nimport {INITIAL_CONFIG, PlatformConfig} from './tokens';\n\nfunction parseUrl(urlStr: string) {\n const parsedUrl = url.parse(urlStr);\n return {\n hostname: parsedUrl.hostname || '',\n protocol: parsedUrl.protocol || '',\n port: parsedUrl.port || '',\n pathname: parsedUrl.pathname || '',\n search: parsedUrl.search || '',\n hash: parsedUrl.hash || '',\n };\n}\n\n/**\n * Server-side implementation of URL state. Implements `pathname`, `search`, and `hash`\n * but not the state stack.\n */\n@Injectable()\nexport class ServerPlatformLocation implements PlatformLocation {\n public readonly href: string = '/';\n public readonly hostname: string = '/';\n public readonly protocol: string = '/';\n public readonly port: string = '/';\n public readonly pathname: string = '/';\n public readonly search: string = '';\n public readonly hash: string = '';\n private _hashUpdate = new Subject<LocationChangeEvent>();\n\n constructor(\n @Inject(DOCUMENT) private _doc: any, @Optional() @Inject(INITIAL_CONFIG) _config: any) {\n const config = _config as PlatformConfig | null;\n if (!config) {\n return;\n }\n if (config.url) {\n const url = parseUrl(config.url);\n this.protocol = url.protocol;\n this.hostname = url.hostname;\n this.port = url.port;\n this.pathname = url.pathname;\n this.search = url.search;\n this.hash = url.hash;\n this.href = _doc.location.href;\n }\n if (config.useAbsoluteUrl) {\n if (!config.baseUrl) {\n throw new Error(`\"PlatformConfig.baseUrl\" must be set if \"useAbsoluteUrl\" is true`);\n }\n const url = parseUrl(config.baseUrl);\n this.protocol = url.protocol;\n this.hostname = url.hostname;\n this.port = url.port;\n }\n }\n\n getBaseHrefFromDOM(): string {\n return getDOM().getBaseHref(this._doc)!;\n }\n\n onPopState(fn: LocationChangeListener): VoidFunction {\n // No-op: a state stack is not implemented, so\n // no events will ever come.\n return () => {};\n }\n\n onHashChange(fn: LocationChangeListener): VoidFunction {\n const subscription = this._hashUpdate.subscribe(fn);\n return () => subscription.unsubscribe();\n }\n\n get url(): string {\n return `${this.pathname}${this.search}${this.hash}`;\n }\n\n private setHash(value: string, oldUrl: string) {\n if (this.hash === value) {\n // Don't fire events if the hash has not changed.\n return;\n }\n (this as {hash: string}).hash = value;\n const newUrl = this.url;\n scheduleMicroTask(\n () => this._hashUpdate.next(\n {type: 'hashchange', state: null, oldUrl, newUrl} as LocationChangeEvent));\n }\n\n replaceState(state: any, title: string, newUrl: string): void {\n const oldUrl = this.url;\n const parsedUrl = parseUrl(newUrl);\n (this as {pathname: string}).pathname = parsedUrl.pathname;\n (this as {search: string}).search = parsedUrl.search;\n this.setHash(parsedUrl.hash, oldUrl);\n }\n\n pushState(state: any, title: string, newUrl: string): void {\n this.replaceState(state, title, newUrl);\n }\n\n forward(): void {\n throw new Error('Not implemented');\n }\n\n back(): void {\n throw new Error('Not implemented');\n }\n\n // History API isn't available on server, therefore return undefined\n getState(): unknown {\n return undefined;\n }\n}\n\nexport function scheduleMicroTask(fn: Function) {\n Zone.current.scheduleMicroTask('scheduleMicrotask', fn);\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {DOCUMENT, ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable} from '@angular/core';\n\n@Injectable()\nexport class ServerEventManagerPlugin /* extends EventManagerPlugin which is private */ {\n constructor(@Inject(DOCUMENT) private doc: any) {}\n\n // Handle all events on the server.\n supports(eventName: string) {\n return true;\n }\n\n addEventListener(element: HTMLElement, eventName: string, handler: Function): Function {\n return getDOM().onAndCancel(element, eventName, handler);\n }\n\n /** @deprecated No longer being used in Ivy code. To be removed in version 14. */\n addGlobalEventListener(element: string, eventName: string, handler: Function): Function {\n const target: HTMLElement = getDOM().getGlobalEventTarget(this.doc, element);\n if (!target) {\n throw new Error(`Unsupported event target ${target} for event ${eventName}`);\n }\n return this.addEventListener(target, eventName, handler);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {DOCUMENT, ɵgetDOM as getDOM} from '@angular/common';\nimport {DomElementSchemaRegistry} from '@angular/compiler';\nimport {Inject, Injectable, NgZone, Renderer2, RendererFactory2, RendererStyleFlags2, RendererType2, ViewEncapsulation} from '@angular/core';\nimport {EventManager, ɵflattenStyles as flattenStyles, ɵNAMESPACE_URIS as NAMESPACE_URIS, ɵSharedStylesHost as SharedStylesHost, ɵshimContentAttribute as shimContentAttribute, ɵshimHostAttribute as shimHostAttribute} from '@angular/platform-browser';\n\nconst EMPTY_ARRAY: any[] = [];\n\nconst DEFAULT_SCHEMA = new DomElementSchemaRegistry();\n\n@Injectable()\nexport class ServerRendererFactory2 implements RendererFactory2 {\n private rendererByCompId = new Map<string, Renderer2>();\n private defaultRenderer: Renderer2;\n private schema = DEFAULT_SCHEMA;\n\n constructor(\n private eventManager: EventManager, private ngZone: NgZone,\n @Inject(DOCUMENT) private document: any, private sharedStylesHost: SharedStylesHost) {\n this.defaultRenderer = new DefaultServerRenderer2(eventManager, document, ngZone, this.schema);\n }\n\n createRenderer(element: any, type: RendererType2|null): Renderer2 {\n if (!element || !type) {\n return this.defaultRenderer;\n }\n switch (type.encapsulation) {\n case ViewEncapsulation.Emulated: {\n let renderer = this.rendererByCompId.get(type.id);\n if (!renderer) {\n renderer = new EmulatedEncapsulationServerRenderer2(\n this.eventManager, this.document, this.ngZone, this.sharedStylesHost, this.schema,\n type);\n this.rendererByCompId.set(type.id, renderer);\n }\n (<EmulatedEncapsulationServerRenderer2>renderer).applyToHost(element);\n return renderer;\n }\n default: {\n if (!this.rendererByCompId.has(type.id)) {\n const styles = flattenStyles(type.id, type.styles, []);\n this.sharedStylesHost.addStyles(styles);\n this.rendererByCompId.set(type.id, this.defaultRenderer);\n }\n return this.defaultRenderer;\n }\n }\n }\n\n begin() {}\n end() {}\n}\n\nclass DefaultServerRenderer2 implements Renderer2 {\n data: {[key: string]: any} = Object.create(null);\n\n constructor(\n private eventManager: EventManager, protected document: any, private ngZone: NgZone,\n private schema: DomElementSchemaRegistry) {}\n\n destroy(): void {}\n\n destroyNode = null;\n\n createElement(name: string, namespace?: string): any {\n if (namespace) {\n const doc = this.document || getDOM().getDefaultDocument();\n return doc.createElementNS(NAMESPACE_URIS[namespace], name);\n }\n\n return getDOM().createElement(name, this.document);\n }\n\n createComment(value: string): any {\n return getDOM().getDefaultDocument().createComment(value);\n }\n\n createText(value: string): any {\n const doc = getDOM().getDefaultDocument();\n return doc.createTextNode(value);\n }\n\n appendChild(parent: any, newChild: any): void {\n const targetParent = isTemplateNode(parent) ? parent.content : parent;\n targetParent.appendChild(newChild);\n }\n\n insertBefore(parent: any, newChild: any, refChild: any): void {\n if (parent) {\n const targetParent = isTemplateNode(parent) ? parent.content : parent;\n targetParent.insertBefore(newChild, refChild);\n }\n }\n\n removeChild(parent: any, oldChild: any): void {\n if (parent) {\n parent.removeChild(oldChild);\n }\n }\n\n selectRootElement(selectorOrNode: string|any, preserveContent?: boolean): any {\n const el = typeof selectorOrNode === 'string' ? this.document.querySelector(selectorOrNode) :\n selectorOrNode;\n if (!el) {\n throw new Error(`The selector \"${selectorOrNode}\" did not match any elements`);\n }\n if (!preserveContent) {\n while (el.firstChild) {\n el.removeChild(el.firstChild);\n }\n }\n return el;\n }\n\n parentNode(node: any): any {\n return node.parentNode;\n }\n\n nextSibling(node: any): any {\n return node.nextSibling;\n }\n\n setAttribute(el: any, name: string, value: string, namespace?: string): void {\n if (namespace) {\n el.setAttributeNS(NAMESPACE_URIS[namespace], namespace + ':' + name, value);\n } else {\n el.setAttribute(name, value);\n }\n }\n\n removeAttribute(el: any, name: string, namespace?: string): void {\n if (namespace) {\n el.removeAttributeNS(NAMESPACE_URIS[namespace], name);\n } else {\n el.removeAttribute(name);\n }\n }\n\n addClass(el: any, name: string): void {\n el.classList.add(name);\n }\n\n removeClass(el: any, name: string): void {\n el.classList.remove(name);\n }\n\n setStyle(el: any, style: string, value: any, flags: RendererStyleFlags2): void {\n style = style.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n value = value == null ? '' : `${value}`.trim();\n const styleMap = _readStyleAttribute(el);\n if (flags & RendererStyleFlags2.Important) {\n value += ' !important';\n }\n styleMap[style] = value;\n _writeStyleAttribute(el, styleMap);\n }\n\n removeStyle(el: any, style: string, flags: RendererStyleFlags2): void {\n // IE requires '' instead of null\n // see https://github.com/angular/angular/issues/7916\n this.setStyle(el, style, '', flags);\n }\n\n // The value was validated already as a property binding, against the property name.\n // To know this value is safe to use as an attribute, the security context of the\n // attribute with the given name is checked against that security context of the\n // property.\n private _isSafeToReflectProperty(tagName: string, propertyName: string): boolean {\n return this.schema.securityContext(tagName, propertyName, true) ===\n this.schema.securityContext(tagName, propertyName, false);\n }\n\n setProperty(el: any, name: string, value: any): void {\n checkNoSyntheticProp(name, 'property');\n if (name === 'innerText') {\n // Domino does not support innerText. Just map it to textContent.\n el.textContent = value;\n }\n (<any>el)[name] = value;\n // Mirror property values for known HTML element properties in the attributes.\n // Skip `innerhtml` which is conservatively marked as an attribute for security\n // purposes but is not actually an attribute.\n const tagName = (el.tagName as string).toLowerCase();\n if (value != null && (typeof value === 'number' || typeof value == 'string') &&\n name.toLowerCase() !== 'innerhtml' && this.schema.hasElement(tagName, EMPTY_ARRAY) &&\n this.schema.hasProperty(tagName, name, EMPTY_ARRAY) &&\n this._isSafeToReflectProperty(tagName, name)) {\n this.setAttribute(el, name, value.toString());\n }\n }\n\n setValue(node: any, value: string): void {\n node.textContent = value;\n }\n\n listen(\n target: 'document'|'window'|'body'|any, eventName: string,\n callback: (event: any) => boolean): () => void {\n checkNoSyntheticProp(eventName, 'listener');\n if (typeof target === 'string') {\n return <() => void>this.eventManager.addGlobalEventListener(\n target, eventName, this.decoratePreventDefault(callback));\n }\n return <() => void>this.eventManager.addEventListener(\n target, eventName, this.decoratePreventDefault(callback)) as () => void;\n }\n\n private decoratePreventDefault(eventHandler: Function): Function {\n return (event: any) => {\n // Ivy uses `Function` as a special token that allows us to unwrap the function\n // so that it can be invoked programmatically by `DebugNode.triggerEventHandler`.\n if (event === Function) {\n return eventHandler;\n }\n\n // Run the event handler inside the ngZone because event handlers are not patched\n // by Zone on the server. This is required only for tests.\n const allowDefaultBehavior = this.ngZone.runGuarded(() => eventHandler(event));\n if (allowDefaultBehavior === false) {\n event.preventDefault();\n event.returnValue = false;\n }\n\n return undefined;\n };\n }\n}\n\nconst AT_CHARCODE = '@'.charCodeAt(0);\nfunction checkNoSyntheticProp(name: string, nameKind: string) {\n if (name.charCodeAt(0) === AT_CHARCODE) {\n throw new Error(`Unexpected synthetic ${nameKind} ${name} found. Please make sure that:\n - Either \\`BrowserAnimationsModule\\` or \\`NoopAnimationsModule\\` are imported in your application.\n - There is corresponding configuration for the animation named \\`${\n name}\\` defined in the \\`animations\\` field of the \\`@Component\\` decorator (see https://angular.io/api/core/Component#animations).`);\n }\n}\n\nfunction isTemplateNode(node: any): node is HTMLTemplateElement {\n return node.tagName === 'TEMPLATE' && node.content !== undefined;\n}\n\nclass EmulatedEncapsulationServerRenderer2 extends DefaultServerRenderer2 {\n private contentAttr: string;\n private hostAttr: string;\n\n constructor(\n eventManager: EventManager, document: any, ngZone: NgZone, sharedStylesHost: SharedStylesHost,\n schema: DomElementSchemaRegistry, private component: RendererType2) {\n super(eventManager, document, ngZone, schema);\n // Add a 's' prefix to style attributes to indicate server.\n const componentId = 's' + component.id;\n const styles = flattenStyles(componentId, component.styles, []);\n sharedStylesHost.addStyles(styles);\n\n this.contentAttr = shimContentAttribute(componentId);\n this.hostAttr = shimHostAttribute(componentId);\n }\n\n applyToHost(element: any) {\n super.setAttribute(element, this.hostAttr, '');\n }\n\n override createElement(parent: any, name: string): Element {\n const el = super.createElement(parent, name);\n super.setAttribute(el, this.contentAttr, '');\n return el;\n }\n}\n\nfunction _readStyleAttribute(element: any): {[name: string]: string} {\n const styleMap: {[name: string]: string} = {};\n const styleAttribute = element.getAttribute('style');\n if (styleAttribute) {\n const styleList = styleAttribute.split(/;+/g);\n for (let i = 0; i < styleList.length; i++) {\n const style = styleList[i].trim();\n if (style.length > 0) {\n const colonIndex = style.indexOf(':');\n if (colonIndex === -1) {\n throw new Error(`Invalid CSS style: ${style}`);\n }\n const name = style.slice(0, colonIndex).trim();\n styleMap[name] = style.slice(colonIndex + 1).trim();\n }\n }\n }\n return styleMap;\n}\n\nfunction _writeStyleAttribute(element: any, styleMap: {[name: string]: string}) {\n // We have to construct the `style` attribute ourselves, instead of going through\n // `element.style.setProperty` like the other renderers, because `setProperty` won't\n // write newer CSS properties that Domino doesn't know about like `clip-path`.\n let styleAttrValue = '';\n for (const key in styleMap) {\n const newValue = styleMap[key];\n if (newValue != null && newValue !== '') {\n styleAttrValue += key + ':' + newValue + ';';\n }\n }\n if (styleAttrValue) {\n element.setAttribute('style', styleAttrValue);\n } else {\n element.removeAttribute('style');\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {DOCUMENT, ɵgetDOM as getDOM} from '@angular/common';\nimport {Inject, Injectable, Optional} from '@angular/core';\nimport {ɵSharedStylesHost as SharedStylesHost, ɵTRANSITION_ID} from '@angular/platform-browser';\n\n@Injectable()\nexport class ServerStylesHost extends SharedStylesHost {\n private head: any = null;\n private _styleNodes = new Set<HTMLElement>();\n\n constructor(\n @Inject(DOCUMENT) private doc: any,\n @Optional() @Inject(ɵTRANSITION_ID) private transitionId: string) {\n super();\n this.head = doc.getElementsByTagName('head')[0];\n }\n\n private _addStyle(style: string): void {\n let adapter = getDOM();\n const el = adapter.createElement('style');\n el.textContent = style;\n if (!!this.transitionId) {\n el.setAttribute('ng-transition', this.transitionId);\n }\n this.head.appendChild(el);\n this._styleNodes.add(el);\n }\n\n override onStylesAdded(additions: Set<string>) {\n additions.forEach(style => this._addStyle(style));\n }\n\n ngOnDestroy() {\n this._styleNodes.forEach(styleNode => styleNode.remove());\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {DOCUMENT} from '@angular/common';\nimport {APP_ID, NgModule, Provider} from '@angular/core';\nimport {TransferState, ɵescapeHtml as escapeHtml} from '@angular/platform-browser';\n\nimport {BEFORE_APP_SERIALIZED} from './tokens';\n\nexport const TRANSFER_STATE_SERIALIZATION_PROVIDERS: Provider[] = [{\n provide: BEFORE_APP_SERIALIZED,\n useFactory: serializeTransferStateFactory,\n deps: [DOCUMENT, APP_ID, TransferState],\n multi: true,\n}];\n\nfunction serializeTransferStateFactory(doc: Document, appId: string, transferStore: TransferState) {\n return () => {\n // The `.toJSON` here causes the `onSerialize` callbacks to be called.\n // These callbacks can be used to provide the value for a given key.\n const content = transferStore.toJson();\n\n if (transferStore.isEmpty) {\n // The state is empty, nothing to transfer,\n // avoid creating an extra `<script>` tag in this case.\n return;\n }\n\n const script = doc.createElement('script');\n script.id = appId + '-state';\n script.setAttribute('type', 'application/json');\n script.textContent = escapeHtml(content);\n doc.body.appendChild(script);\n };\n}\n\n/**\n * NgModule to install on the server side while using the `TransferState` to transfer state from\n * server to client.\n *\n * Note: this module is not needed if the `renderApplication` function is used.\n * The `renderApplication` makes all providers from this module available in the application.\n *\n * @publicApi\n * @deprecated no longer needed, you can inject the `TransferState` in an app without providing\n * this module.\n */\n@NgModule({})\nexport class ServerTransferStateModule {\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ɵAnimationEngine} from '@angular/animations/browser';\nimport {DOCUMENT, PlatformLocation, ViewportScroller, ɵgetDOM as getDOM, ɵNullViewportScroller as NullViewportScroller, ɵPLATFORM_SERVER_ID as PLATFORM_SERVER_ID} from '@angular/common';\nimport {HttpClientModule} from '@angular/common/http';\nimport {createPlatformFactory, Injector, NgModule, NgZone, Optional, PLATFORM_ID, PLATFORM_INITIALIZER, platformCore, PlatformRef, Provider, RendererFactory2, StaticProvider, Testability, ɵALLOW_MULTIPLE_PLATFORMS as ALLOW_MULTIPLE_PLATFORMS, ɵsetDocument, ɵTESTABILITY as TESTABILITY} from '@angular/core';\nimport {BrowserModule, EVENT_MANAGER_PLUGINS, ɵSharedStylesHost as SharedStylesHost} from '@angular/platform-browser';\nimport {ɵplatformCoreDynamic as platformCoreDynamic} from '@angular/platform-browser-dynamic';\nimport {NoopAnimationsModule, ɵAnimationRendererFactory} from '@angular/platform-browser/animations';\n\nimport {DominoAdapter, parseDocument} from './domino_adapter';\nimport {SERVER_HTTP_PROVIDERS} from './http';\nimport {ServerPlatformLocation} from './location';\nimport {PlatformState} from './platform_state';\nimport {ServerEventManagerPlugin} from './server_events';\nimport {ServerRendererFactory2} from './server_renderer';\nimport {ServerStylesHost} from './styles_host';\nimport {INITIAL_CONFIG, PlatformConfig} from './tokens';\nimport {TRANSFER_STATE_SERIALIZATION_PROVIDERS} from './transfer_state';\n\nexport const INTERNAL_SERVER_PLATFORM_PROVIDERS: StaticProvider[] = [\n {provide: DOCUMENT, useFactory: _document, deps: [Injector]},\n {provide: PLATFORM_ID, useValue: PLATFORM_SERVER_ID},\n {provide: PLATFORM_INITIALIZER, useFactory: initDominoAdapter, multi: true, deps: [Injector]}, {\n provide: PlatformLocation,\n useClass: ServerPlatformLocation,\n deps: [DOCUMENT, [Optional, INITIAL_CONFIG]]\n },\n {provide: PlatformState, deps: [DOCUMENT]},\n // Add special provider that allows multiple instances of platformServer* to be created.\n {provide: ALLOW_MULTIPLE_PLATFORMS, useValue: true}\n];\n\nfunction initDominoAdapter(injector: Injector) {\n return () => {\n DominoAdapter.makeCurrent();\n };\n}\n\nexport function instantiateServerRendererFactory(\n renderer: RendererFactory2, engine: ɵAnimationEngine, zone: NgZone) {\n return new ɵAnimationRendererFactory(renderer, engine, zone);\n}\n\nexport const SERVER_RENDER_PROVIDERS: Provider[] = [\n ServerRendererFactory2,\n {\n provide: RendererFactory2,\n useFactory: instantiateServerRendererFactory,\n deps: [ServerRendererFactory2, ɵAnimationEngine, NgZone]\n },\n ServerStylesHost,\n {provide: SharedStylesHost, useExisting: ServerStylesHost},\n {provide: EVENT_MANAGER_PLUGINS, multi: true, useClass: ServerEventManagerPlugin},\n];\n\n/**\n * The ng module for the server.\n *\n * @publicApi\n */\n@NgModule({\n exports: [BrowserModule],\n imports: [HttpClientModule, NoopAnimationsModule],\n providers: [\n TRANSFER_STATE_SERIALIZATION_PROVIDERS,\n SERVER_RENDER_PROVIDERS,\n SERVER_HTTP_PROVIDERS,\n {provide: Testability, useValue: null}, // Keep for backwards-compatibility.\n {provide: TESTABILITY, useValue: null},\n {provide: ViewportScroller, useClass: NullViewportScroller},\n ],\n})\nexport class ServerModule {\n}\n\nfunction _document(injector: Injector) {\n const config: PlatformConfig|null = injector.get(INITIAL_CONFIG, null);\n let document: Document;\n if (config && config.document) {\n document = typeof config.document === 'string' ? parseDocument(config.document, config.url) :\n config.document;\n } else {\n document = getDOM().createHtmlDocument();\n }\n // Tell ivy about the global document\n ɵsetDocument(document);\n return document;\n}\n\n/**\n * @publicApi\n */\nexport const platformServer: (extraProviders?: StaticProvider[]|undefined) => PlatformRef =\n createPlatformFactory(platformCore, 'server', INTERNAL_SERVER_PLATFORM_PROVIDERS);\n\n/**\n * The server platform that supports the runtime compiler.\n *\n * @publicApi\n */\nexport const platformDynamicServer =\n createPlatformFactory(platformCoreDynamic, 'serverDynamic', INTERNAL_SERVER_PLATFORM_PROVIDERS);\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ApplicationRef, EnvironmentProviders, importProvidersFrom, InjectionToken, NgModuleFactory, NgModuleRef, PlatformRef, Provider, Renderer2, StaticProvider, Type, ɵinternalCreateApplication as internalCreateApplication, ɵisPromise} from '@angular/core';\nimport {BrowserModule, ɵTRANSITION_ID} from '@angular/platform-browser';\nimport {first} from 'rxjs/operators';\n\nimport {PlatformState} from './platform_state';\nimport {platformDynamicServer, platformServer, ServerModule} from './server';\nimport {BEFORE_APP_SERIALIZED, INITIAL_CONFIG} from './tokens';\nimport {TRANSFER_STATE_SERIALIZATION_PROVIDERS} from './transfer_state';\n\ninterface PlatformOptions {\n document?: string|Document;\n url?: string;\n platformProviders?: Provider[];\n}\n\nfunction _getPlatform(\n platformFactory: (extraProviders: StaticProvider[]) => PlatformRef,\n options: PlatformOptions): PlatformRef {\n const extraProviders = options.platformProviders ?? [];\n return platformFactory([\n {provide: INITIAL_CONFIG, useValue: {document: options.document, url: options.url}},\n extraProviders\n ]);\n}\n\n/**\n * Adds the `ng-server-context` attribute to host elements of all bootstrapped components\n * within a given application.\n */\nfunction appendServerContextInfo(serverContext: string, applicationRef: ApplicationRef) {\n applicationRef.components.forEach(componentRef => {\n const renderer = componentRef.injector.get(Renderer2);\n const element = componentRef.location.nativeElement;\n if (element) {\n renderer.setAttribute(element, 'ng-server-context', serverContext);\n }\n });\n}\n\nfunction _render<T>(\n platform: PlatformRef,\n bootstrapPromise: Promise<NgModuleRef<T>|ApplicationRef>): Promise<string> {\n return bootstrapPromise.then((moduleOrApplicationRef) => {\n const environmentInjector = moduleOrApplicationRef.injector;\n const transitionId = environmentInjector.get(ɵTRANSITION_ID, null);\n if (!transitionId) {\n throw new Error(\n `renderModule[Factory]() requires the use of BrowserModule.withServerTransition() to ensure\nthe server-rendered app can be properly bootstrapped into a client app.`);\n }\n const applicationRef: ApplicationRef = moduleOrApplicationRef instanceof ApplicationRef ?\n moduleOrApplicationRef :\n environmentInjector.get(ApplicationRef);\n const serverContext =\n sanitizeServerContext(environmentInjector.get(SERVER_CONTEXT, DEFAULT_SERVER_CONTEXT));\n return applicationRef.isStable.pipe((first((isStable: boolean) => isStable)))\n .toPromise()\n .then(() => {\n appendServerContextInfo(serverContext, applicationRef);\n\n const platformState = platform.injector.get(PlatformState);\n\n const asyncPromises: Promise<any>[] = [];\n\n // Run any BEFORE_APP_SERIALIZED callbacks just before rendering to string.\n const callbacks = environmentInjector.get(BEFORE_APP_SERIALIZED, null);\n\n if (callbacks) {\n for (const callback of callbacks) {\n try {\n const callbackResult = callback();\n if (ɵisPromise(callbackResult)) {\n // TODO: in TS3.7, callbackResult is void.\n asyncPromises.push(callbackResult as any);\n }\n\n } catch (e) {\n // Ignore exceptions.\n console.warn('Ignoring BEFORE_APP_SERIALIZED Exception: ', e);\n }\n }\n }\n\n const complete = () => {\n const output = platformState.renderToString();\n platform.destroy();\n return output;\n };\n\n if (asyncPromises.length === 0) {\n return complete();\n }\n\n return Promise\n .all(asyncPromises.map(asyncPromise => {\n return asyncPromise.catch(e => {\n console.warn('Ignoring BEFORE_APP_SERIALIZED Exception: ', e);\n });\n }))\n .then(complete);\n });\n });\n}\n\n/**\n * Specifies the value that should be used if no server context value has been provided.\n */\nconst DEFAULT_SERVER_CONTEXT = 'other';\n\n/**\n * An internal token that allows providing extra information about the server context\n * (e.g. whether SSR or SSG was used). The value is a string and characters other\n * than [a-zA-Z0-9\\-] are removed. See the default value in `DEFAULT_SERVER_CONTEXT` const.\n */\nexport const SERVER_CONTEXT = new InjectionToken<string>('SERVER_CONTEXT');\n\n/**\n * Sanitizes provided server context:\n * - removes all characters other than a-z, A-Z, 0-9 and `-`\n * - returns `other` if nothing is provided or the string is empty after sanitization\n */\nfunction sanitizeServerContext(serverContext: string): string {\n const context = serverContext.replace(/[^a-zA-Z0-9\\-]/g, '');\n return context.length > 0 ? context : DEFAULT_SERVER_CONTEXT;\n}\n\n/**\n * Bootstraps an application using provided NgModule and serializes the page content to string.\n *\n * @param moduleType A reference to an NgModule that should be used for bootstrap.\n * @param options Additional configuration for the render operation:\n * - `document` - the document of the page to render, either as an HTML string or\n * as a reference to the `document` instance.\n * - `url` - the URL for the current render request.\n * - `extraProviders` - set of platform level providers for the current render request.\n *\n * @publicApi\n */\nexport function renderModule<T>(moduleType: Type<T>, options: {\n document?: string|Document,\n url?: string,\n extraProviders?: StaticProvider[],\n}): Promise<string> {\n const {document, url, extraProviders: platformProviders} = options;\n const platform = _getPlatform(platformDynamicServer, {document, url, platformProviders});\n return _render(platform, platform.bootstrapModule(moduleType));\n}\n\n/**\n * Bootstraps an instance of an Angular application and renders it to a string.\n *\n * Note: the root component passed into this function *must* be a standalone one (should have the\n * `standalone: true` flag in the `@Component` decorator config).\n *\n * ```typescript\n * @Component({\n * standalone: true,\n * template: 'Hello world!'\n * })\n * class RootComponent {}\n *\n * const output: string = await renderApplication(RootComponent, {appId: 'server-app'});\n * ```\n *\n * @param rootComponent A reference to a Standalone Component that should be rendered.\n * @param options Additional configuration for the render operation:\n * - `appId` - a string identifier of this application. The appId is used to prefix all\n * server-generated stylings and state keys of the application in TransferState\n * use-cases.\n * - `document` - the document of the page to render, either as an HTML string or\n * as a reference to the `document` instance.\n * - `url` - the URL for the current render request.\n * - `providers` - set of application level providers for the current render request.\n * - `platformProviders` - the platform level providers for the current render request.\n *\n * @returns A Promise, that returns serialized (to a string) rendered page, once resolved.\n *\n * @publicApi\n * @developerPreview\n */\nexport function renderApplication<T>(rootComponent: Type<T>, options: {\n appId: string,\n document?: string|Document,\n url?: string,\n providers?: Array<Provider|EnvironmentProviders>,\n platformProviders?: Provider[],\n}): Promise<string> {\n const {document, url, platformProviders, appId} = options;\n const platform = _getPlatform(platformDynamicServer, {document, url, platformProviders});\n const appProviders = [\n importProvidersFrom(BrowserModule.withServerTransition({appId})),\n importProvidersFrom(ServerModule),\n ...TRANSFER_STATE_SERIALIZATION_PROVIDERS,\n ...(options.providers ?? []),\n ];\n return _render(platform, internalCreateApplication({rootComponent, appProviders}));\n}\n\n/**\n * Bootstraps an application using provided {@link NgModuleFactory} and serializes the page content\n * to string.\n *\n * @param moduleFactory An instance of the {@link NgModuleFactory} that should be used for\n * bootstrap.\n * @param options Additional configuration for the render operation:\n * - `document` - the document of the page to render, either as an HTML string or\n * as a reference to the `document` instance.\n * - `url` - the URL for the current render request.\n * - `extraProviders` - set of platform level providers for the current render request.\n *\n * @publicApi\n *\n * @deprecated\n * This symbol is no longer necessary as of Angular v13.\n * Use {@link renderModule} API instead.\n */\nexport function renderModuleFactory<T>(moduleFactory: NgModuleFactory<T>, options: {\n document?: string,\n url?: string,\n extraProviders?: StaticProvider[],\n}): Promise<string> {\n const {document, url, extraProviders: platformProviders} = options;\n const platform = _getPlatform(platformServer, {document, url, platformProviders});\n return _render(platform, platform.bootstrapModuleFactory(moduleFactory));\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport {setDomTypes as ɵsetDomTypes} from './domino_adapter';\nexport {INTERNAL_SERVER_PLATFORM_PROVIDERS as ɵINTERNAL_SERVER_PLATFORM_PROVIDERS, SERVER_RENDER_PROVIDERS as ɵSERVER_RENDER_PROVIDERS} from './server';\nexport {ServerRendererFactory2 as ɵServerRendererFactory2} from './server_renderer';\nexport {SERVER_CONTEXT as ɵSERVER_CONTEXT} from './utils';\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of the platform-server package.\n */\n\nimport {Version} from '@angular/core';\n\n/**\n * @publicApi\n */\nexport const VERSION = new Version('15.0.1');\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport {PlatformState} from './platform_state';\nexport {platformDynamicServer, platformServer, ServerModule} from './server';\nexport {BEFORE_APP_SERIALIZED, INITIAL_CONFIG, PlatformConfig} from './tokens';\nexport {ServerTransferStateModule} from './transfer_state';\nexport {renderApplication, renderModule, renderModuleFactory} from './utils';\n\nexport * from './private_export';\nexport {VERSION} from './version';\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/// <reference types=\"node\" />\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\nexport * from './src/platform-server';\n\n// This file only reexports content of the `src` folder. Keep it that way.\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n// This file is not used to build this module. It is only used during editing\n// by the TypeScript language service and during build for verification. `ngc`\n// replaces this file with production index.ts when it rewrites private symbol\n// names.\n\nexport * from './public_api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["BrowserDomAdapter","setRootDomAdapter","HttpInterceptorHandler","getDOM","flattenStyles","NAMESPACE_URIS","shimContentAttribute","shimHostAttribute","SharedStylesHost","escapeHtml","PLATFORM_SERVER_ID","ALLOW_MULTIPLE_PLATFORMS","TESTABILITY","NullViewportScroller","platformCoreDynamic","internalCreateApplication"],"mappings":"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"}
\No newline at end of file