@swoff/cli 0.3.15 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/lib/commands/generate-guide.js +4 -6
- package/dist/lib/commands/generate-guide.js.map +1 -1
- package/dist/lib/commands/generate.js +6 -5
- package/dist/lib/commands/generate.js.map +1 -1
- package/dist/lib/commands/init.js +13 -38
- package/dist/lib/commands/init.js.map +1 -1
- package/dist/lib/config/minimal-config.js +1 -1
- package/dist/lib/config/minimal-config.js.map +1 -1
- package/dist/lib/config/validator.js +24 -4
- package/dist/lib/config/validator.js.map +1 -1
- package/dist/lib/generators/file-generators/client-injector-bundle.js +1 -1
- package/dist/lib/generators/file-generators/client-injector-bundle.js.map +1 -1
- package/dist/lib/generators/file-generators/context.js +3 -2
- package/dist/lib/generators/file-generators/context.js.map +1 -1
- package/dist/lib/generators/file-generators/generate-framework-adapters.js +1 -1
- package/dist/lib/generators/file-generators/generate-framework-adapters.js.map +1 -1
- package/dist/lib/generators/file-generators/sw-generator-build.js +24 -10
- package/dist/lib/generators/file-generators/sw-generator-build.js.map +1 -1
- package/dist/lib/generators/file-generators/sw-injector.js +1 -0
- package/dist/lib/generators/file-generators/sw-injector.js.map +1 -1
- package/dist/lib/generators/file-generators/sw-template.js +1 -1
- package/dist/lib/generators/sw-build-utils.js +17 -3
- package/dist/lib/generators/sw-build-utils.js.map +1 -1
- package/dist/lib/generators/sw-generator.js +5 -5
- package/dist/lib/generators/sw-generator.js.map +1 -1
- package/dist/lib/generators/sw-sections/activate-handler.js +5 -3
- package/dist/lib/generators/sw-sections/activate-handler.js.map +1 -1
- package/dist/lib/generators/sw-sections/assemble-sw.js +0 -1
- package/dist/lib/generators/sw-sections/assemble-sw.js.map +1 -1
- package/dist/lib/generators/sw-sections/background-precache.js +58 -31
- package/dist/lib/generators/sw-sections/background-precache.js.map +1 -1
- package/dist/lib/generators/sw-sections/default-template.js +7 -3
- package/dist/lib/generators/sw-sections/default-template.js.map +1 -1
- package/dist/lib/generators/sw-sections/fetch-handler.js +1 -0
- package/dist/lib/generators/sw-sections/fetch-handler.js.map +1 -1
- package/dist/lib/generators/sw-sections/message-handler.js +5 -4
- package/dist/lib/generators/sw-sections/message-handler.js.map +1 -1
- package/dist/lib/generators/sw-sections/shared.js +0 -2
- package/dist/lib/generators/sw-sections/shared.js.map +1 -1
- package/dist/lib/generators/swoff-files-generator.js +2 -2
- package/dist/lib/generators/swoff-files-generator.js.map +1 -1
- package/dist/lib/shared/config-types.js +3 -2
- package/dist/lib/shared/config-types.js.map +1 -1
- package/dist/lib/utils/detect-framework.js +3 -27
- package/dist/lib/utils/detect-framework.js.map +1 -1
- package/dist/runtime/client-injector-bundle.js +16 -23
- package/dist/runtime/client-injector-bundle.js.map +1 -1
- package/dist/runtime/client-injector.js +0 -2
- package/dist/runtime/client-injector.js.map +1 -1
- package/dist/runtime/sw-injector.js +6 -19
- package/dist/runtime/sw-injector.js.map +1 -1
- package/dist/runtime/type-definitions.js +0 -5
- package/dist/runtime/type-definitions.js.map +1 -1
- package/package.json +1 -1
- package/templates/react/usePrecacheProgress.jsx +20 -0
- package/templates/react/usePrecacheProgress.tsx +20 -0
- package/dist/lib/generators/sw-sections/install-handler.js +0 -55
- package/dist/lib/generators/sw-sections/install-handler.js.map +0 -1
- package/templates/react/useSWUpdate.jsx +0 -31
- package/templates/react/useSWUpdate.tsx +0 -37
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-types.js","sourceRoot":"","sources":["../../../src/lib/shared/config-types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"config-types.js","sourceRoot":"","sources":["../../../src/lib/shared/config-types.ts"],"names":[],"mappings":"AAkCA,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,WAAW;IACX,iBAAiB;IACjB,oBAAoB;IACpB,gBAAgB;CACR,CAAC;AAkHX,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,cAAc;IACd,eAAe;IACf,MAAM;IACN,SAAS;IACT,mBAAmB;CACX,CAAC;AAEX,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,KAAK;IACL,eAAe;IACf,MAAM;IACN,SAAS;IACT,iBAAiB;IACjB,eAAe;IACf,cAAc;IACd,YAAY;IACZ,cAAc;CACN,CAAC;AAEX,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,aAAa;IACb,eAAe;IACf,wBAAwB;IACxB,YAAY;IACZ,cAAc;IACd,UAAU;CACF,CAAC;AAEX,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AAEhF,MAAM,CAAC,MAAM,WAAW,GAAe;IACrC,OAAO,EAAE,KAAK;IACd,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,SAAS,CAAC;CACxH,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAc;IACnC,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,CAAC,UAAU,CAAC;CACxB,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAwB;IACvD,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,CAAC;IACZ,YAAY,EAAE,CAAC;IACf,cAAc,EAAE,KAAK;IACrB,KAAK,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE;CAC9E,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAuB;IACrD,SAAS,EAAE,CAAC;IACZ,YAAY,EAAE,IAAI;IAClB,KAAK,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE;CAC9E,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAqB;IACvD,OAAO,EAAE,KAAK;IACd,IAAI,EAAE,KAAK;IACX,QAAQ,EAAE,aAAa;IACvB,gBAAgB,EAAE,IAAI;CACvB,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAuB;IACrD,OAAO,EAAE,KAAK;IACd,mBAAmB,EAAE,KAAK;CAC3B,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAA0B;IAC3D,OAAO,EAAE,KAAK;IACd,UAAU,EAAE,CAAC;IACb,YAAY,EAAE,CAAC,GAAG,YAAY,CAAC;IAC/B,QAAQ,EAAE,EAAE;IACZ,eAAe,EAAE,EAAE;IACnB,SAAS,EAAE,EAAE;CACd,CAAC;AAEF,MAAM,UAAU,SAAS,CACvB,IAAO,EACP,QAA8C;IAE9C,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,EAA6B,CAAC;IACtD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,QAAmC,CAAC,EAAE,CAAC;QACnE,MAAM,OAAO,GAAI,IAAgC,CAAC,GAAG,CAAC,CAAC;QACvD,MAAM,WAAW,GAAI,QAAoC,CAAC,GAAG,CAAC,CAAC;QAC/D,IACE,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI;YAC/C,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,KAAK,IAAI;YACvD,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YACvB,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAC3B,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,GAAG,WAAW,IAAI,OAAO,CAAC;QACvC,CAAC;IACH,CAAC;IACD,OAAO,MAAW,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,IAAiB,EACjB,QAA8B;IAE9B,OAAO;QACL,GAAG,IAAI;QACP,GAAG,QAAQ;QACX,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,QAAQ,CAAC,KAAK,EAAE;QAC3C,QAAQ,EAAE;YACR,GAAG,IAAI,CAAC,QAAQ;YAChB,GAAG,QAAQ,CAAC,QAAQ;YACpB,oBAAoB,EAClB,QAAQ,CAAC,QAAQ,EAAE,oBAAoB;gBACvC,IAAI,CAAC,QAAQ,CAAC,oBAAoB;YACpC,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;YACxD,aAAa,EAAE;gBACb,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa;gBAC9B,GAAG,QAAQ,CAAC,QAAQ,EAAE,aAAa;gBACnC,QAAQ,EAAE;oBACR,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ;oBACvC,GAAG,QAAQ,CAAC,QAAQ,EAAE,aAAa,EAAE,QAAQ;oBAC7C,WAAW,EAAE,QAAQ,CAAC,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,EAAE,WAAW,IAAI,CAAC;iBAC/H;gBACD,QAAQ,EAAE;oBACR,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ;oBACvC,GAAG,QAAQ,CAAC,QAAQ,EAAE,aAAa,EAAE,QAAQ;oBAC7C,QAAQ,EAAE;wBACR,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ;wBAChD,GAAG,QAAQ,CAAC,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ;qBACxD;iBACF;gBACD,UAAU,EAAE;oBACV,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,UAAU;oBACzC,GAAG,QAAQ,CAAC,QAAQ,EAAE,aAAa,EAAE,UAAU;iBAChD;aACF;YACD,YAAY,EAAE;gBACZ,GAAG,mBAAmB;gBACtB,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY;gBAC7B,GAAG,QAAQ,CAAC,QAAQ,EAAE,YAAY;aACnC;YACD,aAAa,EAAE;gBACb,GAAG,oBAAoB;gBACvB,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa;gBAC9B,GAAG,QAAQ,CAAC,QAAQ,EAAE,aAAa;aACpC;YACD,IAAI,EAAE;gBACJ,GAAG,WAAW;gBACd,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI;gBACrB,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI;aACb;YACf,OAAO,EAAE;gBACP,GAAG,UAAU;gBACb,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO;gBACxB,GAAG,QAAQ,CAAC,QAAQ,EAAE,OAAO;aAC9B;YACD,YAAY,EAAE;gBACZ,GAAG,mBAAmB;gBACtB,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY;gBAC7B,GAAG,QAAQ,CAAC,QAAQ,EAAE,YAAY;aACnC;YACD,eAAe,EAAE;gBACf,GAAG,sBAAsB;gBACzB,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe;gBAChC,GAAG,QAAQ,CAAC,QAAQ,EAAE,eAAe;aACtC;YACD,iBAAiB,EACf,QAAQ,CAAC,QAAQ,EAAE,iBAAiB;gBACpC,IAAI,CAAC,QAAQ,CAAC,iBAAiB;YACjC,UAAU,EAAE;gBACV,GAAG,uBAAuB;gBAC1B,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU;gBAC3B,GAAG,QAAQ,CAAC,QAAQ,EAAE,UAAU;aACjC;SACF;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAgB;IACxC,KAAK,EAAE;QACL,QAAQ,EAAE,MAAM;QAChB,SAAS,EAAE,OAAO;QAClB,UAAU,EAAE,IAAI;QAChB,YAAY,EAAE,EAAE;KACjB;IACD,QAAQ,EAAE;QACR,oBAAoB,EAAE,EAAE;QACxB,GAAG,EAAE;YACH,OAAO,EAAE,KAAK;YACd,qBAAqB,EAAE,KAAK;SAC7B;QACD,aAAa,EAAE;YACb,YAAY,EAAE,KAAK;YACnB,QAAQ,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE;YAC5B,QAAQ,EAAE;gBACR,OAAO,EAAE,aAAa;gBACtB,kBAAkB,EAAE,OAAO;gBAC3B,YAAY,EAAE,KAAK;gBACnB,iBAAiB,EAAE,EAAE;gBACrB,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,EAAE;gBACZ,QAAQ,EAAE;oBACR,SAAS,EAAE,CAAC;oBACZ,eAAe,EAAE,CAAC;oBAClB,kBAAkB,EAAE,KAAK;oBACzB,cAAc,EAAE,KAAK;iBACtB;aACF;YACD,UAAU,EAAE;gBACV,IAAI,EAAE,KAAK;gBACX,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,EAAE;gBACZ,cAAc,EAAE,EAAE;gBAClB,KAAK,EAAE,EAAE;aACV;SACF;QACD,YAAY,EAAE,EAAE,GAAG,mBAAmB,EAAE;QACxC,aAAa,EAAE,EAAE,GAAG,oBAAoB,EAAE;QAC1C,IAAI,EAAE,EAAE,GAAG,WAAW,EAAE;QACxB,YAAY,EAAE,EAAE,GAAG,mBAAmB,EAAE;QACxC,eAAe,EAAE,EAAE,GAAG,sBAAsB,EAAE;QAC9C,OAAO,EAAE,EAAE,GAAG,UAAU,EAAE;QAC1B,iBAAiB,EAAE,KAAK;QACxB,UAAU,EAAE,EAAE,GAAG,uBAAuB,EAAE;KAC3C;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAE1B;IACF,OAAO,EAAE,0CAA0C;IACnD,SAAS,EAAE,SAAS;IACpB,QAAQ,EAAE;QACR,oBAAoB,EAAE,EAAE;QACxB,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE;QACrD,aAAa,EAAE;YACb,YAAY,EAAE,KAAK;YACnB,QAAQ,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE;YAC5B,UAAU,EAAE;gBACV,IAAI,EAAE,KAAK;gBACX,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,EAAE;gBACZ,cAAc,EAAE,EAAE;gBAClB,KAAK,EAAE,EAAE;aACV;YACD,QAAQ,EAAE;gBACR,OAAO,EAAE,aAAa;gBACtB,kBAAkB,EAAE,OAAO;gBAC3B,YAAY,EAAE,KAAK;gBACnB,iBAAiB,EAAE,EAAE;gBACrB,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE;oBACR,QAAQ,EAAE,eAAe;oBACzB,WAAW,EAAE,aAAa;iBAC3B;gBACD,QAAQ,EAAE;oBACR,SAAS,EAAE,CAAC;oBACZ,eAAe,EAAE,CAAC;oBAClB,kBAAkB,EAAE,KAAK;oBACzB,cAAc,EAAE,KAAK;iBACtB;aACF;SACF;QACD,YAAY,EAAE,EAAE,GAAG,mBAAmB,EAAE;QACxC,aAAa,EAAE,EAAE,GAAG,oBAAoB,EAAE;QAC1C,IAAI,EAAE,EAAE,GAAG,WAAW,EAAE;QACxB,YAAY,EAAE,EAAE,GAAG,mBAAmB,EAAE;QACxC,eAAe,EAAE,EAAE,GAAG,sBAAsB,EAAE;QAC9C,OAAO,EAAE,EAAE,GAAG,UAAU,EAAE;QAC1B,iBAAiB,EAAE,KAAK;QACxB,UAAU,EAAE,EAAE,GAAG,uBAAuB,EAAE;KAC3C;IACD,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE;CACpF,CAAC"}
|
|
@@ -21,32 +21,10 @@ const BASE_FRAMEWORKS = [
|
|
|
21
21
|
["vue", "vue"],
|
|
22
22
|
["svelte", "svelte"],
|
|
23
23
|
];
|
|
24
|
-
function probeBackend(projectRoot) {
|
|
25
|
-
if (existsSync(join(projectRoot, "composer.json")))
|
|
26
|
-
return "laravel";
|
|
27
|
-
if (existsSync(join(projectRoot, "manage.py")))
|
|
28
|
-
return "django";
|
|
29
|
-
if (existsSync(join(projectRoot, "app.py")))
|
|
30
|
-
return "flask";
|
|
31
|
-
const reqPath = join(projectRoot, "requirements.txt");
|
|
32
|
-
if (existsSync(reqPath)) {
|
|
33
|
-
const req = readFileSync(reqPath, "utf8");
|
|
34
|
-
if (/^flask\b/im.test(req))
|
|
35
|
-
return "flask";
|
|
36
|
-
if (/^django\b/im.test(req))
|
|
37
|
-
return "django";
|
|
38
|
-
}
|
|
39
|
-
if (existsSync(join(projectRoot, "Gemfile")))
|
|
40
|
-
return "rails";
|
|
41
|
-
if (existsSync(join(projectRoot, "go.mod")))
|
|
42
|
-
return "go";
|
|
43
|
-
return null;
|
|
44
|
-
}
|
|
45
24
|
export function detectFramework(projectRoot) {
|
|
46
25
|
const pkgPath = join(projectRoot, "package.json");
|
|
47
26
|
if (!existsSync(pkgPath)) {
|
|
48
|
-
|
|
49
|
-
return backend ?? "vanilla";
|
|
27
|
+
return "no-bundler";
|
|
50
28
|
}
|
|
51
29
|
let deps = {};
|
|
52
30
|
let devDeps = {};
|
|
@@ -56,8 +34,7 @@ export function detectFramework(projectRoot) {
|
|
|
56
34
|
devDeps = pkg.devDependencies || {};
|
|
57
35
|
}
|
|
58
36
|
catch {
|
|
59
|
-
|
|
60
|
-
return backend ?? "vanilla";
|
|
37
|
+
return "no-bundler";
|
|
61
38
|
}
|
|
62
39
|
const allDeps = { ...deps, ...devDeps };
|
|
63
40
|
for (const [dep, name] of META_FRAMEWORKS) {
|
|
@@ -70,7 +47,6 @@ export function detectFramework(projectRoot) {
|
|
|
70
47
|
}
|
|
71
48
|
if (REACT_DEPS.some((d) => allDeps[d]))
|
|
72
49
|
return "react-spa";
|
|
73
|
-
|
|
74
|
-
return backend ?? "vanilla";
|
|
50
|
+
return "vanilla";
|
|
75
51
|
}
|
|
76
52
|
//# sourceMappingURL=detect-framework.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detect-framework.js","sourceRoot":"","sources":["../../../src/lib/utils/detect-framework.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,MAAM,UAAU,GAAG;IACjB,OAAO;IACP,WAAW;IACX,kBAAkB;IAClB,wBAAwB;IACxB,OAAO;IACP,kBAAkB;CACnB,CAAC;
|
|
1
|
+
{"version":3,"file":"detect-framework.js","sourceRoot":"","sources":["../../../src/lib/utils/detect-framework.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,MAAM,UAAU,GAAG;IACjB,OAAO;IACP,WAAW;IACX,kBAAkB;IAClB,wBAAwB;IACxB,OAAO;IACP,kBAAkB;CACnB,CAAC;AAeF,MAAM,eAAe,GAA8B;IACjD,CAAC,MAAM,EAAE,QAAQ,CAAC;IAClB,CAAC,kBAAkB,EAAE,OAAO,CAAC;IAC7B,CAAC,OAAO,EAAE,OAAO,CAAC;IAClB,CAAC,uBAAuB,EAAE,sBAAsB,CAAC;IACjD,CAAC,OAAO,EAAE,OAAO,CAAC;IAClB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,eAAe,EAAE,WAAW,CAAC;CAC/B,CAAC;AAEF,MAAM,eAAe,GAA8B;IACjD,CAAC,KAAK,EAAE,KAAK,CAAC;IACd,CAAC,QAAQ,EAAE,QAAQ,CAAC;CACrB,CAAC;AAEF,MAAM,UAAU,eAAe,CAAC,WAAmB;IACjD,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IAClD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACzB,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,IAAI,IAAI,GAA2B,EAAE,CAAC;IACtC,IAAI,OAAO,GAA2B,EAAE,CAAC;IACzC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;QACtD,IAAI,GAAG,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC;QAC9B,OAAO,GAAG,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;IAExC,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,eAAe,EAAE,CAAC;QAC1C,IAAI,OAAO,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;IAChC,CAAC;IAED,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,eAAe,EAAE,CAAC;QAC1C,IAAI,OAAO,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;IAChC,CAAC;IAED,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAAE,OAAO,WAAW,CAAC;IAE3D,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export function generateClientInjectorBundleCode(ctx, autoActivate, swFilename, pwaEnabled, navMode, authEnabled, mutationQueueEnabled) {
|
|
1
|
+
export function generateClientInjectorBundleCode(ctx, autoActivate, swFilename, swUrl, pwaEnabled, navMode, authEnabled, mutationQueueEnabled, connectivityEnabled, tagInvalidationEnabled) {
|
|
2
2
|
const pwaCode = pwaEnabled ? `
|
|
3
3
|
// ── PWA Install Prompt ──
|
|
4
4
|
function setupPwaInstall() {
|
|
@@ -60,33 +60,23 @@ export function generateClientInjectorBundleCode(ctx, autoActivate, swFilename,
|
|
|
60
60
|
return;
|
|
61
61
|
}
|
|
62
62
|
try {
|
|
63
|
-
var registration = await navigator.serviceWorker.register("
|
|
64
|
-
var swReadyDispatched = false;
|
|
63
|
+
var registration = await navigator.serviceWorker.register("${swUrl || '/' + swFilename + '.js'}");
|
|
65
64
|
if (registration.installing) {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
if (registration.waiting) {
|
|
71
|
-
registration.waiting.postMessage({ type: "SKIP_WAITING" });
|
|
72
|
-
}
|
|
65
|
+
registration.installing.addEventListener("statechange", function () {
|
|
66
|
+
if (registration.installing?.state === "installed" && AUTO_ACTIVATE) {
|
|
67
|
+
if (registration.waiting) {
|
|
68
|
+
registration.waiting.postMessage({ type: "SKIP_WAITING" });
|
|
73
69
|
}
|
|
74
|
-
swReadyDispatched = true;
|
|
75
|
-
window.dispatchEvent(new CustomEvent("sw-ready"));
|
|
76
70
|
}
|
|
77
71
|
});
|
|
78
72
|
}
|
|
79
73
|
await waitForController();
|
|
80
|
-
if (!swReadyDispatched) {
|
|
81
|
-
window.dispatchEvent(new CustomEvent("sw-ready"));
|
|
82
|
-
}
|
|
83
74
|
} catch (error) {
|
|
84
75
|
console.error("Service Worker registration failed:", error);
|
|
85
|
-
window.swError = true;
|
|
86
|
-
window.dispatchEvent(new CustomEvent("sw-error"));
|
|
87
76
|
}
|
|
88
77
|
}
|
|
89
78
|
|
|
79
|
+
${connectivityEnabled ? `
|
|
90
80
|
// ── Connectivity ──
|
|
91
81
|
var CONNECTIVITY_EVENT = "app-connectivity-change";
|
|
92
82
|
var heartbeatIntervalId = null;
|
|
@@ -202,8 +192,8 @@ export function generateClientInjectorBundleCode(ctx, autoActivate, swFilename,
|
|
|
202
192
|
} else {
|
|
203
193
|
queueMicrotask(function () { dispatchState(false); });
|
|
204
194
|
}
|
|
205
|
-
}
|
|
206
|
-
|
|
195
|
+
}` : ""}
|
|
196
|
+
${tagInvalidationEnabled ? `
|
|
207
197
|
// ── Focus Listener (reactive strategy) ──
|
|
208
198
|
if (typeof document !== "undefined") {
|
|
209
199
|
document.addEventListener("visibilitychange", function () {
|
|
@@ -211,7 +201,7 @@ export function generateClientInjectorBundleCode(ctx, autoActivate, swFilename,
|
|
|
211
201
|
navigator.serviceWorker.controller.postMessage({ type: "FOCUS" });
|
|
212
202
|
}
|
|
213
203
|
});
|
|
214
|
-
}
|
|
204
|
+
}` : ""}
|
|
215
205
|
${pwaCode}${ssrPrefetch}
|
|
216
206
|
// ── SW Message Listener ──
|
|
217
207
|
if (typeof window !== "undefined" && "serviceWorker" in navigator) {
|
|
@@ -274,17 +264,19 @@ ${authEnabled ? `
|
|
|
274
264
|
}
|
|
275
265
|
})();
|
|
276
266
|
}` : ""}
|
|
267
|
+
${tagInvalidationEnabled ? `
|
|
277
268
|
if (event.data.type === "TAG_INVALIDATED" && event.data.tag) {
|
|
278
269
|
window.dispatchEvent(new CustomEvent("cache-invalidated", {
|
|
279
270
|
detail: { tags: [event.data.tag] },
|
|
280
271
|
}));
|
|
281
|
-
}
|
|
272
|
+
}` : ""}
|
|
282
273
|
});
|
|
283
274
|
}
|
|
284
275
|
|
|
285
276
|
// ── Main Entry ──
|
|
286
277
|
async function initServiceWorker() {
|
|
287
278
|
await registerSW();
|
|
279
|
+
${connectivityEnabled ? `
|
|
288
280
|
var storage = await getStorageEstimate();
|
|
289
281
|
if (storage.percentUsed > 80) {
|
|
290
282
|
window.dispatchEvent(new CustomEvent("swoff:notification", {
|
|
@@ -294,13 +286,14 @@ ${authEnabled ? `
|
|
|
294
286
|
message: "Storage at " + storage.percentUsed + "% capacity (" + formatBytes(storage.usage) + " / " + formatBytes(storage.quota) + ")",
|
|
295
287
|
},
|
|
296
288
|
}));
|
|
297
|
-
}
|
|
289
|
+
}` : ""}
|
|
298
290
|
}
|
|
299
291
|
|
|
292
|
+
${connectivityEnabled ? `
|
|
300
293
|
// ── Bridge for swoff-api-bundle ──
|
|
301
294
|
if (typeof window !== "undefined") {
|
|
302
295
|
window.__SWOFF_FORCE_RETRY = forceRetry;
|
|
303
|
-
}
|
|
296
|
+
}` : ""}
|
|
304
297
|
|
|
305
298
|
// ── Auto-initialize ──
|
|
306
299
|
if (typeof window !== "undefined" && "serviceWorker" in navigator) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-injector-bundle.js","sourceRoot":"","sources":["../../src/runtime/client-injector-bundle.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,gCAAgC,CAC9C,GAAmB,EACnB,YAAqB,EACrB,UAAkB,EAClB,UAAmB,EACnB,OAAgB,EAChB,WAAqB,EACrB,oBAA8B;
|
|
1
|
+
{"version":3,"file":"client-injector-bundle.js","sourceRoot":"","sources":["../../src/runtime/client-injector-bundle.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,gCAAgC,CAC9C,GAAmB,EACnB,YAAqB,EACrB,UAAkB,EAClB,KAAyB,EACzB,UAAmB,EACnB,OAAgB,EAChB,WAAqB,EACrB,oBAA8B,EAC9B,mBAA6B,EAC7B,sBAAgC;IAEhC,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;+FAegE,CAAC,CAAC,CAAC,EAAE,CAAC;IAEnG,MAAM,WAAW,GAAG,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;IAkBtC,CAAC,CAAC,CAAC,EAAE,CAAC;IAER,OAAO;;;;wBAIe,YAAY;;;;;;;;;;;;;;;;;;;;;;mEAsB+B,KAAK,IAAI,GAAG,GAAG,UAAU,GAAG,KAAK;;;;;;;;;;;;;;;;EAgBlG,mBAAmB,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAoHpB,CAAC,CAAC,CAAC,EAAE;EACP,sBAAsB,CAAC,CAAC,CAAC;;;;;;;;IAQvB,CAAC,CAAC,CAAC,EAAE;EACP,OAAO,GAAG,WAAW;;;;;;;;;;;;;;;;;;;;;;;EAuBrB,oBAAoB,CAAC,CAAC,CAAC;;;;;;;;;;;;;;QAcjB,CAAC,CAAC,CAAC,EAAE;EACX,WAAW,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;QAuBR,CAAC,CAAC,CAAC,EAAE;EACX,sBAAsB,CAAC,CAAC,CAAC;;;;;QAKnB,CAAC,CAAC,CAAC,EAAE;;;;;;;EAOX,mBAAmB,CAAC,CAAC,CAAC;;;;;;;;;;MAUlB,CAAC,CAAC,CAAC,EAAE;;;EAGT,mBAAmB,CAAC,CAAC,CAAC;;;;IAIpB,CAAC,CAAC,CAAC,EAAE;;;;;;;;;CASR,CAAC;AACF,CAAC"}
|
|
@@ -153,8 +153,6 @@ if (typeof history !== "undefined") {
|
|
|
153
153
|
*
|
|
154
154
|
* Window events (dispatched by this module):
|
|
155
155
|
* sw-progress - Download progress (detail: { percent, downloaded, total })
|
|
156
|
-
* sw-ready - SW active and controlling page
|
|
157
|
-
* sw-error - SW registration failed
|
|
158
156
|
* cache-invalidated - Cache entries cleared on SW confirmation (detail: { tags })
|
|
159
157
|
* swoff:cache-updated - Background refresh completed (detail: { url })
|
|
160
158
|
* swoff:offline-fallback - Offline fallback page served (detail: { route, fallbackLevel, timestamp })
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-injector.js","sourceRoot":"","sources":["../../src/runtime/client-injector.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,0BAA0B,CACxC,GAAmB,EACnB,UAAmB,EACnB,oBAA6B,EAC7B,iBAA0B,EAC1B,OAAgB,EAChB,WAAqB,EACrB,mBAA6B,EAC7B,sBAAgC;IAEhC,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC;IACxB,MAAM,MAAM,GAAG,OAAO,KAAK,KAAK,IAAI,sBAAsB,CAAC;IAE3D,MAAM,SAAS,GAAG,UAAU;QAC1B,CAAC,CAAC,iDAAiD,GAAG;CACzD;QACG,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,OAAO,GAAG,UAAU;QACxB,CAAC,CAAC,gGAAgG;QAClG,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,UAAU,GAAG,iBAAiB;QAClC,CAAC,CAAC,yDAAyD,GAAG;CACjE;QACG,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,QAAQ,GAAG,iBAAiB;QAChC,CAAC,CAAC,gGAAgG;QAClG,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,cAAc,GAAG,oBAAoB;QACzC,CAAC,CAAC,sEAAsE,GAAG;CAC9E;QACG,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,UAAU,GAAG,WAAW;QAC5B,CAAC,CAAC,kEAAkE,GAAG;CAC1E;QACG,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,aAAa,GAAG,mBAAmB;QACvC,CAAC,CAAC,8DAA8D,GAAG;CACtE;QACG,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,kBAAkB,GAAG,mBAAmB;QAC5C,CAAC,CAAC;;;;;yBAKmB,GAAG;CAC3B;QACG,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,cAAc,GAAG,mBAAmB;QACxC,CAAC,CAAC;;;;;;;;QAQE,oBAAoB,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;CAyB3D;QACG,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,aAAa,GAAG,sBAAsB;QAC1C,CAAC,CAAC;;;;;;;;;;;CAWL;QACG,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,mBAAmB,GAAG,sBAAsB;QAChD,CAAC,CAAC;;;;;;;;CAQL;QACG,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,QAAQ,GAAG,8DAA8D,GAAG;CACnF,CAAC;IAEA,MAAM,kBAAkB,GAAG,MAAM;QAC/B,CAAC,CAAC,+CAA+C,GAAG;CACvD;QACG,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,gBAAgB,GAAG,MAAM;QAC7B,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;CAoBL;QACG,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,WAAW,GAAG,mBAAmB;QACrC,CAAC,CAAC;;;;;;;;;;;;;CAaL;QACG,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO;;;;;;kEAMyD,GAAG
|
|
1
|
+
{"version":3,"file":"client-injector.js","sourceRoot":"","sources":["../../src/runtime/client-injector.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,0BAA0B,CACxC,GAAmB,EACnB,UAAmB,EACnB,oBAA6B,EAC7B,iBAA0B,EAC1B,OAAgB,EAChB,WAAqB,EACrB,mBAA6B,EAC7B,sBAAgC;IAEhC,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC;IACxB,MAAM,MAAM,GAAG,OAAO,KAAK,KAAK,IAAI,sBAAsB,CAAC;IAE3D,MAAM,SAAS,GAAG,UAAU;QAC1B,CAAC,CAAC,iDAAiD,GAAG;CACzD;QACG,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,OAAO,GAAG,UAAU;QACxB,CAAC,CAAC,gGAAgG;QAClG,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,UAAU,GAAG,iBAAiB;QAClC,CAAC,CAAC,yDAAyD,GAAG;CACjE;QACG,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,QAAQ,GAAG,iBAAiB;QAChC,CAAC,CAAC,gGAAgG;QAClG,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,cAAc,GAAG,oBAAoB;QACzC,CAAC,CAAC,sEAAsE,GAAG;CAC9E;QACG,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,UAAU,GAAG,WAAW;QAC5B,CAAC,CAAC,kEAAkE,GAAG;CAC1E;QACG,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,aAAa,GAAG,mBAAmB;QACvC,CAAC,CAAC,8DAA8D,GAAG;CACtE;QACG,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,kBAAkB,GAAG,mBAAmB;QAC5C,CAAC,CAAC;;;;;yBAKmB,GAAG;CAC3B;QACG,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,cAAc,GAAG,mBAAmB;QACxC,CAAC,CAAC;;;;;;;;QAQE,oBAAoB,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;CAyB3D;QACG,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,aAAa,GAAG,sBAAsB;QAC1C,CAAC,CAAC;;;;;;;;;;;CAWL;QACG,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,mBAAmB,GAAG,sBAAsB;QAChD,CAAC,CAAC;;;;;;;;CAQL;QACG,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,QAAQ,GAAG,8DAA8D,GAAG;CACnF,CAAC;IAEA,MAAM,kBAAkB,GAAG,MAAM;QAC/B,CAAC,CAAC,+CAA+C,GAAG;CACvD;QACG,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,gBAAgB,GAAG,MAAM;QAC7B,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;CAoBL;QACG,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,WAAW,GAAG,mBAAmB;QACrC,CAAC,CAAC;;;;;;;;;;;;;CAaL;QACG,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO;;;;;;kEAMyD,GAAG;;;;;;;;;;;;;;;;;;;EAmBnE,SAAS,GAAG,cAAc,GAAG,UAAU,GAAG,QAAQ,GAAG,aAAa,GAAG,kBAAkB,GAAG,UAAU,GAAG,kBAAkB;EACzH,OAAO,GAAG,QAAQ,GAAG,cAAc,GAAG,aAAa,GAAG,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiGjE,mBAAmB;;;;;;;;;;;;;;;;;;;2CAmBiB,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG;mBACpD,WAAW;;CAE7B,CAAC;AACF,CAAC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { R } from "./utils.js";
|
|
2
2
|
export function generateSwInjectorCode(ctx) {
|
|
3
|
-
const { ext, ts, autoActivate, swFilename } = ctx;
|
|
3
|
+
const { ext, ts, autoActivate, swFilename, swUrl } = ctx;
|
|
4
4
|
return `/**
|
|
5
5
|
* Swoff SW Injector
|
|
6
|
-
* Registers the service worker
|
|
6
|
+
* Registers the service worker.
|
|
7
7
|
*
|
|
8
8
|
* Usage:
|
|
9
9
|
* import { initServiceWorker } from './swoff/sw/injector.${ext}';
|
|
@@ -11,8 +11,6 @@ export function generateSwInjectorCode(ctx) {
|
|
|
11
11
|
*
|
|
12
12
|
* Window events:
|
|
13
13
|
* sw-progress - Download progress (detail: { percent, downloaded, total })
|
|
14
|
-
* sw-ready - SW active and controlling page
|
|
15
|
-
* sw-error - SW registration failed
|
|
16
14
|
*/
|
|
17
15
|
const AUTO_ACTIVATE = ${autoActivate};
|
|
18
16
|
|
|
@@ -38,30 +36,19 @@ export async function initServiceWorker()${R(ts, "Promise<void>")}{
|
|
|
38
36
|
}
|
|
39
37
|
|
|
40
38
|
try {
|
|
41
|
-
const registration = await navigator.serviceWorker.register("
|
|
39
|
+
const registration = await navigator.serviceWorker.register("${swUrl || '/' + swFilename + '.js'}");
|
|
42
40
|
|
|
43
|
-
var swReadyDispatched = false;
|
|
44
41
|
if (registration.installing) {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
if (AUTO_ACTIVATE) {
|
|
49
|
-
registration.waiting?.postMessage({ type: "SKIP_WAITING" });
|
|
50
|
-
}
|
|
51
|
-
swReadyDispatched = true;
|
|
52
|
-
window.dispatchEvent(new CustomEvent("sw-ready"));
|
|
42
|
+
registration.installing.addEventListener("statechange", () => {
|
|
43
|
+
if (registration.installing?.state === "installed" && AUTO_ACTIVATE) {
|
|
44
|
+
registration.waiting?.postMessage({ type: "SKIP_WAITING" });
|
|
53
45
|
}
|
|
54
46
|
});
|
|
55
47
|
}
|
|
56
48
|
|
|
57
49
|
await waitForController();
|
|
58
|
-
if (!swReadyDispatched) {
|
|
59
|
-
window.dispatchEvent(new CustomEvent("sw-ready"));
|
|
60
|
-
}
|
|
61
50
|
} catch (error) {
|
|
62
51
|
console.error("Service Worker registration failed:", error);
|
|
63
|
-
window.swError = true;
|
|
64
|
-
window.dispatchEvent(new CustomEvent("sw-error"));
|
|
65
52
|
}
|
|
66
53
|
}
|
|
67
54
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sw-injector.js","sourceRoot":"","sources":["../../src/runtime/sw-injector.ts"],"names":[],"mappings":"AACA,OAAO,EAAK,CAAC,EAAE,MAAM,YAAY,CAAC;AAElC,MAAM,UAAU,sBAAsB,CACpC,
|
|
1
|
+
{"version":3,"file":"sw-injector.js","sourceRoot":"","sources":["../../src/runtime/sw-injector.ts"],"names":[],"mappings":"AACA,OAAO,EAAK,CAAC,EAAE,MAAM,YAAY,CAAC;AAElC,MAAM,UAAU,sBAAsB,CACpC,GAAmF;IAEnF,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC;IAEzD,OAAO;;;;;8DAKqD,GAAG;;;;;;wBAMzC,YAAY;;oCAEA,CAAC,CAAC,EAAE,EAAE,eAAe,CAAC;;;;;;;;;;;;;;;2CAef,CAAC,CAAC,EAAE,EAAE,eAAe,CAAC;;;;;;;mEAOE,KAAK,IAAI,GAAG,GAAG,UAAU,GAAG,KAAK;;;;;;;;;;;;;;;;;qCAiB/D,CAAC,CAAC,EAAE,EAAE,eAAe,CAAC;;;;;;CAM1D,CAAC;AACF,CAAC"}
|
|
@@ -39,9 +39,6 @@ declare global {
|
|
|
39
39
|
interface WindowEventMap {
|
|
40
40
|
beforeinstallprompt: BeforeInstallPromptEvent;
|
|
41
41
|
"sw-progress": CustomEvent<{ percent: number; downloaded: number; total: number }>;
|
|
42
|
-
"sw-ready": CustomEvent;
|
|
43
|
-
"sw-error": CustomEvent;
|
|
44
|
-
"sw-version-detected": CustomEvent;
|
|
45
42
|
"sw-auth-state-change": CustomEvent;
|
|
46
43
|
"mutation-sync-complete": CustomEvent<{ succeeded: number; failed: number }>;
|
|
47
44
|
"mutation-queue-changed": CustomEvent;
|
|
@@ -67,8 +64,6 @@ declare global {
|
|
|
67
64
|
pwaInstallable?: boolean;
|
|
68
65
|
latestSWVersion?: string;
|
|
69
66
|
currentSWVersion?: string;
|
|
70
|
-
swReady?: boolean;
|
|
71
|
-
swError?: boolean;
|
|
72
67
|
swAuthState?: "authenticated" | "unauthenticated" | "loading";
|
|
73
68
|
SyncManager?: { new(): SyncManager };
|
|
74
69
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type-definitions.js","sourceRoot":"","sources":["../../src/runtime/type-definitions.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,2BAA2B;IACzC,OAAO
|
|
1
|
+
{"version":3,"file":"type-definitions.js","sourceRoot":"","sources":["../../src/runtime/type-definitions.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,2BAA2B;IACzC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkIR,CAAC;AACF,CAAC"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { useState, useEffect } from "react";
|
|
2
|
+
|
|
3
|
+
export function usePrecacheProgress() {
|
|
4
|
+
const [state, setState] = useState(() => ({
|
|
5
|
+
status: "idle",
|
|
6
|
+
progress: 0,
|
|
7
|
+
}));
|
|
8
|
+
|
|
9
|
+
useEffect(() => {
|
|
10
|
+
const onProgress = (e) =>
|
|
11
|
+
setState({ status: "installing", progress: e.detail.percent });
|
|
12
|
+
|
|
13
|
+
window.addEventListener("sw-progress", onProgress);
|
|
14
|
+
return () => {
|
|
15
|
+
window.removeEventListener("sw-progress", onProgress);
|
|
16
|
+
};
|
|
17
|
+
}, []);
|
|
18
|
+
|
|
19
|
+
return state;
|
|
20
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { useState, useEffect } from "react";
|
|
2
|
+
|
|
3
|
+
export function usePrecacheProgress() {
|
|
4
|
+
const [state, setState] = useState(() => ({
|
|
5
|
+
status: "idle" as "idle" | "installing",
|
|
6
|
+
progress: 0,
|
|
7
|
+
}));
|
|
8
|
+
|
|
9
|
+
useEffect(() => {
|
|
10
|
+
const onProgress = (e: WindowEventMap["sw-progress"]) =>
|
|
11
|
+
setState({ status: "installing", progress: e.detail.percent });
|
|
12
|
+
|
|
13
|
+
window.addEventListener("sw-progress", onProgress);
|
|
14
|
+
return () => {
|
|
15
|
+
window.removeEventListener("sw-progress", onProgress);
|
|
16
|
+
};
|
|
17
|
+
}, []);
|
|
18
|
+
|
|
19
|
+
return state;
|
|
20
|
+
}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generates the SW install event handler (asset pre-caching with progress).
|
|
3
|
-
* Also exports a reusable precacheAssets() function used by both install and
|
|
4
|
-
* the RESET_CACHE message handler.
|
|
5
|
-
*/
|
|
6
|
-
export function generateInstallHandler() {
|
|
7
|
-
return `
|
|
8
|
-
async function precacheAssets() {
|
|
9
|
-
const cache = await caches.open("precache");
|
|
10
|
-
const stale = await cache.keys();
|
|
11
|
-
await Promise.all(stale.map(function(req) { return cache.delete(req); }));
|
|
12
|
-
let downloaded = 0;
|
|
13
|
-
let attempted = 0;
|
|
14
|
-
const total = PRECACHE_FALLBACKS.length;
|
|
15
|
-
if (total === 0) return;
|
|
16
|
-
const allClients = await self.clients.matchAll({ includeUncontrolled: true });
|
|
17
|
-
for (const url of PRECACHE_FALLBACKS) {
|
|
18
|
-
attempted++;
|
|
19
|
-
try {
|
|
20
|
-
const request = new Request(url);
|
|
21
|
-
await cache.add(request);
|
|
22
|
-
downloaded++;
|
|
23
|
-
} catch (err) {
|
|
24
|
-
console.error(\`Failed to cache \${url}:\`, err);
|
|
25
|
-
allClients.forEach((client) => {
|
|
26
|
-
client.postMessage({
|
|
27
|
-
type: "SW_NOTIFICATION",
|
|
28
|
-
level: "warn",
|
|
29
|
-
code: "PRECACHE_FAILED",
|
|
30
|
-
message: \`Failed to precache \${url}\`,
|
|
31
|
-
});
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
const percent = Math.round((attempted / total) * 100);
|
|
35
|
-
allClients.forEach((client) => {
|
|
36
|
-
client.postMessage({
|
|
37
|
-
type: "SW_PROGRESS",
|
|
38
|
-
percent,
|
|
39
|
-
downloaded,
|
|
40
|
-
total,
|
|
41
|
-
});
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
self.addEventListener("install", (event) => {
|
|
47
|
-
event.waitUntil(
|
|
48
|
-
(async () => {
|
|
49
|
-
await precacheAssets();
|
|
50
|
-
if (AUTO_SKIP_WAITING) self.skipWaiting();
|
|
51
|
-
})(),
|
|
52
|
-
);
|
|
53
|
-
});`;
|
|
54
|
-
}
|
|
55
|
-
//# sourceMappingURL=install-handler.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"install-handler.js","sourceRoot":"","sources":["../../../../src/lib/generators/sw-sections/install-handler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,UAAU,sBAAsB;IACpC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA8CL,CAAC;AACL,CAAC"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { useState, useEffect } from "react";
|
|
2
|
-
|
|
3
|
-
export function useSWUpdate() {
|
|
4
|
-
const [state, setState] = useState(() => ({
|
|
5
|
-
status: "idle",
|
|
6
|
-
progress: 0,
|
|
7
|
-
error: null,
|
|
8
|
-
}));
|
|
9
|
-
|
|
10
|
-
useEffect(() => {
|
|
11
|
-
const onProgress = (e) =>
|
|
12
|
-
setState((s) => ({ ...s, status: "installing", progress: e.detail.percent }));
|
|
13
|
-
|
|
14
|
-
const onReady = () =>
|
|
15
|
-
setState({ status: "idle", progress: 0, error: null });
|
|
16
|
-
|
|
17
|
-
const onError = () =>
|
|
18
|
-
setState({ status: "idle", progress: 0, error: "SW registration failed" });
|
|
19
|
-
|
|
20
|
-
window.addEventListener("sw-progress", onProgress);
|
|
21
|
-
window.addEventListener("sw-ready", onReady);
|
|
22
|
-
window.addEventListener("sw-error", onError);
|
|
23
|
-
return () => {
|
|
24
|
-
window.removeEventListener("sw-progress", onProgress);
|
|
25
|
-
window.removeEventListener("sw-ready", onReady);
|
|
26
|
-
window.removeEventListener("sw-error", onError);
|
|
27
|
-
};
|
|
28
|
-
}, []);
|
|
29
|
-
|
|
30
|
-
return state;
|
|
31
|
-
}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { useState, useEffect } from "react";
|
|
2
|
-
|
|
3
|
-
type UpdateStatus = "idle" | "installing";
|
|
4
|
-
|
|
5
|
-
export function useSWUpdate() {
|
|
6
|
-
const [state, setState] = useState(() => ({
|
|
7
|
-
status: "idle" as UpdateStatus,
|
|
8
|
-
progress: 0,
|
|
9
|
-
error: null as string | null,
|
|
10
|
-
}));
|
|
11
|
-
|
|
12
|
-
useEffect(() => {
|
|
13
|
-
const onProgress = (e: WindowEventMap["sw-progress"]) =>
|
|
14
|
-
setState((s) => ({
|
|
15
|
-
...s,
|
|
16
|
-
status: "installing",
|
|
17
|
-
progress: e.detail.percent,
|
|
18
|
-
}));
|
|
19
|
-
|
|
20
|
-
const onReady = () =>
|
|
21
|
-
setState({ status: "idle", progress: 0, error: null });
|
|
22
|
-
|
|
23
|
-
const onError = () =>
|
|
24
|
-
setState({ status: "idle", progress: 0, error: "SW registration failed" });
|
|
25
|
-
|
|
26
|
-
window.addEventListener("sw-progress", onProgress);
|
|
27
|
-
window.addEventListener("sw-ready", onReady);
|
|
28
|
-
window.addEventListener("sw-error", onError);
|
|
29
|
-
return () => {
|
|
30
|
-
window.removeEventListener("sw-progress", onProgress);
|
|
31
|
-
window.removeEventListener("sw-ready", onReady);
|
|
32
|
-
window.removeEventListener("sw-error", onError);
|
|
33
|
-
};
|
|
34
|
-
}, []);
|
|
35
|
-
|
|
36
|
-
return state;
|
|
37
|
-
}
|