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.
@@ -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;AAIzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,QAgCrD"}
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 (Self-hosted)", "./dyrected.config.ts")
9
- .option("-o, --output <path>", "Output file path", "./dyrected-types.ts")
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 (default)
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
- await runGenerateTypes({ url: options.url, config: options.config, output: options.output });
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;AAE9D,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,OAAO;SACJ,OAAO,CAAC,gBAAgB,CAAC;SACzB,WAAW,CAAC,0DAA0D,CAAC;SACvE,MAAM,CAAC,iBAAiB,EAAE,sDAAsD,CAAC;SACjF,MAAM,CAAC,qBAAqB,EAAE,+CAA+C,EAAE,sBAAsB,CAAC;SACtG,MAAM,CAAC,qBAAqB,EAAE,kBAAkB,EAAE,qBAAqB,CAAC;SACxE,WAAW,CACV,OAAO,EACP;;;;;;;;;;;;;CAaL,CACI;SACA,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,IAAI,CAAC;YACH,MAAM,gBAAgB,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC/F,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
+ {"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;AAoFzC,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,QAyV5C"}
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"}
@@ -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 && !scripts.postbuild?.includes(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 automated setup (Next.js, Postgres, S3, custom path)
92
- $ npx dyrected init -y -f next -d postgres -s s3 -p custom-admin
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 = ["next", "nuxt", "react", "vue"];
114
- if (options.framework && validFrameworks.includes(options.framework)) {
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 && !options.db && !options.storage && !autoAccept) {
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 dbPkg = `@dyrected/db-${db}`;
216
- const storagePkg = `@dyrected/storage-${storage}`;
217
- deps = ["@dyrected/core", frameworkPkg, dbPkg, storagePkg].join(" ");
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(" ")), { cwd, stdio: "inherit" });
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), { cwd, stdio: "inherit" });
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 (full-stack only) ─────────────────────
237
- if (!isSpa) {
238
- const dbPkg = `@dyrected/db-${db}`;
239
- const storagePkg = `@dyrected/storage-${storage}`;
240
- const dbImport = `import { ${db}Adapter } from '${dbPkg}'`;
241
- const storageFactory = {
242
- local: "localStorage",
243
- s3: "s3Storage",
244
- b2: "b2Storage",
245
- cloudinary: "cloudinaryStorage",
246
- }[storage];
247
- const storageImport = `import { ${storageFactory} } from '${storagePkg}'`;
248
- const configContent = buildDyrectedConfig(dbImport, storageImport, buildDbConfig(db), buildStorageConfig(storage));
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
- if (!isSpa) {
372
+ await ensureGenerateTypesScript(cwd);
373
+ if (backend === "cloud") {
288
374
  await ensureCloudSyncScripts(cwd);
289
375
  }
290
376
  // ── 4. .env setup ──────────────────────────────────────────────────────
291
- const envContent = isSpa ? buildViteEnvTemplate() : buildEnvTemplate(db, storage, framework);
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 VITE_DYRECTED_URL and VITE_DYRECTED_API_KEY in .env`));
375
- console.log(chalk.cyan(` 2. Add a route for /${adminPath} in your router config`));
376
- console.log(chalk.cyan(" 3. Start your dev server and open the admin route\n"));
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: npx dyrected generate:types\n"));
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(dbImport, storageImport, dbConfig, storageConfig) {
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
- collections: [Admins, Media, Pages, Posts],
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;AAwDzC,wBAAgB,0BAA0B,CAAC,MAAM,EAAE;IACjD,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;;;;;;;;;;;;;;;;;;;;;;EAwCA;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,QAoHlD"}
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 && typeof value === "object" && "policy" in value && typeof value.policy === "string";
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 ? { read: sanitizeAccessValue(sanitized.access.read, `${location}.access.read`, warnings) } : {}),
28
- ...(sanitized.access.create !== undefined ? { create: sanitizeAccessValue(sanitized.access.create, `${location}.access.create`, warnings) } : {}),
29
- ...(sanitized.access.update !== undefined ? { update: sanitizeAccessValue(sanitized.access.update, `${location}.access.update`, warnings) } : {}),
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 ? { read: sanitizeAccessValue(collection.access.read, `collections[${index}].access.read`, warnings) } : {}),
51
- ...(collection.access?.create !== undefined ? { create: sanitizeAccessValue(collection.access.create, `collections[${index}].access.create`, warnings) } : {}),
52
- ...(collection.access?.update !== undefined ? { update: sanitizeAccessValue(collection.access.update, `collections[${index}].access.update`, warnings) } : {}),
53
- ...(collection.access?.delete !== undefined ? { delete: sanitizeAccessValue(collection.access.delete, `collections[${index}].access.delete`, warnings) } : {}),
54
- ...(collection.access?.readAudit !== undefined ? { readAudit: sanitizeAccessValue(collection.access.readAudit, `collections[${index}].access.readAudit`, warnings) } : {}),
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 ? { read: sanitizeAccessValue(global.access.read, `globals[${index}].access.read`, warnings) } : {}),
64
- ...(global.access?.update !== undefined ? { update: sanitizeAccessValue(global.access.update, `globals[${index}].access.update`, warnings) } : {}),
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", "https://cloud.dyrected.com")
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.json().catch(() => ({ message: response.statusText }));
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
- await runGenerateTypes({ config: options.config, output: "./dyrected-types.ts" });
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) {