create-vitnode-app 1.2.0-canary.9 → 2.0.0-canary.10

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 (103) hide show
  1. package/LICENSE.md +1 -1
  2. package/README.md +59 -18
  3. package/copy-of-vitnode-app/.vscode/settings.json +10 -0
  4. package/copy-of-vitnode-app/README.md +62 -0
  5. package/copy-of-vitnode-app/api/.gitignore_template +32 -0
  6. package/copy-of-vitnode-app/api/drizzle.config.ts +12 -0
  7. package/copy-of-vitnode-app/api/src/index.ts +27 -0
  8. package/copy-of-vitnode-app/api/src/vitnode.api.config.ts +39 -0
  9. package/copy-of-vitnode-app/api/tsconfig.json +17 -0
  10. package/copy-of-vitnode-app/api-bun/src/index.ts +16 -0
  11. package/copy-of-vitnode-app/api-single-app/drizzle.config.ts +12 -0
  12. package/copy-of-vitnode-app/api-single-app/src/routes/api/$.ts +10 -0
  13. package/copy-of-vitnode-app/api-single-app/src/server/api-bridge.ts +11 -0
  14. package/copy-of-vitnode-app/api-single-app/src/server/vitnode-api.server.ts +29 -0
  15. package/copy-of-vitnode-app/api-single-app/src/vitnode.api.config.ts +28 -0
  16. package/copy-of-vitnode-app/docker/docker-compose.yml +32 -0
  17. package/copy-of-vitnode-app/eslint/.prettierrc.mjs +1 -1
  18. package/copy-of-vitnode-app/eslint/eslint.config.mjs +18 -2
  19. package/copy-of-vitnode-app/{root → eslint-react}/.prettierrc.mjs +1 -1
  20. package/copy-of-vitnode-app/eslint-react/eslint.config.mjs +19 -0
  21. package/copy-of-vitnode-app/monorepo/.gitignore_template +41 -0
  22. package/copy-of-vitnode-app/monorepo/apps/api/.env.example +12 -0
  23. package/copy-of-vitnode-app/monorepo/apps/web/.env.example +1 -0
  24. package/copy-of-vitnode-app/monorepo/turbo.json +53 -0
  25. package/copy-of-vitnode-app/root/.env.example +9 -5
  26. package/copy-of-vitnode-app/root/.gitignore_template +41 -0
  27. package/copy-of-vitnode-app/root/global.d.ts +10 -0
  28. package/copy-of-vitnode-app/root/src/components/admin-shell.tsx +21 -0
  29. package/copy-of-vitnode-app/root/src/components/main-footer.tsx +44 -0
  30. package/copy-of-vitnode-app/root/src/components/main-header.tsx +4 -0
  31. package/copy-of-vitnode-app/root/src/lib/i18n.ts +37 -0
  32. package/copy-of-vitnode-app/root/src/locales/app.ts +4 -0
  33. package/copy-of-vitnode-app/root/src/locales/packages.ts +10 -0
  34. package/copy-of-vitnode-app/root/src/router.tsx +71 -0
  35. package/copy-of-vitnode-app/root/src/routes/__root.tsx +109 -0
  36. package/copy-of-vitnode-app/root/src/routes/_admin/admin.core.index.tsx +20 -0
  37. package/copy-of-vitnode-app/root/src/routes/_admin.tsx +65 -0
  38. package/copy-of-vitnode-app/root/src/routes/_main/index.tsx +196 -0
  39. package/copy-of-vitnode-app/root/src/routes/_main.tsx +29 -0
  40. package/copy-of-vitnode-app/root/src/server/messages.server.ts +8 -0
  41. package/copy-of-vitnode-app/root/src/start.ts +5 -0
  42. package/copy-of-vitnode-app/root/src/styles.css +149 -0
  43. package/copy-of-vitnode-app/root/src/vitnode.config.ts +20 -0
  44. package/copy-of-vitnode-app/root/src/vitnode.server.config.ts +12 -0
  45. package/copy-of-vitnode-app/root/tsconfig.json +29 -16
  46. package/copy-of-vitnode-app/root/tsr.config.json +3 -0
  47. package/copy-of-vitnode-app/root/vite.config.ts +22 -0
  48. package/copy-of-vitnode-plugin/root/.swcrc +26 -0
  49. package/copy-of-vitnode-plugin/root/global.d.ts +21 -0
  50. package/copy-of-vitnode-plugin/root/npmignore.template +17 -0
  51. package/copy-of-vitnode-plugin/root/tsconfig.build.json +5 -0
  52. package/copy-of-vitnode-plugin/root/tsconfig.json +25 -0
  53. package/dist/src/create/create-package-json.js +266 -56
  54. package/dist/src/create/create-vitnode.js +191 -28
  55. package/dist/src/create/package-versions.js +49 -0
  56. package/dist/src/helpers/get-available-package-managers.js +6 -6
  57. package/dist/src/helpers/get-package-json.js +2 -2
  58. package/dist/src/helpers/get-package-manager-from-root.js +15 -0
  59. package/dist/src/helpers/get-vitnode-package-version.js +9 -0
  60. package/dist/src/helpers/init-git.js +38 -0
  61. package/dist/src/helpers/init-vitnode.js +33 -0
  62. package/dist/src/helpers/install-dependencies.js +55 -15
  63. package/dist/src/helpers/is-folder-empty.js +25 -26
  64. package/dist/src/helpers/is-online.js +16 -16
  65. package/dist/src/helpers/is-writeable.js +3 -3
  66. package/dist/src/helpers/spawn-command.js +7 -0
  67. package/dist/src/helpers/validate-pkg.js +1 -1
  68. package/dist/src/helpers/with-If.js +1 -0
  69. package/dist/src/index.js +30 -26
  70. package/dist/src/plugin/create/add-plugin-to-config.js +231 -0
  71. package/dist/src/plugin/create/add-plugin-to-workspace.js +74 -0
  72. package/dist/src/plugin/create/create-package-json.js +55 -0
  73. package/dist/src/plugin/create/create-plugin-vitnode.js +101 -0
  74. package/dist/src/plugin/create/route-templates.js +186 -0
  75. package/dist/src/plugin/index.js +17 -6
  76. package/dist/src/plugin/questions.js +14 -0
  77. package/dist/src/plugin/validation.js +76 -0
  78. package/dist/src/prepare/prepare.js +11 -8
  79. package/dist/src/questions.js +59 -15
  80. package/dist/src/validation.js +15 -15
  81. package/dist/tsconfig.build.tsbuildinfo +1 -0
  82. package/package.json +22 -12
  83. package/copy-of-vitnode-app/root/README.md +0 -1
  84. package/copy-of-vitnode-app/root/drizzle.config.ts +0 -12
  85. package/copy-of-vitnode-app/root/gitignore_template +0 -43
  86. package/copy-of-vitnode-app/root/next.config.ts +0 -11
  87. package/copy-of-vitnode-app/root/postcss.config.mjs +0 -8
  88. package/copy-of-vitnode-app/root/src/app/[locale]/(main)/[...rest]/page.tsx +0 -5
  89. package/copy-of-vitnode-app/root/src/app/[locale]/(main)/layout.tsx +0 -10
  90. package/copy-of-vitnode-app/root/src/app/[locale]/(main)/not-found.tsx +0 -5
  91. package/copy-of-vitnode-app/root/src/app/[locale]/(main)/page.tsx +0 -113
  92. package/copy-of-vitnode-app/root/src/app/[locale]/admin/(auth)/layout.tsx +0 -10
  93. package/copy-of-vitnode-app/root/src/app/[locale]/admin/not-found.tsx +0 -5
  94. package/copy-of-vitnode-app/root/src/app/[locale]/admin/page.tsx +0 -5
  95. package/copy-of-vitnode-app/root/src/app/[locale]/layout.tsx +0 -36
  96. package/copy-of-vitnode-app/root/src/app/api/[...route]/route.ts +0 -18
  97. package/copy-of-vitnode-app/root/src/app/favicon.ico +0 -0
  98. package/copy-of-vitnode-app/root/src/app/global-error.tsx +0 -27
  99. package/copy-of-vitnode-app/root/src/app/global.css +0 -128
  100. package/copy-of-vitnode-app/root/src/app/layout.tsx +0 -9
  101. package/copy-of-vitnode-app/root/src/app/not-found.tsx +0 -13
  102. package/copy-of-vitnode-app/root/src/vitnode.api.config.ts +0 -5
  103. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -0,0 +1,149 @@
1
+ @import "tailwindcss";
2
+ @import "shadcn/tailwind.css";
3
+ @import "tw-animate-css";
4
+ @import "@vitnode/core/styles/tiptap.css";
5
+
6
+ @source "../node_modules/@vitnode/core/dist/src/components";
7
+ @source "../node_modules/@vitnode/core/dist/src/tanstack";
8
+ @source "../node_modules/@vitnode/core/dist/src/views";
9
+
10
+ :root:not(.dark) {
11
+ color-scheme: light;
12
+ --background: oklch(1 0 0);
13
+ --foreground: oklch(0.23 0.021 264);
14
+ --card: oklch(1 0 0);
15
+ --card-foreground: oklch(0.23 0.021 264);
16
+ --popover: oklch(1 0 0);
17
+ --popover-foreground: oklch(0.23 0.021 264);
18
+ --primary: oklch(0.52 0.2 264);
19
+ --primary-foreground: oklch(0.985 0 0);
20
+ --secondary: oklch(0.97 0 0);
21
+ --secondary-foreground: oklch(0.394 0.02 266);
22
+ --muted: oklch(0.97 0 0);
23
+ --muted-foreground: oklch(0.46 0.017 264);
24
+ --accent: oklch(0.97 0 0);
25
+ --accent-foreground: oklch(0.23 0.021 264);
26
+ --destructive: oklch(0.576 0.209 29.5);
27
+ --success: oklch(0.586 0.143 155);
28
+ --warn: oklch(0.646 0.17 50);
29
+ --border: oklch(0.937 0.002 264);
30
+ --input: oklch(0.878 0.005 258);
31
+ --ring: oklch(0.52 0.2 264);
32
+ --chart-1: oklch(0.52 0.2 264);
33
+ --chart-2: oklch(0.586 0.143 155);
34
+ --chart-3: oklch(0.576 0.209 29.5);
35
+ --chart-4: oklch(0.646 0.17 50);
36
+ --chart-5: oklch(0.565 0.017 264);
37
+ --sidebar: oklch(0.985 0 0);
38
+ --sidebar-foreground: oklch(0.394 0.02 266);
39
+ --sidebar-primary: oklch(0.52 0.2 264);
40
+ --sidebar-primary-foreground: oklch(0.985 0 0);
41
+ --sidebar-accent: oklch(1 0 0);
42
+ --sidebar-accent-foreground: oklch(0.23 0.021 264);
43
+ --sidebar-border: oklch(0.937 0.002 264);
44
+ --sidebar-ring: oklch(0.52 0.2 264);
45
+ }
46
+
47
+ .dark {
48
+ color-scheme: dark;
49
+ --background: oklch(0.163 0.009 264);
50
+ --foreground: oklch(0.976 0 0);
51
+ --card: oklch(0.199 0.011 261);
52
+ --card-foreground: oklch(0.976 0 0);
53
+ --popover: oklch(0.22 0.012 264);
54
+ --popover-foreground: oklch(0.976 0 0);
55
+ --primary: oklch(0.6 0.18 262.65);
56
+ --primary-foreground: oklch(0.98 0 0);
57
+ --secondary: oklch(0.269 0.018 266);
58
+ --secondary-foreground: oklch(0.976 0 0);
59
+ --muted: oklch(0.269 0.018 266);
60
+ --muted-foreground: oklch(0.675 0.008 261);
61
+ --accent: oklch(0.269 0.018 266);
62
+ --accent-foreground: oklch(0.976 0 0);
63
+ --destructive: oklch(0.709 0.17 26.5);
64
+ --success: oklch(0.758 0.153 157);
65
+ --warn: oklch(0.811 0.163 75.6);
66
+ --border: oklch(0.269 0.018 266);
67
+ --input: oklch(0.348 0.013 267);
68
+ --ring: oklch(0.7 0.14 264);
69
+ --chart-1: oklch(0.7 0.14 264);
70
+ --chart-2: oklch(0.758 0.153 157);
71
+ --chart-3: oklch(0.709 0.17 26.5);
72
+ --chart-4: oklch(0.811 0.163 75.6);
73
+ --chart-5: oklch(0.626 0.01 264);
74
+ --sidebar: oklch(0.199 0.011 261);
75
+ --sidebar-foreground: oklch(0.855 0.004 271);
76
+ --sidebar-primary: oklch(0.7 0.14 264);
77
+ --sidebar-primary-foreground: oklch(0.16 0.015 265);
78
+ --sidebar-accent: oklch(0.269 0.018 266);
79
+ --sidebar-accent-foreground: oklch(0.976 0 0);
80
+ --sidebar-border: oklch(0.269 0.018 266);
81
+ --sidebar-ring: oklch(0.7 0.14 264);
82
+ }
83
+
84
+ :root {
85
+ --radius: 0.625rem;
86
+ }
87
+
88
+ @theme inline {
89
+ --font-sans:
90
+ -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue",
91
+ "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji",
92
+ "Segoe UI Symbol", "Noto Color Emoji";
93
+ --font-heading: var(--font-sans);
94
+ --color-sidebar-ring: var(--sidebar-ring);
95
+ --color-sidebar-border: var(--sidebar-border);
96
+ --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
97
+ --color-sidebar-accent: var(--sidebar-accent);
98
+ --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
99
+ --color-sidebar-primary: var(--sidebar-primary);
100
+ --color-sidebar-foreground: var(--sidebar-foreground);
101
+ --color-sidebar: var(--sidebar);
102
+ --color-chart-5: var(--chart-5);
103
+ --color-chart-4: var(--chart-4);
104
+ --color-chart-3: var(--chart-3);
105
+ --color-chart-2: var(--chart-2);
106
+ --color-chart-1: var(--chart-1);
107
+ --color-ring: var(--ring);
108
+ --color-input: var(--input);
109
+ --color-border: var(--border);
110
+ --color-warn: var(--warn);
111
+ --color-success: var(--success);
112
+ --color-destructive: var(--destructive);
113
+ --color-accent-foreground: var(--accent-foreground);
114
+ --color-accent: var(--accent);
115
+ --color-muted-foreground: var(--muted-foreground);
116
+ --color-muted: var(--muted);
117
+ --color-secondary-foreground: var(--secondary-foreground);
118
+ --color-secondary: var(--secondary);
119
+ --color-primary-foreground: var(--primary-foreground);
120
+ --color-primary: var(--primary);
121
+ --color-popover-foreground: var(--popover-foreground);
122
+ --color-popover: var(--popover);
123
+ --color-card-foreground: var(--card-foreground);
124
+ --color-card: var(--card);
125
+ --color-foreground: var(--foreground);
126
+ --color-background: var(--background);
127
+ --radius-sm: calc(var(--radius) * 0.6);
128
+ --radius-md: calc(var(--radius) * 0.8);
129
+ --radius-lg: var(--radius);
130
+ --radius-xl: calc(var(--radius) * 1.4);
131
+ --radius-2xl: calc(var(--radius) * 1.8);
132
+ --radius-3xl: calc(var(--radius) * 2.2);
133
+ --radius-4xl: calc(var(--radius) * 2.6);
134
+ }
135
+
136
+ @layer base {
137
+ * {
138
+ @apply border-border outline-ring/50;
139
+ }
140
+
141
+ html,
142
+ body {
143
+ min-height: 100%;
144
+ }
145
+
146
+ body {
147
+ @apply bg-background text-foreground antialiased;
148
+ }
149
+ }
@@ -0,0 +1,20 @@
1
+ import { buildConfig } from "@vitnode/core/vitnode.config";
2
+
3
+ export const vitNodeConfig = buildConfig({
4
+ debug: false,
5
+ i18n: {
6
+ defaultLocale: "en",
7
+ locales: [{ code: "en", name: "English" }],
8
+ timeZone: "UTC",
9
+ },
10
+ metadata: {
11
+ shortTitle: "VitNode",
12
+ title: "VitNode",
13
+ },
14
+ plugins: [],
15
+ theme: {
16
+ defaultTheme: "system",
17
+ },
18
+ });
19
+
20
+ export type Locale = (typeof vitNodeConfig.i18n.locales)[number]["code"];
@@ -0,0 +1,12 @@
1
+ import "@tanstack/react-start/server-only";
2
+ import { buildServerConfig } from "@vitnode/core/vitnode.config";
3
+
4
+ import { appMessages } from "@/locales/app";
5
+ import { packageMessages } from "@/locales/packages";
6
+ import { vitNodeConfig } from "@/vitnode.config";
7
+
8
+ export const vitNodeServerConfig = buildServerConfig({
9
+ config: vitNodeConfig,
10
+ messages: appMessages,
11
+ packageMessages,
12
+ });
@@ -1,21 +1,34 @@
1
1
  {
2
- "$schema": "https://json.schemastore.org/tsconfig",
3
- "extends": "eslint-config-typescript-vitnode/tsconfig",
2
+ "include": [
3
+ "**/*.ts",
4
+ "**/*.tsx",
5
+ "eslint.config.js",
6
+ "prettier.config.js",
7
+ "vite.config.js"
8
+ ],
9
+
4
10
  "compilerOptions": {
5
- "target": "ESNext",
6
- "module": "esnext",
7
- "moduleResolution": "bundler",
8
- "noEmit": true,
9
- "baseUrl": ".",
10
- "plugins": [
11
- {
12
- "name": "next"
13
- }
14
- ],
11
+ "target": "ES2022",
12
+ "jsx": "react-jsx",
13
+ "module": "ESNext",
15
14
  "paths": {
16
15
  "@/*": ["./src/*"]
17
- }
18
- },
19
- "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
20
- "exclude": ["node_modules"]
16
+ },
17
+ "lib": ["ES2022", "DOM", "DOM.Iterable"],
18
+ "types": ["vite/client", "node"],
19
+
20
+ /* Bundler mode */
21
+ "moduleResolution": "bundler",
22
+ "allowImportingTsExtensions": true,
23
+ "verbatimModuleSyntax": true,
24
+ "noEmit": true,
25
+
26
+ /* Linting */
27
+ "skipLibCheck": true,
28
+ "strict": true,
29
+ "noUnusedLocals": true,
30
+ "noUnusedParameters": true,
31
+ "noFallthroughCasesInSwitch": true,
32
+ "noUncheckedSideEffectImports": true
33
+ }
21
34
  }
@@ -0,0 +1,3 @@
1
+ {
2
+ "target": "react"
3
+ }
@@ -0,0 +1,22 @@
1
+ import tailwindcss from "@tailwindcss/vite";
2
+ import { devtools } from "@tanstack/devtools-vite";
3
+ import { tanstackStart } from "@tanstack/react-start/plugin/vite";
4
+ import viteReact from "@vitejs/plugin-react";
5
+ import { vitnode } from "@vitnode/core/framework/vite";
6
+ import { nitro } from "nitro/vite";
7
+ import { defineConfig } from "vite";
8
+
9
+ const config = defineConfig({
10
+ resolve: { tsconfigPaths: true },
11
+ server: { strictPort: true },
12
+ plugins: [
13
+ vitnode({ appRoot: import.meta.dirname }),
14
+ devtools(),
15
+ nitro({ rollupConfig: { external: [/^@sentry\//] } }),
16
+ tailwindcss(),
17
+ tanstackStart(),
18
+ viteReact(),
19
+ ],
20
+ });
21
+
22
+ export default config;
@@ -0,0 +1,26 @@
1
+ {
2
+ "$schema": "https://swc.rs/schema.json",
3
+ "exclude": ["\\.test\\.tsx?$"],
4
+ "minify": true,
5
+ "jsc": {
6
+ "baseUrl": "./",
7
+ "target": "esnext",
8
+ "paths": {
9
+ "@/*": ["./src/*"]
10
+ },
11
+ "parser": {
12
+ "syntax": "typescript",
13
+ "tsx": true
14
+ },
15
+ "transform": {
16
+ "react": {
17
+ "runtime": "automatic"
18
+ }
19
+ }
20
+ },
21
+ "module": {
22
+ "type": "nodenext",
23
+ "strict": true,
24
+ "resolveFully": true
25
+ }
26
+ }
@@ -0,0 +1,21 @@
1
+ /// <reference types="use-intl" />
2
+
3
+ import coreApi from "@vitnode/core/locales/api/en.json" with { type: "json" };
4
+ import core from "@vitnode/core/locales/en.json" with { type: "json" };
5
+ import plugin from "./src/locales/en.json" with { type: "json" };
6
+
7
+ // `AppConfig` is declared by `use-intl`, which is what VitNode renders every
8
+ // string through on every host, and a plugin is compiled into its own `dist`
9
+ // and imported by whichever app installed it - so a type-level dependency on
10
+ // one host's framework is one every installing app inherits. `use-intl` must be
11
+ // a direct dependency of this package for the reference above to resolve under
12
+ // pnpm's strict `node_modules`.
13
+ //
14
+ // A plugin can render on both sides (UI components and, e.g., emails), so it
15
+ // types keys against both of core's trees. Add your own server tree here too
16
+ // (`./src/locales/api/en.json`) once your plugin sends email.
17
+ declare module "use-intl" {
18
+ interface AppConfig {
19
+ Messages: typeof plugin & typeof core & typeof coreApi;
20
+ }
21
+ }
@@ -0,0 +1,17 @@
1
+ /src/*
2
+ !/src/routes
3
+ !/src/routes/**
4
+ !/src/locales
5
+ !/src/locales/**
6
+
7
+ /node_modules
8
+ /.turbo
9
+ /tsconfig.json
10
+ /.swcrc
11
+ /components.json
12
+ /global.d.ts
13
+ /tsup.config.ts
14
+ /vitest.config.ts
15
+ /tsconfig.json
16
+ /scripts
17
+ /config
@@ -0,0 +1,5 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/tsconfig",
3
+ "extends": "./tsconfig.json",
4
+ "exclude": ["node_modules", "**/*.test.ts", "**/*.test.tsx"]
5
+ }
@@ -0,0 +1,25 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/tsconfig",
3
+ "extends": "@vitnode/config/tsconfig",
4
+ "compilerOptions": {
5
+ "target": "ESNext",
6
+ "module": "esnext",
7
+ "moduleResolution": "bundler",
8
+ "rootDir": "./",
9
+ "outDir": "./dist",
10
+ "jsx": "react-jsx",
11
+ "emitDeclarationOnly": true,
12
+ "declaration": true,
13
+ "declarationMap": true,
14
+ "plugins": [
15
+ {
16
+ "name": "next"
17
+ }
18
+ ],
19
+ "paths": {
20
+ "@/*": ["./src/*"]
21
+ }
22
+ },
23
+ "exclude": ["node_modules"],
24
+ "include": ["src", "global.d.ts"]
25
+ }