languageServiceFactory->create($locale); $error = ''; $allLabels = []; if (!$this->translationDomainResolver->isValidDomainName($domain)) { // @todo check for unavailable domain name and deprecation state $error = 'throw new Error("Invalid domain name");'; } else { $allLabels = $languageService->getLabelsFromResource($domain); } $javaScriptModuleContents = implode("\n", [ 'import { LabelProvider } from "@typo3/backend/localization/label-provider.js";', $error, 'export default new LabelProvider(', ' ' . json_encode((object)$allLabels), ');', ]); $lifetime = 3600 * 24 * 365; return $this->responseFactory->createResponse() ->withHeader('Content-Type', 'text/javascript') ->withHeader('Content-Length', (string)strlen($javaScriptModuleContents)) ->withHeader('Expires', gmdate('D, d M Y H:i:s T', (min($GLOBALS['EXEC_TIME'] + $lifetime, PHP_INT_MAX)))) ->withHeader('Cache-Control', 'private, max-age=' . $lifetime) ->withBody( $this->streamFactory->createStream($javaScriptModuleContents) ); } }