@swoff/cli 0.3.14 → 0.3.15
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/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/cli/help.js +3 -3
- package/dist/lib/cli/help.js.map +1 -1
- package/dist/lib/commands/clean.js +8 -17
- package/dist/lib/commands/clean.js.map +1 -1
- package/dist/lib/commands/generate.js +4 -3
- package/dist/lib/commands/generate.js.map +1 -1
- package/dist/lib/commands/init.js +233 -174
- package/dist/lib/commands/init.js.map +1 -1
- package/dist/lib/commands/validate.js.map +1 -1
- package/dist/lib/config/minimal-config.js +64 -0
- package/dist/lib/config/minimal-config.js.map +1 -0
- package/dist/lib/config/validator.js +18 -15
- package/dist/lib/config/validator.js.map +1 -1
- package/dist/lib/generators/file-generators/sw-generator-build.js +11 -5
- package/dist/lib/generators/file-generators/sw-generator-build.js.map +1 -1
- package/dist/lib/generators/sw-sections/activate-handler.js +4 -1
- package/dist/lib/generators/sw-sections/activate-handler.js.map +1 -1
- package/dist/lib/generators/sw-sections/assemble-sw.js +8 -4
- package/dist/lib/generators/sw-sections/assemble-sw.js.map +1 -1
- package/dist/lib/generators/sw-sections/background-precache.js +126 -0
- package/dist/lib/generators/sw-sections/background-precache.js.map +1 -0
- package/dist/lib/generators/sw-sections/default-template.js +6 -2
- package/dist/lib/generators/sw-sections/default-template.js.map +1 -1
- package/dist/lib/generators/sw-sections/fetch-handler.js +2 -2
- package/dist/lib/generators/sw-sections/fetch-handler.js.map +1 -1
- package/dist/lib/generators/sw-sections/install-handler.js +8 -7
- package/dist/lib/generators/sw-sections/install-handler.js.map +1 -1
- package/dist/lib/generators/sw-sections/message-handler.js +9 -0
- package/dist/lib/generators/sw-sections/message-handler.js.map +1 -1
- package/dist/lib/generators/sw-sections/shared.js +2 -0
- package/dist/lib/generators/sw-sections/shared.js.map +1 -1
- package/dist/lib/shared/config-types.js +17 -16
- package/dist/lib/shared/config-types.js.map +1 -1
- package/dist/runtime/client-injector.js +15 -0
- package/dist/runtime/client-injector.js.map +1 -1
- package/package.json +9 -3
- package/dist/lib/commands/add.js +0 -62
- package/dist/lib/commands/add.js.map +0 -1
- package/dist/lib/commands/assets.js +0 -45
- package/dist/lib/commands/assets.js.map +0 -1
- package/dist/lib/commands/generate-assets.js +0 -44
- package/dist/lib/commands/generate-assets.js.map +0 -1
- package/dist/lib/commands/info.js +0 -183
- package/dist/lib/commands/info.js.map +0 -1
- package/dist/lib/generators/asset-generator/dependency-resolver.js +0 -85
- package/dist/lib/generators/asset-generator/dependency-resolver.js.map +0 -1
- package/dist/lib/generators/asset-generator/generate.js +0 -111
- package/dist/lib/generators/asset-generator/generate.js.map +0 -1
- package/dist/lib/generators/asset-generator/guide.js +0 -43
- package/dist/lib/generators/asset-generator/guide.js.map +0 -1
- package/dist/lib/generators/asset-generator/html-patcher.js +0 -65
- package/dist/lib/generators/asset-generator/html-patcher.js.map +0 -1
- package/dist/lib/generators/asset-generator/ico-encoder.js +0 -29
- package/dist/lib/generators/asset-generator/ico-encoder.js.map +0 -1
- package/dist/lib/generators/asset-generator/manifest-patcher.js +0 -23
- package/dist/lib/generators/asset-generator/manifest-patcher.js.map +0 -1
- package/dist/lib/generators/asset-generator/maskable.js +0 -15
- package/dist/lib/generators/asset-generator/maskable.js.map +0 -1
- package/dist/lib/generators/asset-generator/rasterize.js +0 -32
- package/dist/lib/generators/asset-generator/rasterize.js.map +0 -1
- package/dist/lib/generators/asset-generator/sizes.js +0 -25
- package/dist/lib/generators/asset-generator/sizes.js.map +0 -1
- package/dist/lib/generators/file-generators/auth-fetch.js +0 -151
- package/dist/lib/generators/file-generators/auth-fetch.js.map +0 -1
- package/dist/lib/generators/file-generators/auth-user.js +0 -13
- package/dist/lib/generators/file-generators/auth-user.js.map +0 -1
- package/dist/lib/generators/file-generators/connectivity-manager.js +0 -12
- package/dist/lib/generators/file-generators/connectivity-manager.js.map +0 -1
- package/dist/lib/generators/file-generators/fetch-state.js +0 -6
- package/dist/lib/generators/file-generators/fetch-state.js.map +0 -1
- package/dist/lib/generators/file-generators/generate-hooks.js +0 -44
- package/dist/lib/generators/file-generators/generate-hooks.js.map +0 -1
- package/dist/lib/generators/file-generators/indexeddb.js +0 -74
- package/dist/lib/generators/file-generators/indexeddb.js.map +0 -1
- package/dist/lib/generators/file-generators/manifest.js +0 -46
- package/dist/lib/generators/file-generators/manifest.js.map +0 -1
- package/dist/lib/generators/file-generators/mutation-reconcile.js +0 -57
- package/dist/lib/generators/file-generators/mutation-reconcile.js.map +0 -1
- package/dist/lib/generators/file-generators/notification-generator.js +0 -6
- package/dist/lib/generators/file-generators/notification-generator.js.map +0 -1
- package/dist/lib/generators/file-generators/quick-readme.js +0 -21
- package/dist/lib/generators/file-generators/quick-readme.js.map +0 -1
- package/dist/lib/generators/file-generators/reconcile.js +0 -50
- package/dist/lib/generators/file-generators/reconcile.js.map +0 -1
- package/dist/lib/generators/file-generators/storage-generator.js +0 -6
- package/dist/lib/generators/file-generators/storage-generator.js.map +0 -1
- package/dist/lib/generators/file-generators/storage-notify.js +0 -6
- package/dist/lib/generators/file-generators/storage-notify.js.map +0 -1
- package/dist/lib/generators/file-generators/store.js +0 -86
- package/dist/lib/generators/file-generators/store.js.map +0 -1
- package/dist/lib/generators/file-generators/sw-push.js +0 -67
- package/dist/lib/generators/file-generators/sw-push.js.map +0 -1
- package/dist/lib/generators/file-generators/sw-version-gen.js +0 -32
- package/dist/lib/generators/file-generators/sw-version-gen.js.map +0 -1
- package/dist/lib/generators/sw-sections/glob-matcher-code.js.map +0 -1
- package/dist/lib/utils/build-script.js +0 -35
- package/dist/lib/utils/build-script.js.map +0 -1
- package/dist/lib/utils/tty-status.js +0 -21
- package/dist/lib/utils/tty-status.js.map +0 -1
- package/dist/runtime/auth-user.js +0 -154
- package/dist/runtime/auth-user.js.map +0 -1
- package/dist/runtime/connectivity-manager.js +0 -83
- package/dist/runtime/connectivity-manager.js.map +0 -1
- package/dist/runtime/fetch-state.js +0 -42
- package/dist/runtime/fetch-state.js.map +0 -1
- package/dist/runtime/notification.js +0 -65
- package/dist/runtime/notification.js.map +0 -1
- package/dist/runtime/pwa-index.js +0 -11
- package/dist/runtime/pwa-index.js.map +0 -1
- package/dist/runtime/pwa-injector.js +0 -15
- package/dist/runtime/pwa-injector.js.map +0 -1
- package/dist/runtime/pwa-install.js +0 -83
- package/dist/runtime/pwa-install.js.map +0 -1
- package/dist/runtime/sw-version.js +0 -13
- package/dist/runtime/sw-version.js.map +0 -1
- package/dist/swoff-nkdhhmw8. +0 -18
- package/dist/swoff.js +0 -5
|
@@ -7,36 +7,37 @@ export function generateInstallHandler() {
|
|
|
7
7
|
return `
|
|
8
8
|
async function precacheAssets() {
|
|
9
9
|
const cache = await caches.open("precache");
|
|
10
|
-
// Clear stale entries from previous builds before repopulating
|
|
11
10
|
const stale = await cache.keys();
|
|
12
11
|
await Promise.all(stale.map(function(req) { return cache.delete(req); }));
|
|
13
12
|
let downloaded = 0;
|
|
14
13
|
let attempted = 0;
|
|
14
|
+
const total = PRECACHE_FALLBACKS.length;
|
|
15
|
+
if (total === 0) return;
|
|
15
16
|
const allClients = await self.clients.matchAll({ includeUncontrolled: true });
|
|
16
|
-
for (const
|
|
17
|
+
for (const url of PRECACHE_FALLBACKS) {
|
|
17
18
|
attempted++;
|
|
18
19
|
try {
|
|
19
|
-
const request = new Request(
|
|
20
|
+
const request = new Request(url);
|
|
20
21
|
await cache.add(request);
|
|
21
22
|
downloaded++;
|
|
22
23
|
} catch (err) {
|
|
23
|
-
console.error(\`Failed to cache \${
|
|
24
|
+
console.error(\`Failed to cache \${url}:\`, err);
|
|
24
25
|
allClients.forEach((client) => {
|
|
25
26
|
client.postMessage({
|
|
26
27
|
type: "SW_NOTIFICATION",
|
|
27
28
|
level: "warn",
|
|
28
29
|
code: "PRECACHE_FAILED",
|
|
29
|
-
message: \`Failed to precache \${
|
|
30
|
+
message: \`Failed to precache \${url}\`,
|
|
30
31
|
});
|
|
31
32
|
});
|
|
32
33
|
}
|
|
33
|
-
const percent = Math.round((attempted /
|
|
34
|
+
const percent = Math.round((attempted / total) * 100);
|
|
34
35
|
allClients.forEach((client) => {
|
|
35
36
|
client.postMessage({
|
|
36
37
|
type: "SW_PROGRESS",
|
|
37
38
|
percent,
|
|
38
39
|
downloaded,
|
|
39
|
-
total
|
|
40
|
+
total,
|
|
40
41
|
});
|
|
41
42
|
});
|
|
42
43
|
}
|
|
@@ -1 +1 @@
|
|
|
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
|
|
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"}
|
|
@@ -42,16 +42,25 @@ self.addEventListener("message", (event) => {
|
|
|
42
42
|
// Client went offline — the SW already serves from cache transparently.
|
|
43
43
|
// No action needed; reactive refetches will resume on next ONLINE signal.
|
|
44
44
|
}
|
|
45
|
+
if (event.data.type === "RESUME_PRECACHE") {
|
|
46
|
+
startBackgroundPrecache().catch(function(err) {
|
|
47
|
+
console.error("Background precache error:", err);
|
|
48
|
+
});
|
|
49
|
+
}
|
|
45
50
|
if (event.data.type === "RESET_CACHE") {
|
|
46
51
|
event.waitUntil(
|
|
47
52
|
(async () => {
|
|
48
53
|
const keys = await caches.keys();
|
|
49
54
|
await Promise.all(keys.map((k) => caches.delete(k)));
|
|
50
55
|
await precacheAssets();
|
|
56
|
+
await resetPrecacheCheckpoint();
|
|
51
57
|
const port = event.ports?.[0];
|
|
52
58
|
port?.postMessage({ type: "RESET_CACHE_COMPLETE" });
|
|
53
59
|
})(),
|
|
54
60
|
);
|
|
61
|
+
startBackgroundPrecache().catch(function(err) {
|
|
62
|
+
console.error("Background precache error:", err);
|
|
63
|
+
});
|
|
55
64
|
}`;
|
|
56
65
|
if (tagInvalidation) {
|
|
57
66
|
const invalidateCall = debounceMs > 0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-handler.js","sourceRoot":"","sources":["../../../../src/lib/generators/sw-sections/message-handler.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,sBAAsB,CAAC,eAAwB,EAAE,aAAqB,CAAC;IACrF,MAAM,gBAAgB,GAAG,eAAe,IAAI,UAAU,GAAG,CAAC;QACxD,CAAC,CAAC;mCAC6B,UAAU;;;;;;;;;;;;;;;;;;;;;;;;CAwB5C;QACG,CAAC,CAAC,EAAE,CAAC;IAEP,IAAI,IAAI,GAAG,GAAG,gBAAgB
|
|
1
|
+
{"version":3,"file":"message-handler.js","sourceRoot":"","sources":["../../../../src/lib/generators/sw-sections/message-handler.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,sBAAsB,CAAC,eAAwB,EAAE,aAAqB,CAAC;IACrF,MAAM,gBAAgB,GAAG,eAAe,IAAI,UAAU,GAAG,CAAC;QACxD,CAAC,CAAC;mCAC6B,UAAU;;;;;;;;;;;;;;;;;;;;;;;;CAwB5C;QACG,CAAC,CAAC,EAAE,CAAC;IAEP,IAAI,IAAI,GAAG,GAAG,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAkC5B,CAAC;IAEH,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,cAAc,GAAG,UAAU,GAAG,CAAC;YACnC,CAAC,CAAC,sDAAsD;YACxD,CAAC,CAAC,kDAAkD,CAAC;QAEvD,IAAI,IAAI;;MAEN,cAAc;;;;;;;;;;;;;;;;IAgBhB,CAAC;IACH,CAAC;IAED,IAAI,IAAI;;;;IAIN,CAAC;IACH,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -7,6 +7,7 @@ import { generateBatchRefreshQueue } from "./batch-refresh-queue.js";
|
|
|
7
7
|
import { generateSwPushHandlers } from "./sw-push.js";
|
|
8
8
|
import { generateServerPushHandler } from "./server-push-handler.js";
|
|
9
9
|
import { generateBackgroundSyncHandler } from "./background-sync-handler.js";
|
|
10
|
+
import { generateBackgroundPrecache } from "./background-precache.js";
|
|
10
11
|
const COOKIE_AUTH_TYPES = ["cookie"];
|
|
11
12
|
function isCookieAuth(authType) {
|
|
12
13
|
return COOKIE_AUTH_TYPES.includes(authType);
|
|
@@ -48,6 +49,7 @@ export function applySwSections(code, config, useApiBasePlaceholder, debug) {
|
|
|
48
49
|
const spEndpoint = features.serverPush?.endpoint ?? "";
|
|
49
50
|
code = code.replace("// [[FETCH_HANDLER]]", () => generateFetchHandler({ strategy, navigation, refetchQueue }, features.tagInvalidation.enabled, features.mutationQueue.enabled, features.auth.routePaths, spEnabled ? spEndpoint : undefined, debug));
|
|
50
51
|
code = code.replace("// [[ACTIVATE_HANDLER]]", () => generateActivateHandler(navigation.preload, maxCacheAge));
|
|
52
|
+
code = code.replace("// [[BACKGROUND_PRECACHE]]", () => generateBackgroundPrecache());
|
|
51
53
|
code = code.replace("// [[INSTALL_HANDLER]]", () => generateInstallHandler());
|
|
52
54
|
code = code.replace("// [[BATCH_REFRESH_QUEUE]]", () => generateBatchRefreshQueue(refetchQueue.retry, refetchQueue.batchSize, refetchQueue.batchDelayMs));
|
|
53
55
|
code = code.replace("// [[MESSAGE_HANDLER]]", () => generateMessageHandler(features.tagInvalidation.enabled, features.tagInvalidation.debounceMs ?? 0));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../src/lib/generators/sw-sections/shared.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../src/lib/generators/sw-sections/shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -101,14 +101,17 @@ export function mergeConfigs(base, override) {
|
|
|
101
101
|
serviceWorker: {
|
|
102
102
|
...base.features.serviceWorker,
|
|
103
103
|
...override.features?.serviceWorker,
|
|
104
|
+
precache: {
|
|
105
|
+
...base.features.serviceWorker.precache,
|
|
106
|
+
...override.features?.serviceWorker?.precache,
|
|
107
|
+
concurrency: override.features?.serviceWorker?.precache?.concurrency ?? base.features.serviceWorker.precache?.concurrency ?? 1,
|
|
108
|
+
},
|
|
104
109
|
strategy: {
|
|
105
110
|
...base.features.serviceWorker.strategy,
|
|
106
111
|
...override.features?.serviceWorker?.strategy,
|
|
107
112
|
reactive: {
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
...override.features?.serviceWorker?.strategy?.reactive?.defaults,
|
|
111
|
-
},
|
|
113
|
+
...base.features.serviceWorker.strategy.reactive,
|
|
114
|
+
...override.features?.serviceWorker?.strategy?.reactive,
|
|
112
115
|
},
|
|
113
116
|
},
|
|
114
117
|
navigation: {
|
|
@@ -170,6 +173,7 @@ export const defaultConfig = {
|
|
|
170
173
|
},
|
|
171
174
|
serviceWorker: {
|
|
172
175
|
autoActivate: false,
|
|
176
|
+
precache: { concurrency: 1 },
|
|
173
177
|
strategy: {
|
|
174
178
|
default: "cache-first",
|
|
175
179
|
maxRuntimeCacheAge: 2592000,
|
|
@@ -178,12 +182,10 @@ export const defaultConfig = {
|
|
|
178
182
|
timeout: 10,
|
|
179
183
|
patterns: {},
|
|
180
184
|
reactive: {
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
refetchOnFocus: false,
|
|
186
|
-
},
|
|
185
|
+
staleTime: 0,
|
|
186
|
+
refetchInterval: 0,
|
|
187
|
+
refetchOnReconnect: false,
|
|
188
|
+
refetchOnFocus: false,
|
|
187
189
|
},
|
|
188
190
|
},
|
|
189
191
|
navigation: {
|
|
@@ -212,6 +214,7 @@ export const defaultInitConfig = {
|
|
|
212
214
|
pwa: { enabled: false, preventDefaultInstall: false },
|
|
213
215
|
serviceWorker: {
|
|
214
216
|
autoActivate: false,
|
|
217
|
+
precache: { concurrency: 1 },
|
|
215
218
|
navigation: {
|
|
216
219
|
mode: "spa",
|
|
217
220
|
preload: true,
|
|
@@ -230,12 +233,10 @@ export const defaultInitConfig = {
|
|
|
230
233
|
"/static/*": "cache-first",
|
|
231
234
|
},
|
|
232
235
|
reactive: {
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
refetchOnFocus: false,
|
|
238
|
-
},
|
|
236
|
+
staleTime: 0,
|
|
237
|
+
refetchInterval: 0,
|
|
238
|
+
refetchOnReconnect: false,
|
|
239
|
+
refetchOnFocus: false,
|
|
239
240
|
},
|
|
240
241
|
},
|
|
241
242
|
},
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
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,SAAS,EAAE,MAAM;QACjB,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,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE;CACjE,CAAC"}
|
|
@@ -270,6 +270,21 @@ if (typeof window !== "undefined" && "serviceWorker" in navigator) {
|
|
|
270
270
|
}${invalidationHandler} });
|
|
271
271
|
}
|
|
272
272
|
|
|
273
|
+
// --- Background Precache Resume ---
|
|
274
|
+
// Tells the SW to resume background precaching when the page becomes visible
|
|
275
|
+
// or the browser comes back online. The SW tracks progress via IndexedDB
|
|
276
|
+
// checkpoint so it safely picks up where it left off.
|
|
277
|
+
if (typeof document !== "undefined" && "serviceWorker" in navigator) {
|
|
278
|
+
var _resumeP = function() {
|
|
279
|
+
if (navigator.serviceWorker.controller)
|
|
280
|
+
navigator.serviceWorker.controller.postMessage({ type: "RESUME_PRECACHE" });
|
|
281
|
+
};
|
|
282
|
+
document.addEventListener("visibilitychange", function() {
|
|
283
|
+
if (document.visibilityState === "visible") _resumeP();
|
|
284
|
+
});
|
|
285
|
+
window.addEventListener("online", _resumeP);
|
|
286
|
+
}
|
|
287
|
+
|
|
273
288
|
/** Initialize SW registration and all client-side features (PWA install, mutation queue, cross-tab sync). Call once at app startup. */
|
|
274
289
|
export async function initServiceWorker()${ts ? ": Promise<void>" : " "}{
|
|
275
290
|
await swInit();${storageInit}
|
|
@@ -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;;;;;;;;;;;;;;;;;;;;;EAqBnE,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
|
|
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;;;;;;;;;;;;;;;;;;;;;EAqBnE,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"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@swoff/cli",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.15",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"description": "CLI for Swoff - Offline
|
|
5
|
+
"description": "CLI for Swoff - Offline Infrastructure Platform",
|
|
6
6
|
"bin": {
|
|
7
7
|
"swoff": "bin/swoff"
|
|
8
8
|
},
|
|
@@ -27,9 +27,15 @@
|
|
|
27
27
|
"pwa",
|
|
28
28
|
"caching"
|
|
29
29
|
],
|
|
30
|
+
"publishConfig": {
|
|
31
|
+
"access": "public"
|
|
32
|
+
},
|
|
33
|
+
"sideEffects": false,
|
|
30
34
|
"author": "Swoff",
|
|
31
35
|
"license": "MIT",
|
|
32
|
-
"dependencies": {
|
|
36
|
+
"dependencies": {
|
|
37
|
+
"@clack/prompts": "^1.6.0"
|
|
38
|
+
},
|
|
33
39
|
"devDependencies": {
|
|
34
40
|
"@types/node": "^25.9.1",
|
|
35
41
|
"typescript": "^5.0.0",
|
package/dist/lib/commands/add.js
DELETED
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* add command - enables one or more feature flags and regenerates.
|
|
3
|
-
* Supports comma-separated features: swoff add auth,graphql,pwa
|
|
4
|
-
*/
|
|
5
|
-
import { writeFileSync } from "fs";
|
|
6
|
-
import { join } from "path";
|
|
7
|
-
import { log } from "../cli/logger.js";
|
|
8
|
-
import { loadConfigAsync } from "../config/loader.js";
|
|
9
|
-
import { deepMerge } from "../shared/config-types.js";
|
|
10
|
-
import { FEATURES, resolveDependencies, getAuthConflicts, buildConfigUpdate } from "../shared/feature-registry.js";
|
|
11
|
-
import { generateCommand } from "./generate.js";
|
|
12
|
-
const FEATURE_ALIASES = {
|
|
13
|
-
mutationqueue: "mutation-queue",
|
|
14
|
-
backgroundsync: "background-sync",
|
|
15
|
-
pushnotification: "push-notification",
|
|
16
|
-
};
|
|
17
|
-
const FEATURE_NAMES = Object.keys(FEATURES);
|
|
18
|
-
function normalizeFeature(name) {
|
|
19
|
-
const lower = name.toLowerCase().trim();
|
|
20
|
-
return FEATURE_ALIASES[lower] ?? lower;
|
|
21
|
-
}
|
|
22
|
-
export async function addCommand(projectRoot, featureArg) {
|
|
23
|
-
const rawFeatures = featureArg.split(",").map(normalizeFeature).filter(Boolean);
|
|
24
|
-
const coreFeatures = rawFeatures;
|
|
25
|
-
const invalid = coreFeatures.filter((f) => !FEATURES[f]);
|
|
26
|
-
if (invalid.length > 0) {
|
|
27
|
-
log.error(`Unknown feature(s): ${invalid.join(", ")}`);
|
|
28
|
-
log.info(`Available: ${FEATURE_NAMES.join(", ")}`);
|
|
29
|
-
return;
|
|
30
|
-
}
|
|
31
|
-
const label = rawFeatures.length === 1 ? rawFeatures[0] : `${rawFeatures.length} features`;
|
|
32
|
-
log.header(`Adding ${label}`);
|
|
33
|
-
const loadResult = await loadConfigAsync(projectRoot);
|
|
34
|
-
const configPath = loadResult.configPath;
|
|
35
|
-
const existingConfig = loadResult.config;
|
|
36
|
-
const deps = resolveDependencies(coreFeatures);
|
|
37
|
-
const authConflicts = getAuthConflicts(deps, existingConfig);
|
|
38
|
-
if (authConflicts.length > 0) {
|
|
39
|
-
log.error(`Cannot add ${authConflicts.join(", ")} with auth type "${existingConfig.features.auth.type}" — these features require cookie auth`);
|
|
40
|
-
log.info("Change auth type to \"cookie\" in swoff.config.json and try again, or run: swoff add auth");
|
|
41
|
-
return;
|
|
42
|
-
}
|
|
43
|
-
const combinedUpdate = buildConfigUpdate(coreFeatures);
|
|
44
|
-
let mergedConfig = deepMerge(existingConfig, { features: combinedUpdate });
|
|
45
|
-
const isJsConfig = configPath ? configPath.endsWith(".js") : false;
|
|
46
|
-
const resolvedConfigPath = (!configPath || isJsConfig)
|
|
47
|
-
? join(projectRoot, "swoff.config.json")
|
|
48
|
-
: configPath;
|
|
49
|
-
if (!configPath) {
|
|
50
|
-
log.warn("No config found. Creating new config with features...");
|
|
51
|
-
}
|
|
52
|
-
else if (isJsConfig) {
|
|
53
|
-
log.warn("JS config detected. Converting to swoff.config.json for simplicity.");
|
|
54
|
-
}
|
|
55
|
-
writeFileSync(resolvedConfigPath, JSON.stringify(mergedConfig, null, 2));
|
|
56
|
-
log.success(`${!configPath ? "Created" : "Updated"} swoff.config.json with ${label}`);
|
|
57
|
-
if (coreFeatures.length > 0) {
|
|
58
|
-
await generateCommand(projectRoot);
|
|
59
|
-
}
|
|
60
|
-
log.success(`${label} added successfully!`);
|
|
61
|
-
}
|
|
62
|
-
//# sourceMappingURL=add.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../../src/lib/commands/add.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { join } from "path";
|
|
2
|
-
import { log } from "../cli/logger.js";
|
|
3
|
-
import { loadConfigAsync } from "../config/loader.js";
|
|
4
|
-
export async function generateAssetsCommand(projectRoot, opts = {}) {
|
|
5
|
-
let assetsPkg;
|
|
6
|
-
try {
|
|
7
|
-
assetsPkg = await import("@swoff/assets");
|
|
8
|
-
}
|
|
9
|
-
catch {
|
|
10
|
-
log.error("@swoff/assets is required to generate PWA assets.");
|
|
11
|
-
log.help("Install it with: npm install -D @swoff/assets");
|
|
12
|
-
process.exit(1);
|
|
13
|
-
}
|
|
14
|
-
log.header("Generating PWA Assets");
|
|
15
|
-
const { config } = await loadConfigAsync(projectRoot);
|
|
16
|
-
const assets = config.features.pwa.assets;
|
|
17
|
-
const sourceArg = opts.source || (assets.source ? join(projectRoot, assets.source) : "");
|
|
18
|
-
if (!sourceArg) {
|
|
19
|
-
log.error("No source specified. Use --source <path> or configure pwa.assets.source in swoff.config.json");
|
|
20
|
-
log.help("Usage: swoff assets --source ./logo.svg");
|
|
21
|
-
process.exit(1);
|
|
22
|
-
}
|
|
23
|
-
const outputDir = opts.outputDir || assets.outputDir;
|
|
24
|
-
const result = await assetsPkg.generateAssets({
|
|
25
|
-
source: sourceArg,
|
|
26
|
-
outputDir: join(projectRoot, outputDir),
|
|
27
|
-
appName: config.framework || "App",
|
|
28
|
-
themeColor: assets.themeColor,
|
|
29
|
-
bgColor: assets.bgColor,
|
|
30
|
-
appleSplash: !opts.noSplash,
|
|
31
|
-
});
|
|
32
|
-
log.success(`Generated ${result.files.length} PWA assets`);
|
|
33
|
-
if (result.warnings.length > 0) {
|
|
34
|
-
for (const w of result.warnings)
|
|
35
|
-
log.warn(w);
|
|
36
|
-
}
|
|
37
|
-
assetsPkg.printAssetGuide({
|
|
38
|
-
appName: config.framework || "App",
|
|
39
|
-
themeColor: assets.themeColor,
|
|
40
|
-
bgColor: assets.bgColor,
|
|
41
|
-
outputDir,
|
|
42
|
-
hasSplash: !opts.noSplash,
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
//# sourceMappingURL=assets.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"assets.js","sourceRoot":"","sources":["../../../src/lib/commands/assets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAQtD,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,WAAmB,EAAE,OAAsB,EAAE;IACvF,IAAI,SAAyC,CAAC;IAC9C,IAAI,CAAC;QACH,SAAS,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,GAAG,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;QAC/D,GAAG,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,GAAG,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC;IAEpC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,eAAe,CAAC,WAAW,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;IAE1C,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAEzF,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,GAAG,CAAC,KAAK,CAAC,8FAA8F,CAAC,CAAC;QAC1G,GAAG,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;QACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC;IAErD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,cAAc,CAAC;QAC5C,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC;QACvC,OAAO,EAAE,MAAM,CAAC,SAAS,IAAI,KAAK;QAClC,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,WAAW,EAAE,CAAC,IAAI,CAAC,QAAQ;KAC5B,CAAC,CAAC;IAEH,GAAG,CAAC,OAAO,CAAC,aAAa,MAAM,CAAC,KAAK,CAAC,MAAM,aAAa,CAAC,CAAC;IAC3D,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ;YAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,SAAS,CAAC,eAAe,CAAC;QACxB,OAAO,EAAE,MAAM,CAAC,SAAS,IAAI,KAAK;QAClC,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,SAAS;QACT,SAAS,EAAE,CAAC,IAAI,CAAC,QAAQ;KAC1B,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { join } from "path";
|
|
2
|
-
import { log } from "../cli/logger.js";
|
|
3
|
-
import { loadConfigAsync } from "../config/loader.js";
|
|
4
|
-
import { generateAssets } from "../generators/asset-generator/generate.js";
|
|
5
|
-
import { printAssetGuide } from "../generators/asset-generator/guide.js";
|
|
6
|
-
export async function generateAssetsCommand(projectRoot, args) {
|
|
7
|
-
log.header("Generating PWA Assets");
|
|
8
|
-
const { config } = await loadConfigAsync(projectRoot);
|
|
9
|
-
const assets = config.features.pwa.assets;
|
|
10
|
-
const sourceArg = (() => {
|
|
11
|
-
const idx = args.indexOf("--source");
|
|
12
|
-
if (idx !== -1 && idx + 1 < args.length)
|
|
13
|
-
return args[idx + 1];
|
|
14
|
-
if (assets.source)
|
|
15
|
-
return join(projectRoot, assets.source);
|
|
16
|
-
return "";
|
|
17
|
-
})();
|
|
18
|
-
if (!sourceArg) {
|
|
19
|
-
log.error("No source specified. Use --source <path> or configure pwa.assets.source in swoff.config.json");
|
|
20
|
-
log.help("Usage: swoff generate-assets --source ./logo.svg");
|
|
21
|
-
process.exit(1);
|
|
22
|
-
}
|
|
23
|
-
const result = await generateAssets({
|
|
24
|
-
source: sourceArg,
|
|
25
|
-
outputDir: join(projectRoot, assets.outputDir),
|
|
26
|
-
appName: config.framework || "App",
|
|
27
|
-
themeColor: assets.themeColor,
|
|
28
|
-
bgColor: assets.bgColor,
|
|
29
|
-
appleSplash: !args.includes("--no-splash"),
|
|
30
|
-
});
|
|
31
|
-
log.success(`Generated ${result.files.length} PWA assets`);
|
|
32
|
-
if (result.warnings.length > 0) {
|
|
33
|
-
for (const w of result.warnings)
|
|
34
|
-
log.warn(w);
|
|
35
|
-
}
|
|
36
|
-
printAssetGuide({
|
|
37
|
-
appName: config.framework || "App",
|
|
38
|
-
themeColor: assets.themeColor,
|
|
39
|
-
bgColor: assets.bgColor,
|
|
40
|
-
outputDir: assets.outputDir,
|
|
41
|
-
hasSplash: !args.includes("--no-splash"),
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
//# sourceMappingURL=generate-assets.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generate-assets.js","sourceRoot":"","sources":["../../../src/lib/commands/generate-assets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AAEzE,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,WAAmB,EAAE,IAAc;IAC7E,GAAG,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC;IAEpC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,eAAe,CAAC,WAAW,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;IAE1C,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE;QACtB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACrC,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QAC9D,IAAI,MAAM,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAC3D,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,EAAE,CAAC;IAEL,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,GAAG,CAAC,KAAK,CAAC,8FAA8F,CAAC,CAAC;QAC1G,GAAG,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC;QAClC,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC;QAC9C,OAAO,EAAE,MAAM,CAAC,SAAS,IAAI,KAAK;QAClC,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,WAAW,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;KAC3C,CAAC,CAAC;IAEH,GAAG,CAAC,OAAO,CAAC,aAAa,MAAM,CAAC,KAAK,CAAC,MAAM,aAAa,CAAC,CAAC;IAC3D,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ;YAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,eAAe,CAAC;QACd,OAAO,EAAE,MAAM,CAAC,SAAS,IAAI,KAAK;QAClC,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,SAAS,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;KACzC,CAAC,CAAC;AACL,CAAC"}
|