@vuepress/plugin-pwa 2.0.0-rc.74 → 2.0.0-rc.77

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2 @@
1
+ import{useLocaleConfig as r}from"@vuepress/helper/client";import{defineComponent as i,shallowRef as c,computed as d,h as t,onMounted as m,Transition as v}from"vue";import{U as f}from"./icons-DQk7h1-3.js";import"./styles/popup.css";import{u as w}from"./usePwaEvent-CUDY9qle.js";const u=a=>{const o=a.waiting;if(!o)return;const s=new MessageChannel;o.postMessage({type:"SKIP_WAITING"},[s.port2])},P=i({name:"PwaReadyPopup",props:{locales:{type:Object,required:!0}},slots:Object,setup(a,{slots:o}){const s=r(a.locales),e=c(),p=d(()=>!!e.value),n=()=>{e.value&&(u(e.value),e.value=void 0)};return m(()=>{w().on("updated",l=>{e.value=l})}),()=>t(v,{name:"popup"},()=>o.default?.({isReady:p.value,reload:n})??(p.value?t("button",{type:"button",class:"sw-update-popup",tabindex:0,onClick:()=>{n()}},[s.value.update,t("span",{class:"icon-wrapper"},t(f))]):null))}});export{P,u as s};
2
+ //# sourceMappingURL=PwaReadyPopup-B5B5_0YO.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PwaReadyPopup-x_4DCmI1.js","sources":["../../src/client/utils/skipWaiting.ts","../../src/client/components/PwaReadyPopup.ts"],"sourcesContent":["/**\n * Call `skipWaiting()` inside current waiting worker\n *\n * 在当前等待中的 Service Worker 中调用 `skipWaiting()`\n */\nexport const skipWaiting = (registration: ServiceWorkerRegistration): void => {\n // Get the waiting worker\n const worker = registration.waiting\n\n // If there is no waiting worker, return directly\n if (!worker) return\n\n // Post SKIP_WAITING message to the waiting worker\n const channel = new MessageChannel()\n\n worker.postMessage({ type: 'SKIP_WAITING' }, [channel.port2])\n}\n","import { useLocaleConfig } from '@vuepress/helper/client'\nimport type { PropType, SlotsType, VNode } from 'vue'\nimport {\n Transition,\n computed,\n defineComponent,\n h,\n onMounted,\n shallowRef,\n} from 'vue'\nimport { usePwaEvent } from '../composables/index.js'\nimport type { PwaPluginLocaleConfig } from '../types.js'\nimport { skipWaiting } from '../utils/index.js'\nimport { UpdateIcon } from './icons.js'\n\nimport '../styles/popup.css'\n\nexport const PwaReadyPopup = defineComponent({\n name: 'PwaReadyPopup',\n\n props: {\n /** locale data */\n locales: {\n type: Object as PropType<PwaPluginLocaleConfig>,\n required: true,\n },\n },\n\n slots: Object as SlotsType<{\n default?: (props: {\n isReady: boolean\n reload: () => void\n }) => VNode | VNode[] | null\n }>,\n\n setup(props, { slots }) {\n const locale = useLocaleConfig(props.locales)\n const registration = shallowRef<ServiceWorkerRegistration>()\n\n const isReady = computed(() => Boolean(registration.value))\n\n const reload = (): void => {\n if (registration.value) {\n skipWaiting(registration.value)\n registration.value = undefined\n }\n }\n\n onMounted(() => {\n const event = usePwaEvent()\n\n event.on('updated', (reg) => {\n registration.value = reg\n })\n })\n\n return (): VNode =>\n h(\n Transition,\n { name: 'popup' },\n () =>\n slots.default?.({\n isReady: isReady.value,\n reload,\n }) ??\n (isReady.value\n ? h(\n 'button',\n {\n type: 'button',\n class: 'sw-update-popup',\n tabindex: 0,\n onClick: () => {\n reload()\n },\n },\n [\n locale.value.update,\n h('span', { class: 'icon-wrapper' }, h(UpdateIcon)),\n ],\n )\n : null),\n )\n },\n})\n"],"names":["skipWaiting","registration","worker","channel","PwaReadyPopup","defineComponent","props","slots","locale","useLocaleConfig","shallowRef","isReady","computed","reload","onMounted","usePwaEvent","reg","h","Transition","UpdateIcon"],"mappings":"qRAKa,MAAAA,EAAeC,GAAkD,CAE5E,MAAMC,EAASD,EAAa,QAG5B,GAAI,CAACC,EAAQ,OAGb,MAAMC,EAAU,IAAI,eAEpBD,EAAO,YAAY,CAAE,KAAM,cAAe,EAAG,CAACC,EAAQ,KAAK,CAAC,CAC9D,ECCaC,EAAgBC,EAAgB,CAC3C,KAAM,gBAEN,MAAO,CAEL,QAAS,CACP,KAAM,OACN,SAAU,EACZ,CACF,EAEA,MAAO,OAOP,MAAMC,EAAO,CAAE,MAAAC,CAAM,EAAG,CACtB,MAAMC,EAASC,EAAgBH,EAAM,OAAO,EACtCL,EAAeS,EAAsC,EAErDC,EAAUC,EAAS,IAAM,CAAQX,CAAAA,EAAa,KAAM,EAEpDY,EAAS,IAAY,CACrBZ,EAAa,QACfD,EAAYC,EAAa,KAAK,EAC9BA,EAAa,MAAQ,OAEzB,EAEA,OAAAa,EAAU,IAAM,CACAC,EAAAA,EAER,GAAG,UAAYC,GAAQ,CAC3Bf,EAAa,MAAQe,CACvB,CAAC,CACH,CAAC,EAEM,IACLC,EACEC,EACA,CAAE,KAAM,OAAQ,EAChB,IACEX,EAAM,UAAU,CACd,QAASI,EAAQ,MACjB,OAAAE,CACF,CAAC,IACAF,EAAQ,MACLM,EACE,SACA,CACE,KAAM,SACN,MAAO,kBACP,SAAU,EACV,QAAS,IAAM,CACbJ,EACF,CAAA,CACF,EACA,CACEL,EAAO,MAAM,OACbS,EAAE,OAAQ,CAAE,MAAO,cAAe,EAAGA,EAAEE,CAAU,CAAC,CACpD,CACF,EACA,KACR,CACJ,CACF,CAAC"}
1
+ {"version":3,"file":"PwaReadyPopup-B5B5_0YO.js","sources":["../../src/client/utils/skipWaiting.ts","../../src/client/components/PwaReadyPopup.ts"],"sourcesContent":["/**\n * Call `skipWaiting()` inside current waiting worker\n *\n * 在当前等待中的 Service Worker 中调用 `skipWaiting()`\n */\nexport const skipWaiting = (registration: ServiceWorkerRegistration): void => {\n // Get the waiting worker\n const worker = registration.waiting\n\n // If there is no waiting worker, return directly\n if (!worker) return\n\n // Post SKIP_WAITING message to the waiting worker\n const channel = new MessageChannel()\n\n worker.postMessage({ type: 'SKIP_WAITING' }, [channel.port2])\n}\n","import { useLocaleConfig } from '@vuepress/helper/client'\nimport type { PropType, SlotsType, VNode } from 'vue'\nimport {\n Transition,\n computed,\n defineComponent,\n h,\n onMounted,\n shallowRef,\n} from 'vue'\nimport { usePwaEvent } from '../composables/index.js'\nimport type { PwaPluginLocaleConfig } from '../types.js'\nimport { skipWaiting } from '../utils/index.js'\nimport { UpdateIcon } from './icons.js'\n\nimport '../styles/popup.css'\n\nexport const PwaReadyPopup = defineComponent({\n name: 'PwaReadyPopup',\n\n props: {\n /** locale data */\n locales: {\n type: Object as PropType<PwaPluginLocaleConfig>,\n required: true,\n },\n },\n\n slots: Object as SlotsType<{\n default?: (props: {\n isReady: boolean\n reload: () => void\n }) => VNode | VNode[] | null\n }>,\n\n setup(props, { slots }) {\n const locale = useLocaleConfig(props.locales)\n const registration = shallowRef<ServiceWorkerRegistration>()\n\n const isReady = computed(() => Boolean(registration.value))\n\n const reload = (): void => {\n if (registration.value) {\n skipWaiting(registration.value)\n registration.value = undefined\n }\n }\n\n onMounted(() => {\n const event = usePwaEvent()\n\n event.on('updated', (reg) => {\n registration.value = reg\n })\n })\n\n return (): VNode =>\n h(\n Transition,\n { name: 'popup' },\n () =>\n slots.default?.({\n isReady: isReady.value,\n reload,\n }) ??\n (isReady.value\n ? h(\n 'button',\n {\n type: 'button',\n class: 'sw-update-popup',\n tabindex: 0,\n onClick: () => {\n reload()\n },\n },\n [\n locale.value.update,\n h('span', { class: 'icon-wrapper' }, h(UpdateIcon)),\n ],\n )\n : null),\n )\n },\n})\n"],"names":["skipWaiting","registration","worker","channel","PwaReadyPopup","defineComponent","props","slots","locale","useLocaleConfig","shallowRef","isReady","computed","reload","onMounted","usePwaEvent","reg","h","Transition","UpdateIcon"],"mappings":"qRAKa,MAAAA,EAAeC,GAAkD,CAE5E,MAAMC,EAASD,EAAa,QAG5B,GAAI,CAACC,EAAQ,OAGb,MAAMC,EAAU,IAAI,eAEpBD,EAAO,YAAY,CAAE,KAAM,cAAe,EAAG,CAACC,EAAQ,KAAK,CAAC,CAC9D,ECCaC,EAAgBC,EAAgB,CAC3C,KAAM,gBAEN,MAAO,CAEL,QAAS,CACP,KAAM,OACN,SAAU,EACZ,CACF,EAEA,MAAO,OAOP,MAAMC,EAAO,CAAE,MAAAC,CAAM,EAAG,CACtB,MAAMC,EAASC,EAAgBH,EAAM,OAAO,EACtCL,EAAeS,EAAsC,EAErDC,EAAUC,EAAS,IAAM,CAAQX,CAAAA,EAAa,KAAM,EAEpDY,EAAS,IAAY,CACrBZ,EAAa,QACfD,EAAYC,EAAa,KAAK,EAC9BA,EAAa,MAAQ,OAEzB,EAEA,OAAAa,EAAU,IAAM,CACAC,EAAAA,EAER,GAAG,UAAYC,GAAQ,CAC3Bf,EAAa,MAAQe,CACvB,CAAC,CACH,CAAC,EAEM,IACLC,EACEC,EACA,CAAE,KAAM,OAAQ,EAChB,IACEX,EAAM,UAAU,CACd,QAASI,EAAQ,MACjB,OAAAE,CACF,CAAC,IACAF,EAAQ,MACLM,EACE,SACA,CACE,KAAM,SACN,MAAO,kBACP,SAAU,EACV,QAAS,IAAM,CACbJ,EACF,CAAA,CACF,EACA,CACEL,EAAO,MAAM,OACbS,EAAE,OAAQ,CAAE,MAAO,cAAe,EAAGA,EAAEE,CAAU,CAAC,CACpD,CACF,EACA,KACR,CACJ,CACF,CAAC"}
@@ -1,2 +1,2 @@
1
- import{useLocaleConfig as s}from"@vuepress/helper/client";import{defineComponent as l,ref as i,onMounted as c,h as o,Transition as d}from"vue";import{U as f}from"../icons-DQk7h1-3.js";import"../styles/popup.css";import{u as m}from"../usePwaEvent-CUDY9qle.js";const v=l({name:"PwaFoundPopup",props:{locales:{type:Object,required:!0}},slots:Object,setup(a,{slots:r}){const u=s(a.locales),e=i(!1),t=()=>{e.value&&(window.location.reload(!0),e.value=!1)};return c(()=>{const n=m();n.on("updatefound",()=>{navigator.serviceWorker.getRegistration().then(p=>{p?.active&&(e.value=!0)})}),n.on("updated",()=>{e.value=!1})}),()=>o(d,{name:"popup"},()=>r.default?.({found:e.value,refresh:t})??(e.value?o("button",{type:"button",class:"sw-hint-popup",tabindex:0,onClick:()=>{t()}},[u.value.hint,o("span",{class:"icon-wrapper"},o(f))]):null))}});export{v as PwaFoundPopup};
1
+ import{useLocaleConfig as s}from"@vuepress/helper/client";import{defineComponent as l,ref as i,h as o,onMounted as c,Transition as d}from"vue";import{U as f}from"../icons-DQk7h1-3.js";import"../styles/popup.css";import{u as m}from"../usePwaEvent-CUDY9qle.js";const v=l({name:"PwaFoundPopup",props:{locales:{type:Object,required:!0}},slots:Object,setup(a,{slots:r}){const u=s(a.locales),e=i(!1),t=()=>{e.value&&(window.location.reload(!0),e.value=!1)};return c(()=>{const n=m();n.on("updatefound",()=>{navigator.serviceWorker.getRegistration().then(p=>{p?.active&&(e.value=!0)})}),n.on("updated",()=>{e.value=!1})}),()=>o(d,{name:"popup"},()=>r.default?.({found:e.value,refresh:t})??(e.value?o("button",{type:"button",class:"sw-hint-popup",tabindex:0,onClick:()=>{t()}},[u.value.hint,o("span",{class:"icon-wrapper"},o(f))]):null))}});export{v as PwaFoundPopup};
2
2
  //# sourceMappingURL=PwaFoundPopup.js.map
@@ -1,2 +1,2 @@
1
- import{useLocaleConfig as h}from"@vuepress/helper/client";import{useEventListener as f,useToggle as C}from"@vueuse/core";import{defineComponent as g,shallowRef as b,onMounted as w,h as e,ref as u,computed as y}from"vue";import{withBase as k}from"vuepress/client";import{C as P,A as S,a as A}from"../icons-DQk7h1-3.js";import"../styles/modal.css";const O=g({name:"PwaInstallModal",props:{locales:{type:Object,required:!0},useHint:Boolean},emits:["canInstall","hint","close"],setup(c,{emit:l}){const o=h(c.locales),t=b({}),n=b(),r=async()=>{const a=localStorage.getItem("manifest");if(a)t.value=JSON.parse(a);else try{const m=await(await fetch(k("manifest.webmanifest"))).json();t.value=m,localStorage.setItem("manifest",JSON.stringify(m))}catch{console.error("[PWA]: Error getting manifest, check that you have a valid web manifest or network connection")}},v=()=>{const a=document.querySelector(".screenshot");a&&a.scrollBy({left:-a.clientWidth,top:0,behavior:"smooth"})},p=()=>{const a=document.querySelector(".screenshot");a&&a.scrollBy({left:a.clientWidth,top:0,behavior:"smooth"})},i=async()=>{n.value&&(n.value.prompt(),document.dispatchEvent(new CustomEvent("show")),(await n.value.userChoice).outcome==="accepted"?(console.info("PWA has been installed"),l("close",!1),l("canInstall",!1)):(console.info("You choose to not install PWA"),l("close",!1),l("canInstall",!1)))},d=()=>{console.info("You accepted the install hint"),l("hint")};return w(()=>{window.hasOwnProperty("BeforeInstallPromptEvent")&&(f(window,"beforeinstallprompt",a=>{n.value=a,l("canInstall",!0),a.preventDefault()}),f("keyup",a=>{a.key==="Escape"&&l("close",!1)}),r())}),()=>e("div",{id:"install-modal-wrapper"},[e("div",{class:"background",onClick:()=>{l("close",!1)}}),e("div",{class:"install-modal"},[e("div",{class:"header"},[e("button",{type:"button",class:"close-button","aria-label":o.value.close,onClick:()=>{l("close",!1)}},e(P)),e("div",{class:"logo"},[t.value.icons?e("img",{src:t.value.icons[0]?.src,alt:"App Logo"}):null,e("div",{class:"title"},[e("h1",t.value.short_name||t.value.name),e("p",{class:"desc"},o.value.explain)])])]),e("div",{class:"content"},[e("div",{class:"highlight"},[t.value.features?e("div",{class:"feature-wrapper"},[e("h3",o.value.feature),e("ul",t.value.features.map(a=>e("li",a)))]):null,t.value.screenshots?e("div",{class:"screenshot-wrapper"},[e("button",{type:"button","aria-label":o.value.prevImage,onClick:v},e(S)),e("section",{class:"screenshot"},[t.value.screenshots.map(a=>e("div",e("img",{src:a.src,alt:"App Screenshot"})))]),e("button",{type:"button","aria-label":o.value.nextImage,onClick:p},e(A))]):null]),e("div",{class:"description"},[e("h3",o.value.desc),e("p",t.value.description)])]),c.useHint?e("div",{class:"ios-text",onClick:d},[e("p",o.value.iOSInstall),e("button",{type:"button",class:"success"},"Got it!")]):e("div",{class:"button-wrapper"},[e("button",{type:"button",class:"install-button",onClick:i},[o.value.install,e("span",t.value.short_name)]),e("button",{type:"button",class:"cancel-button",onClick:()=>{l("close",!1)}},o.value.cancel)])])])}}),x=g({name:"PwaInstall",props:{locales:{type:Object,required:!0}},setup(c){const l=h(c.locales),[o,t]=C(!1),n=u(!1),r=u(!1),v=u(!1),p=u(!1),i=u(!1),d=y(()=>v.value&&p.value&&!i.value),a=y(()=>r.value&&n.value||d.value),m=()=>navigator.standalone?navigator.standalone:matchMedia("(display-mode: standalone)").matches,I=()=>{t(!1),i.value=!0,localStorage.setItem("iOS-pwa-hint","hinted")};return w(()=>{if(m()){const{userAgent:s}=navigator;v.value=s.includes("iPhone")||s.includes("iPad")||!!(s.includes("Macintosh")&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2),p.value=navigator.userAgent.includes("Safari")&&!s.includes("Chrome"),i.value=!!localStorage.getItem("iOS-pwa-hint")}"getInstalledRelatedApps"in navigator&&navigator.getInstalledRelatedApps().then(s=>{r.value=s.length>0})}),()=>e("div",{id:"pwa-install"},[a.value?e("button",{type:"button",class:"modal-button",onClick:()=>{t(!0)}},l.value.install):null,e(O,{style:{display:o.value?"block":"none"},locales:c.locales,useHint:d.value,onCanInstall:s=>{n.value=s},onHint:()=>{I()},onClose:()=>t(!1)})])}});export{x as PwaInstall};
1
+ import{useLocaleConfig as h}from"@vuepress/helper/client";import{useEventListener as f,useToggle as C}from"@vueuse/core";import{defineComponent as g,shallowRef as b,h as e,onMounted as w,ref as u,computed as y}from"vue";import{withBase as k}from"vuepress/client";import{C as P,A as S,a as A}from"../icons-DQk7h1-3.js";import"../styles/modal.css";const O=g({name:"PwaInstallModal",props:{locales:{type:Object,required:!0},useHint:Boolean},emits:["canInstall","hint","close"],setup(c,{emit:l}){const o=h(c.locales),t=b({}),n=b(),r=async()=>{const a=localStorage.getItem("manifest");if(a)t.value=JSON.parse(a);else try{const m=await(await fetch(k("manifest.webmanifest"))).json();t.value=m,localStorage.setItem("manifest",JSON.stringify(m))}catch{console.error("[PWA]: Error getting manifest, check that you have a valid web manifest or network connection")}},v=()=>{const a=document.querySelector(".screenshot");a&&a.scrollBy({left:-a.clientWidth,top:0,behavior:"smooth"})},p=()=>{const a=document.querySelector(".screenshot");a&&a.scrollBy({left:a.clientWidth,top:0,behavior:"smooth"})},i=async()=>{n.value&&(n.value.prompt(),document.dispatchEvent(new CustomEvent("show")),(await n.value.userChoice).outcome==="accepted"?(console.info("PWA has been installed"),l("close",!1),l("canInstall",!1)):(console.info("You choose to not install PWA"),l("close",!1),l("canInstall",!1)))},d=()=>{console.info("You accepted the install hint"),l("hint")};return w(()=>{window.hasOwnProperty("BeforeInstallPromptEvent")&&(f(window,"beforeinstallprompt",a=>{n.value=a,l("canInstall",!0),a.preventDefault()}),f("keyup",a=>{a.key==="Escape"&&l("close",!1)}),r())}),()=>e("div",{id:"install-modal-wrapper"},[e("div",{class:"background",onClick:()=>{l("close",!1)}}),e("div",{class:"install-modal"},[e("div",{class:"header"},[e("button",{type:"button",class:"close-button","aria-label":o.value.close,onClick:()=>{l("close",!1)}},e(P)),e("div",{class:"logo"},[t.value.icons?e("img",{src:t.value.icons[0]?.src,alt:"App Logo"}):null,e("div",{class:"title"},[e("h1",t.value.short_name||t.value.name),e("p",{class:"desc"},o.value.explain)])])]),e("div",{class:"content"},[e("div",{class:"highlight"},[t.value.features?e("div",{class:"feature-wrapper"},[e("h3",o.value.feature),e("ul",t.value.features.map(a=>e("li",a)))]):null,t.value.screenshots?e("div",{class:"screenshot-wrapper"},[e("button",{type:"button","aria-label":o.value.prevImage,onClick:v},e(S)),e("section",{class:"screenshot"},[t.value.screenshots.map(a=>e("div",e("img",{src:a.src,alt:"App Screenshot"})))]),e("button",{type:"button","aria-label":o.value.nextImage,onClick:p},e(A))]):null]),e("div",{class:"description"},[e("h3",o.value.desc),e("p",t.value.description)])]),c.useHint?e("div",{class:"ios-text",onClick:d},[e("p",o.value.iOSInstall),e("button",{type:"button",class:"success"},"Got it!")]):e("div",{class:"button-wrapper"},[e("button",{type:"button",class:"install-button",onClick:i},[o.value.install,e("span",t.value.short_name)]),e("button",{type:"button",class:"cancel-button",onClick:()=>{l("close",!1)}},o.value.cancel)])])])}}),x=g({name:"PwaInstall",props:{locales:{type:Object,required:!0}},setup(c){const l=h(c.locales),[o,t]=C(!1),n=u(!1),r=u(!1),v=u(!1),p=u(!1),i=u(!1),d=y(()=>v.value&&p.value&&!i.value),a=y(()=>r.value&&n.value||d.value),m=()=>navigator.standalone?navigator.standalone:matchMedia("(display-mode: standalone)").matches,I=()=>{t(!1),i.value=!0,localStorage.setItem("iOS-pwa-hint","hinted")};return w(()=>{if(m()){const{userAgent:s}=navigator;v.value=s.includes("iPhone")||s.includes("iPad")||!!(s.includes("Macintosh")&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2),p.value=navigator.userAgent.includes("Safari")&&!s.includes("Chrome"),i.value=!!localStorage.getItem("iOS-pwa-hint")}"getInstalledRelatedApps"in navigator&&navigator.getInstalledRelatedApps().then(s=>{r.value=s.length>0})}),()=>e("div",{id:"pwa-install"},[a.value?e("button",{type:"button",class:"modal-button",onClick:()=>{t(!0)}},l.value.install):null,e(O,{style:{display:o.value?"block":"none"},locales:c.locales,useHint:d.value,onCanInstall:s=>{n.value=s},onHint:()=>{I()},onClose:()=>t(!1)})])}});export{x as PwaInstall};
2
2
  //# sourceMappingURL=PwaInstall.js.map
@@ -1,2 +1,2 @@
1
- import"@vuepress/helper/client";import"vue";import"../icons-DQk7h1-3.js";import"../styles/popup.css";import{P}from"../PwaReadyPopup-x_4DCmI1.js";import"../usePwaEvent-CUDY9qle.js";export{P as PwaReadyPopup};
1
+ import"@vuepress/helper/client";import"vue";import"../icons-DQk7h1-3.js";import"../styles/popup.css";import{P}from"../PwaReadyPopup-B5B5_0YO.js";import"../usePwaEvent-CUDY9qle.js";export{P as PwaReadyPopup};
2
2
  //# sourceMappingURL=PwaReadyPopup.js.map
@@ -1,2 +1,2 @@
1
- import{PwaInstall as c}from"./components/PwaInstall.js";import{PwaFoundPopup as l}from"./components/PwaFoundPopup.js";import{P as W,s as v}from"./PwaReadyPopup-x_4DCmI1.js";import{f as d,r as h,s as k,a as S,u as R}from"./index-DYf0Bvv5.js";import{p as A,u as E}from"./usePwaEvent-CUDY9qle.js";import"@vuepress/helper/client";import"@vueuse/core";import"vue";import"vuepress/client";import"./icons-DQk7h1-3.js";import"./styles/modal.css";import"./styles/popup.css";import"mitt";const t=()=>navigator.serviceWorker.getRegistration().then(e=>e?e.unregister().then(r=>(r&&console.log("[PWA] Current service worker unregistered"),r)):!1).catch(e=>(console.log("[PWA] Unregister current service worker failed with error:",e),!1));export{l as PwaFoundPopup,c as PwaInstall,W as PwaReadyPopup,d as forceUpdate,A as pwaEventSymbol,h as registerSW,k as setupPwa,S as setupViewPoint,v as skipWaiting,t as unregisterSW,E as usePwaEvent,R as useRegisterSW};
1
+ import{PwaInstall as c}from"./components/PwaInstall.js";import{PwaFoundPopup as l}from"./components/PwaFoundPopup.js";import{P as W,s as v}from"./PwaReadyPopup-B5B5_0YO.js";import{f as d,r as h,s as k,a as S,u as R}from"./index-DYf0Bvv5.js";import{p as A,u as E}from"./usePwaEvent-CUDY9qle.js";import"@vuepress/helper/client";import"@vueuse/core";import"vue";import"vuepress/client";import"./icons-DQk7h1-3.js";import"./styles/modal.css";import"./styles/popup.css";import"mitt";const t=()=>navigator.serviceWorker.getRegistration().then(e=>e?e.unregister().then(r=>(r&&console.log("[PWA] Current service worker unregistered"),r)):!1).catch(e=>(console.log("[PWA] Unregister current service worker failed with error:",e),!1));export{l as PwaFoundPopup,c as PwaInstall,W as PwaReadyPopup,d as forceUpdate,A as pwaEventSymbol,h as registerSW,k as setupPwa,S as setupViewPoint,v as skipWaiting,t as unregisterSW,E as usePwaEvent,R as useRegisterSW};
2
2
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vuepress/plugin-pwa",
3
- "version": "2.0.0-rc.74",
3
+ "version": "2.0.0-rc.77",
4
4
  "description": "VuePress plugin - progressive web application",
5
5
  "keywords": [
6
6
  "vuepress-plugin",
@@ -36,8 +36,8 @@
36
36
  "lib"
37
37
  ],
38
38
  "dependencies": {
39
- "@vuepress/helper": "2.0.0-rc.74",
40
- "@vueuse/core": "^12.5.0",
39
+ "@vuepress/helper": "2.0.0-rc.77",
40
+ "@vueuse/core": "^12.7.0",
41
41
  "mitt": "^3.0.1",
42
42
  "register-service-worker": "^1.7.2",
43
43
  "vue": "^3.5.13",
@@ -49,5 +49,5 @@
49
49
  "publishConfig": {
50
50
  "access": "public"
51
51
  },
52
- "gitHead": "6a2f3546c9b16cebf150ef1152b8f4c994a9b0e4"
52
+ "gitHead": "f23e95621ed180e87f9ad41e146b75fea967670b"
53
53
  }
@@ -1,2 +0,0 @@
1
- import{useLocaleConfig as r}from"@vuepress/helper/client";import{defineComponent as i,shallowRef as d,computed as c,onMounted as m,h as a,Transition as f}from"vue";import{U as v}from"./icons-DQk7h1-3.js";import"./styles/popup.css";import{u as w}from"./usePwaEvent-CUDY9qle.js";const u=o=>{const t=o.waiting;if(!t)return;const s=new MessageChannel;t.postMessage({type:"SKIP_WAITING"},[s.port2])},P=i({name:"PwaReadyPopup",props:{locales:{type:Object,required:!0}},slots:Object,setup(o,{slots:t}){const s=r(o.locales),e=d(),n=c(()=>!!e.value),p=()=>{e.value&&(u(e.value),e.value=void 0)};return m(()=>{w().on("updated",l=>{e.value=l})}),()=>a(f,{name:"popup"},()=>t.default?.({isReady:n.value,reload:p})??(n.value?a("button",{type:"button",class:"sw-update-popup",tabindex:0,onClick:()=>{p()}},[s.value.update,a("span",{class:"icon-wrapper"},a(v))]):null))}});export{P,u as s};
2
- //# sourceMappingURL=PwaReadyPopup-x_4DCmI1.js.map