@synopackageland/cli 0.9.2 → 0.9.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/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,51 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.9.4 (2026-10-12)
|
|
4
|
+
|
|
5
|
+
Builds with SDK 0.9.5 and templates 0.9.4: `init` writes SDK v0.9.5 and
|
|
6
|
+
`@synopackageland/sdk` 0.9.5, and the Vue App's `AppRoot` lets Dialogs leave
|
|
7
|
+
a DSM window. The executor digest table records SDK 0.9.5, whose executor
|
|
8
|
+
equals 0.9.4's; the policy digest stays the same, so an installed App needs
|
|
9
|
+
no new approval. AI guidance for DSM-window Dialogs matches the Vue App.
|
|
10
|
+
|
|
11
|
+
繁中摘要:使用 SDK 0.9.5 與 templates 0.9.4。SDK 0.9.5 只改 TypeScript(NAS
|
|
12
|
+
picker 改用 UI 0.9.1 元件),executor digest 與 0.9.4 相同,policy digest 不變,
|
|
13
|
+
已安裝的 App 不需重新核准。ui-vue 與 ui-json 指引改為在 DSM 視窗內給 `AppRoot`
|
|
14
|
+
`dialog-bounds="viewport"`,並把 `activate` 接到 `ctx.host.activateWindow()`:
|
|
15
|
+
Dialog 可拖出 App 視窗,點 Dialog 會把視窗帶到最前;600px 以下為底部 sheet。
|
|
16
|
+
|
|
17
|
+
- `ui-vue` and `ui-json`: in a DSM window (`ctx.host.platform().host === 'dsm'`),
|
|
18
|
+
give `AppRoot` `dialog-bounds="viewport"` and connect its `activate` event to
|
|
19
|
+
`ctx.host.activateWindow()`, so Dialogs can be dragged out of the window and
|
|
20
|
+
pressing one brings the window to the front. Below 600px they are bottom
|
|
21
|
+
sheets. Standalone web, Portal and previews keep Dialogs inside the App.
|
|
22
|
+
- A host-window test pins that the mounted App's `activateWindow` fronts only
|
|
23
|
+
its own DSM window.
|
|
24
|
+
|
|
25
|
+
## 0.9.3 (2026-10-12)
|
|
26
|
+
|
|
27
|
+
Builds with SDK 0.9.4 and templates 0.9.3: `init` writes SDK v0.9.4 and
|
|
28
|
+
`@synopackageland/sdk` 0.9.4. The executor digest table records SDK 0.9.4,
|
|
29
|
+
whose executor asks DSM's native `SLIBAppPrivUserHas` for App Privileges
|
|
30
|
+
instead of the `SYNO.Core.AppPriv.App` preview. An App rebuilt with SDK 0.9.4
|
|
31
|
+
gets the new executor; the policy digest stays the same, so an installed App
|
|
32
|
+
needs no new approval.
|
|
33
|
+
|
|
34
|
+
繁中摘要:使用 SDK 0.9.4 與 templates 0.9.3。executor 改以 DSM 原生
|
|
35
|
+
`SLIBAppPrivUserHas` 判斷應用程式權限,digest 表加入 0.9.4;policy digest 不變,
|
|
36
|
+
重新建置後已安裝的 App 不需重新核准。限定 IP 的應用程式權限規則改為依瀏覽器位址
|
|
37
|
+
判斷;自行組 `auth` 的呼叫端必須帶 `remote_addr`,否則 executor 回 `APP_DENIED`。
|
|
38
|
+
|
|
39
|
+
- Behavior change: an Application Privileges rule limited to IP addresses
|
|
40
|
+
applies to the browser's address; with SDK 0.9.3 or earlier the executor
|
|
41
|
+
refused every request under such a rule. Work no browser asked for is
|
|
42
|
+
checked as coming from 127.0.0.1. The generated CGI sends the address
|
|
43
|
+
through `api.DSMSession`; code that builds the executor `auth` itself must
|
|
44
|
+
add `remote_addr` or the executor refuses with `APP_DENIED`.
|
|
45
|
+
- The fake-DSM executor flow tests host the 0.9.4 executor's embedded bridge
|
|
46
|
+
and check the online grant against the browser's address and the offline
|
|
47
|
+
write against 127.0.0.1.
|
|
48
|
+
|
|
3
49
|
## 0.9.2 (2026-10-12)
|
|
4
50
|
|
|
5
51
|
Builds with SDK 0.9.3 and templates 0.9.2: `init` writes SDK v0.9.3 and
|
|
@@ -42,5 +42,27 @@
|
|
|
42
42
|
"armv7": "b65a14f0fc77a1d3221c7dc6781eb66059aa200956b094d58a62bd1cad10f116"
|
|
43
43
|
},
|
|
44
44
|
"goToolchain": "go1.26.9"
|
|
45
|
+
},
|
|
46
|
+
"0.9.4": {
|
|
47
|
+
"x86_64": "fc3c206b6a8e30b7470cedabf6676c027960311469685eab2fe544fe6cc671ac",
|
|
48
|
+
"aarch64": "aa1a8a1b88758ad47ca69d30e9649a24a93b94b5b5fc181ce782035c2c77c497",
|
|
49
|
+
"armv7": "0c39cb98b67735fede6bbbe91471695e26707f377cbc50dd860a1d9a7fe06fcf",
|
|
50
|
+
"lifecycle": {
|
|
51
|
+
"x86_64": "819459580135e016184ad80c258350d57194d6134e8aa4cf1caf5237085b1004",
|
|
52
|
+
"aarch64": "5abcfc21403e84a0af15d972bcb819ac6fedfd9aaf5898ddc8c4bb06130f9f59",
|
|
53
|
+
"armv7": "b65a14f0fc77a1d3221c7dc6781eb66059aa200956b094d58a62bd1cad10f116"
|
|
54
|
+
},
|
|
55
|
+
"goToolchain": "go1.26.9"
|
|
56
|
+
},
|
|
57
|
+
"0.9.5": {
|
|
58
|
+
"x86_64": "fc3c206b6a8e30b7470cedabf6676c027960311469685eab2fe544fe6cc671ac",
|
|
59
|
+
"aarch64": "aa1a8a1b88758ad47ca69d30e9649a24a93b94b5b5fc181ce782035c2c77c497",
|
|
60
|
+
"armv7": "0c39cb98b67735fede6bbbe91471695e26707f377cbc50dd860a1d9a7fe06fcf",
|
|
61
|
+
"lifecycle": {
|
|
62
|
+
"x86_64": "819459580135e016184ad80c258350d57194d6134e8aa4cf1caf5237085b1004",
|
|
63
|
+
"aarch64": "5abcfc21403e84a0af15d972bcb819ac6fedfd9aaf5898ddc8c4bb06130f9f59",
|
|
64
|
+
"armv7": "b65a14f0fc77a1d3221c7dc6781eb66059aa200956b094d58a62bd1cad10f116"
|
|
65
|
+
},
|
|
66
|
+
"goToolchain": "go1.26.9"
|
|
45
67
|
}
|
|
46
68
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@synopackageland/cli",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.4",
|
|
4
4
|
"description": "Syno Package Land Developer Kit CLI",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -19,12 +19,12 @@
|
|
|
19
19
|
"scripts": {
|
|
20
20
|
"build": "rm -rf dist && tsc",
|
|
21
21
|
"test": "npm run build && node --import tsx --test test/**/*.test.ts",
|
|
22
|
-
"test:scripts": "node --test scripts/test/release.test.mjs scripts/test/pack-docker.test.mjs scripts/test/npm-pack.test.mjs scripts/test/executor-bump.test.mjs scripts/test/smoke-exports.test.mjs scripts/test/executor-digests.test.mjs",
|
|
22
|
+
"test:scripts": "node --test scripts/test/gate.test.mjs scripts/test/release.test.mjs scripts/test/pack-docker.test.mjs scripts/test/npm-pack.test.mjs scripts/test/executor-bump.test.mjs scripts/test/smoke-exports.test.mjs scripts/test/executor-digests.test.mjs",
|
|
23
23
|
"gates": "bash scripts/ci/gate.sh npm && bash scripts/ci/gate.sh native-go && bash scripts/ci/gate.sh daemon-gateway",
|
|
24
24
|
"prepublishOnly": "npm run build"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@synopackageland/templates": "0.9.
|
|
27
|
+
"@synopackageland/templates": "0.9.4",
|
|
28
28
|
"ajv": "^8.17.1",
|
|
29
29
|
"commander": "^13.1.0",
|
|
30
30
|
"tar": "^7.4.3",
|
|
@@ -68,7 +68,11 @@ also exports `@synopackageland/ui/json-catalog.schema.json` and
|
|
|
68
68
|
|
|
69
69
|
In DSM windows, keep a bounded `AppRoot` (for example `height: 100%`), use its
|
|
70
70
|
default app modal scope or explicit `modalScope: "app"`, and set JSON `AppShell`
|
|
71
|
-
`wideLayout: "window"`. Vue `AppLayout` uses `wide-layout="window"`.
|
|
71
|
+
`wideLayout: "window"`. Vue `AppLayout` uses `wide-layout="window"`. In a DSM
|
|
72
|
+
window (`ctx.host.platform().host === 'dsm'`), the Vue wrapper gives `AppRoot`
|
|
73
|
+
`dialog-bounds="viewport"` and connects its `activate` event to
|
|
74
|
+
`ctx.host.activateWindow()`, so Dialogs can leave the window and pressing one
|
|
75
|
+
brings the window to the front; below 600px they are bottom sheets. Reserve
|
|
72
76
|
root sizing for the Vue/host wrapper; only use props exposed by the current JSON
|
|
73
77
|
schema inside the spec. Reserve
|
|
74
78
|
`modalScope: "document"` and `wideLayout: "web"` for whole-page web/Portal apps.
|
|
@@ -34,6 +34,13 @@ do not guess APIs or copy a version-specific component inventory.
|
|
|
34
34
|
- Keep a bounded `AppRoot`, for example `<AppRoot style="height: 100%">`, with
|
|
35
35
|
a sized host/mount container. Use its default app modal scope (`modalScope`);
|
|
36
36
|
avoid overriding it to document scope in a DSM window.
|
|
37
|
+
- In a DSM window (`ctx.host.platform().host === 'dsm'`), give `AppRoot`
|
|
38
|
+
`dialog-bounds="viewport"` so Dialogs can be dragged out of the window as
|
|
39
|
+
DSM's own are, and connect its `activate` event to
|
|
40
|
+
`ctx.host.activateWindow()` so pressing a Dialog brings the window to the
|
|
41
|
+
front. Below 600px of viewport width the UI turns them into bottom sheets.
|
|
42
|
+
Keep the default `app` bounds outside DSM windows (standalone web, Portal,
|
|
43
|
+
previews).
|
|
37
44
|
- Import only `@synopackageland/ui/themes/dsm7-embedded.css` for the template.
|
|
38
45
|
The standalone `theme.css` and `dsm7.css` entrypoints affect the host page.
|
|
39
46
|
- Set a unique `app.config.idPrefix` for every independent Vue app before
|