@serwist/next 9.5.7 → 9.5.9
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/dist/chunks/schema-BhRhcBIb.js +22 -0
- package/dist/chunks/schema-BhRhcBIb.js.map +1 -0
- package/dist/index.config.d.mts +50 -0
- package/dist/index.config.d.mts.map +1 -0
- package/dist/index.config.mjs +89 -0
- package/dist/index.config.mjs.map +1 -0
- package/dist/index.d.mts +111 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +242 -0
- package/dist/index.mjs.map +1 -0
- package/dist/index.react.d.mts +41 -0
- package/dist/index.react.d.mts.map +1 -0
- package/dist/index.react.mjs +138 -0
- package/dist/index.react.mjs.map +1 -0
- package/dist/index.schema.d.mts +94 -0
- package/dist/index.schema.d.mts.map +1 -0
- package/dist/index.schema.mjs +2 -0
- package/dist/index.worker.d.mts +18 -0
- package/dist/index.worker.d.mts.map +1 -0
- package/dist/index.worker.mjs +227 -0
- package/dist/index.worker.mjs.map +1 -0
- package/dist/sw-entry-worker.d.mts +11 -0
- package/dist/sw-entry-worker.d.mts.map +1 -0
- package/dist/sw-entry-worker.mjs +25 -0
- package/dist/sw-entry-worker.mjs.map +1 -0
- package/dist/sw-entry.d.mts +9 -0
- package/dist/sw-entry.d.mts.map +1 -0
- package/dist/sw-entry.mjs +37 -0
- package/dist/sw-entry.mjs.map +1 -0
- package/package.json +40 -38
- package/src/index.react.tsx +2 -2
- package/src/index.ts +2 -2
- package/src/lib/config/utils.ts +3 -2
- package/dist/chunks/schema.js +0 -24
- package/dist/index.config.d.ts +0 -36
- package/dist/index.config.d.ts.map +0 -1
- package/dist/index.config.js +0 -118
- package/dist/index.d.ts +0 -13
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -285
- package/dist/index.react.d.ts +0 -25
- package/dist/index.react.d.ts.map +0 -1
- package/dist/index.react.js +0 -88
- package/dist/index.schema.d.ts +0 -3
- package/dist/index.schema.d.ts.map +0 -1
- package/dist/index.schema.js +0 -4
- package/dist/index.worker.d.ts +0 -14
- package/dist/index.worker.d.ts.map +0 -1
- package/dist/index.worker.js +0 -261
- package/dist/internal-types.d.ts +0 -15
- package/dist/internal-types.d.ts.map +0 -1
- package/dist/lib/config/constants.d.ts +0 -2
- package/dist/lib/config/constants.d.ts.map +0 -1
- package/dist/lib/config/types.d.ts +0 -11
- package/dist/lib/config/types.d.ts.map +0 -1
- package/dist/lib/config/utils.d.ts +0 -3
- package/dist/lib/config/utils.d.ts.map +0 -1
- package/dist/lib/context.d.ts +0 -7
- package/dist/lib/context.d.ts.map +0 -1
- package/dist/lib/find-first-truthy.d.ts +0 -8
- package/dist/lib/find-first-truthy.d.ts.map +0 -1
- package/dist/lib/get-content-hash.d.ts +0 -3
- package/dist/lib/get-content-hash.d.ts.map +0 -1
- package/dist/lib/get-file-hash.d.ts +0 -3
- package/dist/lib/get-file-hash.d.ts.map +0 -1
- package/dist/lib/get-package-version.d.ts +0 -7
- package/dist/lib/get-package-version.d.ts.map +0 -1
- package/dist/lib/index.d.ts +0 -7
- package/dist/lib/index.d.ts.map +0 -1
- package/dist/lib/load-tsconfig.d.ts +0 -3
- package/dist/lib/load-tsconfig.d.ts.map +0 -1
- package/dist/lib/logger.d.ts +0 -7
- package/dist/lib/logger.d.ts.map +0 -1
- package/dist/lib/schema.d.ts +0 -90
- package/dist/lib/schema.d.ts.map +0 -1
- package/dist/lib/types.d.ts +0 -95
- package/dist/lib/types.d.ts.map +0 -1
- package/dist/lib/validator.d.ts +0 -3
- package/dist/lib/validator.d.ts.map +0 -1
- package/dist/sw-entry-worker.d.ts +0 -8
- package/dist/sw-entry-worker.d.ts.map +0 -1
- package/dist/sw-entry-worker.js +0 -33
- package/dist/sw-entry.d.ts +0 -7
- package/dist/sw-entry.d.ts.map +0 -1
- package/dist/sw-entry.js +0 -43
- package/dist/utils.d.ts +0 -4
- package/dist/utils.d.ts.map +0 -1
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Serwist } from "@serwist/window";
|
|
2
|
+
import { isCurrentPageOutOfScope } from "@serwist/window/internal";
|
|
3
|
+
//#region src/sw-entry.ts
|
|
4
|
+
if (typeof window !== "undefined" && "serviceWorker" in navigator && typeof caches !== "undefined") {
|
|
5
|
+
const scope = self.__SERWIST_SW_ENTRY.scope;
|
|
6
|
+
let swEntryWorker;
|
|
7
|
+
if (self.__SERWIST_SW_ENTRY.swEntryWorker) swEntryWorker = new Worker(self.__SERWIST_SW_ENTRY.swEntryWorker);
|
|
8
|
+
window.serwist = new Serwist(window.location.origin + self.__SERWIST_SW_ENTRY.sw, { scope });
|
|
9
|
+
if (self.__SERWIST_SW_ENTRY.register && !isCurrentPageOutOfScope(scope)) window.serwist.register();
|
|
10
|
+
if (self.__SERWIST_SW_ENTRY.cacheOnNavigation) {
|
|
11
|
+
const cacheOnNavigation = async (url) => {
|
|
12
|
+
if (!window.navigator.onLine || !url) return;
|
|
13
|
+
swEntryWorker?.postMessage({
|
|
14
|
+
type: "__FRONTEND_NAV_CACHE__",
|
|
15
|
+
url
|
|
16
|
+
});
|
|
17
|
+
};
|
|
18
|
+
const pushState = history.pushState;
|
|
19
|
+
history.pushState = (...args) => {
|
|
20
|
+
pushState.apply(history, args);
|
|
21
|
+
cacheOnNavigation(args[2]);
|
|
22
|
+
};
|
|
23
|
+
const replaceState = history.replaceState;
|
|
24
|
+
history.replaceState = (...args) => {
|
|
25
|
+
replaceState.apply(history, args);
|
|
26
|
+
cacheOnNavigation(args[2]);
|
|
27
|
+
};
|
|
28
|
+
window.addEventListener("online", () => {
|
|
29
|
+
cacheOnNavigation(window.location.pathname);
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
if (self.__SERWIST_SW_ENTRY.reloadOnOnline) window.addEventListener("online", () => location.reload());
|
|
33
|
+
}
|
|
34
|
+
//#endregion
|
|
35
|
+
export {};
|
|
36
|
+
|
|
37
|
+
//# sourceMappingURL=sw-entry.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sw-entry.mjs","names":["Serwist","isCurrentPageOutOfScope","SerwistNextOptions","MessageType","global","Window","serwist","self","globalThis","__SERWIST_SW_ENTRY","window","navigator","caches","scope","swEntryWorker","Worker","location","origin","sw","register","cacheOnNavigation","url","URL","onLine","postMessage","type","pushState","history","args","apply","replaceState","addEventListener","pathname","reloadOnOnline","reload"],"sources":["../src/sw-entry.ts"],"sourcesContent":["import { Serwist } from \"@serwist/window\";\nimport { isCurrentPageOutOfScope } from \"@serwist/window/internal\";\n\nimport type { SerwistNextOptions } from \"./internal-types.js\";\nimport type { MessageType } from \"./sw-entry-worker.js\";\n\ndeclare global {\n interface Window {\n serwist: Serwist;\n }\n}\ndeclare const self: Window &\n typeof globalThis & {\n // Do not dereference this, use its attributes directly or assign them to other variables.\n // You should do the latter if you use an attribute multiple times.\n __SERWIST_SW_ENTRY: SerwistNextOptions;\n };\n\nif (typeof window !== \"undefined\" && \"serviceWorker\" in navigator && typeof caches !== \"undefined\") {\n const scope = self.__SERWIST_SW_ENTRY.scope;\n\n let swEntryWorker: Worker | undefined;\n\n if (self.__SERWIST_SW_ENTRY.swEntryWorker) {\n swEntryWorker = new Worker(self.__SERWIST_SW_ENTRY.swEntryWorker);\n }\n\n window.serwist = new Serwist(window.location.origin + self.__SERWIST_SW_ENTRY.sw, { scope });\n\n if (self.__SERWIST_SW_ENTRY.register && !isCurrentPageOutOfScope(scope)) {\n window.serwist.register();\n }\n\n if (self.__SERWIST_SW_ENTRY.cacheOnNavigation) {\n const cacheOnNavigation = async (url?: string | URL | null | undefined) => {\n if (!window.navigator.onLine || !url) {\n return;\n }\n swEntryWorker?.postMessage({\n type: \"__FRONTEND_NAV_CACHE__\",\n url,\n } satisfies MessageType);\n };\n\n const pushState = history.pushState;\n history.pushState = (...args) => {\n pushState.apply(history, args);\n cacheOnNavigation(args[2]);\n };\n\n const replaceState = history.replaceState;\n history.replaceState = (...args) => {\n replaceState.apply(history, args);\n cacheOnNavigation(args[2]);\n };\n\n window.addEventListener(\"online\", () => {\n cacheOnNavigation(window.location.pathname);\n });\n }\n\n if (self.__SERWIST_SW_ENTRY.reloadOnOnline) {\n window.addEventListener(\"online\", () => location.reload());\n }\n}\n"],"mappings":";;;AAkBA,IAAI,OAAOU,WAAW,eAAe,mBAAmBC,aAAa,OAAOC,WAAW,aAAa;CAClG,MAAMC,QAAQN,KAAKE,mBAAmBI;CAEtC,IAAIC;AAEJ,KAAIP,KAAKE,mBAAmBK,cAC1BA,iBAAgB,IAAIC,OAAOR,KAAKE,mBAAmBK,cAAc;AAGnEJ,QAAOJ,UAAU,IAAIN,QAAQU,OAAOM,SAASC,SAASV,KAAKE,mBAAmBS,IAAI,EAAEL,OAAO,CAAC;AAE5F,KAAIN,KAAKE,mBAAmBU,YAAY,CAAClB,wBAAwBY,MAAM,CACrEH,QAAOJ,QAAQa,UAAU;AAG3B,KAAIZ,KAAKE,mBAAmBW,mBAAmB;EAC7C,MAAMA,oBAAoB,OAAOC,QAA0C;AACzE,OAAI,CAACX,OAAOC,UAAUY,UAAU,CAACF,IAC/B;AAEFP,kBAAeU,YAAY;IACzBC,MAAM;IACNJ;IACD,CAAuB;;EAG1B,MAAMK,YAAYC,QAAQD;AAC1BC,UAAQD,aAAa,GAAGE,SAAS;AAC/BF,aAAUG,MAAMF,SAASC,KAAK;AAC9BR,qBAAkBQ,KAAK,GAAG;;EAG5B,MAAME,eAAeH,QAAQG;AAC7BH,UAAQG,gBAAgB,GAAGF,SAAS;AAClCE,gBAAaD,MAAMF,SAASC,KAAK;AACjCR,qBAAkBQ,KAAK,GAAG;;AAG5BlB,SAAOqB,iBAAiB,gBAAgB;AACtCX,qBAAkBV,OAAOM,SAASgB,SAAS;IAC3C;;AAGJ,KAAIzB,KAAKE,mBAAmBwB,eAC1BvB,QAAOqB,iBAAiB,gBAAgBf,SAASkB,QAAQ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@serwist/next",
|
|
3
|
-
"version": "9.5.
|
|
3
|
+
"version": "9.5.9",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "A module that integrates Serwist into your Next.js application.",
|
|
6
6
|
"files": [
|
|
@@ -28,84 +28,86 @@
|
|
|
28
28
|
"repository": "https://github.com/serwist/serwist",
|
|
29
29
|
"bugs": "https://github.com/serwist/serwist/issues",
|
|
30
30
|
"homepage": "https://serwist.pages.dev",
|
|
31
|
-
"main": "./dist/index.
|
|
32
|
-
"types": "./dist/index.d.
|
|
31
|
+
"main": "./dist/index.mjs",
|
|
32
|
+
"types": "./dist/index.d.mts",
|
|
33
33
|
"typesVersions": {
|
|
34
34
|
"*": {
|
|
35
35
|
"config": [
|
|
36
|
-
"./dist/index.config.d.
|
|
36
|
+
"./dist/index.config.d.mts"
|
|
37
37
|
],
|
|
38
38
|
"react": [
|
|
39
|
-
"./dist/index.react.d.
|
|
39
|
+
"./dist/index.react.d.mts"
|
|
40
40
|
],
|
|
41
41
|
"schema": [
|
|
42
|
-
"./dist/index.schema.d.
|
|
42
|
+
"./dist/index.schema.d.mts"
|
|
43
43
|
],
|
|
44
44
|
"typings": [
|
|
45
|
-
"./dist/sw-entry.d.
|
|
45
|
+
"./dist/sw-entry.d.mts"
|
|
46
46
|
],
|
|
47
47
|
"worker": [
|
|
48
|
-
"./dist/index.worker.d.
|
|
48
|
+
"./dist/index.worker.d.mts"
|
|
49
49
|
]
|
|
50
50
|
}
|
|
51
51
|
},
|
|
52
52
|
"exports": {
|
|
53
53
|
".": {
|
|
54
|
-
"types": "./dist/index.d.
|
|
55
|
-
"default": "./dist/index.
|
|
54
|
+
"types": "./dist/index.d.mts",
|
|
55
|
+
"default": "./dist/index.mjs"
|
|
56
56
|
},
|
|
57
57
|
"./config": {
|
|
58
|
-
"types": "./dist/index.config.d.
|
|
59
|
-
"default": "./dist/index.config.
|
|
58
|
+
"types": "./dist/index.config.d.mts",
|
|
59
|
+
"default": "./dist/index.config.mjs"
|
|
60
60
|
},
|
|
61
61
|
"./react": {
|
|
62
|
-
"types": "./dist/index.react.d.
|
|
63
|
-
"default": "./dist/index.react.
|
|
62
|
+
"types": "./dist/index.react.d.mts",
|
|
63
|
+
"default": "./dist/index.react.mjs"
|
|
64
64
|
},
|
|
65
65
|
"./schema": {
|
|
66
|
-
"types": "./dist/index.schema.d.
|
|
67
|
-
"default": "./dist/index.schema.
|
|
66
|
+
"types": "./dist/index.schema.d.mts",
|
|
67
|
+
"default": "./dist/index.schema.mjs"
|
|
68
68
|
},
|
|
69
69
|
"./typings": {
|
|
70
|
-
"types": "./dist/sw-entry.d.
|
|
70
|
+
"types": "./dist/sw-entry.d.mts"
|
|
71
71
|
},
|
|
72
72
|
"./worker": {
|
|
73
|
-
"types": "./dist/index.worker.d.
|
|
74
|
-
"default": "./dist/index.worker.
|
|
73
|
+
"types": "./dist/index.worker.d.mts",
|
|
74
|
+
"default": "./dist/index.worker.mjs"
|
|
75
75
|
},
|
|
76
76
|
"./package.json": "./package.json"
|
|
77
77
|
},
|
|
78
78
|
"dependencies": {
|
|
79
|
-
"browserslist": "4.28.
|
|
79
|
+
"browserslist": "4.28.2",
|
|
80
80
|
"glob": "10.5.0",
|
|
81
81
|
"kolorist": "1.8.0",
|
|
82
82
|
"semver": "7.7.4",
|
|
83
83
|
"zod": "4.3.6",
|
|
84
|
-
"@serwist/build": "9.5.
|
|
85
|
-
"@serwist/utils": "9.5.
|
|
86
|
-
"@serwist/webpack-plugin": "9.5.
|
|
87
|
-
"@serwist/window": "9.5.
|
|
88
|
-
"serwist": "9.5.
|
|
84
|
+
"@serwist/build": "9.5.9",
|
|
85
|
+
"@serwist/utils": "9.5.9",
|
|
86
|
+
"@serwist/webpack-plugin": "9.5.9",
|
|
87
|
+
"@serwist/window": "9.5.9",
|
|
88
|
+
"serwist": "9.5.9"
|
|
89
89
|
},
|
|
90
90
|
"devDependencies": {
|
|
91
|
-
"@
|
|
91
|
+
"@rolldown/plugin-babel": "0.2.3",
|
|
92
|
+
"@types/node": "25.6.0",
|
|
92
93
|
"@types/react": "19.2.14",
|
|
93
94
|
"@types/semver": "7.7.1",
|
|
94
|
-
"
|
|
95
|
-
"react": "
|
|
96
|
-
"
|
|
97
|
-
"
|
|
98
|
-
"
|
|
99
|
-
"
|
|
100
|
-
"
|
|
101
|
-
"
|
|
102
|
-
"
|
|
95
|
+
"@vitejs/plugin-react": "6.0.1",
|
|
96
|
+
"babel-plugin-react-compiler": "1.0.0",
|
|
97
|
+
"next": "16.2.4",
|
|
98
|
+
"react": "19.2.5",
|
|
99
|
+
"react-dom": "19.2.5",
|
|
100
|
+
"tsdown": "^0.21.10",
|
|
101
|
+
"type-fest": "5.6.0",
|
|
102
|
+
"typescript": "6.0.3",
|
|
103
|
+
"webpack": "5.106.2",
|
|
104
|
+
"@serwist/cli": "9.5.9"
|
|
103
105
|
},
|
|
104
106
|
"peerDependencies": {
|
|
105
107
|
"next": ">=14.0.0",
|
|
106
108
|
"react": ">=18.0.0",
|
|
107
109
|
"typescript": ">=5.0.0",
|
|
108
|
-
"@serwist/cli": "^9.5.
|
|
110
|
+
"@serwist/cli": "^9.5.9"
|
|
109
111
|
},
|
|
110
112
|
"peerDependenciesMeta": {
|
|
111
113
|
"@serwist/cli": {
|
|
@@ -116,8 +118,8 @@
|
|
|
116
118
|
}
|
|
117
119
|
},
|
|
118
120
|
"scripts": {
|
|
119
|
-
"build": "rimraf dist && NODE_ENV=production
|
|
120
|
-
"dev": "
|
|
121
|
+
"build": "rimraf dist && NODE_ENV=production tsdown",
|
|
122
|
+
"dev": "tsdown --watch",
|
|
121
123
|
"lint": "biome lint ./src",
|
|
122
124
|
"typecheck": "tsc"
|
|
123
125
|
}
|
package/src/index.react.tsx
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Serwist } from "@serwist/window";
|
|
2
2
|
import { isCurrentPageOutOfScope } from "@serwist/window/internal";
|
|
3
|
-
import { type ReactNode, useEffect, useState } from "react";
|
|
3
|
+
import { type JSX, type ReactNode, useEffect, useState } from "react";
|
|
4
4
|
import { SerwistContext, useSerwist } from "./lib/context.js";
|
|
5
5
|
|
|
6
6
|
export interface SerwistProviderProps {
|
|
@@ -32,7 +32,7 @@ export function SerwistProvider({
|
|
|
32
32
|
reloadOnOnline = true,
|
|
33
33
|
options,
|
|
34
34
|
children,
|
|
35
|
-
}: SerwistProviderProps) {
|
|
35
|
+
}: SerwistProviderProps): JSX.Element {
|
|
36
36
|
const [serwist] = useState(() => {
|
|
37
37
|
if (typeof window === "undefined") return null;
|
|
38
38
|
if (disable) return null;
|
package/src/index.ts
CHANGED
|
@@ -82,7 +82,7 @@ Follow https://github.com/serwist/serwist/issues/54 for progress on Serwist + Tu
|
|
|
82
82
|
} satisfies Record<`${SerwistNextOptionsKey}.${Exclude<keyof SerwistNextOptions, "swEntryWorker">}`, string | undefined>),
|
|
83
83
|
);
|
|
84
84
|
|
|
85
|
-
const swEntryJs = path.join(dirname, "sw-entry.
|
|
85
|
+
const swEntryJs = path.join(dirname, "sw-entry.mjs");
|
|
86
86
|
const entry = config.entry as () => Promise<Record<string, string[] | string>>;
|
|
87
87
|
config.entry = async () => {
|
|
88
88
|
const entries = await entry();
|
|
@@ -157,7 +157,7 @@ Follow https://github.com/serwist/serwist/issues/54 for progress on Serwist + Tu
|
|
|
157
157
|
let swEntryWorkerDest: string | undefined;
|
|
158
158
|
|
|
159
159
|
if (shouldBuildSWEntryWorker) {
|
|
160
|
-
const swEntryWorkerSrc = path.join(dirname, "sw-entry-worker.
|
|
160
|
+
const swEntryWorkerSrc = path.join(dirname, "sw-entry-worker.mjs");
|
|
161
161
|
const swEntryName = `swe-worker-${getContentHash(swEntryWorkerSrc, dev)}.js`;
|
|
162
162
|
swEntryPublicPath = path.posix.join(basePath, swEntryName);
|
|
163
163
|
swEntryWorkerDest = path.join(destDir, swEntryName);
|
package/src/lib/config/utils.ts
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import { PHASE_DEVELOPMENT_SERVER, PHASE_PRODUCTION_BUILD } from "next/constants.js";
|
|
2
|
+
import type { NextConfigComplete } from "next/dist/server/config-shared.js";
|
|
2
3
|
|
|
3
4
|
import nextConfig = require("next/dist/server/config.js");
|
|
4
5
|
|
|
5
|
-
export const loadNextConfig = (cwd: string, isDev: boolean) => {
|
|
6
|
+
export const loadNextConfig = (cwd: string, isDev: boolean): Promise<NextConfigComplete> => {
|
|
6
7
|
const nextPhase = isDev ? PHASE_DEVELOPMENT_SERVER : PHASE_PRODUCTION_BUILD;
|
|
7
8
|
return nextConfig.default(nextPhase, cwd, {
|
|
8
9
|
silent: false,
|
|
9
10
|
});
|
|
10
11
|
};
|
|
11
12
|
|
|
12
|
-
export const generateGlobPatterns = (distDir: string) => [
|
|
13
|
+
export const generateGlobPatterns = (distDir: string): string[] => [
|
|
13
14
|
`${distDir}static/**/*.{js,css,html,ico,apng,png,avif,jpg,jpeg,jfif,pjpeg,pjp,gif,svg,webp,json,webmanifest}`,
|
|
14
15
|
"public/**/*",
|
|
15
16
|
];
|
package/dist/chunks/schema.js
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { requiredSwDestPartial } from '@serwist/build/schema';
|
|
2
|
-
import { injectManifestOptions as injectManifestOptions$1 } from '@serwist/webpack-plugin/schema';
|
|
3
|
-
import { z } from 'zod';
|
|
4
|
-
|
|
5
|
-
const injectPartial = z.strictObject({
|
|
6
|
-
cacheOnNavigation: z.boolean().default(false),
|
|
7
|
-
disable: z.boolean().default(false),
|
|
8
|
-
register: z.boolean().default(true),
|
|
9
|
-
reloadOnOnline: z.boolean().default(true),
|
|
10
|
-
scope: z.string().optional(),
|
|
11
|
-
swUrl: z.string().default("/sw.js"),
|
|
12
|
-
globPublicPatterns: z.array(z.string()).default([
|
|
13
|
-
"**/*"
|
|
14
|
-
])
|
|
15
|
-
});
|
|
16
|
-
const injectManifestOptions = z.strictObject({
|
|
17
|
-
...injectManifestOptions$1.shape,
|
|
18
|
-
...requiredSwDestPartial.shape,
|
|
19
|
-
...injectPartial.shape
|
|
20
|
-
}).omit({
|
|
21
|
-
disablePrecacheManifest: true
|
|
22
|
-
});
|
|
23
|
-
|
|
24
|
-
export { injectPartial as a, injectManifestOptions as i };
|
package/dist/index.config.d.ts
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import type { BuildOptions } from "@serwist/cli";
|
|
2
|
-
import type { NextConfigComplete } from "next/dist/server/config-shared.js";
|
|
3
|
-
import type { SerwistOptions } from "./lib/config/types.js";
|
|
4
|
-
import { generateGlobPatterns } from "./lib/config/utils.js";
|
|
5
|
-
/**
|
|
6
|
-
* Additional build context.
|
|
7
|
-
*/
|
|
8
|
-
export interface SerwistContext {
|
|
9
|
-
/**
|
|
10
|
-
* The current working directory.
|
|
11
|
-
*/
|
|
12
|
-
cwd?: string;
|
|
13
|
-
/**
|
|
14
|
-
* Whether Serwist is in development mode. This option determines how Next.js configuration
|
|
15
|
-
* is resolved. Note that it doesn't change how the service worker is built.
|
|
16
|
-
*/
|
|
17
|
-
isDev?: boolean;
|
|
18
|
-
}
|
|
19
|
-
export interface Serwist {
|
|
20
|
-
/**
|
|
21
|
-
* Integrates Serwist into your Next.js app.
|
|
22
|
-
* @param options
|
|
23
|
-
* @returns
|
|
24
|
-
*/
|
|
25
|
-
(options: SerwistOptions, nextConfig?: NextConfigComplete, context?: SerwistContext): Promise<BuildOptions>;
|
|
26
|
-
/**
|
|
27
|
-
* Integrates Serwist into your Next.js app. Allows reading fully resolved Next.js configuration.
|
|
28
|
-
* @param optionsFunction
|
|
29
|
-
* @returns
|
|
30
|
-
*/
|
|
31
|
-
withNextConfig: (optionsFunction: (nextConfig: NextConfigComplete) => Promise<SerwistOptions> | SerwistOptions, context?: SerwistContext) => Promise<BuildOptions>;
|
|
32
|
-
}
|
|
33
|
-
export declare const serwist: Serwist;
|
|
34
|
-
export { generateGlobPatterns };
|
|
35
|
-
export type { SerwistOptions };
|
|
36
|
-
//# sourceMappingURL=index.config.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.config.d.ts","sourceRoot":"","sources":["../src/index.config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAIjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAkB,MAAM,uBAAuB,CAAC;AAK7E;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,OAAO;IACtB;;;;OAIG;IACH,CAAC,OAAO,EAAE,cAAc,EAAE,UAAU,CAAC,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAC5G;;;;OAIG;IACH,cAAc,EAAE,CACd,eAAe,EAAE,CAAC,UAAU,EAAE,kBAAkB,KAAK,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc,EAC7F,OAAO,CAAC,EAAE,cAAc,KACrB,OAAO,CAAC,YAAY,CAAC,CAAC;CAC5B;AAED,eAAO,MAAM,OAAO,EAAE,OA6ErB,CAAC;AAOF,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAEhC,YAAY,EAAE,cAAc,EAAE,CAAC"}
|
package/dist/index.config.js
DELETED
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
import fs from 'node:fs';
|
|
2
|
-
import path from 'node:path';
|
|
3
|
-
import { rebasePath } from '@serwist/build';
|
|
4
|
-
import { browserslistToEsbuild } from '@serwist/utils';
|
|
5
|
-
import browserslist from 'browserslist';
|
|
6
|
-
import { PHASE_DEVELOPMENT_SERVER, PHASE_PRODUCTION_BUILD, MODERN_BROWSERSLIST_TARGET } from 'next/constants.js';
|
|
7
|
-
import { createRequire } from 'module';
|
|
8
|
-
|
|
9
|
-
const __require = createRequire(import.meta.url);
|
|
10
|
-
const nextConfig = __require("next/dist/server/config.js");
|
|
11
|
-
const loadNextConfig = (cwd, isDev)=>{
|
|
12
|
-
const nextPhase = isDev ? PHASE_DEVELOPMENT_SERVER : PHASE_PRODUCTION_BUILD;
|
|
13
|
-
return nextConfig.default(nextPhase, cwd, {
|
|
14
|
-
silent: false
|
|
15
|
-
});
|
|
16
|
-
};
|
|
17
|
-
const generateGlobPatterns = (distDir)=>[
|
|
18
|
-
`${distDir}static/**/*.{js,css,html,ico,apng,png,avif,jpg,jpeg,jfif,pjpeg,pjp,gif,svg,webp,json,webmanifest}`,
|
|
19
|
-
"public/**/*"
|
|
20
|
-
];
|
|
21
|
-
|
|
22
|
-
const _cwd = process.cwd();
|
|
23
|
-
const _isDev = process.env.NODE_ENV === "development";
|
|
24
|
-
const serwist = async (options, nextConfig, { cwd = _cwd, isDev = _isDev } = {})=>{
|
|
25
|
-
if (!nextConfig) nextConfig = await loadNextConfig(cwd, isDev);
|
|
26
|
-
const basePath = nextConfig.basePath || "/";
|
|
27
|
-
let distDir = nextConfig.distDir;
|
|
28
|
-
if (distDir[0] === "/") distDir = distDir.slice(1);
|
|
29
|
-
if (distDir[distDir.length - 1] !== "/") distDir += "/";
|
|
30
|
-
const distServerDir = `${distDir}server/`;
|
|
31
|
-
const distAppDir = `${distServerDir}app/`;
|
|
32
|
-
const distPagesDir = `${distServerDir}pages/`;
|
|
33
|
-
const { precachePrerendered = true, globDirectory = cwd, ...cliOptions } = options;
|
|
34
|
-
for (const file of [
|
|
35
|
-
cliOptions.swDest,
|
|
36
|
-
`${cliOptions.swDest}.map`
|
|
37
|
-
]){
|
|
38
|
-
fs.rmSync(file, {
|
|
39
|
-
force: true
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
return {
|
|
43
|
-
dontCacheBustURLsMatching: new RegExp(`^${distDir}static/`),
|
|
44
|
-
disablePrecacheManifest: isDev,
|
|
45
|
-
...cliOptions,
|
|
46
|
-
globDirectory,
|
|
47
|
-
globPatterns: [
|
|
48
|
-
...cliOptions.globPatterns ?? generateGlobPatterns(distDir),
|
|
49
|
-
...precachePrerendered ? [
|
|
50
|
-
`${distServerDir}{app,pages}/**/*.html`
|
|
51
|
-
] : []
|
|
52
|
-
],
|
|
53
|
-
globIgnores: [
|
|
54
|
-
`${distAppDir}**/_not-found.html`,
|
|
55
|
-
`${distAppDir}_global-error*`,
|
|
56
|
-
`${distPagesDir}404.html`,
|
|
57
|
-
`${distPagesDir}500.html`,
|
|
58
|
-
...cliOptions.globIgnores ?? [],
|
|
59
|
-
rebasePath({
|
|
60
|
-
baseDirectory: globDirectory,
|
|
61
|
-
file: cliOptions.swSrc
|
|
62
|
-
}),
|
|
63
|
-
rebasePath({
|
|
64
|
-
baseDirectory: globDirectory,
|
|
65
|
-
file: cliOptions.swDest
|
|
66
|
-
}),
|
|
67
|
-
rebasePath({
|
|
68
|
-
baseDirectory: globDirectory,
|
|
69
|
-
file: `${cliOptions.swDest}.map`
|
|
70
|
-
})
|
|
71
|
-
],
|
|
72
|
-
manifestTransforms: [
|
|
73
|
-
...cliOptions.manifestTransforms ?? [],
|
|
74
|
-
(manifestEntries)=>{
|
|
75
|
-
const manifest = manifestEntries.map((m)=>{
|
|
76
|
-
if (m.url.startsWith(distAppDir)) {
|
|
77
|
-
m.url = m.url.slice(distAppDir.length - 1);
|
|
78
|
-
}
|
|
79
|
-
if (m.url.startsWith(distPagesDir)) {
|
|
80
|
-
m.url = m.url.slice(distPagesDir.length - 1);
|
|
81
|
-
}
|
|
82
|
-
if (m.url.endsWith(".html")) {
|
|
83
|
-
if (m.url.endsWith("/index.html")) {
|
|
84
|
-
m.url = m.url.slice(0, m.url.lastIndexOf("/") + 1);
|
|
85
|
-
} else {
|
|
86
|
-
m.url = m.url.substring(0, m.url.lastIndexOf("."));
|
|
87
|
-
}
|
|
88
|
-
m.url = path.posix.join(basePath, m.url);
|
|
89
|
-
}
|
|
90
|
-
if (m.url.startsWith(distDir)) {
|
|
91
|
-
m.url = `${nextConfig.assetPrefix ?? ""}/_next/${m.url.slice(distDir.length)}`;
|
|
92
|
-
}
|
|
93
|
-
if (m.url.startsWith("public/")) {
|
|
94
|
-
m.url = path.posix.join(basePath, m.url.slice(7));
|
|
95
|
-
}
|
|
96
|
-
return m;
|
|
97
|
-
});
|
|
98
|
-
return {
|
|
99
|
-
manifest,
|
|
100
|
-
warnings: []
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
],
|
|
104
|
-
esbuildOptions: {
|
|
105
|
-
...cliOptions.esbuildOptions,
|
|
106
|
-
target: cliOptions.esbuildOptions?.target ?? browserslistToEsbuild(browserslist, cwd, MODERN_BROWSERSLIST_TARGET)
|
|
107
|
-
}
|
|
108
|
-
};
|
|
109
|
-
};
|
|
110
|
-
serwist.withNextConfig = async (optionsFunction, { cwd = _cwd, isDev = _isDev } = {})=>{
|
|
111
|
-
const nextConfig = await loadNextConfig(cwd, isDev);
|
|
112
|
-
return serwist(await optionsFunction(nextConfig), nextConfig, {
|
|
113
|
-
cwd,
|
|
114
|
-
isDev
|
|
115
|
-
});
|
|
116
|
-
};
|
|
117
|
-
|
|
118
|
-
export { generateGlobPatterns, serwist };
|
package/dist/index.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type { NextConfig } from "next";
|
|
2
|
-
import type { InjectManifestOptions, InjectManifestOptionsComplete } from "./lib/types.js";
|
|
3
|
-
import { validateInjectManifestOptions } from "./lib/validator.js";
|
|
4
|
-
/**
|
|
5
|
-
* Integrates Serwist into your Next.js app.
|
|
6
|
-
* @param userOptions
|
|
7
|
-
* @returns
|
|
8
|
-
*/
|
|
9
|
-
declare const withSerwistInit: (userOptions: InjectManifestOptions) => ((nextConfig?: NextConfig) => NextConfig);
|
|
10
|
-
export default withSerwistInit;
|
|
11
|
-
export { validateInjectManifestOptions };
|
|
12
|
-
export type { InjectManifestOptions as PluginOptions, InjectManifestOptionsComplete as PluginOptionsComplete };
|
|
13
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAIvC,OAAO,KAAK,EAAE,qBAAqB,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAC;AAC3F,OAAO,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AAInE;;;;GAIG;AACH,QAAA,MAAM,eAAe,GAAI,aAAa,qBAAqB,KAAG,CAAC,CAAC,UAAU,CAAC,EAAE,UAAU,KAAK,UAAU,CAuOrG,CAAC;AAEF,eAAe,eAAe,CAAC;AAC/B,OAAO,EAAE,6BAA6B,EAAE,CAAC;AACzC,YAAY,EAAE,qBAAqB,IAAI,aAAa,EAAE,6BAA6B,IAAI,qBAAqB,EAAE,CAAC"}
|