iobroker.admin 7.7.1 → 7.7.2
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/README.md +3 -4
- package/adminWww/assets/{AdapterUpdateDialog-Bgswiqs9.js → AdapterUpdateDialog-DHGhgEEq.js} +1 -1
- package/adminWww/assets/{Adapters-yQiEeoh8.js → Adapters-CgSIajcF.js} +2 -2
- package/adminWww/assets/{Config-C1Gjt8DC.js → Config-BQSl4bfA.js} +1 -1
- package/adminWww/assets/{CustomModal-CgEtkfCG.js → CustomModal-DNMTLv4y.js} +1 -1
- package/adminWww/assets/{CustomTab-CwioFUor.js → CustomTab-Bl8S8QZW.js} +1 -1
- package/adminWww/assets/{DefaultPropsProvider-DxsXuIyE.js → DefaultPropsProvider-u5xB1Fxz.js} +1 -1
- package/adminWww/assets/{EasyMode-CN-reJVI.js → EasyMode-xDbqrply.js} +1 -1
- package/adminWww/assets/{Enums-8m252lzC.js → Enums-BSICIhWI.js} +1 -1
- package/adminWww/assets/{Fields-lI3YkIzQ.js → Fields-C3JkTmfP.js} +1 -1
- package/adminWww/assets/{Files-fQpSPYWI.js → Files-DK85-COY.js} +2 -2
- package/adminWww/assets/{FilledInput-CKswrNd5.js → FilledInput-CysG4ax_.js} +1 -1
- package/adminWww/assets/{Hosts-BPdUlXV5.js → Hosts-qIsB4Gub.js} +2 -2
- package/adminWww/assets/Instances-BA_DCzs8.js +2 -0
- package/adminWww/assets/{Intro-Dr1-aqO9.js → Intro-00oh6SLw.js} +1 -1
- package/adminWww/assets/{Logs-xCCrWV30.js → Logs-Cvpgh-zN.js} +1 -1
- package/adminWww/assets/Objects-Dp71iotS.js +60 -0
- package/adminWww/assets/{State-nZ6sjU9_.js → State-BqfD2ABf.js} +1 -1
- package/adminWww/assets/{Tabs-BJ1rL35Z.js → Tabs-sxfWgN0b.js} +2 -2
- package/adminWww/assets/{Users-B0iasrSG.js → Users-CDcWqTfZ.js} +1 -1
- package/adminWww/assets/ace-BG5WYul1.js +985 -0
- package/adminWww/assets/{blueGrey-D-KQaGde.js → blueGrey-DYsiMDOn.js} +1 -1
- package/adminWww/assets/{bootstrap-DDrI3lVl.js → bootstrap-BYQTdf9r.js} +91 -103
- package/adminWww/assets/{createSvgIcon-DuKI6CvW.js → createSvgIcon-Bh3KWtyp.js} +1 -1
- package/adminWww/assets/{emotion-react.browser.esm-DApPKwaj.js → emotion-react.browser.esm-BCDt9NrH.js} +1 -1
- package/adminWww/assets/{emotion-styled.browser.esm-Dc05hmeu.js → emotion-styled.browser.esm-CyFqGgyG.js} +1 -1
- package/adminWww/assets/{emotion-utils.browser.esm-DOjH6Olm.js → emotion-utils.browser.esm-pglN4_eI.js} +1 -1
- package/adminWww/assets/{geosearch.module-CWfRtxrN.js → geosearch.module-DH4NhiPj.js} +1 -1
- package/adminWww/assets/hostInit-fzxL8JAx.js +1 -1
- package/adminWww/assets/{iconBase-CgxZ5MMC.js → iconBase-C3vi24ZE.js} +1 -1
- package/adminWww/assets/{index-BmWdDCX_.js → index-B1ITPhEY.js} +2 -2
- package/adminWww/assets/{index-D7Rlw-5R.js → index-D--ojYan.js} +1 -1
- package/adminWww/assets/{index-BjVqnwqt.js → index-D3IAEXXP.js} +1 -1
- package/adminWww/assets/{index-HOidq_rM.js → index-DPDg2YA0.js} +1 -1
- package/adminWww/assets/{index-Bsv_DXxB.js → index-DTGUg51P.js} +1 -1
- package/adminWww/assets/{index-BP5kWU3L.js → index-Qa7Q_Dz5.js} +1 -1
- package/adminWww/assets/{index-RvHSqeMD.js → index-qcIeekse.js} +13 -13
- package/adminWww/assets/{index-gHyOgbGJ.js → index-rKfs-rCa.js} +1 -1
- package/adminWww/assets/{index-DH1kmwK1.js → index-wN1ZlPSW.js} +2 -2
- package/adminWww/assets/iobroker_admin__loadShare___mf_0_emotion_mf_1_react__loadShare__-BOKYvG_W.js +1 -0
- package/adminWww/assets/{iobroker_admin__loadShare__leaflet__loadShare__-B1OZ7tj-.js → iobroker_admin__loadShare__leaflet__loadShare__-h9SMNPLU.js} +1 -1
- package/adminWww/assets/iobroker_admin__loadShare__prop_mf_2_types__loadShare__-BnsS7SOQ.js +1 -0
- package/adminWww/assets/{iobroker_admin__loadShare__react__loadShare__-DtlEM_52.js → iobroker_admin__loadShare__react__loadShare__-Bis6NHgw.js} +1 -1
- package/adminWww/assets/iobroker_admin__mf_v__runtimeInit__mf_v__-CTkuGOOk.js +5 -0
- package/adminWww/assets/{sentry-CNy_SQq1.js → sentry-H_UdJ2zx.js} +1 -1
- package/adminWww/assets/{zh-cn-DZTx1vAh.js → zh-cn-vvAC9zpl.js} +3 -3
- package/adminWww/index.html +2 -2
- package/adminWww/mf-manifest.json +1 -1
- package/adminWww/remoteEntry.js +2 -2
- package/adminWww/static/js/worker-javascript.js +1 -1
- package/adminWww/static/js/worker-yaml.js +1 -1
- package/io-package.json +14 -14
- package/package.json +10 -9
- package/adminWww/assets/Instances-BStmfz4r.js +0 -2
- package/adminWww/assets/Objects-BF8brXaf.js +0 -60
- package/adminWww/assets/ace-CFIUQz8j.js +0 -970
- package/adminWww/assets/iobroker_admin__loadShare___mf_0_emotion_mf_1_react__loadShare__-gw2iqPBS.js +0 -1
- package/adminWww/assets/iobroker_admin__loadShare__prop_mf_2_types__loadShare__-BGyJCibC.js +0 -1
- package/adminWww/assets/iobroker_admin__mf_v__runtimeInit__mf_v__-VDoBF19b.js +0 -10
- package/build-backend/src/lib/checkLinuxPass.js +0 -280
- package/build-backend/src/lib/checkLinuxPass.js.map +0 -1
- package/build-backend/src/lib/testPassword.js +0 -58
- package/build-backend/src/lib/testPassword.js.map +0 -1
- package/build-backend/src/lib/translations.js +0 -27
- package/build-backend/src/lib/translations.js.map +0 -1
- package/build-backend/src/lib/utils.js +0 -344
- package/build-backend/src/lib/utils.js.map +0 -1
- package/build-backend/src/lib/web.js +0 -1165
- package/build-backend/src/lib/web.js.map +0 -1
- package/build-backend/src/main.js +0 -1704
- package/build-backend/src/main.js.map +0 -1
- package/build-backend/src-admin/src/components/Adapters/Utils.js +0 -39
- package/build-backend/src-admin/src/components/Adapters/Utils.js.map +0 -1
package/adminWww/assets/iobroker_admin__loadShare___mf_0_emotion_mf_1_react__loadShare__-gw2iqPBS.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e,i as o}from"./iobroker_admin__mf_v__runtimeInit__mf_v__-VDoBF19b.js";const{loadShare:r}=o,{initPromise:i}=e,t=i.then(_=>r("@emotion/react",{customShareInfo:{shareConfig:{singleton:!0,strictVersion:!1,requiredVersion:"*"}}})),a=await t.then(_=>_());var s=a;export{s as i};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{g as r}from"./_commonjsHelpers-D6-XlEtG.js";import{i as e,a as t}from"./iobroker_admin__mf_v__runtimeInit__mf_v__-VDoBF19b.js";const{loadShare:_}=e,{initPromise:s}=t,a=s.then(o=>_("prop-types",{customShareInfo:{shareConfig:{singleton:!0,strictVersion:!1,requiredVersion:"*"}}})),i=await a.then(o=>o());var n=i;const f=r(n);export{f as P,n as i};
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
var index_cjs$3={},index_cjs$2={},polyfills_cjs$1={};function _extends$2(){return _extends$2=Object.assign||function(i){for(var d=1;d<arguments.length;d++){var u=arguments[d];for(var p in u)Object.prototype.hasOwnProperty.call(u,p)&&(i[p]=u[p])}return i},_extends$2.apply(this,arguments)}function _object_without_properties_loose(o,i){if(o==null)return{};var d={},u=Object.keys(o),p,S;for(S=0;S<u.length;S++)p=u[S],!(i.indexOf(p)>=0)&&(d[p]=o[p]);return d}polyfills_cjs$1._extends=_extends$2;polyfills_cjs$1._object_without_properties_loose=_object_without_properties_loose;var index_cjs$1={},__defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(o,i)=>{for(var d in i)__defProp(o,d,{get:i[d],enumerable:!0})},__copyProps=(o,i,d,u)=>{if(i&&typeof i=="object"||typeof i=="function")for(let p of __getOwnPropNames(i))!__hasOwnProp.call(o,p)&&p!==d&&__defProp(o,p,{get:()=>i[p],enumerable:!(u=__getOwnPropDesc(i,p))||u.enumerable});return o},__toCommonJS=o=>__copyProps(__defProp({},"__esModule",{value:!0}),o),browser_exports={};__export(browser_exports,{createLogger:()=>createLogger2,logger:()=>logger$1});var browser=__toCommonJS(browser_exports),supportsSubstitutions=void 0,supportColor=()=>{if(typeof supportsSubstitutions<"u")return supportsSubstitutions;const o=console.log;try{const i="color test",d="color: red;";supportsSubstitutions=!1,console.log=(...u)=>{u[0]===`%c${i}`&&u[1]===d&&(supportsSubstitutions=!0)},console.log(`%c${i}`,d)}catch{supportsSubstitutions=!1}finally{console.log=o}return supportsSubstitutions},ansiToCss={bold:"font-weight: bold;",red:"color: red;",green:"color: green;",orange:"color: orange;",dodgerblue:"color: dodgerblue;",magenta:"color: magenta;",gray:"color: gray;"},formatter=o=>supportColor()?i=>{if(Array.isArray(i)){const[d,u]=i;return[`%c${d.replace("%c","")}`,u?`${ansiToCss[o]}${u}`:`${ansiToCss[o]||""}`]}return[`%c${String(i).replace("%c","")}`,ansiToCss[o]||""]}:i=>[String(i)],bold=formatter("bold"),red=formatter("red"),green=formatter("green"),orange=formatter("orange"),dodgerblue=formatter("dodgerblue"),magenta=formatter("magenta");formatter("gray");function getLabel(o,i,d){let u=[""];if("label"in i)if(u=[(o!=="log"?d[o]:void 0)||i.label||""],i.color){const S=i.color(u[0]);Array.isArray(S)&&S.length===2?u=bold([S[0],S[1]]):u=bold(S[0]||"")}else u=bold(u[0]);return u=u.filter(Boolean),u}function finalLog(o,i,d,u){o.length?Array.isArray(u)?console.log(...o,...u,...d):console.log(...o,i,...d):Array.isArray(u)?console.log(...u):console.log(i,...d)}var LOG_LEVEL={error:0,warn:1,info:2,log:3,verbose:4},errorStackRegExp=/at\s.*:\d+:\d+[\s\)]*$/,anonymousErrorStackRegExp=/at\s.*\(<anonymous>\)$/,isErrorStackMessage=o=>errorStackRegExp.test(o)||anonymousErrorStackRegExp.test(o);function validateOptions(o){const i={...o};if(o.labels&&typeof o.labels!="object")throw new Error("Labels must be an object");if(o.level&&typeof o.level!="string")throw new Error("Level must be a string");return i}var createLogger$1=(o={},{getLabel:i,handleError:d,finalLog:u,greet:p,LOG_TYPES:S})=>{const b=validateOptions(o);let m=b.level||"log",R=b.labels||{},T=(L,O,...G)=>{if(LOG_LEVEL[S[L].level]>LOG_LEVEL[m])return;if(O==null)return console.log();let Y=S[L],V="";const le=i(L,Y,R);if(O instanceof Error)if(O.stack){let[Z,...B]=O.stack.split(`
|
|
2
|
-
`);Z.startsWith("Error: ")&&(Z=Z.slice(7)),V=`${Z}
|
|
3
|
-
${d(B.join(`
|
|
4
|
-
`))}`}else V=O.message;else Y.level==="error"&&typeof O=="string"?V=O.split(`
|
|
5
|
-
`).map(B=>isErrorStackMessage(B)?d(B):B).join(`
|
|
6
|
-
`):V=`${O}`;u(le,V,G,O)},w={greet:L=>T("log",p(L))};return Object.keys(S).forEach(L=>{w[L]=(...O)=>T(L,...O)}),Object.defineProperty(w,"level",{get:()=>m,set(L){m=L}}),Object.defineProperty(w,"labels",{get:()=>R,set(L){R=L}}),w.override=L=>{Object.assign(w,L)},w},startColor=[189,255,243],endColor=[74,194,154],isWord=o=>!/[\s\n]/.test(o);function gradient(o){if(!supportColor())return[o];const i=[...o],d=i.filter(isWord),u=d.length-1;if(u===0)return console.log(`%c${o}`,`color: rgb(${startColor.join(",")}); font-weight: bold;`),[o];let p="",S=[];return i.forEach(b=>{if(isWord(b)){const m=d.indexOf(b)/u,R=Math.round(startColor[0]+(endColor[0]-startColor[0])*m),T=Math.round(startColor[1]+(endColor[1]-startColor[1])*m),w=Math.round(startColor[2]+(endColor[2]-startColor[2])*m);p+=`%c${b}`,S.push(`color: rgb(${R},${T},${w}); font-weight: bold;`)}else p+=b}),[p,...S]}var LOG_TYPES={error:{label:"error",level:"error",color:red},warn:{label:"warn",level:"warn",color:orange},info:{label:"info",level:"info",color:dodgerblue},start:{label:"start",level:"info",color:dodgerblue},ready:{label:"ready",level:"info",color:green},success:{label:"success",level:"info",color:green},log:{level:"log"},debug:{label:"debug",level:"verbose",color:magenta}};function createLogger2(o={}){return createLogger$1(o,{handleError:i=>i,getLabel,finalLog,LOG_TYPES,greet:i=>gradient(i)})}var logger$1=createLogger2(),polyfills_cjs={};function _extends$1(){return _extends$1=Object.assign||function(i){for(var d=1;d<arguments.length;d++){var u=arguments[d];for(var p in u)Object.prototype.hasOwnProperty.call(u,p)&&(i[p]=u[p])}return i},_extends$1.apply(this,arguments)}polyfills_cjs._extends=_extends$1;var define_process_env_default={},isomorphicRslog=browser,polyfills=polyfills_cjs;const FederationModuleManifest="federation-manifest.json",MANIFEST_EXT=".json",BROWSER_LOG_KEY="FEDERATION_DEBUG",BROWSER_LOG_VALUE="1",NameTransformSymbol={AT:"@",HYPHEN:"-",SLASH:"/"},NameTransformMap={[NameTransformSymbol.AT]:"scope_",[NameTransformSymbol.HYPHEN]:"_",[NameTransformSymbol.SLASH]:"__"},EncodedNameTransformMap={[NameTransformMap[NameTransformSymbol.AT]]:NameTransformSymbol.AT,[NameTransformMap[NameTransformSymbol.HYPHEN]]:NameTransformSymbol.HYPHEN,[NameTransformMap[NameTransformSymbol.SLASH]]:NameTransformSymbol.SLASH},SEPARATOR=":",ManifestFileName="mf-manifest.json",StatsFileName="mf-stats.json",MFModuleType={NPM:"npm",APP:"app"},MODULE_DEVTOOL_IDENTIFIER="__MF_DEVTOOLS_MODULE_INFO__",ENCODE_NAME_PREFIX="ENCODE_NAME_PREFIX",TEMP_DIR=".federation",MFPrefetchCommon={identifier:"MFDataPrefetch",globalKey:"__PREFETCH__",library:"mf-data-prefetch",exportsKey:"__PREFETCH_EXPORTS__",fileName:"bootstrap.js"};var ContainerPlugin=Object.freeze({__proto__:null}),ContainerReferencePlugin=Object.freeze({__proto__:null}),ModuleFederationPlugin=Object.freeze({__proto__:null}),SharePlugin=Object.freeze({__proto__:null});function isBrowserEnv(){return typeof window<"u"}function isBrowserDebug(){try{if(isBrowserEnv()&&window.localStorage)return localStorage.getItem(BROWSER_LOG_KEY)===BROWSER_LOG_VALUE}catch{return!1}return!1}function isDebugMode(){return typeof process<"u"&&define_process_env_default&&define_process_env_default.FEDERATION_DEBUG?!!define_process_env_default.FEDERATION_DEBUG:typeof FEDERATION_DEBUG<"u"&&FEDERATION_DEBUG?!0:isBrowserDebug()}const getProcessEnv=function(){return typeof process<"u"&&define_process_env_default?define_process_env_default:{}},PREFIX="[ Module Federation ]";function setDebug(o){isDebugMode()&&(o.level="verbose")}function setPrefix(o,i){o.labels={warn:`${i} Warn`,error:`${i} Error`,success:`${i} Success`,info:`${i} Info`,ready:`${i} Ready`,debug:`${i} Debug`}}function createLogger(o){const i=isomorphicRslog.createLogger({labels:{warn:`${PREFIX} Warn`,error:`${PREFIX} Error`,success:`${PREFIX} Success`,info:`${PREFIX} Info`,ready:`${PREFIX} Ready`,debug:`${PREFIX} Debug`}});return setDebug(i),setPrefix(i,o),i}const logger=createLogger(PREFIX),LOG_CATEGORY="[ Federation Runtime ]",parseEntry=(o,i,d=SEPARATOR)=>{const u=o.split(d),p=getProcessEnv().NODE_ENV==="development"&&i,S="*",b=m=>m.startsWith("http")||m.includes(MANIFEST_EXT);if(u.length>=2){let[m,...R]=u;o.startsWith(d)&&(R=[p||u.slice(-1)[0]],m=u.slice(0,-1).join(d));let T=p||R.join(d);return b(T)?{name:m,entry:T}:{name:m,version:T||S}}else if(u.length===1){const[m]=u;return p&&b(p)?{name:m,entry:p}:{name:m,version:p||S}}else throw`Invalid entry value: ${o}`},composeKeyWithSeparator=function(...o){return o.length?o.reduce((i,d)=>d?i?`${i}${SEPARATOR}${d}`:d:i,""):""},encodeName=function(o,i="",d=!1){try{const u=d?".js":"";return`${i}${o.replace(new RegExp(`${NameTransformSymbol.AT}`,"g"),NameTransformMap[NameTransformSymbol.AT]).replace(new RegExp(`${NameTransformSymbol.HYPHEN}`,"g"),NameTransformMap[NameTransformSymbol.HYPHEN]).replace(new RegExp(`${NameTransformSymbol.SLASH}`,"g"),NameTransformMap[NameTransformSymbol.SLASH])}${u}`}catch(u){throw u}},decodeName=function(o,i,d){try{let u=o;if(i){if(!u.startsWith(i))return u;u=u.replace(new RegExp(i,"g"),"")}return u=u.replace(new RegExp(`${NameTransformMap[NameTransformSymbol.AT]}`,"g"),EncodedNameTransformMap[NameTransformMap[NameTransformSymbol.AT]]).replace(new RegExp(`${NameTransformMap[NameTransformSymbol.SLASH]}`,"g"),EncodedNameTransformMap[NameTransformMap[NameTransformSymbol.SLASH]]).replace(new RegExp(`${NameTransformMap[NameTransformSymbol.HYPHEN]}`,"g"),EncodedNameTransformMap[NameTransformMap[NameTransformSymbol.HYPHEN]]),d&&(u=u.replace(".js","")),u}catch(u){throw u}},generateExposeFilename=(o,i)=>{if(!o)return"";let d=o;return d==="."&&(d="default_export"),d.startsWith("./")&&(d=d.replace("./","")),encodeName(d,"__federation_expose_",i)},generateShareFilename=(o,i)=>o?encodeName(o,"__federation_shared_",i):"",getResourceUrl=(o,i)=>{if("getPublicPath"in o){let d;return o.getPublicPath.startsWith("function")?d=new Function("return "+o.getPublicPath)()():d=new Function(o.getPublicPath)(),`${d}${i}`}else return"publicPath"in o?`${o.publicPath}${i}`:(console.warn("Cannot get resource URL. If in debug mode, please ignore.",o,i),"")},assert=(o,i)=>{o||error(i)},error=o=>{throw new Error(`${LOG_CATEGORY}: ${o}`)},warn=o=>{console.warn(`${LOG_CATEGORY}: ${o}`)};function safeToString(o){try{return JSON.stringify(o,null,2)}catch{return""}}const VERSION_PATTERN_REGEXP=/^([\d^=v<>~]|[*xX]$)/;function isRequiredVersion(o){return VERSION_PATTERN_REGEXP.test(o)}const simpleJoinRemoteEntry=(o,i)=>{if(!o)return i;const u=(p=>{if(p===".")return"";if(p.startsWith("./"))return p.replace("./","");if(p.startsWith("/")){const S=p.slice(1);return S.endsWith("/")?S.slice(0,-1):S}return p})(o);return u?u.endsWith("/")?`${u}${i}`:`${u}/${i}`:i};function inferAutoPublicPath(o){return o.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/")}function generateSnapshotFromManifest(o,i={}){var d,u;const{remotes:p={},overrides:S={},version:b}=i;let m;const R=()=>"publicPath"in o.metaData?o.metaData.publicPath==="auto"&&b?inferAutoPublicPath(b):o.metaData.publicPath:o.metaData.getPublicPath,T=Object.keys(S);let w={};if(!Object.keys(p).length){var L;w=((L=o.remotes)==null?void 0:L.reduce((v,x)=>{let C;const te=x.federationContainerName;return T.includes(te)?C=S[te]:"version"in x?C=x.version:C=x.entry,v[te]={matchedVersion:C},v},{}))||{}}Object.keys(p).forEach(v=>w[v]={matchedVersion:T.includes(v)?S[v]:p[v]});const{remoteEntry:{path:O,name:G,type:Y},types:V,buildInfo:{buildVersion:le},globalName:Z,ssrRemoteEntry:B}=o.metaData,{exposes:ce}=o;let ee={version:b||"",buildVersion:le,globalName:Z,remoteEntry:simpleJoinRemoteEntry(O,G),remoteEntryType:Y,remoteTypes:simpleJoinRemoteEntry(V.path,V.name),remoteTypesZip:V.zip||"",remoteTypesAPI:V.api||"",remotesInfo:w,shared:o==null?void 0:o.shared.map(v=>({assets:v.assets,sharedName:v.name,version:v.version})),modules:ce==null?void 0:ce.map(v=>({moduleName:v.name,modulePath:v.path,assets:v.assets}))};if((d=o.metaData)!=null&&d.prefetchInterface){const v=o.metaData.prefetchInterface;ee=polyfills._extends({},ee,{prefetchInterface:v})}if((u=o.metaData)!=null&&u.prefetchEntry){const{path:v,name:x,type:C}=o.metaData.prefetchEntry;ee=polyfills._extends({},ee,{prefetchEntry:simpleJoinRemoteEntry(v,x),prefetchEntryType:C})}if("publicPath"in o.metaData?m=polyfills._extends({},ee,{publicPath:R()}):m=polyfills._extends({},ee,{getPublicPath:R()}),B){const v=simpleJoinRemoteEntry(B.path,B.name);m.ssrRemoteEntry=v,m.ssrRemoteEntryType=B.type||"commonjs-module"}return m}function isManifestProvider(o){return!!("remoteEntry"in o&&o.remoteEntry.includes(MANIFEST_EXT))}async function safeWrapper(o,i){try{return await o()}catch(d){!i&&warn(d);return}}function isStaticResourcesEqual(o,i){const d=/^(https?:)?\/\//i,u=o.replace(d,"").replace(/\/$/,""),p=i.replace(d,"").replace(/\/$/,"");return u===p}function createScript(o){let i=null,d=!0,u=2e4,p;const S=document.getElementsByTagName("script");for(let m=0;m<S.length;m++){const R=S[m],T=R.getAttribute("src");if(T&&isStaticResourcesEqual(T,o.url)){i=R,d=!1;break}}if(!i){const m=o.attrs;i=document.createElement("script"),i.type=(m==null?void 0:m.type)==="module"?"module":"text/javascript";let R;o.createScriptHook&&(R=o.createScriptHook(o.url,o.attrs),R instanceof HTMLScriptElement?i=R:typeof R=="object"&&("script"in R&&R.script&&(i=R.script),"timeout"in R&&R.timeout&&(u=R.timeout))),i.src||(i.src=o.url),m&&!R&&Object.keys(m).forEach(T=>{i&&(T==="async"||T==="defer"?i[T]=m[T]:i.getAttribute(T)||i.setAttribute(T,m[T]))})}const b=async(m,R)=>{clearTimeout(p);const T=()=>{(R==null?void 0:R.type)==="error"?o!=null&&o.onErrorCallback&&(o==null||o.onErrorCallback(R)):o!=null&&o.cb&&(o==null||o.cb())};if(i&&(i.onerror=null,i.onload=null,safeWrapper(()=>{const{needDeleteScript:w=!0}=o;w&&i!=null&&i.parentNode&&i.parentNode.removeChild(i)}),m&&typeof m=="function")){const w=m(R);if(w instanceof Promise){const L=await w;return T(),L}return T(),w}T()};return i.onerror=b.bind(null,i.onerror),i.onload=b.bind(null,i.onload),p=setTimeout(()=>{b(null,new Error(`Remote script "${o.url}" time-outed.`))},u),{script:i,needAttach:d}}function createLink(o){let i=null,d=!0;const u=document.getElementsByTagName("link");for(let S=0;S<u.length;S++){const b=u[S],m=b.getAttribute("href"),R=b.getAttribute("ref");if(m&&isStaticResourcesEqual(m,o.url)&&R===o.attrs.ref){i=b,d=!1;break}}if(!i){i=document.createElement("link"),i.setAttribute("href",o.url);let S;const b=o.attrs;o.createLinkHook&&(S=o.createLinkHook(o.url,b),S instanceof HTMLLinkElement&&(i=S)),b&&!S&&Object.keys(b).forEach(m=>{i&&!i.getAttribute(m)&&i.setAttribute(m,b[m])})}const p=(S,b)=>{const m=()=>{(b==null?void 0:b.type)==="error"?o!=null&&o.onErrorCallback&&(o==null||o.onErrorCallback(b)):o!=null&&o.cb&&(o==null||o.cb())};if(i&&(i.onerror=null,i.onload=null,safeWrapper(()=>{const{needDeleteLink:R=!0}=o;R&&i!=null&&i.parentNode&&i.parentNode.removeChild(i)}),S)){const R=S(b);return m(),R}m()};return i.onerror=p.bind(null,i.onerror),i.onload=p.bind(null,i.onload),{link:i,needAttach:d}}function loadScript(o,i){const{attrs:d={},createScriptHook:u}=i;return new Promise((p,S)=>{const{script:b,needAttach:m}=createScript({url:o,cb:p,onErrorCallback:S,attrs:polyfills._extends({fetchpriority:"high"},d),createScriptHook:u,needDeleteScript:!0});m&&document.head.appendChild(b)})}function importNodeModule(o){if(!o)throw new Error("import specifier is required");return new Function("name","return import(name)")(o).then(d=>d).catch(d=>{throw console.error(`Error importing module ${o}:`,d),d})}const loadNodeFetch=async()=>{const o=await importNodeModule("node-fetch");return o.default||o},lazyLoaderHookFetch=async(o,i,d)=>{const p=await((S,b)=>d.lifecycle.fetch.emit(S,b))(o,i||{});return!p||!(p instanceof Response)?(typeof fetch>"u"?await loadNodeFetch():fetch)(o,i||{}):p};function createScriptNode(url,cb,attrs,loaderHook){if(loaderHook!=null&&loaderHook.createScriptHook){const o=loaderHook.createScriptHook(url);o&&typeof o=="object"&&"url"in o&&(url=o.url)}let urlObj;try{urlObj=new URL(url)}catch(o){console.error("Error constructing URL:",o),cb(new Error(`Invalid URL: ${o}`));return}const getFetch=async()=>loaderHook!=null&&loaderHook.fetch?(o,i)=>lazyLoaderHookFetch(o,i,loaderHook):typeof fetch>"u"?loadNodeFetch():fetch,handleScriptFetch=async(f,urlObj)=>{try{var _vm_constants;const res=await f(urlObj.href),data=await res.text(),[path,vm]=await Promise.all([importNodeModule("path"),importNodeModule("vm")]),scriptContext={exports:{},module:{exports:{}}},urlDirname=urlObj.pathname.split("/").slice(0,-1).join("/"),filename=path.basename(urlObj.pathname);var _vm_constants_USE_MAIN_CONTEXT_DEFAULT_LOADER;const script=new vm.Script(`(function(exports, module, require, __dirname, __filename) {${data}
|
|
7
|
-
})`,{filename,importModuleDynamically:(_vm_constants_USE_MAIN_CONTEXT_DEFAULT_LOADER=(_vm_constants=vm.constants)==null?void 0:_vm_constants.USE_MAIN_CONTEXT_DEFAULT_LOADER)!=null?_vm_constants_USE_MAIN_CONTEXT_DEFAULT_LOADER:importNodeModule});script.runInThisContext()(scriptContext.exports,scriptContext.module,eval("require"),urlDirname,filename);const exportedInterface=scriptContext.module.exports||scriptContext.exports;if(attrs&&exportedInterface&&attrs.globalName){const o=exportedInterface[attrs.globalName]||exportedInterface;cb(void 0,o);return}cb(void 0,exportedInterface)}catch(o){cb(o instanceof Error?o:new Error(`Script execution error: ${o}`))}};getFetch().then(async o=>{if((attrs==null?void 0:attrs.type)==="esm"||(attrs==null?void 0:attrs.type)==="module")return loadModule(urlObj.href,{fetch:o,vm:await importNodeModule("vm")}).then(async i=>{await i.evaluate(),cb(void 0,i.namespace)}).catch(i=>{cb(i instanceof Error?i:new Error(`Script execution error: ${i}`))});handleScriptFetch(o,urlObj)}).catch(o=>{cb(o)})}function loadScriptNode(o,i){return new Promise((d,u)=>{createScriptNode(o,(p,S)=>{if(p)u(p);else{var b,m;const R=(i==null||(b=i.attrs)==null?void 0:b.globalName)||`__FEDERATION_${i==null||(m=i.attrs)==null?void 0:m.name}:custom__`,T=globalThis[R]=S;d(T)}},i.attrs,i.loaderHook)})}async function loadModule(o,i){const{fetch:d,vm:u}=i,S=await(await d(o)).text(),b=new u.SourceTextModule(S,{importModuleDynamically:async(m,R)=>{const T=new URL(m,o).href;return loadModule(T,i)}});return await b.link(async m=>{const R=new URL(m,o).href;return await loadModule(R,i)}),b}function normalizeOptions(o,i,d){return function(u){if(u===!1)return!1;if(typeof u>"u")return o?i:!1;if(u===!0)return i;if(u&&typeof u=="object")return polyfills._extends({},i,u);throw new Error(`Unexpected type for \`${d}\`, expect boolean/undefined/object, got: ${typeof u}`)}}index_cjs$1.BROWSER_LOG_KEY=BROWSER_LOG_KEY;index_cjs$1.BROWSER_LOG_VALUE=BROWSER_LOG_VALUE;index_cjs$1.ENCODE_NAME_PREFIX=ENCODE_NAME_PREFIX;index_cjs$1.EncodedNameTransformMap=EncodedNameTransformMap;index_cjs$1.FederationModuleManifest=FederationModuleManifest;index_cjs$1.MANIFEST_EXT=MANIFEST_EXT;index_cjs$1.MFModuleType=MFModuleType;index_cjs$1.MFPrefetchCommon=MFPrefetchCommon;index_cjs$1.MODULE_DEVTOOL_IDENTIFIER=MODULE_DEVTOOL_IDENTIFIER;index_cjs$1.ManifestFileName=ManifestFileName;index_cjs$1.NameTransformMap=NameTransformMap;index_cjs$1.NameTransformSymbol=NameTransformSymbol;index_cjs$1.SEPARATOR=SEPARATOR;index_cjs$1.StatsFileName=StatsFileName;index_cjs$1.TEMP_DIR=TEMP_DIR;index_cjs$1.assert=assert;index_cjs$1.composeKeyWithSeparator=composeKeyWithSeparator;index_cjs$1.containerPlugin=ContainerPlugin;index_cjs$1.containerReferencePlugin=ContainerReferencePlugin;index_cjs$1.createLink=createLink;index_cjs$1.createLogger=createLogger;index_cjs$1.createScript=createScript;index_cjs$1.createScriptNode=createScriptNode;index_cjs$1.decodeName=decodeName;index_cjs$1.encodeName=encodeName;index_cjs$1.error=error;index_cjs$1.generateExposeFilename=generateExposeFilename;index_cjs$1.generateShareFilename=generateShareFilename;index_cjs$1.generateSnapshotFromManifest=generateSnapshotFromManifest;index_cjs$1.getProcessEnv=getProcessEnv;index_cjs$1.getResourceUrl=getResourceUrl;index_cjs$1.inferAutoPublicPath=inferAutoPublicPath;index_cjs$1.isBrowserEnv=isBrowserEnv;index_cjs$1.isDebugMode=isDebugMode;index_cjs$1.isManifestProvider=isManifestProvider;index_cjs$1.isRequiredVersion=isRequiredVersion;index_cjs$1.isStaticResourcesEqual=isStaticResourcesEqual;index_cjs$1.loadScript=loadScript;index_cjs$1.loadScriptNode=loadScriptNode;index_cjs$1.logger=logger;index_cjs$1.moduleFederationPlugin=ModuleFederationPlugin;index_cjs$1.normalizeOptions=normalizeOptions;index_cjs$1.parseEntry=parseEntry;index_cjs$1.safeToString=safeToString;index_cjs$1.safeWrapper=safeWrapper;index_cjs$1.sharePlugin=SharePlugin;index_cjs$1.simpleJoinRemoteEntry=simpleJoinRemoteEntry;index_cjs$1.warn=warn;var index_cjs={};const RUNTIME_001="RUNTIME-001",RUNTIME_002="RUNTIME-002",RUNTIME_003="RUNTIME-003",RUNTIME_004="RUNTIME-004",RUNTIME_005="RUNTIME-005",RUNTIME_006="RUNTIME-006",RUNTIME_007="RUNTIME-007",RUNTIME_008="RUNTIME-008",TYPE_001="TYPE-001",BUILD_001="BUILD-001",getDocsUrl=o=>`https://module-federation.io/guide/troubleshooting/${o.split("-")[0].toLowerCase()}/${o}`,getShortErrorMsg=(o,i,d,u)=>{const p=[`${[i[o]]} #${o}`];return d&&p.push(`args: ${JSON.stringify(d)}`),p.push(getDocsUrl(o)),u&&p.push(`Original Error Message:
|
|
8
|
-
${u}`),p.join(`
|
|
9
|
-
`)};function _extends(){return _extends=Object.assign||function(i){for(var d=1;d<arguments.length;d++){var u=arguments[d];for(var p in u)Object.prototype.hasOwnProperty.call(u,p)&&(i[p]=u[p])}return i},_extends.apply(this,arguments)}const runtimeDescMap={[RUNTIME_001]:"Failed to get remoteEntry exports.",[RUNTIME_002]:'The remote entry interface does not contain "init"',[RUNTIME_003]:"Failed to get manifest.",[RUNTIME_004]:"Failed to locate remote.",[RUNTIME_005]:"Invalid loadShareSync function call from bundler runtime",[RUNTIME_006]:"Invalid loadShareSync function call from runtime",[RUNTIME_007]:"Failed to get remote snapshot.",[RUNTIME_008]:"Failed to load script resources."},typeDescMap={[TYPE_001]:"Failed to generate type declaration."},buildDescMap={[BUILD_001]:"Failed to find expose module."},errorDescMap=_extends({},runtimeDescMap,typeDescMap,buildDescMap);index_cjs.BUILD_001=BUILD_001;index_cjs.RUNTIME_001=RUNTIME_001;index_cjs.RUNTIME_002=RUNTIME_002;index_cjs.RUNTIME_003=RUNTIME_003;index_cjs.RUNTIME_004=RUNTIME_004;index_cjs.RUNTIME_005=RUNTIME_005;index_cjs.RUNTIME_006=RUNTIME_006;index_cjs.RUNTIME_007=RUNTIME_007;index_cjs.RUNTIME_008=RUNTIME_008;index_cjs.TYPE_001=TYPE_001;index_cjs.buildDescMap=buildDescMap;index_cjs.errorDescMap=errorDescMap;index_cjs.getShortErrorMsg=getShortErrorMsg;index_cjs.runtimeDescMap=runtimeDescMap;index_cjs.typeDescMap=typeDescMap;(function(o){var i=polyfills_cjs$1,d=index_cjs$1,u=index_cjs;const p="[ Federation Runtime ]",S=d.createLogger(p);function b(t,e){t||m(e)}function m(t){throw t instanceof Error?(t.message=`${p}: ${t.message}`,t):new Error(`${p}: ${t}`)}function R(t){t instanceof Error&&(t.message=`${p}: ${t.message}`),S.warn(t)}function T(t,e){return t.findIndex(r=>r===e)===-1&&t.push(e),t}function w(t){return"version"in t&&t.version?`${t.name}:${t.version}`:"entry"in t&&t.entry?`${t.name}:${t.entry}`:`${t.name}`}function L(t){return typeof t.entry<"u"}function O(t){return!t.entry.includes(".json")&&t.entry.includes(".js")}async function G(t,e){try{return await t()}catch(r){!e&&R(r);return}}function Y(t){return t&&typeof t=="object"}const V=Object.prototype.toString;function le(t){return V.call(t)==="[object Object]"}function Z(t,e){const r=/^(https?:)?\/\//i,n=t.replace(r,"").replace(/\/$/,""),s=e.replace(r,"").replace(/\/$/,"");return n===s}function B(t){return Array.isArray(t)?t:[t]}function ce(t){const e={url:"",type:"global",globalName:""};return d.isBrowserEnv()?"remoteEntry"in t?{url:t.remoteEntry,type:t.remoteEntryType,globalName:t.globalName}:e:"ssrRemoteEntry"in t?{url:t.ssrRemoteEntry||e.url,type:t.ssrRemoteEntryType||e.type,globalName:t.globalName}:e}const ee=(t,e)=>{let r;return t.endsWith("/")?r=t.slice(0,-1):r=t,e.startsWith(".")&&(e=e.slice(1)),r=r+e,r},v=typeof globalThis=="object"?globalThis:window,x=(()=>{try{return document.defaultView}catch{return v}})(),C=x;function te(t,e,r){Object.defineProperty(t,e,{value:r,configurable:!1,writable:!0})}function ye(t,e){return Object.hasOwnProperty.call(t,e)}ye(v,"__GLOBAL_LOADING_REMOTE_ENTRY__")||te(v,"__GLOBAL_LOADING_REMOTE_ENTRY__",{});const re=v.__GLOBAL_LOADING_REMOTE_ENTRY__;function xe(t){var e,r,n,s,c,a;ye(t,"__VMOK__")&&!ye(t,"__FEDERATION__")&&te(t,"__FEDERATION__",t.__VMOK__),ye(t,"__FEDERATION__")||(te(t,"__FEDERATION__",{__GLOBAL_PLUGIN__:[],__INSTANCES__:[],moduleInfo:{},__SHARE__:{},__MANIFEST_LOADING__:{},__PRELOADED_MAP__:new Map}),te(t,"__VMOK__",t.__FEDERATION__));var l;(l=(e=t.__FEDERATION__).__GLOBAL_PLUGIN__)!=null||(e.__GLOBAL_PLUGIN__=[]);var h;(h=(r=t.__FEDERATION__).__INSTANCES__)!=null||(r.__INSTANCES__=[]);var _;(_=(n=t.__FEDERATION__).moduleInfo)!=null||(n.moduleInfo={});var g;(g=(s=t.__FEDERATION__).__SHARE__)!=null||(s.__SHARE__={});var y;(y=(c=t.__FEDERATION__).__MANIFEST_LOADING__)!=null||(c.__MANIFEST_LOADING__={});var E;(E=(a=t.__FEDERATION__).__PRELOADED_MAP__)!=null||(a.__PRELOADED_MAP__=new Map)}xe(v),xe(x);function je(){v.__FEDERATION__.__GLOBAL_PLUGIN__=[],v.__FEDERATION__.__INSTANCES__=[],v.__FEDERATION__.moduleInfo={},v.__FEDERATION__.__SHARE__={},v.__FEDERATION__.__MANIFEST_LOADING__={},Object.keys(re).forEach(t=>{delete re[t]})}function ke(t){v.__FEDERATION__.__INSTANCES__.push(t)}function Ce(){return v.__FEDERATION__.__DEBUG_CONSTRUCTOR__}function He(t,e=d.isDebugMode()){e&&(v.__FEDERATION__.__DEBUG_CONSTRUCTOR__=t,v.__FEDERATION__.__DEBUG_CONSTRUCTOR_VERSION__="0.6.20")}function ne(t,e){if(typeof e=="string"){if(t[e])return{value:t[e],key:e};{const n=Object.keys(t);for(const s of n){const[c,a]=s.split(":"),l=`${c}:${e}`,h=t[l];if(h)return{value:h,key:l}}return{value:void 0,key:e}}}else throw new Error("key must be string")}const ge=()=>x.__FEDERATION__.moduleInfo,Ue=(t,e)=>{const r=w(t),n=ne(e,r).value;if(n&&!n.version&&"version"in t&&t.version&&(n.version=t.version),n)return n;if("version"in t&&t.version){const{version:s}=t,c=i._object_without_properties_loose(t,["version"]),a=w(c),l=ne(x.__FEDERATION__.moduleInfo,a).value;if((l==null?void 0:l.version)===s)return l}},ue=t=>Ue(t,x.__FEDERATION__.moduleInfo),$e=(t,e)=>{const r=w(t);return x.__FEDERATION__.moduleInfo[r]=e,x.__FEDERATION__.moduleInfo},Ne=t=>(x.__FEDERATION__.moduleInfo=i._extends({},x.__FEDERATION__.moduleInfo,t),()=>{const e=Object.keys(t);for(const r of e)delete x.__FEDERATION__.moduleInfo[r]}),fe=(t,e)=>{const r=e||`__FEDERATION_${t}:custom__`,n=v[r];return{remoteEntryKey:r,entryExports:n}},Ge=t=>{const{__GLOBAL_PLUGIN__:e}=x.__FEDERATION__;t.forEach(r=>{e.findIndex(n=>n.name===r.name)===-1?e.push(r):R(`The plugin ${r.name} has been registered.`)})},Be=()=>x.__FEDERATION__.__GLOBAL_PLUGIN__,Ve=t=>v.__FEDERATION__.__PRELOADED_MAP__.get(t),We=t=>v.__FEDERATION__.__PRELOADED_MAP__.set(t,!0),de="default",Xe="global",Ke="[0-9A-Za-z-]+",Ie=`(?:\\+(${Ke}(?:\\.${Ke})*))`,he="0|[1-9]\\d*",be="[0-9]+",qe="\\d*[a-zA-Z-][a-zA-Z0-9-]*",Ye=`(?:${be}|${qe})`,dt=`(?:-?(${Ye}(?:\\.${Ye})*))`,ze=`(?:${he}|${qe})`,Je=`(?:-(${ze}(?:\\.${ze})*))`,Te=`${he}|x|X|\\*`,ie=`[v=\\s]*(${Te})(?:\\.(${Te})(?:\\.(${Te})(?:${Je})?${Ie}?)?)?`,ht=`^\\s*(${ie})\\s+-\\s+(${ie})\\s*$`,_t=`[v=\\s]*${`(${be})\\.(${be})\\.(${be})`}${dt}?${Ie}?`,Oe="((?:<|>)?=?)",pt=`(\\s*)${Oe}\\s*(${_t}|${ie})`,Ze="(?:~>?)",mt=`(\\s*)${Ze}\\s+`,Qe="(?:\\^)",Et=`(\\s*)${Qe}\\s+`,yt="(<|>)?=?\\s*\\*",gt=`^${Qe}${ie}$`,bt=`v?${`(${he})\\.(${he})\\.(${he})`}${Je}?${Ie}?`,St=`^${Ze}${ie}$`,Rt=`^${Oe}\\s*${ie}$`,vt=`^${Oe}\\s*(${bt})$|^$`,$t="^\\s*>=\\s*0.0.0\\s*$";function z(t){return new RegExp(t)}function j(t){return!t||t.toLowerCase()==="x"||t==="*"}function et(...t){return e=>t.reduce((r,n)=>n(r),e)}function tt(t){return t.match(z(vt))}function rt(t,e,r,n){const s=`${t}.${e}.${r}`;return n?`${s}-${n}`:s}function Nt(t){return t.replace(z(ht),(e,r,n,s,c,a,l,h,_,g,y,E)=>(j(n)?r="":j(s)?r=`>=${n}.0.0`:j(c)?r=`>=${n}.${s}.0`:r=`>=${r}`,j(_)?h="":j(g)?h=`<${Number(_)+1}.0.0-0`:j(y)?h=`<${_}.${Number(g)+1}.0-0`:E?h=`<=${_}.${g}.${y}-${E}`:h=`<=${h}`,`${r} ${h}`.trim()))}function It(t){return t.replace(z(pt),"$1$2$3")}function Tt(t){return t.replace(z(mt),"$1~")}function Ot(t){return t.replace(z(Et),"$1^")}function Mt(t){return t.trim().split(/\s+/).map(e=>e.replace(z(gt),(r,n,s,c,a)=>j(n)?"":j(s)?`>=${n}.0.0 <${Number(n)+1}.0.0-0`:j(c)?n==="0"?`>=${n}.${s}.0 <${n}.${Number(s)+1}.0-0`:`>=${n}.${s}.0 <${Number(n)+1}.0.0-0`:a?n==="0"?s==="0"?`>=${n}.${s}.${c}-${a} <${n}.${s}.${Number(c)+1}-0`:`>=${n}.${s}.${c}-${a} <${n}.${Number(s)+1}.0-0`:`>=${n}.${s}.${c}-${a} <${Number(n)+1}.0.0-0`:n==="0"?s==="0"?`>=${n}.${s}.${c} <${n}.${s}.${Number(c)+1}-0`:`>=${n}.${s}.${c} <${n}.${Number(s)+1}.0-0`:`>=${n}.${s}.${c} <${Number(n)+1}.0.0-0`)).join(" ")}function Pt(t){return t.trim().split(/\s+/).map(e=>e.replace(z(St),(r,n,s,c,a)=>j(n)?"":j(s)?`>=${n}.0.0 <${Number(n)+1}.0.0-0`:j(c)?`>=${n}.${s}.0 <${n}.${Number(s)+1}.0-0`:a?`>=${n}.${s}.${c}-${a} <${n}.${Number(s)+1}.0-0`:`>=${n}.${s}.${c} <${n}.${Number(s)+1}.0-0`)).join(" ")}function At(t){return t.split(/\s+/).map(e=>e.trim().replace(z(Rt),(r,n,s,c,a,l)=>{const h=j(s),_=h||j(c),g=_||j(a);return n==="="&&g&&(n=""),l="",h?n===">"||n==="<"?"<0.0.0-0":"*":n&&g?(_&&(c=0),a=0,n===">"?(n=">=",_?(s=Number(s)+1,c=0,a=0):(c=Number(c)+1,a=0)):n==="<="&&(n="<",_?s=Number(s)+1:c=Number(c)+1),n==="<"&&(l="-0"),`${n+s}.${c}.${a}${l}`):_?`>=${s}.0.0${l} <${Number(s)+1}.0.0-0`:g?`>=${s}.${c}.0${l} <${s}.${Number(c)+1}.0-0`:r})).join(" ")}function wt(t){return t.trim().replace(z(yt),"")}function Lt(t){return t.trim().replace(z($t),"")}function Se(t,e){return t=Number(t)||t,e=Number(e)||e,t>e?1:t===e?0:-1}function Dt(t,e){const{preRelease:r}=t,{preRelease:n}=e;if(r===void 0&&n)return 1;if(r&&n===void 0)return-1;if(r===void 0&&n===void 0)return 0;for(let s=0,c=r.length;s<=c;s++){const a=r[s],l=n[s];if(a!==l)return a===void 0&&l===void 0?0:a?l?Se(a,l):-1:1}return 0}function Re(t,e){return Se(t.major,e.major)||Se(t.minor,e.minor)||Se(t.patch,e.patch)||Dt(t,e)}function Me(t,e){return t.version===e.version}function Ft(t,e){switch(t.operator){case"":case"=":return Me(t,e);case">":return Re(t,e)<0;case">=":return Me(t,e)||Re(t,e)<0;case"<":return Re(t,e)>0;case"<=":return Me(t,e)||Re(t,e)>0;case void 0:return!0;default:return!1}}function xt(t){return et(Mt,Pt,At,wt)(t)}function jt(t){return et(Nt,It,Tt,Ot)(t.trim()).split(/\s+/).join(" ")}function _e(t,e){if(!t)return!1;const s=jt(e).split(" ").map(E=>xt(E)).join(" ").split(/\s+/).map(E=>Lt(E)),c=tt(t);if(!c)return!1;const[,a,,l,h,_,g]=c,y={version:rt(l,h,_,g),major:l,minor:h,patch:_,preRelease:g==null?void 0:g.split(".")};for(const E of s){const $=tt(E);if(!$)return!1;const[,I,,P,N,M,F]=$,A={operator:I,version:rt(P,N,M,F),major:P,minor:N,patch:M,preRelease:F==null?void 0:F.split(".")};if(!Ft(A,y))return!1}return!0}function kt(t,e,r,n){let s;"get"in t?s=t.get:"lib"in t?s=()=>Promise.resolve(t.lib):s=()=>Promise.resolve(()=>{throw new Error(`Can not get shared '${r}'!`)}),t.strategy&&R('"shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"');var c,a,l;return i._extends({deps:[],useIn:[],from:e,loading:null},t,{shareConfig:i._extends({requiredVersion:`^${t.version}`,singleton:!1,eager:!1,strictVersion:!1},t.shareConfig),get:s,loaded:t!=null&&t.loaded||"lib"in t?!0:void 0,version:(c=t.version)!=null?c:"0",scope:Array.isArray(t.scope)?t.scope:[(a=t.scope)!=null?a:"default"],strategy:((l=t.strategy)!=null?l:n)||"version-first"})}function nt(t,e){const r=e.shared||{},n=e.name,s=Object.keys(r).reduce((a,l)=>{const h=B(r[l]);return a[l]=a[l]||[],h.forEach(_=>{a[l].push(kt(_,n,l,e.shareStrategy))}),a},{}),c=i._extends({},t.shared);return Object.keys(s).forEach(a=>{c[a]?s[a].forEach(l=>{c[a].find(_=>_.version===l.version)||c[a].push(l)}):c[a]=s[a]}),{shared:c,shareInfos:s}}function pe(t,e){const r=n=>{if(!Number.isNaN(Number(n))){const c=n.split(".");let a=n;for(let l=0;l<3-c.length;l++)a+=".0";return a}return n};return!!_e(r(t),`<=${r(e)}`)}const Pe=(t,e)=>{const r=e||function(n,s){return pe(n,s)};return Object.keys(t).reduce((n,s)=>!n||r(n,s)||n==="0"?s:n,0)},Ae=t=>!!t.loaded||typeof t.lib=="function",Ct=t=>!!t.loading;function Ht(t,e,r){const n=t[e][r],s=function(c,a){return!Ae(n[c])&&pe(c,a)};return Pe(t[e][r],s)}function Ut(t,e,r){const n=t[e][r],s=function(c,a){const l=h=>Ae(h)||Ct(h);return l(n[a])?l(n[c])?!!pe(c,a):!0:l(n[c])?!1:pe(c,a)};return Pe(t[e][r],s)}function Gt(t){return t==="loaded-first"?Ut:Ht}function oe(t,e,r,n){if(!t)return;const{shareConfig:s,scope:c=de,strategy:a}=r,l=Array.isArray(c)?c:[c];for(const h of l)if(s&&t[h]&&t[h][e]){const{requiredVersion:_}=s,y=Gt(a)(t,h,e),E=()=>{if(s.singleton){if(typeof _=="string"&&!_e(y,_)){const P=`Version ${y} from ${y&&t[h][e][y].from} of shared singleton module ${e} does not satisfy the requirement of ${r.from} which needs ${_})`;s.strictVersion?m(P):R(P)}return t[h][e][y]}else{if(_===!1||_==="*"||_e(y,_))return t[h][e][y];for(const[P,N]of Object.entries(t[h][e]))if(_e(P,_))return N}},$={shareScopeMap:t,scope:h,pkgName:e,version:y,GlobalFederation:C.__FEDERATION__,resolver:E};return(n.emit($)||$).resolver()}}function we(){return C.__FEDERATION__.__SHARE__}function ot(t){const{pkgName:e,extraOptions:r,shareInfos:n}=t,s=l=>{if(!l)return;const h={};l.forEach(y=>{h[y.version]=y});const g=Pe(h,function(y,E){return!Ae(h[y])&&pe(y,E)});return h[g]};var c;const a=(c=r==null?void 0:r.resolver)!=null?c:s;return Object.assign({},a(n[e]),r==null?void 0:r.customShareInfo)}var Bt={global:{Global:C,nativeGlobal:x,resetFederationGlobalInfo:je,setGlobalFederationInstance:ke,getGlobalFederationConstructor:Ce,setGlobalFederationConstructor:He,getInfoWithoutType:ne,getGlobalSnapshot:ge,getTargetSnapshotInfoByModuleInfo:Ue,getGlobalSnapshotInfoByModuleInfo:ue,setGlobalSnapshotInfoByModuleInfo:$e,addGlobalSnapshot:Ne,getRemoteEntryExports:fe,registerGlobalPlugins:Ge,getGlobalHostPlugins:Be,getPreloaded:Ve,setPreloaded:We},share:{getRegisteredShare:oe,getGlobalShareScope:we}};function Vt(){return typeof FEDERATION_BUILD_IDENTIFIER<"u"?FEDERATION_BUILD_IDENTIFIER:""}function st(t,e){for(const r of t){const n=e.startsWith(r.name);let s=e.replace(r.name,"");if(n){if(s.startsWith("/")){const l=r.name;return s=`.${s}`,{pkgNameOrAlias:l,expose:s,remote:r}}else if(s==="")return{pkgNameOrAlias:r.name,expose:".",remote:r}}const c=r.alias&&e.startsWith(r.alias);let a=r.alias&&e.replace(r.alias,"");if(r.alias&&c){if(a&&a.startsWith("/")){const l=r.alias;return a=`.${a}`,{pkgNameOrAlias:l,expose:a,remote:r}}else if(a==="")return{pkgNameOrAlias:r.alias,expose:".",remote:r}}}}function Wt(t,e){for(const r of t)if(e===r.name||r.alias&&e===r.alias)return r}function Xt(t,e){const r=Be();return r.length>0&&r.forEach(n=>{t!=null&&t.find(s=>s.name!==n.name)&&t.push(n)}),t&&t.length>0&&t.forEach(n=>{e.forEach(s=>{s.applyPlugin(n)})}),t}async function Kt({entry:t,remoteEntryExports:e}){return new Promise((r,n)=>{try{e?r(e):typeof FEDERATION_ALLOW_NEW_FUNCTION<"u"?new Function("callbacks",`import("${t}").then(callbacks[0]).catch(callbacks[1])`)([r,n]):import(t).then(r).catch(n)}catch(s){n(s)}})}async function qt({entry:t,remoteEntryExports:e}){return new Promise((r,n)=>{try{e?r(e):typeof __system_context__>"u"?System.import(t).then(r).catch(n):new Function("callbacks",`System.import("${t}").then(callbacks[0]).catch(callbacks[1])`)([r,n])}catch(s){n(s)}})}async function Yt({name:t,globalName:e,entry:r,loaderHook:n}){const{entryExports:s}=fe(t,e);return s||d.loadScript(r,{attrs:{},createScriptHook:(c,a)=>{const l=n.lifecycle.createScript.emit({url:c,attrs:a});if(l&&(l instanceof HTMLScriptElement||"script"in l||"timeout"in l))return l}}).then(()=>{const{remoteEntryKey:c,entryExports:a}=fe(t,e);return b(a,u.getShortErrorMsg(u.RUNTIME_001,u.runtimeDescMap,{remoteName:t,remoteEntryUrl:r,remoteEntryKey:c})),a}).catch(c=>{throw b(void 0,u.getShortErrorMsg(u.RUNTIME_008,u.runtimeDescMap,{remoteName:t,resourceUrl:r})),c})}async function zt({remoteInfo:t,remoteEntryExports:e,loaderHook:r}){const{entry:n,entryGlobalName:s,name:c,type:a}=t;switch(a){case"esm":case"module":return Kt({entry:n,remoteEntryExports:e});case"system":return qt({entry:n,remoteEntryExports:e});default:return Yt({entry:n,globalName:s,name:c,loaderHook:r})}}async function Jt({remoteInfo:t,loaderHook:e}){const{entry:r,entryGlobalName:n,name:s,type:c}=t,{entryExports:a}=fe(s,n);return a||d.loadScriptNode(r,{attrs:{name:s,globalName:n,type:c},loaderHook:{createScriptHook:(l,h={})=>{const _=e.lifecycle.createScript.emit({url:l,attrs:h});if(_&&"url"in _)return _}}}).then(()=>{const{remoteEntryKey:l,entryExports:h}=fe(s,n);return b(h,u.getShortErrorMsg(u.RUNTIME_001,u.runtimeDescMap,{remoteName:s,remoteEntryUrl:r,remoteEntryKey:l})),h}).catch(l=>{throw l})}function Le(t){const{entry:e,name:r}=t;return d.composeKeyWithSeparator(r,e)}async function me({origin:t,remoteEntryExports:e,remoteInfo:r}){const n=Le(r);if(e)return e;if(!re[n]){const s=t.remoteHandler.hooks.lifecycle.loadEntry,c=t.loaderHook;re[n]=s.emit({loaderHook:c,remoteInfo:r,remoteEntryExports:e}).then(a=>a||(d.isBrowserEnv()?zt({remoteInfo:r,remoteEntryExports:e,loaderHook:c}):Jt({remoteInfo:r,loaderHook:c})))}return re[n]}function ve(t){return i._extends({},t,{entry:"entry"in t?t.entry:"",type:t.type||Xe,entryGlobalName:t.entryGlobalName||t.name,shareScope:t.shareScope||de})}let De=class{async getEntry(){if(this.remoteEntryExports)return this.remoteEntryExports;let e;try{e=await me({origin:this.host,remoteInfo:this.remoteInfo,remoteEntryExports:this.remoteEntryExports})}catch{const n=Le(this.remoteInfo);e=await this.host.loaderHook.lifecycle.loadEntryError.emit({getRemoteEntry:me,origin:this.host,remoteInfo:this.remoteInfo,remoteEntryExports:this.remoteEntryExports,globalLoading:re,uniqueKey:n})}return b(e,`remoteEntryExports is undefined
|
|
10
|
-
${d.safeToString(this.remoteInfo)}`),this.remoteEntryExports=e,this.remoteEntryExports}async get(e,r,n,s){const{loadFactory:c=!0}=n||{loadFactory:!0},a=await this.getEntry();if(!this.inited){const y=this.host.shareScopeMap,E=this.remoteInfo.shareScope||"default";y[E]||(y[E]={});const $=y[E],I=[],P={version:this.remoteInfo.version||""};Object.defineProperty(P,"shareScopeMap",{value:y,enumerable:!1});const N=await this.host.hooks.lifecycle.beforeInitContainer.emit({shareScope:$,remoteEntryInitOptions:P,initScope:I,remoteInfo:this.remoteInfo,origin:this.host});typeof(a==null?void 0:a.init)>"u"&&m(u.getShortErrorMsg(u.RUNTIME_002,u.runtimeDescMap,{remoteName:name,remoteEntryUrl:this.remoteInfo.entry,remoteEntryKey:this.remoteInfo.entryGlobalName})),await a.init(N.shareScope,N.initScope,N.remoteEntryInitOptions),await this.host.hooks.lifecycle.initContainer.emit(i._extends({},N,{id:e,remoteSnapshot:s,remoteEntryExports:a}))}this.lib=a,this.inited=!0;let l;l=await this.host.loaderHook.lifecycle.getModuleFactory.emit({remoteEntryExports:a,expose:r,moduleInfo:this.remoteInfo}),l||(l=await a.get(r)),b(l,`${w(this.remoteInfo)} remote don't export ${r}.`);const h=ee(this.remoteInfo.name,r),_=this.wraperFactory(l,h);return c?await _():_}wraperFactory(e,r){function n(s,c){s&&typeof s=="object"&&Object.isExtensible(s)&&!Object.getOwnPropertyDescriptor(s,Symbol.for("mf_module_id"))&&Object.defineProperty(s,Symbol.for("mf_module_id"),{value:c,enumerable:!1})}return e instanceof Promise?async()=>{const s=await e();return n(s,r),s}:()=>{const s=e();return n(s,r),s}}constructor({remoteInfo:e,host:r}){this.inited=!1,this.lib=void 0,this.remoteInfo=e,this.host=r}};class W{on(e){typeof e=="function"&&this.listeners.add(e)}once(e){const r=this;this.on(function n(...s){return r.remove(n),e.apply(null,s)})}emit(...e){let r;return this.listeners.size>0&&this.listeners.forEach(n=>{r=n(...e)}),r}remove(e){this.listeners.delete(e)}removeAll(){this.listeners.clear()}constructor(e){this.type="",this.listeners=new Set,e&&(this.type=e)}}class K extends W{emit(...e){let r;const n=Array.from(this.listeners);if(n.length>0){let s=0;const c=a=>a===!1?!1:s<n.length?Promise.resolve(n[s++].apply(null,e)).then(c):a;r=c()}return Promise.resolve(r)}}function it(t,e){if(!Y(e))return!1;if(t!==e){for(const r in t)if(!(r in e))return!1}return!0}class Ee extends W{emit(e){Y(e)||m(`The data for the "${this.type}" hook should be an object.`);for(const r of this.listeners)try{const n=r(e);if(it(e,n))e=n;else{this.onerror(`A plugin returned an unacceptable value for the "${this.type}" type.`);break}}catch(n){R(n),this.onerror(n)}return e}constructor(e){super(),this.onerror=m,this.type=e}}class se extends W{emit(e){Y(e)||m(`The response data for the "${this.type}" hook must be an object.`);const r=Array.from(this.listeners);if(r.length>0){let n=0;const s=a=>(R(a),this.onerror(a),e),c=a=>{if(it(e,a)){if(e=a,n<r.length)try{return Promise.resolve(r[n++](e)).then(c,s)}catch(l){return s(l)}}else this.onerror(`A plugin returned an incorrect value for the "${this.type}" type.`);return e};return Promise.resolve(c(e))}return Promise.resolve(e)}constructor(e){super(),this.onerror=m,this.type=e}}class ae{applyPlugin(e){b(le(e),"Plugin configuration is invalid.");const r=e.name;b(r,"A name must be provided by the plugin."),this.registerPlugins[r]||(this.registerPlugins[r]=e,Object.keys(this.lifecycle).forEach(n=>{const s=e[n];s&&this.lifecycle[n].on(s)}))}removePlugin(e){b(e,"A name is required.");const r=this.registerPlugins[e];b(r,`The plugin "${e}" is not registered.`),Object.keys(r).forEach(n=>{n!=="name"&&this.lifecycle[n].remove(r[n])})}inherit({lifecycle:e,registerPlugins:r}){Object.keys(e).forEach(n=>{b(!this.lifecycle[n],`The hook "${n}" has a conflict and cannot be inherited.`),this.lifecycle[n]=e[n]}),Object.keys(r).forEach(n=>{b(!this.registerPlugins[n],`The plugin "${n}" has a conflict and cannot be inherited.`),this.applyPlugin(r[n])})}constructor(e){this.registerPlugins={},this.lifecycle=e,this.lifecycleKeys=Object.keys(e)}}function at(t){return i._extends({resourceCategory:"sync",share:!0,depsRemote:!0,prefetchInterface:!1},t)}function Zt(t,e){return e.map(r=>{const n=Wt(t,r.nameOrAlias);return b(n,`Unable to preload ${r.nameOrAlias} as it is not included in ${!n&&d.safeToString({remoteInfo:n,remotes:t})}`),{remote:n,preloadConfig:at(r)}})}function Qt(t){return t?t.map(e=>e==="."?e:e.startsWith("./")?e.replace("./",""):e):[]}function lt(t,e,r,n=!0){const{cssAssets:s,jsAssetsWithoutEntry:c,entryAssets:a}=r;if(e.options.inBrowser){if(a.forEach(l=>{const{moduleInfo:h}=l,_=e.moduleCache.get(t.name);me(_?{origin:e,remoteInfo:h,remoteEntryExports:_.remoteEntryExports}:{origin:e,remoteInfo:h,remoteEntryExports:void 0})}),n){const l={rel:"preload",as:"style"};s.forEach(h=>{const{link:_,needAttach:g}=d.createLink({url:h,cb:()=>{},attrs:l,createLinkHook:(y,E)=>{const $=e.loaderHook.lifecycle.createLink.emit({url:y,attrs:E});if($ instanceof HTMLLinkElement)return $}});g&&document.head.appendChild(_)})}else{const l={rel:"stylesheet",type:"text/css"};s.forEach(h=>{const{link:_,needAttach:g}=d.createLink({url:h,cb:()=>{},attrs:l,createLinkHook:(y,E)=>{const $=e.loaderHook.lifecycle.createLink.emit({url:y,attrs:E});if($ instanceof HTMLLinkElement)return $},needDeleteLink:!1});g&&document.head.appendChild(_)})}if(n){const l={rel:"preload",as:"script"};c.forEach(h=>{const{link:_,needAttach:g}=d.createLink({url:h,cb:()=>{},attrs:l,createLinkHook:(y,E)=>{const $=e.loaderHook.lifecycle.createLink.emit({url:y,attrs:E});if($ instanceof HTMLLinkElement)return $}});g&&document.head.appendChild(_)})}else{const l={fetchpriority:"high",type:(t==null?void 0:t.type)==="module"?"module":"text/javascript"};c.forEach(h=>{const{script:_,needAttach:g}=d.createScript({url:h,cb:()=>{},attrs:l,createScriptHook:(y,E)=>{const $=e.loaderHook.lifecycle.createScript.emit({url:y,attrs:E});if($ instanceof HTMLScriptElement)return $},needDeleteScript:!0});g&&document.head.appendChild(_)})}}}function ct(t,e){const r=ce(e);r.url||m(`The attribute remoteEntry of ${t.name} must not be undefined.`);let n=d.getResourceUrl(e,r.url);!d.isBrowserEnv()&&!n.startsWith("http")&&(n=`https:${n}`),t.type=r.type,t.entryGlobalName=r.globalName,t.entry=n,t.version=e.version,t.buildVersion=e.buildVersion}function er(){return{name:"snapshot-plugin",async afterResolve(t){const{remote:e,pkgNameOrAlias:r,expose:n,origin:s,remoteInfo:c}=t;if(!L(e)||!O(e)){const{remoteSnapshot:a,globalSnapshot:l}=await s.snapshotHandler.loadRemoteSnapshotInfo(e);ct(c,a);const h={remote:e,preloadConfig:{nameOrAlias:r,exposes:[n],resourceCategory:"sync",share:!1,depsRemote:!1}},_=await s.remoteHandler.hooks.lifecycle.generatePreloadAssets.emit({origin:s,preloadOptions:h,remoteInfo:c,remote:e,remoteSnapshot:a,globalSnapshot:l});return _&<(c,s,_,!1),i._extends({},t,{remoteSnapshot:a})}return t}}}function tr(t){const e=t.split(":");return e.length===1?{name:e[0],version:void 0}:e.length===2?{name:e[0],version:e[1]}:{name:e[1],version:e[2]}}function ut(t,e,r,n,s={},c){const a=w(e),{value:l}=ne(t,a),h=c||l;if(h&&!d.isManifestProvider(h)&&(r(h,e,n),h.remotesInfo)){const _=Object.keys(h.remotesInfo);for(const g of _){if(s[g])continue;s[g]=!0;const y=tr(g),E=h.remotesInfo[g];ut(t,{name:y.name,version:E.matchedVersion},r,!1,s,void 0)}}}function rr(t,e,r,n,s){const c=[],a=[],l=[],h=new Set,_=new Set,{options:g}=t,{preloadConfig:y}=e,{depsRemote:E}=y;if(ut(n,r,(N,M,F)=>{let A;if(F)A=y;else if(Array.isArray(E)){const q=E.find(X=>X.nameOrAlias===M.name||X.nameOrAlias===M.alias);if(!q)return;A=at(q)}else if(E===!0)A=y;else return;const D=d.getResourceUrl(N,ce(N).url);D&&l.push({name:M.name,moduleInfo:{name:M.name,entry:D,type:"remoteEntryType"in N?N.remoteEntryType:"global",entryGlobalName:"globalName"in N?N.globalName:M.name,shareScope:"",version:"version"in N?N.version:void 0},url:D});let H="modules"in N?N.modules:[];const U=Qt(A.exposes);if(U.length&&"modules"in N){var Q;H=N==null||(Q=N.modules)==null?void 0:Q.reduce((q,X)=>((U==null?void 0:U.indexOf(X.moduleName))!==-1&&q.push(X),q),[])}function k(q){const X=q.map(J=>d.getResourceUrl(N,J));return A.filter?X.filter(A.filter):X}if(H){const q=H.length;for(let X=0;X<q;X++){const J=H[X],Fe=`${M.name}/${J.moduleName}`;t.remoteHandler.hooks.lifecycle.handlePreloadModule.emit({id:J.moduleName==="."?M.name:Fe,name:M.name,remoteSnapshot:N,preloadConfig:A,remote:M,origin:t}),!Ve(Fe)&&(A.resourceCategory==="all"?(c.push(...k(J.assets.css.async)),c.push(...k(J.assets.css.sync)),a.push(...k(J.assets.js.async)),a.push(...k(J.assets.js.sync))):(A.resourceCategory="sync")&&(c.push(...k(J.assets.css.sync)),a.push(...k(J.assets.js.sync))),We(Fe))}}},!0,{},s),s.shared){const N=(M,F)=>{const A=oe(t.shareScopeMap,F.sharedName,M,t.sharedHandler.hooks.lifecycle.resolveShare);A&&typeof A.lib=="function"&&(F.assets.js.sync.forEach(D=>{h.add(D)}),F.assets.css.sync.forEach(D=>{_.add(D)}))};s.shared.forEach(M=>{var F;const A=(F=g.shared)==null?void 0:F[M.sharedName];if(!A)return;const D=M.version?A.find(U=>U.version===M.version):A;if(!D)return;B(D).forEach(U=>{N(U,M)})})}const I=a.filter(N=>!h.has(N));return{cssAssets:c.filter(N=>!_.has(N)),jsAssetsWithoutEntry:I,entryAssets:l}}const nr=function(){return{name:"generate-preload-assets-plugin",async generatePreloadAssets(t){const{origin:e,preloadOptions:r,remoteInfo:n,remote:s,globalSnapshot:c,remoteSnapshot:a}=t;return L(s)&&O(s)?{cssAssets:[],jsAssetsWithoutEntry:[],entryAssets:[{name:s.name,url:s.entry,moduleInfo:{name:n.name,entry:s.entry,type:n.type||"global",entryGlobalName:"",shareScope:""}}]}:(ct(n,a),rr(e,r,n,c,a))}}};function ft(t,e){const r=ue({name:e.options.name,version:e.options.version}),n=r&&"remotesInfo"in r&&r.remotesInfo&&ne(r.remotesInfo,t.name).value;return n&&n.matchedVersion?{hostGlobalSnapshot:r,globalSnapshot:ge(),remoteSnapshot:ue({name:t.name,version:n.matchedVersion})}:{hostGlobalSnapshot:void 0,globalSnapshot:ge(),remoteSnapshot:ue({name:t.name,version:"version"in t?t.version:void 0})}}class or{async loadSnapshot(e){const{options:r}=this.HostInstance,{hostGlobalSnapshot:n,remoteSnapshot:s,globalSnapshot:c}=this.getGlobalRemoteInfo(e),{remoteSnapshot:a,globalSnapshot:l}=await this.hooks.lifecycle.loadSnapshot.emit({options:r,moduleInfo:e,hostGlobalSnapshot:n,remoteSnapshot:s,globalSnapshot:c});return{remoteSnapshot:a,globalSnapshot:l}}async loadRemoteSnapshotInfo(e){const{options:r}=this.HostInstance;await this.hooks.lifecycle.beforeLoadRemoteSnapshot.emit({options:r,moduleInfo:e});let n=ue({name:this.HostInstance.options.name,version:this.HostInstance.options.version});n||(n={version:this.HostInstance.options.version||"",remoteEntry:"",remotesInfo:{}},Ne({[this.HostInstance.options.name]:n})),n&&"remotesInfo"in n&&!ne(n.remotesInfo,e.name).value&&("version"in e||"entry"in e)&&(n.remotesInfo=i._extends({},n==null?void 0:n.remotesInfo,{[e.name]:{matchedVersion:"version"in e?e.version:e.entry}}));const{hostGlobalSnapshot:s,remoteSnapshot:c,globalSnapshot:a}=this.getGlobalRemoteInfo(e),{remoteSnapshot:l,globalSnapshot:h}=await this.hooks.lifecycle.loadSnapshot.emit({options:r,moduleInfo:e,hostGlobalSnapshot:s,remoteSnapshot:c,globalSnapshot:a});let _,g;if(l)if(d.isManifestProvider(l)){const y=d.isBrowserEnv()?l.remoteEntry:l.ssrRemoteEntry||l.remoteEntry||"",E=await this.getManifestJson(y,e,{}),$=$e(i._extends({},e,{entry:y}),E);_=E,g=$}else{const{remoteSnapshot:y}=await this.hooks.lifecycle.loadRemoteSnapshot.emit({options:this.HostInstance.options,moduleInfo:e,remoteSnapshot:l,from:"global"});_=y,g=h}else if(L(e)){const y=await this.getManifestJson(e.entry,e,{}),E=$e(e,y),{remoteSnapshot:$}=await this.hooks.lifecycle.loadRemoteSnapshot.emit({options:this.HostInstance.options,moduleInfo:e,remoteSnapshot:y,from:"global"});_=$,g=E}else m(u.getShortErrorMsg(u.RUNTIME_007,u.runtimeDescMap,{hostName:e.name,hostVersion:e.version,globalSnapshot:JSON.stringify(h)}));return await this.hooks.lifecycle.afterLoadSnapshot.emit({options:r,moduleInfo:e,remoteSnapshot:_}),{remoteSnapshot:_,globalSnapshot:g}}getGlobalRemoteInfo(e){return ft(e,this.HostInstance)}async getManifestJson(e,r,n){const s=async()=>{let a=this.manifestCache.get(e);if(a)return a;try{let l=await this.loaderHook.lifecycle.fetch.emit(e,{});(!l||!(l instanceof Response))&&(l=await fetch(e,{})),a=await l.json()}catch(l){a=await this.HostInstance.remoteHandler.hooks.lifecycle.errorLoadRemote.emit({id:e,error:m,from:"runtime",lifecycle:"afterResolve",origin:this.HostInstance}),a||(delete this.manifestLoading[e],m(u.getShortErrorMsg(u.RUNTIME_003,u.runtimeDescMap,{manifestUrl:e,moduleName:r.name},`${l}`)))}return b(a.metaData&&a.exposes&&a.shared,`${e} is not a federation manifest`),this.manifestCache.set(e,a),a},c=async()=>{const a=await s(),l=d.generateSnapshotFromManifest(a,{version:e}),{remoteSnapshot:h}=await this.hooks.lifecycle.loadRemoteSnapshot.emit({options:this.HostInstance.options,moduleInfo:r,manifestJson:a,remoteSnapshot:l,manifestUrl:e,from:"manifest"});return h};return this.manifestLoading[e]||(this.manifestLoading[e]=c().then(a=>a)),this.manifestLoading[e]}constructor(e){this.loadingHostSnapshot=null,this.manifestCache=new Map,this.hooks=new ae({beforeLoadRemoteSnapshot:new K("beforeLoadRemoteSnapshot"),loadSnapshot:new se("loadGlobalSnapshot"),loadRemoteSnapshot:new se("loadRemoteSnapshot"),afterLoadSnapshot:new se("afterLoadSnapshot")}),this.manifestLoading=C.__FEDERATION__.__MANIFEST_LOADING__,this.HostInstance=e,this.loaderHook=e.loaderHook}}class sr{registerShared(e,r){const{shareInfos:n,shared:s}=nt(e,r);return Object.keys(n).forEach(a=>{n[a].forEach(h=>{!oe(this.shareScopeMap,a,h,this.hooks.lifecycle.resolveShare)&&h&&h.lib&&this.setShared({pkgName:a,lib:h.lib,get:h.get,loaded:!0,shared:h,from:r.name})})}),{shareInfos:n,shared:s}}async loadShare(e,r){const{host:n}=this,s=ot({pkgName:e,extraOptions:r,shareInfos:n.options.shared});s!=null&&s.scope&&await Promise.all(s.scope.map(async _=>{await Promise.all(this.initializeSharing(_,{strategy:s.strategy}))}));const c=await this.hooks.lifecycle.beforeLoadShare.emit({pkgName:e,shareInfo:s,shared:n.options.shared,origin:n}),{shareInfo:a}=c;b(a,`Cannot find ${e} Share in the ${n.options.name}. Please ensure that the ${e} Share parameters have been injected`);const l=oe(this.shareScopeMap,e,a,this.hooks.lifecycle.resolveShare),h=_=>{_.useIn||(_.useIn=[]),T(_.useIn,n.options.name)};if(l&&l.lib)return h(l),l.lib;if(l&&l.loading&&!l.loaded){const _=await l.loading;return l.loaded=!0,l.lib||(l.lib=_),h(l),_}else if(l){const g=(async()=>{const y=await l.get();a.lib=y,a.loaded=!0,h(a);const E=oe(this.shareScopeMap,e,a,this.hooks.lifecycle.resolveShare);return E&&(E.lib=y,E.loaded=!0),y})();return this.setShared({pkgName:e,loaded:!1,shared:l,from:n.options.name,lib:null,loading:g}),g}else{if(r!=null&&r.customShareInfo)return!1;const g=(async()=>{const y=await a.get();a.lib=y,a.loaded=!0,h(a);const E=oe(this.shareScopeMap,e,a,this.hooks.lifecycle.resolveShare);return E&&(E.lib=y,E.loaded=!0),y})();return this.setShared({pkgName:e,loaded:!1,shared:a,from:n.options.name,lib:null,loading:g}),g}}initializeSharing(e=de,r){const{host:n}=this,s=r==null?void 0:r.from,c=r==null?void 0:r.strategy;let a=r==null?void 0:r.initScope;const l=[];if(s!=="build"){const{initTokens:I}=this;a||(a=[]);let P=I[e];if(P||(P=I[e]={from:this.host.name}),a.indexOf(P)>=0)return l;a.push(P)}const h=this.shareScopeMap,_=n.options.name;h[e]||(h[e]={});const g=h[e],y=(I,P)=>{var N;const{version:M,eager:F}=P;g[I]=g[I]||{};const A=g[I],D=A[M],H=!!(D&&(D.eager||(N=D.shareConfig)!=null&&N.eager));(!D||D.strategy!=="loaded-first"&&!D.loaded&&(!F!=!H?F:_>D.from))&&(A[M]=P)},E=I=>I&&I.init&&I.init(h[e],a),$=async I=>{const{module:P}=await n.remoteHandler.getRemoteModuleAndOptions({id:I});if(P.getEntry){let N;try{N=await P.getEntry()}catch(M){N=await n.remoteHandler.hooks.lifecycle.errorLoadRemote.emit({id:I,error:M,from:"runtime",lifecycle:"beforeLoadShare",origin:n})}P.inited||(await E(N),P.inited=!0)}};return Object.keys(n.options.shared).forEach(I=>{n.options.shared[I].forEach(N=>{N.scope.includes(e)&&y(I,N)})}),(n.options.shareStrategy==="version-first"||c==="version-first")&&n.options.remotes.forEach(I=>{I.shareScope===e&&l.push($(I.name))}),l}loadShareSync(e,r){const{host:n}=this,s=ot({pkgName:e,extraOptions:r,shareInfos:n.options.shared});s!=null&&s.scope&&s.scope.forEach(l=>{this.initializeSharing(l,{strategy:s.strategy})});const c=oe(this.shareScopeMap,e,s,this.hooks.lifecycle.resolveShare),a=l=>{l.useIn||(l.useIn=[]),T(l.useIn,n.options.name)};if(c){if(typeof c.lib=="function")return a(c),c.loaded||(c.loaded=!0,c.from===n.options.name&&(s.loaded=!0)),c.lib;if(typeof c.get=="function"){const l=c.get();if(!(l instanceof Promise))return a(c),this.setShared({pkgName:e,loaded:!0,from:n.options.name,lib:l,shared:c}),l}}if(s.lib)return s.loaded||(s.loaded=!0),s.lib;if(s.get){const l=s.get();if(l instanceof Promise){const h=(r==null?void 0:r.from)==="build"?u.RUNTIME_005:u.RUNTIME_006;throw new Error(u.getShortErrorMsg(h,u.runtimeDescMap,{hostName:n.options.name,sharedPkgName:e}))}return s.lib=l,this.setShared({pkgName:e,loaded:!0,from:n.options.name,lib:s.lib,shared:s}),s.lib}throw new Error(u.getShortErrorMsg(u.RUNTIME_006,u.runtimeDescMap,{hostName:n.options.name,sharedPkgName:e}))}initShareScopeMap(e,r,n={}){const{host:s}=this;this.shareScopeMap[e]=r,this.hooks.lifecycle.initContainerShareScopeMap.emit({shareScope:r,options:s.options,origin:s,scopeName:e,hostShareScopeMap:n.hostShareScopeMap})}setShared({pkgName:e,shared:r,from:n,lib:s,loading:c,loaded:a,get:l}){const{version:h,scope:_="default"}=r,g=i._object_without_properties_loose(r,["version","scope"]);(Array.isArray(_)?_:[_]).forEach(E=>{if(this.shareScopeMap[E]||(this.shareScopeMap[E]={}),this.shareScopeMap[E][e]||(this.shareScopeMap[E][e]={}),!this.shareScopeMap[E][e][h]){this.shareScopeMap[E][e][h]=i._extends({version:h,scope:["default"]},g,{lib:s,loaded:a,loading:c}),l&&(this.shareScopeMap[E][e][h].get=l);return}const $=this.shareScopeMap[E][e][h];c&&!$.loading&&($.loading=c)})}_setGlobalShareScopeMap(e){const r=we(),n=e.id||e.name;n&&!r[n]&&(r[n]=this.shareScopeMap)}constructor(e){this.hooks=new ae({afterResolve:new se("afterResolve"),beforeLoadShare:new se("beforeLoadShare"),loadShare:new K,resolveShare:new Ee("resolveShare"),initContainerShareScopeMap:new Ee("initContainerShareScopeMap")}),this.host=e,this.shareScopeMap={},this.initTokens={},this._setGlobalShareScopeMap(e.options)}}class ir{formatAndRegisterRemote(e,r){return(r.remotes||[]).reduce((s,c)=>(this.registerRemote(c,s,{force:!1}),s),e.remotes)}setIdToRemoteMap(e,r){const{remote:n,expose:s}=r,{name:c,alias:a}=n;if(this.idToRemoteMap[e]={name:n.name,expose:s},a&&e.startsWith(c)){const l=e.replace(c,a);this.idToRemoteMap[l]={name:n.name,expose:s};return}if(a&&e.startsWith(a)){const l=e.replace(a,c);this.idToRemoteMap[l]={name:n.name,expose:s}}}async loadRemote(e,r){const{host:n}=this;try{const{loadFactory:s=!0}=r||{loadFactory:!0},{module:c,moduleOptions:a,remoteMatchInfo:l}=await this.getRemoteModuleAndOptions({id:e}),{pkgNameOrAlias:h,remote:_,expose:g,id:y,remoteSnapshot:E}=l,$=await c.get(y,g,r,E),I=await this.hooks.lifecycle.onLoad.emit({id:y,pkgNameOrAlias:h,expose:g,exposeModule:s?$:void 0,exposeModuleFactory:s?void 0:$,remote:_,options:a,moduleInstance:c,origin:n});return this.setIdToRemoteMap(e,l),typeof I=="function"?I:$}catch(s){const{from:c="runtime"}=r||{from:"runtime"},a=await this.hooks.lifecycle.errorLoadRemote.emit({id:e,error:s,from:c,lifecycle:"onLoad",origin:n});if(!a)throw s;return a}}async preloadRemote(e){const{host:r}=this;await this.hooks.lifecycle.beforePreloadRemote.emit({preloadOps:e,options:r.options,origin:r});const n=Zt(r.options.remotes,e);await Promise.all(n.map(async s=>{const{remote:c}=s,a=ve(c),{globalSnapshot:l,remoteSnapshot:h}=await r.snapshotHandler.loadRemoteSnapshotInfo(c),_=await this.hooks.lifecycle.generatePreloadAssets.emit({origin:r,preloadOptions:s,remote:c,remoteInfo:a,globalSnapshot:l,remoteSnapshot:h});_&<(a,r,_)}))}registerRemotes(e,r){const{host:n}=this;e.forEach(s=>{this.registerRemote(s,n.options.remotes,{force:r==null?void 0:r.force})})}async getRemoteModuleAndOptions(e){const{host:r}=this,{id:n}=e;let s;try{s=await this.hooks.lifecycle.beforeRequest.emit({id:n,options:r.options,origin:r})}catch(I){if(s=await this.hooks.lifecycle.errorLoadRemote.emit({id:n,options:r.options,origin:r,from:"runtime",error:I,lifecycle:"beforeRequest"}),!s)throw I}const{id:c}=s,a=st(r.options.remotes,c);b(a,u.getShortErrorMsg(u.RUNTIME_004,u.runtimeDescMap,{hostName:r.options.name,requestId:c}));const{remote:l}=a,h=ve(l),_=await r.sharedHandler.hooks.lifecycle.afterResolve.emit(i._extends({id:c},a,{options:r.options,origin:r,remoteInfo:h})),{remote:g,expose:y}=_;b(g&&y,`The 'beforeRequest' hook was executed, but it failed to return the correct 'remote' and 'expose' values while loading ${c}.`);let E=r.moduleCache.get(g.name);const $={host:r,remoteInfo:h};return E||(E=new De($),r.moduleCache.set(g.name,E)),{module:E,moduleOptions:$,remoteMatchInfo:_}}registerRemote(e,r,n){const{host:s}=this,c=()=>{if(e.alias){const l=r.find(h=>{var _;return e.alias&&(h.name.startsWith(e.alias)||((_=h.alias)==null?void 0:_.startsWith(e.alias)))});b(!l,`The alias ${e.alias} of remote ${e.name} is not allowed to be the prefix of ${l&&l.name} name or alias`)}"entry"in e&&d.isBrowserEnv()&&!e.entry.startsWith("http")&&(e.entry=new URL(e.entry,window.location.origin).href),e.shareScope||(e.shareScope=de),e.type||(e.type=Xe)};this.hooks.lifecycle.beforeRegisterRemote.emit({remote:e,origin:s});const a=r.find(l=>l.name===e.name);if(!a)c(),r.push(e),this.hooks.lifecycle.registerRemote.emit({remote:e,origin:s});else{const l=[`The remote "${e.name}" is already registered.`,"Please note that overriding it may cause unexpected errors."];n!=null&&n.force&&(this.removeRemote(a),c(),r.push(e),this.hooks.lifecycle.registerRemote.emit({remote:e,origin:s}),d.warn(l.join(" ")))}}removeRemote(e){try{const{host:n}=this,{name:s}=e,c=n.options.remotes.findIndex(l=>l.name===s);c!==-1&&n.options.remotes.splice(c,1);const a=n.moduleCache.get(e.name);if(a){const l=a.remoteInfo,h=l.entryGlobalName;if(v[h]){var r;(r=Object.getOwnPropertyDescriptor(v,h))!=null&&r.configurable?delete v[h]:v[h]=void 0}const _=Le(a.remoteInfo);re[_]&&delete re[_],n.snapshotHandler.manifestCache.delete(l.entry);let g=l.buildVersion?d.composeKeyWithSeparator(l.name,l.buildVersion):l.name;const y=v.__FEDERATION__.__INSTANCES__.findIndex($=>l.buildVersion?$.options.id===g:$.name===g);if(y!==-1){const $=v.__FEDERATION__.__INSTANCES__[y];g=$.options.id||g;const I=we();let P=!0;const N=[];Object.keys(I).forEach(M=>{const F=I[M];F&&Object.keys(F).forEach(A=>{const D=F[A];D&&Object.keys(D).forEach(H=>{const U=D[H];U&&Object.keys(U).forEach(Q=>{const k=U[Q];k&&typeof k=="object"&&k.from===l.name&&(k.loaded||k.loading?(k.useIn=k.useIn.filter(q=>q!==l.name),k.useIn.length?P=!1:N.push([M,A,H,Q])):N.push([M,A,H,Q]))})})})}),P&&($.shareScopeMap={},delete I[g]),N.forEach(([M,F,A,D])=>{var H,U,Q;(Q=I[M])==null||(U=Q[F])==null||(H=U[A])==null||delete H[D]}),v.__FEDERATION__.__INSTANCES__.splice(y,1)}const{hostGlobalSnapshot:E}=ft(e,n);if(E){const $=E&&"remotesInfo"in E&&E.remotesInfo&&ne(E.remotesInfo,e.name).key;$&&(delete E.remotesInfo[$],C.__FEDERATION__.__MANIFEST_LOADING__[$]&&delete C.__FEDERATION__.__MANIFEST_LOADING__[$])}n.moduleCache.delete(e.name)}}catch(n){S.log("removeRemote fail: ",n)}}constructor(e){this.hooks=new ae({beforeRegisterRemote:new Ee("beforeRegisterRemote"),registerRemote:new Ee("registerRemote"),beforeRequest:new se("beforeRequest"),onLoad:new K("onLoad"),handlePreloadModule:new W("handlePreloadModule"),errorLoadRemote:new K("errorLoadRemote"),beforePreloadRemote:new K("beforePreloadRemote"),generatePreloadAssets:new K("generatePreloadAssets"),afterPreloadRemote:new K,loadEntry:new K}),this.host=e,this.idToRemoteMap={}}}class ar{initOptions(e){this.registerPlugins(e.plugins);const r=this.formatOptions(this.options,e);return this.options=r,r}async loadShare(e,r){return this.sharedHandler.loadShare(e,r)}loadShareSync(e,r){return this.sharedHandler.loadShareSync(e,r)}initializeSharing(e=de,r){return this.sharedHandler.initializeSharing(e,r)}initRawContainer(e,r,n){const s=ve({name:e,entry:r}),c=new De({host:this,remoteInfo:s});return c.remoteEntryExports=n,this.moduleCache.set(e,c),c}async loadRemote(e,r){return this.remoteHandler.loadRemote(e,r)}async preloadRemote(e){return this.remoteHandler.preloadRemote(e)}initShareScopeMap(e,r,n={}){this.sharedHandler.initShareScopeMap(e,r,n)}formatOptions(e,r){const{shared:n}=nt(e,r),{userOptions:s,options:c}=this.hooks.lifecycle.beforeInit.emit({origin:this,userOptions:r,options:e,shareInfo:n}),a=this.remoteHandler.formatAndRegisterRemote(c,s),{shared:l}=this.sharedHandler.registerShared(c,s),h=[...c.plugins];s.plugins&&s.plugins.forEach(g=>{h.includes(g)||h.push(g)});const _=i._extends({},e,r,{plugins:h,remotes:a,shared:l});return this.hooks.lifecycle.init.emit({origin:this,options:_}),_}registerPlugins(e){const r=Xt(e,[this.hooks,this.remoteHandler.hooks,this.sharedHandler.hooks,this.snapshotHandler.hooks,this.loaderHook,this.bridgeHook]);this.options.plugins=this.options.plugins.reduce((n,s)=>(s&&n&&!n.find(c=>c.name===s.name)&&n.push(s),n),r||[])}registerRemotes(e,r){return this.remoteHandler.registerRemotes(e,r)}constructor(e){this.hooks=new ae({beforeInit:new Ee("beforeInit"),init:new W,beforeInitContainer:new se("beforeInitContainer"),initContainer:new se("initContainer")}),this.version="0.6.20",this.moduleCache=new Map,this.loaderHook=new ae({getModuleInfo:new W,createScript:new W,createLink:new W,fetch:new K,loadEntryError:new K,getModuleFactory:new K}),this.bridgeHook=new ae({beforeBridgeRender:new W,afterBridgeRender:new W,beforeBridgeDestroy:new W,afterBridgeDestroy:new W});const r={id:Vt(),name:e.name,plugins:[er(),nr()],remotes:[],shared:{},inBrowser:d.isBrowserEnv()};this.name=e.name,this.options=r,this.snapshotHandler=new or(this),this.sharedHandler=new sr(this),this.remoteHandler=new ir(this),this.shareScopeMap=this.sharedHandler.shareScopeMap,this.registerPlugins([...r.plugins,...e.plugins||[]]),this.options=this.formatOptions(r,e)}}var lr=Object.freeze({__proto__:null});Object.defineProperty(o,"loadScript",{enumerable:!0,get:function(){return d.loadScript}}),Object.defineProperty(o,"loadScriptNode",{enumerable:!0,get:function(){return d.loadScriptNode}}),o.CurrentGlobal=v,o.FederationHost=ar,o.Global=C,o.Module=De,o.addGlobalSnapshot=Ne,o.assert=b,o.getGlobalFederationConstructor=Ce,o.getGlobalSnapshot=ge,o.getInfoWithoutType=ne,o.getRegisteredShare=oe,o.getRemoteEntry=me,o.getRemoteInfo=ve,o.helpers=Bt,o.isStaticResourcesEqual=Z,o.matchRemoteWithNameAndExpose=st,o.registerGlobalPlugins=Ge,o.resetFederationGlobalInfo=je,o.safeWrapper=G,o.satisfy=_e,o.setGlobalFederationConstructor=He,o.setGlobalFederationInstance=ke,o.types=lr})(index_cjs$2);var utils_cjs={},runtimeCore=index_cjs$2;function getBuilderId(){return typeof FEDERATION_BUILD_IDENTIFIER<"u"?FEDERATION_BUILD_IDENTIFIER:""}function getGlobalFederationInstance(o,i){const d=getBuilderId();return runtimeCore.CurrentGlobal.__FEDERATION__.__INSTANCES__.find(u=>!!(d&&u.options.id===getBuilderId()||u.options.name===o&&!u.options.version&&!i||u.options.name===o&&i&&u.options.version===i))}utils_cjs.getGlobalFederationInstance=getGlobalFederationInstance;(function(o){var i=index_cjs$2,d=utils_cjs;let u=null;function p(O){const G=d.getGlobalFederationInstance(O.name,O.version);if(G)return G.initOptions(O),u||(u=G),G;{const Y=i.getGlobalFederationConstructor()||i.FederationHost;return u=new Y(O),i.setGlobalFederationInstance(u),u}}function S(...O){return i.assert(u,"Please call init first"),u.loadRemote.apply(u,O)}function b(...O){return i.assert(u,"Please call init first"),u.loadShare.apply(u,O)}function m(...O){return i.assert(u,"Please call init first"),u.loadShareSync.apply(u,O)}function R(...O){return i.assert(u,"Please call init first"),u.preloadRemote.apply(u,O)}function T(...O){return i.assert(u,"Please call init first"),u.registerRemotes.apply(u,O)}function w(...O){return i.assert(u,"Please call init first"),u.registerPlugins.apply(u,O)}function L(){return u}i.setGlobalFederationConstructor(i.FederationHost),Object.defineProperty(o,"FederationHost",{enumerable:!0,get:function(){return i.FederationHost}}),Object.defineProperty(o,"Module",{enumerable:!0,get:function(){return i.Module}}),Object.defineProperty(o,"getRemoteEntry",{enumerable:!0,get:function(){return i.getRemoteEntry}}),Object.defineProperty(o,"getRemoteInfo",{enumerable:!0,get:function(){return i.getRemoteInfo}}),Object.defineProperty(o,"loadScript",{enumerable:!0,get:function(){return i.loadScript}}),Object.defineProperty(o,"loadScriptNode",{enumerable:!0,get:function(){return i.loadScriptNode}}),Object.defineProperty(o,"registerGlobalPlugins",{enumerable:!0,get:function(){return i.registerGlobalPlugins}}),o.getInstance=L,o.init=p,o.loadRemote=S,o.loadShare=b,o.loadShareSync=m,o.preloadRemote=R,o.registerPlugins=w,o.registerRemotes=T})(index_cjs$3);let initResolve,initReject;const initPromise=new Promise((o,i)=>{initResolve=o,initReject=i});var iobroker_admin__mf_v__runtimeInit__mf_v__={initPromise,initResolve,initReject};export{iobroker_admin__mf_v__runtimeInit__mf_v__ as a,index_cjs$3 as i};
|
|
@@ -1,280 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.checkWellKnownPasswords = checkWellKnownPasswords;
|
|
4
|
-
exports.setLinuxPassword = setLinuxPassword;
|
|
5
|
-
const child_process_1 = require("child_process");
|
|
6
|
-
const WELL_KNOWN_CREDENTIALS = [
|
|
7
|
-
['root', 'root'],
|
|
8
|
-
['admin', 'admin'],
|
|
9
|
-
['admin', 'default'],
|
|
10
|
-
['root', 'default'],
|
|
11
|
-
['iob', '2024=smart!'],
|
|
12
|
-
['pi', 'pi'],
|
|
13
|
-
['pi', '12345'],
|
|
14
|
-
['pi', 'raspberry'],
|
|
15
|
-
['pi', 'default'],
|
|
16
|
-
['pi', 'pi12345'],
|
|
17
|
-
];
|
|
18
|
-
// Function to execute 'su' command and provide password
|
|
19
|
-
function checkLinuxPassword(login, password) {
|
|
20
|
-
// Check the os
|
|
21
|
-
if (process.platform !== 'linux') {
|
|
22
|
-
console.error('This function is only available on Linux');
|
|
23
|
-
return Promise.resolve(false);
|
|
24
|
-
}
|
|
25
|
-
if (login === 'Password:' || login === 'failure') {
|
|
26
|
-
console.error('This function requires a login name');
|
|
27
|
-
return Promise.resolve(false);
|
|
28
|
-
}
|
|
29
|
-
console.log(`\n[LOG] -------- Check ${login}/${password}`);
|
|
30
|
-
return new Promise((resolve, reject) => {
|
|
31
|
-
try {
|
|
32
|
-
const su = (0, child_process_1.spawn)('su', [login]);
|
|
33
|
-
let closed = false;
|
|
34
|
-
let result = false;
|
|
35
|
-
let responseTimeout = setTimeout(() => {
|
|
36
|
-
closed = true;
|
|
37
|
-
responseTimeout = null;
|
|
38
|
-
su.kill();
|
|
39
|
-
}, 3000);
|
|
40
|
-
function _checkPassword(data) {
|
|
41
|
-
if (!responseTimeout || closed) {
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
data = data.replace(/\r/g, ' ').replace(/\n/g, ' ').trim();
|
|
45
|
-
console.log(`[STDX] "${data}"`);
|
|
46
|
-
if (data.endsWith(':')) {
|
|
47
|
-
try {
|
|
48
|
-
su.stdin?.write(`${password}\n`);
|
|
49
|
-
}
|
|
50
|
-
catch {
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
setTimeout(() => {
|
|
54
|
-
if (!responseTimeout || closed) {
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
|
-
console.log(`[LOG] write whoami`);
|
|
58
|
-
try {
|
|
59
|
-
su.stdin?.write(`whoami\n`);
|
|
60
|
-
}
|
|
61
|
-
catch {
|
|
62
|
-
// ignore
|
|
63
|
-
}
|
|
64
|
-
}, 50);
|
|
65
|
-
}
|
|
66
|
-
else if (data === login) {
|
|
67
|
-
result = true;
|
|
68
|
-
su.kill();
|
|
69
|
-
// todo: add ru, uk, pt,....
|
|
70
|
-
}
|
|
71
|
-
else if (data.toLowerCase().includes('failure') || data.toLowerCase().includes('fehler')) {
|
|
72
|
-
su.kill();
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
su.stdin?.on('error', () => {
|
|
76
|
-
closed = true;
|
|
77
|
-
});
|
|
78
|
-
su.stdout?.on('error', () => {
|
|
79
|
-
closed = true;
|
|
80
|
-
});
|
|
81
|
-
su.stderr?.on('error', () => {
|
|
82
|
-
closed = true;
|
|
83
|
-
});
|
|
84
|
-
su.stdin?.on('finish', () => {
|
|
85
|
-
closed = true;
|
|
86
|
-
});
|
|
87
|
-
su.stdout?.on('finish', () => {
|
|
88
|
-
closed = true;
|
|
89
|
-
});
|
|
90
|
-
su.stderr?.on('finish', () => {
|
|
91
|
-
closed = true;
|
|
92
|
-
});
|
|
93
|
-
su.stdin?.on('close', () => {
|
|
94
|
-
closed = true;
|
|
95
|
-
});
|
|
96
|
-
su.stdout?.on('close', () => {
|
|
97
|
-
closed = true;
|
|
98
|
-
});
|
|
99
|
-
su.stderr?.on('close', () => {
|
|
100
|
-
closed = true;
|
|
101
|
-
});
|
|
102
|
-
// Listen for data on stdout
|
|
103
|
-
su.stdout.on('data', data => {
|
|
104
|
-
if (data && responseTimeout) {
|
|
105
|
-
_checkPassword(data.toString());
|
|
106
|
-
}
|
|
107
|
-
});
|
|
108
|
-
// Listen for data on stderr
|
|
109
|
-
su.stderr.on('data', data => {
|
|
110
|
-
if (data && responseTimeout) {
|
|
111
|
-
_checkPassword(data.toString());
|
|
112
|
-
}
|
|
113
|
-
});
|
|
114
|
-
// Listen for the close event
|
|
115
|
-
su.on('close', () => {
|
|
116
|
-
closed = true;
|
|
117
|
-
console.log(`[LOG] -------- closed with result: ${result}\n`);
|
|
118
|
-
if (responseTimeout) {
|
|
119
|
-
clearTimeout(responseTimeout);
|
|
120
|
-
responseTimeout = null;
|
|
121
|
-
}
|
|
122
|
-
resolve(result);
|
|
123
|
-
});
|
|
124
|
-
}
|
|
125
|
-
catch (e) {
|
|
126
|
-
closed = true;
|
|
127
|
-
console.error(`[LOG] -------- Error by execution: ${e.message}\n`);
|
|
128
|
-
reject(new Error(e));
|
|
129
|
-
}
|
|
130
|
-
});
|
|
131
|
-
}
|
|
132
|
-
/** Check if the system has well-known passwords */
|
|
133
|
-
async function checkWellKnownPasswords() {
|
|
134
|
-
// Check the os
|
|
135
|
-
if (process.platform !== 'linux') {
|
|
136
|
-
console.error('This function is only available on Linux');
|
|
137
|
-
throw new Error('This function is only available on Linux');
|
|
138
|
-
}
|
|
139
|
-
for (const [login, password] of WELL_KNOWN_CREDENTIALS) {
|
|
140
|
-
if (await checkLinuxPassword(login, password)) {
|
|
141
|
-
return { login, password };
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
return null;
|
|
145
|
-
}
|
|
146
|
-
/*
|
|
147
|
-
pi@NanoPi-R5S:/opt$ su pi
|
|
148
|
-
Password: [OLD PASSWORD]\n
|
|
149
|
-
|
|
150
|
-
pi@NanoPi-R5S:/opt$ passwd
|
|
151
|
-
Changing password for pi.
|
|
152
|
-
Current password: [OLD PASSWORD]\n
|
|
153
|
-
|
|
154
|
-
New password: [NEW PASSWORD]\n
|
|
155
|
-
|
|
156
|
-
Retype new password: [NEW PASSWORD]\n
|
|
157
|
-
|
|
158
|
-
The password has not been changed.
|
|
159
|
-
|
|
160
|
-
New password:
|
|
161
|
-
Retype new password:
|
|
162
|
-
|
|
163
|
-
You must choose a longer password.
|
|
164
|
-
|
|
165
|
-
New password:
|
|
166
|
-
Retype new password:
|
|
167
|
-
|
|
168
|
-
passwd: password updated successfully
|
|
169
|
-
pi@NanoPi-R5S:/opt$ exit
|
|
170
|
-
*/
|
|
171
|
-
/*
|
|
172
|
-
Ändern des Passworts für pi.
|
|
173
|
-
Geben Sie das aktuelle Passwort ein:
|
|
174
|
-
passwd: Fehler beim Ändern des Authentifizierungstoken
|
|
175
|
-
passwd: Passwort nicht geändert
|
|
176
|
-
pi@NanoPi-R5S:~$ passwd pi
|
|
177
|
-
Ändern des Passworts für pi.
|
|
178
|
-
Geben Sie das aktuelle Passwort ein:
|
|
179
|
-
Geben Sie ein neues Passwort ein:
|
|
180
|
-
Geben Sie das neue Passwort erneut ein:
|
|
181
|
-
passwd: Passwort erfolgreich geändert
|
|
182
|
-
|
|
183
|
-
*/
|
|
184
|
-
const STATES = {
|
|
185
|
-
S_0_SU_WAIT_PROMPT: 0,
|
|
186
|
-
S_1_PASSWD_WAIT_PROMPT_CURRENT_PASSWORD: 1,
|
|
187
|
-
S_2_PASSWD_WAIT_PROMPT_NEW_PASSWORD: 2,
|
|
188
|
-
S_3_PASSWD_WAIT_PROMPT_RETYPE_NEW_PASSWORD: 3,
|
|
189
|
-
S_4_PASSWD_WAIT_RESPONSE: 4,
|
|
190
|
-
};
|
|
191
|
-
function setLinuxPassword(login, oldPassword, newPassword) {
|
|
192
|
-
return new Promise(resolve => {
|
|
193
|
-
if (WELL_KNOWN_CREDENTIALS.find(item => item[0] === newPassword || item[1] === newPassword)) {
|
|
194
|
-
resolve('New password is well-known too');
|
|
195
|
-
return;
|
|
196
|
-
}
|
|
197
|
-
try {
|
|
198
|
-
const su = (0, child_process_1.spawn)('su', [login]);
|
|
199
|
-
let result = 'Cannot change password';
|
|
200
|
-
let responseTimeout = setTimeout(() => {
|
|
201
|
-
responseTimeout = null;
|
|
202
|
-
result = 'Timeout';
|
|
203
|
-
su.kill();
|
|
204
|
-
}, 3000);
|
|
205
|
-
let state = STATES.S_0_SU_WAIT_PROMPT;
|
|
206
|
-
function _checkPassword(data) {
|
|
207
|
-
data = data.replace(/\r/g, ' ').replace(/\n/g, ' ').trim();
|
|
208
|
-
console.log(`[STDX]: ${data}`);
|
|
209
|
-
if (state === STATES.S_0_SU_WAIT_PROMPT) {
|
|
210
|
-
// Password: [OLD PASSWORD]\n
|
|
211
|
-
if (data.endsWith(':')) {
|
|
212
|
-
console.log(`[LOG]: received request to enter old password`);
|
|
213
|
-
su.stdin.write(`${oldPassword}\n`);
|
|
214
|
-
setTimeout(() => {
|
|
215
|
-
state = STATES.S_1_PASSWD_WAIT_PROMPT_CURRENT_PASSWORD;
|
|
216
|
-
su.stdin.write(`passwd\n`);
|
|
217
|
-
}, 50);
|
|
218
|
-
// todo: add ru, uk, pt,....
|
|
219
|
-
}
|
|
220
|
-
else if (data.toLowerCase().includes('failure') || data.toLowerCase().includes('fehler')) {
|
|
221
|
-
console.log(`[LOG]: received failure message`);
|
|
222
|
-
result = 'Old password not accepted';
|
|
223
|
-
su.kill();
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
else if (state === STATES.S_1_PASSWD_WAIT_PROMPT_CURRENT_PASSWORD) {
|
|
227
|
-
// Changing password for pi.
|
|
228
|
-
// Current password: [OLD PASSWORD]\n
|
|
229
|
-
if (data.endsWith(':')) {
|
|
230
|
-
console.log(`[LOG]: received request to enter new password`);
|
|
231
|
-
state = STATES.S_2_PASSWD_WAIT_PROMPT_NEW_PASSWORD;
|
|
232
|
-
su.stdin.write(`${oldPassword}\n`);
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
else if (state === STATES.S_2_PASSWD_WAIT_PROMPT_NEW_PASSWORD) {
|
|
236
|
-
// New password: [NEW PASSWORD]\n
|
|
237
|
-
if (data.endsWith(':')) {
|
|
238
|
-
console.log(`[LOG]: received request to enter new password`);
|
|
239
|
-
state = STATES.S_3_PASSWD_WAIT_PROMPT_RETYPE_NEW_PASSWORD;
|
|
240
|
-
su.stdin.write(`${newPassword}\n`);
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
else if (state === STATES.S_3_PASSWD_WAIT_PROMPT_RETYPE_NEW_PASSWORD) {
|
|
244
|
-
// Retype new password: [NEW PASSWORD]\n
|
|
245
|
-
if (data.endsWith(':')) {
|
|
246
|
-
console.log(`[LOG]: received request to repeat new password`);
|
|
247
|
-
state = STATES.S_4_PASSWD_WAIT_RESPONSE;
|
|
248
|
-
su.stdin.write(`${newPassword}\n`);
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
else if (state === STATES.S_4_PASSWD_WAIT_RESPONSE) {
|
|
252
|
-
// todo: add ru, uk, pt,....
|
|
253
|
-
if (data.toLowerCase().includes('successfully') || data.toLowerCase().includes('erfolgreich')) {
|
|
254
|
-
result = true;
|
|
255
|
-
}
|
|
256
|
-
else {
|
|
257
|
-
// failure
|
|
258
|
-
result = data;
|
|
259
|
-
}
|
|
260
|
-
su.kill();
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
// Listen for data on stdout
|
|
264
|
-
su.stdout.on('data', data => _checkPassword(data.toString()));
|
|
265
|
-
// Listen for data on stderr
|
|
266
|
-
su.stderr.on('data', data => _checkPassword(data.toString()));
|
|
267
|
-
// Listen for the close event
|
|
268
|
-
su.on('close', () => {
|
|
269
|
-
responseTimeout && clearTimeout(responseTimeout);
|
|
270
|
-
responseTimeout = null;
|
|
271
|
-
resolve(result);
|
|
272
|
-
});
|
|
273
|
-
}
|
|
274
|
-
catch (e) {
|
|
275
|
-
console.error(`Cannot change password: ${e.toString()}`);
|
|
276
|
-
throw new Error(e);
|
|
277
|
-
}
|
|
278
|
-
});
|
|
279
|
-
}
|
|
280
|
-
//# sourceMappingURL=checkLinuxPass.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"checkLinuxPass.js","sourceRoot":"","sources":["../../../src/lib/checkLinuxPass.ts"],"names":[],"mappings":";;AAoIA,0DAYC;AAiDD,4CAsFC;AAvRD,iDAAsC;AAEtC,MAAM,sBAAsB,GAAG;IAC3B,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,OAAO,EAAE,OAAO,CAAC;IAClB,CAAC,OAAO,EAAE,SAAS,CAAC;IACpB,CAAC,MAAM,EAAE,SAAS,CAAC;IACnB,CAAC,KAAK,EAAE,aAAa,CAAC;IACtB,CAAC,IAAI,EAAE,IAAI,CAAC;IACZ,CAAC,IAAI,EAAE,OAAO,CAAC;IACf,CAAC,IAAI,EAAE,WAAW,CAAC;IACnB,CAAC,IAAI,EAAE,SAAS,CAAC;IACjB,CAAC,IAAI,EAAE,SAAS,CAAC;CACpB,CAAC;AAEF,wDAAwD;AACxD,SAAS,kBAAkB,CAAC,KAAa,EAAE,QAAgB;IACvD,eAAe;IACf,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QAC/B,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC1D,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/C,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACrD,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,IAAI,QAAQ,EAAE,CAAC,CAAC;IAE3D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,IAAI,CAAC;YACD,MAAM,EAAE,GAAG,IAAA,qBAAK,EAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;YAChC,IAAI,MAAM,GAAG,KAAK,CAAC;YACnB,IAAI,MAAM,GAAG,KAAK,CAAC;YACnB,IAAI,eAAe,GAA0B,UAAU,CAAC,GAAG,EAAE;gBACzD,MAAM,GAAG,IAAI,CAAC;gBACd,eAAe,GAAG,IAAI,CAAC;gBACvB,EAAE,CAAC,IAAI,EAAE,CAAC;YACd,CAAC,EAAE,IAAI,CAAC,CAAC;YAET,SAAS,cAAc,CAAC,IAAY;gBAChC,IAAI,CAAC,eAAe,IAAI,MAAM,EAAE,CAAC;oBAC7B,OAAO;gBACX,CAAC;gBACD,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC3D,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,CAAC;gBAChC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBACrB,IAAI,CAAC;wBACD,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,QAAQ,IAAI,CAAC,CAAC;oBACrC,CAAC;oBAAC,MAAM,CAAC;wBACL,OAAO;oBACX,CAAC;oBACD,UAAU,CAAC,GAAG,EAAE;wBACZ,IAAI,CAAC,eAAe,IAAI,MAAM,EAAE,CAAC;4BAC7B,OAAO;wBACX,CAAC;wBACD,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;wBAClC,IAAI,CAAC;4BACD,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;wBAChC,CAAC;wBAAC,MAAM,CAAC;4BACL,SAAS;wBACb,CAAC;oBACL,CAAC,EAAE,EAAE,CAAC,CAAC;gBACX,CAAC;qBAAM,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;oBACxB,MAAM,GAAG,IAAI,CAAC;oBACd,EAAE,CAAC,IAAI,EAAE,CAAC;oBACV,4BAA4B;gBAChC,CAAC;qBAAM,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACzF,EAAE,CAAC,IAAI,EAAE,CAAC;gBACd,CAAC;YACL,CAAC;YACD,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,GAAS,EAAE;gBAC7B,MAAM,GAAG,IAAI,CAAC;YAClB,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,EAAE,GAAS,EAAE;gBAC9B,MAAM,GAAG,IAAI,CAAC;YAClB,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,EAAE,GAAS,EAAE;gBAC9B,MAAM,GAAG,IAAI,CAAC;YAClB,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,EAAE,GAAS,EAAE;gBAC9B,MAAM,GAAG,IAAI,CAAC;YAClB,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,EAAE,GAAS,EAAE;gBAC/B,MAAM,GAAG,IAAI,CAAC;YAClB,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,EAAE,GAAS,EAAE;gBAC/B,MAAM,GAAG,IAAI,CAAC;YAClB,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,GAAS,EAAE;gBAC7B,MAAM,GAAG,IAAI,CAAC;YAClB,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,EAAE,GAAS,EAAE;gBAC9B,MAAM,GAAG,IAAI,CAAC;YAClB,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,EAAE,GAAS,EAAE;gBAC9B,MAAM,GAAG,IAAI,CAAC;YAClB,CAAC,CAAC,CAAC;YAEH,4BAA4B;YAC5B,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;gBACxB,IAAI,IAAI,IAAI,eAAe,EAAE,CAAC;oBAC1B,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACpC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,4BAA4B;YAC5B,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;gBACxB,IAAI,IAAI,IAAI,eAAe,EAAE,CAAC;oBAC1B,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACpC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,6BAA6B;YAC7B,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBAChB,MAAM,GAAG,IAAI,CAAC;gBACd,OAAO,CAAC,GAAG,CAAC,sCAAsC,MAAM,IAAI,CAAC,CAAC;gBAC9D,IAAI,eAAe,EAAE,CAAC;oBAClB,YAAY,CAAC,eAAe,CAAC,CAAC;oBAC9B,eAAe,GAAG,IAAI,CAAC;gBAC3B,CAAC;gBACD,OAAO,CAAC,MAAM,CAAC,CAAC;YACpB,CAAC,CAAC,CAAC;QACP,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YAClB,MAAM,GAAG,IAAI,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,sCAAuC,CAAW,CAAC,OAAO,IAAI,CAAC,CAAC;YAC9E,MAAM,CAAC,IAAI,KAAK,CAAC,CAAW,CAAC,CAAC,CAAC;QACnC,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC;AAED,mDAAmD;AAC5C,KAAK,UAAU,uBAAuB;IACzC,eAAe;IACf,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QAC/B,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC1D,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAChE,CAAC;IACD,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,sBAAsB,EAAE,CAAC;QACrD,IAAI,MAAM,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC;YAC5C,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;QAC/B,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;EAwBE;AAEF;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,GAAG;IACX,kBAAkB,EAAE,CAAC;IACrB,uCAAuC,EAAE,CAAC;IAC1C,mCAAmC,EAAE,CAAC;IACtC,0CAA0C,EAAE,CAAC;IAC7C,wBAAwB,EAAE,CAAC;CAC9B,CAAC;AAEF,SAAgB,gBAAgB,CAAC,KAAa,EAAE,WAAmB,EAAE,WAAmB;IACpF,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;QACzB,IAAI,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,EAAE,CAAC;YAC1F,OAAO,CAAC,gCAAgC,CAAC,CAAC;YAC1C,OAAO;QACX,CAAC;QACD,IAAI,CAAC;YACD,MAAM,EAAE,GAAG,IAAA,qBAAK,EAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;YAChC,IAAI,MAAM,GAAkB,wBAAwB,CAAC;YACrD,IAAI,eAAe,GAAG,UAAU,CAAC,GAAG,EAAE;gBAClC,eAAe,GAAG,IAAI,CAAC;gBACvB,MAAM,GAAG,SAAS,CAAC;gBACnB,EAAE,CAAC,IAAI,EAAE,CAAC;YACd,CAAC,EAAE,IAAI,CAAC,CAAC;YAET,IAAI,KAAK,GAAG,MAAM,CAAC,kBAAkB,CAAC;YAEtC,SAAS,cAAc,CAAC,IAAY;gBAChC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC3D,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;gBAC/B,IAAI,KAAK,KAAK,MAAM,CAAC,kBAAkB,EAAE,CAAC;oBACtC,6BAA6B;oBAC7B,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;wBACrB,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;wBAC7D,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,WAAW,IAAI,CAAC,CAAC;wBACnC,UAAU,CAAC,GAAG,EAAE;4BACZ,KAAK,GAAG,MAAM,CAAC,uCAAuC,CAAC;4BACvD,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;wBAC/B,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,4BAA4B;oBAChC,CAAC;yBAAM,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;wBACzF,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;wBAC/C,MAAM,GAAG,2BAA2B,CAAC;wBACrC,EAAE,CAAC,IAAI,EAAE,CAAC;oBACd,CAAC;gBACL,CAAC;qBAAM,IAAI,KAAK,KAAK,MAAM,CAAC,uCAAuC,EAAE,CAAC;oBAClE,4BAA4B;oBAC5B,qCAAqC;oBACrC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;wBACrB,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;wBAC7D,KAAK,GAAG,MAAM,CAAC,mCAAmC,CAAC;wBACnD,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,WAAW,IAAI,CAAC,CAAC;oBACvC,CAAC;gBACL,CAAC;qBAAM,IAAI,KAAK,KAAK,MAAM,CAAC,mCAAmC,EAAE,CAAC;oBAC9D,iCAAiC;oBACjC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;wBACrB,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;wBAC7D,KAAK,GAAG,MAAM,CAAC,0CAA0C,CAAC;wBAC1D,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,WAAW,IAAI,CAAC,CAAC;oBACvC,CAAC;gBACL,CAAC;qBAAM,IAAI,KAAK,KAAK,MAAM,CAAC,0CAA0C,EAAE,CAAC;oBACrE,wCAAwC;oBACxC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;wBACrB,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;wBAC9D,KAAK,GAAG,MAAM,CAAC,wBAAwB,CAAC;wBACxC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,WAAW,IAAI,CAAC,CAAC;oBACvC,CAAC;gBACL,CAAC;qBAAM,IAAI,KAAK,KAAK,MAAM,CAAC,wBAAwB,EAAE,CAAC;oBACnD,4BAA4B;oBAC5B,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;wBAC5F,MAAM,GAAG,IAAI,CAAC;oBAClB,CAAC;yBAAM,CAAC;wBACJ,UAAU;wBACV,MAAM,GAAG,IAAI,CAAC;oBAClB,CAAC;oBACD,EAAE,CAAC,IAAI,EAAE,CAAC;gBACd,CAAC;YACL,CAAC;YAED,4BAA4B;YAC5B,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YAE9D,4BAA4B;YAC5B,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YAE9D,6BAA6B;YAC7B,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBAChB,eAAe,IAAI,YAAY,CAAC,eAAe,CAAC,CAAC;gBACjD,eAAe,GAAG,IAAI,CAAC;gBACvB,OAAO,CAAC,MAAM,CAAC,CAAC;YACpB,CAAC,CAAC,CAAC;QACP,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACzD,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC","sourcesContent":["import { spawn } from 'child_process';\n\nconst WELL_KNOWN_CREDENTIALS = [\n ['root', 'root'],\n ['admin', 'admin'],\n ['admin', 'default'],\n ['root', 'default'],\n ['iob', '2024=smart!'],\n ['pi', 'pi'],\n ['pi', '12345'],\n ['pi', 'raspberry'],\n ['pi', 'default'],\n ['pi', 'pi12345'],\n];\n\n// Function to execute 'su' command and provide password\nfunction checkLinuxPassword(login: string, password: string): Promise<boolean> {\n // Check the os\n if (process.platform !== 'linux') {\n console.error('This function is only available on Linux');\n return Promise.resolve(false);\n }\n\n if (login === 'Password:' || login === 'failure') {\n console.error('This function requires a login name');\n return Promise.resolve(false);\n }\n console.log(`\\n[LOG] -------- Check ${login}/${password}`);\n\n return new Promise((resolve, reject) => {\n try {\n const su = spawn('su', [login]);\n let closed = false;\n let result = false;\n let responseTimeout: NodeJS.Timeout | null = setTimeout(() => {\n closed = true;\n responseTimeout = null;\n su.kill();\n }, 3000);\n\n function _checkPassword(data: string): void {\n if (!responseTimeout || closed) {\n return;\n }\n data = data.replace(/\\r/g, ' ').replace(/\\n/g, ' ').trim();\n console.log(`[STDX] \"${data}\"`);\n if (data.endsWith(':')) {\n try {\n su.stdin?.write(`${password}\\n`);\n } catch {\n return;\n }\n setTimeout(() => {\n if (!responseTimeout || closed) {\n return;\n }\n console.log(`[LOG] write whoami`);\n try {\n su.stdin?.write(`whoami\\n`);\n } catch {\n // ignore\n }\n }, 50);\n } else if (data === login) {\n result = true;\n su.kill();\n // todo: add ru, uk, pt,....\n } else if (data.toLowerCase().includes('failure') || data.toLowerCase().includes('fehler')) {\n su.kill();\n }\n }\n su.stdin?.on('error', (): void => {\n closed = true;\n });\n su.stdout?.on('error', (): void => {\n closed = true;\n });\n su.stderr?.on('error', (): void => {\n closed = true;\n });\n su.stdin?.on('finish', (): void => {\n closed = true;\n });\n su.stdout?.on('finish', (): void => {\n closed = true;\n });\n su.stderr?.on('finish', (): void => {\n closed = true;\n });\n su.stdin?.on('close', (): void => {\n closed = true;\n });\n su.stdout?.on('close', (): void => {\n closed = true;\n });\n su.stderr?.on('close', (): void => {\n closed = true;\n });\n\n // Listen for data on stdout\n su.stdout.on('data', data => {\n if (data && responseTimeout) {\n _checkPassword(data.toString());\n }\n });\n\n // Listen for data on stderr\n su.stderr.on('data', data => {\n if (data && responseTimeout) {\n _checkPassword(data.toString());\n }\n });\n\n // Listen for the close event\n su.on('close', () => {\n closed = true;\n console.log(`[LOG] -------- closed with result: ${result}\\n`);\n if (responseTimeout) {\n clearTimeout(responseTimeout);\n responseTimeout = null;\n }\n resolve(result);\n });\n } catch (e: unknown) {\n closed = true;\n console.error(`[LOG] -------- Error by execution: ${(e as Error).message}\\n`);\n reject(new Error(e as string));\n }\n });\n}\n\n/** Check if the system has well-known passwords */\nexport async function checkWellKnownPasswords(): Promise<{ login: string; password: string } | null> {\n // Check the os\n if (process.platform !== 'linux') {\n console.error('This function is only available on Linux');\n throw new Error('This function is only available on Linux');\n }\n for (const [login, password] of WELL_KNOWN_CREDENTIALS) {\n if (await checkLinuxPassword(login, password)) {\n return { login, password };\n }\n }\n return null;\n}\n\n/*\npi@NanoPi-R5S:/opt$ su pi\nPassword: [OLD PASSWORD]\\n\n\npi@NanoPi-R5S:/opt$ passwd\nChanging password for pi.\nCurrent password: [OLD PASSWORD]\\n\n\nNew password: [NEW PASSWORD]\\n\n\nRetype new password: [NEW PASSWORD]\\n\n\nThe password has not been changed.\n\nNew password:\nRetype new password:\n\nYou must choose a longer password.\n\nNew password:\nRetype new password:\n\npasswd: password updated successfully\npi@NanoPi-R5S:/opt$ exit\n*/\n\n/*\nÄndern des Passworts für pi.\nGeben Sie das aktuelle Passwort ein:\npasswd: Fehler beim Ändern des Authentifizierungstoken\npasswd: Passwort nicht geändert\npi@NanoPi-R5S:~$ passwd pi\nÄndern des Passworts für pi.\nGeben Sie das aktuelle Passwort ein:\nGeben Sie ein neues Passwort ein:\nGeben Sie das neue Passwort erneut ein:\npasswd: Passwort erfolgreich geändert\n\n */\nconst STATES = {\n S_0_SU_WAIT_PROMPT: 0,\n S_1_PASSWD_WAIT_PROMPT_CURRENT_PASSWORD: 1,\n S_2_PASSWD_WAIT_PROMPT_NEW_PASSWORD: 2,\n S_3_PASSWD_WAIT_PROMPT_RETYPE_NEW_PASSWORD: 3,\n S_4_PASSWD_WAIT_RESPONSE: 4,\n};\n\nexport function setLinuxPassword(login: string, oldPassword: string, newPassword: string): Promise<true | string> {\n return new Promise(resolve => {\n if (WELL_KNOWN_CREDENTIALS.find(item => item[0] === newPassword || item[1] === newPassword)) {\n resolve('New password is well-known too');\n return;\n }\n try {\n const su = spawn('su', [login]);\n let result: true | string = 'Cannot change password';\n let responseTimeout = setTimeout(() => {\n responseTimeout = null;\n result = 'Timeout';\n su.kill();\n }, 3000);\n\n let state = STATES.S_0_SU_WAIT_PROMPT;\n\n function _checkPassword(data: string): void {\n data = data.replace(/\\r/g, ' ').replace(/\\n/g, ' ').trim();\n console.log(`[STDX]: ${data}`);\n if (state === STATES.S_0_SU_WAIT_PROMPT) {\n // Password: [OLD PASSWORD]\\n\n if (data.endsWith(':')) {\n console.log(`[LOG]: received request to enter old password`);\n su.stdin.write(`${oldPassword}\\n`);\n setTimeout(() => {\n state = STATES.S_1_PASSWD_WAIT_PROMPT_CURRENT_PASSWORD;\n su.stdin.write(`passwd\\n`);\n }, 50);\n // todo: add ru, uk, pt,....\n } else if (data.toLowerCase().includes('failure') || data.toLowerCase().includes('fehler')) {\n console.log(`[LOG]: received failure message`);\n result = 'Old password not accepted';\n su.kill();\n }\n } else if (state === STATES.S_1_PASSWD_WAIT_PROMPT_CURRENT_PASSWORD) {\n // Changing password for pi.\n // Current password: [OLD PASSWORD]\\n\n if (data.endsWith(':')) {\n console.log(`[LOG]: received request to enter new password`);\n state = STATES.S_2_PASSWD_WAIT_PROMPT_NEW_PASSWORD;\n su.stdin.write(`${oldPassword}\\n`);\n }\n } else if (state === STATES.S_2_PASSWD_WAIT_PROMPT_NEW_PASSWORD) {\n // New password: [NEW PASSWORD]\\n\n if (data.endsWith(':')) {\n console.log(`[LOG]: received request to enter new password`);\n state = STATES.S_3_PASSWD_WAIT_PROMPT_RETYPE_NEW_PASSWORD;\n su.stdin.write(`${newPassword}\\n`);\n }\n } else if (state === STATES.S_3_PASSWD_WAIT_PROMPT_RETYPE_NEW_PASSWORD) {\n // Retype new password: [NEW PASSWORD]\\n\n if (data.endsWith(':')) {\n console.log(`[LOG]: received request to repeat new password`);\n state = STATES.S_4_PASSWD_WAIT_RESPONSE;\n su.stdin.write(`${newPassword}\\n`);\n }\n } else if (state === STATES.S_4_PASSWD_WAIT_RESPONSE) {\n // todo: add ru, uk, pt,....\n if (data.toLowerCase().includes('successfully') || data.toLowerCase().includes('erfolgreich')) {\n result = true;\n } else {\n // failure\n result = data;\n }\n su.kill();\n }\n }\n\n // Listen for data on stdout\n su.stdout.on('data', data => _checkPassword(data.toString()));\n\n // Listen for data on stderr\n su.stderr.on('data', data => _checkPassword(data.toString()));\n\n // Listen for the close event\n su.on('close', () => {\n responseTimeout && clearTimeout(responseTimeout);\n responseTimeout = null;\n resolve(result);\n });\n } catch (e) {\n console.error(`Cannot change password: ${e.toString()}`);\n throw new Error(e);\n }\n });\n}\n"]}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const node_readline_1 = require("node:readline");
|
|
4
|
-
const checkLinuxPass_1 = require("./checkLinuxPass");
|
|
5
|
-
const node_stream_1 = require("node:stream");
|
|
6
|
-
let maskOutput = false;
|
|
7
|
-
// this file is used for test on different locales
|
|
8
|
-
// node /opt/iobroker/node_modules/iobroker.admin/build-backend/lib/testPassword
|
|
9
|
-
const mutableStdout = new node_stream_1.Writable({
|
|
10
|
-
write: (_chunk, _encoding, callback) => {
|
|
11
|
-
if (maskOutput) {
|
|
12
|
-
process.stdout.write('*');
|
|
13
|
-
}
|
|
14
|
-
else {
|
|
15
|
-
process.stdout.write(_chunk, _encoding);
|
|
16
|
-
}
|
|
17
|
-
callback();
|
|
18
|
-
},
|
|
19
|
-
});
|
|
20
|
-
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
21
|
-
(0, checkLinuxPass_1.checkWellKnownPasswords)().then(found => {
|
|
22
|
-
if (found) {
|
|
23
|
-
console.log(`Found well-known password: ${JSON.stringify(found)}`);
|
|
24
|
-
// enter new password
|
|
25
|
-
const rl = (0, node_readline_1.createInterface)({
|
|
26
|
-
input: process.stdin,
|
|
27
|
-
output: mutableStdout,
|
|
28
|
-
terminal: true,
|
|
29
|
-
});
|
|
30
|
-
rl.question(`Enter new password for "${found.login} (min 6 chars): `, (password) => {
|
|
31
|
-
maskOutput = false;
|
|
32
|
-
password = password.replace(/\r/g, '').replace(/\n/g, '');
|
|
33
|
-
if (password.length < 6) {
|
|
34
|
-
console.error('password is too short');
|
|
35
|
-
process.exit(1);
|
|
36
|
-
}
|
|
37
|
-
rl.question(`Repeat new password for "${found.login}: `, (passwordRepeat) => {
|
|
38
|
-
maskOutput = false;
|
|
39
|
-
passwordRepeat = passwordRepeat.replace(/\r/g, '').replace(/\n/g, '');
|
|
40
|
-
if (password !== passwordRepeat) {
|
|
41
|
-
console.error('passwords are not equal');
|
|
42
|
-
process.exit(1);
|
|
43
|
-
}
|
|
44
|
-
rl.close();
|
|
45
|
-
void (0, checkLinuxPass_1.setLinuxPassword)(found.login, found.password, password).then(result => {
|
|
46
|
-
console.log(`Result: ${JSON.stringify(result)}`);
|
|
47
|
-
});
|
|
48
|
-
});
|
|
49
|
-
maskOutput = true;
|
|
50
|
-
});
|
|
51
|
-
maskOutput = true;
|
|
52
|
-
}
|
|
53
|
-
else {
|
|
54
|
-
console.log(`No well known passwords found`);
|
|
55
|
-
process.exit(0);
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
//# sourceMappingURL=testPassword.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"testPassword.js","sourceRoot":"","sources":["../../../src/lib/testPassword.ts"],"names":[],"mappings":";;AAAA,iDAAgD;AAChD,qDAA6E;AAC7E,6CAAuC;AAEvC,IAAI,UAAU,GAAG,KAAK,CAAC;AACvB,kDAAkD;AAClD,gFAAgF;AAChF,MAAM,aAAa,GAAG,IAAI,sBAAQ,CAAC;IAC/B,KAAK,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE;QACnC,IAAI,UAAU,EAAE,CAAC;YACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC5C,CAAC;QACD,QAAQ,EAAE,CAAC;IACf,CAAC;CACJ,CAAC,CAAC;AAEH,mEAAmE;AACnE,IAAA,wCAAuB,GAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;IACnC,IAAI,KAAK,EAAE,CAAC;QACR,OAAO,CAAC,GAAG,CAAC,8BAA8B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACnE,qBAAqB;QACrB,MAAM,EAAE,GAAG,IAAA,+BAAe,EAAC;YACvB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,aAAa;YACrB,QAAQ,EAAE,IAAI;SACjB,CAAC,CAAC;QACH,EAAE,CAAC,QAAQ,CAAC,2BAA2B,KAAK,CAAC,KAAK,kBAAkB,EAAE,CAAC,QAAgB,EAAE,EAAE;YACvF,UAAU,GAAG,KAAK,CAAC;YACnB,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC1D,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;gBACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,CAAC;YACD,EAAE,CAAC,QAAQ,CAAC,4BAA4B,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,cAAsB,EAAE,EAAE;gBAChF,UAAU,GAAG,KAAK,CAAC;gBACnB,cAAc,GAAG,cAAc,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACtE,IAAI,QAAQ,KAAK,cAAc,EAAE,CAAC;oBAC9B,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;oBACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACpB,CAAC;gBACD,EAAE,CAAC,KAAK,EAAE,CAAC;gBACX,KAAK,IAAA,iCAAgB,EAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;oBACvE,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACrD,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YACH,UAAU,GAAG,IAAI,CAAC;QACtB,CAAC,CAAC,CAAC;QACH,UAAU,GAAG,IAAI,CAAC;IACtB,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { createInterface } from 'node:readline';\nimport { setLinuxPassword, checkWellKnownPasswords } from './checkLinuxPass';\nimport { Writable } from 'node:stream';\n\nlet maskOutput = false;\n// this file is used for test on different locales\n// node /opt/iobroker/node_modules/iobroker.admin/build-backend/lib/testPassword\nconst mutableStdout = new Writable({\n write: (_chunk, _encoding, callback) => {\n if (maskOutput) {\n process.stdout.write('*');\n } else {\n process.stdout.write(_chunk, _encoding);\n }\n callback();\n },\n});\n\n// eslint-disable-next-line @typescript-eslint/no-floating-promises\ncheckWellKnownPasswords().then(found => {\n if (found) {\n console.log(`Found well-known password: ${JSON.stringify(found)}`);\n // enter new password\n const rl = createInterface({\n input: process.stdin,\n output: mutableStdout,\n terminal: true,\n });\n rl.question(`Enter new password for \"${found.login} (min 6 chars): `, (password: string) => {\n maskOutput = false;\n password = password.replace(/\\r/g, '').replace(/\\n/g, '');\n if (password.length < 6) {\n console.error('password is too short');\n process.exit(1);\n }\n rl.question(`Repeat new password for \"${found.login}: `, (passwordRepeat: string) => {\n maskOutput = false;\n passwordRepeat = passwordRepeat.replace(/\\r/g, '').replace(/\\n/g, '');\n if (password !== passwordRepeat) {\n console.error('passwords are not equal');\n process.exit(1);\n }\n rl.close();\n void setLinuxPassword(found.login, found.password, password).then(result => {\n console.log(`Result: ${JSON.stringify(result)}`);\n });\n });\n maskOutput = true;\n });\n maskOutput = true;\n } else {\n console.log(`No well known passwords found`);\n process.exit(0);\n }\n});\n"]}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getAdapterUpdateText = getAdapterUpdateText;
|
|
4
|
-
const updateText = {
|
|
5
|
-
en: 'Adapter %adapter can be updated from %installedVersion to %newVersion.',
|
|
6
|
-
de: 'Adapter %adapter kann von %installedVersion auf %newVersion aktualisiert werden.',
|
|
7
|
-
ru: 'Адаптер %adapter может быть обновлен с %installedVersion до %newVersion.',
|
|
8
|
-
pt: 'O adaptador %adapter pode ser atualizado de %installedVersion para %newVersion.',
|
|
9
|
-
nl: 'Adapter %adapter kan worden bijgewerkt van %installedVersion naar %newVersion.',
|
|
10
|
-
fr: "L'adaptateur %adapter peut être mis à jour de %installedVersion à %newVersion.",
|
|
11
|
-
it: "L'adattatore %adapter può essere aggiornato da %installedVersion a %newVersion.",
|
|
12
|
-
es: 'El adaptador %adapter puede actualizarse de %installedVersion a %newVersion.',
|
|
13
|
-
pl: 'Adapter %adapter może zostać zaktualizowany z %installedVersion do %newVersion.',
|
|
14
|
-
uk: 'Адаптер %adapter можна оновити з %installedVersion до %newVersion.',
|
|
15
|
-
'zh-cn': '适配器 %adapter 可以从 %installedVersion 升级到 %newVersion。',
|
|
16
|
-
};
|
|
17
|
-
/**
|
|
18
|
-
* Get text for a message about adapter update in given language
|
|
19
|
-
*/
|
|
20
|
-
function getAdapterUpdateText(options) {
|
|
21
|
-
const { lang, adapter, installedVersion, newVersion } = options;
|
|
22
|
-
return updateText[lang]
|
|
23
|
-
.replace('%adapter', adapter)
|
|
24
|
-
.replace('%installedVersion', installedVersion)
|
|
25
|
-
.replace('%newVersion', newVersion);
|
|
26
|
-
}
|
|
27
|
-
//# sourceMappingURL=translations.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"translations.js","sourceRoot":"","sources":["../../../src/lib/translations.ts"],"names":[],"mappings":";;AA4BA,oDAOC;AAxBD,MAAM,UAAU,GAAuC;IACnD,EAAE,EAAE,wEAAwE;IAC5E,EAAE,EAAE,kFAAkF;IACtF,EAAE,EAAE,0EAA0E;IAC9E,EAAE,EAAE,iFAAiF;IACrF,EAAE,EAAE,gFAAgF;IACpF,EAAE,EAAE,gFAAgF;IACpF,EAAE,EAAE,iFAAiF;IACrF,EAAE,EAAE,8EAA8E;IAClF,EAAE,EAAE,iFAAiF;IACrF,EAAE,EAAE,oEAAoE;IACxE,OAAO,EAAE,qDAAqD;CACjE,CAAC;AAEF;;GAEG;AACH,SAAgB,oBAAoB,CAAC,OAA6B;IAC9D,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IAEhE,OAAO,UAAU,CAAC,IAAI,CAAC;SAClB,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC;SAC5B,OAAO,CAAC,mBAAmB,EAAE,gBAAgB,CAAC;SAC9C,OAAO,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;AAC5C,CAAC","sourcesContent":["interface AdapterUpdateOptions {\n /** Language to translate text to */\n lang: ioBroker.Languages;\n /** The adapter to update */\n adapter: string;\n /** The installed version */\n installedVersion: string;\n /** The new available version */\n newVersion: string;\n}\n\nconst updateText: Record<ioBroker.Languages, string> = {\n en: 'Adapter %adapter can be updated from %installedVersion to %newVersion.',\n de: 'Adapter %adapter kann von %installedVersion auf %newVersion aktualisiert werden.',\n ru: 'Адаптер %adapter может быть обновлен с %installedVersion до %newVersion.',\n pt: 'O adaptador %adapter pode ser atualizado de %installedVersion para %newVersion.',\n nl: 'Adapter %adapter kan worden bijgewerkt van %installedVersion naar %newVersion.',\n fr: \"L'adaptateur %adapter peut être mis à jour de %installedVersion à %newVersion.\",\n it: \"L'adattatore %adapter può essere aggiornato da %installedVersion a %newVersion.\",\n es: 'El adaptador %adapter puede actualizarse de %installedVersion a %newVersion.',\n pl: 'Adapter %adapter może zostać zaktualizowany z %installedVersion do %newVersion.',\n uk: 'Адаптер %adapter можна оновити з %installedVersion до %newVersion.',\n 'zh-cn': '适配器 %adapter 可以从 %installedVersion 升级到 %newVersion。',\n};\n\n/**\n * Get text for a message about adapter update in given language\n */\nexport function getAdapterUpdateText(options: AdapterUpdateOptions): string {\n const { lang, adapter, installedVersion, newVersion } = options;\n\n return updateText[lang]\n .replace('%adapter', adapter)\n .replace('%installedVersion', installedVersion)\n .replace('%newVersion', newVersion);\n}\n"]}
|