var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
}) : x)(function(x) {
if (typeof require !== "undefined")
return require.apply(this, arguments);
throw new Error('Dynamic require of "' + x + '" is not supported');
});
// src/context.ts
function createContext(userOptions) {
return {
userOptions,
options: void 0,
viteConfig: void 0,
useImportRegister: false,
devEnvironment: false
};
}
// src/constants.ts
var FILE_SW_REGISTER = "registerSW.js";
var VIRTUAL_MODULES_MAP = {
"virtual:pwa-register": "register",
"virtual:pwa-register/vue": "vue",
"virtual:pwa-register/svelte": "svelte",
"virtual:pwa-register/react": "react",
"virtual:pwa-register/preact": "preact",
"virtual:pwa-register/solid": "solid"
};
var VIRTUAL_MODULES_RESOLVE_PREFIX = "/@vite-plugin-pwa/";
var VIRTUAL_MODULES = Object.keys(VIRTUAL_MODULES_MAP);
var defaultInjectManifestVitePlugins = [
"alias",
"commonjs",
"vite:resolve",
"vite:esbuild",
"replace",
"vite:define",
"rollup-plugin-dynamic-import-variables",
"vite:esbuild-transpile",
"vite:json",
"vite:terser"
];
var PWA_INFO_VIRTUAL = "virtual:pwa-info";
var RESOLVED_PWA_INFO_VIRTUAL = `\0${PWA_INFO_VIRTUAL}`;
var DEV_SW_NAME = "dev-sw.js?dev-sw";
var DEV_SW_VIRTUAL = `${VIRTUAL_MODULES_RESOLVE_PREFIX}pwa-entry-point-loaded`;
var RESOLVED_DEV_SW_VIRTUAL = `\0${DEV_SW_VIRTUAL}`;
var DEV_READY_NAME = "vite-pwa-plugin:dev-ready";
var DEV_REGISTER_SW_NAME = "vite-plugin-pwa:register-sw";
// src/html.ts
function generateSimpleSWRegister(options2, dev) {
const path = dev ? `${options2.base}${DEV_SW_NAME}` : `${options2.base}${options2.filename}`;
if (dev) {
const swType = options2.devOptions.type ?? "classic";
return `if('serviceWorker' in navigator) navigator.serviceWorker.register('${path}', { scope: '${options2.scope}', type: '${swType}' })`;
}
return `
if('serviceWorker' in navigator) {
window.addEventListener('load', () => {
navigator.serviceWorker.register('${path}', { scope: '${options2.scope}' })
})
}`.replace(/\n/g, "");
}
function injectServiceWorker(html, options2, dev) {
const manifest = generateWebManifest(options2, dev);
if (!dev) {
const script = generateRegisterSW(options2, dev);
if (script) {
return html.replace(
"",
`${manifest}${script}`
);
}
}
return html.replace(
"",
`${manifest}`
);
}
function generateWebManifest(options2, dev) {
const crossorigin = options2.useCredentials ? ' crossorigin="use-credentials"' : "";
if (dev) {
const name = options2.devOptions.webManifestUrl ?? `${options2.base}${options2.manifestFilename}`;
return options2.manifest ? `` : "";
} else {
return options2.manifest ? `` : "";
}
}
function generateRegisterSW(options2, dev) {
if (options2.injectRegister === "inline")
return `