create-newt-app 0.23.4 → 0.24.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/index.js +997 -262
- package/package.json +3 -2
package/dist/index.js
CHANGED
|
@@ -7,7 +7,7 @@ import chalk from "chalk";
|
|
|
7
7
|
// package.json
|
|
8
8
|
var package_default = {
|
|
9
9
|
name: "create-newt-app",
|
|
10
|
-
version: "0.
|
|
10
|
+
version: "0.24.0",
|
|
11
11
|
license: "MIT",
|
|
12
12
|
private: false,
|
|
13
13
|
type: "module",
|
|
@@ -21,7 +21,8 @@ var package_default = {
|
|
|
21
21
|
build: "tsup",
|
|
22
22
|
"build:watch": "tsup --watch",
|
|
23
23
|
dev: "tsup --watch",
|
|
24
|
-
test: "vitest run"
|
|
24
|
+
test: "vitest run",
|
|
25
|
+
typecheck: "tsc --noEmit"
|
|
25
26
|
},
|
|
26
27
|
dependencies: {
|
|
27
28
|
"@clack/prompts": "^0.11.0",
|
|
@@ -63,8 +64,9 @@ var package_json_default = {
|
|
|
63
64
|
"db:generate": "turbo run generate"
|
|
64
65
|
},
|
|
65
66
|
"devDependencies": {
|
|
66
|
-
"
|
|
67
|
-
"
|
|
67
|
+
"@types/node": "<%= versions["@types/node"] %>",
|
|
68
|
+
"turbo": "<%= versions.turbo %>",
|
|
69
|
+
"typescript": "<%= versions.typescript %>"
|
|
68
70
|
},
|
|
69
71
|
"packageManager": "pnpm@9.0.0",
|
|
70
72
|
"engines": {
|
|
@@ -117,15 +119,6 @@ yarn-error.log*
|
|
|
117
119
|
*.pem`
|
|
118
120
|
};
|
|
119
121
|
|
|
120
|
-
// src/templates/root/templates/prettierrc.ts
|
|
121
|
-
var prettierrc_default = {
|
|
122
|
-
filename: ".prettierrc",
|
|
123
|
-
template: `{
|
|
124
|
-
"singleQuote": true,
|
|
125
|
-
"trailingComma": "all"
|
|
126
|
-
}`
|
|
127
|
-
};
|
|
128
|
-
|
|
129
122
|
// src/templates/root/templates/dockerignore.ts
|
|
130
123
|
var dockerignore_default = {
|
|
131
124
|
filename: ".dockerignore",
|
|
@@ -251,7 +244,6 @@ var root = {
|
|
|
251
244
|
templates: [
|
|
252
245
|
package_json_default,
|
|
253
246
|
gitignore_default,
|
|
254
|
-
prettierrc_default,
|
|
255
247
|
dockerignore_default,
|
|
256
248
|
npmrc_default,
|
|
257
249
|
turbo_json_default,
|
|
@@ -282,22 +274,22 @@ var package_json_default2 = {
|
|
|
282
274
|
"dependencies": {
|
|
283
275
|
"@<%= projectName %>/auth": "workspace:*",
|
|
284
276
|
"@<%= projectName %>/ui": "workspace:*",
|
|
285
|
-
"@tailwindcss/postcss": "
|
|
286
|
-
"dotenv": "
|
|
287
|
-
"@tanstack/react-form": "
|
|
288
|
-
"@tanstack/react-query": "
|
|
289
|
-
"better-auth": "
|
|
290
|
-
"next": "
|
|
291
|
-
"react": "
|
|
292
|
-
"react-dom": "
|
|
293
|
-
"tailwindcss": "
|
|
277
|
+
"@tailwindcss/postcss": "<%= versions["@tailwindcss/postcss"] %>",
|
|
278
|
+
"dotenv": "<%= versions.dotenv %>",
|
|
279
|
+
"@tanstack/react-form": "<%= versions["@tanstack/react-form"] %>",
|
|
280
|
+
"@tanstack/react-query": "<%= versions["@tanstack/react-query"] %>",
|
|
281
|
+
"better-auth": "<%= versions["better-auth"] %>",
|
|
282
|
+
"next": "<%= versions.next %>",
|
|
283
|
+
"react": "<%= versions.react %>",
|
|
284
|
+
"react-dom": "<%= versions["react-dom"] %>",
|
|
285
|
+
"tailwindcss": "<%= versions.tailwindcss %>"
|
|
294
286
|
},
|
|
295
287
|
"devDependencies": {
|
|
296
288
|
"@<%= projectName %>/typescript-config": "workspace:*",
|
|
297
|
-
"@types/node": "
|
|
298
|
-
"@types/react": "
|
|
299
|
-
"@types/react-dom": "
|
|
300
|
-
"typescript": "
|
|
289
|
+
"@types/node": "<%= versions["@types/node"] %>",
|
|
290
|
+
"@types/react": "<%= versions["@types/react"] %>",
|
|
291
|
+
"@types/react-dom": "<%= versions["@types/react-dom"] %>",
|
|
292
|
+
"typescript": "<%= versions.typescript %>"
|
|
301
293
|
}
|
|
302
294
|
}`
|
|
303
295
|
};
|
|
@@ -823,27 +815,27 @@ var package_json_default3 = {
|
|
|
823
815
|
"start:prod": "node dist/main"
|
|
824
816
|
},
|
|
825
817
|
"dependencies": {
|
|
826
|
-
"@nestjs/common": "
|
|
827
|
-
"@nestjs/core": "
|
|
828
|
-
"@nestjs/platform-express": "
|
|
818
|
+
"@nestjs/common": "<%= versions["@nestjs/common"] %>",
|
|
819
|
+
"@nestjs/core": "<%= versions["@nestjs/core"] %>",
|
|
820
|
+
"@nestjs/platform-express": "<%= versions["@nestjs/platform-express"] %>",
|
|
829
821
|
"@<%= projectName %>/auth": "workspace:*",
|
|
830
822
|
"@<%= projectName %>/db": "workspace:*",
|
|
831
|
-
"@thallesp/nestjs-better-auth": "
|
|
832
|
-
"dotenv": "
|
|
833
|
-
"reflect-metadata": "
|
|
834
|
-
"rxjs": "
|
|
823
|
+
"@thallesp/nestjs-better-auth": "<%= versions["@thallesp/nestjs-better-auth"] %>",
|
|
824
|
+
"dotenv": "<%= versions.dotenv %>",
|
|
825
|
+
"reflect-metadata": "<%= versions["reflect-metadata"] %>",
|
|
826
|
+
"rxjs": "<%= versions.rxjs %>"
|
|
835
827
|
},
|
|
836
828
|
"devDependencies": {
|
|
837
|
-
"@nestjs/cli": "
|
|
838
|
-
"@nestjs/schematics": "
|
|
839
|
-
"@nestjs/testing": "
|
|
840
|
-
"@types/express": "
|
|
841
|
-
"@types/node": "
|
|
842
|
-
"@types/supertest": "
|
|
843
|
-
"supertest": "
|
|
844
|
-
"ts-node": "
|
|
845
|
-
"tsconfig-paths": "
|
|
846
|
-
"typescript": "
|
|
829
|
+
"@nestjs/cli": "<%= versions["@nestjs/cli"] %>",
|
|
830
|
+
"@nestjs/schematics": "<%= versions["@nestjs/schematics"] %>",
|
|
831
|
+
"@nestjs/testing": "<%= versions["@nestjs/testing"] %>",
|
|
832
|
+
"@types/express": "<%= versions["@types/express"] %>",
|
|
833
|
+
"@types/node": "<%= versions["@types/node"] %>",
|
|
834
|
+
"@types/supertest": "<%= versions["@types/supertest"] %>",
|
|
835
|
+
"supertest": "<%= versions.supertest %>",
|
|
836
|
+
"ts-node": "<%= versions["ts-node"] %>",
|
|
837
|
+
"tsconfig-paths": "<%= versions["tsconfig-paths"] %>",
|
|
838
|
+
"typescript": "<%= versions.typescript %>"
|
|
847
839
|
}
|
|
848
840
|
}`
|
|
849
841
|
};
|
|
@@ -999,13 +991,13 @@ var package_json_default4 = {
|
|
|
999
991
|
},
|
|
1000
992
|
"dependencies": {
|
|
1001
993
|
"@<%= projectName %>/db": "workspace:*",
|
|
1002
|
-
"auth": "
|
|
1003
|
-
"better-auth": "
|
|
994
|
+
"auth": "<%= versions.auth %>",
|
|
995
|
+
"better-auth": "<%= versions["better-auth"] %>"
|
|
1004
996
|
},
|
|
1005
997
|
"devDependencies": {
|
|
1006
998
|
"@<%= projectName %>/typescript-config": "workspace:*",
|
|
1007
|
-
"dotenv-cli": "
|
|
1008
|
-
"typescript": "
|
|
999
|
+
"dotenv-cli": "<%= versions["dotenv-cli"] %>",
|
|
1000
|
+
"typescript": "<%= versions.typescript %>"
|
|
1009
1001
|
}
|
|
1010
1002
|
}`
|
|
1011
1003
|
};
|
|
@@ -1241,15 +1233,15 @@ var package_json_sqlite_default = {
|
|
|
1241
1233
|
"make": "tsx scripts/new-migration.ts"
|
|
1242
1234
|
},
|
|
1243
1235
|
"dependencies": {
|
|
1244
|
-
"better-sqlite3": "
|
|
1245
|
-
"kysely": "
|
|
1236
|
+
"better-sqlite3": "<%= versions["better-sqlite3"] %>",
|
|
1237
|
+
"kysely": "<%= versions.kysely %>"
|
|
1246
1238
|
},
|
|
1247
1239
|
"devDependencies": {
|
|
1248
1240
|
"@<%= projectName %>/typescript-config": "workspace:*",
|
|
1249
|
-
"@types/better-sqlite3": "
|
|
1250
|
-
"dotenv-cli": "
|
|
1251
|
-
"tsx": "
|
|
1252
|
-
"typescript": "
|
|
1241
|
+
"@types/better-sqlite3": "<%= versions["@types/better-sqlite3"] %>",
|
|
1242
|
+
"dotenv-cli": "<%= versions["dotenv-cli"] %>",
|
|
1243
|
+
"tsx": "<%= versions.tsx %>",
|
|
1244
|
+
"typescript": "<%= versions.typescript %>"
|
|
1253
1245
|
}
|
|
1254
1246
|
}`
|
|
1255
1247
|
};
|
|
@@ -1269,15 +1261,15 @@ var package_json_postgres_default = {
|
|
|
1269
1261
|
"make": "tsx scripts/new-migration.ts"
|
|
1270
1262
|
},
|
|
1271
1263
|
"dependencies": {
|
|
1272
|
-
"kysely": "
|
|
1273
|
-
"pg": "
|
|
1264
|
+
"kysely": "<%= versions.kysely %>",
|
|
1265
|
+
"pg": "<%= versions.pg %>"
|
|
1274
1266
|
},
|
|
1275
1267
|
"devDependencies": {
|
|
1276
1268
|
"@<%= projectName %>/typescript-config": "workspace:*",
|
|
1277
|
-
"@types/pg": "
|
|
1278
|
-
"dotenv-cli": "
|
|
1279
|
-
"tsx": "
|
|
1280
|
-
"typescript": "
|
|
1269
|
+
"@types/pg": "<%= versions["@types/pg"] %>",
|
|
1270
|
+
"dotenv-cli": "<%= versions["dotenv-cli"] %>",
|
|
1271
|
+
"tsx": "<%= versions.tsx %>",
|
|
1272
|
+
"typescript": "<%= versions.typescript %>"
|
|
1281
1273
|
}
|
|
1282
1274
|
}`
|
|
1283
1275
|
};
|
|
@@ -1350,12 +1342,12 @@ var package_json_default5 = {
|
|
|
1350
1342
|
},
|
|
1351
1343
|
"devDependencies": {
|
|
1352
1344
|
"@<%= projectName %>/typescript-config": "workspace:*",
|
|
1353
|
-
"@tailwindcss/postcss": "
|
|
1354
|
-
"tailwindcss": "
|
|
1355
|
-
"@types/node": "
|
|
1356
|
-
"@types/react": "
|
|
1357
|
-
"@types/react-dom": "
|
|
1358
|
-
"typescript": "
|
|
1345
|
+
"@tailwindcss/postcss": "<%= versions["@tailwindcss/postcss"] %>",
|
|
1346
|
+
"tailwindcss": "<%= versions.tailwindcss %>",
|
|
1347
|
+
"@types/node": "<%= versions["@types/node"] %>",
|
|
1348
|
+
"@types/react": "<%= versions["@types/react"] %>",
|
|
1349
|
+
"@types/react-dom": "<%= versions["@types/react-dom"] %>",
|
|
1350
|
+
"typescript": "<%= versions.typescript %>"
|
|
1359
1351
|
},
|
|
1360
1352
|
"peerDependencies": {
|
|
1361
1353
|
"next": ">=15.0.0",
|
|
@@ -1363,8 +1355,8 @@ var package_json_default5 = {
|
|
|
1363
1355
|
"react-dom": ">=19.0.0"
|
|
1364
1356
|
},
|
|
1365
1357
|
"dependencies": {
|
|
1366
|
-
"clsx": "
|
|
1367
|
-
"tailwind-merge": "
|
|
1358
|
+
"clsx": "<%= versions.clsx %>",
|
|
1359
|
+
"tailwind-merge": "<%= versions["tailwind-merge"] %>"
|
|
1368
1360
|
}
|
|
1369
1361
|
}`
|
|
1370
1362
|
};
|
|
@@ -1595,6 +1587,87 @@ var ui = {
|
|
|
1595
1587
|
};
|
|
1596
1588
|
var ui_default = ui;
|
|
1597
1589
|
|
|
1590
|
+
// src/templates/versions.ts
|
|
1591
|
+
var versions = {
|
|
1592
|
+
"@base-ui/react": "^1.6.0",
|
|
1593
|
+
"@eslint/eslintrc": "^3.2.0",
|
|
1594
|
+
"@eslint/js": "^9.39.1",
|
|
1595
|
+
"@nestjs/cli": "^11.0.0",
|
|
1596
|
+
"@nestjs/common": "^11.0.1",
|
|
1597
|
+
"@nestjs/core": "^11.0.1",
|
|
1598
|
+
"@nestjs/platform-express": "^11.0.1",
|
|
1599
|
+
"@nestjs/schematics": "^11.0.0",
|
|
1600
|
+
"@nestjs/serve-static": "^5.0.0",
|
|
1601
|
+
"@nestjs/testing": "^11.0.1",
|
|
1602
|
+
"@next/eslint-plugin-next": "^16.2.10",
|
|
1603
|
+
"@shadcn/react": "^0.2.1",
|
|
1604
|
+
"@swc/core": "^1.10.0",
|
|
1605
|
+
"@tailwindcss/postcss": "^4.2.1",
|
|
1606
|
+
"@tanstack/react-form": "^1.28.5",
|
|
1607
|
+
"@tanstack/react-query": "^5.90.21",
|
|
1608
|
+
"@thallesp/nestjs-better-auth": "^2.5.1",
|
|
1609
|
+
"@types/better-sqlite3": "^7.6.13",
|
|
1610
|
+
"@types/express": "^5.0.0",
|
|
1611
|
+
"@types/jest": "^30.0.0",
|
|
1612
|
+
"@types/node": "^22.15.3",
|
|
1613
|
+
"@types/pg": "^8.11.13",
|
|
1614
|
+
"@types/react": "19.2.14",
|
|
1615
|
+
"@types/react-dom": "19.2.3",
|
|
1616
|
+
"@types/supertest": "^6.0.2",
|
|
1617
|
+
"@vitest/coverage-v8": "^3.0.0",
|
|
1618
|
+
"auth": "^1.5.5",
|
|
1619
|
+
"better-auth": "^1.2.8",
|
|
1620
|
+
"better-sqlite3": "^12.11.1",
|
|
1621
|
+
"class-variance-authority": "^0.7.1",
|
|
1622
|
+
"clsx": "^2.1.1",
|
|
1623
|
+
"cmdk": "^1.1.1",
|
|
1624
|
+
"date-fns": "^4.2.1",
|
|
1625
|
+
"dotenv": "^17.3.1",
|
|
1626
|
+
"dotenv-cli": "^11.0.0",
|
|
1627
|
+
"embla-carousel-react": "^8.6.0",
|
|
1628
|
+
"eslint": "^9.39.1",
|
|
1629
|
+
"eslint-config-prettier": "^10.1.1",
|
|
1630
|
+
"eslint-plugin-only-warn": "^1.1.0",
|
|
1631
|
+
"eslint-plugin-react": "^7.37.5",
|
|
1632
|
+
"eslint-plugin-react-hooks": "^5.2.0",
|
|
1633
|
+
"eslint-plugin-turbo": "^2.7.1",
|
|
1634
|
+
"globals": "^16.5.0",
|
|
1635
|
+
"input-otp": "^1.4.2",
|
|
1636
|
+
"jest": "^30.0.0",
|
|
1637
|
+
"kysely": "^0.28.2",
|
|
1638
|
+
"lucide-react": "^1.16.0",
|
|
1639
|
+
"next": "16.2.10",
|
|
1640
|
+
"next-themes": "^0.4.6",
|
|
1641
|
+
"oxfmt": "^0.59.0",
|
|
1642
|
+
"oxlint": "^1.74.0",
|
|
1643
|
+
"pg": "^8.14.1",
|
|
1644
|
+
"prettier": "^3.7.4",
|
|
1645
|
+
"react": "^19.2.4",
|
|
1646
|
+
"react-day-picker": "^10.0.1",
|
|
1647
|
+
"react-dom": "^19.2.4",
|
|
1648
|
+
"react-resizable-panels": "^4.11.1",
|
|
1649
|
+
"recharts": "^3.8.0",
|
|
1650
|
+
"reflect-metadata": "^0.2.2",
|
|
1651
|
+
"rxjs": "^7.8.1",
|
|
1652
|
+
"shadcn": "^4.7.0",
|
|
1653
|
+
"sonner": "^2.0.7",
|
|
1654
|
+
"source-map-support": "^0.5.21",
|
|
1655
|
+
"supertest": "^7.0.0",
|
|
1656
|
+
"tailwind-merge": "^3.6.0",
|
|
1657
|
+
"tailwindcss": "^4.2.1",
|
|
1658
|
+
"ts-jest": "^29.2.5",
|
|
1659
|
+
"ts-loader": "^9.5.2",
|
|
1660
|
+
"ts-node": "^10.9.2",
|
|
1661
|
+
"tsconfig-paths": "^4.2.0",
|
|
1662
|
+
"tsx": "^4.19.4",
|
|
1663
|
+
"turbo": "^2.8.16",
|
|
1664
|
+
"tw-animate-css": "^1.4.0",
|
|
1665
|
+
"typescript": "6.0.2",
|
|
1666
|
+
"typescript-eslint": "^8.50.0",
|
|
1667
|
+
"unplugin-swc": "^1.5.9",
|
|
1668
|
+
"vitest": "^3.0.0"
|
|
1669
|
+
};
|
|
1670
|
+
|
|
1598
1671
|
// src/templates/shadcn-ui/templates/components-json.ts
|
|
1599
1672
|
var components_json_default = {
|
|
1600
1673
|
filename: "packages/ui/components.json",
|
|
@@ -1669,22 +1742,23 @@ var package_json_default6 = {
|
|
|
1669
1742
|
},
|
|
1670
1743
|
"scripts": {},
|
|
1671
1744
|
"dependencies": {
|
|
1672
|
-
"@base-ui/react": "
|
|
1673
|
-
"shadcn": "
|
|
1674
|
-
"
|
|
1675
|
-
"
|
|
1676
|
-
"
|
|
1677
|
-
"
|
|
1678
|
-
"
|
|
1679
|
-
"
|
|
1680
|
-
"
|
|
1681
|
-
"
|
|
1682
|
-
"
|
|
1683
|
-
"react-
|
|
1684
|
-
"
|
|
1685
|
-
"
|
|
1686
|
-
"
|
|
1687
|
-
"
|
|
1745
|
+
"@base-ui/react": "<%= versions["@base-ui/react"] %>",
|
|
1746
|
+
"@shadcn/react": "<%= versions["@shadcn/react"] %>",
|
|
1747
|
+
"shadcn": "<%= versions.shadcn %>",
|
|
1748
|
+
"class-variance-authority": "<%= versions["class-variance-authority"] %>",
|
|
1749
|
+
"clsx": "<%= versions.clsx %>",
|
|
1750
|
+
"cmdk": "<%= versions.cmdk %>",
|
|
1751
|
+
"date-fns": "<%= versions["date-fns"] %>",
|
|
1752
|
+
"embla-carousel-react": "<%= versions["embla-carousel-react"] %>",
|
|
1753
|
+
"input-otp": "<%= versions["input-otp"] %>",
|
|
1754
|
+
"lucide-react": "<%= versions["lucide-react"] %>",
|
|
1755
|
+
"next-themes": "<%= versions["next-themes"] %>",
|
|
1756
|
+
"react-day-picker": "<%= versions["react-day-picker"] %>",
|
|
1757
|
+
"react-resizable-panels": "<%= versions["react-resizable-panels"] %>",
|
|
1758
|
+
"recharts": "<%= versions.recharts %>",
|
|
1759
|
+
"sonner": "<%= versions.sonner %>",
|
|
1760
|
+
"tailwind-merge": "<%= versions["tailwind-merge"] %>",
|
|
1761
|
+
"tw-animate-css": "<%= versions["tw-animate-css"] %>"
|
|
1688
1762
|
},
|
|
1689
1763
|
"peerDependencies": {
|
|
1690
1764
|
"next": ">=15.0.0",
|
|
@@ -1693,12 +1767,12 @@ var package_json_default6 = {
|
|
|
1693
1767
|
},
|
|
1694
1768
|
"devDependencies": {
|
|
1695
1769
|
"@<%= projectName %>/typescript-config": "workspace:*",
|
|
1696
|
-
"@tailwindcss/postcss": "
|
|
1697
|
-
"@types/node": "
|
|
1698
|
-
"@types/react": "
|
|
1699
|
-
"@types/react-dom": "
|
|
1700
|
-
"tailwindcss": "
|
|
1701
|
-
"typescript": "
|
|
1770
|
+
"@tailwindcss/postcss": "<%= versions["@tailwindcss/postcss"] %>",
|
|
1771
|
+
"@types/node": "<%= versions["@types/node"] %>",
|
|
1772
|
+
"@types/react": "<%= versions["@types/react"] %>",
|
|
1773
|
+
"@types/react-dom": "<%= versions["@types/react-dom"] %>",
|
|
1774
|
+
"tailwindcss": "<%= versions.tailwindcss %>",
|
|
1775
|
+
"typescript": "<%= versions.typescript %>"
|
|
1702
1776
|
}
|
|
1703
1777
|
}`
|
|
1704
1778
|
};
|
|
@@ -9363,6 +9437,665 @@ export function ModeToggle() {
|
|
|
9363
9437
|
`
|
|
9364
9438
|
};
|
|
9365
9439
|
|
|
9440
|
+
// src/templates/shadcn-ui/templates/attachment.ts
|
|
9441
|
+
var attachment_default = {
|
|
9442
|
+
filename: "packages/ui/src/components/attachment.tsx",
|
|
9443
|
+
template: `import * as React from "react"
|
|
9444
|
+
import { mergeProps } from "@base-ui/react/merge-props"
|
|
9445
|
+
import { useRender } from "@base-ui/react/use-render"
|
|
9446
|
+
import { cva, type VariantProps } from "class-variance-authority"
|
|
9447
|
+
|
|
9448
|
+
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
9449
|
+
import { Button } from "@<%= projectName %>/ui/components/button"
|
|
9450
|
+
|
|
9451
|
+
const attachmentVariants = cva(
|
|
9452
|
+
"group/attachment relative flex w-fit max-w-full min-w-0 shrink-0 flex-wrap rounded-xl border bg-card text-card-foreground transition-colors focus-within:ring-1 focus-within:ring-ring/50 has-[>a,>button]:hover:bg-muted/50 data-[state=error]:border-destructive/30 data-[state=idle]:border-dashed",
|
|
9453
|
+
{
|
|
9454
|
+
variants: {
|
|
9455
|
+
size: {
|
|
9456
|
+
default:
|
|
9457
|
+
"gap-2 text-sm has-data-[slot=attachment-content]:px-2.5 has-data-[slot=attachment-content]:py-2 has-data-[slot=attachment-media]:p-2",
|
|
9458
|
+
sm: "gap-2.5 text-xs has-data-[slot=attachment-content]:px-2 has-data-[slot=attachment-content]:py-1.5 has-data-[slot=attachment-media]:p-1.5",
|
|
9459
|
+
xs: "gap-1.5 rounded-lg text-xs has-data-[slot=attachment-content]:px-1.5 has-data-[slot=attachment-content]:py-1 has-data-[slot=attachment-media]:p-1",
|
|
9460
|
+
},
|
|
9461
|
+
orientation: {
|
|
9462
|
+
horizontal: "min-w-40 items-center",
|
|
9463
|
+
vertical: "w-24 flex-col has-data-[slot=attachment-content]:w-30",
|
|
9464
|
+
},
|
|
9465
|
+
},
|
|
9466
|
+
}
|
|
9467
|
+
)
|
|
9468
|
+
|
|
9469
|
+
function Attachment({
|
|
9470
|
+
className,
|
|
9471
|
+
state = "done",
|
|
9472
|
+
size = "default",
|
|
9473
|
+
orientation = "horizontal",
|
|
9474
|
+
...props
|
|
9475
|
+
}: React.ComponentProps<"div"> &
|
|
9476
|
+
VariantProps<typeof attachmentVariants> & {
|
|
9477
|
+
state?: "idle" | "uploading" | "processing" | "error" | "done"
|
|
9478
|
+
}) {
|
|
9479
|
+
return (
|
|
9480
|
+
<div
|
|
9481
|
+
data-slot="attachment"
|
|
9482
|
+
data-state={state}
|
|
9483
|
+
data-size={size}
|
|
9484
|
+
data-orientation={orientation}
|
|
9485
|
+
className={cn(attachmentVariants({ size, orientation }), className)}
|
|
9486
|
+
{...props}
|
|
9487
|
+
/>
|
|
9488
|
+
)
|
|
9489
|
+
}
|
|
9490
|
+
|
|
9491
|
+
const attachmentMediaVariants = cva(
|
|
9492
|
+
"relative flex aspect-square w-10 shrink-0 items-center justify-center overflow-hidden rounded-lg bg-muted text-foreground group-data-[orientation=vertical]/attachment:w-full group-data-[size=sm]/attachment:w-8 group-data-[size=xs]/attachment:w-7 group-data-[size=xs]/attachment:rounded-md group-data-[state=error]/attachment:bg-destructive/10 group-data-[state=error]/attachment:text-destructive group-data-[orientation=vertical]/attachment:*:data-[slot=spinner]:size-6! [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 group-data-[orientation=vertical]/attachment:[&_svg:not([class*='size-'])]:size-6 group-data-[size=xs]/attachment:[&_svg:not([class*='size-'])]:size-3.5",
|
|
9493
|
+
{
|
|
9494
|
+
variants: {
|
|
9495
|
+
variant: {
|
|
9496
|
+
icon: "",
|
|
9497
|
+
image:
|
|
9498
|
+
"opacity-60 group-data-[state=done]/attachment:opacity-100 group-data-[state=idle]/attachment:opacity-100 *:[img]:aspect-square *:[img]:w-full *:[img]:object-cover",
|
|
9499
|
+
},
|
|
9500
|
+
},
|
|
9501
|
+
defaultVariants: {
|
|
9502
|
+
variant: "icon",
|
|
9503
|
+
},
|
|
9504
|
+
}
|
|
9505
|
+
)
|
|
9506
|
+
|
|
9507
|
+
function AttachmentMedia({
|
|
9508
|
+
className,
|
|
9509
|
+
variant = "icon",
|
|
9510
|
+
...props
|
|
9511
|
+
}: React.ComponentProps<"div"> & VariantProps<typeof attachmentMediaVariants>) {
|
|
9512
|
+
return (
|
|
9513
|
+
<div
|
|
9514
|
+
data-slot="attachment-media"
|
|
9515
|
+
data-variant={variant}
|
|
9516
|
+
className={cn(attachmentMediaVariants({ variant }), className)}
|
|
9517
|
+
{...props}
|
|
9518
|
+
/>
|
|
9519
|
+
)
|
|
9520
|
+
}
|
|
9521
|
+
|
|
9522
|
+
function AttachmentContent({
|
|
9523
|
+
className,
|
|
9524
|
+
...props
|
|
9525
|
+
}: React.ComponentProps<"div">) {
|
|
9526
|
+
return (
|
|
9527
|
+
<div
|
|
9528
|
+
data-slot="attachment-content"
|
|
9529
|
+
className={cn(
|
|
9530
|
+
"max-w-full min-w-0 flex-1 leading-tight group-data-[orientation=vertical]/attachment:px-1",
|
|
9531
|
+
className
|
|
9532
|
+
)}
|
|
9533
|
+
{...props}
|
|
9534
|
+
/>
|
|
9535
|
+
)
|
|
9536
|
+
}
|
|
9537
|
+
|
|
9538
|
+
function AttachmentTitle({
|
|
9539
|
+
className,
|
|
9540
|
+
...props
|
|
9541
|
+
}: React.ComponentProps<"span">) {
|
|
9542
|
+
return (
|
|
9543
|
+
<span
|
|
9544
|
+
data-slot="attachment-title"
|
|
9545
|
+
className={cn(
|
|
9546
|
+
"block max-w-full min-w-0 truncate font-medium group-data-[state=processing]/attachment:shimmer group-data-[state=uploading]/attachment:shimmer",
|
|
9547
|
+
className
|
|
9548
|
+
)}
|
|
9549
|
+
{...props}
|
|
9550
|
+
/>
|
|
9551
|
+
)
|
|
9552
|
+
}
|
|
9553
|
+
|
|
9554
|
+
function AttachmentDescription({
|
|
9555
|
+
className,
|
|
9556
|
+
...props
|
|
9557
|
+
}: React.ComponentProps<"span">) {
|
|
9558
|
+
return (
|
|
9559
|
+
<span
|
|
9560
|
+
data-slot="attachment-description"
|
|
9561
|
+
className={cn(
|
|
9562
|
+
"mt-0.5 block min-w-0 truncate text-xs text-muted-foreground group-data-[state=error]/attachment:text-destructive/80",
|
|
9563
|
+
"max-w-full",
|
|
9564
|
+
className
|
|
9565
|
+
)}
|
|
9566
|
+
{...props}
|
|
9567
|
+
/>
|
|
9568
|
+
)
|
|
9569
|
+
}
|
|
9570
|
+
|
|
9571
|
+
function AttachmentActions({
|
|
9572
|
+
className,
|
|
9573
|
+
...props
|
|
9574
|
+
}: React.ComponentProps<"div">) {
|
|
9575
|
+
return (
|
|
9576
|
+
<div
|
|
9577
|
+
data-slot="attachment-actions"
|
|
9578
|
+
className={cn(
|
|
9579
|
+
"relative z-20 flex shrink-0 items-center group-data-[orientation=vertical]/attachment:absolute group-data-[orientation=vertical]/attachment:top-3 group-data-[orientation=vertical]/attachment:right-3 group-data-[orientation=vertical]/attachment:gap-1",
|
|
9580
|
+
className
|
|
9581
|
+
)}
|
|
9582
|
+
{...props}
|
|
9583
|
+
/>
|
|
9584
|
+
)
|
|
9585
|
+
}
|
|
9586
|
+
|
|
9587
|
+
function AttachmentAction({
|
|
9588
|
+
className,
|
|
9589
|
+
variant,
|
|
9590
|
+
size = "icon-xs",
|
|
9591
|
+
...props
|
|
9592
|
+
}: React.ComponentProps<typeof Button>) {
|
|
9593
|
+
return (
|
|
9594
|
+
<Button
|
|
9595
|
+
data-slot="attachment-action"
|
|
9596
|
+
variant={variant ?? "ghost"}
|
|
9597
|
+
size={size}
|
|
9598
|
+
className={cn(className)}
|
|
9599
|
+
{...props}
|
|
9600
|
+
/>
|
|
9601
|
+
)
|
|
9602
|
+
}
|
|
9603
|
+
|
|
9604
|
+
function AttachmentTrigger({
|
|
9605
|
+
className,
|
|
9606
|
+
render,
|
|
9607
|
+
type,
|
|
9608
|
+
...props
|
|
9609
|
+
}: useRender.ComponentProps<"button">) {
|
|
9610
|
+
return useRender({
|
|
9611
|
+
defaultTagName: "button",
|
|
9612
|
+
props: mergeProps<"button">(
|
|
9613
|
+
{
|
|
9614
|
+
type: render ? type : (type ?? "button"),
|
|
9615
|
+
className: cn("absolute inset-0 z-10 outline-none", className),
|
|
9616
|
+
},
|
|
9617
|
+
props
|
|
9618
|
+
),
|
|
9619
|
+
render,
|
|
9620
|
+
state: {
|
|
9621
|
+
slot: "attachment-trigger",
|
|
9622
|
+
},
|
|
9623
|
+
})
|
|
9624
|
+
}
|
|
9625
|
+
|
|
9626
|
+
function AttachmentGroup({ className, ...props }: React.ComponentProps<"div">) {
|
|
9627
|
+
return (
|
|
9628
|
+
<div
|
|
9629
|
+
data-slot="attachment-group"
|
|
9630
|
+
className={cn(
|
|
9631
|
+
"flex min-w-0 scroll-fade-x snap-x snap-mandatory scroll-px-1 scrollbar-none gap-3 overflow-x-auto overscroll-x-contain py-1 *:data-[slot=attachment]:flex-none *:data-[slot=attachment]:snap-start",
|
|
9632
|
+
className
|
|
9633
|
+
)}
|
|
9634
|
+
{...props}
|
|
9635
|
+
/>
|
|
9636
|
+
)
|
|
9637
|
+
}
|
|
9638
|
+
|
|
9639
|
+
export {
|
|
9640
|
+
Attachment,
|
|
9641
|
+
AttachmentGroup,
|
|
9642
|
+
AttachmentMedia,
|
|
9643
|
+
AttachmentContent,
|
|
9644
|
+
AttachmentTitle,
|
|
9645
|
+
AttachmentDescription,
|
|
9646
|
+
AttachmentActions,
|
|
9647
|
+
AttachmentAction,
|
|
9648
|
+
AttachmentTrigger,
|
|
9649
|
+
}
|
|
9650
|
+
`
|
|
9651
|
+
};
|
|
9652
|
+
|
|
9653
|
+
// src/templates/shadcn-ui/templates/bubble.ts
|
|
9654
|
+
var bubble_default = {
|
|
9655
|
+
filename: "packages/ui/src/components/bubble.tsx",
|
|
9656
|
+
template: `import * as React from "react"
|
|
9657
|
+
import { mergeProps } from "@base-ui/react/merge-props"
|
|
9658
|
+
import { useRender } from "@base-ui/react/use-render"
|
|
9659
|
+
import { cva, type VariantProps } from "class-variance-authority"
|
|
9660
|
+
|
|
9661
|
+
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
9662
|
+
|
|
9663
|
+
function BubbleGroup({ className, ...props }: React.ComponentProps<"div">) {
|
|
9664
|
+
return (
|
|
9665
|
+
<div
|
|
9666
|
+
data-slot="bubble-group"
|
|
9667
|
+
className={cn("flex min-w-0 flex-col gap-2", className)}
|
|
9668
|
+
{...props}
|
|
9669
|
+
/>
|
|
9670
|
+
)
|
|
9671
|
+
}
|
|
9672
|
+
|
|
9673
|
+
const bubbleVariants = cva(
|
|
9674
|
+
"group/bubble relative flex w-fit max-w-[80%] min-w-0 flex-col gap-1 group-data-[align=end]/message:self-end data-[align=end]:self-end data-[variant=ghost]:max-w-full",
|
|
9675
|
+
{
|
|
9676
|
+
variants: {
|
|
9677
|
+
variant: {
|
|
9678
|
+
default:
|
|
9679
|
+
"*:data-[slot=bubble-content]:bg-primary *:data-[slot=bubble-content]:text-primary-foreground [&>[data-slot=bubble-content]:is(button,a):hover]:bg-primary/80",
|
|
9680
|
+
secondary:
|
|
9681
|
+
"*:data-[slot=bubble-content]:bg-secondary *:data-[slot=bubble-content]:text-secondary-foreground [&>[data-slot=bubble-content]:is(button,a):hover]:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)]",
|
|
9682
|
+
muted:
|
|
9683
|
+
"*:data-[slot=bubble-content]:bg-muted [&>[data-slot=bubble-content]:is(button,a):hover]:bg-[color-mix(in_oklch,var(--muted),var(--foreground)_5%)]",
|
|
9684
|
+
tinted:
|
|
9685
|
+
"*:data-[slot=bubble-content]:bg-[oklch(from_var(--primary)_0.93_calc(c*0.4)_h)] *:data-[slot=bubble-content]:text-foreground dark:*:data-[slot=bubble-content]:bg-[oklch(from_var(--primary)_0.3_calc(c*0.4)_h)] [&>[data-slot=bubble-content]:is(button,a):hover]:bg-[oklch(from_var(--primary)_0.88_calc(c*0.5)_h)] dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-[oklch(from_var(--primary)_0.35_calc(c*0.5)_h)]",
|
|
9686
|
+
outline:
|
|
9687
|
+
"*:data-[slot=bubble-content]:border-border *:data-[slot=bubble-content]:bg-background [&>[data-slot=bubble-content]:is(button,a):hover]:bg-muted [&>[data-slot=bubble-content]:is(button,a):hover]:text-foreground dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-input/30",
|
|
9688
|
+
ghost:
|
|
9689
|
+
"border-none *:data-[slot=bubble-content]:rounded-none *:data-[slot=bubble-content]:bg-transparent *:data-[slot=bubble-content]:p-0 [&>[data-slot=bubble-content]:is(button,a):hover]:bg-muted [&>[data-slot=bubble-content]:is(button,a):hover]:text-foreground dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-muted/50",
|
|
9690
|
+
destructive:
|
|
9691
|
+
"*:data-[slot=bubble-content]:bg-destructive/10 *:data-[slot=bubble-content]:text-destructive dark:*:data-[slot=bubble-content]:bg-destructive/20 [&>[data-slot=bubble-content]:is(button,a):hover]:bg-destructive/20 dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-destructive/30",
|
|
9692
|
+
},
|
|
9693
|
+
},
|
|
9694
|
+
defaultVariants: {
|
|
9695
|
+
variant: "default",
|
|
9696
|
+
},
|
|
9697
|
+
}
|
|
9698
|
+
)
|
|
9699
|
+
|
|
9700
|
+
function Bubble({
|
|
9701
|
+
variant = "default",
|
|
9702
|
+
align = "start",
|
|
9703
|
+
className,
|
|
9704
|
+
...props
|
|
9705
|
+
}: React.ComponentProps<"div"> &
|
|
9706
|
+
VariantProps<typeof bubbleVariants> & {
|
|
9707
|
+
align?: "start" | "end"
|
|
9708
|
+
}) {
|
|
9709
|
+
return (
|
|
9710
|
+
<div
|
|
9711
|
+
data-slot="bubble"
|
|
9712
|
+
data-variant={variant}
|
|
9713
|
+
data-align={align}
|
|
9714
|
+
className={cn(bubbleVariants({ variant }), className)}
|
|
9715
|
+
{...props}
|
|
9716
|
+
/>
|
|
9717
|
+
)
|
|
9718
|
+
}
|
|
9719
|
+
|
|
9720
|
+
function BubbleContent({
|
|
9721
|
+
className,
|
|
9722
|
+
render,
|
|
9723
|
+
...props
|
|
9724
|
+
}: useRender.ComponentProps<"div">) {
|
|
9725
|
+
return useRender({
|
|
9726
|
+
defaultTagName: "div",
|
|
9727
|
+
props: mergeProps<"div">(
|
|
9728
|
+
{
|
|
9729
|
+
className: cn(
|
|
9730
|
+
"w-fit max-w-full min-w-0 overflow-hidden rounded-xl border border-transparent px-3 py-2 text-sm leading-relaxed wrap-break-word group-data-[align=end]/bubble:self-end [button]:text-left [button,a]:transition-colors [button,a]:outline-none [button,a]:focus-visible:border-ring [button,a]:focus-visible:ring-3 [button,a]:focus-visible:ring-ring/50",
|
|
9731
|
+
className
|
|
9732
|
+
),
|
|
9733
|
+
},
|
|
9734
|
+
props
|
|
9735
|
+
),
|
|
9736
|
+
render,
|
|
9737
|
+
state: {
|
|
9738
|
+
slot: "bubble-content",
|
|
9739
|
+
},
|
|
9740
|
+
})
|
|
9741
|
+
}
|
|
9742
|
+
|
|
9743
|
+
const bubbleReactionsVariants = cva(
|
|
9744
|
+
"absolute z-10 flex w-fit shrink-0 items-center justify-center gap-1 rounded-full bg-muted px-1.5 py-0.5 text-sm ring-3 ring-card has-[button]:p-0",
|
|
9745
|
+
{
|
|
9746
|
+
variants: {
|
|
9747
|
+
side: {
|
|
9748
|
+
top: "top-0 -translate-y-3/4",
|
|
9749
|
+
bottom: "bottom-0 translate-y-3/4",
|
|
9750
|
+
},
|
|
9751
|
+
align: {
|
|
9752
|
+
start: "left-3",
|
|
9753
|
+
end: "right-3",
|
|
9754
|
+
},
|
|
9755
|
+
},
|
|
9756
|
+
defaultVariants: {
|
|
9757
|
+
side: "bottom",
|
|
9758
|
+
align: "end",
|
|
9759
|
+
},
|
|
9760
|
+
}
|
|
9761
|
+
)
|
|
9762
|
+
|
|
9763
|
+
function BubbleReactions({
|
|
9764
|
+
side = "bottom",
|
|
9765
|
+
align = "end",
|
|
9766
|
+
className,
|
|
9767
|
+
...props
|
|
9768
|
+
}: React.ComponentProps<"div"> & {
|
|
9769
|
+
align?: "start" | "end"
|
|
9770
|
+
side?: "top" | "bottom"
|
|
9771
|
+
}) {
|
|
9772
|
+
return (
|
|
9773
|
+
<div
|
|
9774
|
+
data-slot="bubble-reactions"
|
|
9775
|
+
data-align={align}
|
|
9776
|
+
data-side={side}
|
|
9777
|
+
className={cn(bubbleReactionsVariants({ side, align }), className)}
|
|
9778
|
+
{...props}
|
|
9779
|
+
/>
|
|
9780
|
+
)
|
|
9781
|
+
}
|
|
9782
|
+
|
|
9783
|
+
export { BubbleGroup, Bubble, BubbleContent, BubbleReactions }
|
|
9784
|
+
`
|
|
9785
|
+
};
|
|
9786
|
+
|
|
9787
|
+
// src/templates/shadcn-ui/templates/marker.ts
|
|
9788
|
+
var marker_default = {
|
|
9789
|
+
filename: "packages/ui/src/components/marker.tsx",
|
|
9790
|
+
template: `import * as React from "react"
|
|
9791
|
+
import { mergeProps } from "@base-ui/react/merge-props"
|
|
9792
|
+
import { useRender } from "@base-ui/react/use-render"
|
|
9793
|
+
import { cva, type VariantProps } from "class-variance-authority"
|
|
9794
|
+
|
|
9795
|
+
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
9796
|
+
|
|
9797
|
+
const markerVariants = cva(
|
|
9798
|
+
"group/marker relative flex min-h-4 w-full items-center gap-2 text-left text-sm text-muted-foreground [&_svg:not([class*='size-'])]:size-4 [a]:underline [a]:underline-offset-3 [a]:hover:text-foreground",
|
|
9799
|
+
{
|
|
9800
|
+
variants: {
|
|
9801
|
+
variant: {
|
|
9802
|
+
default: "",
|
|
9803
|
+
separator:
|
|
9804
|
+
"before:mr-1 before:h-px before:min-w-0 before:flex-1 before:bg-border after:ml-1 after:h-px after:min-w-0 after:flex-1 after:bg-border",
|
|
9805
|
+
border: "border-b border-border pb-2",
|
|
9806
|
+
},
|
|
9807
|
+
},
|
|
9808
|
+
}
|
|
9809
|
+
)
|
|
9810
|
+
|
|
9811
|
+
function Marker({
|
|
9812
|
+
className,
|
|
9813
|
+
variant = "default",
|
|
9814
|
+
render,
|
|
9815
|
+
...props
|
|
9816
|
+
}: useRender.ComponentProps<"div"> & VariantProps<typeof markerVariants>) {
|
|
9817
|
+
return useRender({
|
|
9818
|
+
defaultTagName: "div",
|
|
9819
|
+
props: mergeProps<"div">(
|
|
9820
|
+
{
|
|
9821
|
+
className: cn(markerVariants({ variant, className })),
|
|
9822
|
+
},
|
|
9823
|
+
props
|
|
9824
|
+
),
|
|
9825
|
+
render,
|
|
9826
|
+
state: {
|
|
9827
|
+
slot: "marker",
|
|
9828
|
+
variant,
|
|
9829
|
+
},
|
|
9830
|
+
})
|
|
9831
|
+
}
|
|
9832
|
+
|
|
9833
|
+
function MarkerIcon({ className, ...props }: React.ComponentProps<"span">) {
|
|
9834
|
+
return (
|
|
9835
|
+
<span
|
|
9836
|
+
data-slot="marker-icon"
|
|
9837
|
+
aria-hidden="true"
|
|
9838
|
+
className={cn(
|
|
9839
|
+
"size-4 shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
9840
|
+
className
|
|
9841
|
+
)}
|
|
9842
|
+
{...props}
|
|
9843
|
+
/>
|
|
9844
|
+
)
|
|
9845
|
+
}
|
|
9846
|
+
|
|
9847
|
+
function MarkerContent({ className, ...props }: React.ComponentProps<"span">) {
|
|
9848
|
+
return (
|
|
9849
|
+
<span
|
|
9850
|
+
data-slot="marker-content"
|
|
9851
|
+
className={cn(
|
|
9852
|
+
"min-w-0 wrap-break-word group-data-[variant=separator]/marker:flex-none group-data-[variant=separator]/marker:text-center *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground",
|
|
9853
|
+
className
|
|
9854
|
+
)}
|
|
9855
|
+
{...props}
|
|
9856
|
+
/>
|
|
9857
|
+
)
|
|
9858
|
+
}
|
|
9859
|
+
|
|
9860
|
+
export { Marker, MarkerIcon, MarkerContent, markerVariants }
|
|
9861
|
+
`
|
|
9862
|
+
};
|
|
9863
|
+
|
|
9864
|
+
// src/templates/shadcn-ui/templates/message.ts
|
|
9865
|
+
var message_default = {
|
|
9866
|
+
filename: "packages/ui/src/components/message.tsx",
|
|
9867
|
+
template: `import * as React from "react"
|
|
9868
|
+
|
|
9869
|
+
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
9870
|
+
|
|
9871
|
+
function MessageGroup({ className, ...props }: React.ComponentProps<"div">) {
|
|
9872
|
+
return (
|
|
9873
|
+
<div
|
|
9874
|
+
data-slot="message-group"
|
|
9875
|
+
className={cn("flex min-w-0 flex-col gap-2", className)}
|
|
9876
|
+
{...props}
|
|
9877
|
+
/>
|
|
9878
|
+
)
|
|
9879
|
+
}
|
|
9880
|
+
|
|
9881
|
+
function Message({
|
|
9882
|
+
className,
|
|
9883
|
+
align = "start",
|
|
9884
|
+
...props
|
|
9885
|
+
}: React.ComponentProps<"div"> & { align?: "start" | "end" }) {
|
|
9886
|
+
return (
|
|
9887
|
+
<div
|
|
9888
|
+
data-slot="message"
|
|
9889
|
+
data-align={align}
|
|
9890
|
+
className={cn(
|
|
9891
|
+
"group/message relative flex w-full min-w-0 gap-2 text-sm data-[align=end]:flex-row-reverse",
|
|
9892
|
+
className
|
|
9893
|
+
)}
|
|
9894
|
+
{...props}
|
|
9895
|
+
/>
|
|
9896
|
+
)
|
|
9897
|
+
}
|
|
9898
|
+
|
|
9899
|
+
function MessageAvatar({ className, ...props }: React.ComponentProps<"div">) {
|
|
9900
|
+
return (
|
|
9901
|
+
<div
|
|
9902
|
+
data-slot="message-avatar"
|
|
9903
|
+
className={cn(
|
|
9904
|
+
"flex w-fit min-w-8 shrink-0 items-center justify-center self-end overflow-hidden rounded-full bg-muted group-has-data-[slot=message-footer]/message:-translate-y-8",
|
|
9905
|
+
className
|
|
9906
|
+
)}
|
|
9907
|
+
{...props}
|
|
9908
|
+
/>
|
|
9909
|
+
)
|
|
9910
|
+
}
|
|
9911
|
+
|
|
9912
|
+
function MessageContent({ className, ...props }: React.ComponentProps<"div">) {
|
|
9913
|
+
return (
|
|
9914
|
+
<div
|
|
9915
|
+
data-slot="message-content"
|
|
9916
|
+
className={cn(
|
|
9917
|
+
"flex w-full min-w-0 flex-col gap-2.5 wrap-break-word group-data-[align=end]/message:*:data-slot:self-end",
|
|
9918
|
+
className
|
|
9919
|
+
)}
|
|
9920
|
+
{...props}
|
|
9921
|
+
/>
|
|
9922
|
+
)
|
|
9923
|
+
}
|
|
9924
|
+
|
|
9925
|
+
function MessageHeader({ className, ...props }: React.ComponentProps<"div">) {
|
|
9926
|
+
return (
|
|
9927
|
+
<div
|
|
9928
|
+
data-slot="message-header"
|
|
9929
|
+
className={cn(
|
|
9930
|
+
"flex max-w-full min-w-0 items-center px-3 text-xs font-medium text-muted-foreground group-has-data-[variant=ghost]/message:px-0",
|
|
9931
|
+
className
|
|
9932
|
+
)}
|
|
9933
|
+
{...props}
|
|
9934
|
+
/>
|
|
9935
|
+
)
|
|
9936
|
+
}
|
|
9937
|
+
|
|
9938
|
+
function MessageFooter({ className, ...props }: React.ComponentProps<"div">) {
|
|
9939
|
+
return (
|
|
9940
|
+
<div
|
|
9941
|
+
data-slot="message-footer"
|
|
9942
|
+
className={cn(
|
|
9943
|
+
"flex max-w-full min-w-0 items-center px-3 text-xs font-medium text-muted-foreground group-has-data-[variant=ghost]/message:px-0 group-data-[align=end]/message:justify-end",
|
|
9944
|
+
className
|
|
9945
|
+
)}
|
|
9946
|
+
{...props}
|
|
9947
|
+
/>
|
|
9948
|
+
)
|
|
9949
|
+
}
|
|
9950
|
+
|
|
9951
|
+
export {
|
|
9952
|
+
MessageGroup,
|
|
9953
|
+
Message,
|
|
9954
|
+
MessageAvatar,
|
|
9955
|
+
MessageContent,
|
|
9956
|
+
MessageFooter,
|
|
9957
|
+
MessageHeader,
|
|
9958
|
+
}
|
|
9959
|
+
`
|
|
9960
|
+
};
|
|
9961
|
+
|
|
9962
|
+
// src/templates/shadcn-ui/templates/message-scroller.ts
|
|
9963
|
+
var message_scroller_default = {
|
|
9964
|
+
filename: "packages/ui/src/components/message-scroller.tsx",
|
|
9965
|
+
template: `"use client"
|
|
9966
|
+
|
|
9967
|
+
import * as React from "react"
|
|
9968
|
+
import {
|
|
9969
|
+
MessageScroller as MessageScrollerPrimitive,
|
|
9970
|
+
useMessageScroller,
|
|
9971
|
+
useMessageScrollerScrollable,
|
|
9972
|
+
useMessageScrollerVisibility,
|
|
9973
|
+
} from "@shadcn/react/message-scroller"
|
|
9974
|
+
|
|
9975
|
+
import { cn } from "@<%= projectName %>/ui/lib/utils"
|
|
9976
|
+
import { Button } from "@<%= projectName %>/ui/components/button"
|
|
9977
|
+
import { ArrowDownIcon } from "lucide-react"
|
|
9978
|
+
|
|
9979
|
+
function MessageScrollerProvider(
|
|
9980
|
+
props: React.ComponentProps<typeof MessageScrollerPrimitive.Provider>
|
|
9981
|
+
) {
|
|
9982
|
+
return <MessageScrollerPrimitive.Provider {...props} />
|
|
9983
|
+
}
|
|
9984
|
+
|
|
9985
|
+
function MessageScroller({
|
|
9986
|
+
className,
|
|
9987
|
+
...props
|
|
9988
|
+
}: React.ComponentProps<typeof MessageScrollerPrimitive.Root>) {
|
|
9989
|
+
return (
|
|
9990
|
+
<MessageScrollerPrimitive.Root
|
|
9991
|
+
data-slot="message-scroller"
|
|
9992
|
+
className={cn(
|
|
9993
|
+
"group/message-scroller relative flex size-full min-h-0 flex-col overflow-hidden",
|
|
9994
|
+
className
|
|
9995
|
+
)}
|
|
9996
|
+
{...props}
|
|
9997
|
+
/>
|
|
9998
|
+
)
|
|
9999
|
+
}
|
|
10000
|
+
|
|
10001
|
+
function MessageScrollerViewport({
|
|
10002
|
+
className,
|
|
10003
|
+
...props
|
|
10004
|
+
}: React.ComponentProps<typeof MessageScrollerPrimitive.Viewport>) {
|
|
10005
|
+
return (
|
|
10006
|
+
<MessageScrollerPrimitive.Viewport
|
|
10007
|
+
data-slot="message-scroller-viewport"
|
|
10008
|
+
className={cn(
|
|
10009
|
+
"size-full min-h-0 min-w-0 scroll-fade-b scrollbar-thin scrollbar-gutter-stable overflow-y-auto overscroll-contain contain-content data-autoscrolling:scrollbar-thumb-transparent data-autoscrolling:scrollbar-track-transparent",
|
|
10010
|
+
className
|
|
10011
|
+
)}
|
|
10012
|
+
{...props}
|
|
10013
|
+
/>
|
|
10014
|
+
)
|
|
10015
|
+
}
|
|
10016
|
+
|
|
10017
|
+
function MessageScrollerContent({
|
|
10018
|
+
className,
|
|
10019
|
+
...props
|
|
10020
|
+
}: React.ComponentProps<typeof MessageScrollerPrimitive.Content>) {
|
|
10021
|
+
return (
|
|
10022
|
+
<MessageScrollerPrimitive.Content
|
|
10023
|
+
data-slot="message-scroller-content"
|
|
10024
|
+
className={cn("flex h-max min-h-full flex-col gap-6", className)}
|
|
10025
|
+
{...props}
|
|
10026
|
+
/>
|
|
10027
|
+
)
|
|
10028
|
+
}
|
|
10029
|
+
|
|
10030
|
+
function MessageScrollerItem({
|
|
10031
|
+
className,
|
|
10032
|
+
scrollAnchor = false,
|
|
10033
|
+
...props
|
|
10034
|
+
}: React.ComponentProps<typeof MessageScrollerPrimitive.Item>) {
|
|
10035
|
+
return (
|
|
10036
|
+
<MessageScrollerPrimitive.Item
|
|
10037
|
+
data-slot="message-scroller-item"
|
|
10038
|
+
scrollAnchor={scrollAnchor}
|
|
10039
|
+
className={cn(
|
|
10040
|
+
"min-w-0 shrink-0 [contain-intrinsic-size:auto_10rem] [content-visibility:auto]",
|
|
10041
|
+
className
|
|
10042
|
+
)}
|
|
10043
|
+
{...props}
|
|
10044
|
+
/>
|
|
10045
|
+
)
|
|
10046
|
+
}
|
|
10047
|
+
|
|
10048
|
+
function MessageScrollerButton({
|
|
10049
|
+
direction = "end",
|
|
10050
|
+
className,
|
|
10051
|
+
children,
|
|
10052
|
+
render,
|
|
10053
|
+
variant = "secondary",
|
|
10054
|
+
size = "icon-sm",
|
|
10055
|
+
...props
|
|
10056
|
+
}: React.ComponentProps<typeof MessageScrollerPrimitive.Button> &
|
|
10057
|
+
Pick<React.ComponentProps<typeof Button>, "variant" | "size">) {
|
|
10058
|
+
return (
|
|
10059
|
+
<MessageScrollerPrimitive.Button
|
|
10060
|
+
data-slot="message-scroller-button"
|
|
10061
|
+
data-direction={direction}
|
|
10062
|
+
data-variant={variant}
|
|
10063
|
+
data-size={size}
|
|
10064
|
+
direction={direction}
|
|
10065
|
+
className={cn(
|
|
10066
|
+
"absolute inset-s-1/2 -translate-x-1/2 border-border bg-background text-foreground transition-[translate,scale,opacity] duration-200 hover:bg-muted hover:text-foreground data-[active=false]:pointer-events-none data-[active=false]:scale-95 data-[active=false]:opacity-0 data-[active=false]:duration-400 data-[active=false]:ease-[cubic-bezier(0.7,0,0.84,0)] data-[active=true]:translate-y-0 data-[active=true]:scale-100 data-[active=true]:opacity-100 data-[active=true]:ease-[cubic-bezier(0.23,1,0.32,1)] data-[direction=end]:bottom-4 data-[direction=end]:data-[active=false]:translate-y-full data-[direction=start]:top-4 data-[direction=start]:data-[active=false]:-translate-y-full rtl:translate-x-1/2 data-[direction=start]:[&_svg]:rotate-180",
|
|
10067
|
+
className
|
|
10068
|
+
)}
|
|
10069
|
+
render={render ?? <Button variant={variant} size={size} />}
|
|
10070
|
+
{...props}
|
|
10071
|
+
>
|
|
10072
|
+
{children ?? (
|
|
10073
|
+
<>
|
|
10074
|
+
<ArrowDownIcon
|
|
10075
|
+
/>
|
|
10076
|
+
<span className="sr-only">
|
|
10077
|
+
{direction === "end" ? "Scroll to end" : "Scroll to start"}
|
|
10078
|
+
</span>
|
|
10079
|
+
</>
|
|
10080
|
+
)}
|
|
10081
|
+
</MessageScrollerPrimitive.Button>
|
|
10082
|
+
)
|
|
10083
|
+
}
|
|
10084
|
+
|
|
10085
|
+
export {
|
|
10086
|
+
MessageScrollerProvider,
|
|
10087
|
+
MessageScroller,
|
|
10088
|
+
MessageScrollerViewport,
|
|
10089
|
+
MessageScrollerContent,
|
|
10090
|
+
MessageScrollerItem,
|
|
10091
|
+
MessageScrollerButton,
|
|
10092
|
+
useMessageScroller,
|
|
10093
|
+
useMessageScrollerScrollable,
|
|
10094
|
+
useMessageScrollerVisibility,
|
|
10095
|
+
}
|
|
10096
|
+
`
|
|
10097
|
+
};
|
|
10098
|
+
|
|
9366
10099
|
// src/templates/shadcn-ui/index.ts
|
|
9367
10100
|
var shadcnUi = {
|
|
9368
10101
|
templates: [
|
|
@@ -9434,12 +10167,17 @@ var shadcnUi = {
|
|
|
9434
10167
|
toggle_default,
|
|
9435
10168
|
tooltip_default,
|
|
9436
10169
|
mode_toggle_default,
|
|
10170
|
+
attachment_default,
|
|
10171
|
+
bubble_default,
|
|
10172
|
+
marker_default,
|
|
10173
|
+
message_default,
|
|
10174
|
+
message_scroller_default,
|
|
9437
10175
|
components_json_default,
|
|
9438
10176
|
web_components_json_default
|
|
9439
10177
|
],
|
|
9440
10178
|
packages: [
|
|
9441
|
-
{ package: "next-themes", module: "apps/web", version: "
|
|
9442
|
-
{ package: "sonner", module: "apps/web", version:
|
|
10179
|
+
{ package: "next-themes", module: "apps/web", version: versions["next-themes"] },
|
|
10180
|
+
{ package: "sonner", module: "apps/web", version: versions.sonner }
|
|
9443
10181
|
]
|
|
9444
10182
|
};
|
|
9445
10183
|
var shadcn_ui_default = shadcnUi;
|
|
@@ -9458,17 +10196,17 @@ var package_json_default7 = {
|
|
|
9458
10196
|
"./react-internal": "./react-internal.js"
|
|
9459
10197
|
},
|
|
9460
10198
|
"devDependencies": {
|
|
9461
|
-
"@eslint/js": "
|
|
9462
|
-
"@next/eslint-plugin-next": "
|
|
9463
|
-
"eslint": "
|
|
9464
|
-
"eslint-config-prettier": "
|
|
9465
|
-
"eslint-plugin-only-warn": "
|
|
9466
|
-
"eslint-plugin-react": "
|
|
9467
|
-
"eslint-plugin-react-hooks": "
|
|
9468
|
-
"eslint-plugin-turbo": "
|
|
9469
|
-
"globals": "
|
|
9470
|
-
"typescript": "
|
|
9471
|
-
"typescript-eslint": "
|
|
10199
|
+
"@eslint/js": "<%= versions["@eslint/js"] %>",
|
|
10200
|
+
"@next/eslint-plugin-next": "<%= versions["@next/eslint-plugin-next"] %>",
|
|
10201
|
+
"eslint": "<%= versions.eslint %>",
|
|
10202
|
+
"eslint-config-prettier": "<%= versions["eslint-config-prettier"] %>",
|
|
10203
|
+
"eslint-plugin-only-warn": "<%= versions["eslint-plugin-only-warn"] %>",
|
|
10204
|
+
"eslint-plugin-react": "<%= versions["eslint-plugin-react"] %>",
|
|
10205
|
+
"eslint-plugin-react-hooks": "<%= versions["eslint-plugin-react-hooks"] %>",
|
|
10206
|
+
"eslint-plugin-turbo": "<%= versions["eslint-plugin-turbo"] %>",
|
|
10207
|
+
"globals": "<%= versions.globals %>",
|
|
10208
|
+
"typescript": "<%= versions.typescript %>",
|
|
10209
|
+
"typescript-eslint": "<%= versions["typescript-eslint"] %>"
|
|
9472
10210
|
}
|
|
9473
10211
|
}`
|
|
9474
10212
|
};
|
|
@@ -9674,25 +10412,34 @@ var eslint_config_default3 = {
|
|
|
9674
10412
|
export default config;`
|
|
9675
10413
|
};
|
|
9676
10414
|
|
|
10415
|
+
// src/templates/root/templates/prettierrc.ts
|
|
10416
|
+
var prettierrc_default = {
|
|
10417
|
+
filename: ".prettierrc",
|
|
10418
|
+
template: `{
|
|
10419
|
+
"singleQuote": true,
|
|
10420
|
+
"trailingComma": "all"
|
|
10421
|
+
}`
|
|
10422
|
+
};
|
|
10423
|
+
|
|
9677
10424
|
// src/templates/eslint-config/index.ts
|
|
9678
10425
|
var web2 = "apps/web";
|
|
9679
10426
|
var api2 = "apps/api";
|
|
9680
10427
|
var ui2 = "packages/ui";
|
|
9681
10428
|
var root2 = "";
|
|
9682
10429
|
var eslintConfig = {
|
|
9683
|
-
templates: [package_json_default7, base_default, next_default, react_internal_default, eslint_config_default, eslint_config_default2, eslint_config_default3],
|
|
10430
|
+
templates: [package_json_default7, base_default, next_default, react_internal_default, eslint_config_default, eslint_config_default2, eslint_config_default3, prettierrc_default],
|
|
9684
10431
|
packages: [
|
|
9685
|
-
{ package: "eslint", module: web2, version:
|
|
10432
|
+
{ package: "eslint", module: web2, version: versions.eslint, dev: true },
|
|
9686
10433
|
{ package: "@<%= projectName %>/eslint-config", module: web2, version: "workspace:*", dev: true },
|
|
9687
|
-
{ package: "@eslint/eslintrc", module: api2, version: "
|
|
9688
|
-
{ package: "@eslint/js", module: api2, version: "
|
|
9689
|
-
{ package: "eslint", module: api2, version:
|
|
9690
|
-
{ package: "eslint-config-prettier", module: api2, version: "
|
|
9691
|
-
{ package: "globals", module: api2, version:
|
|
9692
|
-
{ package: "typescript-eslint", module: api2, version: "
|
|
9693
|
-
{ package: "eslint", module: ui2, version:
|
|
10434
|
+
{ package: "@eslint/eslintrc", module: api2, version: versions["@eslint/eslintrc"], dev: true },
|
|
10435
|
+
{ package: "@eslint/js", module: api2, version: versions["@eslint/js"], dev: true },
|
|
10436
|
+
{ package: "eslint", module: api2, version: versions.eslint, dev: true },
|
|
10437
|
+
{ package: "eslint-config-prettier", module: api2, version: versions["eslint-config-prettier"], dev: true },
|
|
10438
|
+
{ package: "globals", module: api2, version: versions.globals, dev: true },
|
|
10439
|
+
{ package: "typescript-eslint", module: api2, version: versions["typescript-eslint"], dev: true },
|
|
10440
|
+
{ package: "eslint", module: ui2, version: versions.eslint, dev: true },
|
|
9694
10441
|
{ package: "@<%= projectName %>/eslint-config", module: ui2, version: "workspace:*", dev: true },
|
|
9695
|
-
{ package: "prettier", module: root2, version:
|
|
10442
|
+
{ package: "prettier", module: root2, version: versions.prettier, dev: true }
|
|
9696
10443
|
],
|
|
9697
10444
|
scripts: [
|
|
9698
10445
|
{ module: web2, name: "lint", script: "eslint --fix && next typegen && tsc --noEmit" },
|
|
@@ -9735,10 +10482,10 @@ var root3 = "";
|
|
|
9735
10482
|
var oxc = {
|
|
9736
10483
|
templates: [oxlintrc_default, oxfmtrc_default],
|
|
9737
10484
|
packages: [
|
|
9738
|
-
{ package: "oxlint", module: web3, version:
|
|
9739
|
-
{ package: "oxlint", module: api3, version:
|
|
9740
|
-
{ package: "oxlint", module: ui3, version:
|
|
9741
|
-
{ package: "oxfmt", module: root3, version:
|
|
10485
|
+
{ package: "oxlint", module: web3, version: versions.oxlint, dev: true },
|
|
10486
|
+
{ package: "oxlint", module: api3, version: versions.oxlint, dev: true },
|
|
10487
|
+
{ package: "oxlint", module: ui3, version: versions.oxlint, dev: true },
|
|
10488
|
+
{ package: "oxfmt", module: root3, version: versions.oxfmt, dev: true }
|
|
9742
10489
|
],
|
|
9743
10490
|
scripts: [
|
|
9744
10491
|
{ module: web3, name: "lint", script: "oxlint --fix && next typegen && tsc --noEmit" },
|
|
@@ -9911,11 +10658,11 @@ module.exports = {
|
|
|
9911
10658
|
var testingJest = {
|
|
9912
10659
|
templates: [jest_config_default, jest_e2e_config_default, e2e_spec_default, nestjs_better_auth_mock_default],
|
|
9913
10660
|
packages: [
|
|
9914
|
-
{ package: "jest", module: "apps/api", version:
|
|
9915
|
-
{ package: "ts-jest", module: "apps/api", version: "
|
|
9916
|
-
{ package: "@types/jest", module: "apps/api", version: "
|
|
9917
|
-
{ package: "ts-loader", module: "apps/api", version: "
|
|
9918
|
-
{ package: "source-map-support", module: "apps/api", version: "
|
|
10661
|
+
{ package: "jest", module: "apps/api", version: versions.jest, dev: true },
|
|
10662
|
+
{ package: "ts-jest", module: "apps/api", version: versions["ts-jest"], dev: true },
|
|
10663
|
+
{ package: "@types/jest", module: "apps/api", version: versions["@types/jest"], dev: true },
|
|
10664
|
+
{ package: "ts-loader", module: "apps/api", version: versions["ts-loader"], dev: true },
|
|
10665
|
+
{ package: "source-map-support", module: "apps/api", version: versions["source-map-support"], dev: true }
|
|
9919
10666
|
],
|
|
9920
10667
|
scripts: [
|
|
9921
10668
|
{ module: "apps/api", name: "test", script: "jest" },
|
|
@@ -9997,10 +10744,10 @@ describe('AppController (e2e)', () => {
|
|
|
9997
10744
|
var testingVitest = {
|
|
9998
10745
|
templates: [vitest_config_default, vitest_config_e2e_default, e2e_spec_default2],
|
|
9999
10746
|
packages: [
|
|
10000
|
-
{ package: "vitest", module: "apps/api", version:
|
|
10001
|
-
{ package: "@vitest/coverage-v8", module: "apps/api", version: "
|
|
10002
|
-
{ package: "unplugin-swc", module: "apps/api", version: "
|
|
10003
|
-
{ package: "@swc/core", module: "apps/api", version: "
|
|
10747
|
+
{ package: "vitest", module: "apps/api", version: versions.vitest, dev: true },
|
|
10748
|
+
{ package: "@vitest/coverage-v8", module: "apps/api", version: versions["@vitest/coverage-v8"], dev: true },
|
|
10749
|
+
{ package: "unplugin-swc", module: "apps/api", version: versions["unplugin-swc"], dev: true },
|
|
10750
|
+
{ package: "@swc/core", module: "apps/api", version: versions["@swc/core"], dev: true }
|
|
10004
10751
|
],
|
|
10005
10752
|
scripts: [
|
|
10006
10753
|
{ module: "apps/api", name: "test", script: "vitest run" },
|
|
@@ -10212,27 +10959,27 @@ var api_package_json_default = {
|
|
|
10212
10959
|
"start:prod": "node dist/main"
|
|
10213
10960
|
},
|
|
10214
10961
|
"dependencies": {
|
|
10215
|
-
"@nestjs/common": "
|
|
10216
|
-
"@nestjs/core": "
|
|
10217
|
-
"@nestjs/platform-express": "
|
|
10962
|
+
"@nestjs/common": "<%= versions["@nestjs/common"] %>",
|
|
10963
|
+
"@nestjs/core": "<%= versions["@nestjs/core"] %>",
|
|
10964
|
+
"@nestjs/platform-express": "<%= versions["@nestjs/platform-express"] %>",
|
|
10218
10965
|
"@<%= projectName %>/auth": "workspace:*",
|
|
10219
10966
|
"@<%= projectName %>/db": "workspace:*",
|
|
10220
|
-
"@thallesp/nestjs-better-auth": "
|
|
10221
|
-
"dotenv": "
|
|
10222
|
-
"reflect-metadata": "
|
|
10223
|
-
"rxjs": "
|
|
10967
|
+
"@thallesp/nestjs-better-auth": "<%= versions["@thallesp/nestjs-better-auth"] %>",
|
|
10968
|
+
"dotenv": "<%= versions.dotenv %>",
|
|
10969
|
+
"reflect-metadata": "<%= versions["reflect-metadata"] %>",
|
|
10970
|
+
"rxjs": "<%= versions.rxjs %>"
|
|
10224
10971
|
},
|
|
10225
10972
|
"devDependencies": {
|
|
10226
|
-
"@nestjs/cli": "
|
|
10227
|
-
"@nestjs/schematics": "
|
|
10228
|
-
"@nestjs/testing": "
|
|
10229
|
-
"@types/express": "
|
|
10230
|
-
"@types/node": "
|
|
10231
|
-
"@types/supertest": "
|
|
10232
|
-
"supertest": "
|
|
10233
|
-
"ts-node": "
|
|
10234
|
-
"tsconfig-paths": "
|
|
10235
|
-
"typescript": "
|
|
10973
|
+
"@nestjs/cli": "<%= versions["@nestjs/cli"] %>",
|
|
10974
|
+
"@nestjs/schematics": "<%= versions["@nestjs/schematics"] %>",
|
|
10975
|
+
"@nestjs/testing": "<%= versions["@nestjs/testing"] %>",
|
|
10976
|
+
"@types/express": "<%= versions["@types/express"] %>",
|
|
10977
|
+
"@types/node": "<%= versions["@types/node"] %>",
|
|
10978
|
+
"@types/supertest": "<%= versions["@types/supertest"] %>",
|
|
10979
|
+
"supertest": "<%= versions.supertest %>",
|
|
10980
|
+
"ts-node": "<%= versions["ts-node"] %>",
|
|
10981
|
+
"tsconfig-paths": "<%= versions["tsconfig-paths"] %>",
|
|
10982
|
+
"typescript": "<%= versions.typescript %>"
|
|
10236
10983
|
}
|
|
10237
10984
|
}`
|
|
10238
10985
|
};
|
|
@@ -10311,25 +11058,25 @@ var web_package_json_default = {
|
|
|
10311
11058
|
"@<%= projectName %>/api": "workspace:*",
|
|
10312
11059
|
"@<%= projectName %>/auth": "workspace:*",
|
|
10313
11060
|
"@<%= projectName %>/ui": "workspace:*",
|
|
10314
|
-
"@nestjs/core": "
|
|
10315
|
-
"@tailwindcss/postcss": "
|
|
10316
|
-
"dotenv": "
|
|
10317
|
-
"@tanstack/react-form": "
|
|
10318
|
-
"@tanstack/react-query": "
|
|
10319
|
-
"better-auth": "
|
|
10320
|
-
"next": "
|
|
10321
|
-
"react": "
|
|
10322
|
-
"react-dom": "
|
|
10323
|
-
"reflect-metadata": "
|
|
10324
|
-
"tailwindcss": "
|
|
11061
|
+
"@nestjs/core": "<%= versions["@nestjs/core"] %>",
|
|
11062
|
+
"@tailwindcss/postcss": "<%= versions["@tailwindcss/postcss"] %>",
|
|
11063
|
+
"dotenv": "<%= versions.dotenv %>",
|
|
11064
|
+
"@tanstack/react-form": "<%= versions["@tanstack/react-form"] %>",
|
|
11065
|
+
"@tanstack/react-query": "<%= versions["@tanstack/react-query"] %>",
|
|
11066
|
+
"better-auth": "<%= versions["better-auth"] %>",
|
|
11067
|
+
"next": "<%= versions.next %>",
|
|
11068
|
+
"react": "<%= versions.react %>",
|
|
11069
|
+
"react-dom": "<%= versions["react-dom"] %>",
|
|
11070
|
+
"reflect-metadata": "<%= versions["reflect-metadata"] %>",
|
|
11071
|
+
"tailwindcss": "<%= versions.tailwindcss %>"
|
|
10325
11072
|
},
|
|
10326
11073
|
"devDependencies": {
|
|
10327
11074
|
"@<%= projectName %>/typescript-config": "workspace:*",
|
|
10328
|
-
"@types/node": "
|
|
10329
|
-
"@types/react": "
|
|
10330
|
-
"@types/react-dom": "
|
|
10331
|
-
"tsx": "
|
|
10332
|
-
"typescript": "
|
|
11075
|
+
"@types/node": "<%= versions["@types/node"] %>",
|
|
11076
|
+
"@types/react": "<%= versions["@types/react"] %>",
|
|
11077
|
+
"@types/react-dom": "<%= versions["@types/react-dom"] %>",
|
|
11078
|
+
"tsx": "<%= versions.tsx %>",
|
|
11079
|
+
"typescript": "<%= versions.typescript %>"
|
|
10333
11080
|
}
|
|
10334
11081
|
}`
|
|
10335
11082
|
};
|
|
@@ -10472,28 +11219,28 @@ var api_package_json_default2 = {
|
|
|
10472
11219
|
"start:prod": "node dist/main"
|
|
10473
11220
|
},
|
|
10474
11221
|
"dependencies": {
|
|
10475
|
-
"@nestjs/common": "
|
|
10476
|
-
"@nestjs/core": "
|
|
10477
|
-
"@nestjs/platform-express": "
|
|
10478
|
-
"@nestjs/serve-static": "
|
|
11222
|
+
"@nestjs/common": "<%= versions["@nestjs/common"] %>",
|
|
11223
|
+
"@nestjs/core": "<%= versions["@nestjs/core"] %>",
|
|
11224
|
+
"@nestjs/platform-express": "<%= versions["@nestjs/platform-express"] %>",
|
|
11225
|
+
"@nestjs/serve-static": "<%= versions["@nestjs/serve-static"] %>",
|
|
10479
11226
|
"@<%= projectName %>/auth": "workspace:*",
|
|
10480
11227
|
"@<%= projectName %>/db": "workspace:*",
|
|
10481
|
-
"@thallesp/nestjs-better-auth": "
|
|
10482
|
-
"dotenv": "
|
|
10483
|
-
"reflect-metadata": "
|
|
10484
|
-
"rxjs": "
|
|
11228
|
+
"@thallesp/nestjs-better-auth": "<%= versions["@thallesp/nestjs-better-auth"] %>",
|
|
11229
|
+
"dotenv": "<%= versions.dotenv %>",
|
|
11230
|
+
"reflect-metadata": "<%= versions["reflect-metadata"] %>",
|
|
11231
|
+
"rxjs": "<%= versions.rxjs %>"
|
|
10485
11232
|
},
|
|
10486
11233
|
"devDependencies": {
|
|
10487
|
-
"@nestjs/cli": "
|
|
10488
|
-
"@nestjs/schematics": "
|
|
10489
|
-
"@nestjs/testing": "
|
|
10490
|
-
"@types/express": "
|
|
10491
|
-
"@types/node": "
|
|
10492
|
-
"@types/supertest": "
|
|
10493
|
-
"supertest": "
|
|
10494
|
-
"ts-node": "
|
|
10495
|
-
"tsconfig-paths": "
|
|
10496
|
-
"typescript": "
|
|
11234
|
+
"@nestjs/cli": "<%= versions["@nestjs/cli"] %>",
|
|
11235
|
+
"@nestjs/schematics": "<%= versions["@nestjs/schematics"] %>",
|
|
11236
|
+
"@nestjs/testing": "<%= versions["@nestjs/testing"] %>",
|
|
11237
|
+
"@types/express": "<%= versions["@types/express"] %>",
|
|
11238
|
+
"@types/node": "<%= versions["@types/node"] %>",
|
|
11239
|
+
"@types/supertest": "<%= versions["@types/supertest"] %>",
|
|
11240
|
+
"supertest": "<%= versions.supertest %>",
|
|
11241
|
+
"ts-node": "<%= versions["ts-node"] %>",
|
|
11242
|
+
"tsconfig-paths": "<%= versions["tsconfig-paths"] %>",
|
|
11243
|
+
"typescript": "<%= versions.typescript %>"
|
|
10497
11244
|
}
|
|
10498
11245
|
}`
|
|
10499
11246
|
};
|
|
@@ -10555,23 +11302,23 @@ var api_package_json_default3 = {
|
|
|
10555
11302
|
"build": "nest build"
|
|
10556
11303
|
},
|
|
10557
11304
|
"dependencies": {
|
|
10558
|
-
"@nestjs/common": "
|
|
10559
|
-
"@nestjs/core": "
|
|
11305
|
+
"@nestjs/common": "<%= versions["@nestjs/common"] %>",
|
|
11306
|
+
"@nestjs/core": "<%= versions["@nestjs/core"] %>",
|
|
10560
11307
|
"@<%= projectName %>/auth": "workspace:*",
|
|
10561
11308
|
"@<%= projectName %>/db": "workspace:*",
|
|
10562
|
-
"@thallesp/nestjs-better-auth": "
|
|
10563
|
-
"dotenv": "
|
|
10564
|
-
"reflect-metadata": "
|
|
10565
|
-
"rxjs": "
|
|
11309
|
+
"@thallesp/nestjs-better-auth": "<%= versions["@thallesp/nestjs-better-auth"] %>",
|
|
11310
|
+
"dotenv": "<%= versions.dotenv %>",
|
|
11311
|
+
"reflect-metadata": "<%= versions["reflect-metadata"] %>",
|
|
11312
|
+
"rxjs": "<%= versions.rxjs %>"
|
|
10566
11313
|
},
|
|
10567
11314
|
"devDependencies": {
|
|
10568
|
-
"@nestjs/cli": "
|
|
10569
|
-
"@nestjs/schematics": "
|
|
10570
|
-
"@nestjs/testing": "
|
|
10571
|
-
"@types/node": "
|
|
10572
|
-
"ts-node": "
|
|
10573
|
-
"tsconfig-paths": "
|
|
10574
|
-
"typescript": "
|
|
11315
|
+
"@nestjs/cli": "<%= versions["@nestjs/cli"] %>",
|
|
11316
|
+
"@nestjs/schematics": "<%= versions["@nestjs/schematics"] %>",
|
|
11317
|
+
"@nestjs/testing": "<%= versions["@nestjs/testing"] %>",
|
|
11318
|
+
"@types/node": "<%= versions["@types/node"] %>",
|
|
11319
|
+
"ts-node": "<%= versions["ts-node"] %>",
|
|
11320
|
+
"tsconfig-paths": "<%= versions["tsconfig-paths"] %>",
|
|
11321
|
+
"typescript": "<%= versions.typescript %>"
|
|
10575
11322
|
}
|
|
10576
11323
|
}`
|
|
10577
11324
|
};
|
|
@@ -10660,25 +11407,25 @@ var web_package_json_default2 = {
|
|
|
10660
11407
|
"@<%= projectName %>/auth": "workspace:*",
|
|
10661
11408
|
"@<%= projectName %>/db": "workspace:*",
|
|
10662
11409
|
"@<%= projectName %>/ui": "workspace:*",
|
|
10663
|
-
"@nestjs/common": "
|
|
10664
|
-
"@nestjs/core": "
|
|
10665
|
-
"reflect-metadata": "
|
|
10666
|
-
"@tailwindcss/postcss": "
|
|
10667
|
-
"dotenv": "
|
|
10668
|
-
"@tanstack/react-form": "
|
|
10669
|
-
"@tanstack/react-query": "
|
|
10670
|
-
"better-auth": "
|
|
10671
|
-
"next": "
|
|
10672
|
-
"react": "
|
|
10673
|
-
"react-dom": "
|
|
10674
|
-
"tailwindcss": "
|
|
11410
|
+
"@nestjs/common": "<%= versions["@nestjs/common"] %>",
|
|
11411
|
+
"@nestjs/core": "<%= versions["@nestjs/core"] %>",
|
|
11412
|
+
"reflect-metadata": "<%= versions["reflect-metadata"] %>",
|
|
11413
|
+
"@tailwindcss/postcss": "<%= versions["@tailwindcss/postcss"] %>",
|
|
11414
|
+
"dotenv": "<%= versions.dotenv %>",
|
|
11415
|
+
"@tanstack/react-form": "<%= versions["@tanstack/react-form"] %>",
|
|
11416
|
+
"@tanstack/react-query": "<%= versions["@tanstack/react-query"] %>",
|
|
11417
|
+
"better-auth": "<%= versions["better-auth"] %>",
|
|
11418
|
+
"next": "<%= versions.next %>",
|
|
11419
|
+
"react": "<%= versions.react %>",
|
|
11420
|
+
"react-dom": "<%= versions["react-dom"] %>",
|
|
11421
|
+
"tailwindcss": "<%= versions.tailwindcss %>"
|
|
10675
11422
|
},
|
|
10676
11423
|
"devDependencies": {
|
|
10677
11424
|
"@<%= projectName %>/typescript-config": "workspace:*",
|
|
10678
|
-
"@types/node": "
|
|
10679
|
-
"@types/react": "
|
|
10680
|
-
"@types/react-dom": "
|
|
10681
|
-
"typescript": "
|
|
11425
|
+
"@types/node": "<%= versions["@types/node"] %>",
|
|
11426
|
+
"@types/react": "<%= versions["@types/react"] %>",
|
|
11427
|
+
"@types/react-dom": "<%= versions["@types/react-dom"] %>",
|
|
11428
|
+
"typescript": "<%= versions.typescript %>"
|
|
10682
11429
|
}
|
|
10683
11430
|
}`
|
|
10684
11431
|
};
|
|
@@ -11900,32 +12647,37 @@ var staticDirPath = fileURLToPath(staticDir);
|
|
|
11900
12647
|
function getStaticFilePath(name) {
|
|
11901
12648
|
return fileURLToPath(new URL(`./static/${name}`, import.meta.url));
|
|
11902
12649
|
}
|
|
11903
|
-
|
|
11904
|
-
|
|
11905
|
-
|
|
11906
|
-
|
|
11907
|
-
|
|
11908
|
-
|
|
11909
|
-
|
|
11910
|
-
|
|
11911
|
-
|
|
11912
|
-
|
|
11913
|
-
|
|
11914
|
-
|
|
11915
|
-
|
|
11916
|
-
|
|
11917
|
-
|
|
11918
|
-
|
|
11919
|
-
|
|
11920
|
-
|
|
11921
|
-
|
|
11922
|
-
|
|
11923
|
-
|
|
11924
|
-
|
|
11925
|
-
|
|
11926
|
-
|
|
11927
|
-
|
|
11928
|
-
|
|
12650
|
+
function selectModules(selection) {
|
|
12651
|
+
const { deployment, nestDiOnly: nestDiOnly2, todoExample, shadcn, database, linter, testing } = selection;
|
|
12652
|
+
const deploymentModule = deployment === "standalone" ? deployment_standalone_default : deployment === "custom-server" ? single_process_custom_server_default : deployment === "spa" ? single_process_static_export_default : null;
|
|
12653
|
+
const webModule = deployment === "spa" ? {
|
|
12654
|
+
...web_default,
|
|
12655
|
+
templates: web_default.templates.filter(
|
|
12656
|
+
(t) => t.filename !== "apps/web/app/api/auth/[...all]/route.ts"
|
|
12657
|
+
)
|
|
12658
|
+
} : web_default;
|
|
12659
|
+
return [
|
|
12660
|
+
root_default,
|
|
12661
|
+
webModule,
|
|
12662
|
+
api_default,
|
|
12663
|
+
database === "postgres" ? dbPostgres : dbSqlite,
|
|
12664
|
+
auth_default,
|
|
12665
|
+
shadcn ? shadcn_ui_default : ui_default,
|
|
12666
|
+
linter === "oxc" ? oxc_default : eslint_config_default4,
|
|
12667
|
+
typescript_config_default,
|
|
12668
|
+
testing === "vitest" ? testing_vitest_default : testing_jest_default,
|
|
12669
|
+
...deploymentModule ? [deploymentModule] : [],
|
|
12670
|
+
...nestDiOnly2 ? [nest_di_only_default] : [api_controllers_default],
|
|
12671
|
+
// nest-di-only overwrites the standalone next.config.js and leaves the
|
|
12672
|
+
// Dockerfile pointing at an api entrypoint DI-only never emits
|
|
12673
|
+
...nestDiOnly2 && deployment === "standalone" ? [deployment_standalone_di_default] : [],
|
|
12674
|
+
...todoExample ? [
|
|
12675
|
+
todoExampleApi,
|
|
12676
|
+
...nestDiOnly2 ? [todoExampleDi] : [todoExampleControllers],
|
|
12677
|
+
shadcn ? todoExampleShadcn : todoExampleWeb
|
|
12678
|
+
] : []
|
|
12679
|
+
];
|
|
12680
|
+
}
|
|
11929
12681
|
|
|
11930
12682
|
// src/tasks.ts
|
|
11931
12683
|
import { randomBytes } from "crypto";
|
|
@@ -12108,7 +12860,8 @@ async function scaffold(modules, options) {
|
|
|
12108
12860
|
testing: options.testing,
|
|
12109
12861
|
database: options.database,
|
|
12110
12862
|
deployment: options.deployment,
|
|
12111
|
-
authSecret: randomBytes(32).toString("base64url")
|
|
12863
|
+
authSecret: randomBytes(32).toString("base64url"),
|
|
12864
|
+
versions
|
|
12112
12865
|
};
|
|
12113
12866
|
await renderTemplatesToDisk(modules, options.name, templateData, options.selection);
|
|
12114
12867
|
const packages = modules.map((mod) => mod.packages).filter((ele) => ele !== void 0).flat();
|
|
@@ -12238,34 +12991,16 @@ async function doInit(options) {
|
|
|
12238
12991
|
if (!deploymentCombo.valid) {
|
|
12239
12992
|
throw new Error(deploymentCombo.error);
|
|
12240
12993
|
}
|
|
12241
|
-
const
|
|
12242
|
-
|
|
12243
|
-
|
|
12244
|
-
|
|
12245
|
-
|
|
12246
|
-
|
|
12247
|
-
|
|
12248
|
-
|
|
12249
|
-
|
|
12250
|
-
|
|
12251
|
-
templates.api,
|
|
12252
|
-
database === "postgres" ? templates.dbPostgres : templates.dbSqlite,
|
|
12253
|
-
templates.auth,
|
|
12254
|
-
useShadcn ? templates.shadcnUi : templates.ui,
|
|
12255
|
-
linter === "oxc" ? templates.oxc : templates.eslintConfig,
|
|
12256
|
-
templates.typescriptConfig,
|
|
12257
|
-
testing === "vitest" ? templates.testingVitest : templates.testingJest,
|
|
12258
|
-
...deploymentModule ? [deploymentModule] : [],
|
|
12259
|
-
...nestDiOnly2 ? [templates.nestDiOnly] : [templates.apiControllers],
|
|
12260
|
-
// nest-di-only overwrites the standalone next.config.js and leaves the
|
|
12261
|
-
// Dockerfile pointing at an api entrypoint DI-only never emits
|
|
12262
|
-
...nestDiOnly2 && deployment === "standalone" ? [templates.deploymentStandaloneDi] : [],
|
|
12263
|
-
...todoExample ? [
|
|
12264
|
-
templates.todoExampleApi,
|
|
12265
|
-
...nestDiOnly2 ? [templates.todoExampleDi] : [templates.todoExampleControllers],
|
|
12266
|
-
useShadcn ? templates.todoExampleShadcn : templates.todoExampleWeb
|
|
12267
|
-
] : []
|
|
12268
|
-
];
|
|
12994
|
+
const selection = {
|
|
12995
|
+
deployment,
|
|
12996
|
+
nestDiOnly: nestDiOnly2,
|
|
12997
|
+
todoExample,
|
|
12998
|
+
shadcn: useShadcn,
|
|
12999
|
+
database,
|
|
13000
|
+
linter,
|
|
13001
|
+
testing
|
|
13002
|
+
};
|
|
13003
|
+
const allModules = selectModules(selection);
|
|
12269
13004
|
const name = group2.name ?? options.name ?? "";
|
|
12270
13005
|
const taskBuilder = new TaskBuilder();
|
|
12271
13006
|
taskBuilder.add({
|
|
@@ -12276,7 +13011,7 @@ async function doInit(options) {
|
|
|
12276
13011
|
testing,
|
|
12277
13012
|
database,
|
|
12278
13013
|
deployment,
|
|
12279
|
-
selection
|
|
13014
|
+
selection
|
|
12280
13015
|
});
|
|
12281
13016
|
return "Scaffolded.";
|
|
12282
13017
|
}
|