index.js 149 KB

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