@cedarjs/cli 2.2.0-rc.34 → 2.2.0

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.
Files changed (49) hide show
  1. package/dist/{rwfw.js → cfw.js} +11 -14
  2. package/dist/commands/consoleHandler.js +1 -1
  3. package/dist/commands/deploy/baremetal/baremetalHandler.js +1 -1
  4. package/dist/commands/deploy/serverlessHandler.js +1 -1
  5. package/dist/commands/destroy/scaffold/scaffoldHandler.js +1 -1
  6. package/dist/commands/generate/cell/cellHandler.js +1 -1
  7. package/dist/commands/generate/cell/templates/test.js.template +2 -2
  8. package/dist/commands/generate/component/templates/test.tsx.template +1 -1
  9. package/dist/commands/generate/dbAuth/dbAuth.js +1 -1
  10. package/dist/commands/generate/dbAuth/dbAuthHandler.js +1 -1
  11. package/dist/commands/generate/directive/directiveHandler.js +6 -16
  12. package/dist/commands/generate/directive/templates/transformer.directive.ts.template +1 -1
  13. package/dist/commands/generate/directive/templates/validator.directive.ts.template +1 -1
  14. package/dist/commands/generate/function/functionHandler.js +10 -35
  15. package/dist/commands/generate/function/templates/function.ts.template +3 -3
  16. package/dist/commands/generate/function/templates/scenarios.ts.template +1 -1
  17. package/dist/commands/generate/function/templates/test.ts.template +2 -2
  18. package/dist/commands/generate/helpers.js +1 -1
  19. package/dist/commands/generate/job/jobHandler.js +26 -35
  20. package/dist/commands/generate/job/templates/scenarios.ts.template +1 -1
  21. package/dist/commands/generate/layout/templates/test.tsx.template +1 -1
  22. package/dist/commands/generate/model/model.js +1 -1
  23. package/dist/commands/generate/page/templates/test.tsx.template +1 -1
  24. package/dist/commands/generate/scaffold/scaffoldHandler.js +1 -1
  25. package/dist/commands/generate/sdl/sdlHandler.js +14 -47
  26. package/dist/commands/generate/service/serviceHandler.js +18 -21
  27. package/dist/commands/generate/service/templates/test.ts.template +2 -2
  28. package/dist/commands/generate/yargsCommandHelpers.js +12 -4
  29. package/dist/commands/generate/yargsHandlerHelpers.js +38 -14
  30. package/dist/commands/prerenderHandler.js +2 -2
  31. package/dist/commands/record.js +1 -1
  32. package/dist/commands/setup/auth/auth.js +1 -1
  33. package/dist/commands/setup/cache/cacheHandler.js +1 -1
  34. package/dist/commands/setup/deploy/providers/baremetalHandler.js +1 -1
  35. package/dist/commands/setup/deploy/providers/netlifyHandler.js +1 -1
  36. package/dist/commands/setup/deploy/providers/serverless.js +1 -1
  37. package/dist/commands/setup/deploy/providers/serverlessHandler.js +3 -3
  38. package/dist/commands/setup/deploy/providers/vercelHandler.js +1 -1
  39. package/dist/commands/setup/deploy/templates/baremetal.js +1 -1
  40. package/dist/commands/setup/docker/dockerHandler.js +1 -1
  41. package/dist/commands/setup/tsconfig/tsconfigHandler.js +1 -1
  42. package/dist/commands/setup/uploads/uploadsHandler.js +3 -3
  43. package/dist/commands/upgrade.js +269 -13
  44. package/dist/lib/exit.js +5 -9
  45. package/dist/lib/index.js +1 -1
  46. package/dist/lib/pluralHelpers.js +1 -1
  47. package/dist/lib/schemaHelpers.js +1 -1
  48. package/package.json +26 -25
  49. /package/dist/lib/{rwPluralize.js → cedarPluralize.js} +0 -0
@@ -1,9 +1,12 @@
1
- import path from "path";
1
+ import { builtinModules } from "node:module";
2
+ import os from "node:os";
3
+ import path from "node:path";
2
4
  import { ListrEnquirerPromptAdapter } from "@listr2/prompt-adapter-enquirer";
3
5
  import execa from "execa";
4
6
  import fs from "fs-extra";
5
7
  import latestVersion from "latest-version";
6
8
  import { Listr } from "listr2";
9
+ import semver from "semver";
7
10
  import { terminalLink } from "termi-link";
8
11
  import { recordTelemetryAttributes } from "@cedarjs/cli-helpers";
9
12
  import { getConfig } from "@cedarjs/project-config";
@@ -41,6 +44,11 @@ const builder = (yargs) => {
41
44
  describe: "Skip prompts and use defaults",
42
45
  default: false,
43
46
  type: "boolean"
47
+ }).option("force", {
48
+ alias: "f",
49
+ describe: "Force upgrade even if pre-upgrade checks fail",
50
+ default: false,
51
+ type: "boolean"
44
52
  }).epilogue(
45
53
  `Also see the ${terminalLink(
46
54
  "CedarJS CLI Reference for the upgrade command",
@@ -70,20 +78,23 @@ const validateTag = (tag) => {
70
78
  }
71
79
  return tag;
72
80
  };
73
- const handler = async ({ dryRun, tag, verbose, dedupe, yes }) => {
81
+ const handler = async ({ dryRun, tag, verbose, dedupe, yes, force }) => {
74
82
  recordTelemetryAttributes({
75
83
  command: "upgrade",
76
84
  dryRun,
77
85
  tag,
78
86
  verbose,
79
87
  dedupe,
80
- yes
88
+ yes,
89
+ force
81
90
  });
91
+ let preUpgradeMessage = "";
92
+ let preUpgradeError = "";
82
93
  const tasks = new Listr(
83
94
  [
84
95
  {
85
96
  title: "Confirm upgrade",
86
- task: async (ctx, task) => {
97
+ task: async (_ctx, task) => {
87
98
  if (yes) {
88
99
  task.skip("Skipping confirmation prompt because of --yes flag.");
89
100
  return;
@@ -117,38 +128,55 @@ const handler = async ({ dryRun, tag, verbose, dedupe, yes }) => {
117
128
  title: "Checking latest version",
118
129
  task: async (ctx) => setLatestVersionToContext(ctx, tag)
119
130
  },
131
+ {
132
+ title: "Running pre-upgrade scripts",
133
+ task: async (ctx, task) => {
134
+ await runPreUpgradeScripts(ctx, task, { verbose, force });
135
+ if (ctx.preUpgradeMessage) {
136
+ preUpgradeMessage = ctx.preUpgradeMessage;
137
+ }
138
+ if (ctx.preUpgradeError) {
139
+ preUpgradeError = ctx.preUpgradeError;
140
+ }
141
+ },
142
+ enabled: (ctx) => !!ctx.versionToUpgradeTo
143
+ },
120
144
  {
121
145
  title: "Updating your CedarJS version",
122
146
  task: (ctx) => updateCedarJSDepsForAllSides(ctx, { dryRun, verbose }),
123
- enabled: (ctx) => !!ctx.versionToUpgradeTo
147
+ enabled: (ctx) => !!ctx.versionToUpgradeTo && !ctx.preUpgradeError
124
148
  },
125
149
  {
126
150
  title: "Updating other packages in your package.json(s)",
127
151
  task: (ctx) => updatePackageVersionsFromTemplate(ctx, { dryRun, verbose }),
128
- enabled: (ctx) => ctx.versionToUpgradeTo?.includes("canary")
152
+ enabled: (ctx) => ctx.versionToUpgradeTo?.includes("canary") && !ctx.preUpgradeError
129
153
  },
130
154
  {
131
155
  title: "Downloading yarn patches",
132
156
  task: (ctx) => downloadYarnPatches(ctx, { dryRun, verbose }),
133
- enabled: (ctx) => ctx.versionToUpgradeTo?.includes("canary")
157
+ enabled: (ctx) => ctx.versionToUpgradeTo?.includes("canary") && !ctx.preUpgradeError
134
158
  },
135
159
  {
136
160
  title: "Removing CLI cache",
137
- task: (ctx) => removeCliCache(ctx, { dryRun, verbose })
161
+ task: (ctx) => removeCliCache(ctx, { dryRun, verbose }),
162
+ enabled: (ctx) => !ctx.preUpgradeError
138
163
  },
139
164
  {
140
165
  title: "Running yarn install",
141
166
  task: (ctx) => yarnInstall(ctx, { dryRun, verbose }),
167
+ enabled: (ctx) => !ctx.preUpgradeError,
142
168
  skip: () => dryRun
143
169
  },
144
170
  {
145
171
  title: "Refreshing the Prisma client",
146
172
  task: (_ctx, task) => refreshPrismaClient(task, { verbose }),
173
+ enabled: (ctx) => !ctx.preUpgradeError,
147
174
  skip: () => dryRun
148
175
  },
149
176
  {
150
177
  title: "De-duplicating dependencies",
151
178
  skip: () => dryRun || !dedupe,
179
+ enabled: (ctx) => !ctx.preUpgradeError,
152
180
  task: (_ctx, task) => dedupeDeps(task, { verbose })
153
181
  },
154
182
  {
@@ -208,6 +236,21 @@ const handler = async ({ dryRun, tag, verbose, dedupe, yes }) => {
208
236
  }
209
237
  );
210
238
  await tasks.run();
239
+ if (preUpgradeError) {
240
+ console.error("");
241
+ console.error(` \u274C ${c.error("Pre-upgrade Error:")}
242
+ `);
243
+ console.error(" " + preUpgradeError.replace(/\n/g, "\n "));
244
+ if (!force) {
245
+ process.exit(1);
246
+ }
247
+ }
248
+ if (preUpgradeMessage) {
249
+ console.log("");
250
+ console.log(` \u{1F4E3} ${c.info("Pre-upgrade Message:")}
251
+ `);
252
+ console.log(" " + preUpgradeMessage.replace(/\n/g, "\n "));
253
+ }
211
254
  };
212
255
  async function yarnInstall({ verbose }) {
213
256
  try {
@@ -249,16 +292,19 @@ async function setLatestVersionToContext(ctx, tag) {
249
292
  throw new Error("Could not find the latest version");
250
293
  }
251
294
  }
252
- function updatePackageJsonVersion(pkgPath, version, { dryRun, verbose }) {
295
+ function updatePackageJsonVersion(pkgPath, version, task, { dryRun, verbose }) {
253
296
  const pkg = JSON.parse(
254
297
  fs.readFileSync(path.join(pkgPath, "package.json"), "utf-8")
255
298
  );
299
+ const messages = [];
256
300
  if (pkg.dependencies) {
257
301
  for (const depName of Object.keys(pkg.dependencies).filter(
258
302
  (x) => x.startsWith("@cedarjs/") && x !== "@cedarjs/studio"
259
303
  )) {
260
304
  if (verbose || dryRun) {
261
- console.log(` - ${depName}: ${pkg.dependencies[depName]} => ${version}`);
305
+ messages.push(
306
+ ` - ${depName}: ${pkg.dependencies[depName]} => ${version}`
307
+ );
262
308
  }
263
309
  pkg.dependencies[depName] = `${version}`;
264
310
  }
@@ -268,13 +314,16 @@ function updatePackageJsonVersion(pkgPath, version, { dryRun, verbose }) {
268
314
  (x) => x.startsWith("@cedarjs/") && x !== "@cedarjs/studio"
269
315
  )) {
270
316
  if (verbose || dryRun) {
271
- console.log(
317
+ messages.push(
272
318
  ` - ${depName}: ${pkg.devDependencies[depName]} => ${version}`
273
319
  );
274
320
  }
275
321
  pkg.devDependencies[depName] = `${version}`;
276
322
  }
277
323
  }
324
+ if (messages.length > 0) {
325
+ task.title = task.title + "\n" + messages.join("\n");
326
+ }
278
327
  if (!dryRun) {
279
328
  fs.writeFileSync(
280
329
  path.join(pkgPath, "package.json"),
@@ -296,7 +345,12 @@ function updateCedarJSDepsForAllSides(ctx, options) {
296
345
  const pkgJsonPath = path.join(basePath, "package.json");
297
346
  return {
298
347
  title: `Updating ${pkgJsonPath}`,
299
- task: () => updatePackageJsonVersion(basePath, ctx.versionToUpgradeTo, options),
348
+ task: (_ctx, task) => updatePackageJsonVersion(
349
+ basePath,
350
+ ctx.versionToUpgradeTo,
351
+ task,
352
+ options
353
+ ),
300
354
  skip: () => !fs.existsSync(pkgJsonPath)
301
355
  };
302
356
  })
@@ -433,7 +487,7 @@ async function refreshPrismaClient(task, { verbose }) {
433
487
  console.log(c.error(e.message));
434
488
  }
435
489
  }
436
- const dedupeDeps = async (task, { verbose }) => {
490
+ const dedupeDeps = async (_task, { verbose }) => {
437
491
  try {
438
492
  await execa("yarn dedupe", {
439
493
  shell: true,
@@ -448,10 +502,212 @@ const dedupeDeps = async (task, { verbose }) => {
448
502
  }
449
503
  await yarnInstall({ verbose });
450
504
  };
505
+ async function runPreUpgradeScripts(ctx, task, { verbose, force }) {
506
+ if (!ctx.versionToUpgradeTo) {
507
+ return;
508
+ }
509
+ const version = ctx.versionToUpgradeTo;
510
+ const parsed = semver.parse(version);
511
+ const baseUrl = "https://raw.githubusercontent.com/cedarjs/cedar/main/upgrade-scripts/";
512
+ const manifestUrl = `${baseUrl}manifest.json`;
513
+ let manifest = [];
514
+ try {
515
+ const res = await fetch(manifestUrl);
516
+ if (res.status === 200) {
517
+ manifest = await res.json();
518
+ } else {
519
+ if (verbose) {
520
+ console.log("No upgrade script manifest found.");
521
+ }
522
+ }
523
+ } catch (e) {
524
+ if (verbose) {
525
+ console.log("Failed to fetch upgrade script manifest", e);
526
+ }
527
+ }
528
+ if (!Array.isArray(manifest) || manifest.length === 0) {
529
+ return;
530
+ }
531
+ const checkLevels = [];
532
+ if (parsed) {
533
+ checkLevels.push({
534
+ id: "exact",
535
+ candidates: [`${version}.ts`, `${version}/index.ts`]
536
+ });
537
+ checkLevels.push({
538
+ id: "patch",
539
+ candidates: [
540
+ `${parsed.major}.${parsed.minor}.x.ts`,
541
+ `${parsed.major}.${parsed.minor}.x/index.ts`
542
+ ]
543
+ });
544
+ checkLevels.push({
545
+ id: "minor",
546
+ candidates: [`${parsed.major}.x.ts`, `${parsed.major}.x/index.ts`]
547
+ });
548
+ } else {
549
+ checkLevels.push({
550
+ id: "tag",
551
+ candidates: [`${version}.ts`, `${version}/index.ts`]
552
+ });
553
+ }
554
+ const scriptsToRun = [];
555
+ for (const level of checkLevels) {
556
+ for (const candidate of level.candidates) {
557
+ if (manifest.includes(candidate)) {
558
+ scriptsToRun.push(candidate);
559
+ break;
560
+ }
561
+ }
562
+ }
563
+ if (scriptsToRun.length === 0) {
564
+ if (verbose) {
565
+ console.log(`No upgrade scripts found for ${version}`);
566
+ }
567
+ return;
568
+ }
569
+ ctx.preUpgradeMessage = "";
570
+ ctx.preUpgradeError = "";
571
+ for (const scriptName of scriptsToRun) {
572
+ task.output = `Found upgrade check script: ${scriptName}. Downloading...`;
573
+ const tempDir = await fs.mkdtemp(path.join(os.tmpdir(), "cedar-upgrade-"));
574
+ const scriptPath = path.join(tempDir, "script.ts");
575
+ const isDirectoryScript = scriptName.includes("/");
576
+ if (isDirectoryScript) {
577
+ const dirName = scriptName.split("/")[0];
578
+ const githubApiUrl = `https://api.github.com/repos/cedarjs/cedar/contents/upgrade-scripts/${dirName}`;
579
+ try {
580
+ const dirRes = await fetch(githubApiUrl, {
581
+ headers: {
582
+ Accept: "application/vnd.github.v3+json"
583
+ }
584
+ });
585
+ if (dirRes.status !== 200) {
586
+ throw new Error(
587
+ `Failed to fetch directory contents: ${dirRes.statusText}`
588
+ );
589
+ }
590
+ const files = await dirRes.json();
591
+ for (const file of files) {
592
+ if (file.type === "file") {
593
+ task.output = `Downloading ${file.name}...`;
594
+ const fileRes = await fetch(file.download_url);
595
+ if (fileRes.status !== 200) {
596
+ throw new Error(`Failed to download ${file.name}`);
597
+ }
598
+ const fileContent = await fileRes.text();
599
+ const filePath = path.join(tempDir, file.name);
600
+ await fs.writeFile(filePath, fileContent);
601
+ if (file.name === "index.ts") {
602
+ await fs.rename(filePath, scriptPath);
603
+ }
604
+ }
605
+ }
606
+ } catch (e) {
607
+ if (verbose) {
608
+ console.error(e);
609
+ }
610
+ throw new Error(
611
+ `Failed to download upgrade script directory from ${githubApiUrl}`
612
+ );
613
+ }
614
+ } else {
615
+ const scriptUrl = `${baseUrl}${scriptName}`;
616
+ try {
617
+ const res = await fetch(scriptUrl);
618
+ if (res.status !== 200) {
619
+ throw new Error(`Failed to download script: ${res.statusText}`);
620
+ }
621
+ const scriptContent2 = await res.text();
622
+ await fs.writeFile(scriptPath, scriptContent2);
623
+ } catch (e) {
624
+ if (verbose) {
625
+ console.error(e);
626
+ }
627
+ throw new Error(`Failed to download upgrade script from ${scriptUrl}`);
628
+ }
629
+ }
630
+ const scriptContent = await fs.readFile(scriptPath, "utf8");
631
+ const deps = extractDependencies(scriptContent);
632
+ if (deps.length > 0) {
633
+ const depList = deps.join(", ");
634
+ task.output = `Installing dependencies for ${scriptName}: ${depList}...`;
635
+ await fs.writeJson(path.join(tempDir, "package.json"), {
636
+ name: "pre-upgrade-script",
637
+ version: "0.0.0",
638
+ dependencies: {}
639
+ });
640
+ await execa("yarn", ["add", ...deps], { cwd: tempDir });
641
+ }
642
+ task.output = `Running pre-upgrade script: ${scriptName}...`;
643
+ let shouldCleanup = true;
644
+ try {
645
+ const { stdout } = await execa(
646
+ "node",
647
+ ["script.ts", "--verbose", verbose, "--force", force],
648
+ { cwd: tempDir }
649
+ );
650
+ if (stdout) {
651
+ if (ctx.preUpgradeMessage) {
652
+ ctx.preUpgradeMessage += "\n\n";
653
+ }
654
+ ctx.preUpgradeMessage += `
655
+ ${stdout}`;
656
+ }
657
+ } catch (e) {
658
+ const errorOutput = e.stdout || e.stderr || e.message || "";
659
+ const errorMessage = `Pre-upgrade check ${scriptName} failed:
660
+ ${errorOutput}`;
661
+ if (ctx.preUpgradeError) {
662
+ ctx.preUpgradeError += "\n\n";
663
+ }
664
+ ctx.preUpgradeError += errorMessage;
665
+ if (!force) {
666
+ await fs.remove(tempDir);
667
+ shouldCleanup = false;
668
+ return;
669
+ }
670
+ } finally {
671
+ if (shouldCleanup) {
672
+ await fs.remove(tempDir);
673
+ }
674
+ }
675
+ }
676
+ }
677
+ const extractDependencies = (content) => {
678
+ const deps = /* @__PURE__ */ new Map();
679
+ const commentRegex = /\/\/\s*@dependency:\s*(\S+)/g;
680
+ let match;
681
+ while ((match = commentRegex.exec(content)) !== null) {
682
+ const spec = match[1];
683
+ const nameMatch = spec.match(/^(@?[^@\s]+)(?:@.+)?$/);
684
+ if (nameMatch) {
685
+ deps.set(nameMatch[1], spec);
686
+ }
687
+ }
688
+ const importRegex = /(?:import|from)\s*\(?['"]([^'"]+)['"]\)?/g;
689
+ while ((match = importRegex.exec(content)) !== null) {
690
+ let name = match[1];
691
+ if (name.startsWith(".") || name.startsWith("/") || name.startsWith("node:") || builtinModules.includes(name)) {
692
+ continue;
693
+ }
694
+ const parts = name.split("/");
695
+ if (name.startsWith("@") && parts.length >= 2) {
696
+ name = parts.slice(0, 2).join("/");
697
+ } else if (parts.length >= 1) {
698
+ name = parts[0];
699
+ }
700
+ if (!deps.has(name)) {
701
+ deps.set(name, name);
702
+ }
703
+ }
704
+ return Array.from(deps.values());
705
+ };
451
706
  export {
452
707
  builder,
453
708
  command,
454
709
  description,
455
710
  handler,
711
+ runPreUpgradeScripts,
456
712
  validateTag
457
713
  };
package/dist/lib/exit.js CHANGED
@@ -5,16 +5,12 @@ import {
5
5
  recordTelemetryAttributes,
6
6
  recordTelemetryError
7
7
  } from "@cedarjs/cli-helpers";
8
+ const discordLink = terminalLink("Discord", "https://cedarjs.com/discord");
9
+ const githubLink = terminalLink("GitHub", "https://github.com/cedarjs/cedar");
8
10
  const DEFAULT_ERROR_EPILOGUE = [
9
11
  "Need help?",
10
- ` - Not sure about something or need advice? Reach out on our ${terminalLink(
11
- "Forum",
12
- "https://community.redwoodjs.com/"
13
- )}`,
14
- ` - Think you've found a bug? Open an issue on our ${terminalLink(
15
- "GitHub",
16
- "https://github.com/cedarjs/cedar"
17
- )}`
12
+ ` - Not sure about something or need advice? Reach out on our ${discordLink}`,
13
+ ` - Think you've found a bug? Open an issue on our ${githubLink}`
18
14
  ].join("\n");
19
15
  function exitWithError(error, { exitCode, message, epilogue, includeEpilogue, includeReferenceCode } = {}) {
20
16
  exitCode ??= error?.exitCode ?? 1;
@@ -23,7 +19,7 @@ function exitWithError(error, { exitCode, message, epilogue, includeEpilogue, in
23
19
  includeReferenceCode ??= true;
24
20
  message ??= error.stack ?? (error.toString() || "Unknown error");
25
21
  const errorReferenceCode = uuidv4();
26
- const line = ansis.red("-".repeat(process.stderr.columns));
22
+ const line = ansis.red("-".repeat(process.stderr.columns - 4));
27
23
  const content = !includeEpilogue ? message : [
28
24
  "",
29
25
  line,
package/dist/lib/index.js CHANGED
@@ -17,9 +17,9 @@ import {
17
17
  resolveFile as internalResolveFile,
18
18
  findUp
19
19
  } from "@cedarjs/project-config";
20
+ import { pluralize, singularize } from "./cedarPluralize.js";
20
21
  import c from "./colors.js";
21
22
  import { addFileToRollback } from "./rollback.js";
22
- import { pluralize, singularize } from "./rwPluralize.js";
23
23
  const { memoize, template } = lodash;
24
24
  const nameVariants = (name) => {
25
25
  const normalizedName = pascalcase(paramCase(singularize(name)));
@@ -1,5 +1,5 @@
1
1
  import prompts from "prompts";
2
- import { isSingular, isPlural, addSingularPlural } from "./rwPluralize.js";
2
+ import { isSingular, isPlural, addSingularPlural } from "./cedarPluralize.js";
3
3
  const isWordPluralizable = (word) => {
4
4
  return isPlural(word) !== isSingular(word);
5
5
  };
@@ -1,7 +1,7 @@
1
1
  import prismaInternals from "@prisma/internals";
2
2
  import { getSchemaPath } from "@cedarjs/project-config";
3
+ import { singularize, isPlural } from "./cedarPluralize.js";
3
4
  import { ensureUniquePlural } from "./pluralHelpers.js";
4
- import { singularize, isPlural } from "./rwPluralize.js";
5
5
  import { getPaths } from "./index.js";
6
6
  const { getConfig, getDMMF, getSchemaWithPath } = prismaInternals;
7
7
  const schemaMemo = {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cedarjs/cli",
3
- "version": "2.2.0-rc.34",
3
+ "version": "2.2.0",
4
4
  "description": "The CedarJS Command Line",
5
5
  "repository": {
6
6
  "type": "git",
@@ -11,9 +11,9 @@
11
11
  "type": "module",
12
12
  "bin": {
13
13
  "cedarjs": "./dist/index.js",
14
+ "cfw": "./dist/cfw.js",
14
15
  "redwood": "./dist/index.js",
15
- "rw": "./dist/index.js",
16
- "rwfw": "./dist/rwfw.js"
16
+ "rw": "./dist/index.js"
17
17
  },
18
18
  "files": [
19
19
  "dist"
@@ -23,7 +23,7 @@
23
23
  "build:pack": "yarn pack -o cedarjs-cli.tgz",
24
24
  "build:watch": "nodemon --watch src --ext \"js,jsx,ts,tsx,template\" --ignore dist --exec \"yarn build && yarn fix:permissions\"",
25
25
  "dev": "RWJS_CWD=../../__fixtures__/example-todo-main node dist/index.js",
26
- "fix:permissions": "chmod +x dist/index.js dist/rwfw.js",
26
+ "fix:permissions": "chmod +x dist/index.js dist/cfw.js",
27
27
  "prepublishOnly": "yarn build",
28
28
  "test": "vitest run",
29
29
  "test:watch": "vitest watch"
@@ -31,15 +31,15 @@
31
31
  "dependencies": {
32
32
  "@babel/preset-typescript": "7.28.5",
33
33
  "@babel/runtime-corejs3": "7.28.4",
34
- "@cedarjs/api-server": "2.2.0-rc.34",
35
- "@cedarjs/cli-helpers": "2.2.0-rc.34",
36
- "@cedarjs/fastify-web": "2.2.0-rc.34",
37
- "@cedarjs/internal": "2.2.0-rc.34",
38
- "@cedarjs/prerender": "2.2.0-rc.34",
39
- "@cedarjs/project-config": "2.2.0-rc.34",
40
- "@cedarjs/structure": "2.2.0-rc.34",
41
- "@cedarjs/telemetry": "2.2.0-rc.34",
42
- "@cedarjs/web-server": "2.2.0-rc.34",
34
+ "@cedarjs/api-server": "2.2.0",
35
+ "@cedarjs/cli-helpers": "2.2.0",
36
+ "@cedarjs/fastify-web": "2.2.0",
37
+ "@cedarjs/internal": "2.2.0",
38
+ "@cedarjs/prerender": "2.2.0",
39
+ "@cedarjs/project-config": "2.2.0",
40
+ "@cedarjs/structure": "2.2.0",
41
+ "@cedarjs/telemetry": "2.2.0",
42
+ "@cedarjs/web-server": "2.2.0",
43
43
  "@listr2/prompt-adapter-enquirer": "2.0.16",
44
44
  "@opentelemetry/api": "1.8.0",
45
45
  "@opentelemetry/core": "1.22.0",
@@ -48,23 +48,23 @@
48
48
  "@opentelemetry/sdk-trace-node": "1.22.0",
49
49
  "@opentelemetry/semantic-conventions": "1.22.0",
50
50
  "@prisma/internals": "6.19.1",
51
- "ansis": "4.1.0",
51
+ "ansis": "4.2.0",
52
52
  "archiver": "7.0.1",
53
53
  "boxen": "5.1.2",
54
54
  "camelcase": "6.3.0",
55
55
  "change-case": "4.1.2",
56
- "ci-info": "4.0.0",
56
+ "ci-info": "4.3.1",
57
57
  "concurrently": "8.2.2",
58
- "configstore": "7.0.0",
59
- "core-js": "3.42.0",
58
+ "configstore": "7.1.0",
59
+ "core-js": "3.47.0",
60
60
  "cross-env": "7.0.3",
61
61
  "decamelize": "6.0.1",
62
62
  "dotenv-defaults": "5.0.2",
63
63
  "enquirer": "2.4.1",
64
- "envinfo": "7.14.0",
64
+ "envinfo": "7.21.0",
65
65
  "execa": "5.1.1",
66
66
  "fast-glob": "3.3.3",
67
- "fs-extra": "11.2.0",
67
+ "fs-extra": "11.3.3",
68
68
  "humanize-string": "2.1.0",
69
69
  "jscodeshift": "17.0.0",
70
70
  "latest-version": "9.0.0",
@@ -76,14 +76,14 @@
76
76
  "prettier": "3.6.2",
77
77
  "prisma": "6.19.1",
78
78
  "prompts": "2.4.2",
79
- "rimraf": "6.0.1",
80
- "semver": "7.6.3",
81
- "smol-toml": "1.3.4",
79
+ "rimraf": "6.1.2",
80
+ "semver": "7.7.3",
81
+ "smol-toml": "1.6.0",
82
82
  "string-env-interpolation": "1.0.1",
83
- "systeminformation": "5.27.14",
83
+ "systeminformation": "5.27.17",
84
84
  "termi-link": "1.1.0",
85
85
  "title-case": "3.0.3",
86
- "unionfs": "4.5.4",
86
+ "unionfs": "4.6.0",
87
87
  "uuid": "10.0.0",
88
88
  "vite-node": "3.2.4",
89
89
  "yargs": "17.7.2"
@@ -94,6 +94,7 @@
94
94
  "@types/archiver": "^6",
95
95
  "memfs": "4.51.1",
96
96
  "node-ssh": "13.2.1",
97
+ "ts-dedent": "2.2.0",
97
98
  "tsx": "4.21.0",
98
99
  "typescript": "5.9.3",
99
100
  "vitest": "3.2.4"
@@ -101,5 +102,5 @@
101
102
  "publishConfig": {
102
103
  "access": "public"
103
104
  },
104
- "gitHead": "406fc59c483c865428ad7ba0b5166364973f2377"
105
+ "gitHead": "9a8306e575225c25573303a8c80c57b2ab09fbd5"
105
106
  }
File without changes