@vexblocks/cli 1.1.1 → 1.1.3
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/index.js +66 -2
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -33,7 +33,12 @@ var PROTECTED_FILES = [
|
|
|
33
33
|
"packages/backend/convex/cms/vexblocks.config.ts",
|
|
34
34
|
"packages/backend/.env",
|
|
35
35
|
"packages/backend/.env.local",
|
|
36
|
-
"packages/
|
|
36
|
+
"packages/backend/package.json",
|
|
37
|
+
"packages/cms-shared/src/types/generated.ts",
|
|
38
|
+
"packages/backend/emails/change-email-template.ts",
|
|
39
|
+
"packages/backend/emails/otp-email-template.ts",
|
|
40
|
+
"packages/backend/emails/delete-account-template.ts",
|
|
41
|
+
"packages/backend/emails/invite-email-template.ts"
|
|
37
42
|
];
|
|
38
43
|
var PACKAGE_DEPENDENCIES = {
|
|
39
44
|
cms: ["backend", "shared"],
|
|
@@ -88,6 +93,47 @@ async function getPackageManager(cwd) {
|
|
|
88
93
|
}
|
|
89
94
|
return "npm";
|
|
90
95
|
}
|
|
96
|
+
async function mergePackageJson(targetPath, sourcePackageJson) {
|
|
97
|
+
let existingPackageJson = {};
|
|
98
|
+
if (await fs.pathExists(targetPath)) {
|
|
99
|
+
existingPackageJson = await fs.readJson(targetPath);
|
|
100
|
+
}
|
|
101
|
+
const mergedPackageJson = {
|
|
102
|
+
// Preserve user's name and version if they exist
|
|
103
|
+
name: existingPackageJson.name || sourcePackageJson.name,
|
|
104
|
+
version: existingPackageJson.version || sourcePackageJson.version,
|
|
105
|
+
private: sourcePackageJson.private,
|
|
106
|
+
// Merge scripts (source scripts take precedence for VexBlocks-specific scripts)
|
|
107
|
+
scripts: {
|
|
108
|
+
...existingPackageJson.scripts,
|
|
109
|
+
...sourcePackageJson.scripts
|
|
110
|
+
},
|
|
111
|
+
// Merge dependencies (source versions take precedence)
|
|
112
|
+
dependencies: {
|
|
113
|
+
...existingPackageJson.dependencies,
|
|
114
|
+
...sourcePackageJson.dependencies
|
|
115
|
+
},
|
|
116
|
+
// Merge devDependencies (source versions take precedence)
|
|
117
|
+
devDependencies: {
|
|
118
|
+
...existingPackageJson.devDependencies,
|
|
119
|
+
...sourcePackageJson.devDependencies
|
|
120
|
+
},
|
|
121
|
+
// Preserve any other custom fields from existing package.json
|
|
122
|
+
...Object.fromEntries(
|
|
123
|
+
Object.entries(existingPackageJson).filter(
|
|
124
|
+
([key]) => ![
|
|
125
|
+
"name",
|
|
126
|
+
"version",
|
|
127
|
+
"private",
|
|
128
|
+
"scripts",
|
|
129
|
+
"dependencies",
|
|
130
|
+
"devDependencies"
|
|
131
|
+
].includes(key)
|
|
132
|
+
)
|
|
133
|
+
)
|
|
134
|
+
};
|
|
135
|
+
await fs.writeJson(targetPath, mergedPackageJson, { spaces: 2 });
|
|
136
|
+
}
|
|
91
137
|
|
|
92
138
|
// src/utils/github.ts
|
|
93
139
|
import path2 from "path";
|
|
@@ -474,7 +520,14 @@ async function installBackendPackage(targetPath, sourcePath, spinner) {
|
|
|
474
520
|
const hasSchema = await fs4.pathExists(existingSchemaPath);
|
|
475
521
|
if (hasSchema) {
|
|
476
522
|
spinner.text = "Detected existing Convex schema, merging CMS tables...";
|
|
477
|
-
const cmsFiles = [
|
|
523
|
+
const cmsFiles = [
|
|
524
|
+
"convex/cms",
|
|
525
|
+
"convex/auth.ts",
|
|
526
|
+
"convex/auth.config.ts",
|
|
527
|
+
"convex/http.ts",
|
|
528
|
+
"better-auth",
|
|
529
|
+
"emails"
|
|
530
|
+
];
|
|
478
531
|
for (const file of cmsFiles) {
|
|
479
532
|
const fullSourcePath = `${sourcePath}/${file}`;
|
|
480
533
|
const fullTargetPath = path4.join(targetPath, file);
|
|
@@ -497,6 +550,17 @@ async function installBackendPackage(targetPath, sourcePath, spinner) {
|
|
|
497
550
|
spinner.text = `Installing backend... ${pc2.dim(file)}`;
|
|
498
551
|
});
|
|
499
552
|
}
|
|
553
|
+
spinner.text = "Merging package.json...";
|
|
554
|
+
try {
|
|
555
|
+
const sourcePackageJsonContent = await fetchFile(
|
|
556
|
+
`${sourcePath}/package.json`
|
|
557
|
+
);
|
|
558
|
+
const sourcePackageJson = JSON.parse(sourcePackageJsonContent);
|
|
559
|
+
const targetPackageJsonPath = path4.join(targetPath, "package.json");
|
|
560
|
+
await mergePackageJson(targetPackageJsonPath, sourcePackageJson);
|
|
561
|
+
} catch {
|
|
562
|
+
spinner.warn("Could not merge package.json, skipping");
|
|
563
|
+
}
|
|
500
564
|
}
|
|
501
565
|
function showNextSteps(packages) {
|
|
502
566
|
const packageManager = "pnpm";
|