@synopackageland/cli 0.9.6 → 0.10.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 +144 -5
- package/README.md +5 -0
- package/dist/add.js +7 -8
- package/dist/build-spk/dsm-arch.js +1 -1
- package/dist/build-spk/dsm-icons.d.ts +8 -1
- package/dist/build-spk/dsm-icons.js +26 -12
- package/dist/build-spk/dsm-version.d.ts +1 -1
- package/dist/build-spk/dsm-version.js +4 -4
- package/dist/build-spk/gateway.js +2 -2
- package/dist/build-spk/generator.js +1 -1
- package/dist/build-spk/png.js +16 -16
- package/dist/capabilities.js +1 -1
- package/dist/capability-overlays.d.ts +16 -5
- package/dist/capability-overlays.js +30 -16
- package/dist/cli.js +107 -107
- package/dist/compose/analyze.js +23 -23
- package/dist/compose/privilege.js +12 -12
- package/dist/contract/i18n.js +3 -3
- package/dist/contract/icon.js +2 -2
- package/dist/contract/posix-all-shares.js +2 -2
- package/dist/contract/schema-validate.js +3 -3
- package/dist/contract/validate.js +16 -16
- package/dist/contract/web-launch.d.ts +2 -1
- package/dist/contract/web-launch.js +3 -2
- package/dist/deploy/deploy.js +8 -8
- package/dist/deploy/homes-values.js +1 -1
- package/dist/deploy/identity-shared.js +1 -1
- package/dist/deploy/native-install-values.js +1 -1
- package/dist/deploy/param-values.js +4 -4
- package/dist/deploy/plan.d.ts +1 -1
- package/dist/deploy/port-preflight.js +3 -3
- package/dist/deploy/run-as-values.js +2 -2
- package/dist/deploy/share-permission-preflight.js +6 -6
- package/dist/deploy/share-values.js +3 -3
- package/dist/error-registry.js +369 -346
- package/dist/errors.js +1 -1
- package/dist/host/dsm-port-profile.d.ts +1 -1
- package/dist/host/dsm-port-profile.js +1 -1
- package/dist/info.js +11 -11
- package/dist/init.d.ts +2 -0
- package/dist/init.js +85 -38
- package/dist/inspect.js +5 -5
- package/dist/portal/alias.d.ts +1 -1
- package/dist/portal/alias.js +4 -4
- package/dist/runtime/executor-build.js +12 -1
- package/dist/runtime/executor-digests.json +8 -85
- package/dist/runtime/executor-inspect.js +11 -4
- package/dist/runtime/executor-policy.d.ts +9 -2
- package/dist/runtime/executor-policy.js +27 -8
- package/dist/runtime/root-programs.d.ts +47 -0
- package/dist/runtime/root-programs.js +153 -0
- package/dist/runtime/sdk-source.d.ts +5 -4
- package/dist/runtime/sdk-source.js +8 -4
- package/dist/skill.js +14 -14
- package/dist/spk/check-info.js +17 -17
- package/dist/spk/check-metadata.js +18 -18
- package/dist/spk/check-payload.js +10 -10
- package/dist/spk/rules.d.ts +57 -57
- package/dist/spk/rules.js +50 -50
- package/dist/spk/validate-spk.js +5 -5
- package/dist/standalone/api-permissions.js +1 -1
- package/dist/standalone/background.d.ts +3 -1
- package/dist/standalone/background.js +8 -4
- package/dist/standalone/binary.js +7 -7
- package/dist/standalone/bridge-app.d.ts +23 -0
- package/dist/standalone/bridge-app.js +141 -0
- package/dist/standalone/bridge-backend.d.ts +40 -0
- package/dist/standalone/bridge-backend.js +95 -0
- package/dist/standalone/bridge-build.d.ts +21 -0
- package/dist/standalone/bridge-build.js +62 -0
- package/dist/standalone/bridge-json.d.ts +16 -0
- package/dist/standalone/bridge-json.js +59 -0
- package/dist/standalone/bridge-runtime.d.ts +16 -0
- package/dist/standalone/bridge-runtime.js +46 -0
- package/dist/standalone/bridge-rust.d.ts +16 -0
- package/dist/standalone/bridge-rust.js +89 -0
- package/dist/standalone/build.js +18 -14
- package/dist/standalone/daemon.js +6 -6
- package/dist/standalone/dsm-window.d.ts +10 -5
- package/dist/standalone/dsm-window.js +64 -16
- package/dist/standalone/i18n.js +18 -18
- package/dist/standalone/inspect-bridge.d.ts +31 -0
- package/dist/standalone/inspect-bridge.js +111 -0
- package/dist/standalone/inspect-spk.d.ts +1 -1
- package/dist/standalone/inspect-spk.js +77 -69
- package/dist/standalone/lifecycle.js +22 -3
- package/dist/standalone/manifest.d.ts +17 -9
- package/dist/standalone/manifest.js +143 -65
- package/dist/standalone/portal-window.js +14 -7
- package/dist/standalone/request-timeout.d.ts +9 -0
- package/dist/standalone/request-timeout.js +13 -0
- package/dist/standalone/root-ops.d.ts +23 -2
- package/dist/standalone/root-ops.js +118 -13
- package/dist/standalone/sdk-check.js +4 -4
- package/dist/standalone/shared-folder.js +7 -7
- package/dist/standalone/spk.d.ts +2 -0
- package/dist/standalone/spk.js +30 -11
- package/dist/standalone/uninstall-hook.js +22 -4
- package/dist/standalone/uninstall.js +7 -7
- package/dist/standalone/window-size.d.ts +17 -0
- package/dist/standalone/window-size.js +31 -0
- package/dist/types.d.ts +1 -1
- package/dist/validate.js +13 -13
- package/package.json +2 -2
- package/schema/bridge-manifest.v1.schema.json +86 -0
- package/skills/reference/create.md +76 -2
- package/skills/reference/ui-json.md +2 -1
- package/skills/reference/ui-vue.md +9 -3
- package/skills/reference/wrap.md +1 -1
- package/dist/standalone/rust-build.d.ts +0 -35
- package/dist/standalone/rust-build.js +0 -127
|
@@ -31,7 +31,7 @@ export function resolveDsmUserExtraValues(input) {
|
|
|
31
31
|
return {
|
|
32
32
|
ok: false,
|
|
33
33
|
code: DSM_USER_LOGICAL_NAME_REQUIRED,
|
|
34
|
-
message: `Container Run-as
|
|
34
|
+
message: `The Container Run-as "${key}" must be a DSM user logical name on this NAS; a numeric uid is not accepted.`,
|
|
35
35
|
};
|
|
36
36
|
}
|
|
37
37
|
extraValues[key] = logical;
|
|
@@ -41,7 +41,7 @@ export function resolveDsmUserExtraValues(input) {
|
|
|
41
41
|
return {
|
|
42
42
|
ok: false,
|
|
43
43
|
code: DSM_USER_REQUIRED,
|
|
44
|
-
message:
|
|
44
|
+
message: `The contract has Container Run-as slots "${missing.join(", ")}". Pass a DSM user logical name on this NAS (for example ${example}). Do not write a numeric uid into extra_values.`,
|
|
45
45
|
};
|
|
46
46
|
}
|
|
47
47
|
return { ok: true, extraValues };
|
|
@@ -62,18 +62,18 @@ export async function runSharePermissionPreflight(input) {
|
|
|
62
62
|
});
|
|
63
63
|
if (verdict.access === "denied" || verdict.access === "none") {
|
|
64
64
|
const cause = verdict.access === "denied"
|
|
65
|
-
?
|
|
66
|
-
: "
|
|
65
|
+
? `is explicitly denied by "${verdict.deniedBy}"`
|
|
66
|
+
: "has no permission through the user or any of their groups";
|
|
67
67
|
return {
|
|
68
68
|
ok: false,
|
|
69
69
|
code: SHARE_RUN_AS_NO_ACCESS,
|
|
70
|
-
message: `Container Run-as
|
|
71
|
-
"
|
|
72
|
-
|
|
70
|
+
message: `Container Run-as "${userKey}=${userName}" ${cause} for Shared Folder "${shareKey}=${shareName}".` +
|
|
71
|
+
"The container mounts this Share as that user, so the install succeeds but runtime reads and writes get Permission denied." +
|
|
72
|
+
`Grant ${userName} permission on ${shareName} in DSM Control Panel first, or choose another user/Share.`,
|
|
73
73
|
};
|
|
74
74
|
}
|
|
75
75
|
if (verdict.access === "read") {
|
|
76
|
-
notes.push(`Run-as
|
|
76
|
+
notes.push(`Run-as "${userName}" has read-only permission on Shared Folder "${shareName}" (source ${verdict.grantedBy}). If the App needs to write, it fails at runtime.`);
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
79
|
}
|
|
@@ -35,7 +35,7 @@ export async function resolveSharedFolderExtraValues(input) {
|
|
|
35
35
|
return {
|
|
36
36
|
ok: false,
|
|
37
37
|
code: SHARE_LOGICAL_NAME_REQUIRED,
|
|
38
|
-
message: `Shared Folder
|
|
38
|
+
message: `The Shared Folder "${key}" must be a logical Share name on this NAS; a /volume1/... physical path is not accepted.`,
|
|
39
39
|
};
|
|
40
40
|
}
|
|
41
41
|
const resolved = await input.lookup(logical);
|
|
@@ -43,7 +43,7 @@ export async function resolveSharedFolderExtraValues(input) {
|
|
|
43
43
|
return {
|
|
44
44
|
ok: false,
|
|
45
45
|
code: SHARE_NOT_FOUND,
|
|
46
|
-
message:
|
|
46
|
+
message: `Shared Folder "${logical}" was not found on this NAS. Pass an existing logical name; physical paths are not guessed.`,
|
|
47
47
|
};
|
|
48
48
|
}
|
|
49
49
|
extraValues[key] = resolved;
|
|
@@ -53,7 +53,7 @@ export async function resolveSharedFolderExtraValues(input) {
|
|
|
53
53
|
return {
|
|
54
54
|
ok: false,
|
|
55
55
|
code: SHARE_VALUE_REQUIRED,
|
|
56
|
-
message:
|
|
56
|
+
message: `The contract has Shared Folder slots "${missing.join(", ")}". Pass the logical Share name of each slot on this NAS (for example ${example}), or use an install that opens the Package Center install wizard. Do not continue with extra_values={}, or it binds an empty path (Container Manager 2202).`,
|
|
57
57
|
};
|
|
58
58
|
}
|
|
59
59
|
return { ok: true, extraValues };
|