create-m5kdev 0.32.8 → 0.34.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.
- package/dist/src/catalog.cjs +76 -11
- package/dist/src/catalog.cjs.map +1 -1
- package/dist/src/catalog.d.cts +13 -1
- package/dist/src/create.cjs +6 -2
- package/dist/src/create.cjs.map +1 -1
- package/dist/src/doctor.cjs +13 -7
- package/dist/src/doctor.cjs.map +1 -1
- package/dist/src/fs.cjs +10 -5
- package/dist/src/fs.cjs.map +1 -1
- package/dist/src/prompts.cjs +32 -0
- package/dist/src/prompts.cjs.map +1 -1
- package/dist/src/prompts.d.cts +7 -1
- package/dist/src/template.cjs +23 -4
- package/dist/src/template.cjs.map +1 -1
- package/dist/src/template.d.cts +17 -3
- package/dist/src/types.d.cts +11 -4
- package/package.json +4 -1
- package/templates/minimal-app/.cursor/rules/module-dto-guide.mdc +1 -1
- package/templates/minimal-app/.cursor/rules/module-grants-guide.mdc +3 -3
- package/templates/minimal-app/.cursor/rules/module-module-guide.mdc +3 -2
- package/templates/minimal-app/.cursor/rules/module-service-guide.mdc +1 -1
- package/templates/minimal-app/.dockerignore.tpl +31 -0
- package/templates/minimal-app/.gitignore.tpl +1 -0
- package/templates/minimal-app/AGENTS.md.tpl +13 -10
- package/templates/minimal-app/CLAUDE.md.tpl +132 -131
- package/templates/minimal-app/README.md.tpl +50 -19
- package/templates/minimal-app/apps/e2e/package.json.tpl +23 -23
- package/templates/minimal-app/apps/e2e/playwright.config.ts.tpl +51 -39
- package/templates/minimal-app/apps/e2e/playwright.expo.config.ts.tpl +38 -38
- package/templates/minimal-app/apps/e2e/servers.ts.tpl +136 -112
- package/templates/minimal-app/apps/e2e/tests/conversation.spec.ts.tpl +22 -0
- package/templates/minimal-app/apps/e2e/tests/email.spec.ts.tpl +47 -47
- package/templates/minimal-app/apps/e2e/tests/expo-helpers.ts.tpl +73 -73
- package/templates/minimal-app/apps/e2e/tests/expo-standard.spec.ts.tpl +517 -517
- package/templates/minimal-app/apps/e2e/tests/expo-waitlist.spec.ts.tpl +94 -94
- package/templates/minimal-app/apps/e2e/tests/files.spec.ts.tpl +35 -0
- package/templates/minimal-app/apps/e2e/tests/helpers.ts.tpl +289 -289
- package/templates/minimal-app/apps/e2e/tests/standard.spec.ts.tpl +516 -516
- package/templates/minimal-app/apps/e2e/tests/waitlist.spec.ts.tpl +107 -107
- package/templates/minimal-app/apps/e2e/tests/workflow.spec.ts.tpl +26 -0
- package/templates/minimal-app/apps/e2e/tsconfig.json.tpl +10 -10
- package/templates/minimal-app/apps/email/package.json.tpl +34 -34
- package/templates/minimal-app/apps/email/src/emails/trialEndingEmail.tsx.tpl +40 -0
- package/templates/minimal-app/apps/email/src/index.ts.tpl +7 -0
- package/templates/minimal-app/apps/email/src/resources.ts.tpl +72 -65
- package/templates/minimal-app/apps/expo/app.json.tpl +36 -36
- package/templates/minimal-app/apps/expo/eslint.config.js.tpl +8 -8
- package/templates/minimal-app/apps/expo/metro.config.js.tpl +16 -16
- package/templates/minimal-app/apps/expo/package.json.tpl +59 -59
- package/templates/minimal-app/apps/expo/src/app/_layout.tsx.tpl +31 -31
- package/templates/minimal-app/apps/expo/src/app/claim-account.tsx.tpl +151 -151
- package/templates/minimal-app/apps/expo/src/app/forgot-password.tsx.tpl +53 -53
- package/templates/minimal-app/apps/expo/src/app/index.tsx.tpl +8 -8
- package/templates/minimal-app/apps/expo/src/app/login.tsx.tpl +71 -71
- package/templates/minimal-app/apps/expo/src/app/logout.tsx.tpl +19 -19
- package/templates/minimal-app/apps/expo/src/app/organization/accept-invitation.tsx.tpl +85 -85
- package/templates/minimal-app/apps/expo/src/app/posts.tsx.tpl +40 -40
- package/templates/minimal-app/apps/expo/src/app/reset-password.tsx.tpl +75 -75
- package/templates/minimal-app/apps/expo/src/app/signup.tsx.tpl +193 -193
- package/templates/minimal-app/apps/expo/src/components/AuthScaffold.tsx.tpl +34 -34
- package/templates/minimal-app/apps/expo/src/components/FormTextField.tsx.tpl +37 -37
- package/templates/minimal-app/apps/expo/src/components/LoadingScreen.tsx.tpl +10 -10
- package/templates/minimal-app/apps/expo/src/components/StatusText.tsx.tpl +22 -22
- package/templates/minimal-app/apps/expo/src/config.ts.tpl +9 -9
- package/templates/minimal-app/apps/expo/src/global.css.tpl +11 -11
- package/templates/minimal-app/apps/expo/src/lib/trpc.ts.tpl +20 -20
- package/templates/minimal-app/apps/expo/tsconfig.json.tpl +11 -11
- package/templates/minimal-app/apps/expo/uniwind-env.d.ts.tpl +1 -1
- package/templates/minimal-app/apps/landing/.env.production.example.tpl +7 -0
- package/templates/minimal-app/apps/landing/Dockerfile.tpl +39 -0
- package/templates/minimal-app/apps/landing/fly.toml.tpl +20 -0
- package/templates/minimal-app/apps/landing/index.html.tpl +35 -0
- package/templates/minimal-app/apps/landing/package.json.tpl +34 -0
- package/templates/minimal-app/apps/landing/scripts/fly-deploy.mjs.tpl +75 -0
- package/templates/minimal-app/apps/landing/scripts/fly-secrets.mjs.tpl +31 -0
- package/templates/minimal-app/apps/landing/src/App.tsx.tpl +12 -0
- package/templates/minimal-app/apps/landing/src/LandingPage.tsx.tpl +37 -0
- package/templates/minimal-app/apps/landing/src/index.css.tpl +24 -0
- package/templates/minimal-app/apps/landing/src/main.tsx.tpl +16 -0
- package/templates/minimal-app/apps/landing/src/vite-env.d.ts.tpl +11 -0
- package/templates/minimal-app/apps/landing/tsconfig.json.tpl +12 -0
- package/templates/minimal-app/apps/landing/vite.config.ts.tpl +25 -0
- package/templates/minimal-app/apps/server/AGENTS.md.tpl +54 -46
- package/templates/minimal-app/apps/server/{drizzle/seed.e2e.ts.tpl → db.e2e.ts.tpl} +57 -40
- package/templates/minimal-app/apps/server/{drizzle/seed.ts.tpl → db.ts.tpl} +27 -20
- package/templates/minimal-app/apps/server/drizzle/0002_concerned_proudstar.sql +3 -0
- package/templates/minimal-app/apps/server/drizzle/0003_silly_the_liberteens.sql +27 -0
- package/templates/minimal-app/apps/server/drizzle/meta/0000_snapshot.json.tpl +56 -166
- package/templates/minimal-app/apps/server/drizzle/meta/0001_snapshot.json.tpl +1796 -1910
- package/templates/minimal-app/apps/server/drizzle/meta/0002_snapshot.json.tpl +1818 -0
- package/templates/minimal-app/apps/server/drizzle/meta/0003_snapshot.json.tpl +2137 -0
- package/templates/minimal-app/apps/server/drizzle/meta/_journal.json.tpl +15 -1
- package/templates/minimal-app/apps/server/drizzle.config.ts.tpl +3 -33
- package/templates/minimal-app/apps/server/package.json.tpl +57 -56
- package/templates/minimal-app/apps/server/src/app.ts.tpl +149 -141
- package/templates/minimal-app/apps/server/src/index.ts.tpl +12 -65
- package/templates/minimal-app/apps/server/src/modules/conversation/conversation.mastra.ts.tpl +26 -0
- package/templates/minimal-app/apps/server/src/modules/demo-workflow/demo-workflow.module.ts.tpl +47 -0
- package/templates/minimal-app/apps/server/src/modules/demo-workflow/demo-workflow.service.ts.tpl +43 -0
- package/templates/minimal-app/apps/server/src/modules/demo-workflow/demo-workflow.trpc.ts.tpl +16 -0
- package/templates/minimal-app/apps/server/src/modules/posts/posts.db.ts.tpl +28 -28
- package/templates/minimal-app/apps/server/src/modules/posts/posts.grants.ts.tpl +28 -30
- package/templates/minimal-app/apps/server/src/modules/posts/posts.module.ts.tpl +54 -54
- package/templates/minimal-app/apps/server/src/modules/posts/posts.repository.ts.tpl +67 -67
- package/templates/minimal-app/apps/server/src/modules/posts/posts.service.ts.tpl +116 -115
- package/templates/minimal-app/apps/server/src/modules/posts/posts.trpc.ts.tpl +37 -37
- package/templates/minimal-app/apps/server/src/modules/test-harness/test-harness.module.ts.tpl +279 -279
- package/templates/minimal-app/apps/server/src/schema.ts.tpl +31 -20
- package/templates/minimal-app/apps/server/src/types.ts.tpl +12 -1
- package/templates/minimal-app/apps/server/tsconfig.json.tpl +1 -1
- package/templates/minimal-app/apps/server/tsup.config.ts.tpl +23 -9
- package/templates/minimal-app/apps/shared/.env.example.tpl +5 -0
- package/templates/minimal-app/apps/shared/.env.production.example.tpl +23 -0
- package/templates/minimal-app/apps/shared/.env.tpl +5 -0
- package/templates/minimal-app/apps/shared/Dockerfile.tpl +48 -0
- package/templates/minimal-app/apps/shared/fly.toml.tpl +24 -0
- package/templates/minimal-app/apps/shared/package.json.tpl +25 -24
- package/templates/minimal-app/apps/shared/scripts/fly-deploy.mjs.tpl +75 -0
- package/templates/minimal-app/apps/shared/scripts/fly-secrets.mjs.tpl +31 -0
- package/templates/minimal-app/apps/shared/src/modules/app/app.constants.ts.tpl +28 -28
- package/templates/minimal-app/apps/shared/src/modules/conversation/conversation.constants.ts.tpl +1 -0
- package/templates/minimal-app/apps/shared/src/modules/notification/notification.schema.ts.tpl +3 -3
- package/templates/minimal-app/apps/shared/src/modules/posts/posts.constants.ts.tpl +5 -5
- package/templates/minimal-app/apps/shared/src/modules/posts/posts.schema.ts.tpl +25 -25
- package/templates/minimal-app/apps/webapp/package.json.tpl +53 -53
- package/templates/minimal-app/apps/webapp/public/push-sw.js.tpl +34 -34
- package/templates/minimal-app/apps/webapp/src/App.tsx.tpl +46 -44
- package/templates/minimal-app/apps/webapp/src/Layout.tsx.tpl +96 -65
- package/templates/minimal-app/apps/webapp/src/Router.tsx.tpl +114 -93
- package/templates/minimal-app/apps/webapp/src/index.css.tpl +15 -15
- package/templates/minimal-app/apps/webapp/src/main.tsx.tpl +26 -26
- package/templates/minimal-app/apps/webapp/src/modules/conversation/ConversationRoute.tsx.tpl +36 -0
- package/templates/minimal-app/apps/webapp/src/modules/files/FilesRoute.tsx.tpl +88 -0
- package/templates/minimal-app/apps/webapp/src/modules/files/hooks/useFilesRoute.ts.tpl +50 -0
- package/templates/minimal-app/apps/webapp/src/modules/workflows/WorkflowsRoute.tsx.tpl +97 -0
- package/templates/minimal-app/apps/webapp/src/modules/workflows/hooks/useWorkflowsRoute.ts.tpl +64 -0
- package/templates/minimal-app/apps/webapp/src/utils/i18n.ts.tpl +13 -13
- package/templates/minimal-app/apps/webapp/src/utils/trpc.ts.tpl +10 -10
- package/templates/minimal-app/apps/webapp/src/vite-env.d.ts.tpl +1 -1
- package/templates/minimal-app/apps/webapp/translations/en/app.json.tpl +7 -7
- package/templates/minimal-app/apps/webapp/translations/en/{{APP_SLUG}}.json.tpl +193 -135
- package/templates/minimal-app/apps/webapp/tsconfig.json.tpl +17 -17
- package/templates/minimal-app/apps/webapp/vite.config.ts.tpl +31 -31
- package/templates/minimal-app/biome.json.tpl +17 -12
- package/templates/minimal-app/package.json.tpl +9 -5
- package/templates/minimal-app/pnpm-workspace.yaml.tpl +67 -58
- package/templates/minimal-app/template.manifest.json +92 -2
- package/templates/minimal-app/apps/server/drizzle/db.ts.tpl +0 -26
- package/templates/minimal-app/apps/server/drizzle/guard.ts.tpl +0 -36
- package/templates/minimal-app/apps/server/drizzle/reset.ts.tpl +0 -40
- package/templates/minimal-app/apps/server/drizzle/sync.ts.tpl +0 -16
- package/templates/minimal-app/apps/server/src/lib/auth.ts.tpl +0 -12
|
@@ -1,135 +1,193 @@
|
|
|
1
|
-
{
|
|
2
|
-
"layout": {
|
|
3
|
-
"brand": {
|
|
4
|
-
"eyebrow": "Framework Starter",
|
|
5
|
-
"tagline": "Opinionated enough to ship, compact enough to understand in one sitting."
|
|
6
|
-
},
|
|
7
|
-
"workspace": {
|
|
8
|
-
"eyebrow": "Included by Default",
|
|
9
|
-
"title": "Auth, modules, and one honest feature.",
|
|
10
|
-
"body": "This starter keeps the stack visible: Better Auth, Drizzle, tRPC, React Router, HeroUI, and a single editorial posts module.",
|
|
11
|
-
"local": "Local SQLite",
|
|
12
|
-
"auth": "Better Auth"
|
|
13
|
-
},
|
|
14
|
-
"navigation": {
|
|
15
|
-
"posts": "Posts",
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
"
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
"
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
"
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
"
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
"
|
|
57
|
-
"
|
|
58
|
-
"
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
"
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
"
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
"
|
|
70
|
-
"
|
|
71
|
-
"
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
"
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
"
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
"
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
"
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
"
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
"
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
"
|
|
98
|
-
"
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
"
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
"
|
|
105
|
-
"
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
"
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
"
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
"
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
"
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
"
|
|
126
|
-
"
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
1
|
+
{
|
|
2
|
+
"layout": {
|
|
3
|
+
"brand": {
|
|
4
|
+
"eyebrow": "Framework Starter",
|
|
5
|
+
"tagline": "Opinionated enough to ship, compact enough to understand in one sitting."
|
|
6
|
+
},
|
|
7
|
+
"workspace": {
|
|
8
|
+
"eyebrow": "Included by Default",
|
|
9
|
+
"title": "Auth, modules, and one honest feature.",
|
|
10
|
+
"body": "This starter keeps the stack visible: Better Auth, Drizzle, tRPC, React Router, HeroUI, and a single editorial posts module.",
|
|
11
|
+
"local": "Local SQLite",
|
|
12
|
+
"auth": "Better Auth"
|
|
13
|
+
},
|
|
14
|
+
"navigation": {
|
|
15
|
+
"posts": "Posts",
|
|
16
|
+
"conversation": "Conversation",
|
|
17
|
+
"files": "Files",
|
|
18
|
+
"workflows": "Workflows",
|
|
19
|
+
"organization": "Organization",
|
|
20
|
+
"account": "Account",
|
|
21
|
+
"members": "Members",
|
|
22
|
+
"childOrgs": "Child orgs",
|
|
23
|
+
"orgPreferences": "Org preferences",
|
|
24
|
+
"profile": "Profile",
|
|
25
|
+
"invites": "Invites",
|
|
26
|
+
"admin": "Admin"
|
|
27
|
+
},
|
|
28
|
+
"push": {
|
|
29
|
+
"eyebrow": "Browser push",
|
|
30
|
+
"body": "Enable notifications for this browser profile. Requires HTTPS in production, VAPID keys on the server, Redis for the worker, and a running server process.",
|
|
31
|
+
"cta": "Enable push for this device",
|
|
32
|
+
"enabled": "This browser is registered for push.",
|
|
33
|
+
"denied": "Notification permission was denied.",
|
|
34
|
+
"unsupported": "Push messaging is not supported in this browser.",
|
|
35
|
+
"noVapid": "Server is missing VAPID public key configuration.",
|
|
36
|
+
"badSubscription": "Could not read push subscription from the browser.",
|
|
37
|
+
"failed": "Could not enable push. Check the console and server logs.",
|
|
38
|
+
"vapidMissing": "Server did not return a VAPID key — set VAPID_PUBLIC_KEY and VAPID_PRIVATE_KEY, then restart.",
|
|
39
|
+
"blockedHint": "Notifications are blocked for this site. Enable them in the browser address bar or site settings, then try again.",
|
|
40
|
+
"permissionGranted": "Permission granted — tap below to register this browser with the server."
|
|
41
|
+
},
|
|
42
|
+
"account": {
|
|
43
|
+
"eyebrow": "Signed In As",
|
|
44
|
+
"light": "Light mode",
|
|
45
|
+
"dark": "Dark mode",
|
|
46
|
+
"signOut": "Sign out"
|
|
47
|
+
},
|
|
48
|
+
"header": {
|
|
49
|
+
"eyebrow": "Minimal Blog Platform",
|
|
50
|
+
"title": "Editorial control panel",
|
|
51
|
+
"runtime": "tRPC + URL state + HeroUI"
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
"posts": {
|
|
55
|
+
"hero": {
|
|
56
|
+
"eyebrow": "Posts Module",
|
|
57
|
+
"title": "Build, refine, and publish without losing the shape of the stack.",
|
|
58
|
+
"body": "The example module is intentionally complete: filtered list queries, modal-driven create and edit flows, publish actions, soft deletion, and a live preview pane.",
|
|
59
|
+
"new": "Create post",
|
|
60
|
+
"syncing": "Refreshing",
|
|
61
|
+
"synced": "Live against the local database"
|
|
62
|
+
},
|
|
63
|
+
"stats": {
|
|
64
|
+
"total": "Total",
|
|
65
|
+
"published": "Published",
|
|
66
|
+
"drafts": "Drafts"
|
|
67
|
+
},
|
|
68
|
+
"filters": {
|
|
69
|
+
"searchLabel": "Search posts",
|
|
70
|
+
"searchPlaceholder": "Search by title, slug, excerpt, or body",
|
|
71
|
+
"statusLabel": "Status",
|
|
72
|
+
"all": "All posts",
|
|
73
|
+
"draft": "Draft",
|
|
74
|
+
"published": "Published"
|
|
75
|
+
},
|
|
76
|
+
"meta": {
|
|
77
|
+
"updated": "Updated",
|
|
78
|
+
"published": "Published"
|
|
79
|
+
},
|
|
80
|
+
"actions": {
|
|
81
|
+
"edit": "Edit",
|
|
82
|
+
"publish": "Publish",
|
|
83
|
+
"delete": "Delete"
|
|
84
|
+
},
|
|
85
|
+
"empty": {
|
|
86
|
+
"eyebrow": "Nothing yet",
|
|
87
|
+
"title": "Your editorial desk is ready for the first post.",
|
|
88
|
+
"body": "Create a first entry to see the full loop: draft creation, inline editing, publishing, and soft deletion. Seed data appears after you run the scaffolded seed script.",
|
|
89
|
+
"action": "Write the first post"
|
|
90
|
+
},
|
|
91
|
+
"pagination": {
|
|
92
|
+
"summary": "Page {{page}} of {{pageCount}}",
|
|
93
|
+
"previous": "Previous",
|
|
94
|
+
"next": "Next"
|
|
95
|
+
},
|
|
96
|
+
"preview": {
|
|
97
|
+
"eyebrow": "Selected Draft",
|
|
98
|
+
"emptyTitle": "Preview panel",
|
|
99
|
+
"emptyBody": "Choose a post from the list to inspect the current draft or published copy.",
|
|
100
|
+
"updated": "Updated",
|
|
101
|
+
"openEditor": "Open in editor"
|
|
102
|
+
},
|
|
103
|
+
"editor": {
|
|
104
|
+
"newEyebrow": "New draft",
|
|
105
|
+
"editEyebrow": "Update draft",
|
|
106
|
+
"newTitle": "Shape a new post",
|
|
107
|
+
"editTitle": "Refine this post",
|
|
108
|
+
"fields": {
|
|
109
|
+
"title": "Title",
|
|
110
|
+
"slug": "Slug",
|
|
111
|
+
"excerpt": "Excerpt",
|
|
112
|
+
"content": "Content"
|
|
113
|
+
},
|
|
114
|
+
"cancel": "Cancel",
|
|
115
|
+
"save": "Save changes",
|
|
116
|
+
"create": "Create draft"
|
|
117
|
+
},
|
|
118
|
+
"deleteDialog": {
|
|
119
|
+
"title": "Archive this post?",
|
|
120
|
+
"body": "The post will be soft-deleted and removed from the main list.",
|
|
121
|
+
"confirm": "Archive post",
|
|
122
|
+
"cancel": "Keep it"
|
|
123
|
+
},
|
|
124
|
+
"toast": {
|
|
125
|
+
"created": "Draft created.",
|
|
126
|
+
"updated": "Post updated.",
|
|
127
|
+
"published": "Post published.",
|
|
128
|
+
"deleted": "Post archived.",
|
|
129
|
+
"validation": "Title and content are required."
|
|
130
|
+
}
|
|
131
|
+
},
|
|
132
|
+
"workflows": {
|
|
133
|
+
"hero": {
|
|
134
|
+
"eyebrow": "Workflows",
|
|
135
|
+
"title": "Run a job and watch it finish.",
|
|
136
|
+
"body": "Trigger a demo ping on the fast queue. The run list is live against the workflow table — queued, running, then completed.",
|
|
137
|
+
"run": "Run demo job",
|
|
138
|
+
"syncing": "Refreshing",
|
|
139
|
+
"synced": "Live against the job queue"
|
|
140
|
+
},
|
|
141
|
+
"empty": {
|
|
142
|
+
"title": "No runs yet",
|
|
143
|
+
"body": "Trigger a demo job to see status appear here."
|
|
144
|
+
},
|
|
145
|
+
"columns": {
|
|
146
|
+
"id": "Job id",
|
|
147
|
+
"updated": "Updated"
|
|
148
|
+
},
|
|
149
|
+
"status": {
|
|
150
|
+
"queued": "Queued",
|
|
151
|
+
"running": "Running",
|
|
152
|
+
"completed": "Completed",
|
|
153
|
+
"failed": "Failed"
|
|
154
|
+
},
|
|
155
|
+
"toast": {
|
|
156
|
+
"triggered": "Demo job queued."
|
|
157
|
+
}
|
|
158
|
+
},
|
|
159
|
+
"conversation": {
|
|
160
|
+
"hero": {
|
|
161
|
+
"eyebrow": "Conversation",
|
|
162
|
+
"title": "Chat with a Mastra agent.",
|
|
163
|
+
"body": "Session-only transcript for this signed-in user. Set OPENROUTER_API_KEY to get a reply. Memory is optional on the Agent — this example does not persist threads."
|
|
164
|
+
}
|
|
165
|
+
},
|
|
166
|
+
"files": {
|
|
167
|
+
"hero": {
|
|
168
|
+
"eyebrow": "Files",
|
|
169
|
+
"title": "Upload an image and see it inventoried.",
|
|
170
|
+
"body": "Local uploads land on disk and in the files table. Organization-scoped rows stamp the active member.",
|
|
171
|
+
"upload": "Upload image",
|
|
172
|
+
"syncing": "Refreshing",
|
|
173
|
+
"synced": "Live against the files table"
|
|
174
|
+
},
|
|
175
|
+
"empty": {
|
|
176
|
+
"title": "No files yet",
|
|
177
|
+
"body": "Upload an image to see it listed here."
|
|
178
|
+
},
|
|
179
|
+
"row": {
|
|
180
|
+
"organization": "Organization"
|
|
181
|
+
},
|
|
182
|
+
"toast": {
|
|
183
|
+
"uploaded": "File uploaded.",
|
|
184
|
+
"failed": "Upload failed."
|
|
185
|
+
}
|
|
186
|
+
},
|
|
187
|
+
"auth": {
|
|
188
|
+
"header": {
|
|
189
|
+
"eyebrow": "Framework Starter",
|
|
190
|
+
"tagline": "A minimal m5kdev starter with auth, tRPC, and one polished posts module."
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
{
|
|
2
|
-
"extends": "@m5kdev/config/tsconfig.vite.json",
|
|
3
|
-
"compilerOptions": {
|
|
4
|
-
"baseUrl": ".",
|
|
5
|
-
"ignoreDeprecations": "6.0",
|
|
6
|
-
"rootDir": ".",
|
|
7
|
-
"outDir": "dist",
|
|
8
|
-
"tsBuildInfoFile": "dist/tsconfig.lib.tsbuildinfo",
|
|
9
|
-
"paths": {
|
|
10
|
-
"@/components/*": ["./src/components/*"],
|
|
11
|
-
"@/modules/*": ["./src/modules/*"],
|
|
12
|
-
"@/utils/*": ["./src/utils/*"]
|
|
13
|
-
}
|
|
14
|
-
},
|
|
15
|
-
"include": ["src"],
|
|
16
|
-
"exclude": ["dist", "node_modules"]
|
|
17
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"extends": "@m5kdev/config/tsconfig.vite.json",
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"baseUrl": ".",
|
|
5
|
+
"ignoreDeprecations": "6.0",
|
|
6
|
+
"rootDir": ".",
|
|
7
|
+
"outDir": "dist",
|
|
8
|
+
"tsBuildInfoFile": "dist/tsconfig.lib.tsbuildinfo",
|
|
9
|
+
"paths": {
|
|
10
|
+
"@/components/*": ["./src/components/*"],
|
|
11
|
+
"@/modules/*": ["./src/modules/*"],
|
|
12
|
+
"@/utils/*": ["./src/utils/*"]
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"include": ["src"],
|
|
16
|
+
"exclude": ["dist", "node_modules"]
|
|
17
|
+
}
|
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
import path from "node:path";
|
|
2
|
-
import tailwindcss from "@tailwindcss/vite";
|
|
3
|
-
import react from "@vitejs/plugin-react";
|
|
4
|
-
import { defineConfig } from "vite";
|
|
5
|
-
import i18nextLoader from "vite-plugin-i18next-loader";
|
|
6
|
-
import tsconfigPaths from "vite-tsconfig-paths";
|
|
7
|
-
|
|
8
|
-
export default defineConfig({
|
|
9
|
-
root: __dirname,
|
|
10
|
-
plugins: [
|
|
11
|
-
tailwindcss(),
|
|
12
|
-
react({
|
|
13
|
-
babel: {
|
|
14
|
-
plugins: ["babel-plugin-react-compiler"],
|
|
15
|
-
},
|
|
16
|
-
}),
|
|
17
|
-
tsconfigPaths(),
|
|
18
|
-
i18nextLoader({
|
|
19
|
-
include: ["**/*.json"],
|
|
20
|
-
paths: [
|
|
21
|
-
path.resolve(__dirname, "./node_modules/@m5kdev/web-ui/dist/translations"),
|
|
22
|
-
path.resolve(__dirname, "./translations"),
|
|
23
|
-
],
|
|
24
|
-
namespaceResolution: "basename",
|
|
25
|
-
}),
|
|
26
|
-
],
|
|
27
|
-
resolve: {
|
|
28
|
-
dedupe: ["react", "react-dom", "react-i18next", "react-router", "nuqs"],
|
|
29
|
-
},
|
|
30
|
-
envDir: "../shared",
|
|
31
|
-
});
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import tailwindcss from "@tailwindcss/vite";
|
|
3
|
+
import react from "@vitejs/plugin-react";
|
|
4
|
+
import { defineConfig } from "vite";
|
|
5
|
+
import i18nextLoader from "vite-plugin-i18next-loader";
|
|
6
|
+
import tsconfigPaths from "vite-tsconfig-paths";
|
|
7
|
+
|
|
8
|
+
export default defineConfig({
|
|
9
|
+
root: __dirname,
|
|
10
|
+
plugins: [
|
|
11
|
+
tailwindcss(),
|
|
12
|
+
react({
|
|
13
|
+
babel: {
|
|
14
|
+
plugins: ["babel-plugin-react-compiler"],
|
|
15
|
+
},
|
|
16
|
+
}),
|
|
17
|
+
tsconfigPaths(),
|
|
18
|
+
i18nextLoader({
|
|
19
|
+
include: ["**/*.json"],
|
|
20
|
+
paths: [
|
|
21
|
+
path.resolve(__dirname, "./node_modules/@m5kdev/web-ui/dist/translations"),
|
|
22
|
+
path.resolve(__dirname, "./translations"),
|
|
23
|
+
],
|
|
24
|
+
namespaceResolution: "basename",
|
|
25
|
+
}),
|
|
26
|
+
],
|
|
27
|
+
resolve: {
|
|
28
|
+
dedupe: ["react", "react-dom", "react-i18next", "react-router", "nuqs"],
|
|
29
|
+
},
|
|
30
|
+
envDir: "../shared",
|
|
31
|
+
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$schema": "https://biomejs.dev/schemas/2.
|
|
2
|
+
"$schema": "https://biomejs.dev/schemas/2.5.9/schema.json",
|
|
3
3
|
"vcs": {
|
|
4
4
|
"enabled": false,
|
|
5
5
|
"clientKind": "git",
|
|
@@ -7,27 +7,27 @@
|
|
|
7
7
|
},
|
|
8
8
|
"files": {
|
|
9
9
|
"ignoreUnknown": false,
|
|
10
|
-
"includes": [
|
|
11
|
-
"**",
|
|
12
|
-
"!**/node_modules",
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
"!**/.
|
|
16
|
-
"
|
|
17
|
-
|
|
10
|
+
"includes": [
|
|
11
|
+
"**",
|
|
12
|
+
"!**/node_modules",
|
|
13
|
+
"!!**/dist",
|
|
14
|
+
"!!**/storybook-static",
|
|
15
|
+
"!**/.react-router",
|
|
16
|
+
"!**/.m5kdev.json",
|
|
17
|
+
"!**/drizzle/meta"
|
|
18
|
+
]
|
|
18
19
|
},
|
|
19
20
|
"formatter": {
|
|
20
21
|
"enabled": true,
|
|
21
22
|
"indentWidth": 2,
|
|
22
23
|
"indentStyle": "space",
|
|
23
24
|
"lineWidth": 100,
|
|
24
|
-
"lineEnding": "lf"
|
|
25
|
+
"lineEnding": "lf"
|
|
25
26
|
},
|
|
26
27
|
"linter": {
|
|
27
28
|
"enabled": true,
|
|
28
29
|
"rules": {
|
|
29
|
-
"
|
|
30
|
-
"recommended": true,
|
|
30
|
+
"preset": "recommended",
|
|
31
31
|
"correctness": {
|
|
32
32
|
"noUnusedVariables": "warn",
|
|
33
33
|
"useExhaustiveDependencies": "warn",
|
|
@@ -72,6 +72,11 @@
|
|
|
72
72
|
"semicolons": "always"
|
|
73
73
|
}
|
|
74
74
|
},
|
|
75
|
+
"css": {
|
|
76
|
+
"parser": {
|
|
77
|
+
"tailwindDirectives": true
|
|
78
|
+
}
|
|
79
|
+
},
|
|
75
80
|
"assist": {
|
|
76
81
|
"enabled": true,
|
|
77
82
|
"actions": {
|
|
@@ -7,15 +7,19 @@
|
|
|
7
7
|
"dev": "turbo run dev",
|
|
8
8
|
"lint": "turbo run lint",
|
|
9
9
|
"lint:fix": "turbo run lint:fix",
|
|
10
|
-
"check-types": "turbo run check-types"
|
|
10
|
+
"check-types": "turbo run check-types",
|
|
11
|
+
"app:deploy": "node apps/shared/scripts/fly-deploy.mjs --config apps/shared/fly.toml --dockerfile apps/shared/Dockerfile --env apps/shared/.env.production",
|
|
12
|
+
"app:secrets": "node apps/shared/scripts/fly-secrets.mjs --config apps/shared/fly.toml --env apps/shared/.env.production",
|
|
13
|
+
"landing:deploy": "node apps/landing/scripts/fly-deploy.mjs --config apps/landing/fly.toml --dockerfile apps/landing/Dockerfile --env apps/landing/.env.production",
|
|
14
|
+
"landing:secrets": "node apps/landing/scripts/fly-secrets.mjs --config apps/landing/fly.toml --env apps/landing/.env.production"
|
|
11
15
|
},
|
|
12
16
|
"devDependencies": {
|
|
13
|
-
"@biomejs/biome": "catalog:",
|
|
14
|
-
"turbo": "catalog:",
|
|
15
|
-
"typescript": "catalog:"
|
|
17
|
+
"@biomejs/biome": "catalog:m5kdev",
|
|
18
|
+
"turbo": "catalog:m5kdev",
|
|
19
|
+
"typescript": "catalog:m5kdev"
|
|
16
20
|
},
|
|
17
21
|
"packageManager": "pnpm@10.13.1",
|
|
18
22
|
"engines": {
|
|
19
|
-
"node": ">=
|
|
23
|
+
"node": ">=24"
|
|
20
24
|
}
|
|
21
25
|
}
|