@kevinmarrec/create-app 0.6.3 → 0.6.5
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 +2 -2
- package/package.json +7 -7
- package/template/backend/package.json +2 -2
- package/template/backend/src/database/migrations/meta/0000_snapshot.json +88 -88
- package/template/backend/src/database/migrations/meta/_journal.json +2 -2
- package/template/backend/src/database/schema/accounts.ts +2 -2
- package/template/frontend/package.json +12 -12
- package/template/frontend/wrangler.json +6 -0
- package/template/gitignore +1 -0
- package/template/package.json +5 -5
- package/template/backend/src/database/migrations/{0000_violet_enchantress.sql → 0000_fluffy_salo.sql} +20 -20
package/dist/index.js
CHANGED
|
@@ -8,7 +8,7 @@ import { x } from "tinyexec";
|
|
|
8
8
|
import fs from "node:fs/promises";
|
|
9
9
|
|
|
10
10
|
//#region package.json
|
|
11
|
-
var version = "0.6.
|
|
11
|
+
var version = "0.6.5";
|
|
12
12
|
|
|
13
13
|
//#endregion
|
|
14
14
|
//#region src/utils/fs.ts
|
|
@@ -72,7 +72,7 @@ Usage: create-app [OPTIONS...] [DIRECTORY]
|
|
|
72
72
|
Options:
|
|
73
73
|
-f, --force Create the project even if the directory is not empty.
|
|
74
74
|
-h, --help Display this help message.
|
|
75
|
-
--version Display the version number of this CLI.
|
|
75
|
+
-v, --version Display the version number of this CLI.
|
|
76
76
|
`);
|
|
77
77
|
process.exit(0);
|
|
78
78
|
}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kevinmarrec/create-app",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.6.
|
|
5
|
-
"packageManager": "bun@1.
|
|
4
|
+
"version": "0.6.5",
|
|
5
|
+
"packageManager": "bun@1.3.1",
|
|
6
6
|
"description": "CLI that scaffolds an opinionated Bun & Vue fullstack application.",
|
|
7
7
|
"author": "Kevin Marrec <kevin@marrec.io>",
|
|
8
8
|
"license": "MIT",
|
|
@@ -50,15 +50,15 @@
|
|
|
50
50
|
"tinyexec": "^1.0.1"
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
|
-
"@faker-js/faker": "^10.
|
|
54
|
-
"@kevinmarrec/eslint-config": "^1.5.
|
|
55
|
-
"@kevinmarrec/stylelint-config": "^1.2.
|
|
53
|
+
"@faker-js/faker": "^10.1.0",
|
|
54
|
+
"@kevinmarrec/eslint-config": "^1.5.3",
|
|
55
|
+
"@kevinmarrec/stylelint-config": "^1.2.2",
|
|
56
56
|
"@kevinmarrec/tsconfig": "^1.1.0",
|
|
57
57
|
"@types/bun": "^1.3.0",
|
|
58
58
|
"@vitest/coverage-v8": "^3.2.4",
|
|
59
59
|
"bumpp": "^10.3.1",
|
|
60
|
-
"eslint": "^9.
|
|
61
|
-
"knip": "^5.
|
|
60
|
+
"eslint": "^9.38.0",
|
|
61
|
+
"knip": "^5.66.0",
|
|
62
62
|
"stylelint": "^16.25.0",
|
|
63
63
|
"tsdown": "^0.15.7",
|
|
64
64
|
"typescript": "^5.9.3",
|
|
@@ -9,10 +9,10 @@
|
|
|
9
9
|
"db:migrate": "bun --bun run drizzle-kit migrate --config src/database/drizzle/config.ts"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@orpc/server": "^1.9.
|
|
12
|
+
"@orpc/server": "^1.9.4",
|
|
13
13
|
"better-auth": "^1.3.27",
|
|
14
14
|
"drizzle-orm": "^0.44.6",
|
|
15
|
-
"pino": "^10.
|
|
15
|
+
"pino": "^10.1.0",
|
|
16
16
|
"valibot": "^1.1.0"
|
|
17
17
|
},
|
|
18
18
|
"devDependencies": {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": "6",
|
|
3
3
|
"dialect": "sqlite",
|
|
4
|
-
"id": "
|
|
4
|
+
"id": "c1982d78-242a-497b-b4b3-6a4f8a375c7f",
|
|
5
5
|
"prevId": "00000000-0000-0000-0000-000000000000",
|
|
6
6
|
"tables": {
|
|
7
|
-
"
|
|
8
|
-
"name": "
|
|
7
|
+
"users": {
|
|
8
|
+
"name": "users",
|
|
9
9
|
"columns": {
|
|
10
10
|
"id": {
|
|
11
11
|
"name": "id",
|
|
@@ -14,71 +14,30 @@
|
|
|
14
14
|
"notNull": true,
|
|
15
15
|
"autoincrement": false
|
|
16
16
|
},
|
|
17
|
-
"
|
|
18
|
-
"name": "
|
|
19
|
-
"type": "text",
|
|
20
|
-
"primaryKey": false,
|
|
21
|
-
"notNull": true,
|
|
22
|
-
"autoincrement": false
|
|
23
|
-
},
|
|
24
|
-
"account_id": {
|
|
25
|
-
"name": "account_id",
|
|
17
|
+
"name": {
|
|
18
|
+
"name": "name",
|
|
26
19
|
"type": "text",
|
|
27
20
|
"primaryKey": false,
|
|
28
21
|
"notNull": true,
|
|
29
22
|
"autoincrement": false
|
|
30
23
|
},
|
|
31
|
-
"
|
|
32
|
-
"name": "
|
|
24
|
+
"email": {
|
|
25
|
+
"name": "email",
|
|
33
26
|
"type": "text",
|
|
34
27
|
"primaryKey": false,
|
|
35
28
|
"notNull": true,
|
|
36
29
|
"autoincrement": false
|
|
37
30
|
},
|
|
38
|
-
"
|
|
39
|
-
"name": "
|
|
40
|
-
"type": "text",
|
|
41
|
-
"primaryKey": false,
|
|
42
|
-
"notNull": false,
|
|
43
|
-
"autoincrement": false
|
|
44
|
-
},
|
|
45
|
-
"access_token": {
|
|
46
|
-
"name": "access_token",
|
|
47
|
-
"type": "text",
|
|
48
|
-
"primaryKey": false,
|
|
49
|
-
"notNull": false,
|
|
50
|
-
"autoincrement": false
|
|
51
|
-
},
|
|
52
|
-
"access_token_expires_at": {
|
|
53
|
-
"name": "access_token_expires_at",
|
|
54
|
-
"type": "integer",
|
|
55
|
-
"primaryKey": false,
|
|
56
|
-
"notNull": false,
|
|
57
|
-
"autoincrement": false
|
|
58
|
-
},
|
|
59
|
-
"refresh_token": {
|
|
60
|
-
"name": "refresh_token",
|
|
61
|
-
"type": "text",
|
|
62
|
-
"primaryKey": false,
|
|
63
|
-
"notNull": false,
|
|
64
|
-
"autoincrement": false
|
|
65
|
-
},
|
|
66
|
-
"refresh_token_expires_at": {
|
|
67
|
-
"name": "refresh_token_expires_at",
|
|
31
|
+
"email_verified": {
|
|
32
|
+
"name": "email_verified",
|
|
68
33
|
"type": "integer",
|
|
69
34
|
"primaryKey": false,
|
|
70
|
-
"notNull":
|
|
71
|
-
"autoincrement": false
|
|
72
|
-
|
|
73
|
-
"scope": {
|
|
74
|
-
"name": "scope",
|
|
75
|
-
"type": "text",
|
|
76
|
-
"primaryKey": false,
|
|
77
|
-
"notNull": false,
|
|
78
|
-
"autoincrement": false
|
|
35
|
+
"notNull": true,
|
|
36
|
+
"autoincrement": false,
|
|
37
|
+
"default": false
|
|
79
38
|
},
|
|
80
|
-
"
|
|
81
|
-
"name": "
|
|
39
|
+
"image": {
|
|
40
|
+
"name": "image",
|
|
82
41
|
"type": "text",
|
|
83
42
|
"primaryKey": false,
|
|
84
43
|
"notNull": false,
|
|
@@ -99,22 +58,16 @@
|
|
|
99
58
|
"autoincrement": false
|
|
100
59
|
}
|
|
101
60
|
},
|
|
102
|
-
"indexes": {
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
"
|
|
106
|
-
|
|
107
|
-
"tableTo": "users",
|
|
108
|
-
"columnsFrom": [
|
|
109
|
-
"user_id"
|
|
110
|
-
],
|
|
111
|
-
"columnsTo": [
|
|
112
|
-
"id"
|
|
61
|
+
"indexes": {
|
|
62
|
+
"users_email_unique": {
|
|
63
|
+
"name": "users_email_unique",
|
|
64
|
+
"columns": [
|
|
65
|
+
"email"
|
|
113
66
|
],
|
|
114
|
-
"
|
|
115
|
-
"onUpdate": "no action"
|
|
67
|
+
"isUnique": true
|
|
116
68
|
}
|
|
117
69
|
},
|
|
70
|
+
"foreignKeys": {},
|
|
118
71
|
"compositePrimaryKeys": {},
|
|
119
72
|
"uniqueConstraints": {},
|
|
120
73
|
"checkConstraints": {}
|
|
@@ -207,8 +160,8 @@
|
|
|
207
160
|
"uniqueConstraints": {},
|
|
208
161
|
"checkConstraints": {}
|
|
209
162
|
},
|
|
210
|
-
"
|
|
211
|
-
"name": "
|
|
163
|
+
"accounts": {
|
|
164
|
+
"name": "accounts",
|
|
212
165
|
"columns": {
|
|
213
166
|
"id": {
|
|
214
167
|
"name": "id",
|
|
@@ -217,30 +170,71 @@
|
|
|
217
170
|
"notNull": true,
|
|
218
171
|
"autoincrement": false
|
|
219
172
|
},
|
|
220
|
-
"
|
|
221
|
-
"name": "
|
|
173
|
+
"user_id": {
|
|
174
|
+
"name": "user_id",
|
|
222
175
|
"type": "text",
|
|
223
176
|
"primaryKey": false,
|
|
224
177
|
"notNull": true,
|
|
225
178
|
"autoincrement": false
|
|
226
179
|
},
|
|
227
|
-
"
|
|
228
|
-
"name": "
|
|
180
|
+
"account_id": {
|
|
181
|
+
"name": "account_id",
|
|
229
182
|
"type": "text",
|
|
230
183
|
"primaryKey": false,
|
|
231
184
|
"notNull": true,
|
|
232
185
|
"autoincrement": false
|
|
233
186
|
},
|
|
234
|
-
"
|
|
235
|
-
"name": "
|
|
236
|
-
"type": "
|
|
187
|
+
"provider_id": {
|
|
188
|
+
"name": "provider_id",
|
|
189
|
+
"type": "text",
|
|
237
190
|
"primaryKey": false,
|
|
238
191
|
"notNull": true,
|
|
239
|
-
"autoincrement": false
|
|
240
|
-
"default": false
|
|
192
|
+
"autoincrement": false
|
|
241
193
|
},
|
|
242
|
-
"
|
|
243
|
-
"name": "
|
|
194
|
+
"access_token": {
|
|
195
|
+
"name": "access_token",
|
|
196
|
+
"type": "text",
|
|
197
|
+
"primaryKey": false,
|
|
198
|
+
"notNull": false,
|
|
199
|
+
"autoincrement": false
|
|
200
|
+
},
|
|
201
|
+
"refresh_token": {
|
|
202
|
+
"name": "refresh_token",
|
|
203
|
+
"type": "text",
|
|
204
|
+
"primaryKey": false,
|
|
205
|
+
"notNull": false,
|
|
206
|
+
"autoincrement": false
|
|
207
|
+
},
|
|
208
|
+
"access_token_expires_at": {
|
|
209
|
+
"name": "access_token_expires_at",
|
|
210
|
+
"type": "integer",
|
|
211
|
+
"primaryKey": false,
|
|
212
|
+
"notNull": false,
|
|
213
|
+
"autoincrement": false
|
|
214
|
+
},
|
|
215
|
+
"refresh_token_expires_at": {
|
|
216
|
+
"name": "refresh_token_expires_at",
|
|
217
|
+
"type": "integer",
|
|
218
|
+
"primaryKey": false,
|
|
219
|
+
"notNull": false,
|
|
220
|
+
"autoincrement": false
|
|
221
|
+
},
|
|
222
|
+
"scope": {
|
|
223
|
+
"name": "scope",
|
|
224
|
+
"type": "text",
|
|
225
|
+
"primaryKey": false,
|
|
226
|
+
"notNull": false,
|
|
227
|
+
"autoincrement": false
|
|
228
|
+
},
|
|
229
|
+
"id_token": {
|
|
230
|
+
"name": "id_token",
|
|
231
|
+
"type": "text",
|
|
232
|
+
"primaryKey": false,
|
|
233
|
+
"notNull": false,
|
|
234
|
+
"autoincrement": false
|
|
235
|
+
},
|
|
236
|
+
"password": {
|
|
237
|
+
"name": "password",
|
|
244
238
|
"type": "text",
|
|
245
239
|
"primaryKey": false,
|
|
246
240
|
"notNull": false,
|
|
@@ -261,16 +255,22 @@
|
|
|
261
255
|
"autoincrement": false
|
|
262
256
|
}
|
|
263
257
|
},
|
|
264
|
-
"indexes": {
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
"
|
|
268
|
-
|
|
258
|
+
"indexes": {},
|
|
259
|
+
"foreignKeys": {
|
|
260
|
+
"accounts_user_id_users_id_fk": {
|
|
261
|
+
"name": "accounts_user_id_users_id_fk",
|
|
262
|
+
"tableFrom": "accounts",
|
|
263
|
+
"tableTo": "users",
|
|
264
|
+
"columnsFrom": [
|
|
265
|
+
"user_id"
|
|
269
266
|
],
|
|
270
|
-
"
|
|
267
|
+
"columnsTo": [
|
|
268
|
+
"id"
|
|
269
|
+
],
|
|
270
|
+
"onDelete": "cascade",
|
|
271
|
+
"onUpdate": "no action"
|
|
271
272
|
}
|
|
272
273
|
},
|
|
273
|
-
"foreignKeys": {},
|
|
274
274
|
"compositePrimaryKeys": {},
|
|
275
275
|
"uniqueConstraints": {},
|
|
276
276
|
"checkConstraints": {}
|
|
@@ -8,12 +8,12 @@ export const accounts = sqliteTable('accounts', t => ({
|
|
|
8
8
|
userId: t.text().notNull().references(() => users.id, { onDelete: 'cascade' }),
|
|
9
9
|
accountId: t.text().notNull(),
|
|
10
10
|
providerId: t.text().notNull(),
|
|
11
|
-
idToken: t.text(),
|
|
12
11
|
accessToken: t.text(),
|
|
13
|
-
accessTokenExpiresAt: t.integer({ mode: 'timestamp' }),
|
|
14
12
|
refreshToken: t.text(),
|
|
13
|
+
accessTokenExpiresAt: t.integer({ mode: 'timestamp' }),
|
|
15
14
|
refreshTokenExpiresAt: t.integer({ mode: 'timestamp' }),
|
|
16
15
|
scope: t.text(),
|
|
16
|
+
idToken: t.text(),
|
|
17
17
|
password: t.text(),
|
|
18
18
|
createdAt: t.integer({ mode: 'timestamp' }).notNull().$defaultFn(() => new Date()),
|
|
19
19
|
updatedAt: t.integer({ mode: 'timestamp' }).notNull().$defaultFn(() => new Date()).$onUpdate(() => new Date()),
|
|
@@ -9,26 +9,26 @@
|
|
|
9
9
|
"preview": "vite preview --open"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@kevinmarrec/vue-i18n": "^1.1.
|
|
13
|
-
"@orpc/client": "^1.9.
|
|
14
|
-
"@orpc/tanstack-query": "1.9.
|
|
15
|
-
"@tanstack/query-core": "^5.90.
|
|
16
|
-
"@tanstack/vue-query": "^5.90.
|
|
12
|
+
"@kevinmarrec/vue-i18n": "^1.1.2",
|
|
13
|
+
"@orpc/client": "^1.9.4",
|
|
14
|
+
"@orpc/tanstack-query": "1.9.4",
|
|
15
|
+
"@tanstack/query-core": "^5.90.5",
|
|
16
|
+
"@tanstack/vue-query": "^5.90.5",
|
|
17
17
|
"@unhead/vue": "^2.0.19",
|
|
18
|
-
"unocss": "^66.5.
|
|
18
|
+
"unocss": "^66.5.4",
|
|
19
19
|
"vue": "^3.5.22"
|
|
20
20
|
},
|
|
21
21
|
"devDependencies": {
|
|
22
|
-
"@kevinmarrec/unocss-config": "^1.3.
|
|
23
|
-
"@kevinmarrec/vite-plugin-dark-mode": "^1.1.
|
|
22
|
+
"@kevinmarrec/unocss-config": "^1.3.3",
|
|
23
|
+
"@kevinmarrec/vite-plugin-dark-mode": "^1.1.2",
|
|
24
24
|
"@modyfi/vite-plugin-yaml": "^1.1.1",
|
|
25
25
|
"@unhead/addons": "^2.0.19",
|
|
26
|
-
"@unocss/vite": "^66.5.
|
|
26
|
+
"@unocss/vite": "^66.5.4",
|
|
27
27
|
"@vitejs/plugin-vue": "^6.0.1",
|
|
28
28
|
"beasties": "^0.3.5",
|
|
29
|
-
"rollup-plugin-visualizer": "^6.0.
|
|
30
|
-
"vite": "^7.1.
|
|
31
|
-
"vite-plugin-vue-devtools": "^8.0.
|
|
29
|
+
"rollup-plugin-visualizer": "^6.0.5",
|
|
30
|
+
"vite": "^7.1.10",
|
|
31
|
+
"vite-plugin-vue-devtools": "^8.0.3",
|
|
32
32
|
"vite-ssg": "^28.2.1",
|
|
33
33
|
"vite-tsconfig-paths": "^5.1.4"
|
|
34
34
|
}
|
package/template/gitignore
CHANGED
package/template/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "app",
|
|
3
3
|
"type": "module",
|
|
4
4
|
"private": true,
|
|
5
|
-
"packageManager": "bun@1.
|
|
5
|
+
"packageManager": "bun@1.3.1",
|
|
6
6
|
"engines": {
|
|
7
7
|
"node": "lts/*"
|
|
8
8
|
},
|
|
@@ -22,12 +22,12 @@
|
|
|
22
22
|
"update": "bunx taze -I -rwi"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
|
-
"@kevinmarrec/eslint-config": "^1.5.
|
|
26
|
-
"@kevinmarrec/stylelint-config": "^1.2.
|
|
25
|
+
"@kevinmarrec/eslint-config": "^1.5.3",
|
|
26
|
+
"@kevinmarrec/stylelint-config": "^1.2.2",
|
|
27
27
|
"@kevinmarrec/tsconfig": "^1.1.0",
|
|
28
28
|
"concurrently": "^9.2.1",
|
|
29
|
-
"eslint": "^9.
|
|
30
|
-
"knip": "^5.
|
|
29
|
+
"eslint": "^9.38.0",
|
|
30
|
+
"knip": "^5.66.0",
|
|
31
31
|
"stylelint": "^16.25.0",
|
|
32
32
|
"typescript": "~5.9.3",
|
|
33
33
|
"vue-tsc": "^3.1.1"
|
|
@@ -1,20 +1,14 @@
|
|
|
1
|
-
CREATE TABLE `
|
|
1
|
+
CREATE TABLE `users` (
|
|
2
2
|
`id` text PRIMARY KEY NOT NULL,
|
|
3
|
-
`
|
|
4
|
-
`
|
|
5
|
-
`
|
|
6
|
-
`
|
|
7
|
-
`access_token` text,
|
|
8
|
-
`access_token_expires_at` integer,
|
|
9
|
-
`refresh_token` text,
|
|
10
|
-
`refresh_token_expires_at` integer,
|
|
11
|
-
`scope` text,
|
|
12
|
-
`password` text,
|
|
3
|
+
`name` text NOT NULL,
|
|
4
|
+
`email` text NOT NULL,
|
|
5
|
+
`email_verified` integer DEFAULT false NOT NULL,
|
|
6
|
+
`image` text,
|
|
13
7
|
`created_at` integer NOT NULL,
|
|
14
|
-
`updated_at` integer NOT NULL
|
|
15
|
-
FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON UPDATE no action ON DELETE cascade
|
|
8
|
+
`updated_at` integer NOT NULL
|
|
16
9
|
);
|
|
17
10
|
--> statement-breakpoint
|
|
11
|
+
CREATE UNIQUE INDEX `users_email_unique` ON `users` (`email`);--> statement-breakpoint
|
|
18
12
|
CREATE TABLE `sessions` (
|
|
19
13
|
`id` text PRIMARY KEY NOT NULL,
|
|
20
14
|
`user_id` text NOT NULL,
|
|
@@ -28,17 +22,23 @@ CREATE TABLE `sessions` (
|
|
|
28
22
|
);
|
|
29
23
|
--> statement-breakpoint
|
|
30
24
|
CREATE UNIQUE INDEX `sessions_token_unique` ON `sessions` (`token`);--> statement-breakpoint
|
|
31
|
-
CREATE TABLE `
|
|
25
|
+
CREATE TABLE `accounts` (
|
|
32
26
|
`id` text PRIMARY KEY NOT NULL,
|
|
33
|
-
`
|
|
34
|
-
`
|
|
35
|
-
`
|
|
36
|
-
`
|
|
27
|
+
`user_id` text NOT NULL,
|
|
28
|
+
`account_id` text NOT NULL,
|
|
29
|
+
`provider_id` text NOT NULL,
|
|
30
|
+
`access_token` text,
|
|
31
|
+
`refresh_token` text,
|
|
32
|
+
`access_token_expires_at` integer,
|
|
33
|
+
`refresh_token_expires_at` integer,
|
|
34
|
+
`scope` text,
|
|
35
|
+
`id_token` text,
|
|
36
|
+
`password` text,
|
|
37
37
|
`created_at` integer NOT NULL,
|
|
38
|
-
`updated_at` integer NOT NULL
|
|
38
|
+
`updated_at` integer NOT NULL,
|
|
39
|
+
FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON UPDATE no action ON DELETE cascade
|
|
39
40
|
);
|
|
40
41
|
--> statement-breakpoint
|
|
41
|
-
CREATE UNIQUE INDEX `users_email_unique` ON `users` (`email`);--> statement-breakpoint
|
|
42
42
|
CREATE TABLE `verifications` (
|
|
43
43
|
`id` text PRIMARY KEY NOT NULL,
|
|
44
44
|
`identifier` text NOT NULL,
|