@tanstack/cli 0.62.2 → 0.62.4
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/package.json +5 -3
- package/skills/add-addons-existing-app/SKILL.md +1 -1
- package/skills/choose-ecosystem-integrations/SKILL.md +1 -1
- package/skills/create-app-scaffold/SKILL.md +1 -1
- package/skills/create-app-scaffold/references/create-flag-compatibility-matrix.md +1 -1
- package/skills/maintain-custom-addons-dev-watch/SKILL.md +12 -11
- package/skills/query-docs-library-metadata/SKILL.md +10 -5
- package/skills/query-docs-library-metadata/references/discovery-command-output-schemas.md +85 -24
package/package.json
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tanstack/cli",
|
|
3
|
-
"version": "0.62.
|
|
3
|
+
"version": "0.62.4",
|
|
4
4
|
"description": "TanStack CLI",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"types": "./dist/types/index.d.ts",
|
|
8
8
|
"files": [
|
|
9
9
|
"dist",
|
|
10
|
-
"skills"
|
|
10
|
+
"skills",
|
|
11
|
+
"!skills/_artifacts"
|
|
11
12
|
],
|
|
12
13
|
"bin": {
|
|
13
14
|
"tanstack": "./dist/bin.js"
|
|
@@ -40,11 +41,12 @@
|
|
|
40
41
|
"tempy": "^3.1.0",
|
|
41
42
|
"validate-npm-package-name": "^7.0.0",
|
|
42
43
|
"zod": "^3.24.2",
|
|
43
|
-
"@tanstack/create": "0.63.
|
|
44
|
+
"@tanstack/create": "0.63.1"
|
|
44
45
|
},
|
|
45
46
|
"devDependencies": {
|
|
46
47
|
"@playwright/test": "^1.58.2",
|
|
47
48
|
"@tanstack/config": "^0.16.2",
|
|
49
|
+
"@tanstack/intent": "^0.0.13",
|
|
48
50
|
"@types/diff": "^5.2.0",
|
|
49
51
|
"@types/node": "^22.13.4",
|
|
50
52
|
"@types/semver": "^7.7.0",
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
name: maintain-custom-addons-dev-watch
|
|
3
3
|
description: >
|
|
4
4
|
Build and iterate custom add-ons/templates with tanstack add-on init,
|
|
5
|
-
add-on compile, add-on dev, and tanstack
|
|
5
|
+
add-on compile, add-on dev, and tanstack create --dev-watch, including sync
|
|
6
6
|
loop preconditions, watch-path validation, and project metadata constraints.
|
|
7
7
|
type: lifecycle
|
|
8
8
|
library: tanstack-cli
|
|
9
|
-
library_version: "0.
|
|
9
|
+
library_version: "0.62.1"
|
|
10
10
|
requires:
|
|
11
11
|
- add-addons-existing-app
|
|
12
12
|
---
|
|
@@ -30,10 +30,11 @@ npx @tanstack/cli add-on compile
|
|
|
30
30
|
npx @tanstack/cli add-on dev
|
|
31
31
|
```
|
|
32
32
|
|
|
33
|
-
### Sync watched
|
|
33
|
+
### Sync watched framework directory into a sandbox target app
|
|
34
34
|
|
|
35
35
|
```bash
|
|
36
|
-
|
|
36
|
+
# --dev-watch is a flag on `create`, not on `dev`
|
|
37
|
+
npx @tanstack/cli create my-sandbox --dev-watch ../path/to/framework-dir
|
|
37
38
|
```
|
|
38
39
|
|
|
39
40
|
### Re-run compile before apply when changing metadata
|
|
@@ -49,33 +50,33 @@ npx @tanstack/cli add my-custom-addon
|
|
|
49
50
|
|
|
50
51
|
Wrong:
|
|
51
52
|
```bash
|
|
52
|
-
npx @tanstack/cli
|
|
53
|
+
npx @tanstack/cli create my-sandbox --dev-watch ../my-addon-package --no-install
|
|
53
54
|
```
|
|
54
55
|
|
|
55
56
|
Correct:
|
|
56
57
|
```bash
|
|
57
|
-
npx @tanstack/cli
|
|
58
|
+
npx @tanstack/cli create my-sandbox --dev-watch ../my-addon-package
|
|
58
59
|
```
|
|
59
60
|
|
|
60
61
|
Dev-watch rejects `--no-install`, so automated loops fail before any sync work starts.
|
|
61
62
|
|
|
62
63
|
Source: packages/cli/src/dev-watch.ts:112
|
|
63
64
|
|
|
64
|
-
### HIGH Start dev-watch without valid
|
|
65
|
+
### HIGH Start dev-watch without valid framework directory
|
|
65
66
|
|
|
66
67
|
Wrong:
|
|
67
68
|
```bash
|
|
68
|
-
npx @tanstack/cli
|
|
69
|
+
npx @tanstack/cli create my-sandbox --dev-watch ../missing-or-invalid-dir
|
|
69
70
|
```
|
|
70
71
|
|
|
71
72
|
Correct:
|
|
72
73
|
```bash
|
|
73
|
-
npx @tanstack/cli
|
|
74
|
+
npx @tanstack/cli create my-sandbox --dev-watch ../valid-framework-dir
|
|
74
75
|
```
|
|
75
76
|
|
|
76
|
-
Watch setup validates path
|
|
77
|
+
Watch setup validates that the path exists, is a directory, and contains at least one of `add-ons/`, `assets/`, or `framework.json`. Invalid targets fail before file syncing begins.
|
|
77
78
|
|
|
78
|
-
Source: packages/cli/src/
|
|
79
|
+
Source: packages/cli/src/command-line.ts:599
|
|
79
80
|
|
|
80
81
|
### CRITICAL Author add-on from code-router project
|
|
81
82
|
|
|
@@ -6,7 +6,7 @@ description: >
|
|
|
6
6
|
--addon-details for agent-safe discovery and preflight validation.
|
|
7
7
|
type: core
|
|
8
8
|
library: tanstack-cli
|
|
9
|
-
library_version: "0.
|
|
9
|
+
library_version: "0.62.1"
|
|
10
10
|
---
|
|
11
11
|
|
|
12
12
|
# Query Docs And Library Metadata
|
|
@@ -30,7 +30,9 @@ npx @tanstack/cli libraries --json
|
|
|
30
30
|
### Fetch a specific docs page with explicit version
|
|
31
31
|
|
|
32
32
|
```bash
|
|
33
|
-
|
|
33
|
+
# Syntax: tanstack doc <library-id> <path> [--docs-version <version>]
|
|
34
|
+
npx @tanstack/cli doc router framework/react/guide/routing
|
|
35
|
+
npx @tanstack/cli doc router framework/react/guide/routing --docs-version latest
|
|
34
36
|
```
|
|
35
37
|
|
|
36
38
|
### Search docs for implementation targets
|
|
@@ -45,16 +47,19 @@ npx @tanstack/cli search-docs "server functions" --library start --json
|
|
|
45
47
|
|
|
46
48
|
Wrong:
|
|
47
49
|
```bash
|
|
48
|
-
|
|
50
|
+
# Wrong: --library and --version are not flags on doc; path must not include /docs/ prefix
|
|
51
|
+
npx @tanstack/cli doc --library router --version latest --path /docs/framework/react/guide/routing
|
|
49
52
|
```
|
|
50
53
|
|
|
51
54
|
Correct:
|
|
52
55
|
```bash
|
|
56
|
+
# Step 1: resolve a valid library id
|
|
53
57
|
npx @tanstack/cli libraries --json
|
|
54
|
-
|
|
58
|
+
# Step 2: fetch using positional args — library id then doc path (no /docs/ prefix)
|
|
59
|
+
npx @tanstack/cli doc router framework/react/guide/routing
|
|
55
60
|
```
|
|
56
61
|
|
|
57
|
-
`doc`
|
|
62
|
+
`doc` takes `<library>` and `<path>` as positional arguments (not flags), and the path must not include a leading `/docs/` segment. Use `--docs-version` (not `--version`) to pin a specific version.
|
|
58
63
|
|
|
59
64
|
Source: packages/cli/src/cli.ts:746
|
|
60
65
|
|
|
@@ -1,34 +1,43 @@
|
|
|
1
1
|
# Discovery Command Output Schemas
|
|
2
2
|
|
|
3
|
-
Targets `@tanstack/cli` v0.
|
|
3
|
+
Targets `@tanstack/cli` v0.62.1.
|
|
4
4
|
|
|
5
5
|
## `tanstack libraries --json`
|
|
6
6
|
|
|
7
7
|
```json
|
|
8
8
|
{
|
|
9
|
+
"group": "All Libraries",
|
|
9
10
|
"count": 3,
|
|
10
11
|
"libraries": [
|
|
11
12
|
{
|
|
12
13
|
"id": "router",
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
"
|
|
14
|
+
"name": "TanStack Router",
|
|
15
|
+
"tagline": "Type-safe routing for React",
|
|
16
|
+
"description": "...",
|
|
17
|
+
"frameworks": ["react", "solid"],
|
|
18
|
+
"latestVersion": "1.x.x",
|
|
19
|
+
"docsUrl": "https://tanstack.com/router",
|
|
20
|
+
"githubUrl": "https://github.com/TanStack/router"
|
|
16
21
|
}
|
|
17
22
|
]
|
|
18
23
|
}
|
|
19
24
|
```
|
|
20
25
|
|
|
26
|
+
Key fields: `id` (use for `tanstack doc <id>`), `name`, `tagline`, `latestVersion`.
|
|
27
|
+
|
|
21
28
|
## `tanstack search-docs <query> --json`
|
|
22
29
|
|
|
23
30
|
```json
|
|
24
31
|
{
|
|
25
32
|
"query": "server functions",
|
|
33
|
+
"totalHits": 42,
|
|
26
34
|
"results": [
|
|
27
35
|
{
|
|
28
|
-
"library": "start",
|
|
29
|
-
"version": "latest",
|
|
30
36
|
"title": "Server Functions",
|
|
31
|
-
"
|
|
37
|
+
"url": "https://tanstack.com/router/latest/docs/...",
|
|
38
|
+
"snippet": "...",
|
|
39
|
+
"library": "start",
|
|
40
|
+
"breadcrumb": ["Guides", "Server Functions"]
|
|
32
41
|
}
|
|
33
42
|
]
|
|
34
43
|
}
|
|
@@ -36,35 +45,87 @@ Targets `@tanstack/cli` v0.61.0.
|
|
|
36
45
|
|
|
37
46
|
## `tanstack create --list-add-ons --json`
|
|
38
47
|
|
|
48
|
+
Output is a **flat array** of add-on objects (no wrapper):
|
|
49
|
+
|
|
39
50
|
```json
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
+
[
|
|
52
|
+
{
|
|
53
|
+
"id": "drizzle",
|
|
54
|
+
"name": "Drizzle",
|
|
55
|
+
"description": "TypeScript ORM",
|
|
56
|
+
"type": "add-on",
|
|
57
|
+
"category": "orm",
|
|
58
|
+
"phase": "add-on",
|
|
59
|
+
"modes": ["file-router"],
|
|
60
|
+
"link": "https://orm.drizzle.team",
|
|
61
|
+
"warning": null,
|
|
62
|
+
"exclusive": ["orm"],
|
|
63
|
+
"dependsOn": [],
|
|
64
|
+
"options": {}
|
|
65
|
+
}
|
|
66
|
+
]
|
|
51
67
|
```
|
|
52
68
|
|
|
69
|
+
Key fields: `id` (use for `--add-ons` and `tanstack add`), `exclusive` (categories allowing only one choice), `dependsOn` (ids auto-added), `options` (non-empty means configurable — inspect with `--addon-details`).
|
|
70
|
+
|
|
53
71
|
## `tanstack create --addon-details <id> --json`
|
|
54
72
|
|
|
55
73
|
```json
|
|
56
74
|
{
|
|
57
75
|
"id": "prisma",
|
|
58
76
|
"name": "Prisma",
|
|
59
|
-
"
|
|
60
|
-
|
|
61
|
-
|
|
77
|
+
"description": "Next-generation ORM",
|
|
78
|
+
"type": "add-on",
|
|
79
|
+
"category": "orm",
|
|
80
|
+
"phase": "add-on",
|
|
81
|
+
"modes": ["file-router"],
|
|
82
|
+
"exclusive": ["orm"],
|
|
83
|
+
"dependsOn": [],
|
|
84
|
+
"options": {
|
|
85
|
+
"provider": {
|
|
86
|
+
"type": "select",
|
|
87
|
+
"label": "Database provider",
|
|
88
|
+
"description": "The database driver Prisma will connect to",
|
|
62
89
|
"default": "postgres",
|
|
63
|
-
"
|
|
90
|
+
"options": [
|
|
91
|
+
{ "value": "postgres", "label": "PostgreSQL" },
|
|
92
|
+
{ "value": "sqlite", "label": "SQLite" },
|
|
93
|
+
{ "value": "mysql", "label": "MySQL" }
|
|
94
|
+
]
|
|
64
95
|
}
|
|
65
|
-
|
|
66
|
-
"
|
|
96
|
+
},
|
|
97
|
+
"routes": [],
|
|
98
|
+
"packageAdditions": {
|
|
99
|
+
"dependencies": {},
|
|
100
|
+
"devDependencies": {},
|
|
101
|
+
"scripts": {}
|
|
102
|
+
}
|
|
67
103
|
}
|
|
68
104
|
```
|
|
69
105
|
|
|
106
|
+
`options` is a **record keyed by option name**, each entry has `type`, `label`, `default`, and (for `select`) an `options` array of `{ value, label }`.
|
|
107
|
+
|
|
108
|
+
## `tanstack ecosystem --json`
|
|
109
|
+
|
|
110
|
+
```json
|
|
111
|
+
{
|
|
112
|
+
"query": { "category": null, "library": null },
|
|
113
|
+
"count": 5,
|
|
114
|
+
"partners": [
|
|
115
|
+
{
|
|
116
|
+
"id": "neon",
|
|
117
|
+
"name": "Neon",
|
|
118
|
+
"tagline": "Serverless Postgres",
|
|
119
|
+
"description": "...",
|
|
120
|
+
"category": "database",
|
|
121
|
+
"categoryLabel": "Database",
|
|
122
|
+
"url": "https://neon.tech",
|
|
123
|
+
"libraries": ["router", "start"]
|
|
124
|
+
}
|
|
125
|
+
]
|
|
126
|
+
}
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
Note: ecosystem `id` values are **not** necessarily the same as add-on `id` values. Always cross-reference with `--list-add-ons --json` before using in `tanstack add`.
|
|
130
|
+
|
|
70
131
|
Use this reference to parse shapes defensively and normalize fields before feeding downstream planning or generation steps.
|