@module-federation/playground 0.0.4 → 0.1.0
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/dist/cjs/index.js +6 -6
- package/dist/esm/index.mjs +6 -6
- package/dist/mf/{560.js → 215.js} +2 -2
- package/dist/mf/{952.js → 29.js} +2 -2
- package/dist/mf/{453.js → 568.js} +2 -2
- package/dist/mf/{24.js → 897.js} +2 -2
- package/dist/mf/__federation_expose_default_export.js +2 -2
- package/dist/mf/__federation_expose_demo.js +1 -1
- package/dist/mf/index.js +7 -7
- package/dist/mf/mf-manifest.json +6 -6
- package/dist/mf/mf-stats.json +6 -6
- package/dist/mf/remoteEntry.js +6 -6
- package/dist/mf/ssr/__federation_expose_default_exportmf_playground.js +1 -1
- package/dist/mf/ssr/index.js +5 -5
- package/dist/mf/ssr/mf-manifest.json +2 -2
- package/dist/mf/ssr/mf-stats.json +2 -2
- package/dist/mf/ssr/remoteEntry.js +5 -5
- package/dist/types/generated/bridgeRuntimeFiles.d.ts +6 -6
- package/package.json +4 -4
- /package/dist/mf/{560.js.LICENSE.txt → 215.js.LICENSE.txt} +0 -0
- /package/dist/mf/{952.js.LICENSE.txt → 29.js.LICENSE.txt} +0 -0
- /package/dist/mf/{453.js.LICENSE.txt → 568.js.LICENSE.txt} +0 -0
- /package/dist/mf/{24.js.LICENSE.txt → 897.js.LICENSE.txt} +0 -0
|
@@ -378,7 +378,7 @@ Projects::
|
|
|
378
378
|
`;let counter=0;const addProjectInfo=project=>{msg+=`
|
|
379
379
|
Project '${project.projectName}' (${ProjectKind[project.projectKind]}) ${counter}
|
|
380
380
|
`;msg+=project.filesToString(true);msg+="\n-----------------------------------------------\n";counter++};this.projectService.externalProjects.forEach(addProjectInfo);this.projectService.configuredProjects.forEach(addProjectInfo);this.projectService.inferredProjects.forEach(addProjectInfo)}}this.logger.msg(msg,"Err")}send(msg){if("event"===msg.type&&!this.canUseEvents){if(this.logger.hasLevel(3))this.logger.info(`Session does not support events: ignored event: ${stringifyIndented(msg)}`);return}this.writeMessage(msg)}writeMessage(msg){const msgText=formatMessage2(msg,this.logger,this.byteLength,this.host.newLine);this.host.write(msgText)}event(body,eventName){this.send(toEvent(eventName,body))}doOutput(info,cmdName,reqSeq,success,performanceData,message){const res={seq:0,type:"response",command:cmdName,request_seq:reqSeq,success,performanceData:performanceData&&toProtocolPerformanceData(performanceData)};if(success){let metadata;if(isArray(info)){res.body=info;metadata=info.metadata;delete info.metadata}else if("object"==typeof info)if(info.metadata){const{metadata:infoMetadata,...body}=info;res.body=body;metadata=infoMetadata}else res.body=info;else res.body=info;if(metadata)res.metadata=metadata}else Debug.assert(void 0===info);if(message)res.message=message;this.send(res)}semanticCheck(file,project){var _a,_b;const diagnosticsStartTime=timestamp();null==(_a=tracing)||_a.push(tracing.Phase.Session,"semanticCheck",{file,configFilePath:project.canonicalConfigFilePath});const diags=isDeclarationFileInJSOnlyNonConfiguredProject(project,file)?emptyArray2:project.getLanguageService().getSemanticDiagnostics(file).filter(d=>!!d.file);this.sendDiagnosticsEvent(file,project,diags,"semanticDiag",diagnosticsStartTime);null==(_b=tracing)||_b.pop()}syntacticCheck(file,project){var _a,_b;const diagnosticsStartTime=timestamp();null==(_a=tracing)||_a.push(tracing.Phase.Session,"syntacticCheck",{file,configFilePath:project.canonicalConfigFilePath});this.sendDiagnosticsEvent(file,project,project.getLanguageService().getSyntacticDiagnostics(file),"syntaxDiag",diagnosticsStartTime);null==(_b=tracing)||_b.pop()}suggestionCheck(file,project){var _a,_b;const diagnosticsStartTime=timestamp();null==(_a=tracing)||_a.push(tracing.Phase.Session,"suggestionCheck",{file,configFilePath:project.canonicalConfigFilePath});this.sendDiagnosticsEvent(file,project,project.getLanguageService().getSuggestionDiagnostics(file),"suggestionDiag",diagnosticsStartTime);null==(_b=tracing)||_b.pop()}regionSemanticCheck(file,project,ranges){var _a,_b,_c;const diagnosticsStartTime=timestamp();null==(_a=tracing)||_a.push(tracing.Phase.Session,"regionSemanticCheck",{file,configFilePath:project.canonicalConfigFilePath});let diagnosticsResult;if(!this.shouldDoRegionCheck(file)||!(diagnosticsResult=project.getLanguageService().getRegionSemanticDiagnostics(file,ranges)))return void(null==(_b=tracing)||_b.pop());this.sendDiagnosticsEvent(file,project,diagnosticsResult.diagnostics,"regionSemanticDiag",diagnosticsStartTime,diagnosticsResult.spans);null==(_c=tracing)||_c.pop()}shouldDoRegionCheck(file){var _a;const lineCount=null==(_a=this.projectService.getScriptInfoForNormalizedPath(file))?void 0:_a.textStorage.getLineInfo().getLineCount();return!!(lineCount&&lineCount>=this.regionDiagLineCountThreshold)}sendDiagnosticsEvent(file,project,diagnostics,kind,diagnosticsStartTime,spans){try{const scriptInfo=Debug.checkDefined(project.getScriptInfo(file));const duration=timestamp()-diagnosticsStartTime;const body={file,diagnostics:diagnostics.map(diag2=>formatDiag(file,project,diag2)),spans:null==spans?void 0:spans.map(span=>toProtocolTextSpan(span,scriptInfo))};this.event(body,kind);this.addDiagnosticsPerformanceData(file,kind,duration)}catch(err){this.logError(err,kind)}}updateErrorCheck(next,checkList,ms,requireOpen=true){if(0===checkList.length)return;Debug.assert(!this.suppressDiagnosticEvents);const seq=this.changeSeq;const followMs=Math.min(ms,200);let index=0;const goNext=()=>{index++;if(checkList.length>index)return next.delay("checkOne",followMs,checkOne)};const doSemanticCheck=(fileName,project)=>{this.semanticCheck(fileName,project);if(this.changeSeq!==seq)return;if(this.getPreferences(fileName).disableSuggestions)return goNext();next.immediate("suggestionCheck",()=>{this.suggestionCheck(fileName,project);goNext()})};const checkOne=()=>{if(this.changeSeq!==seq)return;let ranges;let item=checkList[index];if(isString(item))item=this.toPendingErrorCheck(item);else if("ranges"in item){ranges=item.ranges;item=this.toPendingErrorCheck(item.file)}if(!item)return goNext();const{fileName,project}=item;updateProjectIfDirty(project);if(!project.containsFile(fileName,requireOpen))return;this.syntacticCheck(fileName,project);if(this.changeSeq!==seq)return;if(0!==project.projectService.serverMode)return goNext();if(ranges)return next.immediate("regionSemanticCheck",()=>{const scriptInfo=this.projectService.getScriptInfoForNormalizedPath(fileName);if(scriptInfo)this.regionSemanticCheck(fileName,project,ranges.map(range=>this.getRange({file:fileName,...range},scriptInfo)));if(this.changeSeq!==seq)return;next.immediate("semanticCheck",()=>doSemanticCheck(fileName,project))});next.immediate("semanticCheck",()=>doSemanticCheck(fileName,project))};if(checkList.length>index&&this.changeSeq===seq)next.delay("checkOne",ms,checkOne)}cleanProjects(caption,projects){if(!projects)return;this.logger.info(`cleaning ${caption}`);for(const p of projects){p.getLanguageService(false).cleanupSemanticCache();p.cleanupProgram()}}cleanup(){this.cleanProjects("inferred projects",this.projectService.inferredProjects);this.cleanProjects("configured projects",arrayFrom(this.projectService.configuredProjects.values()));this.cleanProjects("external projects",this.projectService.externalProjects);if(this.host.gc){this.logger.info("host.gc()");this.host.gc()}}getEncodedSyntacticClassifications(args){const{file,languageService}=this.getFileAndLanguageServiceForSyntacticOperation(args);return languageService.getEncodedSyntacticClassifications(file,args)}getEncodedSemanticClassifications(args){const{file,project}=this.getFileAndProject(args);const format="2020"===args.format?"2020":"original";return project.getLanguageService().getEncodedSemanticClassifications(file,args,format)}getProject(projectFileName){return void 0===projectFileName?void 0:this.projectService.findProject(projectFileName)}getConfigFileAndProject(args){const project=this.getProject(args.projectFileName);const file=toNormalizedPath(args.file);return{configFile:project&&project.hasConfigFile(file)?file:void 0,project}}getConfigFileDiagnostics(configFile,project,includeLinePosition){const projectErrors=project.getAllProjectErrors();const optionsErrors=project.getLanguageService().getCompilerOptionsDiagnostics();const diagnosticsForConfigFile=filter(concatenate(projectErrors,optionsErrors),diagnostic=>!!diagnostic.file&&diagnostic.file.fileName===configFile);return includeLinePosition?this.convertToDiagnosticsWithLinePositionFromDiagnosticFile(diagnosticsForConfigFile):map(diagnosticsForConfigFile,diagnostic=>formatDiagnosticToProtocol(diagnostic,false))}convertToDiagnosticsWithLinePositionFromDiagnosticFile(diagnostics){return diagnostics.map(d=>({message:flattenDiagnosticMessageText(d.messageText,this.host.newLine),start:d.start,length:d.length,category:diagnosticCategoryName(d),code:d.code,source:d.source,startLocation:d.file&&convertToLocation(getLineAndCharacterOfPosition(d.file,d.start)),endLocation:d.file&&convertToLocation(getLineAndCharacterOfPosition(d.file,d.start+d.length)),reportsUnnecessary:d.reportsUnnecessary,reportsDeprecated:d.reportsDeprecated,relatedInformation:map(d.relatedInformation,formatRelatedInformation)}))}getCompilerOptionsDiagnostics(args){const project=this.getProject(args.projectFileName);return this.convertToDiagnosticsWithLinePosition(filter(project.getLanguageService().getCompilerOptionsDiagnostics(),diagnostic=>!diagnostic.file),void 0)}convertToDiagnosticsWithLinePosition(diagnostics,scriptInfo){return diagnostics.map(d=>({message:flattenDiagnosticMessageText(d.messageText,this.host.newLine),start:d.start,length:d.length,category:diagnosticCategoryName(d),code:d.code,source:d.source,startLocation:scriptInfo&&scriptInfo.positionToLineOffset(d.start),endLocation:scriptInfo&&scriptInfo.positionToLineOffset(d.start+d.length),reportsUnnecessary:d.reportsUnnecessary,reportsDeprecated:d.reportsDeprecated,relatedInformation:map(d.relatedInformation,formatRelatedInformation)}))}getDiagnosticsWorker(args,isSemantic,selector,includeLinePosition){const{project,file}=this.getFileAndProject(args);if(isSemantic&&isDeclarationFileInJSOnlyNonConfiguredProject(project,file))return emptyArray2;const scriptInfo=project.getScriptInfoForNormalizedPath(file);const diagnostics=selector(project,file);return includeLinePosition?this.convertToDiagnosticsWithLinePosition(diagnostics,scriptInfo):diagnostics.map(d=>formatDiag(file,project,d))}getDefinition(args,simplifiedResult){const{file,project}=this.getFileAndProject(args);const position=this.getPositionInFile(args,file);const definitions=this.mapDefinitionInfoLocations(project.getLanguageService().getDefinitionAtPosition(file,position)||emptyArray2,project);return simplifiedResult?this.mapDefinitionInfo(definitions,project):definitions.map(_Session.mapToOriginalLocation)}mapDefinitionInfoLocations(definitions,project){return definitions.map(info=>{const newDocumentSpan=getMappedDocumentSpanForProject(info,project);return newDocumentSpan?{...newDocumentSpan,containerKind:info.containerKind,containerName:info.containerName,kind:info.kind,name:info.name,failedAliasResolution:info.failedAliasResolution,...info.unverified&&{unverified:info.unverified}}:info})}getDefinitionAndBoundSpan(args,simplifiedResult){const{file,project}=this.getFileAndProject(args);const position=this.getPositionInFile(args,file);const scriptInfo=Debug.checkDefined(project.getScriptInfo(file));const unmappedDefinitionAndBoundSpan=project.getLanguageService().getDefinitionAndBoundSpan(file,position);if(!unmappedDefinitionAndBoundSpan||!unmappedDefinitionAndBoundSpan.definitions)return{definitions:emptyArray2,textSpan:void 0};const definitions=this.mapDefinitionInfoLocations(unmappedDefinitionAndBoundSpan.definitions,project);const{textSpan}=unmappedDefinitionAndBoundSpan;if(simplifiedResult)return{definitions:this.mapDefinitionInfo(definitions,project),textSpan:toProtocolTextSpan(textSpan,scriptInfo)};return{definitions:definitions.map(_Session.mapToOriginalLocation),textSpan}}findSourceDefinition(args){var _a;const{file,project}=this.getFileAndProject(args);const position=this.getPositionInFile(args,file);const unmappedDefinitions=project.getLanguageService().getDefinitionAtPosition(file,position);let definitions=this.mapDefinitionInfoLocations(unmappedDefinitions||emptyArray2,project).slice();const needsJsResolution=0===this.projectService.serverMode&&(!some(definitions,d=>toNormalizedPath(d.fileName)!==file&&!d.isAmbient)||some(definitions,d=>!!d.failedAliasResolution));if(needsJsResolution){const definitionSet=createSet(d=>d.textSpan.start,getDocumentSpansEqualityComparer(this.host.useCaseSensitiveFileNames));null==definitions||definitions.forEach(d=>definitionSet.add(d));const noDtsProject=project.getNoDtsResolutionProject(file);const ls=noDtsProject.getLanguageService();const jsDefinitions=null==(_a=ls.getDefinitionAtPosition(file,position,true,false))?void 0:_a.filter(d=>toNormalizedPath(d.fileName)!==file);if(some(jsDefinitions))for(const jsDefinition of jsDefinitions){if(jsDefinition.unverified){const refined=tryRefineDefinition(jsDefinition,project.getLanguageService().getProgram(),ls.getProgram());if(some(refined)){for(const def of refined)definitionSet.add(def);continue}}definitionSet.add(jsDefinition)}else{const ambientCandidates=definitions.filter(d=>toNormalizedPath(d.fileName)!==file&&d.isAmbient);for(const candidate of some(ambientCandidates)?ambientCandidates:getAmbientCandidatesByClimbingAccessChain()){const fileNameToSearch=findImplementationFileFromDtsFileName(candidate.fileName,file,noDtsProject);if(!fileNameToSearch)continue;const info=this.projectService.getOrCreateScriptInfoNotOpenedByClient(fileNameToSearch,noDtsProject.currentDirectory,noDtsProject.directoryStructureHost,false);if(!info)continue;if(!noDtsProject.containsScriptInfo(info)){noDtsProject.addRoot(info);noDtsProject.updateGraph()}const noDtsProgram=ls.getProgram();const fileToSearch=Debug.checkDefined(noDtsProgram.getSourceFile(fileNameToSearch));for(const match of searchForDeclaration(candidate.name,fileToSearch,noDtsProgram))definitionSet.add(match)}}definitions=arrayFrom(definitionSet.values())}definitions=definitions.filter(d=>!d.isAmbient&&!d.failedAliasResolution);return this.mapDefinitionInfo(definitions,project);function findImplementationFileFromDtsFileName(fileName,resolveFromFile,auxiliaryProject){var _a2,_b,_c;const nodeModulesPathParts=getNodeModulePathParts(fileName);if(nodeModulesPathParts&&fileName.lastIndexOf(nodeModulesPathPart)===nodeModulesPathParts.topLevelNodeModulesIndex){const packageDirectory=fileName.substring(0,nodeModulesPathParts.packageRootIndex);const packageJsonCache=null==(_a2=project.getModuleResolutionCache())?void 0:_a2.getPackageJsonInfoCache();const compilerOptions=project.getCompilationSettings();const packageJson=getPackageScopeForPath(getNormalizedAbsolutePath(packageDirectory,project.getCurrentDirectory()),getTemporaryModuleResolutionState(packageJsonCache,project,compilerOptions));if(!packageJson)return;const entrypoints=getEntrypointsFromPackageJsonInfo(packageJson,{moduleResolution:2},project,project.getModuleResolutionCache());const packageNamePathPart=fileName.substring(nodeModulesPathParts.topLevelPackageNameIndex+1,nodeModulesPathParts.packageRootIndex);const packageName=getPackageNameFromTypesPackageName(unmangleScopedPackageName(packageNamePathPart));const path=project.toPath(fileName);if(entrypoints&&some(entrypoints,e=>project.toPath(e)===path))return null==(_b=auxiliaryProject.resolutionCache.resolveSingleModuleNameWithoutWatching(packageName,resolveFromFile).resolvedModule)?void 0:_b.resolvedFileName;{const pathToFileInPackage=fileName.substring(nodeModulesPathParts.packageRootIndex+1);const specifier=`${packageName}/${removeFileExtension(pathToFileInPackage)}`;return null==(_c=auxiliaryProject.resolutionCache.resolveSingleModuleNameWithoutWatching(specifier,resolveFromFile).resolvedModule)?void 0:_c.resolvedFileName}}}function getAmbientCandidatesByClimbingAccessChain(){const ls=project.getLanguageService();const program=ls.getProgram();const initialNode=getTouchingPropertyName(program.getSourceFile(file),position);if((isStringLiteralLike(initialNode)||isIdentifier(initialNode))&&isAccessExpression(initialNode.parent))return forEachNameInAccessChainWalkingLeft(initialNode,nameInChain=>{var _a2;if(nameInChain===initialNode)return;const candidates=null==(_a2=ls.getDefinitionAtPosition(file,nameInChain.getStart(),true,false))?void 0:_a2.filter(d=>toNormalizedPath(d.fileName)!==file&&d.isAmbient).map(d=>({fileName:d.fileName,name:getTextOfIdentifierOrLiteral(initialNode)}));if(some(candidates))return candidates})||emptyArray2;return emptyArray2}function tryRefineDefinition(definition,program,noDtsProgram){var _a2;const fileToSearch=noDtsProgram.getSourceFile(definition.fileName);if(!fileToSearch)return;const initialNode=getTouchingPropertyName(program.getSourceFile(file),position);const symbol=program.getTypeChecker().getSymbolAtLocation(initialNode);const importSpecifier=symbol&&getDeclarationOfKind(symbol,277);if(!importSpecifier)return;const nameToSearch=(null==(_a2=importSpecifier.propertyName)?void 0:_a2.text)||importSpecifier.name.text;return searchForDeclaration(nameToSearch,fileToSearch,noDtsProgram)}function searchForDeclaration(declarationName,fileToSearch,noDtsProgram){const matches=ts_FindAllReferences_exports.Core.getTopMostDeclarationNamesInFile(declarationName,fileToSearch);return mapDefined(matches,match=>{const symbol=noDtsProgram.getTypeChecker().getSymbolAtLocation(match);const decl=getDeclarationFromName(match);if(symbol&&decl)return ts_GoToDefinition_exports.createDefinitionInfo(decl,noDtsProgram.getTypeChecker(),symbol,decl,true)})}}getEmitOutput(args){const{file,project}=this.getFileAndProject(args);if(!project.shouldEmitFile(project.getScriptInfo(file)))return{emitSkipped:true,outputFiles:[],diagnostics:[]};const result=project.getLanguageService().getEmitOutput(file);return args.richResponse?{...result,diagnostics:args.includeLinePosition?this.convertToDiagnosticsWithLinePositionFromDiagnosticFile(result.diagnostics):result.diagnostics.map(d=>formatDiagnosticToProtocol(d,true))}:result}mapJSDocTagInfo(tags,project,richResponse){return tags?tags.map(tag=>{var _a;return{...tag,text:richResponse?this.mapDisplayParts(tag.text,project):null==(_a=tag.text)?void 0:_a.map(part=>part.text).join("")}}):[]}mapDisplayParts(parts,project){if(!parts)return[];return parts.map(part=>"linkName"!==part.kind?part:{...part,target:this.toFileSpan(part.target.fileName,part.target.textSpan,project)})}mapSignatureHelpItems(items,project,richResponse){return items.map(item=>({...item,documentation:this.mapDisplayParts(item.documentation,project),parameters:item.parameters.map(p=>({...p,documentation:this.mapDisplayParts(p.documentation,project)})),tags:this.mapJSDocTagInfo(item.tags,project,richResponse)}))}mapDefinitionInfo(definitions,project){return definitions.map(def=>({...this.toFileSpanWithContext(def.fileName,def.textSpan,def.contextSpan,project),...def.unverified&&{unverified:def.unverified}}))}static mapToOriginalLocation(def){if(def.originalFileName){Debug.assert(void 0!==def.originalTextSpan,"originalTextSpan should be present if originalFileName is");return{...def,fileName:def.originalFileName,textSpan:def.originalTextSpan,targetFileName:def.fileName,targetTextSpan:def.textSpan,contextSpan:def.originalContextSpan,targetContextSpan:def.contextSpan}}return def}toFileSpan(fileName,textSpan,project){const ls=project.getLanguageService();const start=ls.toLineColumnOffset(fileName,textSpan.start);const end=ls.toLineColumnOffset(fileName,textSpanEnd(textSpan));return{file:fileName,start:{line:start.line+1,offset:start.character+1},end:{line:end.line+1,offset:end.character+1}}}toFileSpanWithContext(fileName,textSpan,contextSpan,project){const fileSpan=this.toFileSpan(fileName,textSpan,project);const context=contextSpan&&this.toFileSpan(fileName,contextSpan,project);return context?{...fileSpan,contextStart:context.start,contextEnd:context.end}:fileSpan}getTypeDefinition(args){const{file,project}=this.getFileAndProject(args);const position=this.getPositionInFile(args,file);const definitions=this.mapDefinitionInfoLocations(project.getLanguageService().getTypeDefinitionAtPosition(file,position)||emptyArray2,project);return this.mapDefinitionInfo(definitions,project)}mapImplementationLocations(implementations,project){return implementations.map(info=>{const newDocumentSpan=getMappedDocumentSpanForProject(info,project);return newDocumentSpan?{...newDocumentSpan,kind:info.kind,displayParts:info.displayParts}:info})}getImplementation(args,simplifiedResult){const{file,project}=this.getFileAndProject(args);const position=this.getPositionInFile(args,file);const implementations=this.mapImplementationLocations(project.getLanguageService().getImplementationAtPosition(file,position)||emptyArray2,project);return simplifiedResult?implementations.map(({fileName,textSpan,contextSpan})=>this.toFileSpanWithContext(fileName,textSpan,contextSpan,project)):implementations.map(_Session.mapToOriginalLocation)}getSyntacticDiagnosticsSync(args){const{configFile}=this.getConfigFileAndProject(args);if(configFile)return emptyArray2;return this.getDiagnosticsWorker(args,false,(project,file)=>project.getLanguageService().getSyntacticDiagnostics(file),!!args.includeLinePosition)}getSemanticDiagnosticsSync(args){const{configFile,project}=this.getConfigFileAndProject(args);if(configFile)return this.getConfigFileDiagnostics(configFile,project,!!args.includeLinePosition);return this.getDiagnosticsWorker(args,true,(project2,file)=>project2.getLanguageService().getSemanticDiagnostics(file).filter(d=>!!d.file),!!args.includeLinePosition)}getSuggestionDiagnosticsSync(args){const{configFile}=this.getConfigFileAndProject(args);if(configFile)return emptyArray2;return this.getDiagnosticsWorker(args,true,(project,file)=>project.getLanguageService().getSuggestionDiagnostics(file),!!args.includeLinePosition)}getJsxClosingTag(args){const{file,languageService}=this.getFileAndLanguageServiceForSyntacticOperation(args);const position=this.getPositionInFile(args,file);const tag=languageService.getJsxClosingTagAtPosition(file,position);return void 0===tag?void 0:{newText:tag.newText,caretOffset:0}}getLinkedEditingRange(args){const{file,languageService}=this.getFileAndLanguageServiceForSyntacticOperation(args);const position=this.getPositionInFile(args,file);const linkedEditInfo=languageService.getLinkedEditingRangeAtPosition(file,position);const scriptInfo=this.projectService.getScriptInfoForNormalizedPath(file);if(void 0===scriptInfo||void 0===linkedEditInfo)return;return convertLinkedEditInfoToRanges(linkedEditInfo,scriptInfo)}getDocumentHighlights(args,simplifiedResult){const{file,project}=this.getFileAndProject(args);const position=this.getPositionInFile(args,file);const documentHighlights=project.getLanguageService().getDocumentHighlights(file,position,args.filesToSearch);if(!documentHighlights)return emptyArray2;if(!simplifiedResult)return documentHighlights;return documentHighlights.map(({fileName,highlightSpans})=>{const scriptInfo=project.getScriptInfo(fileName);return{file:fileName,highlightSpans:highlightSpans.map(({textSpan,kind,contextSpan})=>({...toProtocolTextSpanWithContext(textSpan,contextSpan,scriptInfo),kind}))}})}provideInlayHints(args){const{file,project}=this.getFileAndProject(args);const scriptInfo=this.projectService.getScriptInfoForNormalizedPath(file);const hints=project.getLanguageService().provideInlayHints(file,args,this.getPreferences(file));return hints.map(hint=>{const{position,displayParts}=hint;return{...hint,position:scriptInfo.positionToLineOffset(position),displayParts:null==displayParts?void 0:displayParts.map(({text,span,file:file2})=>{if(!span)return{text};{Debug.assertIsDefined(file2,"Target file should be defined together with its span.");const scriptInfo2=this.projectService.getScriptInfo(file2);return{text,span:{start:scriptInfo2.positionToLineOffset(span.start),end:scriptInfo2.positionToLineOffset(span.start+span.length),file:file2}}}})}})}mapCode(args){var _a;const formatOptions=this.getHostFormatOptions();const preferences=this.getHostPreferences();const{file,languageService}=this.getFileAndLanguageServiceForSyntacticOperation(args);const scriptInfo=this.projectService.getScriptInfoForNormalizedPath(file);const focusLocations=null==(_a=args.mapping.focusLocations)?void 0:_a.map(spans=>spans.map(loc=>{const start=scriptInfo.lineOffsetToPosition(loc.start.line,loc.start.offset);const end=scriptInfo.lineOffsetToPosition(loc.end.line,loc.end.offset);return{start,length:end-start}}));const changes=languageService.mapCode(file,args.mapping.contents,focusLocations,formatOptions,preferences);return this.mapTextChangesToCodeEdits(changes)}getCopilotRelatedInfo(){return{relatedFiles:[]}}setCompilerOptionsForInferredProjects(args){this.projectService.setCompilerOptionsForInferredProjects(args.options,args.projectRootPath)}getProjectInfo(args){return this.getProjectInfoWorker(args.file,args.projectFileName,args.needFileNameList,args.needDefaultConfiguredProjectInfo,false)}getProjectInfoWorker(uncheckedFileName,projectFileName,needFileNameList,needDefaultConfiguredProjectInfo,excludeConfigFiles){const{project}=this.getFileAndProjectWorker(uncheckedFileName,projectFileName);updateProjectIfDirty(project);const projectInfo={configFileName:project.getProjectName(),languageServiceDisabled:!project.languageServiceEnabled,fileNames:needFileNameList?project.getFileNames(false,excludeConfigFiles):void 0,configuredProjectInfo:needDefaultConfiguredProjectInfo?this.getDefaultConfiguredProjectInfo(uncheckedFileName):void 0};return projectInfo}getDefaultConfiguredProjectInfo(uncheckedFileName){var _a;const info=this.projectService.getScriptInfo(uncheckedFileName);if(!info)return;const result=this.projectService.findDefaultConfiguredProjectWorker(info,3);if(!result)return;let notMatchedByConfig;let notInProject;result.seenProjects.forEach((kind,project)=>{if(project!==result.defaultProject)if(3!==kind)(notMatchedByConfig??(notMatchedByConfig=[])).push(toNormalizedPath(project.getConfigFilePath()));else(notInProject??(notInProject=[])).push(toNormalizedPath(project.getConfigFilePath()))});null==(_a=result.seenConfigs)||_a.forEach(config=>(notMatchedByConfig??(notMatchedByConfig=[])).push(config));return{notMatchedByConfig,notInProject,defaultProject:result.defaultProject&&toNormalizedPath(result.defaultProject.getConfigFilePath())}}getRenameInfo(args){const{file,project}=this.getFileAndProject(args);const position=this.getPositionInFile(args,file);const preferences=this.getPreferences(file);return project.getLanguageService().getRenameInfo(file,position,preferences)}getProjects(args,getScriptInfoEnsuringProjectsUptoDate,ignoreNoProjectError){let projects;let symLinkedProjects;if(args.projectFileName){const project=this.getProject(args.projectFileName);if(project)projects=[project]}else{const scriptInfo=getScriptInfoEnsuringProjectsUptoDate?this.projectService.getScriptInfoEnsuringProjectsUptoDate(args.file):this.projectService.getScriptInfo(args.file);if(scriptInfo){if(!getScriptInfoEnsuringProjectsUptoDate)this.projectService.ensureDefaultProjectForFile(scriptInfo)}else{if(ignoreNoProjectError)return emptyArray2;this.projectService.logErrorForScriptInfoNotFound(args.file);return Errors.ThrowNoProject()}projects=scriptInfo.containingProjects;symLinkedProjects=this.projectService.getSymlinkedProjects(scriptInfo)}projects=filter(projects,p=>p.languageServiceEnabled&&!p.isOrphan());if(!ignoreNoProjectError&&(!projects||!projects.length)&&!symLinkedProjects){this.projectService.logErrorForScriptInfoNotFound(args.file??args.projectFileName);return Errors.ThrowNoProject()}return symLinkedProjects?{projects,symLinkedProjects}:projects}getDefaultProject(args){if(args.projectFileName){const project=this.getProject(args.projectFileName);if(project)return project;if(!args.file)return Errors.ThrowNoProject()}const info=this.projectService.getScriptInfo(args.file);return info.getDefaultProject()}getRenameLocations(args,simplifiedResult){const file=toNormalizedPath(args.file);const position=this.getPositionInFile(args,file);const projects=this.getProjects(args);const defaultProject=this.getDefaultProject(args);const preferences=this.getPreferences(file);const renameInfo=this.mapRenameInfo(defaultProject.getLanguageService().getRenameInfo(file,position,preferences),Debug.checkDefined(this.projectService.getScriptInfo(file)));if(!renameInfo.canRename)return simplifiedResult?{info:renameInfo,locs:[]}:[];const locations=getRenameLocationsWorker(projects,defaultProject,{fileName:args.file,pos:position},!!args.findInStrings,!!args.findInComments,preferences,this.host.useCaseSensitiveFileNames);if(!simplifiedResult)return locations;return{info:renameInfo,locs:this.toSpanGroups(locations)}}mapRenameInfo(info,scriptInfo){if(!info.canRename)return info;{const{canRename,fileToRename,displayName,fullDisplayName,kind,kindModifiers,triggerSpan}=info;return identity({canRename,fileToRename,displayName,fullDisplayName,kind,kindModifiers,triggerSpan:toProtocolTextSpan(triggerSpan,scriptInfo)})}}toSpanGroups(locations){const map2=/* @__PURE__ */new Map;for(const{fileName,textSpan,contextSpan,originalContextSpan:_2,originalTextSpan:_,originalFileName:_1,...prefixSuffixText}of locations){let group2=map2.get(fileName);if(!group2)map2.set(fileName,group2={file:fileName,locs:[]});const scriptInfo=Debug.checkDefined(this.projectService.getScriptInfo(fileName));group2.locs.push({...toProtocolTextSpanWithContext(textSpan,contextSpan,scriptInfo),...prefixSuffixText})}return arrayFrom(map2.values())}getReferences(args,simplifiedResult){const file=toNormalizedPath(args.file);const projects=this.getProjects(args);const position=this.getPositionInFile(args,file);const references=getReferencesWorker(projects,this.getDefaultProject(args),{fileName:args.file,pos:position},this.host.useCaseSensitiveFileNames,this.logger);if(!simplifiedResult)return references;const preferences=this.getPreferences(file);const defaultProject=this.getDefaultProject(args);const scriptInfo=defaultProject.getScriptInfoForNormalizedPath(file);const nameInfo=defaultProject.getLanguageService().getQuickInfoAtPosition(file,position);const symbolDisplayString=nameInfo?displayPartsToString(nameInfo.displayParts):"";const nameSpan=nameInfo&&nameInfo.textSpan;const symbolStartOffset=nameSpan?scriptInfo.positionToLineOffset(nameSpan.start).offset:0;const symbolName2=nameSpan?scriptInfo.getSnapshot().getText(nameSpan.start,textSpanEnd(nameSpan)):"";const refs=flatMap(references,referencedSymbol=>referencedSymbol.references.map(entry=>referenceEntryToReferencesResponseItem(this.projectService,entry,preferences)));return{refs,symbolName:symbolName2,symbolStartOffset,symbolDisplayString}}getFileReferences(args,simplifiedResult){const projects=this.getProjects(args);const fileName=toNormalizedPath(args.file);const preferences=this.getPreferences(fileName);const initialLocation={fileName,pos:0};const perProjectResults=getPerProjectReferences(projects,this.getDefaultProject(args),initialLocation,initialLocation,mapDefinitionInProjectIfFileInProject,project=>{this.logger.info(`Finding references to file ${fileName} in project ${project.getProjectName()}`);return project.getLanguageService().getFileReferences(fileName)});let references;if(isArray(perProjectResults))references=perProjectResults;else{references=[];const seen=createDocumentSpanSet(this.host.useCaseSensitiveFileNames);perProjectResults.forEach(projectOutputs=>{for(const referenceEntry of projectOutputs)if(!seen.has(referenceEntry)){references.push(referenceEntry);seen.add(referenceEntry)}})}if(!simplifiedResult)return references;const refs=references.map(entry=>referenceEntryToReferencesResponseItem(this.projectService,entry,preferences));return{refs,symbolName:`"${args.file}"`}}openClientFile(fileName,fileContent,scriptKind,projectRootPath){this.projectService.openClientFileWithNormalizedPath(fileName,fileContent,scriptKind,false,projectRootPath)}getPosition(args,scriptInfo){return void 0!==args.position?args.position:scriptInfo.lineOffsetToPosition(args.line,args.offset)}getPositionInFile(args,file){const scriptInfo=this.projectService.getScriptInfoForNormalizedPath(file);return this.getPosition(args,scriptInfo)}getFileAndProject(args){return this.getFileAndProjectWorker(args.file,args.projectFileName)}getFileAndLanguageServiceForSyntacticOperation(args){const{file,project}=this.getFileAndProject(args);return{file,languageService:project.getLanguageService(false)}}getFileAndProjectWorker(uncheckedFileName,projectFileName){const file=toNormalizedPath(uncheckedFileName);const project=this.getProject(projectFileName)||this.projectService.ensureDefaultProjectForFile(file);return{file,project}}getOutliningSpans(args,simplifiedResult){const{file,languageService}=this.getFileAndLanguageServiceForSyntacticOperation(args);const spans=languageService.getOutliningSpans(file);if(!simplifiedResult)return spans;{const scriptInfo=this.projectService.getScriptInfoForNormalizedPath(file);return spans.map(s=>({textSpan:toProtocolTextSpan(s.textSpan,scriptInfo),hintSpan:toProtocolTextSpan(s.hintSpan,scriptInfo),bannerText:s.bannerText,autoCollapse:s.autoCollapse,kind:s.kind}))}}getTodoComments(args){const{file,project}=this.getFileAndProject(args);return project.getLanguageService().getTodoComments(file,args.descriptors)}getDocCommentTemplate(args){const{file,languageService}=this.getFileAndLanguageServiceForSyntacticOperation(args);const position=this.getPositionInFile(args,file);return languageService.getDocCommentTemplateAtPosition(file,position,this.getPreferences(file),this.getFormatOptions(file))}getSpanOfEnclosingComment(args){const{file,languageService}=this.getFileAndLanguageServiceForSyntacticOperation(args);const onlyMultiLine=args.onlyMultiLine;const position=this.getPositionInFile(args,file);return languageService.getSpanOfEnclosingComment(file,position,onlyMultiLine)}getIndentation(args){const{file,languageService}=this.getFileAndLanguageServiceForSyntacticOperation(args);const position=this.getPositionInFile(args,file);const options=args.options?convertFormatOptions(args.options):this.getFormatOptions(file);const indentation=languageService.getIndentationAtPosition(file,position,options);return{position,indentation}}getBreakpointStatement(args){const{file,languageService}=this.getFileAndLanguageServiceForSyntacticOperation(args);const position=this.getPositionInFile(args,file);return languageService.getBreakpointStatementAtPosition(file,position)}getNameOrDottedNameSpan(args){const{file,languageService}=this.getFileAndLanguageServiceForSyntacticOperation(args);const position=this.getPositionInFile(args,file);return languageService.getNameOrDottedNameSpan(file,position,position)}isValidBraceCompletion(args){const{file,languageService}=this.getFileAndLanguageServiceForSyntacticOperation(args);const position=this.getPositionInFile(args,file);return languageService.isValidBraceCompletionAtPosition(file,position,args.openingBrace.charCodeAt(0))}getQuickInfoWorker(args,simplifiedResult){const{file,project}=this.getFileAndProject(args);const scriptInfo=this.projectService.getScriptInfoForNormalizedPath(file);const userPreferences=this.getPreferences(file);const quickInfo=project.getLanguageService().getQuickInfoAtPosition(file,this.getPosition(args,scriptInfo),userPreferences.maximumHoverLength,args.verbosityLevel);if(!quickInfo)return;const useDisplayParts=!!userPreferences.displayPartsForJSDoc;if(!simplifiedResult)return useDisplayParts?quickInfo:{...quickInfo,tags:this.mapJSDocTagInfo(quickInfo.tags,project,false)};{const displayString=displayPartsToString(quickInfo.displayParts);return{kind:quickInfo.kind,kindModifiers:quickInfo.kindModifiers,start:scriptInfo.positionToLineOffset(quickInfo.textSpan.start),end:scriptInfo.positionToLineOffset(textSpanEnd(quickInfo.textSpan)),displayString,documentation:useDisplayParts?this.mapDisplayParts(quickInfo.documentation,project):displayPartsToString(quickInfo.documentation),tags:this.mapJSDocTagInfo(quickInfo.tags,project,useDisplayParts),canIncreaseVerbosityLevel:quickInfo.canIncreaseVerbosityLevel}}}getFormattingEditsForRange(args){const{file,languageService}=this.getFileAndLanguageServiceForSyntacticOperation(args);const scriptInfo=this.projectService.getScriptInfoForNormalizedPath(file);const startPosition=scriptInfo.lineOffsetToPosition(args.line,args.offset);const endPosition=scriptInfo.lineOffsetToPosition(args.endLine,args.endOffset);const edits=languageService.getFormattingEditsForRange(file,startPosition,endPosition,this.getFormatOptions(file));if(!edits)return;return edits.map(edit=>this.convertTextChangeToCodeEdit(edit,scriptInfo))}getFormattingEditsForRangeFull(args){const{file,languageService}=this.getFileAndLanguageServiceForSyntacticOperation(args);const options=args.options?convertFormatOptions(args.options):this.getFormatOptions(file);return languageService.getFormattingEditsForRange(file,args.position,args.endPosition,options)}getFormattingEditsForDocumentFull(args){const{file,languageService}=this.getFileAndLanguageServiceForSyntacticOperation(args);const options=args.options?convertFormatOptions(args.options):this.getFormatOptions(file);return languageService.getFormattingEditsForDocument(file,options)}getFormattingEditsAfterKeystrokeFull(args){const{file,languageService}=this.getFileAndLanguageServiceForSyntacticOperation(args);const options=args.options?convertFormatOptions(args.options):this.getFormatOptions(file);return languageService.getFormattingEditsAfterKeystroke(file,args.position,args.key,options)}getFormattingEditsAfterKeystroke(args){const{file,languageService}=this.getFileAndLanguageServiceForSyntacticOperation(args);const scriptInfo=this.projectService.getScriptInfoForNormalizedPath(file);const position=scriptInfo.lineOffsetToPosition(args.line,args.offset);const formatOptions=this.getFormatOptions(file);const edits=languageService.getFormattingEditsAfterKeystroke(file,position,args.key,formatOptions);if("\n"===args.key&&(!edits||0===edits.length||allEditsBeforePos(edits,position))){const{lineText,absolutePosition}=scriptInfo.textStorage.getAbsolutePositionAndLineText(args.line);if(lineText&&lineText.search("\\S")<0){const preferredIndent=languageService.getIndentationAtPosition(file,position,formatOptions);let hasIndent=0;let i,len;for(i=0,len=lineText.length;i<len;i++)if(" "===lineText.charAt(i))hasIndent++;else if(" "===lineText.charAt(i))hasIndent+=formatOptions.tabSize;else break;if(preferredIndent!==hasIndent){const firstNoWhiteSpacePosition=absolutePosition+i;edits.push({span:createTextSpanFromBounds(absolutePosition,firstNoWhiteSpacePosition),newText:ts_formatting_exports.getIndentationString(preferredIndent,formatOptions)})}}}if(!edits)return;return edits.map(edit=>({start:scriptInfo.positionToLineOffset(edit.span.start),end:scriptInfo.positionToLineOffset(textSpanEnd(edit.span)),newText:edit.newText?edit.newText:""}))}getCompletions(args,kind){const{file,project}=this.getFileAndProject(args);const scriptInfo=this.projectService.getScriptInfoForNormalizedPath(file);const position=this.getPosition(args,scriptInfo);const completions=project.getLanguageService().getCompletionsAtPosition(file,position,{...convertUserPreferences(this.getPreferences(file)),triggerCharacter:args.triggerCharacter,triggerKind:args.triggerKind,includeExternalModuleExports:args.includeExternalModuleExports,includeInsertTextCompletions:args.includeInsertTextCompletions},project.projectService.getFormatCodeOptions(file));if(void 0===completions)return;if("completions-full"===kind)return completions;const prefix=args.prefix||"";const entries=mapDefined(completions.entries,entry=>{if(completions.isMemberCompletion||startsWith(entry.name.toLowerCase(),prefix.toLowerCase())){const convertedSpan=entry.replacementSpan?toProtocolTextSpan(entry.replacementSpan,scriptInfo):void 0;return{...entry,replacementSpan:convertedSpan,hasAction:entry.hasAction||void 0,symbol:void 0}}});if("completions"===kind){if(completions.metadata)entries.metadata=completions.metadata;return entries}const res={...completions,optionalReplacementSpan:completions.optionalReplacementSpan&&toProtocolTextSpan(completions.optionalReplacementSpan,scriptInfo),entries};return res}getCompletionEntryDetails(args,fullResult){const{file,project}=this.getFileAndProject(args);const scriptInfo=this.projectService.getScriptInfoForNormalizedPath(file);const position=this.getPosition(args,scriptInfo);const formattingOptions=project.projectService.getFormatCodeOptions(file);const useDisplayParts=!!this.getPreferences(file).displayPartsForJSDoc;const result=mapDefined(args.entryNames,entryName=>{const{name,source,data}="string"==typeof entryName?{name:entryName,source:void 0,data:void 0}:entryName;return project.getLanguageService().getCompletionEntryDetails(file,position,name,formattingOptions,source,this.getPreferences(file),data?cast(data,isCompletionEntryData):void 0)});return fullResult?useDisplayParts?result:result.map(details=>({...details,tags:this.mapJSDocTagInfo(details.tags,project,false)})):result.map(details=>({...details,codeActions:map(details.codeActions,action=>this.mapCodeAction(action)),documentation:this.mapDisplayParts(details.documentation,project),tags:this.mapJSDocTagInfo(details.tags,project,useDisplayParts)}))}getCompileOnSaveAffectedFileList(args){const projects=this.getProjects(args,true,true);const info=this.projectService.getScriptInfo(args.file);if(!info)return emptyArray2;return combineProjectOutput(info,path=>this.projectService.getScriptInfoForPath(path),projects,(project,info2)=>{if(!project.compileOnSaveEnabled||!project.languageServiceEnabled||project.isOrphan())return;const compilationSettings=project.getCompilationSettings();if(!!compilationSettings.noEmit||isDeclarationFileName(info2.fileName)&&!dtsChangeCanAffectEmit(compilationSettings))return;return{projectFileName:project.getProjectName(),fileNames:project.getCompileOnSaveAffectedFileList(info2),projectUsesOutFile:!!compilationSettings.outFile}})}emitFile(args){const{file,project}=this.getFileAndProject(args);if(!project)Errors.ThrowNoProject();if(!project.languageServiceEnabled)return args.richResponse?{emitSkipped:true,diagnostics:[]}:false;const scriptInfo=project.getScriptInfo(file);const{emitSkipped,diagnostics}=project.emitFile(scriptInfo,(path,data,writeByteOrderMark)=>this.host.writeFile(path,data,writeByteOrderMark));return args.richResponse?{emitSkipped,diagnostics:args.includeLinePosition?this.convertToDiagnosticsWithLinePositionFromDiagnosticFile(diagnostics):diagnostics.map(d=>formatDiagnosticToProtocol(d,true))}:!emitSkipped}getSignatureHelpItems(args,simplifiedResult){const{file,project}=this.getFileAndProject(args);const scriptInfo=this.projectService.getScriptInfoForNormalizedPath(file);const position=this.getPosition(args,scriptInfo);const helpItems=project.getLanguageService().getSignatureHelpItems(file,position,args);const useDisplayParts=!!this.getPreferences(file).displayPartsForJSDoc;if(helpItems&&simplifiedResult){const span=helpItems.applicableSpan;return{...helpItems,applicableSpan:{start:scriptInfo.positionToLineOffset(span.start),end:scriptInfo.positionToLineOffset(span.start+span.length)},items:this.mapSignatureHelpItems(helpItems.items,project,useDisplayParts)}}if(useDisplayParts||!helpItems)return helpItems;return{...helpItems,items:helpItems.items.map(item=>({...item,tags:this.mapJSDocTagInfo(item.tags,project,false)}))}}toPendingErrorCheck(uncheckedFileName){const fileName=toNormalizedPath(uncheckedFileName);const project=this.projectService.tryGetDefaultProjectForFile(fileName);return project&&{fileName,project}}getDiagnostics(next,delay,fileArgs){if(this.suppressDiagnosticEvents)return;if(fileArgs.length>0)this.updateErrorCheck(next,fileArgs,delay)}change(args){const scriptInfo=this.projectService.getScriptInfo(args.file);Debug.assert(!!scriptInfo);scriptInfo.textStorage.switchToScriptVersionCache();const start=scriptInfo.lineOffsetToPosition(args.line,args.offset);const end=scriptInfo.lineOffsetToPosition(args.endLine,args.endOffset);if(start>=0){this.changeSeq++;this.projectService.applyChangesToFile(scriptInfo,singleIterator({span:{start,length:end-start},newText:args.insertString}))}}reload(args){const file=toNormalizedPath(args.file);const tempFileName=void 0===args.tmpfile?void 0:toNormalizedPath(args.tmpfile);const info=this.projectService.getScriptInfoForNormalizedPath(file);if(info){this.changeSeq++;info.reloadFromFile(tempFileName)}}saveToTmp(fileName,tempFileName){const scriptInfo=this.projectService.getScriptInfo(fileName);if(scriptInfo)scriptInfo.saveTo(tempFileName)}closeClientFile(fileName){if(!fileName)return;const file=normalizePath(fileName);this.projectService.closeClientFile(file)}mapLocationNavigationBarItems(items,scriptInfo){return map(items,item=>({text:item.text,kind:item.kind,kindModifiers:item.kindModifiers,spans:item.spans.map(span=>toProtocolTextSpan(span,scriptInfo)),childItems:this.mapLocationNavigationBarItems(item.childItems,scriptInfo),indent:item.indent}))}getNavigationBarItems(args,simplifiedResult){const{file,languageService}=this.getFileAndLanguageServiceForSyntacticOperation(args);const items=languageService.getNavigationBarItems(file);return items?simplifiedResult?this.mapLocationNavigationBarItems(items,this.projectService.getScriptInfoForNormalizedPath(file)):items:void 0}toLocationNavigationTree(tree,scriptInfo){return{text:tree.text,kind:tree.kind,kindModifiers:tree.kindModifiers,spans:tree.spans.map(span=>toProtocolTextSpan(span,scriptInfo)),nameSpan:tree.nameSpan&&toProtocolTextSpan(tree.nameSpan,scriptInfo),childItems:map(tree.childItems,item=>this.toLocationNavigationTree(item,scriptInfo))}}getNavigationTree(args,simplifiedResult){const{file,languageService}=this.getFileAndLanguageServiceForSyntacticOperation(args);const tree=languageService.getNavigationTree(file);return tree?simplifiedResult?this.toLocationNavigationTree(tree,this.projectService.getScriptInfoForNormalizedPath(file)):tree:void 0}getNavigateToItems(args,simplifiedResult){const full=this.getFullNavigateToItems(args);return simplifiedResult?flatMap(full,({project,navigateToItems})=>navigateToItems.map(navItem=>{const scriptInfo=project.getScriptInfo(navItem.fileName);const bakedItem={name:navItem.name,kind:navItem.kind,kindModifiers:navItem.kindModifiers,isCaseSensitive:navItem.isCaseSensitive,matchKind:navItem.matchKind,file:navItem.fileName,start:scriptInfo.positionToLineOffset(navItem.textSpan.start),end:scriptInfo.positionToLineOffset(textSpanEnd(navItem.textSpan))};if(navItem.kindModifiers&&""!==navItem.kindModifiers)bakedItem.kindModifiers=navItem.kindModifiers;if(navItem.containerName&&navItem.containerName.length>0)bakedItem.containerName=navItem.containerName;if(navItem.containerKind&&navItem.containerKind.length>0)bakedItem.containerKind=navItem.containerKind;return bakedItem})):flatMap(full,({navigateToItems})=>navigateToItems)}getFullNavigateToItems(args){const{currentFileOnly,searchValue,maxResultCount,projectFileName}=args;if(currentFileOnly){Debug.assertIsDefined(args.file);const{file,project}=this.getFileAndProject(args);return[{project,navigateToItems:project.getLanguageService().getNavigateToItems(searchValue,maxResultCount,file)}]}const preferences=this.getHostPreferences();const outputs=[];const seenItems=/* @__PURE__ */new Map;if(args.file||projectFileName){const projects=this.getProjects(args);forEachProjectInProjects(projects,void 0,project=>addItemsForProject(project))}else{this.projectService.loadAncestorProjectTree();this.projectService.forEachEnabledProject(project=>addItemsForProject(project))}return outputs;function addItemsForProject(project){const projectItems=project.getLanguageService().getNavigateToItems(searchValue,maxResultCount,void 0,project.isNonTsProject(),preferences.excludeLibrarySymbolsInNavTo);const unseenItems=filter(projectItems,item=>tryAddSeenItem(item)&&!getMappedLocationForProject(documentSpanLocation(item),project));if(unseenItems.length)outputs.push({project,navigateToItems:unseenItems})}function tryAddSeenItem(item){const name=item.name;if(!seenItems.has(name)){seenItems.set(name,[item]);return true}const seen=seenItems.get(name);for(const seenItem of seen)if(navigateToItemIsEqualTo(seenItem,item))return false;seen.push(item);return true}function navigateToItemIsEqualTo(a,b){if(a===b)return true;if(!a||!b)return false;return a.containerKind===b.containerKind&&a.containerName===b.containerName&&a.fileName===b.fileName&&a.isCaseSensitive===b.isCaseSensitive&&a.kind===b.kind&&a.kindModifiers===b.kindModifiers&&a.matchKind===b.matchKind&&a.name===b.name&&a.textSpan.start===b.textSpan.start&&a.textSpan.length===b.textSpan.length}}getSupportedCodeFixes(args){if(!args)return getSupportedCodeFixes();if(args.file){const{file,project:project2}=this.getFileAndProject(args);return project2.getLanguageService().getSupportedCodeFixes(file)}const project=this.getProject(args.projectFileName);if(!project)Errors.ThrowNoProject();return project.getLanguageService().getSupportedCodeFixes()}isLocation(locationOrSpan){return void 0!==locationOrSpan.line}extractPositionOrRange(args,scriptInfo){let position;let textRange;if(this.isLocation(args))position=getPosition(args);else textRange=this.getRange(args,scriptInfo);return Debug.checkDefined(void 0===position?textRange:position);function getPosition(loc){return void 0!==loc.position?loc.position:scriptInfo.lineOffsetToPosition(loc.line,loc.offset)}}getRange(args,scriptInfo){const{startPosition,endPosition}=this.getStartAndEndPosition(args,scriptInfo);return{pos:startPosition,end:endPosition}}getApplicableRefactors(args){const{file,project}=this.getFileAndProject(args);const scriptInfo=project.getScriptInfoForNormalizedPath(file);const result=project.getLanguageService().getApplicableRefactors(file,this.extractPositionOrRange(args,scriptInfo),this.getPreferences(file),args.triggerReason,args.kind,args.includeInteractiveActions);return result.map(result2=>({...result2,actions:result2.actions.map(action=>({...action,range:action.range?{start:convertToLocation({line:action.range.start.line,character:action.range.start.offset}),end:convertToLocation({line:action.range.end.line,character:action.range.end.offset})}:void 0}))}))}getEditsForRefactor(args,simplifiedResult){const{file,project}=this.getFileAndProject(args);const scriptInfo=project.getScriptInfoForNormalizedPath(file);const result=project.getLanguageService().getEditsForRefactor(file,this.getFormatOptions(file),this.extractPositionOrRange(args,scriptInfo),args.refactor,args.action,this.getPreferences(file),args.interactiveRefactorArguments);if(void 0===result)return{edits:[]};if(simplifiedResult){const{renameFilename,renameLocation,edits}=result;let mappedRenameLocation;if(void 0!==renameFilename&&void 0!==renameLocation){const renameScriptInfo=project.getScriptInfoForNormalizedPath(toNormalizedPath(renameFilename));mappedRenameLocation=getLocationInNewDocument(getSnapshotText(renameScriptInfo.getSnapshot()),renameFilename,renameLocation,edits)}return{renameLocation:mappedRenameLocation,renameFilename,edits:this.mapTextChangesToCodeEdits(edits),notApplicableReason:result.notApplicableReason}}return result}getMoveToRefactoringFileSuggestions(args){const{file,project}=this.getFileAndProject(args);const scriptInfo=project.getScriptInfoForNormalizedPath(file);return project.getLanguageService().getMoveToRefactoringFileSuggestions(file,this.extractPositionOrRange(args,scriptInfo),this.getPreferences(file))}preparePasteEdits(args){const{file,project}=this.getFileAndProject(args);return project.getLanguageService().preparePasteEditsForFile(file,args.copiedTextSpan.map(copies=>this.getRange({file,startLine:copies.start.line,startOffset:copies.start.offset,endLine:copies.end.line,endOffset:copies.end.offset},this.projectService.getScriptInfoForNormalizedPath(file))))}getPasteEdits(args){const{file,project}=this.getFileAndProject(args);if(isDynamicFileName(file))return;const copiedFrom=args.copiedFrom?{file:args.copiedFrom.file,range:args.copiedFrom.spans.map(copies=>this.getRange({file:args.copiedFrom.file,startLine:copies.start.line,startOffset:copies.start.offset,endLine:copies.end.line,endOffset:copies.end.offset},project.getScriptInfoForNormalizedPath(toNormalizedPath(args.copiedFrom.file))))}:void 0;const result=project.getLanguageService().getPasteEdits({targetFile:file,pastedText:args.pastedText,pasteLocations:args.pasteLocations.map(paste=>this.getRange({file,startLine:paste.start.line,startOffset:paste.start.offset,endLine:paste.end.line,endOffset:paste.end.offset},project.getScriptInfoForNormalizedPath(file))),copiedFrom,preferences:this.getPreferences(file)},this.getFormatOptions(file));return result&&this.mapPasteEditsAction(result)}organizeImports(args,simplifiedResult){Debug.assert("file"===args.scope.type);const{file,project}=this.getFileAndProject(args.scope.args);const changes=project.getLanguageService().organizeImports({fileName:file,mode:args.mode??(args.skipDestructiveCodeActions?"SortAndCombine":void 0),type:"file"},this.getFormatOptions(file),this.getPreferences(file));if(simplifiedResult)return this.mapTextChangesToCodeEdits(changes);return changes}getEditsForFileRename(args,simplifiedResult){const oldPath=toNormalizedPath(args.oldFilePath);const newPath=toNormalizedPath(args.newFilePath);const formatOptions=this.getHostFormatOptions();const preferences=this.getHostPreferences();const seenFiles=/* @__PURE__ */new Set;const textChanges2=[];this.projectService.loadAncestorProjectTree();this.projectService.forEachEnabledProject(project=>{const projectTextChanges=project.getLanguageService().getEditsForFileRename(oldPath,newPath,formatOptions,preferences);const projectFiles=[];for(const textChange of projectTextChanges)if(!seenFiles.has(textChange.fileName)){textChanges2.push(textChange);projectFiles.push(textChange.fileName)}for(const file of projectFiles)seenFiles.add(file)});return simplifiedResult?textChanges2.map(c=>this.mapTextChangeToCodeEdit(c)):textChanges2}getCodeFixes(args,simplifiedResult){const{file,project}=this.getFileAndProject(args);const scriptInfo=project.getScriptInfoForNormalizedPath(file);const{startPosition,endPosition}=this.getStartAndEndPosition(args,scriptInfo);let codeActions;try{codeActions=project.getLanguageService().getCodeFixesAtPosition(file,startPosition,endPosition,args.errorCodes,this.getFormatOptions(file),this.getPreferences(file))}catch(e){const error2=e instanceof Error?e:new Error(e);const ls=project.getLanguageService();const existingDiagCodes=[...ls.getSyntacticDiagnostics(file),...ls.getSemanticDiagnostics(file),...ls.getSuggestionDiagnostics(file)].filter(d=>decodedTextSpanIntersectsWith(startPosition,endPosition-startPosition,d.start,d.length)).map(d=>d.code);const badCode=args.errorCodes.find(c=>!existingDiagCodes.includes(c));if(void 0!==badCode)error2.message+=`
|
|
381
|
-
Additional information: BADCLIENT: Bad error code, ${badCode} not found in range ${startPosition}..${endPosition} (found: ${existingDiagCodes.join(", ")})`;throw error2}return simplifiedResult?codeActions.map(codeAction=>this.mapCodeFixAction(codeAction)):codeActions}getCombinedCodeFix({scope,fixId:fixId56},simplifiedResult){Debug.assert("file"===scope.type);const{file,project}=this.getFileAndProject(scope.args);const res=project.getLanguageService().getCombinedCodeFix({type:"file",fileName:file},fixId56,this.getFormatOptions(file),this.getPreferences(file));if(simplifiedResult)return{changes:this.mapTextChangesToCodeEdits(res.changes),commands:res.commands};return res}applyCodeActionCommand(args){const commands=args.command;for(const command of toArray(commands)){const{file,project}=this.getFileAndProject(command);project.getLanguageService().applyCodeActionCommand(command,this.getFormatOptions(file)).then(_result=>{},_error=>{})}return{}}getStartAndEndPosition(args,scriptInfo){let startPosition,endPosition;if(void 0!==args.startPosition)startPosition=args.startPosition;else{startPosition=scriptInfo.lineOffsetToPosition(args.startLine,args.startOffset);args.startPosition=startPosition}if(void 0!==args.endPosition)endPosition=args.endPosition;else{endPosition=scriptInfo.lineOffsetToPosition(args.endLine,args.endOffset);args.endPosition=endPosition}return{startPosition,endPosition}}mapCodeAction({description:description3,changes,commands}){return{description:description3,changes:this.mapTextChangesToCodeEdits(changes),commands}}mapCodeFixAction({fixName:fixName8,description:description3,changes,commands,fixId:fixId56,fixAllDescription}){return{fixName:fixName8,description:description3,changes:this.mapTextChangesToCodeEdits(changes),commands,fixId:fixId56,fixAllDescription}}mapPasteEditsAction({edits,fixId:fixId56}){return{edits:this.mapTextChangesToCodeEdits(edits),fixId:fixId56}}mapTextChangesToCodeEdits(textChanges2){return textChanges2.map(change=>this.mapTextChangeToCodeEdit(change))}mapTextChangeToCodeEdit(textChanges2){const scriptInfo=this.projectService.getScriptInfoOrConfig(textChanges2.fileName);if(!!textChanges2.isNewFile===!!scriptInfo){if(!scriptInfo)this.projectService.logErrorForScriptInfoNotFound(textChanges2.fileName);Debug.fail("Expected isNewFile for (only) new files. "+JSON.stringify({isNewFile:!!textChanges2.isNewFile,hasScriptInfo:!!scriptInfo}))}return scriptInfo?{fileName:textChanges2.fileName,textChanges:textChanges2.textChanges.map(textChange=>convertTextChangeToCodeEdit(textChange,scriptInfo))}:convertNewFileTextChangeToCodeEdit(textChanges2)}convertTextChangeToCodeEdit(change,scriptInfo){return{start:scriptInfo.positionToLineOffset(change.span.start),end:scriptInfo.positionToLineOffset(change.span.start+change.span.length),newText:change.newText?change.newText:""}}getBraceMatching(args,simplifiedResult){const{file,languageService}=this.getFileAndLanguageServiceForSyntacticOperation(args);const scriptInfo=this.projectService.getScriptInfoForNormalizedPath(file);const position=this.getPosition(args,scriptInfo);const spans=languageService.getBraceMatchingAtPosition(file,position);return spans?simplifiedResult?spans.map(span=>toProtocolTextSpan(span,scriptInfo)):spans:void 0}getDiagnosticsForProject(next,delay,fileName){if(this.suppressDiagnosticEvents)return;const{fileNames,languageServiceDisabled}=this.getProjectInfoWorker(fileName,void 0,true,void 0,true);if(languageServiceDisabled)return;const fileNamesInProject=fileNames.filter(value1=>!value1.includes("lib.d.ts"));if(0===fileNamesInProject.length)return;const highPriorityFiles=[];const mediumPriorityFiles=[];const lowPriorityFiles=[];const veryLowPriorityFiles=[];const normalizedFileName=toNormalizedPath(fileName);const project=this.projectService.ensureDefaultProjectForFile(normalizedFileName);for(const fileNameInProject of fileNamesInProject)if(this.getCanonicalFileName(fileNameInProject)===this.getCanonicalFileName(fileName))highPriorityFiles.push(fileNameInProject);else{const info=this.projectService.getScriptInfo(fileNameInProject);if(info.isScriptOpen())mediumPriorityFiles.push(fileNameInProject);else if(isDeclarationFileName(fileNameInProject))veryLowPriorityFiles.push(fileNameInProject);else lowPriorityFiles.push(fileNameInProject)}const sortedFiles=[...highPriorityFiles,...mediumPriorityFiles,...lowPriorityFiles,...veryLowPriorityFiles];const checkList=sortedFiles.map(fileName2=>({fileName:fileName2,project}));this.updateErrorCheck(next,checkList,delay,false)}configurePlugin(args){this.projectService.configurePlugin(args)}getSmartSelectionRange(args,simplifiedResult){const{locations}=args;const{file,languageService}=this.getFileAndLanguageServiceForSyntacticOperation(args);const scriptInfo=Debug.checkDefined(this.projectService.getScriptInfo(file));return map(locations,location=>{const pos=this.getPosition(location,scriptInfo);const selectionRange=languageService.getSmartSelectionRange(file,pos);return simplifiedResult?this.mapSelectionRange(selectionRange,scriptInfo):selectionRange})}toggleLineComment(args,simplifiedResult){const{file,languageService}=this.getFileAndLanguageServiceForSyntacticOperation(args);const scriptInfo=this.projectService.getScriptInfo(file);const textRange=this.getRange(args,scriptInfo);const textChanges2=languageService.toggleLineComment(file,textRange);if(simplifiedResult){const scriptInfo2=this.projectService.getScriptInfoForNormalizedPath(file);return textChanges2.map(textChange=>this.convertTextChangeToCodeEdit(textChange,scriptInfo2))}return textChanges2}toggleMultilineComment(args,simplifiedResult){const{file,languageService}=this.getFileAndLanguageServiceForSyntacticOperation(args);const scriptInfo=this.projectService.getScriptInfoForNormalizedPath(file);const textRange=this.getRange(args,scriptInfo);const textChanges2=languageService.toggleMultilineComment(file,textRange);if(simplifiedResult){const scriptInfo2=this.projectService.getScriptInfoForNormalizedPath(file);return textChanges2.map(textChange=>this.convertTextChangeToCodeEdit(textChange,scriptInfo2))}return textChanges2}commentSelection(args,simplifiedResult){const{file,languageService}=this.getFileAndLanguageServiceForSyntacticOperation(args);const scriptInfo=this.projectService.getScriptInfoForNormalizedPath(file);const textRange=this.getRange(args,scriptInfo);const textChanges2=languageService.commentSelection(file,textRange);if(simplifiedResult){const scriptInfo2=this.projectService.getScriptInfoForNormalizedPath(file);return textChanges2.map(textChange=>this.convertTextChangeToCodeEdit(textChange,scriptInfo2))}return textChanges2}uncommentSelection(args,simplifiedResult){const{file,languageService}=this.getFileAndLanguageServiceForSyntacticOperation(args);const scriptInfo=this.projectService.getScriptInfoForNormalizedPath(file);const textRange=this.getRange(args,scriptInfo);const textChanges2=languageService.uncommentSelection(file,textRange);if(simplifiedResult){const scriptInfo2=this.projectService.getScriptInfoForNormalizedPath(file);return textChanges2.map(textChange=>this.convertTextChangeToCodeEdit(textChange,scriptInfo2))}return textChanges2}mapSelectionRange(selectionRange,scriptInfo){const result={textSpan:toProtocolTextSpan(selectionRange.textSpan,scriptInfo)};if(selectionRange.parent)result.parent=this.mapSelectionRange(selectionRange.parent,scriptInfo);return result}getScriptInfoFromProjectService(file){const normalizedFile=toNormalizedPath(file);const scriptInfo=this.projectService.getScriptInfoForNormalizedPath(normalizedFile);if(!scriptInfo){this.projectService.logErrorForScriptInfoNotFound(normalizedFile);return Errors.ThrowNoProject()}return scriptInfo}toProtocolCallHierarchyItem(item){const scriptInfo=this.getScriptInfoFromProjectService(item.file);return{name:item.name,kind:item.kind,kindModifiers:item.kindModifiers,file:item.file,containerName:item.containerName,span:toProtocolTextSpan(item.span,scriptInfo),selectionSpan:toProtocolTextSpan(item.selectionSpan,scriptInfo)}}toProtocolCallHierarchyIncomingCall(incomingCall){const scriptInfo=this.getScriptInfoFromProjectService(incomingCall.from.file);return{from:this.toProtocolCallHierarchyItem(incomingCall.from),fromSpans:incomingCall.fromSpans.map(fromSpan=>toProtocolTextSpan(fromSpan,scriptInfo))}}toProtocolCallHierarchyOutgoingCall(outgoingCall,scriptInfo){return{to:this.toProtocolCallHierarchyItem(outgoingCall.to),fromSpans:outgoingCall.fromSpans.map(fromSpan=>toProtocolTextSpan(fromSpan,scriptInfo))}}prepareCallHierarchy(args){const{file,project}=this.getFileAndProject(args);const scriptInfo=this.projectService.getScriptInfoForNormalizedPath(file);if(scriptInfo){const position=this.getPosition(args,scriptInfo);const result=project.getLanguageService().prepareCallHierarchy(file,position);return result&&mapOneOrMany(result,item=>this.toProtocolCallHierarchyItem(item))}}provideCallHierarchyIncomingCalls(args){const{file,project}=this.getFileAndProject(args);const scriptInfo=this.getScriptInfoFromProjectService(file);const incomingCalls=project.getLanguageService().provideCallHierarchyIncomingCalls(file,this.getPosition(args,scriptInfo));return incomingCalls.map(call=>this.toProtocolCallHierarchyIncomingCall(call))}provideCallHierarchyOutgoingCalls(args){const{file,project}=this.getFileAndProject(args);const scriptInfo=this.getScriptInfoFromProjectService(file);const outgoingCalls=project.getLanguageService().provideCallHierarchyOutgoingCalls(file,this.getPosition(args,scriptInfo));return outgoingCalls.map(call=>this.toProtocolCallHierarchyOutgoingCall(call,scriptInfo))}getCanonicalFileName(fileName){const name=this.host.useCaseSensitiveFileNames?fileName:toFileNameLowerCase(fileName);return normalizePath(name)}exit(){}notRequired(request){if(request)this.doOutput(void 0,request.command,request.seq,true,this.performanceData);return{responseRequired:false,performanceData:this.performanceData}}requiredResponse(response){return{response,responseRequired:true,performanceData:this.performanceData}}addProtocolHandler(command,handler){if(this.handlers.has(command))throw new Error(`Protocol handler already exists for command "${command}"`);this.handlers.set(command,handler)}setCurrentRequest(requestId){Debug.assert(void 0===this.currentRequestId);this.currentRequestId=requestId;this.cancellationToken.setRequest(requestId)}resetCurrentRequest(requestId){Debug.assert(this.currentRequestId===requestId);this.currentRequestId=void 0;this.cancellationToken.resetRequest(requestId)}executeWithRequestId(requestId,f,perfomanceData){const currentPerformanceData=this.performanceData;try{this.performanceData=perfomanceData;this.setCurrentRequest(requestId);return f()}finally{this.resetCurrentRequest(requestId);this.performanceData=currentPerformanceData}}executeCommand(request){const handler=this.handlers.get(request.command);if(handler){const response=this.executeWithRequestId(request.seq,()=>handler(request),void 0);this.projectService.enableRequestedPlugins();return response}this.logger.msg(`Unrecognized JSON command:${stringifyIndented(request)}`,"Err");this.doOutput(void 0,"unknown",request.seq,false,void 0,`Unrecognized JSON command: ${request.command}`);return{responseRequired:false}}onMessage(message){var _a,_b,_c,_d,_e,_f,_g;this.gcTimer.scheduleCollect();let start;const currentPerformanceData=this.performanceData;if(this.logger.hasLevel(2)){start=this.hrtime();if(this.logger.hasLevel(3))this.logger.info(`request:${indent2(this.toStringMessage(message))}`)}let request;let relevantFile;try{request=this.parseMessage(message);relevantFile=request.arguments&&request.arguments.file?request.arguments:void 0;null==(_a=tracing)||_a.instant(tracing.Phase.Session,"request",{seq:request.seq,command:request.command});null==(_b=tracing)||_b.push(tracing.Phase.Session,"executeCommand",{seq:request.seq,command:request.command},true);const{response,responseRequired,performanceData}=this.executeCommand(request);null==(_c=tracing)||_c.pop();if(this.logger.hasLevel(2)){const elapsedTime=hrTimeToMilliseconds(this.hrtime(start)).toFixed(4);if(responseRequired)this.logger.perftrc(`${request.seq}::${request.command}: elapsed time (in milliseconds) ${elapsedTime}`);else this.logger.perftrc(`${request.seq}::${request.command}: async elapsed time (in milliseconds) ${elapsedTime}`)}null==(_d=tracing)||_d.instant(tracing.Phase.Session,"response",{seq:request.seq,command:request.command,success:!!response});if(response)this.doOutput(response,request.command,request.seq,true,performanceData);else if(responseRequired)this.doOutput(void 0,request.command,request.seq,false,performanceData,"No content available.")}catch(err){null==(_e=tracing)||_e.popAll();if(err instanceof OperationCanceledException){null==(_f=tracing)||_f.instant(tracing.Phase.Session,"commandCanceled",{seq:null==request?void 0:request.seq,command:null==request?void 0:request.command});this.doOutput({canceled:true},request.command,request.seq,true,this.performanceData);return}this.logErrorWorker(err,this.toStringMessage(message),relevantFile);null==(_g=tracing)||_g.instant(tracing.Phase.Session,"commandError",{seq:null==request?void 0:request.seq,command:null==request?void 0:request.command,message:err.message});this.doOutput(void 0,request?request.command:"unknown",request?request.seq:0,false,this.performanceData,"Error processing request. "+err.message+"\n"+err.stack)}finally{this.performanceData=currentPerformanceData}}parseMessage(message){return JSON.parse(message)}toStringMessage(message){return message}getFormatOptions(file){return this.projectService.getFormatCodeOptions(file)}getPreferences(file){return this.projectService.getPreferences(file)}getHostFormatOptions(){return this.projectService.getHostFormatCodeOptions()}getHostPreferences(){return this.projectService.getHostPreferences()}};function toProtocolPerformanceData(performanceData){const diagnosticsDuration=performanceData.diagnosticsDuration&&arrayFrom(performanceData.diagnosticsDuration,([file,data])=>({...data,file}));return{...performanceData,diagnosticsDuration}}function toProtocolTextSpan(textSpan,scriptInfo){return{start:scriptInfo.positionToLineOffset(textSpan.start),end:scriptInfo.positionToLineOffset(textSpanEnd(textSpan))}}function toProtocolTextSpanWithContext(span,contextSpan,scriptInfo){const textSpan=toProtocolTextSpan(span,scriptInfo);const contextTextSpan=contextSpan&&toProtocolTextSpan(contextSpan,scriptInfo);return contextTextSpan?{...textSpan,contextStart:contextTextSpan.start,contextEnd:contextTextSpan.end}:textSpan}function convertTextChangeToCodeEdit(change,scriptInfo){return{start:positionToLineOffset(scriptInfo,change.span.start),end:positionToLineOffset(scriptInfo,textSpanEnd(change.span)),newText:change.newText}}function positionToLineOffset(info,position){return isConfigFile(info)?locationFromLineAndCharacter(info.getLineAndCharacterOfPosition(position)):info.positionToLineOffset(position)}function convertLinkedEditInfoToRanges(linkedEdit,scriptInfo){const ranges=linkedEdit.ranges.map(r=>({start:scriptInfo.positionToLineOffset(r.start),end:scriptInfo.positionToLineOffset(r.start+r.length)}));if(!linkedEdit.wordPattern)return{ranges};return{ranges,wordPattern:linkedEdit.wordPattern}}function locationFromLineAndCharacter(lc){return{line:lc.line+1,offset:lc.character+1}}function convertNewFileTextChangeToCodeEdit(textChanges2){Debug.assert(1===textChanges2.textChanges.length);const change=first(textChanges2.textChanges);Debug.assert(0===change.span.start&&0===change.span.length);return{fileName:textChanges2.fileName,textChanges:[{start:{line:0,offset:0},end:{line:0,offset:0},newText:change.newText}]}}function getLocationInNewDocument(oldText,renameFilename,renameLocation,edits){const newText=applyEdits(oldText,renameFilename,edits);const{line,character}=computeLineAndCharacterOfPosition(computeLineStarts(newText),renameLocation);return{line:line+1,offset:character+1}}function applyEdits(text,textFilename,edits){for(const{fileName,textChanges:textChanges2}of edits)if(fileName===textFilename)for(let i=textChanges2.length-1;i>=0;i--){const{newText,span:{start,length:length2}}=textChanges2[i];text=text.slice(0,start)+newText+text.slice(start+length2)}return text}function referenceEntryToReferencesResponseItem(projectService,{fileName,textSpan,contextSpan,isWriteAccess:isWriteAccess2,isDefinition},{disableLineTextInReferences}){const scriptInfo=Debug.checkDefined(projectService.getScriptInfo(fileName));const span=toProtocolTextSpanWithContext(textSpan,contextSpan,scriptInfo);const lineText=disableLineTextInReferences?void 0:getLineText(scriptInfo,span);return{file:fileName,...span,lineText,isWriteAccess:isWriteAccess2,isDefinition}}function getLineText(scriptInfo,span){const lineSpan=scriptInfo.lineToTextSpan(span.start.line-1);return scriptInfo.getSnapshot().getText(lineSpan.start,textSpanEnd(lineSpan)).replace(/\r|\n/g,"")}function isCompletionEntryData(data){return void 0===data||data&&"object"==typeof data&&"string"==typeof data.exportName&&(void 0===data.fileName||"string"==typeof data.fileName)&&(void 0===data.ambientModuleName||"string"==typeof data.ambientModuleName&&(void 0===data.isPackageJsonImport||"boolean"==typeof data.isPackageJsonImport))}var lineCollectionCapacity=4;var CharRangeSection=/* @__PURE__ */(CharRangeSection2=>{CharRangeSection2[CharRangeSection2["PreStart"]=0]="PreStart";CharRangeSection2[CharRangeSection2["Start"]=1]="Start";CharRangeSection2[CharRangeSection2["Entire"]=2]="Entire";CharRangeSection2[CharRangeSection2["Mid"]=3]="Mid";CharRangeSection2[CharRangeSection2["End"]=4]="End";CharRangeSection2[CharRangeSection2["PostEnd"]=5]="PostEnd";return CharRangeSection2})(CharRangeSection||{});var EditWalker=class{constructor(){this.goSubtree=true;this.lineIndex=new LineIndex;this.endBranch=[];this.state=2;this.initialText="";this.trailingText="";this.lineIndex.root=new LineNode;this.startPath=[this.lineIndex.root];this.stack=[this.lineIndex.root]}get done(){return false}insertLines(insertedText,suppressTrailingText){if(suppressTrailingText)this.trailingText="";insertedText=insertedText?this.initialText+insertedText+this.trailingText:this.initialText+this.trailingText;const lm=LineIndex.linesFromText(insertedText);const lines=lm.lines;if(lines.length>1&&""===lines[lines.length-1])lines.pop();let branchParent;let lastZeroCount;for(let k=this.endBranch.length-1;k>=0;k--){this.endBranch[k].updateCounts();if(0===this.endBranch[k].charCount()){lastZeroCount=this.endBranch[k];branchParent=k>0?this.endBranch[k-1]:this.branchNode}}if(lastZeroCount)branchParent.remove(lastZeroCount);const leafNode=this.startPath[this.startPath.length-1];if(lines.length>0){leafNode.text=lines[0];if(lines.length>1){let insertedNodes=new Array(lines.length-1);let startNode2=leafNode;for(let i=1;i<lines.length;i++)insertedNodes[i-1]=new LineLeaf(lines[i]);let pathIndex=this.startPath.length-2;while(pathIndex>=0){const insertionNode=this.startPath[pathIndex];insertedNodes=insertionNode.insertAt(startNode2,insertedNodes);pathIndex--;startNode2=insertionNode}let insertedNodesLen=insertedNodes.length;while(insertedNodesLen>0){const newRoot=new LineNode;newRoot.add(this.lineIndex.root);insertedNodes=newRoot.insertAt(this.lineIndex.root,insertedNodes);insertedNodesLen=insertedNodes.length;this.lineIndex.root=newRoot}this.lineIndex.root.updateCounts()}else for(let j=this.startPath.length-2;j>=0;j--)this.startPath[j].updateCounts()}else{const insertionNode=this.startPath[this.startPath.length-2];insertionNode.remove(leafNode);for(let j=this.startPath.length-2;j>=0;j--)this.startPath[j].updateCounts()}return this.lineIndex}post(_relativeStart,_relativeLength,lineCollection){if(lineCollection===this.lineCollectionAtBranch)this.state=4;this.stack.pop()}pre(_relativeStart,_relativeLength,lineCollection,_parent,nodeType){const currentNode=this.stack[this.stack.length-1];if(2===this.state&&1===nodeType){this.state=1;this.branchNode=currentNode;this.lineCollectionAtBranch=lineCollection}let child;function fresh(node){if(node.isLeaf())return new LineLeaf("");return new LineNode}switch(nodeType){case 0:this.goSubtree=false;if(4!==this.state)currentNode.add(lineCollection);break;case 1:if(4===this.state)this.goSubtree=false;else{child=fresh(lineCollection);currentNode.add(child);this.startPath.push(child)}break;case 2:if(4!==this.state){child=fresh(lineCollection);currentNode.add(child);this.startPath.push(child)}else if(!lineCollection.isLeaf()){child=fresh(lineCollection);currentNode.add(child);this.endBranch.push(child)}break;case 3:this.goSubtree=false;break;case 4:if(4!==this.state)this.goSubtree=false;else if(!lineCollection.isLeaf()){child=fresh(lineCollection);currentNode.add(child);this.endBranch.push(child)}break;case 5:this.goSubtree=false;if(1!==this.state)currentNode.add(lineCollection);break}if(this.goSubtree)this.stack.push(child)}leaf(relativeStart,relativeLength,ll){if(1===this.state)this.initialText=ll.text.substring(0,relativeStart);else if(2===this.state){this.initialText=ll.text.substring(0,relativeStart);this.trailingText=ll.text.substring(relativeStart+relativeLength)}else this.trailingText=ll.text.substring(relativeStart+relativeLength)}};var TextChange9=class{constructor(pos,deleteLen,insertedText){this.pos=pos;this.deleteLen=deleteLen;this.insertedText=insertedText}getTextChangeRange(){return createTextChangeRange(createTextSpan(this.pos,this.deleteLen),this.insertedText?this.insertedText.length:0)}};var _ScriptVersionCache=class _ScriptVersionCache{constructor(){this.changes=[];this.versions=new Array(_ScriptVersionCache.maxVersions);this.minVersion=0;this.currentVersion=0}versionToIndex(version2){if(version2<this.minVersion||version2>this.currentVersion)return;return version2%_ScriptVersionCache.maxVersions}currentVersionToIndex(){return this.currentVersion%_ScriptVersionCache.maxVersions}edit(pos,deleteLen,insertedText){this.changes.push(new TextChange9(pos,deleteLen,insertedText));if(this.changes.length>_ScriptVersionCache.changeNumberThreshold||deleteLen>_ScriptVersionCache.changeLengthThreshold||insertedText&&insertedText.length>_ScriptVersionCache.changeLengthThreshold)this.getSnapshot()}getSnapshot(){return this._getSnapshot()}_getSnapshot(){let snap=this.versions[this.currentVersionToIndex()];if(this.changes.length>0){let snapIndex=snap.index;for(const change of this.changes)snapIndex=snapIndex.edit(change.pos,change.deleteLen,change.insertedText);snap=new LineIndexSnapshot(this.currentVersion+1,this,snapIndex,this.changes);this.currentVersion=snap.version;this.versions[this.currentVersionToIndex()]=snap;this.changes=[];if(this.currentVersion-this.minVersion>=_ScriptVersionCache.maxVersions)this.minVersion=this.currentVersion-_ScriptVersionCache.maxVersions+1}return snap}getSnapshotVersion(){return this._getSnapshot().version}getAbsolutePositionAndLineText(oneBasedLine){return this._getSnapshot().index.lineNumberToInfo(oneBasedLine)}lineOffsetToPosition(line,column){return this._getSnapshot().index.absolutePositionOfStartOfLine(line)+(column-1)}positionToLineOffset(position){return this._getSnapshot().index.positionToLineOffset(position)}lineToTextSpan(line){const index=this._getSnapshot().index;const{lineText,absolutePosition}=index.lineNumberToInfo(line+1);const len=void 0!==lineText?lineText.length:index.absolutePositionOfStartOfLine(line+2)-absolutePosition;return createTextSpan(absolutePosition,len)}getTextChangesBetweenVersions(oldVersion,newVersion){if(!(oldVersion<newVersion))return unchangedTextChangeRange;if(!(oldVersion>=this.minVersion))return;{const textChangeRanges=[];for(let i=oldVersion+1;i<=newVersion;i++){const snap=this.versions[this.versionToIndex(i)];for(const textChange of snap.changesSincePreviousVersion)textChangeRanges.push(textChange.getTextChangeRange())}return collapseTextChangeRangesAcrossMultipleVersions(textChangeRanges)}}getLineCount(){return this._getSnapshot().index.getLineCount()}static fromString(script){const svc=new _ScriptVersionCache;const snap=new LineIndexSnapshot(0,svc,new LineIndex);svc.versions[svc.currentVersion]=snap;const lm=LineIndex.linesFromText(script);snap.index.load(lm.lines);return svc}};_ScriptVersionCache.changeNumberThreshold=8;_ScriptVersionCache.changeLengthThreshold=256;_ScriptVersionCache.maxVersions=8;var ScriptVersionCache=_ScriptVersionCache;var LineIndexSnapshot=class _LineIndexSnapshot{constructor(version2,cache,index,changesSincePreviousVersion=emptyArray2){this.version=version2;this.cache=cache;this.index=index;this.changesSincePreviousVersion=changesSincePreviousVersion}getText(rangeStart,rangeEnd){return this.index.getText(rangeStart,rangeEnd-rangeStart)}getLength(){return this.index.getLength()}getChangeRange(oldSnapshot){if(oldSnapshot instanceof _LineIndexSnapshot&&this.cache===oldSnapshot.cache)if(this.version<=oldSnapshot.version)return unchangedTextChangeRange;else return this.cache.getTextChangesBetweenVersions(oldSnapshot.version,this.version)}};var LineIndex=class _LineIndex{constructor(){this.checkEdits=false}absolutePositionOfStartOfLine(oneBasedLine){return this.lineNumberToInfo(oneBasedLine).absolutePosition}positionToLineOffset(position){const{oneBasedLine,zeroBasedColumn}=this.root.charOffsetToLineInfo(1,position);return{line:oneBasedLine,offset:zeroBasedColumn+1}}positionToColumnAndLineText(position){return this.root.charOffsetToLineInfo(1,position)}getLineCount(){return this.root.lineCount()}lineNumberToInfo(oneBasedLine){const lineCount=this.getLineCount();if(!(oneBasedLine<=lineCount))return{absolutePosition:this.root.charCount(),lineText:void 0};{const{position,leaf}=this.root.lineNumberToInfo(oneBasedLine,0);return{absolutePosition:position,lineText:leaf&&leaf.text}}}load(lines){if(lines.length>0){const leaves=[];for(let i=0;i<lines.length;i++)leaves[i]=new LineLeaf(lines[i]);this.root=_LineIndex.buildTreeFromBottom(leaves)}else this.root=new LineNode}walk(rangeStart,rangeLength,walkFns){this.root.walk(rangeStart,rangeLength,walkFns)}getText(rangeStart,rangeLength){let accum="";if(rangeLength>0&&rangeStart<this.root.charCount())this.walk(rangeStart,rangeLength,{goSubtree:true,done:false,leaf:(relativeStart,relativeLength,ll)=>{accum=accum.concat(ll.text.substring(relativeStart,relativeStart+relativeLength))}});return accum}getLength(){return this.root.charCount()}every(f,rangeStart,rangeEnd){if(!rangeEnd)rangeEnd=this.root.charCount();const walkFns={goSubtree:true,done:false,leaf(relativeStart,relativeLength,ll){if(!f(ll,relativeStart,relativeLength))this.done=true}};this.walk(rangeStart,rangeEnd-rangeStart,walkFns);return!walkFns.done}edit(pos,deleteLength,newText){if(0===this.root.charCount()){Debug.assert(0===deleteLength);if(void 0!==newText){this.load(_LineIndex.linesFromText(newText).lines);return this}return}{let checkText;if(this.checkEdits){const source=this.getText(0,this.root.charCount());checkText=source.slice(0,pos)+newText+source.slice(pos+deleteLength)}const walker=new EditWalker;let suppressTrailingText=false;if(pos>=this.root.charCount()){pos=this.root.charCount()-1;const endString=this.getText(pos,1);newText=newText?endString+newText:endString;deleteLength=0;suppressTrailingText=true}else if(deleteLength>0){const e=pos+deleteLength;const{zeroBasedColumn,lineText}=this.positionToColumnAndLineText(e);if(0===zeroBasedColumn){deleteLength+=lineText.length;newText=newText?newText+lineText:lineText}}this.root.walk(pos,deleteLength,walker);walker.insertLines(newText,suppressTrailingText);if(this.checkEdits){const updatedText=walker.lineIndex.getText(0,walker.lineIndex.getLength());Debug.assert(checkText===updatedText,"buffer edit mismatch")}return walker.lineIndex}}static buildTreeFromBottom(nodes){if(nodes.length<lineCollectionCapacity)return new LineNode(nodes);const interiorNodes=new Array(Math.ceil(nodes.length/lineCollectionCapacity));let nodeIndex=0;for(let i=0;i<interiorNodes.length;i++){const end=Math.min(nodeIndex+lineCollectionCapacity,nodes.length);interiorNodes[i]=new LineNode(nodes.slice(nodeIndex,end));nodeIndex=end}return this.buildTreeFromBottom(interiorNodes)}static linesFromText(text){const lineMap=computeLineStarts(text);if(0===lineMap.length)return{lines:[],lineMap};const lines=new Array(lineMap.length);const lc=lineMap.length-1;for(let lmi=0;lmi<lc;lmi++)lines[lmi]=text.substring(lineMap[lmi],lineMap[lmi+1]);const endText=text.substring(lineMap[lc]);if(endText.length>0)lines[lc]=endText;else lines.pop();return{lines,lineMap}}};var LineNode=class _LineNode{constructor(children=[]){this.children=children;this.totalChars=0;this.totalLines=0;if(children.length)this.updateCounts()}isLeaf(){return false}updateCounts(){this.totalChars=0;this.totalLines=0;for(const child of this.children){this.totalChars+=child.charCount();this.totalLines+=child.lineCount()}}execWalk(rangeStart,rangeLength,walkFns,childIndex,nodeType){if(walkFns.pre)walkFns.pre(rangeStart,rangeLength,this.children[childIndex],this,nodeType);if(walkFns.goSubtree){this.children[childIndex].walk(rangeStart,rangeLength,walkFns);if(walkFns.post)walkFns.post(rangeStart,rangeLength,this.children[childIndex],this,nodeType)}else walkFns.goSubtree=true;return walkFns.done}skipChild(relativeStart,relativeLength,childIndex,walkFns,nodeType){if(walkFns.pre&&!walkFns.done){walkFns.pre(relativeStart,relativeLength,this.children[childIndex],this,nodeType);walkFns.goSubtree=true}}walk(rangeStart,rangeLength,walkFns){if(0===this.children.length)return;let childIndex=0;let childCharCount=this.children[childIndex].charCount();let adjustedStart=rangeStart;while(adjustedStart>=childCharCount){this.skipChild(adjustedStart,rangeLength,childIndex,walkFns,0);adjustedStart-=childCharCount;childIndex++;childCharCount=this.children[childIndex].charCount()}if(adjustedStart+rangeLength<=childCharCount){if(this.execWalk(adjustedStart,rangeLength,walkFns,childIndex,2))return}else{if(this.execWalk(adjustedStart,childCharCount-adjustedStart,walkFns,childIndex,1))return;let adjustedLength=rangeLength-(childCharCount-adjustedStart);childIndex++;const child=this.children[childIndex];childCharCount=child.charCount();while(adjustedLength>childCharCount){if(this.execWalk(0,childCharCount,walkFns,childIndex,3))return;adjustedLength-=childCharCount;childIndex++;childCharCount=this.children[childIndex].charCount()}if(adjustedLength>0){if(this.execWalk(0,adjustedLength,walkFns,childIndex,4))return}}if(walkFns.pre){const clen=this.children.length;if(childIndex<clen-1)for(let ej=childIndex+1;ej<clen;ej++)this.skipChild(0,0,ej,walkFns,5)}}charOffsetToLineInfo(lineNumberAccumulator,relativePosition){if(0===this.children.length)return{oneBasedLine:lineNumberAccumulator,zeroBasedColumn:relativePosition,lineText:void 0};for(const child of this.children)if(child.charCount()>relativePosition)if(child.isLeaf())return{oneBasedLine:lineNumberAccumulator,zeroBasedColumn:relativePosition,lineText:child.text};else return child.charOffsetToLineInfo(lineNumberAccumulator,relativePosition);else{relativePosition-=child.charCount();lineNumberAccumulator+=child.lineCount()}const lineCount=this.lineCount();if(0===lineCount)return{oneBasedLine:1,zeroBasedColumn:0,lineText:void 0};const leaf=Debug.checkDefined(this.lineNumberToInfo(lineCount,0).leaf);return{oneBasedLine:lineCount,zeroBasedColumn:leaf.charCount(),lineText:void 0}}lineNumberToInfo(relativeOneBasedLine,positionAccumulator){for(const child of this.children){const childLineCount=child.lineCount();if(childLineCount>=relativeOneBasedLine)return child.isLeaf()?{position:positionAccumulator,leaf:child}:child.lineNumberToInfo(relativeOneBasedLine,positionAccumulator);relativeOneBasedLine-=childLineCount;positionAccumulator+=child.charCount()}return{position:positionAccumulator,leaf:void 0}}splitAfter(childIndex){let splitNode;const clen=this.children.length;childIndex++;const endLength=childIndex;if(childIndex<clen){splitNode=new _LineNode;while(childIndex<clen){splitNode.add(this.children[childIndex]);childIndex++}splitNode.updateCounts()}this.children.length=endLength;return splitNode}remove(child){const childIndex=this.findChildIndex(child);const clen=this.children.length;if(childIndex<clen-1)for(let i=childIndex;i<clen-1;i++)this.children[i]=this.children[i+1];this.children.pop()}findChildIndex(child){const childIndex=this.children.indexOf(child);Debug.assert(-1!==childIndex);return childIndex}insertAt(child,nodes){let childIndex=this.findChildIndex(child);const clen=this.children.length;const nodeCount=nodes.length;if(clen<lineCollectionCapacity&&childIndex===clen-1&&1===nodeCount){this.add(nodes[0]);this.updateCounts();return[]}{const shiftNode=this.splitAfter(childIndex);let nodeIndex=0;childIndex++;while(childIndex<lineCollectionCapacity&&nodeIndex<nodeCount){this.children[childIndex]=nodes[nodeIndex];childIndex++;nodeIndex++}let splitNodes=[];let splitNodeCount=0;if(nodeIndex<nodeCount){splitNodeCount=Math.ceil((nodeCount-nodeIndex)/lineCollectionCapacity);splitNodes=new Array(splitNodeCount);let splitNodeIndex=0;for(let i=0;i<splitNodeCount;i++)splitNodes[i]=new _LineNode;let splitNode=splitNodes[0];while(nodeIndex<nodeCount){splitNode.add(nodes[nodeIndex]);nodeIndex++;if(splitNode.children.length===lineCollectionCapacity){splitNodeIndex++;splitNode=splitNodes[splitNodeIndex]}}for(let i=splitNodes.length-1;i>=0;i--)if(0===splitNodes[i].children.length)splitNodes.pop()}if(shiftNode)splitNodes.push(shiftNode);this.updateCounts();for(let i=0;i<splitNodeCount;i++)splitNodes[i].updateCounts();return splitNodes}}add(collection){this.children.push(collection);Debug.assert(this.children.length<=lineCollectionCapacity)}charCount(){return this.totalChars}lineCount(){return this.totalLines}};var LineLeaf=class{constructor(text){this.text=text}isLeaf(){return true}walk(rangeStart,rangeLength,walkFns){walkFns.leaf(rangeStart,rangeLength,this)}charCount(){return this.text.length}lineCount(){return 1}};var _TypingsInstallerAdapter=class _TypingsInstallerAdapter{constructor(telemetryEnabled,logger,host,globalTypingsCacheLocation,event,maxActiveRequestCount){this.telemetryEnabled=telemetryEnabled;this.logger=logger;this.host=host;this.globalTypingsCacheLocation=globalTypingsCacheLocation;this.event=event;this.maxActiveRequestCount=maxActiveRequestCount;this.activeRequestCount=0;this.requestQueue=createQueue();this.requestMap=/* @__PURE__ */new Map;this.requestedRegistry=false;this.packageInstallId=0}isKnownTypesPackageName(name){var _a;const validationResult=ts_JsTyping_exports.validatePackageName(name);if(validationResult!==ts_JsTyping_exports.NameValidationResult.Ok)return false;if(!this.requestedRegistry){this.requestedRegistry=true;this.installer.send({kind:"typesRegistry"})}return!!(null==(_a=this.typesRegistryCache)?void 0:_a.has(name))}installPackage(options){this.packageInstallId++;const request={kind:"installPackage",...options,id:this.packageInstallId};const promise=new Promise((resolve,reject)=>{(this.packageInstalledPromise??(this.packageInstalledPromise=/* @__PURE__ */new Map)).set(this.packageInstallId,{resolve,reject})});this.installer.send(request);return promise}attach(projectService){this.projectService=projectService;this.installer=this.createInstallerProcess()}onProjectClosed(p){this.installer.send({projectName:p.getProjectName(),kind:"closeProject"})}enqueueInstallTypingsRequest(project,typeAcquisition,unresolvedImports){const request=createInstallTypingsRequest(project,typeAcquisition,unresolvedImports);if(this.logger.hasLevel(3))this.logger.info(`TIAdapter:: Scheduling throttled operation:${stringifyIndented(request)}`);if(this.activeRequestCount<this.maxActiveRequestCount)this.scheduleRequest(request);else{if(this.logger.hasLevel(3))this.logger.info(`TIAdapter:: Deferring request for: ${request.projectName}`);this.requestQueue.enqueue(request);this.requestMap.set(request.projectName,request)}}handleMessage(response){var _a,_b;if(this.logger.hasLevel(3))this.logger.info(`TIAdapter:: Received response:${stringifyIndented(response)}`);switch(response.kind){case EventTypesRegistry:this.typesRegistryCache=new Map(Object.entries(response.typesRegistry));break;case ActionPackageInstalled:{const promise=null==(_a=this.packageInstalledPromise)?void 0:_a.get(response.id);Debug.assertIsDefined(promise,"Should find the promise for package install");null==(_b=this.packageInstalledPromise)||_b.delete(response.id);if(response.success)promise.resolve({successMessage:response.message});else promise.reject(response.message);this.projectService.updateTypingsForProject(response);this.event(response,"setTypings");break}case EventInitializationFailed:{const body={message:response.message};const eventName="typesInstallerInitializationFailed";this.event(body,eventName);break}case EventBeginInstallTypes:{const body={eventId:response.eventId,packages:response.packagesToInstall};const eventName="beginInstallTypes";this.event(body,eventName);break}case EventEndInstallTypes:{if(this.telemetryEnabled){const body2={telemetryEventName:"typingsInstalled",payload:{installedPackages:response.packagesToInstall.join(","),installSuccess:response.installSuccess,typingsInstallerVersion:response.typingsInstallerVersion}};const eventName2="telemetry";this.event(body2,eventName2)}const body={eventId:response.eventId,packages:response.packagesToInstall,success:response.installSuccess};const eventName="endInstallTypes";this.event(body,eventName);break}case ActionInvalidate:this.projectService.updateTypingsForProject(response);break;case ActionSet:if(this.activeRequestCount>0)this.activeRequestCount--;else Debug.fail("TIAdapter:: Received too many responses");while(!this.requestQueue.isEmpty()){const queuedRequest=this.requestQueue.dequeue();if(this.requestMap.get(queuedRequest.projectName)===queuedRequest){this.requestMap.delete(queuedRequest.projectName);this.scheduleRequest(queuedRequest);break}if(this.logger.hasLevel(3))this.logger.info(`TIAdapter:: Skipping defunct request for: ${queuedRequest.projectName}`)}this.projectService.updateTypingsForProject(response);this.event(response,"setTypings");break;case ActionWatchTypingLocations:this.projectService.watchTypingLocations(response);break;default:assertType(response)}}scheduleRequest(request){if(this.logger.hasLevel(3))this.logger.info(`TIAdapter:: Scheduling request for: ${request.projectName}`);this.activeRequestCount++;this.host.setTimeout(()=>{if(this.logger.hasLevel(3))this.logger.info(`TIAdapter:: Sending request:${stringifyIndented(request)}`);this.installer.send(request)},_TypingsInstallerAdapter.requestDelayMillis,`${request.projectName}::${request.kind}`)}};_TypingsInstallerAdapter.requestDelayMillis=100;var TypingsInstallerAdapter=_TypingsInstallerAdapter;var ts_server_exports4={};__export(ts_server_exports4,{ActionInvalidate:()=>ActionInvalidate,ActionPackageInstalled:()=>ActionPackageInstalled,ActionSet:()=>ActionSet,ActionWatchTypingLocations:()=>ActionWatchTypingLocations,Arguments:()=>Arguments,AutoImportProviderProject:()=>AutoImportProviderProject,AuxiliaryProject:()=>AuxiliaryProject,CharRangeSection:()=>CharRangeSection,CloseFileWatcherEvent:()=>CloseFileWatcherEvent,CommandNames:()=>CommandNames,ConfigFileDiagEvent:()=>ConfigFileDiagEvent,ConfiguredProject:()=>ConfiguredProject2,ConfiguredProjectLoadKind:()=>ConfiguredProjectLoadKind,CreateDirectoryWatcherEvent:()=>CreateDirectoryWatcherEvent,CreateFileWatcherEvent:()=>CreateFileWatcherEvent,Errors:()=>Errors,EventBeginInstallTypes:()=>EventBeginInstallTypes,EventEndInstallTypes:()=>EventEndInstallTypes,EventInitializationFailed:()=>EventInitializationFailed,EventTypesRegistry:()=>EventTypesRegistry,ExternalProject:()=>ExternalProject,GcTimer:()=>GcTimer,InferredProject:()=>InferredProject2,LargeFileReferencedEvent:()=>LargeFileReferencedEvent,LineIndex:()=>LineIndex,LineLeaf:()=>LineLeaf,LineNode:()=>LineNode,LogLevel:()=>LogLevel2,Msg:()=>Msg,OpenFileInfoTelemetryEvent:()=>OpenFileInfoTelemetryEvent,Project:()=>Project2,ProjectInfoTelemetryEvent:()=>ProjectInfoTelemetryEvent,ProjectKind:()=>ProjectKind,ProjectLanguageServiceStateEvent:()=>ProjectLanguageServiceStateEvent,ProjectLoadingFinishEvent:()=>ProjectLoadingFinishEvent,ProjectLoadingStartEvent:()=>ProjectLoadingStartEvent,ProjectService:()=>ProjectService2,ProjectsUpdatedInBackgroundEvent:()=>ProjectsUpdatedInBackgroundEvent,ScriptInfo:()=>ScriptInfo,ScriptVersionCache:()=>ScriptVersionCache,Session:()=>Session3,TextStorage:()=>TextStorage,ThrottledOperations:()=>ThrottledOperations,TypingsInstallerAdapter:()=>TypingsInstallerAdapter,allFilesAreJsOrDts:()=>allFilesAreJsOrDts,allRootFilesAreJsOrDts:()=>allRootFilesAreJsOrDts,asNormalizedPath:()=>asNormalizedPath,convertCompilerOptions:()=>convertCompilerOptions,convertFormatOptions:()=>convertFormatOptions,convertScriptKindName:()=>convertScriptKindName,convertTypeAcquisition:()=>convertTypeAcquisition,convertUserPreferences:()=>convertUserPreferences,convertWatchOptions:()=>convertWatchOptions,countEachFileTypes:()=>countEachFileTypes,createInstallTypingsRequest:()=>createInstallTypingsRequest,createModuleSpecifierCache:()=>createModuleSpecifierCache,createNormalizedPathMap:()=>createNormalizedPathMap,createPackageJsonCache:()=>createPackageJsonCache,createSortedArray:()=>createSortedArray2,emptyArray:()=>emptyArray2,findArgument:()=>findArgument,formatDiagnosticToProtocol:()=>formatDiagnosticToProtocol,formatMessage:()=>formatMessage2,getBaseConfigFileName:()=>getBaseConfigFileName,getDetailWatchInfo:()=>getDetailWatchInfo,getLocationInNewDocument:()=>getLocationInNewDocument,hasArgument:()=>hasArgument,hasNoTypeScriptSource:()=>hasNoTypeScriptSource,indent:()=>indent2,isBackgroundProject:()=>isBackgroundProject,isConfigFile:()=>isConfigFile,isConfiguredProject:()=>isConfiguredProject,isDynamicFileName:()=>isDynamicFileName,isExternalProject:()=>isExternalProject,isInferredProject:()=>isInferredProject,isInferredProjectName:()=>isInferredProjectName,isProjectDeferredClose:()=>isProjectDeferredClose,makeAutoImportProviderProjectName:()=>makeAutoImportProviderProjectName,makeAuxiliaryProjectName:()=>makeAuxiliaryProjectName,makeInferredProjectName:()=>makeInferredProjectName,maxFileSize:()=>maxFileSize,maxProgramSizeForNonTsFiles:()=>maxProgramSizeForNonTsFiles,normalizedPathToPath:()=>normalizedPathToPath,nowString:()=>nowString,nullCancellationToken:()=>nullCancellationToken,nullTypingsInstaller:()=>nullTypingsInstaller,protocol:()=>ts_server_protocol_exports,scriptInfoIsContainedByBackgroundProject:()=>scriptInfoIsContainedByBackgroundProject,scriptInfoIsContainedByDeferredClosedProject:()=>scriptInfoIsContainedByDeferredClosedProject,stringifyIndented:()=>stringifyIndented,toEvent:()=>toEvent,toNormalizedPath:()=>toNormalizedPath,tryConvertScriptKindName:()=>tryConvertScriptKindName,typingsInstaller:()=>ts_server_typingsInstaller_exports,updateProjectIfDirty:()=>updateProjectIfDirty});if("undefined"!=typeof console)Debug.loggingHost={log(level,s){switch(level){case 1:return console.error(s);case 2:return console.warn(s);case 3:return console.log(s);case 4:return console.log(s)}}}})({get exports(){return ts},set exports(v){ts=v;if(module.exports)module.exports=v}})},3862:function(module){function webpackEmptyContext(req){var e=new Error("Cannot find module '"+req+"'");e.code="MODULE_NOT_FOUND";throw e}webpackEmptyContext.keys=()=>[];webpackEmptyContext.resolve=webpackEmptyContext;webpackEmptyContext.id=3862;module.exports=webpackEmptyContext},652:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__);__webpack_require__.d(__webpack_exports__,{ModuleFederationPlayground:()=>App,default:()=>App});const App_module={"vp-root":"vp-root-o94tBV",vpRoot:"vp-root-o94tBV","vp-main":"vp-main-ukILls",vpMain:"vp-main-ukILls","vp-left":"vp-left-wWIJZj",vpLeft:"vp-left-wWIJZj","vp-splitter":"vp-splitter-C3LUiw",vpSplitter:"vp-splitter-C3LUiw","vp-card":"vp-card-OxIN8P",vpCard:"vp-card-OxIN8P","vp-cardHeader":"vp-cardHeader-yl8bmF",vpCardHeader:"vp-cardHeader-yl8bmF","vp-cardTitle":"vp-cardTitle-iRjbB2",vpCardTitle:"vp-cardTitle-iRjbB2","vp-editorTabs":"vp-editorTabs-P8EPHu",vpEditorTabs:"vp-editorTabs-P8EPHu","vp-editorTab":"vp-editorTab-en3Nbi",vpEditorTab:"vp-editorTab-en3Nbi","vp-editorTabActive":"vp-editorTabActive-j1OAlc",vpEditorTabActive:"vp-editorTabActive-j1OAlc","vp-cardBody":"vp-cardBody-UdVf2N",vpCardBody:"vp-cardBody-UdVf2N","vp-paneActions":"vp-paneActions-l5K74Q",vpPaneActions:"vp-paneActions-l5K74Q","vp-collapse":"vp-collapse-VViOM4",vpCollapse:"vp-collapse-VViOM4","vp-collapseItem":"vp-collapseItem-MtDnlb",vpCollapseItem:"vp-collapseItem-MtDnlb","vp-collapseHeader":"vp-collapseHeader-Y1drUL",vpCollapseHeader:"vp-collapseHeader-Y1drUL","vp-collapseHeaderActive":"vp-collapseHeaderActive-d5oo1z",vpCollapseHeaderActive:"vp-collapseHeaderActive-d5oo1z","vp-collapseLabel":"vp-collapseLabel-SYefMk",vpCollapseLabel:"vp-collapseLabel-SYefMk","vp-collapseArrow":"vp-collapseArrow-s7319m",vpCollapseArrow:"vp-collapseArrow-s7319m","vp-collapseArrowOpen":"vp-collapseArrowOpen-NQp4Jq",vpCollapseArrowOpen:"vp-collapseArrowOpen-NQp4Jq","vp-collapseBody":"vp-collapseBody-ig7Trn",vpCollapseBody:"vp-collapseBody-ig7Trn","vp-collapseBodyCode":"vp-collapseBodyCode-ACBnWh",vpCollapseBodyCode:"vp-collapseBodyCode-ACBnWh","vp-form":"vp-form-pITn1W",vpForm:"vp-form-pITn1W","vp-fieldGrid":"vp-fieldGrid-SR9eJh",vpFieldGrid:"vp-fieldGrid-SR9eJh","vp-field":"vp-field-NzMT8s",vpField:"vp-field-NzMT8s","vp-labelRow":"vp-labelRow-DlcEeA",vpLabelRow:"vp-labelRow-DlcEeA","vp-label":"vp-label-KGpsbl",vpLabel:"vp-label-KGpsbl","vp-hint":"vp-hint-fYzOU2",vpHint:"vp-hint-fYzOU2","vp-input":"vp-input-UHKU2F",vpInput:"vp-input-UHKU2F","vp-select":"vp-select-Tk6IhF",vpSelect:"vp-select-Tk6IhF","vp-codeEditor":"vp-codeEditor-bXbNn1",vpCodeEditor:"vp-codeEditor-bXbNn1","vp-editorToolbar":"vp-editorToolbar-SVglCq",vpEditorToolbar:"vp-editorToolbar-SVglCq","vp-loadingSimple":"vp-loadingSimple-t3py2h",vpLoadingSimple:"vp-loadingSimple-t3py2h","vp-loadingSpinner":"vp-loadingSpinner-YRww21",vpLoadingSpinner:"vp-loadingSpinner-YRww21","vp-spin":"vp-spin-vqXwPJ",vpSpin:"vp-spin-vqXwPJ","vp-previewFrame":"vp-previewFrame-K_cT99",vpPreviewFrame:"vp-previewFrame-K_cT99","vp-actions":"vp-actions-kW_pM2",vpActions:"vp-actions-kW_pM2","vp-button":"vp-button-jQtwaB",vpButton:"vp-button-jQtwaB","vp-buttonGhost":"vp-buttonGhost-wKOfIf",vpButtonGhost:"vp-buttonGhost-wKOfIf","vp-buttonPrimary":"vp-buttonPrimary-SYnJ9I",vpButtonPrimary:"vp-buttonPrimary-SYnJ9I",vpShimmer:"vpShimmer-XeNYGG","vp-codeBlock":"vp-codeBlock-CMSobd",vpCodeBlock:"vp-codeBlock-CMSobd","vp-emptyTitle":"vp-emptyTitle-LUdxhN",vpEmptyTitle:"vp-emptyTitle-LUdxhN","vp-copyBtn":"vp-copyBtn-rEbuE6",vpCopyBtn:"vp-copyBtn-rEbuE6","vp-copyIcon":"vp-copyIcon-C8ndDr",vpCopyIcon:"vp-copyIcon-C8ndDr","vp-right":"vp-right-Pdn7k6",vpRight:"vp-right-Pdn7k6","vp-ide":"vp-ide-MCK1rq",vpIde:"vp-ide-MCK1rq","vp-ideTitlebar":"vp-ideTitlebar-xV_SLu",vpIdeTitlebar:"vp-ideTitlebar-xV_SLu","vp-ideDots":"vp-ideDots-rmPPqM",vpIdeDots:"vp-ideDots-rmPPqM","vp-dot":"vp-dot-QAY3S7",vpDot:"vp-dot-QAY3S7","vp-dotRed":"vp-dotRed-qBSHb4",vpDotRed:"vp-dotRed-qBSHb4","vp-dotYellow":"vp-dotYellow-JiMbQd",vpDotYellow:"vp-dotYellow-JiMbQd","vp-dotGreen":"vp-dotGreen-p1oJVa",vpDotGreen:"vp-dotGreen-p1oJVa","vp-ideTitle":"vp-ideTitle-pyBOAZ",vpIdeTitle:"vp-ideTitle-pyBOAZ","vp-ideMeta":"vp-ideMeta-IwLWqJ",vpIdeMeta:"vp-ideMeta-IwLWqJ","vp-ideMetaText":"vp-ideMetaText-hM7Yjo",vpIdeMetaText:"vp-ideMetaText-hM7Yjo","vp-ideStatus":"vp-ideStatus-CNZYH6",vpIdeStatus:"vp-ideStatus-CNZYH6","vp-ideBody":"vp-ideBody-iRMqXK",vpIdeBody:"vp-ideBody-iRMqXK","vp-empty":"vp-empty-WMX1Vp",vpEmpty:"vp-empty-WMX1Vp","vp-kv":"vp-kv-HhceUA",vpKv:"vp-kv-HhceUA","vp-renderArea":"vp-renderArea-UsEDCB",vpRenderArea:"vp-renderArea-UsEDCB","vp-terminal":"vp-terminal-F6_CEQ",vpTerminal:"vp-terminal-F6_CEQ","vp-terminalHeader":"vp-terminalHeader-BG3x8z",vpTerminalHeader:"vp-terminalHeader-BG3x8z","vp-terminalClear":"vp-terminalClear-N0wY3l",vpTerminalClear:"vp-terminalClear-N0wY3l","vp-terminalBody":"vp-terminalBody-Fn12Co",vpTerminalBody:"vp-terminalBody-Fn12Co","vp-terminalLine":"vp-terminalLine-V8_M04",vpTerminalLine:"vp-terminalLine-V8_M04","vp-terminalLineError":"vp-terminalLineError-puKD3j",vpTerminalLineError:"vp-terminalLineError-puKD3j","vp-terminalLineWarn":"vp-terminalLineWarn-BIZDl_",vpTerminalLineWarn:"vp-terminalLineWarn-BIZDl_","vp-terminalEmpty":"vp-terminalEmpty-pYP34A",vpTerminalEmpty:"vp-terminalEmpty-pYP34A","vp-errorPanel":"vp-errorPanel-zDWm6k",vpErrorPanel:"vp-errorPanel-zDWm6k","vp-errorTitle":"vp-errorTitle-ykARVb",vpErrorTitle:"vp-errorTitle-ykARVb"};var jsx_runtime_js_=__webpack_require__(8460);function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n}function _arrayWithHoles(r){if(Array.isArray(r))return r}function _defineProperty(e,r,t){return(r=_toPropertyKey(r))in e?Object.defineProperty(e,r,{value:t,enumerable:true,configurable:true,writable:true}):e[r]=t,e}function _iterableToArrayLimit(r,l){var t=null==r?null:"undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(null!=t){var e,n,i,u,a=[],f=true,o=false;try{if(i=(t=t.call(r)).next,0===l);else for(;!(f=(e=i.call(t)).done)&&(a.push(e.value),a.length!==l);f=!0);}catch(r){o=true,n=r}finally{try{if(!f&&null!=t.return&&(u=t.return(),Object(u)!==u))return}finally{if(o)throw n}}return a}}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function ownKeys(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})),t.push.apply(t,o)}return t}function _objectSpread2(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?ownKeys(Object(t),true).forEach(function(r){_defineProperty(e,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})}return e}function _objectWithoutProperties(e,t){if(null==e)return{};var o,r,i=_objectWithoutPropertiesLoose(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r<n.length;r++)o=n[r],-1===t.indexOf(o)&&({}).propertyIsEnumerable.call(e,o)&&(i[o]=e[o])}return i}function _objectWithoutPropertiesLoose(r,e){if(null==r)return{};var t={};for(var n in r)if(({}).hasOwnProperty.call(r,n)){if(-1!==e.indexOf(n))continue;t[n]=r[n]}return t}function _slicedToArray(r,e){return _arrayWithHoles(r)||_iterableToArrayLimit(r,e)||_unsupportedIterableToArray(r,e)||_nonIterableRest()}function _toPrimitive(t,r){if("object"!=typeof t||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r);if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}function _toPropertyKey(t){var i=_toPrimitive(t,"string");return"symbol"==typeof i?i:i+""}function _unsupportedIterableToArray(r,a){if(r){if("string"==typeof r)return _arrayLikeToArray(r,a);var t=({}).toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0}}function state_local_defineProperty(obj,key,value1){if(key in obj)Object.defineProperty(obj,key,{value:value1,enumerable:true,configurable:true,writable:true});else obj[key]=value1;return obj}function state_local_ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly)symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable});keys.push.apply(keys,symbols)}return keys}function state_local_objectSpread2(target){for(var i=1;i<arguments.length;i++){var source=null!=arguments[i]?arguments[i]:{};if(i%2)state_local_ownKeys(Object(source),true).forEach(function(key){state_local_defineProperty(target,key,source[key])});else if(Object.getOwnPropertyDescriptors)Object.defineProperties(target,Object.getOwnPropertyDescriptors(source));else state_local_ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))})}return target}function state_local_compose(){for(var _len=arguments.length,fns=new Array(_len),_key=0;_key<_len;_key++)fns[_key]=arguments[_key];return function(x){return fns.reduceRight(function(y,f){return f(y)},x)}}function curry(fn){return function curried(){var _this=this;for(var _len2=arguments.length,args=new Array(_len2),_key2=0;_key2<_len2;_key2++)args[_key2]=arguments[_key2];return args.length>=fn.length?fn.apply(this,args):function(){for(var _len3=arguments.length,nextArgs=new Array(_len3),_key3=0;_key3<_len3;_key3++)nextArgs[_key3]=arguments[_key3];return curried.apply(_this,[].concat(args,nextArgs))}}}function isObject(value1){return({}).toString.call(value1).includes("Object")}function isEmpty(obj){return!Object.keys(obj).length}function isFunction(value1){return"function"==typeof value1}function state_local_hasOwnProperty(object,property){return Object.prototype.hasOwnProperty.call(object,property)}function validateChanges(initial,changes){if(!isObject(changes))errorHandler("changeType");if(Object.keys(changes).some(function(field){return!state_local_hasOwnProperty(initial,field)}))errorHandler("changeField");return changes}function validateSelector(selector){if(!isFunction(selector))errorHandler("selectorType")}function validateHandler(handler){if(!(isFunction(handler)||isObject(handler)))errorHandler("handlerType");if(isObject(handler)&&Object.values(handler).some(function(_handler){return!isFunction(_handler)}))errorHandler("handlersType")}function validateInitial(initial){if(!initial)errorHandler("initialIsRequired");if(!isObject(initial))errorHandler("initialType");if(isEmpty(initial))errorHandler("initialContent")}function throwError(errorMessages,type){throw new Error(errorMessages[type]||errorMessages["default"])}var state_local_errorMessages={initialIsRequired:"initial state is required",initialType:"initial state should be an object",initialContent:"initial state shouldn't be an empty object",handlerType:"handler should be an object or a function",handlersType:"all handlers should be a functions",selectorType:"selector should be a function",changeType:"provided value of changes should be an object",changeField:'it seams you want to change a field in the state which is not specified in the "initial" state',default:"an unknown error accured in `state-local` package"};var errorHandler=curry(throwError)(state_local_errorMessages);var validators={changes:validateChanges,selector:validateSelector,handler:validateHandler,initial:validateInitial};function create(initial){var handler=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};validators.initial(initial);validators.handler(handler);var state={current:initial};var didUpdate=curry(didStateUpdate)(state,handler);var update=curry(updateState)(state);var validate=curry(validators.changes)(initial);var getChanges=curry(extractChanges)(state);function getState(){var selector=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(state){return state};validators.selector(selector);return selector(state.current)}function setState(causedChanges){state_local_compose(didUpdate,update,validate,getChanges)(causedChanges)}return[getState,setState]}function extractChanges(state,causedChanges){return isFunction(causedChanges)?causedChanges(state.current):causedChanges}function updateState(state,changes){state.current=state_local_objectSpread2(state_local_objectSpread2({},state.current),changes);return changes}function didStateUpdate(state,handler,changes){isFunction(handler)?handler(state.current):Object.keys(changes).forEach(function(field){var _handler$field;return null==(_handler$field=handler[field])?void 0:_handler$field.call(handler,state.current[field])});return changes}var index={create:create};const state_local=index;var config_config={paths:{vs:"https://cdn.jsdelivr.net/npm/monaco-editor@0.55.1/min/vs"}};function curry_curry(fn){return function curried(){var _this=this;for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++)args[_key]=arguments[_key];return args.length>=fn.length?fn.apply(this,args):function(){for(var _len2=arguments.length,nextArgs=new Array(_len2),_key2=0;_key2<_len2;_key2++)nextArgs[_key2]=arguments[_key2];return curried.apply(_this,[].concat(args,nextArgs))}}}function isObject_isObject(value1){return({}).toString.call(value1).includes("Object")}function validateConfig(config){if(!config)validators_errorHandler("configIsRequired");if(!isObject_isObject(config))validators_errorHandler("configType");if(config.urls){informAboutDeprecation();return{paths:{vs:config.urls.monacoBase}}}return config}function informAboutDeprecation(){console.warn(validators_errorMessages.deprecation)}function validators_throwError(errorMessages,type){throw new Error(errorMessages[type]||errorMessages["default"])}var validators_errorMessages={configIsRequired:"the configuration object is required",configType:"the configuration object should be an object",default:"an unknown error accured in `@monaco-editor/loader` package",deprecation:"Deprecation warning!\n You are using deprecated way of configuration.\n\n Instead of using\n monaco.config({ urls: { monacoBase: '...' } })\n use\n monaco.config({ paths: { vs: '...' } })\n\n For more please check the link https://github.com/suren-atoyan/monaco-loader#config\n "};var validators_errorHandler=curry_curry(validators_throwError)(validators_errorMessages);var validators_validators={config:validateConfig};var compose_compose=function(){for(var _len=arguments.length,fns=new Array(_len),_key=0;_key<_len;_key++)fns[_key]=arguments[_key];return function(x){return fns.reduceRight(function(y,f){return f(y)},x)}};function merge(target,source){Object.keys(source).forEach(function(key){if(source[key]instanceof Object){if(target[key])Object.assign(source[key],merge(target[key],source[key]))}});return _objectSpread2(_objectSpread2({},target),source)}var CANCELATION_MESSAGE={type:"cancelation",msg:"operation is manually canceled"};function makeCancelable(promise){var hasCanceled_=false;var wrappedPromise=new Promise(function(resolve,reject){promise.then(function(val){return hasCanceled_?reject(CANCELATION_MESSAGE):resolve(val)});promise["catch"](reject)});return wrappedPromise.cancel=function(){return hasCanceled_=true},wrappedPromise}var _excluded=["monaco"];var _state$create=state_local.create({config:config_config,isInitialized:false,resolve:null,reject:null,monaco:null}),_state$create2=_slicedToArray(_state$create,2),loader_getState=_state$create2[0],loader_setState=_state$create2[1];function loader_config(globalConfig){var _validators$config=validators_validators.config(globalConfig),monaco=_validators$config.monaco,config=_objectWithoutProperties(_validators$config,_excluded);loader_setState(function(state){return{config:merge(state.config,config),monaco:monaco}})}function init(){var state=loader_getState(function(_ref){var monaco=_ref.monaco,isInitialized=_ref.isInitialized,resolve=_ref.resolve;return{monaco:monaco,isInitialized:isInitialized,resolve:resolve}});if(!state.isInitialized){loader_setState({isInitialized:true});if(state.monaco){state.resolve(state.monaco);return makeCancelable(wrapperPromise)}if(window.monaco&&window.monaco.editor){storeMonacoInstance(window.monaco);state.resolve(window.monaco);return makeCancelable(wrapperPromise)}compose_compose(injectScripts,getMonacoLoaderScript)(loader_configureLoader)}return makeCancelable(wrapperPromise)}function injectScripts(script){return document.body.appendChild(script)}function createScript(src){var script=document.createElement("script");return src&&(script.src=src),script}function getMonacoLoaderScript(configureLoader){var state=loader_getState(function(_ref2){var config=_ref2.config,reject=_ref2.reject;return{config:config,reject:reject}});var loaderScript=createScript("".concat(state.config.paths.vs,"/loader.js"));loaderScript.onload=function(){return configureLoader()};loaderScript.onerror=state.reject;return loaderScript}function loader_configureLoader(){var state=loader_getState(function(_ref3){var config=_ref3.config,resolve=_ref3.resolve,reject=_ref3.reject;return{config:config,resolve:resolve,reject:reject}});var require=window.require;require.config(state.config);require(["vs/editor/editor.main"],function(loaded){var monaco=loaded.m||loaded;storeMonacoInstance(monaco);state.resolve(monaco)},function(error){state.reject(error)})}function storeMonacoInstance(monaco){if(!loader_getState().monaco)loader_setState({monaco:monaco})}function __getMonacoInstance(){return loader_getState(function(_ref4){var monaco=_ref4.monaco;return monaco})}var wrapperPromise=new Promise(function(resolve,reject){return loader_setState({resolve:resolve,reject:reject})});var loader={config:loader_config,init:init,__getMonacoInstance:__getMonacoInstance};var index_js_=__webpack_require__(3383);var le={wrapper:{display:"flex",position:"relative",textAlign:"initial"},fullWidth:{width:"100%"},hide:{display:"none"}},v1=le;var ae={container:{display:"flex",height:"100%",width:"100%",justifyContent:"center",alignItems:"center"}},Y=ae;function Me({children:e}){return index_js_.createElement("div",{style:Y.container},e)}var Z=Me;var $=Z;function Ee({width:e,height:r,isEditorReady:n,loading:t,_ref:a,className:m,wrapperProps:E}){return index_js_.createElement("section",{style:{...v1.wrapper,width:e,height:r},...E},!n&&index_js_.createElement($,null,t),index_js_.createElement("div",{ref:a,style:{...v1.fullWidth,...!n&&v1.hide},className:m}))}var ee=Ee;var H=(0,index_js_.memo)(ee);function Ce(e){(0,index_js_.useEffect)(e,[])}var k=Ce;function he(e,r,n=!0){let t=(0,index_js_.useRef)(!0);(0,index_js_.useEffect)(t.current||!n?()=>{t.current=!1}:e,r)}var dist_l=he;function D(){}function h(e,r,n,t){return De(e,t)||be(e,r,n,t)}function De(e,r){return e.editor.getModel(te(e,r))}function be(e,r,n,t){return e.editor.createModel(r,n,t?te(e,t):void 0)}function te(e,r){return e.Uri.parse(r)}function Oe({original:e,modified:r,language:n,originalLanguage:t,modifiedLanguage:a,originalModelPath:m,modifiedModelPath:E,keepCurrentOriginalModel:g=!1,keepCurrentModifiedModel:N=!1,theme:x="light",loading:P="Loading...",options:y={},height:V="100%",width:z="100%",className:F,wrapperProps:j={},beforeMount:A=D,onMount:q=D}){let[M,O]=(0,index_js_.useState)(!1),[T,s]=(0,index_js_.useState)(!0),u=(0,index_js_.useRef)(null),c=(0,index_js_.useRef)(null),w=(0,index_js_.useRef)(null),d=(0,index_js_.useRef)(q),o=(0,index_js_.useRef)(A),b=(0,index_js_.useRef)(!1);k(()=>{let i=loader.init();return i.then(f=>(c.current=f)&&s(!1)).catch(f=>f?.type!=="cancelation"&&console.error("Monaco initialization: error:",f)),()=>u.current?I():i.cancel()}),dist_l(()=>{if(u.current&&c.current){let i=u.current.getOriginalEditor(),f=h(c.current,e||"",t||n||"text",m||"");f!==i.getModel()&&i.setModel(f)}},[m],M),dist_l(()=>{if(u.current&&c.current){let i=u.current.getModifiedEditor(),f=h(c.current,r||"",a||n||"text",E||"");f!==i.getModel()&&i.setModel(f)}},[E],M),dist_l(()=>{let i=u.current.getModifiedEditor();i.getOption(c.current.editor.EditorOption.readOnly)?i.setValue(r||""):r!==i.getValue()&&(i.executeEdits("",[{range:i.getModel().getFullModelRange(),text:r||"",forceMoveMarkers:!0}]),i.pushUndoStop())},[r],M),dist_l(()=>{u.current?.getModel()?.original.setValue(e||"")},[e],M),dist_l(()=>{let{original:i,modified:f}=u.current.getModel();c.current.editor.setModelLanguage(i,t||n||"text"),c.current.editor.setModelLanguage(f,a||n||"text")},[n,t,a],M),dist_l(()=>{c.current?.editor.setTheme(x)},[x],M),dist_l(()=>{u.current?.updateOptions(y)},[y],M);let L=(0,index_js_.useCallback)(()=>{if(!c.current)return;o.current(c.current);let i=h(c.current,e||"",t||n||"text",m||""),f=h(c.current,r||"",a||n||"text",E||"");u.current?.setModel({original:i,modified:f})},[n,r,a,e,t,m,E]),U=(0,index_js_.useCallback)(()=>{!b.current&&w.current&&(u.current=c.current.editor.createDiffEditor(w.current,{automaticLayout:!0,...y}),L(),c.current?.editor.setTheme(x),O(!0),b.current=!0)},[y,x,L]);(0,index_js_.useEffect)(()=>{M&&d.current(u.current,c.current)},[M]),(0,index_js_.useEffect)(()=>{T||M||U()},[T,M,U]);function I(){let i=u.current?.getModel();g||i?.original?.dispose(),N||i?.modified?.dispose(),u.current?.dispose()}return index_js_.createElement(H,{width:z,height:V,isEditorReady:M,loading:P,_ref:w,className:F,wrapperProps:j})}var ie=Oe;(0,index_js_.memo)(ie);function He(e){let r=(0,index_js_.useRef)();return(0,index_js_.useEffect)(()=>{r.current=e},[e]),r.current}var se=He;var dist_=new Map;function Ve({defaultValue:e,defaultLanguage:r,defaultPath:n,value:t,language:a,path:m,theme:E="light",line:g,loading:N="Loading...",options:x={},overrideServices:P={},saveViewState:y=!0,keepCurrentModel:V=!1,width:z="100%",height:F="100%",className:j,wrapperProps:A={},beforeMount:q=D,onMount:M=D,onChange:O,onValidate:T=D}){let[s,u]=(0,index_js_.useState)(!1),[c,w]=(0,index_js_.useState)(!0),d=(0,index_js_.useRef)(null),o=(0,index_js_.useRef)(null),b=(0,index_js_.useRef)(null),L=(0,index_js_.useRef)(M),U=(0,index_js_.useRef)(q),I=(0,index_js_.useRef)(),i=(0,index_js_.useRef)(t),f=se(m),Q=(0,index_js_.useRef)(!1),B=(0,index_js_.useRef)(!1);k(()=>{let p=loader.init();return p.then(R=>(d.current=R)&&w(!1)).catch(R=>R?.type!=="cancelation"&&console.error("Monaco initialization: error:",R)),()=>o.current?pe():p.cancel()}),dist_l(()=>{let p=h(d.current,e||t||"",r||a||"",m||n||"");p!==o.current?.getModel()&&(y&&dist_.set(f,o.current?.saveViewState()),o.current?.setModel(p),y&&o.current?.restoreViewState(dist_.get(m)))},[m],s),dist_l(()=>{o.current?.updateOptions(x)},[x],s),dist_l(()=>{o.current&&void 0!==t&&(o.current.getOption(d.current.editor.EditorOption.readOnly)?o.current.setValue(t):t!==o.current.getValue()&&(B.current=!0,o.current.executeEdits("",[{range:o.current.getModel().getFullModelRange(),text:t,forceMoveMarkers:!0}]),o.current.pushUndoStop(),B.current=!1))},[t],s),dist_l(()=>{let p=o.current?.getModel();p&&a&&d.current?.editor.setModelLanguage(p,a)},[a],s),dist_l(()=>{void 0!==g&&o.current?.revealLine(g)},[g],s),dist_l(()=>{d.current?.editor.setTheme(E)},[E],s);let X=(0,index_js_.useCallback)(()=>{if(!(!b.current||!d.current)&&!Q.current){U.current(d.current);let p=m||n,R=h(d.current,t||e||"",r||a||"",p||"");o.current=d.current?.editor.create(b.current,{model:R,automaticLayout:!0,...x},P),y&&o.current.restoreViewState(dist_.get(p)),d.current.editor.setTheme(E),void 0!==g&&o.current.revealLine(g),u(!0),Q.current=!0}},[e,r,n,t,a,m,x,P,y,E,g]);(0,index_js_.useEffect)(()=>{s&&L.current(o.current,d.current)},[s]),(0,index_js_.useEffect)(()=>{c||s||X()},[c,s,X]),i.current=t,(0,index_js_.useEffect)(()=>{s&&O&&(I.current?.dispose(),I.current=o.current?.onDidChangeModelContent(p=>{B.current||O(o.current.getValue(),p)}))},[s,O]),(0,index_js_.useEffect)(()=>{if(s){let p=d.current.editor.onDidChangeMarkers(R=>{let G=o.current.getModel()?.uri;if(G&&R.find(J=>J.path===G.path)){let J=d.current.editor.getModelMarkers({resource:G});T?.(J)}});return()=>{p?.dispose()}}return()=>{}},[s,T]);function pe(){I.current?.dispose(),V?y&&dist_.set(m,o.current.saveViewState()):o.current.getModel()?.dispose(),o.current.dispose()}return index_js_.createElement(H,{width:z,height:F,isEditorReady:s,loading:N,_ref:b,className:j,wrapperProps:A})}var fe=Ve;var de=(0,index_js_.memo)(fe);var Ft=de;var react_index_js_=__webpack_require__(9251);var react_dom_index_js_=__webpack_require__(9926);var client_js_=__webpack_require__(3493);var typescript=__webpack_require__(3122);const BRIDGE_RUNTIME_FILES={"bridge-base-BaKy6CY_.mjs":'var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);\nimport * as React from "react";\nimport { L as LoggerInstance, R as RouterContext } from "./index-Bs2NxD2z.mjs";\nimport { federationRuntime } from "./plugin.es.js";\nconst initialState = { didCatch: false, error: null };\nclass ErrorBoundary extends React.Component {\n constructor() {\n super(...arguments);\n __publicField(this, "state", initialState);\n __publicField(this, "resetErrorBoundary", (..._args) => {\n if (this.state.didCatch) {\n this.setState(initialState);\n }\n });\n }\n static getDerivedStateFromError(error) {\n return { didCatch: true, error };\n }\n render() {\n if (this.state.didCatch) {\n return /* @__PURE__ */ React.createElement(\n this.props.FallbackComponent,\n {\n error: this.state.error,\n resetErrorBoundary: this.resetErrorBoundary\n }\n );\n }\n return this.props.children;\n }\n}\nfunction createBaseBridgeComponent({\n createRoot,\n defaultRootOptions,\n ...bridgeInfo\n}) {\n return () => {\n const rootMap = /* @__PURE__ */ new Map();\n const instance = federationRuntime.instance;\n LoggerInstance.debug(\n `createBridgeComponent instance from props >>>`,\n instance\n );\n const RawComponent = (info) => {\n const { appInfo, propsInfo, ...restProps } = info;\n const { moduleName, memoryRoute, basename = "/" } = appInfo;\n return /* @__PURE__ */ React.createElement(RouterContext.Provider, { value: { moduleName, basename, memoryRoute } }, /* @__PURE__ */ React.createElement(\n bridgeInfo.rootComponent,\n {\n ...propsInfo,\n basename,\n ...restProps\n }\n ));\n };\n const DefaultFallback = ({ error }) => /* @__PURE__ */ React.createElement("div", { role: "alert" }, /* @__PURE__ */ React.createElement("p", null, "Something went wrong:"), /* @__PURE__ */ React.createElement("pre", { style: { color: "red" } }, error instanceof Error ? error.message : String(error)));\n const omitHostFallback = (props) => {\n const nextProps = { ...props };\n delete nextProps.fallback;\n return nextProps;\n };\n const BridgeWrapper = ({\n basename,\n moduleName,\n memoryRoute,\n propsInfo\n }) => /* @__PURE__ */ React.createElement(ErrorBoundary, { FallbackComponent: DefaultFallback }, /* @__PURE__ */ React.createElement(\n RawComponent,\n {\n appInfo: {\n moduleName,\n basename,\n memoryRoute\n },\n propsInfo\n }\n ));\n return {\n async render(info) {\n var _a, _b, _c, _d, _e, _f;\n LoggerInstance.debug(`createBridgeComponent render Info`, info);\n const {\n moduleName,\n dom,\n basename,\n memoryRoute,\n rootOptions,\n ...propsInfo\n } = info;\n const mergedRootOptions = {\n ...defaultRootOptions,\n ...rootOptions\n };\n const beforeBridgeRenderRes = ((_c = (_b = (_a = instance == null ? void 0 : instance.bridgeHook) == null ? void 0 : _a.lifecycle) == null ? void 0 : _b.beforeBridgeRender) == null ? void 0 : _c.emit(info)) || {};\n const rootComponentWithErrorBoundary = /* @__PURE__ */ React.createElement(\n BridgeWrapper,\n {\n basename,\n moduleName,\n memoryRoute,\n propsInfo: {\n ...omitHostFallback(propsInfo),\n basename,\n ...beforeBridgeRenderRes == null ? void 0 : beforeBridgeRenderRes.extraProps\n }\n }\n );\n if (bridgeInfo.render) {\n await Promise.resolve(\n bridgeInfo.render(rootComponentWithErrorBoundary, dom)\n ).then((root) => rootMap.set(dom, root));\n } else {\n let root = rootMap.get(dom);\n if (!root && createRoot) {\n root = createRoot(dom, mergedRootOptions);\n rootMap.set(dom, root);\n }\n if (root && "render" in root) {\n root.render(rootComponentWithErrorBoundary);\n }\n }\n ((_f = (_e = (_d = instance == null ? void 0 : instance.bridgeHook) == null ? void 0 : _d.lifecycle) == null ? void 0 : _e.afterBridgeRender) == null ? void 0 : _f.emit(info)) || {};\n },\n destroy(info) {\n var _a, _b, _c;\n const { dom } = info;\n LoggerInstance.debug(`createBridgeComponent destroy Info`, info);\n const root = rootMap.get(dom);\n if (root) {\n if ("unmount" in root) {\n root.unmount();\n } else {\n LoggerInstance.warn("Root does not have unmount method");\n }\n rootMap.delete(dom);\n }\n (_c = (_b = (_a = instance == null ? void 0 : instance.bridgeHook) == null ? void 0 : _a.lifecycle) == null ? void 0 : _b.afterBridgeDestroy) == null ? void 0 : _c.emit(info);\n }\n };\n };\n}\nexport {\n ErrorBoundary as E,\n createBaseBridgeComponent as c\n};\n',"createHelpers-BSHeKyd-.mjs":'import { c as createBaseBridgeComponent, E as ErrorBoundary } from "./bridge-base-BaKy6CY_.mjs";\nimport ReactDOM from "react-dom";\nimport { L as LoggerInstance, g as getRootDomDefaultClassName } from "./index-Bs2NxD2z.mjs";\nimport React__default, { forwardRef, useRef, useState, useEffect } from "react";\nimport { federationRuntime } from "./plugin.es.js";\nfunction createReact16Or17Root(container) {\n return {\n render(children) {\n const reactVersion = ReactDOM.version || "";\n const isReact18 = reactVersion.startsWith("18");\n const isReact19 = reactVersion.startsWith("19");\n if (isReact19) {\n throw new Error(\n `React 19 detected in legacy mode. This is not supported. Please use the version-specific import: import { createBridgeComponent } from \'@module-federation/bridge-react/v19\'`\n );\n }\n if (isReact18) {\n LoggerInstance.warn(\n `[Bridge-React] React 18 detected in legacy mode. For better compatibility, please use the version-specific import: import { createBridgeComponent } from \'@module-federation/bridge-react/v18\'`\n );\n }\n ReactDOM.render(children, container);\n },\n unmount() {\n ReactDOM.unmountComponentAtNode(container);\n }\n };\n}\nfunction createBridgeComponent(bridgeInfo) {\n const fullBridgeInfo = {\n createRoot: createReact16Or17Root,\n ...bridgeInfo\n };\n return createBaseBridgeComponent(fullBridgeInfo);\n}\nconst RemoteAppWrapper = forwardRef(function(props, ref) {\n const {\n moduleName,\n memoryRoute,\n basename,\n providerInfo,\n className,\n style,\n fallback,\n loading,\n ...resProps\n } = props;\n const instance = federationRuntime.instance;\n const rootRef = ref && "current" in ref ? ref : useRef(null);\n const renderDom = useRef(null);\n const providerInfoRef = useRef(null);\n const [initialized, setInitialized] = useState(false);\n LoggerInstance.debug(`RemoteAppWrapper instance from props >>>`, instance);\n useEffect(() => {\n if (initialized) return;\n const providerReturn = providerInfo();\n providerInfoRef.current = providerReturn;\n setInitialized(true);\n return () => {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n if ((_a = providerInfoRef.current) == null ? void 0 : _a.destroy) {\n LoggerInstance.debug(\n `createRemoteAppComponent LazyComponent destroy >>>`,\n { moduleName, basename, dom: renderDom.current }\n );\n (_d = (_c = (_b = instance == null ? void 0 : instance.bridgeHook) == null ? void 0 : _b.lifecycle) == null ? void 0 : _c.beforeBridgeDestroy) == null ? void 0 : _d.emit({\n moduleName,\n dom: renderDom.current,\n basename,\n memoryRoute,\n fallback,\n ...resProps\n });\n (_e = providerInfoRef.current) == null ? void 0 : _e.destroy({\n moduleName,\n dom: renderDom.current\n });\n (_h = (_g = (_f = instance == null ? void 0 : instance.bridgeHook) == null ? void 0 : _f.lifecycle) == null ? void 0 : _g.afterBridgeDestroy) == null ? void 0 : _h.emit({\n moduleName,\n dom: renderDom.current,\n basename,\n memoryRoute,\n fallback,\n ...resProps\n });\n }\n };\n }, [moduleName]);\n useEffect(() => {\n var _a, _b, _c, _d, _e, _f;\n if (!initialized || !providerInfoRef.current) return;\n let renderProps = {\n moduleName,\n dom: rootRef.current,\n basename,\n memoryRoute,\n fallback,\n ...resProps\n };\n renderDom.current = rootRef.current;\n const beforeBridgeRenderRes = ((_c = (_b = (_a = instance == null ? void 0 : instance.bridgeHook) == null ? void 0 : _a.lifecycle) == null ? void 0 : _b.beforeBridgeRender) == null ? void 0 : _c.emit(renderProps)) || {};\n renderProps = { ...renderProps, ...beforeBridgeRenderRes.extraProps };\n providerInfoRef.current.render(renderProps);\n (_f = (_e = (_d = instance == null ? void 0 : instance.bridgeHook) == null ? void 0 : _d.lifecycle) == null ? void 0 : _e.afterBridgeRender) == null ? void 0 : _f.emit(renderProps);\n }, [initialized, ...Object.values(props)]);\n const rootComponentClassName = `${getRootDomDefaultClassName(moduleName)} ${className || ""}`;\n return /* @__PURE__ */ React__default.createElement("div", { className: rootComponentClassName, style, ref: rootRef }, loading);\n});\nfunction createLazyRemoteComponentFactory(RemoteApp) {\n return function createLazyRemoteComponent(info) {\n const exportName = (info == null ? void 0 : info.export) || "default";\n return React__default.lazy(async () => {\n LoggerInstance.debug(\n `createRemoteAppComponent LazyComponent create >>>`,\n {\n lazyComponent: info.loader,\n exportName\n }\n );\n try {\n const m = await info.loader();\n const moduleName = m && m[Symbol.for("mf_module_id")];\n LoggerInstance.debug(\n `createRemoteAppComponent LazyComponent loadRemote info >>>`,\n { name: moduleName, module: m, exportName }\n );\n const exportFn = m[exportName];\n if (exportName in m && typeof exportFn === "function") {\n const RemoteAppComponent = forwardRef((props, ref) => {\n return /* @__PURE__ */ React__default.createElement(\n RemoteApp,\n {\n moduleName,\n providerInfo: exportFn,\n exportName: info.export || "default",\n fallback: info.fallback,\n loading: info.loading,\n ref,\n ...props\n }\n );\n });\n return {\n default: RemoteAppComponent\n };\n } else {\n LoggerInstance.debug(\n `createRemoteAppComponent LazyComponent module not found >>>`,\n { name: moduleName, module: m, exportName }\n );\n throw Error(\n `Make sure that ${moduleName} has the correct export when export is ${String(\n exportName\n )}`\n );\n }\n } catch (error) {\n throw error;\n }\n });\n };\n}\nfunction createRemoteAppComponentFactory(RemoteApp) {\n const createLazyRemoteComponent = createLazyRemoteComponentFactory(RemoteApp);\n return function createRemoteAppComponent(info) {\n const LazyComponent = createLazyRemoteComponent(info);\n return forwardRef((props, ref) => {\n return /* @__PURE__ */ React__default.createElement(\n ErrorBoundary,\n {\n FallbackComponent: info.fallback\n },\n /* @__PURE__ */ React__default.createElement(React__default.Suspense, { fallback: info.loading }, /* @__PURE__ */ React__default.createElement(LazyComponent, { ...props, ref }))\n );\n });\n };\n}\nfunction createDeprecatedRemoteComponentFactory(createFn) {\n return function createRemoteComponent(info) {\n LoggerInstance.warn(\n `createRemoteComponent is deprecated, please use createRemoteAppComponent instead!`\n );\n return createFn(info);\n };\n}\nexport {\n RemoteAppWrapper as R,\n createDeprecatedRemoteComponentFactory as a,\n createBridgeComponent as b,\n createRemoteAppComponentFactory as c\n};\n',"data-fetch-utils.es.js":'import { y as DATA_FETCH_FUNCTION } from "./utils-BBP3hEeV.mjs";\nimport { C, a, c, b, d, g, r } from "./utils-BBP3hEeV.mjs";\nimport { d as dataFetchFunction } from "./prefetch-BzCq3MT3.mjs";\nimport { i, p } from "./prefetch-BzCq3MT3.mjs";\nasync function callDataFetch() {\n const dataFetch = globalThis[DATA_FETCH_FUNCTION];\n if (dataFetch) {\n await Promise.all(\n dataFetch.map(async (options) => {\n await dataFetchFunction(options);\n })\n );\n }\n}\nexport {\n C as CacheSize,\n a as CacheTime,\n c as cache,\n callDataFetch,\n b as clearStore,\n d as configureCache,\n g as generateKey,\n i as injectDataFetch,\n p as prefetch,\n r as revalidateTag\n};\n',"index-Bs2NxD2z.mjs":'import React__default from "react";\nimport { c as createLogger } from "./logger-DwWkXsWl.mjs";\nconst RouterContext = React__default.createContext(null);\nconst LoggerInstance = createLogger(\n "[ Module Federation Bridge React ]"\n);\nfunction pathJoin(...args) {\n const res = args.reduce((res2, path) => {\n let nPath = path;\n if (!nPath || typeof nPath !== "string") {\n return res2;\n }\n if (nPath[0] !== "/") {\n nPath = `/${nPath}`;\n }\n const lastIndex = nPath.length - 1;\n if (nPath[lastIndex] === "/") {\n nPath = nPath.substring(0, lastIndex);\n }\n return res2 + nPath;\n }, "");\n return res || "/";\n}\nconst getModuleName = (id) => {\n if (!id) {\n return id;\n }\n const idArray = id.split("/");\n if (idArray.length < 2) {\n return id;\n }\n return idArray[0] + "/" + idArray[1];\n};\nconst getRootDomDefaultClassName = (moduleName) => {\n if (!moduleName) {\n return "";\n }\n const name = getModuleName(moduleName).replace(/\\@/, "").replace(/\\//, "-");\n return `bridge-root-component-${name}`;\n};\nexport {\n LoggerInstance as L,\n RouterContext as R,\n getRootDomDefaultClassName as g,\n pathJoin as p\n};\n',"index.es.js":'import { R as RemoteAppWrapper, c as createRemoteAppComponentFactory, a as createDeprecatedRemoteComponentFactory } from "./createHelpers-BSHeKyd-.mjs";\nimport { b } from "./createHelpers-BSHeKyd-.mjs";\nimport { a, c, b as b2, l } from "./lazy-load-component-plugin-DlagtX0O.mjs";\nimport { C, a as a2, E, c as c2, b as b3, d, g, r, s } from "./utils-BBP3hEeV.mjs";\nimport { callDataFetch } from "./data-fetch-utils.es.js";\nimport React__default, { forwardRef, useContext, useState, useEffect } from "react";\nimport * as ReactRouterDOM from "react-router-dom";\nimport { p as pathJoin, L as LoggerInstance } from "./index-Bs2NxD2z.mjs";\nimport { p } from "./prefetch-BzCq3MT3.mjs";\nfunction e() {\n const t = new PopStateEvent("popstate", { state: window.history.state });\n window.dispatchEvent(t);\n}\nfunction withRouterData(WrappedComponent) {\n const Component = forwardRef(function(props, ref) {\n var _a;\n if (props == null ? void 0 : props.basename) {\n return /* @__PURE__ */ React__default.createElement(WrappedComponent, { ...props, basename: props.basename, ref });\n }\n let enableDispathPopstate = false;\n let routerContextVal;\n try {\n ReactRouterDOM.useLocation();\n enableDispathPopstate = true;\n } catch {\n enableDispathPopstate = false;\n }\n let basename = "/";\n if (!props.basename && enableDispathPopstate) {\n const ReactRouterDOMAny = ReactRouterDOM;\n const useRouteMatch = ReactRouterDOMAny["useRouteMatch"];\n const useHistory = ReactRouterDOMAny["useHistory"];\n const useHref = ReactRouterDOMAny["useHref"];\n const UNSAFE_RouteContext = ReactRouterDOMAny["UNSAFE_RouteContext"];\n if (UNSAFE_RouteContext) {\n if (useHref) {\n basename = useHref == null ? void 0 : useHref("/");\n }\n routerContextVal = useContext(UNSAFE_RouteContext);\n if (routerContextVal && routerContextVal.matches && routerContextVal.matches.length > 0) {\n const matchIndex = routerContextVal.matches.length - 1;\n const pathnameBase = routerContextVal.matches[matchIndex].pathnameBase;\n basename = pathJoin(basename, pathnameBase || "/");\n }\n } else {\n const match = useRouteMatch == null ? void 0 : useRouteMatch();\n if (useHistory) {\n const history = useHistory == null ? void 0 : useHistory();\n basename = (_a = history == null ? void 0 : history.createHref) == null ? void 0 : _a.call(history, { pathname: "/" });\n }\n if (match) {\n basename = pathJoin(basename, (match == null ? void 0 : match.path) || "/");\n }\n }\n }\n LoggerInstance.debug(`createRemoteAppComponent withRouterData >>>`, {\n ...props,\n basename,\n routerContextVal,\n enableDispathPopstate\n });\n if (enableDispathPopstate) {\n const location = ReactRouterDOM.useLocation();\n const [pathname, setPathname] = useState(location.pathname);\n useEffect(() => {\n if (pathname !== "" && pathname !== location.pathname) {\n LoggerInstance.debug(\n `createRemoteAppComponent dispatchPopstateEnv >>>`,\n {\n name: props.name,\n pathname: location.pathname\n }\n );\n e();\n }\n setPathname(location.pathname);\n }, [location]);\n }\n return /* @__PURE__ */ React__default.createElement(WrappedComponent, { ...props, basename, ref });\n });\n return forwardRef(function(props, ref) {\n return /* @__PURE__ */ React__default.createElement(Component, { ...props, ref });\n });\n}\nconst RemoteApp = withRouterData(RemoteAppWrapper);\nconst createRemoteAppComponent = createRemoteAppComponentFactory(RemoteApp);\nconst createRemoteComponent = createDeprecatedRemoteComponentFactory(\n createRemoteAppComponent\n);\nexport {\n C as CacheSize,\n a2 as CacheTime,\n E as ERROR_TYPE,\n a as autoFetchDataPlugin,\n c2 as cache,\n callDataFetch,\n b3 as clearStore,\n c as collectSSRAssets,\n d as configureCache,\n b as createBridgeComponent,\n b2 as createLazyComponent,\n createRemoteAppComponent,\n createRemoteComponent,\n g as generateKey,\n l as lazyLoadComponentPlugin,\n p as prefetch,\n r as revalidateTag,\n s as setSSREnv\n};\n',"lazy-load-component-plugin-DlagtX0O.mjs":'import { i as injectDataFetch, p as prefetch } from "./prefetch-BzCq3MT3.mjs";\nimport { i as initDataFetchMap, k as isDataLoaderExpose, m as getDataFetchInfo, n as getDataFetchMapKey, l as logger, o as getDataFetchItem, p as DATA_FETCH_CLIENT_SUFFIX, q as MF_DATA_FETCH_TYPE, t as isCSROnly, M as MF_DATA_FETCH_STATUS, j as loadDataFetchModule, e as getDataFetchMap, u as isServerEnv, v as getDataFetchIdWithErrorMsgs, w as DATA_FETCH_ERROR_PREFIX, E as ERROR_TYPE, x as wrapDataFetchId, L as LOAD_REMOTE_ERROR_PREFIX, y as DATA_FETCH_FUNCTION, z as getLoadedRemoteInfos, h as fetchData$1, A as setDataFetchItemLoadedStatus, F as FS_HREF } from "./utils-BBP3hEeV.mjs";\nimport React__default, { useRef, useState, Suspense, useEffect } from "react";\nconst autoFetchData = () => {\n initDataFetchMap();\n injectDataFetch();\n return {\n name: "auto-fetch-data-plugin",\n afterLoadSnapshot(args) {\n const { id, moduleInfo, remoteSnapshot, host } = args;\n if (typeof id === "string" && isDataLoaderExpose(id)) {\n return args;\n }\n if (!remoteSnapshot || !id || !("modules" in remoteSnapshot)) {\n return args;\n }\n const { name, alias } = moduleInfo;\n const dataFetchInfo = getDataFetchInfo({\n name,\n alias,\n id,\n remoteSnapshot\n });\n if (!dataFetchInfo) {\n return args;\n }\n const { dataFetchId, dataFetchName } = dataFetchInfo;\n const dataFetchMapKey = getDataFetchMapKey(dataFetchInfo, {\n name: host.name,\n version: host.options.version\n });\n logger.debug(\n "======= auto fetch plugin dataFetchMapKey: ",\n dataFetchMapKey\n );\n if (!dataFetchMapKey) {\n return args;\n }\n const dataFetchItem = getDataFetchItem(dataFetchMapKey);\n if (dataFetchItem) {\n return args;\n }\n const dataFetchMap = getDataFetchMap();\n const hasSSRAsset = Boolean(remoteSnapshot.ssrRemoteEntry);\n const hasDataFetchClient = Boolean(\n remoteSnapshot.modules.find(\n (module) => module.moduleName === `${dataFetchName}${DATA_FETCH_CLIENT_SUFFIX}`\n )\n );\n const downgradeType = hasDataFetchClient ? MF_DATA_FETCH_TYPE.FETCH_CLIENT : hasSSRAsset ? MF_DATA_FETCH_TYPE.FETCH_SERVER : MF_DATA_FETCH_TYPE.FETCH_CLIENT;\n let finalDataFetchId = dataFetchId;\n if (!isServerEnv()) {\n finalDataFetchId = downgradeType === MF_DATA_FETCH_TYPE.FETCH_CLIENT ? hasDataFetchClient ? `${dataFetchId}${DATA_FETCH_CLIENT_SUFFIX}` : dataFetchId : dataFetchId;\n }\n const getDataFetchGetter = () => loadDataFetchModule(host, finalDataFetchId);\n const dataFetchFnItem = [\n getDataFetchGetter,\n downgradeType\n ];\n if (typeof window === "undefined" || isCSROnly()) {\n dataFetchFnItem.push(getDataFetchGetter());\n }\n dataFetchMap[dataFetchMapKey] = [\n dataFetchFnItem,\n void 0,\n MF_DATA_FETCH_STATUS.AWAIT\n ];\n return args;\n }\n };\n};\nfunction isPromise(obj) {\n return !!obj && (typeof obj === "object" || typeof obj === "function") && typeof obj.then === "function";\n}\nconst AWAIT_ERROR_PREFIX = "<Await /> caught the following error during render: ";\nconst transformError = (err) => {\n const errMsg = err instanceof Error ? err.message : err;\n const originalMsg = errMsg.replace(AWAIT_ERROR_PREFIX, "");\n const dataFetchMapKey = getDataFetchIdWithErrorMsgs(originalMsg);\n if (originalMsg.indexOf(DATA_FETCH_ERROR_PREFIX) === 0) {\n return {\n error: new Error(\n originalMsg.replace(DATA_FETCH_ERROR_PREFIX, "").replace(wrapDataFetchId(dataFetchMapKey), "")\n ),\n errorType: ERROR_TYPE.DATA_FETCH,\n dataFetchMapKey\n };\n }\n if (originalMsg.indexOf(LOAD_REMOTE_ERROR_PREFIX) === 0) {\n return {\n error: new Error(\n originalMsg.replace(LOAD_REMOTE_ERROR_PREFIX, "").replace(wrapDataFetchId(dataFetchMapKey), "")\n ),\n errorType: ERROR_TYPE.LOAD_REMOTE,\n dataFetchMapKey\n };\n }\n return {\n error: new Error(originalMsg.replace(wrapDataFetchId(dataFetchMapKey), "")),\n errorType: ERROR_TYPE.UNKNOWN,\n dataFetchMapKey\n };\n};\nconst DefaultLoading = /* @__PURE__ */ React__default.createElement(React__default.Fragment, null);\nconst DefaultErrorElement = (_data) => /* @__PURE__ */ React__default.createElement("div", null, "Error");\nfunction AwaitDataFetch({\n resolve,\n loading = DefaultLoading,\n errorElement = DefaultErrorElement,\n children,\n params,\n delayLoading\n}) {\n const dataRef = useRef();\n const data = dataRef.current || resolve;\n const getData = isPromise(data) ? fetchData(data, dataRef) : () => data;\n return /* @__PURE__ */ React__default.createElement(\n AwaitSuspense,\n {\n params,\n loading,\n errorElement,\n delayLoading,\n resolve: getData\n },\n children\n );\n}\nconst DelayedLoading = ({\n delayLoading,\n children\n}) => {\n const [show, setShow] = useState(false);\n const timerSet = useRef(false);\n if (!delayLoading) {\n return children;\n }\n if (typeof window !== "undefined" && !show && !timerSet.current) {\n timerSet.current = true;\n setTimeout(() => {\n setShow(true);\n }, delayLoading);\n }\n return show ? children : null;\n};\nfunction AwaitSuspense({\n resolve,\n children,\n loading = DefaultLoading,\n errorElement = DefaultErrorElement,\n delayLoading\n}) {\n return /* @__PURE__ */ React__default.createElement(\n Suspense,\n {\n fallback: /* @__PURE__ */ React__default.createElement(DelayedLoading, { delayLoading }, loading)\n },\n /* @__PURE__ */ React__default.createElement(ResolveAwait, { resolve, errorElement }, children)\n );\n}\nfunction ResolveAwait({\n children,\n resolve,\n errorElement,\n params\n}) {\n const data = resolve();\n logger.debug("resolve data: ", data);\n if (typeof data === "string" && data.indexOf(AWAIT_ERROR_PREFIX) === 0) {\n const transformedError = transformError(data);\n return /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, typeof errorElement === "function" ? /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, globalThis.FEDERATION_SSR && /* @__PURE__ */ React__default.createElement(\n "script",\n {\n suppressHydrationWarning: true,\n dangerouslySetInnerHTML: {\n __html: String.raw`\n globalThis[\'${DATA_FETCH_FUNCTION}\'] = globalThis[\'${DATA_FETCH_FUNCTION}\'] || []\n globalThis[\'${DATA_FETCH_FUNCTION}\'].push([${transformedError.dataFetchMapKey ? `\'${transformedError.dataFetchMapKey}\'` : ""},${params ? JSON.stringify(params) : null},true]);`\n }\n }\n ), errorElement(transformedError)) : errorElement);\n }\n const toRender = typeof children === "function" ? children(data) : children;\n return /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, toRender);\n}\nconst fetchData = (promise, ref) => {\n let data;\n let status = "pending";\n const suspender = promise.then((res) => {\n status = "success";\n data = res;\n ref.current = res;\n }).catch((e) => {\n status = "success";\n console.warn(e);\n data = AWAIT_ERROR_PREFIX + e;\n });\n return () => {\n if (status === "pending") {\n throw suspender;\n }\n return data;\n };\n};\nfunction getTargetModuleInfo(id, instance) {\n if (!instance) {\n return;\n }\n const loadedRemoteInfo = getLoadedRemoteInfos(id, instance);\n if (!loadedRemoteInfo) {\n return;\n }\n const { snapshot } = loadedRemoteInfo;\n if (!snapshot) {\n return;\n }\n const publicPath = "publicPath" in snapshot ? snapshot.publicPath : "getPublicPath" in snapshot ? new Function(snapshot.getPublicPath)() : "";\n if (!publicPath) {\n return;\n }\n const modules = "modules" in snapshot ? snapshot.modules : [];\n const targetModule = modules.find(\n (m) => m.modulePath === loadedRemoteInfo.expose\n );\n if (!targetModule) {\n return;\n }\n const remoteEntry = "remoteEntry" in snapshot ? snapshot.remoteEntry : "";\n if (!remoteEntry) {\n return;\n }\n return {\n module: targetModule,\n publicPath,\n remoteEntry\n };\n}\nfunction collectSSRAssets(options) {\n const {\n id,\n injectLink = true,\n injectScript = false\n } = typeof options === "string" ? { id: options } : options;\n const links = [];\n const scripts = [];\n const instance = options.instance;\n if (!instance || !injectLink && !injectScript) {\n return [...scripts, ...links];\n }\n const moduleAndPublicPath = getTargetModuleInfo(id, instance);\n if (!moduleAndPublicPath) {\n return [...scripts, ...links];\n }\n const { module: targetModule, publicPath, remoteEntry } = moduleAndPublicPath;\n if (injectLink) {\n [...targetModule.assets.css.sync, ...targetModule.assets.css.async].sort().forEach((file, index) => {\n links.push(\n /* @__PURE__ */ React__default.createElement(\n "link",\n {\n key: `${file.split(".")[0]}_${index}`,\n href: `${publicPath}${file}`,\n rel: "stylesheet",\n type: "text/css"\n }\n )\n );\n });\n }\n if (injectScript) {\n scripts.push(\n /* @__PURE__ */ React__default.createElement(\n "script",\n {\n async: true,\n key: remoteEntry.split(".")[0],\n src: `${publicPath}${remoteEntry}`,\n crossOrigin: "anonymous"\n }\n )\n );\n [...targetModule.assets.js.sync].sort().forEach((file, index) => {\n scripts.push(\n /* @__PURE__ */ React__default.createElement(\n "script",\n {\n key: `${file.split(".")[0]}_${index}`,\n async: true,\n src: `${publicPath}${file}`,\n crossOrigin: "anonymous"\n }\n )\n );\n });\n }\n return [...scripts, ...links];\n}\nfunction getServerNeedRemoteInfo(loadedRemoteInfo, id, noSSR) {\n var _a;\n if (noSSR || typeof window !== "undefined" && window.location.href !== window[FS_HREF]) {\n if (!(loadedRemoteInfo == null ? void 0 : loadedRemoteInfo.version)) {\n throw new Error(`${loadedRemoteInfo == null ? void 0 : loadedRemoteInfo.name} version is empty`);\n }\n const { snapshot } = loadedRemoteInfo;\n if (!snapshot) {\n throw new Error(`${loadedRemoteInfo == null ? void 0 : loadedRemoteInfo.name} snapshot is empty`);\n }\n const dataFetchItem = getDataFetchItem(id);\n const isFetchServer = ((_a = dataFetchItem == null ? void 0 : dataFetchItem[0]) == null ? void 0 : _a[1]) === MF_DATA_FETCH_TYPE.FETCH_SERVER;\n if (isFetchServer && (!("ssrPublicPath" in snapshot) || !snapshot.ssrPublicPath)) {\n throw new Error(\n `ssrPublicPath is required while fetching ${loadedRemoteInfo == null ? void 0 : loadedRemoteInfo.name} data in SSR project!`\n );\n }\n if (isFetchServer && (!("ssrRemoteEntry" in snapshot) || !snapshot.ssrRemoteEntry)) {\n throw new Error(\n `ssrRemoteEntry is required while loading ${loadedRemoteInfo == null ? void 0 : loadedRemoteInfo.name} data loader in SSR project!`\n );\n }\n return {\n name: loadedRemoteInfo.name,\n version: loadedRemoteInfo.version,\n ssrPublicPath: "ssrPublicPath" in snapshot ? snapshot.ssrPublicPath || "" : "",\n ssrRemoteEntry: "ssrRemoteEntry" in snapshot ? snapshot.ssrRemoteEntry || "" : "",\n globalName: loadedRemoteInfo.entryGlobalName\n };\n }\n return void 0;\n}\nfunction createLazyComponent(options) {\n const { instance, injectScript, injectLink } = options;\n if (!instance) {\n throw new Error("instance is required for createLazyComponent!");\n }\n const exportName = (options == null ? void 0 : options.export) || "default";\n const callLoader = async () => {\n logger.debug("callLoader start", Date.now());\n const m = await options.loader();\n logger.debug("callLoader end", Date.now());\n if (!m) {\n throw new Error("load remote failed");\n }\n return m;\n };\n const getData = async (noSSR) => {\n let loadedRemoteInfo;\n let moduleId;\n try {\n const m = await callLoader();\n moduleId = m && m[Symbol.for("mf_module_id")];\n if (!moduleId) {\n throw new Error("moduleId is empty");\n }\n loadedRemoteInfo = getLoadedRemoteInfos(moduleId, instance);\n if (!loadedRemoteInfo) {\n throw new Error(`can not find loaded remote(\'${moduleId}\') info!`);\n }\n } catch (e) {\n const errMsg = `${LOAD_REMOTE_ERROR_PREFIX}${e}`;\n logger.debug(e);\n throw new Error(errMsg);\n }\n let dataFetchMapKey;\n try {\n dataFetchMapKey = getDataFetchMapKey(\n getDataFetchInfo({\n name: loadedRemoteInfo.name,\n alias: loadedRemoteInfo.alias,\n id: moduleId,\n remoteSnapshot: loadedRemoteInfo.snapshot\n }),\n { name: instance.name, version: instance.options.version }\n );\n logger.debug("getData dataFetchMapKey: ", dataFetchMapKey);\n if (!dataFetchMapKey) {\n return;\n }\n const data = await fetchData$1(\n dataFetchMapKey,\n {\n ...options.dataFetchParams,\n isDowngrade: false\n },\n getServerNeedRemoteInfo(loadedRemoteInfo, dataFetchMapKey, noSSR)\n );\n setDataFetchItemLoadedStatus(dataFetchMapKey);\n logger.debug("get data res: \\n", data);\n return data;\n } catch (err) {\n const errMsg = `${DATA_FETCH_ERROR_PREFIX}${wrapDataFetchId(dataFetchMapKey)}${err}`;\n logger.debug(errMsg);\n throw new Error(errMsg);\n }\n };\n const LazyComponent = React__default.lazy(async () => {\n const m = await callLoader();\n const moduleId = m && m[Symbol.for("mf_module_id")];\n const loadedRemoteInfo = getLoadedRemoteInfos(moduleId, instance);\n loadedRemoteInfo == null ? void 0 : loadedRemoteInfo.snapshot;\n const dataFetchMapKey = loadedRemoteInfo ? getDataFetchMapKey(\n getDataFetchInfo({\n name: loadedRemoteInfo.name,\n alias: loadedRemoteInfo.alias,\n id: moduleId,\n remoteSnapshot: loadedRemoteInfo.snapshot\n }),\n { name: instance.name, version: instance == null ? void 0 : instance.options.version }\n ) : void 0;\n logger.debug("LazyComponent dataFetchMapKey: ", dataFetchMapKey);\n const assets = collectSSRAssets({\n id: moduleId,\n instance,\n injectLink,\n injectScript\n });\n const Com = m[exportName];\n if (exportName in m && typeof Com === "function") {\n return {\n default: (props) => /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, globalThis.FEDERATION_SSR && dataFetchMapKey && /* @__PURE__ */ React__default.createElement(\n "script",\n {\n suppressHydrationWarning: true,\n dangerouslySetInnerHTML: {\n __html: String.raw`\n globalThis[\'${DATA_FETCH_FUNCTION}\'] = globalThis[\'${DATA_FETCH_FUNCTION}\'] || [];\n globalThis[\'${DATA_FETCH_FUNCTION}\'].push([\'${dataFetchMapKey}\',${JSON.stringify(props.mfData)}]);\n `\n }\n }\n ), globalThis.FEDERATION_SSR && assets, /* @__PURE__ */ React__default.createElement(Com, { ...props }))\n };\n } else {\n throw Error(\n `Make sure that ${moduleId} has the correct export when export is ${String(\n exportName\n )}`\n );\n }\n });\n return (props) => {\n const { key, ...args } = props;\n if (!options.noSSR) {\n return /* @__PURE__ */ React__default.createElement(\n AwaitDataFetch,\n {\n resolve: getData(options.noSSR),\n loading: options.loading,\n delayLoading: options.delayLoading,\n errorElement: options.fallback\n },\n (data) => /* @__PURE__ */ React__default.createElement(LazyComponent, { ...args, mfData: data })\n );\n } else {\n const [data, setData] = useState(null);\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState(null);\n useEffect(() => {\n let isMounted = true;\n const fetchDataAsync = async () => {\n try {\n setLoading(true);\n const result = await getData(options.noSSR);\n if (isMounted) {\n setData(result);\n }\n } catch (e) {\n if (isMounted) {\n setError(transformError(e));\n }\n } finally {\n if (isMounted) {\n setLoading(false);\n }\n }\n };\n fetchDataAsync();\n return () => {\n isMounted = false;\n };\n }, []);\n if (loading) {\n return /* @__PURE__ */ React__default.createElement(DelayedLoading, { delayLoading: options.delayLoading }, options.loading);\n }\n if (error) {\n return /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, typeof options.fallback === "function" ? options.fallback(error) : options.fallback);\n }\n return /* @__PURE__ */ React__default.createElement(LazyComponent, { ...args, mfData: data });\n }\n };\n}\nfunction lazyLoadComponentPlugin() {\n return {\n name: "lazy-load-component-plugin",\n apply(instance) {\n instance.registerPlugins([autoFetchData()]);\n instance.createLazyComponent = (options) => {\n return createLazyComponent({\n instance,\n ...options\n });\n };\n instance.prefetch = (options) => {\n return prefetch({\n instance,\n ...options\n });\n };\n instance.collectSSRAssets = (options) => {\n return collectSSRAssets({\n instance,\n ...options\n });\n };\n }\n };\n}\nexport {\n autoFetchData as a,\n createLazyComponent as b,\n collectSSRAssets as c,\n lazyLoadComponentPlugin as l\n};\n',"logger-DwWkXsWl.mjs":'const MANIFEST_EXT = ".json";\nconst BROWSER_LOG_KEY = "FEDERATION_DEBUG";\nconst SEPARATOR = ":";\nconst isBrowserEnvValue = typeof ENV_TARGET !== "undefined" ? ENV_TARGET === "web" : typeof window !== "undefined" && typeof window.document !== "undefined";\nfunction isBrowserEnv() {\n return isBrowserEnvValue;\n}\nfunction isBrowserDebug() {\n try {\n if (isBrowserEnv() && window.localStorage) return Boolean(localStorage.getItem(BROWSER_LOG_KEY));\n } catch (error) {\n return false;\n }\n return false;\n}\nfunction isDebugMode() {\n if (typeof process !== "undefined" && process.env && process.env["FEDERATION_DEBUG"]) return Boolean(process.env["FEDERATION_DEBUG"]);\n if (typeof FEDERATION_DEBUG !== "undefined" && Boolean(FEDERATION_DEBUG)) return true;\n return isBrowserDebug();\n}\nconst PREFIX = "[ Module Federation ]";\nconst DEFAULT_DELEGATE = console;\nconst LOGGER_STACK_SKIP_TOKENS = [\n "logger.ts",\n "logger.js",\n "captureStackTrace",\n "Logger.emit",\n "Logger.log",\n "Logger.info",\n "Logger.warn",\n "Logger.error",\n "Logger.debug"\n];\nfunction captureStackTrace() {\n try {\n const stack = (/* @__PURE__ */ new Error()).stack;\n if (!stack) return;\n const [, ...rawLines] = stack.split("\\n");\n const filtered = rawLines.filter((line) => !LOGGER_STACK_SKIP_TOKENS.some((token) => line.includes(token)));\n if (!filtered.length) return;\n return `Stack trace:\n${filtered.slice(0, 5).join("\\n")}`;\n } catch {\n return;\n }\n}\nvar Logger = class {\n constructor(prefix, delegate = DEFAULT_DELEGATE) {\n this.prefix = prefix;\n this.delegate = delegate ?? DEFAULT_DELEGATE;\n }\n setPrefix(prefix) {\n this.prefix = prefix;\n }\n setDelegate(delegate) {\n this.delegate = delegate ?? DEFAULT_DELEGATE;\n }\n emit(method, args) {\n const delegate = this.delegate;\n const stackTrace = isDebugMode() ? captureStackTrace() : void 0;\n const enrichedArgs = stackTrace ? [...args, stackTrace] : args;\n const order = (() => {\n switch (method) {\n case "log":\n return ["log", "info"];\n case "info":\n return ["info", "log"];\n case "warn":\n return [\n "warn",\n "info",\n "log"\n ];\n case "error":\n return [\n "error",\n "warn",\n "log"\n ];\n default:\n return ["debug", "log"];\n }\n })();\n for (const candidate of order) {\n const handler = delegate[candidate];\n if (typeof handler === "function") {\n handler.call(delegate, this.prefix, ...enrichedArgs);\n return;\n }\n }\n for (const candidate of order) {\n const handler = DEFAULT_DELEGATE[candidate];\n if (typeof handler === "function") {\n handler.call(DEFAULT_DELEGATE, this.prefix, ...enrichedArgs);\n return;\n }\n }\n }\n log(...args) {\n this.emit("log", args);\n }\n warn(...args) {\n this.emit("warn", args);\n }\n error(...args) {\n this.emit("error", args);\n }\n success(...args) {\n this.emit("info", args);\n }\n info(...args) {\n this.emit("info", args);\n }\n ready(...args) {\n this.emit("info", args);\n }\n debug(...args) {\n if (isDebugMode()) this.emit("debug", args);\n }\n};\nfunction createLogger(prefix) {\n return new Logger(prefix);\n}\nfunction createInfrastructureLogger(prefix) {\n const infrastructureLogger = new Logger(prefix);\n Object.defineProperty(infrastructureLogger, "__mf_infrastructure_logger__", {\n value: true,\n enumerable: false,\n configurable: false\n });\n return infrastructureLogger;\n}\ncreateInfrastructureLogger(PREFIX);\nexport {\n MANIFEST_EXT as M,\n SEPARATOR as S,\n createLogger as c,\n isBrowserEnvValue as i\n};\n',"plugin.es.js":'const federationRuntime = { instance: null };\nfunction BridgeReactPlugin() {\n return {\n name: "bridge-react-plugin",\n beforeInit(args) {\n federationRuntime.instance = args.origin;\n return args;\n }\n };\n}\nexport {\n BridgeReactPlugin as default,\n federationRuntime\n};\n',"prefetch-BzCq3MT3.mjs":'import { B as warn, y as DATA_FETCH_FUNCTION, F as FS_HREF, l as logger, e as getDataFetchMap, i as initDataFetchMap, o as getDataFetchItem, M as MF_DATA_FETCH_STATUS, q as MF_DATA_FETCH_TYPE, G as DOWNGRADE_KEY, H as callAllDowngrade, I as callDowngrade, J as getDowngradeTag, K as composeKeyWithSeparator, N as safeToString, m as getDataFetchInfo, n as getDataFetchMapKey } from "./utils-BBP3hEeV.mjs";\nimport { i as isBrowserEnvValue } from "./logger-DwWkXsWl.mjs";\nasync function safeWrapper(callback, disableWarn) {\n try {\n return await callback();\n } catch (e) {\n warn(e);\n return;\n }\n}\nfunction isStaticResourcesEqual(url1, url2) {\n const REG_EXP = /^(https?:)?\\/\\//i;\n return url1.replace(REG_EXP, "").replace(/\\/$/, "") === url2.replace(REG_EXP, "").replace(/\\/$/, "");\n}\nfunction createScript(info) {\n let script = null;\n let needAttach = true;\n let timeout = 2e4;\n let timeoutId;\n const scripts = document.getElementsByTagName("script");\n for (let i = 0; i < scripts.length; i++) {\n const s = scripts[i];\n const scriptSrc = s.getAttribute("src");\n if (scriptSrc && isStaticResourcesEqual(scriptSrc, info.url)) {\n script = s;\n needAttach = false;\n break;\n }\n }\n if (!script) {\n const attrs = info.attrs;\n script = document.createElement("script");\n script.type = (attrs == null ? void 0 : attrs["type"]) === "module" ? "module" : "text/javascript";\n let createScriptRes = void 0;\n if (info.createScriptHook) {\n createScriptRes = info.createScriptHook(info.url, info.attrs);\n if (createScriptRes instanceof HTMLScriptElement) script = createScriptRes;\n else if (typeof createScriptRes === "object") {\n if ("script" in createScriptRes && createScriptRes.script) script = createScriptRes.script;\n if ("timeout" in createScriptRes && createScriptRes.timeout) timeout = createScriptRes.timeout;\n }\n }\n if (!script.src) script.src = info.url;\n if (attrs && !createScriptRes) Object.keys(attrs).forEach((name) => {\n if (script) {\n if (name === "async" || name === "defer") script[name] = attrs[name];\n else if (!script.getAttribute(name)) script.setAttribute(name, attrs[name]);\n }\n });\n }\n let executionError = null;\n const executionErrorHandler = typeof window !== "undefined" ? (evt) => {\n if (evt.filename && isStaticResourcesEqual(evt.filename, info.url)) {\n const err = /* @__PURE__ */ new Error(`ScriptExecutionError: Script "${info.url}" loaded but threw a runtime error during execution: ${evt.message} (${evt.filename}:${evt.lineno}:${evt.colno})`);\n err.name = "ScriptExecutionError";\n executionError = err;\n }\n } : null;\n if (executionErrorHandler) window.addEventListener("error", executionErrorHandler);\n const onScriptComplete = async (prev, event) => {\n clearTimeout(timeoutId);\n if (executionErrorHandler) window.removeEventListener("error", executionErrorHandler);\n const onScriptCompleteCallback = () => {\n if ((event == null ? void 0 : event.type) === "error") {\n const networkError = /* @__PURE__ */ new Error((event == null ? void 0 : event.isTimeout) ? `ScriptNetworkError: Script "${info.url}" timed out.` : `ScriptNetworkError: Failed to load script "${info.url}" - the script URL is unreachable or the server returned an error (network failure, 404, CORS, etc.)`);\n networkError.name = "ScriptNetworkError";\n (info == null ? void 0 : info.onErrorCallback) && (info == null ? void 0 : info.onErrorCallback(networkError));\n } else if (executionError) (info == null ? void 0 : info.onErrorCallback) && (info == null ? void 0 : info.onErrorCallback(executionError));\n else (info == null ? void 0 : info.cb) && (info == null ? void 0 : info.cb());\n };\n if (script) {\n script.onerror = null;\n script.onload = null;\n safeWrapper(() => {\n const { needDeleteScript = true } = info;\n if (needDeleteScript) (script == null ? void 0 : script.parentNode) && script.parentNode.removeChild(script);\n });\n if (prev && typeof prev === "function") {\n const result = prev(event);\n if (result instanceof Promise) {\n const res = await result;\n onScriptCompleteCallback();\n return res;\n }\n onScriptCompleteCallback();\n return result;\n }\n }\n onScriptCompleteCallback();\n };\n script.onerror = onScriptComplete.bind(null, script.onerror);\n script.onload = onScriptComplete.bind(null, script.onload);\n timeoutId = setTimeout(() => {\n onScriptComplete(null, {\n type: "error",\n isTimeout: true\n });\n }, timeout);\n return {\n script,\n needAttach\n };\n}\nfunction createLink(info) {\n let link = null;\n let needAttach = true;\n let timeout = 2e4;\n let timeoutId;\n const links = document.getElementsByTagName("link");\n for (let i = 0; i < links.length; i++) {\n const l = links[i];\n const linkHref = l.getAttribute("href");\n const linkRel = l.getAttribute("rel");\n if (linkHref && isStaticResourcesEqual(linkHref, info.url) && linkRel === info.attrs["rel"]) {\n link = l;\n needAttach = false;\n break;\n }\n }\n if (!link) {\n link = document.createElement("link");\n link.setAttribute("href", info.url);\n let createLinkRes = void 0;\n let shouldApplyAttrs = true;\n const attrs = info.attrs;\n if (info.createLinkHook) {\n createLinkRes = info.createLinkHook(info.url, attrs);\n if (createLinkRes instanceof HTMLLinkElement) {\n link = createLinkRes;\n shouldApplyAttrs = false;\n } else if (typeof createLinkRes === "object") {\n if ("link" in createLinkRes && createLinkRes.link) {\n link = createLinkRes.link;\n shouldApplyAttrs = false;\n }\n if ("timeout" in createLinkRes && createLinkRes.timeout) timeout = createLinkRes.timeout;\n }\n }\n if (attrs && shouldApplyAttrs) Object.keys(attrs).forEach((name) => {\n if (link && !link.getAttribute(name)) link.setAttribute(name, attrs[name]);\n });\n }\n if (!needAttach) {\n Promise.resolve().then(() => {\n (info == null ? void 0 : info.cb) && (info == null ? void 0 : info.cb());\n });\n return {\n link,\n needAttach\n };\n }\n const onLinkComplete = (prev, event) => {\n if (timeoutId) clearTimeout(timeoutId);\n const onLinkCompleteCallback = () => {\n if ((event == null ? void 0 : event.type) === "error") {\n const linkError = /* @__PURE__ */ new Error((event == null ? void 0 : event.isTimeout) ? `LinkNetworkError: Link "${info.url}" timed out.` : `LinkNetworkError: Failed to load link "${info.url}" - the URL is unreachable or the server returned an error.`);\n linkError.name = "LinkNetworkError";\n (info == null ? void 0 : info.onErrorCallback) && (info == null ? void 0 : info.onErrorCallback(linkError));\n } else (info == null ? void 0 : info.cb) && (info == null ? void 0 : info.cb());\n };\n if (link) {\n link.onerror = null;\n link.onload = null;\n safeWrapper(() => {\n const { needDeleteLink = true } = info;\n if (needDeleteLink) (link == null ? void 0 : link.parentNode) && link.parentNode.removeChild(link);\n });\n if (prev) {\n const res = prev(event);\n onLinkCompleteCallback();\n return res;\n }\n }\n onLinkCompleteCallback();\n };\n link.onerror = onLinkComplete.bind(null, link.onerror);\n link.onload = onLinkComplete.bind(null, link.onload);\n timeoutId = setTimeout(() => {\n onLinkComplete(null, {\n type: "error",\n isTimeout: true\n });\n }, timeout);\n return {\n link,\n needAttach\n };\n}\nfunction loadScript(url, info) {\n const { attrs = {}, createScriptHook } = info;\n return new Promise((resolve, reject) => {\n const { script, needAttach } = createScript({\n url,\n cb: resolve,\n onErrorCallback: reject,\n attrs: {\n fetchpriority: "high",\n ...attrs\n },\n createScriptHook,\n needDeleteScript: true\n });\n needAttach && document.head.appendChild(script);\n });\n}\nconst sdkImportCache = /* @__PURE__ */ new Map();\nfunction importNodeModule(name) {\n if (!name) throw new Error("import specifier is required");\n if (sdkImportCache.has(name)) return sdkImportCache.get(name);\n const promise = new Function("name", `return import(name)`)(name).then((res) => res).catch((error2) => {\n console.error(`Error importing module ${name}:`, error2);\n sdkImportCache.delete(name);\n throw error2;\n });\n sdkImportCache.set(name, promise);\n return promise;\n}\nconst lazyLoaderHookFetch = async (input, init, loaderHook) => {\n const hook = (url, init2) => {\n return loaderHook.lifecycle.fetch.emit(url, init2);\n };\n const res = await hook(input, init || {});\n if (!res || !(res instanceof Response)) return fetch(input, init || {});\n return res;\n};\nconst createScriptNode = typeof ENV_TARGET === "undefined" || ENV_TARGET !== "web" ? (url, cb, attrs, loaderHook) => {\n if (loaderHook == null ? void 0 : loaderHook.createScriptHook) {\n const hookResult = loaderHook.createScriptHook(url);\n if (hookResult && typeof hookResult === "object" && "url" in hookResult) url = hookResult.url;\n }\n let urlObj;\n try {\n urlObj = new URL(url);\n } catch (e) {\n console.error("Error constructing URL:", e);\n cb(/* @__PURE__ */ new Error(`Invalid URL: ${e}`));\n return;\n }\n const getFetch = async () => {\n if (loaderHook == null ? void 0 : loaderHook.fetch) return (input, init) => lazyLoaderHookFetch(input, init, loaderHook);\n return fetch;\n };\n const handleScriptFetch = async (f, urlObj2) => {\n var _a;\n try {\n const res = await f(urlObj2.href);\n const data = await res.text();\n const [path, vm] = await Promise.all([importNodeModule("path"), importNodeModule("vm")]);\n const scriptContext = {\n exports: {},\n module: { exports: {} }\n };\n const urlDirname = urlObj2.pathname.split("/").slice(0, -1).join("/");\n const filename = path.basename(urlObj2.pathname);\n const script = new vm.Script(`(function(exports, module, require, __dirname, __filename) {${data}\n})`, {\n filename,\n importModuleDynamically: ((_a = vm.constants) == null ? void 0 : _a.USE_MAIN_CONTEXT_DEFAULT_LOADER) ?? importNodeModule\n });\n let requireFn;\n requireFn = (await importNodeModule("node:module")).createRequire(urlObj2.protocol === "file:" || urlObj2.protocol === "node:" ? urlObj2.href : path.join(process.cwd(), "__mf_require_base__.js"));\n script.runInThisContext()(scriptContext.exports, scriptContext.module, requireFn, urlDirname, filename);\n const exportedInterface = scriptContext.module.exports || scriptContext.exports;\n if (attrs && exportedInterface && attrs["globalName"]) {\n cb(void 0, exportedInterface[attrs["globalName"]] || exportedInterface);\n return;\n }\n cb(void 0, exportedInterface);\n } catch (e) {\n cb(e instanceof Error ? e : /* @__PURE__ */ new Error(`Script execution error: ${e}`));\n }\n };\n getFetch().then(async (f) => {\n if ((attrs == null ? void 0 : attrs["type"]) === "esm" || (attrs == null ? void 0 : attrs["type"]) === "module") return loadModule(urlObj.href, {\n fetch: f,\n vm: await importNodeModule("vm")\n }).then(async (module) => {\n await module.evaluate();\n cb(void 0, module.namespace);\n }).catch((e) => {\n cb(e instanceof Error ? e : /* @__PURE__ */ new Error(`Script execution error: ${e}`));\n });\n handleScriptFetch(f, urlObj);\n }).catch((err) => {\n cb(err);\n });\n} : (url, cb, attrs, loaderHook) => {\n cb(/* @__PURE__ */ new Error("createScriptNode is disabled in non-Node.js environment"));\n};\nconst loadScriptNode = typeof ENV_TARGET === "undefined" || ENV_TARGET !== "web" ? (url, info) => {\n return new Promise((resolve, reject) => {\n createScriptNode(url, (error2, scriptContext) => {\n var _a, _b;\n if (error2) reject(error2);\n else {\n const remoteEntryKey = ((_a = info == null ? void 0 : info.attrs) == null ? void 0 : _a["globalName"]) || `__FEDERATION_${(_b = info == null ? void 0 : info.attrs) == null ? void 0 : _b["name"]}:custom__`;\n resolve(globalThis[remoteEntryKey] = scriptContext);\n }\n }, info.attrs, info.loaderHook);\n });\n} : (url, info) => {\n throw new Error("loadScriptNode is disabled in non-Node.js environment");\n};\nconst esmModuleCache = /* @__PURE__ */ new Map();\nconst isFetchableRemoteModuleUrl = (url) => url.startsWith("http:") || url.startsWith("https:");\nconst isBareModuleSpecifier = (specifier) => !specifier.startsWith("./") && !specifier.startsWith("../") && !specifier.startsWith("/") && !specifier.includes(":");\nfunction encodeRemoteModulePath(url) {\n const remoteUrl = new URL(url);\n const encodedProtocol = encodeURIComponent(remoteUrl.protocol.slice(0, -1));\n const encodedHost = encodeURIComponent(remoteUrl.host);\n const encodedPathname = remoteUrl.pathname.split("/").map((segment) => encodeURIComponent(segment)).join("/");\n const encodedSearchHash = encodeURIComponent(`${remoteUrl.search}${remoteUrl.hash}`);\n return `/${encodedProtocol}/${encodedHost}${encodedPathname}${encodedSearchHash ? `/${encodedSearchHash}` : ""}`;\n}\nfunction createImportMetaUrl(url, baseFileUrl) {\n const baseUrl = baseFileUrl.endsWith("/") ? baseFileUrl : `${baseFileUrl}/`;\n return new URL(`__module_federation_remote__${encodeRemoteModulePath(url)}`, baseUrl).href;\n}\nasync function isNodeBuiltinSpecifier(specifier) {\n if (specifier.startsWith("node:")) return true;\n if (!isBareModuleSpecifier(specifier)) return false;\n return (await importNodeModule("node:module")).builtinModules.includes(specifier);\n}\nfunction getSyntheticModuleExports(moduleExports) {\n const namespaceObject = moduleExports && (typeof moduleExports === "object" || typeof moduleExports === "function") ? moduleExports : { default: moduleExports };\n const effectiveExports = { ...namespaceObject };\n if (!Object.prototype.hasOwnProperty.call(effectiveExports, "default")) effectiveExports.default = namespaceObject;\n return effectiveExports;\n}\nasync function createSyntheticModuleFromExports(identifier, moduleExports, vm) {\n if (typeof vm.SyntheticModule !== "function") throw new Error("vm.SyntheticModule is required to load Node.js built-in modules in ESM remote entries.");\n const effectiveExports = getSyntheticModuleExports(moduleExports);\n const exportNames = Object.keys(effectiveExports);\n const syntheticModule = new vm.SyntheticModule(exportNames, function setSyntheticModuleExports() {\n for (const name of exportNames) this.setExport(name, effectiveExports[name]);\n }, { identifier });\n esmModuleCache.set(identifier, syntheticModule);\n await syntheticModule.link(async () => {\n throw new Error(`Node.js built-in module "${identifier}" should not request child modules.`);\n });\n await syntheticModule.evaluate();\n return syntheticModule;\n}\nasync function loadNodeBuiltinModule(specifier, vm) {\n const cacheKey = `node-builtin:${specifier}`;\n if (esmModuleCache.has(cacheKey)) return esmModuleCache.get(cacheKey);\n return createSyntheticModuleFromExports(cacheKey, await importNodeModule(specifier), vm);\n}\nasync function loadResolvedModule(specifier, parentUrl, options) {\n if (await isNodeBuiltinSpecifier(specifier)) return loadNodeBuiltinModule(specifier, options.vm);\n if (isBareModuleSpecifier(specifier)) throw new Error(`Unsupported ESM module specifier "${specifier}". Only relative or absolute http(s) remote modules and Node.js built-in modules are supported.`);\n const resolvedUrl = new URL(specifier, parentUrl).href;\n if (!isFetchableRemoteModuleUrl(resolvedUrl)) throw new Error(`Unsupported ESM module specifier "${specifier}" resolved to "${resolvedUrl}". Only http(s) remote modules and Node.js built-in modules are supported.`);\n return loadModule(resolvedUrl, options);\n}\nasync function evaluateDynamicModule(module) {\n if (module.status === "linked") await module.evaluate();\n if (module.status === "errored") throw module.error;\n return module;\n}\nasync function loadModule(url, options) {\n if (esmModuleCache.has(url)) return esmModuleCache.get(url);\n const { fetch: fetch2, vm } = options;\n if (!isFetchableRemoteModuleUrl(url)) throw new Error(`Unsupported ESM module URL "${url}". Only http(s) remote modules and Node.js built-in modules are supported.`);\n const code = await (await fetch2(url)).text();\n const cwdFileUrl = (await importNodeModule("node:url")).pathToFileURL(process.cwd()).href;\n const sourceTextModule = new vm.SourceTextModule(code, {\n identifier: url,\n initializeImportMeta: (meta) => {\n meta.url = createImportMetaUrl(url, cwdFileUrl);\n },\n importModuleDynamically: async (specifier) => {\n return evaluateDynamicModule(await loadResolvedModule(specifier, url, options));\n }\n });\n esmModuleCache.set(url, sourceTextModule);\n await sourceTextModule.link(async (specifier) => {\n return loadResolvedModule(specifier, url, options);\n });\n return sourceTextModule;\n}\nconst dataFetchFunction = async function(options) {\n var _a, _b;\n const [id, data, downgrade] = options;\n logger.debug("==========call data fetch function!");\n if (data) {\n if (!id) {\n throw new Error("id is required!");\n }\n if (!getDataFetchMap()) {\n initDataFetchMap();\n }\n const dataFetchItem = getDataFetchItem(id);\n if (dataFetchItem) {\n (_b = (_a = dataFetchItem[1]) == null ? void 0 : _a[1]) == null ? void 0 : _b.call(_a, data);\n dataFetchItem[2] = MF_DATA_FETCH_STATUS.LOADED;\n return;\n }\n if (!dataFetchItem) {\n const dataFetchMap = getDataFetchMap();\n let res;\n let rej;\n const p = new Promise((resolve, reject) => {\n res = resolve;\n rej = reject;\n });\n dataFetchMap[id] = [\n [\n async () => async () => {\n return "";\n },\n MF_DATA_FETCH_TYPE.FETCH_SERVER\n ],\n [p, res, rej],\n MF_DATA_FETCH_STATUS.LOADED\n ];\n res && res(data);\n return;\n }\n }\n if (downgrade) {\n const mfDowngrade2 = getDowngradeTag();\n if (!mfDowngrade2) {\n globalThis[DOWNGRADE_KEY] = id ? [id] : true;\n } else if (Array.isArray(mfDowngrade2) && id && !mfDowngrade2.includes(id)) {\n mfDowngrade2.push(id);\n }\n }\n const mfDowngrade = getDowngradeTag();\n if (typeof mfDowngrade === "boolean") {\n return callAllDowngrade();\n }\n if (Array.isArray(mfDowngrade)) {\n if (!id) {\n globalThis[DOWNGRADE_KEY] = true;\n return callAllDowngrade();\n }\n if (!mfDowngrade.includes(id)) {\n mfDowngrade.push(id);\n }\n return callDowngrade(id);\n }\n};\nfunction injectDataFetch() {\n var _a;\n globalThis[_a = DATA_FETCH_FUNCTION] || (globalThis[_a] = []);\n const dataFetch = globalThis[DATA_FETCH_FUNCTION];\n if (dataFetch.push === dataFetchFunction) {\n return;\n }\n if (typeof window === "undefined") {\n return;\n }\n globalThis[FS_HREF] = window.location.href;\n dataFetch.push = dataFetchFunction;\n}\nconst getDocsUrl = (errorCode) => {\n return `View the docs to see how to solve: https://module-federation.io/guide/troubleshooting/${errorCode.split("-")[0].toLowerCase()}#${errorCode.toLowerCase()}`;\n};\nconst getShortErrorMsg = (errorCode, errorDescMap, args, originalErrorMsg) => {\n const msg = [`${[errorDescMap[errorCode]]} #${errorCode}`];\n args && msg.push(`args: ${JSON.stringify(args)}`);\n msg.push(getDocsUrl(errorCode));\n originalErrorMsg && msg.push(`Original Error Message:\n ${originalErrorMsg}`);\n return msg.join("\\n");\n};\nfunction logAndReport(code, descMap, args, logger2, originalErrorMsg, context) {\n return logger2(getShortErrorMsg(code, descMap, args, originalErrorMsg));\n}\nconst LOG_CATEGORY = "[ Federation Runtime ]";\nfunction assert(condition, msgOrCode, descMap, args, context) {\n if (!condition) error(msgOrCode);\n}\nfunction error(msgOrCode, descMap, args, originalErrorMsg, context) {\n if (descMap !== void 0) return logAndReport(msgOrCode, descMap, args ?? {}, (msg2) => {\n throw new Error(`${LOG_CATEGORY}: ${msg2}`);\n }, originalErrorMsg);\n const msg = msgOrCode;\n if (msg instanceof Error) {\n if (!msg.message.startsWith(LOG_CATEGORY)) msg.message = `${LOG_CATEGORY}: ${msg.message}`;\n throw msg;\n }\n throw new Error(`${LOG_CATEGORY}: ${msg}`);\n}\nconst processModuleAlias = (name, subPath) => {\n let moduleName;\n if (name.endsWith("/")) moduleName = name.slice(0, -1);\n else moduleName = name;\n if (subPath.startsWith(".")) subPath = subPath.slice(1);\n moduleName = moduleName + subPath;\n return moduleName;\n};\nconst CurrentGlobal = typeof globalThis === "object" ? globalThis : window;\nconst nativeGlobal = (() => {\n try {\n return document.defaultView;\n } catch {\n return CurrentGlobal;\n }\n})();\nfunction definePropertyGlobalVal(target, key, val) {\n Object.defineProperty(target, key, {\n value: val,\n configurable: false,\n writable: true\n });\n}\nfunction includeOwnProperty(target, key) {\n return Object.hasOwnProperty.call(target, key);\n}\nif (!includeOwnProperty(CurrentGlobal, "__GLOBAL_LOADING_REMOTE_ENTRY__")) definePropertyGlobalVal(CurrentGlobal, "__GLOBAL_LOADING_REMOTE_ENTRY__", {});\nconst globalLoading = CurrentGlobal.__GLOBAL_LOADING_REMOTE_ENTRY__;\nfunction setGlobalDefaultVal(target) {\n var _a, _b, _c, _d, _e, _f;\n if (includeOwnProperty(target, "__VMOK__") && !includeOwnProperty(target, "__FEDERATION__")) definePropertyGlobalVal(target, "__FEDERATION__", target.__VMOK__);\n if (!includeOwnProperty(target, "__FEDERATION__")) {\n definePropertyGlobalVal(target, "__FEDERATION__", {\n __GLOBAL_PLUGIN__: [],\n __INSTANCES__: [],\n moduleInfo: {},\n __SHARE__: {},\n __MANIFEST_LOADING__: {},\n __PRELOADED_MAP__: /* @__PURE__ */ new Map()\n });\n definePropertyGlobalVal(target, "__VMOK__", target.__FEDERATION__);\n }\n (_a = target.__FEDERATION__).__GLOBAL_PLUGIN__ ?? (_a.__GLOBAL_PLUGIN__ = []);\n (_b = target.__FEDERATION__).__INSTANCES__ ?? (_b.__INSTANCES__ = []);\n (_c = target.__FEDERATION__).moduleInfo ?? (_c.moduleInfo = {});\n (_d = target.__FEDERATION__).__SHARE__ ?? (_d.__SHARE__ = {});\n (_e = target.__FEDERATION__).__MANIFEST_LOADING__ ?? (_e.__MANIFEST_LOADING__ = {});\n (_f = target.__FEDERATION__).__PRELOADED_MAP__ ?? (_f.__PRELOADED_MAP__ = /* @__PURE__ */ new Map());\n}\nsetGlobalDefaultVal(CurrentGlobal);\nsetGlobalDefaultVal(nativeGlobal);\nconst getRemoteEntryExports = (name, globalName) => {\n const remoteEntryKey = globalName || `__FEDERATION_${name}:custom__`;\n return {\n remoteEntryKey,\n entryExports: CurrentGlobal[remoteEntryKey]\n };\n};\nconst DEFAULT_SCOPE = "default";\nconst DEFAULT_REMOTE_TYPE = "global";\nfunction composeRemoteRequestId(remoteName, expose) {\n if (!expose || expose === ".") return remoteName;\n return `${remoteName}/${expose.replace(/^\\.\\//, "")}`;\n}\nfunction matchRemoteWithNameAndExpose(remotes, id) {\n for (const remote of remotes) {\n const isNameMatched = id.startsWith(remote.name);\n let expose = id.replace(remote.name, "");\n if (isNameMatched) {\n if (expose.startsWith("/")) {\n const pkgNameOrAlias = remote.name;\n expose = `.${expose}`;\n return {\n pkgNameOrAlias,\n expose,\n remote\n };\n } else if (expose === "") return {\n pkgNameOrAlias: remote.name,\n expose: ".",\n remote\n };\n }\n const isAliasMatched = remote.alias && id.startsWith(remote.alias);\n let exposeWithAlias = remote.alias && id.replace(remote.alias, "");\n if (remote.alias && isAliasMatched) {\n if (exposeWithAlias && exposeWithAlias.startsWith("/")) {\n const pkgNameOrAlias = remote.alias;\n exposeWithAlias = `.${exposeWithAlias}`;\n return {\n pkgNameOrAlias,\n expose: exposeWithAlias,\n remote\n };\n } else if (exposeWithAlias === "") return {\n pkgNameOrAlias: remote.alias,\n expose: ".",\n remote\n };\n }\n }\n}\nconst RUNTIME_001 = "RUNTIME-001";\nconst RUNTIME_002 = "RUNTIME-002";\nconst RUNTIME_003 = "RUNTIME-003";\nconst RUNTIME_004 = "RUNTIME-004";\nconst RUNTIME_005 = "RUNTIME-005";\nconst RUNTIME_006 = "RUNTIME-006";\nconst RUNTIME_007 = "RUNTIME-007";\nconst RUNTIME_008 = "RUNTIME-008";\nconst RUNTIME_009 = "RUNTIME-009";\nconst RUNTIME_010 = "RUNTIME-010";\nconst RUNTIME_011 = "RUNTIME-011";\nconst RUNTIME_012 = "RUNTIME-012";\nconst RUNTIME_013 = "RUNTIME-013";\nconst RUNTIME_014 = "RUNTIME-014";\nconst RUNTIME_015 = "RUNTIME-015";\nconst runtimeDescMap = {\n [RUNTIME_001]: "Failed to get remoteEntry exports.",\n [RUNTIME_002]: \'The remote entry interface does not contain "init"\',\n [RUNTIME_003]: "Failed to get manifest.",\n [RUNTIME_004]: "Failed to locate remote.",\n [RUNTIME_005]: "Invalid loadShareSync function call from bundler runtime",\n [RUNTIME_006]: "Invalid loadShareSync function call from runtime",\n [RUNTIME_007]: "Failed to get remote snapshot.",\n [RUNTIME_008]: "Failed to load script resources.",\n [RUNTIME_009]: "Please call createInstance first.",\n [RUNTIME_010]: \'The name option cannot be changed after initialization. If you want to create a new instance with a different name, please use "createInstance" api.\',\n [RUNTIME_011]: "The remoteEntry URL is missing from the remote snapshot.",\n [RUNTIME_012]: \'The getter for the shared module is not a function. This may be caused by setting "shared.import: false" without the host providing the corresponding lib.\',\n [RUNTIME_013]: "The manifest is not a valid Module Federation manifest.",\n [RUNTIME_014]: "The remote does not expose the requested module.",\n [RUNTIME_015]: "Remote container initialization failed."\n};\n({\n ...runtimeDescMap\n});\nconst importCallback = ".then(callbacks[0]).catch(callbacks[1])";\nfunction isEsmRemoteType(type) {\n return type === "esm" || type === "module";\n}\nasync function loadEsmEntry({ entry, remoteEntryExports }) {\n return new Promise((resolve, reject) => {\n try {\n if (!remoteEntryExports) if (typeof FEDERATION_ALLOW_NEW_FUNCTION !== "undefined") new Function("callbacks", `import("${entry}")${importCallback}`)([resolve, reject]);\n else import(\n /* webpackIgnore: true */\n /* @vite-ignore */\n entry\n ).then(resolve).catch(reject);\n else resolve(remoteEntryExports);\n } catch (e) {\n error(`Failed to load ESM entry from "${entry}". ${e instanceof Error ? e.message : String(e)}`);\n }\n });\n}\nasync function loadSystemJsEntry({ entry, remoteEntryExports }) {\n return new Promise((resolve, reject) => {\n try {\n if (!remoteEntryExports) if (typeof __system_context__ === "undefined") System.import(entry).then(resolve).catch(reject);\n else new Function("callbacks", `System.import("${entry}")${importCallback}`)([resolve, reject]);\n else resolve(remoteEntryExports);\n } catch (e) {\n error(`Failed to load SystemJS entry from "${entry}". ${e instanceof Error ? e.message : String(e)}`);\n }\n });\n}\nfunction handleRemoteEntryLoaded(name, globalName, entry) {\n const { remoteEntryKey, entryExports } = getRemoteEntryExports(name, globalName);\n if (!entryExports) error(RUNTIME_001, runtimeDescMap, {\n remoteName: name,\n remoteEntryUrl: entry,\n remoteEntryKey\n });\n return entryExports;\n}\nasync function loadEntryScript({ name, globalName, entry, remoteInfo, loaderHook, getEntryUrl, resourceContext }) {\n const { entryExports: remoteEntryExports } = getRemoteEntryExports(name, globalName);\n if (remoteEntryExports) return remoteEntryExports;\n const url = getEntryUrl ? getEntryUrl(entry) : entry;\n return loadScript(url, {\n attrs: {},\n createScriptHook: (url2, attrs) => {\n const res = loaderHook.lifecycle.createScript.emit({\n url: url2,\n attrs,\n remoteInfo,\n resourceContext: resourceContext ? {\n ...resourceContext,\n url: url2\n } : void 0\n });\n if (!res) return;\n if (res instanceof HTMLScriptElement) return res;\n if ("script" in res || "timeout" in res) return res;\n }\n }).then(() => {\n return handleRemoteEntryLoaded(name, globalName, entry);\n }, (loadError) => {\n const originalMsg = loadError instanceof Error ? loadError.message : String(loadError);\n error(RUNTIME_008, runtimeDescMap, {\n remoteName: name,\n resourceUrl: url\n }, originalMsg);\n });\n}\nasync function loadEntryDom({ remoteInfo, remoteEntryExports, loaderHook, getEntryUrl, resourceContext }) {\n const { entry, entryGlobalName: globalName, name, type } = remoteInfo;\n if (isEsmRemoteType(type)) return loadEsmEntry({\n entry,\n remoteEntryExports\n });\n if (type === "system") return loadSystemJsEntry({\n entry,\n remoteEntryExports\n });\n return loadEntryScript({\n entry,\n globalName,\n name,\n remoteInfo,\n loaderHook,\n getEntryUrl,\n resourceContext\n });\n}\nasync function loadEntryNode({ remoteInfo, loaderHook, resourceContext }) {\n const { entry, entryGlobalName: globalName, name, type } = remoteInfo;\n const { entryExports: remoteEntryExports } = getRemoteEntryExports(name, globalName);\n if (remoteEntryExports) return remoteEntryExports;\n return loadScriptNode(entry, {\n attrs: {\n name,\n globalName,\n type\n },\n loaderHook: { createScriptHook: (url, attrs = {}) => {\n const res = loaderHook.lifecycle.createScript.emit({\n url,\n attrs,\n remoteInfo,\n resourceContext: resourceContext ? {\n ...resourceContext,\n url\n } : void 0\n });\n if (!res) return;\n if ("url" in res) return res;\n } }\n }).then(() => {\n return handleRemoteEntryLoaded(name, globalName, entry);\n }).catch((e) => {\n error(`Failed to load Node.js entry for remote "${name}" from "${entry}". ${e instanceof Error ? e.message : String(e)}`);\n });\n}\nfunction getRemoteEntryUniqueKey(remoteInfo) {\n const { entry, name } = remoteInfo;\n return composeKeyWithSeparator(name, entry);\n}\nasync function getRemoteEntry(params) {\n const { origin, remoteEntryExports, remoteInfo, getEntryUrl, resourceContext, _inErrorHandling = false } = params;\n const uniqueKey = getRemoteEntryUniqueKey(remoteInfo);\n if (remoteEntryExports) return remoteEntryExports;\n if (!globalLoading[uniqueKey]) {\n const loadEntryHook = origin.remoteHandler.hooks.lifecycle.loadEntry;\n const loaderHook = origin.loaderHook;\n globalLoading[uniqueKey] = loadEntryHook.emit({\n origin,\n loaderHook,\n remoteInfo,\n remoteEntryExports\n }).then((res) => {\n if (res) return res;\n return (typeof ENV_TARGET !== "undefined" ? ENV_TARGET === "web" : isBrowserEnvValue) ? loadEntryDom({\n remoteInfo,\n remoteEntryExports,\n loaderHook,\n getEntryUrl,\n resourceContext\n }) : loadEntryNode({\n remoteInfo,\n loaderHook,\n resourceContext\n });\n }).then(async (res) => {\n await origin.loaderHook.lifecycle.afterLoadEntry.emit({\n origin,\n remoteInfo,\n remoteEntryExports: res\n });\n return res;\n }).catch(async (err) => {\n const uniqueKey2 = getRemoteEntryUniqueKey(remoteInfo);\n const isScriptExecutionError = err instanceof Error && err.message.includes("ScriptExecutionError");\n if (err instanceof Error && err.message.includes(RUNTIME_008) && !isScriptExecutionError && !_inErrorHandling) {\n const wrappedGetRemoteEntry = (params2) => {\n return getRemoteEntry({\n ...params2,\n _inErrorHandling: true\n });\n };\n const RemoteEntryExports = await origin.loaderHook.lifecycle.loadEntryError.emit({\n getRemoteEntry: wrappedGetRemoteEntry,\n origin,\n remoteInfo,\n remoteEntryExports,\n globalLoading,\n uniqueKey: uniqueKey2\n });\n if (RemoteEntryExports) {\n await origin.loaderHook.lifecycle.afterLoadEntry.emit({\n origin,\n remoteInfo,\n remoteEntryExports: RemoteEntryExports,\n recovered: true\n });\n return RemoteEntryExports;\n }\n }\n await origin.loaderHook.lifecycle.afterLoadEntry.emit({\n origin,\n remoteInfo,\n error: err\n });\n throw err;\n });\n }\n return globalLoading[uniqueKey];\n}\nfunction getRemoteInfo(remote) {\n return {\n ...remote,\n entry: "entry" in remote ? remote.entry : "",\n type: remote.type || DEFAULT_REMOTE_TYPE,\n entryGlobalName: remote.entryGlobalName || remote.name,\n shareScope: remote.shareScope || DEFAULT_SCOPE\n };\n}\nfunction remoteToEntry(r) {\n return {\n name: r.name,\n alias: r.alias,\n entry: "entry" in r ? r.entry : void 0,\n version: "version" in r ? r.version : void 0,\n type: r.type,\n entryGlobalName: r.entryGlobalName,\n shareScope: r.shareScope\n };\n}\nfunction optionsToMFContext(options) {\n var _a, _b, _c, _d, _e, _f;\n const shared = {};\n for (const [pkgName, versions] of Object.entries(options.shared)) {\n const first = versions[0];\n if (first) shared[pkgName] = {\n version: first.version,\n singleton: (_a = first.shareConfig) == null ? void 0 : _a.singleton,\n requiredVersion: ((_b = first.shareConfig) == null ? void 0 : _b.requiredVersion) === false ? false : (_c = first.shareConfig) == null ? void 0 : _c.requiredVersion,\n eager: first.eager,\n strictVersion: (_d = first.shareConfig) == null ? void 0 : _d.strictVersion\n };\n }\n return {\n project: {\n name: options.name,\n mfRole: ((_e = options.remotes) == null ? void 0 : _e.length) > 0 ? "host" : "unknown"\n },\n mfConfig: {\n name: options.name,\n remotes: ((_f = options.remotes) == null ? void 0 : _f.map(remoteToEntry)) ?? [],\n shared\n }\n };\n}\nfunction isTimeoutError(error2) {\n if (!(error2 instanceof Error)) return false;\n return error2.message.includes("timed out") || error2.name.includes("Timeout");\n}\nfunction createAssetResult(context, url, status, error2) {\n return {\n url,\n status,\n resourceType: context.resourceType,\n initiator: context.initiator,\n id: context.id,\n error: error2\n };\n}\nasync function waitForRemoteEntryPreload(host, remoteInfo, entryRemoteInfo, context) {\n const cachedRemote = host.moduleCache.get(entryRemoteInfo.name);\n const url = entryRemoteInfo.entry;\n if (cachedRemote == null ? void 0 : cachedRemote.remoteEntryExports) return createAssetResult(context, url, "cached");\n try {\n if (!await getRemoteEntry({\n origin: host,\n remoteInfo: entryRemoteInfo,\n remoteEntryExports: cachedRemote == null ? void 0 : cachedRemote.remoteEntryExports,\n resourceContext: {\n ...context,\n url\n }\n })) throw new Error(`Failed to load remoteEntry "${url}".`);\n return createAssetResult(context, url, "success");\n } catch (error2) {\n return createAssetResult(context, url, isTimeoutError(error2) ? "timeout" : "error", error2);\n }\n}\nfunction waitForLinkPreload({ host, remoteInfo, url, attrs, context, needDeleteLink }) {\n return new Promise((resolve) => {\n const { link, needAttach } = createLink({\n url,\n cb: () => {\n resolve(createAssetResult(context, url, needAttach ? "success" : "cached"));\n },\n onErrorCallback: (error2) => {\n resolve(createAssetResult(context, url, isTimeoutError(error2) ? "timeout" : "error", error2));\n },\n attrs,\n createLinkHook: (hookUrl, hookAttrs) => {\n const res = host.loaderHook.lifecycle.createLink.emit({\n url: hookUrl,\n attrs: hookAttrs,\n remoteInfo,\n resourceContext: {\n ...context,\n url: hookUrl\n }\n });\n if (res instanceof HTMLLinkElement) return res;\n return res;\n },\n needDeleteLink\n });\n needAttach && document.head.appendChild(link);\n });\n}\nfunction waitForScriptPreload({ host, remoteInfo, url, attrs, context }) {\n return new Promise((resolve) => {\n const { script, needAttach } = createScript({\n url,\n cb: () => {\n resolve(createAssetResult(context, url, needAttach ? "success" : "cached"));\n },\n onErrorCallback: (error2) => {\n resolve(createAssetResult(context, url, isTimeoutError(error2) ? "timeout" : "error", error2));\n },\n attrs,\n createScriptHook: (hookUrl, hookAttrs) => {\n const res = host.loaderHook.lifecycle.createScript.emit({\n url: hookUrl,\n attrs: hookAttrs,\n remoteInfo,\n resourceContext: {\n ...context,\n url: hookUrl\n }\n });\n if (res instanceof HTMLScriptElement) return res;\n return res;\n },\n needDeleteScript: true\n });\n needAttach && document.head.appendChild(script);\n });\n}\nfunction createResourceContext(baseContext, resourceType) {\n return {\n ...baseContext,\n resourceType\n };\n}\nfunction preloadAssets(remoteInfo, host, assets, useLinkPreload = true, baseContext = {\n initiator: "preloadRemote",\n id: remoteInfo.name\n}) {\n const { cssAssets, jsAssetsWithoutEntry, entryAssets } = assets;\n const results = [];\n if (host.options.inBrowser) {\n entryAssets.forEach((asset) => {\n const { moduleInfo: entryRemoteInfo } = asset;\n results.push(waitForRemoteEntryPreload(host, remoteInfo, entryRemoteInfo, createResourceContext(baseContext, "remoteEntry")));\n });\n if (useLinkPreload) {\n const defaultAttrs2 = {\n rel: "preload",\n as: "style"\n };\n cssAssets.forEach((cssUrl) => {\n results.push(waitForLinkPreload({\n host,\n remoteInfo,\n url: cssUrl,\n attrs: defaultAttrs2,\n context: createResourceContext(baseContext, "css")\n }));\n });\n } else {\n const defaultAttrs2 = {\n rel: "stylesheet",\n type: "text/css"\n };\n cssAssets.forEach((cssUrl) => {\n results.push(waitForLinkPreload({\n host,\n remoteInfo,\n url: cssUrl,\n attrs: defaultAttrs2,\n needDeleteLink: false,\n context: createResourceContext(baseContext, "css")\n }));\n });\n }\n let preloadJsAsset = waitForScriptPreload;\n let defaultAttrs = {\n fetchpriority: "high",\n type: "text/javascript"\n };\n if (useLinkPreload) {\n preloadJsAsset = waitForLinkPreload;\n defaultAttrs = {\n rel: "preload",\n as: "script"\n };\n } else if (isEsmRemoteType(remoteInfo.type)) {\n preloadJsAsset = waitForLinkPreload;\n defaultAttrs = {\n rel: "modulepreload",\n fetchpriority: "high"\n };\n }\n jsAssetsWithoutEntry.forEach((jsUrl) => {\n results.push(preloadJsAsset({\n host,\n remoteInfo,\n url: jsUrl,\n attrs: defaultAttrs,\n context: createResourceContext(baseContext, "js")\n }));\n });\n }\n return Promise.all(results);\n}\nvar helpers_default = {\n utils: {\n matchRemoteWithNameAndExpose,\n preloadAssets,\n getRemoteInfo\n }\n};\nfunction getAvailableExposeNames(remoteSnapshot) {\n if (!remoteSnapshot || !("modules" in remoteSnapshot) || !Array.isArray(remoteSnapshot.modules)) return;\n const exposes = remoteSnapshot.modules.map((module) => module.moduleName).filter(Boolean);\n return exposes.length ? exposes.join(",") : void 0;\n}\nfunction createRemoteEntryInitOptions(remoteInfo, hostShareScopeMap, rawInitScope) {\n const localShareScopeMap = hostShareScopeMap;\n const shareScopeKeys = Array.isArray(remoteInfo.shareScope) ? remoteInfo.shareScope : [remoteInfo.shareScope];\n if (!shareScopeKeys.length) shareScopeKeys.push("default");\n shareScopeKeys.forEach((shareScopeKey) => {\n if (!localShareScopeMap[shareScopeKey]) localShareScopeMap[shareScopeKey] = {};\n });\n const remoteEntryInitOptions = {\n version: remoteInfo.version || "",\n shareScopeKeys: Array.isArray(remoteInfo.shareScope) ? shareScopeKeys : remoteInfo.shareScope || "default"\n };\n Object.defineProperty(remoteEntryInitOptions, "shareScopeMap", {\n value: localShareScopeMap,\n enumerable: false\n });\n return {\n remoteEntryInitOptions,\n shareScope: localShareScopeMap[shareScopeKeys[0]],\n initScope: rawInitScope ?? []\n };\n}\nvar Module$1 = class {\n constructor({ remoteInfo, host }) {\n this.inited = false;\n this.initing = false;\n this.lib = void 0;\n this.remoteInfo = remoteInfo;\n this.host = host;\n }\n async getEntry(expose) {\n if (this.remoteEntryExports) return this.remoteEntryExports;\n const remoteEntryExports = await getRemoteEntry({\n origin: this.host,\n remoteInfo: this.remoteInfo,\n remoteEntryExports: this.remoteEntryExports,\n resourceContext: {\n initiator: "loadRemote",\n id: composeRemoteRequestId(this.remoteInfo.name, expose),\n resourceType: "remoteEntry"\n }\n });\n assert(remoteEntryExports, `remoteEntryExports is undefined \n ${safeToString(this.remoteInfo)}`);\n this.remoteEntryExports = remoteEntryExports;\n return this.remoteEntryExports;\n }\n async init(id, remoteSnapshot, rawInitScope, expose) {\n const remoteEntryExports = await this.getEntry(expose);\n if (this.inited) {\n await this.host.loaderHook.lifecycle.afterInitRemote.emit({\n id,\n remoteInfo: this.remoteInfo,\n remoteSnapshot,\n remoteEntryExports,\n cached: true,\n origin: this.host\n });\n return remoteEntryExports;\n }\n if (this.initPromise) {\n try {\n await this.initPromise;\n await this.host.loaderHook.lifecycle.afterInitRemote.emit({\n id,\n remoteInfo: this.remoteInfo,\n remoteSnapshot,\n remoteEntryExports,\n cached: true,\n origin: this.host\n });\n } catch (initError) {\n await this.host.loaderHook.lifecycle.afterInitRemote.emit({\n id,\n remoteInfo: this.remoteInfo,\n remoteSnapshot,\n remoteEntryExports,\n error: initError,\n cached: true,\n origin: this.host\n });\n throw initError;\n }\n return remoteEntryExports;\n }\n this.initing = true;\n this.initPromise = (async () => {\n await this.host.loaderHook.lifecycle.beforeInitRemote.emit({\n id,\n remoteInfo: this.remoteInfo,\n remoteSnapshot,\n origin: this.host\n });\n const { remoteEntryInitOptions, shareScope, initScope } = createRemoteEntryInitOptions(this.remoteInfo, this.host.shareScopeMap, rawInitScope);\n const initContainerOptions = await this.host.hooks.lifecycle.beforeInitContainer.emit({\n shareScope,\n remoteEntryInitOptions,\n initScope,\n remoteInfo: this.remoteInfo,\n origin: this.host\n });\n if (typeof (remoteEntryExports == null ? void 0 : remoteEntryExports.init) === "undefined") error(RUNTIME_002, runtimeDescMap, {\n hostName: this.host.name,\n remoteName: this.remoteInfo.name,\n remoteEntryUrl: this.remoteInfo.entry,\n remoteEntryKey: this.remoteInfo.entryGlobalName\n }, void 0, optionsToMFContext(this.host.options));\n try {\n await remoteEntryExports.init(initContainerOptions.shareScope, initContainerOptions.initScope, initContainerOptions.remoteEntryInitOptions);\n } catch (initError) {\n error(RUNTIME_015, runtimeDescMap, {\n hostName: this.host.name,\n remoteName: this.remoteInfo.name,\n remoteEntryUrl: this.remoteInfo.entry,\n remoteEntryKey: this.remoteInfo.entryGlobalName,\n shareScope: this.remoteInfo.shareScope\n }, `${initError}`, optionsToMFContext(this.host.options));\n }\n await this.host.hooks.lifecycle.initContainer.emit({\n ...initContainerOptions,\n id,\n remoteSnapshot,\n remoteEntryExports\n });\n this.inited = true;\n })();\n try {\n await this.initPromise;\n await this.host.loaderHook.lifecycle.afterInitRemote.emit({\n id,\n remoteInfo: this.remoteInfo,\n remoteSnapshot,\n remoteEntryExports,\n origin: this.host\n });\n } catch (initError) {\n await this.host.loaderHook.lifecycle.afterInitRemote.emit({\n id,\n remoteInfo: this.remoteInfo,\n remoteSnapshot,\n remoteEntryExports,\n error: initError,\n origin: this.host\n });\n throw initError;\n } finally {\n this.initing = false;\n this.initPromise = void 0;\n }\n return remoteEntryExports;\n }\n async get(id, expose, options, remoteSnapshot) {\n const { loadFactory = true } = options || { loadFactory: true };\n const remoteEntryExports = await this.init(id, remoteSnapshot, void 0, expose);\n this.lib = remoteEntryExports;\n await this.host.loaderHook.lifecycle.beforeGetExpose.emit({\n id,\n expose,\n moduleInfo: this.remoteInfo,\n remoteEntryExports,\n origin: this.host\n });\n let moduleFactory;\n try {\n const hookModuleFactory = await this.host.loaderHook.lifecycle.getModuleFactory.emit({\n remoteEntryExports,\n expose,\n moduleInfo: this.remoteInfo\n });\n moduleFactory = typeof hookModuleFactory === "function" ? hookModuleFactory : void 0;\n if (!moduleFactory) moduleFactory = await remoteEntryExports.get(expose);\n if (!moduleFactory) error(RUNTIME_014, runtimeDescMap, {\n hostName: this.host.name,\n remoteName: this.remoteInfo.name,\n remoteEntryUrl: this.remoteInfo.entry,\n expose,\n requestId: id,\n availableExposes: getAvailableExposeNames(remoteSnapshot)\n }, void 0, optionsToMFContext(this.host.options));\n await this.host.loaderHook.lifecycle.afterGetExpose.emit({\n id,\n expose,\n moduleInfo: this.remoteInfo,\n remoteEntryExports,\n moduleFactory,\n origin: this.host\n });\n } catch (getExposeError) {\n await this.host.loaderHook.lifecycle.afterGetExpose.emit({\n id,\n expose,\n moduleInfo: this.remoteInfo,\n remoteEntryExports,\n error: getExposeError,\n origin: this.host\n });\n throw getExposeError;\n }\n const symbolName = processModuleAlias(this.remoteInfo.name, expose);\n const wrapModuleFactory = this.wraperFactory(moduleFactory, symbolName);\n if (!loadFactory) return wrapModuleFactory;\n await this.host.loaderHook.lifecycle.beforeExecuteFactory.emit({\n id,\n expose,\n moduleInfo: this.remoteInfo,\n loadFactory,\n origin: this.host\n });\n try {\n const exposeContent = await wrapModuleFactory();\n await this.host.loaderHook.lifecycle.afterExecuteFactory.emit({\n id,\n expose,\n moduleInfo: this.remoteInfo,\n loadFactory,\n exposeModule: exposeContent,\n origin: this.host\n });\n return exposeContent;\n } catch (executeFactoryError) {\n await this.host.loaderHook.lifecycle.afterExecuteFactory.emit({\n id,\n expose,\n moduleInfo: this.remoteInfo,\n loadFactory,\n error: executeFactoryError,\n origin: this.host\n });\n throw executeFactoryError;\n }\n }\n wraperFactory(moduleFactory, id) {\n function defineModuleId(res, id2) {\n if (res && typeof res === "object" && Object.isExtensible(res) && !Object.getOwnPropertyDescriptor(res, Symbol.for("mf_module_id"))) Object.defineProperty(res, Symbol.for("mf_module_id"), {\n value: id2,\n enumerable: false\n });\n }\n return () => {\n const res = moduleFactory();\n if (res instanceof Promise) return res.then((asyncRes) => {\n defineModuleId(asyncRes, id);\n return asyncRes;\n });\n defineModuleId(res, id);\n return res;\n };\n }\n};\nconst REMOTE_DISABLED_MESSAGE = "Remote loading is disabled by experiments.optimization.disableRemote.";\nvar UnavailableRemoteModule = class {\n constructor() {\n throw new Error(REMOTE_DISABLED_MESSAGE);\n }\n};\ntypeof FEDERATION_OPTIMIZE_NO_SNAPSHOT_PLUGIN === "boolean" ? !FEDERATION_OPTIMIZE_NO_SNAPSHOT_PLUGIN : true;\ntypeof FEDERATION_OPTIMIZE_NO_REMOTE === "boolean" ? !FEDERATION_OPTIMIZE_NO_REMOTE : true;\ntypeof FEDERATION_OPTIMIZE_NO_SHARED === "boolean" ? !FEDERATION_OPTIMIZE_NO_SHARED : true;\nconst helpers = helpers_default;\ntypeof FEDERATION_OPTIMIZE_NO_REMOTE === "boolean" && FEDERATION_OPTIMIZE_NO_REMOTE ? UnavailableRemoteModule : Module$1;\nconst utils = helpers.utils;\nconst runtimeHelpers = {\n utils\n};\nasync function prefetch(options) {\n const { instance, id, dataFetchParams, preloadComponentResource } = options;\n if (!id) {\n logger.error("id is required for prefetch!");\n return;\n }\n if (!instance) {\n logger.error("instance is required for prefetch!");\n return;\n }\n const matchedRemoteInfo = runtimeHelpers.utils.matchRemoteWithNameAndExpose(\n instance.options.remotes,\n id\n );\n if (!matchedRemoteInfo) {\n logger.error(`Can not found \'${id}\' in instance.options.remotes!`);\n return;\n }\n const { remote, expose } = matchedRemoteInfo;\n const { remoteSnapshot, globalSnapshot } = await instance.snapshotHandler.loadRemoteSnapshotInfo({\n moduleInfo: remote,\n id\n });\n if (preloadComponentResource) {\n const remoteInfo = runtimeHelpers.utils.getRemoteInfo(remote);\n Promise.resolve(\n instance.remoteHandler.hooks.lifecycle.generatePreloadAssets.emit({\n origin: instance,\n preloadOptions: {\n remote,\n preloadConfig: {\n nameOrAlias: remote.name,\n exposes: [expose]\n }\n },\n remote,\n remoteInfo,\n globalSnapshot,\n remoteSnapshot\n })\n ).then((assets) => {\n if (assets) {\n runtimeHelpers.utils.preloadAssets(remoteInfo, instance, assets);\n }\n });\n }\n const dataFetchMap = getDataFetchMap();\n if (!dataFetchMap) {\n return;\n }\n const dataFetchInfo = getDataFetchInfo({\n name: remote.name,\n alias: remote.alias,\n id,\n remoteSnapshot\n });\n const dataFetchMapKey = getDataFetchMapKey(dataFetchInfo, {\n name: instance.name,\n version: instance.options.version\n });\n if (!dataFetchMapKey) {\n return;\n }\n const dataFetchItem = dataFetchMap[dataFetchMapKey];\n if (!dataFetchItem) {\n return;\n }\n const [getDataFetchGetter, _type, getDataFetchPromise] = dataFetchItem[0];\n let _getDataFetchPromise = getDataFetchPromise;\n if (!getDataFetchPromise) {\n if (!getDataFetchGetter) {\n return;\n }\n _getDataFetchPromise = getDataFetchGetter();\n }\n _getDataFetchPromise.then((dataFetchFn) => {\n return dataFetchFn({\n ...dataFetchParams,\n _id: dataFetchMapKey,\n isDowngrade: false\n });\n });\n}\nexport {\n dataFetchFunction as d,\n injectDataFetch as i,\n prefetch as p\n};\n',"size-limited-cache.es.js":'var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);\nclass SizeLimitedCache {\n constructor(options) {\n __publicField(this, "maxSize");\n __publicField(this, "entries", /* @__PURE__ */ new Map());\n __publicField(this, "sizeCalculation");\n __publicField(this, "currentSize", 0);\n if (!Number.isInteger(options.maxSize) || options.maxSize <= 0) {\n throw new TypeError("maxSize must be a positive integer");\n }\n this.maxSize = options.maxSize;\n this.sizeCalculation = options.sizeCalculation;\n }\n get size() {\n return this.entries.size;\n }\n get calculatedSize() {\n return this.currentSize;\n }\n get(key) {\n const entry = this.entries.get(key);\n if (!entry) {\n return void 0;\n }\n this.refresh(key, entry);\n return entry.value;\n }\n has(key) {\n const entry = this.entries.get(key);\n if (!entry) {\n return false;\n }\n this.refresh(key, entry);\n return true;\n }\n set(key, value, options = {}) {\n var _a;\n const entrySize = options.size ?? ((_a = this.sizeCalculation) == null ? void 0 : _a.call(this, value, key)) ?? 1;\n if (!Number.isInteger(entrySize) || entrySize <= 0) {\n throw new TypeError("entry size must be a positive integer");\n }\n this.delete(key);\n if (entrySize > this.maxSize) {\n return this;\n }\n this.entries.set(key, { value, size: entrySize });\n this.currentSize += entrySize;\n this.evictUntilWithinLimit();\n return this;\n }\n delete(key) {\n const entry = this.entries.get(key);\n if (!entry) {\n return false;\n }\n this.currentSize -= entry.size;\n return this.entries.delete(key);\n }\n clear() {\n this.entries.clear();\n this.currentSize = 0;\n }\n refresh(key, entry) {\n this.entries.delete(key);\n this.entries.set(key, entry);\n }\n evictUntilWithinLimit() {\n while (this.currentSize > this.maxSize) {\n const oldest = this.entries.keys().next();\n if (oldest.done) {\n this.currentSize = 0;\n return;\n }\n this.delete(oldest.value);\n }\n }\n}\nexport {\n SizeLimitedCache\n};\n',"utils-BBP3hEeV.mjs":'import { S as SEPARATOR, c as createLogger, i as isBrowserEnvValue } from "./logger-DwWkXsWl.mjs";\nimport { SizeLimitedCache } from "./size-limited-cache.es.js";\nconst LOG_CATEGORY = "[ Federation Runtime ]";\nconst composeKeyWithSeparator = function(...args) {\n if (!args.length) return "";\n return args.reduce((sum, cur) => {\n if (!cur) return sum;\n if (!sum) return cur;\n return `${sum}${SEPARATOR}${cur}`;\n }, "");\n};\nconst warn = (msg) => {\n console.warn(`${LOG_CATEGORY}: ${msg}`);\n};\nfunction safeToString(info) {\n try {\n return JSON.stringify(info, null, 2);\n } catch (e) {\n return "";\n }\n}\nconst PLUGIN_IDENTIFIER = "[ Module Federation React ]";\nconst DOWNGRADE_KEY = "_mfSSRDowngrade";\nconst DATA_FETCH_FUNCTION = "_mfDataFetch";\nconst FS_HREF = "_mfFSHref";\nconst ERROR_TYPE = {\n DATA_FETCH: 1,\n LOAD_REMOTE: 2,\n UNKNOWN: 3\n};\nconst WRAP_DATA_FETCH_ID_IDENTIFIER = "wrap_dfip_identifier";\nvar MF_DATA_FETCH_TYPE = /* @__PURE__ */ ((MF_DATA_FETCH_TYPE2) => {\n MF_DATA_FETCH_TYPE2[MF_DATA_FETCH_TYPE2["FETCH_SERVER"] = 1] = "FETCH_SERVER";\n MF_DATA_FETCH_TYPE2[MF_DATA_FETCH_TYPE2["FETCH_CLIENT"] = 2] = "FETCH_CLIENT";\n return MF_DATA_FETCH_TYPE2;\n})(MF_DATA_FETCH_TYPE || {});\nvar MF_DATA_FETCH_STATUS = /* @__PURE__ */ ((MF_DATA_FETCH_STATUS2) => {\n MF_DATA_FETCH_STATUS2[MF_DATA_FETCH_STATUS2["LOADED"] = 1] = "LOADED";\n MF_DATA_FETCH_STATUS2[MF_DATA_FETCH_STATUS2["LOADING"] = 2] = "LOADING";\n MF_DATA_FETCH_STATUS2[MF_DATA_FETCH_STATUS2["AWAIT"] = 0] = "AWAIT";\n MF_DATA_FETCH_STATUS2[MF_DATA_FETCH_STATUS2["ERROR"] = 3] = "ERROR";\n return MF_DATA_FETCH_STATUS2;\n})(MF_DATA_FETCH_STATUS || {});\nconst DATA_FETCH_IDENTIFIER = "data";\nconst DATA_FETCH_CLIENT_SUFFIX = ".client";\nconst DATA_FETCH_QUERY = "x-mf-data-fetch";\nconst DATA_FETCH_ERROR_PREFIX = "caught the following error during dataFetch: ";\nconst LOAD_REMOTE_ERROR_PREFIX = "caught the following error during loadRemote: ";\nconst logger = createLogger(PLUGIN_IDENTIFIER);\nconst CacheSize = {\n KB: 1024,\n MB: 1024 * 1024,\n GB: 1024 * 1024 * 1024\n};\nconst CacheTime = {\n SECOND: 1e3,\n MINUTE: 60 * 1e3,\n HOUR: 60 * 60 * 1e3,\n DAY: 24 * 60 * 60 * 1e3,\n WEEK: 7 * 24 * 60 * 60 * 1e3,\n MONTH: 30 * 24 * 60 * 60 * 1e3\n};\nfunction getTagKeyMap() {\n const dataFetchCache = getDataFetchCache();\n if (!dataFetchCache || !dataFetchCache.tagKeyMap) {\n const tagKeyMap = /* @__PURE__ */ new Map();\n globalThis.__MF_DATA_FETCH_CACHE__ || (globalThis.__MF_DATA_FETCH_CACHE__ = {});\n globalThis.__MF_DATA_FETCH_CACHE__.tagKeyMap = tagKeyMap;\n return tagKeyMap;\n }\n return dataFetchCache.tagKeyMap;\n}\nfunction addTagKeyRelation(tag, key) {\n const tagKeyMap = getTagKeyMap();\n let keys = tagKeyMap.get(tag);\n if (!keys) {\n keys = /* @__PURE__ */ new Set();\n tagKeyMap.set(tag, keys);\n }\n keys.add(key);\n}\nfunction getCacheConfig() {\n const dataFetchCache = getDataFetchCache();\n if (!dataFetchCache || !dataFetchCache.cacheConfig) {\n const cacheConfig = {\n maxSize: CacheSize.GB\n };\n globalThis.__MF_DATA_FETCH_CACHE__ || (globalThis.__MF_DATA_FETCH_CACHE__ = {});\n globalThis.__MF_DATA_FETCH_CACHE__.cacheConfig = cacheConfig;\n return cacheConfig;\n }\n return dataFetchCache.cacheConfig;\n}\nfunction configureCache(config) {\n const cacheConfig = getCacheConfig();\n Object.assign(cacheConfig, config);\n}\nfunction getSizeLimitedCache() {\n const dataFetchCache = getDataFetchCache();\n const cacheConfig = getCacheConfig();\n if (!dataFetchCache || !dataFetchCache.cacheStore) {\n const cacheStore = new SizeLimitedCache({\n maxSize: cacheConfig.maxSize ?? CacheSize.GB,\n sizeCalculation: (value) => {\n if (!value.size) {\n return 1;\n }\n let size = 0;\n for (const [k, item] of value.entries()) {\n size += k.length * 2;\n size += estimateObjectSize(item.data);\n size += 8;\n }\n return size;\n }\n });\n globalThis.__MF_DATA_FETCH_CACHE__ || (globalThis.__MF_DATA_FETCH_CACHE__ = {});\n globalThis.__MF_DATA_FETCH_CACHE__.cacheStore = cacheStore;\n return cacheStore;\n }\n return dataFetchCache.cacheStore;\n}\nfunction estimateObjectSize(data) {\n const type = typeof data;\n if (type === "number") return 8;\n if (type === "boolean") return 4;\n if (type === "string") return Math.max(data.length * 2, 1);\n if (data === null || data === void 0) return 1;\n if (ArrayBuffer.isView(data)) {\n return Math.max(data.byteLength, 1);\n }\n if (Array.isArray(data)) {\n return Math.max(\n data.reduce((acc, item) => acc + estimateObjectSize(item), 0),\n 1\n );\n }\n if (data instanceof Map || data instanceof Set) {\n return 1024;\n }\n if (data instanceof Date) {\n return 8;\n }\n if (type === "object") {\n return Math.max(\n Object.entries(data).reduce(\n (acc, [key, value]) => acc + key.length * 2 + estimateObjectSize(value),\n 0\n ),\n 1\n );\n }\n return 1;\n}\nfunction generateKey(dataFetchOptions) {\n return JSON.stringify(dataFetchOptions, (_, value) => {\n if (value && typeof value === "object" && !Array.isArray(value)) {\n return Object.keys(value).sort().reduce((result, key) => {\n result[key] = value[key];\n return result;\n }, {});\n }\n return value;\n });\n}\nfunction cache(fn, options) {\n const {\n tag = "default",\n maxAge = CacheTime.MINUTE * 5,\n revalidate = 0,\n onCache,\n getKey\n } = options || {};\n const tags = Array.isArray(tag) ? tag : [tag];\n return async (dataFetchOptions) => {\n if (dataFetchOptions.isDowngrade || !dataFetchOptions._id) {\n return fn(dataFetchOptions);\n }\n const store = getSizeLimitedCache();\n const now = Date.now();\n const storeKey = dataFetchOptions._id;\n const cacheKey = getKey ? getKey(dataFetchOptions) : generateKey(dataFetchOptions);\n tags.forEach((t) => addTagKeyRelation(t, cacheKey));\n let cacheStore = store.get(cacheKey);\n if (!cacheStore) {\n cacheStore = /* @__PURE__ */ new Map();\n }\n const cached = cacheStore.get(storeKey);\n if (cached) {\n const age = now - cached.timestamp;\n if (age < maxAge) {\n if (onCache) {\n const useCache = onCache({\n status: "hit",\n key: cacheKey,\n params: dataFetchOptions,\n result: cached.data\n });\n if (!useCache) {\n return fn(dataFetchOptions);\n }\n }\n return cached.data;\n }\n if (revalidate > 0 && age < maxAge + revalidate) {\n if (onCache) {\n onCache({\n status: "stale",\n key: cacheKey,\n params: dataFetchOptions,\n result: cached.data\n });\n }\n if (!cached.isRevalidating) {\n cached.isRevalidating = true;\n Promise.resolve().then(async () => {\n try {\n const newData = await fn(dataFetchOptions);\n cacheStore.set(storeKey, {\n data: newData,\n timestamp: Date.now(),\n isRevalidating: false\n });\n store.set(cacheKey, cacheStore);\n } catch (error) {\n cached.isRevalidating = false;\n console.error("Background revalidation failed:", error);\n }\n });\n }\n return cached.data;\n }\n }\n const data = await fn(dataFetchOptions);\n cacheStore.set(storeKey, {\n data,\n timestamp: now,\n isRevalidating: false\n });\n store.set(cacheKey, cacheStore);\n if (onCache) {\n onCache({\n status: "miss",\n key: cacheKey,\n params: dataFetchOptions,\n result: data\n });\n }\n return data;\n };\n}\nfunction revalidateTag(tag) {\n const tagKeyMap = getTagKeyMap();\n const keys = tagKeyMap.get(tag);\n const cacheStore = getSizeLimitedCache();\n if (keys) {\n keys.forEach((key) => {\n cacheStore == null ? void 0 : cacheStore.delete(key);\n });\n }\n}\nfunction clearStore() {\n var _a;\n const cacheStore = getSizeLimitedCache();\n const tagKeyMap = getTagKeyMap();\n cacheStore == null ? void 0 : cacheStore.clear();\n (_a = globalThis.__MF_DATA_FETCH_CACHE__) == null ? true : delete _a.cacheStore;\n tagKeyMap.clear();\n}\nconst getDataFetchInfo = ({\n name,\n alias,\n id,\n remoteSnapshot\n}) => {\n if (!remoteSnapshot) {\n return;\n }\n if (!("modules" in remoteSnapshot)) {\n return;\n }\n const regex = new RegExp(`^${name}(/[^/].*|)$`);\n const nameOrAlias = regex.test(id) ? name : alias || name;\n const expose = id.replace(nameOrAlias, "");\n let dataFetchName = "";\n let dataFetchId = "";\n let dataFetchKey = "";\n if (expose.startsWith("/")) {\n dataFetchName = `${expose.slice(1)}.${DATA_FETCH_IDENTIFIER}`;\n dataFetchId = `${id}.${DATA_FETCH_IDENTIFIER}`;\n dataFetchKey = `${name}${expose}.${DATA_FETCH_IDENTIFIER}`;\n } else if (expose === "") {\n dataFetchName = DATA_FETCH_IDENTIFIER;\n dataFetchId = `${id}/${DATA_FETCH_IDENTIFIER}`;\n dataFetchKey = `${name}/${DATA_FETCH_IDENTIFIER}`;\n } else {\n return;\n }\n if (!dataFetchName || !dataFetchId || !dataFetchKey) {\n return;\n }\n if (!remoteSnapshot.modules.find(\n (module) => module.moduleName === dataFetchName\n )) {\n return;\n }\n return {\n dataFetchName,\n dataFetchId,\n dataFetchKey\n };\n};\nfunction initDataFetchMap() {\n globalThis.__MF_DATA_FETCH_MAP__ || (globalThis.__MF_DATA_FETCH_MAP__ = {});\n}\nfunction getDataFetchItem(id) {\n var _a;\n return (_a = globalThis.__MF_DATA_FETCH_MAP__) == null ? void 0 : _a[id];\n}\nfunction getDataFetchMap() {\n return globalThis.__MF_DATA_FETCH_MAP__;\n}\nfunction getDataFetchCache() {\n return globalThis.__MF_DATA_FETCH_CACHE__;\n}\nconst flushDataFetch = () => {\n globalThis.__MF_DATA_FETCH_MAP__ = {};\n globalThis[DOWNGRADE_KEY] = void 0;\n clearStore();\n};\nfunction setDataFetchItemLoadedStatus(id) {\n const dataFetchItem = getDataFetchItem(id);\n if (!dataFetchItem) {\n return;\n }\n dataFetchItem[2] = MF_DATA_FETCH_STATUS.LOADED;\n}\nconst wrapDataFetchId = (id) => {\n return `${WRAP_DATA_FETCH_ID_IDENTIFIER}${id}${WRAP_DATA_FETCH_ID_IDENTIFIER}`;\n};\nconst getDataFetchIdWithErrorMsgs = (errMsgs) => {\n const firstIdentifierIndex = errMsgs.indexOf(WRAP_DATA_FETCH_ID_IDENTIFIER);\n if (firstIdentifierIndex === -1) {\n return void 0;\n }\n const secondIdentifierIndex = errMsgs.indexOf(\n WRAP_DATA_FETCH_ID_IDENTIFIER,\n firstIdentifierIndex + WRAP_DATA_FETCH_ID_IDENTIFIER.length\n );\n if (secondIdentifierIndex === -1) {\n return void 0;\n }\n return errMsgs.substring(\n firstIdentifierIndex + WRAP_DATA_FETCH_ID_IDENTIFIER.length,\n secondIdentifierIndex\n );\n};\nasync function fetchData(id, params, remoteInfo) {\n var _a;\n const callFetchData = async () => {\n const item = getDataFetchItem(id);\n if (!item) {\n return;\n }\n const [fetchDataFnArr, ..._rest] = item;\n const fetchDataFn = await fetchDataFnArr[2];\n if (!fetchDataFn) {\n return;\n }\n return fetchDataFn({\n ...params,\n _id: id\n });\n };\n if (isBrowserEnvValue) {\n const dataFetchItem = getDataFetchItem(id);\n if (!dataFetchItem) {\n throw new Error(`dataFetchItem not found, id: ${id}`);\n }\n if ((_a = dataFetchItem[1]) == null ? void 0 : _a[0]) {\n return dataFetchItem[1][0];\n }\n if (isCSROnly()) {\n logger.debug("==========csr only!");\n return callFetchData();\n }\n if (remoteInfo) {\n return callDowngrade(id, params, remoteInfo);\n }\n const mfDowngrade = getDowngradeTag();\n if (mfDowngrade && (typeof mfDowngrade === "boolean" || mfDowngrade.includes(id))) {\n return callDowngrade(id, { ...params, isDowngrade: true });\n }\n let res;\n let rej;\n const p = new Promise((resolve, reject) => {\n res = resolve;\n rej = reject;\n });\n dataFetchItem[1] = [p, res, rej];\n dataFetchItem[2] = MF_DATA_FETCH_STATUS.AWAIT;\n return dataFetchItem[1][0];\n }\n return callFetchData();\n}\nfunction getDataFetchMapKey(dataFetchInfo, hostInfo) {\n if (!dataFetchInfo || !hostInfo) {\n return;\n }\n const { dataFetchKey } = dataFetchInfo;\n return composeKeyWithSeparator(dataFetchKey, hostInfo.name, hostInfo.version);\n}\nasync function loadDataFetchModule(instance, id) {\n return instance.loadRemote(id).then((m) => {\n if (m && typeof m === "object" && "fetchData" in m && typeof m.fetchData === "function") {\n return m.fetchData;\n }\n throw new Error(\n `fetchData not found in remote ${id}, ${JSON.stringify(m)}`\n );\n });\n}\nfunction isDataLoaderExpose(exposeKey) {\n return exposeKey.endsWith(DATA_FETCH_IDENTIFIER) || exposeKey.endsWith(DATA_FETCH_CLIENT_SUFFIX);\n}\nfunction getDowngradeTag() {\n return globalThis[DOWNGRADE_KEY];\n}\nfunction callAllDowngrade() {\n const dataFetchMap = getDataFetchMap();\n if (!dataFetchMap) {\n return;\n }\n Object.keys(dataFetchMap).forEach((key) => {\n callDowngrade(key);\n });\n}\nasync function callDowngrade(id, params, remoteInfo) {\n const dataFetchMap = getDataFetchMap();\n if (!dataFetchMap) {\n return;\n }\n const mfDataFetch = dataFetchMap[id];\n if ((mfDataFetch == null ? void 0 : mfDataFetch[2]) === MF_DATA_FETCH_STATUS.AWAIT) {\n mfDataFetch[2] = MF_DATA_FETCH_STATUS.LOADING;\n let promise;\n let res;\n let rej;\n if (mfDataFetch[1]) {\n promise = mfDataFetch[1][0];\n res = mfDataFetch[1][1];\n rej = mfDataFetch[1][2];\n } else {\n promise = new Promise((resolve, reject) => {\n res = resolve;\n rej = reject;\n });\n mfDataFetch[1] = [promise, res, rej];\n }\n const dataFetchType = mfDataFetch[0][1];\n if (dataFetchType === MF_DATA_FETCH_TYPE.FETCH_CLIENT) {\n try {\n mfDataFetch[0][0]().then(async (getDataFetchFn) => {\n return getDataFetchFn({\n ...params,\n isDowngrade: true,\n _id: id\n }).then((data) => {\n mfDataFetch[2] = MF_DATA_FETCH_STATUS.LOADED;\n res && res(data);\n });\n });\n } catch (e) {\n mfDataFetch[2] = MF_DATA_FETCH_STATUS.ERROR;\n rej && rej(e);\n }\n } else if (dataFetchType === MF_DATA_FETCH_TYPE.FETCH_SERVER) {\n try {\n const currentUrl = new URL(window.location.href);\n currentUrl.searchParams.set(DATA_FETCH_QUERY, encodeURIComponent(id));\n if (params) {\n currentUrl.searchParams.set(\n "params",\n encodeURIComponent(JSON.stringify(params))\n );\n }\n if (remoteInfo) {\n currentUrl.searchParams.set(\n "remoteInfo",\n encodeURIComponent(JSON.stringify(remoteInfo))\n );\n }\n const fetchServerQuery = globalThis.FEDERATION_SERVER_QUERY;\n if (fetchServerQuery && typeof fetchServerQuery === "object") {\n Object.keys(fetchServerQuery).forEach((key) => {\n currentUrl.searchParams.set(\n key,\n JSON.stringify(fetchServerQuery[key])\n );\n });\n }\n const fetchUrl = currentUrl.toString();\n const data = await fetch(fetchUrl).then((res2) => res2.json());\n mfDataFetch[2] = MF_DATA_FETCH_STATUS.LOADED;\n res && res(data);\n } catch (e) {\n mfDataFetch[2] = MF_DATA_FETCH_STATUS.ERROR;\n rej && rej(e);\n }\n }\n return promise;\n }\n}\nfunction isCSROnly() {\n return window._SSR_DATA === void 0;\n}\nfunction isServerEnv() {\n return typeof window === "undefined";\n}\nfunction setSSREnv({\n fetchServerQuery\n}) {\n globalThis.FEDERATION_SSR = true;\n globalThis.FEDERATION_SERVER_QUERY = fetchServerQuery;\n}\nfunction getLoadedRemoteInfos(id, instance) {\n if (!instance) {\n return;\n }\n const { name, expose } = instance.remoteHandler.idToRemoteMap[id] || {};\n if (!name) {\n return;\n }\n const module = instance.moduleCache.get(name);\n if (!module) {\n return;\n }\n const { remoteSnapshot } = instance.snapshotHandler.getGlobalRemoteInfo(\n module.remoteInfo\n );\n return {\n ...module.remoteInfo,\n snapshot: remoteSnapshot,\n expose\n };\n}\nexport {\n setDataFetchItemLoadedStatus as A,\n warn as B,\n CacheSize as C,\n DATA_FETCH_QUERY as D,\n ERROR_TYPE as E,\n FS_HREF as F,\n DOWNGRADE_KEY as G,\n callAllDowngrade as H,\n callDowngrade as I,\n getDowngradeTag as J,\n composeKeyWithSeparator as K,\n LOAD_REMOTE_ERROR_PREFIX as L,\n MF_DATA_FETCH_STATUS as M,\n safeToString as N,\n getDataFetchCache as O,\n CacheTime as a,\n clearStore as b,\n cache as c,\n configureCache as d,\n getDataFetchMap as e,\n flushDataFetch as f,\n generateKey as g,\n fetchData as h,\n initDataFetchMap as i,\n loadDataFetchModule as j,\n isDataLoaderExpose as k,\n logger as l,\n getDataFetchInfo as m,\n getDataFetchMapKey as n,\n getDataFetchItem as o,\n DATA_FETCH_CLIENT_SUFFIX as p,\n MF_DATA_FETCH_TYPE as q,\n revalidateTag as r,\n setSSREnv as s,\n isCSROnly as t,\n isServerEnv as u,\n getDataFetchIdWithErrorMsgs as v,\n DATA_FETCH_ERROR_PREFIX as w,\n wrapDataFetchId as x,\n DATA_FETCH_FUNCTION as y,\n getLoadedRemoteInfos as z\n};\n'};const ENTRY_FILE="entry.ts";const APP_FILE="app.tsx";const BRIDGE_ROOT="bridge";const BRIDGE_INDEX_FILE=`${BRIDGE_ROOT}/index.es.js`;const BRIDGE_ROUTER_STUB_FILE=`${BRIDGE_ROOT}/react-router-dom-stub.js`;const BRIDGE_ROUTER_STUB_SOURCE=`export function useLocation() {
|
|
381
|
+
Additional information: BADCLIENT: Bad error code, ${badCode} not found in range ${startPosition}..${endPosition} (found: ${existingDiagCodes.join(", ")})`;throw error2}return simplifiedResult?codeActions.map(codeAction=>this.mapCodeFixAction(codeAction)):codeActions}getCombinedCodeFix({scope,fixId:fixId56},simplifiedResult){Debug.assert("file"===scope.type);const{file,project}=this.getFileAndProject(scope.args);const res=project.getLanguageService().getCombinedCodeFix({type:"file",fileName:file},fixId56,this.getFormatOptions(file),this.getPreferences(file));if(simplifiedResult)return{changes:this.mapTextChangesToCodeEdits(res.changes),commands:res.commands};return res}applyCodeActionCommand(args){const commands=args.command;for(const command of toArray(commands)){const{file,project}=this.getFileAndProject(command);project.getLanguageService().applyCodeActionCommand(command,this.getFormatOptions(file)).then(_result=>{},_error=>{})}return{}}getStartAndEndPosition(args,scriptInfo){let startPosition,endPosition;if(void 0!==args.startPosition)startPosition=args.startPosition;else{startPosition=scriptInfo.lineOffsetToPosition(args.startLine,args.startOffset);args.startPosition=startPosition}if(void 0!==args.endPosition)endPosition=args.endPosition;else{endPosition=scriptInfo.lineOffsetToPosition(args.endLine,args.endOffset);args.endPosition=endPosition}return{startPosition,endPosition}}mapCodeAction({description:description3,changes,commands}){return{description:description3,changes:this.mapTextChangesToCodeEdits(changes),commands}}mapCodeFixAction({fixName:fixName8,description:description3,changes,commands,fixId:fixId56,fixAllDescription}){return{fixName:fixName8,description:description3,changes:this.mapTextChangesToCodeEdits(changes),commands,fixId:fixId56,fixAllDescription}}mapPasteEditsAction({edits,fixId:fixId56}){return{edits:this.mapTextChangesToCodeEdits(edits),fixId:fixId56}}mapTextChangesToCodeEdits(textChanges2){return textChanges2.map(change=>this.mapTextChangeToCodeEdit(change))}mapTextChangeToCodeEdit(textChanges2){const scriptInfo=this.projectService.getScriptInfoOrConfig(textChanges2.fileName);if(!!textChanges2.isNewFile===!!scriptInfo){if(!scriptInfo)this.projectService.logErrorForScriptInfoNotFound(textChanges2.fileName);Debug.fail("Expected isNewFile for (only) new files. "+JSON.stringify({isNewFile:!!textChanges2.isNewFile,hasScriptInfo:!!scriptInfo}))}return scriptInfo?{fileName:textChanges2.fileName,textChanges:textChanges2.textChanges.map(textChange=>convertTextChangeToCodeEdit(textChange,scriptInfo))}:convertNewFileTextChangeToCodeEdit(textChanges2)}convertTextChangeToCodeEdit(change,scriptInfo){return{start:scriptInfo.positionToLineOffset(change.span.start),end:scriptInfo.positionToLineOffset(change.span.start+change.span.length),newText:change.newText?change.newText:""}}getBraceMatching(args,simplifiedResult){const{file,languageService}=this.getFileAndLanguageServiceForSyntacticOperation(args);const scriptInfo=this.projectService.getScriptInfoForNormalizedPath(file);const position=this.getPosition(args,scriptInfo);const spans=languageService.getBraceMatchingAtPosition(file,position);return spans?simplifiedResult?spans.map(span=>toProtocolTextSpan(span,scriptInfo)):spans:void 0}getDiagnosticsForProject(next,delay,fileName){if(this.suppressDiagnosticEvents)return;const{fileNames,languageServiceDisabled}=this.getProjectInfoWorker(fileName,void 0,true,void 0,true);if(languageServiceDisabled)return;const fileNamesInProject=fileNames.filter(value1=>!value1.includes("lib.d.ts"));if(0===fileNamesInProject.length)return;const highPriorityFiles=[];const mediumPriorityFiles=[];const lowPriorityFiles=[];const veryLowPriorityFiles=[];const normalizedFileName=toNormalizedPath(fileName);const project=this.projectService.ensureDefaultProjectForFile(normalizedFileName);for(const fileNameInProject of fileNamesInProject)if(this.getCanonicalFileName(fileNameInProject)===this.getCanonicalFileName(fileName))highPriorityFiles.push(fileNameInProject);else{const info=this.projectService.getScriptInfo(fileNameInProject);if(info.isScriptOpen())mediumPriorityFiles.push(fileNameInProject);else if(isDeclarationFileName(fileNameInProject))veryLowPriorityFiles.push(fileNameInProject);else lowPriorityFiles.push(fileNameInProject)}const sortedFiles=[...highPriorityFiles,...mediumPriorityFiles,...lowPriorityFiles,...veryLowPriorityFiles];const checkList=sortedFiles.map(fileName2=>({fileName:fileName2,project}));this.updateErrorCheck(next,checkList,delay,false)}configurePlugin(args){this.projectService.configurePlugin(args)}getSmartSelectionRange(args,simplifiedResult){const{locations}=args;const{file,languageService}=this.getFileAndLanguageServiceForSyntacticOperation(args);const scriptInfo=Debug.checkDefined(this.projectService.getScriptInfo(file));return map(locations,location=>{const pos=this.getPosition(location,scriptInfo);const selectionRange=languageService.getSmartSelectionRange(file,pos);return simplifiedResult?this.mapSelectionRange(selectionRange,scriptInfo):selectionRange})}toggleLineComment(args,simplifiedResult){const{file,languageService}=this.getFileAndLanguageServiceForSyntacticOperation(args);const scriptInfo=this.projectService.getScriptInfo(file);const textRange=this.getRange(args,scriptInfo);const textChanges2=languageService.toggleLineComment(file,textRange);if(simplifiedResult){const scriptInfo2=this.projectService.getScriptInfoForNormalizedPath(file);return textChanges2.map(textChange=>this.convertTextChangeToCodeEdit(textChange,scriptInfo2))}return textChanges2}toggleMultilineComment(args,simplifiedResult){const{file,languageService}=this.getFileAndLanguageServiceForSyntacticOperation(args);const scriptInfo=this.projectService.getScriptInfoForNormalizedPath(file);const textRange=this.getRange(args,scriptInfo);const textChanges2=languageService.toggleMultilineComment(file,textRange);if(simplifiedResult){const scriptInfo2=this.projectService.getScriptInfoForNormalizedPath(file);return textChanges2.map(textChange=>this.convertTextChangeToCodeEdit(textChange,scriptInfo2))}return textChanges2}commentSelection(args,simplifiedResult){const{file,languageService}=this.getFileAndLanguageServiceForSyntacticOperation(args);const scriptInfo=this.projectService.getScriptInfoForNormalizedPath(file);const textRange=this.getRange(args,scriptInfo);const textChanges2=languageService.commentSelection(file,textRange);if(simplifiedResult){const scriptInfo2=this.projectService.getScriptInfoForNormalizedPath(file);return textChanges2.map(textChange=>this.convertTextChangeToCodeEdit(textChange,scriptInfo2))}return textChanges2}uncommentSelection(args,simplifiedResult){const{file,languageService}=this.getFileAndLanguageServiceForSyntacticOperation(args);const scriptInfo=this.projectService.getScriptInfoForNormalizedPath(file);const textRange=this.getRange(args,scriptInfo);const textChanges2=languageService.uncommentSelection(file,textRange);if(simplifiedResult){const scriptInfo2=this.projectService.getScriptInfoForNormalizedPath(file);return textChanges2.map(textChange=>this.convertTextChangeToCodeEdit(textChange,scriptInfo2))}return textChanges2}mapSelectionRange(selectionRange,scriptInfo){const result={textSpan:toProtocolTextSpan(selectionRange.textSpan,scriptInfo)};if(selectionRange.parent)result.parent=this.mapSelectionRange(selectionRange.parent,scriptInfo);return result}getScriptInfoFromProjectService(file){const normalizedFile=toNormalizedPath(file);const scriptInfo=this.projectService.getScriptInfoForNormalizedPath(normalizedFile);if(!scriptInfo){this.projectService.logErrorForScriptInfoNotFound(normalizedFile);return Errors.ThrowNoProject()}return scriptInfo}toProtocolCallHierarchyItem(item){const scriptInfo=this.getScriptInfoFromProjectService(item.file);return{name:item.name,kind:item.kind,kindModifiers:item.kindModifiers,file:item.file,containerName:item.containerName,span:toProtocolTextSpan(item.span,scriptInfo),selectionSpan:toProtocolTextSpan(item.selectionSpan,scriptInfo)}}toProtocolCallHierarchyIncomingCall(incomingCall){const scriptInfo=this.getScriptInfoFromProjectService(incomingCall.from.file);return{from:this.toProtocolCallHierarchyItem(incomingCall.from),fromSpans:incomingCall.fromSpans.map(fromSpan=>toProtocolTextSpan(fromSpan,scriptInfo))}}toProtocolCallHierarchyOutgoingCall(outgoingCall,scriptInfo){return{to:this.toProtocolCallHierarchyItem(outgoingCall.to),fromSpans:outgoingCall.fromSpans.map(fromSpan=>toProtocolTextSpan(fromSpan,scriptInfo))}}prepareCallHierarchy(args){const{file,project}=this.getFileAndProject(args);const scriptInfo=this.projectService.getScriptInfoForNormalizedPath(file);if(scriptInfo){const position=this.getPosition(args,scriptInfo);const result=project.getLanguageService().prepareCallHierarchy(file,position);return result&&mapOneOrMany(result,item=>this.toProtocolCallHierarchyItem(item))}}provideCallHierarchyIncomingCalls(args){const{file,project}=this.getFileAndProject(args);const scriptInfo=this.getScriptInfoFromProjectService(file);const incomingCalls=project.getLanguageService().provideCallHierarchyIncomingCalls(file,this.getPosition(args,scriptInfo));return incomingCalls.map(call=>this.toProtocolCallHierarchyIncomingCall(call))}provideCallHierarchyOutgoingCalls(args){const{file,project}=this.getFileAndProject(args);const scriptInfo=this.getScriptInfoFromProjectService(file);const outgoingCalls=project.getLanguageService().provideCallHierarchyOutgoingCalls(file,this.getPosition(args,scriptInfo));return outgoingCalls.map(call=>this.toProtocolCallHierarchyOutgoingCall(call,scriptInfo))}getCanonicalFileName(fileName){const name=this.host.useCaseSensitiveFileNames?fileName:toFileNameLowerCase(fileName);return normalizePath(name)}exit(){}notRequired(request){if(request)this.doOutput(void 0,request.command,request.seq,true,this.performanceData);return{responseRequired:false,performanceData:this.performanceData}}requiredResponse(response){return{response,responseRequired:true,performanceData:this.performanceData}}addProtocolHandler(command,handler){if(this.handlers.has(command))throw new Error(`Protocol handler already exists for command "${command}"`);this.handlers.set(command,handler)}setCurrentRequest(requestId){Debug.assert(void 0===this.currentRequestId);this.currentRequestId=requestId;this.cancellationToken.setRequest(requestId)}resetCurrentRequest(requestId){Debug.assert(this.currentRequestId===requestId);this.currentRequestId=void 0;this.cancellationToken.resetRequest(requestId)}executeWithRequestId(requestId,f,perfomanceData){const currentPerformanceData=this.performanceData;try{this.performanceData=perfomanceData;this.setCurrentRequest(requestId);return f()}finally{this.resetCurrentRequest(requestId);this.performanceData=currentPerformanceData}}executeCommand(request){const handler=this.handlers.get(request.command);if(handler){const response=this.executeWithRequestId(request.seq,()=>handler(request),void 0);this.projectService.enableRequestedPlugins();return response}this.logger.msg(`Unrecognized JSON command:${stringifyIndented(request)}`,"Err");this.doOutput(void 0,"unknown",request.seq,false,void 0,`Unrecognized JSON command: ${request.command}`);return{responseRequired:false}}onMessage(message){var _a,_b,_c,_d,_e,_f,_g;this.gcTimer.scheduleCollect();let start;const currentPerformanceData=this.performanceData;if(this.logger.hasLevel(2)){start=this.hrtime();if(this.logger.hasLevel(3))this.logger.info(`request:${indent2(this.toStringMessage(message))}`)}let request;let relevantFile;try{request=this.parseMessage(message);relevantFile=request.arguments&&request.arguments.file?request.arguments:void 0;null==(_a=tracing)||_a.instant(tracing.Phase.Session,"request",{seq:request.seq,command:request.command});null==(_b=tracing)||_b.push(tracing.Phase.Session,"executeCommand",{seq:request.seq,command:request.command},true);const{response,responseRequired,performanceData}=this.executeCommand(request);null==(_c=tracing)||_c.pop();if(this.logger.hasLevel(2)){const elapsedTime=hrTimeToMilliseconds(this.hrtime(start)).toFixed(4);if(responseRequired)this.logger.perftrc(`${request.seq}::${request.command}: elapsed time (in milliseconds) ${elapsedTime}`);else this.logger.perftrc(`${request.seq}::${request.command}: async elapsed time (in milliseconds) ${elapsedTime}`)}null==(_d=tracing)||_d.instant(tracing.Phase.Session,"response",{seq:request.seq,command:request.command,success:!!response});if(response)this.doOutput(response,request.command,request.seq,true,performanceData);else if(responseRequired)this.doOutput(void 0,request.command,request.seq,false,performanceData,"No content available.")}catch(err){null==(_e=tracing)||_e.popAll();if(err instanceof OperationCanceledException){null==(_f=tracing)||_f.instant(tracing.Phase.Session,"commandCanceled",{seq:null==request?void 0:request.seq,command:null==request?void 0:request.command});this.doOutput({canceled:true},request.command,request.seq,true,this.performanceData);return}this.logErrorWorker(err,this.toStringMessage(message),relevantFile);null==(_g=tracing)||_g.instant(tracing.Phase.Session,"commandError",{seq:null==request?void 0:request.seq,command:null==request?void 0:request.command,message:err.message});this.doOutput(void 0,request?request.command:"unknown",request?request.seq:0,false,this.performanceData,"Error processing request. "+err.message+"\n"+err.stack)}finally{this.performanceData=currentPerformanceData}}parseMessage(message){return JSON.parse(message)}toStringMessage(message){return message}getFormatOptions(file){return this.projectService.getFormatCodeOptions(file)}getPreferences(file){return this.projectService.getPreferences(file)}getHostFormatOptions(){return this.projectService.getHostFormatCodeOptions()}getHostPreferences(){return this.projectService.getHostPreferences()}};function toProtocolPerformanceData(performanceData){const diagnosticsDuration=performanceData.diagnosticsDuration&&arrayFrom(performanceData.diagnosticsDuration,([file,data])=>({...data,file}));return{...performanceData,diagnosticsDuration}}function toProtocolTextSpan(textSpan,scriptInfo){return{start:scriptInfo.positionToLineOffset(textSpan.start),end:scriptInfo.positionToLineOffset(textSpanEnd(textSpan))}}function toProtocolTextSpanWithContext(span,contextSpan,scriptInfo){const textSpan=toProtocolTextSpan(span,scriptInfo);const contextTextSpan=contextSpan&&toProtocolTextSpan(contextSpan,scriptInfo);return contextTextSpan?{...textSpan,contextStart:contextTextSpan.start,contextEnd:contextTextSpan.end}:textSpan}function convertTextChangeToCodeEdit(change,scriptInfo){return{start:positionToLineOffset(scriptInfo,change.span.start),end:positionToLineOffset(scriptInfo,textSpanEnd(change.span)),newText:change.newText}}function positionToLineOffset(info,position){return isConfigFile(info)?locationFromLineAndCharacter(info.getLineAndCharacterOfPosition(position)):info.positionToLineOffset(position)}function convertLinkedEditInfoToRanges(linkedEdit,scriptInfo){const ranges=linkedEdit.ranges.map(r=>({start:scriptInfo.positionToLineOffset(r.start),end:scriptInfo.positionToLineOffset(r.start+r.length)}));if(!linkedEdit.wordPattern)return{ranges};return{ranges,wordPattern:linkedEdit.wordPattern}}function locationFromLineAndCharacter(lc){return{line:lc.line+1,offset:lc.character+1}}function convertNewFileTextChangeToCodeEdit(textChanges2){Debug.assert(1===textChanges2.textChanges.length);const change=first(textChanges2.textChanges);Debug.assert(0===change.span.start&&0===change.span.length);return{fileName:textChanges2.fileName,textChanges:[{start:{line:0,offset:0},end:{line:0,offset:0},newText:change.newText}]}}function getLocationInNewDocument(oldText,renameFilename,renameLocation,edits){const newText=applyEdits(oldText,renameFilename,edits);const{line,character}=computeLineAndCharacterOfPosition(computeLineStarts(newText),renameLocation);return{line:line+1,offset:character+1}}function applyEdits(text,textFilename,edits){for(const{fileName,textChanges:textChanges2}of edits)if(fileName===textFilename)for(let i=textChanges2.length-1;i>=0;i--){const{newText,span:{start,length:length2}}=textChanges2[i];text=text.slice(0,start)+newText+text.slice(start+length2)}return text}function referenceEntryToReferencesResponseItem(projectService,{fileName,textSpan,contextSpan,isWriteAccess:isWriteAccess2,isDefinition},{disableLineTextInReferences}){const scriptInfo=Debug.checkDefined(projectService.getScriptInfo(fileName));const span=toProtocolTextSpanWithContext(textSpan,contextSpan,scriptInfo);const lineText=disableLineTextInReferences?void 0:getLineText(scriptInfo,span);return{file:fileName,...span,lineText,isWriteAccess:isWriteAccess2,isDefinition}}function getLineText(scriptInfo,span){const lineSpan=scriptInfo.lineToTextSpan(span.start.line-1);return scriptInfo.getSnapshot().getText(lineSpan.start,textSpanEnd(lineSpan)).replace(/\r|\n/g,"")}function isCompletionEntryData(data){return void 0===data||data&&"object"==typeof data&&"string"==typeof data.exportName&&(void 0===data.fileName||"string"==typeof data.fileName)&&(void 0===data.ambientModuleName||"string"==typeof data.ambientModuleName&&(void 0===data.isPackageJsonImport||"boolean"==typeof data.isPackageJsonImport))}var lineCollectionCapacity=4;var CharRangeSection=/* @__PURE__ */(CharRangeSection2=>{CharRangeSection2[CharRangeSection2["PreStart"]=0]="PreStart";CharRangeSection2[CharRangeSection2["Start"]=1]="Start";CharRangeSection2[CharRangeSection2["Entire"]=2]="Entire";CharRangeSection2[CharRangeSection2["Mid"]=3]="Mid";CharRangeSection2[CharRangeSection2["End"]=4]="End";CharRangeSection2[CharRangeSection2["PostEnd"]=5]="PostEnd";return CharRangeSection2})(CharRangeSection||{});var EditWalker=class{constructor(){this.goSubtree=true;this.lineIndex=new LineIndex;this.endBranch=[];this.state=2;this.initialText="";this.trailingText="";this.lineIndex.root=new LineNode;this.startPath=[this.lineIndex.root];this.stack=[this.lineIndex.root]}get done(){return false}insertLines(insertedText,suppressTrailingText){if(suppressTrailingText)this.trailingText="";insertedText=insertedText?this.initialText+insertedText+this.trailingText:this.initialText+this.trailingText;const lm=LineIndex.linesFromText(insertedText);const lines=lm.lines;if(lines.length>1&&""===lines[lines.length-1])lines.pop();let branchParent;let lastZeroCount;for(let k=this.endBranch.length-1;k>=0;k--){this.endBranch[k].updateCounts();if(0===this.endBranch[k].charCount()){lastZeroCount=this.endBranch[k];branchParent=k>0?this.endBranch[k-1]:this.branchNode}}if(lastZeroCount)branchParent.remove(lastZeroCount);const leafNode=this.startPath[this.startPath.length-1];if(lines.length>0){leafNode.text=lines[0];if(lines.length>1){let insertedNodes=new Array(lines.length-1);let startNode2=leafNode;for(let i=1;i<lines.length;i++)insertedNodes[i-1]=new LineLeaf(lines[i]);let pathIndex=this.startPath.length-2;while(pathIndex>=0){const insertionNode=this.startPath[pathIndex];insertedNodes=insertionNode.insertAt(startNode2,insertedNodes);pathIndex--;startNode2=insertionNode}let insertedNodesLen=insertedNodes.length;while(insertedNodesLen>0){const newRoot=new LineNode;newRoot.add(this.lineIndex.root);insertedNodes=newRoot.insertAt(this.lineIndex.root,insertedNodes);insertedNodesLen=insertedNodes.length;this.lineIndex.root=newRoot}this.lineIndex.root.updateCounts()}else for(let j=this.startPath.length-2;j>=0;j--)this.startPath[j].updateCounts()}else{const insertionNode=this.startPath[this.startPath.length-2];insertionNode.remove(leafNode);for(let j=this.startPath.length-2;j>=0;j--)this.startPath[j].updateCounts()}return this.lineIndex}post(_relativeStart,_relativeLength,lineCollection){if(lineCollection===this.lineCollectionAtBranch)this.state=4;this.stack.pop()}pre(_relativeStart,_relativeLength,lineCollection,_parent,nodeType){const currentNode=this.stack[this.stack.length-1];if(2===this.state&&1===nodeType){this.state=1;this.branchNode=currentNode;this.lineCollectionAtBranch=lineCollection}let child;function fresh(node){if(node.isLeaf())return new LineLeaf("");return new LineNode}switch(nodeType){case 0:this.goSubtree=false;if(4!==this.state)currentNode.add(lineCollection);break;case 1:if(4===this.state)this.goSubtree=false;else{child=fresh(lineCollection);currentNode.add(child);this.startPath.push(child)}break;case 2:if(4!==this.state){child=fresh(lineCollection);currentNode.add(child);this.startPath.push(child)}else if(!lineCollection.isLeaf()){child=fresh(lineCollection);currentNode.add(child);this.endBranch.push(child)}break;case 3:this.goSubtree=false;break;case 4:if(4!==this.state)this.goSubtree=false;else if(!lineCollection.isLeaf()){child=fresh(lineCollection);currentNode.add(child);this.endBranch.push(child)}break;case 5:this.goSubtree=false;if(1!==this.state)currentNode.add(lineCollection);break}if(this.goSubtree)this.stack.push(child)}leaf(relativeStart,relativeLength,ll){if(1===this.state)this.initialText=ll.text.substring(0,relativeStart);else if(2===this.state){this.initialText=ll.text.substring(0,relativeStart);this.trailingText=ll.text.substring(relativeStart+relativeLength)}else this.trailingText=ll.text.substring(relativeStart+relativeLength)}};var TextChange9=class{constructor(pos,deleteLen,insertedText){this.pos=pos;this.deleteLen=deleteLen;this.insertedText=insertedText}getTextChangeRange(){return createTextChangeRange(createTextSpan(this.pos,this.deleteLen),this.insertedText?this.insertedText.length:0)}};var _ScriptVersionCache=class _ScriptVersionCache{constructor(){this.changes=[];this.versions=new Array(_ScriptVersionCache.maxVersions);this.minVersion=0;this.currentVersion=0}versionToIndex(version2){if(version2<this.minVersion||version2>this.currentVersion)return;return version2%_ScriptVersionCache.maxVersions}currentVersionToIndex(){return this.currentVersion%_ScriptVersionCache.maxVersions}edit(pos,deleteLen,insertedText){this.changes.push(new TextChange9(pos,deleteLen,insertedText));if(this.changes.length>_ScriptVersionCache.changeNumberThreshold||deleteLen>_ScriptVersionCache.changeLengthThreshold||insertedText&&insertedText.length>_ScriptVersionCache.changeLengthThreshold)this.getSnapshot()}getSnapshot(){return this._getSnapshot()}_getSnapshot(){let snap=this.versions[this.currentVersionToIndex()];if(this.changes.length>0){let snapIndex=snap.index;for(const change of this.changes)snapIndex=snapIndex.edit(change.pos,change.deleteLen,change.insertedText);snap=new LineIndexSnapshot(this.currentVersion+1,this,snapIndex,this.changes);this.currentVersion=snap.version;this.versions[this.currentVersionToIndex()]=snap;this.changes=[];if(this.currentVersion-this.minVersion>=_ScriptVersionCache.maxVersions)this.minVersion=this.currentVersion-_ScriptVersionCache.maxVersions+1}return snap}getSnapshotVersion(){return this._getSnapshot().version}getAbsolutePositionAndLineText(oneBasedLine){return this._getSnapshot().index.lineNumberToInfo(oneBasedLine)}lineOffsetToPosition(line,column){return this._getSnapshot().index.absolutePositionOfStartOfLine(line)+(column-1)}positionToLineOffset(position){return this._getSnapshot().index.positionToLineOffset(position)}lineToTextSpan(line){const index=this._getSnapshot().index;const{lineText,absolutePosition}=index.lineNumberToInfo(line+1);const len=void 0!==lineText?lineText.length:index.absolutePositionOfStartOfLine(line+2)-absolutePosition;return createTextSpan(absolutePosition,len)}getTextChangesBetweenVersions(oldVersion,newVersion){if(!(oldVersion<newVersion))return unchangedTextChangeRange;if(!(oldVersion>=this.minVersion))return;{const textChangeRanges=[];for(let i=oldVersion+1;i<=newVersion;i++){const snap=this.versions[this.versionToIndex(i)];for(const textChange of snap.changesSincePreviousVersion)textChangeRanges.push(textChange.getTextChangeRange())}return collapseTextChangeRangesAcrossMultipleVersions(textChangeRanges)}}getLineCount(){return this._getSnapshot().index.getLineCount()}static fromString(script){const svc=new _ScriptVersionCache;const snap=new LineIndexSnapshot(0,svc,new LineIndex);svc.versions[svc.currentVersion]=snap;const lm=LineIndex.linesFromText(script);snap.index.load(lm.lines);return svc}};_ScriptVersionCache.changeNumberThreshold=8;_ScriptVersionCache.changeLengthThreshold=256;_ScriptVersionCache.maxVersions=8;var ScriptVersionCache=_ScriptVersionCache;var LineIndexSnapshot=class _LineIndexSnapshot{constructor(version2,cache,index,changesSincePreviousVersion=emptyArray2){this.version=version2;this.cache=cache;this.index=index;this.changesSincePreviousVersion=changesSincePreviousVersion}getText(rangeStart,rangeEnd){return this.index.getText(rangeStart,rangeEnd-rangeStart)}getLength(){return this.index.getLength()}getChangeRange(oldSnapshot){if(oldSnapshot instanceof _LineIndexSnapshot&&this.cache===oldSnapshot.cache)if(this.version<=oldSnapshot.version)return unchangedTextChangeRange;else return this.cache.getTextChangesBetweenVersions(oldSnapshot.version,this.version)}};var LineIndex=class _LineIndex{constructor(){this.checkEdits=false}absolutePositionOfStartOfLine(oneBasedLine){return this.lineNumberToInfo(oneBasedLine).absolutePosition}positionToLineOffset(position){const{oneBasedLine,zeroBasedColumn}=this.root.charOffsetToLineInfo(1,position);return{line:oneBasedLine,offset:zeroBasedColumn+1}}positionToColumnAndLineText(position){return this.root.charOffsetToLineInfo(1,position)}getLineCount(){return this.root.lineCount()}lineNumberToInfo(oneBasedLine){const lineCount=this.getLineCount();if(!(oneBasedLine<=lineCount))return{absolutePosition:this.root.charCount(),lineText:void 0};{const{position,leaf}=this.root.lineNumberToInfo(oneBasedLine,0);return{absolutePosition:position,lineText:leaf&&leaf.text}}}load(lines){if(lines.length>0){const leaves=[];for(let i=0;i<lines.length;i++)leaves[i]=new LineLeaf(lines[i]);this.root=_LineIndex.buildTreeFromBottom(leaves)}else this.root=new LineNode}walk(rangeStart,rangeLength,walkFns){this.root.walk(rangeStart,rangeLength,walkFns)}getText(rangeStart,rangeLength){let accum="";if(rangeLength>0&&rangeStart<this.root.charCount())this.walk(rangeStart,rangeLength,{goSubtree:true,done:false,leaf:(relativeStart,relativeLength,ll)=>{accum=accum.concat(ll.text.substring(relativeStart,relativeStart+relativeLength))}});return accum}getLength(){return this.root.charCount()}every(f,rangeStart,rangeEnd){if(!rangeEnd)rangeEnd=this.root.charCount();const walkFns={goSubtree:true,done:false,leaf(relativeStart,relativeLength,ll){if(!f(ll,relativeStart,relativeLength))this.done=true}};this.walk(rangeStart,rangeEnd-rangeStart,walkFns);return!walkFns.done}edit(pos,deleteLength,newText){if(0===this.root.charCount()){Debug.assert(0===deleteLength);if(void 0!==newText){this.load(_LineIndex.linesFromText(newText).lines);return this}return}{let checkText;if(this.checkEdits){const source=this.getText(0,this.root.charCount());checkText=source.slice(0,pos)+newText+source.slice(pos+deleteLength)}const walker=new EditWalker;let suppressTrailingText=false;if(pos>=this.root.charCount()){pos=this.root.charCount()-1;const endString=this.getText(pos,1);newText=newText?endString+newText:endString;deleteLength=0;suppressTrailingText=true}else if(deleteLength>0){const e=pos+deleteLength;const{zeroBasedColumn,lineText}=this.positionToColumnAndLineText(e);if(0===zeroBasedColumn){deleteLength+=lineText.length;newText=newText?newText+lineText:lineText}}this.root.walk(pos,deleteLength,walker);walker.insertLines(newText,suppressTrailingText);if(this.checkEdits){const updatedText=walker.lineIndex.getText(0,walker.lineIndex.getLength());Debug.assert(checkText===updatedText,"buffer edit mismatch")}return walker.lineIndex}}static buildTreeFromBottom(nodes){if(nodes.length<lineCollectionCapacity)return new LineNode(nodes);const interiorNodes=new Array(Math.ceil(nodes.length/lineCollectionCapacity));let nodeIndex=0;for(let i=0;i<interiorNodes.length;i++){const end=Math.min(nodeIndex+lineCollectionCapacity,nodes.length);interiorNodes[i]=new LineNode(nodes.slice(nodeIndex,end));nodeIndex=end}return this.buildTreeFromBottom(interiorNodes)}static linesFromText(text){const lineMap=computeLineStarts(text);if(0===lineMap.length)return{lines:[],lineMap};const lines=new Array(lineMap.length);const lc=lineMap.length-1;for(let lmi=0;lmi<lc;lmi++)lines[lmi]=text.substring(lineMap[lmi],lineMap[lmi+1]);const endText=text.substring(lineMap[lc]);if(endText.length>0)lines[lc]=endText;else lines.pop();return{lines,lineMap}}};var LineNode=class _LineNode{constructor(children=[]){this.children=children;this.totalChars=0;this.totalLines=0;if(children.length)this.updateCounts()}isLeaf(){return false}updateCounts(){this.totalChars=0;this.totalLines=0;for(const child of this.children){this.totalChars+=child.charCount();this.totalLines+=child.lineCount()}}execWalk(rangeStart,rangeLength,walkFns,childIndex,nodeType){if(walkFns.pre)walkFns.pre(rangeStart,rangeLength,this.children[childIndex],this,nodeType);if(walkFns.goSubtree){this.children[childIndex].walk(rangeStart,rangeLength,walkFns);if(walkFns.post)walkFns.post(rangeStart,rangeLength,this.children[childIndex],this,nodeType)}else walkFns.goSubtree=true;return walkFns.done}skipChild(relativeStart,relativeLength,childIndex,walkFns,nodeType){if(walkFns.pre&&!walkFns.done){walkFns.pre(relativeStart,relativeLength,this.children[childIndex],this,nodeType);walkFns.goSubtree=true}}walk(rangeStart,rangeLength,walkFns){if(0===this.children.length)return;let childIndex=0;let childCharCount=this.children[childIndex].charCount();let adjustedStart=rangeStart;while(adjustedStart>=childCharCount){this.skipChild(adjustedStart,rangeLength,childIndex,walkFns,0);adjustedStart-=childCharCount;childIndex++;childCharCount=this.children[childIndex].charCount()}if(adjustedStart+rangeLength<=childCharCount){if(this.execWalk(adjustedStart,rangeLength,walkFns,childIndex,2))return}else{if(this.execWalk(adjustedStart,childCharCount-adjustedStart,walkFns,childIndex,1))return;let adjustedLength=rangeLength-(childCharCount-adjustedStart);childIndex++;const child=this.children[childIndex];childCharCount=child.charCount();while(adjustedLength>childCharCount){if(this.execWalk(0,childCharCount,walkFns,childIndex,3))return;adjustedLength-=childCharCount;childIndex++;childCharCount=this.children[childIndex].charCount()}if(adjustedLength>0){if(this.execWalk(0,adjustedLength,walkFns,childIndex,4))return}}if(walkFns.pre){const clen=this.children.length;if(childIndex<clen-1)for(let ej=childIndex+1;ej<clen;ej++)this.skipChild(0,0,ej,walkFns,5)}}charOffsetToLineInfo(lineNumberAccumulator,relativePosition){if(0===this.children.length)return{oneBasedLine:lineNumberAccumulator,zeroBasedColumn:relativePosition,lineText:void 0};for(const child of this.children)if(child.charCount()>relativePosition)if(child.isLeaf())return{oneBasedLine:lineNumberAccumulator,zeroBasedColumn:relativePosition,lineText:child.text};else return child.charOffsetToLineInfo(lineNumberAccumulator,relativePosition);else{relativePosition-=child.charCount();lineNumberAccumulator+=child.lineCount()}const lineCount=this.lineCount();if(0===lineCount)return{oneBasedLine:1,zeroBasedColumn:0,lineText:void 0};const leaf=Debug.checkDefined(this.lineNumberToInfo(lineCount,0).leaf);return{oneBasedLine:lineCount,zeroBasedColumn:leaf.charCount(),lineText:void 0}}lineNumberToInfo(relativeOneBasedLine,positionAccumulator){for(const child of this.children){const childLineCount=child.lineCount();if(childLineCount>=relativeOneBasedLine)return child.isLeaf()?{position:positionAccumulator,leaf:child}:child.lineNumberToInfo(relativeOneBasedLine,positionAccumulator);relativeOneBasedLine-=childLineCount;positionAccumulator+=child.charCount()}return{position:positionAccumulator,leaf:void 0}}splitAfter(childIndex){let splitNode;const clen=this.children.length;childIndex++;const endLength=childIndex;if(childIndex<clen){splitNode=new _LineNode;while(childIndex<clen){splitNode.add(this.children[childIndex]);childIndex++}splitNode.updateCounts()}this.children.length=endLength;return splitNode}remove(child){const childIndex=this.findChildIndex(child);const clen=this.children.length;if(childIndex<clen-1)for(let i=childIndex;i<clen-1;i++)this.children[i]=this.children[i+1];this.children.pop()}findChildIndex(child){const childIndex=this.children.indexOf(child);Debug.assert(-1!==childIndex);return childIndex}insertAt(child,nodes){let childIndex=this.findChildIndex(child);const clen=this.children.length;const nodeCount=nodes.length;if(clen<lineCollectionCapacity&&childIndex===clen-1&&1===nodeCount){this.add(nodes[0]);this.updateCounts();return[]}{const shiftNode=this.splitAfter(childIndex);let nodeIndex=0;childIndex++;while(childIndex<lineCollectionCapacity&&nodeIndex<nodeCount){this.children[childIndex]=nodes[nodeIndex];childIndex++;nodeIndex++}let splitNodes=[];let splitNodeCount=0;if(nodeIndex<nodeCount){splitNodeCount=Math.ceil((nodeCount-nodeIndex)/lineCollectionCapacity);splitNodes=new Array(splitNodeCount);let splitNodeIndex=0;for(let i=0;i<splitNodeCount;i++)splitNodes[i]=new _LineNode;let splitNode=splitNodes[0];while(nodeIndex<nodeCount){splitNode.add(nodes[nodeIndex]);nodeIndex++;if(splitNode.children.length===lineCollectionCapacity){splitNodeIndex++;splitNode=splitNodes[splitNodeIndex]}}for(let i=splitNodes.length-1;i>=0;i--)if(0===splitNodes[i].children.length)splitNodes.pop()}if(shiftNode)splitNodes.push(shiftNode);this.updateCounts();for(let i=0;i<splitNodeCount;i++)splitNodes[i].updateCounts();return splitNodes}}add(collection){this.children.push(collection);Debug.assert(this.children.length<=lineCollectionCapacity)}charCount(){return this.totalChars}lineCount(){return this.totalLines}};var LineLeaf=class{constructor(text){this.text=text}isLeaf(){return true}walk(rangeStart,rangeLength,walkFns){walkFns.leaf(rangeStart,rangeLength,this)}charCount(){return this.text.length}lineCount(){return 1}};var _TypingsInstallerAdapter=class _TypingsInstallerAdapter{constructor(telemetryEnabled,logger,host,globalTypingsCacheLocation,event,maxActiveRequestCount){this.telemetryEnabled=telemetryEnabled;this.logger=logger;this.host=host;this.globalTypingsCacheLocation=globalTypingsCacheLocation;this.event=event;this.maxActiveRequestCount=maxActiveRequestCount;this.activeRequestCount=0;this.requestQueue=createQueue();this.requestMap=/* @__PURE__ */new Map;this.requestedRegistry=false;this.packageInstallId=0}isKnownTypesPackageName(name){var _a;const validationResult=ts_JsTyping_exports.validatePackageName(name);if(validationResult!==ts_JsTyping_exports.NameValidationResult.Ok)return false;if(!this.requestedRegistry){this.requestedRegistry=true;this.installer.send({kind:"typesRegistry"})}return!!(null==(_a=this.typesRegistryCache)?void 0:_a.has(name))}installPackage(options){this.packageInstallId++;const request={kind:"installPackage",...options,id:this.packageInstallId};const promise=new Promise((resolve,reject)=>{(this.packageInstalledPromise??(this.packageInstalledPromise=/* @__PURE__ */new Map)).set(this.packageInstallId,{resolve,reject})});this.installer.send(request);return promise}attach(projectService){this.projectService=projectService;this.installer=this.createInstallerProcess()}onProjectClosed(p){this.installer.send({projectName:p.getProjectName(),kind:"closeProject"})}enqueueInstallTypingsRequest(project,typeAcquisition,unresolvedImports){const request=createInstallTypingsRequest(project,typeAcquisition,unresolvedImports);if(this.logger.hasLevel(3))this.logger.info(`TIAdapter:: Scheduling throttled operation:${stringifyIndented(request)}`);if(this.activeRequestCount<this.maxActiveRequestCount)this.scheduleRequest(request);else{if(this.logger.hasLevel(3))this.logger.info(`TIAdapter:: Deferring request for: ${request.projectName}`);this.requestQueue.enqueue(request);this.requestMap.set(request.projectName,request)}}handleMessage(response){var _a,_b;if(this.logger.hasLevel(3))this.logger.info(`TIAdapter:: Received response:${stringifyIndented(response)}`);switch(response.kind){case EventTypesRegistry:this.typesRegistryCache=new Map(Object.entries(response.typesRegistry));break;case ActionPackageInstalled:{const promise=null==(_a=this.packageInstalledPromise)?void 0:_a.get(response.id);Debug.assertIsDefined(promise,"Should find the promise for package install");null==(_b=this.packageInstalledPromise)||_b.delete(response.id);if(response.success)promise.resolve({successMessage:response.message});else promise.reject(response.message);this.projectService.updateTypingsForProject(response);this.event(response,"setTypings");break}case EventInitializationFailed:{const body={message:response.message};const eventName="typesInstallerInitializationFailed";this.event(body,eventName);break}case EventBeginInstallTypes:{const body={eventId:response.eventId,packages:response.packagesToInstall};const eventName="beginInstallTypes";this.event(body,eventName);break}case EventEndInstallTypes:{if(this.telemetryEnabled){const body2={telemetryEventName:"typingsInstalled",payload:{installedPackages:response.packagesToInstall.join(","),installSuccess:response.installSuccess,typingsInstallerVersion:response.typingsInstallerVersion}};const eventName2="telemetry";this.event(body2,eventName2)}const body={eventId:response.eventId,packages:response.packagesToInstall,success:response.installSuccess};const eventName="endInstallTypes";this.event(body,eventName);break}case ActionInvalidate:this.projectService.updateTypingsForProject(response);break;case ActionSet:if(this.activeRequestCount>0)this.activeRequestCount--;else Debug.fail("TIAdapter:: Received too many responses");while(!this.requestQueue.isEmpty()){const queuedRequest=this.requestQueue.dequeue();if(this.requestMap.get(queuedRequest.projectName)===queuedRequest){this.requestMap.delete(queuedRequest.projectName);this.scheduleRequest(queuedRequest);break}if(this.logger.hasLevel(3))this.logger.info(`TIAdapter:: Skipping defunct request for: ${queuedRequest.projectName}`)}this.projectService.updateTypingsForProject(response);this.event(response,"setTypings");break;case ActionWatchTypingLocations:this.projectService.watchTypingLocations(response);break;default:assertType(response)}}scheduleRequest(request){if(this.logger.hasLevel(3))this.logger.info(`TIAdapter:: Scheduling request for: ${request.projectName}`);this.activeRequestCount++;this.host.setTimeout(()=>{if(this.logger.hasLevel(3))this.logger.info(`TIAdapter:: Sending request:${stringifyIndented(request)}`);this.installer.send(request)},_TypingsInstallerAdapter.requestDelayMillis,`${request.projectName}::${request.kind}`)}};_TypingsInstallerAdapter.requestDelayMillis=100;var TypingsInstallerAdapter=_TypingsInstallerAdapter;var ts_server_exports4={};__export(ts_server_exports4,{ActionInvalidate:()=>ActionInvalidate,ActionPackageInstalled:()=>ActionPackageInstalled,ActionSet:()=>ActionSet,ActionWatchTypingLocations:()=>ActionWatchTypingLocations,Arguments:()=>Arguments,AutoImportProviderProject:()=>AutoImportProviderProject,AuxiliaryProject:()=>AuxiliaryProject,CharRangeSection:()=>CharRangeSection,CloseFileWatcherEvent:()=>CloseFileWatcherEvent,CommandNames:()=>CommandNames,ConfigFileDiagEvent:()=>ConfigFileDiagEvent,ConfiguredProject:()=>ConfiguredProject2,ConfiguredProjectLoadKind:()=>ConfiguredProjectLoadKind,CreateDirectoryWatcherEvent:()=>CreateDirectoryWatcherEvent,CreateFileWatcherEvent:()=>CreateFileWatcherEvent,Errors:()=>Errors,EventBeginInstallTypes:()=>EventBeginInstallTypes,EventEndInstallTypes:()=>EventEndInstallTypes,EventInitializationFailed:()=>EventInitializationFailed,EventTypesRegistry:()=>EventTypesRegistry,ExternalProject:()=>ExternalProject,GcTimer:()=>GcTimer,InferredProject:()=>InferredProject2,LargeFileReferencedEvent:()=>LargeFileReferencedEvent,LineIndex:()=>LineIndex,LineLeaf:()=>LineLeaf,LineNode:()=>LineNode,LogLevel:()=>LogLevel2,Msg:()=>Msg,OpenFileInfoTelemetryEvent:()=>OpenFileInfoTelemetryEvent,Project:()=>Project2,ProjectInfoTelemetryEvent:()=>ProjectInfoTelemetryEvent,ProjectKind:()=>ProjectKind,ProjectLanguageServiceStateEvent:()=>ProjectLanguageServiceStateEvent,ProjectLoadingFinishEvent:()=>ProjectLoadingFinishEvent,ProjectLoadingStartEvent:()=>ProjectLoadingStartEvent,ProjectService:()=>ProjectService2,ProjectsUpdatedInBackgroundEvent:()=>ProjectsUpdatedInBackgroundEvent,ScriptInfo:()=>ScriptInfo,ScriptVersionCache:()=>ScriptVersionCache,Session:()=>Session3,TextStorage:()=>TextStorage,ThrottledOperations:()=>ThrottledOperations,TypingsInstallerAdapter:()=>TypingsInstallerAdapter,allFilesAreJsOrDts:()=>allFilesAreJsOrDts,allRootFilesAreJsOrDts:()=>allRootFilesAreJsOrDts,asNormalizedPath:()=>asNormalizedPath,convertCompilerOptions:()=>convertCompilerOptions,convertFormatOptions:()=>convertFormatOptions,convertScriptKindName:()=>convertScriptKindName,convertTypeAcquisition:()=>convertTypeAcquisition,convertUserPreferences:()=>convertUserPreferences,convertWatchOptions:()=>convertWatchOptions,countEachFileTypes:()=>countEachFileTypes,createInstallTypingsRequest:()=>createInstallTypingsRequest,createModuleSpecifierCache:()=>createModuleSpecifierCache,createNormalizedPathMap:()=>createNormalizedPathMap,createPackageJsonCache:()=>createPackageJsonCache,createSortedArray:()=>createSortedArray2,emptyArray:()=>emptyArray2,findArgument:()=>findArgument,formatDiagnosticToProtocol:()=>formatDiagnosticToProtocol,formatMessage:()=>formatMessage2,getBaseConfigFileName:()=>getBaseConfigFileName,getDetailWatchInfo:()=>getDetailWatchInfo,getLocationInNewDocument:()=>getLocationInNewDocument,hasArgument:()=>hasArgument,hasNoTypeScriptSource:()=>hasNoTypeScriptSource,indent:()=>indent2,isBackgroundProject:()=>isBackgroundProject,isConfigFile:()=>isConfigFile,isConfiguredProject:()=>isConfiguredProject,isDynamicFileName:()=>isDynamicFileName,isExternalProject:()=>isExternalProject,isInferredProject:()=>isInferredProject,isInferredProjectName:()=>isInferredProjectName,isProjectDeferredClose:()=>isProjectDeferredClose,makeAutoImportProviderProjectName:()=>makeAutoImportProviderProjectName,makeAuxiliaryProjectName:()=>makeAuxiliaryProjectName,makeInferredProjectName:()=>makeInferredProjectName,maxFileSize:()=>maxFileSize,maxProgramSizeForNonTsFiles:()=>maxProgramSizeForNonTsFiles,normalizedPathToPath:()=>normalizedPathToPath,nowString:()=>nowString,nullCancellationToken:()=>nullCancellationToken,nullTypingsInstaller:()=>nullTypingsInstaller,protocol:()=>ts_server_protocol_exports,scriptInfoIsContainedByBackgroundProject:()=>scriptInfoIsContainedByBackgroundProject,scriptInfoIsContainedByDeferredClosedProject:()=>scriptInfoIsContainedByDeferredClosedProject,stringifyIndented:()=>stringifyIndented,toEvent:()=>toEvent,toNormalizedPath:()=>toNormalizedPath,tryConvertScriptKindName:()=>tryConvertScriptKindName,typingsInstaller:()=>ts_server_typingsInstaller_exports,updateProjectIfDirty:()=>updateProjectIfDirty});if("undefined"!=typeof console)Debug.loggingHost={log(level,s){switch(level){case 1:return console.error(s);case 2:return console.warn(s);case 3:return console.log(s);case 4:return console.log(s)}}}})({get exports(){return ts},set exports(v){ts=v;if(module.exports)module.exports=v}})},3862:function(module){function webpackEmptyContext(req){var e=new Error("Cannot find module '"+req+"'");e.code="MODULE_NOT_FOUND";throw e}webpackEmptyContext.keys=()=>[];webpackEmptyContext.resolve=webpackEmptyContext;webpackEmptyContext.id=3862;module.exports=webpackEmptyContext},652:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__);__webpack_require__.d(__webpack_exports__,{ModuleFederationPlayground:()=>App,default:()=>App});const App_module={"vp-root":"vp-root-o94tBV",vpRoot:"vp-root-o94tBV","vp-main":"vp-main-ukILls",vpMain:"vp-main-ukILls","vp-left":"vp-left-wWIJZj",vpLeft:"vp-left-wWIJZj","vp-splitter":"vp-splitter-C3LUiw",vpSplitter:"vp-splitter-C3LUiw","vp-card":"vp-card-OxIN8P",vpCard:"vp-card-OxIN8P","vp-cardHeader":"vp-cardHeader-yl8bmF",vpCardHeader:"vp-cardHeader-yl8bmF","vp-cardTitle":"vp-cardTitle-iRjbB2",vpCardTitle:"vp-cardTitle-iRjbB2","vp-editorTabs":"vp-editorTabs-P8EPHu",vpEditorTabs:"vp-editorTabs-P8EPHu","vp-editorTab":"vp-editorTab-en3Nbi",vpEditorTab:"vp-editorTab-en3Nbi","vp-editorTabActive":"vp-editorTabActive-j1OAlc",vpEditorTabActive:"vp-editorTabActive-j1OAlc","vp-cardBody":"vp-cardBody-UdVf2N",vpCardBody:"vp-cardBody-UdVf2N","vp-paneActions":"vp-paneActions-l5K74Q",vpPaneActions:"vp-paneActions-l5K74Q","vp-collapse":"vp-collapse-VViOM4",vpCollapse:"vp-collapse-VViOM4","vp-collapseItem":"vp-collapseItem-MtDnlb",vpCollapseItem:"vp-collapseItem-MtDnlb","vp-collapseHeader":"vp-collapseHeader-Y1drUL",vpCollapseHeader:"vp-collapseHeader-Y1drUL","vp-collapseHeaderActive":"vp-collapseHeaderActive-d5oo1z",vpCollapseHeaderActive:"vp-collapseHeaderActive-d5oo1z","vp-collapseLabel":"vp-collapseLabel-SYefMk",vpCollapseLabel:"vp-collapseLabel-SYefMk","vp-collapseArrow":"vp-collapseArrow-s7319m",vpCollapseArrow:"vp-collapseArrow-s7319m","vp-collapseArrowOpen":"vp-collapseArrowOpen-NQp4Jq",vpCollapseArrowOpen:"vp-collapseArrowOpen-NQp4Jq","vp-collapseBody":"vp-collapseBody-ig7Trn",vpCollapseBody:"vp-collapseBody-ig7Trn","vp-collapseBodyCode":"vp-collapseBodyCode-ACBnWh",vpCollapseBodyCode:"vp-collapseBodyCode-ACBnWh","vp-form":"vp-form-pITn1W",vpForm:"vp-form-pITn1W","vp-fieldGrid":"vp-fieldGrid-SR9eJh",vpFieldGrid:"vp-fieldGrid-SR9eJh","vp-field":"vp-field-NzMT8s",vpField:"vp-field-NzMT8s","vp-labelRow":"vp-labelRow-DlcEeA",vpLabelRow:"vp-labelRow-DlcEeA","vp-label":"vp-label-KGpsbl",vpLabel:"vp-label-KGpsbl","vp-hint":"vp-hint-fYzOU2",vpHint:"vp-hint-fYzOU2","vp-input":"vp-input-UHKU2F",vpInput:"vp-input-UHKU2F","vp-select":"vp-select-Tk6IhF",vpSelect:"vp-select-Tk6IhF","vp-codeEditor":"vp-codeEditor-bXbNn1",vpCodeEditor:"vp-codeEditor-bXbNn1","vp-editorToolbar":"vp-editorToolbar-SVglCq",vpEditorToolbar:"vp-editorToolbar-SVglCq","vp-loadingSimple":"vp-loadingSimple-t3py2h",vpLoadingSimple:"vp-loadingSimple-t3py2h","vp-loadingSpinner":"vp-loadingSpinner-YRww21",vpLoadingSpinner:"vp-loadingSpinner-YRww21","vp-spin":"vp-spin-vqXwPJ",vpSpin:"vp-spin-vqXwPJ","vp-previewFrame":"vp-previewFrame-K_cT99",vpPreviewFrame:"vp-previewFrame-K_cT99","vp-actions":"vp-actions-kW_pM2",vpActions:"vp-actions-kW_pM2","vp-button":"vp-button-jQtwaB",vpButton:"vp-button-jQtwaB","vp-buttonGhost":"vp-buttonGhost-wKOfIf",vpButtonGhost:"vp-buttonGhost-wKOfIf","vp-buttonPrimary":"vp-buttonPrimary-SYnJ9I",vpButtonPrimary:"vp-buttonPrimary-SYnJ9I",vpShimmer:"vpShimmer-XeNYGG","vp-codeBlock":"vp-codeBlock-CMSobd",vpCodeBlock:"vp-codeBlock-CMSobd","vp-emptyTitle":"vp-emptyTitle-LUdxhN",vpEmptyTitle:"vp-emptyTitle-LUdxhN","vp-copyBtn":"vp-copyBtn-rEbuE6",vpCopyBtn:"vp-copyBtn-rEbuE6","vp-copyIcon":"vp-copyIcon-C8ndDr",vpCopyIcon:"vp-copyIcon-C8ndDr","vp-right":"vp-right-Pdn7k6",vpRight:"vp-right-Pdn7k6","vp-ide":"vp-ide-MCK1rq",vpIde:"vp-ide-MCK1rq","vp-ideTitlebar":"vp-ideTitlebar-xV_SLu",vpIdeTitlebar:"vp-ideTitlebar-xV_SLu","vp-ideDots":"vp-ideDots-rmPPqM",vpIdeDots:"vp-ideDots-rmPPqM","vp-dot":"vp-dot-QAY3S7",vpDot:"vp-dot-QAY3S7","vp-dotRed":"vp-dotRed-qBSHb4",vpDotRed:"vp-dotRed-qBSHb4","vp-dotYellow":"vp-dotYellow-JiMbQd",vpDotYellow:"vp-dotYellow-JiMbQd","vp-dotGreen":"vp-dotGreen-p1oJVa",vpDotGreen:"vp-dotGreen-p1oJVa","vp-ideTitle":"vp-ideTitle-pyBOAZ",vpIdeTitle:"vp-ideTitle-pyBOAZ","vp-ideMeta":"vp-ideMeta-IwLWqJ",vpIdeMeta:"vp-ideMeta-IwLWqJ","vp-ideMetaText":"vp-ideMetaText-hM7Yjo",vpIdeMetaText:"vp-ideMetaText-hM7Yjo","vp-ideStatus":"vp-ideStatus-CNZYH6",vpIdeStatus:"vp-ideStatus-CNZYH6","vp-ideBody":"vp-ideBody-iRMqXK",vpIdeBody:"vp-ideBody-iRMqXK","vp-empty":"vp-empty-WMX1Vp",vpEmpty:"vp-empty-WMX1Vp","vp-kv":"vp-kv-HhceUA",vpKv:"vp-kv-HhceUA","vp-renderArea":"vp-renderArea-UsEDCB",vpRenderArea:"vp-renderArea-UsEDCB","vp-terminal":"vp-terminal-F6_CEQ",vpTerminal:"vp-terminal-F6_CEQ","vp-terminalHeader":"vp-terminalHeader-BG3x8z",vpTerminalHeader:"vp-terminalHeader-BG3x8z","vp-terminalClear":"vp-terminalClear-N0wY3l",vpTerminalClear:"vp-terminalClear-N0wY3l","vp-terminalBody":"vp-terminalBody-Fn12Co",vpTerminalBody:"vp-terminalBody-Fn12Co","vp-terminalLine":"vp-terminalLine-V8_M04",vpTerminalLine:"vp-terminalLine-V8_M04","vp-terminalLineError":"vp-terminalLineError-puKD3j",vpTerminalLineError:"vp-terminalLineError-puKD3j","vp-terminalLineWarn":"vp-terminalLineWarn-BIZDl_",vpTerminalLineWarn:"vp-terminalLineWarn-BIZDl_","vp-terminalEmpty":"vp-terminalEmpty-pYP34A",vpTerminalEmpty:"vp-terminalEmpty-pYP34A","vp-errorPanel":"vp-errorPanel-zDWm6k",vpErrorPanel:"vp-errorPanel-zDWm6k","vp-errorTitle":"vp-errorTitle-ykARVb",vpErrorTitle:"vp-errorTitle-ykARVb"};var jsx_runtime_js_=__webpack_require__(8460);function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n}function _arrayWithHoles(r){if(Array.isArray(r))return r}function _defineProperty(e,r,t){return(r=_toPropertyKey(r))in e?Object.defineProperty(e,r,{value:t,enumerable:true,configurable:true,writable:true}):e[r]=t,e}function _iterableToArrayLimit(r,l){var t=null==r?null:"undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(null!=t){var e,n,i,u,a=[],f=true,o=false;try{if(i=(t=t.call(r)).next,0===l);else for(;!(f=(e=i.call(t)).done)&&(a.push(e.value),a.length!==l);f=!0);}catch(r){o=true,n=r}finally{try{if(!f&&null!=t.return&&(u=t.return(),Object(u)!==u))return}finally{if(o)throw n}}return a}}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function ownKeys(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})),t.push.apply(t,o)}return t}function _objectSpread2(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?ownKeys(Object(t),true).forEach(function(r){_defineProperty(e,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})}return e}function _objectWithoutProperties(e,t){if(null==e)return{};var o,r,i=_objectWithoutPropertiesLoose(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r<n.length;r++)o=n[r],-1===t.indexOf(o)&&({}).propertyIsEnumerable.call(e,o)&&(i[o]=e[o])}return i}function _objectWithoutPropertiesLoose(r,e){if(null==r)return{};var t={};for(var n in r)if(({}).hasOwnProperty.call(r,n)){if(-1!==e.indexOf(n))continue;t[n]=r[n]}return t}function _slicedToArray(r,e){return _arrayWithHoles(r)||_iterableToArrayLimit(r,e)||_unsupportedIterableToArray(r,e)||_nonIterableRest()}function _toPrimitive(t,r){if("object"!=typeof t||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r);if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}function _toPropertyKey(t){var i=_toPrimitive(t,"string");return"symbol"==typeof i?i:i+""}function _unsupportedIterableToArray(r,a){if(r){if("string"==typeof r)return _arrayLikeToArray(r,a);var t=({}).toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0}}function state_local_defineProperty(obj,key,value1){if(key in obj)Object.defineProperty(obj,key,{value:value1,enumerable:true,configurable:true,writable:true});else obj[key]=value1;return obj}function state_local_ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly)symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable});keys.push.apply(keys,symbols)}return keys}function state_local_objectSpread2(target){for(var i=1;i<arguments.length;i++){var source=null!=arguments[i]?arguments[i]:{};if(i%2)state_local_ownKeys(Object(source),true).forEach(function(key){state_local_defineProperty(target,key,source[key])});else if(Object.getOwnPropertyDescriptors)Object.defineProperties(target,Object.getOwnPropertyDescriptors(source));else state_local_ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))})}return target}function state_local_compose(){for(var _len=arguments.length,fns=new Array(_len),_key=0;_key<_len;_key++)fns[_key]=arguments[_key];return function(x){return fns.reduceRight(function(y,f){return f(y)},x)}}function curry(fn){return function curried(){var _this=this;for(var _len2=arguments.length,args=new Array(_len2),_key2=0;_key2<_len2;_key2++)args[_key2]=arguments[_key2];return args.length>=fn.length?fn.apply(this,args):function(){for(var _len3=arguments.length,nextArgs=new Array(_len3),_key3=0;_key3<_len3;_key3++)nextArgs[_key3]=arguments[_key3];return curried.apply(_this,[].concat(args,nextArgs))}}}function isObject(value1){return({}).toString.call(value1).includes("Object")}function isEmpty(obj){return!Object.keys(obj).length}function isFunction(value1){return"function"==typeof value1}function state_local_hasOwnProperty(object,property){return Object.prototype.hasOwnProperty.call(object,property)}function validateChanges(initial,changes){if(!isObject(changes))errorHandler("changeType");if(Object.keys(changes).some(function(field){return!state_local_hasOwnProperty(initial,field)}))errorHandler("changeField");return changes}function validateSelector(selector){if(!isFunction(selector))errorHandler("selectorType")}function validateHandler(handler){if(!(isFunction(handler)||isObject(handler)))errorHandler("handlerType");if(isObject(handler)&&Object.values(handler).some(function(_handler){return!isFunction(_handler)}))errorHandler("handlersType")}function validateInitial(initial){if(!initial)errorHandler("initialIsRequired");if(!isObject(initial))errorHandler("initialType");if(isEmpty(initial))errorHandler("initialContent")}function throwError(errorMessages,type){throw new Error(errorMessages[type]||errorMessages["default"])}var state_local_errorMessages={initialIsRequired:"initial state is required",initialType:"initial state should be an object",initialContent:"initial state shouldn't be an empty object",handlerType:"handler should be an object or a function",handlersType:"all handlers should be a functions",selectorType:"selector should be a function",changeType:"provided value of changes should be an object",changeField:'it seams you want to change a field in the state which is not specified in the "initial" state',default:"an unknown error accured in `state-local` package"};var errorHandler=curry(throwError)(state_local_errorMessages);var validators={changes:validateChanges,selector:validateSelector,handler:validateHandler,initial:validateInitial};function create(initial){var handler=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};validators.initial(initial);validators.handler(handler);var state={current:initial};var didUpdate=curry(didStateUpdate)(state,handler);var update=curry(updateState)(state);var validate=curry(validators.changes)(initial);var getChanges=curry(extractChanges)(state);function getState(){var selector=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(state){return state};validators.selector(selector);return selector(state.current)}function setState(causedChanges){state_local_compose(didUpdate,update,validate,getChanges)(causedChanges)}return[getState,setState]}function extractChanges(state,causedChanges){return isFunction(causedChanges)?causedChanges(state.current):causedChanges}function updateState(state,changes){state.current=state_local_objectSpread2(state_local_objectSpread2({},state.current),changes);return changes}function didStateUpdate(state,handler,changes){isFunction(handler)?handler(state.current):Object.keys(changes).forEach(function(field){var _handler$field;return null==(_handler$field=handler[field])?void 0:_handler$field.call(handler,state.current[field])});return changes}var index={create:create};const state_local=index;var config_config={paths:{vs:"https://cdn.jsdelivr.net/npm/monaco-editor@0.55.1/min/vs"}};function curry_curry(fn){return function curried(){var _this=this;for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++)args[_key]=arguments[_key];return args.length>=fn.length?fn.apply(this,args):function(){for(var _len2=arguments.length,nextArgs=new Array(_len2),_key2=0;_key2<_len2;_key2++)nextArgs[_key2]=arguments[_key2];return curried.apply(_this,[].concat(args,nextArgs))}}}function isObject_isObject(value1){return({}).toString.call(value1).includes("Object")}function validateConfig(config){if(!config)validators_errorHandler("configIsRequired");if(!isObject_isObject(config))validators_errorHandler("configType");if(config.urls){informAboutDeprecation();return{paths:{vs:config.urls.monacoBase}}}return config}function informAboutDeprecation(){console.warn(validators_errorMessages.deprecation)}function validators_throwError(errorMessages,type){throw new Error(errorMessages[type]||errorMessages["default"])}var validators_errorMessages={configIsRequired:"the configuration object is required",configType:"the configuration object should be an object",default:"an unknown error accured in `@monaco-editor/loader` package",deprecation:"Deprecation warning!\n You are using deprecated way of configuration.\n\n Instead of using\n monaco.config({ urls: { monacoBase: '...' } })\n use\n monaco.config({ paths: { vs: '...' } })\n\n For more please check the link https://github.com/suren-atoyan/monaco-loader#config\n "};var validators_errorHandler=curry_curry(validators_throwError)(validators_errorMessages);var validators_validators={config:validateConfig};var compose_compose=function(){for(var _len=arguments.length,fns=new Array(_len),_key=0;_key<_len;_key++)fns[_key]=arguments[_key];return function(x){return fns.reduceRight(function(y,f){return f(y)},x)}};function merge(target,source){Object.keys(source).forEach(function(key){if(source[key]instanceof Object){if(target[key])Object.assign(source[key],merge(target[key],source[key]))}});return _objectSpread2(_objectSpread2({},target),source)}var CANCELATION_MESSAGE={type:"cancelation",msg:"operation is manually canceled"};function makeCancelable(promise){var hasCanceled_=false;var wrappedPromise=new Promise(function(resolve,reject){promise.then(function(val){return hasCanceled_?reject(CANCELATION_MESSAGE):resolve(val)});promise["catch"](reject)});return wrappedPromise.cancel=function(){return hasCanceled_=true},wrappedPromise}var _excluded=["monaco"];var _state$create=state_local.create({config:config_config,isInitialized:false,resolve:null,reject:null,monaco:null}),_state$create2=_slicedToArray(_state$create,2),loader_getState=_state$create2[0],loader_setState=_state$create2[1];function loader_config(globalConfig){var _validators$config=validators_validators.config(globalConfig),monaco=_validators$config.monaco,config=_objectWithoutProperties(_validators$config,_excluded);loader_setState(function(state){return{config:merge(state.config,config),monaco:monaco}})}function init(){var state=loader_getState(function(_ref){var monaco=_ref.monaco,isInitialized=_ref.isInitialized,resolve=_ref.resolve;return{monaco:monaco,isInitialized:isInitialized,resolve:resolve}});if(!state.isInitialized){loader_setState({isInitialized:true});if(state.monaco){state.resolve(state.monaco);return makeCancelable(wrapperPromise)}if(window.monaco&&window.monaco.editor){storeMonacoInstance(window.monaco);state.resolve(window.monaco);return makeCancelable(wrapperPromise)}compose_compose(injectScripts,getMonacoLoaderScript)(loader_configureLoader)}return makeCancelable(wrapperPromise)}function injectScripts(script){return document.body.appendChild(script)}function createScript(src){var script=document.createElement("script");return src&&(script.src=src),script}function getMonacoLoaderScript(configureLoader){var state=loader_getState(function(_ref2){var config=_ref2.config,reject=_ref2.reject;return{config:config,reject:reject}});var loaderScript=createScript("".concat(state.config.paths.vs,"/loader.js"));loaderScript.onload=function(){return configureLoader()};loaderScript.onerror=state.reject;return loaderScript}function loader_configureLoader(){var state=loader_getState(function(_ref3){var config=_ref3.config,resolve=_ref3.resolve,reject=_ref3.reject;return{config:config,resolve:resolve,reject:reject}});var require=window.require;require.config(state.config);require(["vs/editor/editor.main"],function(loaded){var monaco=loaded.m||loaded;storeMonacoInstance(monaco);state.resolve(monaco)},function(error){state.reject(error)})}function storeMonacoInstance(monaco){if(!loader_getState().monaco)loader_setState({monaco:monaco})}function __getMonacoInstance(){return loader_getState(function(_ref4){var monaco=_ref4.monaco;return monaco})}var wrapperPromise=new Promise(function(resolve,reject){return loader_setState({resolve:resolve,reject:reject})});var loader={config:loader_config,init:init,__getMonacoInstance:__getMonacoInstance};var index_js_=__webpack_require__(3383);var le={wrapper:{display:"flex",position:"relative",textAlign:"initial"},fullWidth:{width:"100%"},hide:{display:"none"}},v1=le;var ae={container:{display:"flex",height:"100%",width:"100%",justifyContent:"center",alignItems:"center"}},Y=ae;function Me({children:e}){return index_js_.createElement("div",{style:Y.container},e)}var Z=Me;var $=Z;function Ee({width:e,height:r,isEditorReady:n,loading:t,_ref:a,className:m,wrapperProps:E}){return index_js_.createElement("section",{style:{...v1.wrapper,width:e,height:r},...E},!n&&index_js_.createElement($,null,t),index_js_.createElement("div",{ref:a,style:{...v1.fullWidth,...!n&&v1.hide},className:m}))}var ee=Ee;var H=(0,index_js_.memo)(ee);function Ce(e){(0,index_js_.useEffect)(e,[])}var k=Ce;function he(e,r,n=!0){let t=(0,index_js_.useRef)(!0);(0,index_js_.useEffect)(t.current||!n?()=>{t.current=!1}:e,r)}var dist_l=he;function D(){}function h(e,r,n,t){return De(e,t)||be(e,r,n,t)}function De(e,r){return e.editor.getModel(te(e,r))}function be(e,r,n,t){return e.editor.createModel(r,n,t?te(e,t):void 0)}function te(e,r){return e.Uri.parse(r)}function Oe({original:e,modified:r,language:n,originalLanguage:t,modifiedLanguage:a,originalModelPath:m,modifiedModelPath:E,keepCurrentOriginalModel:g=!1,keepCurrentModifiedModel:N=!1,theme:x="light",loading:P="Loading...",options:y={},height:V="100%",width:z="100%",className:F,wrapperProps:j={},beforeMount:A=D,onMount:q=D}){let[M,O]=(0,index_js_.useState)(!1),[T,s]=(0,index_js_.useState)(!0),u=(0,index_js_.useRef)(null),c=(0,index_js_.useRef)(null),w=(0,index_js_.useRef)(null),d=(0,index_js_.useRef)(q),o=(0,index_js_.useRef)(A),b=(0,index_js_.useRef)(!1);k(()=>{let i=loader.init();return i.then(f=>(c.current=f)&&s(!1)).catch(f=>f?.type!=="cancelation"&&console.error("Monaco initialization: error:",f)),()=>u.current?I():i.cancel()}),dist_l(()=>{if(u.current&&c.current){let i=u.current.getOriginalEditor(),f=h(c.current,e||"",t||n||"text",m||"");f!==i.getModel()&&i.setModel(f)}},[m],M),dist_l(()=>{if(u.current&&c.current){let i=u.current.getModifiedEditor(),f=h(c.current,r||"",a||n||"text",E||"");f!==i.getModel()&&i.setModel(f)}},[E],M),dist_l(()=>{let i=u.current.getModifiedEditor();i.getOption(c.current.editor.EditorOption.readOnly)?i.setValue(r||""):r!==i.getValue()&&(i.executeEdits("",[{range:i.getModel().getFullModelRange(),text:r||"",forceMoveMarkers:!0}]),i.pushUndoStop())},[r],M),dist_l(()=>{u.current?.getModel()?.original.setValue(e||"")},[e],M),dist_l(()=>{let{original:i,modified:f}=u.current.getModel();c.current.editor.setModelLanguage(i,t||n||"text"),c.current.editor.setModelLanguage(f,a||n||"text")},[n,t,a],M),dist_l(()=>{c.current?.editor.setTheme(x)},[x],M),dist_l(()=>{u.current?.updateOptions(y)},[y],M);let L=(0,index_js_.useCallback)(()=>{if(!c.current)return;o.current(c.current);let i=h(c.current,e||"",t||n||"text",m||""),f=h(c.current,r||"",a||n||"text",E||"");u.current?.setModel({original:i,modified:f})},[n,r,a,e,t,m,E]),U=(0,index_js_.useCallback)(()=>{!b.current&&w.current&&(u.current=c.current.editor.createDiffEditor(w.current,{automaticLayout:!0,...y}),L(),c.current?.editor.setTheme(x),O(!0),b.current=!0)},[y,x,L]);(0,index_js_.useEffect)(()=>{M&&d.current(u.current,c.current)},[M]),(0,index_js_.useEffect)(()=>{T||M||U()},[T,M,U]);function I(){let i=u.current?.getModel();g||i?.original?.dispose(),N||i?.modified?.dispose(),u.current?.dispose()}return index_js_.createElement(H,{width:z,height:V,isEditorReady:M,loading:P,_ref:w,className:F,wrapperProps:j})}var ie=Oe;(0,index_js_.memo)(ie);function He(e){let r=(0,index_js_.useRef)();return(0,index_js_.useEffect)(()=>{r.current=e},[e]),r.current}var se=He;var dist_=new Map;function Ve({defaultValue:e,defaultLanguage:r,defaultPath:n,value:t,language:a,path:m,theme:E="light",line:g,loading:N="Loading...",options:x={},overrideServices:P={},saveViewState:y=!0,keepCurrentModel:V=!1,width:z="100%",height:F="100%",className:j,wrapperProps:A={},beforeMount:q=D,onMount:M=D,onChange:O,onValidate:T=D}){let[s,u]=(0,index_js_.useState)(!1),[c,w]=(0,index_js_.useState)(!0),d=(0,index_js_.useRef)(null),o=(0,index_js_.useRef)(null),b=(0,index_js_.useRef)(null),L=(0,index_js_.useRef)(M),U=(0,index_js_.useRef)(q),I=(0,index_js_.useRef)(),i=(0,index_js_.useRef)(t),f=se(m),Q=(0,index_js_.useRef)(!1),B=(0,index_js_.useRef)(!1);k(()=>{let p=loader.init();return p.then(R=>(d.current=R)&&w(!1)).catch(R=>R?.type!=="cancelation"&&console.error("Monaco initialization: error:",R)),()=>o.current?pe():p.cancel()}),dist_l(()=>{let p=h(d.current,e||t||"",r||a||"",m||n||"");p!==o.current?.getModel()&&(y&&dist_.set(f,o.current?.saveViewState()),o.current?.setModel(p),y&&o.current?.restoreViewState(dist_.get(m)))},[m],s),dist_l(()=>{o.current?.updateOptions(x)},[x],s),dist_l(()=>{o.current&&void 0!==t&&(o.current.getOption(d.current.editor.EditorOption.readOnly)?o.current.setValue(t):t!==o.current.getValue()&&(B.current=!0,o.current.executeEdits("",[{range:o.current.getModel().getFullModelRange(),text:t,forceMoveMarkers:!0}]),o.current.pushUndoStop(),B.current=!1))},[t],s),dist_l(()=>{let p=o.current?.getModel();p&&a&&d.current?.editor.setModelLanguage(p,a)},[a],s),dist_l(()=>{void 0!==g&&o.current?.revealLine(g)},[g],s),dist_l(()=>{d.current?.editor.setTheme(E)},[E],s);let X=(0,index_js_.useCallback)(()=>{if(!(!b.current||!d.current)&&!Q.current){U.current(d.current);let p=m||n,R=h(d.current,t||e||"",r||a||"",p||"");o.current=d.current?.editor.create(b.current,{model:R,automaticLayout:!0,...x},P),y&&o.current.restoreViewState(dist_.get(p)),d.current.editor.setTheme(E),void 0!==g&&o.current.revealLine(g),u(!0),Q.current=!0}},[e,r,n,t,a,m,x,P,y,E,g]);(0,index_js_.useEffect)(()=>{s&&L.current(o.current,d.current)},[s]),(0,index_js_.useEffect)(()=>{c||s||X()},[c,s,X]),i.current=t,(0,index_js_.useEffect)(()=>{s&&O&&(I.current?.dispose(),I.current=o.current?.onDidChangeModelContent(p=>{B.current||O(o.current.getValue(),p)}))},[s,O]),(0,index_js_.useEffect)(()=>{if(s){let p=d.current.editor.onDidChangeMarkers(R=>{let G=o.current.getModel()?.uri;if(G&&R.find(J=>J.path===G.path)){let J=d.current.editor.getModelMarkers({resource:G});T?.(J)}});return()=>{p?.dispose()}}return()=>{}},[s,T]);function pe(){I.current?.dispose(),V?y&&dist_.set(m,o.current.saveViewState()):o.current.getModel()?.dispose(),o.current.dispose()}return index_js_.createElement(H,{width:z,height:F,isEditorReady:s,loading:N,_ref:b,className:j,wrapperProps:A})}var fe=Ve;var de=(0,index_js_.memo)(fe);var Ft=de;var react_index_js_=__webpack_require__(9251);var react_dom_index_js_=__webpack_require__(9926);var client_js_=__webpack_require__(3493);var typescript=__webpack_require__(3122);const BRIDGE_RUNTIME_FILES={"bridge-base-CHnL6Q9P.mjs":'var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);\nimport * as React from "react";\nimport { L as LoggerInstance, R as RouterContext } from "./index-Bs2NxD2z.mjs";\nimport { federationRuntime } from "./plugin.es.js";\nconst initialState = { didCatch: false, error: null };\nclass ErrorBoundary extends React.Component {\n constructor() {\n super(...arguments);\n __publicField(this, "state", initialState);\n __publicField(this, "resetErrorBoundary", (..._args) => {\n if (this.state.didCatch) {\n this.setState(initialState);\n }\n });\n }\n static getDerivedStateFromError(error) {\n return { didCatch: true, error };\n }\n render() {\n if (this.state.didCatch) {\n return /* @__PURE__ */ React.createElement(\n this.props.FallbackComponent,\n {\n error: this.state.error,\n resetErrorBoundary: this.resetErrorBoundary\n }\n );\n }\n return this.props.children;\n }\n}\nfunction createBaseBridgeComponent({\n createRoot,\n defaultRootOptions,\n ...bridgeInfo\n}) {\n return () => {\n const rootMap = /* @__PURE__ */ new Map();\n const instance = federationRuntime.instance;\n LoggerInstance.debug(\n `createBridgeComponent instance from props >>>`,\n instance\n );\n const RawComponent = (info) => {\n const { appInfo, propsInfo, ...restProps } = info;\n const { moduleName, memoryRoute, basename = "/" } = appInfo;\n return /* @__PURE__ */ React.createElement(RouterContext.Provider, { value: { moduleName, basename, memoryRoute } }, /* @__PURE__ */ React.createElement(\n bridgeInfo.rootComponent,\n {\n ...propsInfo,\n basename,\n ...restProps\n }\n ));\n };\n const DefaultFallback = ({ error }) => /* @__PURE__ */ React.createElement("div", { role: "alert" }, /* @__PURE__ */ React.createElement("p", null, "Something went wrong:"), /* @__PURE__ */ React.createElement("pre", { style: { color: "red" } }, error instanceof Error ? error.message : String(error)));\n const omitHostFallback = (props) => {\n const nextProps = { ...props };\n delete nextProps.fallback;\n return nextProps;\n };\n const BridgeWrapper = ({\n basename,\n moduleName,\n memoryRoute,\n propsInfo\n }) => /* @__PURE__ */ React.createElement(ErrorBoundary, { FallbackComponent: DefaultFallback }, /* @__PURE__ */ React.createElement(\n RawComponent,\n {\n appInfo: {\n moduleName,\n basename,\n memoryRoute\n },\n propsInfo\n }\n ));\n return {\n async render(info) {\n var _a, _b, _c, _d, _e, _f;\n LoggerInstance.debug(`createBridgeComponent render Info`, info);\n const {\n moduleName,\n dom,\n basename,\n memoryRoute,\n rootOptions,\n ...propsInfo\n } = info;\n const operationContext = {\n side: "producer",\n framework: "react",\n operation: rootMap.has(dom) ? "update" : "render",\n reason: "direct"\n };\n const mergedRootOptions = {\n ...defaultRootOptions,\n ...rootOptions\n };\n const beforeBridgeRenderRes = ((_c = (_b = (_a = instance == null ? void 0 : instance.bridgeHook) == null ? void 0 : _a.lifecycle) == null ? void 0 : _b.beforeBridgeRender) == null ? void 0 : _c.emit(\n info,\n operationContext\n )) || {};\n const rootComponentWithErrorBoundary = /* @__PURE__ */ React.createElement(\n BridgeWrapper,\n {\n basename,\n moduleName,\n memoryRoute,\n propsInfo: {\n ...omitHostFallback(propsInfo),\n basename,\n ...beforeBridgeRenderRes == null ? void 0 : beforeBridgeRenderRes.extraProps\n }\n }\n );\n if (bridgeInfo.render) {\n const root = await Promise.resolve(\n bridgeInfo.render(rootComponentWithErrorBoundary, dom)\n );\n rootMap.set(dom, root);\n } else {\n let root = rootMap.get(dom);\n if (!root && createRoot) {\n root = createRoot(dom, mergedRootOptions);\n rootMap.set(dom, root);\n }\n if (root && "render" in root) {\n root.render(rootComponentWithErrorBoundary);\n }\n }\n ((_f = (_e = (_d = instance == null ? void 0 : instance.bridgeHook) == null ? void 0 : _d.lifecycle) == null ? void 0 : _e.afterBridgeRender) == null ? void 0 : _f.emit(info, {\n context: operationContext\n })) || {};\n },\n destroy(info) {\n var _a, _b, _c, _d, _e, _f;\n const { dom } = info;\n LoggerInstance.debug(`createBridgeComponent destroy Info`, info);\n const root = rootMap.get(dom);\n const operationContext = {\n side: "producer",\n framework: "react",\n operation: "destroy",\n reason: "direct"\n };\n (_c = (_b = (_a = instance == null ? void 0 : instance.bridgeHook) == null ? void 0 : _a.lifecycle) == null ? void 0 : _b.beforeBridgeDestroy) == null ? void 0 : _c.emit(\n info,\n operationContext\n );\n if (root) {\n if ("unmount" in root) {\n root.unmount();\n } else {\n LoggerInstance.warn("Root does not have unmount method");\n }\n rootMap.delete(dom);\n }\n (_f = (_e = (_d = instance == null ? void 0 : instance.bridgeHook) == null ? void 0 : _d.lifecycle) == null ? void 0 : _e.afterBridgeDestroy) == null ? void 0 : _f.emit(info, {\n context: operationContext\n });\n }\n };\n };\n}\nexport {\n ErrorBoundary as E,\n createBaseBridgeComponent as c\n};\n',"createHelpers-D3Sg5lKp.mjs":'import { c as createBaseBridgeComponent, E as ErrorBoundary } from "./bridge-base-CHnL6Q9P.mjs";\nimport ReactDOM from "react-dom";\nimport { L as LoggerInstance, g as getRootDomDefaultClassName } from "./index-Bs2NxD2z.mjs";\nimport React__default, { forwardRef, useRef, useState, useEffect } from "react";\nimport { federationRuntime } from "./plugin.es.js";\nfunction createReact16Or17Root(container) {\n return {\n render(children) {\n const reactVersion = ReactDOM.version || "";\n const isReact18 = reactVersion.startsWith("18");\n const isReact19 = reactVersion.startsWith("19");\n if (isReact19) {\n throw new Error(\n `React 19 detected in legacy mode. This is not supported. Please use the version-specific import: import { createBridgeComponent } from \'@module-federation/bridge-react/v19\'`\n );\n }\n if (isReact18) {\n LoggerInstance.warn(\n `[Bridge-React] React 18 detected in legacy mode. For better compatibility, please use the version-specific import: import { createBridgeComponent } from \'@module-federation/bridge-react/v18\'`\n );\n }\n ReactDOM.render(children, container);\n },\n unmount() {\n ReactDOM.unmountComponentAtNode(container);\n }\n };\n}\nfunction createBridgeComponent(bridgeInfo) {\n const fullBridgeInfo = {\n createRoot: createReact16Or17Root,\n ...bridgeInfo\n };\n return createBaseBridgeComponent(fullBridgeInfo);\n}\nconst RemoteAppWrapper = forwardRef(function(props, ref) {\n const {\n moduleName,\n memoryRoute,\n basename,\n providerInfo,\n className,\n style,\n fallback,\n loading,\n ...resProps\n } = props;\n const instance = federationRuntime.instance;\n const rootRef = ref && "current" in ref ? ref : useRef(null);\n const renderDom = useRef(null);\n const providerInfoRef = useRef(null);\n const [initialized, setInitialized] = useState(false);\n LoggerInstance.debug(`RemoteAppWrapper instance from props >>>`, instance);\n useEffect(() => {\n if (initialized) return;\n const providerReturn = providerInfo();\n providerInfoRef.current = providerReturn;\n setInitialized(true);\n return () => {\n var _a, _b, _c, _d, _e, _f, _g;\n if ((_a = providerInfoRef.current) == null ? void 0 : _a.destroy) {\n LoggerInstance.debug(\n `createRemoteAppComponent LazyComponent destroy >>>`,\n { moduleName, basename, dom: renderDom.current }\n );\n const destroyInfo = {\n moduleName,\n dom: renderDom.current,\n basename,\n memoryRoute,\n fallback,\n ...resProps\n };\n const operationContext = {\n side: "consumer",\n framework: "react",\n operation: "destroy",\n reason: "unmount"\n };\n (_d = (_c = (_b = instance == null ? void 0 : instance.bridgeHook) == null ? void 0 : _b.lifecycle) == null ? void 0 : _c.beforeBridgeDestroy) == null ? void 0 : _d.emit(\n destroyInfo,\n operationContext\n );\n providerInfoRef.current.destroy({\n moduleName,\n dom: renderDom.current\n });\n (_g = (_f = (_e = instance == null ? void 0 : instance.bridgeHook) == null ? void 0 : _e.lifecycle) == null ? void 0 : _f.afterBridgeDestroy) == null ? void 0 : _g.emit(destroyInfo, {\n context: operationContext\n });\n }\n };\n }, [moduleName]);\n useEffect(() => {\n var _a, _b, _c, _d, _e, _f;\n if (!initialized || !providerInfoRef.current) return;\n let renderProps = {\n moduleName,\n dom: rootRef.current,\n basename,\n memoryRoute,\n fallback,\n ...resProps\n };\n renderDom.current = rootRef.current;\n const operationContext = {\n side: "consumer",\n framework: "react",\n operation: "render"\n };\n const beforeBridgeRenderRes = ((_c = (_b = (_a = instance == null ? void 0 : instance.bridgeHook) == null ? void 0 : _a.lifecycle) == null ? void 0 : _b.beforeBridgeRender) == null ? void 0 : _c.emit(\n renderProps,\n operationContext\n )) || {};\n renderProps = { ...renderProps, ...beforeBridgeRenderRes.extraProps };\n providerInfoRef.current.render(renderProps);\n (_f = (_e = (_d = instance == null ? void 0 : instance.bridgeHook) == null ? void 0 : _d.lifecycle) == null ? void 0 : _e.afterBridgeRender) == null ? void 0 : _f.emit(renderProps, {\n context: operationContext\n });\n }, [initialized, ...Object.values(props)]);\n const rootComponentClassName = `${getRootDomDefaultClassName(moduleName)} ${className || ""}`;\n return /* @__PURE__ */ React__default.createElement("div", { className: rootComponentClassName, style, ref: rootRef }, loading);\n});\nfunction createLazyRemoteComponentFactory(RemoteApp) {\n return function createLazyRemoteComponent(info) {\n const exportName = (info == null ? void 0 : info.export) || "default";\n return React__default.lazy(async () => {\n LoggerInstance.debug(\n `createRemoteAppComponent LazyComponent create >>>`,\n {\n lazyComponent: info.loader,\n exportName\n }\n );\n try {\n const m = await info.loader();\n const moduleName = m && m[Symbol.for("mf_module_id")];\n LoggerInstance.debug(\n `createRemoteAppComponent LazyComponent loadRemote info >>>`,\n { name: moduleName, module: m, exportName }\n );\n const exportFn = m[exportName];\n if (exportName in m && typeof exportFn === "function") {\n const RemoteAppComponent = forwardRef((props, ref) => {\n return /* @__PURE__ */ React__default.createElement(\n RemoteApp,\n {\n moduleName,\n providerInfo: exportFn,\n exportName: info.export || "default",\n fallback: info.fallback,\n loading: info.loading,\n ref,\n ...props\n }\n );\n });\n return {\n default: RemoteAppComponent\n };\n } else {\n LoggerInstance.debug(\n `createRemoteAppComponent LazyComponent module not found >>>`,\n { name: moduleName, module: m, exportName }\n );\n throw Error(\n `Make sure that ${moduleName} has the correct export when export is ${String(\n exportName\n )}`\n );\n }\n } catch (error) {\n throw error;\n }\n });\n };\n}\nfunction createRemoteAppComponentFactory(RemoteApp) {\n const createLazyRemoteComponent = createLazyRemoteComponentFactory(RemoteApp);\n return function createRemoteAppComponent(info) {\n const LazyComponent = createLazyRemoteComponent(info);\n return forwardRef((props, ref) => {\n return /* @__PURE__ */ React__default.createElement(\n ErrorBoundary,\n {\n FallbackComponent: info.fallback\n },\n /* @__PURE__ */ React__default.createElement(React__default.Suspense, { fallback: info.loading }, /* @__PURE__ */ React__default.createElement(LazyComponent, { ...props, ref }))\n );\n });\n };\n}\nfunction createDeprecatedRemoteComponentFactory(createFn) {\n return function createRemoteComponent(info) {\n LoggerInstance.warn(\n `createRemoteComponent is deprecated, please use createRemoteAppComponent instead!`\n );\n return createFn(info);\n };\n}\nexport {\n RemoteAppWrapper as R,\n createDeprecatedRemoteComponentFactory as a,\n createBridgeComponent as b,\n createRemoteAppComponentFactory as c\n};\n',"data-fetch-utils.es.js":'import { y as DATA_FETCH_FUNCTION } from "./utils-BBP3hEeV.mjs";\nimport { C, a, c, b, d, g, r } from "./utils-BBP3hEeV.mjs";\nimport { d as dataFetchFunction } from "./prefetch-xvZIEaJL.mjs";\nimport { i, p } from "./prefetch-xvZIEaJL.mjs";\nasync function callDataFetch() {\n const dataFetch = globalThis[DATA_FETCH_FUNCTION];\n if (dataFetch) {\n await Promise.all(\n dataFetch.map(async (options) => {\n await dataFetchFunction(options);\n })\n );\n }\n}\nexport {\n C as CacheSize,\n a as CacheTime,\n c as cache,\n callDataFetch,\n b as clearStore,\n d as configureCache,\n g as generateKey,\n i as injectDataFetch,\n p as prefetch,\n r as revalidateTag\n};\n',"index-Bs2NxD2z.mjs":'import React__default from "react";\nimport { c as createLogger } from "./logger-DwWkXsWl.mjs";\nconst RouterContext = React__default.createContext(null);\nconst LoggerInstance = createLogger(\n "[ Module Federation Bridge React ]"\n);\nfunction pathJoin(...args) {\n const res = args.reduce((res2, path) => {\n let nPath = path;\n if (!nPath || typeof nPath !== "string") {\n return res2;\n }\n if (nPath[0] !== "/") {\n nPath = `/${nPath}`;\n }\n const lastIndex = nPath.length - 1;\n if (nPath[lastIndex] === "/") {\n nPath = nPath.substring(0, lastIndex);\n }\n return res2 + nPath;\n }, "");\n return res || "/";\n}\nconst getModuleName = (id) => {\n if (!id) {\n return id;\n }\n const idArray = id.split("/");\n if (idArray.length < 2) {\n return id;\n }\n return idArray[0] + "/" + idArray[1];\n};\nconst getRootDomDefaultClassName = (moduleName) => {\n if (!moduleName) {\n return "";\n }\n const name = getModuleName(moduleName).replace(/\\@/, "").replace(/\\//, "-");\n return `bridge-root-component-${name}`;\n};\nexport {\n LoggerInstance as L,\n RouterContext as R,\n getRootDomDefaultClassName as g,\n pathJoin as p\n};\n',"index.es.js":'import { R as RemoteAppWrapper, c as createRemoteAppComponentFactory, a as createDeprecatedRemoteComponentFactory } from "./createHelpers-D3Sg5lKp.mjs";\nimport { b } from "./createHelpers-D3Sg5lKp.mjs";\nimport { a, c, b as b2, l } from "./lazy-load-component-plugin-CyRfqVSE.mjs";\nimport { C, a as a2, E, c as c2, b as b3, d, g, r, s } from "./utils-BBP3hEeV.mjs";\nimport { callDataFetch } from "./data-fetch-utils.es.js";\nimport React__default, { forwardRef, useContext, useState, useEffect } from "react";\nimport * as ReactRouterDOM from "react-router-dom";\nimport { p as pathJoin, L as LoggerInstance } from "./index-Bs2NxD2z.mjs";\nimport { federationRuntime } from "./plugin.es.js";\nimport { p } from "./prefetch-xvZIEaJL.mjs";\nfunction e() {\n const t = new PopStateEvent("popstate", { state: window.history.state });\n window.dispatchEvent(t);\n}\nfunction withRouterData(WrappedComponent) {\n const Component = forwardRef(function(props, ref) {\n var _a;\n if (props == null ? void 0 : props.basename) {\n return /* @__PURE__ */ React__default.createElement(WrappedComponent, { ...props, basename: props.basename, ref });\n }\n let enableDispathPopstate = false;\n let routerContextVal;\n try {\n ReactRouterDOM.useLocation();\n enableDispathPopstate = true;\n } catch {\n enableDispathPopstate = false;\n }\n let basename = "/";\n if (!props.basename && enableDispathPopstate) {\n const ReactRouterDOMAny = ReactRouterDOM;\n const useRouteMatch = ReactRouterDOMAny["useRouteMatch"];\n const useHistory = ReactRouterDOMAny["useHistory"];\n const useHref = ReactRouterDOMAny["useHref"];\n const UNSAFE_RouteContext = ReactRouterDOMAny["UNSAFE_RouteContext"];\n if (UNSAFE_RouteContext) {\n if (useHref) {\n basename = useHref == null ? void 0 : useHref("/");\n }\n routerContextVal = useContext(UNSAFE_RouteContext);\n if (routerContextVal && routerContextVal.matches && routerContextVal.matches.length > 0) {\n const matchIndex = routerContextVal.matches.length - 1;\n const pathnameBase = routerContextVal.matches[matchIndex].pathnameBase;\n basename = pathJoin(basename, pathnameBase || "/");\n }\n } else {\n const match = useRouteMatch == null ? void 0 : useRouteMatch();\n if (useHistory) {\n const history = useHistory == null ? void 0 : useHistory();\n basename = (_a = history == null ? void 0 : history.createHref) == null ? void 0 : _a.call(history, { pathname: "/" });\n }\n if (match) {\n basename = pathJoin(basename, (match == null ? void 0 : match.path) || "/");\n }\n }\n }\n LoggerInstance.debug(`createRemoteAppComponent withRouterData >>>`, {\n ...props,\n basename,\n routerContextVal,\n enableDispathPopstate\n });\n if (enableDispathPopstate) {\n const location = ReactRouterDOM.useLocation();\n const [pathname, setPathname] = useState(location.pathname);\n useEffect(() => {\n var _a2;\n if (pathname !== "" && pathname !== location.pathname) {\n LoggerInstance.debug(\n `createRemoteAppComponent dispatchPopstateEnv >>>`,\n {\n name: props.name,\n pathname: location.pathname\n }\n );\n const route = {\n action: "host-to-remote",\n mechanism: "popstate",\n from: pathname,\n to: location.pathname,\n basename\n };\n const operationContext = {\n side: "consumer",\n framework: "react",\n operation: "route-sync",\n moduleName: props.moduleName,\n route\n };\n e();\n (_a2 = federationRuntime.instance) == null ? void 0 : _a2.bridgeHook.lifecycle.afterBridgeRouteSync.emit(\n {\n context: operationContext\n }\n );\n }\n setPathname(location.pathname);\n }, [location]);\n }\n return /* @__PURE__ */ React__default.createElement(WrappedComponent, { ...props, basename, ref });\n });\n return forwardRef(function(props, ref) {\n return /* @__PURE__ */ React__default.createElement(Component, { ...props, ref });\n });\n}\nconst RemoteApp = withRouterData(RemoteAppWrapper);\nconst createRemoteAppComponent = createRemoteAppComponentFactory(RemoteApp);\nconst createRemoteComponent = createDeprecatedRemoteComponentFactory(\n createRemoteAppComponent\n);\nexport {\n C as CacheSize,\n a2 as CacheTime,\n E as ERROR_TYPE,\n a as autoFetchDataPlugin,\n c2 as cache,\n callDataFetch,\n b3 as clearStore,\n c as collectSSRAssets,\n d as configureCache,\n b as createBridgeComponent,\n b2 as createLazyComponent,\n createRemoteAppComponent,\n createRemoteComponent,\n g as generateKey,\n l as lazyLoadComponentPlugin,\n p as prefetch,\n r as revalidateTag,\n s as setSSREnv\n};\n',"lazy-load-component-plugin-CyRfqVSE.mjs":'import { i as injectDataFetch, p as prefetch } from "./prefetch-xvZIEaJL.mjs";\nimport { i as initDataFetchMap, k as isDataLoaderExpose, m as getDataFetchInfo, n as getDataFetchMapKey, l as logger, o as getDataFetchItem, p as DATA_FETCH_CLIENT_SUFFIX, q as MF_DATA_FETCH_TYPE, t as isCSROnly, M as MF_DATA_FETCH_STATUS, j as loadDataFetchModule, e as getDataFetchMap, u as isServerEnv, v as getDataFetchIdWithErrorMsgs, w as DATA_FETCH_ERROR_PREFIX, E as ERROR_TYPE, x as wrapDataFetchId, L as LOAD_REMOTE_ERROR_PREFIX, y as DATA_FETCH_FUNCTION, z as getLoadedRemoteInfos, h as fetchData$1, A as setDataFetchItemLoadedStatus, F as FS_HREF } from "./utils-BBP3hEeV.mjs";\nimport React__default, { useRef, useState, useEffect, Suspense } from "react";\nconst autoFetchData = () => {\n initDataFetchMap();\n injectDataFetch();\n return {\n name: "auto-fetch-data-plugin",\n afterLoadSnapshot(args) {\n const { id, moduleInfo, remoteSnapshot, host } = args;\n if (typeof id === "string" && isDataLoaderExpose(id)) {\n return args;\n }\n if (!remoteSnapshot || !id || !("modules" in remoteSnapshot)) {\n return args;\n }\n const { name, alias } = moduleInfo;\n const dataFetchInfo = getDataFetchInfo({\n name,\n alias,\n id,\n remoteSnapshot\n });\n if (!dataFetchInfo) {\n return args;\n }\n const { dataFetchId, dataFetchName } = dataFetchInfo;\n const dataFetchMapKey = getDataFetchMapKey(dataFetchInfo, {\n name: host.name,\n version: host.options.version\n });\n logger.debug(\n "======= auto fetch plugin dataFetchMapKey: ",\n dataFetchMapKey\n );\n if (!dataFetchMapKey) {\n return args;\n }\n const dataFetchItem = getDataFetchItem(dataFetchMapKey);\n if (dataFetchItem) {\n return args;\n }\n const dataFetchMap = getDataFetchMap();\n const hasSSRAsset = Boolean(remoteSnapshot.ssrRemoteEntry);\n const hasDataFetchClient = Boolean(\n remoteSnapshot.modules.find(\n (module) => module.moduleName === `${dataFetchName}${DATA_FETCH_CLIENT_SUFFIX}`\n )\n );\n const downgradeType = hasDataFetchClient ? MF_DATA_FETCH_TYPE.FETCH_CLIENT : hasSSRAsset ? MF_DATA_FETCH_TYPE.FETCH_SERVER : MF_DATA_FETCH_TYPE.FETCH_CLIENT;\n let finalDataFetchId = dataFetchId;\n if (!isServerEnv()) {\n finalDataFetchId = downgradeType === MF_DATA_FETCH_TYPE.FETCH_CLIENT ? hasDataFetchClient ? `${dataFetchId}${DATA_FETCH_CLIENT_SUFFIX}` : dataFetchId : dataFetchId;\n }\n const getDataFetchGetter = () => loadDataFetchModule(host, finalDataFetchId);\n const dataFetchFnItem = [\n getDataFetchGetter,\n downgradeType\n ];\n if (typeof window === "undefined" || isCSROnly()) {\n dataFetchFnItem.push(getDataFetchGetter());\n }\n dataFetchMap[dataFetchMapKey] = [\n dataFetchFnItem,\n void 0,\n MF_DATA_FETCH_STATUS.AWAIT\n ];\n return args;\n }\n };\n};\nconst EMPTY_HREFS = /* @__PURE__ */ new Set();\nconst stylesheetStores = /* @__PURE__ */ new WeakMap();\nfunction isActiveStylesheet(link) {\n const rel = link.rel.toLowerCase().split(/\\s+/u);\n const media = link.media.trim().toLowerCase();\n const type = link.type.trim().toLowerCase().split(";", 1)[0].trim();\n return rel.includes("stylesheet") && !rel.includes("alternate") && !link.disabled && !link.hasAttribute("disabled") && (!media || media === "all") && (!type || type === "text/css");\n}\nfunction collectHeadStylesheetHrefs(document) {\n var _a;\n const hrefs = /* @__PURE__ */ new Set();\n (_a = document.head) == null ? void 0 : _a.querySelectorAll("link[href]").forEach((link) => {\n if (isActiveStylesheet(link)) {\n hrefs.add(link.href);\n }\n });\n return hrefs;\n}\nfunction haveSameHrefs(current, next) {\n if (current.size !== next.size) {\n return false;\n }\n for (const href of current) {\n if (!next.has(href)) {\n return false;\n }\n }\n return true;\n}\nfunction observeHead(store) {\n store.observer.disconnect();\n const { document, head, observer } = store;\n if (head) {\n observer.observe(head, {\n attributes: true,\n attributeFilter: ["disabled", "href", "media", "rel", "type"],\n childList: true,\n subtree: true\n });\n }\n if (document.documentElement) {\n observer.observe(document.documentElement, { childList: true });\n }\n}\nfunction refreshHeadStylesheets(store) {\n if (!store.subscribers.size) {\n return;\n }\n const head = store.document.head;\n if (head !== store.head) {\n store.head = head;\n observeHead(store);\n }\n const hrefs = collectHeadStylesheetHrefs(store.document);\n if (haveSameHrefs(store.hrefs, hrefs)) {\n return;\n }\n store.hrefs = hrefs;\n store.subscribers.forEach((subscriber) => subscriber(hrefs));\n}\nfunction getStylesheetStore(document) {\n var _a;\n const current = stylesheetStores.get(document);\n if (current) {\n return current;\n }\n const MutationObserver = ((_a = document.defaultView) == null ? void 0 : _a.MutationObserver) ?? globalThis.MutationObserver;\n let store;\n const observer = new MutationObserver(() => refreshHeadStylesheets(store));\n store = {\n document,\n head: document.head,\n hrefs: collectHeadStylesheetHrefs(document),\n observer,\n subscribers: /* @__PURE__ */ new Set()\n };\n observeHead(store);\n stylesheetStores.set(document, store);\n return store;\n}\nfunction subscribeToHeadStylesheets(document, subscriber) {\n const store = getStylesheetStore(document);\n let subscribed = true;\n store.subscribers.add(subscriber);\n subscriber(store.hrefs);\n return () => {\n if (!subscribed) {\n return;\n }\n subscribed = false;\n store.subscribers.delete(subscriber);\n if (!store.subscribers.size) {\n store.observer.disconnect();\n if (stylesheetStores.get(document) === store) {\n stylesheetStores.delete(document);\n }\n }\n };\n}\nfunction resolveHref(href, document) {\n try {\n return new URL(href, document.baseURI).href;\n } catch {\n return href;\n }\n}\nfunction HydratedStylesheetAssets({ hrefs }) {\n const firstLinkRef = useRef(null);\n const ownerDocumentRef = useRef(null);\n const [headHrefs, setHeadHrefs] = useState(EMPTY_HREFS);\n useEffect(() => {\n var _a;\n const link = firstLinkRef.current;\n if (!link) {\n return;\n }\n const ownerDocument = link.ownerDocument;\n ownerDocumentRef.current = ownerDocument;\n if (link.getRootNode() !== ownerDocument || ((_a = ownerDocument.head) == null ? void 0 : _a.contains(link))) {\n return;\n }\n return subscribeToHeadStylesheets(ownerDocument, setHeadHrefs);\n }, []);\n return /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, hrefs.map(\n (href, index) => ownerDocumentRef.current && headHrefs.has(resolveHref(href, ownerDocumentRef.current)) ? null : /* @__PURE__ */ React__default.createElement(\n "link",\n {\n key: href,\n ref: index === 0 ? firstLinkRef : void 0,\n href,\n rel: "stylesheet",\n type: "text/css"\n }\n )\n ));\n}\nfunction isPromise(obj) {\n return !!obj && (typeof obj === "object" || typeof obj === "function") && typeof obj.then === "function";\n}\nconst AWAIT_ERROR_PREFIX = "<Await /> caught the following error during render: ";\nconst transformError = (err) => {\n const errMsg = err instanceof Error ? err.message : err;\n const originalMsg = errMsg.replace(AWAIT_ERROR_PREFIX, "");\n const dataFetchMapKey = getDataFetchIdWithErrorMsgs(originalMsg);\n if (originalMsg.indexOf(DATA_FETCH_ERROR_PREFIX) === 0) {\n return {\n error: new Error(\n originalMsg.replace(DATA_FETCH_ERROR_PREFIX, "").replace(wrapDataFetchId(dataFetchMapKey), "")\n ),\n errorType: ERROR_TYPE.DATA_FETCH,\n dataFetchMapKey\n };\n }\n if (originalMsg.indexOf(LOAD_REMOTE_ERROR_PREFIX) === 0) {\n return {\n error: new Error(\n originalMsg.replace(LOAD_REMOTE_ERROR_PREFIX, "").replace(wrapDataFetchId(dataFetchMapKey), "")\n ),\n errorType: ERROR_TYPE.LOAD_REMOTE,\n dataFetchMapKey\n };\n }\n return {\n error: new Error(originalMsg.replace(wrapDataFetchId(dataFetchMapKey), "")),\n errorType: ERROR_TYPE.UNKNOWN,\n dataFetchMapKey\n };\n};\nconst DefaultLoading = /* @__PURE__ */ React__default.createElement(React__default.Fragment, null);\nconst DefaultErrorElement = (_data) => /* @__PURE__ */ React__default.createElement("div", null, "Error");\nfunction AwaitDataFetch({\n resolve,\n loading = DefaultLoading,\n errorElement = DefaultErrorElement,\n children,\n params,\n delayLoading\n}) {\n const dataRef = useRef();\n const data = dataRef.current || resolve;\n const getData = isPromise(data) ? fetchData(data, dataRef) : () => data;\n return /* @__PURE__ */ React__default.createElement(\n AwaitSuspense,\n {\n params,\n loading,\n errorElement,\n delayLoading,\n resolve: getData\n },\n children\n );\n}\nconst DelayedLoading = ({\n delayLoading,\n children\n}) => {\n const [show, setShow] = useState(false);\n const timerSet = useRef(false);\n if (!delayLoading) {\n return children;\n }\n if (typeof window !== "undefined" && !show && !timerSet.current) {\n timerSet.current = true;\n setTimeout(() => {\n setShow(true);\n }, delayLoading);\n }\n return show ? children : null;\n};\nfunction AwaitSuspense({\n resolve,\n children,\n loading = DefaultLoading,\n errorElement = DefaultErrorElement,\n delayLoading\n}) {\n return /* @__PURE__ */ React__default.createElement(\n Suspense,\n {\n fallback: /* @__PURE__ */ React__default.createElement(DelayedLoading, { delayLoading }, loading)\n },\n /* @__PURE__ */ React__default.createElement(ResolveAwait, { resolve, errorElement }, children)\n );\n}\nfunction ResolveAwait({\n children,\n resolve,\n errorElement,\n params\n}) {\n const data = resolve();\n logger.debug("resolve data: ", data);\n if (typeof data === "string" && data.indexOf(AWAIT_ERROR_PREFIX) === 0) {\n const transformedError = transformError(data);\n return /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, typeof errorElement === "function" ? /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, globalThis.FEDERATION_SSR && /* @__PURE__ */ React__default.createElement(\n "script",\n {\n suppressHydrationWarning: true,\n dangerouslySetInnerHTML: {\n __html: String.raw`\n globalThis[\'${DATA_FETCH_FUNCTION}\'] = globalThis[\'${DATA_FETCH_FUNCTION}\'] || []\n globalThis[\'${DATA_FETCH_FUNCTION}\'].push([${transformedError.dataFetchMapKey ? `\'${transformedError.dataFetchMapKey}\'` : ""},${params ? JSON.stringify(params) : null},true]);`\n }\n }\n ), errorElement(transformedError)) : errorElement);\n }\n const toRender = typeof children === "function" ? children(data) : children;\n return /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, toRender);\n}\nconst fetchData = (promise, ref) => {\n let data;\n let status = "pending";\n const suspender = promise.then((res) => {\n status = "success";\n data = res;\n ref.current = res;\n }).catch((e) => {\n status = "success";\n console.warn(e);\n data = AWAIT_ERROR_PREFIX + e;\n });\n return () => {\n if (status === "pending") {\n throw suspender;\n }\n return data;\n };\n};\nfunction getTargetModuleInfo(id, instance) {\n if (!instance) {\n return;\n }\n const loadedRemoteInfo = getLoadedRemoteInfos(id, instance);\n if (!loadedRemoteInfo) {\n return;\n }\n const { snapshot } = loadedRemoteInfo;\n if (!snapshot) {\n return;\n }\n const publicPath = "publicPath" in snapshot ? snapshot.publicPath : "getPublicPath" in snapshot ? new Function(snapshot.getPublicPath)() : "";\n if (!publicPath) {\n return;\n }\n const modules = "modules" in snapshot ? snapshot.modules : [];\n const targetModule = modules.find(\n (m) => m.modulePath === loadedRemoteInfo.expose\n );\n if (!targetModule) {\n return;\n }\n const remoteEntry = "remoteEntry" in snapshot ? snapshot.remoteEntry : "";\n if (!remoteEntry) {\n return;\n }\n return {\n module: targetModule,\n publicPath,\n remoteEntry\n };\n}\nfunction collectSSRAssetDescriptors(options) {\n const {\n id,\n injectLink = true,\n injectScript = false\n } = typeof options === "string" ? { id: options } : options;\n const stylesheetHrefs = [];\n const scriptSrcs = [];\n const instance = options.instance;\n if (!instance || !injectLink && !injectScript) {\n return { scriptSrcs, stylesheetHrefs };\n }\n const moduleAndPublicPath = getTargetModuleInfo(id, instance);\n if (!moduleAndPublicPath) {\n return { scriptSrcs, stylesheetHrefs };\n }\n const { module: targetModule, publicPath, remoteEntry } = moduleAndPublicPath;\n if (injectLink) {\n const seenStylesheetHrefs = /* @__PURE__ */ new Set();\n [...targetModule.assets.css.sync, ...targetModule.assets.css.async].sort().forEach((file) => {\n const href = `${publicPath}${file}`;\n if (seenStylesheetHrefs.has(href)) {\n return;\n }\n seenStylesheetHrefs.add(href);\n stylesheetHrefs.push(href);\n });\n }\n if (injectScript) {\n scriptSrcs.push(`${publicPath}${remoteEntry}`);\n [...targetModule.assets.js.sync].sort().forEach((file) => {\n scriptSrcs.push(`${publicPath}${file}`);\n });\n }\n return { scriptSrcs, stylesheetHrefs };\n}\nfunction renderScriptAssets(scriptSrcs) {\n return scriptSrcs.map((src) => /* @__PURE__ */ React__default.createElement("script", { key: src, async: true, src, crossOrigin: "anonymous" }));\n}\nfunction collectSSRAssets(options) {\n const { scriptSrcs, stylesheetHrefs } = collectSSRAssetDescriptors(options);\n return [\n ...renderScriptAssets(scriptSrcs),\n ...stylesheetHrefs.map((href) => /* @__PURE__ */ React__default.createElement("link", { key: href, href, rel: "stylesheet", type: "text/css" }))\n ];\n}\nfunction getServerNeedRemoteInfo(loadedRemoteInfo, id, noSSR) {\n var _a;\n if (noSSR || typeof window !== "undefined" && window.location.href !== window[FS_HREF]) {\n if (!(loadedRemoteInfo == null ? void 0 : loadedRemoteInfo.version)) {\n throw new Error(`${loadedRemoteInfo == null ? void 0 : loadedRemoteInfo.name} version is empty`);\n }\n const { snapshot } = loadedRemoteInfo;\n if (!snapshot) {\n throw new Error(`${loadedRemoteInfo == null ? void 0 : loadedRemoteInfo.name} snapshot is empty`);\n }\n const dataFetchItem = getDataFetchItem(id);\n const isFetchServer = ((_a = dataFetchItem == null ? void 0 : dataFetchItem[0]) == null ? void 0 : _a[1]) === MF_DATA_FETCH_TYPE.FETCH_SERVER;\n if (isFetchServer && (!("ssrPublicPath" in snapshot) || !snapshot.ssrPublicPath)) {\n throw new Error(\n `ssrPublicPath is required while fetching ${loadedRemoteInfo == null ? void 0 : loadedRemoteInfo.name} data in SSR project!`\n );\n }\n if (isFetchServer && (!("ssrRemoteEntry" in snapshot) || !snapshot.ssrRemoteEntry)) {\n throw new Error(\n `ssrRemoteEntry is required while loading ${loadedRemoteInfo == null ? void 0 : loadedRemoteInfo.name} data loader in SSR project!`\n );\n }\n return {\n name: loadedRemoteInfo.name,\n version: loadedRemoteInfo.version,\n ssrPublicPath: "ssrPublicPath" in snapshot ? snapshot.ssrPublicPath || "" : "",\n ssrRemoteEntry: "ssrRemoteEntry" in snapshot ? snapshot.ssrRemoteEntry || "" : "",\n globalName: loadedRemoteInfo.entryGlobalName\n };\n }\n return void 0;\n}\nfunction createLazyComponent(options) {\n const { instance, injectScript, injectLink } = options;\n if (!instance) {\n throw new Error("instance is required for createLazyComponent!");\n }\n const exportName = (options == null ? void 0 : options.export) || "default";\n const callLoader = async () => {\n logger.debug("callLoader start", Date.now());\n const m = await options.loader();\n logger.debug("callLoader end", Date.now());\n if (!m) {\n throw new Error("load remote failed");\n }\n return m;\n };\n const getData = async (noSSR) => {\n let loadedRemoteInfo;\n let moduleId;\n try {\n const m = await callLoader();\n moduleId = m && m[Symbol.for("mf_module_id")];\n if (!moduleId) {\n throw new Error("moduleId is empty");\n }\n loadedRemoteInfo = getLoadedRemoteInfos(moduleId, instance);\n if (!loadedRemoteInfo) {\n throw new Error(`can not find loaded remote(\'${moduleId}\') info!`);\n }\n } catch (e) {\n const errMsg = `${LOAD_REMOTE_ERROR_PREFIX}${e}`;\n logger.debug(e);\n throw new Error(errMsg);\n }\n let dataFetchMapKey;\n try {\n dataFetchMapKey = getDataFetchMapKey(\n getDataFetchInfo({\n name: loadedRemoteInfo.name,\n alias: loadedRemoteInfo.alias,\n id: moduleId,\n remoteSnapshot: loadedRemoteInfo.snapshot\n }),\n { name: instance.name, version: instance.options.version }\n );\n logger.debug("getData dataFetchMapKey: ", dataFetchMapKey);\n if (!dataFetchMapKey) {\n return;\n }\n const data = await fetchData$1(\n dataFetchMapKey,\n {\n ...options.dataFetchParams,\n isDowngrade: false\n },\n getServerNeedRemoteInfo(loadedRemoteInfo, dataFetchMapKey, noSSR)\n );\n setDataFetchItemLoadedStatus(dataFetchMapKey);\n logger.debug("get data res: \\n", data);\n return data;\n } catch (err) {\n const errMsg = `${DATA_FETCH_ERROR_PREFIX}${wrapDataFetchId(dataFetchMapKey)}${err}`;\n logger.debug(errMsg);\n throw new Error(errMsg);\n }\n };\n const LazyComponent = React__default.lazy(async () => {\n const m = await callLoader();\n const moduleId = m && m[Symbol.for("mf_module_id")];\n const loadedRemoteInfo = getLoadedRemoteInfos(moduleId, instance);\n loadedRemoteInfo == null ? void 0 : loadedRemoteInfo.snapshot;\n const dataFetchMapKey = loadedRemoteInfo ? getDataFetchMapKey(\n getDataFetchInfo({\n name: loadedRemoteInfo.name,\n alias: loadedRemoteInfo.alias,\n id: moduleId,\n remoteSnapshot: loadedRemoteInfo.snapshot\n }),\n { name: instance.name, version: instance == null ? void 0 : instance.options.version }\n ) : void 0;\n logger.debug("LazyComponent dataFetchMapKey: ", dataFetchMapKey);\n const { scriptSrcs, stylesheetHrefs } = collectSSRAssetDescriptors({\n id: moduleId,\n instance,\n injectLink,\n injectScript\n });\n const assets = [\n ...renderScriptAssets(scriptSrcs),\n /* @__PURE__ */ React__default.createElement(HydratedStylesheetAssets, { key: "stylesheets", hrefs: stylesheetHrefs })\n ];\n const Com = m[exportName];\n if (exportName in m && typeof Com === "function") {\n return {\n default: (props) => /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, globalThis.FEDERATION_SSR && dataFetchMapKey && /* @__PURE__ */ React__default.createElement(\n "script",\n {\n suppressHydrationWarning: true,\n dangerouslySetInnerHTML: {\n __html: String.raw`\n globalThis[\'${DATA_FETCH_FUNCTION}\'] = globalThis[\'${DATA_FETCH_FUNCTION}\'] || [];\n globalThis[\'${DATA_FETCH_FUNCTION}\'].push([\'${dataFetchMapKey}\',${JSON.stringify(props.mfData)}]);\n `\n }\n }\n ), globalThis.FEDERATION_SSR && assets, /* @__PURE__ */ React__default.createElement(Com, { ...props }))\n };\n } else {\n throw Error(\n `Make sure that ${moduleId} has the correct export when export is ${String(\n exportName\n )}`\n );\n }\n });\n return (props) => {\n const { key, ...args } = props;\n if (!options.noSSR) {\n return /* @__PURE__ */ React__default.createElement(\n AwaitDataFetch,\n {\n resolve: getData(options.noSSR),\n loading: options.loading,\n delayLoading: options.delayLoading,\n errorElement: options.fallback\n },\n (data) => /* @__PURE__ */ React__default.createElement(LazyComponent, { ...args, mfData: data })\n );\n } else {\n const [data, setData] = useState(null);\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState(null);\n useEffect(() => {\n let isMounted = true;\n const fetchDataAsync = async () => {\n try {\n setLoading(true);\n const result = await getData(options.noSSR);\n if (isMounted) {\n setData(result);\n }\n } catch (e) {\n if (isMounted) {\n setError(transformError(e));\n }\n } finally {\n if (isMounted) {\n setLoading(false);\n }\n }\n };\n fetchDataAsync();\n return () => {\n isMounted = false;\n };\n }, []);\n if (loading) {\n return /* @__PURE__ */ React__default.createElement(DelayedLoading, { delayLoading: options.delayLoading }, options.loading);\n }\n if (error) {\n return /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, typeof options.fallback === "function" ? options.fallback(error) : options.fallback);\n }\n return /* @__PURE__ */ React__default.createElement(LazyComponent, { ...args, mfData: data });\n }\n };\n}\nfunction lazyLoadComponentPlugin() {\n return {\n name: "lazy-load-component-plugin",\n apply(instance) {\n instance.registerPlugins([autoFetchData()]);\n instance.createLazyComponent = (options) => {\n return createLazyComponent({\n instance,\n ...options\n });\n };\n instance.prefetch = (options) => {\n return prefetch({\n instance,\n ...options\n });\n };\n instance.collectSSRAssets = (options) => {\n return collectSSRAssets({\n instance,\n ...options\n });\n };\n }\n };\n}\nexport {\n autoFetchData as a,\n createLazyComponent as b,\n collectSSRAssets as c,\n lazyLoadComponentPlugin as l\n};\n',"logger-DwWkXsWl.mjs":'const MANIFEST_EXT = ".json";\nconst BROWSER_LOG_KEY = "FEDERATION_DEBUG";\nconst SEPARATOR = ":";\nconst isBrowserEnvValue = typeof ENV_TARGET !== "undefined" ? ENV_TARGET === "web" : typeof window !== "undefined" && typeof window.document !== "undefined";\nfunction isBrowserEnv() {\n return isBrowserEnvValue;\n}\nfunction isBrowserDebug() {\n try {\n if (isBrowserEnv() && window.localStorage) return Boolean(localStorage.getItem(BROWSER_LOG_KEY));\n } catch (error) {\n return false;\n }\n return false;\n}\nfunction isDebugMode() {\n if (typeof process !== "undefined" && process.env && process.env["FEDERATION_DEBUG"]) return Boolean(process.env["FEDERATION_DEBUG"]);\n if (typeof FEDERATION_DEBUG !== "undefined" && Boolean(FEDERATION_DEBUG)) return true;\n return isBrowserDebug();\n}\nconst PREFIX = "[ Module Federation ]";\nconst DEFAULT_DELEGATE = console;\nconst LOGGER_STACK_SKIP_TOKENS = [\n "logger.ts",\n "logger.js",\n "captureStackTrace",\n "Logger.emit",\n "Logger.log",\n "Logger.info",\n "Logger.warn",\n "Logger.error",\n "Logger.debug"\n];\nfunction captureStackTrace() {\n try {\n const stack = (/* @__PURE__ */ new Error()).stack;\n if (!stack) return;\n const [, ...rawLines] = stack.split("\\n");\n const filtered = rawLines.filter((line) => !LOGGER_STACK_SKIP_TOKENS.some((token) => line.includes(token)));\n if (!filtered.length) return;\n return `Stack trace:\n${filtered.slice(0, 5).join("\\n")}`;\n } catch {\n return;\n }\n}\nvar Logger = class {\n constructor(prefix, delegate = DEFAULT_DELEGATE) {\n this.prefix = prefix;\n this.delegate = delegate ?? DEFAULT_DELEGATE;\n }\n setPrefix(prefix) {\n this.prefix = prefix;\n }\n setDelegate(delegate) {\n this.delegate = delegate ?? DEFAULT_DELEGATE;\n }\n emit(method, args) {\n const delegate = this.delegate;\n const stackTrace = isDebugMode() ? captureStackTrace() : void 0;\n const enrichedArgs = stackTrace ? [...args, stackTrace] : args;\n const order = (() => {\n switch (method) {\n case "log":\n return ["log", "info"];\n case "info":\n return ["info", "log"];\n case "warn":\n return [\n "warn",\n "info",\n "log"\n ];\n case "error":\n return [\n "error",\n "warn",\n "log"\n ];\n default:\n return ["debug", "log"];\n }\n })();\n for (const candidate of order) {\n const handler = delegate[candidate];\n if (typeof handler === "function") {\n handler.call(delegate, this.prefix, ...enrichedArgs);\n return;\n }\n }\n for (const candidate of order) {\n const handler = DEFAULT_DELEGATE[candidate];\n if (typeof handler === "function") {\n handler.call(DEFAULT_DELEGATE, this.prefix, ...enrichedArgs);\n return;\n }\n }\n }\n log(...args) {\n this.emit("log", args);\n }\n warn(...args) {\n this.emit("warn", args);\n }\n error(...args) {\n this.emit("error", args);\n }\n success(...args) {\n this.emit("info", args);\n }\n info(...args) {\n this.emit("info", args);\n }\n ready(...args) {\n this.emit("info", args);\n }\n debug(...args) {\n if (isDebugMode()) this.emit("debug", args);\n }\n};\nfunction createLogger(prefix) {\n return new Logger(prefix);\n}\nfunction createInfrastructureLogger(prefix) {\n const infrastructureLogger = new Logger(prefix);\n Object.defineProperty(infrastructureLogger, "__mf_infrastructure_logger__", {\n value: true,\n enumerable: false,\n configurable: false\n });\n return infrastructureLogger;\n}\ncreateInfrastructureLogger(PREFIX);\nexport {\n MANIFEST_EXT as M,\n SEPARATOR as S,\n createLogger as c,\n isBrowserEnvValue as i\n};\n',"plugin.es.js":'const federationRuntime = { instance: null };\nfunction BridgeReactPlugin() {\n return {\n name: "bridge-react-plugin",\n beforeInit(args) {\n federationRuntime.instance = args.origin;\n return args;\n }\n };\n}\nexport {\n BridgeReactPlugin as default,\n federationRuntime\n};\n',"prefetch-xvZIEaJL.mjs":'import { B as warn, y as DATA_FETCH_FUNCTION, F as FS_HREF, l as logger, e as getDataFetchMap, i as initDataFetchMap, o as getDataFetchItem, M as MF_DATA_FETCH_STATUS, q as MF_DATA_FETCH_TYPE, G as DOWNGRADE_KEY, H as callAllDowngrade, I as callDowngrade, J as getDowngradeTag, K as composeKeyWithSeparator, N as safeToString, m as getDataFetchInfo, n as getDataFetchMapKey } from "./utils-BBP3hEeV.mjs";\nimport { i as isBrowserEnvValue } from "./logger-DwWkXsWl.mjs";\nasync function safeWrapper(callback, disableWarn) {\n try {\n return await callback();\n } catch (e) {\n warn(e);\n return;\n }\n}\nfunction isStaticResourcesEqual(url1, url2) {\n const REG_EXP = /^(https?:)?\\/\\//i;\n return url1.replace(REG_EXP, "").replace(/\\/$/, "") === url2.replace(REG_EXP, "").replace(/\\/$/, "");\n}\nfunction createScript(info) {\n let script = null;\n let needAttach = true;\n let timeout = 2e4;\n let timeoutId;\n const scripts = document.getElementsByTagName("script");\n for (let i = 0; i < scripts.length; i++) {\n const s = scripts[i];\n const scriptSrc = s.getAttribute("src");\n if (scriptSrc && isStaticResourcesEqual(scriptSrc, info.url)) {\n script = s;\n needAttach = false;\n break;\n }\n }\n if (!script) {\n const attrs = info.attrs;\n script = document.createElement("script");\n script.type = (attrs == null ? void 0 : attrs["type"]) === "module" ? "module" : "text/javascript";\n let createScriptRes = void 0;\n if (info.createScriptHook) {\n createScriptRes = info.createScriptHook(info.url, info.attrs);\n if (createScriptRes instanceof HTMLScriptElement) script = createScriptRes;\n else if (typeof createScriptRes === "object") {\n if ("script" in createScriptRes && createScriptRes.script) script = createScriptRes.script;\n if ("timeout" in createScriptRes && createScriptRes.timeout) timeout = createScriptRes.timeout;\n }\n }\n if (!script.src) script.src = info.url;\n if (attrs && !createScriptRes) Object.keys(attrs).forEach((name) => {\n if (script) {\n if (name === "async" || name === "defer") script[name] = attrs[name];\n else if (!script.getAttribute(name)) script.setAttribute(name, attrs[name]);\n }\n });\n }\n let executionError = null;\n const executionErrorHandler = typeof window !== "undefined" ? (evt) => {\n if (evt.filename && isStaticResourcesEqual(evt.filename, info.url)) {\n const err = /* @__PURE__ */ new Error(`ScriptExecutionError: Script "${info.url}" loaded but threw a runtime error during execution: ${evt.message} (${evt.filename}:${evt.lineno}:${evt.colno})`);\n err.name = "ScriptExecutionError";\n executionError = err;\n }\n } : null;\n if (executionErrorHandler) window.addEventListener("error", executionErrorHandler);\n const onScriptComplete = async (prev, event) => {\n clearTimeout(timeoutId);\n if (executionErrorHandler) window.removeEventListener("error", executionErrorHandler);\n const onScriptCompleteCallback = () => {\n if ((event == null ? void 0 : event.type) === "error") {\n const networkError = /* @__PURE__ */ new Error((event == null ? void 0 : event.isTimeout) ? `ScriptNetworkError: Script "${info.url}" timed out.` : `ScriptNetworkError: Failed to load script "${info.url}" - the script URL is unreachable or the server returned an error (network failure, 404, CORS, etc.)`);\n networkError.name = "ScriptNetworkError";\n (info == null ? void 0 : info.onErrorCallback) && (info == null ? void 0 : info.onErrorCallback(networkError));\n } else if (executionError) (info == null ? void 0 : info.onErrorCallback) && (info == null ? void 0 : info.onErrorCallback(executionError));\n else (info == null ? void 0 : info.cb) && (info == null ? void 0 : info.cb());\n };\n if (script) {\n script.onerror = null;\n script.onload = null;\n safeWrapper(() => {\n const { needDeleteScript = true } = info;\n if (needDeleteScript) (script == null ? void 0 : script.parentNode) && script.parentNode.removeChild(script);\n });\n if (prev && typeof prev === "function") {\n const result = prev(event);\n if (result instanceof Promise) {\n const res = await result;\n onScriptCompleteCallback();\n return res;\n }\n onScriptCompleteCallback();\n return result;\n }\n }\n onScriptCompleteCallback();\n };\n script.onerror = onScriptComplete.bind(null, script.onerror);\n script.onload = onScriptComplete.bind(null, script.onload);\n timeoutId = setTimeout(() => {\n onScriptComplete(null, {\n type: "error",\n isTimeout: true\n });\n }, timeout);\n return {\n script,\n needAttach\n };\n}\nfunction createLink(info) {\n let link = null;\n let needAttach = true;\n let timeout = 2e4;\n let timeoutId;\n const links = document.getElementsByTagName("link");\n for (let i = 0; i < links.length; i++) {\n const l = links[i];\n const linkHref = l.getAttribute("href");\n const linkRel = l.getAttribute("rel");\n if (linkHref && isStaticResourcesEqual(linkHref, info.url) && linkRel === info.attrs["rel"]) {\n link = l;\n needAttach = false;\n break;\n }\n }\n if (!link) {\n link = document.createElement("link");\n link.setAttribute("href", info.url);\n let createLinkRes = void 0;\n let shouldApplyAttrs = true;\n const attrs = info.attrs;\n if (info.createLinkHook) {\n createLinkRes = info.createLinkHook(info.url, attrs);\n if (createLinkRes instanceof HTMLLinkElement) {\n link = createLinkRes;\n shouldApplyAttrs = false;\n } else if (typeof createLinkRes === "object") {\n if ("link" in createLinkRes && createLinkRes.link) {\n link = createLinkRes.link;\n shouldApplyAttrs = false;\n }\n if ("timeout" in createLinkRes && createLinkRes.timeout) timeout = createLinkRes.timeout;\n }\n }\n if (attrs && shouldApplyAttrs) Object.keys(attrs).forEach((name) => {\n if (link && !link.getAttribute(name)) link.setAttribute(name, attrs[name]);\n });\n }\n if (!needAttach) {\n Promise.resolve().then(() => {\n (info == null ? void 0 : info.cb) && (info == null ? void 0 : info.cb());\n });\n return {\n link,\n needAttach\n };\n }\n const onLinkComplete = (prev, event) => {\n if (timeoutId) clearTimeout(timeoutId);\n const onLinkCompleteCallback = () => {\n if ((event == null ? void 0 : event.type) === "error") {\n const linkError = /* @__PURE__ */ new Error((event == null ? void 0 : event.isTimeout) ? `LinkNetworkError: Link "${info.url}" timed out.` : `LinkNetworkError: Failed to load link "${info.url}" - the URL is unreachable or the server returned an error.`);\n linkError.name = "LinkNetworkError";\n (info == null ? void 0 : info.onErrorCallback) && (info == null ? void 0 : info.onErrorCallback(linkError));\n } else (info == null ? void 0 : info.cb) && (info == null ? void 0 : info.cb());\n };\n if (link) {\n link.onerror = null;\n link.onload = null;\n safeWrapper(() => {\n const { needDeleteLink = true } = info;\n if (needDeleteLink) (link == null ? void 0 : link.parentNode) && link.parentNode.removeChild(link);\n });\n if (prev) {\n const res = prev(event);\n onLinkCompleteCallback();\n return res;\n }\n }\n onLinkCompleteCallback();\n };\n link.onerror = onLinkComplete.bind(null, link.onerror);\n link.onload = onLinkComplete.bind(null, link.onload);\n timeoutId = setTimeout(() => {\n onLinkComplete(null, {\n type: "error",\n isTimeout: true\n });\n }, timeout);\n return {\n link,\n needAttach\n };\n}\nfunction loadScript(url, info) {\n const { attrs = {}, createScriptHook } = info;\n return new Promise((resolve, reject) => {\n const { script, needAttach } = createScript({\n url,\n cb: resolve,\n onErrorCallback: reject,\n attrs: {\n fetchpriority: "high",\n ...attrs\n },\n createScriptHook,\n needDeleteScript: true\n });\n needAttach && document.head.appendChild(script);\n });\n}\nconst sdkImportCache = /* @__PURE__ */ new Map();\nfunction importNodeModule(name) {\n if (!name) throw new Error("import specifier is required");\n if (sdkImportCache.has(name)) return sdkImportCache.get(name);\n const promise = new Function("name", `return import(name)`)(name).then((res) => res).catch((error2) => {\n console.error(`Error importing module ${name}:`, error2);\n sdkImportCache.delete(name);\n throw error2;\n });\n sdkImportCache.set(name, promise);\n return promise;\n}\nconst lazyLoaderHookFetch = async (input, init, loaderHook) => {\n const hook = (url, init2) => {\n return loaderHook.lifecycle.fetch.emit(url, init2);\n };\n const res = await hook(input, init || {});\n if (!res || !(res instanceof Response)) return fetch(input, init || {});\n return res;\n};\nconst createScriptNode = typeof ENV_TARGET === "undefined" || ENV_TARGET !== "web" ? (url, cb, attrs, loaderHook) => {\n if (loaderHook == null ? void 0 : loaderHook.createScriptHook) {\n const hookResult = loaderHook.createScriptHook(url);\n if (hookResult && typeof hookResult === "object" && "url" in hookResult) url = hookResult.url;\n }\n let urlObj;\n try {\n urlObj = new URL(url);\n } catch (e) {\n console.error("Error constructing URL:", e);\n cb(/* @__PURE__ */ new Error(`Invalid URL: ${e}`));\n return;\n }\n const getFetch = async () => {\n if (loaderHook == null ? void 0 : loaderHook.fetch) return (input, init) => lazyLoaderHookFetch(input, init, loaderHook);\n return fetch;\n };\n const handleScriptFetch = async (f, urlObj2) => {\n var _a;\n try {\n const res = await f(urlObj2.href);\n const data = await res.text();\n const [path, vm] = await Promise.all([importNodeModule("path"), importNodeModule("vm")]);\n const scriptContext = {\n exports: {},\n module: { exports: {} }\n };\n const urlDirname = urlObj2.pathname.split("/").slice(0, -1).join("/");\n const filename = path.basename(urlObj2.pathname);\n const script = new vm.Script(`(function(exports, module, require, __dirname, __filename) {${data}\n})`, {\n filename,\n importModuleDynamically: ((_a = vm.constants) == null ? void 0 : _a.USE_MAIN_CONTEXT_DEFAULT_LOADER) ?? importNodeModule\n });\n let requireFn;\n requireFn = (await importNodeModule("node:module")).createRequire(urlObj2.protocol === "file:" || urlObj2.protocol === "node:" ? urlObj2.href : path.join(process.cwd(), "__mf_require_base__.js"));\n script.runInThisContext()(scriptContext.exports, scriptContext.module, requireFn, urlDirname, filename);\n const exportedInterface = scriptContext.module.exports || scriptContext.exports;\n if (attrs && exportedInterface && attrs["globalName"]) {\n cb(void 0, exportedInterface[attrs["globalName"]] || exportedInterface);\n return;\n }\n cb(void 0, exportedInterface);\n } catch (e) {\n cb(e instanceof Error ? e : /* @__PURE__ */ new Error(`Script execution error: ${e}`));\n }\n };\n getFetch().then(async (f) => {\n if ((attrs == null ? void 0 : attrs["type"]) === "esm" || (attrs == null ? void 0 : attrs["type"]) === "module") return loadModule(urlObj.href, {\n fetch: f,\n vm: await importNodeModule("vm")\n }).then(async (module) => {\n await module.evaluate();\n cb(void 0, module.namespace);\n }).catch((e) => {\n cb(e instanceof Error ? e : /* @__PURE__ */ new Error(`Script execution error: ${e}`));\n });\n handleScriptFetch(f, urlObj);\n }).catch((err) => {\n cb(err);\n });\n} : (url, cb, attrs, loaderHook) => {\n cb(/* @__PURE__ */ new Error("createScriptNode is disabled in non-Node.js environment"));\n};\nconst loadScriptNode = typeof ENV_TARGET === "undefined" || ENV_TARGET !== "web" ? (url, info) => {\n return new Promise((resolve, reject) => {\n createScriptNode(url, (error2, scriptContext) => {\n var _a, _b;\n if (error2) reject(error2);\n else {\n const remoteEntryKey = ((_a = info == null ? void 0 : info.attrs) == null ? void 0 : _a["globalName"]) || `__FEDERATION_${(_b = info == null ? void 0 : info.attrs) == null ? void 0 : _b["name"]}:custom__`;\n resolve(globalThis[remoteEntryKey] = scriptContext);\n }\n }, info.attrs, info.loaderHook);\n });\n} : (url, info) => {\n throw new Error("loadScriptNode is disabled in non-Node.js environment");\n};\nconst esmModuleCache = /* @__PURE__ */ new Map();\nconst isFetchableRemoteModuleUrl = (url) => url.startsWith("http:") || url.startsWith("https:");\nconst isBareModuleSpecifier = (specifier) => !specifier.startsWith("./") && !specifier.startsWith("../") && !specifier.startsWith("/") && !specifier.includes(":");\nfunction encodeRemoteModulePath(url) {\n const remoteUrl = new URL(url);\n const encodedProtocol = encodeURIComponent(remoteUrl.protocol.slice(0, -1));\n const encodedHost = encodeURIComponent(remoteUrl.host);\n const encodedPathname = remoteUrl.pathname.split("/").map((segment) => encodeURIComponent(segment)).join("/");\n const encodedSearchHash = encodeURIComponent(`${remoteUrl.search}${remoteUrl.hash}`);\n return `/${encodedProtocol}/${encodedHost}${encodedPathname}${encodedSearchHash ? `/${encodedSearchHash}` : ""}`;\n}\nfunction createImportMetaUrl(url, baseFileUrl) {\n const baseUrl = baseFileUrl.endsWith("/") ? baseFileUrl : `${baseFileUrl}/`;\n return new URL(`__module_federation_remote__${encodeRemoteModulePath(url)}`, baseUrl).href;\n}\nasync function isNodeBuiltinSpecifier(specifier) {\n if (specifier.startsWith("node:")) return true;\n if (!isBareModuleSpecifier(specifier)) return false;\n return (await importNodeModule("node:module")).builtinModules.includes(specifier);\n}\nfunction getSyntheticModuleExports(moduleExports) {\n const namespaceObject = moduleExports && (typeof moduleExports === "object" || typeof moduleExports === "function") ? moduleExports : { default: moduleExports };\n const effectiveExports = { ...namespaceObject };\n if (!Object.prototype.hasOwnProperty.call(effectiveExports, "default")) effectiveExports.default = namespaceObject;\n return effectiveExports;\n}\nasync function createSyntheticModuleFromExports(identifier, moduleExports, vm) {\n if (typeof vm.SyntheticModule !== "function") throw new Error("vm.SyntheticModule is required to load Node.js built-in modules in ESM remote entries.");\n const effectiveExports = getSyntheticModuleExports(moduleExports);\n const exportNames = Object.keys(effectiveExports);\n const syntheticModule = new vm.SyntheticModule(exportNames, function setSyntheticModuleExports() {\n for (const name of exportNames) this.setExport(name, effectiveExports[name]);\n }, { identifier });\n esmModuleCache.set(identifier, syntheticModule);\n await syntheticModule.link(async () => {\n throw new Error(`Node.js built-in module "${identifier}" should not request child modules.`);\n });\n await syntheticModule.evaluate();\n return syntheticModule;\n}\nasync function loadNodeBuiltinModule(specifier, vm) {\n const cacheKey = `node-builtin:${specifier}`;\n if (esmModuleCache.has(cacheKey)) return esmModuleCache.get(cacheKey);\n return createSyntheticModuleFromExports(cacheKey, await importNodeModule(specifier), vm);\n}\nasync function loadResolvedModule(specifier, parentUrl, options) {\n if (await isNodeBuiltinSpecifier(specifier)) return loadNodeBuiltinModule(specifier, options.vm);\n if (isBareModuleSpecifier(specifier)) throw new Error(`Unsupported ESM module specifier "${specifier}". Only relative or absolute http(s) remote modules and Node.js built-in modules are supported.`);\n const resolvedUrl = new URL(specifier, parentUrl).href;\n if (!isFetchableRemoteModuleUrl(resolvedUrl)) throw new Error(`Unsupported ESM module specifier "${specifier}" resolved to "${resolvedUrl}". Only http(s) remote modules and Node.js built-in modules are supported.`);\n return loadModule(resolvedUrl, options);\n}\nasync function evaluateDynamicModule(module) {\n if (module.status === "linked") await module.evaluate();\n if (module.status === "errored") throw module.error;\n return module;\n}\nasync function loadModule(url, options) {\n if (esmModuleCache.has(url)) return esmModuleCache.get(url);\n const { fetch: fetch2, vm } = options;\n if (!isFetchableRemoteModuleUrl(url)) throw new Error(`Unsupported ESM module URL "${url}". Only http(s) remote modules and Node.js built-in modules are supported.`);\n const code = await (await fetch2(url)).text();\n const cwdFileUrl = (await importNodeModule("node:url")).pathToFileURL(process.cwd()).href;\n const sourceTextModule = new vm.SourceTextModule(code, {\n identifier: url,\n initializeImportMeta: (meta) => {\n meta.url = createImportMetaUrl(url, cwdFileUrl);\n },\n importModuleDynamically: async (specifier) => {\n return evaluateDynamicModule(await loadResolvedModule(specifier, url, options));\n }\n });\n esmModuleCache.set(url, sourceTextModule);\n await sourceTextModule.link(async (specifier) => {\n return loadResolvedModule(specifier, url, options);\n });\n return sourceTextModule;\n}\nconst dataFetchFunction = async function(options) {\n var _a, _b;\n const [id, data, downgrade] = options;\n logger.debug("==========call data fetch function!");\n if (data) {\n if (!id) {\n throw new Error("id is required!");\n }\n if (!getDataFetchMap()) {\n initDataFetchMap();\n }\n const dataFetchItem = getDataFetchItem(id);\n if (dataFetchItem) {\n (_b = (_a = dataFetchItem[1]) == null ? void 0 : _a[1]) == null ? void 0 : _b.call(_a, data);\n dataFetchItem[2] = MF_DATA_FETCH_STATUS.LOADED;\n return;\n }\n if (!dataFetchItem) {\n const dataFetchMap = getDataFetchMap();\n let res;\n let rej;\n const p = new Promise((resolve, reject) => {\n res = resolve;\n rej = reject;\n });\n dataFetchMap[id] = [\n [\n async () => async () => {\n return "";\n },\n MF_DATA_FETCH_TYPE.FETCH_SERVER\n ],\n [p, res, rej],\n MF_DATA_FETCH_STATUS.LOADED\n ];\n res && res(data);\n return;\n }\n }\n if (downgrade) {\n const mfDowngrade2 = getDowngradeTag();\n if (!mfDowngrade2) {\n globalThis[DOWNGRADE_KEY] = id ? [id] : true;\n } else if (Array.isArray(mfDowngrade2) && id && !mfDowngrade2.includes(id)) {\n mfDowngrade2.push(id);\n }\n }\n const mfDowngrade = getDowngradeTag();\n if (typeof mfDowngrade === "boolean") {\n return callAllDowngrade();\n }\n if (Array.isArray(mfDowngrade)) {\n if (!id) {\n globalThis[DOWNGRADE_KEY] = true;\n return callAllDowngrade();\n }\n if (!mfDowngrade.includes(id)) {\n mfDowngrade.push(id);\n }\n return callDowngrade(id);\n }\n};\nfunction injectDataFetch() {\n var _a;\n globalThis[_a = DATA_FETCH_FUNCTION] || (globalThis[_a] = []);\n const dataFetch = globalThis[DATA_FETCH_FUNCTION];\n if (dataFetch.push === dataFetchFunction) {\n return;\n }\n if (typeof window === "undefined") {\n return;\n }\n globalThis[FS_HREF] = window.location.href;\n dataFetch.push = dataFetchFunction;\n}\nconst getDocsUrl = (errorCode) => {\n return `View the docs to see how to solve: https://module-federation.io/guide/troubleshooting/${errorCode.split("-")[0].toLowerCase()}#${errorCode.toLowerCase()}`;\n};\nconst getShortErrorMsg = (errorCode, errorDescMap, args, originalErrorMsg) => {\n const msg = [`${[errorDescMap[errorCode]]} #${errorCode}`];\n args && msg.push(`args: ${JSON.stringify(args)}`);\n msg.push(getDocsUrl(errorCode));\n originalErrorMsg && msg.push(`Original Error Message:\n ${originalErrorMsg}`);\n return msg.join("\\n");\n};\nfunction logAndReport(code, descMap, args, logger2, originalErrorMsg, context) {\n return logger2(getShortErrorMsg(code, descMap, args, originalErrorMsg));\n}\nconst LOG_CATEGORY = "[ Federation Runtime ]";\nfunction assert(condition, msgOrCode, descMap, args, context) {\n if (!condition) error(msgOrCode);\n}\nfunction error(msgOrCode, descMap, args, originalErrorMsg, context) {\n if (descMap !== void 0) return logAndReport(msgOrCode, descMap, args ?? {}, (msg2) => {\n throw new Error(`${LOG_CATEGORY}: ${msg2}`);\n }, originalErrorMsg);\n const msg = msgOrCode;\n if (msg instanceof Error) {\n if (!msg.message.startsWith(LOG_CATEGORY)) msg.message = `${LOG_CATEGORY}: ${msg.message}`;\n throw msg;\n }\n throw new Error(`${LOG_CATEGORY}: ${msg}`);\n}\nconst processModuleAlias = (name, subPath) => {\n let moduleName;\n if (name.endsWith("/")) moduleName = name.slice(0, -1);\n else moduleName = name;\n if (subPath.startsWith(".")) subPath = subPath.slice(1);\n moduleName = moduleName + subPath;\n return moduleName;\n};\nconst MAX_PRELOADED_ASSETS = 2e3;\nconst CurrentGlobal = typeof globalThis === "object" ? globalThis : window;\nconst nativeGlobal = (() => {\n try {\n return document.defaultView;\n } catch {\n return CurrentGlobal;\n }\n})();\nfunction definePropertyGlobalVal(target, key, val) {\n Object.defineProperty(target, key, {\n value: val,\n configurable: false,\n writable: true\n });\n}\nfunction includeOwnProperty(target, key) {\n return Object.hasOwnProperty.call(target, key);\n}\nif (!includeOwnProperty(CurrentGlobal, "__GLOBAL_LOADING_REMOTE_ENTRY__")) definePropertyGlobalVal(CurrentGlobal, "__GLOBAL_LOADING_REMOTE_ENTRY__", {});\nconst globalLoading = CurrentGlobal.__GLOBAL_LOADING_REMOTE_ENTRY__;\nfunction setGlobalDefaultVal(target) {\n var _a, _b, _c, _d, _e, _f, _g;\n if (includeOwnProperty(target, "__VMOK__") && !includeOwnProperty(target, "__FEDERATION__")) definePropertyGlobalVal(target, "__FEDERATION__", target.__VMOK__);\n if (!includeOwnProperty(target, "__FEDERATION__")) {\n definePropertyGlobalVal(target, "__FEDERATION__", {\n __GLOBAL_PLUGIN__: [],\n __INSTANCES__: [],\n moduleInfo: {},\n __SHARE__: {},\n __MANIFEST_LOADING__: {},\n __PRELOADED_MAP__: /* @__PURE__ */ new Map(),\n __PRELOADED_ASSETS__: /* @__PURE__ */ new Set()\n });\n definePropertyGlobalVal(target, "__VMOK__", target.__FEDERATION__);\n }\n (_a = target.__FEDERATION__).__GLOBAL_PLUGIN__ ?? (_a.__GLOBAL_PLUGIN__ = []);\n (_b = target.__FEDERATION__).__INSTANCES__ ?? (_b.__INSTANCES__ = []);\n (_c = target.__FEDERATION__).moduleInfo ?? (_c.moduleInfo = {});\n (_d = target.__FEDERATION__).__SHARE__ ?? (_d.__SHARE__ = {});\n (_e = target.__FEDERATION__).__MANIFEST_LOADING__ ?? (_e.__MANIFEST_LOADING__ = {});\n (_f = target.__FEDERATION__).__PRELOADED_MAP__ ?? (_f.__PRELOADED_MAP__ = /* @__PURE__ */ new Map());\n (_g = target.__FEDERATION__).__PRELOADED_ASSETS__ ?? (_g.__PRELOADED_ASSETS__ = /* @__PURE__ */ new Set());\n}\nsetGlobalDefaultVal(CurrentGlobal);\nsetGlobalDefaultVal(nativeGlobal);\nconst getRemoteEntryExports = (name, globalName) => {\n const remoteEntryKey = globalName || `__FEDERATION_${name}:custom__`;\n return {\n remoteEntryKey,\n entryExports: CurrentGlobal[remoteEntryKey]\n };\n};\nconst getPreloadedAsset = (url) => CurrentGlobal.__FEDERATION__.__PRELOADED_ASSETS__.has(url);\nconst setPreloadedAsset = (url) => {\n const preloadedAssets = CurrentGlobal.__FEDERATION__.__PRELOADED_ASSETS__;\n preloadedAssets.add(url);\n if (preloadedAssets.size > MAX_PRELOADED_ASSETS) {\n const oldestUrl = preloadedAssets.values().next().value;\n if (oldestUrl !== void 0) preloadedAssets.delete(oldestUrl);\n }\n};\nconst DEFAULT_SCOPE = "default";\nconst DEFAULT_REMOTE_TYPE = "global";\nfunction composeRemoteRequestId(remoteName, expose) {\n if (!expose || expose === ".") return remoteName;\n return `${remoteName}/${expose.replace(/^\\.\\//, "")}`;\n}\nfunction matchRemoteWithNameAndExpose(remotes, id) {\n for (const remote of remotes) {\n const isNameMatched = id.startsWith(remote.name);\n let expose = id.replace(remote.name, "");\n if (isNameMatched) {\n if (expose.startsWith("/")) {\n const pkgNameOrAlias = remote.name;\n expose = `.${expose}`;\n return {\n pkgNameOrAlias,\n expose,\n remote\n };\n } else if (expose === "") return {\n pkgNameOrAlias: remote.name,\n expose: ".",\n remote\n };\n }\n const isAliasMatched = remote.alias && id.startsWith(remote.alias);\n let exposeWithAlias = remote.alias && id.replace(remote.alias, "");\n if (remote.alias && isAliasMatched) {\n if (exposeWithAlias && exposeWithAlias.startsWith("/")) {\n const pkgNameOrAlias = remote.alias;\n exposeWithAlias = `.${exposeWithAlias}`;\n return {\n pkgNameOrAlias,\n expose: exposeWithAlias,\n remote\n };\n } else if (exposeWithAlias === "") return {\n pkgNameOrAlias: remote.alias,\n expose: ".",\n remote\n };\n }\n }\n}\nconst RUNTIME_001 = "RUNTIME-001";\nconst RUNTIME_002 = "RUNTIME-002";\nconst RUNTIME_003 = "RUNTIME-003";\nconst RUNTIME_004 = "RUNTIME-004";\nconst RUNTIME_005 = "RUNTIME-005";\nconst RUNTIME_006 = "RUNTIME-006";\nconst RUNTIME_007 = "RUNTIME-007";\nconst RUNTIME_008 = "RUNTIME-008";\nconst RUNTIME_009 = "RUNTIME-009";\nconst RUNTIME_010 = "RUNTIME-010";\nconst RUNTIME_011 = "RUNTIME-011";\nconst RUNTIME_012 = "RUNTIME-012";\nconst RUNTIME_013 = "RUNTIME-013";\nconst RUNTIME_014 = "RUNTIME-014";\nconst RUNTIME_015 = "RUNTIME-015";\nconst runtimeDescMap = {\n [RUNTIME_001]: "Failed to get remoteEntry exports.",\n [RUNTIME_002]: \'The remote entry interface does not contain "init"\',\n [RUNTIME_003]: "Failed to get manifest.",\n [RUNTIME_004]: "Failed to locate remote.",\n [RUNTIME_005]: "Invalid loadShareSync function call from bundler runtime",\n [RUNTIME_006]: "Invalid loadShareSync function call from runtime",\n [RUNTIME_007]: "Failed to get remote snapshot.",\n [RUNTIME_008]: "Failed to load script resources.",\n [RUNTIME_009]: "Please call createInstance first.",\n [RUNTIME_010]: \'The name option cannot be changed after initialization. If you want to create a new instance with a different name, please use "createInstance" api.\',\n [RUNTIME_011]: "The remoteEntry URL is missing from the remote snapshot.",\n [RUNTIME_012]: \'The getter for the shared module is not a function. This may be caused by setting "shared.import: false" without the host providing the corresponding lib.\',\n [RUNTIME_013]: "The manifest is not a valid Module Federation manifest.",\n [RUNTIME_014]: "The remote does not expose the requested module.",\n [RUNTIME_015]: "Remote container initialization failed."\n};\n({\n ...runtimeDescMap\n});\nconst importCallback = ".then(callbacks[0]).catch(callbacks[1])";\nconst remoteEntryLoadingOrigins = /* @__PURE__ */ new WeakMap();\nconst esmRemoteEntryLoadErrorMessages = [\n "Failed to fetch dynamically imported module",\n "Importing a module script failed",\n "error loading dynamically imported module"\n];\nfunction isEsmRemoteEntryLoadError(err) {\n if (!(err instanceof TypeError)) return false;\n return esmRemoteEntryLoadErrorMessages.some((loadErrorMessage) => err.message.includes(loadErrorMessage));\n}\nfunction isEsmRemoteType(type) {\n return type === "esm" || type === "module";\n}\nasync function loadEsmEntry({ entry, remoteEntryExports, name, getEntryUrl }) {\n return new Promise((resolve, reject) => {\n const rejectEntry = (loadError) => {\n if (isEsmRemoteEntryLoadError(loadError)) {\n const originalMsg = loadError instanceof Error ? loadError.message : String(loadError);\n try {\n error(RUNTIME_008, runtimeDescMap, {\n remoteName: name,\n resourceUrl: url\n }, originalMsg);\n } catch (runtimeError) {\n reject(runtimeError);\n return;\n }\n }\n reject(loadError);\n };\n const url = getEntryUrl ? getEntryUrl(entry) : entry;\n try {\n if (!remoteEntryExports) if (typeof FEDERATION_ALLOW_NEW_FUNCTION !== "undefined") new Function("callbacks", `import("${url}")${importCallback}`)([resolve, rejectEntry]);\n else import(\n /* webpackIgnore: true */\n /* @vite-ignore */\n url\n ).then(resolve).catch(rejectEntry);\n else resolve(remoteEntryExports);\n } catch (e) {\n error(`Failed to load ESM entry from "${url}". ${e instanceof Error ? e.message : String(e)}`);\n }\n });\n}\nasync function loadSystemJsEntry({ entry, remoteEntryExports }) {\n return new Promise((resolve, reject) => {\n try {\n if (!remoteEntryExports) if (typeof __system_context__ === "undefined") System.import(entry).then(resolve).catch(reject);\n else new Function("callbacks", `System.import("${entry}")${importCallback}`)([resolve, reject]);\n else resolve(remoteEntryExports);\n } catch (e) {\n error(`Failed to load SystemJS entry from "${entry}". ${e instanceof Error ? e.message : String(e)}`);\n }\n });\n}\nfunction handleRemoteEntryLoaded(name, globalName, entry) {\n const { remoteEntryKey, entryExports } = getRemoteEntryExports(name, globalName);\n if (!entryExports) error(RUNTIME_001, runtimeDescMap, {\n remoteName: name,\n remoteEntryUrl: entry,\n remoteEntryKey\n });\n return entryExports;\n}\nasync function loadEntryScript({ name, globalName, entry, remoteInfo, loaderHook, getEntryUrl, resourceContext }) {\n const { entryExports: remoteEntryExports } = getRemoteEntryExports(name, globalName);\n if (remoteEntryExports) return remoteEntryExports;\n const url = getEntryUrl ? getEntryUrl(entry) : entry;\n return loadScript(url, {\n attrs: {},\n createScriptHook: (url2, attrs) => {\n const res = loaderHook.lifecycle.createScript.emit({\n url: url2,\n attrs,\n remoteInfo,\n resourceContext: resourceContext ? {\n ...resourceContext,\n url: url2\n } : void 0\n });\n if (!res) return;\n if (res instanceof HTMLScriptElement) return res;\n if ("script" in res || "timeout" in res) return res;\n }\n }).then(() => {\n return handleRemoteEntryLoaded(name, globalName, entry);\n }, (loadError) => {\n const originalMsg = loadError instanceof Error ? loadError.message : String(loadError);\n error(RUNTIME_008, runtimeDescMap, {\n remoteName: name,\n resourceUrl: url\n }, originalMsg);\n });\n}\nasync function loadEntryDom({ remoteInfo, remoteEntryExports, loaderHook, getEntryUrl, resourceContext }) {\n const { entry, entryGlobalName: globalName, name, type } = remoteInfo;\n if (isEsmRemoteType(type)) return loadEsmEntry({\n entry,\n remoteEntryExports,\n name,\n getEntryUrl\n });\n if (type === "system") return loadSystemJsEntry({\n entry,\n remoteEntryExports\n });\n return loadEntryScript({\n entry,\n globalName,\n name,\n remoteInfo,\n loaderHook,\n getEntryUrl,\n resourceContext\n });\n}\nasync function loadEntryNode({ remoteInfo, loaderHook, resourceContext }) {\n const { entry, entryGlobalName: globalName, name, type } = remoteInfo;\n const { entryExports: remoteEntryExports } = getRemoteEntryExports(name, globalName);\n if (remoteEntryExports) return remoteEntryExports;\n return loadScriptNode(entry, {\n attrs: {\n name,\n globalName,\n type\n },\n loaderHook: { createScriptHook: (url, attrs = {}) => {\n const res = loaderHook.lifecycle.createScript.emit({\n url,\n attrs,\n remoteInfo,\n resourceContext: resourceContext ? {\n ...resourceContext,\n url\n } : void 0\n });\n if (!res) return;\n if ("url" in res) return res;\n } }\n }).then(() => {\n return handleRemoteEntryLoaded(name, globalName, entry);\n }).catch((e) => {\n error(`Failed to load Node.js entry for remote "${name}" from "${entry}". ${e instanceof Error ? e.message : String(e)}`);\n });\n}\nfunction getRemoteEntryUniqueKey(remoteInfo) {\n const { entry, name } = remoteInfo;\n return composeKeyWithSeparator(name, entry);\n}\nasync function getRemoteEntry(params) {\n const { origin, remoteEntryExports, remoteInfo, getEntryUrl, resourceContext, _inErrorHandling = false } = params;\n const uniqueKey = getRemoteEntryUniqueKey(remoteInfo);\n if (remoteEntryExports) {\n await origin.loaderHook.lifecycle.afterLoadEntry.emit({\n origin,\n remoteInfo,\n remoteEntryExports,\n resourceContext,\n cached: true\n });\n return remoteEntryExports;\n }\n if (!globalLoading[uniqueKey]) {\n const loadEntryHook = origin.remoteHandler.hooks.lifecycle.loadEntry;\n const loaderHook = origin.loaderHook;\n globalLoading[uniqueKey] = loadEntryHook.emit({\n origin,\n loaderHook,\n remoteInfo,\n remoteEntryExports,\n resourceContext\n }).then((res) => {\n if (res) return res;\n return (typeof ENV_TARGET !== "undefined" ? ENV_TARGET === "web" : isBrowserEnvValue) ? loadEntryDom({\n remoteInfo,\n remoteEntryExports,\n loaderHook,\n getEntryUrl,\n resourceContext\n }) : loadEntryNode({\n remoteInfo,\n loaderHook,\n resourceContext\n });\n }).then(async (res) => {\n await origin.loaderHook.lifecycle.afterLoadEntry.emit({\n origin,\n remoteInfo,\n remoteEntryExports: res,\n resourceContext\n });\n return res;\n }).catch(async (loadError) => {\n const isScriptExecutionError = loadError instanceof Error && loadError.message.includes("ScriptExecutionError");\n if (loadError instanceof Error && loadError.message.includes(RUNTIME_008) && !isScriptExecutionError && !_inErrorHandling) {\n const wrappedGetRemoteEntry = (params2) => {\n return getRemoteEntry({\n ...params2,\n _inErrorHandling: true\n });\n };\n const recoveredRemoteEntryExports = await origin.loaderHook.lifecycle.loadEntryError.emit({\n getRemoteEntry: wrappedGetRemoteEntry,\n origin,\n remoteInfo,\n remoteEntryExports,\n globalLoading,\n uniqueKey\n });\n if (recoveredRemoteEntryExports) {\n await origin.loaderHook.lifecycle.afterLoadEntry.emit({\n origin,\n remoteInfo,\n remoteEntryExports: recoveredRemoteEntryExports,\n resourceContext,\n error: loadError,\n recovered: true\n });\n return recoveredRemoteEntryExports;\n }\n }\n await origin.loaderHook.lifecycle.afterLoadEntry.emit({\n origin,\n remoteInfo,\n resourceContext,\n error: loadError\n });\n throw loadError;\n });\n remoteEntryLoadingOrigins.set(globalLoading[uniqueKey], origin);\n }\n const remoteEntryLoading = globalLoading[uniqueKey];\n if (remoteEntryLoadingOrigins.get(remoteEntryLoading) !== origin) try {\n const result = await remoteEntryLoading;\n await origin.loaderHook.lifecycle.afterLoadEntry.emit({\n origin,\n remoteInfo,\n remoteEntryExports: result,\n resourceContext\n });\n return result;\n } catch (loadError) {\n await origin.loaderHook.lifecycle.afterLoadEntry.emit({\n origin,\n remoteInfo,\n resourceContext,\n error: loadError\n });\n throw loadError;\n }\n return remoteEntryLoading;\n}\nfunction getRemoteInfo(remote) {\n return {\n ...remote,\n entry: "entry" in remote ? remote.entry : "",\n type: remote.type || DEFAULT_REMOTE_TYPE,\n entryGlobalName: remote.entryGlobalName || remote.name,\n shareScope: remote.shareScope || DEFAULT_SCOPE\n };\n}\nfunction remoteToEntry(r) {\n return {\n name: r.name,\n alias: r.alias,\n entry: "entry" in r ? r.entry : void 0,\n version: "version" in r ? r.version : void 0,\n type: r.type,\n entryGlobalName: r.entryGlobalName,\n shareScope: r.shareScope\n };\n}\nfunction optionsToMFContext(options) {\n var _a, _b, _c, _d, _e, _f;\n const shared = {};\n for (const [pkgName, versions] of Object.entries(options.shared)) {\n const first = versions[0];\n if (first) shared[pkgName] = {\n version: first.version,\n singleton: (_a = first.shareConfig) == null ? void 0 : _a.singleton,\n requiredVersion: ((_b = first.shareConfig) == null ? void 0 : _b.requiredVersion) === false ? false : (_c = first.shareConfig) == null ? void 0 : _c.requiredVersion,\n eager: first.eager,\n strictVersion: (_d = first.shareConfig) == null ? void 0 : _d.strictVersion\n };\n }\n return {\n project: {\n name: options.name,\n mfRole: ((_e = options.remotes) == null ? void 0 : _e.length) > 0 ? "host" : "unknown"\n },\n mfConfig: {\n name: options.name,\n remotes: ((_f = options.remotes) == null ? void 0 : _f.map(remoteToEntry)) ?? [],\n shared\n }\n };\n}\nfunction isTimeoutError(error2) {\n if (!(error2 instanceof Error)) return false;\n return error2.message.includes("timed out") || error2.name.includes("Timeout");\n}\nfunction createAssetResult(context, url, status, error2) {\n return {\n url,\n status,\n resourceType: context.resourceType,\n initiator: context.initiator,\n id: context.id,\n error: error2\n };\n}\nfunction preloadAssetOnce(context, url, recordPreloadedAssets, preload) {\n if (!recordPreloadedAssets) return preload();\n if (getPreloadedAsset(url)) return Promise.resolve(createAssetResult(context, url, "cached"));\n setPreloadedAsset(url);\n return preload();\n}\nasync function waitForRemoteEntryPreload(host, remoteInfo, entryRemoteInfo, context) {\n const cachedRemote = host.moduleCache.get(entryRemoteInfo.name);\n const url = entryRemoteInfo.entry;\n if (cachedRemote == null ? void 0 : cachedRemote.remoteEntryExports) return createAssetResult(context, url, "cached");\n try {\n if (!await getRemoteEntry({\n origin: host,\n remoteInfo: entryRemoteInfo,\n remoteEntryExports: cachedRemote == null ? void 0 : cachedRemote.remoteEntryExports,\n resourceContext: {\n ...context,\n url\n }\n })) throw new Error(`Failed to load remoteEntry "${url}".`);\n return createAssetResult(context, url, "success");\n } catch (error2) {\n return createAssetResult(context, url, isTimeoutError(error2) ? "timeout" : "error", error2);\n }\n}\nfunction waitForLinkPreload({ host, remoteInfo, url, attrs, context, needDeleteLink }) {\n return new Promise((resolve) => {\n const { link, needAttach } = createLink({\n url,\n cb: () => {\n resolve(createAssetResult(context, url, needAttach ? "success" : "cached"));\n },\n onErrorCallback: (error2) => {\n resolve(createAssetResult(context, url, isTimeoutError(error2) ? "timeout" : "error", error2));\n },\n attrs,\n createLinkHook: (hookUrl, hookAttrs) => {\n const res = host.loaderHook.lifecycle.createLink.emit({\n url: hookUrl,\n attrs: hookAttrs,\n remoteInfo,\n resourceContext: {\n ...context,\n url: hookUrl\n }\n });\n if (res instanceof HTMLLinkElement) return res;\n return res;\n },\n needDeleteLink\n });\n needAttach && document.head.appendChild(link);\n });\n}\nfunction waitForScriptPreload({ host, remoteInfo, url, attrs, context }) {\n return new Promise((resolve) => {\n const { script, needAttach } = createScript({\n url,\n cb: () => {\n resolve(createAssetResult(context, url, needAttach ? "success" : "cached"));\n },\n onErrorCallback: (error2) => {\n resolve(createAssetResult(context, url, isTimeoutError(error2) ? "timeout" : "error", error2));\n },\n attrs,\n createScriptHook: (hookUrl, hookAttrs) => {\n const res = host.loaderHook.lifecycle.createScript.emit({\n url: hookUrl,\n attrs: hookAttrs,\n remoteInfo,\n resourceContext: {\n ...context,\n url: hookUrl\n }\n });\n if (res instanceof HTMLScriptElement) return res;\n return res;\n },\n needDeleteScript: true\n });\n needAttach && document.head.appendChild(script);\n });\n}\nfunction createResourceContext(baseContext, resourceType) {\n return {\n ...baseContext,\n resourceType\n };\n}\nfunction preloadAssets(remoteInfo, host, assets, useLinkPreload = true, baseContext = {\n initiator: "preloadRemote",\n id: remoteInfo.name\n}, recordPreloadedAssets = true) {\n const { cssAssets, jsAssetsWithoutEntry, entryAssets } = assets;\n const results = [];\n if (host.options.inBrowser) {\n entryAssets.forEach((asset) => {\n const { moduleInfo: entryRemoteInfo } = asset;\n results.push(waitForRemoteEntryPreload(host, remoteInfo, entryRemoteInfo, createResourceContext(baseContext, "remoteEntry")));\n });\n if (useLinkPreload) {\n const defaultAttrs2 = {\n rel: "preload",\n as: "style"\n };\n cssAssets.forEach((cssUrl) => {\n const context = createResourceContext(baseContext, "css");\n results.push(preloadAssetOnce(context, cssUrl, recordPreloadedAssets, () => waitForLinkPreload({\n host,\n remoteInfo,\n url: cssUrl,\n attrs: defaultAttrs2,\n context\n })));\n });\n } else {\n const defaultAttrs2 = {\n rel: "stylesheet",\n type: "text/css"\n };\n cssAssets.forEach((cssUrl) => {\n const context = createResourceContext(baseContext, "css");\n results.push(preloadAssetOnce(context, cssUrl, recordPreloadedAssets, () => waitForLinkPreload({\n host,\n remoteInfo,\n url: cssUrl,\n attrs: defaultAttrs2,\n needDeleteLink: false,\n context\n })));\n });\n }\n let preloadJsAsset = waitForScriptPreload;\n let defaultAttrs = {\n fetchpriority: "high",\n type: "text/javascript"\n };\n if (useLinkPreload) {\n preloadJsAsset = waitForLinkPreload;\n defaultAttrs = {\n rel: "preload",\n as: "script"\n };\n } else if (isEsmRemoteType(remoteInfo.type)) {\n preloadJsAsset = waitForLinkPreload;\n defaultAttrs = {\n rel: "modulepreload",\n fetchpriority: "high"\n };\n }\n jsAssetsWithoutEntry.forEach((jsUrl) => {\n const context = createResourceContext(baseContext, "js");\n results.push(preloadAssetOnce(context, jsUrl, recordPreloadedAssets, () => preloadJsAsset({\n host,\n remoteInfo,\n url: jsUrl,\n attrs: defaultAttrs,\n context\n })));\n });\n }\n return Promise.all(results);\n}\nvar helpers_default = {\n utils: {\n matchRemoteWithNameAndExpose,\n preloadAssets,\n getRemoteInfo\n }\n};\nfunction getAvailableExposeNames(remoteSnapshot) {\n if (!remoteSnapshot || !("modules" in remoteSnapshot) || !Array.isArray(remoteSnapshot.modules)) return;\n const exposes = remoteSnapshot.modules.map((module) => module.moduleName).filter(Boolean);\n return exposes.length ? exposes.join(",") : void 0;\n}\nfunction createRemoteEntryInitOptions(remoteInfo, hostShareScopeMap, rawInitScope) {\n const localShareScopeMap = hostShareScopeMap;\n const shareScopeKeys = Array.isArray(remoteInfo.shareScope) ? remoteInfo.shareScope : [remoteInfo.shareScope];\n if (!shareScopeKeys.length) shareScopeKeys.push("default");\n shareScopeKeys.forEach((shareScopeKey) => {\n if (!localShareScopeMap[shareScopeKey]) localShareScopeMap[shareScopeKey] = {};\n });\n const remoteEntryInitOptions = {\n version: remoteInfo.version || "",\n shareScopeKeys: Array.isArray(remoteInfo.shareScope) ? shareScopeKeys : remoteInfo.shareScope || "default"\n };\n Object.defineProperty(remoteEntryInitOptions, "shareScopeMap", {\n value: localShareScopeMap,\n enumerable: false\n });\n return {\n remoteEntryInitOptions,\n shareScope: localShareScopeMap[shareScopeKeys[0]],\n initScope: rawInitScope ?? []\n };\n}\nvar Module$1 = class {\n constructor({ remoteInfo, host }) {\n this.inited = false;\n this.initing = false;\n this.lib = void 0;\n this.remoteInfo = remoteInfo;\n this.host = host;\n }\n async getEntry(expose, resourceContext) {\n const effectiveResourceContext = resourceContext || {\n initiator: "loadRemote",\n id: composeRemoteRequestId(this.remoteInfo.name, expose),\n resourceType: "remoteEntry",\n url: this.remoteInfo.entry,\n expose\n };\n const remoteEntryExports = await getRemoteEntry({\n origin: this.host,\n remoteInfo: this.remoteInfo,\n remoteEntryExports: this.remoteEntryExports,\n resourceContext: effectiveResourceContext\n });\n assert(remoteEntryExports, `remoteEntryExports is undefined \n ${safeToString(this.remoteInfo)}`);\n this.remoteEntryExports = remoteEntryExports;\n return this.remoteEntryExports;\n }\n async init(id, remoteSnapshot, rawInitScope, expose, resourceContext) {\n const remoteEntryExports = await this.getEntry(expose, resourceContext);\n if (this.inited) {\n await this.host.loaderHook.lifecycle.afterInitRemote.emit({\n id,\n remoteInfo: this.remoteInfo,\n remoteSnapshot,\n remoteEntryExports,\n cached: true,\n origin: this.host\n });\n return remoteEntryExports;\n }\n if (this.initPromise) {\n try {\n await this.initPromise;\n await this.host.loaderHook.lifecycle.afterInitRemote.emit({\n id,\n remoteInfo: this.remoteInfo,\n remoteSnapshot,\n remoteEntryExports,\n cached: true,\n origin: this.host\n });\n } catch (initError) {\n await this.host.loaderHook.lifecycle.afterInitRemote.emit({\n id,\n remoteInfo: this.remoteInfo,\n remoteSnapshot,\n remoteEntryExports,\n error: initError,\n cached: true,\n origin: this.host\n });\n throw initError;\n }\n return remoteEntryExports;\n }\n this.initing = true;\n this.initPromise = (async () => {\n await this.host.loaderHook.lifecycle.beforeInitRemote.emit({\n id,\n remoteInfo: this.remoteInfo,\n remoteSnapshot,\n origin: this.host\n });\n const { remoteEntryInitOptions, shareScope, initScope } = createRemoteEntryInitOptions(this.remoteInfo, this.host.shareScopeMap, rawInitScope);\n const initContainerOptions = await this.host.hooks.lifecycle.beforeInitContainer.emit({\n shareScope,\n remoteEntryInitOptions,\n initScope,\n remoteInfo: this.remoteInfo,\n origin: this.host\n });\n if (typeof (remoteEntryExports == null ? void 0 : remoteEntryExports.init) === "undefined") error(RUNTIME_002, runtimeDescMap, {\n hostName: this.host.name,\n remoteName: this.remoteInfo.name,\n remoteEntryUrl: this.remoteInfo.entry,\n remoteEntryKey: this.remoteInfo.entryGlobalName\n }, void 0, optionsToMFContext(this.host.options));\n try {\n await remoteEntryExports.init(initContainerOptions.shareScope, initContainerOptions.initScope, initContainerOptions.remoteEntryInitOptions);\n } catch (initError) {\n error(RUNTIME_015, runtimeDescMap, {\n hostName: this.host.name,\n remoteName: this.remoteInfo.name,\n remoteEntryUrl: this.remoteInfo.entry,\n remoteEntryKey: this.remoteInfo.entryGlobalName,\n shareScope: this.remoteInfo.shareScope\n }, `${initError}`, optionsToMFContext(this.host.options));\n }\n await this.host.hooks.lifecycle.initContainer.emit({\n ...initContainerOptions,\n id,\n remoteSnapshot,\n remoteEntryExports\n });\n this.inited = true;\n })();\n try {\n await this.initPromise;\n await this.host.loaderHook.lifecycle.afterInitRemote.emit({\n id,\n remoteInfo: this.remoteInfo,\n remoteSnapshot,\n remoteEntryExports,\n origin: this.host\n });\n } catch (initError) {\n await this.host.loaderHook.lifecycle.afterInitRemote.emit({\n id,\n remoteInfo: this.remoteInfo,\n remoteSnapshot,\n remoteEntryExports,\n error: initError,\n origin: this.host\n });\n throw initError;\n } finally {\n this.initing = false;\n this.initPromise = void 0;\n }\n return remoteEntryExports;\n }\n async get(id, expose, options, remoteSnapshot) {\n const { loadFactory = true } = options || { loadFactory: true };\n const remoteEntryExports = await this.init(id, remoteSnapshot, void 0, expose);\n this.lib = remoteEntryExports;\n await this.host.loaderHook.lifecycle.beforeGetExpose.emit({\n id,\n expose,\n moduleInfo: this.remoteInfo,\n remoteEntryExports,\n origin: this.host\n });\n let moduleFactory;\n try {\n const hookModuleFactory = await this.host.loaderHook.lifecycle.getModuleFactory.emit({\n remoteEntryExports,\n expose,\n moduleInfo: this.remoteInfo\n });\n moduleFactory = typeof hookModuleFactory === "function" ? hookModuleFactory : void 0;\n if (!moduleFactory) moduleFactory = await remoteEntryExports.get(expose);\n if (!moduleFactory) error(RUNTIME_014, runtimeDescMap, {\n hostName: this.host.name,\n remoteName: this.remoteInfo.name,\n remoteEntryUrl: this.remoteInfo.entry,\n expose,\n requestId: id,\n availableExposes: getAvailableExposeNames(remoteSnapshot)\n }, void 0, optionsToMFContext(this.host.options));\n await this.host.loaderHook.lifecycle.afterGetExpose.emit({\n id,\n expose,\n moduleInfo: this.remoteInfo,\n remoteEntryExports,\n moduleFactory,\n origin: this.host\n });\n } catch (getExposeError) {\n await this.host.loaderHook.lifecycle.afterGetExpose.emit({\n id,\n expose,\n moduleInfo: this.remoteInfo,\n remoteEntryExports,\n error: getExposeError,\n origin: this.host\n });\n throw getExposeError;\n }\n const symbolName = processModuleAlias(this.remoteInfo.name, expose);\n const wrapModuleFactory = this.wraperFactory(moduleFactory, symbolName);\n if (!loadFactory) return wrapModuleFactory;\n await this.host.loaderHook.lifecycle.beforeExecuteFactory.emit({\n id,\n expose,\n moduleInfo: this.remoteInfo,\n loadFactory,\n origin: this.host\n });\n try {\n const exposeContent = await wrapModuleFactory();\n await this.host.loaderHook.lifecycle.afterExecuteFactory.emit({\n id,\n expose,\n moduleInfo: this.remoteInfo,\n loadFactory,\n exposeModule: exposeContent,\n origin: this.host\n });\n return exposeContent;\n } catch (executeFactoryError) {\n await this.host.loaderHook.lifecycle.afterExecuteFactory.emit({\n id,\n expose,\n moduleInfo: this.remoteInfo,\n loadFactory,\n error: executeFactoryError,\n origin: this.host\n });\n throw executeFactoryError;\n }\n }\n wraperFactory(moduleFactory, id) {\n function defineModuleId(res, id2) {\n if (res && typeof res === "object" && Object.isExtensible(res) && !Object.getOwnPropertyDescriptor(res, Symbol.for("mf_module_id"))) Object.defineProperty(res, Symbol.for("mf_module_id"), {\n value: id2,\n enumerable: false\n });\n }\n return () => {\n const res = moduleFactory();\n if (res instanceof Promise) return res.then((asyncRes) => {\n defineModuleId(asyncRes, id);\n return asyncRes;\n });\n defineModuleId(res, id);\n return res;\n };\n }\n};\nconst REMOTE_DISABLED_MESSAGE = "Remote loading is disabled by experiments.optimization.disableRemote.";\nvar UnavailableRemoteModule = class {\n constructor() {\n throw new Error(REMOTE_DISABLED_MESSAGE);\n }\n};\ntypeof FEDERATION_OPTIMIZE_NO_SNAPSHOT_PLUGIN === "boolean" ? !FEDERATION_OPTIMIZE_NO_SNAPSHOT_PLUGIN : true;\ntypeof FEDERATION_OPTIMIZE_NO_REMOTE === "boolean" ? !FEDERATION_OPTIMIZE_NO_REMOTE : true;\ntypeof FEDERATION_OPTIMIZE_NO_SHARED === "boolean" ? !FEDERATION_OPTIMIZE_NO_SHARED : true;\nconst helpers = helpers_default;\ntypeof FEDERATION_OPTIMIZE_NO_REMOTE === "boolean" && FEDERATION_OPTIMIZE_NO_REMOTE ? UnavailableRemoteModule : Module$1;\nconst utils = helpers.utils;\nconst runtimeHelpers = {\n utils\n};\nasync function prefetch(options) {\n const { instance, id, dataFetchParams, preloadComponentResource } = options;\n if (!id) {\n logger.error("id is required for prefetch!");\n return;\n }\n if (!instance) {\n logger.error("instance is required for prefetch!");\n return;\n }\n const matchedRemoteInfo = runtimeHelpers.utils.matchRemoteWithNameAndExpose(\n instance.options.remotes,\n id\n );\n if (!matchedRemoteInfo) {\n logger.error(`Can not found \'${id}\' in instance.options.remotes!`);\n return;\n }\n const { remote, expose } = matchedRemoteInfo;\n const { remoteSnapshot, globalSnapshot } = await instance.snapshotHandler.loadRemoteSnapshotInfo({\n moduleInfo: remote,\n id\n });\n if (preloadComponentResource) {\n const remoteInfo = runtimeHelpers.utils.getRemoteInfo(remote);\n Promise.resolve(\n instance.remoteHandler.hooks.lifecycle.generatePreloadAssets.emit({\n origin: instance,\n preloadOptions: {\n remote,\n preloadConfig: {\n nameOrAlias: remote.name,\n exposes: [expose]\n }\n },\n remote,\n remoteInfo,\n globalSnapshot,\n remoteSnapshot\n })\n ).then((assets) => {\n if (assets) {\n runtimeHelpers.utils.preloadAssets(remoteInfo, instance, assets);\n }\n });\n }\n const dataFetchMap = getDataFetchMap();\n if (!dataFetchMap) {\n return;\n }\n const dataFetchInfo = getDataFetchInfo({\n name: remote.name,\n alias: remote.alias,\n id,\n remoteSnapshot\n });\n const dataFetchMapKey = getDataFetchMapKey(dataFetchInfo, {\n name: instance.name,\n version: instance.options.version\n });\n if (!dataFetchMapKey) {\n return;\n }\n const dataFetchItem = dataFetchMap[dataFetchMapKey];\n if (!dataFetchItem) {\n return;\n }\n const [getDataFetchGetter, _type, getDataFetchPromise] = dataFetchItem[0];\n let _getDataFetchPromise = getDataFetchPromise;\n if (!getDataFetchPromise) {\n if (!getDataFetchGetter) {\n return;\n }\n _getDataFetchPromise = getDataFetchGetter();\n }\n _getDataFetchPromise.then((dataFetchFn) => {\n return dataFetchFn({\n ...dataFetchParams,\n _id: dataFetchMapKey,\n isDowngrade: false\n });\n });\n}\nexport {\n dataFetchFunction as d,\n injectDataFetch as i,\n prefetch as p\n};\n',"size-limited-cache.es.js":'var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);\nclass SizeLimitedCache {\n constructor(options) {\n __publicField(this, "maxSize");\n __publicField(this, "entries", /* @__PURE__ */ new Map());\n __publicField(this, "sizeCalculation");\n __publicField(this, "currentSize", 0);\n if (!Number.isInteger(options.maxSize) || options.maxSize <= 0) {\n throw new TypeError("maxSize must be a positive integer");\n }\n this.maxSize = options.maxSize;\n this.sizeCalculation = options.sizeCalculation;\n }\n get size() {\n return this.entries.size;\n }\n get calculatedSize() {\n return this.currentSize;\n }\n get(key) {\n const entry = this.entries.get(key);\n if (!entry) {\n return void 0;\n }\n this.refresh(key, entry);\n return entry.value;\n }\n has(key) {\n const entry = this.entries.get(key);\n if (!entry) {\n return false;\n }\n this.refresh(key, entry);\n return true;\n }\n set(key, value, options = {}) {\n var _a;\n const entrySize = options.size ?? ((_a = this.sizeCalculation) == null ? void 0 : _a.call(this, value, key)) ?? 1;\n if (!Number.isInteger(entrySize) || entrySize <= 0) {\n throw new TypeError("entry size must be a positive integer");\n }\n this.delete(key);\n if (entrySize > this.maxSize) {\n return this;\n }\n this.entries.set(key, { value, size: entrySize });\n this.currentSize += entrySize;\n this.evictUntilWithinLimit();\n return this;\n }\n delete(key) {\n const entry = this.entries.get(key);\n if (!entry) {\n return false;\n }\n this.currentSize -= entry.size;\n return this.entries.delete(key);\n }\n clear() {\n this.entries.clear();\n this.currentSize = 0;\n }\n refresh(key, entry) {\n this.entries.delete(key);\n this.entries.set(key, entry);\n }\n evictUntilWithinLimit() {\n while (this.currentSize > this.maxSize) {\n const oldest = this.entries.keys().next();\n if (oldest.done) {\n this.currentSize = 0;\n return;\n }\n this.delete(oldest.value);\n }\n }\n}\nexport {\n SizeLimitedCache\n};\n',"utils-BBP3hEeV.mjs":'import { S as SEPARATOR, c as createLogger, i as isBrowserEnvValue } from "./logger-DwWkXsWl.mjs";\nimport { SizeLimitedCache } from "./size-limited-cache.es.js";\nconst LOG_CATEGORY = "[ Federation Runtime ]";\nconst composeKeyWithSeparator = function(...args) {\n if (!args.length) return "";\n return args.reduce((sum, cur) => {\n if (!cur) return sum;\n if (!sum) return cur;\n return `${sum}${SEPARATOR}${cur}`;\n }, "");\n};\nconst warn = (msg) => {\n console.warn(`${LOG_CATEGORY}: ${msg}`);\n};\nfunction safeToString(info) {\n try {\n return JSON.stringify(info, null, 2);\n } catch (e) {\n return "";\n }\n}\nconst PLUGIN_IDENTIFIER = "[ Module Federation React ]";\nconst DOWNGRADE_KEY = "_mfSSRDowngrade";\nconst DATA_FETCH_FUNCTION = "_mfDataFetch";\nconst FS_HREF = "_mfFSHref";\nconst ERROR_TYPE = {\n DATA_FETCH: 1,\n LOAD_REMOTE: 2,\n UNKNOWN: 3\n};\nconst WRAP_DATA_FETCH_ID_IDENTIFIER = "wrap_dfip_identifier";\nvar MF_DATA_FETCH_TYPE = /* @__PURE__ */ ((MF_DATA_FETCH_TYPE2) => {\n MF_DATA_FETCH_TYPE2[MF_DATA_FETCH_TYPE2["FETCH_SERVER"] = 1] = "FETCH_SERVER";\n MF_DATA_FETCH_TYPE2[MF_DATA_FETCH_TYPE2["FETCH_CLIENT"] = 2] = "FETCH_CLIENT";\n return MF_DATA_FETCH_TYPE2;\n})(MF_DATA_FETCH_TYPE || {});\nvar MF_DATA_FETCH_STATUS = /* @__PURE__ */ ((MF_DATA_FETCH_STATUS2) => {\n MF_DATA_FETCH_STATUS2[MF_DATA_FETCH_STATUS2["LOADED"] = 1] = "LOADED";\n MF_DATA_FETCH_STATUS2[MF_DATA_FETCH_STATUS2["LOADING"] = 2] = "LOADING";\n MF_DATA_FETCH_STATUS2[MF_DATA_FETCH_STATUS2["AWAIT"] = 0] = "AWAIT";\n MF_DATA_FETCH_STATUS2[MF_DATA_FETCH_STATUS2["ERROR"] = 3] = "ERROR";\n return MF_DATA_FETCH_STATUS2;\n})(MF_DATA_FETCH_STATUS || {});\nconst DATA_FETCH_IDENTIFIER = "data";\nconst DATA_FETCH_CLIENT_SUFFIX = ".client";\nconst DATA_FETCH_QUERY = "x-mf-data-fetch";\nconst DATA_FETCH_ERROR_PREFIX = "caught the following error during dataFetch: ";\nconst LOAD_REMOTE_ERROR_PREFIX = "caught the following error during loadRemote: ";\nconst logger = createLogger(PLUGIN_IDENTIFIER);\nconst CacheSize = {\n KB: 1024,\n MB: 1024 * 1024,\n GB: 1024 * 1024 * 1024\n};\nconst CacheTime = {\n SECOND: 1e3,\n MINUTE: 60 * 1e3,\n HOUR: 60 * 60 * 1e3,\n DAY: 24 * 60 * 60 * 1e3,\n WEEK: 7 * 24 * 60 * 60 * 1e3,\n MONTH: 30 * 24 * 60 * 60 * 1e3\n};\nfunction getTagKeyMap() {\n const dataFetchCache = getDataFetchCache();\n if (!dataFetchCache || !dataFetchCache.tagKeyMap) {\n const tagKeyMap = /* @__PURE__ */ new Map();\n globalThis.__MF_DATA_FETCH_CACHE__ || (globalThis.__MF_DATA_FETCH_CACHE__ = {});\n globalThis.__MF_DATA_FETCH_CACHE__.tagKeyMap = tagKeyMap;\n return tagKeyMap;\n }\n return dataFetchCache.tagKeyMap;\n}\nfunction addTagKeyRelation(tag, key) {\n const tagKeyMap = getTagKeyMap();\n let keys = tagKeyMap.get(tag);\n if (!keys) {\n keys = /* @__PURE__ */ new Set();\n tagKeyMap.set(tag, keys);\n }\n keys.add(key);\n}\nfunction getCacheConfig() {\n const dataFetchCache = getDataFetchCache();\n if (!dataFetchCache || !dataFetchCache.cacheConfig) {\n const cacheConfig = {\n maxSize: CacheSize.GB\n };\n globalThis.__MF_DATA_FETCH_CACHE__ || (globalThis.__MF_DATA_FETCH_CACHE__ = {});\n globalThis.__MF_DATA_FETCH_CACHE__.cacheConfig = cacheConfig;\n return cacheConfig;\n }\n return dataFetchCache.cacheConfig;\n}\nfunction configureCache(config) {\n const cacheConfig = getCacheConfig();\n Object.assign(cacheConfig, config);\n}\nfunction getSizeLimitedCache() {\n const dataFetchCache = getDataFetchCache();\n const cacheConfig = getCacheConfig();\n if (!dataFetchCache || !dataFetchCache.cacheStore) {\n const cacheStore = new SizeLimitedCache({\n maxSize: cacheConfig.maxSize ?? CacheSize.GB,\n sizeCalculation: (value) => {\n if (!value.size) {\n return 1;\n }\n let size = 0;\n for (const [k, item] of value.entries()) {\n size += k.length * 2;\n size += estimateObjectSize(item.data);\n size += 8;\n }\n return size;\n }\n });\n globalThis.__MF_DATA_FETCH_CACHE__ || (globalThis.__MF_DATA_FETCH_CACHE__ = {});\n globalThis.__MF_DATA_FETCH_CACHE__.cacheStore = cacheStore;\n return cacheStore;\n }\n return dataFetchCache.cacheStore;\n}\nfunction estimateObjectSize(data) {\n const type = typeof data;\n if (type === "number") return 8;\n if (type === "boolean") return 4;\n if (type === "string") return Math.max(data.length * 2, 1);\n if (data === null || data === void 0) return 1;\n if (ArrayBuffer.isView(data)) {\n return Math.max(data.byteLength, 1);\n }\n if (Array.isArray(data)) {\n return Math.max(\n data.reduce((acc, item) => acc + estimateObjectSize(item), 0),\n 1\n );\n }\n if (data instanceof Map || data instanceof Set) {\n return 1024;\n }\n if (data instanceof Date) {\n return 8;\n }\n if (type === "object") {\n return Math.max(\n Object.entries(data).reduce(\n (acc, [key, value]) => acc + key.length * 2 + estimateObjectSize(value),\n 0\n ),\n 1\n );\n }\n return 1;\n}\nfunction generateKey(dataFetchOptions) {\n return JSON.stringify(dataFetchOptions, (_, value) => {\n if (value && typeof value === "object" && !Array.isArray(value)) {\n return Object.keys(value).sort().reduce((result, key) => {\n result[key] = value[key];\n return result;\n }, {});\n }\n return value;\n });\n}\nfunction cache(fn, options) {\n const {\n tag = "default",\n maxAge = CacheTime.MINUTE * 5,\n revalidate = 0,\n onCache,\n getKey\n } = options || {};\n const tags = Array.isArray(tag) ? tag : [tag];\n return async (dataFetchOptions) => {\n if (dataFetchOptions.isDowngrade || !dataFetchOptions._id) {\n return fn(dataFetchOptions);\n }\n const store = getSizeLimitedCache();\n const now = Date.now();\n const storeKey = dataFetchOptions._id;\n const cacheKey = getKey ? getKey(dataFetchOptions) : generateKey(dataFetchOptions);\n tags.forEach((t) => addTagKeyRelation(t, cacheKey));\n let cacheStore = store.get(cacheKey);\n if (!cacheStore) {\n cacheStore = /* @__PURE__ */ new Map();\n }\n const cached = cacheStore.get(storeKey);\n if (cached) {\n const age = now - cached.timestamp;\n if (age < maxAge) {\n if (onCache) {\n const useCache = onCache({\n status: "hit",\n key: cacheKey,\n params: dataFetchOptions,\n result: cached.data\n });\n if (!useCache) {\n return fn(dataFetchOptions);\n }\n }\n return cached.data;\n }\n if (revalidate > 0 && age < maxAge + revalidate) {\n if (onCache) {\n onCache({\n status: "stale",\n key: cacheKey,\n params: dataFetchOptions,\n result: cached.data\n });\n }\n if (!cached.isRevalidating) {\n cached.isRevalidating = true;\n Promise.resolve().then(async () => {\n try {\n const newData = await fn(dataFetchOptions);\n cacheStore.set(storeKey, {\n data: newData,\n timestamp: Date.now(),\n isRevalidating: false\n });\n store.set(cacheKey, cacheStore);\n } catch (error) {\n cached.isRevalidating = false;\n console.error("Background revalidation failed:", error);\n }\n });\n }\n return cached.data;\n }\n }\n const data = await fn(dataFetchOptions);\n cacheStore.set(storeKey, {\n data,\n timestamp: now,\n isRevalidating: false\n });\n store.set(cacheKey, cacheStore);\n if (onCache) {\n onCache({\n status: "miss",\n key: cacheKey,\n params: dataFetchOptions,\n result: data\n });\n }\n return data;\n };\n}\nfunction revalidateTag(tag) {\n const tagKeyMap = getTagKeyMap();\n const keys = tagKeyMap.get(tag);\n const cacheStore = getSizeLimitedCache();\n if (keys) {\n keys.forEach((key) => {\n cacheStore == null ? void 0 : cacheStore.delete(key);\n });\n }\n}\nfunction clearStore() {\n var _a;\n const cacheStore = getSizeLimitedCache();\n const tagKeyMap = getTagKeyMap();\n cacheStore == null ? void 0 : cacheStore.clear();\n (_a = globalThis.__MF_DATA_FETCH_CACHE__) == null ? true : delete _a.cacheStore;\n tagKeyMap.clear();\n}\nconst getDataFetchInfo = ({\n name,\n alias,\n id,\n remoteSnapshot\n}) => {\n if (!remoteSnapshot) {\n return;\n }\n if (!("modules" in remoteSnapshot)) {\n return;\n }\n const regex = new RegExp(`^${name}(/[^/].*|)$`);\n const nameOrAlias = regex.test(id) ? name : alias || name;\n const expose = id.replace(nameOrAlias, "");\n let dataFetchName = "";\n let dataFetchId = "";\n let dataFetchKey = "";\n if (expose.startsWith("/")) {\n dataFetchName = `${expose.slice(1)}.${DATA_FETCH_IDENTIFIER}`;\n dataFetchId = `${id}.${DATA_FETCH_IDENTIFIER}`;\n dataFetchKey = `${name}${expose}.${DATA_FETCH_IDENTIFIER}`;\n } else if (expose === "") {\n dataFetchName = DATA_FETCH_IDENTIFIER;\n dataFetchId = `${id}/${DATA_FETCH_IDENTIFIER}`;\n dataFetchKey = `${name}/${DATA_FETCH_IDENTIFIER}`;\n } else {\n return;\n }\n if (!dataFetchName || !dataFetchId || !dataFetchKey) {\n return;\n }\n if (!remoteSnapshot.modules.find(\n (module) => module.moduleName === dataFetchName\n )) {\n return;\n }\n return {\n dataFetchName,\n dataFetchId,\n dataFetchKey\n };\n};\nfunction initDataFetchMap() {\n globalThis.__MF_DATA_FETCH_MAP__ || (globalThis.__MF_DATA_FETCH_MAP__ = {});\n}\nfunction getDataFetchItem(id) {\n var _a;\n return (_a = globalThis.__MF_DATA_FETCH_MAP__) == null ? void 0 : _a[id];\n}\nfunction getDataFetchMap() {\n return globalThis.__MF_DATA_FETCH_MAP__;\n}\nfunction getDataFetchCache() {\n return globalThis.__MF_DATA_FETCH_CACHE__;\n}\nconst flushDataFetch = () => {\n globalThis.__MF_DATA_FETCH_MAP__ = {};\n globalThis[DOWNGRADE_KEY] = void 0;\n clearStore();\n};\nfunction setDataFetchItemLoadedStatus(id) {\n const dataFetchItem = getDataFetchItem(id);\n if (!dataFetchItem) {\n return;\n }\n dataFetchItem[2] = MF_DATA_FETCH_STATUS.LOADED;\n}\nconst wrapDataFetchId = (id) => {\n return `${WRAP_DATA_FETCH_ID_IDENTIFIER}${id}${WRAP_DATA_FETCH_ID_IDENTIFIER}`;\n};\nconst getDataFetchIdWithErrorMsgs = (errMsgs) => {\n const firstIdentifierIndex = errMsgs.indexOf(WRAP_DATA_FETCH_ID_IDENTIFIER);\n if (firstIdentifierIndex === -1) {\n return void 0;\n }\n const secondIdentifierIndex = errMsgs.indexOf(\n WRAP_DATA_FETCH_ID_IDENTIFIER,\n firstIdentifierIndex + WRAP_DATA_FETCH_ID_IDENTIFIER.length\n );\n if (secondIdentifierIndex === -1) {\n return void 0;\n }\n return errMsgs.substring(\n firstIdentifierIndex + WRAP_DATA_FETCH_ID_IDENTIFIER.length,\n secondIdentifierIndex\n );\n};\nasync function fetchData(id, params, remoteInfo) {\n var _a;\n const callFetchData = async () => {\n const item = getDataFetchItem(id);\n if (!item) {\n return;\n }\n const [fetchDataFnArr, ..._rest] = item;\n const fetchDataFn = await fetchDataFnArr[2];\n if (!fetchDataFn) {\n return;\n }\n return fetchDataFn({\n ...params,\n _id: id\n });\n };\n if (isBrowserEnvValue) {\n const dataFetchItem = getDataFetchItem(id);\n if (!dataFetchItem) {\n throw new Error(`dataFetchItem not found, id: ${id}`);\n }\n if ((_a = dataFetchItem[1]) == null ? void 0 : _a[0]) {\n return dataFetchItem[1][0];\n }\n if (isCSROnly()) {\n logger.debug("==========csr only!");\n return callFetchData();\n }\n if (remoteInfo) {\n return callDowngrade(id, params, remoteInfo);\n }\n const mfDowngrade = getDowngradeTag();\n if (mfDowngrade && (typeof mfDowngrade === "boolean" || mfDowngrade.includes(id))) {\n return callDowngrade(id, { ...params, isDowngrade: true });\n }\n let res;\n let rej;\n const p = new Promise((resolve, reject) => {\n res = resolve;\n rej = reject;\n });\n dataFetchItem[1] = [p, res, rej];\n dataFetchItem[2] = MF_DATA_FETCH_STATUS.AWAIT;\n return dataFetchItem[1][0];\n }\n return callFetchData();\n}\nfunction getDataFetchMapKey(dataFetchInfo, hostInfo) {\n if (!dataFetchInfo || !hostInfo) {\n return;\n }\n const { dataFetchKey } = dataFetchInfo;\n return composeKeyWithSeparator(dataFetchKey, hostInfo.name, hostInfo.version);\n}\nasync function loadDataFetchModule(instance, id) {\n return instance.loadRemote(id).then((m) => {\n if (m && typeof m === "object" && "fetchData" in m && typeof m.fetchData === "function") {\n return m.fetchData;\n }\n throw new Error(\n `fetchData not found in remote ${id}, ${JSON.stringify(m)}`\n );\n });\n}\nfunction isDataLoaderExpose(exposeKey) {\n return exposeKey.endsWith(DATA_FETCH_IDENTIFIER) || exposeKey.endsWith(DATA_FETCH_CLIENT_SUFFIX);\n}\nfunction getDowngradeTag() {\n return globalThis[DOWNGRADE_KEY];\n}\nfunction callAllDowngrade() {\n const dataFetchMap = getDataFetchMap();\n if (!dataFetchMap) {\n return;\n }\n Object.keys(dataFetchMap).forEach((key) => {\n callDowngrade(key);\n });\n}\nasync function callDowngrade(id, params, remoteInfo) {\n const dataFetchMap = getDataFetchMap();\n if (!dataFetchMap) {\n return;\n }\n const mfDataFetch = dataFetchMap[id];\n if ((mfDataFetch == null ? void 0 : mfDataFetch[2]) === MF_DATA_FETCH_STATUS.AWAIT) {\n mfDataFetch[2] = MF_DATA_FETCH_STATUS.LOADING;\n let promise;\n let res;\n let rej;\n if (mfDataFetch[1]) {\n promise = mfDataFetch[1][0];\n res = mfDataFetch[1][1];\n rej = mfDataFetch[1][2];\n } else {\n promise = new Promise((resolve, reject) => {\n res = resolve;\n rej = reject;\n });\n mfDataFetch[1] = [promise, res, rej];\n }\n const dataFetchType = mfDataFetch[0][1];\n if (dataFetchType === MF_DATA_FETCH_TYPE.FETCH_CLIENT) {\n try {\n mfDataFetch[0][0]().then(async (getDataFetchFn) => {\n return getDataFetchFn({\n ...params,\n isDowngrade: true,\n _id: id\n }).then((data) => {\n mfDataFetch[2] = MF_DATA_FETCH_STATUS.LOADED;\n res && res(data);\n });\n });\n } catch (e) {\n mfDataFetch[2] = MF_DATA_FETCH_STATUS.ERROR;\n rej && rej(e);\n }\n } else if (dataFetchType === MF_DATA_FETCH_TYPE.FETCH_SERVER) {\n try {\n const currentUrl = new URL(window.location.href);\n currentUrl.searchParams.set(DATA_FETCH_QUERY, encodeURIComponent(id));\n if (params) {\n currentUrl.searchParams.set(\n "params",\n encodeURIComponent(JSON.stringify(params))\n );\n }\n if (remoteInfo) {\n currentUrl.searchParams.set(\n "remoteInfo",\n encodeURIComponent(JSON.stringify(remoteInfo))\n );\n }\n const fetchServerQuery = globalThis.FEDERATION_SERVER_QUERY;\n if (fetchServerQuery && typeof fetchServerQuery === "object") {\n Object.keys(fetchServerQuery).forEach((key) => {\n currentUrl.searchParams.set(\n key,\n JSON.stringify(fetchServerQuery[key])\n );\n });\n }\n const fetchUrl = currentUrl.toString();\n const data = await fetch(fetchUrl).then((res2) => res2.json());\n mfDataFetch[2] = MF_DATA_FETCH_STATUS.LOADED;\n res && res(data);\n } catch (e) {\n mfDataFetch[2] = MF_DATA_FETCH_STATUS.ERROR;\n rej && rej(e);\n }\n }\n return promise;\n }\n}\nfunction isCSROnly() {\n return window._SSR_DATA === void 0;\n}\nfunction isServerEnv() {\n return typeof window === "undefined";\n}\nfunction setSSREnv({\n fetchServerQuery\n}) {\n globalThis.FEDERATION_SSR = true;\n globalThis.FEDERATION_SERVER_QUERY = fetchServerQuery;\n}\nfunction getLoadedRemoteInfos(id, instance) {\n if (!instance) {\n return;\n }\n const { name, expose } = instance.remoteHandler.idToRemoteMap[id] || {};\n if (!name) {\n return;\n }\n const module = instance.moduleCache.get(name);\n if (!module) {\n return;\n }\n const { remoteSnapshot } = instance.snapshotHandler.getGlobalRemoteInfo(\n module.remoteInfo\n );\n return {\n ...module.remoteInfo,\n snapshot: remoteSnapshot,\n expose\n };\n}\nexport {\n setDataFetchItemLoadedStatus as A,\n warn as B,\n CacheSize as C,\n DATA_FETCH_QUERY as D,\n ERROR_TYPE as E,\n FS_HREF as F,\n DOWNGRADE_KEY as G,\n callAllDowngrade as H,\n callDowngrade as I,\n getDowngradeTag as J,\n composeKeyWithSeparator as K,\n LOAD_REMOTE_ERROR_PREFIX as L,\n MF_DATA_FETCH_STATUS as M,\n safeToString as N,\n getDataFetchCache as O,\n CacheTime as a,\n clearStore as b,\n cache as c,\n configureCache as d,\n getDataFetchMap as e,\n flushDataFetch as f,\n generateKey as g,\n fetchData as h,\n initDataFetchMap as i,\n loadDataFetchModule as j,\n isDataLoaderExpose as k,\n logger as l,\n getDataFetchInfo as m,\n getDataFetchMapKey as n,\n getDataFetchItem as o,\n DATA_FETCH_CLIENT_SUFFIX as p,\n MF_DATA_FETCH_TYPE as q,\n revalidateTag as r,\n setSSREnv as s,\n isCSROnly as t,\n isServerEnv as u,\n getDataFetchIdWithErrorMsgs as v,\n DATA_FETCH_ERROR_PREFIX as w,\n wrapDataFetchId as x,\n DATA_FETCH_FUNCTION as y,\n getLoadedRemoteInfos as z\n};\n'};const ENTRY_FILE="entry.ts";const APP_FILE="app.tsx";const BRIDGE_ROOT="bridge";const BRIDGE_INDEX_FILE=`${BRIDGE_ROOT}/index.es.js`;const BRIDGE_ROUTER_STUB_FILE=`${BRIDGE_ROOT}/react-router-dom-stub.js`;const BRIDGE_ROUTER_STUB_SOURCE=`export function useLocation() {
|
|
382
382
|
throw new Error('react-router-dom is not available in playground bridge runtime.');
|
|
383
383
|
}
|
|
384
384
|
export const useRouteMatch = undefined;
|