@svadmin/create 0.31.0 → 0.32.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/README.md +88 -0
- package/dist/index.js +1128 -124
- package/guidance/AGENTS.md +20 -0
- package/package.json +2 -2
- package/scaffold-manifest.json +115 -6
- package/template/src/App.svelte +15 -18
package/guidance/AGENTS.md
CHANGED
|
@@ -4,6 +4,26 @@ Read `DESIGN.md` before creating, revising, or reviewing any UI. It is the
|
|
|
4
4
|
authority for visual language, page hierarchy, feedback ownership, and
|
|
5
5
|
acceptance checks in this project.
|
|
6
6
|
|
|
7
|
+
## Platform entrypoints
|
|
8
|
+
|
|
9
|
+
Before generating or modifying application code, read these stable files
|
|
10
|
+
instead of scanning the repository:
|
|
11
|
+
|
|
12
|
+
- `svadmin.ai.json` — provider capability matrix, resource fields/operations,
|
|
13
|
+
project commands, and forbidden internal imports.
|
|
14
|
+
- `src/svadmin.config.ts` — the application composition entrypoint. Add resources
|
|
15
|
+
and plugins here; do not reintroduce ad-hoc provider wiring in `App.svelte`.
|
|
16
|
+
- `src/resources.ts` — the generated `ResourceDefinition[]` consumed by the config.
|
|
17
|
+
|
|
18
|
+
Keep `svadmin.ai.json` and `src/svadmin.config.ts` consistent when you add a
|
|
19
|
+
provider or resource. `create-svadmin doctor` fails when the manifest is missing,
|
|
20
|
+
invalid, or declares a provider package that `package.json` does not depend on.
|
|
21
|
+
|
|
22
|
+
Use `npx @svadmin/create add resource <name> --write` to scaffold a
|
|
23
|
+
`src/features/<name>/` module (contract + definition + public `index.ts`). Keep
|
|
24
|
+
business code inside `src/features/<module>/` and expose it through the module's
|
|
25
|
+
`index.ts`; do not add new pages under `src/pages`.
|
|
26
|
+
|
|
7
27
|
## Required workflow
|
|
8
28
|
|
|
9
29
|
1. Name the page's single primary workflow and dominant next action.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@svadmin/create",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.32.0",
|
|
4
4
|
"description": "Scaffolding tool for svadmin projects",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"@types/node": "^26.4.0",
|
|
28
28
|
"@types/prompts": "^2.4.9",
|
|
29
29
|
"typescript": "^7.0.2",
|
|
30
|
-
"@svadmin/core": "^0.
|
|
30
|
+
"@svadmin/core": "^0.56.0"
|
|
31
31
|
},
|
|
32
32
|
"keywords": [
|
|
33
33
|
"svadmin",
|
package/scaffold-manifest.json
CHANGED
|
@@ -10,9 +10,10 @@
|
|
|
10
10
|
"check": "svelte-check --tsconfig ./tsconfig.json"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@svadmin/core": "^0.
|
|
14
|
-
"@svadmin/
|
|
15
|
-
"@svadmin/
|
|
13
|
+
"@svadmin/core": "^0.56.0",
|
|
14
|
+
"@svadmin/app": "^1.0.0",
|
|
15
|
+
"@svadmin/ai-elements": "^0.10.1",
|
|
16
|
+
"@svadmin/ui": "^0.76.0",
|
|
16
17
|
"@sinclair/typebox": "^0.34.52",
|
|
17
18
|
"@tanstack/svelte-query": "^6.1.48",
|
|
18
19
|
"@lucide/svelte": "^1.35.0"
|
|
@@ -30,19 +31,77 @@
|
|
|
30
31
|
"@refinedev/core": "^5.0.12"
|
|
31
32
|
},
|
|
32
33
|
"simple-rest": {
|
|
33
|
-
"@svadmin/simple-rest": "^0.
|
|
34
|
+
"@svadmin/simple-rest": "^0.12.0",
|
|
34
35
|
"@refinedev/simple-rest": "^6.0.1"
|
|
35
36
|
},
|
|
36
37
|
"supabase": {
|
|
37
|
-
"@svadmin/supabase": "^0.
|
|
38
|
+
"@svadmin/supabase": "^0.17.0",
|
|
38
39
|
"@supabase/supabase-js": "^2.112.4",
|
|
39
40
|
"@refinedev/supabase": "^6.0.2"
|
|
40
41
|
},
|
|
41
42
|
"graphql": {
|
|
42
|
-
"@svadmin/graphql": "^0.
|
|
43
|
+
"@svadmin/graphql": "^0.12.0",
|
|
43
44
|
"@refinedev/graphql": "^8.0.1",
|
|
44
45
|
"graphql-request": "^7.4.0",
|
|
45
46
|
"graphql": "^16.8.0"
|
|
47
|
+
},
|
|
48
|
+
"rest": {
|
|
49
|
+
"@svadmin/rest": "^1.0.0",
|
|
50
|
+
"@refinedev/rest": "^2.1.1",
|
|
51
|
+
"@nestjsx/crud-request": "^5.0.0-alpha.3"
|
|
52
|
+
},
|
|
53
|
+
"airtable": {
|
|
54
|
+
"@svadmin/airtable": "^0.12.0",
|
|
55
|
+
"@refinedev/airtable": "^5.0.1"
|
|
56
|
+
},
|
|
57
|
+
"appwrite": {
|
|
58
|
+
"@svadmin/appwrite": "^0.11.0",
|
|
59
|
+
"appwrite": ">=26.2.0",
|
|
60
|
+
"@refinedev/appwrite": "^8.0.1"
|
|
61
|
+
},
|
|
62
|
+
"directus": {
|
|
63
|
+
"@svadmin/directus": "^0.11.0"
|
|
64
|
+
},
|
|
65
|
+
"drizzle": {
|
|
66
|
+
"@svadmin/drizzle": "^0.13.0",
|
|
67
|
+
"drizzle-orm": "^1.0.0-rc.1",
|
|
68
|
+
"refine-sqlx": "^0.10.3"
|
|
69
|
+
},
|
|
70
|
+
"elysia": {
|
|
71
|
+
"@svadmin/elysia": "^0.14.0",
|
|
72
|
+
"elysia": ">=1.4.30",
|
|
73
|
+
"@elysiajs/eden": ">=1.4.9"
|
|
74
|
+
},
|
|
75
|
+
"firebase": {
|
|
76
|
+
"@svadmin/firebase": "^0.12.0"
|
|
77
|
+
},
|
|
78
|
+
"hasura": {
|
|
79
|
+
"@svadmin/hasura": "^0.12.0",
|
|
80
|
+
"@refinedev/hasura": "^7.0.1",
|
|
81
|
+
"graphql-request": "^7.4.0"
|
|
82
|
+
},
|
|
83
|
+
"medusa": {
|
|
84
|
+
"@svadmin/medusa": "^0.12.0",
|
|
85
|
+
"@refinedev/medusa": "^5.0.0"
|
|
86
|
+
},
|
|
87
|
+
"nestjs-query": {
|
|
88
|
+
"@svadmin/nestjs-query": "^0.12.0",
|
|
89
|
+
"@refinedev/nestjs-query": "^5.0.0"
|
|
90
|
+
},
|
|
91
|
+
"nestjsx-crud": {
|
|
92
|
+
"@svadmin/nestjsx-crud": "^0.12.0",
|
|
93
|
+
"@refinedev/nestjsx-crud": "^6.0.1"
|
|
94
|
+
},
|
|
95
|
+
"pocketbase": {
|
|
96
|
+
"@svadmin/pocketbase": "^0.12.0",
|
|
97
|
+
"pocketbase": ">=0.28.0"
|
|
98
|
+
},
|
|
99
|
+
"sanity": {
|
|
100
|
+
"@svadmin/sanity": "^0.11.0"
|
|
101
|
+
},
|
|
102
|
+
"strapi": {
|
|
103
|
+
"@svadmin/strapi": "^0.12.0",
|
|
104
|
+
"@refinedev/strapi-v4": "^7.0.1"
|
|
46
105
|
}
|
|
47
106
|
},
|
|
48
107
|
"dataProviders": {
|
|
@@ -58,6 +117,56 @@
|
|
|
58
117
|
"refine-core",
|
|
59
118
|
"graphql"
|
|
60
119
|
],
|
|
120
|
+
"rest": [
|
|
121
|
+
"refine-core",
|
|
122
|
+
"rest"
|
|
123
|
+
],
|
|
124
|
+
"airtable": [
|
|
125
|
+
"refine-core",
|
|
126
|
+
"airtable"
|
|
127
|
+
],
|
|
128
|
+
"appwrite": [
|
|
129
|
+
"refine-core",
|
|
130
|
+
"appwrite"
|
|
131
|
+
],
|
|
132
|
+
"directus": [
|
|
133
|
+
"directus"
|
|
134
|
+
],
|
|
135
|
+
"drizzle": [
|
|
136
|
+
"drizzle"
|
|
137
|
+
],
|
|
138
|
+
"elysia": [
|
|
139
|
+
"elysia"
|
|
140
|
+
],
|
|
141
|
+
"firebase": [
|
|
142
|
+
"firebase"
|
|
143
|
+
],
|
|
144
|
+
"hasura": [
|
|
145
|
+
"refine-core",
|
|
146
|
+
"hasura"
|
|
147
|
+
],
|
|
148
|
+
"medusa": [
|
|
149
|
+
"refine-core",
|
|
150
|
+
"medusa"
|
|
151
|
+
],
|
|
152
|
+
"nestjs-query": [
|
|
153
|
+
"refine-core",
|
|
154
|
+
"nestjs-query"
|
|
155
|
+
],
|
|
156
|
+
"nestjsx-crud": [
|
|
157
|
+
"refine-core",
|
|
158
|
+
"nestjsx-crud"
|
|
159
|
+
],
|
|
160
|
+
"pocketbase": [
|
|
161
|
+
"pocketbase"
|
|
162
|
+
],
|
|
163
|
+
"sanity": [
|
|
164
|
+
"sanity"
|
|
165
|
+
],
|
|
166
|
+
"strapi": [
|
|
167
|
+
"refine-core",
|
|
168
|
+
"strapi"
|
|
169
|
+
],
|
|
61
170
|
"none": []
|
|
62
171
|
},
|
|
63
172
|
"authProviders": {
|
package/template/src/App.svelte
CHANGED
|
@@ -1,24 +1,21 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
import { AdminApp
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
import { mockAuthProvider } from './providers/mockAuth';
|
|
2
|
+
import { AdminApp } from '@svadmin/ui';
|
|
3
|
+
import { resolveAdminConfig } from '@svadmin/app';
|
|
4
|
+
import config from './svadmin.config';
|
|
6
5
|
import Dashboard from './pages/Dashboard.svelte';
|
|
7
6
|
import Login from './pages/Login.svelte';
|
|
8
7
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
let connection = $state(connect());
|
|
8
|
+
// svadmin.config.ts resolves its providers (including async ones) before this
|
|
9
|
+
// module is evaluated, so the platform snapshot is available synchronously.
|
|
10
|
+
const resolved = resolveAdminConfig(config);
|
|
13
11
|
</script>
|
|
14
12
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
{
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
{
|
|
23
|
-
|
|
24
|
-
{/await}
|
|
13
|
+
<AdminApp
|
|
14
|
+
providerBundle={resolved.providers}
|
|
15
|
+
resources={[...resolved.resources]}
|
|
16
|
+
title="svadmin Demo"
|
|
17
|
+
locale="en"
|
|
18
|
+
>
|
|
19
|
+
{#snippet dashboard()}<Dashboard />{/snippet}
|
|
20
|
+
{#snippet loginPage()}<Login />{/snippet}
|
|
21
|
+
</AdminApp>
|