index.js 150 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145
  1. /*!
  2. Stencil Testing v2.18.1 | MIT Licensed | https://stenciljs.com
  3. */
  4. function _lazyRequire(e) {
  5. return new Proxy({}, {
  6. get(t, r) {
  7. const s = require(e);
  8. return Reflect.get(s, r);
  9. },
  10. set(t, r, s) {
  11. const n = require(e);
  12. return Reflect.set(n, r, s);
  13. }
  14. });
  15. }
  16. function _interopDefaultLegacy(e) {
  17. return e && "object" == typeof e && "default" in e ? e : {
  18. default: e
  19. };
  20. }
  21. function _interopNamespace(e) {
  22. if (e && e.__esModule) return e;
  23. var t = Object.create(null);
  24. return e && Object.keys(e).forEach((function(r) {
  25. if ("default" !== r) {
  26. var s = Object.getOwnPropertyDescriptor(e, r);
  27. Object.defineProperty(t, r, s.get ? s : {
  28. enumerable: !0,
  29. get: function() {
  30. return e[r];
  31. }
  32. });
  33. }
  34. })), t.default = e, Object.freeze(t);
  35. }
  36. async function startPuppeteerBrowser(e) {
  37. if (!e.flags.e2e) return null;
  38. const t = process.env, r = e.testing.browserExecutablePath ? "puppeteer-core" : "puppeteer", s = e.sys.lazyRequire.getModulePath(e.rootDir, r), n = e.sys.lazyRequire.require(e.rootDir, s);
  39. t.__STENCIL_PUPPETEER_MODULE__ = s, t.__STENCIL_BROWSER_WAIT_UNTIL = e.testing.browserWaitUntil,
  40. e.flags.devtools && (e.testing.browserDevtools = !0, e.testing.browserHeadless = !1,
  41. t.__STENCIL_E2E_DEVTOOLS__ = "true"), e.logger.debug(`puppeteer: ${s}`), e.logger.debug(`puppeteer headless: ${e.testing.browserHeadless}`),
  42. Array.isArray(e.testing.browserArgs) && e.logger.debug(`puppeteer args: ${e.testing.browserArgs.join(" ")}`),
  43. "boolean" == typeof e.testing.browserDevtools && e.logger.debug(`puppeteer devtools: ${e.testing.browserDevtools}`),
  44. "number" == typeof e.testing.browserSlowMo && e.logger.debug(`puppeteer slowMo: ${e.testing.browserSlowMo}`);
  45. const o = {
  46. ignoreHTTPSErrors: !0,
  47. slowMo: e.testing.browserSlowMo
  48. };
  49. let i;
  50. if (e.testing.browserWSEndpoint) i = await n.connect({
  51. browserWSEndpoint: e.testing.browserWSEndpoint,
  52. ...o
  53. }); else {
  54. const t = {
  55. args: e.testing.browserArgs,
  56. headless: e.testing.browserHeadless,
  57. devtools: e.testing.browserDevtools,
  58. ...o
  59. };
  60. e.testing.browserExecutablePath && (t.executablePath = e.testing.browserExecutablePath),
  61. i = await n.launch({
  62. ...t
  63. });
  64. }
  65. return t.__STENCIL_BROWSER_WS_ENDPOINT__ = i.wsEndpoint(), e.logger.debug(`puppeteer browser wsEndpoint: ${t.__STENCIL_BROWSER_WS_ENDPOINT__}`),
  66. i;
  67. }
  68. function transpile(e, t = {}) {
  69. t = {
  70. ...t,
  71. componentExport: null,
  72. componentMetadata: "compilerstatic",
  73. coreImportPath: isString(t.coreImportPath) ? t.coreImportPath : "@stencil/core/internal/testing",
  74. currentDirectory: t.currentDirectory || process.cwd(),
  75. module: "cjs",
  76. proxy: null,
  77. sourceMap: "inline",
  78. style: null,
  79. styleImportData: "queryparams",
  80. target: "es2015"
  81. };
  82. try {
  83. const e = process.versions.node.split(".");
  84. parseInt(e[0], 10) >= 10 && (t.target = "es2017");
  85. } catch (e) {}
  86. return stencil_js.transpileSync(e, t);
  87. }
  88. function formatDiagnostic(e) {
  89. let t = "";
  90. return e.relFilePath && (t += e.relFilePath, "number" == typeof e.lineNumber && (t += ":" + e.lineNumber + 1,
  91. "number" == typeof e.columnNumber && (t += ":" + e.columnNumber)), t += "\n"), t += e.messageText,
  92. t;
  93. }
  94. function getCompilerOptions(e) {
  95. if (_tsCompilerOptions) return _tsCompilerOptions;
  96. if ("string" != typeof e) return null;
  97. e = normalizePath(e);
  98. const t = stencil_js.ts.findConfigFile(e, stencil_js.ts.sys.fileExists);
  99. if (!t) return null;
  100. const r = stencil_js.ts.readConfigFile(t, stencil_js.ts.sys.readFile);
  101. if (r.error) throw new Error(formatDiagnostic((e => {
  102. const t = {
  103. level: "warn",
  104. type: "typescript",
  105. language: "typescript",
  106. header: "TypeScript",
  107. code: e.code.toString(),
  108. messageText: flattenDiagnosticMessageText(e, e.messageText),
  109. relFilePath: null,
  110. absFilePath: null,
  111. lines: []
  112. };
  113. if (1 === e.category && (t.level = "error"), e.file) {
  114. t.absFilePath = e.file.fileName;
  115. const s = "string" != typeof (r = e.file.text) ? [] : (r = r.replace(/\\r/g, "\n")).split("\n"), n = e.file.getLineAndCharacterOfPosition(e.start), o = {
  116. lineIndex: n.line,
  117. lineNumber: n.line + 1,
  118. text: s[n.line],
  119. errorCharStart: n.character,
  120. errorLength: Math.max(e.length, 1)
  121. };
  122. if (t.lineNumber = o.lineNumber, t.columnNumber = o.errorCharStart + 1, t.lines.push(o),
  123. 0 === o.errorLength && o.errorCharStart > 0 && (o.errorLength = 1, o.errorCharStart--),
  124. o.lineIndex > 0) {
  125. const e = {
  126. lineIndex: o.lineIndex - 1,
  127. lineNumber: o.lineNumber - 1,
  128. text: s[o.lineIndex - 1],
  129. errorCharStart: -1,
  130. errorLength: -1
  131. };
  132. t.lines.unshift(e);
  133. }
  134. if (o.lineIndex + 1 < s.length) {
  135. const e = {
  136. lineIndex: o.lineIndex + 1,
  137. lineNumber: o.lineNumber + 1,
  138. text: s[o.lineIndex + 1],
  139. errorCharStart: -1,
  140. errorLength: -1
  141. };
  142. t.lines.push(e);
  143. }
  144. }
  145. var r;
  146. return t;
  147. })(r.error)));
  148. const s = stencil_js.ts.parseJsonConfigFileContent(r.config, stencil_js.ts.sys, e, void 0, t);
  149. return _tsCompilerOptions = s.options, _tsCompilerOptions;
  150. }
  151. function setScreenshotEmulateData(e, t) {
  152. const r = {
  153. userAgent: "default",
  154. viewport: {
  155. width: 800,
  156. height: 600,
  157. deviceScaleFactor: 1,
  158. isMobile: !1,
  159. hasTouch: !1,
  160. isLandscape: !1
  161. }
  162. };
  163. if ("string" == typeof e.device) try {
  164. const s = require(t.__STENCIL_PUPPETEER_MODULE__ + "/DeviceDescriptors")[e.device];
  165. if (!s) return void console.error(`invalid emulate device: ${e.device}`);
  166. r.device = e.device, r.userAgent = s.userAgent, r.viewport = s.viewport;
  167. } catch (e) {
  168. return void console.error("error loading puppeteer DeviceDescriptors", e);
  169. }
  170. e.viewport && ("number" == typeof e.viewport.width && (r.viewport.width = e.viewport.width),
  171. "number" == typeof e.viewport.height && (r.viewport.height = e.viewport.height),
  172. "number" == typeof e.viewport.deviceScaleFactor && (r.viewport.deviceScaleFactor = e.viewport.deviceScaleFactor),
  173. "boolean" == typeof e.viewport.hasTouch && (r.viewport.hasTouch = e.viewport.hasTouch),
  174. "boolean" == typeof e.viewport.isLandscape && (r.viewport.isLandscape = e.viewport.isLandscape),
  175. "boolean" == typeof e.viewport.isMobile && (r.viewport.isMobile = e.viewport.isMobile),
  176. "string" == typeof e.userAgent && (r.userAgent = e.userAgent)), t.__STENCIL_EMULATE__ = JSON.stringify(r);
  177. }
  178. async function runJest(e, t) {
  179. let r = !1;
  180. try {
  181. const s = function s(e, t) {
  182. let r = e.emulate.slice();
  183. if ("string" == typeof t.emulate) {
  184. const e = t.emulate.toLowerCase();
  185. r = r.filter((t => "string" == typeof t.device && t.device.toLowerCase() === e || !("string" != typeof t.userAgent || !t.userAgent.toLowerCase().includes(e))));
  186. }
  187. return r;
  188. }(e.testing, e.flags);
  189. t.__STENCIL_EMULATE_CONFIGS__ = JSON.stringify(s), t.__STENCIL_ENV__ = JSON.stringify(e.env),
  190. e.flags.ci || e.flags.e2e ? t.__STENCIL_DEFAULT_TIMEOUT__ = "30000" : t.__STENCIL_DEFAULT_TIMEOUT__ = "15000",
  191. e.flags.devtools && (t.__STENCIL_DEFAULT_TIMEOUT__ = "300000000"), e.logger.debug(`default timeout: ${t.__STENCIL_DEFAULT_TIMEOUT__}`);
  192. const n = function n(e) {
  193. const t = require("yargs"), r = [ ...e.flags.unknownArgs.slice(), ...e.flags.knownArgs.slice() ];
  194. r.some((e => e.startsWith("--max-workers") || e.startsWith("--maxWorkers"))) || r.push(`--max-workers=${e.maxConcurrentWorkers}`),
  195. e.flags.devtools && r.push("--runInBand"), e.logger.info(e.logger.magenta(`jest args: ${r.join(" ")}`));
  196. let s = t(r).argv;
  197. if (s = {
  198. detectLeaks: !1,
  199. "detect-leaks": !1,
  200. detectOpenHandles: !1,
  201. "detect-open-handles": !1,
  202. errorOnDeprecated: !1,
  203. "error-on-deprecated": !1,
  204. listTests: !1,
  205. "list-tests": !1,
  206. maxConcurrency: 5,
  207. "max-concurrency": 5,
  208. notifyMode: "failure-change",
  209. "notify-mode": "failure-change",
  210. passWithNoTests: !1,
  211. "pass-with-no-tests": !1,
  212. runTestsByPath: !1,
  213. "run-tests-by-path": !1,
  214. testLocationInResults: !1,
  215. "test-location-in-results": !1,
  216. ...s
  217. }, s.config = function n(e) {
  218. const t = e.testing, r = require("jest-config").defaults, s = Object.keys(r), n = {};
  219. return Object.keys(t).forEach((e => {
  220. s.includes(e) && (n[e] = t[e]);
  221. })), n.rootDir = e.rootDir, isString(t.collectCoverage) && (n.collectCoverage = t.collectCoverage),
  222. Array.isArray(t.collectCoverageFrom) && (n.collectCoverageFrom = t.collectCoverageFrom),
  223. isString(t.coverageDirectory) && (n.coverageDirectory = t.coverageDirectory), t.coverageThreshold && (n.coverageThreshold = t.coverageThreshold),
  224. isString(t.globalSetup) && (n.globalSetup = t.globalSetup), isString(t.globalTeardown) && (n.globalTeardown = t.globalTeardown),
  225. isString(t.preset) && (n.preset = t.preset), t.projects && (n.projects = t.projects),
  226. Array.isArray(t.reporters) && (n.reporters = t.reporters), isString(t.testResultsProcessor) && (n.testResultsProcessor = t.testResultsProcessor),
  227. t.transform && (n.transform = t.transform), t.verbose && (n.verbose = t.verbose),
  228. n.testRunner = "jest-jasmine2", JSON.stringify(n);
  229. }(e), "string" == typeof s.maxWorkers) try {
  230. s.maxWorkers = parseInt(s.maxWorkers, 10);
  231. } catch (e) {}
  232. return "string" == typeof s.ci && (s.ci = "true" === s.ci || "" === s.ci), s;
  233. }(e), o = function o(e, t) {
  234. const r = t.projects ? t.projects : [];
  235. return r.push(e.rootDir), r;
  236. }(e, n), {runCLI: i} = require("@jest/core");
  237. r = !!(await i(n, o)).results.success;
  238. } catch (t) {
  239. e.logger.error(`runJest: ${t}`);
  240. }
  241. return r;
  242. }
  243. function toHaveClasses(e, t) {
  244. if (!e) throw new Error("expect toHaveClasses value is null");
  245. if ("function" == typeof e.then) throw new Error("element must be a resolved value, not a promise, before it can be tested");
  246. if (1 !== e.nodeType) throw new Error("expect toHaveClasses value is not an element");
  247. const r = t.every((t => e.classList.contains(t)));
  248. return {
  249. message: () => `expected to ${r ? "not " : ""}have css classes "${t.join(" ")}", but className is "${e.className}"`,
  250. pass: r
  251. };
  252. }
  253. function compareHtml(e, t, r) {
  254. if (null == e) throw new Error(`expect toEqualHtml() value is "${e}"`);
  255. if ("function" == typeof e.then) throw new Error("element must be a resolved value, not a promise, before it can be tested");
  256. let s;
  257. if (1 === e.nodeType) {
  258. const t = function n(e) {
  259. return e && e.ownerDocument && e.ownerDocument.defaultView && e.ownerDocument.defaultView.__stencil_spec_options || {};
  260. }(e);
  261. s = index_cjs.serializeNodeToHtml(e, {
  262. prettyHtml: !0,
  263. outerHtml: !0,
  264. removeHtmlComments: !1 === t.includeAnnotations,
  265. excludeTags: [ "body" ],
  266. serializeShadowRoot: r
  267. });
  268. } else if (11 === e.nodeType) s = index_cjs.serializeNodeToHtml(e, {
  269. prettyHtml: !0,
  270. excludeTags: [ "style" ],
  271. excludeTagContent: [ "style" ],
  272. serializeShadowRoot: r
  273. }); else {
  274. if ("string" != typeof e) throw new Error("expect toEqualHtml() value should be an element, shadow root or string.");
  275. {
  276. const t = index_cjs.parseHtmlToFragment(e);
  277. s = index_cjs.serializeNodeToHtml(t, {
  278. prettyHtml: !0,
  279. serializeShadowRoot: r
  280. });
  281. }
  282. }
  283. const o = index_cjs.parseHtmlToFragment(t), i = index_cjs.serializeNodeToHtml(o, {
  284. prettyHtml: !0,
  285. excludeTags: [ "body" ]
  286. });
  287. return s !== i ? (expect(s).toBe(i), {
  288. message: () => "HTML does not match",
  289. pass: !1
  290. }) : {
  291. message: () => "expect HTML to match",
  292. pass: !0
  293. };
  294. }
  295. async function globalMockFetch(e) {
  296. let t;
  297. if (null == e) throw new Error("missing url input for mock fetch()");
  298. if ("string" == typeof e) t = e; else {
  299. if ("string" != typeof e.url) throw new Error("invalid url for mock fetch()");
  300. t = e.url;
  301. }
  302. t = new URL(t, location.href).href;
  303. let r = mockedResponses.get(t);
  304. if (null == r) {
  305. const e = new URL(FETCH_DEFAULT_PATH, location.href);
  306. r = mockedResponses.get(e.href);
  307. }
  308. if (null == r) return new MockResponse404;
  309. const s = r.response.clone();
  310. return "number" != typeof s.status && (s.status = 200), "string" != typeof s.statusText && (s.status >= 500 ? s.statusText = "Internal Server Error" : 404 === s.status ? s.statusText = "Not Found" : s.status >= 400 ? s.statusText = "Bad Request" : 302 === s.status ? s.statusText = "Found" : 301 === s.status ? s.statusText = "Moved Permanently" : s.status >= 300 ? s.statusText = "Redirection" : s.statusText = "OK"),
  311. s.ok = s.status >= 200 && s.status <= 299, "string" != typeof s.type && (s.type = "basic"),
  312. s;
  313. }
  314. function setMockedResponse(e, t, r) {
  315. if (!e) throw new Error("MockResponse required");
  316. "string" == typeof e.url && "" !== e.url || ("string" == typeof t ? e.url = t : t && "string" == typeof t.url ? e.url = t.url : e.url = FETCH_DEFAULT_PATH);
  317. const s = new URL(e.url, location.href);
  318. e.url = s.href;
  319. const n = {
  320. response: e,
  321. reject: r
  322. };
  323. mockedResponses.set(e.url, n);
  324. }
  325. function resetBuildConditionals(e) {
  326. Object.keys(e).forEach((t => {
  327. e[t] = !0;
  328. })), e.isDev = !0, e.isTesting = !0, e.isDebug = !1, e.lazyLoad = !0, e.member = !0,
  329. e.reflect = !0, e.scoped = !0, e.shadowDom = !0, e.slotRelocation = !0, e.asyncLoading = !0,
  330. e.svg = !0, e.updatable = !0, e.vdomAttribute = !0, e.vdomClass = !0, e.vdomFunctional = !0,
  331. e.vdomKey = !0, e.vdomPropOrAttr = !0, e.vdomRef = !0, e.vdomListener = !0, e.vdomStyle = !0,
  332. e.vdomText = !0, e.vdomXlink = !0, e.allRenderFn = !1, e.devTools = !1, e.hydrateClientSide = !1,
  333. e.hydrateServerSide = !1, e.cssAnnotations = !1, e.style = !1, e.hydratedAttribute = !1,
  334. e.hydratedClass = !0, e.invisiblePrehydration = !0, e.appendChildSlotFix = !1, e.cloneNodeFix = !1,
  335. e.dynamicImportShim = !1, e.hotModuleReplacement = !1, e.safari10 = !1, e.scriptDataOpts = !1,
  336. e.scopedSlotTextContentFix = !1, e.slotChildNodesFix = !1;
  337. }
  338. function assertPath(e) {
  339. if ("string" != typeof e) throw new TypeError("Path must be a string. Received " + JSON.stringify(e));
  340. }
  341. function normalizeStringPosix(e, t) {
  342. var r, s, n, o = "", i = 0, a = -1, l = 0;
  343. for (s = 0; s <= e.length; ++s) {
  344. if (s < e.length) r = e.charCodeAt(s); else {
  345. if (47 === r) break;
  346. r = 47;
  347. }
  348. if (47 === r) {
  349. if (a === s - 1 || 1 === l) ; else if (a !== s - 1 && 2 === l) {
  350. if (o.length < 2 || 2 !== i || 46 !== o.charCodeAt(o.length - 1) || 46 !== o.charCodeAt(o.length - 2)) if (o.length > 2) {
  351. if ((n = o.lastIndexOf("/")) !== o.length - 1) {
  352. -1 === n ? (o = "", i = 0) : i = (o = o.slice(0, n)).length - 1 - o.lastIndexOf("/"),
  353. a = s, l = 0;
  354. continue;
  355. }
  356. } else if (2 === o.length || 1 === o.length) {
  357. o = "", i = 0, a = s, l = 0;
  358. continue;
  359. }
  360. t && (o.length > 0 ? o += "/.." : o = "..", i = 2);
  361. } else o.length > 0 ? o += "/" + e.slice(a + 1, s) : o = e.slice(a + 1, s), i = s - a - 1;
  362. a = s, l = 0;
  363. } else 46 === r && -1 !== l ? ++l : l = -1;
  364. }
  365. return o;
  366. }
  367. function specifierIncluded$1(e, t) {
  368. var r, s, n, o = e.split("."), i = t.split(" "), a = i.length > 1 ? i[0] : "=", l = (i.length > 1 ? i[1] : i[0]).split(".");
  369. for (r = 0; r < 3; ++r) if ((s = parseInt(o[r] || 0, 10)) !== (n = parseInt(l[r] || 0, 10))) return "<" === a ? s < n : ">=" === a && s >= n;
  370. return ">=" === a;
  371. }
  372. function matchesRange$1(e, t) {
  373. var r, s = t.split(/ ?&& ?/);
  374. if (0 === s.length) return !1;
  375. for (r = 0; r < s.length; ++r) if (!specifierIncluded$1(e, s[r])) return !1;
  376. return !0;
  377. }
  378. function specifierIncluded(e) {
  379. var t, r, s, n = e.split(" "), o = n.length > 1 ? n[0] : "=", i = (n.length > 1 ? n[1] : n[0]).split(".");
  380. for (t = 0; t < 3; ++t) if ((r = parseInt(current[t] || 0, 10)) !== (s = parseInt(i[t] || 0, 10))) return "<" === o ? r < s : ">=" === o && r >= s;
  381. return ">=" === o;
  382. }
  383. function matchesRange(e) {
  384. var t, r = e.split(/ ?&& ?/);
  385. if (0 === r.length) return !1;
  386. for (t = 0; t < r.length; ++t) if (!specifierIncluded(r[t])) return !1;
  387. return !0;
  388. }
  389. function versionIncluded(e) {
  390. if ("boolean" == typeof e) return e;
  391. if (e && "object" == typeof e) {
  392. for (var t = 0; t < e.length; ++t) if (matchesRange(e[t])) return !0;
  393. return !1;
  394. }
  395. return matchesRange(e);
  396. }
  397. function mockConfig(e = {}) {
  398. const t = path__default.default.resolve("/");
  399. let {sys: r} = e;
  400. return r || (r = createTestingSystem()), r.getCurrentDirectory = () => t, {
  401. _isTesting: !0,
  402. buildAppCore: !1,
  403. buildDist: !0,
  404. buildEs5: !1,
  405. bundles: null,
  406. devMode: !0,
  407. enableCache: !1,
  408. extras: {},
  409. flags: createConfigFlags(),
  410. globalScript: null,
  411. hashFileNames: !1,
  412. logger: new TestingLogger,
  413. maxConcurrentWorkers: 0,
  414. minifyCss: !1,
  415. minifyJs: !1,
  416. namespace: "Testing",
  417. nodeResolve: {
  418. customResolveOptions: {}
  419. },
  420. outputTargets: null,
  421. rollupPlugins: {
  422. before: [],
  423. after: []
  424. },
  425. rootDir: t,
  426. sourceMap: !0,
  427. sys: r,
  428. testing: null,
  429. validateTypes: !1,
  430. ...e
  431. };
  432. }
  433. function mockCompilerCtx(e) {
  434. e || (e = mockConfig());
  435. const t = {
  436. version: 1,
  437. activeBuildId: 0,
  438. activeDirsAdded: [],
  439. activeDirsDeleted: [],
  440. activeFilesAdded: [],
  441. activeFilesDeleted: [],
  442. activeFilesUpdated: [],
  443. addWatchDir: noop,
  444. addWatchFile: noop,
  445. cachedGlobalStyle: null,
  446. changedFiles: new Set,
  447. changedModules: new Set,
  448. collections: [],
  449. compilerOptions: null,
  450. cache: null,
  451. cssModuleImports: new Map,
  452. events: buildEvents(),
  453. fs: null,
  454. hasSuccessfulBuild: !1,
  455. isActivelyBuilding: !1,
  456. lastBuildResults: null,
  457. moduleMap: new Map,
  458. nodeMap: new WeakMap,
  459. reset: noop,
  460. resolvedCollections: new Set,
  461. rollupCache: new Map,
  462. rollupCacheHydrate: null,
  463. rollupCacheLazy: null,
  464. rollupCacheNative: null,
  465. styleModeNames: new Set,
  466. worker: stencil_js.createWorkerContext(e.sys)
  467. };
  468. return Object.defineProperty(t, "fs", {
  469. get() {
  470. return null == this._fs && (this._fs = (e => {
  471. const t = new Map, r = new Map, s = async (e, r = {}) => {
  472. e = normalizePath(e);
  473. const s = [];
  474. if (!0 === r.inMemoryOnly) {
  475. let n = e;
  476. n.endsWith("/") || (n += "/");
  477. const i = e.split("/");
  478. t.forEach(((t, n) => {
  479. if (!n.startsWith(e)) return;
  480. const a = n.split("/");
  481. if ((a.length === i.length + 1 || r.recursive && a.length > i.length) && t.exists) {
  482. const e = {
  483. absPath: n,
  484. relPath: a[i.length],
  485. isDirectory: t.isDirectory,
  486. isFile: t.isFile
  487. };
  488. o(r, e) || s.push(e);
  489. }
  490. }));
  491. } else await n(e, e, r, s);
  492. return s.sort(((e, t) => e.absPath < t.absPath ? -1 : e.absPath > t.absPath ? 1 : 0));
  493. }, n = async (t, r, s, i) => {
  494. const a = await e.readDir(r);
  495. if (a.length > 0) {
  496. const e = v(r);
  497. e.exists = !0, e.isFile = !1, e.isDirectory = !0, await Promise.all(a.map((async e => {
  498. const r = normalizePath(e), a = normalizePath(path$2.relative(t, r)), c = await l(r), u = {
  499. absPath: r,
  500. relPath: a,
  501. isDirectory: c.isDirectory,
  502. isFile: c.isFile
  503. };
  504. o(s, u) || (i.push(u), !0 === s.recursive && !0 === c.isDirectory && await n(t, r, s, i));
  505. })));
  506. }
  507. }, o = (e, t) => {
  508. if (t.isDirectory) {
  509. if (Array.isArray(e.excludeDirNames)) {
  510. const r = path$2.basename(t.absPath);
  511. if (e.excludeDirNames.some((e => r === e))) return !0;
  512. }
  513. } else if (Array.isArray(e.excludeExtensions)) {
  514. const r = t.relPath.toLowerCase();
  515. if (e.excludeExtensions.some((e => r.endsWith(e)))) return !0;
  516. }
  517. return !1;
  518. }, i = async e => {
  519. const t = v(e);
  520. t.isFile = !1, t.isDirectory = !0, t.queueWriteToDisk || (t.queueDeleteFromDisk = !0);
  521. try {
  522. const t = await s(e, {
  523. recursive: !0
  524. });
  525. await Promise.all(t.map((e => e.relPath.endsWith(".gitkeep") ? null : a(e.absPath))));
  526. } catch (e) {}
  527. }, a = async e => {
  528. const t = v(e);
  529. t.queueWriteToDisk || (t.queueDeleteFromDisk = !0);
  530. }, l = async t => {
  531. const r = v(t);
  532. if ("boolean" != typeof r.isDirectory || "boolean" != typeof r.isFile) {
  533. const s = await e.stat(t);
  534. s.error ? r.exists = !1 : (r.exists = !0, s.isFile ? (r.isFile = !0, r.isDirectory = !1,
  535. r.size = s.size) : s.isDirectory ? (r.isFile = !1, r.isDirectory = !0, r.size = s.size) : (r.isFile = !1,
  536. r.isDirectory = !1, r.size = null));
  537. }
  538. return {
  539. exists: !!r.exists,
  540. isFile: !!r.isFile,
  541. isDirectory: !!r.isDirectory,
  542. size: "number" == typeof r.size ? r.size : 0
  543. };
  544. }, c = t => {
  545. const r = v(t);
  546. if ("boolean" != typeof r.isDirectory || "boolean" != typeof r.isFile) {
  547. const s = e.statSync(t);
  548. s.error ? r.exists = !1 : (r.exists = !0, s.isFile ? (r.isFile = !0, r.isDirectory = !1,
  549. r.size = s.size) : s.isDirectory ? (r.isFile = !1, r.isDirectory = !0, r.size = s.size) : (r.isFile = !1,
  550. r.isDirectory = !1, r.size = null));
  551. }
  552. return {
  553. exists: !!r.exists,
  554. isFile: !!r.isFile,
  555. isDirectory: !!r.isDirectory,
  556. size: r.size
  557. };
  558. }, u = async (t, s, n) => {
  559. if ("string" != typeof t) throw new Error(`writeFile, invalid filePath: ${t}`);
  560. if ("string" != typeof s) throw new Error(`writeFile, invalid content: ${t}`);
  561. const o = {
  562. ignored: !1,
  563. changedContent: !1,
  564. queuedWrite: !1
  565. };
  566. if (!0 === shouldIgnore(t)) return o.ignored = !0, o;
  567. const i = v(t);
  568. if (i.exists = !0, i.isFile = !0, i.isDirectory = !1, i.queueDeleteFromDisk = !1,
  569. "string" == typeof i.fileText ? o.changedContent = i.fileText.replace(/\r/g, "") !== s.replace(/\r/g, "") : o.changedContent = !0,
  570. i.fileText = s, o.queuedWrite = !1, null != n && ("string" == typeof n.outputTargetType && r.set(t, n.outputTargetType),
  571. !1 === n.useCache && (i.useCache = !1)), null != n && !0 === n.inMemoryOnly) i.queueWriteToDisk ? o.queuedWrite = !0 : i.queueWriteToDisk = !1,
  572. await d(t, !0); else if (null != n && !0 === n.immediateWrite) {
  573. if (o.changedContent || !0 !== n.useCache) {
  574. const r = await e.readFile(t);
  575. "string" == typeof r && (o.changedContent = i.fileText.replace(/\r/g, "") !== r.replace(/\r/g, "")),
  576. o.changedContent && (await d(t, !1), await e.writeFile(t, i.fileText));
  577. }
  578. } else i.queueWriteToDisk || !0 !== o.changedContent || (i.queueWriteToDisk = !0,
  579. o.queuedWrite = !0);
  580. return o;
  581. }, d = async (e, t) => {
  582. const r = [];
  583. for (;"string" == typeof (e = path$2.dirname(e)) && e.length > 0 && "/" !== e && !1 === e.endsWith(":/") && !1 === e.endsWith(":\\"); ) r.push(e);
  584. r.reverse(), await h(r, t);
  585. }, h = async (t, r) => {
  586. const s = [];
  587. for (const n of t) {
  588. const t = v(n);
  589. if (!0 !== t.exists || !0 !== t.isDirectory) try {
  590. t.exists = !0, t.isDirectory = !0, t.isFile = !1, r || await e.createDir(n), s.push(n);
  591. } catch (e) {}
  592. }
  593. return s;
  594. }, p = t => Promise.all(t.map((async t => {
  595. const [r, s] = t;
  596. return await e.copyFile(r, s), [ r, s ];
  597. }))), f = e => Promise.all(e.map((async e => {
  598. if ("string" != typeof e) throw new Error("unable to writeFile without filePath");
  599. return m(e);
  600. }))), m = async t => {
  601. const r = v(t);
  602. if (null == r.fileText) throw new Error(`unable to find item fileText to write: ${t}`);
  603. return await e.writeFile(t, r.fileText), !1 === r.useCache && _(t), t;
  604. }, g = async t => await Promise.all(t.map((async t => {
  605. if ("string" != typeof t) throw new Error("unable to unlink without filePath");
  606. return await e.removeFile(t), t;
  607. }))), y = async t => {
  608. const r = [];
  609. for (const s of t) await e.removeDir(s), r.push(s);
  610. return r;
  611. }, w = e => {
  612. e = normalizePath(e), t.forEach(((t, r) => {
  613. const s = path$2.relative(e, r).split("/")[0];
  614. s.startsWith(".") || s.startsWith("/") || _(r);
  615. }));
  616. }, _ = e => {
  617. e = normalizePath(e);
  618. const r = t.get(e);
  619. null == r || r.queueWriteToDisk || t.delete(e);
  620. }, v = e => {
  621. e = normalizePath(e);
  622. let r = t.get(e);
  623. return null != r || t.set(e, r = {
  624. exists: null,
  625. fileText: null,
  626. size: null,
  627. mtimeMs: null,
  628. isDirectory: null,
  629. isFile: null,
  630. queueCopyFileToDest: null,
  631. queueDeleteFromDisk: null,
  632. queueWriteToDisk: null,
  633. useCache: null
  634. }), r;
  635. }, b = 5242880;
  636. return {
  637. access: async e => {
  638. const t = v(e);
  639. return "boolean" != typeof t.exists ? (await l(e)).exists : t.exists;
  640. },
  641. accessSync: e => {
  642. const t = v(e);
  643. return "boolean" != typeof t.exists ? c(e).exists : t.exists;
  644. },
  645. cancelDeleteDirectoriesFromDisk: e => {
  646. for (const t of e) {
  647. const e = v(t);
  648. !0 === e.queueDeleteFromDisk && (e.queueDeleteFromDisk = !1);
  649. }
  650. },
  651. cancelDeleteFilesFromDisk: e => {
  652. for (const t of e) {
  653. const e = v(t);
  654. !0 === e.isFile && !0 === e.queueDeleteFromDisk && (e.queueDeleteFromDisk = !1);
  655. }
  656. },
  657. clearCache: () => {
  658. t.clear();
  659. },
  660. clearDirCache: w,
  661. clearFileCache: _,
  662. commit: async () => {
  663. const e = getCommitInstructions(t), r = await h(e.dirsToEnsure, !1), s = await f(e.filesToWrite), n = await p(e.filesToCopy), o = await g(e.filesToDelete), i = await y(e.dirsToDelete);
  664. return e.filesToDelete.forEach(_), e.dirsToDelete.forEach(w), {
  665. filesCopied: n,
  666. filesWritten: s,
  667. filesDeleted: o,
  668. dirsDeleted: i,
  669. dirsAdded: r
  670. };
  671. },
  672. copyFile: async (e, t) => {
  673. v(e).queueCopyFileToDest = t;
  674. },
  675. emptyDirs: async e => {
  676. e = e.filter(isString).map(normalizePath).reduce(((e, t) => (e.includes(t) || e.push(t),
  677. e)), []);
  678. const t = await Promise.all(e.map((e => s(e, {
  679. recursive: !0
  680. })))), r = [];
  681. for (const e of t) for (const t of e) r.includes(t.absPath) || r.push(t.absPath);
  682. r.sort(((e, t) => {
  683. const r = e.split("/").length, s = t.split("/").length;
  684. return r < s ? 1 : r > s ? -1 : 0;
  685. })), await Promise.all(r.map(a)), e.forEach((e => {
  686. const t = v(e);
  687. t.isFile = !1, t.isDirectory = !0, t.queueWriteToDisk = !0, t.queueDeleteFromDisk = !1;
  688. }));
  689. },
  690. getBuildOutputs: () => {
  691. const e = [];
  692. return r.forEach(((t, r) => {
  693. const s = e.find((e => e.type === t));
  694. s ? s.files.push(r) : e.push({
  695. type: t,
  696. files: [ r ]
  697. });
  698. })), e.forEach((e => e.files.sort())), e.sort(((e, t) => e.type < t.type ? -1 : e.type > t.type ? 1 : 0));
  699. },
  700. getItem: v,
  701. getMemoryStats: () => `data length: ${t.size}`,
  702. readFile: async (t, r) => {
  703. if (null == r || !0 === r.useCache || void 0 === r.useCache) {
  704. const e = v(t);
  705. if (e.exists && "string" == typeof e.fileText) return e.fileText;
  706. }
  707. const s = await e.readFile(t), n = v(t);
  708. return "string" == typeof s ? s.length < b && (n.exists = !0, n.isFile = !0, n.isDirectory = !1,
  709. n.fileText = s) : n.exists = !1, s;
  710. },
  711. readFileSync: (t, r) => {
  712. if (null == r || !0 === r.useCache || void 0 === r.useCache) {
  713. const e = v(t);
  714. if (e.exists && "string" == typeof e.fileText) return e.fileText;
  715. }
  716. const s = e.readFileSync(t), n = v(t);
  717. return "string" == typeof s ? s.length < b && (n.exists = !0, n.isFile = !0, n.isDirectory = !1,
  718. n.fileText = s) : n.exists = !1, s;
  719. },
  720. readdir: s,
  721. remove: async e => {
  722. const t = await l(e);
  723. !0 === t.isDirectory ? await i(e) : !0 === t.isFile && await a(e);
  724. },
  725. stat: l,
  726. statSync: c,
  727. sys: e,
  728. writeFile: u,
  729. writeFiles: (e, t) => {
  730. const r = [];
  731. return isIterable(e) ? e.forEach(((e, s) => {
  732. r.push(u(s, e, t));
  733. })) : Object.keys(e).map((s => {
  734. r.push(u(s, e[s], t));
  735. })), Promise.all(r);
  736. }
  737. };
  738. })(e.sys)), this._fs;
  739. }
  740. }), Object.defineProperty(t, "cache", {
  741. get() {
  742. return null == this._cache && (this._cache = function r(e, t) {
  743. e || (e = mockConfig()), t || (t = mockCompilerCtx(e)), e.enableCache = !0;
  744. const r = new Cache(e, t.fs);
  745. return r.initCacheDir(), r;
  746. }(e, t)), this._cache;
  747. }
  748. }), t;
  749. }
  750. function mockLogger() {
  751. return new TestingLogger;
  752. }
  753. async function initPageEvents(e) {
  754. e._e2eEvents = new Map, e._e2eEventIds = 0, e.spyOnEvent = pageSpyOnEvent.bind(e, e),
  755. await e.exposeFunction("stencilOnEvent", ((t, r) => {
  756. !function s(e, t, r) {
  757. const s = e.get(t);
  758. s && s.callback(r);
  759. }(e._e2eEvents, t, r);
  760. })), await e.evaluateOnNewDocument(browserContextEvents);
  761. }
  762. async function pageSpyOnEvent(e, t, r) {
  763. const s = new EventSpy(t), n = "document" !== r ? () => window : () => document, o = await e.evaluateHandle(n);
  764. return await addE2EListener(e, o, t, (e => {
  765. s.push(e);
  766. })), s;
  767. }
  768. async function waitForEvent(e, t, r) {
  769. const s = .5 * jasmine.DEFAULT_TIMEOUT_INTERVAL, n = await e.evaluate(((e, t, r) => new Promise(((s, n) => {
  770. const o = setTimeout((() => {
  771. n(new Error(`waitForEvent() timeout, eventName: ${t}`));
  772. }), r);
  773. e.addEventListener(t, (e => {
  774. clearTimeout(o), s(window.stencilSerializeEvent(e));
  775. }), {
  776. once: !0
  777. });
  778. }))), r, t, s);
  779. return await e.waitForChanges(), n;
  780. }
  781. async function addE2EListener(e, t, r, s) {
  782. const n = e._e2eEventIds++;
  783. e._e2eEvents.set(n, {
  784. eventName: r,
  785. callback: s
  786. });
  787. const o = t.executionContext();
  788. await o.evaluate(((e, t, r) => {
  789. e.addEventListener(r, (e => {
  790. window.stencilOnEvent(t, window.stencilSerializeEvent(e));
  791. }));
  792. }), t, n, r);
  793. }
  794. function browserContextEvents() {
  795. const e = () => {
  796. const e = [], t = (e, r) => {
  797. if (null != r && 1 === r.nodeType) for (let s = 0; s < r.children.length; s++) {
  798. const n = r.children[s];
  799. n.tagName.includes("-") && "function" == typeof n.componentOnReady && e.push(n.componentOnReady()),
  800. t(e, n);
  801. }
  802. };
  803. return t(e, window.document.documentElement), Promise.all(e).catch((e => console.error(e)));
  804. }, t = () => e().then((() => new Promise((e => {
  805. requestAnimationFrame(e);
  806. })))).then((() => e())).then((() => {
  807. window.stencilAppLoaded = !0;
  808. }));
  809. window.stencilSerializeEventTarget = e => e ? e === window ? {
  810. serializedWindow: !0
  811. } : e === document ? {
  812. serializedDocument: !0
  813. } : null != e.nodeType ? {
  814. serializedElement: !0,
  815. nodeName: e.nodeName,
  816. nodeValue: e.nodeValue,
  817. nodeType: e.nodeType,
  818. tagName: e.tagName,
  819. className: e.className,
  820. id: e.id
  821. } : null : null, window.stencilSerializeEvent = e => ({
  822. bubbles: e.bubbles,
  823. cancelBubble: e.cancelBubble,
  824. cancelable: e.cancelable,
  825. composed: e.composed,
  826. currentTarget: window.stencilSerializeEventTarget(e.currentTarget),
  827. defaultPrevented: e.defaultPrevented,
  828. detail: e.detail,
  829. eventPhase: e.eventPhase,
  830. isTrusted: e.isTrusted,
  831. returnValue: e.returnValue,
  832. srcElement: window.stencilSerializeEventTarget(e.srcElement),
  833. target: window.stencilSerializeEventTarget(e.target),
  834. timeStamp: e.timeStamp,
  835. type: e.type,
  836. isSerializedEvent: !0
  837. }), "complete" === window.document.readyState ? t() : document.addEventListener("readystatechange", (function(e) {
  838. "complete" == e.target.readyState && t();
  839. }));
  840. }
  841. async function find(e, t, r) {
  842. const {lightSelector: s, shadowSelector: n, text: o, contains: i} = getSelector(r);
  843. let a;
  844. if (a = "string" == typeof s ? await async function l(e, t, r, s) {
  845. let n = await t.$(r);
  846. if (!n) return null;
  847. if (s) {
  848. const t = await e.evaluateHandle(((e, t) => {
  849. if (!e.shadowRoot) throw new Error(`shadow root does not exist for element: ${e.tagName.toLowerCase()}`);
  850. return e.shadowRoot.querySelector(t);
  851. }), n, s);
  852. if (await n.dispose(), !t) return null;
  853. n = t.asElement();
  854. }
  855. return n;
  856. }(e, t, s, n) : await async function c(e, t, r, s) {
  857. const n = await e.evaluateHandle(((e, t, r) => {
  858. let s = null;
  859. return function e(n) {
  860. if (n && !s) if (3 === n.nodeType) {
  861. if ("string" == typeof t && n.textContent.trim() === t) return void (s = n.parentElement);
  862. if ("string" == typeof r && n.textContent.includes(r)) return void (s = n.parentElement);
  863. } else {
  864. if ("SCRIPT" === n.nodeName || "STYLE" === n.nodeName) return;
  865. if (e(n.shadowRoot), n.childNodes) for (let t = 0; t < n.childNodes.length; t++) e(n.childNodes[t]);
  866. }
  867. }(e), s;
  868. }), t, r, s);
  869. return n ? n.asElement() : null;
  870. }(e, t, o, i), !a) return null;
  871. const u = new E2EElement(e, a);
  872. return await u.e2eSync(), u;
  873. }
  874. async function findAll(e, t, r) {
  875. const s = [], {lightSelector: n, shadowSelector: o} = getSelector(r), i = await t.$$(n);
  876. if (0 === i.length) return s;
  877. if (o) for (let t = 0; t < i.length; t++) {
  878. const r = i[t].executionContext(), n = await r.evaluateHandle(((e, t) => {
  879. if (!e.shadowRoot) throw new Error(`shadow root does not exist for element: ${e.tagName.toLowerCase()}`);
  880. return e.shadowRoot.querySelectorAll(t);
  881. }), i[t], o);
  882. await i[t].dispose();
  883. const a = await n.getProperties();
  884. await n.dispose();
  885. for (const t of a.values()) {
  886. const r = t.asElement();
  887. if (r) {
  888. const t = new E2EElement(e, r);
  889. await t.e2eSync(), s.push(t);
  890. }
  891. }
  892. } else for (let t = 0; t < i.length; t++) {
  893. const r = new E2EElement(e, i[t]);
  894. await r.e2eSync(), s.push(r);
  895. }
  896. return s;
  897. }
  898. function getSelector(e) {
  899. const t = {
  900. lightSelector: null,
  901. shadowSelector: null,
  902. text: null,
  903. contains: null
  904. };
  905. if ("string" == typeof e) {
  906. const r = e.split(">>>");
  907. t.lightSelector = r[0].trim(), t.shadowSelector = r.length > 1 ? r[1].trim() : null;
  908. } else if ("string" == typeof e.text) t.text = e.text.trim(); else {
  909. if ("string" != typeof e.contains) throw new Error(`invalid find selector: ${e}`);
  910. t.contains = e.contains.trim();
  911. }
  912. return t;
  913. }
  914. async function writeScreenshotData(e, t) {
  915. const r = function s(e, t) {
  916. const r = `${t}.json`;
  917. return path__default.default.join(e, r);
  918. }(e, t.id), n = JSON.stringify(t, null, 2);
  919. await writeFile(r, n);
  920. }
  921. function writeFile(e, t) {
  922. return new Promise(((r, s) => {
  923. fs__default.default.writeFile(e, t, (e => {
  924. e ? s(e) : r();
  925. }));
  926. }));
  927. }
  928. async function compareScreenshot(e, t, r, s, n, o, i, a) {
  929. const l = `${crypto$3.createHash("md5").update(r).digest("hex")}.png`, c = path$2.join(t.imagesDir, l);
  930. await async function u(e, t) {
  931. await function r(e) {
  932. return new Promise((t => {
  933. fs__default.default.access(e, (e => t(!e)));
  934. }));
  935. }(e) || await writeFile(e, t);
  936. }(c, r), r = null, i && (i = normalizePath(path$2.relative(t.rootDir, i)));
  937. const d = function h(e, t) {
  938. if ("string" != typeof t || 0 === t.trim().length) throw new Error("invalid test description");
  939. const r = crypto$3.createHash("md5");
  940. return r.update(t + ":"), r.update(e.userAgent + ":"), r.update(e.viewport.width + ":"),
  941. r.update(e.viewport.height + ":"), r.update(e.viewport.deviceScaleFactor + ":"),
  942. r.update(e.viewport.hasTouch + ":"), r.update(e.viewport.isMobile + ":"), r.digest("hex").slice(0, 8).toLowerCase();
  943. }(e, s), p = {
  944. id: d,
  945. image: l,
  946. device: e.device,
  947. userAgent: e.userAgent,
  948. desc: s,
  949. testPath: i,
  950. width: n,
  951. height: o,
  952. deviceScaleFactor: e.viewport.deviceScaleFactor,
  953. hasTouch: e.viewport.hasTouch,
  954. isLandscape: e.viewport.isLandscape,
  955. isMobile: e.viewport.isMobile,
  956. diff: {
  957. id: d,
  958. desc: s,
  959. imageA: l,
  960. imageB: l,
  961. mismatchedPixels: 0,
  962. device: e.device,
  963. userAgent: e.userAgent,
  964. width: n,
  965. height: o,
  966. deviceScaleFactor: e.viewport.deviceScaleFactor,
  967. hasTouch: e.viewport.hasTouch,
  968. isLandscape: e.viewport.isLandscape,
  969. isMobile: e.viewport.isMobile,
  970. allowableMismatchedPixels: t.allowableMismatchedPixels,
  971. allowableMismatchedRatio: t.allowableMismatchedRatio,
  972. testPath: i
  973. }
  974. };
  975. if (t.updateMaster) return await writeScreenshotData(t.currentBuildDir, p), p.diff;
  976. const f = t.masterScreenshots[p.id];
  977. if (!f) return await writeScreenshotData(t.currentBuildDir, p), p.diff;
  978. if (p.diff.imageA = f, p.diff.imageA !== p.diff.imageB) {
  979. p.diff.cacheKey = function m(e, t, r) {
  980. const s = crypto$3.createHash("md5");
  981. return s.update(`${e}:${t}:${r}`), s.digest("hex").slice(0, 10);
  982. }(p.diff.imageA, p.diff.imageB, a);
  983. const r = t.cache[p.diff.cacheKey];
  984. if ("number" != typeof r || isNaN(r)) {
  985. const r = Math.round(e.viewport.width * e.viewport.deviceScaleFactor), s = Math.round(e.viewport.height * e.viewport.deviceScaleFactor), n = {
  986. imageAPath: path$2.join(t.imagesDir, p.diff.imageA),
  987. imageBPath: path$2.join(t.imagesDir, p.diff.imageB),
  988. width: r,
  989. height: s,
  990. pixelmatchThreshold: a
  991. };
  992. p.diff.mismatchedPixels = await async function g(e, t) {
  993. return new Promise(((r, s) => {
  994. const n = .5 * jasmine.DEFAULT_TIMEOUT_INTERVAL, o = setTimeout((() => {
  995. s(`getMismatchedPixels timeout: ${n}ms`);
  996. }), n);
  997. try {
  998. const n = {
  999. execArgv: process.execArgv.filter((e => !/^--(debug|inspect)/.test(e))),
  1000. env: process.env,
  1001. cwd: process.cwd(),
  1002. stdio: [ "pipe", "pipe", "pipe", "ipc" ]
  1003. }, i = child_process$2.fork(e, [], n);
  1004. i.on("message", (e => {
  1005. i.kill(), clearTimeout(o), r(e);
  1006. })), i.on("error", (e => {
  1007. clearTimeout(o), s(e);
  1008. })), i.send(t);
  1009. } catch (e) {
  1010. clearTimeout(o), s(`getMismatchedPixels error: ${e}`);
  1011. }
  1012. }));
  1013. }(t.pixelmatchModulePath, n);
  1014. } else p.diff.mismatchedPixels = r;
  1015. }
  1016. return await writeScreenshotData(t.currentBuildDir, p), p.diff;
  1017. }
  1018. async function e2eGoTo(e, t, r = {}) {
  1019. if (e.isClosed()) throw new Error("e2eGoTo unavailable: page already closed");
  1020. if ("string" != typeof t) throw new Error("invalid gotoTest() url");
  1021. if (!t.startsWith("/")) throw new Error("gotoTest() url must start with /");
  1022. const s = env.__STENCIL_BROWSER_URL__;
  1023. if ("string" != typeof s) throw new Error("invalid gotoTest() browser url");
  1024. const n = s + t.substring(1);
  1025. r.waitUntil || (r.waitUntil = env.__STENCIL_BROWSER_WAIT_UNTIL);
  1026. const o = await e._e2eGoto(n, r);
  1027. if (!o.ok()) throw new Error(`Testing unable to load ${t}, HTTP status: ${o.status()}`);
  1028. return await waitForStencil(e, r), o;
  1029. }
  1030. async function e2eSetContent(e, t, r = {}) {
  1031. if (e.isClosed()) throw new Error("e2eSetContent unavailable: page already closed");
  1032. if ("string" != typeof t) throw new Error("invalid e2eSetContent() html");
  1033. const s = [], n = env.__STENCIL_APP_SCRIPT_URL__;
  1034. if ("string" != typeof n) throw new Error("invalid e2eSetContent() app script url");
  1035. s.push("<!doctype html>"), s.push("<html>"), s.push("<head>");
  1036. const o = env.__STENCIL_APP_STYLE_URL__;
  1037. "string" == typeof o && s.push(`<link rel="stylesheet" href="${o}">`), s.push(`<script type="module" src="${n}"><\/script>`),
  1038. s.push("</head>"), s.push("<body>"), s.push(t), s.push("</body>"), s.push("</html>");
  1039. const i = env.__STENCIL_BROWSER_URL__;
  1040. await e.setRequestInterception(!0), e.on("request", (e => {
  1041. i === e.url() ? e.respond({
  1042. status: 200,
  1043. contentType: "text/html",
  1044. body: s.join("\n")
  1045. }) : e.continue();
  1046. })), r.waitUntil || (r.waitUntil = env.__STENCIL_BROWSER_WAIT_UNTIL);
  1047. const a = await e._e2eGoto(i, r);
  1048. if (!a.ok()) throw new Error("Testing unable to load content");
  1049. return await waitForStencil(e, r), a;
  1050. }
  1051. async function waitForStencil(e, t) {
  1052. try {
  1053. const r = "number" == typeof t.timeout ? t.timeout : 4750;
  1054. await e.waitForFunction("window.stencilAppLoaded", {
  1055. timeout: r
  1056. });
  1057. } catch (e) {
  1058. throw new Error("App did not load in allowed time. Please ensure the content loads a stencil application.");
  1059. }
  1060. }
  1061. async function waitForChanges(e) {
  1062. try {
  1063. if (e.isClosed()) return;
  1064. if (await Promise.all(e._e2eElements.map((e => e.e2eRunActions()))), e.isClosed()) return;
  1065. if (await e.evaluate((() => new Promise((e => {
  1066. requestAnimationFrame((() => {
  1067. const t = [], r = (e, t) => {
  1068. if (null != e) {
  1069. "shadowRoot" in e && e.shadowRoot instanceof ShadowRoot && r(e.shadowRoot, t);
  1070. const s = e.children, n = s.length;
  1071. for (let e = 0; e < n; e++) {
  1072. const n = s[e];
  1073. null != n && (n.tagName.includes("-") && "function" == typeof n.componentOnReady && t.push(n.componentOnReady()),
  1074. r(n, t));
  1075. }
  1076. }
  1077. };
  1078. r(document.documentElement, t), Promise.all(t).then((() => {
  1079. e();
  1080. })).catch((() => {
  1081. e();
  1082. }));
  1083. }));
  1084. })))), e.isClosed()) return;
  1085. "function" == typeof e.waitForTimeout ? await e.waitForTimeout(100) : await e.waitFor(100),
  1086. await Promise.all(e._e2eElements.map((e => e.e2eSync())));
  1087. } catch (e) {}
  1088. }
  1089. function serializeConsoleMessage(e) {
  1090. return `${e.text()} ${function t(e) {
  1091. let t = "";
  1092. return e && e.url && (t = `\nLocation: ${e.url}`, e.lineNumber && (t += `:${e.lineNumber}`),
  1093. e.columnNumber && (t += `:${e.columnNumber}`)), t;
  1094. }(e.location())}`;
  1095. }
  1096. function findRootComponent(e, t) {
  1097. if (null != t) {
  1098. const r = t.children, s = r.length;
  1099. for (let t = 0; t < s; t++) {
  1100. const s = r[t];
  1101. if (e.has(s.nodeName.toLowerCase())) return s;
  1102. }
  1103. for (let t = 0; t < s; t++) {
  1104. const s = findRootComponent(e, r[t]);
  1105. if (null != s) return s;
  1106. }
  1107. }
  1108. return null;
  1109. }
  1110. function createBuildId() {
  1111. const e = new Date;
  1112. let t = e.getFullYear() + "";
  1113. return t += ("0" + (e.getMonth() + 1)).slice(-2), t += ("0" + e.getDate()).slice(-2),
  1114. t += ("0" + e.getHours()).slice(-2), t += ("0" + e.getMinutes()).slice(-2), t += ("0" + e.getSeconds()).slice(-2),
  1115. t;
  1116. }
  1117. function createBuildMessage() {
  1118. const e = new Date;
  1119. let t = e.getFullYear() + "-";
  1120. return t += ("0" + (e.getMonth() + 1)).slice(-2) + "-", t += ("0" + e.getDate()).slice(-2) + " ",
  1121. t += ("0" + e.getHours()).slice(-2) + ":", t += ("0" + e.getMinutes()).slice(-2) + ":",
  1122. t += ("0" + e.getSeconds()).slice(-2), `Build: ${t}`;
  1123. }
  1124. function getAppStyleUrl(e, t) {
  1125. return e.globalStyle ? getAppUrl(e, t, `${e.fsNamespace}.css`) : null;
  1126. }
  1127. function getAppUrl(e, t, r) {
  1128. const s = e.outputTargets.find(isOutputTargetWww);
  1129. if (s) {
  1130. const e = s.buildDir, n = path$2.join(e, r), o = path$2.relative(s.dir, n);
  1131. return new URL(o, t).href;
  1132. }
  1133. const n = e.outputTargets.find(isOutputTargetDistLazy);
  1134. if (n) {
  1135. const s = n.esmDir, o = path$2.join(s, r), i = path$2.relative(e.rootDir, o);
  1136. return new URL(i, t).href;
  1137. }
  1138. return t;
  1139. }
  1140. var posix, pathBrowserify, caller, pathParse, parse, getNodeModulesDirs, nodeModulesPaths, normalizeOptions, ERROR_MESSAGE, slice, toStr, implementation, functionBind, src, isCoreModule, realpathFS$1, defaultIsFile$1, defaultIsDir$1, defaultRealpath, maybeRealpath, defaultReadPackage, getPackageCandidates$1, async, current, core, mod, core_1, isCore, realpathFS, defaultIsFile, defaultIsDir, defaultRealpathSync, maybeRealpathSync, defaultReadPackageSync, getPackageCandidates, sync, resolve;
  1141. const stencil_js = require("../compiler/stencil.js"), appData = _lazyRequire("@stencil/core/internal/app-data"), testing = _lazyRequire("@stencil/core/internal/testing"), index_cjs = _lazyRequire("../mock-doc/index.cjs"), path$2 = require("path"), crypto$3 = require("crypto"), os$2 = require("os"), process$3 = require("process"), fs$2 = require("fs"), index_js = _lazyRequire("../dev-server/index.js"), child_process$2 = require("child_process"), path__default = _interopDefaultLegacy(path$2), os__namespace = _interopNamespace(os$2), process__namespace = _interopNamespace(process$3), fs__default = _interopDefaultLegacy(fs$2), formatComponentRuntimeMembers = (e, t = !0) => ({
  1142. ...formatPropertiesRuntimeMember(e.properties),
  1143. ...formatStatesRuntimeMember(e.states),
  1144. ...t ? formatMethodsRuntimeMember(e.methods) : {}
  1145. }), formatPropertiesRuntimeMember = e => {
  1146. const t = {};
  1147. return e.forEach((e => {
  1148. t[e.name] = trimFalsy([ formatFlags(e), formatAttrName(e) ]);
  1149. })), t;
  1150. }, formatFlags = e => {
  1151. let t = formatPropType(e.type);
  1152. return e.mutable && (t |= 1024), e.reflect && (t |= 512), t;
  1153. }, formatAttrName = e => {
  1154. if ("string" == typeof e.attribute) {
  1155. if (e.name === e.attribute) return;
  1156. return e.attribute;
  1157. }
  1158. }, formatPropType = e => "string" === e ? 1 : "number" === e ? 2 : "boolean" === e ? 4 : "any" === e ? 8 : 16, formatStatesRuntimeMember = e => {
  1159. const t = {};
  1160. return e.forEach((e => {
  1161. t[e.name] = [ 32 ];
  1162. })), t;
  1163. }, formatMethodsRuntimeMember = e => {
  1164. const t = {};
  1165. return e.forEach((e => {
  1166. t[e.name] = [ 64 ];
  1167. })), t;
  1168. }, formatHostListeners = e => e.listeners.map((e => [ computeListenerFlags(e), e.name, e.method ])), computeListenerFlags = e => {
  1169. let t = 0;
  1170. switch (e.capture && (t |= 2), e.passive && (t |= 1), e.target) {
  1171. case "document":
  1172. t |= 4;
  1173. break;
  1174. case "window":
  1175. t |= 8;
  1176. break;
  1177. case "body":
  1178. t |= 16;
  1179. break;
  1180. case "parent":
  1181. t |= 32;
  1182. }
  1183. return t;
  1184. }, trimFalsy = e => {
  1185. const t = e;
  1186. for (let e = t.length - 1; e >= 0 && !t[e]; e--) t.pop();
  1187. return t;
  1188. }, noop = () => {}, isFunction = e => "function" == typeof e, isString = e => "string" == typeof e, isIterable = e => (e => null != e)(e) && isFunction(e[Symbol.iterator]), windowsPathRegex = /^(?:[a-zA-Z]:|[\\/]{2}[^\\/]+[\\/]+[^\\/]+)?[\\/]$/, hasError = e => null != e && 0 !== e.length && e.some((e => "error" === e.level && "runtime" !== e.type)), normalizePath = e => {
  1189. if ("string" != typeof e) throw new Error("invalid path to normalize");
  1190. e = normalizeSlashes(e.trim());
  1191. const t = pathComponents(e, getRootLength(e)), r = reducePathComponents(t), s = r[0], n = r[1], o = s + r.slice(1).join("/");
  1192. return "" === o ? "." : "" === s && n && e.includes("/") && !n.startsWith(".") && !n.startsWith("@") ? "./" + o : o;
  1193. }, normalizeSlashes = e => e.replace(backslashRegExp, "/"), backslashRegExp = /\\/g, reducePathComponents = e => {
  1194. if (!Array.isArray(e) || 0 === e.length) return [];
  1195. const t = [ e[0] ];
  1196. for (let r = 1; r < e.length; r++) {
  1197. const s = e[r];
  1198. if (s && "." !== s) {
  1199. if (".." === s) if (t.length > 1) {
  1200. if (".." !== t[t.length - 1]) {
  1201. t.pop();
  1202. continue;
  1203. }
  1204. } else if (t[0]) continue;
  1205. t.push(s);
  1206. }
  1207. }
  1208. return t;
  1209. }, getRootLength = e => {
  1210. const t = getEncodedRootLength(e);
  1211. return t < 0 ? ~t : t;
  1212. }, getEncodedRootLength = e => {
  1213. if (!e) return 0;
  1214. const t = e.charCodeAt(0);
  1215. if (47 === t || 92 === t) {
  1216. if (e.charCodeAt(1) !== t) return 1;
  1217. const r = e.indexOf(47 === t ? "/" : "\\", 2);
  1218. return r < 0 ? e.length : r + 1;
  1219. }
  1220. if (isVolumeCharacter(t) && 58 === e.charCodeAt(1)) {
  1221. const t = e.charCodeAt(2);
  1222. if (47 === t || 92 === t) return 3;
  1223. if (2 === e.length) return 2;
  1224. }
  1225. const r = e.indexOf("://");
  1226. if (-1 !== r) {
  1227. const t = r + "://".length, s = e.indexOf("/", t);
  1228. if (-1 !== s) {
  1229. const n = e.slice(0, r), o = e.slice(t, s);
  1230. if ("file" === n && ("" === o || "localhost" === o) && isVolumeCharacter(e.charCodeAt(s + 1))) {
  1231. const t = getFileUrlVolumeSeparatorEnd(e, s + 2);
  1232. if (-1 !== t) {
  1233. if (47 === e.charCodeAt(t)) return ~(t + 1);
  1234. if (t === e.length) return ~t;
  1235. }
  1236. }
  1237. return ~(s + 1);
  1238. }
  1239. return ~e.length;
  1240. }
  1241. return 0;
  1242. }, isVolumeCharacter = e => e >= 97 && e <= 122 || e >= 65 && e <= 90, getFileUrlVolumeSeparatorEnd = (e, t) => {
  1243. const r = e.charCodeAt(t);
  1244. if (58 === r) return t + 1;
  1245. if (37 === r && 51 === e.charCodeAt(t + 1)) {
  1246. const r = e.charCodeAt(t + 2);
  1247. if (97 === r || 65 === r) return t + 3;
  1248. }
  1249. return -1;
  1250. }, pathComponents = (e, t) => {
  1251. const r = e.substring(0, t), s = e.substring(t).split("/"), n = s.length;
  1252. return n > 0 && !s[n - 1] && s.pop(), [ r, ...s ];
  1253. }, normalizeFsPath = e => normalizePath(e.split("?")[0].replace(/\0/g, "")), flattenDiagnosticMessageText = (e, t) => {
  1254. var r, s;
  1255. if ("string" == typeof t) return t;
  1256. if (void 0 === t) return "";
  1257. const n = [], o = (null !== (s = null === (r = e.file) || void 0 === r ? void 0 : r.fileName) && void 0 !== s ? s : "").includes("stencil.config");
  1258. o && n.push(2322);
  1259. let i = "";
  1260. if (!n.includes(t.code) && (i = t.messageText, isIterable(t.next))) for (const r of t.next) i += flattenDiagnosticMessageText(e, r);
  1261. return o && (i = i.replace("type 'StencilConfig'", "Stencil Config"), i = i.replace("Object literal may only specify known properties, but ", ""),
  1262. i = i.replace("Object literal may only specify known properties, and ", "")), i.trim();
  1263. }, isJest27TransformOptions = e => null != e && "object" == typeof e && e.hasOwnProperty("config");
  1264. let _tsCompilerOptions = null, _tsCompilerOptionsKey = null;
  1265. const jestPreprocessor = {
  1266. process(e, t, r, s) {
  1267. if (isJest27TransformOptions(r) && (s = r.config), !s) throw "Unable to find Jest transformation options.";
  1268. if (function n(e, t) {
  1269. var r;
  1270. const s = (null !== (r = e.split(".").pop()) && void 0 !== r ? r : "").toLowerCase().split("?")[0];
  1271. if ("ts" === s || "tsx" === s || "jsx" === s) return !0;
  1272. if ("mjs" === s) return !0;
  1273. if ("js" === s) {
  1274. if (t.includes("import ") || t.includes("import.") || t.includes("import(")) return !0;
  1275. if (t.includes("export ")) return !0;
  1276. }
  1277. return "css" === s;
  1278. }(t, e)) {
  1279. const r = {
  1280. file: t,
  1281. currentDirectory: s.rootDir
  1282. }, n = getCompilerOptions(s.rootDir);
  1283. n && (n.baseUrl && (r.baseUrl = n.baseUrl), n.paths && (r.paths = n.paths));
  1284. const o = transpile(e, r), i = o.diagnostics.some((e => "error" === e.level));
  1285. if (o.diagnostics && i) {
  1286. const e = o.diagnostics.map(formatDiagnostic).join("\n\n");
  1287. throw new Error(e);
  1288. }
  1289. return o.code;
  1290. }
  1291. return e;
  1292. },
  1293. getCacheKey(e, t, r, s) {
  1294. if (isJest27TransformOptions(r) && (s = r.config), !s) throw "Unable to find Jest transformation options.";
  1295. if (!_tsCompilerOptionsKey) {
  1296. const e = getCompilerOptions(s.rootDir);
  1297. _tsCompilerOptionsKey = JSON.stringify(e);
  1298. }
  1299. return [ process.version, _tsCompilerOptionsKey, e, t, r, !!s.instrument, 7 ].join(":");
  1300. }
  1301. }, deepEqual = function e(t, r) {
  1302. if (t === r) return !0;
  1303. if (t && r && "object" == typeof t && "object" == typeof r) {
  1304. const s = Array.isArray(t), n = Array.isArray(r);
  1305. let o, i, a;
  1306. if (s && n) {
  1307. if (i = t.length, i != r.length) return !1;
  1308. for (o = i; 0 != o--; ) if (!e(t[o], r[o])) return !1;
  1309. return !0;
  1310. }
  1311. if (s != n) return !1;
  1312. const l = t instanceof Date, c = r instanceof Date;
  1313. if (l != c) return !1;
  1314. if (l && c) return t.getTime() == r.getTime();
  1315. const u = t instanceof RegExp, d = r instanceof RegExp;
  1316. if (u != d) return !1;
  1317. if (u && d) return t.toString() == r.toString();
  1318. const h = Object.keys(t);
  1319. if (i = h.length, i !== Object.keys(r).length) return !1;
  1320. for (o = i; 0 != o--; ) if (!Object.prototype.hasOwnProperty.call(r, h[o])) return !1;
  1321. for (o = i; 0 != o--; ) if (a = h[o], !e(t[a], r[a])) return !1;
  1322. return !0;
  1323. }
  1324. return t != t && r != r;
  1325. }, expectExtend = {
  1326. toEqualAttribute: function toEqualAttribute(e, t, r) {
  1327. if (!e) throw new Error("expect toMatchAttribute value is null");
  1328. if ("function" == typeof e.then) throw new Error("element must be a resolved value, not a promise, before it can be tested");
  1329. if (1 !== e.nodeType) throw new Error("expect toMatchAttribute value is not an element");
  1330. let s = e.getAttribute(t);
  1331. null != r && (r = String(r)), null != s && (s = String(s));
  1332. const n = r === s;
  1333. return {
  1334. message: () => `expected attribute ${t} "${r}" to ${n ? "not " : ""}equal "${s}"`,
  1335. pass: n
  1336. };
  1337. },
  1338. toEqualAttributes: function toEqualAttributes(e, t) {
  1339. if (!e) throw new Error("expect toEqualAttributes value is null");
  1340. if ("function" == typeof e.then) throw new Error("element must be a resolved value, not a promise, before it can be tested");
  1341. if (1 !== e.nodeType) throw new Error("expect toEqualAttributes value is not an element");
  1342. const r = Object.keys(t), s = r.every((r => {
  1343. let s = t[r];
  1344. return null != s && (s = String(s)), e.getAttribute(r) === s;
  1345. }));
  1346. return {
  1347. message: () => `expected attributes to ${s ? "not " : ""}equal ${r.map((e => `[${e}="${t[e]}"]`)).join(", ")}`,
  1348. pass: s
  1349. };
  1350. },
  1351. toEqualHtml: function toEqualHtml(e, t) {
  1352. return compareHtml(e, t, !0);
  1353. },
  1354. toEqualLightHtml: function toEqualLightHtml(e, t) {
  1355. return compareHtml(e, t, !1);
  1356. },
  1357. toEqualText: function toEqualText(e, t) {
  1358. if (null == e) throw new Error(`expect toEqualText() value is "${e}"`);
  1359. if ("function" == typeof e.then) throw new Error("element must be a resolved value, not a promise, before it can be tested");
  1360. let r;
  1361. 1 === e.nodeType ? r = e.textContent.replace(/\s\s+/g, " ").trim() : null != e && (r = String(e).replace(/\s\s+/g, " ").trim()),
  1362. "string" == typeof t && (t = t.replace(/\s\s+/g, " ").trim());
  1363. const s = r === t;
  1364. return {
  1365. message: () => `expected textContent "${t}" to ${s ? "not " : ""}equal "${r}"`,
  1366. pass: s
  1367. };
  1368. },
  1369. toHaveAttribute: function toHaveAttribute(e, t) {
  1370. if (!e) throw new Error("expect toHaveAttribute value is null");
  1371. if ("function" == typeof e.then) throw new Error("element must be a resolved value, not a promise, before it can be tested");
  1372. if (1 !== e.nodeType) throw new Error("expect toHaveAttribute value is not an element");
  1373. const r = e.hasAttribute(t);
  1374. return {
  1375. message: () => `expected to ${r ? "not " : ""}have the attribute "${t}"`,
  1376. pass: r
  1377. };
  1378. },
  1379. toHaveClass: function toHaveClass(e, t) {
  1380. if (!e) throw new Error("expect toHaveClass value is null");
  1381. if ("function" == typeof e.then) throw new Error("element must be a resolved value, not a promise, before it can be tested");
  1382. if (1 !== e.nodeType) throw new Error("expect toHaveClass value is not an element");
  1383. const r = e.classList.contains(t);
  1384. return {
  1385. message: () => `expected to ${r ? "not " : ""}have css class "${t}"`,
  1386. pass: r
  1387. };
  1388. },
  1389. toHaveClasses,
  1390. toMatchClasses: function toMatchClasses(e, t) {
  1391. let {pass: r} = toHaveClasses(e, t);
  1392. return r && (r = t.length === e.classList.length), {
  1393. message: () => `expected to ${r ? "not " : ""}match css classes "${t.join(" ")}", but className is "${e.className}"`,
  1394. pass: r
  1395. };
  1396. },
  1397. toHaveReceivedEvent: function toHaveReceivedEvent(e) {
  1398. if (!e) throw new Error("toHaveReceivedEvent event spy is null");
  1399. if ("function" == typeof e.then) throw new Error("event spy must be a resolved value, not a promise, before it can be tested");
  1400. if (!e.eventName) throw new Error("toHaveReceivedEvent did not receive an event spy");
  1401. const t = e.events.length > 0;
  1402. return {
  1403. message: () => `expected to have ${t ? "not " : ""}called "${e.eventName}" event`,
  1404. pass: t
  1405. };
  1406. },
  1407. toHaveReceivedEventDetail: function toHaveReceivedEventDetail(e, t) {
  1408. if (!e) throw new Error("toHaveReceivedEventDetail event spy is null");
  1409. if ("function" == typeof e.then) throw new Error("event spy must be a resolved value, not a promise, before it can be tested");
  1410. if (!e.eventName) throw new Error("toHaveReceivedEventDetail did not receive an event spy");
  1411. if (!e.lastEvent) throw new Error(`event "${e.eventName}" was not received`);
  1412. const r = deepEqual(e.lastEvent.detail, t);
  1413. return expect(e.lastEvent.detail).toEqual(t), {
  1414. message: () => `expected event "${e.eventName}" detail to ${r ? "not " : ""}equal`,
  1415. pass: r
  1416. };
  1417. },
  1418. toHaveReceivedEventTimes: function toHaveReceivedEventTimes(e, t) {
  1419. if (!e) throw new Error("toHaveReceivedEventTimes event spy is null");
  1420. if ("function" == typeof e.then) throw new Error("event spy must be a resolved value, not a promise, before it can be tested");
  1421. if (!e.eventName) throw new Error("toHaveReceivedEventTimes did not receive an event spy");
  1422. return {
  1423. message: () => `expected event "${e.eventName}" to have been called ${t} times, but was called ${e.events.length} time${e.events.length > 1 ? "s" : ""}`,
  1424. pass: e.length === t
  1425. };
  1426. },
  1427. toHaveFirstReceivedEventDetail: function toHaveFirstReceivedEventDetail(e, t) {
  1428. if (!e) throw new Error("toHaveFirstReceivedEventDetail event spy is null");
  1429. if ("function" == typeof e.then) throw new Error("event spy must be a resolved value, not a promise, before it can be tested");
  1430. if (!e.eventName) throw new Error("toHaveFirstReceivedEventDetail did not receive an event spy");
  1431. if (!e.firstEvent) throw new Error(`event "${e.eventName}" was not received`);
  1432. const r = deepEqual(e.firstEvent.detail, t);
  1433. return expect(e.lastEvent.detail).toEqual(t), {
  1434. message: () => `expected event "${e.eventName}" detail to ${r ? "not " : ""}equal`,
  1435. pass: r
  1436. };
  1437. },
  1438. toHaveNthReceivedEventDetail: function toHaveNthReceivedEventDetail(e, t, r) {
  1439. if (!e) throw new Error("toHaveNthReceivedEventDetail event spy is null");
  1440. if ("function" == typeof e.then) throw new Error("event spy must be a resolved value, not a promise, before it can be tested");
  1441. if (!e.eventName) throw new Error("toHaveNthReceivedEventDetail did not receive an event spy");
  1442. if (!e.firstEvent) throw new Error(`event "${e.eventName}" was not received`);
  1443. const s = e.events[t];
  1444. if (!s) throw new Error(`event at index ${t} was not received`);
  1445. const n = deepEqual(s.detail, r);
  1446. return expect(s.detail).toEqual(r), {
  1447. message: () => `expected event "${e.eventName}" detail to ${n ? "not " : ""}equal`,
  1448. pass: n
  1449. };
  1450. },
  1451. toMatchScreenshot: function toMatchScreenshot(e, t = {}) {
  1452. if (!e) throw new Error("expect toMatchScreenshot value is null");
  1453. if ("function" == typeof e.then) throw new Error("expect(compare).toMatchScreenshot() must be a resolved value, not a promise, before it can be tested");
  1454. if ("number" != typeof e.mismatchedPixels) throw new Error("expect toMatchScreenshot() value is not a screenshot compare");
  1455. const r = e.device || e.userAgent;
  1456. if ("number" == typeof t.allowableMismatchedRatio) {
  1457. if (t.allowableMismatchedRatio < 0 || t.allowableMismatchedRatio > 1) throw new Error("expect toMatchScreenshot() allowableMismatchedRatio must be a value ranging from 0 to 1");
  1458. const s = e.mismatchedPixels / (e.width * e.deviceScaleFactor * (e.height * e.deviceScaleFactor));
  1459. return {
  1460. message: () => `${r}: screenshot has a mismatch ratio of "${s}" for "${e.desc}", but expected ratio to be less than "${t.allowableMismatchedRatio}"`,
  1461. pass: s <= t.allowableMismatchedRatio
  1462. };
  1463. }
  1464. if ("number" == typeof t.allowableMismatchedPixels) {
  1465. if (t.allowableMismatchedPixels < 0) throw new Error("expect toMatchScreenshot() allowableMismatchedPixels value must be a value that is 0 or greater");
  1466. return {
  1467. message: () => `${r}: screenshot has "${e.mismatchedPixels}" mismatched pixels for "${e.desc}", but expected less than "${t.allowableMismatchedPixels}" mismatched pixels`,
  1468. pass: e.mismatchedPixels <= t.allowableMismatchedPixels
  1469. };
  1470. }
  1471. if ("number" == typeof e.allowableMismatchedRatio) {
  1472. const t = e.mismatchedPixels / (e.width * e.deviceScaleFactor * (e.height * e.deviceScaleFactor));
  1473. return {
  1474. message: () => `${r}: screenshot has a mismatch ratio of "${t}" for "${e.desc}", but expected ratio to be less than "${e.allowableMismatchedRatio}"`,
  1475. pass: t <= e.allowableMismatchedRatio
  1476. };
  1477. }
  1478. if ("number" == typeof e.allowableMismatchedPixels) return {
  1479. message: () => `${r}: screenshot has "${e.mismatchedPixels}" mismatched pixels for "${e.desc}", but expected less than "${e.allowableMismatchedPixels}" mismatched pixels`,
  1480. pass: e.mismatchedPixels <= e.allowableMismatchedPixels
  1481. };
  1482. throw new Error("expect toMatchScreenshot() missing allowableMismatchedPixels in testing config");
  1483. }
  1484. };
  1485. class MockHeaders {
  1486. constructor(e) {
  1487. if (this._values = [], "object" == typeof e) if ("function" == typeof e[Symbol.iterator]) {
  1488. const t = [];
  1489. for (const r of e) "function" == typeof r[Symbol.iterator] && t.push([ ...r ]);
  1490. for (const e of t) this.append(e[0], e[1]);
  1491. } else for (const t in e) this.append(t, e[t]);
  1492. }
  1493. append(e, t) {
  1494. this._values.push([ e, t + "" ]);
  1495. }
  1496. delete(e) {
  1497. e = e.toLowerCase();
  1498. for (let t = this._values.length - 1; t >= 0; t--) this._values[t][0].toLowerCase() === e && this._values.splice(t, 1);
  1499. }
  1500. entries() {
  1501. const e = [];
  1502. for (const t of this.keys()) e.push([ t, this.get(t) ]);
  1503. let t = -1;
  1504. return {
  1505. next: () => (t++, {
  1506. value: e[t],
  1507. done: !e[t]
  1508. }),
  1509. [Symbol.iterator]() {
  1510. return this;
  1511. }
  1512. };
  1513. }
  1514. forEach(e) {
  1515. for (const t of this.entries()) e(t[1], t[0]);
  1516. }
  1517. get(e) {
  1518. const t = [];
  1519. e = e.toLowerCase();
  1520. for (const r of this._values) r[0].toLowerCase() === e && t.push(r[1]);
  1521. return t.length > 0 ? t.join(", ") : null;
  1522. }
  1523. has(e) {
  1524. e = e.toLowerCase();
  1525. for (const t of this._values) if (t[0].toLowerCase() === e) return !0;
  1526. return !1;
  1527. }
  1528. keys() {
  1529. const e = [];
  1530. for (const t of this._values) {
  1531. const r = t[0].toLowerCase();
  1532. e.includes(r) || e.push(r);
  1533. }
  1534. let t = -1;
  1535. return {
  1536. next: () => (t++, {
  1537. value: e[t],
  1538. done: !e[t]
  1539. }),
  1540. [Symbol.iterator]() {
  1541. return this;
  1542. }
  1543. };
  1544. }
  1545. set(e, t) {
  1546. for (const r of this._values) if (r[0].toLowerCase() === e.toLowerCase()) return void (r[1] = t + "");
  1547. this.append(e, t);
  1548. }
  1549. values() {
  1550. const e = this._values;
  1551. let t = -1;
  1552. return {
  1553. next() {
  1554. t++;
  1555. const r = !e[t];
  1556. return {
  1557. value: r ? void 0 : e[t][1],
  1558. done: r
  1559. };
  1560. },
  1561. [Symbol.iterator]() {
  1562. return this;
  1563. }
  1564. };
  1565. }
  1566. [Symbol.iterator]() {
  1567. return this.entries();
  1568. }
  1569. }
  1570. class MockRequest {
  1571. constructor(e, t = {}) {
  1572. this._method = "GET", this._url = "/", this.bodyUsed = !1, this.cache = "default",
  1573. this.credentials = "same-origin", this.integrity = "", this.keepalive = !1, this.mode = "cors",
  1574. this.redirect = "follow", this.referrer = "about:client", this.referrerPolicy = "",
  1575. "string" == typeof e ? this.url = e : e && (Object.assign(this, e), this.headers = new MockHeaders(e.headers)),
  1576. Object.assign(this, t), t.headers && (this.headers = new MockHeaders(t.headers)),
  1577. this.headers || (this.headers = new MockHeaders);
  1578. }
  1579. get url() {
  1580. return "string" == typeof this._url ? new URL(this._url, location.href).href : new URL("/", location.href).href;
  1581. }
  1582. set url(e) {
  1583. this._url = e;
  1584. }
  1585. get method() {
  1586. return "string" == typeof this._method ? this._method.toUpperCase() : "GET";
  1587. }
  1588. set method(e) {
  1589. this._method = e;
  1590. }
  1591. clone() {
  1592. const e = {
  1593. ...this
  1594. };
  1595. return e.headers = new MockHeaders(this.headers), new MockRequest(e);
  1596. }
  1597. }
  1598. class MockResponse {
  1599. constructor(e, t = {}) {
  1600. this.ok = !0, this.status = 200, this.statusText = "", this.type = "default", this.url = "",
  1601. this._body = e, t && Object.assign(this, t), this.headers = new MockHeaders(t.headers);
  1602. }
  1603. async json() {
  1604. return JSON.parse(this._body);
  1605. }
  1606. async text() {
  1607. return this._body;
  1608. }
  1609. clone() {
  1610. const e = {
  1611. ...this
  1612. };
  1613. return e.headers = new MockHeaders(this.headers), new MockResponse(this._body, e);
  1614. }
  1615. }
  1616. const mockedResponses = new Map, mockFetch = {
  1617. json(e, t) {
  1618. setMockedResponse(new MockResponse(JSON.stringify(e, null, 2), {
  1619. headers: new MockHeaders({
  1620. "Content-Type": "application/json"
  1621. })
  1622. }), t, !1);
  1623. },
  1624. text(e, t) {
  1625. setMockedResponse(new MockResponse(e, {
  1626. headers: new MockHeaders({
  1627. "Content-Type": "text/plain"
  1628. })
  1629. }), t, !1);
  1630. },
  1631. response(e, t) {
  1632. setMockedResponse(e, t, !1);
  1633. },
  1634. reject(e, t) {
  1635. setMockedResponse(e, t, !0);
  1636. },
  1637. reset: function mockFetchReset() {
  1638. mockedResponses.clear();
  1639. }
  1640. };
  1641. class MockResponse404 extends MockResponse {
  1642. constructor() {
  1643. super("", {
  1644. headers: new MockHeaders({
  1645. "Content-Type": "text/plain"
  1646. })
  1647. }), this.ok = !1, this.status = 404, this.statusText = "Not Found";
  1648. }
  1649. async json() {
  1650. return {
  1651. status: 404,
  1652. statusText: "Not Found"
  1653. };
  1654. }
  1655. async text() {
  1656. return "Not Found";
  1657. }
  1658. }
  1659. const FETCH_DEFAULT_PATH = "/mock-fetch-data", HtmlSerializer = {
  1660. print: e => index_cjs.serializeNodeToHtml(e, {
  1661. serializeShadowRoot: !0,
  1662. prettyHtml: !0,
  1663. outerHtml: !0
  1664. }),
  1665. test: e => null != e && (e instanceof HTMLElement || e instanceof index_cjs.MockNode)
  1666. }, createConfigFlags = (e = {}) => ({
  1667. task: null,
  1668. args: [],
  1669. knownArgs: [],
  1670. unknownArgs: [],
  1671. ...e
  1672. });
  1673. class BuildContext {
  1674. constructor(e, t) {
  1675. this.buildId = -1, this.buildMessages = [], this.buildResults = null, this.bundleBuildCount = 0,
  1676. this.collections = [], this.completedTasks = [], this.components = [], this.componentGraph = new Map,
  1677. this.data = {}, this.buildStats = void 0, this.diagnostics = [], this.dirsAdded = [],
  1678. this.dirsDeleted = [], this.entryModules = [], this.filesAdded = [], this.filesChanged = [],
  1679. this.filesDeleted = [], this.filesUpdated = [], this.filesWritten = [], this.globalStyle = void 0,
  1680. this.hasConfigChanges = !1, this.hasFinished = !1, this.hasHtmlChanges = !1, this.hasPrintedResults = !1,
  1681. this.hasServiceWorkerChanges = !1, this.hasScriptChanges = !0, this.hasStyleChanges = !0,
  1682. this.hydrateAppFilePath = null, this.indexBuildCount = 0, this.indexDoc = void 0,
  1683. this.isRebuild = !1, this.moduleFiles = [], this.outputs = [], this.packageJson = {},
  1684. this.packageJsonFilePath = null, this.pendingCopyTasks = [], this.requiresFullBuild = !0,
  1685. this.scriptsAdded = [], this.scriptsDeleted = [], this.startTime = Date.now(), this.styleBuildCount = 0,
  1686. this.stylesPromise = null, this.stylesUpdated = [], this.timeSpan = null, this.transpileBuildCount = 0,
  1687. this.config = e, this.compilerCtx = t, this.buildId = ++this.compilerCtx.activeBuildId,
  1688. this.debug = e.logger.debug.bind(e.logger);
  1689. }
  1690. start() {
  1691. const e = `${this.isRebuild ? "rebuild" : "build"}, ${this.config.fsNamespace}, ${this.config.devMode ? "dev" : "prod"} mode, started`, t = {
  1692. buildId: this.buildId,
  1693. messages: [],
  1694. progress: 0
  1695. };
  1696. this.compilerCtx.events.emit("buildLog", t), this.timeSpan = this.createTimeSpan(e),
  1697. this.timestamp = getBuildTimestamp(), this.debug(`start build, ${this.timestamp}`);
  1698. const r = {
  1699. buildId: this.buildId,
  1700. timestamp: this.timestamp
  1701. };
  1702. this.compilerCtx.events.emit("buildStart", r);
  1703. }
  1704. createTimeSpan(e, t) {
  1705. if (!this.hasFinished || t) {
  1706. t && this.config.watch && (e = `${this.config.logger.cyan("[" + this.buildId + "]")} ${e}`);
  1707. const r = this.config.logger.createTimeSpan(e, t, this.buildMessages);
  1708. if (!t && this.compilerCtx.events) {
  1709. const e = {
  1710. buildId: this.buildId,
  1711. messages: this.buildMessages,
  1712. progress: getProgress(this.completedTasks)
  1713. };
  1714. this.compilerCtx.events.emit("buildLog", e);
  1715. }
  1716. return {
  1717. duration: () => r.duration(),
  1718. finish: (e, s, n, o) => {
  1719. if ((!this.hasFinished || t) && (t && this.config.watch && (e = `${this.config.logger.cyan("[" + this.buildId + "]")} ${e}`),
  1720. r.finish(e, s, n, o), !t)) {
  1721. const e = {
  1722. buildId: this.buildId,
  1723. messages: this.buildMessages.slice(),
  1724. progress: getProgress(this.completedTasks)
  1725. };
  1726. this.compilerCtx.events.emit("buildLog", e);
  1727. }
  1728. return r.duration();
  1729. }
  1730. };
  1731. }
  1732. return {
  1733. duration: () => 0,
  1734. finish: () => 0
  1735. };
  1736. }
  1737. debug(e) {
  1738. this.config.logger.debug(e);
  1739. }
  1740. get hasError() {
  1741. return hasError(this.diagnostics);
  1742. }
  1743. get hasWarning() {
  1744. return null != (e = this.diagnostics) && 0 !== e.length && e.some((e => "warn" === e.level));
  1745. var e;
  1746. }
  1747. progress(e) {
  1748. this.completedTasks.push(e);
  1749. }
  1750. async validateTypesBuild() {
  1751. this.hasError || this.validateTypesPromise && (this.config.watch || (this.debug("build, non-watch, waiting on validateTypes"),
  1752. await this.validateTypesPromise, this.debug("build, non-watch, finished waiting on validateTypes")));
  1753. }
  1754. }
  1755. const getBuildTimestamp = () => {
  1756. const e = new Date;
  1757. let t = e.getUTCFullYear() + "-";
  1758. return t += ("0" + (e.getUTCMonth() + 1)).slice(-2) + "-", t += ("0" + e.getUTCDate()).slice(-2) + "T",
  1759. t += ("0" + e.getUTCHours()).slice(-2) + ":", t += ("0" + e.getUTCMinutes()).slice(-2) + ":",
  1760. t += ("0" + e.getUTCSeconds()).slice(-2), t;
  1761. }, getProgress = e => {
  1762. let t = 0;
  1763. const r = Object.keys(ProgressTask);
  1764. return r.forEach(((r, s) => {
  1765. e.includes(ProgressTask[r]) && (t = s);
  1766. })), (t + 1) / r.length;
  1767. }, ProgressTask = {
  1768. emptyOutputTargets: {},
  1769. transpileApp: {},
  1770. generateStyles: {},
  1771. generateOutputTargets: {},
  1772. validateTypesBuild: {},
  1773. writeBuildFiles: {}
  1774. };
  1775. class Cache {
  1776. constructor(e, t) {
  1777. this.config = e, this.cacheFs = t, this.failed = 0, this.skip = !1, this.sys = e.sys,
  1778. this.logger = e.logger;
  1779. }
  1780. async initCacheDir() {
  1781. if (!this.config._isTesting && this.config.cacheDir) {
  1782. if (!this.config.enableCache || !this.cacheFs) return this.config.logger.info("cache optimizations disabled"),
  1783. void this.clearDiskCache();
  1784. this.config.logger.debug(`cache enabled, cacheDir: ${this.config.cacheDir}`);
  1785. try {
  1786. const e = path$2.join(this.config.cacheDir, "_README.log");
  1787. await this.cacheFs.writeFile(e, CACHE_DIR_README);
  1788. } catch (e) {
  1789. this.logger.error(`Cache, initCacheDir: ${e}`), this.config.enableCache = !1;
  1790. }
  1791. }
  1792. }
  1793. async get(e) {
  1794. if (!this.config.enableCache || this.skip) return null;
  1795. if (this.failed >= MAX_FAILED) return this.skip || (this.skip = !0, this.logger.debug(`cache had ${this.failed} failed ops, skip disk ops for remander of build`)),
  1796. null;
  1797. let t;
  1798. try {
  1799. t = await this.cacheFs.readFile(this.getCacheFilePath(e)), this.failed = 0, this.skip = !1;
  1800. } catch (e) {
  1801. this.failed++, t = null;
  1802. }
  1803. return t;
  1804. }
  1805. async put(e, t) {
  1806. if (!this.config.enableCache) return !1;
  1807. let r;
  1808. try {
  1809. await this.cacheFs.writeFile(this.getCacheFilePath(e), t), r = !0;
  1810. } catch (e) {
  1811. this.failed++, r = !1;
  1812. }
  1813. return r;
  1814. }
  1815. async has(e) {
  1816. return "string" == typeof await this.get(e);
  1817. }
  1818. async createKey(e, ...t) {
  1819. return this.config.enableCache ? e + "_" + await this.sys.generateContentHash(JSON.stringify(t), 32) : e + 9999999 * Math.random();
  1820. }
  1821. async commit() {
  1822. this.config.enableCache && (this.skip = !1, this.failed = 0, await this.cacheFs.commit(),
  1823. await this.clearExpiredCache());
  1824. }
  1825. clear() {
  1826. null != this.cacheFs && this.cacheFs.clearCache();
  1827. }
  1828. async clearExpiredCache() {
  1829. if (null == this.cacheFs || null == this.sys.cacheStorage) return;
  1830. const e = Date.now(), t = await this.sys.cacheStorage.get(EXP_STORAGE_KEY);
  1831. if (null != t) {
  1832. if (e - t < ONE_DAY) return;
  1833. const r = this.cacheFs.sys, s = await r.readDir(this.config.cacheDir), n = s.map((e => path$2.join(this.config.cacheDir, e)));
  1834. let o = 0;
  1835. const i = n.map((async t => {
  1836. const s = (await r.stat(t)).mtimeMs;
  1837. e - s > ONE_WEEK && (await r.removeFile(t), o++);
  1838. }));
  1839. await Promise.all(i), this.logger.debug(`clearExpiredCache, cachedFileNames: ${s.length}, totalCleared: ${o}`);
  1840. }
  1841. this.logger.debug("clearExpiredCache, set last clear"), await this.sys.cacheStorage.set(EXP_STORAGE_KEY, e);
  1842. }
  1843. async clearDiskCache() {
  1844. null != this.cacheFs && await this.cacheFs.access(this.config.cacheDir) && (await this.cacheFs.remove(this.config.cacheDir),
  1845. await this.cacheFs.commit());
  1846. }
  1847. getCacheFilePath(e) {
  1848. return path$2.join(this.config.cacheDir, e) + ".log";
  1849. }
  1850. getMemoryStats() {
  1851. return null != this.cacheFs ? this.cacheFs.getMemoryStats() : null;
  1852. }
  1853. }
  1854. const MAX_FAILED = 100, ONE_DAY = 864e5, ONE_WEEK = 7 * ONE_DAY, EXP_STORAGE_KEY = "last_clear_expired_cache", CACHE_DIR_README = '# Stencil Cache Directory\n\nThis directory contains files which the compiler has\ncached for faster builds. To disable caching, please set\n"enableCache: false" within the stencil config.\n\nTo change the cache directory, please update the\n"cacheDir" property within the stencil config.\n', buildEvents = () => {
  1855. const e = [], t = t => {
  1856. const r = e.findIndex((e => e.callback === t));
  1857. return r > -1 && (e.splice(r, 1), !0);
  1858. };
  1859. return {
  1860. emit: (t, r) => {
  1861. const s = t.toLowerCase().trim(), n = e.slice();
  1862. for (const e of n) if (null == e.eventName) try {
  1863. e.callback(t, r);
  1864. } catch (e) {
  1865. console.error(e);
  1866. } else if (e.eventName === s) try {
  1867. e.callback(r);
  1868. } catch (e) {
  1869. console.error(e);
  1870. }
  1871. },
  1872. on: (r, s) => {
  1873. if ("function" == typeof r) {
  1874. const s = null, n = r;
  1875. return e.push({
  1876. eventName: s,
  1877. callback: n
  1878. }), () => t(n);
  1879. }
  1880. if ("string" == typeof r && "function" == typeof s) {
  1881. const n = r.toLowerCase().trim(), o = s;
  1882. return e.push({
  1883. eventName: n,
  1884. callback: o
  1885. }), () => t(o);
  1886. }
  1887. return () => !1;
  1888. },
  1889. unsubscribeAll: () => {
  1890. e.length = 0;
  1891. }
  1892. };
  1893. }, getCommitInstructions = e => {
  1894. const t = {
  1895. filesToDelete: [],
  1896. filesToWrite: [],
  1897. filesToCopy: [],
  1898. dirsToDelete: [],
  1899. dirsToEnsure: []
  1900. };
  1901. e.forEach(((e, r) => {
  1902. if (!0 === e.queueWriteToDisk) {
  1903. if (!0 === e.isFile) {
  1904. t.filesToWrite.push(r);
  1905. const e = normalizePath(path$2.dirname(r));
  1906. t.dirsToEnsure.includes(e) || t.dirsToEnsure.push(e);
  1907. const s = t.dirsToDelete.indexOf(e);
  1908. s > -1 && t.dirsToDelete.splice(s, 1);
  1909. const n = t.filesToDelete.indexOf(r);
  1910. n > -1 && t.filesToDelete.splice(n, 1);
  1911. } else if (!0 === e.isDirectory) {
  1912. t.dirsToEnsure.includes(r) || t.dirsToEnsure.push(r);
  1913. const e = t.dirsToDelete.indexOf(r);
  1914. e > -1 && t.dirsToDelete.splice(e, 1);
  1915. }
  1916. } else if (!0 === e.queueDeleteFromDisk) e.isDirectory && !t.dirsToEnsure.includes(r) ? t.dirsToDelete.push(r) : e.isFile && !t.filesToWrite.includes(r) && t.filesToDelete.push(r); else if ("string" == typeof e.queueCopyFileToDest) {
  1917. const s = r, n = e.queueCopyFileToDest;
  1918. t.filesToCopy.push([ s, n ]);
  1919. const o = normalizePath(path$2.dirname(n));
  1920. t.dirsToEnsure.includes(o) || t.dirsToEnsure.push(o);
  1921. const i = t.dirsToDelete.indexOf(o);
  1922. i > -1 && t.dirsToDelete.splice(i, 1);
  1923. const a = t.filesToDelete.indexOf(n);
  1924. a > -1 && t.filesToDelete.splice(a, 1);
  1925. }
  1926. e.queueDeleteFromDisk = !1, e.queueWriteToDisk = !1;
  1927. }));
  1928. for (let e = 0, r = t.dirsToEnsure.length; e < r; e++) {
  1929. const r = t.dirsToEnsure[e].split("/");
  1930. for (let e = 2; e < r.length; e++) {
  1931. const s = r.slice(0, e).join("/");
  1932. !1 === t.dirsToEnsure.includes(s) && t.dirsToEnsure.push(s);
  1933. }
  1934. }
  1935. t.dirsToEnsure.sort(((e, t) => {
  1936. const r = e.split("/").length, s = t.split("/").length;
  1937. return r < s ? -1 : r > s ? 1 : e.length < t.length ? -1 : e.length > t.length ? 1 : 0;
  1938. })), t.dirsToDelete.sort(((e, t) => {
  1939. const r = e.split("/").length, s = t.split("/").length;
  1940. return r < s ? 1 : r > s ? -1 : e.length < t.length ? 1 : e.length > t.length ? -1 : 0;
  1941. }));
  1942. for (const e of t.dirsToEnsure) {
  1943. const r = t.dirsToDelete.indexOf(e);
  1944. r > -1 && t.dirsToDelete.splice(r, 1);
  1945. }
  1946. return t.dirsToDelete = t.dirsToDelete.filter((e => "/" !== e && !0 !== e.endsWith(":/"))),
  1947. t.dirsToEnsure = t.dirsToEnsure.filter((t => {
  1948. const r = e.get(t);
  1949. return (null == r || !0 !== r.exists || !0 !== r.isDirectory) && "/" !== t && !t.endsWith(":/");
  1950. })), t;
  1951. }, shouldIgnore = e => (e = e.trim().toLowerCase(), IGNORE.some((t => e.endsWith(t)))), IGNORE = [ ".ds_store", ".gitignore", "desktop.ini", "thumbs.db" ];
  1952. class TestingLogger {
  1953. constructor() {
  1954. this.isEnabled = !1;
  1955. }
  1956. setLevel(e) {}
  1957. getLevel() {
  1958. return "info";
  1959. }
  1960. enableColors(e) {}
  1961. emoji(e) {
  1962. return "";
  1963. }
  1964. info(...e) {
  1965. this.isEnabled && console.log(...e);
  1966. }
  1967. warn(...e) {
  1968. this.isEnabled && console.warn(...e);
  1969. }
  1970. error(...e) {
  1971. this.isEnabled && console.error(...e);
  1972. }
  1973. debug(...e) {
  1974. this.isEnabled && console.log(...e);
  1975. }
  1976. color(e, t) {}
  1977. red(e) {
  1978. return e;
  1979. }
  1980. green(e) {
  1981. return e;
  1982. }
  1983. yellow(e) {
  1984. return e;
  1985. }
  1986. blue(e) {
  1987. return e;
  1988. }
  1989. magenta(e) {
  1990. return e;
  1991. }
  1992. cyan(e) {
  1993. return e;
  1994. }
  1995. gray(e) {
  1996. return e;
  1997. }
  1998. bold(e) {
  1999. return e;
  2000. }
  2001. dim(e) {
  2002. return e;
  2003. }
  2004. bgRed(e) {
  2005. return e;
  2006. }
  2007. createTimeSpan(e, t = !1) {
  2008. return {
  2009. duration: () => 0,
  2010. finish: () => 0
  2011. };
  2012. }
  2013. printDiagnostics(e) {}
  2014. }
  2015. (posix = {
  2016. resolve: function e() {
  2017. var t, r, s, n = "", o = !1;
  2018. for (r = arguments.length - 1; r >= -1 && !o; r--) r >= 0 ? s = arguments[r] : (void 0 === t && (t = process.cwd()),
  2019. s = t), assertPath(s), 0 !== s.length && (n = s + "/" + n, o = 47 === s.charCodeAt(0));
  2020. return n = normalizeStringPosix(n, !o), o ? n.length > 0 ? "/" + n : "/" : n.length > 0 ? n : ".";
  2021. },
  2022. normalize: function e(t) {
  2023. var r, s;
  2024. return assertPath(t), 0 === t.length ? "." : (r = 47 === t.charCodeAt(0), s = 47 === t.charCodeAt(t.length - 1),
  2025. 0 !== (t = normalizeStringPosix(t, !r)).length || r || (t = "."), t.length > 0 && s && (t += "/"),
  2026. r ? "/" + t : t);
  2027. },
  2028. isAbsolute: function e(t) {
  2029. return assertPath(t), t.length > 0 && 47 === t.charCodeAt(0);
  2030. },
  2031. join: function e() {
  2032. var t, r, s;
  2033. if (0 === arguments.length) return ".";
  2034. for (r = 0; r < arguments.length; ++r) assertPath(s = arguments[r]), s.length > 0 && (void 0 === t ? t = s : t += "/" + s);
  2035. return void 0 === t ? "." : posix.normalize(t);
  2036. },
  2037. relative: function e(t, r) {
  2038. var s, n, o, i, a, l, c, u, d, h;
  2039. if (assertPath(t), assertPath(r), t === r) return "";
  2040. if ((t = posix.resolve(t)) === (r = posix.resolve(r))) return "";
  2041. for (s = 1; s < t.length && 47 === t.charCodeAt(s); ++s) ;
  2042. for (o = (n = t.length) - s, i = 1; i < r.length && 47 === r.charCodeAt(i); ++i) ;
  2043. for (l = o < (a = r.length - i) ? o : a, c = -1, u = 0; u <= l; ++u) {
  2044. if (u === l) {
  2045. if (a > l) {
  2046. if (47 === r.charCodeAt(i + u)) return r.slice(i + u + 1);
  2047. if (0 === u) return r.slice(i + u);
  2048. } else o > l && (47 === t.charCodeAt(s + u) ? c = u : 0 === u && (c = 0));
  2049. break;
  2050. }
  2051. if ((d = t.charCodeAt(s + u)) !== r.charCodeAt(i + u)) break;
  2052. 47 === d && (c = u);
  2053. }
  2054. for (h = "", u = s + c + 1; u <= n; ++u) u !== n && 47 !== t.charCodeAt(u) || (0 === h.length ? h += ".." : h += "/..");
  2055. return h.length > 0 ? h + r.slice(i + c) : (i += c, 47 === r.charCodeAt(i) && ++i,
  2056. r.slice(i));
  2057. },
  2058. _makeLong: function e(t) {
  2059. return t;
  2060. },
  2061. dirname: function e(t) {
  2062. var r, s, n, o;
  2063. if (assertPath(t), 0 === t.length) return ".";
  2064. for (r = 47 === t.charCodeAt(0), s = -1, n = !0, o = t.length - 1; o >= 1; --o) if (47 === t.charCodeAt(o)) {
  2065. if (!n) {
  2066. s = o;
  2067. break;
  2068. }
  2069. } else n = !1;
  2070. return -1 === s ? r ? "/" : "." : r && 1 === s ? "//" : t.slice(0, s);
  2071. },
  2072. basename: function e(t, r) {
  2073. var s, n, o, i, a, l, c;
  2074. if (void 0 !== r && "string" != typeof r) throw new TypeError('"ext" argument must be a string');
  2075. if (assertPath(t), s = 0, n = -1, o = !0, void 0 !== r && r.length > 0 && r.length <= t.length) {
  2076. if (r.length === t.length && r === t) return "";
  2077. for (a = r.length - 1, l = -1, i = t.length - 1; i >= 0; --i) if (47 === (c = t.charCodeAt(i))) {
  2078. if (!o) {
  2079. s = i + 1;
  2080. break;
  2081. }
  2082. } else -1 === l && (o = !1, l = i + 1), a >= 0 && (c === r.charCodeAt(a) ? -1 == --a && (n = i) : (a = -1,
  2083. n = l));
  2084. return s === n ? n = l : -1 === n && (n = t.length), t.slice(s, n);
  2085. }
  2086. for (i = t.length - 1; i >= 0; --i) if (47 === t.charCodeAt(i)) {
  2087. if (!o) {
  2088. s = i + 1;
  2089. break;
  2090. }
  2091. } else -1 === n && (o = !1, n = i + 1);
  2092. return -1 === n ? "" : t.slice(s, n);
  2093. },
  2094. extname: function e(t) {
  2095. var r, s, n, o, i, a, l;
  2096. for (assertPath(t), r = -1, s = 0, n = -1, o = !0, i = 0, a = t.length - 1; a >= 0; --a) if (47 !== (l = t.charCodeAt(a))) -1 === n && (o = !1,
  2097. n = a + 1), 46 === l ? -1 === r ? r = a : 1 !== i && (i = 1) : -1 !== r && (i = -1); else if (!o) {
  2098. s = a + 1;
  2099. break;
  2100. }
  2101. return -1 === r || -1 === n || 0 === i || 1 === i && r === n - 1 && r === s + 1 ? "" : t.slice(r, n);
  2102. },
  2103. format: function e(t) {
  2104. if (null === t || "object" != typeof t) throw new TypeError('The "pathObject" argument must be of type Object. Received type ' + typeof t);
  2105. return function r(e, t) {
  2106. var r = t.dir || t.root, s = t.base || (t.name || "") + (t.ext || "");
  2107. return r ? r === t.root ? r + s : r + e + s : s;
  2108. }("/", t);
  2109. },
  2110. parse: function e(t) {
  2111. var r, s, n, o, i, a, l, c, u, d;
  2112. if (assertPath(t), r = {
  2113. root: "",
  2114. dir: "",
  2115. base: "",
  2116. ext: "",
  2117. name: ""
  2118. }, 0 === t.length) return r;
  2119. for ((n = 47 === (s = t.charCodeAt(0))) ? (r.root = "/", o = 1) : o = 0, i = -1,
  2120. a = 0, l = -1, c = !0, u = t.length - 1, d = 0; u >= o; --u) if (47 !== (s = t.charCodeAt(u))) -1 === l && (c = !1,
  2121. l = u + 1), 46 === s ? -1 === i ? i = u : 1 !== d && (d = 1) : -1 !== i && (d = -1); else if (!c) {
  2122. a = u + 1;
  2123. break;
  2124. }
  2125. return -1 === i || -1 === l || 0 === d || 1 === d && i === l - 1 && i === a + 1 ? -1 !== l && (r.base = r.name = 0 === a && n ? t.slice(1, l) : t.slice(a, l)) : (0 === a && n ? (r.name = t.slice(1, i),
  2126. r.base = t.slice(1, l)) : (r.name = t.slice(a, i), r.base = t.slice(a, l)), r.ext = t.slice(i, l)),
  2127. a > 0 ? r.dir = t.slice(0, a - 1) : n && (r.dir = "/"), r;
  2128. },
  2129. sep: "/",
  2130. delimiter: ":",
  2131. win32: null,
  2132. posix: null
  2133. }).posix = posix, pathBrowserify = posix;
  2134. const IS_NODE_ENV = !("undefined" == typeof global || "function" != typeof require || !global.process || "string" != typeof __filename || global.origin && "string" == typeof global.origin);
  2135. IS_NODE_ENV && process.platform;
  2136. const IS_BROWSER_ENV = "undefined" != typeof location && "undefined" != typeof navigator && "undefined" != typeof XMLHttpRequest, IS_WEB_WORKER_ENV = IS_BROWSER_ENV && "undefined" != typeof self && "function" == typeof self.importScripts, HAS_WEB_WORKER = IS_BROWSER_ENV && "function" == typeof Worker, IS_FETCH_ENV = "function" == typeof fetch;
  2137. IS_NODE_ENV && require, IS_NODE_ENV && process.cwd;
  2138. const YELLOW = "#f39c12", RED = "#c0392b", BLUE = "#3498db";
  2139. caller = function() {
  2140. var e, t = Error.prepareStackTrace;
  2141. return Error.prepareStackTrace = function(e, t) {
  2142. return t;
  2143. }, e = (new Error).stack, Error.prepareStackTrace = t, e[2].getFileName();
  2144. }, pathParse = function createCommonjsModule(e, t, r) {
  2145. return e(r = {
  2146. path: t,
  2147. exports: {},
  2148. require: function(e, t) {
  2149. return function s() {
  2150. throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs");
  2151. }(null == t && r.path);
  2152. }
  2153. }, r.exports), r.exports;
  2154. }((function(e) {
  2155. var t, r, s = "win32" === process.platform, n = /^(((?:[a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?[\\\/]?)(?:[^\\\/]*[\\\/])*)((\.{1,2}|[^\\\/]+?|)(\.[^.\/\\]*|))[\\\/]*$/, o = {
  2156. parse: function(e) {
  2157. if ("string" != typeof e) throw new TypeError("Parameter 'pathString' must be a string, not " + typeof e);
  2158. var t = function r(e) {
  2159. return n.exec(e).slice(1);
  2160. }(e);
  2161. if (!t || 5 !== t.length) throw new TypeError("Invalid path '" + e + "'");
  2162. return {
  2163. root: t[1],
  2164. dir: t[0] === t[1] ? t[0] : t[0].slice(0, -1),
  2165. base: t[2],
  2166. ext: t[4],
  2167. name: t[3]
  2168. };
  2169. }
  2170. };
  2171. t = /^((\/?)(?:[^\/]*\/)*)((\.{1,2}|[^\/]+?|)(\.[^.\/]*|))[\/]*$/, (r = {}).parse = function(e) {
  2172. if ("string" != typeof e) throw new TypeError("Parameter 'pathString' must be a string, not " + typeof e);
  2173. var r = function s(e) {
  2174. return t.exec(e).slice(1);
  2175. }(e);
  2176. if (!r || 5 !== r.length) throw new TypeError("Invalid path '" + e + "'");
  2177. return {
  2178. root: r[1],
  2179. dir: r[0].slice(0, -1),
  2180. base: r[2],
  2181. ext: r[4],
  2182. name: r[3]
  2183. };
  2184. }, e.exports = s ? o.parse : r.parse, e.exports.posix = r.parse, e.exports.win32 = o.parse;
  2185. })), parse = path__default.default.parse || pathParse, getNodeModulesDirs = function e(t, r) {
  2186. var s, n, o = "/";
  2187. for (/^([A-Za-z]:)/.test(t) ? o = "" : /^\\\\/.test(t) && (o = "\\\\"), s = [ t ],
  2188. n = parse(t); n.dir !== s[s.length - 1]; ) s.push(n.dir), n = parse(n.dir);
  2189. return s.reduce((function(e, t) {
  2190. return e.concat(r.map((function(e) {
  2191. return path__default.default.resolve(o, t, e);
  2192. })));
  2193. }), []);
  2194. }, nodeModulesPaths = function e(t, r, s) {
  2195. var n, o = r && r.moduleDirectory ? [].concat(r.moduleDirectory) : [ "node_modules" ];
  2196. return r && "function" == typeof r.paths ? r.paths(s, t, (function() {
  2197. return getNodeModulesDirs(t, o);
  2198. }), r) : (n = getNodeModulesDirs(t, o), r && r.paths ? n.concat(r.paths) : n);
  2199. }, normalizeOptions = function(e, t) {
  2200. return t || {};
  2201. }, ERROR_MESSAGE = "Function.prototype.bind called on incompatible ", slice = Array.prototype.slice,
  2202. toStr = Object.prototype.toString, implementation = function e(t) {
  2203. var r, s, n, o, i, a, l, c = this;
  2204. if ("function" != typeof c || "[object Function]" !== toStr.call(c)) throw new TypeError(ERROR_MESSAGE + c);
  2205. for (r = slice.call(arguments, 1), n = function() {
  2206. if (this instanceof s) {
  2207. var e = c.apply(this, r.concat(slice.call(arguments)));
  2208. return Object(e) === e ? e : this;
  2209. }
  2210. return c.apply(t, r.concat(slice.call(arguments)));
  2211. }, o = Math.max(0, c.length - r.length), i = [], a = 0; a < o; a++) i.push("$" + a);
  2212. return s = Function("binder", "return function (" + i.join(",") + "){ return binder.apply(this,arguments); }")(n),
  2213. c.prototype && ((l = function e() {}).prototype = c.prototype, s.prototype = new l,
  2214. l.prototype = null), s;
  2215. }, functionBind = Function.prototype.bind || implementation, src = functionBind.call(Function.call, Object.prototype.hasOwnProperty);
  2216. const data$1 = {
  2217. assert: !0,
  2218. "assert/strict": ">= 15",
  2219. async_hooks: ">= 8",
  2220. buffer_ieee754: "< 0.9.7",
  2221. buffer: !0,
  2222. child_process: !0,
  2223. cluster: !0,
  2224. console: !0,
  2225. constants: !0,
  2226. crypto: !0,
  2227. _debug_agent: ">= 1 && < 8",
  2228. _debugger: "< 8",
  2229. dgram: !0,
  2230. diagnostics_channel: ">= 15.1",
  2231. dns: !0,
  2232. "dns/promises": ">= 15",
  2233. domain: ">= 0.7.12",
  2234. events: !0,
  2235. freelist: "< 6",
  2236. fs: !0,
  2237. "fs/promises": [ ">= 10 && < 10.1", ">= 14" ],
  2238. _http_agent: ">= 0.11.1",
  2239. _http_client: ">= 0.11.1",
  2240. _http_common: ">= 0.11.1",
  2241. _http_incoming: ">= 0.11.1",
  2242. _http_outgoing: ">= 0.11.1",
  2243. _http_server: ">= 0.11.1",
  2244. http: !0,
  2245. http2: ">= 8.8",
  2246. https: !0,
  2247. inspector: ">= 8.0.0",
  2248. _linklist: "< 8",
  2249. module: !0,
  2250. net: !0,
  2251. "node-inspect/lib/_inspect": ">= 7.6.0 && < 12",
  2252. "node-inspect/lib/internal/inspect_client": ">= 7.6.0 && < 12",
  2253. "node-inspect/lib/internal/inspect_repl": ">= 7.6.0 && < 12",
  2254. os: !0,
  2255. path: !0,
  2256. "path/posix": ">= 15.3",
  2257. "path/win32": ">= 15.3",
  2258. perf_hooks: ">= 8.5",
  2259. process: ">= 1",
  2260. punycode: !0,
  2261. querystring: !0,
  2262. readline: !0,
  2263. repl: !0,
  2264. smalloc: ">= 0.11.5 && < 3",
  2265. _stream_duplex: ">= 0.9.4",
  2266. _stream_transform: ">= 0.9.4",
  2267. _stream_wrap: ">= 1.4.1",
  2268. _stream_passthrough: ">= 0.9.4",
  2269. _stream_readable: ">= 0.9.4",
  2270. _stream_writable: ">= 0.9.4",
  2271. stream: !0,
  2272. "stream/promises": ">= 15",
  2273. string_decoder: !0,
  2274. sys: [ ">= 0.6 && < 0.7", ">= 0.8" ],
  2275. timers: !0,
  2276. "timers/promises": ">= 15",
  2277. _tls_common: ">= 0.11.13",
  2278. _tls_legacy: ">= 0.11.3 && < 10",
  2279. _tls_wrap: ">= 0.11.3",
  2280. tls: !0,
  2281. trace_events: ">= 10",
  2282. tty: !0,
  2283. url: !0,
  2284. util: !0,
  2285. "util/types": ">= 15.3",
  2286. "v8/tools/arguments": ">= 10 && < 12",
  2287. "v8/tools/codemap": [ ">= 4.4.0 && < 5", ">= 5.2.0 && < 12" ],
  2288. "v8/tools/consarray": [ ">= 4.4.0 && < 5", ">= 5.2.0 && < 12" ],
  2289. "v8/tools/csvparser": [ ">= 4.4.0 && < 5", ">= 5.2.0 && < 12" ],
  2290. "v8/tools/logreader": [ ">= 4.4.0 && < 5", ">= 5.2.0 && < 12" ],
  2291. "v8/tools/profile_view": [ ">= 4.4.0 && < 5", ">= 5.2.0 && < 12" ],
  2292. "v8/tools/splaytree": [ ">= 4.4.0 && < 5", ">= 5.2.0 && < 12" ],
  2293. v8: ">= 1",
  2294. vm: !0,
  2295. wasi: ">= 13.4 && < 13.5",
  2296. worker_threads: ">= 11.7",
  2297. zlib: !0
  2298. };
  2299. isCoreModule = function e(t, r) {
  2300. return src(data$1, t) && function s(e, t) {
  2301. var r, s;
  2302. if ("boolean" == typeof t) return t;
  2303. if ("string" != typeof (r = void 0 === e ? process.versions && process.versions.node && process.versions.node : e)) throw new TypeError(void 0 === e ? "Unable to determine current node version" : "If provided, a valid node version is required");
  2304. if (t && "object" == typeof t) {
  2305. for (s = 0; s < t.length; ++s) if (matchesRange$1(r, t[s])) return !0;
  2306. return !1;
  2307. }
  2308. return matchesRange$1(r, t);
  2309. }(r, data$1[t]);
  2310. }, realpathFS$1 = fs__default.default.realpath && "function" == typeof fs__default.default.realpath.native ? fs__default.default.realpath.native : fs__default.default.realpath,
  2311. defaultIsFile$1 = function e(t, r) {
  2312. fs__default.default.stat(t, (function(e, t) {
  2313. return e ? "ENOENT" === e.code || "ENOTDIR" === e.code ? r(null, !1) : r(e) : r(null, t.isFile() || t.isFIFO());
  2314. }));
  2315. }, defaultIsDir$1 = function e(t, r) {
  2316. fs__default.default.stat(t, (function(e, t) {
  2317. return e ? "ENOENT" === e.code || "ENOTDIR" === e.code ? r(null, !1) : r(e) : r(null, t.isDirectory());
  2318. }));
  2319. }, defaultRealpath = function e(t, r) {
  2320. realpathFS$1(t, (function(e, s) {
  2321. e && "ENOENT" !== e.code ? r(e) : r(null, e ? t : s);
  2322. }));
  2323. }, maybeRealpath = function e(t, r, s, n) {
  2324. s && !1 === s.preserveSymlinks ? t(r, n) : n(null, r);
  2325. }, defaultReadPackage = function e(t, r, s) {
  2326. t(r, (function(e, t) {
  2327. if (e) s(e); else try {
  2328. var r = JSON.parse(t);
  2329. s(null, r);
  2330. } catch (e) {
  2331. s(null);
  2332. }
  2333. }));
  2334. }, getPackageCandidates$1 = function e(t, r, s) {
  2335. var n, o = nodeModulesPaths(r, s, t);
  2336. for (n = 0; n < o.length; n++) o[n] = path__default.default.join(o[n], t);
  2337. return o;
  2338. }, async = function e(t, r, s) {
  2339. function n(e) {
  2340. if (/^(?:\.\.?(?:\/|$)|\/|([A-Za-z]:)?[/\\])/.test(t)) T = path__default.default.resolve(e, t),
  2341. "." !== t && ".." !== t && "/" !== t.slice(-1) || (T += "/"), /\/$/.test(t) && T === e ? l(T, C.package, o) : i(T, C.package, o); else {
  2342. if (_ && isCoreModule(t)) return S(null, t);
  2343. !function r(e, t, s) {
  2344. var n = function() {
  2345. return getPackageCandidates$1(e, t, C);
  2346. };
  2347. c(s, y ? y(e, t, n, C) : n());
  2348. }(t, e, (function(e, r, s) {
  2349. if (e) S(e); else {
  2350. if (r) return maybeRealpath(f, r, C, (function(e, t) {
  2351. e ? S(e) : S(null, t, s);
  2352. }));
  2353. var n = new Error("Cannot find module '" + t + "' from '" + b + "'");
  2354. n.code = "MODULE_NOT_FOUND", S(n);
  2355. }
  2356. }));
  2357. }
  2358. }
  2359. function o(e, r, s) {
  2360. e ? S(e) : r ? S(null, r, s) : l(T, (function(e, r, s) {
  2361. if (e) S(e); else if (r) maybeRealpath(f, r, C, (function(e, t) {
  2362. e ? S(e) : S(null, t, s);
  2363. })); else {
  2364. var n = new Error("Cannot find module '" + t + "' from '" + b + "'");
  2365. n.code = "MODULE_NOT_FOUND", S(n);
  2366. }
  2367. }));
  2368. }
  2369. function i(e, t, r) {
  2370. var s = t, n = r;
  2371. "function" == typeof s && (n = s, s = void 0), function e(t, r, s) {
  2372. function o(s, o, a) {
  2373. var u, h, p;
  2374. return c = o, s ? n(s) : a && c && C.pathFilter && (h = (u = path__default.default.relative(a, l)).slice(0, u.length - t[0].length),
  2375. p = C.pathFilter(c, r, h)) ? e([ "" ].concat(w.slice()), path__default.default.resolve(a, p), c) : void d(l, i);
  2376. }
  2377. function i(s, o) {
  2378. return s ? n(s) : o ? n(null, l, c) : void e(t.slice(1), r, c);
  2379. }
  2380. var l, c;
  2381. if (0 === t.length) return n(null, void 0, s);
  2382. l = r + t[0], (c = s) ? o(null, c) : a(path__default.default.dirname(l), o);
  2383. }([ "" ].concat(w), e, s);
  2384. }
  2385. function a(e, t) {
  2386. return "" === e || "/" === e || "win32" === process.platform && /^\w:[/\\]*$/.test(e) || /[/\\]node_modules[/\\]*$/.test(e) ? t(null) : void maybeRealpath(f, e, C, (function(r, s) {
  2387. if (r) return a(path__default.default.dirname(e), t);
  2388. var n = path__default.default.join(s, "package.json");
  2389. d(n, (function(r, s) {
  2390. if (!s) return a(path__default.default.dirname(e), t);
  2391. m(p, n, (function(r, s) {
  2392. r && t(r);
  2393. var o = s;
  2394. o && C.packageFilter && (o = C.packageFilter(o, n)), t(null, o, e);
  2395. }));
  2396. }));
  2397. }));
  2398. }
  2399. function l(e, t, r) {
  2400. var s = r, n = t;
  2401. "function" == typeof n && (s = n, n = C.package), maybeRealpath(f, e, C, (function(t, r) {
  2402. if (t) return s(t);
  2403. var o = path__default.default.join(r, "package.json");
  2404. d(o, (function(t, r) {
  2405. return t ? s(t) : r ? void m(p, o, (function(t, r) {
  2406. var n, a;
  2407. return t ? s(t) : ((n = r) && C.packageFilter && (n = C.packageFilter(n, o)), n && n.main ? "string" != typeof n.main ? ((a = new TypeError("package “" + n.name + "” `main` must be a string")).code = "INVALID_PACKAGE_MAIN",
  2408. s(a)) : ("." !== n.main && "./" !== n.main || (n.main = "index"), void i(path__default.default.resolve(e, n.main), n, (function(t, r, n) {
  2409. return t ? s(t) : r ? s(null, r, n) : n ? void l(path__default.default.resolve(e, n.main), n, (function(t, r, n) {
  2410. return t ? s(t) : r ? s(null, r, n) : void i(path__default.default.join(e, "index"), n, s);
  2411. })) : i(path__default.default.join(e, "index"), n, s);
  2412. }))) : void i(path__default.default.join(e, "/index"), n, s));
  2413. })) : i(path__default.default.join(e, "index"), n, s);
  2414. }));
  2415. }));
  2416. }
  2417. function c(e, t) {
  2418. function r(t, r, o) {
  2419. return t ? e(t) : r ? e(null, r, o) : void l(n, C.package, s);
  2420. }
  2421. function s(r, s, n) {
  2422. return r ? e(r) : s ? e(null, s, n) : void c(e, t.slice(1));
  2423. }
  2424. if (0 === t.length) return e(null, void 0);
  2425. var n = t[0];
  2426. h(path__default.default.dirname(n), (function o(s, a) {
  2427. return s ? e(s) : a ? void i(n, C.package, r) : c(e, t.slice(1));
  2428. }));
  2429. }
  2430. var u, d, h, p, f, m, g, y, w, _, v, b, E, T, S = s, C = r;
  2431. return "function" == typeof r && (S = C, C = {}), "string" != typeof t ? (u = new TypeError("Path must be a string."),
  2432. process.nextTick((function() {
  2433. S(u);
  2434. }))) : (C = normalizeOptions(0, C), d = C.isFile || defaultIsFile$1, h = C.isDirectory || defaultIsDir$1,
  2435. p = C.readFile || fs__default.default.readFile, f = C.realpath || defaultRealpath,
  2436. m = C.readPackage || defaultReadPackage, C.readFile && C.readPackage ? (g = new TypeError("`readFile` and `readPackage` are mutually exclusive."),
  2437. process.nextTick((function() {
  2438. S(g);
  2439. }))) : (y = C.packageIterator, w = C.extensions || [ ".js" ], _ = !1 !== C.includeCoreModules,
  2440. v = C.basedir || path__default.default.dirname(caller()), b = C.filename || v, C.paths = C.paths || [],
  2441. E = path__default.default.resolve(v), void maybeRealpath(f, E, C, (function(e, t) {
  2442. e ? S(e) : n(t);
  2443. }))));
  2444. };
  2445. const data = {
  2446. assert: !0,
  2447. "assert/strict": ">= 15",
  2448. async_hooks: ">= 8",
  2449. buffer_ieee754: "< 0.9.7",
  2450. buffer: !0,
  2451. child_process: !0,
  2452. cluster: !0,
  2453. console: !0,
  2454. constants: !0,
  2455. crypto: !0,
  2456. _debug_agent: ">= 1 && < 8",
  2457. _debugger: "< 8",
  2458. dgram: !0,
  2459. diagnostics_channel: ">= 15.1",
  2460. dns: !0,
  2461. "dns/promises": ">= 15",
  2462. domain: ">= 0.7.12",
  2463. events: !0,
  2464. freelist: "< 6",
  2465. fs: !0,
  2466. "fs/promises": [ ">= 10 && < 10.1", ">= 14" ],
  2467. _http_agent: ">= 0.11.1",
  2468. _http_client: ">= 0.11.1",
  2469. _http_common: ">= 0.11.1",
  2470. _http_incoming: ">= 0.11.1",
  2471. _http_outgoing: ">= 0.11.1",
  2472. _http_server: ">= 0.11.1",
  2473. http: !0,
  2474. http2: ">= 8.8",
  2475. https: !0,
  2476. inspector: ">= 8.0.0",
  2477. _linklist: "< 8",
  2478. module: !0,
  2479. net: !0,
  2480. "node-inspect/lib/_inspect": ">= 7.6.0 && < 12",
  2481. "node-inspect/lib/internal/inspect_client": ">= 7.6.0 && < 12",
  2482. "node-inspect/lib/internal/inspect_repl": ">= 7.6.0 && < 12",
  2483. os: !0,
  2484. path: !0,
  2485. "path/posix": ">= 15.3",
  2486. "path/win32": ">= 15.3",
  2487. perf_hooks: ">= 8.5",
  2488. process: ">= 1",
  2489. punycode: !0,
  2490. querystring: !0,
  2491. readline: !0,
  2492. repl: !0,
  2493. smalloc: ">= 0.11.5 && < 3",
  2494. _stream_duplex: ">= 0.9.4",
  2495. _stream_transform: ">= 0.9.4",
  2496. _stream_wrap: ">= 1.4.1",
  2497. _stream_passthrough: ">= 0.9.4",
  2498. _stream_readable: ">= 0.9.4",
  2499. _stream_writable: ">= 0.9.4",
  2500. stream: !0,
  2501. "stream/promises": ">= 15",
  2502. string_decoder: !0,
  2503. sys: [ ">= 0.6 && < 0.7", ">= 0.8" ],
  2504. timers: !0,
  2505. "timers/promises": ">= 15",
  2506. _tls_common: ">= 0.11.13",
  2507. _tls_legacy: ">= 0.11.3 && < 10",
  2508. _tls_wrap: ">= 0.11.3",
  2509. tls: !0,
  2510. trace_events: ">= 10",
  2511. tty: !0,
  2512. url: !0,
  2513. util: !0,
  2514. "util/types": ">= 15.3",
  2515. "v8/tools/arguments": ">= 10 && < 12",
  2516. "v8/tools/codemap": [ ">= 4.4.0 && < 5", ">= 5.2.0 && < 12" ],
  2517. "v8/tools/consarray": [ ">= 4.4.0 && < 5", ">= 5.2.0 && < 12" ],
  2518. "v8/tools/csvparser": [ ">= 4.4.0 && < 5", ">= 5.2.0 && < 12" ],
  2519. "v8/tools/logreader": [ ">= 4.4.0 && < 5", ">= 5.2.0 && < 12" ],
  2520. "v8/tools/profile_view": [ ">= 4.4.0 && < 5", ">= 5.2.0 && < 12" ],
  2521. "v8/tools/splaytree": [ ">= 4.4.0 && < 5", ">= 5.2.0 && < 12" ],
  2522. v8: ">= 1",
  2523. vm: !0,
  2524. wasi: ">= 13.4 && < 13.5",
  2525. worker_threads: ">= 11.7",
  2526. zlib: !0
  2527. };
  2528. for (mod in current = process.versions && process.versions.node && process.versions.node.split(".") || [],
  2529. core = {}, data) Object.prototype.hasOwnProperty.call(data, mod) && (core[mod] = versionIncluded(data[mod]));
  2530. core_1 = core, isCore = function e(t) {
  2531. return isCoreModule(t);
  2532. }, realpathFS = fs__default.default.realpathSync && "function" == typeof fs__default.default.realpathSync.native ? fs__default.default.realpathSync.native : fs__default.default.realpathSync,
  2533. defaultIsFile = function e(t) {
  2534. try {
  2535. var r = fs__default.default.statSync(t);
  2536. } catch (e) {
  2537. if (e && ("ENOENT" === e.code || "ENOTDIR" === e.code)) return !1;
  2538. throw e;
  2539. }
  2540. return r.isFile() || r.isFIFO();
  2541. }, defaultIsDir = function e(t) {
  2542. try {
  2543. var r = fs__default.default.statSync(t);
  2544. } catch (e) {
  2545. if (e && ("ENOENT" === e.code || "ENOTDIR" === e.code)) return !1;
  2546. throw e;
  2547. }
  2548. return r.isDirectory();
  2549. }, defaultRealpathSync = function e(t) {
  2550. try {
  2551. return realpathFS(t);
  2552. } catch (e) {
  2553. if ("ENOENT" !== e.code) throw e;
  2554. }
  2555. return t;
  2556. }, maybeRealpathSync = function e(t, r, s) {
  2557. return s && !1 === s.preserveSymlinks ? t(r) : r;
  2558. }, defaultReadPackageSync = function e(t, r) {
  2559. var s = t(r);
  2560. try {
  2561. return JSON.parse(s);
  2562. } catch (e) {}
  2563. }, getPackageCandidates = function e(t, r, s) {
  2564. var n, o = nodeModulesPaths(r, s, t);
  2565. for (n = 0; n < o.length; n++) o[n] = path__default.default.join(o[n], t);
  2566. return o;
  2567. }, sync = function e(t, r) {
  2568. function s(e) {
  2569. var t, r, s, o, l = n(path__default.default.dirname(e));
  2570. if (l && l.dir && l.pkg && i.pathFilter && (t = path__default.default.relative(l.dir, e),
  2571. (r = i.pathFilter(l.pkg, e, t)) && (e = path__default.default.resolve(l.dir, r))),
  2572. a(e)) return e;
  2573. for (s = 0; s < p.length; s++) if (o = e + p[s], a(o)) return o;
  2574. }
  2575. function n(e) {
  2576. var t, r;
  2577. if ("" !== e && "/" !== e && !("win32" === process.platform && /^\w:[/\\]*$/.test(e) || /[/\\]node_modules[/\\]*$/.test(e))) return t = path__default.default.join(maybeRealpathSync(u, e, i), "package.json"),
  2578. a(t) ? ((r = d(l, t)) && i.packageFilter && (r = i.packageFilter(r, e)), {
  2579. pkg: r,
  2580. dir: e
  2581. }) : n(path__default.default.dirname(e));
  2582. }
  2583. function o(e) {
  2584. var t, r, n, c, h = path__default.default.join(maybeRealpathSync(u, e, i), "/package.json");
  2585. if (a(h)) {
  2586. try {
  2587. t = d(l, h);
  2588. } catch (e) {}
  2589. if (t && i.packageFilter && (t = i.packageFilter(t, e)), t && t.main) {
  2590. if ("string" != typeof t.main) throw (r = new TypeError("package “" + t.name + "” `main` must be a string")).code = "INVALID_PACKAGE_MAIN",
  2591. r;
  2592. "." !== t.main && "./" !== t.main || (t.main = "index");
  2593. try {
  2594. if (n = s(path__default.default.resolve(e, t.main))) return n;
  2595. if (c = o(path__default.default.resolve(e, t.main))) return c;
  2596. } catch (e) {}
  2597. }
  2598. }
  2599. return s(path__default.default.join(e, "/index"));
  2600. }
  2601. var i, a, l, c, u, d, h, p, f, m, g, y, w, _, v, b;
  2602. if ("string" != typeof t) throw new TypeError("Path must be a string.");
  2603. if (i = normalizeOptions(0, r), a = i.isFile || defaultIsFile, l = i.readFileSync || fs__default.default.readFileSync,
  2604. c = i.isDirectory || defaultIsDir, u = i.realpathSync || defaultRealpathSync, d = i.readPackageSync || defaultReadPackageSync,
  2605. i.readFileSync && i.readPackageSync) throw new TypeError("`readFileSync` and `readPackageSync` are mutually exclusive.");
  2606. if (h = i.packageIterator, p = i.extensions || [ ".js" ], f = !1 !== i.includeCoreModules,
  2607. m = i.basedir || path__default.default.dirname(caller()), g = i.filename || m, i.paths = i.paths || [],
  2608. y = maybeRealpathSync(u, path__default.default.resolve(m), i), /^(?:\.\.?(?:\/|$)|\/|([A-Za-z]:)?[/\\])/.test(t)) {
  2609. if (w = path__default.default.resolve(y, t), "." !== t && ".." !== t && "/" !== t.slice(-1) || (w += "/"),
  2610. _ = s(w) || o(w)) return maybeRealpathSync(u, _, i);
  2611. } else {
  2612. if (f && isCoreModule(t)) return t;
  2613. if (v = function E(e, t) {
  2614. var r, n, a, l, u = function() {
  2615. return getPackageCandidates(e, t, i);
  2616. }, d = h ? h(e, t, u, i) : u();
  2617. for (r = 0; r < d.length; r++) if (n = d[r], c(path__default.default.dirname(n))) {
  2618. if (a = s(n)) return a;
  2619. if (l = o(n)) return l;
  2620. }
  2621. }(t, y)) return maybeRealpathSync(u, v, i);
  2622. }
  2623. throw (b = new Error("Cannot find module '" + t + "' from '" + g + "'")).code = "MODULE_NOT_FOUND",
  2624. b;
  2625. }, async.core = core_1, async.isCore = isCore, async.sync = sync, resolve = async;
  2626. const COMMON_DIR_MODULE_EXTS = [ ".tsx", ".ts", ".mjs", ".js", ".jsx", ".json", ".md" ], COMMON_DIR_FILENAMES = [ "package.json", "index.js", "index.mjs" ], getCommonDirName = (e, t) => e + "/" + t, isCommonDirModuleFile = e => COMMON_DIR_MODULE_EXTS.some((t => e.endsWith(t))), shouldFetchModule = e => IS_FETCH_ENV && IS_BROWSER_ENV && isNodeModulePath(e), isNodeModulePath = e => normalizePath(e).split("/").includes("node_modules"), getPackageDirPath = (e, t) => {
  2627. const r = normalizePath(e).split("/"), s = (e => {
  2628. e.startsWith("~") && (e = e.substring(1));
  2629. const t = e.split("/"), r = {
  2630. moduleId: null,
  2631. filePath: null,
  2632. scope: null,
  2633. scopeSubModuleId: null
  2634. };
  2635. return e.startsWith("@") && t.length > 1 ? (r.moduleId = t.slice(0, 2).join("/"),
  2636. r.filePath = t.slice(2).join("/"), r.scope = t[0], r.scopeSubModuleId = t[1]) : (r.moduleId = t[0],
  2637. r.filePath = t.slice(1).join("/")), r;
  2638. })(t);
  2639. for (let e = r.length - 1; e >= 1; e--) if ("node_modules" === r[e - 1]) if (s.scope) {
  2640. if (r[e] === s.scope && r[e + 1] === s.scopeSubModuleId) return r.slice(0, e + 2).join("/");
  2641. } else if (r[e] === s.moduleId) return r.slice(0, e + 1).join("/");
  2642. return null;
  2643. }, packageVersions = new Map, known404Urls = new Set, getCommonDirUrl = (e, t, r, s) => getNodeModuleFetchUrl(e, t, r) + "/" + s, getNodeModuleFetchUrl = (e, t, r) => {
  2644. let s = (r = normalizePath(r)).split("/").filter((e => e.length));
  2645. const n = s.lastIndexOf("node_modules");
  2646. n > -1 && n < s.length - 1 && (s = s.slice(n + 1));
  2647. let o = s.shift();
  2648. o.startsWith("@") && (o += "/" + s.shift());
  2649. const i = s.join("/");
  2650. return "@stencil/core" === o ? ((e, t) => {
  2651. let r = (t = normalizePath(t)).split("/");
  2652. const s = r.lastIndexOf("node_modules");
  2653. s > -1 && s < r.length - 1 && (r = r.slice(s + 1), r = r[0].startsWith("@") ? r.slice(2) : r.slice(1),
  2654. t = r.join("/"));
  2655. const n = new URL("../", e).href;
  2656. return new URL("./" + t, n).href;
  2657. })(e.getCompilerExecutingPath(), i) : e.getRemoteModuleUrl({
  2658. moduleId: o,
  2659. version: t.get(o),
  2660. path: i
  2661. });
  2662. }, knownUrlSkips = [ "/@stencil/core/internal.js", "/@stencil/core/internal.json", "/@stencil/core/internal.mjs", "/@stencil/core/internal/stencil-core.js/index.json", "/@stencil/core/internal/stencil-core.js.json", "/@stencil/core/internal/stencil-core.js/package.json", "/@stencil/core.js", "/@stencil/core.json", "/@stencil/core.mjs", "/@stencil/core.css", "/@stencil/core/index.js", "/@stencil/core/index.json", "/@stencil/core/index.mjs", "/@stencil/core/index.css", "/@stencil/package.json" ], fetchModuleAsync = async (e, t, r, s, n) => {
  2663. if (!((e => {
  2664. if (!(e => e.endsWith(".d.ts"))(t = e) && t.endsWith(".ts") || (e => e.endsWith(".tsx"))(e)) return !0;
  2665. var t;
  2666. const r = e.split("/"), s = r[r.length - 2], n = r[r.length - 1];
  2667. return !("node_modules" !== s || !isCommonDirModuleFile(n));
  2668. })(n) || known404Urls.has(s) || (e => knownUrlSkips.some((t => e.endsWith(t))))(s))) try {
  2669. const o = await ((e, t, r) => e && isFunction(e.fetch) ? e.fetch(t, r) : fetch(t, r))(e, s);
  2670. if (o) {
  2671. if (o.ok) {
  2672. const i = await o.clone().text();
  2673. return await (async (e, t, r, s, n, o) => {
  2674. r.endsWith("package.json") && ((e, t) => {
  2675. try {
  2676. const r = JSON.parse(t);
  2677. r.name && r.version && ((e, t, r) => {
  2678. e.set(t, r);
  2679. })(e, r.name, r.version);
  2680. } catch (e) {}
  2681. })(o, n);
  2682. let i = path$2.dirname(s);
  2683. for (;"/" !== i && "" !== i; ) t ? (t.clearFileCache(i), await t.sys.createDir(i)) : await e.createDir(i),
  2684. i = path$2.dirname(i);
  2685. t ? (t.clearFileCache(s), await t.sys.writeFile(s, n)) : await e.writeFile(s, n);
  2686. })(e, t, s, n, i, r), i;
  2687. }
  2688. 404 === o.status && known404Urls.add(s);
  2689. }
  2690. } catch (e) {
  2691. console.error(e);
  2692. }
  2693. }, createSystem = e => {
  2694. const t = e && e.logger ? e.logger : (() => {
  2695. let e = IS_BROWSER_ENV, t = "info";
  2696. return {
  2697. enableColors: t => e = t,
  2698. getLevel: () => t,
  2699. setLevel: e => t = e,
  2700. emoji: e => e,
  2701. info: console.log.bind(console),
  2702. warn: console.warn.bind(console),
  2703. error: console.error.bind(console),
  2704. debug: console.debug.bind(console),
  2705. red: e => e,
  2706. green: e => e,
  2707. yellow: e => e,
  2708. blue: e => e,
  2709. magenta: e => e,
  2710. cyan: e => e,
  2711. gray: e => e,
  2712. bold: e => e,
  2713. dim: e => e,
  2714. bgRed: e => e,
  2715. createTimeSpan: (e, t = !1) => ({
  2716. duration: () => 0,
  2717. finish: () => 0
  2718. }),
  2719. printDiagnostics(t) {
  2720. t.forEach((t => ((e, t) => {
  2721. let r = BLUE, s = "Build", n = "";
  2722. "error" === e.level ? (r = RED, s = "Error") : "warn" === e.level && (r = YELLOW,
  2723. s = "Warning"), e.header && (s = e.header);
  2724. const o = e.relFilePath || e.absFilePath;
  2725. if (o && (n += o, "number" == typeof e.lineNumber && e.lineNumber > 0 && (n += ", line " + e.lineNumber,
  2726. "number" == typeof e.columnNumber && e.columnNumber > 0 && (n += ", column " + e.columnNumber)),
  2727. n += "\n"), n += e.messageText, e.lines && e.lines.length > 0 && (e.lines.forEach((e => {
  2728. n += "\n" + e.lineNumber + ": " + e.text;
  2729. })), n += "\n"), t) {
  2730. const e = [ "%c" + s, `background: ${r}; color: white; padding: 2px 3px; border-radius: 2px; font-size: 0.8em;` ];
  2731. console.log(...e, n);
  2732. } else "error" === e.level ? console.error(n) : "warn" === e.level ? console.warn(n) : console.log(n);
  2733. })(t, e)));
  2734. }
  2735. };
  2736. })(), r = new Map, s = new Set, n = e => s.add(e), o = e => s.delete(e), i = buildEvents(), a = IS_BROWSER_ENV && navigator.hardwareConcurrency || 1, l = e => {
  2737. if ("/" === e || "" === e) return "/";
  2738. const t = path$2.dirname(e), r = path$2.basename(e);
  2739. return t.endsWith("/") ? normalizePath(`${t}${r}`) : normalizePath(`${t}/${r}`);
  2740. }, c = e => {
  2741. const t = r.get(l(e));
  2742. return !(!t || !(t.isDirectory || t.isFile && "string" == typeof t.data));
  2743. }, u = (e, t) => {
  2744. e = l(e);
  2745. const r = {
  2746. basename: path$2.basename(e),
  2747. dirname: path$2.dirname(e),
  2748. path: e,
  2749. newDirs: [],
  2750. error: null
  2751. };
  2752. return d(e, t, r), r;
  2753. }, d = (e, t, s) => {
  2754. const n = path$2.dirname(e);
  2755. t && t.recursive && !(e => "/" === e || windowsPathRegex.test(e))(n) && d(n, t, s);
  2756. const o = r.get(e);
  2757. o ? (o.isDirectory = !0, o.isFile = !1) : (r.set(e, {
  2758. basename: path$2.basename(e),
  2759. dirname: n,
  2760. isDirectory: !0,
  2761. isFile: !1,
  2762. watcherCallbacks: null,
  2763. data: void 0
  2764. }), s.newDirs.push(e), v(e, new Set));
  2765. }, h = e => {
  2766. e = l(e);
  2767. const t = [], s = r.get(e);
  2768. return s && s.isDirectory && r.forEach(((r, s) => {
  2769. "/" !== s && (r.isDirectory || r.isFile && "string" == typeof r.data) && (e.endsWith("/") && `${e}${r.basename}` === s || `${e}/${r.basename}` === s) && t.push(s);
  2770. })), t.sort();
  2771. }, p = e => {
  2772. e = l(e);
  2773. const t = r.get(e);
  2774. if (t && t.isFile) return t.data;
  2775. }, f = e => ({
  2776. path: l(e),
  2777. error: null
  2778. }), m = (e, t, s) => {
  2779. const n = w(e);
  2780. if (!n.error && !s.error) if (n.isFile) {
  2781. const n = path$2.dirname(t), o = u(n, {
  2782. recursive: !0
  2783. }), i = r.get(e).data, a = b(t, i);
  2784. s.newDirs.push(...o.newDirs), s.renamed.push({
  2785. oldPath: e,
  2786. newPath: t,
  2787. isDirectory: !1,
  2788. isFile: !0
  2789. }), a.error ? s.error = a.error : s.newFiles.push(t);
  2790. } else if (n.isDirectory) {
  2791. const r = h(e), n = u(t, {
  2792. recursive: !0
  2793. });
  2794. s.newDirs.push(...n.newDirs), s.renamed.push({
  2795. oldPath: e,
  2796. newPath: t,
  2797. isDirectory: !0,
  2798. isFile: !1
  2799. });
  2800. for (const n of r) {
  2801. const r = n.replace(e, t);
  2802. m(n, r, s);
  2803. }
  2804. }
  2805. }, g = (e, t = {}) => {
  2806. const r = {
  2807. basename: path$2.basename(e),
  2808. dirname: path$2.dirname(e),
  2809. path: e,
  2810. removedDirs: [],
  2811. removedFiles: [],
  2812. error: null
  2813. };
  2814. return y(e, t, r), r;
  2815. }, y = (e, t, s) => {
  2816. if (!s.error) {
  2817. e = l(e);
  2818. const n = h(e);
  2819. if (t && t.recursive) for (const e of n) {
  2820. const n = r.get(e);
  2821. if (n) if (n.isDirectory) y(e, t, s); else if (n.isFile) {
  2822. const t = _(e);
  2823. t.error ? s.error = t.error : s.removedFiles.push(e);
  2824. }
  2825. } else if (n.length > 0) return void (s.error = "cannot delete directory that contains files/subdirectories");
  2826. r.delete(e), v(e, new Set), s.removedDirs.push(e);
  2827. }
  2828. }, w = e => {
  2829. e = l(e);
  2830. const t = r.get(e);
  2831. return t && (t.isDirectory || t.isFile && "string" == typeof t.data) ? {
  2832. isDirectory: t.isDirectory,
  2833. isFile: t.isFile,
  2834. isSymbolicLink: !1,
  2835. size: t.isFile && t.data ? t.data.length : 0,
  2836. error: null
  2837. } : {
  2838. isDirectory: !1,
  2839. isFile: !1,
  2840. isSymbolicLink: !1,
  2841. size: 0,
  2842. error: `ENOENT: no such file or directory, statSync '${e}'`
  2843. };
  2844. }, _ = e => {
  2845. e = l(e);
  2846. const t = {
  2847. basename: path$2.basename(e),
  2848. dirname: path$2.dirname(e),
  2849. path: e,
  2850. error: null
  2851. }, s = r.get(e);
  2852. if (s) {
  2853. if (s.watcherCallbacks) for (const t of s.watcherCallbacks) t(e, "fileDelete");
  2854. r.delete(e), v(e, new Set);
  2855. }
  2856. return t;
  2857. }, v = (e, t) => {
  2858. const s = l(path$2.dirname(e)), n = r.get(s);
  2859. if (n && n.isDirectory && n.watcherCallbacks) for (const t of n.watcherCallbacks) t(e, null);
  2860. t.has(s) || (t.add(s), v(s, t));
  2861. }, b = (e, t) => {
  2862. const s = {
  2863. path: e = l(e),
  2864. error: null
  2865. }, n = r.get(e);
  2866. if (n) {
  2867. const r = n.data !== t;
  2868. if (n.data = t, r && n.watcherCallbacks) for (const t of n.watcherCallbacks) t(e, "fileUpdate");
  2869. } else r.set(e, {
  2870. basename: path$2.basename(e),
  2871. dirname: path$2.dirname(e),
  2872. isDirectory: !1,
  2873. isFile: !0,
  2874. watcherCallbacks: null,
  2875. data: t
  2876. }), v(e, new Set);
  2877. return s;
  2878. }, E = "undefined" != typeof self ? null === self || void 0 === self ? void 0 : self.fetch : "undefined" != typeof window ? null === window || void 0 === window ? void 0 : window.fetch : "undefined" != typeof global ? null === global || void 0 === global ? void 0 : global.fetch : void 0, T = Promise.resolve();
  2879. u("/");
  2880. const S = {
  2881. name: "in-memory",
  2882. version: "2.18.1",
  2883. events: i,
  2884. access: async e => c(e),
  2885. accessSync: c,
  2886. addDestory: n,
  2887. copyFile: async (e, t) => (b(t, p(e)), !0),
  2888. createDir: async (e, t) => u(e, t),
  2889. createDirSync: u,
  2890. homeDir: () => os__namespace.homedir(),
  2891. isTTY: () => {
  2892. var e;
  2893. return !!(null === (e = null == process__namespace ? void 0 : process__namespace.stdout) || void 0 === e ? void 0 : e.isTTY);
  2894. },
  2895. getEnvironmentVar: e => null == process__namespace ? void 0 : process__namespace.env[e],
  2896. destroy: async () => {
  2897. const e = [];
  2898. s.forEach((r => {
  2899. try {
  2900. const t = r();
  2901. t && t.then && e.push(t);
  2902. } catch (e) {
  2903. t.error(`stencil sys destroy: ${e}`);
  2904. }
  2905. })), await Promise.all(e), s.clear();
  2906. },
  2907. encodeToBase64: e => btoa(unescape(encodeURIComponent(e))),
  2908. exit: async e => t.warn(`exit ${e}`),
  2909. getCurrentDirectory: () => "/",
  2910. getCompilerExecutingPath: () => IS_WEB_WORKER_ENV ? location.href : S.getRemoteModuleUrl({
  2911. moduleId: "@stencil/core",
  2912. path: "compiler/stencil.min.js"
  2913. }),
  2914. getLocalModulePath: e => path$2.join(e.rootDir, "node_modules", e.moduleId, e.path),
  2915. getRemoteModuleUrl: e => {
  2916. const t = `${e.moduleId}${e.version ? "@" + e.version : ""}/${e.path}`;
  2917. return new URL(t, "https://cdn.jsdelivr.net/npm/").href;
  2918. },
  2919. hardwareConcurrency: a,
  2920. isSymbolicLink: async e => !1,
  2921. nextTick: e => T.then(e),
  2922. normalizePath: l,
  2923. platformPath: pathBrowserify,
  2924. readDir: async e => h(e),
  2925. readDirSync: h,
  2926. readFile: async e => p(e),
  2927. readFileSync: p,
  2928. realpath: async e => f(e),
  2929. realpathSync: f,
  2930. removeDestory: o,
  2931. rename: async (e, t) => {
  2932. const r = {
  2933. oldPath: e = normalizePath(e),
  2934. newPath: t = normalizePath(t),
  2935. renamed: [],
  2936. oldDirs: [],
  2937. oldFiles: [],
  2938. newDirs: [],
  2939. newFiles: [],
  2940. isFile: !1,
  2941. isDirectory: !1,
  2942. error: null
  2943. }, s = w(e);
  2944. if (s.error) r.error = `${e} does not exist`; else if (s.isFile ? r.isFile = !0 : s.isDirectory && (r.isDirectory = !0),
  2945. m(e, t, r), !r.error) if (r.isDirectory) {
  2946. const t = g(e, {
  2947. recursive: !0
  2948. });
  2949. t.error ? r.error = t.error : (r.oldDirs.push(...t.removedDirs), r.oldFiles.push(...t.removedFiles));
  2950. } else if (r.isFile) {
  2951. const t = _(e);
  2952. t.error ? r.error = t.error : r.oldFiles.push(e);
  2953. }
  2954. return r;
  2955. },
  2956. fetch: E,
  2957. resolvePath: e => l(e),
  2958. removeDir: async (e, t = {}) => g(e, t),
  2959. removeDirSync: g,
  2960. stat: async e => w(e),
  2961. statSync: w,
  2962. tmpDirSync: () => "/.tmp",
  2963. removeFile: async e => _(e),
  2964. removeFileSync: _,
  2965. watchDirectory: (e, t) => {
  2966. e = l(e);
  2967. const s = r.get(e), i = () => {
  2968. const s = r.get(e);
  2969. if (s && s.watcherCallbacks) {
  2970. const e = s.watcherCallbacks.indexOf(t);
  2971. e > -1 && s.watcherCallbacks.splice(e, 1);
  2972. }
  2973. };
  2974. return n(i), s ? (s.isDirectory = !0, s.isFile = !1, s.watcherCallbacks = s.watcherCallbacks || [],
  2975. s.watcherCallbacks.push(t)) : r.set(e, {
  2976. basename: path$2.basename(e),
  2977. dirname: path$2.dirname(e),
  2978. isDirectory: !0,
  2979. isFile: !1,
  2980. watcherCallbacks: [ t ],
  2981. data: void 0
  2982. }), {
  2983. close() {
  2984. o(i), i();
  2985. }
  2986. };
  2987. },
  2988. watchFile: (e, t) => {
  2989. e = l(e);
  2990. const s = r.get(e), i = () => {
  2991. const s = r.get(e);
  2992. if (s && s.watcherCallbacks) {
  2993. const e = s.watcherCallbacks.indexOf(t);
  2994. e > -1 && s.watcherCallbacks.splice(e, 1);
  2995. }
  2996. };
  2997. return n(i), s ? (s.isDirectory = !1, s.isFile = !0, s.watcherCallbacks = s.watcherCallbacks || [],
  2998. s.watcherCallbacks.push(t)) : r.set(e, {
  2999. basename: path$2.basename(e),
  3000. dirname: path$2.dirname(e),
  3001. isDirectory: !1,
  3002. isFile: !0,
  3003. watcherCallbacks: [ t ],
  3004. data: void 0
  3005. }), {
  3006. close() {
  3007. o(i), i();
  3008. }
  3009. };
  3010. },
  3011. watchTimeout: 32,
  3012. writeFile: async (e, t) => b(e, t),
  3013. writeFileSync: b,
  3014. generateContentHash: async (e, t) => {
  3015. const r = await crypto.subtle.digest("SHA-256", (new TextEncoder).encode(e));
  3016. let s = Array.from(new Uint8Array(r)).map((e => e.toString(16).padStart(2, "0"))).join("");
  3017. return "number" == typeof t && (s = s.slice(0, t)), s;
  3018. },
  3019. createWorkerController: HAS_WEB_WORKER ? e => ((e, t) => {
  3020. let r, s = 0, n = !1, o = !1, i = 0;
  3021. const a = new Map, l = [], c = [], u = Math.max(Math.min(t, e.hardwareConcurrency), 2) - 1, d = Promise.resolve(), h = e => console.error(e), p = () => {
  3022. let t = null;
  3023. const s = e.getCompilerExecutingPath(), o = {
  3024. name: "stencil.worker." + i++
  3025. };
  3026. try {
  3027. t = new Worker(s, o);
  3028. } catch (e) {
  3029. null == r && (r = new Blob([ `importScripts('${s}');` ], {
  3030. type: "application/javascript"
  3031. })), t = new Worker(URL.createObjectURL(r), o);
  3032. }
  3033. const l = {
  3034. worker: t,
  3035. activeTasks: 0,
  3036. sendQueue: []
  3037. };
  3038. return t.onerror = h, t.onmessage = e => ((e, t) => {
  3039. if (!n) {
  3040. const r = t.data;
  3041. if (Array.isArray(r)) for (const t of r) if (t) {
  3042. const r = a.get(t.stencilId);
  3043. r ? (a.delete(t.stencilId), t.stencilRtnError ? r.reject(t.stencilRtnError) : r.resolve(t.stencilRtnValue),
  3044. e.activeTasks--, (e.activeTasks < 0 || e.activeTasks > 50) && (e.activeTasks = 0)) : t.stencilRtnError && console.error(t.stencilRtnError);
  3045. }
  3046. }
  3047. })(l, e), l;
  3048. }, f = e => {
  3049. e.sendQueue.length > 0 && (e.worker.postMessage(e.sendQueue), e.sendQueue.length = 0);
  3050. }, m = e => {
  3051. let t;
  3052. if (c.length > 0) {
  3053. if (t = c[0], u > 1) {
  3054. for (const e of c) e.activeTasks < t.activeTasks && (t = e);
  3055. t.activeTasks > 0 && c.length < u && (t = p(), c.push(t));
  3056. }
  3057. } else t = p(), c.push(t);
  3058. t.activeTasks++, t.sendQueue.push(e);
  3059. }, g = () => {
  3060. o = !1, l.forEach(m), l.length = 0, c.forEach(f);
  3061. }, y = (...e) => new Promise(((t, r) => {
  3062. if (n) r("task canceled"); else {
  3063. const n = {
  3064. stencilId: s++,
  3065. args: e
  3066. };
  3067. l.push(n), a.set(n.stencilId, {
  3068. resolve: t,
  3069. reject: r
  3070. }), o || (o = !0, d.then(g));
  3071. }
  3072. }));
  3073. return {
  3074. send: y,
  3075. destroy: () => {
  3076. n = !0, a.forEach((e => e.reject("task canceled"))), a.clear(), c.forEach((e => e.worker.terminate())),
  3077. c.length = 0;
  3078. },
  3079. handler: e => function(...t) {
  3080. return y(e, ...t);
  3081. },
  3082. maxWorkers: u
  3083. };
  3084. })(S, e) : null,
  3085. details: {
  3086. cpuModel: "",
  3087. freemem: () => 0,
  3088. platform: "",
  3089. release: "",
  3090. totalmem: 0
  3091. },
  3092. copy: async (e, r) => (t.info("todo, copy task", e.length, r), {
  3093. diagnostics: [],
  3094. dirPaths: [],
  3095. filePaths: []
  3096. })
  3097. };
  3098. return S.resolveModuleId = e => ((e, t, r) => {
  3099. const s = ((e, t, r) => ({
  3100. async isFile(s, n) {
  3101. const o = normalizeFsPath(s);
  3102. if ((await t.stat(o)).isFile) n(null, !0); else {
  3103. if (shouldFetchModule(o) && r.some((e => o.endsWith(e)))) {
  3104. const r = getNodeModuleFetchUrl(e, packageVersions, o);
  3105. return void n(null, "string" == typeof await fetchModuleAsync(e, t, packageVersions, r, o));
  3106. }
  3107. n(null, !1);
  3108. }
  3109. },
  3110. async isDirectory(r, s) {
  3111. const n = normalizeFsPath(r);
  3112. if ((await t.stat(n)).isDirectory) s(null, !0); else {
  3113. if (shouldFetchModule(n)) {
  3114. if ("node_modules" === path$2.basename(n)) return t.sys.createDirSync(n), t.clearFileCache(n),
  3115. void s(null, !0);
  3116. if (isCommonDirModuleFile(n)) return void s(null, !1);
  3117. for (const r of COMMON_DIR_FILENAMES) {
  3118. const o = getCommonDirUrl(e, packageVersions, n, r), i = getCommonDirName(n, r), a = await fetchModuleAsync(e, t, packageVersions, o, i);
  3119. if (isString(a)) return void s(null, !0);
  3120. }
  3121. }
  3122. s(null, !1);
  3123. }
  3124. },
  3125. async readFile(e, r) {
  3126. const s = normalizeFsPath(e), n = await t.readFile(s);
  3127. return isString(n) ? r(null, n) : r(`readFile not found: ${e}`);
  3128. },
  3129. async realpath(t, r) {
  3130. const s = normalizeFsPath(t), n = await e.realpath(s);
  3131. n.error && "ENOENT" !== n.error.code ? r(n.error) : r(null, n.error ? s : n.path);
  3132. },
  3133. extensions: r
  3134. }))(e, null, r.exts);
  3135. return s.basedir = path$2.dirname(normalizeFsPath(r.containingFile)), r.packageFilter ? s.packageFilter = r.packageFilter : null !== r.packageFilter && (s.packageFilter = e => (isString(e.main) && "" !== e.main || (e.main = "package.json"),
  3136. e)), new Promise(((e, t) => {
  3137. resolve(r.moduleId, s, ((s, n, o) => {
  3138. if (s) t(s); else {
  3139. n = normalizePath(n);
  3140. const t = {
  3141. moduleId: r.moduleId,
  3142. resolveId: n,
  3143. pkgData: o,
  3144. pkgDirPath: getPackageDirPath(n, r.moduleId)
  3145. };
  3146. e(t);
  3147. }
  3148. }));
  3149. }));
  3150. })(S, 0, e), S;
  3151. }, createTestingSystem = () => {
  3152. let e = 0, t = 0;
  3153. const r = createSystem();
  3154. r.platformPath = path__default.default, r.generateContentHash = (e, t) => {
  3155. let r = crypto$3.createHash("sha1").update(e).digest("hex").toLowerCase();
  3156. return "number" == typeof t && (r = r.slice(0, t)), Promise.resolve(r);
  3157. };
  3158. const s = t => {
  3159. const r = t;
  3160. return (...t) => (e++, r.apply(r, t));
  3161. }, n = e => {
  3162. const r = e;
  3163. return (...e) => (t++, r.apply(r, e));
  3164. };
  3165. if (r.access = s(r.access), r.accessSync = s(r.accessSync), r.homeDir = s(r.homeDir),
  3166. r.readFile = s(r.readFile), r.readFileSync = s(r.readFileSync), r.readDir = s(r.readDir),
  3167. r.readDirSync = s(r.readDirSync), r.stat = s(r.stat), r.statSync = s(r.statSync),
  3168. r.copyFile = n(r.copyFile), r.createDir = n(r.createDir), r.createDirSync = n(r.createDirSync),
  3169. r.removeFile = n(r.removeFile), r.removeFileSync = n(r.removeFileSync), r.writeFile = n(r.writeFile),
  3170. r.writeFileSync = n(r.writeFileSync), r.getCompilerExecutingPath = () => "bin/stencil.js",
  3171. Object.defineProperties(r, {
  3172. diskReads: {
  3173. get: () => e,
  3174. set(t) {
  3175. e = t;
  3176. }
  3177. },
  3178. diskWrites: {
  3179. get: () => t,
  3180. set(e) {
  3181. t = e;
  3182. }
  3183. }
  3184. }), !function o(e) {
  3185. return "diskReads" in e && "diskWrites" in e;
  3186. }(r)) throw new Error("could not generate TestingSystem");
  3187. return r;
  3188. };
  3189. class EventSpy {
  3190. constructor(e) {
  3191. this.eventName = e, this.events = [], this.cursor = 0, this.queuedHandler = [];
  3192. }
  3193. get length() {
  3194. return this.events.length;
  3195. }
  3196. get firstEvent() {
  3197. return this.events[0] || null;
  3198. }
  3199. get lastEvent() {
  3200. return this.events[this.events.length - 1] || null;
  3201. }
  3202. next() {
  3203. const e = this.cursor;
  3204. this.cursor++;
  3205. const t = this.events[e];
  3206. if (t) return Promise.resolve({
  3207. done: !1,
  3208. value: t
  3209. });
  3210. {
  3211. let t;
  3212. const r = new Promise((e => t = e));
  3213. return this.queuedHandler.push(t), r.then((() => ({
  3214. done: !1,
  3215. value: this.events[e]
  3216. })));
  3217. }
  3218. }
  3219. push(e) {
  3220. this.events.push(e);
  3221. const t = this.queuedHandler.shift();
  3222. t && t();
  3223. }
  3224. }
  3225. class E2EElement extends index_cjs.MockHTMLElement {
  3226. constructor(e, t) {
  3227. super(null, null), this._page = e, this._elmHandle = t, this._queuedActions = [],
  3228. e._e2eElements.push(this);
  3229. }
  3230. _queueAction(e) {
  3231. this._queuedActions.push(e);
  3232. }
  3233. find(e) {
  3234. return find(this._page, this._elmHandle, e);
  3235. }
  3236. findAll(e) {
  3237. return findAll(this._page, this._elmHandle, e);
  3238. }
  3239. callMethod(e, ...t) {
  3240. return this._queueAction({
  3241. methodName: e,
  3242. methodArgs: t
  3243. }), this.e2eRunActions();
  3244. }
  3245. triggerEvent(e, t) {
  3246. this._queueAction({
  3247. eventName: e,
  3248. eventInitDict: t
  3249. });
  3250. }
  3251. async spyOnEvent(e) {
  3252. const t = new EventSpy(e);
  3253. return await addE2EListener(this._page, this._elmHandle, e, (e => {
  3254. t.push(e);
  3255. })), t;
  3256. }
  3257. async click(e) {
  3258. await this._elmHandle.click(e), await this._page.waitForChanges();
  3259. }
  3260. async focus() {
  3261. await this._elmHandle.focus(), await this._page.waitForChanges();
  3262. }
  3263. async hover() {
  3264. await this._elmHandle.hover(), await this._page.waitForChanges();
  3265. }
  3266. async isVisible() {
  3267. this._validate();
  3268. let e = !1;
  3269. try {
  3270. const t = this._elmHandle.executionContext();
  3271. e = await t.evaluate((e => new Promise((t => {
  3272. window.requestAnimationFrame((() => {
  3273. if (e.isConnected) {
  3274. const r = window.getComputedStyle(e);
  3275. r && "none" !== r.display && "hidden" !== r.visibility && "0" !== r.opacity ? window.requestAnimationFrame((() => {
  3276. e.clientWidth, t(!0);
  3277. })) : t(!1);
  3278. } else t(!1);
  3279. }));
  3280. }))), this._elmHandle);
  3281. } catch (e) {}
  3282. return e;
  3283. }
  3284. waitForEvent(e) {
  3285. return waitForEvent(this._page, e, this._elmHandle);
  3286. }
  3287. waitForVisible() {
  3288. return new Promise(((e, t) => {
  3289. const r = setInterval((async () => {
  3290. await this.isVisible() && (clearInterval(r), clearTimeout(o), e());
  3291. }), 10), s = .5 * jasmine.DEFAULT_TIMEOUT_INTERVAL, n = new Error(`waitForVisible timed out: ${s}ms`), o = setTimeout((() => {
  3292. clearTimeout(r), t(n);
  3293. }), s);
  3294. }));
  3295. }
  3296. waitForNotVisible() {
  3297. return new Promise(((e, t) => {
  3298. const r = setInterval((async () => {
  3299. await this.isVisible() || (clearInterval(r), clearTimeout(o), e());
  3300. }), 10), s = .5 * jasmine.DEFAULT_TIMEOUT_INTERVAL, n = new Error(`waitForNotVisible timed out: ${s}ms`), o = setTimeout((() => {
  3301. clearTimeout(r), t(n);
  3302. }), s);
  3303. }));
  3304. }
  3305. isIntersectingViewport() {
  3306. return this._elmHandle.isIntersectingViewport();
  3307. }
  3308. async press(e, t) {
  3309. await this._elmHandle.press(e, t), await this._page.waitForChanges();
  3310. }
  3311. async tap() {
  3312. await this._elmHandle.tap(), await this._page.waitForChanges();
  3313. }
  3314. async type(e, t) {
  3315. await this._elmHandle.type(e, t), await this._page.waitForChanges();
  3316. }
  3317. async getProperty(e) {
  3318. this._validate();
  3319. const t = this._elmHandle.executionContext();
  3320. return await t.evaluate(((e, t) => e[t]), this._elmHandle, e);
  3321. }
  3322. setProperty(e, t) {
  3323. this._queueAction({
  3324. setPropertyName: e,
  3325. setPropertyValue: t
  3326. });
  3327. }
  3328. getAttribute(e) {
  3329. return this._validate(), super.getAttribute(e);
  3330. }
  3331. setAttribute(e, t) {
  3332. this._queueAction({
  3333. setAttributeName: e,
  3334. setAttributeValue: t
  3335. });
  3336. }
  3337. removeAttribute(e) {
  3338. this._queueAction({
  3339. removeAttribute: e
  3340. });
  3341. }
  3342. toggleAttribute(e, t) {
  3343. this._queueAction({
  3344. toggleAttributeName: e,
  3345. toggleAttributeForce: t
  3346. });
  3347. }
  3348. get classList() {
  3349. return {
  3350. add: (...e) => {
  3351. e.forEach((e => {
  3352. this._queueAction({
  3353. classAdd: e
  3354. });
  3355. }));
  3356. },
  3357. remove: (...e) => {
  3358. e.forEach((e => {
  3359. this._queueAction({
  3360. classRemove: e
  3361. });
  3362. }));
  3363. },
  3364. toggle: e => {
  3365. this._queueAction({
  3366. classToggle: e
  3367. });
  3368. },
  3369. contains: e => (this._validate(), super.className.split(" ").includes(e))
  3370. };
  3371. }
  3372. get className() {
  3373. return this._validate(), super.className;
  3374. }
  3375. set className(e) {
  3376. this._queueAction({
  3377. setPropertyName: "className",
  3378. setPropertyValue: e
  3379. });
  3380. }
  3381. get id() {
  3382. return this._validate(), super.id;
  3383. }
  3384. set id(e) {
  3385. this._queueAction({
  3386. setPropertyName: "id",
  3387. setPropertyValue: e
  3388. });
  3389. }
  3390. get innerHTML() {
  3391. return this._validate(), super.innerHTML;
  3392. }
  3393. set innerHTML(e) {
  3394. this._queueAction({
  3395. setPropertyName: "innerHTML",
  3396. setPropertyValue: e
  3397. });
  3398. }
  3399. get innerText() {
  3400. return this._validate(), super.innerText;
  3401. }
  3402. set innerText(e) {
  3403. this._queueAction({
  3404. setPropertyName: "innerText",
  3405. setPropertyValue: e
  3406. });
  3407. }
  3408. get nodeValue() {
  3409. return this._validate(), super.nodeValue;
  3410. }
  3411. set nodeValue(e) {
  3412. "string" == typeof e && this._queueAction({
  3413. setPropertyName: "nodeValue",
  3414. setPropertyValue: e
  3415. });
  3416. }
  3417. get outerHTML() {
  3418. return this._validate(), super.outerHTML;
  3419. }
  3420. set outerHTML(e) {
  3421. throw new Error("outerHTML is read-only");
  3422. }
  3423. get shadowRoot() {
  3424. return this._validate(), super.shadowRoot;
  3425. }
  3426. set shadowRoot(e) {
  3427. super.shadowRoot = e;
  3428. }
  3429. get tabIndex() {
  3430. return this._validate(), super.tabIndex;
  3431. }
  3432. set tabIndex(e) {
  3433. this._queueAction({
  3434. setPropertyName: "tabIndex",
  3435. setPropertyValue: e
  3436. });
  3437. }
  3438. get textContent() {
  3439. return this._validate(), super.textContent;
  3440. }
  3441. set textContent(e) {
  3442. this._queueAction({
  3443. setPropertyName: "textContent",
  3444. setPropertyValue: e
  3445. });
  3446. }
  3447. get title() {
  3448. return this._validate(), super.title;
  3449. }
  3450. set title(e) {
  3451. this._queueAction({
  3452. setPropertyName: "title",
  3453. setPropertyValue: e
  3454. });
  3455. }
  3456. async getComputedStyle(e) {
  3457. const t = await this._page.evaluate(((e, t) => {
  3458. const r = {}, s = window.getComputedStyle(e, t);
  3459. return Object.keys(s).forEach((e => {
  3460. if (isNaN(e)) {
  3461. const t = s[e];
  3462. null != t && (r[e] = t);
  3463. } else {
  3464. const t = s[e];
  3465. if (t.includes("-")) {
  3466. const e = s.getPropertyValue(t);
  3467. null != e && (r[t] = e);
  3468. }
  3469. }
  3470. })), r;
  3471. }), this._elmHandle, e);
  3472. return t.getPropertyValue = e => t[e], t;
  3473. }
  3474. async e2eRunActions() {
  3475. if (0 === this._queuedActions.length) return;
  3476. const e = this._elmHandle.executionContext(), t = await e.evaluate(((e, t) => e.componentOnReady().then((() => {
  3477. let r = null;
  3478. return t.forEach((t => {
  3479. if (t.methodName) r = e[t.methodName].apply(e, t.methodArgs); else if (t.setPropertyName) e[t.setPropertyName] = t.setPropertyValue; else if (t.setAttributeName) e.setAttribute(t.setAttributeName, t.setAttributeValue); else if (t.removeAttribute) e.removeAttribute(t.removeAttribute); else if (t.toggleAttributeName) "boolean" == typeof t.toggleAttributeForce ? e.toggleAttribute(t.toggleAttributeName, t.toggleAttributeForce) : e.toggleAttribute(t.toggleAttributeName); else if (t.classAdd) e.classList.add(t.classAdd); else if (t.classRemove) e.classList.remove(t.classRemove); else if (t.classToggle) e.classList.toggle(t.classToggle); else if (t.eventName) {
  3480. const r = t.eventInitDict || {};
  3481. "boolean" != typeof r.bubbles && (r.bubbles = !0), "boolean" != typeof r.cancelable && (r.cancelable = !0),
  3482. "boolean" != typeof r.composed && (r.composed = !0);
  3483. const s = new CustomEvent(t.eventName, r);
  3484. e.dispatchEvent(s);
  3485. }
  3486. })), r && "function" == typeof r.then ? r.then((e => e)) : r;
  3487. }))), this._elmHandle, this._queuedActions);
  3488. return this._queuedActions.length = 0, t;
  3489. }
  3490. async e2eSync() {
  3491. const e = this._elmHandle.executionContext(), {outerHTML: t, shadowRootHTML: r} = await e.evaluate((e => ({
  3492. outerHTML: e.outerHTML,
  3493. shadowRootHTML: e.shadowRoot ? e.shadowRoot.innerHTML : null
  3494. })), this._elmHandle);
  3495. "string" == typeof r ? (this.shadowRoot = index_cjs.parseHtmlToFragment(r), this.shadowRoot.host = this) : this.shadowRoot = null;
  3496. const s = index_cjs.parseHtmlToFragment(t).firstElementChild;
  3497. for (this.nodeName = s.nodeName, this.attributes = index_cjs.cloneAttributes(s.attributes); this.childNodes.length > 0; ) this.removeChild(this.childNodes[0]);
  3498. for (;s.childNodes.length > 0; ) this.appendChild(s.childNodes[0]);
  3499. }
  3500. _validate() {
  3501. if (this._queuedActions.length > 0) throw new Error("await page.waitForChanges() must be called before reading element information");
  3502. }
  3503. async e2eDispose() {
  3504. this._elmHandle && (await this._elmHandle.dispose(), this._elmHandle = null);
  3505. const e = this._page._e2eElements.indexOf(this);
  3506. e > -1 && this._page._e2eElements.splice(e, 1), this._page = null;
  3507. }
  3508. }
  3509. const env = process.env, isOutputTargetDistLazy = e => e.type === DIST_LAZY, isOutputTargetWww = e => e.type === WWW, DIST_LAZY = "dist-lazy", WWW = "www";
  3510. exports.MockHeaders = MockHeaders, exports.MockRequest = MockRequest, exports.MockResponse = MockResponse,
  3511. exports.createJestPuppeteerEnvironment = function createJestPuppeteerEnvironment() {
  3512. const e = require("jest-environment-node");
  3513. return class extends e {
  3514. constructor(e) {
  3515. super(e), this.browser = null, this.pages = [];
  3516. }
  3517. async setup() {
  3518. "true" === process.env.__STENCIL_E2E_TESTS__ && (this.global.__NEW_TEST_PAGE__ = this.newPuppeteerPage.bind(this),
  3519. this.global.__CLOSE_OPEN_PAGES__ = this.closeOpenPages.bind(this));
  3520. }
  3521. async newPuppeteerPage() {
  3522. this.browser || (this.browser = await async function e() {
  3523. const e = process.env, t = e.__STENCIL_BROWSER_WS_ENDPOINT__;
  3524. if (!t) return null;
  3525. const r = {
  3526. browserWSEndpoint: t,
  3527. ignoreHTTPSErrors: !0
  3528. }, s = require(e.__STENCIL_PUPPETEER_MODULE__);
  3529. return await s.connect(r);
  3530. }());
  3531. const t = await function r(e) {
  3532. return e.newPage();
  3533. }(this.browser);
  3534. this.pages.push(t);
  3535. const s = process.env;
  3536. return "string" == typeof s.__STENCIL_DEFAULT_TIMEOUT__ && t.setDefaultTimeout(parseInt(s.__STENCIL_DEFAULT_TIMEOUT__, 10)),
  3537. t;
  3538. }
  3539. async closeOpenPages() {
  3540. await Promise.all(this.pages.map((e => e.close()))), this.pages.length = 0;
  3541. }
  3542. async teardown() {
  3543. await super.teardown(), await this.closeOpenPages(), await async function e(t) {
  3544. if (t) try {
  3545. t.disconnect();
  3546. } catch (e) {}
  3547. }(this.browser), this.browser = null;
  3548. }
  3549. getVmContext() {
  3550. return super.getVmContext();
  3551. }
  3552. };
  3553. }, exports.createTestRunner = function createTestRunner() {
  3554. var e;
  3555. const t = null !== (e = require("jest-runner").default) && void 0 !== e ? e : require("jest-runner");
  3556. return class r extends t {
  3557. async runTests(e, t, r, s, n, o) {
  3558. const i = process.env;
  3559. if (e = e.filter((e => function t(e, r) {
  3560. const s = (e = e.toLowerCase().replace(/\\/g, "/")).includes(".e2e.") || e.includes("/e2e.");
  3561. return !("true" !== r.__STENCIL_E2E_TESTS__ || !s) || "true" === r.__STENCIL_SPEC_TESTS__ && !s;
  3562. }(e.path, i))), "true" === i.__STENCIL_SCREENSHOT__) {
  3563. const a = JSON.parse(i.__STENCIL_EMULATE_CONFIGS__);
  3564. for (let l = 0; l < a.length; l++) setScreenshotEmulateData(a[l], i), await super.runTests(e, t, r, s, n, o);
  3565. } else await super.runTests(e, t, r, s, n, o);
  3566. }
  3567. };
  3568. }, exports.createTesting = async e => {
  3569. e = function t(e) {
  3570. return e.buildEs5 = !1, e.devMode = !0, e.minifyCss = !1, e.minifyJs = !1, e.hashFileNames = !1,
  3571. e.validateTypes = !1, e._isTesting = !0, e.buildDist = !0, e.flags.serve = !1, e.flags.open = !1,
  3572. e.outputTargets.forEach((e => {
  3573. "www" === e.type && (e.serviceWorker = null);
  3574. })), e.flags.args.includes("--watchAll") && (e.watch = !0), e;
  3575. }(e);
  3576. const {createCompiler: r} = require("../compiler/stencil.js"), s = await r(e);
  3577. let n, o;
  3578. const i = async () => {
  3579. const t = [];
  3580. e && (e.sys && e.sys.destroy && t.push(e.sys.destroy()), e = null), n && (n.close && t.push(n.close()),
  3581. n = null), o && (o.close && t.push(o.close()), o = null), await Promise.all(t);
  3582. };
  3583. return {
  3584. destroy: i,
  3585. run: async (t = {}) => {
  3586. let r, a = !1, l = !1, c = null;
  3587. const u = [];
  3588. try {
  3589. if (!t.spec && !t.e2e) return e.logger.error("Testing requires either the --spec or --e2e command line flags, or both. For example, to run unit tests, use the command: stencil test --spec"),
  3590. !1;
  3591. if (r = process.env, t.e2e && (u.push("e2e"), r.__STENCIL_E2E_TESTS__ = "true"),
  3592. t.spec && (u.push("spec"), r.__STENCIL_SPEC_TESTS__ = "true"), e.logger.info(e.logger.magenta(`testing ${u.join(" and ")} files${e.watch ? " (watch)" : ""}`)),
  3593. a = !(!t.e2e || !t.screenshot), a && (r.__STENCIL_SCREENSHOT__ = "true", t.updateScreenshot ? e.logger.info(e.logger.magenta("updating master screenshots")) : e.logger.info(e.logger.magenta("comparing against master screenshots"))),
  3594. t.e2e) {
  3595. let t = null;
  3596. e.outputTargets.forEach((e => {
  3597. e.empty = !1;
  3598. }));
  3599. const a = !(e.flags && !1 === e.flags.build);
  3600. a && e.watch && (c = await s.createWatcher()), a && (c ? (t = new Promise((e => {
  3601. const t = c.on("buildFinish", (r => {
  3602. t(), e(r);
  3603. }));
  3604. })), c.start()) : t = s.build()), e.devServer.openBrowser = !1, e.devServer.gzip = !1,
  3605. e.devServer.reloadStrategy = null;
  3606. const l = await Promise.all([ index_js.start(e.devServer, e.logger), startPuppeteerBrowser(e) ]);
  3607. if (n = l[0], o = l[1], t) {
  3608. const r = await t;
  3609. if (!r || !e.watch && hasError(r && r.diagnostics)) return await i(), !1;
  3610. }
  3611. n && (r.__STENCIL_BROWSER_URL__ = n.browserUrl, e.logger.debug(`e2e dev server url: ${r.__STENCIL_BROWSER_URL__}`),
  3612. r.__STENCIL_APP_SCRIPT_URL__ = function d(e, t) {
  3613. return getAppUrl(e, t, `${e.fsNamespace}.esm.js`);
  3614. }(e, n.browserUrl), e.logger.debug(`e2e app script url: ${r.__STENCIL_APP_SCRIPT_URL__}`),
  3615. getAppStyleUrl(e, n.browserUrl) && (r.__STENCIL_APP_STYLE_URL__ = getAppStyleUrl(e, n.browserUrl),
  3616. e.logger.debug(`e2e app style url: ${r.__STENCIL_APP_STYLE_URL__}`)));
  3617. }
  3618. } catch (t) {
  3619. return e.logger.error(t), !1;
  3620. }
  3621. try {
  3622. l = a ? await async function h(e, t) {
  3623. e.logger.debug(`screenshot connector: ${e.testing.screenshotConnector}`);
  3624. const r = new (require(e.testing.screenshotConnector)), s = path$2.join(e.sys.getCompilerExecutingPath(), "..", "..", "screenshot", "pixel-match.js");
  3625. e.logger.debug(`pixelmatch module: ${s}`);
  3626. const n = e.logger.createTimeSpan("screenshot, initBuild started", !0);
  3627. await r.initBuild({
  3628. buildId: createBuildId(),
  3629. buildMessage: createBuildMessage(),
  3630. buildTimestamp: Date.now(),
  3631. appNamespace: e.namespace,
  3632. rootDir: e.rootDir,
  3633. cacheDir: e.cacheDir,
  3634. packageDir: path$2.join(e.sys.getCompilerExecutingPath(), "..", ".."),
  3635. updateMaster: e.flags.updateScreenshot,
  3636. logger: e.logger,
  3637. allowableMismatchedPixels: e.testing.allowableMismatchedPixels,
  3638. allowableMismatchedRatio: e.testing.allowableMismatchedRatio,
  3639. pixelmatchThreshold: e.testing.pixelmatchThreshold,
  3640. waitBeforeScreenshot: e.testing.waitBeforeScreenshot,
  3641. pixelmatchModulePath: s
  3642. }), e.flags.updateScreenshot || await r.pullMasterBuild(), n.finish("screenshot, initBuild finished");
  3643. const o = await Promise.all([ await r.getMasterBuild(), await r.getScreenshotCache() ]), i = o[0], a = o[1];
  3644. t.__STENCIL_SCREENSHOT_BUILD__ = r.toJson(i, a);
  3645. const l = e.logger.createTimeSpan("screenshot, tests started", !0), c = await runJest(e, t);
  3646. l.finish(`screenshot, tests finished, passed: ${c}`);
  3647. try {
  3648. const t = e.logger.createTimeSpan("screenshot, completeTimespan started", !0);
  3649. let s = await r.completeBuild(i);
  3650. if (t.finish("screenshot, completeTimespan finished"), s) {
  3651. const t = e.logger.createTimeSpan("screenshot, publishBuild started", !0);
  3652. if (s = await r.publishBuild(s), t.finish("screenshot, publishBuild finished"),
  3653. e.flags.updateScreenshot) s.currentBuild && "string" == typeof s.currentBuild.previewUrl && e.logger.info(e.logger.magenta(s.currentBuild.previewUrl)); else if (s.compare) {
  3654. try {
  3655. await r.updateScreenshotCache(a, s);
  3656. } catch (t) {
  3657. e.logger.error(t);
  3658. }
  3659. e.logger.info(`screenshots compared: ${s.compare.diffs.length}`), "string" == typeof s.compare.url && e.logger.info(e.logger.magenta(s.compare.url));
  3660. }
  3661. }
  3662. } catch (t) {
  3663. t instanceof Error ? e.logger.error(t, t.stack) : e.logger.error(t);
  3664. }
  3665. return c;
  3666. }(e, r) : await runJest(e, r), e.logger.info(""), c && await c.close();
  3667. } catch (t) {
  3668. e.logger.error(t);
  3669. }
  3670. return l;
  3671. }
  3672. };
  3673. }, exports.jestPreprocessor = jestPreprocessor, exports.jestSetupTestFramework = function jestSetupTestFramework() {
  3674. global.Context = {}, global.resourcesUrl = "/build", expect.extend(expectExtend),
  3675. expect.addSnapshotSerializer(HtmlSerializer), index_cjs.setupGlobal(global), function e(t) {
  3676. const r = t.window;
  3677. "fetch" in r || (r.fetch = function(e) {
  3678. return globalMockFetch(e);
  3679. }), "fetch" in t || (t.fetch = function(e) {
  3680. return globalMockFetch(e);
  3681. });
  3682. }(global), beforeEach((() => {
  3683. testing.resetPlatform(), testing.setErrorHandler(void 0), resetBuildConditionals(appData.BUILD),
  3684. testing.modeResolutionChain.length = 0;
  3685. })), afterEach((async () => {
  3686. global.__CLOSE_OPEN_PAGES__ && await global.__CLOSE_OPEN_PAGES__(), testing.stopAutoApplyChanges(),
  3687. index_cjs.teardownGlobal(global), global.Context = {}, global.resourcesUrl = "/build";
  3688. }));
  3689. const t = jasmine.getEnv();
  3690. null != t && t.addReporter({
  3691. specStarted: e => {
  3692. global.currentSpec = e;
  3693. }
  3694. }), global.screenshotDescriptions = new Set;
  3695. const r = process.env;
  3696. if ("string" == typeof r.__STENCIL_DEFAULT_TIMEOUT__) {
  3697. const e = parseInt(r.__STENCIL_DEFAULT_TIMEOUT__, 10);
  3698. jest.setTimeout(1.5 * e), jasmine.DEFAULT_TIMEOUT_INTERVAL = e;
  3699. }
  3700. if ("string" == typeof r.__STENCIL_ENV__) {
  3701. const e = JSON.parse(r.__STENCIL_ENV__);
  3702. Object.assign(appData.Env, e);
  3703. }
  3704. }, exports.mockBuildCtx = function mockBuildCtx(e, t) {
  3705. return e || (e = mockConfig()), t || (t = mockCompilerCtx(e)), new BuildContext(e, t);
  3706. }, exports.mockCompilerCtx = mockCompilerCtx, exports.mockCompilerSystem = function mockCompilerSystem() {
  3707. return createTestingSystem();
  3708. }, exports.mockConfig = mockConfig, exports.mockDocument = function mockDocument(e = null) {
  3709. return new index_cjs.MockWindow(e).document;
  3710. }, exports.mockFetch = mockFetch, exports.mockLoadConfigInit = e => ({
  3711. config: {},
  3712. configPath: void 0,
  3713. initTsConfig: !0,
  3714. logger: void 0,
  3715. sys: void 0,
  3716. ...e
  3717. }), exports.mockLogger = mockLogger, exports.mockModule = (e = {}) => ({
  3718. cmps: [],
  3719. coreRuntimeApis: [],
  3720. collectionName: "",
  3721. dtsFilePath: "",
  3722. excludeFromCollection: !1,
  3723. externalImports: [],
  3724. htmlAttrNames: [],
  3725. htmlTagNames: [],
  3726. htmlParts: [],
  3727. isCollectionDependency: !1,
  3728. isLegacy: !1,
  3729. jsFilePath: "",
  3730. localImports: [],
  3731. originalImports: [],
  3732. originalCollectionComponentPath: "",
  3733. potentialCmpRefs: [],
  3734. sourceFilePath: "",
  3735. staticSourceFile: "",
  3736. staticSourceFileText: "",
  3737. sourceMapPath: "",
  3738. sourceMapFileText: "",
  3739. hasVdomAttribute: !1,
  3740. hasVdomClass: !1,
  3741. hasVdomFunctional: !1,
  3742. hasVdomKey: !1,
  3743. hasVdomListener: !1,
  3744. hasVdomPropOrAttr: !1,
  3745. hasVdomRef: !1,
  3746. hasVdomRender: !1,
  3747. hasVdomStyle: !1,
  3748. hasVdomText: !1,
  3749. hasVdomXlink: !1,
  3750. ...e
  3751. }), exports.mockValidatedConfig = function mockValidatedConfig(e = {}) {
  3752. var t;
  3753. const r = mockConfig(e);
  3754. return {
  3755. ...r,
  3756. flags: createConfigFlags(),
  3757. logger: mockLogger(),
  3758. outputTargets: null !== (t = r.outputTargets) && void 0 !== t ? t : [],
  3759. rootDir: path__default.default.resolve("/"),
  3760. sys: createTestingSystem(),
  3761. testing: {},
  3762. ...e
  3763. };
  3764. }, exports.mockWindow = function mockWindow(e = null) {
  3765. return new index_cjs.MockWindow(e);
  3766. }, exports.newE2EPage = async function newE2EPage(e = {}) {
  3767. if (!global.__NEW_TEST_PAGE__) throw new Error("newE2EPage() is only available from E2E tests, and ran with the --e2e cmd line flag.");
  3768. const t = await global.__NEW_TEST_PAGE__(), r = [];
  3769. try {
  3770. t._e2eElements = [], t._e2eGoto = t.goto, t._e2eClose = t.close, await async function s(e) {
  3771. if (e.isClosed()) return;
  3772. const t = env.__STENCIL_EMULATE__;
  3773. if (!t) return;
  3774. const r = JSON.parse(t), s = {
  3775. viewport: r.viewport,
  3776. userAgent: r.userAgent
  3777. };
  3778. await e.emulate(s);
  3779. }(t), await t.setCacheEnabled(!1), await initPageEvents(t), function n(e) {
  3780. const t = process.env;
  3781. "true" === t.__STENCIL_SCREENSHOT__ ? e.compareScreenshot = (r, s) => {
  3782. const n = global;
  3783. let o, i = "", a = "";
  3784. if (n.currentSpec && ("string" == typeof n.currentSpec.fullName && (i = n.currentSpec.fullName),
  3785. "string" == typeof n.currentSpec.testPath && (a = n.currentSpec.testPath)), "string" == typeof r ? (i.length > 0 ? i += ", " + r : i = r,
  3786. "object" == typeof s && (o = s)) : "object" == typeof r && (o = r), i = i.trim(),
  3787. o = o || {}, !i) throw new Error(`Invalid screenshot description in "${a}"`);
  3788. if (n.screenshotDescriptions.has(i)) throw new Error(`Screenshot description "${i}" found in "${a}" cannot be used for multiple screenshots and must be unique. To make screenshot descriptions unique within the same test, use the first argument to "compareScreenshot", such as "compareScreenshot('more to the description')".`);
  3789. return n.screenshotDescriptions.add(i), async function l(e, t, r, s, n) {
  3790. if ("string" != typeof t.__STENCIL_EMULATE__) throw new Error("compareScreenshot, missing screenshot emulate env var");
  3791. if ("string" != typeof t.__STENCIL_SCREENSHOT_BUILD__) throw new Error("compareScreenshot, missing screen build env var");
  3792. const o = JSON.parse(t.__STENCIL_EMULATE__), i = JSON.parse(t.__STENCIL_SCREENSHOT_BUILD__);
  3793. await function a(e) {
  3794. return new Promise((t => setTimeout(t, e)));
  3795. }(i.timeoutBeforeScreenshot), await e.evaluate((() => new Promise((e => {
  3796. window.requestAnimationFrame((() => {
  3797. e();
  3798. }));
  3799. }))));
  3800. const l = function c(e) {
  3801. const t = {
  3802. type: "png",
  3803. fullPage: e.fullPage,
  3804. omitBackground: e.omitBackground,
  3805. encoding: "binary"
  3806. };
  3807. return e.clip && (t.clip = {
  3808. x: e.clip.x,
  3809. y: e.clip.y,
  3810. width: e.clip.width,
  3811. height: e.clip.height
  3812. }), t;
  3813. }(n), u = await e.screenshot(l), d = "number" == typeof n.pixelmatchThreshold ? n.pixelmatchThreshold : i.pixelmatchThreshold;
  3814. let h = o.viewport.width, p = o.viewport.height;
  3815. return n && n.clip && ("number" == typeof n.clip.width && (h = n.clip.width), "number" == typeof n.clip.height && (p = n.clip.height)),
  3816. await compareScreenshot(o, i, u, r, h, p, s, d);
  3817. }(e, t, i, a, o);
  3818. } : e.compareScreenshot = async () => ({
  3819. mismatchedPixels: 0,
  3820. allowableMismatchedPixels: 1,
  3821. allowableMismatchedRatio: 1,
  3822. desc: "",
  3823. width: 1,
  3824. height: 1,
  3825. deviceScaleFactor: 1
  3826. });
  3827. }(t);
  3828. let s = null;
  3829. t.close = async e => {
  3830. try {
  3831. if (Array.isArray(t._e2eElements)) {
  3832. const e = t._e2eElements.map((async e => {
  3833. "function" == typeof e.e2eDispose && await e.e2eDispose();
  3834. }));
  3835. await Promise.all(e);
  3836. }
  3837. } catch (e) {}
  3838. const r = () => {
  3839. throw new Error("The page was already closed");
  3840. };
  3841. t._e2eElements = r, t._e2eEvents = r, t._e2eGoto = r, t.find = r, t.debugger = r,
  3842. t.findAll = r, t.compareScreenshot = r, t.setContent = r, t.spyOnEvent = r, t.waitForChanges = r,
  3843. t.waitForEvent = r;
  3844. try {
  3845. t.isClosed() || await t._e2eClose(e);
  3846. } catch (e) {}
  3847. };
  3848. const n = async () => (s || (s = t.evaluateHandle((() => document))), (await s).asElement());
  3849. t.find = async e => {
  3850. const r = await n();
  3851. return find(t, r, e);
  3852. }, t.findAll = async e => {
  3853. const r = await n();
  3854. return findAll(t, r, e);
  3855. }, t.waitForEvent = async e => {
  3856. const r = await n();
  3857. return waitForEvent(t, e, r);
  3858. }, t.getDiagnostics = () => r, t.waitForChanges = waitForChanges.bind(null, t),
  3859. t.debugger = () => {
  3860. if ("true" !== env.__STENCIL_E2E_DEVTOOLS__) throw new Error("Set the --devtools flag in order to use E2EPage.debugger()");
  3861. return t.evaluate((() => new Promise((e => {
  3862. e();
  3863. }))));
  3864. };
  3865. const o = !0 === e.failOnConsoleError, i = !0 === e.failOnNetworkError;
  3866. t.on("console", (e => {
  3867. if ("error" === e.type() && (r.push({
  3868. type: "error",
  3869. message: e.text(),
  3870. location: e.location().url
  3871. }), o)) throw new Error(serializeConsoleMessage(e));
  3872. !function t(e) {
  3873. const t = serializeConsoleMessage(e), r = e.type(), s = "warning" === r ? "warn" : r;
  3874. "debug" !== s && ("function" == typeof console[s] ? console[s](t) : console.log(r, t));
  3875. }(e);
  3876. })), t.on("pageerror", (e => {
  3877. throw r.push({
  3878. type: "pageerror",
  3879. message: e.message,
  3880. location: e.stack
  3881. }), e;
  3882. })), t.on("requestfailed", (e => {
  3883. if (r.push({
  3884. type: "requestfailed",
  3885. message: e.failure().errorText,
  3886. location: e.url()
  3887. }), i) throw new Error(e.failure().errorText);
  3888. console.error("requestfailed", e.url());
  3889. })), "string" == typeof e.html ? await e2eSetContent(t, e.html, {
  3890. waitUntil: e.waitUntil
  3891. }) : "string" == typeof e.url ? await e2eGoTo(t, e.url, {
  3892. waitUntil: e.waitUntil
  3893. }) : (t.goto = e2eGoTo.bind(null, t), t.setContent = e2eSetContent.bind(null, t));
  3894. } catch (e) {
  3895. throw t && (t.isClosed() || await t.close()), e;
  3896. }
  3897. return t;
  3898. }, exports.newSpecPage = async function newSpecPage(e) {
  3899. if (null == e) throw new Error("NewSpecPageOptions required");
  3900. testing.resetPlatform(), resetBuildConditionals(appData.BUILD), Array.isArray(e.components) && testing.registerComponents(e.components),
  3901. e.hydrateClientSide && (e.includeAnnotations = !0), e.hydrateServerSide ? (e.includeAnnotations = !0,
  3902. testing.setSupportsShadowDom(!1)) : (e.includeAnnotations = !!e.includeAnnotations,
  3903. !1 === e.supportsShadowDom ? testing.setSupportsShadowDom(!1) : testing.setSupportsShadowDom(!0)),
  3904. appData.BUILD.cssAnnotations = e.includeAnnotations;
  3905. const t = new Set;
  3906. testing.win.__stencil_spec_options = e;
  3907. const r = testing.win.document, s = {
  3908. win: testing.win,
  3909. doc: r,
  3910. body: r.body,
  3911. build: appData.BUILD,
  3912. styles: testing.styles,
  3913. setContent: e => (r.body.innerHTML = e, testing.flushAll()),
  3914. waitForChanges: testing.flushAll,
  3915. flushLoadModule: testing.flushLoadModule,
  3916. flushQueue: testing.flushQueue
  3917. }, n = e.components.map((e => {
  3918. if (null == e.COMPILER_META) throw new Error('Invalid component class: Missing static "COMPILER_META" property.');
  3919. t.add(e.COMPILER_META.tagName), e.isProxied = !1, function r(e) {
  3920. var t, r, s, n, o, i;
  3921. "function" == typeof (null === (t = e.prototype) || void 0 === t ? void 0 : t.__componentWillLoad) && (e.prototype.componentWillLoad = e.prototype.__componentWillLoad,
  3922. e.prototype.__componentWillLoad = null), "function" == typeof (null === (r = e.prototype) || void 0 === r ? void 0 : r.__componentWillUpdate) && (e.prototype.componentWillUpdate = e.prototype.__componentWillUpdate,
  3923. e.prototype.__componentWillUpdate = null), "function" == typeof (null === (s = e.prototype) || void 0 === s ? void 0 : s.__componentWillRender) && (e.prototype.componentWillRender = e.prototype.__componentWillRender,
  3924. e.prototype.__componentWillRender = null), "function" == typeof (null === (n = e.prototype) || void 0 === n ? void 0 : n.componentWillLoad) && (e.prototype.__componentWillLoad = e.prototype.componentWillLoad,
  3925. e.prototype.componentWillLoad = function() {
  3926. const e = this.__componentWillLoad();
  3927. return null != e && "function" == typeof e.then ? testing.writeTask((() => e)) : testing.writeTask((() => Promise.resolve())),
  3928. e;
  3929. }), "function" == typeof (null === (o = e.prototype) || void 0 === o ? void 0 : o.componentWillUpdate) && (e.prototype.__componentWillUpdate = e.prototype.componentWillUpdate,
  3930. e.prototype.componentWillUpdate = function() {
  3931. const e = this.__componentWillUpdate();
  3932. return null != e && "function" == typeof e.then ? testing.writeTask((() => e)) : testing.writeTask((() => Promise.resolve())),
  3933. e;
  3934. }), "function" == typeof (null === (i = e.prototype) || void 0 === i ? void 0 : i.componentWillRender) && (e.prototype.__componentWillRender = e.prototype.componentWillRender,
  3935. e.prototype.componentWillRender = function() {
  3936. const e = this.__componentWillRender();
  3937. return null != e && "function" == typeof e.then ? testing.writeTask((() => e)) : testing.writeTask((() => Promise.resolve())),
  3938. e;
  3939. });
  3940. }(e);
  3941. const s = `${e.COMPILER_META.tagName}.${Math.round(899999 * Math.random()) + 1e5}`, n = e.COMPILER_META.styles;
  3942. if (Array.isArray(n)) if (n.length > 1) {
  3943. const t = {};
  3944. n.forEach((e => {
  3945. t[e.modeName] = e.styleStr;
  3946. })), e.style = t;
  3947. } else 1 === n.length && (e.style = n[0].styleStr);
  3948. return testing.registerModule(s, e), ((e, t) => [ e, t.map((e => ((e, t) => {
  3949. let r = 0;
  3950. "shadow" === e.encapsulation ? (r |= 1, e.shadowDelegatesFocus && (r |= 16)) : "scoped" === e.encapsulation && (r |= 2),
  3951. "shadow" !== e.encapsulation && e.htmlTagNames.includes("slot") && (r |= 4), e.hasMode && (r |= 32);
  3952. const s = formatComponentRuntimeMembers(e, t), n = formatHostListeners(e);
  3953. return trimFalsy([ r, e.tagName, Object.keys(s).length > 0 ? s : void 0, n.length > 0 ? n : void 0 ]);
  3954. })(e, !0))) ])(s, [ e.COMPILER_META ]);
  3955. })), o = (e => {
  3956. const t = e.some((e => e.htmlTagNames.includes("slot"))), r = e.some((e => "shadow" === e.encapsulation)), s = e.some((e => "shadow" !== e.encapsulation && e.htmlTagNames.includes("slot"))), n = {
  3957. allRenderFn: e.every((e => e.hasRenderFn)),
  3958. cmpDidLoad: e.some((e => e.hasComponentDidLoadFn)),
  3959. cmpShouldUpdate: e.some((e => e.hasComponentShouldUpdateFn)),
  3960. cmpDidUnload: e.some((e => e.hasComponentDidUnloadFn)),
  3961. cmpDidUpdate: e.some((e => e.hasComponentDidUpdateFn)),
  3962. cmpDidRender: e.some((e => e.hasComponentDidRenderFn)),
  3963. cmpWillLoad: e.some((e => e.hasComponentWillLoadFn)),
  3964. cmpWillUpdate: e.some((e => e.hasComponentWillUpdateFn)),
  3965. cmpWillRender: e.some((e => e.hasComponentWillRenderFn)),
  3966. connectedCallback: e.some((e => e.hasConnectedCallbackFn)),
  3967. disconnectedCallback: e.some((e => e.hasDisconnectedCallbackFn)),
  3968. element: e.some((e => e.hasElement)),
  3969. event: e.some((e => e.hasEvent)),
  3970. hasRenderFn: e.some((e => e.hasRenderFn)),
  3971. lifecycle: e.some((e => e.hasLifecycle)),
  3972. asyncLoading: !1,
  3973. hostListener: e.some((e => e.hasListener)),
  3974. hostListenerTargetWindow: e.some((e => e.hasListenerTargetWindow)),
  3975. hostListenerTargetDocument: e.some((e => e.hasListenerTargetDocument)),
  3976. hostListenerTargetBody: e.some((e => e.hasListenerTargetBody)),
  3977. hostListenerTargetParent: e.some((e => e.hasListenerTargetParent)),
  3978. hostListenerTarget: e.some((e => e.hasListenerTarget)),
  3979. member: e.some((e => e.hasMember)),
  3980. method: e.some((e => e.hasMethod)),
  3981. mode: e.some((e => e.hasMode)),
  3982. observeAttribute: e.some((e => e.hasAttribute)),
  3983. prop: e.some((e => e.hasProp)),
  3984. propBoolean: e.some((e => e.hasPropBoolean)),
  3985. propNumber: e.some((e => e.hasPropNumber)),
  3986. propString: e.some((e => e.hasPropString)),
  3987. propMutable: e.some((e => e.hasPropMutable)),
  3988. reflect: e.some((e => e.hasReflect)),
  3989. scoped: e.some((e => "scoped" === e.encapsulation)),
  3990. shadowDom: r,
  3991. shadowDelegatesFocus: r && e.some((e => e.shadowDelegatesFocus)),
  3992. slot: t,
  3993. slotRelocation: s,
  3994. state: e.some((e => e.hasState)),
  3995. style: e.some((e => e.hasStyle)),
  3996. svg: e.some((e => e.htmlTagNames.includes("svg"))),
  3997. updatable: e.some((e => e.isUpdateable)),
  3998. vdomAttribute: e.some((e => e.hasVdomAttribute)),
  3999. vdomXlink: e.some((e => e.hasVdomXlink)),
  4000. vdomClass: e.some((e => e.hasVdomClass)),
  4001. vdomFunctional: e.some((e => e.hasVdomFunctional)),
  4002. vdomKey: e.some((e => e.hasVdomKey)),
  4003. vdomListener: e.some((e => e.hasVdomListener)),
  4004. vdomPropOrAttr: e.some((e => e.hasVdomPropOrAttr)),
  4005. vdomRef: e.some((e => e.hasVdomRef)),
  4006. vdomRender: e.some((e => e.hasVdomRender)),
  4007. vdomStyle: e.some((e => e.hasVdomStyle)),
  4008. vdomText: e.some((e => e.hasVdomText)),
  4009. watchCallback: e.some((e => e.hasWatchCallback)),
  4010. taskQueue: !0
  4011. };
  4012. return n.asyncLoading = n.cmpWillUpdate || n.cmpWillLoad || n.cmpWillRender, n.vdomAttribute = n.vdomAttribute || n.reflect,
  4013. n.vdomPropOrAttr = n.vdomPropOrAttr || n.reflect, n;
  4014. })(e.components.map((e => e.COMPILER_META)));
  4015. if (e.strictBuild ? Object.assign(appData.BUILD, o) : Object.keys(o).forEach((e => {
  4016. !0 === o[e] && (appData.BUILD[e] = !0);
  4017. })), appData.BUILD.asyncLoading = !0, e.hydrateClientSide ? (appData.BUILD.hydrateClientSide = !0,
  4018. appData.BUILD.hydrateServerSide = !1) : e.hydrateServerSide && (appData.BUILD.hydrateServerSide = !0,
  4019. appData.BUILD.hydrateClientSide = !1), appData.BUILD.cloneNodeFix = !1, appData.BUILD.shadowDomShim = !1,
  4020. appData.BUILD.safari10 = !1, appData.BUILD.attachStyles = !!e.attachStyles, "string" == typeof e.url && (s.win.location.href = e.url),
  4021. "string" == typeof e.direction && s.doc.documentElement.setAttribute("dir", e.direction),
  4022. "string" == typeof e.language && s.doc.documentElement.setAttribute("lang", e.language),
  4023. "string" == typeof e.cookie) try {
  4024. s.doc.cookie = e.cookie;
  4025. } catch (e) {}
  4026. if ("string" == typeof e.referrer) try {
  4027. s.doc.referrer = e.referrer;
  4028. } catch (e) {}
  4029. if ("string" == typeof e.userAgent) try {
  4030. s.win.navigator.userAgent = e.userAgent;
  4031. } catch (e) {}
  4032. if (testing.bootstrapLazy(n), "function" == typeof e.template) {
  4033. const t = {
  4034. $ancestorComponent$: void 0,
  4035. $flags$: 0,
  4036. $modeName$: void 0,
  4037. $cmpMeta$: {
  4038. $flags$: 0,
  4039. $tagName$: "body"
  4040. },
  4041. $hostElement$: s.body
  4042. };
  4043. testing.renderVdom(t, e.template());
  4044. } else "string" == typeof e.html && (s.body.innerHTML = e.html);
  4045. !1 !== e.flushQueue && await s.waitForChanges();
  4046. let i = null;
  4047. return Object.defineProperty(s, "root", {
  4048. get() {
  4049. if (null == i && (i = findRootComponent(t, s.body)), null != i) return i;
  4050. const e = s.body.firstElementChild;
  4051. return null != e ? e : null;
  4052. }
  4053. }), Object.defineProperty(s, "rootInstance", {
  4054. get() {
  4055. const e = testing.getHostRef(s.root);
  4056. return null != e ? e.$lazyInstance$ : null;
  4057. }
  4058. }), e.hydrateServerSide && testing.insertVdomAnnotations(r, []), e.autoApplyChanges && (testing.startAutoApplyChanges(),
  4059. s.waitForChanges = () => (console.error('waitForChanges() cannot be used manually if the "startAutoApplyChanges" option is enabled'),
  4060. Promise.resolve())), s;
  4061. }, exports.shuffleArray = function shuffleArray(e) {
  4062. let t, r, s = e.length;
  4063. for (;0 !== s; ) r = Math.floor(Math.random() * s), s -= 1, t = e[s], e[s] = e[r],
  4064. e[r] = t;
  4065. return e;
  4066. }, exports.transpile = transpile;