fixdog 0.1.0 → 0.1.2

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.
package/README.md CHANGED
@@ -15,6 +15,7 @@ The CLI will:
15
15
  - Detect your framework (Vite or Next.js)
16
16
  - Prompt for your project ID (get it from [app.fix.dog](https://app.fix.dog))
17
17
  - Automatically inject the fixdog script into your project
18
+ - For Vite projects: Update `vite.config.ts/js/mjs` to add `projectId.fix.dog` to `allowedHosts`
18
19
 
19
20
  ### Non-interactive Mode
20
21
 
@@ -49,6 +50,20 @@ Add to your `index.html` inside `<head>`:
49
50
  </script>
50
51
  ```
51
52
 
53
+ Also update your `vite.config.ts` (or `.js`/`.mjs`) to add the project host to `allowedHosts`:
54
+
55
+ ```ts
56
+ import { defineConfig } from "vite";
57
+ import react from "@vitejs/plugin-react";
58
+
59
+ export default defineConfig({
60
+ plugins: [react()],
61
+ server: {
62
+ allowedHosts: ["your-project-id.fix.dog"],
63
+ },
64
+ });
65
+ ```
66
+
52
67
  ### Next.js App Router
53
68
 
54
69
  Add to your `app/layout.tsx`:
package/dist/cli/index.js CHANGED
@@ -18,6 +18,9 @@ const NEXT_SCRIPT_SNIPPET = (projectId) => `{process.env.NODE_ENV === "developme
18
18
  src="${SCRIPT_URL}?projectId=${projectId}"
19
19
  />
20
20
  )}`;
21
+ // ============================================
22
+ // Framework Detection
23
+ // ============================================
21
24
  function detectFramework() {
22
25
  if (!fs.existsSync("package.json"))
23
26
  return null;
@@ -51,7 +54,10 @@ function detectNextRouter() {
51
54
  function findFile(paths) {
52
55
  return paths.find((p) => fs.existsSync(p)) || null;
53
56
  }
54
- function injectVite(projectId) {
57
+ // ============================================
58
+ // Vite Injections
59
+ // ============================================
60
+ function injectViteHtml(projectId) {
55
61
  const file = findFile(["index.html", "public/index.html"]);
56
62
  if (!file)
57
63
  return null;
@@ -59,8 +65,61 @@ function injectVite(projectId) {
59
65
  if (before.includes("fixdog"))
60
66
  return null;
61
67
  const after = before.replace("</head>", ` ${VITE_SNIPPET(projectId)}\n </head>`);
68
+ if (after === before)
69
+ return null;
70
+ return { file, before, after };
71
+ }
72
+ function injectViteConfig(projectId) {
73
+ const file = findFile([
74
+ "vite.config.ts",
75
+ "vite.config.js",
76
+ "vite.config.mjs",
77
+ ]);
78
+ if (!file)
79
+ return null;
80
+ const before = fs.readFileSync(file, "utf-8");
81
+ const allowedHost = `${projectId}.fix.dog`;
82
+ // Already has this host
83
+ if (before.includes(allowedHost))
84
+ return null;
85
+ let after = before;
86
+ // Case 1: allowedHosts array exists - add to it
87
+ if (/allowedHosts:\s*\[/.test(before)) {
88
+ after = before.replace(/allowedHosts:\s*\[([^\]]*)\]/, (_, hosts) => {
89
+ const trimmed = hosts.trim();
90
+ if (trimmed) {
91
+ return `allowedHosts: [${trimmed}, "${allowedHost}"]`;
92
+ }
93
+ return `allowedHosts: ["${allowedHost}"]`;
94
+ });
95
+ }
96
+ // Case 2: server block exists - add allowedHosts to it
97
+ else if (/server:\s*\{/.test(before)) {
98
+ after = before.replace(/server:\s*\{/, `server: {\n allowedHosts: ["${allowedHost}"],`);
99
+ }
100
+ // Case 3: plugins array exists - add server after it
101
+ else if (/plugins:\s*\[/.test(before)) {
102
+ after = before.replace(/(plugins:\s*\[[^\]]*\]),?/, `$1,\n server: {\n allowedHosts: ["${allowedHost}"],\n },`);
103
+ }
104
+ // Case 4: defineConfig exists - add server at the start
105
+ else if (/defineConfig\s*\(\s*\{/.test(before)) {
106
+ after = before.replace(/defineConfig\s*\(\s*\{/, `defineConfig({\n server: {\n allowedHosts: ["${allowedHost}"],\n },`);
107
+ }
108
+ // Case 5: export default { - add server at the start
109
+ else if (/export\s+default\s*\{/.test(before)) {
110
+ after = before.replace(/export\s+default\s*\{/, `export default {\n server: {\n allowedHosts: ["${allowedHost}"],\n },`);
111
+ }
112
+ // Can't parse - skip
113
+ else {
114
+ return null;
115
+ }
116
+ if (after === before)
117
+ return null;
62
118
  return { file, before, after };
63
119
  }
120
+ // ============================================
121
+ // Next.js Injections
122
+ // ============================================
64
123
  function injectNextApp(projectId) {
65
124
  const file = findFile([
66
125
  "app/layout.tsx",
@@ -74,12 +133,24 @@ function injectNextApp(projectId) {
74
133
  if (before.includes("fixdog"))
75
134
  return null;
76
135
  let after = before;
77
- if (before.includes("<head>")) {
78
- after = before.replace(/<head>/, `<head>\n ${NEXT_SCRIPT_SNIPPET(projectId)}`);
136
+ // Case 1: <head> exists - inject inside it
137
+ if (/<head[^>]*>/.test(before)) {
138
+ after = before.replace(/<head([^>]*)>/, `<head$1>\n ${NEXT_SCRIPT_SNIPPET(projectId)}`);
79
139
  }
80
- else {
140
+ // Case 2: <Head> (capital) exists - inject inside it
141
+ else if (/<Head[^>]*>/.test(before)) {
142
+ after = before.replace(/<Head([^>]*)>/, `<Head$1>\n ${NEXT_SCRIPT_SNIPPET(projectId)}`);
143
+ }
144
+ // Case 3: No head - add after <html>
145
+ else if (/<html[^>]*>/.test(before)) {
81
146
  after = before.replace(/<html([^>]*)>/, `<html$1>\n <head>\n ${NEXT_SCRIPT_SNIPPET(projectId)}\n </head>`);
82
147
  }
148
+ // Can't find injection point
149
+ else {
150
+ return null;
151
+ }
152
+ if (after === before)
153
+ return null;
83
154
  return { file, before, after };
84
155
  }
85
156
  function injectNextPages(projectId) {
@@ -94,16 +165,31 @@ function injectNextPages(projectId) {
94
165
  const before = fs.readFileSync(file, "utf-8");
95
166
  if (before.includes("fixdog"))
96
167
  return null;
97
- const after = before.replace(/<Head>/, `<Head>\n ${NEXT_SCRIPT_SNIPPET(projectId)}`);
168
+ let after = before;
169
+ // Case 1: <Head> exists - inject inside it
170
+ if (/<Head[^>]*>/.test(before)) {
171
+ after = before.replace(/<Head([^>]*)>/, `<Head$1>\n ${NEXT_SCRIPT_SNIPPET(projectId)}`);
172
+ }
173
+ // Can't find injection point
174
+ else {
175
+ return null;
176
+ }
177
+ if (after === before)
178
+ return null;
98
179
  return { file, before, after };
99
180
  }
181
+ // ============================================
182
+ // Diff Display
183
+ // ============================================
100
184
  function showDiff(before, after) {
101
185
  const changes = diffLines(before, after);
102
186
  changes.forEach((part) => {
103
- if (part.added)
187
+ if (part.added) {
104
188
  process.stdout.write(color.green(`+ ${part.value}`));
105
- else if (part.removed)
189
+ }
190
+ else if (part.removed) {
106
191
  process.stdout.write(color.red(`- ${part.value}`));
192
+ }
107
193
  });
108
194
  }
109
195
  function parseArgs() {
@@ -114,36 +200,39 @@ function parseArgs() {
114
200
  if (arg === "--projectId" || arg === "--project-id" || arg === "-p") {
115
201
  options.projectId = args[++i];
116
202
  }
203
+ else if (arg.startsWith("--projectId=") ||
204
+ arg.startsWith("--project-id=")) {
205
+ options.projectId = arg.split("=")[1];
206
+ }
117
207
  else if (arg === "--yes" || arg === "-y") {
118
208
  options.yes = true;
119
209
  }
120
210
  else if (arg === "--silent" || arg === "-s") {
121
211
  options.silent = true;
122
212
  }
123
- else if (arg.startsWith("--projectId=") ||
124
- arg.startsWith("--project-id=")) {
125
- options.projectId = arg.split("=")[1];
126
- }
127
213
  }
128
214
  return options;
129
215
  }
130
216
  async function main(options) {
131
217
  const cliOptions = options || parseArgs();
132
- if (!cliOptions.silent) {
218
+ const log = !cliOptions.silent;
219
+ if (log) {
133
220
  intro(color.bgCyan(color.black(" 🐕 Fixdog Setup ")));
134
221
  }
222
+ // Detect framework
135
223
  const s = spinner();
136
224
  s.start("Detecting framework");
137
225
  const framework = detectFramework();
138
226
  if (!framework) {
139
227
  s.stop("Not detected");
140
- if (!cliOptions.silent) {
228
+ if (log) {
141
229
  outro(color.red("Could not detect framework. Supported: Next.js, Vite"));
142
230
  }
143
231
  process.exit(1);
144
232
  }
145
233
  const router = framework === "next" ? detectNextRouter() : null;
146
234
  s.stop(`Found ${framework === "next" ? "Next.js" : "Vite"}${router ? ` (${router} router)` : ""}`);
235
+ // Get project ID
147
236
  let projectId;
148
237
  if (cliOptions.projectId) {
149
238
  projectId = cliOptions.projectId;
@@ -155,47 +244,59 @@ async function main(options) {
155
244
  validate: (v) => (!v ? "Required" : undefined),
156
245
  });
157
246
  if (typeof input !== "string") {
158
- if (!cliOptions.silent) {
247
+ if (log)
159
248
  outro(color.red("Cancelled"));
160
- }
161
249
  process.exit(1);
162
250
  }
163
251
  projectId = input;
164
252
  }
165
- let result = framework === "vite"
166
- ? injectVite(projectId)
167
- : router === "app"
168
- ? injectNextApp(projectId)
169
- : injectNextPages(projectId);
170
- if (!result) {
171
- if (!cliOptions.silent) {
172
- outro(color.yellow("Already installed or target file not found"));
253
+ // Collect all injections
254
+ const results = [];
255
+ if (framework === "vite") {
256
+ const htmlResult = injectViteHtml(projectId);
257
+ if (htmlResult)
258
+ results.push(htmlResult);
259
+ const configResult = injectViteConfig(projectId);
260
+ if (configResult)
261
+ results.push(configResult);
262
+ }
263
+ else if (framework === "next") {
264
+ const result = router === "app" ? injectNextApp(projectId) : injectNextPages(projectId);
265
+ if (result)
266
+ results.push(result);
267
+ }
268
+ // No changes to make
269
+ if (results.length === 0) {
270
+ if (log) {
271
+ outro(color.yellow("Already installed or target files not found"));
173
272
  }
174
273
  process.exit(0);
175
274
  }
176
- if (!cliOptions.silent) {
177
- console.log(color.dim(`\nChanges to ${result.file}:\n`));
178
- showDiff(result.before, result.after);
179
- console.log();
180
- }
181
- let apply;
182
- if (cliOptions.yes || cliOptions.silent) {
183
- apply = true;
275
+ // Show diffs
276
+ if (log) {
277
+ for (const result of results) {
278
+ console.log(color.dim(`\nChanges to ${result.file}:\n`));
279
+ showDiff(result.before, result.after);
280
+ console.log();
281
+ }
184
282
  }
185
- else {
283
+ // Confirm and apply
284
+ let apply = cliOptions.yes || cliOptions.silent;
285
+ if (!apply && log) {
186
286
  const confirmed = await confirm({ message: "Apply changes?" });
187
287
  apply = confirmed === true;
188
288
  }
189
289
  if (apply) {
190
- fs.writeFileSync(result.file, result.after);
191
- if (!cliOptions.silent) {
192
- outro(color.green("✅ Done! Run your dev server."));
290
+ for (const result of results) {
291
+ fs.writeFileSync(result.file, result.after);
292
+ }
293
+ if (log) {
294
+ outro(color.green("Done! Run your dev server."));
193
295
  }
194
296
  }
195
297
  else {
196
- if (!cliOptions.silent) {
298
+ if (log)
197
299
  outro(color.yellow("Cancelled"));
198
- }
199
300
  process.exit(1);
200
301
  }
201
302
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/cli/index.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../src/cli/index.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fixdog",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "Turn live UI edits into reviewable GitHub pull requests",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.esm.js",