@swoff/cli 0.3.9 → 0.3.11

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 (216) hide show
  1. package/dist/__tests__/assemble-sw.test.js +8 -17
  2. package/dist/__tests__/assemble-sw.test.js.map +1 -1
  3. package/dist/__tests__/cli-integration.test.js +2 -2
  4. package/dist/__tests__/cli-integration.test.js.map +1 -1
  5. package/dist/__tests__/config-types.test.js +18 -8
  6. package/dist/__tests__/config-types.test.js.map +1 -1
  7. package/dist/__tests__/file-generators.test.js +3 -3
  8. package/dist/__tests__/file-generators.test.js.map +1 -1
  9. package/dist/__tests__/loader.test.js +5 -1
  10. package/dist/__tests__/loader.test.js.map +1 -1
  11. package/dist/__tests__/validator.test.js +6 -13
  12. package/dist/__tests__/validator.test.js.map +1 -1
  13. package/dist/index.js +41 -35
  14. package/dist/index.js.map +1 -1
  15. package/dist/lib/cli/help.js +13 -8
  16. package/dist/lib/cli/help.js.map +1 -1
  17. package/dist/lib/commands/add.js +38 -8
  18. package/dist/lib/commands/add.js.map +1 -1
  19. package/dist/lib/commands/assets.js +38 -0
  20. package/dist/lib/commands/assets.js.map +1 -0
  21. package/dist/lib/commands/clean.js +33 -17
  22. package/dist/lib/commands/clean.js.map +1 -1
  23. package/dist/lib/commands/generate-assets.js +44 -0
  24. package/dist/lib/commands/generate-assets.js.map +1 -0
  25. package/dist/lib/commands/generate-guide.js +22 -29
  26. package/dist/lib/commands/generate-guide.js.map +1 -1
  27. package/dist/lib/commands/generate.js +16 -9
  28. package/dist/lib/commands/generate.js.map +1 -1
  29. package/dist/lib/commands/info.js +36 -45
  30. package/dist/lib/commands/info.js.map +1 -1
  31. package/dist/lib/commands/init.js +25 -3
  32. package/dist/lib/commands/init.js.map +1 -1
  33. package/dist/lib/commands/validate.js +1 -1
  34. package/dist/lib/commands/validate.js.map +1 -1
  35. package/dist/lib/config/loader.js +25 -20
  36. package/dist/lib/config/loader.js.map +1 -1
  37. package/dist/lib/config/validator.js +20 -11
  38. package/dist/lib/config/validator.js.map +1 -1
  39. package/dist/lib/generators/asset-generator/dependency-resolver.js +76 -0
  40. package/dist/lib/generators/asset-generator/dependency-resolver.js.map +1 -0
  41. package/dist/lib/generators/asset-generator/generate.js +111 -0
  42. package/dist/lib/generators/asset-generator/generate.js.map +1 -0
  43. package/dist/lib/generators/asset-generator/guide.js +43 -0
  44. package/dist/lib/generators/asset-generator/guide.js.map +1 -0
  45. package/dist/lib/generators/asset-generator/html-patcher.js +65 -0
  46. package/dist/lib/generators/asset-generator/html-patcher.js.map +1 -0
  47. package/dist/lib/generators/asset-generator/ico-encoder.js +29 -0
  48. package/dist/lib/generators/asset-generator/ico-encoder.js.map +1 -0
  49. package/dist/lib/generators/asset-generator/manifest-patcher.js +23 -0
  50. package/dist/lib/generators/asset-generator/manifest-patcher.js.map +1 -0
  51. package/dist/lib/generators/asset-generator/maskable.js +15 -0
  52. package/dist/lib/generators/asset-generator/maskable.js.map +1 -0
  53. package/dist/lib/generators/asset-generator/rasterize.js +32 -0
  54. package/dist/lib/generators/asset-generator/rasterize.js.map +1 -0
  55. package/dist/lib/generators/asset-generator/sizes.js +25 -0
  56. package/dist/lib/generators/asset-generator/sizes.js.map +1 -0
  57. package/dist/lib/generators/file-generators/api-config.js +6 -0
  58. package/dist/lib/generators/file-generators/api-config.js.map +1 -0
  59. package/dist/lib/generators/file-generators/auth-state.js +2 -34
  60. package/dist/lib/generators/file-generators/auth-state.js.map +1 -1
  61. package/dist/lib/generators/file-generators/auth-store.js +2 -250
  62. package/dist/lib/generators/file-generators/auth-store.js.map +1 -1
  63. package/dist/lib/generators/file-generators/auth-user.js +3 -81
  64. package/dist/lib/generators/file-generators/auth-user.js.map +1 -1
  65. package/dist/lib/generators/file-generators/background-sync.js +2 -57
  66. package/dist/lib/generators/file-generators/background-sync.js.map +1 -1
  67. package/dist/lib/generators/file-generators/cache.js +2 -30
  68. package/dist/lib/generators/file-generators/cache.js.map +1 -1
  69. package/dist/lib/generators/file-generators/client-injector.js +2 -130
  70. package/dist/lib/generators/file-generators/client-injector.js.map +1 -1
  71. package/dist/lib/generators/file-generators/fetch-state.js +6 -0
  72. package/dist/lib/generators/file-generators/fetch-state.js.map +1 -0
  73. package/dist/lib/generators/file-generators/fetch-wrapper.js +3 -295
  74. package/dist/lib/generators/file-generators/fetch-wrapper.js.map +1 -1
  75. package/dist/lib/generators/file-generators/generate-framework-adapters.js +56 -0
  76. package/dist/lib/generators/file-generators/generate-framework-adapters.js.map +1 -0
  77. package/dist/lib/generators/file-generators/generate-hooks.js +4 -3
  78. package/dist/lib/generators/file-generators/generate-hooks.js.map +1 -1
  79. package/dist/lib/generators/file-generators/gql-wrapper.js +3 -132
  80. package/dist/lib/generators/file-generators/gql-wrapper.js.map +1 -1
  81. package/dist/lib/generators/file-generators/guide-generator.js +29 -1
  82. package/dist/lib/generators/file-generators/guide-generator.js.map +1 -1
  83. package/dist/lib/generators/file-generators/invalidation-tags.js +3 -258
  84. package/dist/lib/generators/file-generators/invalidation-tags.js.map +1 -1
  85. package/dist/lib/generators/file-generators/manifest.js +13 -3
  86. package/dist/lib/generators/file-generators/manifest.js.map +1 -1
  87. package/dist/lib/generators/file-generators/mutation-queue.js +3 -305
  88. package/dist/lib/generators/file-generators/mutation-queue.js.map +1 -1
  89. package/dist/lib/generators/file-generators/mutation-state.js +2 -117
  90. package/dist/lib/generators/file-generators/mutation-state.js.map +1 -1
  91. package/dist/lib/generators/file-generators/push.js +6 -138
  92. package/dist/lib/generators/file-generators/push.js.map +1 -1
  93. package/dist/lib/generators/file-generators/pwa-install.js +11 -84
  94. package/dist/lib/generators/file-generators/pwa-install.js.map +1 -1
  95. package/dist/lib/generators/file-generators/reset.js +6 -0
  96. package/dist/lib/generators/file-generators/reset.js.map +1 -0
  97. package/dist/lib/generators/file-generators/server-push.js +3 -134
  98. package/dist/lib/generators/file-generators/server-push.js.map +1 -1
  99. package/dist/lib/generators/file-generators/sw-generator-build.js +4 -4
  100. package/dist/lib/generators/file-generators/sw-injector.js +9 -230
  101. package/dist/lib/generators/file-generators/sw-injector.js.map +1 -1
  102. package/dist/lib/generators/file-generators/type-definitions.js +2 -111
  103. package/dist/lib/generators/file-generators/type-definitions.js.map +1 -1
  104. package/dist/lib/generators/sw-generator.js +5 -5
  105. package/dist/lib/generators/sw-generator.js.map +1 -1
  106. package/dist/lib/generators/sw-sections/activate-handler.js +25 -3
  107. package/dist/lib/generators/sw-sections/activate-handler.js.map +1 -1
  108. package/dist/lib/generators/sw-sections/assemble-sw.js +13 -12
  109. package/dist/lib/generators/sw-sections/assemble-sw.js.map +1 -1
  110. package/dist/lib/generators/sw-sections/background-sync-handler.js +14 -7
  111. package/dist/lib/generators/sw-sections/background-sync-handler.js.map +1 -1
  112. package/dist/lib/generators/sw-sections/config-header.js +1 -1
  113. package/dist/lib/generators/sw-sections/config-header.js.map +1 -1
  114. package/dist/lib/generators/sw-sections/fetch-handler.js +165 -104
  115. package/dist/lib/generators/sw-sections/fetch-handler.js.map +1 -1
  116. package/dist/lib/generators/sw-sections/glob-matcher-code.js.map +1 -0
  117. package/dist/lib/generators/sw-sections/server-push-handler.js +12 -0
  118. package/dist/lib/generators/sw-sections/server-push-handler.js.map +1 -1
  119. package/dist/lib/generators/sw-sections/tag-management.js +6 -4
  120. package/dist/lib/generators/sw-sections/tag-management.js.map +1 -1
  121. package/dist/lib/generators/swoff-files-generator.js +66 -35
  122. package/dist/lib/generators/swoff-files-generator.js.map +1 -1
  123. package/dist/lib/shared/config-types.js +89 -28
  124. package/dist/lib/shared/config-types.js.map +1 -1
  125. package/dist/runtime/api-config.js +18 -0
  126. package/dist/runtime/api-config.js.map +1 -0
  127. package/dist/runtime/auth-state.js +35 -0
  128. package/dist/runtime/auth-state.js.map +1 -0
  129. package/dist/runtime/auth-store.js +273 -0
  130. package/dist/runtime/auth-store.js.map +1 -0
  131. package/dist/runtime/auth-user.js +168 -0
  132. package/dist/runtime/auth-user.js.map +1 -0
  133. package/dist/runtime/background-sync.js +59 -0
  134. package/dist/runtime/background-sync.js.map +1 -0
  135. package/dist/runtime/cache.js +30 -0
  136. package/dist/runtime/cache.js.map +1 -0
  137. package/dist/runtime/client-injector.js +136 -0
  138. package/dist/runtime/client-injector.js.map +1 -0
  139. package/dist/runtime/fetch-state.js +42 -0
  140. package/dist/runtime/fetch-state.js.map +1 -0
  141. package/dist/runtime/fetch-wrapper.js +355 -0
  142. package/dist/runtime/fetch-wrapper.js.map +1 -0
  143. package/dist/runtime/gql-wrapper.js +135 -0
  144. package/dist/runtime/gql-wrapper.js.map +1 -0
  145. package/dist/runtime/invalidation-tags.js +260 -0
  146. package/dist/runtime/invalidation-tags.js.map +1 -0
  147. package/dist/runtime/mutation-queue.js +304 -0
  148. package/dist/runtime/mutation-queue.js.map +1 -0
  149. package/dist/runtime/mutation-state.js +117 -0
  150. package/dist/runtime/mutation-state.js.map +1 -0
  151. package/dist/runtime/push.js +138 -0
  152. package/dist/runtime/push.js.map +1 -0
  153. package/dist/runtime/pwa-index.js +11 -0
  154. package/dist/runtime/pwa-index.js.map +1 -0
  155. package/dist/runtime/pwa-injector.js +44 -0
  156. package/dist/runtime/pwa-injector.js.map +1 -0
  157. package/dist/runtime/pwa-install.js +83 -0
  158. package/dist/runtime/pwa-install.js.map +1 -0
  159. package/dist/runtime/pwa-prompt.js +54 -0
  160. package/dist/runtime/pwa-prompt.js.map +1 -0
  161. package/dist/runtime/reset.js +148 -0
  162. package/dist/runtime/reset.js.map +1 -0
  163. package/dist/runtime/server-push.js +148 -0
  164. package/dist/runtime/server-push.js.map +1 -0
  165. package/dist/runtime/sw-injector.js +236 -0
  166. package/dist/runtime/sw-injector.js.map +1 -0
  167. package/dist/runtime/type-definitions.js +138 -0
  168. package/dist/runtime/type-definitions.js.map +1 -0
  169. package/dist/runtime/utils.js +27 -0
  170. package/dist/runtime/utils.js.map +1 -0
  171. package/package.json +3 -2
  172. package/templates/react/useAuth.jsx +106 -0
  173. package/templates/react/useAuth.tsx +118 -0
  174. package/templates/{hooks → react}/useBackgroundSync.jsx +6 -4
  175. package/templates/{hooks → react}/useBackgroundSync.tsx +6 -4
  176. package/templates/{hooks → react}/useCacheInvalidation.jsx +2 -2
  177. package/templates/react/useCacheInvalidation.tsx +52 -0
  178. package/templates/react/useCachedFetch.jsx +140 -0
  179. package/templates/react/useCachedFetch.tsx +160 -0
  180. package/templates/react/useIsFetching.jsx +32 -0
  181. package/templates/react/useIsFetching.tsx +32 -0
  182. package/templates/react/useMutation.jsx +141 -0
  183. package/templates/react/useMutation.tsx +180 -0
  184. package/templates/react/useMutationQueue.jsx +69 -0
  185. package/templates/react/useMutationQueue.tsx +83 -0
  186. package/templates/react/useNetworkStatus.jsx +61 -0
  187. package/templates/react/useNetworkStatus.tsx +76 -0
  188. package/templates/react/usePrefetch.jsx +32 -0
  189. package/templates/react/usePrefetch.tsx +42 -0
  190. package/templates/{hooks → react}/usePushSubscription.jsx +4 -4
  191. package/templates/{hooks → react}/usePushSubscription.tsx +4 -4
  192. package/templates/{hooks → react}/useSWUpdate.jsx +3 -3
  193. package/templates/{hooks → react}/useSWUpdate.tsx +4 -4
  194. package/templates/react/useSwoffReset.jsx +32 -0
  195. package/templates/react/useSwoffReset.tsx +39 -0
  196. package/docs/API.md +0 -565
  197. package/docs/ARCHITECTURE.md +0 -374
  198. package/docs/CLI.md +0 -148
  199. package/docs/COMPARISON.md +0 -192
  200. package/docs/CONFIG.md +0 -277
  201. package/docs/ECOSYSTEM.md +0 -33
  202. package/templates/hooks/useAuth.jsx +0 -30
  203. package/templates/hooks/useAuth.tsx +0 -30
  204. package/templates/hooks/useCacheInvalidation.tsx +0 -19
  205. package/templates/hooks/useCachedFetch.jsx +0 -69
  206. package/templates/hooks/useCachedFetch.tsx +0 -81
  207. package/templates/hooks/useMutation.jsx +0 -76
  208. package/templates/hooks/useMutation.tsx +0 -109
  209. package/templates/hooks/useMutationQueue.jsx +0 -43
  210. package/templates/hooks/useMutationQueue.tsx +0 -50
  211. package/templates/hooks/useNetworkStatus.jsx +0 -19
  212. package/templates/hooks/useNetworkStatus.tsx +0 -19
  213. package/templates/hooks/usePrefetch.jsx +0 -10
  214. package/templates/hooks/usePrefetch.tsx +0 -25
  215. /package/templates/{hooks → react}/useMutationState.jsx +0 -0
  216. /package/templates/{hooks → react}/useMutationState.tsx +0 -0
@@ -3,16 +3,16 @@
3
3
  * Uses direct imports (no subprocess spawning) for a single status line.
4
4
  */
5
5
  import { log } from "../cli/logger.js";
6
- import { loadConfig } from "../config/loader.js";
6
+ import { loadConfigAsync } from "../config/loader.js";
7
7
  import { detectProjectLanguage } from "../utils/detect-language.js";
8
8
  import { statusLine, clearStatusLine } from "../utils/tty-status.js";
9
9
  import { generateSW } from "../generators/sw-generator.js";
10
10
  import { generateFiles } from "../generators/swoff-files-generator.js";
11
11
  import { join } from "path";
12
12
  export async function generateCommand(projectRoot, options = {}) {
13
- const { swOnly = false, filesOnly = false, language } = options;
14
- log.header("Generating Swoff Files");
15
- const { config, configPath } = loadConfig(projectRoot);
13
+ const { swOnly = false, filesOnly = false, language, continueOnSwError = false, } = options;
14
+ // log.header("Generating Swoff Files");
15
+ const { config, configPath } = await loadConfigAsync(projectRoot);
16
16
  if (!configPath) {
17
17
  log.warn('No swoff.config.json found. Run "swoff init" first.');
18
18
  return;
@@ -34,6 +34,10 @@ export async function generateCommand(projectRoot, options = {}) {
34
34
  catch (err) {
35
35
  clearStatusLine();
36
36
  log.error(`Service worker failed: ${err instanceof Error ? err.message : String(err)}`);
37
+ if (!continueOnSwError) {
38
+ log.error("Generation aborted. Fix the issue and re-run. Use --continue-on-sw-error to skip SW and continue with files.");
39
+ process.exit(1);
40
+ }
37
41
  }
38
42
  }
39
43
  if (!swOnly) {
@@ -60,12 +64,15 @@ export async function generateCommand(projectRoot, options = {}) {
60
64
  }
61
65
  }
62
66
  log.success("Generation complete!");
67
+ if (config.features.pwa.enabled) {
68
+ log.normal("");
69
+ log.help("PWA assets: run 'npx @swoff/cli assets --source <path>' to generate icons and splash screens");
70
+ }
63
71
  log.normal("");
64
- log.help("📖 Read swoff/GUIDE.md for documentation links");
65
- log.help("📖 See docs/ files in swoff for targeted feature help");
72
+ log.help("1. Read swoff/GUIDE.md for documentation links");
66
73
  log.normal("");
67
- log.help("⚙️ After each build, run the SW generator:");
68
- log.help(" node swoff/sw/generator.js");
69
- log.help(" (Add this to your build script if you want it automated)");
74
+ log.help("2. After each build, run the SW generator:");
75
+ log.help(" node swoff/sw/generator.js");
76
+ log.help(" (Add this to your build script if you want it automated)");
70
77
  }
71
78
  //# sourceMappingURL=generate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/lib/commands/generate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/lib/commands/generate.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,3 @@
1
- /**
2
- * info command — minimal summary or per-feature detail.
3
- *
4
- * Usage:
5
- * swoff info List enabled features and generated files
6
- * swoff info <feature> Detailed explanation of a specific feature
7
- */
8
1
  import { readFileSync, existsSync, readdirSync } from "fs";
9
2
  import { join, dirname } from "path";
10
3
  import { fileURLToPath } from "url";
@@ -49,7 +42,7 @@ const FEATURES = {
49
42
  },
50
43
  "tag-invalidation": {
51
44
  label: "Tag Invalidation",
52
- description: "Generates cache tags from URL paths and invalidates stale cache entries after mutations. Keeps cached data fresh.",
45
+ description: "Generates cache tags from URLs and invalidates stale cache entries after mutations. Keeps cached data fresh.",
53
46
  files: ["invalidation-tags.ts", "cache.ts"],
54
47
  functions: [
55
48
  "generateTags(url) — extract tags from URL (e.g. /api/todos/42 → ['todos', 'todo:42'])",
@@ -107,26 +100,53 @@ const FEATURES = {
107
100
  ],
108
101
  },
109
102
  };
103
+ function countFilesRecursive(dir) {
104
+ let count = 0;
105
+ for (const entry of readdirSync(dir, { withFileTypes: true })) {
106
+ const full = join(dir, entry.name);
107
+ if (entry.isDirectory()) {
108
+ count += countFilesRecursive(full);
109
+ }
110
+ else {
111
+ count++;
112
+ }
113
+ }
114
+ return count;
115
+ }
116
+ function showFeatureDetail(feature) {
117
+ const key = feature.toLowerCase().replace(/[_-]/g, "-").replace(/^-+|-+$/g, "");
118
+ const info = FEATURES[key];
119
+ if (!info) {
120
+ log.error(`Unknown feature: ${feature}`);
121
+ log.info("Available: mutation-queue, background-sync, auth, tag-invalidation, cross-tab, graphql, push-notification, server-push, pwa");
122
+ return;
123
+ }
124
+ log.header(info.label);
125
+ log.normal(info.description);
126
+ log.normal("\nGenerated files:");
127
+ info.files.forEach((f) => log.help(` swoff/${f}`));
128
+ log.normal("\nFunctions:");
129
+ info.functions.forEach((f) => log.help(` ${f}`));
130
+ log.help("\n Read swoff/GUIDE.md for documentation links.");
131
+ }
110
132
  export async function infoCommand(projectRoot, feature) {
111
133
  if (feature) {
112
134
  return showFeatureDetail(feature);
113
135
  }
114
- // Minimal top-level summary
115
136
  const { config, configPath } = await loadConfigAsync(projectRoot);
116
137
  if (!configPath) {
117
138
  log.warn('No swoff.config.json found. Run "swoff init" first.');
118
139
  return;
119
140
  }
120
141
  log.header("Swoff");
121
- // Show version
122
142
  try {
123
- const pkg = JSON.parse(readFileSync(join(__dirname, "..", "..", "..", "package.json"), "utf8"));
143
+ const pkgDir = join(__dirname, "..", "..", "..");
144
+ const pkg = JSON.parse(readFileSync(join(pkgDir, "package.json"), "utf8"));
124
145
  log.normal(`Version: ${pkg.version}`);
125
146
  }
126
147
  catch {
127
148
  // version not available
128
149
  }
129
- // Show enabled features
130
150
  const enabled = [];
131
151
  if (config.features.mutationQueue.enabled)
132
152
  enabled.push("mutation-queue");
@@ -136,57 +156,28 @@ export async function infoCommand(projectRoot, feature) {
136
156
  enabled.push("auth");
137
157
  if (config.features.crossTabSync)
138
158
  enabled.push("cross-tab");
139
- if (config.features.tagInvalidation.enabled)
140
- enabled.push("tag-invalidation");
141
159
  if (config.features.graphql.enabled)
142
160
  enabled.push("graphql");
143
161
  if (config.features.pushNotifications?.enabled)
144
162
  enabled.push("push-notification");
163
+ if (config.features.serverPush.enabled)
164
+ enabled.push("server-push");
145
165
  if (config.features.pwa.enabled)
146
166
  enabled.push("pwa");
167
+ enabled.push("tag-invalidation");
147
168
  if (enabled.length > 0) {
148
169
  log.normal(`\nEnabled features: ${enabled.join(", ")}`);
149
170
  }
150
171
  else {
151
172
  log.normal("\nEnabled features: (none)");
152
173
  }
153
- // Count generated files
154
174
  const swoffDir = join(projectRoot, "swoff");
155
175
  if (existsSync(swoffDir)) {
156
176
  const count = countFilesRecursive(swoffDir);
157
177
  log.normal(`Generated files: ${count} in swoff/`);
158
178
  }
159
179
  log.help("\n swoff info <feature> — detailed info for a feature");
160
- log.help(" Features: mutation-queue, background-sync, auth, tag-invalidation, cross-tab, graphql, push-notification, pwa, stale-time, auto-refetch, mutation-state, prefetch");
180
+ log.help(" Features: mutation-queue, background-sync, auth, tag-invalidation, cross-tab, graphql, push-notification, server-push, pwa");
161
181
  log.help(" Read swoff/GUIDE.md for documentation links");
162
182
  }
163
- function showFeatureDetail(feature) {
164
- const key = feature.toLowerCase().replace(/[_-]/g, "-").replace(/^-+|-+$/g, "");
165
- const info = FEATURES[key];
166
- if (!info) {
167
- log.error(`Unknown feature: ${feature}`);
168
- log.info("Available: mutation-queue, background-sync, auth, tag-invalidation, cross-tab, graphql, push-notification, pwa");
169
- return;
170
- }
171
- log.header(info.label);
172
- log.normal(info.description);
173
- log.normal("\nGenerated files:");
174
- info.files.forEach((f) => log.help(` swoff/${f}`));
175
- log.normal("\nFunctions:");
176
- info.functions.forEach((f) => log.help(` ${f}`));
177
- log.help("\n Read swoff/GUIDE.md for documentation links.");
178
- }
179
- function countFilesRecursive(dir) {
180
- let count = 0;
181
- for (const entry of readdirSync(dir, { withFileTypes: true })) {
182
- const full = join(dir, entry.name);
183
- if (entry.isDirectory()) {
184
- count += countFilesRecursive(full);
185
- }
186
- else {
187
- count++;
188
- }
189
- }
190
- return count;
191
- }
192
183
  //# sourceMappingURL=info.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"info.js","sourceRoot":"","sources":["../../../src/lib/commands/info.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"info.js","sourceRoot":"","sources":["../../../src/lib/commands/info.ts"],"names":[],"mappings":"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"}
@@ -3,11 +3,21 @@
3
3
  */
4
4
  import { writeFileSync, existsSync } from "fs";
5
5
  import { join } from "path";
6
+ import { createInterface } from "readline";
6
7
  import { log } from "../cli/logger.js";
7
- import { defaultInitConfig } from "../shared/config-types.js";
8
+ import { defaultInitConfig, defaultPwaAssets, } from "../shared/config-types.js";
8
9
  import { detectFramework } from "../utils/detect-framework.js";
10
+ function ask(question) {
11
+ const rl = createInterface({ input: process.stdin, output: process.stdout });
12
+ return new Promise((resolve) => {
13
+ rl.question(` ${question} `, (answer) => {
14
+ rl.close();
15
+ resolve(answer.trim());
16
+ });
17
+ });
18
+ }
9
19
  export async function initCommand(projectRoot, framework) {
10
- log.header("Initializing Swoff");
20
+ // log.header("Initializing Swoff");
11
21
  const configFiles = ["swoff.config.json", "swoff.config.js"];
12
22
  const existingConfig = configFiles.find((f) => existsSync(join(projectRoot, f)));
13
23
  if (existingConfig) {
@@ -18,11 +28,23 @@ export async function initCommand(projectRoot, framework) {
18
28
  const detected = framework || detectFramework(projectRoot);
19
29
  const config = {
20
30
  $schema: defaultInitConfig.$schema,
31
+ configVersion: defaultInitConfig.configVersion,
21
32
  enabled: defaultInitConfig.enabled,
22
33
  framework: detected,
23
34
  build: defaultInitConfig.build,
24
- features: defaultInitConfig.features,
35
+ features: {
36
+ ...defaultInitConfig.features,
37
+ pwa: {
38
+ ...defaultInitConfig.features.pwa,
39
+ assets: { ...defaultPwaAssets },
40
+ },
41
+ },
25
42
  };
43
+ const logoPath = await ask("Path to your app logo (SVG, PNG, JPG) — leave empty for placeholder:");
44
+ if (logoPath) {
45
+ config.features.pwa.assets.source = logoPath;
46
+ log.info("Logo source saved.");
47
+ }
26
48
  const configPath = join(projectRoot, "swoff.config.json");
27
49
  writeFileSync(configPath, JSON.stringify(config, null, 2));
28
50
  log.info("Created swoff.config.json");
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/lib/commands/init.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAoB,MAAM,2BAA2B,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,WAAmB,EAAE,SAAkB;IACvE,GAAG,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAEjC,MAAM,WAAW,GAAG,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;IAC7D,MAAM,cAAc,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAC5C,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CACjC,CAAC;IAEF,IAAI,cAAc,EAAE,CAAC;QACnB,GAAG,CAAC,IAAI,CAAC,kBAAkB,cAAc,kBAAkB,CAAC,CAAC;QAC7D,GAAG,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;QAC3D,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,SAAS,IAAI,eAAe,CAAC,WAAW,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG;QACb,OAAO,EAAE,iBAAiB,CAAC,OAAO;QAClC,OAAO,EAAE,iBAAiB,CAAC,OAAO;QAClC,SAAS,EAAE,QAAoC;QAC/C,KAAK,EAAE,iBAAiB,CAAC,KAAK;QAC9B,QAAQ,EAAE,iBAAiB,CAAC,QAAQ;KACrC,CAAC;IAEF,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;IAC1D,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3D,GAAG,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IAEtC,GAAG,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC;IAC/C,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAC5B,GAAG,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;IAChE,GAAG,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IAC5C,GAAG,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;AAC/D,CAAC"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/lib/commands/init.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ import { log } from "../cli/logger.js";
5
5
  import { loadConfigAsync } from "../config/loader.js";
6
6
  import { validateConfig } from "../config/validator.js";
7
7
  export async function validateCommand(projectRoot) {
8
- log.header("Validating Swoff Configuration");
8
+ // log.header("Validating Swoff Configuration");
9
9
  const { config, configPath, configSource } = await loadConfigAsync(projectRoot);
10
10
  if (!configPath) {
11
11
  log.warn('No swoff.config.json found. Run "swoff init" first.');
@@ -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,GAAG,CAAC,MAAM,CAAC,gCAAgC,CAAC,CAAC;IAE7C,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,MAAM,eAAe,CAAC,WAAW,CAAC,CAAC;IAEhF,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,CAAC,YAAY,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IAC9D,GAAG,CAAC,IAAI,CAAC,0BAA0B,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,mBAAmB,EAAE,CAAC,CAAC;IACxF,GAAG,CAAC,IAAI,CAAC,qBAAqB,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IAChF,GAAG,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,CAAC;IACrE,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;YAAE,OAAQ,CAA6B,CAAC,OAAO,KAAK,IAAI,CAAC;QAChG,OAAO,CAAC,KAAK,IAAI,CAAC;IACpB,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,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,CAAC,YAAY,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IAC9D,GAAG,CAAC,IAAI,CACN,0BAA0B,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,mBAAmB,EAAE,CAC9E,CAAC;IACF,GAAG,CAAC,IAAI,CACN,qBAAqB,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,EAAE,CACtE,CAAC;IACF,GAAG,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,CAAC;IACrE,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,CAAC,KAAK,IAAI,CAAC;IACpB,CAAC,CAAC;SACD,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;SACf,IAAI,CAAC,IAAI,CAAC,EAAE,CAChB,CAAC;AACJ,CAAC"}
@@ -4,7 +4,17 @@
4
4
  */
5
5
  import { readFileSync, existsSync } from "fs";
6
6
  import { join } from "path";
7
- import { defaultConfig, mergeConfigs } from "../shared/config-types.js";
7
+ import { defaultConfig, mergeConfigs, CONFIG_VERSION } from "../shared/config-types.js";
8
+ function checkConfigVersion(config) {
9
+ if (config.configVersion === undefined) {
10
+ console.warn("[swoff] Config is missing configVersion — the format may have changed since it was created.\n" +
11
+ " Add \"configVersion\": 1 to your swoff.config.json to suppress this warning.");
12
+ }
13
+ else if (config.configVersion > CONFIG_VERSION) {
14
+ console.warn(`[swoff] Config has configVersion ${config.configVersion}, but this CLI version supports up to ${CONFIG_VERSION}.\n` +
15
+ " Some settings may not be recognized. Upgrade @swoff/cli for full compatibility.");
16
+ }
17
+ }
8
18
  /**
9
19
  * Load config from project root. Tries JSON first, then JS.
10
20
  * Falls back to defaults if no config found or parse fails.
@@ -16,13 +26,12 @@ export function loadConfig(projectRoot, explicitPath) {
16
26
  if (explicitPath.endsWith(".json")) {
17
27
  try {
18
28
  const raw = JSON.parse(readFileSync(explicitPath, "utf8"));
19
- return {
20
- config: mergeConfigs(defaultConfig, raw),
21
- configPath: explicitPath,
22
- configSource: "JSON",
23
- };
29
+ const config = mergeConfigs(defaultConfig, raw);
30
+ checkConfigVersion(config);
31
+ return { config, configPath: explicitPath, configSource: "JSON" };
24
32
  }
25
33
  catch {
34
+ console.warn(`[swoff] Warning: Failed to parse explicit config "${explicitPath}" — falling back to defaults`);
26
35
  return { config: defaultConfig, configPath: null, configSource: "defaults" };
27
36
  }
28
37
  }
@@ -35,20 +44,17 @@ export function loadConfig(projectRoot, explicitPath) {
35
44
  if (file.endsWith(".json")) {
36
45
  try {
37
46
  const raw = JSON.parse(readFileSync(path, "utf8"));
38
- return {
39
- config: mergeConfigs(defaultConfig, raw),
40
- configPath: path,
41
- configSource: "JSON",
42
- };
47
+ const config = mergeConfigs(defaultConfig, raw);
48
+ checkConfigVersion(config);
49
+ return { config, configPath: path, configSource: "JSON" };
43
50
  }
44
51
  catch {
45
- // Continue to try JS config below
52
+ console.warn(`[swoff] Warning: Failed to parse "${path}" falling back to defaults`);
46
53
  }
47
54
  }
48
- // JS configs are loaded asynchronously — defer to loadConfigAsync.
49
- // Return the path so the async variant can retry with dynamic import.
55
+ // JS configs require the async loader
50
56
  if (file.endsWith(".js")) {
51
- return { config: defaultConfig, configPath: path, configSource: "JavaScript" };
57
+ throw new Error(`JavaScript config files require the async loader. Use loadConfigAsync() instead of loadConfig() for "${path}".`);
52
58
  }
53
59
  }
54
60
  return { config: defaultConfig, configPath: null, configSource: "defaults" };
@@ -62,13 +68,12 @@ export async function loadConfigAsync(projectRoot, explicitPath) {
62
68
  try {
63
69
  const mod = await import(syncResult.configPath);
64
70
  const raw = (mod.default || mod);
65
- return {
66
- config: mergeConfigs(defaultConfig, raw),
67
- configPath: syncResult.configPath,
68
- configSource: "JavaScript",
69
- };
71
+ const config = mergeConfigs(defaultConfig, raw);
72
+ checkConfigVersion(config);
73
+ return { config, configPath: syncResult.configPath, configSource: "JavaScript" };
70
74
  }
71
75
  catch {
76
+ console.warn(`[swoff] Warning: Failed to load JS config "${syncResult.configPath}" — falling back to defaults`);
72
77
  return { config: defaultConfig, configPath: null, configSource: "defaults" };
73
78
  }
74
79
  }
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../src/lib/config/loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../src/lib/config/loader.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,9 @@
1
- import { KNOWN_FEATURES, OBJECT_FEATURES, VALID_STRATEGIES, REACTIVE_FIELDS } from "../shared/config-types.js";
1
+ import { KNOWN_FEATURES, OBJECT_FEATURES, VALID_STRATEGIES, REACTIVE_FIELDS, CONFIG_VERSION } from "../shared/config-types.js";
2
2
  export function validateConfig(config) {
3
3
  const errors = [];
4
+ if (config.configVersion !== undefined && config.configVersion !== CONFIG_VERSION) {
5
+ errors.push(`configVersion must be ${CONFIG_VERSION}, got ${config.configVersion}`);
6
+ }
4
7
  const requiredFields = ["enabled", "features", "build"];
5
8
  const missingFields = requiredFields.filter((field) => config[field] === undefined || config[field] === null);
6
9
  if (missingFields.length > 0) {
@@ -37,15 +40,15 @@ export function validateConfig(config) {
37
40
  const sw = features.serviceWorker;
38
41
  if (sw) {
39
42
  const ver = sw.version;
40
- if (ver !== false && typeof ver !== "string") {
41
- errors.push('features.serviceWorker.version must be a string or false');
43
+ if (typeof ver !== "string") {
44
+ errors.push('features.serviceWorker.version must be a string');
42
45
  }
43
- if (typeof ver === "string") {
46
+ else {
44
47
  const isSemver = /^\d+\.\d+\.\d+$/.test(ver);
45
48
  const isPackage = ver === "package";
46
49
  const isHash = ver === "hash";
47
50
  if (!isSemver && !isPackage && !isHash) {
48
- errors.push(`features.serviceWorker.version must be "package", "hash", a semver string (e.g. "1.0.0"), or false`);
51
+ errors.push(`features.serviceWorker.version must be "package", "hash", or a semver string (e.g. "1.0.0")`);
49
52
  }
50
53
  }
51
54
  if (sw.minSupportedVersion !== undefined && typeof sw.minSupportedVersion === "string") {
@@ -114,6 +117,9 @@ export function validateConfig(config) {
114
117
  if (strategy.normalizeKey !== undefined && typeof strategy.normalizeKey !== "boolean") {
115
118
  errors.push("features.serviceWorker.strategy.normalizeKey must be a boolean");
116
119
  }
120
+ if (strategy.maxRuntimeCacheAge !== undefined && (typeof strategy.maxRuntimeCacheAge !== "number" || strategy.maxRuntimeCacheAge < 0 || !Number.isInteger(strategy.maxRuntimeCacheAge))) {
121
+ errors.push("features.serviceWorker.strategy.maxRuntimeCacheAge must be a non-negative integer");
122
+ }
117
123
  if (strategy.ignoreQueryParams !== undefined && (!Array.isArray(strategy.ignoreQueryParams) || !strategy.ignoreQueryParams.every((p) => typeof p === "string"))) {
118
124
  errors.push("features.serviceWorker.strategy.ignoreQueryParams must be an array of strings");
119
125
  }
@@ -148,6 +154,9 @@ export function validateConfig(config) {
148
154
  errors.push("features.serviceWorker.navigation.preload must be a boolean");
149
155
  }
150
156
  }
157
+ if (sw.requestBatchWindowMs !== undefined && (typeof sw.requestBatchWindowMs !== "number" || sw.requestBatchWindowMs < 0 || !Number.isInteger(sw.requestBatchWindowMs))) {
158
+ errors.push("features.serviceWorker.requestBatchWindowMs must be a non-negative integer");
159
+ }
151
160
  }
152
161
  const refetchQueue = features.refetchQueue;
153
162
  if (refetchQueue && typeof refetchQueue === "object") {
@@ -180,12 +189,6 @@ export function validateConfig(config) {
180
189
  errors.push("features.tagInvalidation.cascading must be an object");
181
190
  }
182
191
  }
183
- const tagInvalidationObj = features.tagInvalidation;
184
- const tagInvalidationEnabled = tagInvalidationObj?.enabled === true;
185
- const crossTabSyncVal = features.crossTabSync;
186
- if (crossTabSyncVal === true && !tagInvalidationEnabled) {
187
- errors.push("crossTabSync requires tagInvalidation to be enabled");
188
- }
189
192
  const backgroundSyncVal = features.backgroundSync;
190
193
  const mutationQueueVal = features.mutationQueue;
191
194
  if (mutationQueueVal && typeof mutationQueueVal === "object") {
@@ -210,6 +213,12 @@ export function validateConfig(config) {
210
213
  if (backgroundSyncVal === true && !mqEnabled) {
211
214
  errors.push("backgroundSync requires mutationQueue to be enabled");
212
215
  }
216
+ if (backgroundSyncVal === true) {
217
+ const authBg = features.auth;
218
+ if (authBg?.enabled === true && authBg?.type !== "cookie") {
219
+ errors.push("backgroundSync is not supported with auth type \"bearer\" or \"custom\" — tokens must not be stored in IndexedDB");
220
+ }
221
+ }
213
222
  const auth = features.auth;
214
223
  if (auth && typeof auth === "object") {
215
224
  if (auth.enabled !== undefined && typeof auth.enabled !== "boolean") {
@@ -1 +1 @@
1
- {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../../src/lib/config/validator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../../src/lib/config/validator.ts"],"names":[],"mappings":"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"}