@swoff/cli 0.3.8 → 0.3.10

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 (228) hide show
  1. package/README.md +47 -33
  2. package/dist/__tests__/assemble-sw.test.js +14 -53
  3. package/dist/__tests__/assemble-sw.test.js.map +1 -1
  4. package/dist/__tests__/cli-integration.test.js +119 -11
  5. package/dist/__tests__/cli-integration.test.js.map +1 -1
  6. package/dist/__tests__/config-types.test.js +44 -17
  7. package/dist/__tests__/config-types.test.js.map +1 -1
  8. package/dist/__tests__/file-generators.test.js +3 -3
  9. package/dist/__tests__/file-generators.test.js.map +1 -1
  10. package/dist/__tests__/glob-matcher.test.js +86 -0
  11. package/dist/__tests__/glob-matcher.test.js.map +1 -0
  12. package/dist/__tests__/invalidation-tags.test.js +207 -23
  13. package/dist/__tests__/invalidation-tags.test.js.map +1 -1
  14. package/dist/__tests__/loader.test.js +16 -12
  15. package/dist/__tests__/loader.test.js.map +1 -1
  16. package/dist/__tests__/validator.test.js +140 -100
  17. package/dist/__tests__/validator.test.js.map +1 -1
  18. package/dist/index.js +39 -34
  19. package/dist/index.js.map +1 -1
  20. package/dist/lib/cli/help.js +12 -12
  21. package/dist/lib/cli/help.js.map +1 -1
  22. package/dist/lib/commands/add.js +84 -36
  23. package/dist/lib/commands/add.js.map +1 -1
  24. package/dist/lib/commands/assets.js +37 -0
  25. package/dist/lib/commands/assets.js.map +1 -0
  26. package/dist/lib/commands/clean.js +32 -30
  27. package/dist/lib/commands/clean.js.map +1 -1
  28. package/dist/lib/commands/generate-assets.js +44 -0
  29. package/dist/lib/commands/generate-assets.js.map +1 -0
  30. package/dist/lib/commands/generate-guide.js +22 -29
  31. package/dist/lib/commands/generate-guide.js.map +1 -1
  32. package/dist/lib/commands/generate.js +17 -24
  33. package/dist/lib/commands/generate.js.map +1 -1
  34. package/dist/lib/commands/info.js +41 -48
  35. package/dist/lib/commands/info.js.map +1 -1
  36. package/dist/lib/commands/init.js +27 -13
  37. package/dist/lib/commands/init.js.map +1 -1
  38. package/dist/lib/commands/validate.js +4 -4
  39. package/dist/lib/commands/validate.js.map +1 -1
  40. package/dist/lib/config/loader.js +25 -23
  41. package/dist/lib/config/loader.js.map +1 -1
  42. package/dist/lib/config/validator.js +169 -91
  43. package/dist/lib/config/validator.js.map +1 -1
  44. package/dist/lib/generators/asset-generator/dependency-resolver.js +76 -0
  45. package/dist/lib/generators/asset-generator/dependency-resolver.js.map +1 -0
  46. package/dist/lib/generators/asset-generator/generate.js +111 -0
  47. package/dist/lib/generators/asset-generator/generate.js.map +1 -0
  48. package/dist/lib/generators/asset-generator/guide.js +43 -0
  49. package/dist/lib/generators/asset-generator/guide.js.map +1 -0
  50. package/dist/lib/generators/asset-generator/html-patcher.js +65 -0
  51. package/dist/lib/generators/asset-generator/html-patcher.js.map +1 -0
  52. package/dist/lib/generators/asset-generator/ico-encoder.js +29 -0
  53. package/dist/lib/generators/asset-generator/ico-encoder.js.map +1 -0
  54. package/dist/lib/generators/asset-generator/manifest-patcher.js +23 -0
  55. package/dist/lib/generators/asset-generator/manifest-patcher.js.map +1 -0
  56. package/dist/lib/generators/asset-generator/maskable.js +15 -0
  57. package/dist/lib/generators/asset-generator/maskable.js.map +1 -0
  58. package/dist/lib/generators/asset-generator/rasterize.js +32 -0
  59. package/dist/lib/generators/asset-generator/rasterize.js.map +1 -0
  60. package/dist/lib/generators/asset-generator/sizes.js +25 -0
  61. package/dist/lib/generators/asset-generator/sizes.js.map +1 -0
  62. package/dist/lib/generators/file-generators/api-config.js +6 -0
  63. package/dist/lib/generators/file-generators/api-config.js.map +1 -0
  64. package/dist/lib/generators/file-generators/auth-state.js +2 -34
  65. package/dist/lib/generators/file-generators/auth-state.js.map +1 -1
  66. package/dist/lib/generators/file-generators/auth-store.js +2 -250
  67. package/dist/lib/generators/file-generators/auth-store.js.map +1 -1
  68. package/dist/lib/generators/file-generators/auth-user.js +3 -81
  69. package/dist/lib/generators/file-generators/auth-user.js.map +1 -1
  70. package/dist/lib/generators/file-generators/background-sync.js +2 -57
  71. package/dist/lib/generators/file-generators/background-sync.js.map +1 -1
  72. package/dist/lib/generators/file-generators/cache.js +2 -38
  73. package/dist/lib/generators/file-generators/cache.js.map +1 -1
  74. package/dist/lib/generators/file-generators/client-injector.js +2 -91
  75. package/dist/lib/generators/file-generators/client-injector.js.map +1 -1
  76. package/dist/lib/generators/file-generators/fetch-state.js +6 -0
  77. package/dist/lib/generators/file-generators/fetch-state.js.map +1 -0
  78. package/dist/lib/generators/file-generators/fetch-wrapper.js +3 -267
  79. package/dist/lib/generators/file-generators/fetch-wrapper.js.map +1 -1
  80. package/dist/lib/generators/file-generators/generate-framework-adapters.js +56 -0
  81. package/dist/lib/generators/file-generators/generate-framework-adapters.js.map +1 -0
  82. package/dist/lib/generators/file-generators/generate-hooks.js +4 -3
  83. package/dist/lib/generators/file-generators/generate-hooks.js.map +1 -1
  84. package/dist/lib/generators/file-generators/gql-wrapper.js +3 -145
  85. package/dist/lib/generators/file-generators/gql-wrapper.js.map +1 -1
  86. package/dist/lib/generators/file-generators/guide-generator.js +24 -630
  87. package/dist/lib/generators/file-generators/guide-generator.js.map +1 -1
  88. package/dist/lib/generators/file-generators/invalidation-tags.js +18 -86
  89. package/dist/lib/generators/file-generators/invalidation-tags.js.map +1 -1
  90. package/dist/lib/generators/file-generators/manifest.js +15 -5
  91. package/dist/lib/generators/file-generators/manifest.js.map +1 -1
  92. package/dist/lib/generators/file-generators/mutation-queue.js +3 -285
  93. package/dist/lib/generators/file-generators/mutation-queue.js.map +1 -1
  94. package/dist/lib/generators/file-generators/mutation-state.js +2 -117
  95. package/dist/lib/generators/file-generators/mutation-state.js.map +1 -1
  96. package/dist/lib/generators/file-generators/push.js +6 -139
  97. package/dist/lib/generators/file-generators/push.js.map +1 -1
  98. package/dist/lib/generators/file-generators/pwa-install.js +11 -84
  99. package/dist/lib/generators/file-generators/pwa-install.js.map +1 -1
  100. package/dist/lib/generators/file-generators/quick-readme.js +8 -125
  101. package/dist/lib/generators/file-generators/quick-readme.js.map +1 -1
  102. package/dist/lib/generators/file-generators/reset.js +6 -0
  103. package/dist/lib/generators/file-generators/reset.js.map +1 -0
  104. package/dist/lib/generators/file-generators/server-push.js +3 -124
  105. package/dist/lib/generators/file-generators/server-push.js.map +1 -1
  106. package/dist/lib/generators/file-generators/sw-generator-build.js +8 -9
  107. package/dist/lib/generators/file-generators/sw-generator-build.js.map +1 -1
  108. package/dist/lib/generators/file-generators/sw-injector.js +10 -230
  109. package/dist/lib/generators/file-generators/sw-injector.js.map +1 -1
  110. package/dist/lib/generators/file-generators/type-definitions.js +2 -114
  111. package/dist/lib/generators/file-generators/type-definitions.js.map +1 -1
  112. package/dist/lib/generators/sw-generator.js +10 -20
  113. package/dist/lib/generators/sw-generator.js.map +1 -1
  114. package/dist/lib/generators/sw-sections/activate-handler.js +25 -3
  115. package/dist/lib/generators/sw-sections/activate-handler.js.map +1 -1
  116. package/dist/lib/generators/sw-sections/assemble-sw.js +20 -16
  117. package/dist/lib/generators/sw-sections/assemble-sw.js.map +1 -1
  118. package/dist/lib/generators/sw-sections/background-sync-handler.js +68 -19
  119. package/dist/lib/generators/sw-sections/background-sync-handler.js.map +1 -1
  120. package/dist/lib/generators/sw-sections/config-header.js +2 -2
  121. package/dist/lib/generators/sw-sections/config-header.js.map +1 -1
  122. package/dist/lib/generators/sw-sections/fetch-handler.js +506 -144
  123. package/dist/lib/generators/sw-sections/fetch-handler.js.map +1 -1
  124. package/dist/lib/generators/sw-sections/glob-matcher-code.js.map +1 -0
  125. package/dist/lib/generators/sw-sections/message-handler.js +55 -15
  126. package/dist/lib/generators/sw-sections/message-handler.js.map +1 -1
  127. package/dist/lib/generators/sw-sections/server-push-handler.js +12 -0
  128. package/dist/lib/generators/sw-sections/server-push-handler.js.map +1 -1
  129. package/dist/lib/generators/sw-sections/sw-push.js +67 -0
  130. package/dist/lib/generators/sw-sections/sw-push.js.map +1 -0
  131. package/dist/lib/generators/sw-sections/tag-management.js +65 -23
  132. package/dist/lib/generators/sw-sections/tag-management.js.map +1 -1
  133. package/dist/lib/generators/swoff-files-generator.js +66 -45
  134. package/dist/lib/generators/swoff-files-generator.js.map +1 -1
  135. package/dist/lib/shared/config-types.js +182 -71
  136. package/dist/lib/shared/config-types.js.map +1 -1
  137. package/dist/lib/shared/glob-matcher.js +77 -0
  138. package/dist/lib/shared/glob-matcher.js.map +1 -0
  139. package/dist/lib/utils/tty-status.js +21 -0
  140. package/dist/lib/utils/tty-status.js.map +1 -0
  141. package/dist/runtime/api-config.js +18 -0
  142. package/dist/runtime/api-config.js.map +1 -0
  143. package/dist/runtime/auth-state.js +35 -0
  144. package/dist/runtime/auth-state.js.map +1 -0
  145. package/dist/runtime/auth-store.js +273 -0
  146. package/dist/runtime/auth-store.js.map +1 -0
  147. package/dist/runtime/auth-user.js +168 -0
  148. package/dist/runtime/auth-user.js.map +1 -0
  149. package/dist/runtime/background-sync.js +59 -0
  150. package/dist/runtime/background-sync.js.map +1 -0
  151. package/dist/runtime/cache.js +30 -0
  152. package/dist/runtime/cache.js.map +1 -0
  153. package/dist/runtime/client-injector.js +136 -0
  154. package/dist/runtime/client-injector.js.map +1 -0
  155. package/dist/runtime/fetch-state.js +42 -0
  156. package/dist/runtime/fetch-state.js.map +1 -0
  157. package/dist/runtime/fetch-wrapper.js +355 -0
  158. package/dist/runtime/fetch-wrapper.js.map +1 -0
  159. package/dist/runtime/gql-wrapper.js +135 -0
  160. package/dist/runtime/gql-wrapper.js.map +1 -0
  161. package/dist/runtime/invalidation-tags.js +260 -0
  162. package/dist/runtime/invalidation-tags.js.map +1 -0
  163. package/dist/runtime/mutation-queue.js +304 -0
  164. package/dist/runtime/mutation-queue.js.map +1 -0
  165. package/dist/runtime/mutation-state.js +117 -0
  166. package/dist/runtime/mutation-state.js.map +1 -0
  167. package/dist/runtime/push.js +138 -0
  168. package/dist/runtime/push.js.map +1 -0
  169. package/dist/runtime/pwa-index.js +11 -0
  170. package/dist/runtime/pwa-index.js.map +1 -0
  171. package/dist/runtime/pwa-injector.js +44 -0
  172. package/dist/runtime/pwa-injector.js.map +1 -0
  173. package/dist/runtime/pwa-install.js +83 -0
  174. package/dist/runtime/pwa-install.js.map +1 -0
  175. package/dist/runtime/pwa-prompt.js +54 -0
  176. package/dist/runtime/pwa-prompt.js.map +1 -0
  177. package/dist/runtime/reset.js +148 -0
  178. package/dist/runtime/reset.js.map +1 -0
  179. package/dist/runtime/server-push.js +148 -0
  180. package/dist/runtime/server-push.js.map +1 -0
  181. package/dist/runtime/sw-injector.js +236 -0
  182. package/dist/runtime/sw-injector.js.map +1 -0
  183. package/dist/runtime/type-definitions.js +138 -0
  184. package/dist/runtime/type-definitions.js.map +1 -0
  185. package/dist/runtime/utils.js +27 -0
  186. package/dist/runtime/utils.js.map +1 -0
  187. package/package.json +3 -1
  188. package/templates/react/useAuth.jsx +106 -0
  189. package/templates/react/useAuth.tsx +118 -0
  190. package/templates/{hooks → react}/useBackgroundSync.jsx +6 -4
  191. package/templates/{hooks → react}/useBackgroundSync.tsx +6 -4
  192. package/templates/{hooks → react}/useCacheInvalidation.jsx +2 -2
  193. package/templates/react/useCacheInvalidation.tsx +52 -0
  194. package/templates/react/useCachedFetch.jsx +140 -0
  195. package/templates/react/useCachedFetch.tsx +160 -0
  196. package/templates/react/useIsFetching.jsx +32 -0
  197. package/templates/react/useIsFetching.tsx +32 -0
  198. package/templates/react/useMutation.jsx +141 -0
  199. package/templates/react/useMutation.tsx +180 -0
  200. package/templates/react/useMutationQueue.jsx +69 -0
  201. package/templates/react/useMutationQueue.tsx +83 -0
  202. package/templates/react/useMutationState.jsx +13 -0
  203. package/templates/react/useMutationState.tsx +25 -0
  204. package/templates/react/useNetworkStatus.jsx +61 -0
  205. package/templates/react/useNetworkStatus.tsx +76 -0
  206. package/templates/react/usePrefetch.jsx +32 -0
  207. package/templates/react/usePrefetch.tsx +42 -0
  208. package/templates/{hooks → react}/usePushSubscription.jsx +7 -7
  209. package/templates/{hooks → react}/usePushSubscription.tsx +7 -7
  210. package/templates/{hooks → react}/useSWUpdate.jsx +3 -3
  211. package/templates/{hooks → react}/useSWUpdate.tsx +4 -4
  212. package/templates/react/useSwoffReset.jsx +32 -0
  213. package/templates/react/useSwoffReset.tsx +39 -0
  214. package/templates/hooks/useAuth.jsx +0 -30
  215. package/templates/hooks/useAuth.tsx +0 -30
  216. package/templates/hooks/useCacheInvalidation.tsx +0 -19
  217. package/templates/hooks/useCachedFetch.jsx +0 -94
  218. package/templates/hooks/useCachedFetch.tsx +0 -112
  219. package/templates/hooks/useMutation.jsx +0 -76
  220. package/templates/hooks/useMutation.tsx +0 -97
  221. package/templates/hooks/useMutationQueue.jsx +0 -42
  222. package/templates/hooks/useMutationQueue.tsx +0 -49
  223. package/templates/hooks/useMutationState.jsx +0 -27
  224. package/templates/hooks/useMutationState.tsx +0 -41
  225. package/templates/hooks/useNetworkStatus.jsx +0 -19
  226. package/templates/hooks/useNetworkStatus.tsx +0 -19
  227. package/templates/hooks/usePrefetch.jsx +0 -10
  228. package/templates/hooks/usePrefetch.tsx +0 -25
@@ -1,4 +1,12 @@
1
+ export const REACTIVE_FIELDS = [
2
+ "staleTime",
3
+ "refetchInterval",
4
+ "refetchOnReconnect",
5
+ "refetchOnFocus",
6
+ ];
7
+ export const CONFIG_VERSION = 1;
1
8
  export const KNOWN_FEATURES = [
9
+ "refetchQueue",
2
10
  "mutationQueue",
3
11
  "backgroundSync",
4
12
  "auth",
@@ -8,73 +16,32 @@ export const KNOWN_FEATURES = [
8
16
  "pushNotifications",
9
17
  "serverPush",
10
18
  ];
11
- export const OBJECT_FEATURES = ["pwa", "serviceWorker", "auth", "pushNotifications", "graphql", "serverPush"];
19
+ export const OBJECT_FEATURES = [
20
+ "pwa",
21
+ "serviceWorker",
22
+ "auth",
23
+ "pushNotifications",
24
+ "graphql",
25
+ "serverPush",
26
+ "tagInvalidation",
27
+ "mutationQueue",
28
+ "refetchQueue",
29
+ ];
12
30
  export const VALID_STRATEGIES = [
13
31
  "cache-first",
14
32
  "network-first",
15
33
  "stale-while-revalidate",
16
34
  "cache-only",
17
35
  "network-only",
36
+ "reactive",
18
37
  ];
19
38
  export const API_PREFIXES = ["api", "v1", "v2", "v3", "rest", "graphql", "gql"];
20
- function normalizeAuth(auth) {
21
- if (typeof auth === "boolean")
22
- return { ...defaultAuth, enabled: auth };
23
- if (auth && typeof auth === "object")
24
- return { ...defaultAuth, ...auth };
25
- return defaultAuth;
26
- }
27
- function normalizeSwVersion(ver) {
28
- if (ver && typeof ver === "object")
29
- return { ...defaultVersionConfig, ...ver };
30
- return defaultVersionConfig;
31
- }
32
- function normalizeGql(val) {
33
- if (typeof val === "boolean")
34
- return { ...defaultGql, enabled: val };
35
- if (val && typeof val === "object")
36
- return { ...defaultGql, ...val };
37
- return defaultGql;
38
- }
39
- function normalizeMutationQueue(val) {
40
- if (typeof val === "boolean")
41
- return { ...defaultMutationQueue, enabled: val };
42
- if (val && typeof val === "object")
43
- return { ...defaultMutationQueue, ...val };
44
- return defaultMutationQueue;
45
- }
46
- export function mergeConfigs(base, override) {
47
- return {
48
- ...base,
49
- ...override,
50
- features: {
51
- ...base.features,
52
- ...override.features,
53
- pwa: { ...base.features.pwa, ...override.features?.pwa },
54
- serviceWorker: {
55
- ...base.features.serviceWorker,
56
- ...override.features?.serviceWorker,
57
- version: normalizeSwVersion(override.features?.serviceWorker?.version),
58
- },
59
- auth: normalizeAuth(override.features?.auth),
60
- mutationQueue: normalizeMutationQueue(override.features?.mutationQueue),
61
- graphql: normalizeGql(override.features?.graphql),
62
- serverPush: { ...defaultServerPush, ...override.features?.serverPush },
63
- },
64
- build: { ...base.build, ...override.build },
65
- };
66
- }
67
39
  export const defaultAuth = {
68
40
  enabled: false,
69
41
  type: "bearer",
70
42
  refreshPath: "/api/refresh",
71
43
  userEndpoint: "/api/me",
72
44
  };
73
- export const defaultVersionConfig = {
74
- enabled: true,
75
- source: "from-package",
76
- minSupportedVersion: "0.0.0",
77
- };
78
45
  export const defaultGql = {
79
46
  enabled: false,
80
47
  endpoint: "/graphql",
@@ -86,36 +53,146 @@ export const defaultMutationQueue = {
86
53
  maxRetries: 5,
87
54
  retryBackoffMs: 1000,
88
55
  };
56
+ export const defaultPwaAssets = {
57
+ source: "",
58
+ outputDir: "public",
59
+ themeColor: "#000000",
60
+ bgColor: "#ffffff",
61
+ generated: false,
62
+ };
63
+ export const defaultRefetchQueue = {
64
+ batchSize: 5,
65
+ batchDelayMs: 1000,
66
+ maxRetries: 3,
67
+ retryDelayMs: 1000,
68
+ };
89
69
  export const defaultServerPush = {
90
70
  enabled: false,
91
71
  type: "sse",
92
72
  endpoint: "/api/events",
93
73
  reconnectDelayMs: 5000,
94
74
  };
75
+ export const defaultTagInvalidation = {
76
+ debounceMs: 0,
77
+ prefixes: [...API_PREFIXES],
78
+ patterns: {},
79
+ singularization: {},
80
+ cascading: {},
81
+ };
82
+ export function mergeConfigs(base, override) {
83
+ return {
84
+ ...base,
85
+ ...override,
86
+ apiBaseUrl: override.apiBaseUrl ?? base.apiBaseUrl,
87
+ features: {
88
+ ...base.features,
89
+ ...override.features,
90
+ pwa: { ...base.features.pwa, ...override.features?.pwa, assets: { ...defaultPwaAssets, ...base.features.pwa.assets, ...override.features?.pwa?.assets } },
91
+ serviceWorker: {
92
+ ...base.features.serviceWorker,
93
+ ...override.features?.serviceWorker,
94
+ version: override.features?.serviceWorker?.version ??
95
+ base.features.serviceWorker.version ?? "package",
96
+ minSupportedVersion: override.features?.serviceWorker?.minSupportedVersion ??
97
+ base.features.serviceWorker.minSupportedVersion,
98
+ strategy: {
99
+ ...base.features.serviceWorker.strategy,
100
+ ...override.features?.serviceWorker?.strategy,
101
+ reactive: {
102
+ defaults: {
103
+ ...base.features.serviceWorker.strategy.reactive.defaults,
104
+ ...override.features?.serviceWorker?.strategy?.reactive?.defaults,
105
+ },
106
+ },
107
+ },
108
+ navigation: {
109
+ ...base.features.serviceWorker.navigation,
110
+ ...override.features?.serviceWorker?.navigation,
111
+ },
112
+ },
113
+ refetchQueue: {
114
+ ...defaultRefetchQueue,
115
+ ...base.features.refetchQueue,
116
+ ...override.features?.refetchQueue,
117
+ },
118
+ mutationQueue: {
119
+ ...defaultMutationQueue,
120
+ ...base.features.mutationQueue,
121
+ ...override.features?.mutationQueue,
122
+ },
123
+ auth: {
124
+ ...defaultAuth,
125
+ ...base.features.auth,
126
+ ...override.features?.auth,
127
+ },
128
+ graphql: {
129
+ ...defaultGql,
130
+ ...base.features.graphql,
131
+ ...override.features?.graphql,
132
+ },
133
+ tagInvalidation: {
134
+ ...defaultTagInvalidation,
135
+ ...base.features.tagInvalidation,
136
+ ...override.features?.tagInvalidation,
137
+ },
138
+ pushNotifications: {
139
+ ...base.features.pushNotifications,
140
+ ...override.features?.pushNotifications,
141
+ },
142
+ serverPush: {
143
+ ...defaultServerPush,
144
+ ...base.features.serverPush,
145
+ ...override.features?.serverPush,
146
+ },
147
+ },
148
+ build: { ...base.build, ...override.build },
149
+ };
150
+ }
95
151
  export const defaultConfig = {
152
+ configVersion: CONFIG_VERSION,
96
153
  enabled: true,
154
+ apiBaseUrl: "",
97
155
  features: {
98
156
  pwa: {
99
157
  enabled: true,
100
158
  preventDefaultInstall: false,
159
+ assets: { ...defaultPwaAssets },
101
160
  },
102
161
  serviceWorker: {
103
- version: { ...defaultVersionConfig },
162
+ version: "package",
163
+ minSupportedVersion: "0.0.0",
104
164
  autoUpdate: true,
105
165
  autoActivate: false,
106
- defaultStrategy: "cache-first",
107
- strategies: {},
108
- cacheStrategy: "all",
109
- clearRuntimeOnUpdate: false,
110
- navigationPreload: true,
111
- navigationMode: "spa",
112
- spaEntry: "/index.html",
166
+ requestBatchWindowMs: 50,
167
+ strategy: {
168
+ default: "cache-first",
169
+ mode: "all",
170
+ clearRuntimeOnUpdate: false,
171
+ maxRuntimeCacheAge: 2592000,
172
+ normalizeKey: false,
173
+ ignoreQueryParams: [],
174
+ patterns: {},
175
+ reactive: {
176
+ defaults: {
177
+ staleTime: 0,
178
+ refetchInterval: 0,
179
+ refetchOnReconnect: false,
180
+ refetchOnFocus: false,
181
+ },
182
+ },
183
+ },
184
+ navigation: {
185
+ mode: "spa",
186
+ preload: true,
187
+ fallback: "/index.html",
188
+ },
113
189
  },
190
+ refetchQueue: { ...defaultRefetchQueue },
114
191
  mutationQueue: { ...defaultMutationQueue },
115
192
  backgroundSync: false,
116
193
  auth: { ...defaultAuth },
117
194
  crossTabSync: true,
118
- tagInvalidation: true,
195
+ tagInvalidation: { ...defaultTagInvalidation },
119
196
  graphql: { ...defaultGql },
120
197
  pushNotifications: { enabled: false },
121
198
  serverPush: { ...defaultServerPush },
@@ -126,21 +203,55 @@ export const defaultConfig = {
126
203
  },
127
204
  };
128
205
  export const defaultInitConfig = {
129
- ...defaultConfig,
130
206
  $schema: "https://swoff.netlify.app/schema/v1.json",
207
+ configVersion: CONFIG_VERSION,
208
+ enabled: true,
209
+ framework: "vanilla",
210
+ apiBaseUrl: "",
131
211
  features: {
132
- ...defaultConfig.features,
212
+ pwa: { enabled: true, preventDefaultInstall: false, assets: { ...defaultPwaAssets } },
133
213
  serviceWorker: {
134
- ...defaultConfig.features.serviceWorker,
135
- version: {
136
- ...defaultVersionConfig,
137
- minSupportedVersion: "1.0.0",
214
+ version: "package",
215
+ minSupportedVersion: "0.0.0",
216
+ autoUpdate: true,
217
+ autoActivate: false,
218
+ requestBatchWindowMs: 50,
219
+ navigation: {
220
+ mode: "spa",
221
+ preload: true,
222
+ fallback: "/index.html",
138
223
  },
139
- strategies: {
140
- "/api/*": "network-first",
141
- "/static/*": "cache-first",
224
+ strategy: {
225
+ default: "cache-first",
226
+ mode: "all",
227
+ clearRuntimeOnUpdate: false,
228
+ maxRuntimeCacheAge: 2592000,
229
+ normalizeKey: false,
230
+ ignoreQueryParams: [],
231
+ patterns: {
232
+ "/api/*": "network-first",
233
+ "/static/*": "cache-first",
234
+ },
235
+ reactive: {
236
+ defaults: {
237
+ staleTime: 0,
238
+ refetchInterval: 0,
239
+ refetchOnReconnect: false,
240
+ refetchOnFocus: false,
241
+ },
242
+ },
142
243
  },
143
244
  },
245
+ refetchQueue: { ...defaultRefetchQueue },
246
+ mutationQueue: { ...defaultMutationQueue },
247
+ backgroundSync: false,
248
+ auth: { ...defaultAuth },
249
+ crossTabSync: true,
250
+ tagInvalidation: { ...defaultTagInvalidation },
251
+ graphql: { ...defaultGql },
252
+ pushNotifications: { enabled: false },
253
+ serverPush: { ...defaultServerPush },
144
254
  },
255
+ build: { outputDir: "dist", swFilename: "sw" },
145
256
  };
146
257
  //# sourceMappingURL=config-types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-types.js","sourceRoot":"","sources":["../../../src/lib/shared/config-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config-types.js","sourceRoot":"","sources":["../../../src/lib/shared/config-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ const patternCache = new Map();
2
+ function escapeRegex(str) {
3
+ return str.replace(/[.+^${}()|[\]\\]/g, "\\$&");
4
+ }
5
+ function segmentToRegex(segment) {
6
+ let out = "";
7
+ let i = 0;
8
+ while (i < segment.length) {
9
+ const ch = segment[i];
10
+ if (ch === "*") {
11
+ out += "[^/]*";
12
+ i++;
13
+ }
14
+ else if (ch === "?") {
15
+ out += "[^/]";
16
+ i++;
17
+ }
18
+ else if (ch === "{") {
19
+ const close = segment.indexOf("}", i);
20
+ if (close === -1) {
21
+ out += escapeRegex(ch);
22
+ i++;
23
+ }
24
+ else {
25
+ const inner = segment.slice(i + 1, close);
26
+ const parts = inner.split(",").map((s) => escapeRegex(s.trim()));
27
+ out += "(?:" + parts.join("|") + ")";
28
+ i = close + 1;
29
+ }
30
+ }
31
+ else {
32
+ out += escapeRegex(ch);
33
+ i++;
34
+ }
35
+ }
36
+ return out;
37
+ }
38
+ function globToRegex(pattern) {
39
+ const cached = patternCache.get(pattern);
40
+ if (cached)
41
+ return cached;
42
+ const negate = pattern.startsWith("!");
43
+ const body = negate ? pattern.slice(1) : pattern;
44
+ const hasLeadingSlash = body.startsWith("/");
45
+ const raw = hasLeadingSlash ? body.slice(1) : body;
46
+ const segments = raw.split("/").filter((s) => s.length > 0);
47
+ let regexStr = "^";
48
+ if (hasLeadingSlash)
49
+ regexStr += "\\/";
50
+ for (let i = 0; i < segments.length; i++) {
51
+ const seg = segments[i];
52
+ if (seg === "**") {
53
+ regexStr += "(?:\\/.*)?";
54
+ }
55
+ else {
56
+ if (i > 0 && segments[i - 1] !== "**") {
57
+ regexStr += "\\/";
58
+ }
59
+ regexStr += segmentToRegex(seg);
60
+ }
61
+ }
62
+ regexStr += "$";
63
+ const re = new RegExp(regexStr);
64
+ patternCache.set(pattern, re);
65
+ return re;
66
+ }
67
+ export function matchGlob(path, pattern) {
68
+ const re = globToRegex(pattern);
69
+ const result = re.test(path);
70
+ if (pattern.startsWith("!"))
71
+ return !result;
72
+ return result;
73
+ }
74
+ export function clearGlobCache() {
75
+ patternCache.clear();
76
+ }
77
+ //# sourceMappingURL=glob-matcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glob-matcher.js","sourceRoot":"","sources":["../../../src/lib/shared/glob-matcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ export function statusLine(msg) {
2
+ if (process.stdout.isTTY) {
3
+ const cols = process.stdout.columns || 80;
4
+ process.stdout.write(`\r${" ".repeat(cols - 1)}\r ${msg}`);
5
+ }
6
+ else {
7
+ console.log(` ${msg}`);
8
+ }
9
+ }
10
+ export function clearStatusLine() {
11
+ if (process.stdout.isTTY) {
12
+ const cols = process.stdout.columns || 80;
13
+ process.stdout.write(`\r${" ".repeat(cols - 1)}\r`);
14
+ }
15
+ }
16
+ export function ttyStatus(onStatus) {
17
+ if (onStatus)
18
+ return onStatus;
19
+ return statusLine;
20
+ }
21
+ //# sourceMappingURL=tty-status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tty-status.js","sourceRoot":"","sources":["../../../src/lib/utils/tty-status.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;QAC1C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IAC9D,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;QAC1C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,QAAgC;IACxD,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -0,0 +1,18 @@
1
+ export function generateApiConfigCode(apiBaseUrl) {
2
+ return `/**
3
+ * Swoff Central Config
4
+ *
5
+ * Edit API_BASE for per-environment overrides:
6
+ * Vite: import.meta.env.VITE_SWOFF_API_BASE
7
+ * CRA: process.env.REACT_APP_SWOFF_API_BASE
8
+ * Next.js: process.env.NEXT_PUBLIC_SWOFF_API_BASE
9
+ * Remix: process.env.SWOFF_API_BASE
10
+ * SvelteKit: import.meta.env.VITE_SWOFF_API_BASE
11
+ * Angular: process.env.NG_APP_SWOFF_API_BASE
12
+ * Deno: Deno.env.get("SWOFF_API_BASE")
13
+ */
14
+
15
+ export const API_BASE = "${apiBaseUrl}";
16
+ `;
17
+ }
18
+ //# sourceMappingURL=api-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-config.js","sourceRoot":"","sources":["../../src/runtime/api-config.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,qBAAqB,CAAC,UAAkB;IACtD,OAAO;;;;;;;;;;;;;2BAakB,UAAU;CACpC,CAAC;AACF,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { R } from "./utils.js";
2
+ export function generateAuthStateCode(ctx) {
3
+ const { ext, ts } = ctx;
4
+ return `/**
5
+ * Auth State — detect the four auth states for offline/online handling.
6
+ *
7
+ * States:
8
+ * 1. Online + Authenticated → Normal (fresh data, full UI)
9
+ * 2. Online + Unauthenticated → Login prompt
10
+ * 3. Offline + Authenticated → Offline access (cached data)
11
+ * 4. Offline + Unauthenticated → Strict offline (public content only)
12
+ *
13
+ * Usage:
14
+ * import { getAuthState } from "./auth/state.${ext}";
15
+ * const { authenticated, user, online } = await getAuthState();
16
+ */
17
+
18
+ import { getAuth, isAuthValid } from "./store.${ext}";
19
+ import { getCachedUser } from "./user.${ext}";
20
+
21
+ /** Detect current auth state across the 4-state matrix (online/offline × authenticated/not). */
22
+ export async function getAuthState()${R(ts, "Promise<{ authenticated: boolean; user: Record<string, unknown> | null; online: boolean }>")}{
23
+ const auth = await getAuth();
24
+ const valid = isAuthValid(auth);
25
+ const user = valid ? await getCachedUser() : null;
26
+
27
+ return {
28
+ authenticated: valid,
29
+ user,
30
+ online: navigator.onLine,
31
+ };
32
+ }
33
+ `;
34
+ }
35
+ //# sourceMappingURL=auth-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-state.js","sourceRoot":"","sources":["../../src/runtime/auth-state.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,YAAY,CAAC;AAE/B,MAAM,UAAU,qBAAqB,CAAC,GAAmB;IACvD,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC;IACxB,OAAO;;;;;;;;;;kDAUyC,GAAG;;;;gDAIL,GAAG;wCACX,GAAG;;;sCAGL,CAAC,CAAC,EAAE,EAAE,4FAA4F,CAAC;;;;;;;;;;;CAWxI,CAAC;AACF,CAAC"}