dyrected 2.5.60 → 2.5.62
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/commands/generate-types.d.ts.map +1 -1
- package/dist/commands/generate-types.js +27 -8
- package/dist/commands/generate-types.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +142 -42
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/sync-schema.d.ts +4 -0
- package/dist/commands/sync-schema.d.ts.map +1 -1
- package/dist/commands/sync-schema.js +74 -14
- package/dist/commands/sync-schema.js.map +1 -1
- package/dist/commands/upgrade.d.ts.map +1 -1
- package/dist/commands/upgrade.js +9 -1
- package/dist/commands/upgrade.js.map +1 -1
- package/dist/utils/config-templates.d.ts +2 -1
- package/dist/utils/config-templates.d.ts.map +1 -1
- package/dist/utils/config-templates.js +23 -5
- package/dist/utils/config-templates.js.map +1 -1
- package/dist/utils/detect.d.ts +13 -0
- package/dist/utils/detect.d.ts.map +1 -1
- package/dist/utils/detect.js +23 -0
- package/dist/utils/detect.js.map +1 -1
- package/dist/utils/type-generator.d.ts.map +1 -1
- package/dist/utils/type-generator.js +82 -11
- package/dist/utils/type-generator.js.map +1 -1
- package/dist/utils/writers.d.ts +4 -3
- package/dist/utils/writers.d.ts.map +1 -1
- package/dist/utils/writers.js +24 -18
- package/dist/utils/writers.js.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-types.d.ts","sourceRoot":"","sources":["../../src/commands/generate-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"generate-types.d.ts","sourceRoot":"","sources":["../../src/commands/generate-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,QA8CrD"}
|
|
@@ -1,29 +1,48 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
|
+
import fs from "fs-extra";
|
|
3
|
+
import path from "path";
|
|
2
4
|
import { runGenerateTypes } from "../utils/type-generator.js";
|
|
5
|
+
import { resolveAppSrcDir } from "../utils/detect.js";
|
|
6
|
+
/**
|
|
7
|
+
* Resolve where `dyrected.config.ts` lives. Prefer the framework source dir
|
|
8
|
+
* (where new projects scaffold it), then fall back to the project root so
|
|
9
|
+
* existing setups keep working.
|
|
10
|
+
*/
|
|
11
|
+
function resolveConfigPath(cwd, srcDir) {
|
|
12
|
+
const inSrc = path.join(srcDir, "dyrected.config.ts");
|
|
13
|
+
if (fs.existsSync(path.join(cwd, inSrc)))
|
|
14
|
+
return inSrc;
|
|
15
|
+
return "./dyrected.config.ts";
|
|
16
|
+
}
|
|
3
17
|
export function registerGenerateTypes(program) {
|
|
4
18
|
program
|
|
5
19
|
.command("generate:types")
|
|
6
20
|
.description("Generate TypeScript interfaces from your Dyrected schema")
|
|
7
21
|
.option("-u, --url <url>", "Base URL of your Dyrected API (Cloud or self-hosted)")
|
|
8
|
-
.option("-c, --config <path>", "Path to your dyrected.config.ts (
|
|
9
|
-
.option("-o, --output <path>", "Output file path
|
|
22
|
+
.option("-c, --config <path>", "Path to your dyrected.config.ts (defaults to your app source dir, then the project root)")
|
|
23
|
+
.option("-o, --output <path>", "Output file path (defaults to <srcDir>/dyrected-types.ts so your framework's TypeScript program picks up the generated types)")
|
|
10
24
|
.addHelpText("after", `
|
|
11
25
|
Examples:
|
|
12
|
-
# Generate from local config (
|
|
26
|
+
# Generate from local config (writes into your app source dir)
|
|
13
27
|
$ npx dyrected generate:types
|
|
14
28
|
|
|
15
|
-
# Generate from a self-hosted instance
|
|
29
|
+
# Generate from a running self-hosted instance
|
|
16
30
|
$ npx dyrected generate:types --url http://localhost:3000
|
|
17
31
|
|
|
18
|
-
# Generate from Dyrected Cloud
|
|
19
|
-
$ npx dyrected generate:types --url https://your-site.dyrected.com
|
|
20
|
-
|
|
21
32
|
# Custom config and output paths
|
|
22
33
|
$ npx dyrected generate:types --config ./cms/dyrected.config.ts --output ./types/cms.ts
|
|
23
34
|
`)
|
|
24
35
|
.action(async (options) => {
|
|
25
36
|
try {
|
|
26
|
-
|
|
37
|
+
const cwd = process.cwd();
|
|
38
|
+
const srcDir = resolveAppSrcDir(cwd);
|
|
39
|
+
const config = options.config ?? resolveConfigPath(cwd, srcDir);
|
|
40
|
+
const output = options.output ?? path.join(srcDir, "dyrected-types.ts");
|
|
41
|
+
await runGenerateTypes({
|
|
42
|
+
url: options.url,
|
|
43
|
+
config,
|
|
44
|
+
output,
|
|
45
|
+
});
|
|
27
46
|
}
|
|
28
47
|
catch (error) {
|
|
29
48
|
console.error(chalk.red(`\nError: ${error.message}`));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-types.js","sourceRoot":"","sources":["../../src/commands/generate-types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"generate-types.js","sourceRoot":"","sources":["../../src/commands/generate-types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;;;GAIG;AACH,SAAS,iBAAiB,CAAC,GAAW,EAAE,MAAc;IACpD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IACtD,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACvD,OAAO,sBAAsB,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,OAAO;SACJ,OAAO,CAAC,gBAAgB,CAAC;SACzB,WAAW,CAAC,0DAA0D,CAAC;SACvE,MAAM,CACL,iBAAiB,EACjB,sDAAsD,CACvD;SACA,MAAM,CACL,qBAAqB,EACrB,0FAA0F,CAC3F;SACA,MAAM,CACL,qBAAqB,EACrB,+HAA+H,CAChI;SACA,WAAW,CACV,OAAO,EACP;;;;;;;;;;CAUL,CACI;SACA,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YAC1B,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;YACrC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAChE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;YACxE,MAAM,gBAAgB,CAAC;gBACrB,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,MAAM;gBACN,MAAM;aACP,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkIzC,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,QAoiB5C"}
|
package/dist/commands/init.js
CHANGED
|
@@ -3,10 +3,10 @@ import fs from "fs-extra";
|
|
|
3
3
|
import path from "path";
|
|
4
4
|
import prompts from "prompts";
|
|
5
5
|
import { execSync } from "child_process";
|
|
6
|
-
import { detectFramework, detectPackageManager } from "../utils/detect.js";
|
|
6
|
+
import { detectFramework, detectPackageManager, } from "../utils/detect.js";
|
|
7
7
|
import { buildAiRules } from "@dyrected/knowledge";
|
|
8
8
|
import { buildDbConfig, buildStorageConfig, buildEnvTemplate, buildViteEnvTemplate, } from "../utils/config-templates.js";
|
|
9
|
-
import { writeNextFiles, writeNuxtFiles, writeReactFiles, writeVueFiles } from "../utils/writers.js";
|
|
9
|
+
import { writeNextFiles, writeNuxtFiles, writeReactFiles, writeVueFiles, } from "../utils/writers.js";
|
|
10
10
|
function buildAddCommand(packageManager, deps, dev = false) {
|
|
11
11
|
if (deps.length === 0)
|
|
12
12
|
return "";
|
|
@@ -52,6 +52,9 @@ if (result.error) {
|
|
|
52
52
|
process.exit(result.status ?? 0);
|
|
53
53
|
`;
|
|
54
54
|
}
|
|
55
|
+
function isBackendMode(value) {
|
|
56
|
+
return value === "cloud" || value === "self-hosted";
|
|
57
|
+
}
|
|
55
58
|
async function ensureCloudSyncScripts(cwd) {
|
|
56
59
|
const packageJsonPath = path.join(cwd, "package.json");
|
|
57
60
|
if (!(await fs.pathExists(packageJsonPath)))
|
|
@@ -63,7 +66,8 @@ async function ensureCloudSyncScripts(cwd) {
|
|
|
63
66
|
const syncScriptCommand = "node ./scripts/run-dyrected-sync.mjs";
|
|
64
67
|
const buildSyncCommand = "node ./scripts/run-dyrected-sync.mjs --skip-on-error --skip-types";
|
|
65
68
|
scripts[syncScriptName] = syncScriptCommand;
|
|
66
|
-
if (scripts.postbuild !== buildSyncCommand &&
|
|
69
|
+
if (scripts.postbuild !== buildSyncCommand &&
|
|
70
|
+
!scripts.postbuild?.includes(buildSyncCommand)) {
|
|
67
71
|
scripts.postbuild = scripts.postbuild
|
|
68
72
|
? `${scripts.postbuild} && ${buildSyncCommand}`
|
|
69
73
|
: buildSyncCommand;
|
|
@@ -73,12 +77,28 @@ async function ensureCloudSyncScripts(cwd) {
|
|
|
73
77
|
await fs.outputFile(syncRunnerPath, buildSyncRunnerScript());
|
|
74
78
|
console.log(chalk.green("✔ package.json updated with Dyrected Cloud sync scripts"));
|
|
75
79
|
}
|
|
80
|
+
async function ensureGenerateTypesScript(cwd) {
|
|
81
|
+
const packageJsonPath = path.join(cwd, "package.json");
|
|
82
|
+
if (!(await fs.pathExists(packageJsonPath)))
|
|
83
|
+
return;
|
|
84
|
+
const pkg = await fs.readJson(packageJsonPath);
|
|
85
|
+
const scripts = { ...(pkg.scripts || {}) };
|
|
86
|
+
const scriptName = "dyrected:generate-types";
|
|
87
|
+
const scriptCommand = "dyrected generate:types";
|
|
88
|
+
if (scripts[scriptName] === scriptCommand)
|
|
89
|
+
return;
|
|
90
|
+
scripts[scriptName] = scriptCommand;
|
|
91
|
+
pkg.scripts = scripts;
|
|
92
|
+
await fs.writeJson(packageJsonPath, pkg, { spaces: 2 });
|
|
93
|
+
console.log(chalk.green("✔ package.json updated with Dyrected type generation script"));
|
|
94
|
+
}
|
|
76
95
|
export function registerInit(program) {
|
|
77
96
|
program
|
|
78
97
|
.command("init")
|
|
79
98
|
.description("Bootstrap a new Dyrected CMS project")
|
|
80
99
|
.option("-y, --yes", "Skip prompts and use default settings (SQLite + Local Storage)")
|
|
81
100
|
.option("-f, --framework <framework>", "Target framework (next, nuxt, react, vue)")
|
|
101
|
+
.option("-b, --backend <backend>", "Backend mode (cloud, self-hosted)")
|
|
82
102
|
.option("-d, --db <adapter>", "Database adapter (sqlite, postgres, mysql, mongodb)")
|
|
83
103
|
.option("-s, --storage <adapter>", "Storage adapter (local, s3, b2, cloudinary)")
|
|
84
104
|
.option("-p, --path <path>", "Admin dashboard route path", "admin")
|
|
@@ -88,8 +108,11 @@ Examples:
|
|
|
88
108
|
# Interactive setup (detects your framework automatically)
|
|
89
109
|
$ npx dyrected init
|
|
90
110
|
|
|
91
|
-
# Non-interactive
|
|
92
|
-
$ npx dyrected init -y -f next -
|
|
111
|
+
# Non-interactive Dyrected Cloud setup
|
|
112
|
+
$ npx dyrected init -y -f next -b cloud -p admin
|
|
113
|
+
|
|
114
|
+
# Non-interactive self-hosted setup (Next.js, Postgres, S3, custom path)
|
|
115
|
+
$ npx dyrected init -y -f next -b self-hosted -d postgres -s s3 -p custom-admin
|
|
93
116
|
|
|
94
117
|
After running init:
|
|
95
118
|
1. Fill in the values in .env
|
|
@@ -110,8 +133,14 @@ After running init:
|
|
|
110
133
|
process.exit(0);
|
|
111
134
|
}
|
|
112
135
|
let framework;
|
|
113
|
-
const validFrameworks = [
|
|
114
|
-
|
|
136
|
+
const validFrameworks = [
|
|
137
|
+
"next",
|
|
138
|
+
"nuxt",
|
|
139
|
+
"react",
|
|
140
|
+
"vue",
|
|
141
|
+
];
|
|
142
|
+
if (options.framework &&
|
|
143
|
+
validFrameworks.includes(options.framework)) {
|
|
115
144
|
framework = options.framework;
|
|
116
145
|
}
|
|
117
146
|
else if (detection?.supported) {
|
|
@@ -147,6 +176,46 @@ After running init:
|
|
|
147
176
|
framework = answer.framework;
|
|
148
177
|
}
|
|
149
178
|
const isSpa = framework === "react" || framework === "vue";
|
|
179
|
+
let backend = "cloud";
|
|
180
|
+
if (options.backend && !isBackendMode(options.backend)) {
|
|
181
|
+
console.log(chalk.red(`\nInvalid backend "${options.backend}". Use "cloud" or "self-hosted".\n`));
|
|
182
|
+
process.exit(1);
|
|
183
|
+
}
|
|
184
|
+
if (isSpa) {
|
|
185
|
+
if (options.backend === "self-hosted") {
|
|
186
|
+
console.log(chalk.red("\nReact and Vue currently connect to Dyrected Cloud only. Use --backend cloud.\n"));
|
|
187
|
+
process.exit(1);
|
|
188
|
+
}
|
|
189
|
+
backend = "cloud";
|
|
190
|
+
}
|
|
191
|
+
else if (options.backend) {
|
|
192
|
+
backend = options.backend;
|
|
193
|
+
}
|
|
194
|
+
else if (!autoAccept) {
|
|
195
|
+
const answer = await prompts({
|
|
196
|
+
type: "select",
|
|
197
|
+
name: "backend",
|
|
198
|
+
message: "Where should the Dyrected backend run?",
|
|
199
|
+
choices: [
|
|
200
|
+
{
|
|
201
|
+
title: "Dyrected Cloud (recommended)",
|
|
202
|
+
value: "cloud",
|
|
203
|
+
description: "Use Dyrected-hosted API, database, storage, and auth.",
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
title: "Self-hosted in this app",
|
|
207
|
+
value: "self-hosted",
|
|
208
|
+
description: "Run the full backend inside your Next.js or Nuxt app.",
|
|
209
|
+
},
|
|
210
|
+
],
|
|
211
|
+
initial: 0,
|
|
212
|
+
});
|
|
213
|
+
if (!answer.backend) {
|
|
214
|
+
console.log(chalk.yellow("\nAborted."));
|
|
215
|
+
process.exit(0);
|
|
216
|
+
}
|
|
217
|
+
backend = answer.backend;
|
|
218
|
+
}
|
|
150
219
|
let adminPath = options.path || "admin";
|
|
151
220
|
if (!options.path && !autoAccept) {
|
|
152
221
|
const answer = await prompts({
|
|
@@ -168,7 +237,11 @@ After running init:
|
|
|
168
237
|
if (options.storage && validStorages.includes(options.storage)) {
|
|
169
238
|
storage = options.storage;
|
|
170
239
|
}
|
|
171
|
-
if (!isSpa &&
|
|
240
|
+
if (!isSpa &&
|
|
241
|
+
backend === "self-hosted" &&
|
|
242
|
+
!options.db &&
|
|
243
|
+
!options.storage &&
|
|
244
|
+
!autoAccept) {
|
|
172
245
|
const { quickSetup } = await prompts({
|
|
173
246
|
type: "confirm",
|
|
174
247
|
name: "quickSetup",
|
|
@@ -208,21 +281,30 @@ After running init:
|
|
|
208
281
|
const devDeps = [];
|
|
209
282
|
if (isSpa) {
|
|
210
283
|
const frameworkPkg = framework === "react" ? "@dyrected/react" : "@dyrected/vue";
|
|
211
|
-
deps = frameworkPkg;
|
|
284
|
+
deps = ["@dyrected/core", frameworkPkg].join(" ");
|
|
285
|
+
devDeps.push("dyrected");
|
|
212
286
|
}
|
|
213
287
|
else {
|
|
214
288
|
const frameworkPkg = framework === "next" ? "@dyrected/next" : "@dyrected/nuxt";
|
|
215
|
-
const
|
|
216
|
-
|
|
217
|
-
|
|
289
|
+
const fullStackDeps = ["@dyrected/core", frameworkPkg];
|
|
290
|
+
if (backend === "self-hosted") {
|
|
291
|
+
fullStackDeps.push(`@dyrected/db-${db}`, `@dyrected/storage-${storage}`);
|
|
292
|
+
}
|
|
293
|
+
deps = fullStackDeps.join(" ");
|
|
218
294
|
devDeps.push("dyrected");
|
|
219
295
|
}
|
|
220
296
|
console.log(chalk.blue(`\nInstalling ${deps}...`));
|
|
221
297
|
try {
|
|
222
|
-
execSync(buildAddCommand(packageManager, deps.split(" ")), {
|
|
298
|
+
execSync(buildAddCommand(packageManager, deps.split(" ")), {
|
|
299
|
+
cwd,
|
|
300
|
+
stdio: "inherit",
|
|
301
|
+
});
|
|
223
302
|
if (devDeps.length > 0) {
|
|
224
303
|
console.log(chalk.blue(`Installing ${devDeps.join(" ")} as a dev dependency...`));
|
|
225
|
-
execSync(buildAddCommand(packageManager, devDeps, true), {
|
|
304
|
+
execSync(buildAddCommand(packageManager, devDeps, true), {
|
|
305
|
+
cwd,
|
|
306
|
+
stdio: "inherit",
|
|
307
|
+
});
|
|
226
308
|
}
|
|
227
309
|
}
|
|
228
310
|
catch {
|
|
@@ -233,19 +315,22 @@ After running init:
|
|
|
233
315
|
}
|
|
234
316
|
console.log("");
|
|
235
317
|
}
|
|
236
|
-
// ── 2. Write dyrected.config.ts
|
|
237
|
-
if (!isSpa) {
|
|
238
|
-
const
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
318
|
+
// ── 2. Write dyrected.config.ts ───────────────────────────────────────
|
|
319
|
+
if (!isSpa || backend === "cloud") {
|
|
320
|
+
const configContent = backend === "self-hosted"
|
|
321
|
+
? buildDyrectedConfig({
|
|
322
|
+
backend,
|
|
323
|
+
dbImport: `import { ${db}Adapter } from '@dyrected/db-${db}'`,
|
|
324
|
+
storageImport: `import { ${{
|
|
325
|
+
local: "localStorage",
|
|
326
|
+
s3: "s3Storage",
|
|
327
|
+
b2: "b2Storage",
|
|
328
|
+
cloudinary: "cloudinaryStorage",
|
|
329
|
+
}[storage]} } from '@dyrected/storage-${storage}'`,
|
|
330
|
+
dbConfig: buildDbConfig(db),
|
|
331
|
+
storageConfig: buildStorageConfig(storage),
|
|
332
|
+
})
|
|
333
|
+
: buildDyrectedConfig({ backend });
|
|
249
334
|
const configPath = path.join(cwd, "dyrected.config.ts");
|
|
250
335
|
if (await fs.pathExists(configPath)) {
|
|
251
336
|
let overwrite = forceOverwrite;
|
|
@@ -273,10 +358,10 @@ After running init:
|
|
|
273
358
|
}
|
|
274
359
|
// ── 3. Framework-specific files ────────────────────────────────────────
|
|
275
360
|
if (framework === "next") {
|
|
276
|
-
await writeNextFiles(cwd, adminPath);
|
|
361
|
+
await writeNextFiles(cwd, adminPath, backend);
|
|
277
362
|
}
|
|
278
363
|
else if (framework === "nuxt") {
|
|
279
|
-
await writeNuxtFiles(cwd, adminPath);
|
|
364
|
+
await writeNuxtFiles(cwd, adminPath, backend);
|
|
280
365
|
}
|
|
281
366
|
else if (framework === "react") {
|
|
282
367
|
await writeReactFiles(cwd, adminPath);
|
|
@@ -284,11 +369,14 @@ After running init:
|
|
|
284
369
|
else if (framework === "vue") {
|
|
285
370
|
await writeVueFiles(cwd, adminPath);
|
|
286
371
|
}
|
|
287
|
-
|
|
372
|
+
await ensureGenerateTypesScript(cwd);
|
|
373
|
+
if (backend === "cloud") {
|
|
288
374
|
await ensureCloudSyncScripts(cwd);
|
|
289
375
|
}
|
|
290
376
|
// ── 4. .env setup ──────────────────────────────────────────────────────
|
|
291
|
-
const envContent = isSpa
|
|
377
|
+
const envContent = isSpa
|
|
378
|
+
? buildViteEnvTemplate()
|
|
379
|
+
: buildEnvTemplate(framework, backend, db, storage);
|
|
292
380
|
const envExamplePath = path.join(cwd, ".env.example");
|
|
293
381
|
await fs.outputFile(envExamplePath, envContent);
|
|
294
382
|
console.log(chalk.green("✔ .env.example written"));
|
|
@@ -371,21 +459,37 @@ After running init:
|
|
|
371
459
|
// ── Done ───────────────────────────────────────────────────────────────
|
|
372
460
|
console.log(chalk.bold.green("\n✅ Dyrected is ready!\n"));
|
|
373
461
|
if (isSpa) {
|
|
374
|
-
console.log(chalk.cyan(` 1. Set
|
|
375
|
-
console.log(chalk.cyan(` 2.
|
|
376
|
-
console.log(chalk.cyan(" 3.
|
|
462
|
+
console.log(chalk.cyan(` 1. Set DYRECTED_URL, DYRECTED_API_KEY, and DYRECTED_SITE_ID in .env`));
|
|
463
|
+
console.log(chalk.cyan(` 2. Set VITE_DYRECTED_URL, VITE_DYRECTED_API_KEY, and VITE_DYRECTED_SITE_ID in .env`));
|
|
464
|
+
console.log(chalk.cyan(" 3. Run npm run dyrected:sync-schema after editing dyrected.config.ts"));
|
|
465
|
+
console.log(chalk.cyan(" 4. Run npm run dyrected:generate-types after schema changes"));
|
|
466
|
+
console.log(chalk.cyan(` 5. Add a route for /${adminPath} in your router config`));
|
|
467
|
+
console.log(chalk.cyan(" 6. Start your dev server and open the admin route\n"));
|
|
468
|
+
}
|
|
469
|
+
else if (backend === "cloud") {
|
|
470
|
+
console.log(chalk.cyan(` 1. Set DYRECTED_URL, DYRECTED_API_KEY, and DYRECTED_SITE_ID in .env`));
|
|
471
|
+
console.log(chalk.cyan(` 2. Set ${framework === "next" ? "NEXT_PUBLIC" : "NUXT_PUBLIC"}_DYRECTED_URL, ${framework === "next" ? "NEXT_PUBLIC" : "NUXT_PUBLIC"}_DYRECTED_API_KEY, and ${framework === "next" ? "NEXT_PUBLIC" : "NUXT_PUBLIC"}_DYRECTED_SITE_ID in .env`));
|
|
472
|
+
console.log(chalk.cyan(" 3. Run npm run dyrected:generate-types if you want a generated types file"));
|
|
473
|
+
console.log(chalk.cyan(` 4. Open http://localhost:3000/${adminPath} and run npm run dyrected:sync-schema\n`));
|
|
377
474
|
}
|
|
378
475
|
else {
|
|
379
476
|
console.log(chalk.cyan(` 1. Configure your environment variables in .env`));
|
|
380
477
|
console.log(chalk.cyan(` 2. Open http://localhost:3000/${adminPath} to start managing content.`));
|
|
381
|
-
console.log(chalk.cyan(" 3. Run
|
|
478
|
+
console.log(chalk.cyan(" 3. Run npm run dyrected:generate-types to create your typed contract file\n"));
|
|
382
479
|
}
|
|
383
480
|
console.log(chalk.bold.magenta("🤖 Using Claude Code or Cursor?"));
|
|
384
481
|
console.log(chalk.dim(" Install the Dyrected skill to give your AI agent full context:"));
|
|
385
482
|
console.log(chalk.cyan(" npx skills add dyrected/agent-skills@dyrected\n"));
|
|
386
483
|
});
|
|
387
484
|
}
|
|
388
|
-
function buildDyrectedConfig(
|
|
485
|
+
function buildDyrectedConfig(options) {
|
|
486
|
+
const configLines = [
|
|
487
|
+
` collections: [Admins, Media, Pages, Posts],`,
|
|
488
|
+
` globals: [Navigation, Settings],`,
|
|
489
|
+
];
|
|
490
|
+
if (options.backend === "self-hosted") {
|
|
491
|
+
configLines.push(` db: ${options.dbConfig},`, ` storage: ${options.storageConfig},`);
|
|
492
|
+
}
|
|
389
493
|
return `import {
|
|
390
494
|
defineCollection,
|
|
391
495
|
defineGlobal,
|
|
@@ -397,8 +501,7 @@ function buildDyrectedConfig(dbImport, storageImport, dbConfig, storageConfig) {
|
|
|
397
501
|
defineRelationshipField,
|
|
398
502
|
defineArrayField,
|
|
399
503
|
} from '@dyrected/core'
|
|
400
|
-
${dbImport}
|
|
401
|
-
${storageImport}
|
|
504
|
+
${options.dbImport ? `${options.dbImport}\n` : ""}${options.storageImport ? options.storageImport : ""}
|
|
402
505
|
|
|
403
506
|
// ── Admin Auth ────────────────────────────────────────────────────────────
|
|
404
507
|
// Reserved collection — sole login gateway for the Dyrected dashboard.
|
|
@@ -487,10 +590,7 @@ const Settings = defineGlobal({
|
|
|
487
590
|
// ── Config ────────────────────────────────────────────────────────────────
|
|
488
591
|
|
|
489
592
|
export default defineConfig({
|
|
490
|
-
|
|
491
|
-
globals: [Navigation, Settings],
|
|
492
|
-
db: ${dbConfig},
|
|
493
|
-
storage: ${storageConfig},
|
|
593
|
+
${configLines.join("\n")}
|
|
494
594
|
})
|
|
495
595
|
`;
|
|
496
596
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import type { Command } from "commander";
|
|
2
2
|
export declare function sanitizeSchemaForCloudSync(config: {
|
|
3
|
+
blocks?: Record<string, any>[];
|
|
3
4
|
collections: Record<string, any>[];
|
|
4
5
|
globals?: Record<string, any>[];
|
|
5
6
|
admin?: Record<string, any>;
|
|
6
7
|
}): {
|
|
7
8
|
payload: {
|
|
9
|
+
blocks: {
|
|
10
|
+
fields: any;
|
|
11
|
+
}[];
|
|
8
12
|
collections: {
|
|
9
13
|
access: {
|
|
10
14
|
readAudit?: unknown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-schema.d.ts","sourceRoot":"","sources":["../../src/commands/sync-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"sync-schema.d.ts","sourceRoot":"","sources":["../../src/commands/sync-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuGzC,wBAAgB,0BAA0B,CAAC,MAAM,EAAE;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC7B;;;;;;;;;;;;;;;;;;;;;;;;;EAuHA;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,QA0JlD"}
|
|
@@ -4,8 +4,12 @@ import path from "path";
|
|
|
4
4
|
import { createJiti } from "jiti";
|
|
5
5
|
import { runGenerateTypes } from "../utils/type-generator.js";
|
|
6
6
|
import { loadCommandEnv } from "../utils/env.js";
|
|
7
|
+
import { resolveAppSrcDir } from "../utils/detect.js";
|
|
7
8
|
function isNamedPolicy(value) {
|
|
8
|
-
return !!value &&
|
|
9
|
+
return (!!value &&
|
|
10
|
+
typeof value === "object" &&
|
|
11
|
+
"policy" in value &&
|
|
12
|
+
typeof value.policy === "string");
|
|
9
13
|
}
|
|
10
14
|
function sanitizeAccessValue(value, location, warnings) {
|
|
11
15
|
if (value === undefined || value === null)
|
|
@@ -24,9 +28,21 @@ function sanitizeField(field, location, warnings) {
|
|
|
24
28
|
const sanitized = { ...field };
|
|
25
29
|
if (sanitized.access) {
|
|
26
30
|
sanitized.access = {
|
|
27
|
-
...(sanitized.access.read !== undefined
|
|
28
|
-
|
|
29
|
-
|
|
31
|
+
...(sanitized.access.read !== undefined
|
|
32
|
+
? {
|
|
33
|
+
read: sanitizeAccessValue(sanitized.access.read, `${location}.access.read`, warnings),
|
|
34
|
+
}
|
|
35
|
+
: {}),
|
|
36
|
+
...(sanitized.access.create !== undefined
|
|
37
|
+
? {
|
|
38
|
+
create: sanitizeAccessValue(sanitized.access.create, `${location}.access.create`, warnings),
|
|
39
|
+
}
|
|
40
|
+
: {}),
|
|
41
|
+
...(sanitized.access.update !== undefined
|
|
42
|
+
? {
|
|
43
|
+
update: sanitizeAccessValue(sanitized.access.update, `${location}.access.update`, warnings),
|
|
44
|
+
}
|
|
45
|
+
: {}),
|
|
30
46
|
};
|
|
31
47
|
}
|
|
32
48
|
if (Array.isArray(sanitized.fields)) {
|
|
@@ -44,14 +60,40 @@ function sanitizeField(field, location, warnings) {
|
|
|
44
60
|
}
|
|
45
61
|
export function sanitizeSchemaForCloudSync(config) {
|
|
46
62
|
const warnings = [];
|
|
63
|
+
const blocks = (config.blocks || []).map((block, index) => ({
|
|
64
|
+
...block,
|
|
65
|
+
fields: Array.isArray(block.fields)
|
|
66
|
+
? block.fields.map((field, fieldIndex) => sanitizeField(field, `blocks[${index}].fields[${fieldIndex}]`, warnings))
|
|
67
|
+
: block.fields,
|
|
68
|
+
}));
|
|
47
69
|
const collections = config.collections.map((collection, index) => ({
|
|
48
70
|
...collection,
|
|
49
71
|
access: {
|
|
50
|
-
...(collection.access?.read !== undefined
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
72
|
+
...(collection.access?.read !== undefined
|
|
73
|
+
? {
|
|
74
|
+
read: sanitizeAccessValue(collection.access.read, `collections[${index}].access.read`, warnings),
|
|
75
|
+
}
|
|
76
|
+
: {}),
|
|
77
|
+
...(collection.access?.create !== undefined
|
|
78
|
+
? {
|
|
79
|
+
create: sanitizeAccessValue(collection.access.create, `collections[${index}].access.create`, warnings),
|
|
80
|
+
}
|
|
81
|
+
: {}),
|
|
82
|
+
...(collection.access?.update !== undefined
|
|
83
|
+
? {
|
|
84
|
+
update: sanitizeAccessValue(collection.access.update, `collections[${index}].access.update`, warnings),
|
|
85
|
+
}
|
|
86
|
+
: {}),
|
|
87
|
+
...(collection.access?.delete !== undefined
|
|
88
|
+
? {
|
|
89
|
+
delete: sanitizeAccessValue(collection.access.delete, `collections[${index}].access.delete`, warnings),
|
|
90
|
+
}
|
|
91
|
+
: {}),
|
|
92
|
+
...(collection.access?.readAudit !== undefined
|
|
93
|
+
? {
|
|
94
|
+
readAudit: sanitizeAccessValue(collection.access.readAudit, `collections[${index}].access.readAudit`, warnings),
|
|
95
|
+
}
|
|
96
|
+
: {}),
|
|
55
97
|
},
|
|
56
98
|
fields: Array.isArray(collection.fields)
|
|
57
99
|
? collection.fields.map((field, fieldIndex) => sanitizeField(field, `collections[${index}].fields[${fieldIndex}]`, warnings))
|
|
@@ -60,8 +102,16 @@ export function sanitizeSchemaForCloudSync(config) {
|
|
|
60
102
|
const globals = (config.globals || []).map((global, index) => ({
|
|
61
103
|
...global,
|
|
62
104
|
access: {
|
|
63
|
-
...(global.access?.read !== undefined
|
|
64
|
-
|
|
105
|
+
...(global.access?.read !== undefined
|
|
106
|
+
? {
|
|
107
|
+
read: sanitizeAccessValue(global.access.read, `globals[${index}].access.read`, warnings),
|
|
108
|
+
}
|
|
109
|
+
: {}),
|
|
110
|
+
...(global.access?.update !== undefined
|
|
111
|
+
? {
|
|
112
|
+
update: sanitizeAccessValue(global.access.update, `globals[${index}].access.update`, warnings),
|
|
113
|
+
}
|
|
114
|
+
: {}),
|
|
65
115
|
},
|
|
66
116
|
fields: Array.isArray(global.fields)
|
|
67
117
|
? global.fields.map((field, fieldIndex) => sanitizeField(field, `globals[${index}].fields[${fieldIndex}]`, warnings))
|
|
@@ -69,6 +119,7 @@ export function sanitizeSchemaForCloudSync(config) {
|
|
|
69
119
|
}));
|
|
70
120
|
return {
|
|
71
121
|
payload: {
|
|
122
|
+
blocks,
|
|
72
123
|
collections,
|
|
73
124
|
globals,
|
|
74
125
|
admin: config.admin || {},
|
|
@@ -82,7 +133,7 @@ export function registerSyncSchema(program) {
|
|
|
82
133
|
.description("Sync your local Dyrected schema with the Cloud dashboard")
|
|
83
134
|
.option("-k, --api-key <key>", "Your Dyrected API Key")
|
|
84
135
|
.option("-s, --site-id <id>", "Your Dyrected Site ID")
|
|
85
|
-
.option("-u, --url <url>", "Cloud API URL
|
|
136
|
+
.option("-u, --url <url>", "Cloud API URL (defaults to $DYRECTED_URL, then Dyrected Cloud)")
|
|
86
137
|
.option("-c, --config <path>", "Path to your dyrected.config.ts", "./dyrected.config.ts")
|
|
87
138
|
.option("--env-path <path>", "Path to an env file to load before syncing")
|
|
88
139
|
.option("--skip-on-error", "Do not exit with error if sync fails (useful for CI builds)")
|
|
@@ -131,6 +182,7 @@ Examples:
|
|
|
131
182
|
throw new Error("Invalid config: No collections found.");
|
|
132
183
|
console.log(chalk.blue(`Syncing schema to ${apiUrl}...`));
|
|
133
184
|
const { payload, warnings } = sanitizeSchemaForCloudSync({
|
|
185
|
+
blocks: config.blocks || [],
|
|
134
186
|
collections: config.collections,
|
|
135
187
|
globals: config.globals || [],
|
|
136
188
|
admin: config.admin || {},
|
|
@@ -152,13 +204,21 @@ Examples:
|
|
|
152
204
|
body: JSON.stringify(payload),
|
|
153
205
|
});
|
|
154
206
|
if (!response.ok) {
|
|
155
|
-
const error = await response
|
|
207
|
+
const error = await response
|
|
208
|
+
.json()
|
|
209
|
+
.catch(() => ({ message: response.statusText }));
|
|
156
210
|
throw new Error(`Sync failed: ${error.message || response.statusText}`);
|
|
157
211
|
}
|
|
158
212
|
console.log(chalk.green(`✔ Schema synced successfully for site ${siteId}`));
|
|
159
213
|
if (!options.skipTypes) {
|
|
160
214
|
console.log(chalk.blue("\nGenerating types from synced schema..."));
|
|
161
|
-
|
|
215
|
+
// Write generated types into the framework source dir so the schema
|
|
216
|
+
// augmentation is picked up by the TypeScript program.
|
|
217
|
+
const srcDir = resolveAppSrcDir(process.cwd());
|
|
218
|
+
await runGenerateTypes({
|
|
219
|
+
config: options.config,
|
|
220
|
+
output: path.join(srcDir, "dyrected-types.ts"),
|
|
221
|
+
});
|
|
162
222
|
}
|
|
163
223
|
}
|
|
164
224
|
catch (error) {
|