@codepress/codepress-engine 0.5.0 → 0.6.0-dev.hmr-no-unsafe.20251119054000

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/dist/cli.js CHANGED
File without changes
@@ -0,0 +1,12 @@
1
+ /**
2
+ * CodePress esbuild plugin - Injects tracking attributes and provider wrappers into JSX
3
+ * Replaces the Rust SWC plugin with a pure JavaScript implementation
4
+ */
5
+ import type { Plugin } from "esbuild";
6
+ interface CodePressPluginOptions {
7
+ repo_name?: string;
8
+ branch_name?: string;
9
+ repo_root?: string;
10
+ }
11
+ export declare function createCodePressPlugin(options?: CodePressPluginOptions): Plugin;
12
+ export default createCodePressPlugin;
@@ -0,0 +1,190 @@
1
+ "use strict";
2
+ /**
3
+ * CodePress esbuild plugin - Injects tracking attributes and provider wrappers into JSX
4
+ * Replaces the Rust SWC plugin with a pure JavaScript implementation
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.createCodePressPlugin = createCodePressPlugin;
41
+ const fs = __importStar(require("fs"));
42
+ const path = __importStar(require("path"));
43
+ const SECRET = Buffer.from("codepress-file-obfuscation");
44
+ function xorEncodePath(input) {
45
+ if (!input)
46
+ return "";
47
+ const normalized = input.replace(/\\/g, "/");
48
+ const buf = Buffer.from(normalized, "utf8");
49
+ const out = Buffer.allocUnsafe(buf.length);
50
+ for (let i = 0; i < buf.length; i++) {
51
+ out[i] = buf[i] ^ SECRET[i % SECRET.length];
52
+ }
53
+ return out
54
+ .toString("base64")
55
+ .replace(/\+/g, "-")
56
+ .replace(/\//g, "_")
57
+ .replace(/=+$/g, "");
58
+ }
59
+ /**
60
+ * Inject codepress-data-fp attributes into JSX opening tags
61
+ */
62
+ function injectJSXAttributes(source, encoded, repoName, branchName) {
63
+ const lines = source.split("\n");
64
+ const output = [];
65
+ let lineNum = 0;
66
+ for (const line of lines) {
67
+ lineNum++;
68
+ // Skip lines that are likely TypeScript type definitions/generics
69
+ // These patterns indicate type syntax, not JSX
70
+ if (/^\s*(interface|type|class|extends|implements)\b/.test(line) ||
71
+ /\bextends\s+[\w.]+</.test(line) ||
72
+ /<[\w.]+>(?!\s*[{(</])/.test(line) // Generics not followed by JSX-like syntax
73
+ ) {
74
+ output.push(line);
75
+ continue;
76
+ }
77
+ // Match JSX opening tags with context awareness
78
+ // Only match when < appears in typical JSX contexts (after whitespace, braces, parens, return, etc.)
79
+ const modifiedLine = line.replace(/(^|\s+|[\s{(>]|return\s+|=\s*|:\s*|\?\s*)<([A-Z][\w.]*|[a-z]+)([\s\/>])/g, (match, before, tagName, after) => {
80
+ // Build attributes
81
+ const attrs = [];
82
+ attrs.push(`codepress-data-fp="${encoded}:${lineNum}-${lineNum}"`);
83
+ // Add repo/branch info to container elements (divs, sections, etc.)
84
+ if (/^[a-z]/.test(tagName)) {
85
+ if (repoName) {
86
+ attrs.push(`codepress-github-repo-name="${repoName}"`);
87
+ }
88
+ if (branchName) {
89
+ attrs.push(`codepress-github-branch="${branchName}"`);
90
+ }
91
+ }
92
+ return `${before}<${tagName} ${attrs.join(" ")}${after}`;
93
+ });
94
+ output.push(modifiedLine);
95
+ }
96
+ return output.join("\n");
97
+ }
98
+ /**
99
+ * Wrap exported components with __CPProvider
100
+ */
101
+ function wrapWithProvider(source) {
102
+ var _a;
103
+ // Find default export component
104
+ const defaultExportMatch = source.match(/export\s+default\s+function\s+(\w+)/);
105
+ if (!defaultExportMatch) {
106
+ // Try: export default ComponentName;
107
+ const namedMatch = source.match(/export\s+default\s+(\w+);/);
108
+ if (!namedMatch)
109
+ return source;
110
+ }
111
+ const componentName = (defaultExportMatch === null || defaultExportMatch === void 0 ? void 0 : defaultExportMatch[1]) || ((_a = source.match(/export\s+default\s+(\w+);/)) === null || _a === void 0 ? void 0 : _a[1]);
112
+ if (!componentName)
113
+ return source;
114
+ // Inject provider wrapper code at the top
115
+ const providerCode = `
116
+ import { useSyncExternalStore } from 'react';
117
+
118
+ // Module-level version counter for HMR
119
+ let __cpvVersion = 0;
120
+
121
+ // Provider component that wraps the default export
122
+ function __CPProvider({ value, children }: { value?: any; children: React.ReactNode }) {
123
+ const __cpv = useSyncExternalStore(
124
+ (cb) => {
125
+ const h = () => {
126
+ __cpvVersion = __cpvVersion + 1;
127
+ cb();
128
+ };
129
+ if (typeof window !== 'undefined') {
130
+ window.addEventListener("CP_PREVIEW_REFRESH", h);
131
+ return () => { window.removeEventListener("CP_PREVIEW_REFRESH", h); };
132
+ }
133
+ return () => {};
134
+ },
135
+ () => __cpvVersion,
136
+ () => 0
137
+ );
138
+
139
+ return <CPX.Provider value={value} key={__cpv}>{children}</CPX.Provider>;
140
+ }
141
+
142
+ // Context for passing data through provider
143
+ const CPX = { Provider: ({ value, children }: any) => children };
144
+ `;
145
+ // Wrap the default export
146
+ const wrappedSource = source.replace(new RegExp(`export\\s+default\\s+${componentName}`), `const __Original${componentName} = ${componentName};
147
+ export default function ${componentName}(props: any) {
148
+ return <__CPProvider><__Original${componentName} {...props} /></__CPProvider>;
149
+ }`);
150
+ return providerCode + "\n" + wrappedSource;
151
+ }
152
+ function createCodePressPlugin(options = {}) {
153
+ const { repo_name = "", branch_name = "", repo_root = process.cwd(), } = options;
154
+ return {
155
+ name: "codepress-jsx-transform",
156
+ setup(build) {
157
+ // Transform TSX/JSX files
158
+ build.onLoad({ filter: /\.[tj]sx$/ }, async (args) => {
159
+ try {
160
+ // Skip node_modules
161
+ if (args.path.includes("node_modules")) {
162
+ return null;
163
+ }
164
+ const source = await fs.promises.readFile(args.path, "utf8");
165
+ const relPath = path.relative(repo_root, args.path);
166
+ const encoded = xorEncodePath(relPath);
167
+ if (!encoded) {
168
+ return { contents: source, loader: "tsx" };
169
+ }
170
+ // Step 1: Inject JSX attributes
171
+ let transformed = injectJSXAttributes(source, encoded, repo_name, branch_name);
172
+ // Step 2: Wrap with provider (for default exports)
173
+ if (transformed.includes("export default")) {
174
+ transformed = wrapWithProvider(transformed);
175
+ }
176
+ return {
177
+ contents: transformed,
178
+ loader: "tsx",
179
+ };
180
+ }
181
+ catch (err) {
182
+ console.error("[CodePress Plugin] Error transforming", args.path, err);
183
+ return null;
184
+ }
185
+ });
186
+ },
187
+ };
188
+ }
189
+ exports.default = createCodePressPlugin;
190
+ //# sourceMappingURL=esbuild-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"esbuild-plugin.js","sourceRoot":"","sources":["../src/esbuild-plugin.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,12 +1,8 @@
1
1
  import type * as Babel from "@babel/core";
2
2
  import type { CodePressPluginOptions } from "./types";
3
- import { ModuleGraphCollector } from "./babel/module-graph";
4
- import { ProvenanceTracker } from "./babel/provenance";
5
3
  interface CodePressPluginState extends Babel.PluginPass {
6
4
  file: Babel.BabelFile & {
7
5
  encodedPath?: string;
8
- moduleGraph?: ModuleGraphCollector;
9
- provenanceTracker?: ProvenanceTracker;
10
6
  };
11
7
  }
12
8
  export declare function decode(attributeValue: string | null | undefined): string;
package/dist/index.js CHANGED
@@ -7,8 +7,6 @@ exports.decode = decode;
7
7
  exports.default = codePressPlugin;
8
8
  const child_process_1 = require("child_process");
9
9
  const path_1 = __importDefault(require("path"));
10
- const module_graph_1 = require("./babel/module-graph");
11
- const provenance_1 = require("./babel/provenance");
12
10
  const SECRET = Buffer.from("codepress-file-obfuscation");
13
11
  const BASE64_URL_SAFE_REPLACEMENTS = {
14
12
  "+": "-",
@@ -64,21 +62,6 @@ function detectGitBranch() {
64
62
  }
65
63
  }
66
64
  function detectGitRepoName() {
67
- // Check CI environment variables first
68
- const vercelOwner = process.env.VERCEL_GIT_REPO_OWNER;
69
- const vercelSlug = process.env.VERCEL_GIT_REPO_SLUG;
70
- if (vercelOwner && vercelSlug) {
71
- const repoId = `${vercelOwner}/${vercelSlug}`;
72
- console.log(`\x1b[32m✓ Detected GitHub repository from Vercel: ${repoId}\x1b[0m`);
73
- return repoId;
74
- }
75
- // Check GitHub Actions environment variables
76
- const githubRepo = process.env.GITHUB_REPOSITORY;
77
- if (githubRepo) {
78
- console.log(`\x1b[32m✓ Detected GitHub repository from GitHub Actions: ${githubRepo}\x1b[0m`);
79
- return githubRepo;
80
- }
81
- // Fall back to git commands
82
65
  try {
83
66
  const remoteUrl = (0, child_process_1.execSync)("git config --get remote.origin.url", {
84
67
  encoding: "utf8",
@@ -119,32 +102,6 @@ function codePressPlugin(babel, options = {}) {
119
102
  const BRANCH_ATTRIBUTE_NAME = "codepress-github-branch";
120
103
  const repoName = options.repo_name || currentRepoName;
121
104
  const branch = options.branch_name || currentBranch;
122
- // Skip component configuration (like SWC plugin)
123
- const skipComponents = new Set(options.skip_components || ["Slot", "Link"]);
124
- const skipMemberRoots = new Set(options.skip_member_roots || ["Primitive"]);
125
- function isSkipComponent(name) {
126
- if (t.isJSXIdentifier(name)) {
127
- return skipComponents.has(name.name);
128
- }
129
- if (t.isJSXMemberExpression(name)) {
130
- // Check root of member expression
131
- let root = name.object;
132
- while (t.isJSXMemberExpression(root)) {
133
- root = root.object;
134
- }
135
- if (t.isJSXIdentifier(root)) {
136
- return skipMemberRoots.has(root.name);
137
- }
138
- }
139
- return false;
140
- }
141
- function isCustomComponent(name) {
142
- if (t.isJSXIdentifier(name)) {
143
- const firstChar = name.name[0];
144
- return firstChar === firstChar.toUpperCase();
145
- }
146
- return t.isJSXMemberExpression(name) || t.isJSXNamespacedName(name);
147
- }
148
105
  return {
149
106
  name: "babel-plugin-codepress-html",
150
107
  visitor: {
@@ -157,105 +114,13 @@ function codePressPlugin(babel, options = {}) {
157
114
  return;
158
115
  }
159
116
  state.file.encodedPath = encode(relativePath);
160
- state.file.moduleGraph = new module_graph_1.ModuleGraphCollector(relativePath);
161
- state.file.provenanceTracker = new provenance_1.ProvenanceTracker(relativePath);
162
117
  processedFileCount += 1;
163
- // Collect bindings first (needed for provenance tracking)
164
- state.file.provenanceTracker.collectBindings(nodePath);
165
- // Traverse to collect module graph
166
- nodePath.traverse({
167
- ImportDeclaration(path) {
168
- state.file.moduleGraph.visitImportDeclaration(path);
169
- },
170
- ExportNamedDeclaration(path) {
171
- state.file.moduleGraph.visitExportNamedDeclaration(path);
172
- },
173
- VariableDeclarator(path) {
174
- const parent = path.parentPath.node;
175
- if (t.isVariableDeclaration(parent)) {
176
- const kind = parent.kind === 'const' ? 'const' : parent.kind === 'let' ? 'let' : 'var';
177
- state.file.moduleGraph.visitVariableDeclarator(path, kind);
178
- }
179
- },
180
- FunctionDeclaration(path) {
181
- var _a;
182
- if (path.node.id) {
183
- state.file.moduleGraph.graph.defs.push({
184
- local: path.node.id.name,
185
- kind: 'func',
186
- span: `${relativePath}:${((_a = path.node.id.loc) === null || _a === void 0 ? void 0 : _a.start.line) || 0}`,
187
- });
188
- }
189
- },
190
- ClassDeclaration(path) {
191
- var _a;
192
- if (path.node.id) {
193
- state.file.moduleGraph.graph.defs.push({
194
- local: path.node.id.name,
195
- kind: 'class',
196
- span: `${relativePath}:${((_a = path.node.id.loc) === null || _a === void 0 ? void 0 : _a.start.line) || 0}`,
197
- });
198
- }
199
- },
200
- AssignmentExpression(path) {
201
- state.file.moduleGraph.visitAssignmentExpression(path);
202
- },
203
- UpdateExpression(path) {
204
- state.file.moduleGraph.visitUpdateExpression(path);
205
- },
206
- CallExpression(path) {
207
- state.file.moduleGraph.visitCallExpression(path);
208
- },
209
- });
210
- },
211
- exit(programPath, state) {
212
- var _a;
213
- // Inject module graph as globalThis.__CPX_GRAPH[file]
214
- if (state.file.moduleGraph) {
215
- const graph = state.file.moduleGraph.getGraph();
216
- const fileKey = state.file.encodedPath;
217
- const graphJson = JSON.stringify(graph);
218
- const graphInjectionCode = `
219
- try {
220
- var g = (typeof globalThis !== 'undefined' ? globalThis : window);
221
- g.__CPX_GRAPH = g.__CPX_GRAPH || {};
222
- g.__CPX_GRAPH[${JSON.stringify(fileKey)}] = JSON.parse(${JSON.stringify(graphJson)});
223
- } catch(_e) {}
224
- `;
225
- const graphAst = babel.template.ast(graphInjectionCode);
226
- if (Array.isArray(graphAst)) {
227
- programPath.node.body.unshift(...graphAst);
228
- }
229
- else {
230
- programPath.node.body.unshift(graphAst);
231
- }
232
- }
233
- // Inject repo/branch script (existing code)
234
- if (!globalAttributesAdded && repoName && state.file.encodedPath) {
235
- const scriptCode = `
236
- (function() {
237
- if (typeof document !== 'undefined' && document.body && !document.body.hasAttribute('${REPO_ATTRIBUTE_NAME}')) {
238
- document.body.setAttribute('${REPO_ATTRIBUTE_NAME}', '${repoName}');
239
- ${branch ? `document.body.setAttribute('${BRANCH_ATTRIBUTE_NAME}', '${branch}');` : ''}
240
- }
241
- })();
242
- `;
243
- const scriptAst = babel.template.ast(scriptCode);
244
- if (Array.isArray(scriptAst)) {
245
- programPath.node.body.unshift(...scriptAst);
246
- }
247
- else {
248
- programPath.node.body.unshift(scriptAst);
249
- }
250
- globalAttributesAdded = true;
251
- console.log(`\x1b[32m✓ Injected repo/branch + graph in ${path_1.default.basename((_a = state.file.opts.filename) !== null && _a !== void 0 ? _a : "unknown")}\x1b[0m`);
252
- }
253
118
  },
254
119
  },
255
120
  JSXOpeningElement(nodePath, state) {
256
- var _a, _b, _c, _d;
121
+ var _a, _b, _c, _d, _e;
257
122
  const encodedPath = state.file.encodedPath;
258
- if (!encodedPath || !state.file.provenanceTracker) {
123
+ if (!encodedPath) {
259
124
  return;
260
125
  }
261
126
  const { node } = nodePath;
@@ -263,7 +128,6 @@ try {
263
128
  const parentLoc = nodePath.parent.loc;
264
129
  const endLine = (_c = parentLoc === null || parentLoc === void 0 ? void 0 : parentLoc.end.line) !== null && _c !== void 0 ? _c : startLine;
265
130
  const attributeValue = `${encodedPath}:${startLine}-${endLine}`;
266
- // Add basic file path attribute
267
131
  const existingAttribute = node.attributes.find((attr) => t.isJSXAttribute(attr) &&
268
132
  t.isJSXIdentifier(attr.name, { name: FILE_PATH_ATTRIBUTE_NAME }));
269
133
  if (existingAttribute) {
@@ -272,72 +136,36 @@ try {
272
136
  else {
273
137
  node.attributes.push(t.jsxAttribute(t.jsxIdentifier(FILE_PATH_ATTRIBUTE_NAME), t.stringLiteral(attributeValue)));
274
138
  }
275
- // Collect provenance from props and children
276
- const allNodes = [];
277
- const symbolRefs = [];
278
- // Trace props
279
- for (const attr of node.attributes) {
280
- if (t.isJSXAttribute(attr) && attr.value) {
281
- if (t.isJSXExpressionContainer(attr.value) && t.isExpression(attr.value.expression)) {
282
- const chain = [];
283
- state.file.provenanceTracker.traceExpression(attr.value.expression, chain);
284
- allNodes.push(...chain);
285
- state.file.provenanceTracker.collectSymbolRefs(attr.value.expression, symbolRefs);
286
- }
287
- }
288
- else if (t.isJSXSpreadAttribute(attr)) {
289
- const chain = [];
290
- state.file.provenanceTracker.traceExpression(attr.argument, chain);
291
- allNodes.push(...chain);
292
- state.file.provenanceTracker.collectSymbolRefs(attr.argument, symbolRefs);
293
- }
139
+ if (!repoName || globalAttributesAdded) {
140
+ return;
294
141
  }
295
- // Trace children
296
- const parent = nodePath.parent;
297
- if (t.isJSXElement(parent)) {
298
- for (const child of parent.children) {
299
- if (t.isJSXExpressionContainer(child) && t.isExpression(child.expression)) {
300
- const chain = [];
301
- state.file.provenanceTracker.traceExpression(child.expression, chain);
302
- allNodes.push(...chain);
303
- state.file.provenanceTracker.collectSymbolRefs(child.expression, symbolRefs);
304
- }
305
- }
142
+ if (!t.isJSXIdentifier(node.name)) {
143
+ return;
144
+ }
145
+ const elementName = node.name.name;
146
+ const isRootElement = ["html", "body", "div"].includes(elementName);
147
+ if (!isRootElement) {
148
+ return;
306
149
  }
307
- // Rank candidates and aggregate kinds
308
- const candidates = state.file.provenanceTracker.rankCandidates(allNodes);
309
- const kinds = state.file.provenanceTracker.aggregateKinds(allNodes);
310
- // Add callsite candidate
311
- const filename = (_d = state.file.opts.filename) !== null && _d !== void 0 ? _d : "";
312
- const relativePath = path_1.default.relative(process.cwd(), filename);
313
- const selfTarget = `${relativePath}:${startLine}-${endLine}`;
314
- const alreadyHasCallsite = candidates.some(c => c.reason === 'callsite' && c.target === selfTarget);
315
- if (!alreadyHasCallsite) {
316
- candidates.push({ target: selfTarget, reason: 'callsite' });
150
+ const hasRepoAttribute = node.attributes.some((attr) => t.isJSXAttribute(attr) &&
151
+ t.isJSXIdentifier(attr.name, { name: REPO_ATTRIBUTE_NAME }));
152
+ if (!hasRepoAttribute) {
153
+ console.log(`\x1b[32m✓ Adding repo attribute globally to <${elementName}> in ${path_1.default.basename((_d = state.file.opts.filename) !== null && _d !== void 0 ? _d : "unknown")}\x1b[0m`);
154
+ node.attributes.push(t.jsxAttribute(t.jsxIdentifier(REPO_ATTRIBUTE_NAME), t.stringLiteral(repoName)));
317
155
  }
318
- // Encode metadata
319
- const candidatesJson = JSON.stringify(candidates);
320
- const kindsJson = JSON.stringify(kinds);
321
- const symbolRefsJson = JSON.stringify(symbolRefs);
322
- const candidatesEnc = encode(candidatesJson);
323
- const kindsEnc = encode(kindsJson);
324
- const symbolRefsEnc = encode(symbolRefsJson);
325
- // Add rich metadata attributes
326
- node.attributes.push(t.jsxAttribute(t.jsxIdentifier("data-codepress-edit-candidates"), t.stringLiteral(candidatesEnc)));
327
- node.attributes.push(t.jsxAttribute(t.jsxIdentifier("data-codepress-source-kinds"), t.stringLiteral(kindsEnc)));
328
- node.attributes.push(t.jsxAttribute(t.jsxIdentifier("data-codepress-symbol-refs"), t.stringLiteral(symbolRefsEnc)));
329
- // Add callsite attribute
330
- node.attributes.push(t.jsxAttribute(t.jsxIdentifier("data-codepress-callsite"), t.stringLiteral(attributeValue)));
331
- // For custom components (not in skip list), wrap with marker
332
- if (isCustomComponent(node.name) && !isSkipComponent(node.name)) {
333
- // Note: Wrapping logic similar to SWC could be added here
334
- // For now, we just add the metadata attributes
156
+ const hasBranchAttribute = node.attributes.some((attr) => t.isJSXAttribute(attr) &&
157
+ t.isJSXIdentifier(attr.name, { name: BRANCH_ATTRIBUTE_NAME }));
158
+ if (!hasBranchAttribute && branch) {
159
+ console.log(`\x1b[32m✓ Adding branch attribute globally to <${elementName}> in ${path_1.default.basename((_e = state.file.opts.filename) !== null && _e !== void 0 ? _e : "unknown")}\x1b[0m`);
160
+ node.attributes.push(t.jsxAttribute(t.jsxIdentifier(BRANCH_ATTRIBUTE_NAME), t.stringLiteral(branch)));
335
161
  }
162
+ globalAttributesAdded = true;
163
+ console.log("\x1b[36mℹ Repo/branch attributes added globally. Won't add again.\x1b[0m");
336
164
  },
337
165
  },
338
166
  post() {
339
167
  if (processedFileCount > 0) {
340
- console.log(`\x1b[36mℹ Processed ${processedFileCount} files with CodePress (full features)\x1b[0m`);
168
+ console.log(`\x1b[36mℹ Processed ${processedFileCount} files with CodePress\x1b[0m`);
341
169
  }
342
170
  else {
343
171
  console.log("\x1b[33m⚠ No files were processed by CodePress\x1b[0m");
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/server.js CHANGED
@@ -1006,10 +1006,9 @@ async function startServer(options = {}) {
1006
1006
  try {
1007
1007
  // Create the Fastify app
1008
1008
  const app = createApp();
1009
- // Ensure lock is released and instance is cleared when Fastify closes
1009
+ // Ensure lock is released when Fastify closes
1010
1010
  app.addHook("onClose", () => {
1011
1011
  releaseLock();
1012
- serverInstance = null;
1013
1012
  });
1014
1013
  // Start the server
1015
1014
  await app.listen({ port, host: "0.0.0.0" });
@@ -1160,9 +1159,7 @@ const serverModule = {
1160
1159
  createApp,
1161
1160
  getProjectStructure,
1162
1161
  };
1163
- // Auto-start server in development mode, unless explicitly disabled (e.g., in tests)
1164
- if (process.env.NODE_ENV !== "production" &&
1165
- !process.env.CODEPRESS_NO_AUTO_START) {
1162
+ if (process.env.NODE_ENV !== "production") {
1166
1163
  (async () => {
1167
1164
  try {
1168
1165
  serverModule.server = await startServer();