@dyrected/cli 2.0.0 → 2.3.1
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 +5 -5
- package/dist/index.js.map +1 -1
- package/package.json +6 -2
- package/.turbo/turbo-build.log +0 -5
- package/CHANGELOG.md +0 -108
- package/src/index.ts +0 -638
- package/tsconfig.json +0 -14
package/dist/index.js
CHANGED
|
@@ -7,7 +7,7 @@ import path from "path";
|
|
|
7
7
|
import prompts from "prompts";
|
|
8
8
|
import { execSync } from "child_process";
|
|
9
9
|
import { createJiti } from "jiti";
|
|
10
|
-
import { generateAIPrompt } from "@dyrected/
|
|
10
|
+
import { generateAIPrompt } from "@dyrected/sdk";
|
|
11
11
|
const program = new Command();
|
|
12
12
|
program.name("dyrected").description("Dyrected CMS CLI tool").version("0.0.1");
|
|
13
13
|
// ─── init ──────────────────────────────────────────────────────────────────
|
|
@@ -288,7 +288,7 @@ async function writeNextFiles(cwd, adminPath) {
|
|
|
288
288
|
await fs.outputFile(apiRoutePath, `export { GET, POST, PUT, PATCH, DELETE } from '@dyrected/next'\n`);
|
|
289
289
|
console.log(chalk.green("✔ app/dyrected/[...route]/route.ts written"));
|
|
290
290
|
}
|
|
291
|
-
const adminPagePath = path.join(cwd, `app/${adminPath}/
|
|
291
|
+
const adminPagePath = path.join(cwd, `app/${adminPath}/page.tsx`);
|
|
292
292
|
if (!(await fs.pathExists(adminPagePath))) {
|
|
293
293
|
await fs.outputFile(adminPagePath, `import { DyrectedAdmin } from '@dyrected/next/admin'
|
|
294
294
|
|
|
@@ -296,7 +296,7 @@ export default function AdminPage() {
|
|
|
296
296
|
return <DyrectedAdmin apiPath="/dyrected" />
|
|
297
297
|
}
|
|
298
298
|
`);
|
|
299
|
-
console.log(chalk.green(`✔ app/${adminPath}/
|
|
299
|
+
console.log(chalk.green(`✔ app/${adminPath}/page.tsx written`));
|
|
300
300
|
}
|
|
301
301
|
}
|
|
302
302
|
async function writeNuxtFiles(cwd, adminPath) {
|
|
@@ -304,7 +304,7 @@ async function writeNuxtFiles(cwd, adminPath) {
|
|
|
304
304
|
console.log(chalk.dim(`
|
|
305
305
|
modules: ['@dyrected/nuxt'],
|
|
306
306
|
`));
|
|
307
|
-
const adminPagePath = path.join(cwd, `pages/${adminPath}/
|
|
307
|
+
const adminPagePath = path.join(cwd, `pages/${adminPath}/index.vue`);
|
|
308
308
|
if (!(await fs.pathExists(adminPagePath))) {
|
|
309
309
|
await fs.outputFile(adminPagePath, `<template>
|
|
310
310
|
<ClientOnly>
|
|
@@ -318,7 +318,7 @@ definePageMeta({
|
|
|
318
318
|
});
|
|
319
319
|
</script>
|
|
320
320
|
`);
|
|
321
|
-
console.log(chalk.green(`✔ pages/${adminPath}/
|
|
321
|
+
console.log(chalk.green(`✔ pages/${adminPath}/index.vue written`));
|
|
322
322
|
}
|
|
323
323
|
}
|
|
324
324
|
function buildEnvTemplate(db, storage, framework) {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAE/E,8EAA8E;AAE9E,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,sCAAsC,CAAC;KACnD,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC,CAAC;IAE1D,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,OAAO,CAAC;QAClC,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,gCAAgC;QACzC,OAAO,EAAE;YACP,EAAE,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,EAAE;YAChD,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE;SACnC;KACF,CAAC,CAAC;IAEH,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;QACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,OAAO,CAAC;QACnC,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,2CAA2C;QACpD,OAAO,EAAE,IAAI;KACd,CAAC,CAAC;IAEH,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,OAAO,CAAC;QAClC,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,2CAA2C;QACpD,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;KAC3D,CAAC,CAAC;IAEH,IAAI,EAAE,GAAG,QAAQ,CAAC;IAClB,IAAI,OAAO,GAAG,OAAO,CAAC;IAEtB,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC;YAC/B,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,yBAAyB;YAClC,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,0BAA0B,EAAE,KAAK,EAAE,UAAU,EAAE;gBACxD,EAAE,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,QAAQ,EAAE;gBAChD,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;aACvC;SACF,CAAC,CAAC;QACH,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC;QAEtB,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC;YACpC,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,wBAAwB;YACjC,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,OAAO,EAAE;gBAC7C,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE;gBAChC,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE;gBACtC,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE;aAC7C;SACF,CAAC,CAAC;QACH,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC;IAClC,CAAC;IAED,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,cAAc,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAEjD,wEAAwE;IACxE,MAAM,YAAY,GAAG,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC;IAChF,MAAM,KAAK,GAAG,gBAAgB,EAAE,EAAE,CAAC;IACnC,MAAM,UAAU,GAAG,qBAAqB,OAAO,EAAE,CAAC;IAClD,MAAM,IAAI,GAAG,CAAC,YAAY,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEzD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,IAAI,KAAK,CAAC,CAAC,CAAC;IACnD,IAAI,CAAC;QACH,QAAQ,CAAC,GAAG,cAAc,QAAQ,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IACvE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,uDAAuD,CAAC,CAAC,CAAC;QACnF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,cAAc,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED,wEAAwE;IACxE,MAAM,QAAQ,GAAG,YAAY,EAAE,mBAAmB,KAAK,GAAG,CAAC;IAC3D,MAAM,aAAa,GAAG,YAAY,OAAO,mBAAmB,UAAU,GAAG,CAAC;IAC1E,MAAM,QAAQ,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;IACnC,MAAM,aAAa,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAElD,MAAM,aAAa,GAAG;EACxB,QAAQ;EACR,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAkEP,QAAQ;aACH,aAAa;;CAEzB,CAAC;IAEE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;IACxD,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QACpC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,OAAO,CAAC;YAClC,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,+CAA+C;YACxD,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,CAAC;QACrD,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,CAAC,UAAU,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,EAAE,CAAC,UAAU,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,wEAAwE;IACxE,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QACzB,MAAM,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IACvC,CAAC;SAAM,CAAC;QACN,MAAM,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IACvC,CAAC;IAED,uEAAuE;IACvE,MAAM,UAAU,GAAG,gBAAgB,CAAC,EAAE,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IAC5D,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IACtD,MAAM,EAAE,CAAC,UAAU,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;IAEpD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACvC,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACjC,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxD,MAAM,WAAW,GAAG,UAAU;aAC3B,KAAK,CAAC,IAAI,CAAC;aACX,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YACf,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAC;YAChD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/B,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;QAC1C,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,OAAO,CAAC;gBAClC,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,yDAAyD;gBAClE,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;YAEH,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,2EAA2E,WAAW,EAAE,CAAC,CAAC;gBACvH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,OAAO,CAAC;YAClC,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,sCAAsC;YAC/C,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QAEH,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,wEAAwE;IACxE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC,CAAC;IAC7E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mCAAmC,SAAS,6BAA6B,CAAC,CAAC,CAAC;IACnG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC,CAAC;IAExE,MAAM,UAAU,GAAG,gBAAgB,CAAC,SAAgB,EAAE;QACpD,OAAO,EAAE,uBAAuB;QAChC,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC;IAC3D,MAAM,EAAE,CAAC,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAE5C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC,CAAC;IACrF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,+FAA+F,CAAC,CAAC,CAAC;AAC1H,CAAC,CAAC,CAAC;AAEL,8EAA8E;AAE9E,SAAS,oBAAoB,CAAC,GAAW;IACvC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;QAAE,OAAO,MAAM,CAAC;IACnE,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAAE,OAAO,MAAM,CAAC;IAC9D,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,EAAU;IAC/B,QAAQ,EAAE,EAAE,CAAC;QACX,KAAK,UAAU;YACb,OAAO,qDAAqD,CAAC;QAC/D,KAAK,QAAQ;YACX,OAAO,0CAA0C,CAAC;QACpD,KAAK,SAAS;YACZ,OAAO,oDAAoD,CAAC;QAC9D;YACE,OAAO,qDAAqD,CAAC;IACjE,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAe;IACzC,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,OAAO;YACV,OAAO,wEAAwE,CAAC;QAClF,KAAK,IAAI;YACP,OAAO,+KAA+K,CAAC;QACzL,KAAK,IAAI;YACP,OAAO,oIAAoI,CAAC;QAC9I,KAAK,YAAY;YACf,OAAO,8JAA8J,CAAC;QACxK;YACE,OAAO,wEAAwE,CAAC;IACpF,CAAC;AACH,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,GAAW,EAAE,SAAiB;IAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,kCAAkC,CAAC,CAAC;IACxE,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;QACzC,MAAM,EAAE,CAAC,UAAU,CAAC,YAAY,EAAE,kEAAkE,CAAC,CAAC;QACtG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,SAAS,wBAAwB,CAAC,CAAC;IAC/E,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;QAC1C,MAAM,EAAE,CAAC,UAAU,CACjB,aAAa,EACb;;;;;CAKL,CACI,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,SAAS,gCAAgC,CAAC,CAAC,CAAC;IAChF,CAAC;AACH,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,GAAW,EAAE,SAAiB;IAC1D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,6CAA6C,CAAC,CAAC,CAAC;IACzE,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CAAC;;CAEb,CAAC,CACC,CAAC;IAEF,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,SAAS,mBAAmB,CAAC,CAAC;IAC5E,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;QAC1C,MAAM,EAAE,CAAC,UAAU,CACjB,aAAa,EACb;;gCAE0B,SAAS;;;;;;;;;CASxC,CACI,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,SAAS,2BAA2B,CAAC,CAAC,CAAC;IAC7E,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,EAAU,EAAE,OAAe,EAAE,SAAiB;IACtE,MAAM,KAAK,GAAG;QACZ,wCAAwC;QACxC,gBAAgB,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC,8CAA8C,EAAE;QAC1H,4CAA4C;QAC5C,sCAAsC;QACtC,EAAE;KACH,CAAC;IAEF,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,KAAK,CAAC,IAAI,CAAC,qBAAqB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,uBAAuB,CAAC,CAAC;IACzG,CAAC;SAAM,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,eAAe,EAAE,YAAY,EAAE,qBAAqB,CAAC,CAAC;IACnE,CAAC;SAAM,IAAI,OAAO,KAAK,YAAY,EAAE,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,wBAAwB,EAAE,qBAAqB,EAAE,wBAAwB,CAAC,CAAC;IACxF,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC;IAEtE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,MAAM,oCAAoC,EAAE,GAAG,MAAM,4BAA4B,CAAC,CAAC;IACrG,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACjC,CAAC;AAED,+EAA+E;AAE/E,OAAO;KACJ,OAAO,CAAC,gBAAgB,CAAC;KACzB,WAAW,CAAC,0DAA0D,CAAC;KACvE,MAAM,CAAC,iBAAiB,EAAE,sDAAsD,CAAC;KACjF,MAAM,CAAC,qBAAqB,EAAE,+CAA+C,EAAE,sBAAsB,CAAC;KACtG,MAAM,CAAC,qBAAqB,EAAE,kBAAkB,EAAE,qBAAqB,CAAC;KACxE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,IAAI,CAAC;QACH,IAAI,MAAW,CAAC;QAChB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,yBAAyB,OAAO,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC;YAC/E,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,CAAC,GAAG,cAAc,CAAC,CAAC;YAC3D,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,4BAA4B,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;YACrE,CAAC;YACD,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YAC/D,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBACpC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,uCAAuC,UAAU,KAAK,CAAC,CAAC,CAAC;gBAChF,MAAM,IAAI,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;gBACpC,MAAM,YAAY,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAQ,CAAC;gBAC5D,MAAM,GAAG,YAAY,CAAC,OAAO,IAAI,YAAY,CAAC;YAChD,CAAC;iBAAM,CAAC;gBACN,mDAAmD;gBACnD,MAAM,GAAG,GAAG,uBAAuB,CAAC;gBACpC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gDAAgD,GAAG,iBAAiB,CAAC,CAAC,CAAC;gBAC9F,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,GAAG,cAAc,CAAC,CAAC;gBACnD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACjB,MAAM,IAAI,KAAK,CAAC,4BAA4B,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;gBACrE,CAAC;gBACD,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACjC,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QACD,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACnC,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;QAC5E,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,CAAC;QAEhF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,iCAAiC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC9E,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,SAAS,aAAa,CAAC,MAAW;IAChC,IAAI,IAAI,GAAG;;;;;;;;;;;;;;;;GAgBV,CAAC;IAEF,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACrC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI;YAAE,SAAS;QAChC,MAAM,aAAa,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAE7C,+DAA+D;QAC/D,IAAI,aAAa,KAAK,OAAO,EAAE,CAAC;YAC9B,0EAA0E;YAC1E,6EAA6E;YAC7E,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,0BAA0B,EAAE,8BAA8B,CAAC,CAAC;YAChF,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,8BAA8B,EAAE,0BAA0B,CAAC,CAAC;QAClF,CAAC;QAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,oBAAoB,aAAa,IAAI,CAAC,CAAC;QAC/E,IAAI,iBAAiB,IAAI,aAAa,KAAK,OAAO;YAAE,SAAS;QAE7D,IAAI,aAAa,KAAK,OAAO,EAAE,CAAC;YAC9B,gFAAgF;YAChF,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CACnC,CAAC,CAAM,EAAE,EAAE,CACT,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAC7G,CAAC;YACF,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC,CAAC;gBACnF,MAAM,UAAU,GAAG,WAAW;qBAC3B,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC;qBAC3E,IAAI,CAAC,IAAI,CAAC,CAAC;gBACd,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,GAAG,UAAU,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YACxF,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,IAAI,oBAAoB,aAAa,MAAM,CAAC;QAChD,IAAI,IAAI,iBAAiB,CAAC;QAC1B,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAC/B,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI;gBAAE,SAAS;YAC9F,IAAI,IAAI,KAAK,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC;QACnF,CAAC;QACD,IAAI,IAAI,wBAAwB,CAAC;QACjC,IAAI,IAAI,wBAAwB,CAAC;QACjC,IAAI,IAAI,OAAO,CAAC;IAClB,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACjC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI;YAAE,SAAS;QAChC,MAAM,aAAa,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;QACxD,IAAI,IAAI,oBAAoB,aAAa,MAAM,CAAC;QAChD,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAC/B,IAAI,IAAI,KAAK,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC;QACnF,CAAC;QACD,IAAI,IAAI,OAAO,CAAC;IAClB,CAAC;IAED,IAAI,IAAI,qCAAqC,CAAC;IAC9C,IAAI,IAAI,oBAAoB,CAAC;IAC7B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACrC,IAAI,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;IAC1D,CAAC;IACD,IAAI,IAAI,QAAQ,CAAC;IACjB,IAAI,IAAI,gBAAgB,CAAC;IACzB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACjC,IAAI,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;IAChE,CAAC;IACD,IAAI,IAAI,QAAQ,CAAC;IACjB,IAAI,IAAI,KAAK,CAAC;IAEd,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,YAAY,CAAC,KAAU;IAC9B,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,MAAM,CAAC;QACZ,KAAK,UAAU,CAAC;QAChB,KAAK,UAAU,CAAC;QAChB,KAAK,MAAM,CAAC;QACZ,KAAK,OAAO,CAAC;QACb,KAAK,KAAK;YACR,OAAO,QAAQ,CAAC;QAClB,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC;QAClB,KAAK,SAAS;YACZ,OAAO,SAAS,CAAC;QACnB,KAAK,QAAQ;YACX,OAAO,KAAK,CAAC,OAAO;gBAClB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;gBACvF,CAAC,CAAC,QAAQ,CAAC;QACf,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC;YACxD,OAAO,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC;QAC5F,CAAC;QACD,KAAK,OAAO;YACV,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACjB,OAAO,YAAY,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;YACvI,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,KAAK,QAAQ;YACX,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACjB,OAAO,SAAS,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,wBAAwB,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;YACjN,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,KAAK,QAAQ;YACX,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACjB,OAAO,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;YAC5H,CAAC;YACD,OAAO,KAAK,CAAC;QACf;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,GAAW;IAC/B,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,OAAO,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AAC5E,CAAC;AAED,gFAAgF;AAEhF,OAAO;KACJ,OAAO,CAAC,aAAa,CAAC;KACtB,WAAW,CAAC,0DAA0D,CAAC;KACvE,MAAM,CAAC,qBAAqB,EAAE,uBAAuB,CAAC;KACtD,MAAM,CAAC,oBAAoB,EAAE,uBAAuB,CAAC;KACrD,MAAM,CAAC,iBAAiB,EAAE,eAAe,EAAE,qCAAqC,CAAC;KACjF,MAAM,CAAC,qBAAqB,EAAE,iCAAiC,EAAE,sBAAsB,CAAC;KACxF,MAAM,CAAC,iBAAiB,EAAE,gEAAgE,CAAC;KAC3F,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;QAC9D,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;QAC9D,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,qCAAqC,CAAC;QAChG,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAE/D,MAAM,IAAI,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;QAEpC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;YACvB,OAAO,CAAC,IAAI,CACV,KAAK,CAAC,MAAM,CACV,yHAAyH,CAC1H,CACF,CAAC;YACF,OAAO;QACT,CAAC;QAED,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,4BAA4B,UAAU,EAAE,CAAC,CAAC;QAC5D,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,uBAAuB,UAAU,KAAK,CAAC,CAAC,CAAC;QAChE,MAAM,YAAY,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAQ,CAAC;QAC5D,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,IAAI,YAAY,CAAC;QAEpD,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,MAAM,KAAK,CAAC,CAAC,CAAC;QAE1D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,2BAA2B,MAAM,cAAc,EAAE;YACrF,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,UAAU,MAAM,EAAE;gBACjC,WAAW,EAAE,MAAM;aACpB;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,EAAE;gBAC7B,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE;aAC1B,CAAC;SACH,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YACpF,MAAM,IAAI,KAAK,CAAC,gBAAgB,KAAK,CAAC,OAAO,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QAC1E,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,kDAAkD,MAAM,EAAE,CAAC,CAAC,CAAC;IACvF,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACxB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,sDAAsD,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAClG,OAAO;QACT,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dyrected/cli",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.3.1",
|
|
4
4
|
"type": "module",
|
|
5
|
+
"files": [
|
|
6
|
+
"dist"
|
|
7
|
+
],
|
|
5
8
|
"bin": {
|
|
6
9
|
"dyrected": "./dist/index.js"
|
|
7
10
|
},
|
|
@@ -13,7 +16,8 @@
|
|
|
13
16
|
"jiti": "^2.7.0",
|
|
14
17
|
"prettier": "^3.2.5",
|
|
15
18
|
"prompts": "^2.4.2",
|
|
16
|
-
"@dyrected/
|
|
19
|
+
"@dyrected/sdk": "^2.4.0",
|
|
20
|
+
"@dyrected/core": "^2.4.0"
|
|
17
21
|
},
|
|
18
22
|
"devDependencies": {
|
|
19
23
|
"@types/fs-extra": "^11.0.4",
|
package/.turbo/turbo-build.log
DELETED
package/CHANGELOG.md
DELETED
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
# @dyrected/cli
|
|
2
|
-
|
|
3
|
-
## 2.0.0
|
|
4
|
-
|
|
5
|
-
### Major Changes
|
|
6
|
-
|
|
7
|
-
- Updated all storage adapters to support `Uint8Array` buffers and file prefixing.
|
|
8
|
-
- **Storage API Update**: The `buffer` parameter in `StorageAdapter.upload` and `resolve` now expects a `Uint8Array` instead of a Node.js `Buffer`. This ensures better compatibility across different JavaScript environments.
|
|
9
|
-
- **File Prefixing**: Added support for an optional `prefix` parameter in `StorageAdapter.upload` to allow organizing files into subfolders or prefixes (supported by Cloudinary, S3, B2, and Local storage).
|
|
10
|
-
- **Alignment**: Standardized `CloudinaryStorageAdapter`, `LocalStorageAdapter`, `S3StorageAdapter`, and `B2StorageAdapter` to strictly follow the `@dyrected/core` interface.
|
|
11
|
-
|
|
12
|
-
### Patch Changes
|
|
13
|
-
|
|
14
|
-
- Updated dependencies
|
|
15
|
-
- @dyrected/core@2.0.0
|
|
16
|
-
|
|
17
|
-
## 1.0.8
|
|
18
|
-
|
|
19
|
-
### Patch Changes
|
|
20
|
-
|
|
21
|
-
- d8e1f29: bump package versions and update export conditions for admin package
|
|
22
|
-
- Updated dependencies [d8e1f29]
|
|
23
|
-
- @dyrected/core@1.0.9
|
|
24
|
-
|
|
25
|
-
## 1.0.7
|
|
26
|
-
|
|
27
|
-
### Patch Changes
|
|
28
|
-
|
|
29
|
-
- Add functional exports for all database and storage adapters (e.g., mongodbAdapter, sqliteAdapter, s3Storage) to provide a more ergonomic API and fix runtime re-attachment errors in Nuxt.
|
|
30
|
-
- Updated dependencies
|
|
31
|
-
- @dyrected/core@1.0.7
|
|
32
|
-
|
|
33
|
-
## 1.0.6
|
|
34
|
-
|
|
35
|
-
### Patch Changes
|
|
36
|
-
|
|
37
|
-
- Standardize framework integrations for Next.js and Nuxt. Refactor AI setup prompt into a Senior Content Architect mission with explicit architecture and discovery requirements. Fix CLI Nuxt template for zero-import architecture.
|
|
38
|
-
- Updated dependencies
|
|
39
|
-
- @dyrected/core@1.0.6
|
|
40
|
-
|
|
41
|
-
## 1.0.5
|
|
42
|
-
|
|
43
|
-
### Patch Changes
|
|
44
|
-
|
|
45
|
-
- Standardize framework integrations for Next.js and Nuxt. Fix CLI generation for Nuxt admin pages to use zero-import architecture and framework-aware env var prefixes.
|
|
46
|
-
- Updated dependencies
|
|
47
|
-
- @dyrected/core@1.0.5
|
|
48
|
-
|
|
49
|
-
## 1.0.4
|
|
50
|
-
|
|
51
|
-
### Patch Changes
|
|
52
|
-
|
|
53
|
-
- Standardized environment variable handling across Next.js and Nuxt (prioritizing `NEXT_PUBLIC_` and `NUXT_PUBLIC_` prefixes).
|
|
54
|
-
Improved CLI initialization flow by saving AI setup prompts to `dyrected-ai-prompt.md` and refining the framework-specific setup instructions.
|
|
55
|
-
Fixed type emission and dependency exports for `@dyrected/admin` to ensure stable builds in consuming applications.
|
|
56
|
-
Added a drop-in `DyrectedAdmin` component for Next.js.
|
|
57
|
-
Updated documentation with clearer self-hosted and cloud integration steps.
|
|
58
|
-
- Updated dependencies
|
|
59
|
-
- @dyrected/core@1.0.4
|
|
60
|
-
|
|
61
|
-
## 1.0.3
|
|
62
|
-
|
|
63
|
-
### Patch Changes
|
|
64
|
-
|
|
65
|
-
- Standardized environment variable handling across Next.js and Nuxt integrations.
|
|
66
|
-
- CLI now generates .env templates with framework-specific prefixes (NEXT*PUBLIC* / NUXT*PUBLIC*).
|
|
67
|
-
- Next.js and Nuxt clients automatically resolve these prefixed variables for client-side use.
|
|
68
|
-
- Added a dedicated `@dyrected/next/admin` component for easy dashboard embedding in Next.js.
|
|
69
|
-
- Fixed TypeScript type generation for the Admin UI package.
|
|
70
|
-
- Updated dependencies
|
|
71
|
-
- @dyrected/core@1.0.3
|
|
72
|
-
|
|
73
|
-
## 1.0.1
|
|
74
|
-
|
|
75
|
-
### Patch Changes
|
|
76
|
-
|
|
77
|
-
- bfc3468: Initial public release of the Dyrected CMS ecosystem.
|
|
78
|
-
- Updated dependencies [bfc3468]
|
|
79
|
-
- @dyrected/core@1.0.1
|
|
80
|
-
|
|
81
|
-
## 1.0.0
|
|
82
|
-
|
|
83
|
-
### Major Changes
|
|
84
|
-
|
|
85
|
-
- 00f9439: Initial major release of the Dyrected CMS ecosystem. This release establishes the core monorepo architecture, featuring a flexible CMS engine, a premium React-based Admin UI with warm light aesthetics, and native Next.js/Nuxt integrations. Key highlights include Jexl-based RBAC, a specialized media library with S3/Cloudinary support, live preview, automated audit trails, and a separated auth model for enhanced security.
|
|
86
|
-
|
|
87
|
-
### Breaking Changes
|
|
88
|
-
|
|
89
|
-
**WHAT:**
|
|
90
|
-
- Renamed `createApp` to `createDyrectedApp` across all core and framework packages.
|
|
91
|
-
- Removed the hardcoded `/api` prefix from internal routing logic; API paths now default to the handler root or are controlled via `apiPrefix` config.
|
|
92
|
-
- Administrative users are now isolated in a reserved `__admins` collection by default.
|
|
93
|
-
- Standardized database adapter return types to ensure consistent ID handling across SQL and NoSQL providers.
|
|
94
|
-
|
|
95
|
-
**WHY:**
|
|
96
|
-
- The rename prevents naming collisions with native framework initializers (like Vue's `createApp`).
|
|
97
|
-
- Decoupling the `/api` prefix provides better compatibility with Next.js/Nuxt server routes and custom proxy configurations.
|
|
98
|
-
- The `__admins` separation ensures system-level security isolation from application-level user data.
|
|
99
|
-
|
|
100
|
-
**HOW:**
|
|
101
|
-
- Update your server entry points to use the new `createDyrectedApp` factory function.
|
|
102
|
-
- If you have custom integrations targeting internal endpoints, ensure your base URL paths are updated to reflect the removal of the mandatory `/api` prefix.
|
|
103
|
-
- If upgrading an existing installation, migrate your administrative users from the `users` collection to the new `__admins` collection.
|
|
104
|
-
|
|
105
|
-
### Patch Changes
|
|
106
|
-
|
|
107
|
-
- Updated dependencies [00f9439]
|
|
108
|
-
- @dyrected/core@1.0.0
|
package/src/index.ts
DELETED
|
@@ -1,638 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { Command } from "commander";
|
|
3
|
-
import prettier from "prettier";
|
|
4
|
-
import chalk from "chalk";
|
|
5
|
-
import fs from "fs-extra";
|
|
6
|
-
import path from "path";
|
|
7
|
-
import prompts from "prompts";
|
|
8
|
-
import { execSync } from "child_process";
|
|
9
|
-
import { createJiti } from "jiti";
|
|
10
|
-
import { generateAIPrompt } from "@dyrected/core";
|
|
11
|
-
|
|
12
|
-
const program = new Command();
|
|
13
|
-
|
|
14
|
-
program.name("dyrected").description("Dyrected CMS CLI tool").version("0.0.1");
|
|
15
|
-
|
|
16
|
-
// ─── init ──────────────────────────────────────────────────────────────────
|
|
17
|
-
|
|
18
|
-
program
|
|
19
|
-
.command("init")
|
|
20
|
-
.description("Bootstrap a new Dyrected CMS project")
|
|
21
|
-
.action(async () => {
|
|
22
|
-
console.log(chalk.bold("\n🚀 Welcome to Dyrected CMS\n"));
|
|
23
|
-
|
|
24
|
-
const { framework } = await prompts({
|
|
25
|
-
type: "select",
|
|
26
|
-
name: "framework",
|
|
27
|
-
message: "Which framework are you using?",
|
|
28
|
-
choices: [
|
|
29
|
-
{ title: "Next.js (App Router)", value: "next" },
|
|
30
|
-
{ title: "Nuxt 3", value: "nuxt" },
|
|
31
|
-
],
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
if (!framework) {
|
|
35
|
-
console.log(chalk.yellow("\nAborted."));
|
|
36
|
-
process.exit(0);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
const { quickSetup } = await prompts({
|
|
40
|
-
type: "confirm",
|
|
41
|
-
name: "quickSetup",
|
|
42
|
-
message: "Use Quick Setup (SQLite + Local Storage)?",
|
|
43
|
-
initial: true,
|
|
44
|
-
});
|
|
45
|
-
|
|
46
|
-
const { adminPath } = await prompts({
|
|
47
|
-
type: "text",
|
|
48
|
-
name: "adminPath",
|
|
49
|
-
message: "What path should the admin dashboard use?",
|
|
50
|
-
initial: "cms",
|
|
51
|
-
format: (val) => val.replace(/^\//, "").replace(/\/$/, ""),
|
|
52
|
-
});
|
|
53
|
-
|
|
54
|
-
let db = "sqlite";
|
|
55
|
-
let storage = "local";
|
|
56
|
-
|
|
57
|
-
if (!quickSetup) {
|
|
58
|
-
const dbResponse = await prompts({
|
|
59
|
-
type: "select",
|
|
60
|
-
name: "value",
|
|
61
|
-
message: "Which database adapter?",
|
|
62
|
-
choices: [
|
|
63
|
-
{ title: "PostgreSQL (recommended)", value: "postgres" },
|
|
64
|
-
{ title: "SQLite (local dev)", value: "sqlite" },
|
|
65
|
-
{ title: "MongoDB", value: "mongodb" },
|
|
66
|
-
],
|
|
67
|
-
});
|
|
68
|
-
db = dbResponse.value;
|
|
69
|
-
|
|
70
|
-
const storageResponse = await prompts({
|
|
71
|
-
type: "select",
|
|
72
|
-
name: "value",
|
|
73
|
-
message: "Which storage adapter?",
|
|
74
|
-
choices: [
|
|
75
|
-
{ title: "Local filesystem", value: "local" },
|
|
76
|
-
{ title: "AWS S3", value: "s3" },
|
|
77
|
-
{ title: "Backblaze B2", value: "b2" },
|
|
78
|
-
{ title: "Cloudinary", value: "cloudinary" },
|
|
79
|
-
],
|
|
80
|
-
});
|
|
81
|
-
storage = storageResponse.value;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
const cwd = process.cwd();
|
|
85
|
-
const packageManager = detectPackageManager(cwd);
|
|
86
|
-
|
|
87
|
-
// ── 1. Install dependencies ──────────────────────────────────────────
|
|
88
|
-
const frameworkPkg = framework === "next" ? "@dyrected/next" : "@dyrected/nuxt";
|
|
89
|
-
const dbPkg = `@dyrected/db-${db}`;
|
|
90
|
-
const storagePkg = `@dyrected/storage-${storage}`;
|
|
91
|
-
const deps = [frameworkPkg, dbPkg, storagePkg].join(" ");
|
|
92
|
-
|
|
93
|
-
console.log(chalk.blue(`\nInstalling ${deps}...`));
|
|
94
|
-
try {
|
|
95
|
-
execSync(`${packageManager} add ${deps}`, { cwd, stdio: "inherit" });
|
|
96
|
-
} catch {
|
|
97
|
-
console.log(chalk.yellow("\nCould not auto-install. Run the following manually:"));
|
|
98
|
-
console.log(chalk.cyan(` ${packageManager} add ${deps}\n`));
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
// ── 2. Write dyrected.config.ts ──────────────────────────────────────
|
|
102
|
-
const dbImport = `import { ${db}Adapter } from '${dbPkg}'`;
|
|
103
|
-
const storageImport = `import { ${storage}Adapter } from '${storagePkg}'`;
|
|
104
|
-
const dbConfig = buildDbConfig(db);
|
|
105
|
-
const storageConfig = buildStorageConfig(storage);
|
|
106
|
-
|
|
107
|
-
const configContent = `import { defineCollection, defineGlobal, defineConfig } from '@dyrected/core'
|
|
108
|
-
${dbImport}
|
|
109
|
-
${storageImport}
|
|
110
|
-
|
|
111
|
-
// ── Collections ──────────────────────────────────────────────────────────
|
|
112
|
-
|
|
113
|
-
const media = defineCollection({
|
|
114
|
-
slug: 'media',
|
|
115
|
-
labels: { singular: 'Media', plural: 'Media' },
|
|
116
|
-
upload: true,
|
|
117
|
-
fields: [
|
|
118
|
-
{ name: 'alt', type: 'text' },
|
|
119
|
-
],
|
|
120
|
-
})
|
|
121
|
-
|
|
122
|
-
const pages = defineCollection({
|
|
123
|
-
slug: 'pages',
|
|
124
|
-
labels: { singular: 'Page', plural: 'Pages' },
|
|
125
|
-
fields: [
|
|
126
|
-
{ name: 'title', type: 'text', required: true },
|
|
127
|
-
{ name: 'slug', type: 'text', required: true },
|
|
128
|
-
{ name: 'content', type: 'richText' },
|
|
129
|
-
{ name: 'featuredImage', type: 'relationship', relationTo: 'media' },
|
|
130
|
-
],
|
|
131
|
-
})
|
|
132
|
-
|
|
133
|
-
const posts = defineCollection({
|
|
134
|
-
slug: 'posts',
|
|
135
|
-
labels: { singular: 'Post', plural: 'Posts' },
|
|
136
|
-
fields: [
|
|
137
|
-
{ name: 'title', type: 'text', required: true },
|
|
138
|
-
{ name: 'content', type: 'richText' },
|
|
139
|
-
{ name: 'featuredImage', type: 'relationship', relationTo: 'media' },
|
|
140
|
-
],
|
|
141
|
-
})
|
|
142
|
-
|
|
143
|
-
// ── Globals ───────────────────────────────────────────────────────────────
|
|
144
|
-
|
|
145
|
-
const navigation = defineGlobal({
|
|
146
|
-
slug: 'navigation',
|
|
147
|
-
label: 'Navigation',
|
|
148
|
-
fields: [
|
|
149
|
-
{
|
|
150
|
-
name: 'menuItems',
|
|
151
|
-
type: 'array',
|
|
152
|
-
fields: [
|
|
153
|
-
{ name: 'label', type: 'text' },
|
|
154
|
-
{ name: 'link', type: 'relationship', relationTo: 'pages' },
|
|
155
|
-
],
|
|
156
|
-
},
|
|
157
|
-
],
|
|
158
|
-
})
|
|
159
|
-
|
|
160
|
-
const settings = defineGlobal({
|
|
161
|
-
slug: 'settings',
|
|
162
|
-
label: 'Site Settings',
|
|
163
|
-
fields: [
|
|
164
|
-
{ name: 'siteName', type: 'text' },
|
|
165
|
-
{ name: 'logo', type: 'relationship', relationTo: 'media' },
|
|
166
|
-
{ name: 'footerText', type: 'textarea' },
|
|
167
|
-
],
|
|
168
|
-
})
|
|
169
|
-
|
|
170
|
-
// ── Config ────────────────────────────────────────────────────────────────
|
|
171
|
-
|
|
172
|
-
export default defineConfig({
|
|
173
|
-
collections: [media, pages, posts],
|
|
174
|
-
globals: [navigation, settings],
|
|
175
|
-
db: ${dbConfig},
|
|
176
|
-
storage: ${storageConfig},
|
|
177
|
-
})
|
|
178
|
-
`;
|
|
179
|
-
|
|
180
|
-
const configPath = path.join(cwd, "dyrected.config.ts");
|
|
181
|
-
if (await fs.pathExists(configPath)) {
|
|
182
|
-
const { overwrite } = await prompts({
|
|
183
|
-
type: "confirm",
|
|
184
|
-
name: "overwrite",
|
|
185
|
-
message: "dyrected.config.ts already exists. Overwrite?",
|
|
186
|
-
initial: false,
|
|
187
|
-
});
|
|
188
|
-
if (!overwrite) {
|
|
189
|
-
console.log(chalk.yellow("Skipping config file."));
|
|
190
|
-
} else {
|
|
191
|
-
await fs.outputFile(configPath, configContent);
|
|
192
|
-
console.log(chalk.green("✔ dyrected.config.ts written"));
|
|
193
|
-
}
|
|
194
|
-
} else {
|
|
195
|
-
await fs.outputFile(configPath, configContent);
|
|
196
|
-
console.log(chalk.green("✔ dyrected.config.ts written"));
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
// ── 3. Framework-specific files ──────────────────────────────────────
|
|
200
|
-
if (framework === "next") {
|
|
201
|
-
await writeNextFiles(cwd, adminPath);
|
|
202
|
-
} else {
|
|
203
|
-
await writeNuxtFiles(cwd, adminPath);
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
// ── 4. .env setup ───────────────────────────────────────────────────
|
|
207
|
-
const envContent = buildEnvTemplate(db, storage, framework);
|
|
208
|
-
const envExamplePath = path.join(cwd, ".env.example");
|
|
209
|
-
await fs.outputFile(envExamplePath, envContent);
|
|
210
|
-
console.log(chalk.green("✔ .env.example written"));
|
|
211
|
-
|
|
212
|
-
const envPath = path.join(cwd, ".env");
|
|
213
|
-
if (await fs.pathExists(envPath)) {
|
|
214
|
-
const existingEnv = await fs.readFile(envPath, "utf-8");
|
|
215
|
-
const missingVars = envContent
|
|
216
|
-
.split("\n")
|
|
217
|
-
.filter((line) => {
|
|
218
|
-
if (!line || line.startsWith("#")) return false;
|
|
219
|
-
const key = line.split("=")[0];
|
|
220
|
-
return !existingEnv.includes(`${key}=`);
|
|
221
|
-
})
|
|
222
|
-
.join("\n");
|
|
223
|
-
|
|
224
|
-
if (missingVars) {
|
|
225
|
-
const { appendEnv } = await prompts({
|
|
226
|
-
type: "confirm",
|
|
227
|
-
name: "appendEnv",
|
|
228
|
-
message: ".env already exists. Append missing Dyrected variables?",
|
|
229
|
-
initial: true,
|
|
230
|
-
});
|
|
231
|
-
|
|
232
|
-
if (appendEnv) {
|
|
233
|
-
await fs.appendFile(envPath, `\n# ── Dyrected CMS ──────────────────────────────────────────────────\n${missingVars}`);
|
|
234
|
-
console.log(chalk.green("✔ .env file updated with missing variables"));
|
|
235
|
-
}
|
|
236
|
-
} else {
|
|
237
|
-
console.log(chalk.dim("ℹ .env already contains all required variables."));
|
|
238
|
-
}
|
|
239
|
-
} else {
|
|
240
|
-
const { createEnv } = await prompts({
|
|
241
|
-
type: "confirm",
|
|
242
|
-
name: "createEnv",
|
|
243
|
-
message: ".env file is missing. Create it now?",
|
|
244
|
-
initial: true,
|
|
245
|
-
});
|
|
246
|
-
|
|
247
|
-
if (createEnv) {
|
|
248
|
-
await fs.outputFile(envPath, envContent);
|
|
249
|
-
console.log(chalk.green("✔ .env file created"));
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
// ── Done ─────────────────────────────────────────────────────────────
|
|
254
|
-
console.log(chalk.bold.green("\n✅ Dyrected is ready!\n"));
|
|
255
|
-
console.log(chalk.cyan(` 1. Configure your environment variables in .env`));
|
|
256
|
-
console.log(chalk.cyan(` 2. Open http://localhost:3000/${adminPath} to start managing content.`));
|
|
257
|
-
console.log(chalk.cyan(" 3. Run: npx @dyrected/cli generate:types\n"));
|
|
258
|
-
|
|
259
|
-
const promptText = generateAIPrompt(framework as any, {
|
|
260
|
-
baseUrl: "http://localhost:3000",
|
|
261
|
-
isSelfHosted: true,
|
|
262
|
-
});
|
|
263
|
-
|
|
264
|
-
const promptPath = path.join(cwd, "dyrected-ai-prompt.md");
|
|
265
|
-
await fs.outputFile(promptPath, promptText);
|
|
266
|
-
|
|
267
|
-
console.log(chalk.bold.magenta("🤖 AI INTEGRATION PROMPT"));
|
|
268
|
-
console.log(chalk.cyan(` Prompt saved to: ${chalk.bold("dyrected-ai-prompt.md")}`));
|
|
269
|
-
console.log(chalk.dim(" Copy the contents of this file to your AI (Claude, GPT, etc.) to scaffold your CMS logic.\n"));
|
|
270
|
-
});
|
|
271
|
-
|
|
272
|
-
// ── Helpers ────────────────────────────────────────────────────────────────
|
|
273
|
-
|
|
274
|
-
function detectPackageManager(cwd: string): string {
|
|
275
|
-
if (fs.existsSync(path.join(cwd, "pnpm-lock.yaml"))) return "pnpm";
|
|
276
|
-
if (fs.existsSync(path.join(cwd, "yarn.lock"))) return "yarn";
|
|
277
|
-
return "npm";
|
|
278
|
-
}
|
|
279
|
-
|
|
280
|
-
function buildDbConfig(db: string): string {
|
|
281
|
-
switch (db) {
|
|
282
|
-
case "postgres":
|
|
283
|
-
return `postgresAdapter({ url: process.env.DATABASE_URL! })`;
|
|
284
|
-
case "sqlite":
|
|
285
|
-
return `sqliteAdapter({ filename: './data.db' })`;
|
|
286
|
-
case "mongodb":
|
|
287
|
-
return `mongodbAdapter({ url: process.env.DATABASE_URL! })`;
|
|
288
|
-
default:
|
|
289
|
-
return `postgresAdapter({ url: process.env.DATABASE_URL! })`;
|
|
290
|
-
}
|
|
291
|
-
}
|
|
292
|
-
|
|
293
|
-
function buildStorageConfig(storage: string): string {
|
|
294
|
-
switch (storage) {
|
|
295
|
-
case "local":
|
|
296
|
-
return `localAdapter({ directory: './public/uploads', serveFrom: '/uploads' })`;
|
|
297
|
-
case "s3":
|
|
298
|
-
return `s3Adapter({ bucket: process.env.S3_BUCKET!, region: process.env.S3_REGION!, accessKeyId: process.env.S3_ACCESS_KEY_ID!, secretAccessKey: process.env.S3_SECRET_ACCESS_KEY! })`;
|
|
299
|
-
case "b2":
|
|
300
|
-
return `b2Adapter({ bucketId: process.env.B2_BUCKET_ID!, keyId: process.env.B2_KEY_ID!, applicationKey: process.env.B2_APPLICATION_KEY! })`;
|
|
301
|
-
case "cloudinary":
|
|
302
|
-
return `cloudinaryAdapter({ cloudName: process.env.CLOUDINARY_CLOUD_NAME!, apiKey: process.env.CLOUDINARY_API_KEY!, apiSecret: process.env.CLOUDINARY_API_SECRET! })`;
|
|
303
|
-
default:
|
|
304
|
-
return `localAdapter({ directory: './public/uploads', serveFrom: '/uploads' })`;
|
|
305
|
-
}
|
|
306
|
-
}
|
|
307
|
-
|
|
308
|
-
async function writeNextFiles(cwd: string, adminPath: string) {
|
|
309
|
-
const apiRoutePath = path.join(cwd, "app/dyrected/[...route]/route.ts");
|
|
310
|
-
if (!(await fs.pathExists(apiRoutePath))) {
|
|
311
|
-
await fs.outputFile(apiRoutePath, `export { GET, POST, PUT, PATCH, DELETE } from '@dyrected/next'\n`);
|
|
312
|
-
console.log(chalk.green("✔ app/dyrected/[...route]/route.ts written"));
|
|
313
|
-
}
|
|
314
|
-
|
|
315
|
-
const adminPagePath = path.join(cwd, `app/${adminPath}/[[...route]]/page.tsx`);
|
|
316
|
-
if (!(await fs.pathExists(adminPagePath))) {
|
|
317
|
-
await fs.outputFile(
|
|
318
|
-
adminPagePath,
|
|
319
|
-
`import { DyrectedAdmin } from '@dyrected/next/admin'
|
|
320
|
-
|
|
321
|
-
export default function AdminPage() {
|
|
322
|
-
return <DyrectedAdmin apiPath="/dyrected" />
|
|
323
|
-
}
|
|
324
|
-
`,
|
|
325
|
-
);
|
|
326
|
-
console.log(chalk.green(`✔ app/${adminPath}/[[...route]]/page.tsx written`));
|
|
327
|
-
}
|
|
328
|
-
}
|
|
329
|
-
|
|
330
|
-
async function writeNuxtFiles(cwd: string, adminPath: string) {
|
|
331
|
-
console.log(chalk.yellow("\n⚠ Add the module to your nuxt.config.ts:"));
|
|
332
|
-
console.log(
|
|
333
|
-
chalk.dim(`
|
|
334
|
-
modules: ['@dyrected/nuxt'],
|
|
335
|
-
`),
|
|
336
|
-
);
|
|
337
|
-
|
|
338
|
-
const adminPagePath = path.join(cwd, `pages/${adminPath}/[[...route]].vue`);
|
|
339
|
-
if (!(await fs.pathExists(adminPagePath))) {
|
|
340
|
-
await fs.outputFile(
|
|
341
|
-
adminPagePath,
|
|
342
|
-
`<template>
|
|
343
|
-
<ClientOnly>
|
|
344
|
-
<DyrectedAdmin basename="/${adminPath}" />
|
|
345
|
-
</ClientOnly>
|
|
346
|
-
</template>
|
|
347
|
-
|
|
348
|
-
<script setup lang="ts">
|
|
349
|
-
definePageMeta({
|
|
350
|
-
layout: false,
|
|
351
|
-
});
|
|
352
|
-
</script>
|
|
353
|
-
`,
|
|
354
|
-
);
|
|
355
|
-
console.log(chalk.green(`✔ pages/${adminPath}/[[...route]].vue written`));
|
|
356
|
-
}
|
|
357
|
-
}
|
|
358
|
-
|
|
359
|
-
function buildEnvTemplate(db: string, storage: string, framework: string): string {
|
|
360
|
-
const lines = [
|
|
361
|
-
`# Dyrected CMS — Environment Variables`,
|
|
362
|
-
`DATABASE_URL=${db === "mongodb" ? "mongodb://localhost:27017/dyrected" : "postgres://user:pass@localhost:5432/dyrected"}`,
|
|
363
|
-
`JWT_SECRET=change-me-32-characters-minimum`,
|
|
364
|
-
`ENCRYPTION_KEY=change-me-aes-256-key`,
|
|
365
|
-
``,
|
|
366
|
-
];
|
|
367
|
-
|
|
368
|
-
if (storage === "s3") {
|
|
369
|
-
lines.push(`S3_BUCKET=my-bucket`, `S3_REGION=us-east-1`, `S3_ACCESS_KEY_ID=`, `S3_SECRET_ACCESS_KEY=`);
|
|
370
|
-
} else if (storage === "b2") {
|
|
371
|
-
lines.push(`B2_BUCKET_ID=`, `B2_KEY_ID=`, `B2_APPLICATION_KEY=`);
|
|
372
|
-
} else if (storage === "cloudinary") {
|
|
373
|
-
lines.push(`CLOUDINARY_CLOUD_NAME=`, `CLOUDINARY_API_KEY=`, `CLOUDINARY_API_SECRET=`);
|
|
374
|
-
}
|
|
375
|
-
|
|
376
|
-
const prefix = framework === "next" ? "NEXT_PUBLIC_" : "NUXT_PUBLIC_";
|
|
377
|
-
|
|
378
|
-
lines.push(``, `${prefix}DYRECTED_URL=http://localhost:3000`, `${prefix}DYRECTED_API_KEY=local-dev`);
|
|
379
|
-
return lines.join("\n") + "\n";
|
|
380
|
-
}
|
|
381
|
-
|
|
382
|
-
// ─── generate:types ─────────────────────────────────────────────────────────
|
|
383
|
-
|
|
384
|
-
program
|
|
385
|
-
.command("generate:types")
|
|
386
|
-
.description("Generate TypeScript interfaces from your Dyrected schema")
|
|
387
|
-
.option("-u, --url <url>", "Base URL of your Dyrected API (Cloud or self-hosted)")
|
|
388
|
-
.option("-c, --config <path>", "Path to your dyrected.config.ts (Self-hosted)", "./dyrected.config.ts")
|
|
389
|
-
.option("-o, --output <path>", "Output file path", "./dyrected-types.ts")
|
|
390
|
-
.action(async (options) => {
|
|
391
|
-
try {
|
|
392
|
-
let schema: any;
|
|
393
|
-
if (options.url) {
|
|
394
|
-
console.log(chalk.blue(`Fetching schemas from ${options.url}/api/schemas...`));
|
|
395
|
-
const response = await fetch(`${options.url}/api/schemas`);
|
|
396
|
-
if (!response.ok) {
|
|
397
|
-
throw new Error(`Failed to fetch schemas: ${response.statusText}`);
|
|
398
|
-
}
|
|
399
|
-
schema = await response.json();
|
|
400
|
-
} else {
|
|
401
|
-
const configPath = path.resolve(process.cwd(), options.config);
|
|
402
|
-
if (await fs.pathExists(configPath)) {
|
|
403
|
-
console.log(chalk.blue(`Generating types from local config: ${configPath}...`));
|
|
404
|
-
const jiti = createJiti(configPath);
|
|
405
|
-
const configModule = (await jiti.import(configPath)) as any;
|
|
406
|
-
schema = configModule.default || configModule;
|
|
407
|
-
} else {
|
|
408
|
-
// Fallback to default localhost if no config found
|
|
409
|
-
const url = "http://localhost:3000";
|
|
410
|
-
console.log(chalk.blue(`No local config found. Fetching schemas from ${url}/api/schemas...`));
|
|
411
|
-
const response = await fetch(`${url}/api/schemas`);
|
|
412
|
-
if (!response.ok) {
|
|
413
|
-
throw new Error(`Failed to fetch schemas: ${response.statusText}`);
|
|
414
|
-
}
|
|
415
|
-
schema = await response.json();
|
|
416
|
-
}
|
|
417
|
-
}
|
|
418
|
-
|
|
419
|
-
if (!schema || !schema.collections) {
|
|
420
|
-
throw new Error("Invalid schema: collections missing.");
|
|
421
|
-
}
|
|
422
|
-
const code = generateTypes(schema);
|
|
423
|
-
const formattedCode = await prettier.format(code, { parser: "typescript" });
|
|
424
|
-
await fs.outputFile(path.resolve(process.cwd(), options.output), formattedCode);
|
|
425
|
-
|
|
426
|
-
console.log(chalk.green(`\nSuccess! Types generated at ${options.output}`));
|
|
427
|
-
} catch (error: any) {
|
|
428
|
-
console.error(chalk.red(`\nError: ${error.message}`));
|
|
429
|
-
process.exit(1);
|
|
430
|
-
}
|
|
431
|
-
});
|
|
432
|
-
|
|
433
|
-
function generateTypes(schema: any) {
|
|
434
|
-
let code = `/**
|
|
435
|
-
* This file was automatically generated by Dyrected CLI.
|
|
436
|
-
* DO NOT MODIFY IT BY HAND.
|
|
437
|
-
*/
|
|
438
|
-
|
|
439
|
-
export interface Media {
|
|
440
|
-
id: string;
|
|
441
|
-
filename: string;
|
|
442
|
-
filesize: number;
|
|
443
|
-
mimeType: string;
|
|
444
|
-
url: string;
|
|
445
|
-
width?: number;
|
|
446
|
-
height?: number;
|
|
447
|
-
createdAt: string;
|
|
448
|
-
updatedAt: string;
|
|
449
|
-
}
|
|
450
|
-
\n`;
|
|
451
|
-
|
|
452
|
-
for (const col of schema.collections) {
|
|
453
|
-
if (!col || !col.slug) continue;
|
|
454
|
-
const interfaceName = toPascalCase(col.slug);
|
|
455
|
-
|
|
456
|
-
// Skip if it's the base Media interface and we already have it
|
|
457
|
-
if (interfaceName === "Media") {
|
|
458
|
-
// We could merge fields here if we want, but usually base Media is enough
|
|
459
|
-
// For now, let's just add the custom fields to a separate interface or merge
|
|
460
|
-
code = code.replace("export interface Media {", `export interface MediaBase {`);
|
|
461
|
-
code = code.replace("export interface MediaBase {", `export interface Media {`);
|
|
462
|
-
}
|
|
463
|
-
|
|
464
|
-
const existingInterface = code.includes(`export interface ${interfaceName} {`);
|
|
465
|
-
if (existingInterface && interfaceName !== "Media") continue;
|
|
466
|
-
|
|
467
|
-
if (interfaceName === "Media") {
|
|
468
|
-
// If it's Media, we just want to add the extra fields to the existing interface
|
|
469
|
-
const extraFields = col.fields.filter(
|
|
470
|
-
(f: any) =>
|
|
471
|
-
!["filename", "filesize", "mimeType", "url", "width", "height", "createdAt", "updatedAt"].includes(f.name),
|
|
472
|
-
);
|
|
473
|
-
if (extraFields.length > 0) {
|
|
474
|
-
const insertionPoint = code.indexOf("}", code.indexOf("export interface Media {"));
|
|
475
|
-
const fieldsCode = extraFields
|
|
476
|
-
.map((f: any) => ` ${f.name}${f.required ? "" : "?"}: ${mapFieldType(f)};`)
|
|
477
|
-
.join("\n");
|
|
478
|
-
code = code.slice(0, insertionPoint) + fieldsCode + "\n" + code.slice(insertionPoint);
|
|
479
|
-
}
|
|
480
|
-
continue;
|
|
481
|
-
}
|
|
482
|
-
|
|
483
|
-
code += `export interface ${interfaceName} {\n`;
|
|
484
|
-
code += ` id: string;\n`;
|
|
485
|
-
for (const field of col.fields) {
|
|
486
|
-
if (field.name === "createdAt" || field.name === "updatedAt" || field.name === "id") continue;
|
|
487
|
-
code += ` ${field.name}${field.required ? "" : "?"}: ${mapFieldType(field)};\n`;
|
|
488
|
-
}
|
|
489
|
-
code += ` createdAt: string;\n`;
|
|
490
|
-
code += ` updatedAt: string;\n`;
|
|
491
|
-
code += `}\n\n`;
|
|
492
|
-
}
|
|
493
|
-
|
|
494
|
-
for (const glb of schema.globals) {
|
|
495
|
-
if (!glb || !glb.slug) continue;
|
|
496
|
-
const interfaceName = `${toPascalCase(glb.slug)}Global`;
|
|
497
|
-
code += `export interface ${interfaceName} {\n`;
|
|
498
|
-
for (const field of glb.fields) {
|
|
499
|
-
code += ` ${field.name}${field.required ? "" : "?"}: ${mapFieldType(field)};\n`;
|
|
500
|
-
}
|
|
501
|
-
code += `}\n\n`;
|
|
502
|
-
}
|
|
503
|
-
|
|
504
|
-
code += `export interface DyrectedSchema {\n`;
|
|
505
|
-
code += ` collections: {\n`;
|
|
506
|
-
for (const col of schema.collections) {
|
|
507
|
-
code += ` ${col.slug}: ${toPascalCase(col.slug)};\n`;
|
|
508
|
-
}
|
|
509
|
-
code += ` };\n`;
|
|
510
|
-
code += ` globals: {\n`;
|
|
511
|
-
for (const glb of schema.globals) {
|
|
512
|
-
code += ` ${glb.slug}: ${toPascalCase(glb.slug)}Global;\n`;
|
|
513
|
-
}
|
|
514
|
-
code += ` };\n`;
|
|
515
|
-
code += `}\n`;
|
|
516
|
-
|
|
517
|
-
return code;
|
|
518
|
-
}
|
|
519
|
-
|
|
520
|
-
function mapFieldType(field: any): string {
|
|
521
|
-
switch (field.type) {
|
|
522
|
-
case "text":
|
|
523
|
-
case "textarea":
|
|
524
|
-
case "richText":
|
|
525
|
-
case "date":
|
|
526
|
-
case "email":
|
|
527
|
-
case "url":
|
|
528
|
-
return "string";
|
|
529
|
-
case "number":
|
|
530
|
-
return "number";
|
|
531
|
-
case "boolean":
|
|
532
|
-
return "boolean";
|
|
533
|
-
case "select":
|
|
534
|
-
return field.options
|
|
535
|
-
? field.options.map((o: any) => `'${typeof o === "string" ? o : o.value}'`).join(" | ")
|
|
536
|
-
: "string";
|
|
537
|
-
case "relationship": {
|
|
538
|
-
const relationTo = field.relationTo || field.collection;
|
|
539
|
-
return relationTo === "media" ? "Media | string" : `${toPascalCase(relationTo)} | string`;
|
|
540
|
-
}
|
|
541
|
-
case "array":
|
|
542
|
-
if (field.fields) {
|
|
543
|
-
return `Array<{\n${field.fields.map((f: any) => ` ${f.name}${f.required ? "" : "?"}: ${mapFieldType(f)};`).join("\n")}\n }>`;
|
|
544
|
-
}
|
|
545
|
-
return "any[]";
|
|
546
|
-
case "blocks":
|
|
547
|
-
if (field.blocks) {
|
|
548
|
-
return `Array<${field.blocks.map((b: any) => `{\n blockType: '${b.slug}';\n${b.fields.map((f: any) => ` ${f.name}${f.required ? "" : "?"}: ${mapFieldType(f)};`).join("\n")}\n }`).join(" | ")}>`;
|
|
549
|
-
}
|
|
550
|
-
return "any[]";
|
|
551
|
-
case "object":
|
|
552
|
-
if (field.fields) {
|
|
553
|
-
return `{\n${field.fields.map((f: any) => ` ${f.name}${f.required ? "" : "?"}: ${mapFieldType(f)};`).join("\n")}\n }`;
|
|
554
|
-
}
|
|
555
|
-
return "any";
|
|
556
|
-
default:
|
|
557
|
-
return "any";
|
|
558
|
-
}
|
|
559
|
-
}
|
|
560
|
-
|
|
561
|
-
function toPascalCase(str: string) {
|
|
562
|
-
if (!str) return "Unknown";
|
|
563
|
-
return str.replace(/(^\w|-\w)/g, (m) => m.replace(/-/, "").toUpperCase());
|
|
564
|
-
}
|
|
565
|
-
|
|
566
|
-
// ─── sync:schema ─────────────────────────────────────────────────────────────
|
|
567
|
-
|
|
568
|
-
program
|
|
569
|
-
.command("sync:schema")
|
|
570
|
-
.description("Sync your local Dyrected schema with the Cloud dashboard")
|
|
571
|
-
.option("-k, --api-key <key>", "Your Dyrected API Key")
|
|
572
|
-
.option("-s, --site-id <id>", "Your Dyrected Site ID")
|
|
573
|
-
.option("-u, --url <url>", "Cloud API URL", "https://prodeegi-vault.onrender.com")
|
|
574
|
-
.option("-c, --config <path>", "Path to your dyrected.config.ts", "./dyrected.config.ts")
|
|
575
|
-
.option("--skip-on-error", "Do not exit with error if sync fails (useful for local builds)")
|
|
576
|
-
.action(async (options) => {
|
|
577
|
-
try {
|
|
578
|
-
const apiKey = options.apiKey || process.env.DYRECTED_API_KEY;
|
|
579
|
-
const siteId = options.siteId || process.env.DYRECTED_SITE_ID;
|
|
580
|
-
const apiUrl = options.url || process.env.DYRECTED_URL || "https://prodeegi-vault.onrender.com";
|
|
581
|
-
const configPath = path.resolve(process.cwd(), options.config);
|
|
582
|
-
|
|
583
|
-
const jiti = createJiti(configPath);
|
|
584
|
-
|
|
585
|
-
if (!apiKey || !siteId) {
|
|
586
|
-
console.warn(
|
|
587
|
-
chalk.yellow(
|
|
588
|
-
"\n⚠ Skipping schema sync: API Key or Site ID missing. (Required for Cloud sync, but optional for self-hosted builds)\n",
|
|
589
|
-
),
|
|
590
|
-
);
|
|
591
|
-
return;
|
|
592
|
-
}
|
|
593
|
-
|
|
594
|
-
if (!(await fs.pathExists(configPath))) {
|
|
595
|
-
throw new Error(`Config file not found at ${configPath}`);
|
|
596
|
-
}
|
|
597
|
-
|
|
598
|
-
console.log(chalk.blue(`Loading config from ${configPath}...`));
|
|
599
|
-
const configModule = (await jiti.import(configPath)) as any;
|
|
600
|
-
const config = configModule.default || configModule;
|
|
601
|
-
|
|
602
|
-
if (!config.collections) {
|
|
603
|
-
throw new Error("Invalid config: No collections found.");
|
|
604
|
-
}
|
|
605
|
-
|
|
606
|
-
console.log(chalk.blue(`Syncing schema to ${apiUrl}...`));
|
|
607
|
-
|
|
608
|
-
const response = await fetch(`${apiUrl}/cloud/workspaces/sites/${siteId}/schema/sync`, {
|
|
609
|
-
method: "POST",
|
|
610
|
-
headers: {
|
|
611
|
-
"Content-Type": "application/json",
|
|
612
|
-
Authorization: `Bearer ${apiKey}`,
|
|
613
|
-
"X-API-Key": apiKey,
|
|
614
|
-
},
|
|
615
|
-
body: JSON.stringify({
|
|
616
|
-
collections: config.collections,
|
|
617
|
-
globals: config.globals || [],
|
|
618
|
-
admin: config.admin || {},
|
|
619
|
-
}),
|
|
620
|
-
});
|
|
621
|
-
|
|
622
|
-
if (!response.ok) {
|
|
623
|
-
const error = await response.json().catch(() => ({ message: response.statusText }));
|
|
624
|
-
throw new Error(`Sync failed: ${error.message || response.statusText}`);
|
|
625
|
-
}
|
|
626
|
-
|
|
627
|
-
console.log(chalk.green(`\nSuccess! Schema synced successfully for site ${siteId}`));
|
|
628
|
-
} catch (error: any) {
|
|
629
|
-
if (options.skipOnError) {
|
|
630
|
-
console.warn(chalk.yellow(`\n⚠ Sync failed, but skipping error as requested: ${error.message}`));
|
|
631
|
-
return;
|
|
632
|
-
}
|
|
633
|
-
console.error(chalk.red(`\nError: ${error.message}`));
|
|
634
|
-
process.exit(1);
|
|
635
|
-
}
|
|
636
|
-
});
|
|
637
|
-
|
|
638
|
-
program.parse();
|
package/tsconfig.json
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"extends": "../../tsconfig.json",
|
|
3
|
-
"compilerOptions": {
|
|
4
|
-
"outDir": "./dist",
|
|
5
|
-
"rootDir": "./src",
|
|
6
|
-
"module": "NodeNext",
|
|
7
|
-
"moduleResolution": "NodeNext",
|
|
8
|
-
"paths": {
|
|
9
|
-
"@dyrected/core": ["../core/dist/index.d.ts"]
|
|
10
|
-
}
|
|
11
|
-
},
|
|
12
|
-
"include": ["src/**/*"],
|
|
13
|
-
"exclude": ["node_modules", "dist"]
|
|
14
|
-
}
|