@swoff/cli 0.3.14 → 0.4.0

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.
Files changed (147) hide show
  1. package/dist/index.js +2 -2
  2. package/dist/index.js.map +1 -1
  3. package/dist/lib/cli/help.js +3 -3
  4. package/dist/lib/cli/help.js.map +1 -1
  5. package/dist/lib/commands/clean.js +8 -17
  6. package/dist/lib/commands/clean.js.map +1 -1
  7. package/dist/lib/commands/generate-guide.js +3 -5
  8. package/dist/lib/commands/generate-guide.js.map +1 -1
  9. package/dist/lib/commands/generate.js +9 -7
  10. package/dist/lib/commands/generate.js.map +1 -1
  11. package/dist/lib/commands/init.js +218 -184
  12. package/dist/lib/commands/init.js.map +1 -1
  13. package/dist/lib/commands/validate.js.map +1 -1
  14. package/dist/lib/config/minimal-config.js +64 -0
  15. package/dist/lib/config/minimal-config.js.map +1 -0
  16. package/dist/lib/config/validator.js +42 -19
  17. package/dist/lib/config/validator.js.map +1 -1
  18. package/dist/lib/generators/file-generators/client-injector-bundle.js +1 -1
  19. package/dist/lib/generators/file-generators/client-injector-bundle.js.map +1 -1
  20. package/dist/lib/generators/file-generators/context.js +3 -2
  21. package/dist/lib/generators/file-generators/context.js.map +1 -1
  22. package/dist/lib/generators/file-generators/generate-framework-adapters.js +1 -1
  23. package/dist/lib/generators/file-generators/generate-framework-adapters.js.map +1 -1
  24. package/dist/lib/generators/file-generators/sw-generator-build.js +34 -14
  25. package/dist/lib/generators/file-generators/sw-generator-build.js.map +1 -1
  26. package/dist/lib/generators/file-generators/sw-injector.js +1 -0
  27. package/dist/lib/generators/file-generators/sw-injector.js.map +1 -1
  28. package/dist/lib/generators/sw-build-utils.js +17 -3
  29. package/dist/lib/generators/sw-build-utils.js.map +1 -1
  30. package/dist/lib/generators/sw-generator.js +5 -5
  31. package/dist/lib/generators/sw-generator.js.map +1 -1
  32. package/dist/lib/generators/sw-sections/activate-handler.js +4 -1
  33. package/dist/lib/generators/sw-sections/activate-handler.js.map +1 -1
  34. package/dist/lib/generators/sw-sections/assemble-sw.js +7 -4
  35. package/dist/lib/generators/sw-sections/assemble-sw.js.map +1 -1
  36. package/dist/lib/generators/sw-sections/background-precache.js +118 -0
  37. package/dist/lib/generators/sw-sections/background-precache.js.map +1 -0
  38. package/dist/lib/generators/sw-sections/default-template.js +11 -3
  39. package/dist/lib/generators/sw-sections/default-template.js.map +1 -1
  40. package/dist/lib/generators/sw-sections/fetch-handler.js +2 -2
  41. package/dist/lib/generators/sw-sections/fetch-handler.js.map +1 -1
  42. package/dist/lib/generators/sw-sections/message-handler.js +9 -1
  43. package/dist/lib/generators/sw-sections/message-handler.js.map +1 -1
  44. package/dist/lib/generators/sw-sections/shared.js +2 -2
  45. package/dist/lib/generators/sw-sections/shared.js.map +1 -1
  46. package/dist/lib/generators/swoff-files-generator.js +2 -2
  47. package/dist/lib/generators/swoff-files-generator.js.map +1 -1
  48. package/dist/lib/shared/config-types.js +20 -18
  49. package/dist/lib/shared/config-types.js.map +1 -1
  50. package/dist/lib/utils/detect-framework.js +3 -27
  51. package/dist/lib/utils/detect-framework.js.map +1 -1
  52. package/dist/runtime/client-injector-bundle.js +16 -23
  53. package/dist/runtime/client-injector-bundle.js.map +1 -1
  54. package/dist/runtime/client-injector.js +15 -2
  55. package/dist/runtime/client-injector.js.map +1 -1
  56. package/dist/runtime/sw-injector.js +6 -19
  57. package/dist/runtime/sw-injector.js.map +1 -1
  58. package/dist/runtime/type-definitions.js +0 -5
  59. package/dist/runtime/type-definitions.js.map +1 -1
  60. package/package.json +9 -3
  61. package/templates/react/usePrecacheProgress.jsx +20 -0
  62. package/templates/react/usePrecacheProgress.tsx +20 -0
  63. package/dist/lib/commands/add.js +0 -62
  64. package/dist/lib/commands/add.js.map +0 -1
  65. package/dist/lib/commands/assets.js +0 -45
  66. package/dist/lib/commands/assets.js.map +0 -1
  67. package/dist/lib/commands/generate-assets.js +0 -44
  68. package/dist/lib/commands/generate-assets.js.map +0 -1
  69. package/dist/lib/commands/info.js +0 -183
  70. package/dist/lib/commands/info.js.map +0 -1
  71. package/dist/lib/generators/asset-generator/dependency-resolver.js +0 -85
  72. package/dist/lib/generators/asset-generator/dependency-resolver.js.map +0 -1
  73. package/dist/lib/generators/asset-generator/generate.js +0 -111
  74. package/dist/lib/generators/asset-generator/generate.js.map +0 -1
  75. package/dist/lib/generators/asset-generator/guide.js +0 -43
  76. package/dist/lib/generators/asset-generator/guide.js.map +0 -1
  77. package/dist/lib/generators/asset-generator/html-patcher.js +0 -65
  78. package/dist/lib/generators/asset-generator/html-patcher.js.map +0 -1
  79. package/dist/lib/generators/asset-generator/ico-encoder.js +0 -29
  80. package/dist/lib/generators/asset-generator/ico-encoder.js.map +0 -1
  81. package/dist/lib/generators/asset-generator/manifest-patcher.js +0 -23
  82. package/dist/lib/generators/asset-generator/manifest-patcher.js.map +0 -1
  83. package/dist/lib/generators/asset-generator/maskable.js +0 -15
  84. package/dist/lib/generators/asset-generator/maskable.js.map +0 -1
  85. package/dist/lib/generators/asset-generator/rasterize.js +0 -32
  86. package/dist/lib/generators/asset-generator/rasterize.js.map +0 -1
  87. package/dist/lib/generators/asset-generator/sizes.js +0 -25
  88. package/dist/lib/generators/asset-generator/sizes.js.map +0 -1
  89. package/dist/lib/generators/file-generators/auth-fetch.js +0 -151
  90. package/dist/lib/generators/file-generators/auth-fetch.js.map +0 -1
  91. package/dist/lib/generators/file-generators/auth-user.js +0 -13
  92. package/dist/lib/generators/file-generators/auth-user.js.map +0 -1
  93. package/dist/lib/generators/file-generators/connectivity-manager.js +0 -12
  94. package/dist/lib/generators/file-generators/connectivity-manager.js.map +0 -1
  95. package/dist/lib/generators/file-generators/fetch-state.js +0 -6
  96. package/dist/lib/generators/file-generators/fetch-state.js.map +0 -1
  97. package/dist/lib/generators/file-generators/generate-hooks.js +0 -44
  98. package/dist/lib/generators/file-generators/generate-hooks.js.map +0 -1
  99. package/dist/lib/generators/file-generators/indexeddb.js +0 -74
  100. package/dist/lib/generators/file-generators/indexeddb.js.map +0 -1
  101. package/dist/lib/generators/file-generators/manifest.js +0 -46
  102. package/dist/lib/generators/file-generators/manifest.js.map +0 -1
  103. package/dist/lib/generators/file-generators/mutation-reconcile.js +0 -57
  104. package/dist/lib/generators/file-generators/mutation-reconcile.js.map +0 -1
  105. package/dist/lib/generators/file-generators/notification-generator.js +0 -6
  106. package/dist/lib/generators/file-generators/notification-generator.js.map +0 -1
  107. package/dist/lib/generators/file-generators/quick-readme.js +0 -21
  108. package/dist/lib/generators/file-generators/quick-readme.js.map +0 -1
  109. package/dist/lib/generators/file-generators/reconcile.js +0 -50
  110. package/dist/lib/generators/file-generators/reconcile.js.map +0 -1
  111. package/dist/lib/generators/file-generators/storage-generator.js +0 -6
  112. package/dist/lib/generators/file-generators/storage-generator.js.map +0 -1
  113. package/dist/lib/generators/file-generators/storage-notify.js +0 -6
  114. package/dist/lib/generators/file-generators/storage-notify.js.map +0 -1
  115. package/dist/lib/generators/file-generators/store.js +0 -86
  116. package/dist/lib/generators/file-generators/store.js.map +0 -1
  117. package/dist/lib/generators/file-generators/sw-push.js +0 -67
  118. package/dist/lib/generators/file-generators/sw-push.js.map +0 -1
  119. package/dist/lib/generators/file-generators/sw-version-gen.js +0 -32
  120. package/dist/lib/generators/file-generators/sw-version-gen.js.map +0 -1
  121. package/dist/lib/generators/sw-sections/glob-matcher-code.js.map +0 -1
  122. package/dist/lib/generators/sw-sections/install-handler.js +0 -54
  123. package/dist/lib/generators/sw-sections/install-handler.js.map +0 -1
  124. package/dist/lib/utils/build-script.js +0 -35
  125. package/dist/lib/utils/build-script.js.map +0 -1
  126. package/dist/lib/utils/tty-status.js +0 -21
  127. package/dist/lib/utils/tty-status.js.map +0 -1
  128. package/dist/runtime/auth-user.js +0 -154
  129. package/dist/runtime/auth-user.js.map +0 -1
  130. package/dist/runtime/connectivity-manager.js +0 -83
  131. package/dist/runtime/connectivity-manager.js.map +0 -1
  132. package/dist/runtime/fetch-state.js +0 -42
  133. package/dist/runtime/fetch-state.js.map +0 -1
  134. package/dist/runtime/notification.js +0 -65
  135. package/dist/runtime/notification.js.map +0 -1
  136. package/dist/runtime/pwa-index.js +0 -11
  137. package/dist/runtime/pwa-index.js.map +0 -1
  138. package/dist/runtime/pwa-injector.js +0 -15
  139. package/dist/runtime/pwa-injector.js.map +0 -1
  140. package/dist/runtime/pwa-install.js +0 -83
  141. package/dist/runtime/pwa-install.js.map +0 -1
  142. package/dist/runtime/sw-version.js +0 -13
  143. package/dist/runtime/sw-version.js.map +0 -1
  144. package/dist/swoff-nkdhhmw8. +0 -18
  145. package/dist/swoff.js +0 -5
  146. package/templates/react/useSWUpdate.jsx +0 -31
  147. package/templates/react/useSWUpdate.tsx +0 -37
@@ -1,213 +1,247 @@
1
- /**
2
- * init command - creates swoff.config.json.
3
- */
4
1
  import { writeFileSync, existsSync } from "fs";
5
2
  import { join } from "path";
6
- import { log } from "../cli/logger.js";
7
- import { defaultInitConfig, deepMerge, } from "../shared/config-types.js";
8
- import { detectFramework, } from "../utils/detect-framework.js";
3
+ import { intro, outro, text, confirm, select, isCancel, log } from "@clack/prompts";
4
+ import { detectFramework } from "../utils/detect-framework.js";
5
+ import { buildMinimalConfig } from "../config/minimal-config.js";
9
6
  const FRAMEWORK_PRESETS = {
10
7
  nextjs: {
11
- build: {
12
- outputDir: "public",
13
- },
14
- features: {
15
- serviceWorker: {
16
- strategy: {
17
- default: "network-first",
18
- patterns: {
19
- "/_next/static/*": "cache-first",
20
- },
21
- ignoreQueryParams: ["_rsc"],
22
- },
23
- navigation: {
24
- mode: "ssr",
25
- },
26
- },
27
- },
8
+ swOutput: "public",
9
+ navMode: "ssr",
10
+ defaultStrategy: "network-first",
11
+ patterns: { "/_next/static/*": "cache-first" },
12
+ ignoreQueryParams: ["_rsc"],
28
13
  },
29
14
  remix: {
30
- features: {
31
- serviceWorker: {
32
- strategy: {
33
- default: "network-first",
34
- ignoreQueryParams: ["_data"],
35
- },
36
- navigation: {
37
- mode: "ssr",
38
- },
39
- },
40
- },
15
+ navMode: "ssr",
16
+ defaultStrategy: "network-first",
17
+ ignoreQueryParams: ["_data"],
41
18
  },
42
19
  astro: {
43
- features: {
44
- serviceWorker: {
45
- navigation: {
46
- mode: "ssr",
47
- },
48
- },
49
- },
20
+ navMode: "ssr",
50
21
  },
51
22
  nuxt: {
52
- features: {
53
- serviceWorker: {
54
- strategy: {
55
- default: "network-first",
56
- },
57
- navigation: {
58
- mode: "ssr",
59
- },
60
- },
61
- },
23
+ navMode: "ssr",
24
+ defaultStrategy: "network-first",
62
25
  },
63
26
  sveltekit: {
64
- features: {
65
- serviceWorker: {
66
- strategy: {
67
- default: "network-first",
68
- },
69
- navigation: {
70
- mode: "ssr",
71
- },
72
- },
73
- },
27
+ navMode: "ssr",
28
+ defaultStrategy: "network-first",
74
29
  },
75
30
  "react-spa": {
76
- build: {
77
- outputDir: "dist",
78
- },
79
- features: {
80
- serviceWorker: {
81
- navigation: {
82
- mode: "spa",
83
- },
84
- },
85
- },
31
+ swOutput: "dist",
32
+ navMode: "spa",
86
33
  },
87
34
  "tanstack-start-react": {
88
- build: {
89
- outputDir: ".output/public",
90
- },
91
- features: {
92
- serviceWorker: {
93
- strategy: {
94
- default: "network-first",
95
- patterns: {
96
- "/_serverFn/*": "network-only",
97
- },
98
- },
99
- navigation: {
100
- mode: "ssr",
101
- },
102
- },
103
- },
104
- },
105
- laravel: {
106
- build: {
107
- outputDir: "public",
108
- },
109
- features: {
110
- serviceWorker: {
111
- navigation: {
112
- mode: "ssr",
113
- },
114
- strategy: {
115
- default: "network-first",
116
- },
117
- },
118
- },
119
- },
120
- django: {
121
- build: {
122
- outputDir: "static",
123
- },
124
- features: {
125
- serviceWorker: {
126
- navigation: {
127
- mode: "ssr",
128
- },
129
- strategy: {
130
- default: "network-first",
131
- },
132
- },
133
- },
134
- },
135
- flask: {
136
- build: {
137
- outputDir: "static",
138
- },
139
- features: {
140
- serviceWorker: {
141
- navigation: {
142
- mode: "ssr",
143
- },
144
- strategy: {
145
- default: "network-first",
146
- },
147
- },
148
- },
149
- },
150
- rails: {
151
- build: {
152
- outputDir: "public",
153
- },
154
- features: {
155
- serviceWorker: {
156
- navigation: {
157
- mode: "ssr",
158
- },
159
- strategy: {
160
- default: "network-first",
161
- },
162
- },
163
- },
164
- },
165
- go: {
166
- build: {
167
- outputDir: "static",
168
- },
169
- features: {
170
- serviceWorker: {
171
- navigation: {
172
- mode: "ssr",
173
- },
174
- strategy: {
175
- default: "network-first",
176
- },
177
- },
178
- },
35
+ swOutput: ".output/public",
36
+ navMode: "ssr",
37
+ defaultStrategy: "network-first",
38
+ patterns: { "/_serverFn/*": "network-only" },
179
39
  },
180
40
  };
181
- export async function initCommand(projectRoot, framework) {
41
+ const STRATEGIES = [
42
+ { value: "cache-first", label: "Cache First" },
43
+ { value: "network-first", label: "Network First" },
44
+ { value: "stale-while-revalidate", label: "Stale While Revalidate" },
45
+ { value: "cache-only", label: "Cache Only" },
46
+ { value: "network-only", label: "Network Only" },
47
+ { value: "reactive", label: "Reactive" },
48
+ ];
49
+ const ALL_FRAMEWORKS = [
50
+ "nextjs", "remix", "tanstack-start-react", "astro", "nuxt",
51
+ "sveltekit", "react-spa", "vue", "svelte",
52
+ "vanilla", "no-bundler",
53
+ ];
54
+ export async function initCommand(projectRoot, yesMode, frameworkOverride) {
182
55
  const configFiles = ["swoff.config.json", "swoff.config.js"];
183
56
  const existingConfig = configFiles.find((f) => existsSync(join(projectRoot, f)));
184
57
  if (existingConfig) {
185
- log.warn(`Found existing ${existingConfig}. Skipping init.`);
186
- log.info("To reinitialize, delete the config file first.");
58
+ log.warn(`Found existing ${existingConfig}. Aborting.`);
59
+ log.info("Delete it first or run in a different directory.");
187
60
  return;
188
61
  }
189
- const detected = (framework || detectFramework(projectRoot));
62
+ const detected = frameworkOverride && ALL_FRAMEWORKS.includes(frameworkOverride)
63
+ ? frameworkOverride
64
+ : detectFramework(projectRoot);
65
+ if (frameworkOverride && detected === frameworkOverride) {
66
+ log.info(`Framework: ${detected} (override)`);
67
+ }
190
68
  const preset = FRAMEWORK_PRESETS[detected] || {};
191
- // Start with default config, deep-merge the preset
192
- const config = deepMerge({
193
- ...defaultInitConfig,
194
- framework: detected,
195
- }, preset);
196
- // Validate and adjust build output — ensure all build fields are present
197
- if (!config.build)
198
- config.build = defaultInitConfig.build;
199
- // Auto-populate precacheDirs from outputDir so users get directory precaching out of the box
200
- const cfgBuild = config.build;
201
- if (!cfgBuild.precacheDirs || Object.keys(cfgBuild.precacheDirs).length === 0) {
202
- cfgBuild.precacheDirs = { [cfgBuild.outputDir]: { prefix: "/" } };
69
+ if (yesMode) {
70
+ const answers = {
71
+ framework: detected,
72
+ swOutput: preset.swOutput || "dist",
73
+ swFilename: "sw",
74
+ navMode: preset.navMode || "default",
75
+ fallback: "/offline",
76
+ defaultStrategy: preset.defaultStrategy || "cache-first",
77
+ patterns: preset.patterns,
78
+ pwaEnabled: false,
79
+ authEnabled: false,
80
+ mutationEnabled: false,
81
+ tagInvalidationEnabled: false,
82
+ graphqlEnabled: false,
83
+ serverPushEnabled: false,
84
+ pushNotificationsEnabled: false,
85
+ precacheDir: preset.swOutput ? preset.swOutput : "dist",
86
+ precachePrefix: "/",
87
+ };
88
+ writeConfig(projectRoot, answers);
89
+ return;
90
+ }
91
+ intro("swoff configuration");
92
+ const framework = await select({
93
+ message: "Framework",
94
+ options: ALL_FRAMEWORKS.map((f) => ({
95
+ value: f,
96
+ label: f === detected ? `${f} (detected)` : f,
97
+ })),
98
+ initialValue: detected,
99
+ });
100
+ if (isCancel(framework))
101
+ process.exit(0);
102
+ const activePreset = FRAMEWORK_PRESETS[framework] || {};
103
+ const swOutput = await text({
104
+ message: "SW output directory",
105
+ initialValue: activePreset.swOutput || "dist",
106
+ });
107
+ if (isCancel(swOutput))
108
+ process.exit(0);
109
+ const swFilename = await text({
110
+ message: "Service worker filename",
111
+ initialValue: "sw",
112
+ });
113
+ if (isCancel(swFilename))
114
+ process.exit(0);
115
+ const navMode = await select({
116
+ message: "Navigation mode",
117
+ options: [
118
+ { value: "spa", label: "SPA" },
119
+ { value: "ssr", label: "SSR" },
120
+ { value: "default", label: "Default" },
121
+ ],
122
+ initialValue: activePreset.navMode || "default",
123
+ });
124
+ if (isCancel(navMode))
125
+ process.exit(0);
126
+ const fallback = await text({
127
+ message: "Offline fallback path",
128
+ initialValue: "/offline",
129
+ });
130
+ if (isCancel(fallback))
131
+ process.exit(0);
132
+ const defaultStrategy = await select({
133
+ message: "Default caching strategy",
134
+ options: [...STRATEGIES],
135
+ initialValue: activePreset.defaultStrategy || "cache-first",
136
+ });
137
+ if (isCancel(defaultStrategy))
138
+ process.exit(0);
139
+ const pwaEnabled = await confirm({ message: "Enable PWA install prompt?", initialValue: false });
140
+ if (isCancel(pwaEnabled))
141
+ process.exit(0);
142
+ let authType;
143
+ const authEnabled = await confirm({ message: "Enable authentication?", initialValue: false });
144
+ if (isCancel(authEnabled))
145
+ process.exit(0);
146
+ if (authEnabled) {
147
+ authType = (await select({
148
+ message: "Authentication type",
149
+ options: [
150
+ { value: "cookie", label: "Cookie" },
151
+ { value: "bearer", label: "Bearer" },
152
+ { value: "custom", label: "Custom" },
153
+ ],
154
+ initialValue: "cookie",
155
+ }));
156
+ if (isCancel(authType))
157
+ process.exit(0);
158
+ }
159
+ const mutationEnabled = await confirm({ message: "Enable mutation queue (offline mutations)?", initialValue: false });
160
+ if (isCancel(mutationEnabled))
161
+ process.exit(0);
162
+ const tagInvalidationEnabled = await confirm({ message: "Enable tag invalidation?", initialValue: false });
163
+ if (isCancel(tagInvalidationEnabled))
164
+ process.exit(0);
165
+ const graphqlEnabled = await confirm({ message: "Enable GraphQL support?", initialValue: false });
166
+ if (isCancel(graphqlEnabled))
167
+ process.exit(0);
168
+ const serverPushEnabled = await confirm({ message: "Enable server push?", initialValue: false });
169
+ if (isCancel(serverPushEnabled))
170
+ process.exit(0);
171
+ const pushNotificationsEnabled = await confirm({ message: "Enable push notifications?", initialValue: false });
172
+ if (isCancel(pushNotificationsEnabled))
173
+ process.exit(0);
174
+ const precacheDir = await text({
175
+ message: "Directory to precache (leave empty to skip)",
176
+ initialValue: activePreset.swOutput || "dist",
177
+ });
178
+ if (isCancel(precacheDir))
179
+ process.exit(0);
180
+ let precachePrefix = "/";
181
+ if (precacheDir) {
182
+ precachePrefix = (await text({
183
+ message: "Precache URL prefix",
184
+ initialValue: "/",
185
+ }));
186
+ if (isCancel(precachePrefix))
187
+ process.exit(0);
203
188
  }
189
+ log.info("");
190
+ log.info("─".repeat(40));
191
+ log.info("Summary");
192
+ log.info(` Framework: ${framework}`);
193
+ log.info(` SW output: ${swOutput}/${swFilename}.js`);
194
+ log.info(` Fallback: ${fallback}`);
195
+ log.info(` Navigation: ${navMode}`);
196
+ log.info(` Strategy: ${defaultStrategy}`);
197
+ if (pwaEnabled)
198
+ log.info(" PWA: enabled");
199
+ if (authEnabled)
200
+ log.info(` Auth: ${authType}`);
201
+ if (mutationEnabled)
202
+ log.info(" Mutation Q: enabled");
203
+ if (tagInvalidationEnabled)
204
+ log.info(" Tag Inval: enabled");
205
+ if (graphqlEnabled)
206
+ log.info(" GraphQL: enabled");
207
+ if (serverPushEnabled)
208
+ log.info(" Server Push: enabled");
209
+ if (pushNotificationsEnabled)
210
+ log.info(" Push Notif: enabled");
211
+ if (precacheDir)
212
+ log.info(` Precache: ${precacheDir} → ${precachePrefix}`);
213
+ log.info("─".repeat(40));
214
+ log.info("");
215
+ const write = await confirm({ message: "Write swoff.config.json?", initialValue: true });
216
+ if (isCancel(write) || !write) {
217
+ outro("Aborted.");
218
+ return;
219
+ }
220
+ const answers = {
221
+ framework: framework,
222
+ swOutput: swOutput,
223
+ swFilename: swFilename,
224
+ navMode: navMode,
225
+ fallback: fallback,
226
+ defaultStrategy: defaultStrategy,
227
+ patterns: activePreset.patterns,
228
+ pwaEnabled: pwaEnabled,
229
+ authEnabled: authEnabled,
230
+ authType,
231
+ mutationEnabled: mutationEnabled,
232
+ tagInvalidationEnabled: tagInvalidationEnabled,
233
+ graphqlEnabled: graphqlEnabled,
234
+ serverPushEnabled: serverPushEnabled,
235
+ pushNotificationsEnabled: pushNotificationsEnabled,
236
+ precacheDir: precacheDir,
237
+ precachePrefix: precachePrefix,
238
+ };
239
+ writeConfig(projectRoot, answers);
240
+ }
241
+ function writeConfig(projectRoot, answers) {
242
+ const config = buildMinimalConfig(answers);
204
243
  const configPath = join(projectRoot, "swoff.config.json");
205
244
  writeFileSync(configPath, JSON.stringify(config, null, 2));
206
- log.info("Created swoff.config.json");
207
- log.success("Swoff initialized successfully!");
208
- log.normal("\nNext steps:");
209
- log.help("1. Review swoff.config.json and customize as needed");
210
- log.help("2. Run: npx @swoff/cli generate");
211
- log.help("3. Read the docs: https://swoff.netlify.app/docs");
245
+ outro(`Config written to swoff.config.json (${Object.keys(config).length} top-level keys)`);
212
246
  }
213
247
  //# sourceMappingURL=init.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/lib/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/lib/commands/init.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/lib/commands/validate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,WAAmB;IACvD,gDAAgD;IAEhD,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,GACxC,MAAM,eAAe,CAAC,WAAW,CAAC,CAAC;IAErC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,GAAG,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;QAChE,OAAO;IACT,CAAC;IAED,GAAG,CAAC,IAAI,CAAC,cAAc,UAAU,KAAK,CAAC,CAAC;IAExC,MAAM,MAAM,GAAG,cAAc,CAAC,MAA4C,CAAC,CAAC;IAE5E,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,GAAG,CAAC,KAAK,CAAC,0BAA0B,MAAM,CAAC,MAAM,YAAY,CAAC,CAAC;QAC/D,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5C,OAAO;IACT,CAAC;IAED,GAAG,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACvC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC9B,GAAG,CAAC,IAAI,CACN,qBAAqB,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,EAAE,CACtE,CAAC;IACF,GAAG,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,CAAC;IACzE,GAAG,CAAC,IAAI,CACN,qBAAqB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;SACjD,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;QACjB,IAAI,CAAC,KAAK,eAAe;YAAE,OAAO,KAAK,CAAC;QACxC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI;YACrC,OAAQ,CAA6B,CAAC,OAAO,KAAK,IAAI,CAAC;QACzD,OAAO,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,CAAC;IAC9C,CAAC,CAAC;SACD,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;SACf,IAAI,CAAC,IAAI,CAAC,EAAE,CAChB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/lib/commands/validate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,WAAmB;IACvD,gDAAgD;IAEhD,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,GACxC,MAAM,eAAe,CAAC,WAAW,CAAC,CAAC;IAErC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,GAAG,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;QAChE,OAAO;IACT,CAAC;IAED,GAAG,CAAC,IAAI,CAAC,cAAc,UAAU,KAAK,CAAC,CAAC;IAExC,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAEtC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,GAAG,CAAC,KAAK,CAAC,0BAA0B,MAAM,CAAC,MAAM,YAAY,CAAC,CAAC;QAC/D,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5C,OAAO;IACT,CAAC;IAED,GAAG,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACvC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC9B,GAAG,CAAC,IAAI,CACN,qBAAqB,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,EAAE,CACtE,CAAC;IACF,GAAG,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,CAAC;IACzE,GAAG,CAAC,IAAI,CACN,qBAAqB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;SACjD,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;QACjB,IAAI,CAAC,KAAK,eAAe;YAAE,OAAO,KAAK,CAAC;QACxC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI;YACrC,OAAQ,CAA6B,CAAC,OAAO,KAAK,IAAI,CAAC;QACzD,OAAO,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,CAAC;IAC9C,CAAC,CAAC;SACD,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;SACf,IAAI,CAAC,IAAI,CAAC,EAAE,CAChB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,64 @@
1
+ export function buildMinimalConfig(answers) {
2
+ const features = {};
3
+ const sw = {
4
+ strategy: {
5
+ default: answers.defaultStrategy,
6
+ },
7
+ navigation: {
8
+ mode: answers.navMode,
9
+ fallback: answers.fallback,
10
+ },
11
+ };
12
+ if (answers.patterns && Object.keys(answers.patterns).length > 0) {
13
+ sw.strategy.patterns = answers.patterns;
14
+ }
15
+ features.serviceWorker = sw;
16
+ if (answers.pwaEnabled) {
17
+ features.pwa = { enabled: true };
18
+ }
19
+ if (answers.authEnabled) {
20
+ features.auth = {
21
+ enabled: true,
22
+ type: (answers.authType || "cookie"),
23
+ };
24
+ }
25
+ if (answers.mutationEnabled) {
26
+ const mq = { enabled: true };
27
+ if (answers.backgroundSync) {
28
+ mq.backgroundSync = true;
29
+ }
30
+ features.mutationQueue = mq;
31
+ }
32
+ if (answers.tagInvalidationEnabled) {
33
+ features.tagInvalidation = { enabled: true };
34
+ }
35
+ if (answers.graphqlEnabled) {
36
+ features.graphql = { enabled: true };
37
+ }
38
+ if (answers.serverPushEnabled) {
39
+ features.serverPush = {
40
+ enabled: true,
41
+ type: "sse",
42
+ endpoint: "/api/events",
43
+ };
44
+ }
45
+ if (answers.pushNotificationsEnabled) {
46
+ features.pushNotifications = true;
47
+ }
48
+ const build = {
49
+ swOutput: answers.swOutput,
50
+ swFilename: answers.swFilename,
51
+ };
52
+ if (answers.precacheDir) {
53
+ build.precacheDirs = {
54
+ [answers.precacheDir]: { prefix: answers.precachePrefix || "/" },
55
+ };
56
+ }
57
+ return {
58
+ $schema: "https://swoff.netlify.app/schema/v1.json",
59
+ framework: answers.framework,
60
+ features,
61
+ build,
62
+ };
63
+ }
64
+ //# sourceMappingURL=minimal-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"minimal-config.js","sourceRoot":"","sources":["../../../src/lib/config/minimal-config.ts"],"names":[],"mappings":"AAuBA,MAAM,UAAU,kBAAkB,CAAC,OAAsB;IACvD,MAAM,QAAQ,GAA4B,EAAE,CAAC;IAE7C,MAAM,EAAE,GAA4B;QAClC,QAAQ,EAAE;YACR,OAAO,EAAE,OAAO,CAAC,eAAe;SACjC;QACD,UAAU,EAAE;YACV,IAAI,EAAE,OAAO,CAAC,OAAO;YACrB,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B;KACF,CAAC;IAEF,IAAI,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChE,EAAE,CAAC,QAAoC,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IACvE,CAAC;IAED,QAAQ,CAAC,aAAa,GAAG,EAAE,CAAC;IAE5B,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACvB,QAAQ,CAAC,GAAG,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACnC,CAAC;IAED,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,QAAQ,CAAC,IAAI,GAAG;YACd,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,CAAC,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAa;SACjD,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;QAC5B,MAAM,EAAE,GAA4B,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtD,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YAC3B,EAAE,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,CAAC;QACD,QAAQ,CAAC,aAAa,GAAG,EAAE,CAAC;IAC9B,CAAC;IAED,IAAI,OAAO,CAAC,sBAAsB,EAAE,CAAC;QACnC,QAAQ,CAAC,eAAe,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC/C,CAAC;IAED,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;QAC3B,QAAQ,CAAC,OAAO,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACvC,CAAC;IAED,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC9B,QAAQ,CAAC,UAAU,GAAG;YACpB,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE,aAAa;SACxB,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,wBAAwB,EAAE,CAAC;QACrC,QAAQ,CAAC,iBAAiB,GAAG,IAAI,CAAC;IACpC,CAAC;IAED,MAAM,KAAK,GAA4B;QACrC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,UAAU,EAAE,OAAO,CAAC,UAAU;KAC/B,CAAC;IAEF,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,KAAK,CAAC,YAAY,GAAG;YACnB,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,cAAc,IAAI,GAAG,EAAE;SACjE,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE,0CAA0C;QACnD,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,QAAQ;QACR,KAAK;KACN,CAAC;AACJ,CAAC"}