@swoff/cli 0.3.13 → 0.3.14

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 (224) hide show
  1. package/README.md +28 -32
  2. package/dist/index.js +2 -13
  3. package/dist/index.js.map +1 -1
  4. package/dist/lib/cli/help.js +3 -8
  5. package/dist/lib/cli/help.js.map +1 -1
  6. package/dist/lib/commands/add.js +29 -87
  7. package/dist/lib/commands/add.js.map +1 -1
  8. package/dist/lib/commands/generate-guide.js +16 -30
  9. package/dist/lib/commands/generate-guide.js.map +1 -1
  10. package/dist/lib/commands/generate.js +31 -6
  11. package/dist/lib/commands/generate.js.map +1 -1
  12. package/dist/lib/commands/init.js +188 -11
  13. package/dist/lib/commands/init.js.map +1 -1
  14. package/dist/lib/commands/validate.js +2 -4
  15. package/dist/lib/commands/validate.js.map +1 -1
  16. package/dist/lib/config/loader.js +34 -25
  17. package/dist/lib/config/loader.js.map +1 -1
  18. package/dist/lib/config/validator.js +202 -96
  19. package/dist/lib/config/validator.js.map +1 -1
  20. package/dist/lib/generators/file-generators/api-config.js +1 -1
  21. package/dist/lib/generators/file-generators/api-config.js.map +1 -1
  22. package/dist/lib/generators/file-generators/auth-adapter.js +13 -0
  23. package/dist/lib/generators/file-generators/auth-adapter.js.map +1 -0
  24. package/dist/lib/generators/file-generators/auth-check.js +40 -0
  25. package/dist/lib/generators/file-generators/auth-check.js.map +1 -0
  26. package/dist/lib/generators/file-generators/auth-store.js +2 -5
  27. package/dist/lib/generators/file-generators/auth-store.js.map +1 -1
  28. package/dist/lib/generators/file-generators/background-sync.js +1 -1
  29. package/dist/lib/generators/file-generators/background-sync.js.map +1 -1
  30. package/dist/lib/generators/file-generators/cache.js +2 -1
  31. package/dist/lib/generators/file-generators/cache.js.map +1 -1
  32. package/dist/lib/generators/file-generators/client-injector-bundle.js +15 -0
  33. package/dist/lib/generators/file-generators/client-injector-bundle.js.map +1 -0
  34. package/dist/lib/generators/file-generators/client-injector.js +2 -1
  35. package/dist/lib/generators/file-generators/client-injector.js.map +1 -1
  36. package/dist/lib/generators/file-generators/connectivity-manager.js +12 -0
  37. package/dist/lib/generators/file-generators/connectivity-manager.js.map +1 -0
  38. package/dist/lib/generators/file-generators/connectivity.js +12 -0
  39. package/dist/lib/generators/file-generators/connectivity.js.map +1 -0
  40. package/dist/lib/generators/file-generators/context.js +7 -0
  41. package/dist/lib/generators/file-generators/context.js.map +1 -1
  42. package/dist/lib/generators/file-generators/fetch-wrapper.js +1 -1
  43. package/dist/lib/generators/file-generators/fetch-wrapper.js.map +1 -1
  44. package/dist/lib/generators/file-generators/generate-framework-adapters.js +29 -20
  45. package/dist/lib/generators/file-generators/generate-framework-adapters.js.map +1 -1
  46. package/dist/lib/generators/file-generators/gql-wrapper.js +2 -2
  47. package/dist/lib/generators/file-generators/gql-wrapper.js.map +1 -1
  48. package/dist/lib/generators/file-generators/guide-generator.js +51 -1
  49. package/dist/lib/generators/file-generators/guide-generator.js.map +1 -1
  50. package/dist/lib/generators/file-generators/invalidation-tags.js +2 -3
  51. package/dist/lib/generators/file-generators/invalidation-tags.js.map +1 -1
  52. package/dist/lib/generators/file-generators/mutation-queue.js +2 -2
  53. package/dist/lib/generators/file-generators/mutation-queue.js.map +1 -1
  54. package/dist/lib/generators/file-generators/mutation-state.js +1 -1
  55. package/dist/lib/generators/file-generators/mutation-state.js.map +1 -1
  56. package/dist/lib/generators/file-generators/notification-generator.js +6 -0
  57. package/dist/lib/generators/file-generators/notification-generator.js.map +1 -0
  58. package/dist/lib/generators/file-generators/open-db.js +6 -0
  59. package/dist/lib/generators/file-generators/open-db.js.map +1 -0
  60. package/dist/lib/generators/file-generators/push.js +1 -2
  61. package/dist/lib/generators/file-generators/push.js.map +1 -1
  62. package/dist/lib/generators/file-generators/pwa-install.js +2 -6
  63. package/dist/lib/generators/file-generators/pwa-install.js.map +1 -1
  64. package/dist/lib/generators/file-generators/server-push.js +1 -1
  65. package/dist/lib/generators/file-generators/server-push.js.map +1 -1
  66. package/dist/lib/generators/file-generators/storage-generator.js +6 -0
  67. package/dist/lib/generators/file-generators/storage-generator.js.map +1 -0
  68. package/dist/lib/generators/file-generators/storage-notify.js +6 -0
  69. package/dist/lib/generators/file-generators/storage-notify.js.map +1 -0
  70. package/dist/lib/generators/file-generators/storage.js +6 -0
  71. package/dist/lib/generators/file-generators/storage.js.map +1 -0
  72. package/dist/lib/generators/file-generators/sw-generator-build.js +96 -45
  73. package/dist/lib/generators/file-generators/sw-generator-build.js.map +1 -1
  74. package/dist/lib/generators/file-generators/sw-injector.js +0 -4
  75. package/dist/lib/generators/file-generators/sw-injector.js.map +1 -1
  76. package/dist/lib/generators/file-generators/sw-template.js +8 -9
  77. package/dist/lib/generators/file-generators/sw-template.js.map +1 -1
  78. package/dist/lib/generators/file-generators/sw-version-gen.js +32 -0
  79. package/dist/lib/generators/file-generators/sw-version-gen.js.map +1 -0
  80. package/dist/lib/generators/file-generators/swoff-api-bundle.js +51 -0
  81. package/dist/lib/generators/file-generators/swoff-api-bundle.js.map +1 -0
  82. package/dist/lib/generators/sw-build-utils.js +69 -0
  83. package/dist/lib/generators/sw-build-utils.js.map +1 -0
  84. package/dist/lib/generators/sw-generator.js +23 -34
  85. package/dist/lib/generators/sw-generator.js.map +1 -1
  86. package/dist/lib/generators/sw-sections/activate-handler.js +74 -23
  87. package/dist/lib/generators/sw-sections/activate-handler.js.map +1 -1
  88. package/dist/lib/generators/sw-sections/assemble-sw.js +15 -94
  89. package/dist/lib/generators/sw-sections/assemble-sw.js.map +1 -1
  90. package/dist/lib/generators/sw-sections/background-sync-handler.js +74 -72
  91. package/dist/lib/generators/sw-sections/background-sync-handler.js.map +1 -1
  92. package/dist/lib/generators/sw-sections/batch-refresh-queue.js +102 -0
  93. package/dist/lib/generators/sw-sections/batch-refresh-queue.js.map +1 -0
  94. package/dist/lib/generators/sw-sections/config-header.js +2 -3
  95. package/dist/lib/generators/sw-sections/config-header.js.map +1 -1
  96. package/dist/lib/generators/sw-sections/default-template.js +59 -6
  97. package/dist/lib/generators/sw-sections/default-template.js.map +1 -1
  98. package/dist/lib/generators/sw-sections/fetch-handler.js +621 -495
  99. package/dist/lib/generators/sw-sections/fetch-handler.js.map +1 -1
  100. package/dist/lib/generators/sw-sections/install-handler.js +40 -23
  101. package/dist/lib/generators/sw-sections/install-handler.js.map +1 -1
  102. package/dist/lib/generators/sw-sections/message-handler.js +25 -8
  103. package/dist/lib/generators/sw-sections/message-handler.js.map +1 -1
  104. package/dist/lib/generators/sw-sections/server-push-handler.js +10 -14
  105. package/dist/lib/generators/sw-sections/server-push-handler.js.map +1 -1
  106. package/dist/lib/generators/sw-sections/shared.js +68 -0
  107. package/dist/lib/generators/sw-sections/shared.js.map +1 -0
  108. package/dist/lib/generators/sw-sections/sw-push.js +2 -6
  109. package/dist/lib/generators/sw-sections/sw-push.js.map +1 -1
  110. package/dist/lib/generators/sw-sections/tag-management.js +55 -86
  111. package/dist/lib/generators/sw-sections/tag-management.js.map +1 -1
  112. package/dist/lib/generators/swoff-files-generator.js +183 -59
  113. package/dist/lib/generators/swoff-files-generator.js.map +1 -1
  114. package/dist/lib/shared/config-types.js +67 -63
  115. package/dist/lib/shared/config-types.js.map +1 -1
  116. package/dist/lib/shared/feature-registry.js +198 -0
  117. package/dist/lib/shared/feature-registry.js.map +1 -0
  118. package/dist/lib/utils/detect-framework.js +52 -9
  119. package/dist/lib/utils/detect-framework.js.map +1 -1
  120. package/dist/runtime/api-config.js +2 -2
  121. package/dist/runtime/api-config.js.map +1 -1
  122. package/dist/runtime/auth-adapter.js +179 -0
  123. package/dist/runtime/auth-adapter.js.map +1 -0
  124. package/dist/runtime/auth-state.js +16 -6
  125. package/dist/runtime/auth-state.js.map +1 -1
  126. package/dist/runtime/auth-store.js +219 -213
  127. package/dist/runtime/auth-store.js.map +1 -1
  128. package/dist/runtime/auth-user.js +5 -19
  129. package/dist/runtime/auth-user.js.map +1 -1
  130. package/dist/runtime/background-sync.js +5 -2
  131. package/dist/runtime/background-sync.js.map +1 -1
  132. package/dist/runtime/cache.js +91 -3
  133. package/dist/runtime/cache.js.map +1 -1
  134. package/dist/runtime/client-injector-bundle.js +314 -0
  135. package/dist/runtime/client-injector-bundle.js.map +1 -0
  136. package/dist/runtime/client-injector.js +173 -30
  137. package/dist/runtime/client-injector.js.map +1 -1
  138. package/dist/runtime/connectivity-manager.js +83 -0
  139. package/dist/runtime/connectivity-manager.js.map +1 -0
  140. package/dist/runtime/connectivity.js +83 -0
  141. package/dist/runtime/connectivity.js.map +1 -0
  142. package/dist/runtime/fetch-wrapper.js +26 -59
  143. package/dist/runtime/fetch-wrapper.js.map +1 -1
  144. package/dist/runtime/gql-wrapper.js +15 -9
  145. package/dist/runtime/gql-wrapper.js.map +1 -1
  146. package/dist/runtime/invalidation-tags.js +12 -89
  147. package/dist/runtime/invalidation-tags.js.map +1 -1
  148. package/dist/runtime/mutation-queue.js +83 -31
  149. package/dist/runtime/mutation-queue.js.map +1 -1
  150. package/dist/runtime/mutation-state.js +3 -3
  151. package/dist/runtime/mutation-state.js.map +1 -1
  152. package/dist/runtime/notification.js +65 -0
  153. package/dist/runtime/notification.js.map +1 -0
  154. package/dist/runtime/open-db.js +41 -0
  155. package/dist/runtime/open-db.js.map +1 -0
  156. package/dist/runtime/push.js +15 -27
  157. package/dist/runtime/push.js.map +1 -1
  158. package/dist/runtime/pwa-injector.js +3 -32
  159. package/dist/runtime/pwa-injector.js.map +1 -1
  160. package/dist/runtime/pwa-prompt.js +35 -3
  161. package/dist/runtime/pwa-prompt.js.map +1 -1
  162. package/dist/runtime/reset.js +39 -42
  163. package/dist/runtime/reset.js.map +1 -1
  164. package/dist/runtime/server-push.js +23 -13
  165. package/dist/runtime/server-push.js.map +1 -1
  166. package/dist/runtime/storage.js +32 -0
  167. package/dist/runtime/storage.js.map +1 -0
  168. package/dist/runtime/sw-injector.js +19 -178
  169. package/dist/runtime/sw-injector.js.map +1 -1
  170. package/dist/runtime/sw-version.js +13 -0
  171. package/dist/runtime/sw-version.js.map +1 -0
  172. package/dist/runtime/swoff-api-bundle.js +1491 -0
  173. package/dist/runtime/swoff-api-bundle.js.map +1 -0
  174. package/dist/runtime/type-definitions.js +8 -7
  175. package/dist/runtime/type-definitions.js.map +1 -1
  176. package/dist/runtime/utils.js +4 -0
  177. package/dist/runtime/utils.js.map +1 -1
  178. package/dist/swoff-nkdhhmw8. +18 -0
  179. package/dist/swoff.js +5 -0
  180. package/package.json +1 -1
  181. package/templates/react/useAuth.jsx +7 -4
  182. package/templates/react/useAuth.tsx +14 -14
  183. package/templates/react/useBackgroundSync.jsx +5 -4
  184. package/templates/react/useBackgroundSync.tsx +5 -4
  185. package/templates/react/useCachedFetch.jsx +8 -0
  186. package/templates/react/useCachedFetch.tsx +8 -0
  187. package/templates/react/useMutation.jsx +60 -56
  188. package/templates/react/useMutation.tsx +65 -64
  189. package/templates/react/useMutationQueue.jsx +5 -1
  190. package/templates/react/useMutationQueue.tsx +8 -2
  191. package/templates/react/useMutationState.jsx +3 -4
  192. package/templates/react/useMutationState.tsx +4 -8
  193. package/templates/react/useNetworkStatus.jsx +57 -17
  194. package/templates/react/useNetworkStatus.tsx +42 -20
  195. package/templates/react/useOfflineAnalytics.jsx +42 -0
  196. package/templates/react/useOfflineAnalytics.tsx +50 -0
  197. package/templates/react/usePwaInstall.jsx +26 -0
  198. package/templates/react/usePwaInstall.tsx +26 -0
  199. package/templates/react/useSWUpdate.jsx +7 -52
  200. package/templates/react/useSWUpdate.tsx +12 -51
  201. package/templates/react/useStorageEstimate.jsx +56 -0
  202. package/templates/react/useStorageEstimate.tsx +67 -0
  203. package/dist/__tests__/assemble-sw.test.js +0 -145
  204. package/dist/__tests__/assemble-sw.test.js.map +0 -1
  205. package/dist/__tests__/cli-integration.test.js +0 -231
  206. package/dist/__tests__/cli-integration.test.js.map +0 -1
  207. package/dist/__tests__/config-types.test.js +0 -124
  208. package/dist/__tests__/config-types.test.js.map +0 -1
  209. package/dist/__tests__/detect-language.test.js +0 -51
  210. package/dist/__tests__/detect-language.test.js.map +0 -1
  211. package/dist/__tests__/file-generators.test.js +0 -228
  212. package/dist/__tests__/file-generators.test.js.map +0 -1
  213. package/dist/__tests__/glob-matcher.test.js +0 -86
  214. package/dist/__tests__/glob-matcher.test.js.map +0 -1
  215. package/dist/__tests__/invalidation-tags.test.js +0 -283
  216. package/dist/__tests__/invalidation-tags.test.js.map +0 -1
  217. package/dist/__tests__/loader.test.js +0 -77
  218. package/dist/__tests__/loader.test.js.map +0 -1
  219. package/dist/__tests__/validator.test.js +0 -340
  220. package/dist/__tests__/validator.test.js.map +0 -1
  221. package/templates/react/useCacheInvalidation.jsx +0 -19
  222. package/templates/react/useCacheInvalidation.tsx +0 -52
  223. package/templates/react/useIsFetching.jsx +0 -32
  224. package/templates/react/useIsFetching.tsx +0 -32
@@ -1,16 +1,3 @@
1
- /**
2
- * Swoff Files Generator
3
- *
4
- * Generates framework-agnostic pattern files based on swoff.config.json features.
5
- * Thin orchestrator - delegates to file-generators for each template.
6
- *
7
- * CLI Usage:
8
- * node swoff-files-generator.js --project-root <path> --language <ts|js> --config-path <path>
9
- *
10
- * Module Usage:
11
- * import { generateFiles } from './swoff-files-generator.js';
12
- * const files = generateFiles(ctx);
13
- */
14
1
  import { join } from "path";
15
2
  import { fileURLToPath } from "url";
16
3
  import { loadConfigAsync } from "../config/loader.js";
@@ -18,9 +5,11 @@ import { generateApiConfig } from "./file-generators/api-config.js";
18
5
  import { generateSwTemplate } from "./file-generators/sw-template.js";
19
6
  import { generateSwInjector } from "./file-generators/sw-injector.js";
20
7
  import { generateClientInjector } from "./file-generators/client-injector.js";
8
+ import { generateClientInjectorBundle } from "./file-generators/client-injector-bundle.js";
21
9
  import { generateFetchWrapper } from "./file-generators/fetch-wrapper.js";
22
10
  import { generateCache } from "./file-generators/cache.js";
23
11
  import { generateMutationQueue } from "./file-generators/mutation-queue.js";
12
+ import { shouldIncludeBackgroundSync, shouldIncludeServerPush } from "./sw-sections/shared.js";
24
13
  import { generateBackgroundSync } from "./file-generators/background-sync.js";
25
14
  import { generatePwaInstall } from "./file-generators/pwa-install.js";
26
15
  import { generateInvalidationTags } from "./file-generators/invalidation-tags.js";
@@ -28,40 +17,177 @@ import { generatePush } from "./file-generators/push.js";
28
17
  import { generateMutationState } from "./file-generators/mutation-state.js";
29
18
  import { generateServerPush } from "./file-generators/server-push.js";
30
19
  import { generateAuthStore } from "./file-generators/auth-store.js";
31
- import { generateAuthUser } from "./file-generators/auth-user.js";
20
+ import { generateAuthAdapter } from "./file-generators/auth-adapter.js";
32
21
  import { generateAuthState } from "./file-generators/auth-state.js";
33
22
  import { generateSwGeneratorBuild } from "./file-generators/sw-generator-build.js";
34
23
  import { generateGqlWrapper } from "./file-generators/gql-wrapper.js";
35
24
  import { generateTypeDefinitions } from "./file-generators/type-definitions.js";
36
25
  import { generateFrameworkAdapters } from "./file-generators/generate-framework-adapters.js";
37
- import { generateGuide } from "./file-generators/guide-generator.js";
26
+ import { generateSwoffApiBundle } from "./file-generators/swoff-api-bundle.js";
38
27
  import { generateReset } from "./file-generators/reset.js";
39
- import { generateFetchState } from "./file-generators/fetch-state.js";
28
+ import { generateOpenDB } from "./file-generators/open-db.js";
29
+ import { generateStorage } from "./file-generators/storage.js";
30
+ import { generateConnectivity } from "./file-generators/connectivity.js";
31
+ import { generateAuthCheck } from "./file-generators/auth-check.js";
32
+ import { hasBundler } from "./file-generators/context.js";
33
+ function resolveFeatures(config) {
34
+ const auth = config.features.auth.enabled;
35
+ const mutationQueue = config.features.mutationQueue.enabled;
36
+ const tagInvalidation = config.features.tagInvalidation.enabled || mutationQueue || config.features.graphql.enabled;
37
+ const connectivity = config.features.connectivity.enabled || auth;
38
+ const push = config.features.pushNotifications;
39
+ const graphql = config.features.graphql.enabled;
40
+ const pwa = config.features.pwa.enabled;
41
+ const serverPush = shouldIncludeServerPush(config);
42
+ const backgroundSync = shouldIncludeBackgroundSync(config);
43
+ return {
44
+ connectivity,
45
+ tagInvalidation,
46
+ auth,
47
+ mutationQueue,
48
+ backgroundSync,
49
+ push,
50
+ graphql,
51
+ pwa,
52
+ serverPush,
53
+ needDb: auth || mutationQueue || push,
54
+ };
55
+ }
40
56
  export function generateFiles(ctx) {
57
+ const bundler = ctx.hasBundler;
58
+ const f = resolveFeatures(ctx.config);
59
+ if (!bundler) {
60
+ ctx.hasBundler = false;
61
+ const hasApiFeatures = f.tagInvalidation || f.auth || f.mutationQueue || f.graphql || f.push;
62
+ const bundleSteps = [
63
+ { name: "sw-template", gen: () => generateSwTemplate(ctx), enabled: true },
64
+ { name: "sw-generator", gen: () => generateSwGeneratorBuild(ctx), enabled: true },
65
+ {
66
+ name: "client-injector-bundle",
67
+ gen: () => generateClientInjectorBundle(ctx),
68
+ enabled: true,
69
+ },
70
+ {
71
+ name: "swoff-api-bundle",
72
+ gen: () => generateSwoffApiBundle(ctx),
73
+ enabled: hasApiFeatures,
74
+ },
75
+ ];
76
+ for (const step of bundleSteps) {
77
+ if (!step.enabled)
78
+ continue;
79
+ step.gen();
80
+ }
81
+ return ctx.generatedFiles;
82
+ }
41
83
  const steps = [
42
- { name: "api-config", gen: () => generateApiConfig(ctx), enabled: true },
84
+ { name: "api-config", gen: () => generateApiConfig(ctx), enabled: f.serverPush },
43
85
  { name: "sw-template", gen: () => generateSwTemplate(ctx), enabled: true },
44
86
  { name: "sw-injector", gen: () => generateSwInjector(ctx), enabled: true },
45
- { name: "client-injector", gen: () => generateClientInjector(ctx), enabled: true },
46
- { name: "fetch/core", gen: () => generateFetchWrapper(ctx), enabled: true },
47
- { name: "cache/index", gen: () => generateCache(ctx), enabled: true },
48
- { name: "fetch/state", gen: () => generateFetchState(ctx), enabled: true },
87
+ {
88
+ name: "client-injector",
89
+ gen: () => generateClientInjector(ctx),
90
+ enabled: true,
91
+ },
92
+ {
93
+ name: "connectivity",
94
+ gen: () => generateConnectivity(ctx),
95
+ enabled: f.connectivity,
96
+ },
97
+ { name: "storage", gen: () => generateStorage(ctx), enabled: true },
49
98
  { name: "reset", gen: () => generateReset(ctx), enabled: true },
50
- { name: "offline/queue", gen: () => generateMutationQueue(ctx), enabled: ctx.config.features.mutationQueue.enabled },
51
- { name: "offline/state", gen: () => generateMutationState(ctx), enabled: ctx.config.features.mutationQueue.enabled },
52
- { name: "offline/sync", gen: () => generateBackgroundSync(ctx), enabled: ctx.config.features.backgroundSync && ctx.config.features.mutationQueue.enabled && !(ctx.config.features.auth.enabled && ctx.config.features.auth.type !== "cookie") },
53
- { name: "auth-store", gen: () => generateAuthStore(ctx), enabled: ctx.config.features.auth.enabled },
54
- { name: "auth-user", gen: () => generateAuthUser(ctx), enabled: ctx.config.features.auth.enabled },
55
- { name: "auth-state", gen: () => generateAuthState(ctx), enabled: ctx.config.features.auth.enabled },
56
- { name: "sw-generator", gen: () => generateSwGeneratorBuild(ctx), enabled: true },
57
- { name: "swoff.d.ts", gen: () => generateTypeDefinitions(ctx), enabled: ctx.ext === "ts" },
58
- { name: "pwa/injector", gen: () => generatePwaInstall(ctx), enabled: ctx.config.features.pwa.enabled },
59
- { name: "cache/tags", gen: () => generateInvalidationTags(ctx), enabled: true },
60
- { name: "graphql/index", gen: () => generateGqlWrapper(ctx), enabled: ctx.config.features.graphql.enabled },
61
- { name: "realtime/notifications", gen: () => generatePush(ctx), enabled: ctx.config.features.pushNotifications?.enabled ?? false },
62
- { name: "realtime/server-push", gen: () => generateServerPush(ctx), enabled: ctx.config.features.serverPush.enabled },
63
- { name: "framework-adapters", gen: () => generateFrameworkAdapters(ctx), enabled: true },
64
- { name: "GUIDE.md", gen: () => generateGuide(ctx), enabled: true },
99
+ { name: "db", gen: () => generateOpenDB(ctx), enabled: f.needDb },
100
+ {
101
+ name: "fetch/core",
102
+ gen: () => generateFetchWrapper(ctx),
103
+ enabled: f.tagInvalidation,
104
+ },
105
+ {
106
+ name: "cache/tags",
107
+ gen: () => generateInvalidationTags(ctx),
108
+ enabled: f.tagInvalidation,
109
+ },
110
+ {
111
+ name: "cache/invalidate",
112
+ gen: () => generateCache(ctx),
113
+ enabled: f.tagInvalidation,
114
+ },
115
+ {
116
+ name: "mutation/queue",
117
+ gen: () => generateMutationQueue(ctx),
118
+ enabled: f.mutationQueue,
119
+ },
120
+ {
121
+ name: "mutation/state",
122
+ gen: () => generateMutationState(ctx),
123
+ enabled: f.mutationQueue,
124
+ },
125
+ {
126
+ name: "mutation/sync",
127
+ gen: () => generateBackgroundSync(ctx),
128
+ enabled: f.backgroundSync,
129
+ },
130
+ {
131
+ name: "auth/adapter",
132
+ gen: () => generateAuthAdapter(ctx),
133
+ enabled: f.auth,
134
+ },
135
+ {
136
+ name: "auth-store",
137
+ gen: () => generateAuthStore(ctx),
138
+ enabled: f.auth,
139
+ },
140
+ {
141
+ name: "auth-state",
142
+ gen: () => generateAuthState(ctx),
143
+ enabled: f.auth,
144
+ },
145
+ {
146
+ name: "auth/check",
147
+ gen: () => generateAuthCheck(ctx),
148
+ enabled: f.auth,
149
+ },
150
+ {
151
+ name: "sw-generator",
152
+ gen: () => generateSwGeneratorBuild(ctx),
153
+ enabled: true,
154
+ },
155
+ {
156
+ name: "swoff.d.ts",
157
+ gen: () => generateTypeDefinitions(ctx),
158
+ enabled: ctx.ext === "ts",
159
+ },
160
+ {
161
+ name: "pwa/prompt",
162
+ gen: () => generatePwaInstall(ctx),
163
+ enabled: f.pwa,
164
+ },
165
+ {
166
+ name: "graphql/index",
167
+ gen: () => generateGqlWrapper(ctx),
168
+ enabled: f.graphql,
169
+ },
170
+ {
171
+ name: "push-notification/index",
172
+ gen: () => generatePush(ctx),
173
+ enabled: f.push,
174
+ },
175
+ {
176
+ name: "server-push/client",
177
+ gen: () => generateServerPush(ctx),
178
+ enabled: f.serverPush,
179
+ },
180
+ {
181
+ name: "framework-adapters",
182
+ gen: () => generateFrameworkAdapters(ctx),
183
+ enabled: [
184
+ "react-spa",
185
+ "nextjs",
186
+ "remix",
187
+ "tanstack-start-react",
188
+ "astro",
189
+ ].includes(ctx.frameworkName),
190
+ },
65
191
  ];
66
192
  for (const step of steps) {
67
193
  if (!step.enabled)
@@ -71,7 +197,8 @@ export function generateFiles(ctx) {
71
197
  return ctx.generatedFiles;
72
198
  }
73
199
  // --- CLI entry point ---
74
- if (fileURLToPath(import.meta.url) === fileURLToPath(new URL(process.argv[1], "file:"))) {
200
+ if (fileURLToPath(import.meta.url) ===
201
+ fileURLToPath(new URL(process.argv[1], "file:"))) {
75
202
  const args = process.argv.slice(2);
76
203
  const getArg = (name) => {
77
204
  const idx = args.indexOf(`--${name}`);
@@ -80,21 +207,22 @@ if (fileURLToPath(import.meta.url) === fileURLToPath(new URL(process.argv[1], "f
80
207
  const projectRoot = getArg("project-root") || process.cwd();
81
208
  const language = getArg("language") || "ts";
82
209
  const configPath = getArg("config-path") || join(projectRoot, "swoff.config.json");
83
- loadConfigAsync(projectRoot, configPath).then(({ config }) => {
84
- if (!config.enabled) {
85
- console.log("Config generation disabled");
86
- process.exit(0);
87
- }
210
+ const debug = getArg("debug") === "true";
211
+ loadConfigAsync(projectRoot, configPath)
212
+ .then(({ config }) => {
88
213
  const ext = language === "ts" ? "ts" : "js";
89
214
  const swoffDir = join(projectRoot, "swoff");
90
215
  const generatedFiles = [];
216
+ const fwName = config.framework ?? "vanilla";
91
217
  const ctx = {
92
218
  config,
93
219
  projectRoot,
94
220
  swoffDir,
95
221
  ext,
96
222
  generatedFiles,
97
- frameworkName: config.framework ?? "vanilla",
223
+ frameworkName: fwName,
224
+ hasBundler: hasBundler(fwName),
225
+ debug,
98
226
  };
99
227
  console.log(`Generating Swoff files (${language})...`);
100
228
  generateFiles(ctx);
@@ -104,26 +232,22 @@ if (fileURLToPath(import.meta.url) === fileURLToPath(new URL(process.argv[1], "f
104
232
  if (config.features.auth.enabled) {
105
233
  const authType = config.features.auth.type;
106
234
  console.log(`\n--- Auth Setup ---`);
107
- console.log(` Auth type: ${authType}`);
108
- console.log(` 1. Edit swoff/auth/user.ts to match your backend:`);
109
- if (authType === "cookie") {
110
- console.log(` - refreshSession(): adjust method, URL, or body if your refresh endpoint differs`);
111
- console.log(` - fetchCurrentUser(): adjust method or URL for your /api/me endpoint`);
112
- console.log(` Cookie auth uses credentials: "include" no token management needed.`);
235
+ console.log(` Auth adapter: ${authType}`);
236
+ console.log(` 1. Edit swoff/auth/adapter.ts to match your backend:`);
237
+ if (authType === "cookie" || authType === "bearer" || authType === "custom") {
238
+ console.log(` - getHeaders(): return auth headers for fetch requests`);
239
+ console.log(` - refresh(): implement token/session refresh`);
240
+ console.log(` - fetchUser(): implement fetching current user`);
113
241
  }
114
242
  else {
115
- console.log(` - refreshSession(): add token header or body logic for your server`);
116
- console.log(` - fetchCurrentUser(): add the Authorization header using the user's token`);
117
- console.log(` Get the token from auth/store.ts via getAuth().`);
243
+ console.log(` - Review the import path and defaults for your auth provider.`);
118
244
  }
119
- console.log(` 2. Edit swoff/auth/store.ts to match your login response shape:`);
120
- console.log(` - createAuthFromResponse(): map your backend's JSON fields to AuthData`);
121
- console.log(` 3. Edit swoff/fetch-wrapper.ts options per-request as needed:`);
122
- console.log(` - Use { auth: true } for authenticated requests`);
123
- console.log(` - Use { invalidate: [...] } for custom cache invalidation`);
245
+ console.log(` 2. Use { auth: true } in fetchWithCache for authenticated requests`);
246
+ console.log(` 3. Use setAuth()/clearAuth() from auth/store.ts in login/logout handlers`);
124
247
  }
125
- }).catch((err) => {
126
- console.error("Failed to load config:", err.message);
248
+ })
249
+ .catch((err) => {
250
+ console.error("Failed to load config:", err instanceof Error ? err.message : String(err));
127
251
  process.exit(1);
128
252
  });
129
253
  }
@@ -1 +1 @@
1
- {"version":3,"file":"swoff-files-generator.js","sourceRoot":"","sources":["../../../src/lib/generators/swoff-files-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"swoff-files-generator.js","sourceRoot":"","sources":["../../../src/lib/generators/swoff-files-generator.ts"],"names":[],"mappings":"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"}
@@ -4,28 +4,23 @@ export const REACTIVE_FIELDS = [
4
4
  "refetchOnReconnect",
5
5
  "refetchOnFocus",
6
6
  ];
7
- export const CONFIG_VERSION = 1;
8
7
  export const KNOWN_FEATURES = [
9
8
  "refetchQueue",
10
9
  "mutationQueue",
11
- "backgroundSync",
12
10
  "auth",
13
- "crossTabSync",
14
- "tagInvalidation",
15
11
  "graphql",
16
12
  "pushNotifications",
17
- "serverPush",
18
13
  ];
19
14
  export const OBJECT_FEATURES = [
20
15
  "pwa",
21
16
  "serviceWorker",
22
17
  "auth",
23
- "pushNotifications",
24
18
  "graphql",
25
- "serverPush",
26
19
  "tagInvalidation",
27
20
  "mutationQueue",
28
21
  "refetchQueue",
22
+ "serverPush",
23
+ "connectivity",
29
24
  ];
30
25
  export const VALID_STRATEGIES = [
31
26
  "cache-first",
@@ -38,56 +33,74 @@ export const VALID_STRATEGIES = [
38
33
  export const API_PREFIXES = ["api", "v1", "v2", "v3", "rest", "graphql", "gql"];
39
34
  export const defaultAuth = {
40
35
  enabled: false,
41
- type: "bearer",
42
- refreshPath: "/api/refresh",
43
- userEndpoint: "/api/me",
36
+ type: "cookie",
37
+ routePaths: ["/login", "/logout", "/register", "/api/login", "/api/logout", "/api/register", "/api/refresh", "/api/me"],
44
38
  };
45
39
  export const defaultGql = {
46
40
  enabled: false,
47
- endpoint: "/graphql",
41
+ endpoints: ["/graphql"],
48
42
  };
49
43
  export const defaultMutationQueue = {
50
44
  enabled: false,
51
45
  batchSize: 1,
52
46
  batchDelayMs: 0,
53
- maxRetries: 5,
54
- retryBackoffMs: 1000,
47
+ backgroundSync: false,
48
+ retry: { maxRetries: 5, backoffMs: 1000, maxBackoffMs: 30000, jitterMs: 250 },
55
49
  };
56
50
  export const defaultRefetchQueue = {
57
51
  batchSize: 5,
58
52
  batchDelayMs: 1000,
59
- maxRetries: 3,
60
- retryDelayMs: 1000,
53
+ retry: { maxRetries: 3, backoffMs: 1000, maxBackoffMs: 10000, jitterMs: 100 },
61
54
  };
62
- export const defaultServerPush = {
55
+ export const defaultServerPushConfig = {
63
56
  enabled: false,
64
57
  type: "sse",
65
58
  endpoint: "/api/events",
66
59
  reconnectDelayMs: 5000,
67
60
  };
61
+ export const defaultConnectivity = {
62
+ enabled: false,
63
+ heartbeatIntervalMs: 30000,
64
+ };
68
65
  export const defaultTagInvalidation = {
66
+ enabled: false,
69
67
  debounceMs: 0,
70
- prefixes: [...API_PREFIXES],
68
+ skipPrefixes: [...API_PREFIXES],
71
69
  patterns: {},
72
70
  singularization: {},
73
71
  cascading: {},
74
72
  };
73
+ export function deepMerge(base, override) {
74
+ const result = { ...base };
75
+ for (const key of Object.keys(override)) {
76
+ const baseVal = base[key];
77
+ const overrideVal = override[key];
78
+ if (typeof baseVal === "object" && baseVal !== null &&
79
+ typeof overrideVal === "object" && overrideVal !== null &&
80
+ !Array.isArray(baseVal) &&
81
+ !Array.isArray(overrideVal)) {
82
+ result[key] = deepMerge(baseVal, overrideVal);
83
+ }
84
+ else {
85
+ result[key] = overrideVal ?? baseVal;
86
+ }
87
+ }
88
+ return result;
89
+ }
75
90
  export function mergeConfigs(base, override) {
76
91
  return {
77
92
  ...base,
78
93
  ...override,
79
- apiBaseUrl: override.apiBaseUrl ?? base.apiBaseUrl,
94
+ build: { ...base.build, ...override.build },
80
95
  features: {
81
96
  ...base.features,
82
97
  ...override.features,
98
+ requestBatchWindowMs: override.features?.requestBatchWindowMs ??
99
+ base.features.requestBatchWindowMs,
83
100
  pwa: { ...base.features.pwa, ...override.features?.pwa },
84
101
  serviceWorker: {
85
102
  ...base.features.serviceWorker,
86
103
  ...override.features?.serviceWorker,
87
- version: override.features?.serviceWorker?.version ??
88
- base.features.serviceWorker.version ?? "package",
89
- minSupportedVersion: override.features?.serviceWorker?.minSupportedVersion ??
90
- base.features.serviceWorker.minSupportedVersion,
91
104
  strategy: {
92
105
  ...base.features.serviceWorker.strategy,
93
106
  ...override.features?.serviceWorker?.strategy,
@@ -123,46 +136,46 @@ export function mergeConfigs(base, override) {
123
136
  ...base.features.graphql,
124
137
  ...override.features?.graphql,
125
138
  },
139
+ connectivity: {
140
+ ...defaultConnectivity,
141
+ ...base.features.connectivity,
142
+ ...override.features?.connectivity,
143
+ },
126
144
  tagInvalidation: {
127
145
  ...defaultTagInvalidation,
128
146
  ...base.features.tagInvalidation,
129
147
  ...override.features?.tagInvalidation,
130
148
  },
131
- pushNotifications: {
132
- ...base.features.pushNotifications,
133
- ...override.features?.pushNotifications,
134
- },
149
+ pushNotifications: override.features?.pushNotifications ??
150
+ base.features.pushNotifications,
135
151
  serverPush: {
136
- ...defaultServerPush,
152
+ ...defaultServerPushConfig,
137
153
  ...base.features.serverPush,
138
154
  ...override.features?.serverPush,
139
155
  },
140
156
  },
141
- build: { ...base.build, ...override.build },
142
157
  };
143
158
  }
144
159
  export const defaultConfig = {
145
- configVersion: CONFIG_VERSION,
146
- enabled: true,
147
- apiBaseUrl: "",
160
+ build: {
161
+ outputDir: "dist",
162
+ swFilename: "sw",
163
+ precacheDirs: {},
164
+ },
148
165
  features: {
166
+ requestBatchWindowMs: 50,
149
167
  pwa: {
150
- enabled: true,
168
+ enabled: false,
151
169
  preventDefaultInstall: false,
152
170
  },
153
171
  serviceWorker: {
154
- version: "package",
155
- minSupportedVersion: "0.0.0",
156
- autoUpdate: true,
157
172
  autoActivate: false,
158
- requestBatchWindowMs: 50,
159
173
  strategy: {
160
174
  default: "cache-first",
161
- mode: "all",
162
- clearRuntimeOnUpdate: false,
163
175
  maxRuntimeCacheAge: 2592000,
164
176
  normalizeKey: false,
165
177
  ignoreQueryParams: [],
178
+ timeout: 10,
166
179
  patterns: {},
167
180
  reactive: {
168
181
  defaults: {
@@ -176,50 +189,42 @@ export const defaultConfig = {
176
189
  navigation: {
177
190
  mode: "spa",
178
191
  preload: true,
179
- fallback: "/index.html",
192
+ fallback: "",
193
+ precacheRoutes: [],
194
+ rules: [],
180
195
  },
181
196
  },
182
197
  refetchQueue: { ...defaultRefetchQueue },
183
198
  mutationQueue: { ...defaultMutationQueue },
184
- backgroundSync: false,
185
199
  auth: { ...defaultAuth },
186
- crossTabSync: true,
200
+ connectivity: { ...defaultConnectivity },
187
201
  tagInvalidation: { ...defaultTagInvalidation },
188
202
  graphql: { ...defaultGql },
189
- pushNotifications: { enabled: false },
190
- serverPush: { ...defaultServerPush },
191
- },
192
- build: {
193
- outputDir: "dist",
194
- swFilename: "sw",
203
+ pushNotifications: false,
204
+ serverPush: { ...defaultServerPushConfig },
195
205
  },
196
206
  };
197
207
  export const defaultInitConfig = {
198
208
  $schema: "https://swoff.netlify.app/schema/v1.json",
199
- configVersion: CONFIG_VERSION,
200
- enabled: true,
201
209
  framework: "vanilla",
202
- apiBaseUrl: "",
203
210
  features: {
204
- pwa: { enabled: true, preventDefaultInstall: false },
211
+ requestBatchWindowMs: 50,
212
+ pwa: { enabled: false, preventDefaultInstall: false },
205
213
  serviceWorker: {
206
- version: "package",
207
- minSupportedVersion: "0.0.0",
208
- autoUpdate: true,
209
214
  autoActivate: false,
210
- requestBatchWindowMs: 50,
211
215
  navigation: {
212
216
  mode: "spa",
213
217
  preload: true,
214
- fallback: "/index.html",
218
+ fallback: "",
219
+ precacheRoutes: [],
220
+ rules: [],
215
221
  },
216
222
  strategy: {
217
223
  default: "cache-first",
218
- mode: "all",
219
- clearRuntimeOnUpdate: false,
220
224
  maxRuntimeCacheAge: 2592000,
221
225
  normalizeKey: false,
222
226
  ignoreQueryParams: [],
227
+ timeout: 10,
223
228
  patterns: {
224
229
  "/api/*": "network-first",
225
230
  "/static/*": "cache-first",
@@ -236,14 +241,13 @@ export const defaultInitConfig = {
236
241
  },
237
242
  refetchQueue: { ...defaultRefetchQueue },
238
243
  mutationQueue: { ...defaultMutationQueue },
239
- backgroundSync: false,
240
244
  auth: { ...defaultAuth },
241
- crossTabSync: true,
245
+ connectivity: { ...defaultConnectivity },
242
246
  tagInvalidation: { ...defaultTagInvalidation },
243
247
  graphql: { ...defaultGql },
244
- pushNotifications: { enabled: false },
245
- serverPush: { ...defaultServerPush },
248
+ pushNotifications: false,
249
+ serverPush: { ...defaultServerPushConfig },
246
250
  },
247
- build: { outputDir: "dist", swFilename: "sw" },
251
+ build: { outputDir: "dist", swFilename: "sw", precacheDirs: {} },
248
252
  };
249
253
  //# sourceMappingURL=config-types.js.map