@swoff/cli 0.3.7 → 0.3.9

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 (121) hide show
  1. package/README.md +53 -606
  2. package/dist/__tests__/assemble-sw.test.js +8 -38
  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 +38 -18
  7. package/dist/__tests__/config-types.test.js.map +1 -1
  8. package/dist/__tests__/file-generators.test.js +2 -2
  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 +12 -12
  15. package/dist/__tests__/loader.test.js.map +1 -1
  16. package/dist/__tests__/validator.test.js +170 -74
  17. package/dist/__tests__/validator.test.js.map +1 -1
  18. package/dist/index.js +12 -11
  19. package/dist/index.js.map +1 -1
  20. package/dist/lib/cli/help.js +0 -5
  21. package/dist/lib/cli/help.js.map +1 -1
  22. package/dist/lib/commands/add.js +52 -33
  23. package/dist/lib/commands/add.js.map +1 -1
  24. package/dist/lib/commands/clean.js +1 -15
  25. package/dist/lib/commands/clean.js.map +1 -1
  26. package/dist/lib/commands/generate-guide.js +5 -5
  27. package/dist/lib/commands/generate-guide.js.map +1 -1
  28. package/dist/lib/commands/generate.js +7 -21
  29. package/dist/lib/commands/generate.js.map +1 -1
  30. package/dist/lib/commands/info.js +37 -12
  31. package/dist/lib/commands/info.js.map +1 -1
  32. package/dist/lib/commands/init.js +2 -10
  33. package/dist/lib/commands/init.js.map +1 -1
  34. package/dist/lib/commands/validate.js +3 -3
  35. package/dist/lib/commands/validate.js.map +1 -1
  36. package/dist/lib/config/loader.js +3 -6
  37. package/dist/lib/config/loader.js.map +1 -1
  38. package/dist/lib/config/validator.js +192 -42
  39. package/dist/lib/config/validator.js.map +1 -1
  40. package/dist/lib/generators/file-generators/cache.js +2 -10
  41. package/dist/lib/generators/file-generators/cache.js.map +1 -1
  42. package/dist/lib/generators/file-generators/client-injector.js +51 -12
  43. package/dist/lib/generators/file-generators/client-injector.js.map +1 -1
  44. package/dist/lib/generators/file-generators/fetch-wrapper.js +127 -58
  45. package/dist/lib/generators/file-generators/fetch-wrapper.js.map +1 -1
  46. package/dist/lib/generators/file-generators/generate-hooks.js +6 -2
  47. package/dist/lib/generators/file-generators/generate-hooks.js.map +1 -1
  48. package/dist/lib/generators/file-generators/gql-wrapper.js +139 -0
  49. package/dist/lib/generators/file-generators/gql-wrapper.js.map +1 -0
  50. package/dist/lib/generators/file-generators/guide-generator.js +6 -436
  51. package/dist/lib/generators/file-generators/guide-generator.js.map +1 -1
  52. package/dist/lib/generators/file-generators/invalidation-tags.js +206 -19
  53. package/dist/lib/generators/file-generators/invalidation-tags.js.map +1 -1
  54. package/dist/lib/generators/file-generators/manifest.js +2 -2
  55. package/dist/lib/generators/file-generators/manifest.js.map +1 -1
  56. package/dist/lib/generators/file-generators/mutation-queue.js +140 -52
  57. package/dist/lib/generators/file-generators/mutation-queue.js.map +1 -1
  58. package/dist/lib/generators/file-generators/mutation-state.js +126 -0
  59. package/dist/lib/generators/file-generators/mutation-state.js.map +1 -0
  60. package/dist/lib/generators/file-generators/push.js +6 -7
  61. package/dist/lib/generators/file-generators/push.js.map +1 -1
  62. package/dist/lib/generators/file-generators/quick-readme.js +8 -75
  63. package/dist/lib/generators/file-generators/quick-readme.js.map +1 -1
  64. package/dist/lib/generators/file-generators/server-push.js +146 -0
  65. package/dist/lib/generators/file-generators/server-push.js.map +1 -0
  66. package/dist/lib/generators/file-generators/sw-generator-build.js +8 -9
  67. package/dist/lib/generators/file-generators/sw-generator-build.js.map +1 -1
  68. package/dist/lib/generators/file-generators/sw-injector.js +2 -1
  69. package/dist/lib/generators/file-generators/sw-injector.js.map +1 -1
  70. package/dist/lib/generators/file-generators/type-definitions.js +26 -1
  71. package/dist/lib/generators/file-generators/type-definitions.js.map +1 -1
  72. package/dist/lib/generators/sw-generator.js +8 -18
  73. package/dist/lib/generators/sw-generator.js.map +1 -1
  74. package/dist/lib/generators/sw-sections/activate-handler.js.map +1 -1
  75. package/dist/lib/generators/sw-sections/assemble-sw.js +19 -11
  76. package/dist/lib/generators/sw-sections/assemble-sw.js.map +1 -1
  77. package/dist/lib/generators/sw-sections/background-sync-handler.js +80 -24
  78. package/dist/lib/generators/sw-sections/background-sync-handler.js.map +1 -1
  79. package/dist/lib/generators/sw-sections/config-header.js +2 -2
  80. package/dist/lib/generators/sw-sections/config-header.js.map +1 -1
  81. package/dist/lib/generators/sw-sections/default-template.js +2 -1
  82. package/dist/lib/generators/sw-sections/default-template.js.map +1 -1
  83. package/dist/lib/generators/sw-sections/fetch-handler.js +461 -121
  84. package/dist/lib/generators/sw-sections/fetch-handler.js.map +1 -1
  85. package/dist/lib/generators/sw-sections/message-handler.js +55 -15
  86. package/dist/lib/generators/sw-sections/message-handler.js.map +1 -1
  87. package/dist/lib/generators/sw-sections/server-push-handler.js +114 -0
  88. package/dist/lib/generators/sw-sections/server-push-handler.js.map +1 -0
  89. package/dist/lib/generators/sw-sections/sw-push.js +67 -0
  90. package/dist/lib/generators/sw-sections/sw-push.js.map +1 -0
  91. package/dist/lib/generators/sw-sections/tag-management.js +62 -21
  92. package/dist/lib/generators/sw-sections/tag-management.js.map +1 -1
  93. package/dist/lib/generators/swoff-files-generator.js +12 -16
  94. package/dist/lib/generators/swoff-files-generator.js.map +1 -1
  95. package/dist/lib/shared/config-types.js +133 -45
  96. package/dist/lib/shared/config-types.js.map +1 -1
  97. package/dist/lib/shared/glob-matcher.js +77 -0
  98. package/dist/lib/shared/glob-matcher.js.map +1 -0
  99. package/dist/lib/utils/tty-status.js +21 -0
  100. package/dist/lib/utils/tty-status.js.map +1 -0
  101. package/docs/API.md +565 -0
  102. package/docs/ARCHITECTURE.md +374 -0
  103. package/docs/CLI.md +148 -0
  104. package/docs/COMPARISON.md +192 -0
  105. package/docs/CONFIG.md +277 -0
  106. package/docs/ECOSYSTEM.md +33 -0
  107. package/package.json +2 -1
  108. package/templates/hooks/useAuth.jsx +2 -2
  109. package/templates/hooks/useAuth.tsx +2 -2
  110. package/templates/hooks/useCachedFetch.jsx +21 -7
  111. package/templates/hooks/useCachedFetch.tsx +23 -11
  112. package/templates/hooks/useMutation.jsx +76 -0
  113. package/templates/hooks/useMutation.tsx +109 -0
  114. package/templates/hooks/useMutationQueue.jsx +20 -11
  115. package/templates/hooks/useMutationQueue.tsx +31 -15
  116. package/templates/hooks/useMutationState.jsx +13 -0
  117. package/templates/hooks/useMutationState.tsx +25 -0
  118. package/templates/hooks/usePrefetch.jsx +10 -0
  119. package/templates/hooks/usePrefetch.tsx +25 -0
  120. package/templates/hooks/usePushSubscription.jsx +3 -3
  121. package/templates/hooks/usePushSubscription.tsx +3 -3
@@ -1,5 +1,6 @@
1
1
  /**
2
- * add command - enables a feature flag and regenerates.
2
+ * add command - enables one or more feature flags and regenerates.
3
+ * Supports comma-separated features: swoff add auth,graphql,pwa
3
4
  */
4
5
  import { readFileSync, writeFileSync } from "fs";
5
6
  import { join } from "path";
@@ -7,33 +8,59 @@ import { log } from "../cli/logger.js";
7
8
  import { loadConfigAsync } from "../config/loader.js";
8
9
  import { defaultConfig } from "../shared/config-types.js";
9
10
  import { generateCommand } from "./generate.js";
10
- const KNOWN_FEATURES = ["mutation-queue", "mutationqueue", "pwa", "cross-tab", "crosstab", "auth", "tag-invalidation", "taginvalidation", "background-sync", "backgroundsync", "push-notification", "pushnotification"];
11
- const featureMap = {
12
- "mutation-queue": { mutationQueue: true },
13
- mutationqueue: { mutationQueue: true },
11
+ const FEATURE_ALIASES = {
12
+ mutationqueue: "mutation-queue",
13
+ crosstab: "cross-tab",
14
+ taginvalidation: "tag-invalidation",
15
+ backgroundsync: "background-sync",
16
+ pushnotification: "push-notification",
17
+ };
18
+ const FEATURE_NAMES = [
19
+ "mutation-queue", "pwa", "cross-tab", "auth",
20
+ "tag-invalidation", "background-sync", "graphql", "push-notification",
21
+ ];
22
+ const FEATURE_CONFIG_UPDATES = {
23
+ "mutation-queue": { mutationQueue: { enabled: true, batchSize: 1, batchDelayMs: 0, maxRetries: 5, retryBackoffMs: 1000 } },
14
24
  pwa: { pwa: { enabled: true } },
15
25
  "cross-tab": { crossTabSync: true, tagInvalidation: true },
16
- crosstab: { crossTabSync: true, tagInvalidation: true },
17
26
  auth: { auth: { enabled: true, type: "bearer", refreshPath: "/api/refresh", userEndpoint: "/api/me" } },
18
27
  "tag-invalidation": { tagInvalidation: true },
19
- taginvalidation: { tagInvalidation: true },
20
28
  "background-sync": { backgroundSync: true },
21
- backgroundsync: { backgroundSync: true },
29
+ graphql: { graphql: { enabled: true, endpoint: "/graphql" } },
22
30
  "push-notification": { pushNotifications: { enabled: true, vapidPublicKey: "" } },
23
- pushnotification: { pushNotifications: { enabled: true, vapidPublicKey: "" } },
24
31
  };
25
- export async function addCommand(projectRoot, feature) {
26
- log.header(`Adding ${feature} feature`);
27
- const configUpdate = featureMap[feature.toLowerCase()];
28
- if (!configUpdate) {
29
- log.error(`Unknown feature: ${feature}`);
30
- log.info("Available features: mutation-queue, pwa, cross-tab, auth, tag-invalidation, background-sync, push-notification");
32
+ function normalizeFeature(name) {
33
+ const lower = name.toLowerCase().trim();
34
+ return FEATURE_ALIASES[lower] ?? lower;
35
+ }
36
+ function mergeFeatureIntoRaw(raw, update) {
37
+ const features = { ...(raw.features || {}) };
38
+ for (const [key, value] of Object.entries(update)) {
39
+ if (typeof value === "object" && value !== null && typeof features[key] === "object" && features[key] !== null) {
40
+ features[key] = { ...features[key], ...value };
41
+ }
42
+ else {
43
+ features[key] = value;
44
+ }
45
+ }
46
+ return { ...raw, features };
47
+ }
48
+ export async function addCommand(projectRoot, featureArg) {
49
+ const features = featureArg.split(",").map(normalizeFeature).filter(Boolean);
50
+ const invalid = features.filter((f) => !FEATURE_CONFIG_UPDATES[f]);
51
+ if (invalid.length > 0) {
52
+ log.error(`Unknown feature(s): ${invalid.join(", ")}`);
53
+ log.info(`Available features: ${FEATURE_NAMES.join(", ")}`);
31
54
  return;
32
55
  }
56
+ const label = features.length === 1 ? features[0] : `${features.length} features`;
57
+ log.header(`Adding ${label}`);
58
+ const configUpdates = features.map((f) => FEATURE_CONFIG_UPDATES[f]);
59
+ const combinedUpdate = Object.assign({}, ...configUpdates);
33
60
  const { configPath } = await loadConfigAsync(projectRoot);
34
61
  const resolvedConfigPath = configPath || join(projectRoot, "swoff.config.json");
35
62
  if (!configPath) {
36
- log.warn("No config found. Creating new config with feature...");
63
+ log.warn("No config found. Creating new config with features...");
37
64
  const newConfig = {
38
65
  ...defaultConfig,
39
66
  $schema: "https://swoff.netlify.app/schema/v1.json",
@@ -41,31 +68,23 @@ export async function addCommand(projectRoot, feature) {
41
68
  ...defaultConfig.features,
42
69
  serviceWorker: {
43
70
  ...defaultConfig.features.serviceWorker,
44
- version: {
45
- ...defaultConfig.features.serviceWorker.version,
46
- minSupportedVersion: "0.0.0",
47
- },
71
+ minSupportedVersion: "0.0.0",
48
72
  },
49
73
  crossTabSync: false,
50
74
  },
51
75
  };
52
- writeFileSync(resolvedConfigPath, JSON.stringify(newConfig, null, 2));
53
- log.success(`Created swoff.config.json with ${feature} feature`);
76
+ const raw = JSON.parse(JSON.stringify(newConfig));
77
+ const merged = mergeFeatureIntoRaw(raw, combinedUpdate);
78
+ writeFileSync(resolvedConfigPath, JSON.stringify(merged, null, 2));
79
+ log.success(`Created swoff.config.json with ${label}`);
54
80
  }
55
81
  else {
56
82
  const raw = JSON.parse(readFileSync(resolvedConfigPath, "utf8"));
57
- const objectFeatures = ["pwa", "serviceWorker", "auth"];
58
- const merged = { ...raw.features, ...configUpdate };
59
- for (const key of objectFeatures) {
60
- if (configUpdate[key] && raw.features?.[key]) {
61
- merged[key] = { ...raw.features[key], ...configUpdate[key] };
62
- }
63
- }
64
- raw.features = merged;
65
- writeFileSync(resolvedConfigPath, JSON.stringify(raw, null, 2));
66
- log.success(`Updated swoff.config.json with ${feature} feature`);
83
+ const merged = mergeFeatureIntoRaw(raw, combinedUpdate);
84
+ writeFileSync(resolvedConfigPath, JSON.stringify(merged, null, 2));
85
+ log.success(`Updated swoff.config.json with ${label}`);
67
86
  }
68
87
  await generateCommand(projectRoot);
69
- log.success(`${feature} feature added successfully!`);
88
+ log.success(`${label} added successfully!`);
70
89
  }
71
90
  //# sourceMappingURL=add.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"add.js","sourceRoot":"","sources":["../../../src/lib/commands/add.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"add.js","sourceRoot":"","sources":["../../../src/lib/commands/add.ts"],"names":[],"mappings":"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"}
@@ -1,21 +1,13 @@
1
1
  /**
2
- * clean command - removes Swoff trace from the project (swoff/, config, version info).
2
+ * clean command - removes Swoff from the project (swoff/ dir + config).
3
3
  */
4
4
  import { rmSync, existsSync } from "fs";
5
5
  import { join } from "path";
6
6
  import { log } from "../cli/logger.js";
7
- import { loadConfigAsync } from "../config/loader.js";
8
- import { removeGeneratorFromBuildScript } from "../utils/build-script.js";
9
7
  export async function cleanCommand(projectRoot) {
10
8
  log.header("Removing Swoff");
11
- const { config, configPath } = await loadConfigAsync(projectRoot);
12
9
  const configFiles = ["swoff.config.json", "swoff.config.js"];
13
- const outputDir = config?.build?.outputDir || "dist";
14
10
  let count = 0;
15
- if (removeGeneratorFromBuildScript(projectRoot)) {
16
- log.info("Removed SW generator from package.json build script");
17
- count++;
18
- }
19
11
  const swoffDir = join(projectRoot, "swoff");
20
12
  if (existsSync(swoffDir)) {
21
13
  rmSync(swoffDir, { recursive: true, force: true });
@@ -28,12 +20,6 @@ export async function cleanCommand(projectRoot) {
28
20
  log.info(`Removed ${existingConfig}`);
29
21
  count++;
30
22
  }
31
- const versionPath = join(projectRoot, outputDir, "version.json");
32
- if (existsSync(versionPath)) {
33
- rmSync(versionPath);
34
- log.info(`Removed ${outputDir}/version.json`);
35
- count++;
36
- }
37
23
  if (count === 0) {
38
24
  log.info("No Swoff files found to remove.");
39
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"clean.js","sourceRoot":"","sources":["../../../src/lib/commands/clean.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;AAE1E,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,WAAmB;IACpD,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAE7B,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,eAAe,CAAC,WAAW,CAAC,CAAC;IAClE,MAAM,WAAW,GAAG,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;IAC7D,MAAM,SAAS,GAAG,MAAM,EAAE,KAAK,EAAE,SAAS,IAAI,MAAM,CAAC;IAErD,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,IAAI,8BAA8B,CAAC,WAAW,CAAC,EAAE,CAAC;QAChD,GAAG,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;QAChE,KAAK,EAAE,CAAC;IACV,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC5C,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,MAAM,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC3B,KAAK,EAAE,CAAC;IACV,CAAC;IAED,MAAM,cAAc,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACjF,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC;QAC1C,GAAG,CAAC,IAAI,CAAC,WAAW,cAAc,EAAE,CAAC,CAAC;QACtC,KAAK,EAAE,CAAC;IACV,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;IACjE,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5B,MAAM,CAAC,WAAW,CAAC,CAAC;QACpB,GAAG,CAAC,IAAI,CAAC,WAAW,SAAS,eAAe,CAAC,CAAC;QAC9C,KAAK,EAAE,CAAC;IACV,CAAC;IAED,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;QAChB,GAAG,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IAC9C,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"clean.js","sourceRoot":"","sources":["../../../src/lib/commands/clean.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAEvC,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,WAAmB;IACpD,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAE7B,MAAM,WAAW,GAAG,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;IAC7D,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC5C,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,MAAM,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC3B,KAAK,EAAE,CAAC;IACV,CAAC;IAED,MAAM,cAAc,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACjF,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC;QAC1C,GAAG,CAAC,IAAI,CAAC,WAAW,cAAc,EAAE,CAAC,CAAC;QACtC,KAAK,EAAE,CAAC;IACV,CAAC;IAED,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;QAChB,GAAG,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IAC9C,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC"}
@@ -47,7 +47,7 @@ export function generateGuide(ctx) {
47
47
  lines.push(" }");
48
48
  }
49
49
  }
50
- if (config.features.mutationQueue) {
50
+ if (config.features.mutationQueue.enabled) {
51
51
  lines.push("");
52
52
  lines.push(" ── Mutation Queue ──");
53
53
  lines.push(` Import in mutation handlers:`);
@@ -91,7 +91,7 @@ export function generateGuide(ctx) {
91
91
  lines.push(" if (!authenticated) return <LoginPage />;");
92
92
  lines.push(" return <div>Welcome {user?.name} {!online && '(offline)'}</div>;");
93
93
  lines.push(" }");
94
- if (config.features.mutationQueue) {
94
+ if (config.features.mutationQueue.enabled) {
95
95
  lines.push("");
96
96
  lines.push(" ⚠️ After auth re-login, drain queued mutations:");
97
97
  lines.push(` import { flushMutations } from "../swoff/mutation-queue.${ext}";`);
@@ -104,7 +104,7 @@ export function generateGuide(ctx) {
104
104
  lines.push("");
105
105
  lines.push(" ── Background Sync ──");
106
106
  lines.push(" ⚠️ Chrome/Edge only (not supported in Firefox or Safari).");
107
- if (!config.features.mutationQueue) {
107
+ if (!config.features.mutationQueue.enabled) {
108
108
  lines.push(" ❌ Requires mutationQueue to be enabled.");
109
109
  lines.push(' Run: npx @swoff/cli add mutation-queue');
110
110
  }
@@ -120,7 +120,7 @@ export function generateGuide(ctx) {
120
120
  lines.push(" }");
121
121
  }
122
122
  }
123
- if (config.features.tagInvalidation) {
123
+ if (config.features.tagInvalidation.enabled) {
124
124
  lines.push("");
125
125
  lines.push(" ── Tag Invalidation ──");
126
126
  lines.push(` Generate tags and invalidate after mutations:`);
@@ -142,7 +142,7 @@ export function generateGuide(ctx) {
142
142
  lines.push(" }");
143
143
  }
144
144
  }
145
- if (!config.features.tagInvalidation && config.features.crossTabSync) {
145
+ if (!config.features.tagInvalidation.enabled && config.features.crossTabSync) {
146
146
  lines.push("");
147
147
  lines.push(" ⚠️ crossTabSync requires tagInvalidation to be enabled.");
148
148
  lines.push(' Run: npx @swoff/cli add tag-invalidation');
@@ -1 +1 @@
1
- {"version":3,"file":"generate-guide.js","sourceRoot":"","sources":["../../../src/lib/commands/generate-guide.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-guide.js","sourceRoot":"","sources":["../../../src/lib/commands/generate-guide.ts"],"names":[],"mappings":"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"}
@@ -5,25 +5,10 @@
5
5
  import { log } from "../cli/logger.js";
6
6
  import { loadConfig } from "../config/loader.js";
7
7
  import { detectProjectLanguage } from "../utils/detect-language.js";
8
- import { appendGeneratorToBuildScript } from "../utils/build-script.js";
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
- function statusLine(msg) {
13
- if (process.stdout.isTTY) {
14
- const cols = process.stdout.columns || 80;
15
- process.stdout.write(`\r${" ".repeat(cols - 1)}\r ${msg}`);
16
- }
17
- else {
18
- console.log(` ${msg}`);
19
- }
20
- }
21
- function clearStatusLine() {
22
- if (process.stdout.isTTY) {
23
- const cols = process.stdout.columns || 80;
24
- process.stdout.write(`\r${" ".repeat(cols - 1)}\r`);
25
- }
26
- }
27
12
  export async function generateCommand(projectRoot, options = {}) {
28
13
  const { swOnly = false, filesOnly = false, language } = options;
29
14
  log.header("Generating Swoff Files");
@@ -75,11 +60,12 @@ export async function generateCommand(projectRoot, options = {}) {
75
60
  }
76
61
  }
77
62
  log.success("Generation complete!");
78
- if (appendGeneratorToBuildScript(projectRoot)) {
79
- log.info("Added SW generator to package.json build script");
80
- }
81
63
  log.normal("");
82
- log.help("📖 Read swoff/GUIDE.md for the full integration guide");
83
- log.help("📖 Read swoff/README.md for quick reference");
64
+ log.help("📖 Read swoff/GUIDE.md for documentation links");
65
+ log.help("📖 See docs/ files in swoff for targeted feature help");
66
+ 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)");
84
70
  }
85
71
  //# sourceMappingURL=generate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/lib/commands/generate.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAEvE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAQ5B,SAAS,UAAU,CAAC,GAAW;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,OAAO,GAAG,EAAE,CAAC,CAAC;IAC9D,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC;AAED,SAAS,eAAe;IACtB,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,CAAC,KAAK,UAAU,eAAe,CACnC,WAAmB,EACnB,UAA2B,EAAE;IAE7B,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,SAAS,GAAG,KAAK,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAEhE,GAAG,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC;IAErC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IAEvD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,GAAG,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;QAChE,OAAO;IACT,CAAC;IAED,GAAG,CAAC,IAAI,CAAC,WAAW,UAAU,EAAE,CAAC,CAAC;IAElC,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS,IAAI,SAAS,CAAC;IACpD,GAAG,CAAC,IAAI,CAAC,cAAc,aAAa,EAAE,CAAC,CAAC;IAExC,MAAM,YAAY,GAAG,CAAC,QAAQ,IAAI,qBAAqB,CAAC,WAAW,CAAC,CAAgB,CAAC;IACrF,GAAG,CAAC,IAAI,CAAC,aAAa,YAAY,EAAE,CAAC,CAAC;IAEtC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,UAAU,CAAC,qBAAqB,CAAC,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,UAAU,CAAC;gBACf,WAAW;gBACX,UAAU;gBACV,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;aACnC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,eAAe,EAAE,CAAC;YAClB,GAAG,CAAC,KAAK,CACP,0BAA0B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAC7E,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,GAAG,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAC5C,MAAM,cAAc,GAAa,EAAE,CAAC;QAEpC,MAAM,GAAG,GAAqB;YAC5B,MAAM;YACN,WAAW;YACX,QAAQ;YACR,GAAG;YACH,cAAc;YACd,aAAa;SACd,CAAC;QAEF,UAAU,CAAC,YAAY,CAAC,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC;YACvE,eAAe,EAAE,CAAC;YAClB,GAAG,CAAC,OAAO,CAAC,aAAa,KAAK,CAAC,MAAM,mBAAmB,CAAC,CAAC;QAC5D,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,eAAe,EAAE,CAAC;YAClB,GAAG,CAAC,KAAK,CACP,2BAA2B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAC9E,CAAC;QACJ,CAAC;IACH,CAAC;IAED,GAAG,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAEpC,IAAI,4BAA4B,CAAC,WAAW,CAAC,EAAE,CAAC;QAC9C,GAAG,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;IAC9D,CAAC;IAED,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACf,GAAG,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;IACnE,GAAG,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;AAC3D,CAAC"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/lib/commands/generate.ts"],"names":[],"mappings":"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"}
@@ -6,19 +6,22 @@
6
6
  * swoff info <feature> Detailed explanation of a specific feature
7
7
  */
8
8
  import { readFileSync, existsSync, readdirSync } from "fs";
9
- import { join } from "path";
9
+ import { join, dirname } from "path";
10
+ import { fileURLToPath } from "url";
10
11
  import { log } from "../cli/logger.js";
11
12
  import { loadConfigAsync } from "../config/loader.js";
13
+ const __dirname = dirname(fileURLToPath(import.meta.url));
12
14
  const FEATURES = {
13
15
  "mutation-queue": {
14
16
  label: "Mutation Queue",
15
- description: "Queues offline write operations in IndexedDB and replays them when the connection returns. Uses the Background Sync API or the online event listener.",
16
- files: ["mutation-queue.ts"],
17
+ description: "Queues offline write operations in IndexedDB and replays them when the connection returns. Supports configurable batch size, rate limiting between mutations, and exponential backoff on retry. Uses the Background Sync API or the online event listener.",
18
+ files: ["mutation-queue.ts", "mutation-state.ts"],
17
19
  functions: [
18
20
  "queueMutation(mutation) — store a write for later sync",
19
- "processMutationQueue() — replay all queued writes",
21
+ "processMutationQueue() — replay all queued writes (respects batchSize, batchDelayMs, maxRetries, retryBackoffMs)",
20
22
  "flushMutations() — same as processMutationQueue, call after re-login",
21
23
  "getPendingCount() — number of mutations waiting to sync",
24
+ "trackMutation(id, status) / getMutationState(id) / clearMutationState(id) — per-mutation state tracking",
22
25
  ],
23
26
  },
24
27
  "background-sync": {
@@ -61,18 +64,38 @@ const FEATURES = {
61
64
  files: ["client-injector.ts (internal handling)"],
62
65
  functions: ["No separate imports needed — handled automatically by client-injector.ts"],
63
66
  },
67
+ graphql: {
68
+ label: "GraphQL",
69
+ description: "A fetchWithGql wrapper that brings Swoff's caching, offline queue, and tag-based invalidation to GraphQL APIs. Hashes query + variables for deterministic cache keys, auto-detects queries vs mutations, and generates tags from operation names.",
70
+ files: ["gql-wrapper.ts"],
71
+ functions: [
72
+ "fetchWithGql<T>(query, options?) — unified GQL fetch with caching, auth, offline queue, auto-invalidation",
73
+ "queryGql<T>(query, variables?, options?) — shorthand for GQL queries (type: 'read')",
74
+ "mutateGql<T>(mutation, variables?, options?) — shorthand for GQL mutations (type: 'mutation')",
75
+ ],
76
+ },
64
77
  "push-notification": {
65
78
  label: "Push Notifications",
66
79
  description: "Push notification subscription management with IndexedDB persistence, VAPID key support, and service worker push/notificationclick event handlers.",
67
80
  files: ["push.ts"],
68
81
  functions: [
69
- "subscribeToPush(vapidPublicKey) — request permission and subscribe",
82
+ "subscribeToPush() — request permission and subscribe (uses VAPID key from config)",
70
83
  "unsubscribeFromPush() — unsubscribe and clear stored subscription",
71
84
  "isSubscribed() — check subscription status",
72
85
  "getPushSubscription() — get current PushSubscription object",
73
86
  "requestNotificationPermission() — request permission only",
74
87
  ],
75
88
  },
89
+ "server-push": {
90
+ label: "Server Push Events",
91
+ description: "Real-time cache invalidation via SSE or WebSocket. The service worker connects to a push endpoint and invalidates cache tags when the server signals data changes — no polling needed.",
92
+ files: ["server-push.ts"],
93
+ functions: [
94
+ "startPushEvents() — connect to push endpoint and listen for invalidate events",
95
+ "stopPushEvents() — disconnect from push endpoint",
96
+ "isPushConnected() — check connection status",
97
+ ],
98
+ },
76
99
  pwa: {
77
100
  label: "PWA",
78
101
  description: "Install prompt handling, manifest generation, and React hooks for update management.",
@@ -97,7 +120,7 @@ export async function infoCommand(projectRoot, feature) {
97
120
  log.header("Swoff");
98
121
  // Show version
99
122
  try {
100
- const pkg = JSON.parse(readFileSync(join(projectRoot, "node_modules", "@swoff", "cli", "package.json"), "utf8"));
123
+ const pkg = JSON.parse(readFileSync(join(__dirname, "..", "..", "..", "package.json"), "utf8"));
101
124
  log.normal(`Version: ${pkg.version}`);
102
125
  }
103
126
  catch {
@@ -105,7 +128,7 @@ export async function infoCommand(projectRoot, feature) {
105
128
  }
106
129
  // Show enabled features
107
130
  const enabled = [];
108
- if (config.features.mutationQueue)
131
+ if (config.features.mutationQueue.enabled)
109
132
  enabled.push("mutation-queue");
110
133
  if (config.features.backgroundSync)
111
134
  enabled.push("background-sync");
@@ -113,8 +136,10 @@ export async function infoCommand(projectRoot, feature) {
113
136
  enabled.push("auth");
114
137
  if (config.features.crossTabSync)
115
138
  enabled.push("cross-tab");
116
- if (config.features.tagInvalidation)
139
+ if (config.features.tagInvalidation.enabled)
117
140
  enabled.push("tag-invalidation");
141
+ if (config.features.graphql.enabled)
142
+ enabled.push("graphql");
118
143
  if (config.features.pushNotifications?.enabled)
119
144
  enabled.push("push-notification");
120
145
  if (config.features.pwa.enabled)
@@ -132,15 +157,15 @@ export async function infoCommand(projectRoot, feature) {
132
157
  log.normal(`Generated files: ${count} in swoff/`);
133
158
  }
134
159
  log.help("\n swoff info <feature> — detailed info for a feature");
135
- log.help(" Features: mutation-queue, background-sync, auth, tag-invalidation, cross-tab, push-notification, pwa");
136
- log.help(" Read swoff/GUIDE.md for the full integration guide");
160
+ log.help(" Features: mutation-queue, background-sync, auth, tag-invalidation, cross-tab, graphql, push-notification, pwa, stale-time, auto-refetch, mutation-state, prefetch");
161
+ log.help(" Read swoff/GUIDE.md for documentation links");
137
162
  }
138
163
  function showFeatureDetail(feature) {
139
164
  const key = feature.toLowerCase().replace(/[_-]/g, "-").replace(/^-+|-+$/g, "");
140
165
  const info = FEATURES[key];
141
166
  if (!info) {
142
167
  log.error(`Unknown feature: ${feature}`);
143
- log.info("Available: mutation-queue, background-sync, auth, tag-invalidation, cross-tab, push-notification, pwa");
168
+ log.info("Available: mutation-queue, background-sync, auth, tag-invalidation, cross-tab, graphql, push-notification, pwa");
144
169
  return;
145
170
  }
146
171
  log.header(info.label);
@@ -149,7 +174,7 @@ function showFeatureDetail(feature) {
149
174
  info.files.forEach((f) => log.help(` swoff/${f}`));
150
175
  log.normal("\nFunctions:");
151
176
  info.functions.forEach((f) => log.help(` ${f}`));
152
- log.help("\n Read swoff/GUIDE.md for code examples and usage details.");
177
+ log.help("\n Read swoff/GUIDE.md for documentation links.");
153
178
  }
154
179
  function countFilesRecursive(dir) {
155
180
  let count = 0;
@@ -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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"}
@@ -1,7 +1,7 @@
1
1
  /**
2
- * init command - creates swoff.config.json and swoff/ directory.
2
+ * init command - creates swoff.config.json.
3
3
  */
4
- import { writeFileSync, existsSync, mkdirSync } from "fs";
4
+ import { writeFileSync, existsSync } from "fs";
5
5
  import { join } from "path";
6
6
  import { log } from "../cli/logger.js";
7
7
  import { defaultInitConfig } from "../shared/config-types.js";
@@ -26,14 +26,6 @@ export async function initCommand(projectRoot, framework) {
26
26
  const configPath = join(projectRoot, "swoff.config.json");
27
27
  writeFileSync(configPath, JSON.stringify(config, null, 2));
28
28
  log.info("Created swoff.config.json");
29
- const dirs = ["swoff", "swoff/hooks"];
30
- for (const dir of dirs) {
31
- const dirPath = join(projectRoot, dir);
32
- if (!existsSync(dirPath)) {
33
- mkdirSync(dirPath, { recursive: true });
34
- log.info(`Created ${dir}/`);
35
- }
36
- }
37
29
  log.success("Swoff initialized successfully!");
38
30
  log.normal("\nNext steps:");
39
31
  log.help("1. Review swoff.config.json and customize as needed");
@@ -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,SAAS,EAAE,MAAM,IAAI,CAAC;AAC1D,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,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IACtC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QACvC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACxC,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,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":"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"}
@@ -20,9 +20,9 @@ export async function validateCommand(projectRoot) {
20
20
  }
21
21
  log.success("Configuration is valid!");
22
22
  log.info("\nConfig summary:");
23
- log.help(`Version source: ${config.features.serviceWorker.version.source}`);
24
- log.help(`Version enabled: ${config.features.serviceWorker.version.enabled}`);
25
- log.help(`Default strategy: ${config.features.serviceWorker.defaultStrategy}`);
23
+ log.help(`Version: ${config.features.serviceWorker.version}`);
24
+ log.help(`Min supported version: ${config.features.serviceWorker.minSupportedVersion}`);
25
+ log.help(`Default strategy: ${config.features.serviceWorker.strategy.default}`);
26
26
  log.help(`Auto update: ${config.features.serviceWorker.autoUpdate}`);
27
27
  log.help(`Features enabled: ${Object.entries(config.features)
28
28
  .filter(([k, v]) => {
@@ -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,mBAAmB,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5E,GAAG,CAAC,IAAI,CAAC,oBAAoB,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAC9E,GAAG,CAAC,IAAI,CAAC,qBAAqB,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC,CAAC;IAC/E,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,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"}
@@ -45,13 +45,10 @@ export function loadConfig(projectRoot, explicitPath) {
45
45
  // Continue to try JS config below
46
46
  }
47
47
  }
48
- // Return the JS path so loadConfigAsync can dynamically import it
48
+ // JS configs are loaded asynchronously defer to loadConfigAsync.
49
+ // Return the path so the async variant can retry with dynamic import.
49
50
  if (file.endsWith(".js")) {
50
- return {
51
- config: defaultConfig,
52
- configPath: path,
53
- configSource: "JavaScript",
54
- };
51
+ return { config: defaultConfig, configPath: path, configSource: "JavaScript" };
55
52
  }
56
53
  }
57
54
  return { config: defaultConfig, configPath: null, configSource: "defaults" };
@@ -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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"}