@synopackageland/templates 0.41.4 → 0.42.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/CHANGELOG.md +11 -0
- package/README.md +9 -7
- package/package.json +5 -1
- package/templates/_shared/AGENTS.md +11 -11
- package/templates/_shared/package.json +4 -3
- package/templates/_shared/pnpm-lock.yaml +1636 -0
- package/templates/_shared/pnpm-workspace.yaml +2 -0
- package/templates/_shared/third-party-notices.mjs +75 -9
- package/templates/binary/README.md +3 -3
- package/templates/compose/README.md +3 -3
- package/templates/compose/dsm-package.yaml +1 -1
- package/templates/native-go/README.md +6 -6
- package/templates/native-go/backend/THIRD_PARTY_NOTICES.txt +1 -1
- package/templates/native-go/backend/go.mod +1 -1
- package/templates/native-go/backend/go.sum +2 -2
- package/templates/native-go-vue/README.md +10 -10
- package/templates/native-go-vue/frontend/DESIGN.md +3 -3
- package/templates/native-go-vue/frontend/package.json +6 -4
- package/templates/native-go-vue/frontend/pnpm-lock.yaml +2269 -0
- package/templates/native-go-vue/frontend/pnpm-workspace.yaml +2 -0
- package/templates/native-node/README.md +8 -8
- package/templates/native-node/backend/app/package.json +2 -1
- package/templates/native-node/backend/app/pnpm-workspace.yaml +2 -0
- package/templates/native-node/backend/package.json +2 -1
- package/templates/native-node/backend/pnpm-lock.yaml +207 -0
- package/templates/native-node/dsm-package.yaml +2 -2
- package/templates/native-node-vue/README.md +9 -9
- package/templates/native-python/README.md +4 -4
- package/templates/native-python/dsm-package.yaml +1 -1
- package/templates/native-python-vue/README.md +9 -9
- package/templates/native-rust/README.md +4 -4
- package/templates/native-rust/backend/Cargo.lock +2 -2
- package/templates/native-rust/backend/Cargo.toml +1 -1
- package/templates/native-rust-delegate/backend/Cargo.lock +2 -2
- package/templates/native-rust-delegate/backend/Cargo.toml +1 -1
- package/templates/native-rust-vue/README.md +9 -9
- package/templates/native-go-vue/frontend/package-lock.json +0 -3115
- package/templates/native-node/backend/package-lock.json +0 -59
|
@@ -36,13 +36,13 @@ Copy `.env.example` to the ignored `.env` only for optional AI tests; keep real
|
|
|
36
36
|
From the project root, install the test tools before running the optional tests:
|
|
37
37
|
|
|
38
38
|
```sh
|
|
39
|
-
|
|
40
|
-
|
|
39
|
+
pnpm install --prod=false
|
|
40
|
+
pnpm test
|
|
41
41
|
```
|
|
42
42
|
|
|
43
43
|
`NODE_ENV=production` skips devDependencies; `test:local` needs the CLI.
|
|
44
|
-
After committing the generated root lockfile, use `
|
|
45
|
-
Before `
|
|
44
|
+
After committing the generated root lockfile, use `pnpm install --frozen-lockfile --prod=false`.
|
|
45
|
+
Before `pnpm run test:local`, prepare the backend and, for Vue, build the
|
|
46
46
|
frontend using the steps below and the backend section in `AGENTS.md`, then
|
|
47
47
|
run `synopkgland ctl generate`.
|
|
48
48
|
|
|
@@ -51,14 +51,14 @@ run `synopkgland ctl generate`.
|
|
|
51
51
|
Needs Node.js 20 or later with `synopkgland` installed. The SPK depends on DSM's **Node.js v20** package (INFO `install_dep_packages`).
|
|
52
52
|
|
|
53
53
|
```bash
|
|
54
|
-
(cd backend &&
|
|
54
|
+
(cd backend && pnpm install --frozen-lockfile --prod=false && pnpm test && pnpm run build) # method tests, then app/*.js
|
|
55
55
|
synopkgland ctl generate
|
|
56
56
|
synopkgland check
|
|
57
57
|
synopkgland build # → dist/__PACKAGE__-0.1.0-0001-{x86_64,aarch64}.spk
|
|
58
58
|
synopkgland inspect dist/__PACKAGE__-0.1.0-0001-x86_64.spk
|
|
59
59
|
```
|
|
60
60
|
|
|
61
|
-
Run `
|
|
61
|
+
Run `pnpm run build` in `backend` before every `synopkgland check` or `build`: the SPK ships the compiled `backend/app`.
|
|
62
62
|
|
|
63
63
|
Install: Package Center → Settings → General → Trust Level "Any publisher",
|
|
64
64
|
then Manual Install with the SPK for your NAS's CPU. Open
|
|
@@ -76,9 +76,9 @@ as and what the backend reports.
|
|
|
76
76
|
| `backend/src/routes.ts` | Your methods: `build` registers them | Yes — your backend |
|
|
77
77
|
| `backend/src/jobs.ts`, `root-ops.ts`, `delegate.ts` | Capability examples (stubs unless `init --with` added them) | Yes |
|
|
78
78
|
| `backend/src/main.ts` | Runs the App on the runtime's channel | Rarely |
|
|
79
|
-
| `backend/app/` | `
|
|
79
|
+
| `backend/app/` | `pnpm run build` output (`*.js`, ignored by git), `package.json` and `permissions.json`: the directory the SPK ships | No (generated) |
|
|
80
80
|
| `backend/test/` | node:test tests; `call` plays the runtime | Yes |
|
|
81
|
-
| `backend/package.json`, `
|
|
81
|
+
| `backend/package.json`, `pnpm-lock.yaml` | TypeScript (NodeNext) and the Node SDK `@synopackageland/app` from `backend/vendor`, which `synopkgland init` copies from the SDK release | Dependencies |
|
|
82
82
|
| `dist/` | Built SPKs (ignored by git) | No |
|
|
83
83
|
|
|
84
84
|
`build` generates everything else: `INFO`, `conf/privilege`
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
---
|
|
2
|
+
lockfileVersion: '9.0'
|
|
3
|
+
|
|
4
|
+
importers:
|
|
5
|
+
|
|
6
|
+
.:
|
|
7
|
+
configDependencies: {}
|
|
8
|
+
packageManagerDependencies:
|
|
9
|
+
pnpm:
|
|
10
|
+
specifier: 12.18.0
|
|
11
|
+
version: 12.18.0
|
|
12
|
+
|
|
13
|
+
packages:
|
|
14
|
+
|
|
15
|
+
'@pnpm/exe.android-arm64@12.18.0':
|
|
16
|
+
resolution: {integrity: sha512-fOF6IwgvnUKEmVedGqiAsNPfN2Ry8GvaqzSQOiF3RJFbpBfPKO/6YT54s1GjToyYinRxw9preHHPe4y2N3SzhA==}
|
|
17
|
+
cpu: [arm64]
|
|
18
|
+
os: [android]
|
|
19
|
+
|
|
20
|
+
'@pnpm/exe.android-x64@12.18.0':
|
|
21
|
+
resolution: {integrity: sha512-6OiolnaCsB3/GcJ9XNrenbUH3zFHRJ+5QynrMUUEyThbgnnCzWxa199hpQlOmxN4rAXuYQ0IYgWFNUZxyzg31Q==}
|
|
22
|
+
cpu: [x64]
|
|
23
|
+
os: [android]
|
|
24
|
+
|
|
25
|
+
'@pnpm/exe.darwin-arm64@12.18.0':
|
|
26
|
+
resolution: {integrity: sha512-zkq+4YzVIX39ETYLyC3W7LY7MpHEU/J3nRhHl4i2yPld2Cf2+rEKRh3ejJ4AmaQ77HHJLCktY4Z3jq0fpcxFXg==}
|
|
27
|
+
cpu: [arm64]
|
|
28
|
+
os: [darwin]
|
|
29
|
+
|
|
30
|
+
'@pnpm/exe.darwin-x64@12.18.0':
|
|
31
|
+
resolution: {integrity: sha512-qMsL9qx92unOTa6hgkfiTJv8ceZaTx0IQg7InhYDVX2ZrTECujaVEEVypnJK5m3eGUsP1KD7Y4qIgleCwfRsYw==}
|
|
32
|
+
cpu: [x64]
|
|
33
|
+
os: [darwin]
|
|
34
|
+
|
|
35
|
+
'@pnpm/exe.freebsd-x64@12.18.0':
|
|
36
|
+
resolution: {integrity: sha512-/9vy/4ms52cU4MjZ5NhHd6N2d9L9W0kARf5/ff2tweAHu0VeUzs/0qp/7ZHFuddm2Wa/m0AKQoPum9AVUCqKsw==}
|
|
37
|
+
cpu: [x64]
|
|
38
|
+
os: [freebsd]
|
|
39
|
+
|
|
40
|
+
'@pnpm/exe.linux-arm64-musl@12.18.0':
|
|
41
|
+
resolution: {integrity: sha512-Vp+TIMPPyackVCXkOdEKH/RmAn/r07EcIyrgZYQK7VrkksqZOie0GnWIx+85mPqeFEYCRtXIZAFJ9L4ceTndDg==}
|
|
42
|
+
cpu: [arm64]
|
|
43
|
+
os: [linux]
|
|
44
|
+
libc: [musl]
|
|
45
|
+
|
|
46
|
+
'@pnpm/exe.linux-arm64@12.18.0':
|
|
47
|
+
resolution: {integrity: sha512-2dpyVBCHT+FfpuQh9i+7MXAqNWYLCvD5vYr5p6Eimxoga8USLnjbUgyj72AOrO0hjc5ri3TEFP3jiyBHjkSZpQ==}
|
|
48
|
+
cpu: [arm64]
|
|
49
|
+
os: [linux]
|
|
50
|
+
libc: [glibc]
|
|
51
|
+
|
|
52
|
+
'@pnpm/exe.linux-ppc64@12.18.0':
|
|
53
|
+
resolution: {integrity: sha512-BBOOOfNJ2QwIIya3eKqOjiN4WNTszfRz7HCvw9XggcT7+ftMjNP8XJ/GfW+ltCBeUFR9d8WBVsr2m/NLjX2CZQ==}
|
|
54
|
+
cpu: [ppc64]
|
|
55
|
+
os: [linux]
|
|
56
|
+
libc: [glibc]
|
|
57
|
+
|
|
58
|
+
'@pnpm/exe.linux-riscv64@12.18.0':
|
|
59
|
+
resolution: {integrity: sha512-7kMN77xSOYJX8GPSH5RbNAc5oM61LMmcSUukDDUwllnZPXm8GRPskCNsTWy8SCw01Kr1FB+5SwGNMiTdiziLNQ==}
|
|
60
|
+
cpu: [riscv64]
|
|
61
|
+
os: [linux]
|
|
62
|
+
libc: [glibc]
|
|
63
|
+
|
|
64
|
+
'@pnpm/exe.linux-s390x@12.18.0':
|
|
65
|
+
resolution: {integrity: sha512-htuSCpEcmDzhKoJqXbPkvfr176dBHU0QIF5mWcRiqxRXAB/1JoYiMYotfjWpk+ztgpB9qlx4XnWlLFAf7gzc6g==}
|
|
66
|
+
cpu: [s390x]
|
|
67
|
+
os: [linux]
|
|
68
|
+
libc: [glibc]
|
|
69
|
+
|
|
70
|
+
'@pnpm/exe.linux-x64-musl@12.18.0':
|
|
71
|
+
resolution: {integrity: sha512-Uj+vzfIQ62kDP10x36yHZIXVs5ohdNtiPYwn5FhCLlNScHPo0OAI+ShGDtLofiBXKE7umu71Jmjm7N8a8zVcDw==}
|
|
72
|
+
cpu: [x64]
|
|
73
|
+
os: [linux]
|
|
74
|
+
libc: [musl]
|
|
75
|
+
|
|
76
|
+
'@pnpm/exe.linux-x64@12.18.0':
|
|
77
|
+
resolution: {integrity: sha512-OJ+X2wcraldCwj75pCIerWARQSRpdfj0eBTs/2ODyhfeW46ylOnjTIE/GKra6Mn6E72/gBmXS8igrUioa+F9fQ==}
|
|
78
|
+
cpu: [x64]
|
|
79
|
+
os: [linux]
|
|
80
|
+
libc: [glibc]
|
|
81
|
+
|
|
82
|
+
'@pnpm/exe.win32-arm64@12.18.0':
|
|
83
|
+
resolution: {integrity: sha512-wEY6jiACGcbhhi5yD59doHqNTndS7AaujaPmtWAu1DKkHru2hy5fJ9yUGecW72Ypaw2/I3BEprfMOopap2NQtw==}
|
|
84
|
+
cpu: [arm64]
|
|
85
|
+
os: [win32]
|
|
86
|
+
|
|
87
|
+
'@pnpm/exe.win32-x64@12.18.0':
|
|
88
|
+
resolution: {integrity: sha512-5FJkghO7RLRkQpWxeVEygW9XsmnNuxzPfXbgwFWCHsFyFhpDn/vOdL88ToQEM0Kt5igdW5s6U0/IDH8Dvkt3pg==}
|
|
89
|
+
cpu: [x64]
|
|
90
|
+
os: [win32]
|
|
91
|
+
|
|
92
|
+
pnpm@12.18.0:
|
|
93
|
+
resolution: {integrity: sha512-nXiC1dyCFH7PxOBiqjSDTgrQKWcQoYN6ERWuASEn02txCeMhrBWYod0KZVl2gbHpmRfhLtDXSerpEYeUM2O+sw==}
|
|
94
|
+
engines: {node: '>=18'}
|
|
95
|
+
hasBin: true
|
|
96
|
+
|
|
97
|
+
snapshots:
|
|
98
|
+
|
|
99
|
+
'@pnpm/exe.android-arm64@12.18.0':
|
|
100
|
+
optional: true
|
|
101
|
+
|
|
102
|
+
'@pnpm/exe.android-x64@12.18.0':
|
|
103
|
+
optional: true
|
|
104
|
+
|
|
105
|
+
'@pnpm/exe.darwin-arm64@12.18.0':
|
|
106
|
+
optional: true
|
|
107
|
+
|
|
108
|
+
'@pnpm/exe.darwin-x64@12.18.0':
|
|
109
|
+
optional: true
|
|
110
|
+
|
|
111
|
+
'@pnpm/exe.freebsd-x64@12.18.0':
|
|
112
|
+
optional: true
|
|
113
|
+
|
|
114
|
+
'@pnpm/exe.linux-arm64-musl@12.18.0':
|
|
115
|
+
optional: true
|
|
116
|
+
|
|
117
|
+
'@pnpm/exe.linux-arm64@12.18.0':
|
|
118
|
+
optional: true
|
|
119
|
+
|
|
120
|
+
'@pnpm/exe.linux-ppc64@12.18.0':
|
|
121
|
+
optional: true
|
|
122
|
+
|
|
123
|
+
'@pnpm/exe.linux-riscv64@12.18.0':
|
|
124
|
+
optional: true
|
|
125
|
+
|
|
126
|
+
'@pnpm/exe.linux-s390x@12.18.0':
|
|
127
|
+
optional: true
|
|
128
|
+
|
|
129
|
+
'@pnpm/exe.linux-x64-musl@12.18.0':
|
|
130
|
+
optional: true
|
|
131
|
+
|
|
132
|
+
'@pnpm/exe.linux-x64@12.18.0':
|
|
133
|
+
optional: true
|
|
134
|
+
|
|
135
|
+
'@pnpm/exe.win32-arm64@12.18.0':
|
|
136
|
+
optional: true
|
|
137
|
+
|
|
138
|
+
'@pnpm/exe.win32-x64@12.18.0':
|
|
139
|
+
optional: true
|
|
140
|
+
|
|
141
|
+
pnpm@12.18.0:
|
|
142
|
+
optionalDependencies:
|
|
143
|
+
'@pnpm/exe.android-arm64': 12.18.0
|
|
144
|
+
'@pnpm/exe.android-x64': 12.18.0
|
|
145
|
+
'@pnpm/exe.darwin-arm64': 12.18.0
|
|
146
|
+
'@pnpm/exe.darwin-x64': 12.18.0
|
|
147
|
+
'@pnpm/exe.freebsd-x64': 12.18.0
|
|
148
|
+
'@pnpm/exe.linux-arm64': 12.18.0
|
|
149
|
+
'@pnpm/exe.linux-arm64-musl': 12.18.0
|
|
150
|
+
'@pnpm/exe.linux-ppc64': 12.18.0
|
|
151
|
+
'@pnpm/exe.linux-riscv64': 12.18.0
|
|
152
|
+
'@pnpm/exe.linux-s390x': 12.18.0
|
|
153
|
+
'@pnpm/exe.linux-x64': 12.18.0
|
|
154
|
+
'@pnpm/exe.linux-x64-musl': 12.18.0
|
|
155
|
+
'@pnpm/exe.win32-arm64': 12.18.0
|
|
156
|
+
'@pnpm/exe.win32-x64': 12.18.0
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
lockfileVersion: '9.0'
|
|
160
|
+
|
|
161
|
+
settings:
|
|
162
|
+
autoInstallPeers: true
|
|
163
|
+
excludeLinksFromLockfile: false
|
|
164
|
+
|
|
165
|
+
importers:
|
|
166
|
+
|
|
167
|
+
.:
|
|
168
|
+
dependencies:
|
|
169
|
+
'@synopackageland/app':
|
|
170
|
+
specifier: file:vendor/@synopackageland/app
|
|
171
|
+
version: file:vendor/@synopackageland/app
|
|
172
|
+
devDependencies:
|
|
173
|
+
'@types/node':
|
|
174
|
+
specifier: 18.19.130
|
|
175
|
+
version: 18.19.130
|
|
176
|
+
typescript:
|
|
177
|
+
specifier: 5.9.3
|
|
178
|
+
version: 5.9.3
|
|
179
|
+
|
|
180
|
+
packages:
|
|
181
|
+
|
|
182
|
+
'@synopackageland/app@file:vendor/@synopackageland/app':
|
|
183
|
+
resolution: {directory: vendor/@synopackageland/app, type: directory}
|
|
184
|
+
engines: {node: '>=22'}
|
|
185
|
+
|
|
186
|
+
'@types/node@18.19.130':
|
|
187
|
+
resolution: {integrity: sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg==}
|
|
188
|
+
|
|
189
|
+
typescript@5.9.3:
|
|
190
|
+
resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
|
|
191
|
+
engines: {node: '>=14.17'}
|
|
192
|
+
hasBin: true
|
|
193
|
+
|
|
194
|
+
undici-types@5.26.5:
|
|
195
|
+
resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
|
|
196
|
+
|
|
197
|
+
snapshots:
|
|
198
|
+
|
|
199
|
+
'@synopackageland/app@file:vendor/@synopackageland/app': {}
|
|
200
|
+
|
|
201
|
+
'@types/node@18.19.130':
|
|
202
|
+
dependencies:
|
|
203
|
+
undici-types: 5.26.5
|
|
204
|
+
|
|
205
|
+
typescript@5.9.3: {}
|
|
206
|
+
|
|
207
|
+
undici-types@5.26.5: {}
|
|
@@ -42,14 +42,14 @@ arches: [x86_64, aarch64]
|
|
|
42
42
|
# and app/permissions.json, then runs `node main.js` in backend/app as the
|
|
43
43
|
# package account, once per call, with Package Center's Node.js (node.package
|
|
44
44
|
# becomes an install dependency). backend/src compiles to backend/app: run
|
|
45
|
-
# `
|
|
45
|
+
# `pnpm install --frozen-lockfile --prod=false` and `pnpm run build` in backend before check and build. sdk is the
|
|
46
46
|
# SDK release whose runtime and Node SDK (node_modules/@synopackageland/app)
|
|
47
47
|
# the build ships; the build reads the methods from `main.js --describe`.
|
|
48
48
|
backend:
|
|
49
49
|
runtime: node
|
|
50
50
|
dir: backend/app
|
|
51
51
|
entry: main.js
|
|
52
|
-
sdk: 0.53.
|
|
52
|
+
sdk: 0.53.16
|
|
53
53
|
node: { package: Node.js_v22 }
|
|
54
54
|
|
|
55
55
|
ui:
|
|
@@ -14,21 +14,21 @@ Copy `.env.example` to the ignored `.env` only for optional AI tests; keep real
|
|
|
14
14
|
From the project root, install the test tools before running the optional tests:
|
|
15
15
|
|
|
16
16
|
```sh
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
pnpm install --prod=false
|
|
18
|
+
pnpm test
|
|
19
19
|
```
|
|
20
20
|
|
|
21
21
|
`NODE_ENV=production` skips devDependencies; `test:local` needs the CLI.
|
|
22
|
-
After committing the generated root lockfile, use `
|
|
23
|
-
Before `
|
|
22
|
+
After committing the generated root lockfile, use `pnpm install --frozen-lockfile --prod=false`.
|
|
23
|
+
Before `pnpm run test:local`, prepare the backend and, for Vue, build the
|
|
24
24
|
frontend using the steps below and the backend section in `AGENTS.md`, then
|
|
25
25
|
run `synopkgland ctl generate`.
|
|
26
26
|
|
|
27
27
|
```sh
|
|
28
28
|
cd frontend
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
pnpm install --frozen-lockfile --prod=false
|
|
30
|
+
pnpm test
|
|
31
|
+
pnpm run build
|
|
32
32
|
```
|
|
33
33
|
|
|
34
34
|
The base app reads package status and edits the package greeting through
|
|
@@ -87,5 +87,5 @@ Import `themes/dsm7-embedded.css` and assign each mount a unique
|
|
|
87
87
|
|
|
88
88
|
Start with AGENTS.md, `synopkgland skill list` and `synopkgland skill path`.
|
|
89
89
|
Read `synopkgland skill show ui-vue` for direct Vue component work. For UI
|
|
90
|
-
discovery, run `
|
|
91
|
-
`
|
|
90
|
+
discovery, run `pnpm exec syno-pkg-land-ui catalog --json` and
|
|
91
|
+
`pnpm exec syno-pkg-land-ui describe Button --json` from the installed frontend.
|
|
@@ -36,13 +36,13 @@ Copy `.env.example` to the ignored `.env` only for optional AI tests; keep real
|
|
|
36
36
|
From the project root, install the test tools before running the optional tests:
|
|
37
37
|
|
|
38
38
|
```sh
|
|
39
|
-
|
|
40
|
-
|
|
39
|
+
pnpm install --prod=false
|
|
40
|
+
pnpm test
|
|
41
41
|
```
|
|
42
42
|
|
|
43
43
|
`NODE_ENV=production` skips devDependencies; `test:local` needs the CLI.
|
|
44
|
-
After committing the generated root lockfile, use `
|
|
45
|
-
Before `
|
|
44
|
+
After committing the generated root lockfile, use `pnpm install --frozen-lockfile --prod=false`.
|
|
45
|
+
Before `pnpm run test:local`, prepare the backend and, for Vue, build the
|
|
46
46
|
frontend using the steps below and the backend section in `AGENTS.md`, then
|
|
47
47
|
run `synopkgland ctl generate`.
|
|
48
48
|
|
|
@@ -14,21 +14,21 @@ Copy `.env.example` to the ignored `.env` only for optional AI tests; keep real
|
|
|
14
14
|
From the project root, install the test tools before running the optional tests:
|
|
15
15
|
|
|
16
16
|
```sh
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
pnpm install --prod=false
|
|
18
|
+
pnpm test
|
|
19
19
|
```
|
|
20
20
|
|
|
21
21
|
`NODE_ENV=production` skips devDependencies; `test:local` needs the CLI.
|
|
22
|
-
After committing the generated root lockfile, use `
|
|
23
|
-
Before `
|
|
22
|
+
After committing the generated root lockfile, use `pnpm install --frozen-lockfile --prod=false`.
|
|
23
|
+
Before `pnpm run test:local`, prepare the backend and, for Vue, build the
|
|
24
24
|
frontend using the steps below and the backend section in `AGENTS.md`, then
|
|
25
25
|
run `synopkgland ctl generate`.
|
|
26
26
|
|
|
27
27
|
```sh
|
|
28
28
|
cd frontend
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
pnpm install --frozen-lockfile --prod=false
|
|
30
|
+
pnpm test
|
|
31
|
+
pnpm run build
|
|
32
32
|
```
|
|
33
33
|
|
|
34
34
|
The base app reads package status and edits the package greeting through
|
|
@@ -87,5 +87,5 @@ Import `themes/dsm7-embedded.css` and assign each mount a unique
|
|
|
87
87
|
|
|
88
88
|
Start with AGENTS.md, `synopkgland skill list` and `synopkgland skill path`.
|
|
89
89
|
Read `synopkgland skill show ui-vue` for direct Vue component work. For UI
|
|
90
|
-
discovery, run `
|
|
91
|
-
`
|
|
90
|
+
discovery, run `pnpm exec syno-pkg-land-ui catalog --json` and
|
|
91
|
+
`pnpm exec syno-pkg-land-ui describe Button --json` from the installed frontend.
|
|
@@ -36,13 +36,13 @@ Copy `.env.example` to the ignored `.env` only for optional AI tests; keep real
|
|
|
36
36
|
From the project root, install the test tools before running the optional tests:
|
|
37
37
|
|
|
38
38
|
```sh
|
|
39
|
-
|
|
40
|
-
|
|
39
|
+
pnpm install --prod=false
|
|
40
|
+
pnpm test
|
|
41
41
|
```
|
|
42
42
|
|
|
43
43
|
`NODE_ENV=production` skips devDependencies; `test:local` needs the CLI.
|
|
44
|
-
After committing the generated root lockfile, use `
|
|
45
|
-
Before `
|
|
44
|
+
After committing the generated root lockfile, use `pnpm install --frozen-lockfile --prod=false`.
|
|
45
|
+
Before `pnpm run test:local`, prepare the backend and, for Vue, build the
|
|
46
46
|
frontend using the steps below and the backend section in `AGENTS.md`, then
|
|
47
47
|
run `synopkgland ctl generate`.
|
|
48
48
|
|
|
@@ -104,8 +104,8 @@ dependencies = [
|
|
|
104
104
|
|
|
105
105
|
[[package]]
|
|
106
106
|
name = "syno-pkg-land-app"
|
|
107
|
-
version = "0.53.
|
|
108
|
-
source = "git+https://github.com/synopackageland/syno-pkg-land-sdk?tag=v0.53.
|
|
107
|
+
version = "0.53.16"
|
|
108
|
+
source = "git+https://github.com/synopackageland/syno-pkg-land-sdk?tag=v0.53.16#6751951c140fb032e5f050dc53f5cc58fcd0bf60"
|
|
109
109
|
dependencies = [
|
|
110
110
|
"libc",
|
|
111
111
|
"serde",
|
|
@@ -9,7 +9,7 @@ libc = "0.2"
|
|
|
9
9
|
serde = { version = "1", features = ["derive"] }
|
|
10
10
|
serde_json = "1"
|
|
11
11
|
# The SDK version is the tag; `synopkgland check` reads it from Cargo.lock.
|
|
12
|
-
syno-pkg-land-app = { git = "https://github.com/synopackageland/syno-pkg-land-sdk", tag = "v0.53.
|
|
12
|
+
syno-pkg-land-app = { git = "https://github.com/synopackageland/syno-pkg-land-sdk", tag = "v0.53.16" }
|
|
13
13
|
|
|
14
14
|
[profile.release]
|
|
15
15
|
# A handler panic becomes an "internal" reply; abort would end the App without one.
|
|
@@ -170,8 +170,8 @@ dependencies = [
|
|
|
170
170
|
|
|
171
171
|
[[package]]
|
|
172
172
|
name = "syno-pkg-land-app"
|
|
173
|
-
version = "0.53.
|
|
174
|
-
source = "git+https://github.com/synopackageland/syno-pkg-land-sdk?tag=v0.53.
|
|
173
|
+
version = "0.53.16"
|
|
174
|
+
source = "git+https://github.com/synopackageland/syno-pkg-land-sdk?tag=v0.53.16#6751951c140fb032e5f050dc53f5cc58fcd0bf60"
|
|
175
175
|
dependencies = [
|
|
176
176
|
"libc",
|
|
177
177
|
"serde",
|
|
@@ -10,7 +10,7 @@ libc = "0.2"
|
|
|
10
10
|
serde = { version = "1", features = ["derive"] }
|
|
11
11
|
serde_json = "1"
|
|
12
12
|
# The SDK version is the tag; `synopkgland check` reads it from Cargo.lock.
|
|
13
|
-
syno-pkg-land-app = { git = "https://github.com/synopackageland/syno-pkg-land-sdk", tag = "v0.53.
|
|
13
|
+
syno-pkg-land-app = { git = "https://github.com/synopackageland/syno-pkg-land-sdk", tag = "v0.53.16" }
|
|
14
14
|
|
|
15
15
|
[profile.release]
|
|
16
16
|
# A handler panic becomes an "internal" reply; abort would end the App without one.
|
|
@@ -14,21 +14,21 @@ Copy `.env.example` to the ignored `.env` only for optional AI tests; keep real
|
|
|
14
14
|
From the project root, install the test tools before running the optional tests:
|
|
15
15
|
|
|
16
16
|
```sh
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
pnpm install --prod=false
|
|
18
|
+
pnpm test
|
|
19
19
|
```
|
|
20
20
|
|
|
21
21
|
`NODE_ENV=production` skips devDependencies; `test:local` needs the CLI.
|
|
22
|
-
After committing the generated root lockfile, use `
|
|
23
|
-
Before `
|
|
22
|
+
After committing the generated root lockfile, use `pnpm install --frozen-lockfile --prod=false`.
|
|
23
|
+
Before `pnpm run test:local`, prepare the backend and, for Vue, build the
|
|
24
24
|
frontend using the steps below and the backend section in `AGENTS.md`, then
|
|
25
25
|
run `synopkgland ctl generate`.
|
|
26
26
|
|
|
27
27
|
```sh
|
|
28
28
|
cd frontend
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
pnpm install --frozen-lockfile --prod=false
|
|
30
|
+
pnpm test
|
|
31
|
+
pnpm run build
|
|
32
32
|
```
|
|
33
33
|
|
|
34
34
|
The base app reads package status and edits the package greeting through
|
|
@@ -87,5 +87,5 @@ Import `themes/dsm7-embedded.css` and assign each mount a unique
|
|
|
87
87
|
|
|
88
88
|
Start with AGENTS.md, `synopkgland skill list` and `synopkgland skill path`.
|
|
89
89
|
Read `synopkgland skill show ui-vue` for direct Vue component work. For UI
|
|
90
|
-
discovery, run `
|
|
91
|
-
`
|
|
90
|
+
discovery, run `pnpm exec syno-pkg-land-ui catalog --json` and
|
|
91
|
+
`pnpm exec syno-pkg-land-ui describe Button --json` from the installed frontend.
|