@reliverse/dler 1.7.124 → 1.7.126

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 (52) hide show
  1. package/bin/impl/auth/generators/auth-config.d.ts +2 -2
  2. package/bin/impl/auth/generators/auth-config.js +2 -2
  3. package/bin/impl/auth/impl/init.d.ts +1 -1
  4. package/bin/impl/auth/impl/migrate.js +5 -4
  5. package/bin/impl/build/binary-flow.js +1 -1
  6. package/bin/impl/build/impl.d.ts +1 -1
  7. package/bin/impl/build/impl.js +1 -1
  8. package/bin/impl/build/library-flow.js +1 -1
  9. package/bin/impl/build/regular-flow.js +1 -1
  10. package/bin/impl/config/constants.d.ts +1 -1
  11. package/bin/impl/config/constants.js +1 -1
  12. package/bin/impl/config/def-utils.js +3 -3
  13. package/bin/impl/config/detect.js +1 -1
  14. package/bin/impl/config/prepare.js +1 -1
  15. package/bin/impl/init/mm-deprecated/drizzle/manageDrizzleSchema.js +1 -1
  16. package/bin/impl/init/mm-deprecated/feature-add.js +2 -2
  17. package/bin/impl/init/mm-deprecated/feature-rm.js +5 -5
  18. package/bin/impl/init/use-template/cp-impl.js +1 -1
  19. package/bin/impl/init/use-template/cp-modules/git-deploy-prompts/git.js +1 -3
  20. package/bin/impl/login/login-impl.js +7 -9
  21. package/bin/impl/merge/mod.js +1 -1
  22. package/bin/impl/migrate/codemods/anything-bun.js +1 -1
  23. package/bin/impl/providers/better-t-stack/helpers/database-providers/mongodb-atlas-setup.js +8 -7
  24. package/bin/impl/providers/better-t-stack/helpers/database-providers/neon-setup.js +9 -8
  25. package/bin/impl/providers/better-t-stack/helpers/database-providers/prisma-postgres-setup.js +9 -9
  26. package/bin/impl/providers/better-t-stack/helpers/database-providers/turso-setup.js +21 -21
  27. package/bin/impl/providers/better-t-stack/helpers/project-generation/install-dependencies.js +4 -4
  28. package/bin/impl/providers/better-t-stack/helpers/setup/db-setup.js +3 -3
  29. package/bin/impl/providers/better-t-stack/helpers/setup/starlight-setup.js +4 -4
  30. package/bin/impl/providers/better-t-stack/helpers/setup/tauri-setup.js +4 -4
  31. package/bin/impl/providers/better-t-stack/packed/addons.js +1 -1
  32. package/bin/impl/providers/better-t-stack/packed/api.js +2 -2
  33. package/bin/impl/providers/better-t-stack/packed/auth.js +3 -3
  34. package/bin/impl/providers/better-t-stack/packed/backend.js +1 -1
  35. package/bin/impl/providers/better-t-stack/packed/examples.js +3 -3
  36. package/bin/impl/providers/better-t-stack/packed/frontend.js +6 -6
  37. package/bin/impl/providers/better-t-stack/types.d.ts +8 -8
  38. package/bin/impl/providers/better-t-stack/utils/sponsors.js +4 -4
  39. package/bin/impl/pub/impl.d.ts +1 -1
  40. package/bin/impl/pub/impl.js +1 -1
  41. package/bin/impl/pub/pub-library.js +6 -2
  42. package/bin/impl/pub/pub-regular.js +6 -2
  43. package/bin/impl/rempts/cmd.js +7 -7
  44. package/bin/impl/utils/agg/agg-3.js +1 -1
  45. package/bin/impl/utils/downloading/downloadI18nFiles.js +4 -4
  46. package/bin/impl/utils/downloading/downloadRepo.js +6 -6
  47. package/bin/impl/utils/prompts/askUsernameFrontend.js +1 -2
  48. package/bin/mod.d.ts +0 -2
  49. package/bin/mod.js +0 -25
  50. package/package.json +7 -7
  51. package/bin/impl/utils/spinner.d.ts +0 -245
  52. package/bin/impl/utils/spinner.js +0 -370
@@ -2,7 +2,7 @@ import os from "node:os";
2
2
  import path from "node:path";
3
3
  import { re } from "@reliverse/relico";
4
4
  import { relinka } from "@reliverse/relinka";
5
- import { cancel, confirm, isCancel, select, spinner, text } from "@reliverse/rempts";
5
+ import { cancel, confirm, createSpinner, isCancel, select, text } from "@reliverse/rempts";
6
6
  import { $ } from "execa";
7
7
  import {
8
8
  addEnvVariablesToFile
@@ -20,20 +20,20 @@ async function isTursoLoggedIn() {
20
20
  }
21
21
  }
22
22
  async function loginToTurso() {
23
- const s = spinner({
23
+ const s = createSpinner({
24
24
  text: "Logging in to Turso..."
25
25
  });
26
26
  try {
27
27
  s.start("Logging in to Turso...");
28
28
  await $`turso auth login`;
29
- s.stop("Logged into Turso");
29
+ s.succeed("Logged into Turso");
30
30
  return true;
31
31
  } catch (_error) {
32
- s.stop(re.red("Failed to log in to Turso"));
32
+ s.fail(re.red("Failed to log in to Turso"));
33
33
  }
34
34
  }
35
35
  async function installTursoCLI(isMac) {
36
- const s = spinner({
36
+ const s = createSpinner({
37
37
  text: "Installing Turso CLI..."
38
38
  });
39
39
  try {
@@ -44,19 +44,19 @@ async function installTursoCLI(isMac) {
44
44
  const { stdout: installScript } = await $`curl -sSfL https://get.tur.so/install.sh`;
45
45
  await $`bash -c '${installScript}'`;
46
46
  }
47
- s.stop("Turso CLI installed");
47
+ s.succeed("Turso CLI installed");
48
48
  return true;
49
49
  } catch (error) {
50
50
  if (error instanceof Error && error.message.includes("User force closed")) {
51
- s.stop("Turso CLI installation cancelled");
51
+ s.succeed("Turso CLI installation cancelled");
52
52
  relinka("warn", re.yellow("Turso CLI installation cancelled by user"));
53
53
  throw new Error("Installation cancelled");
54
54
  }
55
- s.stop(re.red("Failed to install Turso CLI"));
55
+ s.fail(re.red("Failed to install Turso CLI"));
56
56
  }
57
57
  }
58
58
  async function getTursoGroups() {
59
- const s = spinner({
59
+ const s = createSpinner({
60
60
  text: "Fetching Turso groups..."
61
61
  });
62
62
  try {
@@ -64,7 +64,7 @@ async function getTursoGroups() {
64
64
  const { stdout } = await $`turso group list`;
65
65
  const lines = stdout.trim().split("\n");
66
66
  if (lines.length <= 1) {
67
- s.stop("No Turso groups found");
67
+ s.succeed("No Turso groups found");
68
68
  return [];
69
69
  }
70
70
  const groups = lines.slice(1).map((line) => {
@@ -72,10 +72,10 @@ async function getTursoGroups() {
72
72
  if (!name || !locations || !version || !status) return null;
73
73
  return { name, locations, version, status };
74
74
  }).filter((group) => group !== null);
75
- s.stop(`Found ${groups.length} Turso groups`);
75
+ s.succeed(`Found ${groups.length} Turso groups`);
76
76
  return groups;
77
77
  } catch (error) {
78
- s.stop(re.red("Error fetching Turso groups"));
78
+ s.fail(re.red("Error fetching Turso groups"));
79
79
  console.error("Error fetching Turso groups:", error);
80
80
  return [];
81
81
  }
@@ -104,7 +104,7 @@ async function selectTursoGroup() {
104
104
  return selectedGroup;
105
105
  }
106
106
  async function createTursoDatabase(dbName, groupName) {
107
- const s = spinner({
107
+ const s = createSpinner({
108
108
  text: "Creating Turso database..."
109
109
  });
110
110
  try {
@@ -114,9 +114,9 @@ async function createTursoDatabase(dbName, groupName) {
114
114
  } else {
115
115
  await $`turso db create ${dbName}`;
116
116
  }
117
- s.stop(`Turso database "${dbName}" created`);
117
+ s.succeed(`Turso database "${dbName}" created`);
118
118
  } catch (error) {
119
- s.stop(re.red(`Failed to create database "${dbName}"`));
119
+ s.fail(re.red(`Failed to create database "${dbName}"`));
120
120
  if (error instanceof Error && error.message.includes("already exists")) {
121
121
  throw new Error("DATABASE_EXISTS");
122
122
  }
@@ -125,13 +125,13 @@ async function createTursoDatabase(dbName, groupName) {
125
125
  try {
126
126
  const { stdout: dbUrl } = await $`turso db show ${dbName} --url`;
127
127
  const { stdout: authToken } = await $`turso db tokens create ${dbName}`;
128
- s.stop("Database connection details retrieved");
128
+ s.succeed("Database connection details retrieved");
129
129
  return {
130
130
  dbUrl: dbUrl.trim(),
131
131
  authToken: authToken.trim()
132
132
  };
133
133
  } catch (_error) {
134
- s.stop(re.red("Failed to retrieve database connection details"));
134
+ s.fail(re.red("Failed to retrieve database connection details"));
135
135
  }
136
136
  }
137
137
  async function writeEnvFile(projectDir, config) {
@@ -164,7 +164,7 @@ DATABASE_AUTH_TOKEN=your_auth_token`
164
164
  }
165
165
  export async function setupTurso(config) {
166
166
  const { projectDir } = config;
167
- const setupSpinner = spinner({
167
+ const setupSpinner = createSpinner({
168
168
  text: "Checking Turso CLI availability..."
169
169
  });
170
170
  setupSpinner.start("Checking Turso CLI availability...");
@@ -173,13 +173,13 @@ export async function setupTurso(config) {
173
173
  const isMac = platform === "darwin";
174
174
  const isWindows = platform === "win32";
175
175
  if (isWindows) {
176
- setupSpinner.stop(re.yellow("Turso setup not supported on Windows"));
176
+ setupSpinner.succeed(re.yellow("Turso setup not supported on Windows"));
177
177
  relinka("warn", re.yellow("Automatic Turso setup is not supported on Windows."));
178
178
  await writeEnvFile(projectDir);
179
179
  displayManualSetupInstructions();
180
180
  return;
181
181
  }
182
- setupSpinner.stop("Turso CLI availability checked");
182
+ setupSpinner.succeed("Turso CLI availability checked");
183
183
  const isCliInstalled = await isTursoInstalled();
184
184
  if (!isCliInstalled) {
185
185
  const shouldInstall = await confirm({
@@ -238,7 +238,7 @@ export async function setupTurso(config) {
238
238
  }
239
239
  relinka("success", "Turso database setup completed successfully!");
240
240
  } catch (error) {
241
- setupSpinner.stop(re.red("Turso CLI availability check failed"));
241
+ setupSpinner.fail(re.red("Turso CLI availability check failed"));
242
242
  relinka(
243
243
  "error",
244
244
  re.red(`Error during Turso setup: ${error instanceof Error ? error.message : String(error)}`)
@@ -1,12 +1,12 @@
1
1
  import { re } from "@reliverse/relico";
2
2
  import { relinka } from "@reliverse/relinka";
3
- import { spinner } from "@reliverse/rempts";
3
+ import { createSpinner } from "@reliverse/rempts";
4
4
  import { $ } from "execa";
5
5
  export async function installDependencies({
6
6
  projectDir,
7
7
  packageManager
8
8
  }) {
9
- const s = spinner({
9
+ const s = createSpinner({
10
10
  text: `Running ${packageManager} install...`
11
11
  });
12
12
  try {
@@ -15,9 +15,9 @@ export async function installDependencies({
15
15
  cwd: projectDir,
16
16
  stderr: "inherit"
17
17
  })`${packageManager} install`;
18
- s.stop("Dependencies installed successfully");
18
+ s.succeed("Dependencies installed successfully");
19
19
  } catch (error) {
20
- s.stop(re.red("Failed to install dependencies"));
20
+ s.fail(re.red("Failed to install dependencies"));
21
21
  if (error instanceof Error) {
22
22
  relinka("error", re.red(`Installation error: ${error.message}`));
23
23
  }
@@ -2,7 +2,7 @@ import path from "node:path";
2
2
  import { re } from "@reliverse/relico";
3
3
  import fs from "@reliverse/relifso";
4
4
  import { relinka } from "@reliverse/relinka";
5
- import { spinner } from "@reliverse/rempts";
5
+ import { createSpinner } from "@reliverse/rempts";
6
6
  import { setupMongoDBAtlas } from "../database-providers/mongodb-atlas-setup.js";
7
7
  import { setupNeonPostgres } from "../database-providers/neon-setup.js";
8
8
  import { setupPrismaPostgres } from "../database-providers/prisma-postgres-setup.js";
@@ -21,7 +21,7 @@ export async function setupDatabase(config) {
21
21
  }
22
22
  return;
23
23
  }
24
- const s = spinner({
24
+ const s = createSpinner({
25
25
  text: "Setting up database..."
26
26
  });
27
27
  const serverDir = path.join(projectDir, "apps/server");
@@ -76,7 +76,7 @@ export async function setupDatabase(config) {
76
76
  await setupMongoDBAtlas(config);
77
77
  }
78
78
  } catch (error) {
79
- s.stop(re.red("Failed to set up database"));
79
+ s.fail(re.red("Failed to set up database"));
80
80
  if (error instanceof Error) {
81
81
  relinka("error", re.red(error.message));
82
82
  }
@@ -1,12 +1,12 @@
1
1
  import path from "node:path";
2
2
  import { re } from "@reliverse/relico";
3
3
  import { relinka } from "@reliverse/relinka";
4
- import { spinner } from "@reliverse/rempts";
4
+ import { createSpinner } from "@reliverse/rempts";
5
5
  import { execa } from "execa";
6
6
  import { getPackageExecutionCommand } from "../../utils/get-package-execution-command.js";
7
7
  export async function setupStarlight(config) {
8
8
  const { packageManager, projectDir } = config;
9
- const s = spinner({
9
+ const s = createSpinner({
10
10
  text: "Setting up Starlight docs..."
11
11
  });
12
12
  try {
@@ -31,9 +31,9 @@ export async function setupStarlight(config) {
31
31
  },
32
32
  shell: true
33
33
  });
34
- s.stop("Starlight docs setup successfully!");
34
+ s.succeed("Starlight docs setup successfully!");
35
35
  } catch (error) {
36
- s.stop(re.red("Failed to set up Starlight docs"));
36
+ s.fail(re.red("Failed to set up Starlight docs"));
37
37
  if (error instanceof Error) {
38
38
  relinka("error", error.message);
39
39
  }
@@ -2,13 +2,13 @@ import path from "node:path";
2
2
  import { re } from "@reliverse/relico";
3
3
  import fs from "@reliverse/relifso";
4
4
  import { relinka } from "@reliverse/relinka";
5
- import { spinner } from "@reliverse/rempts";
5
+ import { createSpinner } from "@reliverse/rempts";
6
6
  import { execa } from "execa";
7
7
  import { addPackageDependency } from "../../utils/add-package-deps.js";
8
8
  import { getPackageExecutionCommand } from "../../utils/get-package-execution-command.js";
9
9
  export async function setupTauri(config) {
10
10
  const { packageManager, frontend, projectDir } = config;
11
- const s = spinner({
11
+ const s = createSpinner({
12
12
  text: "Setting up Tauri desktop app support..."
13
13
  });
14
14
  const clientPackageDir = path.join(projectDir, "apps/web");
@@ -57,9 +57,9 @@ export async function setupTauri(config) {
57
57
  },
58
58
  shell: true
59
59
  });
60
- s.stop("Tauri desktop app support configured successfully!");
60
+ s.succeed("Tauri desktop app support configured successfully!");
61
61
  } catch (error) {
62
- s.stop(re.red("Failed to set up Tauri"));
62
+ s.fail(re.red("Failed to set up Tauri"));
63
63
  if (error instanceof Error) {
64
64
  relinka("error", error.message);
65
65
  }
@@ -146,7 +146,7 @@ export const DLER_TPL_ADDONS = {
146
146
  type: "binary",
147
147
  binaryHash: "dee83fc2fb"
148
148
  },
149
- "addons/pwa/apps/web/next/src-ts/app/manifest.ts.hbs": {
149
+ "addons/pwa/apps/web/next/src-ts/impl/manifest.ts.hbs": {
150
150
  metadata: {
151
151
  updatedAt: "2025-06-17T06:06:35.000Z",
152
152
  updatedHash: "6f8734ebe6"
@@ -188,7 +188,7 @@ export const protectedProcedure = publicProcedure.use(requireAuth);
188
188
  `,
189
189
  type: "text"
190
190
  },
191
- "api/orpc/server/next/src-ts/app/rpc/[...all]/route.ts.hbs": {
191
+ "api/orpc/server/next/src-ts/impl/rpc/[...all]/route.ts.hbs": {
192
192
  metadata: {
193
193
  updatedAt: "2025-06-17T06:06:35.000Z",
194
194
  updatedHash: "cdf4279672"
@@ -556,7 +556,7 @@ export const protectedProcedure = t.procedure.use(({ ctx, next }) => {
556
556
  `,
557
557
  type: "text"
558
558
  },
559
- "api/trpc/server/next/src-ts/app/trpc/[trpc]/route.ts": {
559
+ "api/trpc/server/next/src-ts/impl/trpc/[trpc]/route.ts": {
560
560
  metadata: {
561
561
  updatedAt: "2025-06-17T06:06:35.000Z",
562
562
  updatedHash: "1316017eae"
@@ -1403,7 +1403,7 @@ model Verification {
1403
1403
  `,
1404
1404
  type: "text"
1405
1405
  },
1406
- "auth/server/next/src-ts/app/api/auth/[...all]/route.ts": {
1406
+ "auth/server/next/src-ts/impl/api/auth/[...all]/route.ts": {
1407
1407
  metadata: {
1408
1408
  updatedAt: "2025-06-17T06:06:35.000Z",
1409
1409
  updatedHash: "1eeae5d0e3"
@@ -1727,7 +1727,7 @@ export const authClient = createAuthClient({
1727
1727
  `,
1728
1728
  type: "text"
1729
1729
  },
1730
- "auth/web/react/next/src-ts/app/dashboard/page.tsx.hbs": {
1730
+ "auth/web/react/next/src-ts/impl/dashboard/page.tsx.hbs": {
1731
1731
  metadata: {
1732
1732
  updatedAt: "2025-06-17T06:06:35.000Z",
1733
1733
  updatedHash: "354fab95c7"
@@ -1777,7 +1777,7 @@ export default function Dashboard() {
1777
1777
  `,
1778
1778
  type: "text"
1779
1779
  },
1780
- "auth/web/react/next/src-ts/app/login/page.tsx": {
1780
+ "auth/web/react/next/src-ts/impl/login/page.tsx": {
1781
1781
  metadata: {
1782
1782
  updatedAt: "2025-06-17T06:06:35.000Z",
1783
1783
  updatedHash: "bdd103cc10"
@@ -720,7 +720,7 @@ export default nextConfig;
720
720
  `,
721
721
  type: "text"
722
722
  },
723
- "backend/server/next/src-ts/app/route.ts": {
723
+ "backend/server/next/src-ts/impl/route.ts": {
724
724
  metadata: {
725
725
  updatedAt: "2025-06-17T06:06:35.000Z",
726
726
  updatedHash: "e40f5d7501"
@@ -486,7 +486,7 @@ export {};
486
486
  `,
487
487
  type: "text"
488
488
  },
489
- "examples/ai/server/next/src-ts/app/ai/route.ts": {
489
+ "examples/ai/server/next/src-ts/impl/ai/route.ts": {
490
490
  metadata: {
491
491
  updatedAt: "2025-06-17T06:06:35.000Z",
492
492
  updatedHash: "eee0d6a73d"
@@ -569,7 +569,7 @@ function getMessageText(message: any) {
569
569
  `,
570
570
  type: "text"
571
571
  },
572
- "examples/ai/web/react/next/src-ts/app/ai/page.tsx": {
572
+ "examples/ai/web/react/next/src-ts/impl/ai/page.tsx": {
573
573
  metadata: {
574
574
  updatedAt: "2025-06-17T06:06:35.000Z",
575
575
  updatedHash: "0c366c76eb"
@@ -2058,7 +2058,7 @@ function handleDeleteTodo(id: number) {
2058
2058
  `,
2059
2059
  type: "text"
2060
2060
  },
2061
- "examples/todo/web/react/next/src-ts/app/todos/page.tsx.hbs": {
2061
+ "examples/todo/web/react/next/src-ts/impl/todos/page.tsx.hbs": {
2062
2062
  metadata: {
2063
2063
  updatedAt: "2025-06-17T06:06:35.000Z",
2064
2064
  updatedHash: "dbf393c2f2"
@@ -2678,7 +2678,7 @@ export default config;
2678
2678
  `,
2679
2679
  type: "text"
2680
2680
  },
2681
- "frontend/react/next/src-ts/app/favicon.ico": {
2681
+ "frontend/react/next/src/app/favicon.ico": {
2682
2682
  metadata: {
2683
2683
  updatedAt: "2025-06-17T06:06:35.000Z",
2684
2684
  updatedHash: "9ecfcc8f0e"
@@ -2687,7 +2687,7 @@ export default config;
2687
2687
  type: "binary",
2688
2688
  binaryHash: "9ecfcc8f0e"
2689
2689
  },
2690
- "frontend/react/next/src-ts/app/layout.tsx.hbs": {
2690
+ "frontend/react/next/src/app/layout.tsx.hbs": {
2691
2691
  metadata: {
2692
2692
  updatedAt: "2025-06-17T06:06:35.000Z",
2693
2693
  updatedHash: "2b199051ab"
@@ -2732,7 +2732,7 @@ export default function RootLayout({
2732
2732
  `,
2733
2733
  type: "text"
2734
2734
  },
2735
- "frontend/react/next/src-ts/app/page.tsx.hbs": {
2735
+ "frontend/react/next/src/app/page.tsx.hbs": {
2736
2736
  metadata: {
2737
2737
  updatedAt: "2025-06-17T06:06:35.000Z",
2738
2738
  updatedHash: "78e7e7eea2"
@@ -5742,7 +5742,7 @@ dist-ssr
5742
5742
  },
5743
5743
  type: "json"
5744
5744
  },
5745
- "frontend/svelte/src-ts/app.css": {
5745
+ "frontend/svelte/src/app.css": {
5746
5746
  metadata: {
5747
5747
  updatedAt: "2025-06-17T06:06:35.000Z",
5748
5748
  updatedHash: "2b911b4424"
@@ -5754,7 +5754,7 @@ body {
5754
5754
  `,
5755
5755
  type: "text"
5756
5756
  },
5757
- "frontend/svelte/src-ts/app.d.ts": {
5757
+ "frontend/svelte/src/app.d.ts": {
5758
5758
  metadata: {
5759
5759
  updatedAt: "2025-06-17T06:06:35.000Z",
5760
5760
  updatedHash: "2f59b5d092"
@@ -5774,7 +5774,7 @@ export {};
5774
5774
  `,
5775
5775
  type: "text"
5776
5776
  },
5777
- "frontend/svelte/src-ts/app.html": {
5777
+ "frontend/svelte/src/app.html": {
5778
5778
  metadata: {
5779
5779
  updatedAt: "2025-06-17T06:06:35.000Z",
5780
5780
  updatedHash: "f980132c60"
@@ -1,8 +1,8 @@
1
1
  import { z } from "zod";
2
2
  export declare const DatabaseSchema: z.ZodEnum<{
3
3
  none: "none";
4
- sqlite: "sqlite";
5
4
  mysql: "mysql";
5
+ sqlite: "sqlite";
6
6
  mongodb: "mongodb";
7
7
  postgres: "postgres";
8
8
  }>;
@@ -10,16 +10,16 @@ export type Database = z.infer<typeof DatabaseSchema>;
10
10
  export declare const ORMSchema: z.ZodEnum<{
11
11
  none: "none";
12
12
  drizzle: "drizzle";
13
- mongoose: "mongoose";
14
13
  prisma: "prisma";
14
+ mongoose: "mongoose";
15
15
  }>;
16
16
  export type ORM = z.infer<typeof ORMSchema>;
17
17
  export declare const BackendSchema: z.ZodEnum<{
18
18
  none: "none";
19
19
  hono: "hono";
20
+ next: "next";
20
21
  express: "express";
21
22
  fastify: "fastify";
22
- next: "next";
23
23
  elysia: "elysia";
24
24
  convex: "convex";
25
25
  }>;
@@ -34,12 +34,12 @@ export type Runtime = z.infer<typeof RuntimeSchema>;
34
34
  export declare const FrontendSchema: z.ZodEnum<{
35
35
  none: "none";
36
36
  svelte: "svelte";
37
+ nuxt: "nuxt";
37
38
  solid: "solid";
38
39
  next: "next";
39
- "tanstack-router": "tanstack-router";
40
40
  "react-router": "react-router";
41
+ "tanstack-router": "tanstack-router";
41
42
  "tanstack-start": "tanstack-start";
42
- nuxt: "nuxt";
43
43
  "native-nativewind": "native-nativewind";
44
44
  "native-unistyles": "native-unistyles";
45
45
  }>;
@@ -47,11 +47,11 @@ export type Frontend = z.infer<typeof FrontendSchema>;
47
47
  export declare const AddonsSchema: z.ZodEnum<{
48
48
  none: "none";
49
49
  biome: "biome";
50
- pwa: "pwa";
51
50
  tauri: "tauri";
52
51
  starlight: "starlight";
53
- husky: "husky";
54
52
  turborepo: "turborepo";
53
+ pwa: "pwa";
54
+ husky: "husky";
55
55
  }>;
56
56
  export type Addons = z.infer<typeof AddonsSchema>;
57
57
  export declare const ExamplesSchema: z.ZodEnum<{
@@ -69,8 +69,8 @@ export type PackageManager = z.infer<typeof PackageManagerSchema>;
69
69
  export declare const DatabaseSetupSchema: z.ZodEnum<{
70
70
  none: "none";
71
71
  supabase: "supabase";
72
- turso: "turso";
73
72
  neon: "neon";
73
+ turso: "turso";
74
74
  "prisma-postgres": "prisma-postgres";
75
75
  "mongodb-atlas": "mongodb-atlas";
76
76
  }>;
@@ -1,18 +1,18 @@
1
1
  import { re } from "@reliverse/relico";
2
- import { log, outro, spinner } from "@reliverse/rempts";
2
+ import { createSpinner, log, outro } from "@reliverse/rempts";
3
3
  export const SPONSORS_JSON_URL = "https://sponsors.amanv.dev/sponsors.json";
4
4
  export async function fetchSponsors(url = SPONSORS_JSON_URL) {
5
- const s = spinner({
5
+ const s = createSpinner({
6
6
  text: "Fetching sponsors\u2026"
7
7
  });
8
8
  s.start("Fetching sponsors\u2026");
9
9
  const response = await fetch(url);
10
10
  if (!response.ok) {
11
- s.stop(re.red(`Failed to fetch sponsors: ${response.statusText}`));
11
+ s.fail(re.red(`Failed to fetch sponsors: ${response.statusText}`));
12
12
  throw new Error(`Failed to fetch sponsors: ${response.statusText}`);
13
13
  }
14
14
  const sponsors = await response.json();
15
- s.stop("Sponsors fetched successfully!");
15
+ s.succeed("Sponsors fetched successfully!");
16
16
  return sponsors;
17
17
  }
18
18
  export function displaySponsors(sponsors) {
@@ -3,6 +3,6 @@ import type { PerfTimer } from "../types/mod.js";
3
3
  /**
4
4
  * Main entry point for the rse build and publish process.
5
5
  * Handles building and publishing for both main project and libraries.
6
- * @see `src-ts/app/build/impl.ts` for build main function implementation.
6
+ * @see `src-ts/impl/build/impl.ts` for build main function implementation.
7
7
  */
8
8
  export declare function dlerPub(timer: PerfTimer, isDev: boolean, config?: ReliverseConfig): Promise<void>;
@@ -1,12 +1,12 @@
1
1
  import { bumpHandler, isBumpDisabled, setBumpDisabledValueTo } from "@reliverse/bleump";
2
2
  import { relinka } from "@reliverse/relinka";
3
+ import { createMultiStepSpinner } from "@reliverse/rempts";
3
4
  import prettyMilliseconds from "pretty-ms";
4
5
  import { dlerBuild } from "../build/impl.js";
5
6
  import { library_pubFlow } from "../build/library-flow.js";
6
7
  import { regular_pubFlow } from "../build/regular-flow.js";
7
8
  import { getConfigDler } from "../config/load.js";
8
9
  import { finalizeBuild, finalizePub } from "../utils/finalize.js";
9
- import { createMultiStepSpinner } from "../utils/spinner.js";
10
10
  import { handleDlerError } from "../utils/utils-error-cwd.js";
11
11
  import { getElapsedPerfTime } from "../utils/utils-perf.js";
12
12
  export async function dlerPub(timer, isDev, config) {
@@ -100,7 +100,9 @@ async function library_pubToJsr(libOutDir, distJsrDryRun, distJsrFailOnWarn, dis
100
100
  distJsrSlowTypes ? "--allow-slow-types" : "",
101
101
  shouldShowSpinner ? "--silent" : ""
102
102
  ].filter(Boolean).join(" ");
103
- await execaCommand(command, { stdio: "inherit" });
103
+ await execaCommand(command, {
104
+ stdio: shouldShowSpinner ? "ignore" : "inherit"
105
+ });
104
106
  relinka("null", "");
105
107
  relinka(
106
108
  "log",
@@ -130,7 +132,9 @@ async function library_pubToNpm(libOutDir, distJsrDryRun, _distJsrFailOnWarn, li
130
132
  distJsrDryRun ? "--dry-run" : "",
131
133
  shouldShowSpinner ? "--silent" : ""
132
134
  ].filter(Boolean).join(" ");
133
- await execaCommand(command, { stdio: "inherit" });
135
+ await execaCommand(command, {
136
+ stdio: shouldShowSpinner ? "ignore" : "inherit"
137
+ });
134
138
  relinka("null", "");
135
139
  relinka(
136
140
  "log",
@@ -36,7 +36,9 @@ export async function regular_pubToJsr(distJsrDryRun, distJsrFailOnWarn, isDev,
36
36
  shouldShowSpinner ? "--silent" : ""
37
37
  ].filter(Boolean).join(" ");
38
38
  relinka("verbose", `Running publish command: ${command}`);
39
- await execaCommand(command, { stdio: "inherit" });
39
+ await execaCommand(command, {
40
+ stdio: shouldShowSpinner ? "ignore" : "inherit"
41
+ });
40
42
  relinka("null", "");
41
43
  relinka(
42
44
  "verbose",
@@ -67,7 +69,9 @@ export async function regular_pubToNpm(distJsrDryRun, _isDev, commonPubPause, di
67
69
  shouldShowSpinner ? "--silent" : ""
68
70
  ].filter(Boolean).join(" ");
69
71
  relinka("verbose", `Running publish command: ${command}`);
70
- await execaCommand(command, { stdio: "inherit" });
72
+ await execaCommand(command, {
73
+ stdio: shouldShowSpinner ? "ignore" : "inherit"
74
+ });
71
75
  relinka("null", "");
72
76
  relinka(
73
77
  "verbose",
@@ -4,7 +4,7 @@ import { relinka } from "@reliverse/relinka";
4
4
  import { createJiti } from "jiti";
5
5
  export async function handleReliverseConfig() {
6
6
  const dlerConfigPath = path.resolve("reliverse.ts");
7
- let cmdsRoot = "src-ts/app";
7
+ let cmdsRoot = "src/app";
8
8
  let cliFilePath = "";
9
9
  try {
10
10
  const jiti = createJiti(import.meta.url);
@@ -14,7 +14,7 @@ export async function handleReliverseConfig() {
14
14
  const coreIsCLI = dlerConfig?.coreIsCLI;
15
15
  if (!coreIsCLI?.enabled || !coreIsCLI?.scripts) {
16
16
  cliFilePath = await ensureCliFile("src/cli.ts");
17
- cmdsRoot = "src-ts/app";
17
+ cmdsRoot = "src/app";
18
18
  } else {
19
19
  const firstScript = Object.values(coreIsCLI.scripts)[0];
20
20
  const scriptPath = path.resolve(firstScript);
@@ -29,16 +29,16 @@ export async function handleReliverseConfig() {
29
29
  }
30
30
  } else {
31
31
  relinka("warn", `${scriptPath} doesn't use @reliverse/rempts`);
32
- cmdsRoot = "src-ts/app";
32
+ cmdsRoot = "src/app";
33
33
  }
34
34
  } else {
35
35
  cliFilePath = await ensureCliFile(scriptPath);
36
- cmdsRoot = "src-ts/app";
36
+ cmdsRoot = "src/app";
37
37
  }
38
38
  }
39
39
  } catch {
40
40
  cliFilePath = await ensureCliFile("src/cli.ts");
41
- cmdsRoot = "src-ts/app";
41
+ cmdsRoot = "src/app";
42
42
  }
43
43
  return { cmdsRoot: path.resolve(cmdsRoot), cliFile: cliFilePath };
44
44
  }
@@ -75,7 +75,7 @@ export async function findCommandDirs(root) {
75
75
  export async function generateCommandArgsMap(cmdDirs) {
76
76
  let interfaceContent = "// Argument types for each command based on their defineArgs\ninterface CommandArgsMap {\n";
77
77
  for (const dir of cmdDirs) {
78
- const cmdPath = path.join("src-ts/app", dir, "cmd.ts");
78
+ const cmdPath = path.join("src/app", dir, "cmd.ts");
79
79
  try {
80
80
  if (await fs.pathExists(cmdPath)) {
81
81
  const content = await fs.readFile(cmdPath, "utf-8");
@@ -254,7 +254,7 @@ const cliTemplate = `import { defineCommand, runMain } from "@reliverse/rempts";
254
254
  await runMain(
255
255
  defineCommand({
256
256
  // empty object activates file-based
257
- // commands in the src-ts/app directory
257
+ // commands in the src/app directory
258
258
  }),
259
259
  );
260
260
  `;
@@ -186,7 +186,7 @@ export function printUsage(isDev) {
186
186
  if (isDev) {
187
187
  relinka(
188
188
  "log",
189
- "bun dev:tools agg --input src-ts/app --out src-ts/mod.ts --recursive --named --strip src-ts/app"
189
+ "bun dev:tools agg --input src-ts/impl --out src-ts/mod.ts --recursive --named --strip src-ts/impl"
190
190
  );
191
191
  } else {
192
192
  relinka(
@@ -3,8 +3,8 @@ import fs, { ensuredir } from "@reliverse/relifso";
3
3
  import { relinka } from "@reliverse/relinka";
4
4
  async function isI18nAlreadySetup(projectPath) {
5
5
  const checkPaths = [
6
- "src-ts/app/[locale]",
7
- "src-ts/app/[lang]",
6
+ "src-ts/impl/[locale]",
7
+ "src-ts/impl/[lang]",
8
8
  "src/i18n",
9
9
  "src/locales",
10
10
  "src/translations",
@@ -25,7 +25,7 @@ export async function setupI18nFiles(projectPath) {
25
25
  return;
26
26
  }
27
27
  await ensuredir(projectPath);
28
- const layoutPath = path.join(projectPath, "src-ts/app/layout.tsx");
28
+ const layoutPath = path.join(projectPath, "src-ts/impl/layout.tsx");
29
29
  if (!await fs.pathExists(layoutPath)) {
30
30
  await ensuredir(path.dirname(layoutPath));
31
31
  const layoutContent = `
@@ -58,7 +58,7 @@ export function generateStaticParams() {
58
58
  await fs.writeFile(layoutPath, layoutContent);
59
59
  relinka("success", "Generated i18n layout file");
60
60
  }
61
- const pagePath = path.join(projectPath, "src-ts/app/page.tsx");
61
+ const pagePath = path.join(projectPath, "src-ts/impl/page.tsx");
62
62
  if (!await fs.pathExists(pagePath)) {
63
63
  const pageContent = `
64
64
  import { useTranslation } from "../i18n";