@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.
- package/bin/impl/auth/generators/auth-config.d.ts +2 -2
- package/bin/impl/auth/generators/auth-config.js +2 -2
- package/bin/impl/auth/impl/init.d.ts +1 -1
- package/bin/impl/auth/impl/migrate.js +5 -4
- package/bin/impl/build/binary-flow.js +1 -1
- package/bin/impl/build/impl.d.ts +1 -1
- package/bin/impl/build/impl.js +1 -1
- package/bin/impl/build/library-flow.js +1 -1
- package/bin/impl/build/regular-flow.js +1 -1
- package/bin/impl/config/constants.d.ts +1 -1
- package/bin/impl/config/constants.js +1 -1
- package/bin/impl/config/def-utils.js +3 -3
- package/bin/impl/config/detect.js +1 -1
- package/bin/impl/config/prepare.js +1 -1
- package/bin/impl/init/mm-deprecated/drizzle/manageDrizzleSchema.js +1 -1
- package/bin/impl/init/mm-deprecated/feature-add.js +2 -2
- package/bin/impl/init/mm-deprecated/feature-rm.js +5 -5
- package/bin/impl/init/use-template/cp-impl.js +1 -1
- package/bin/impl/init/use-template/cp-modules/git-deploy-prompts/git.js +1 -3
- package/bin/impl/login/login-impl.js +7 -9
- package/bin/impl/merge/mod.js +1 -1
- package/bin/impl/migrate/codemods/anything-bun.js +1 -1
- package/bin/impl/providers/better-t-stack/helpers/database-providers/mongodb-atlas-setup.js +8 -7
- package/bin/impl/providers/better-t-stack/helpers/database-providers/neon-setup.js +9 -8
- package/bin/impl/providers/better-t-stack/helpers/database-providers/prisma-postgres-setup.js +9 -9
- package/bin/impl/providers/better-t-stack/helpers/database-providers/turso-setup.js +21 -21
- package/bin/impl/providers/better-t-stack/helpers/project-generation/install-dependencies.js +4 -4
- package/bin/impl/providers/better-t-stack/helpers/setup/db-setup.js +3 -3
- package/bin/impl/providers/better-t-stack/helpers/setup/starlight-setup.js +4 -4
- package/bin/impl/providers/better-t-stack/helpers/setup/tauri-setup.js +4 -4
- package/bin/impl/providers/better-t-stack/packed/addons.js +1 -1
- package/bin/impl/providers/better-t-stack/packed/api.js +2 -2
- package/bin/impl/providers/better-t-stack/packed/auth.js +3 -3
- package/bin/impl/providers/better-t-stack/packed/backend.js +1 -1
- package/bin/impl/providers/better-t-stack/packed/examples.js +3 -3
- package/bin/impl/providers/better-t-stack/packed/frontend.js +6 -6
- package/bin/impl/providers/better-t-stack/types.d.ts +8 -8
- package/bin/impl/providers/better-t-stack/utils/sponsors.js +4 -4
- package/bin/impl/pub/impl.d.ts +1 -1
- package/bin/impl/pub/impl.js +1 -1
- package/bin/impl/pub/pub-library.js +6 -2
- package/bin/impl/pub/pub-regular.js +6 -2
- package/bin/impl/rempts/cmd.js +7 -7
- package/bin/impl/utils/agg/agg-3.js +1 -1
- package/bin/impl/utils/downloading/downloadI18nFiles.js +4 -4
- package/bin/impl/utils/downloading/downloadRepo.js +6 -6
- package/bin/impl/utils/prompts/askUsernameFrontend.js +1 -2
- package/bin/mod.d.ts +0 -2
- package/bin/mod.js +0 -25
- package/package.json +7 -7
- package/bin/impl/utils/spinner.d.ts +0 -245
- 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,
|
|
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 =
|
|
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.
|
|
29
|
+
s.succeed("Logged into Turso");
|
|
30
30
|
return true;
|
|
31
31
|
} catch (_error) {
|
|
32
|
-
s.
|
|
32
|
+
s.fail(re.red("Failed to log in to Turso"));
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
async function installTursoCLI(isMac) {
|
|
36
|
-
const s =
|
|
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.
|
|
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.
|
|
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.
|
|
55
|
+
s.fail(re.red("Failed to install Turso CLI"));
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
58
|
async function getTursoGroups() {
|
|
59
|
-
const s =
|
|
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.
|
|
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.
|
|
75
|
+
s.succeed(`Found ${groups.length} Turso groups`);
|
|
76
76
|
return groups;
|
|
77
77
|
} catch (error) {
|
|
78
|
-
s.
|
|
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 =
|
|
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.
|
|
117
|
+
s.succeed(`Turso database "${dbName}" created`);
|
|
118
118
|
} catch (error) {
|
|
119
|
-
s.
|
|
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.
|
|
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.
|
|
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 =
|
|
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.
|
|
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.
|
|
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.
|
|
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)}`)
|
package/bin/impl/providers/better-t-stack/helpers/project-generation/install-dependencies.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { re } from "@reliverse/relico";
|
|
2
2
|
import { relinka } from "@reliverse/relinka";
|
|
3
|
-
import {
|
|
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 =
|
|
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.
|
|
18
|
+
s.succeed("Dependencies installed successfully");
|
|
19
19
|
} catch (error) {
|
|
20
|
-
s.
|
|
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 {
|
|
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 =
|
|
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.
|
|
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 {
|
|
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 =
|
|
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.
|
|
34
|
+
s.succeed("Starlight docs setup successfully!");
|
|
35
35
|
} catch (error) {
|
|
36
|
-
s.
|
|
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 {
|
|
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 =
|
|
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.
|
|
60
|
+
s.succeed("Tauri desktop app support configured successfully!");
|
|
61
61
|
} catch (error) {
|
|
62
|
-
s.
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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"
|
|
@@ -486,7 +486,7 @@ export {};
|
|
|
486
486
|
`,
|
|
487
487
|
type: "text"
|
|
488
488
|
},
|
|
489
|
-
"examples/ai/server/next/src-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/
|
|
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/
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 =
|
|
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.
|
|
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.
|
|
15
|
+
s.succeed("Sponsors fetched successfully!");
|
|
16
16
|
return sponsors;
|
|
17
17
|
}
|
|
18
18
|
export function displaySponsors(sponsors) {
|
package/bin/impl/pub/impl.d.ts
CHANGED
|
@@ -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/
|
|
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>;
|
package/bin/impl/pub/impl.js
CHANGED
|
@@ -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, {
|
|
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, {
|
|
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, {
|
|
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, {
|
|
72
|
+
await execaCommand(command, {
|
|
73
|
+
stdio: shouldShowSpinner ? "ignore" : "inherit"
|
|
74
|
+
});
|
|
71
75
|
relinka("null", "");
|
|
72
76
|
relinka(
|
|
73
77
|
"verbose",
|
package/bin/impl/rempts/cmd.js
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
32
|
+
cmdsRoot = "src/app";
|
|
33
33
|
}
|
|
34
34
|
} else {
|
|
35
35
|
cliFilePath = await ensureCliFile(scriptPath);
|
|
36
|
-
cmdsRoot = "src
|
|
36
|
+
cmdsRoot = "src/app";
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
} catch {
|
|
40
40
|
cliFilePath = await ensureCliFile("src/cli.ts");
|
|
41
|
-
cmdsRoot = "src
|
|
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
|
|
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
|
|
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/
|
|
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/
|
|
7
|
-
"src-ts/
|
|
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/
|
|
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/
|
|
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";
|