@synopackageland/cli 0.8.0 → 0.9.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 +124 -0
- package/README.md +26 -4
- package/dist/add.js +4 -17
- package/dist/authorization-sdk.d.ts +0 -1
- package/dist/authorization-sdk.js +0 -1
- package/dist/build-spk/gateway.js +2 -2
- package/dist/build-spk/notices.js +12 -8
- package/dist/capability-overlays.d.ts +15 -0
- package/dist/capability-overlays.js +18 -0
- package/dist/cli-version.d.ts +2 -0
- package/dist/cli-version.js +3 -0
- package/dist/cli.js +3 -1
- package/dist/error-registry.js +12 -4
- package/dist/info.js +2 -1
- package/dist/init.js +52 -58
- package/dist/reproducible.js +1 -1
- package/dist/runtime/delegate-contract.d.ts +15 -0
- package/dist/runtime/delegate-contract.js +2 -0
- package/dist/runtime/executor-build.d.ts +15 -1
- package/dist/runtime/executor-build.js +42 -11
- package/dist/runtime/executor-digests.json +13 -0
- package/dist/runtime/executor-inspect.d.ts +1 -0
- package/dist/runtime/executor-inspect.js +5 -2
- package/dist/runtime/executor-policy.d.ts +3 -1
- package/dist/runtime/executor-policy.js +7 -2
- package/dist/runtime/executor-source.d.ts +21 -0
- package/dist/runtime/executor-source.js +35 -0
- package/dist/runtime/executor-tasks.d.ts +5 -2
- package/dist/runtime/executor-tasks.js +6 -4
- package/dist/runtime/sdk-source.d.ts +31 -0
- package/dist/runtime/sdk-source.js +92 -0
- package/dist/standalone/api-permissions.d.ts +4 -1
- package/dist/standalone/api-permissions.js +10 -18
- package/dist/standalone/build.d.ts +1 -0
- package/dist/standalone/build.js +11 -4
- package/dist/standalone/daemon.js +2 -2
- package/dist/standalone/dsm-window.js +2 -2
- package/dist/standalone/manifest.d.ts +5 -2
- package/dist/standalone/manifest.js +9 -3
- package/dist/standalone/root-window.d.ts +1 -1
- package/dist/standalone/root-window.js +0 -1
- package/dist/standalone/sdk-check.d.ts +9 -0
- package/dist/standalone/sdk-check.js +43 -0
- package/dist/standalone/spk.js +1 -1
- package/dist/template-paths.d.ts +7 -2
- package/dist/template-paths.js +18 -6
- package/package.json +13 -3
- package/dist/templates/_executor/README.md +0 -318
- package/dist/templates/_executor/anchor.go +0 -156
- package/dist/templates/_executor/anchor_test.go +0 -161
- package/dist/templates/_executor/apppriv_review_test.go +0 -28
- package/dist/templates/_executor/auth_presence_review_test.go +0 -38
- package/dist/templates/_executor/cancel_contract_test.go +0 -236
- package/dist/templates/_executor/cmd/lifecycle/main.go +0 -42
- package/dist/templates/_executor/cookie_review_test.go +0 -27
- package/dist/templates/_executor/copy.go +0 -64
- package/dist/templates/_executor/copy_test.go +0 -88
- package/dist/templates/_executor/digest_review_test.go +0 -120
- package/dist/templates/_executor/directories.go +0 -40
- package/dist/templates/_executor/dsm.go +0 -369
- package/dist/templates/_executor/dsm_test.go +0 -290
- package/dist/templates/_executor/executor.go +0 -735
- package/dist/templates/_executor/executor_test.go +0 -314
- package/dist/templates/_executor/go.mod +0 -5
- package/dist/templates/_executor/identity.go +0 -74
- package/dist/templates/_executor/identity_kernel_linux_test.go +0 -60
- package/dist/templates/_executor/identity_linux.go +0 -82
- package/dist/templates/_executor/identity_security_test.go +0 -43
- package/dist/templates/_executor/internal/lifecycle/lifecycle.go +0 -95
- package/dist/templates/_executor/internal/lifecycle/lifecycle_test.go +0 -232
- package/dist/templates/_executor/internal/taskscript/boot.sh +0 -31
- package/dist/templates/_executor/internal/taskscript/cmd/main.go +0 -19
- package/dist/templates/_executor/internal/taskscript/control.sh +0 -31
- package/dist/templates/_executor/internal/taskscript/tasks.go +0 -44
- package/dist/templates/_executor/json_review_test.go +0 -40
- package/dist/templates/_executor/lifecycle_test.go +0 -97
- package/dist/templates/_executor/link_linux.go +0 -28
- package/dist/templates/_executor/long_running_test.go +0 -530
- package/dist/templates/_executor/main.go +0 -576
- package/dist/templates/_executor/managed.go +0 -117
- package/dist/templates/_executor/managed_test.go +0 -137
- package/dist/templates/_executor/move_linux.go +0 -490
- package/dist/templates/_executor/move_linux_test.go +0 -460
- package/dist/templates/_executor/move_validation.go +0 -46
- package/dist/templates/_executor/move_validation_test.go +0 -187
- package/dist/templates/_executor/operations.go +0 -926
- package/dist/templates/_executor/path_test.go +0 -35
- package/dist/templates/_executor/pid.go +0 -37
- package/dist/templates/_executor/pid_test.go +0 -113
- package/dist/templates/_executor/platform_linux.go +0 -187
- package/dist/templates/_executor/platform_linux_test.go +0 -191
- package/dist/templates/_executor/platform_other.go +0 -76
- package/dist/templates/_executor/process.go +0 -142
- package/dist/templates/_executor/purge_log.go +0 -18
- package/dist/templates/_executor/records.go +0 -242
- package/dist/templates/_executor/scope_cancel_contract_test.go +0 -91
- package/dist/templates/_executor/scope_client.go +0 -37
- package/dist/templates/_executor/scope_contract.go +0 -12
- package/dist/templates/_executor/selected_scope.go +0 -146
- package/dist/templates/_executor/selected_scope_test.go +0 -186
- package/dist/templates/_executor/socket_linux_test.go +0 -46
- package/dist/templates/_executor/status_disabled_test.go +0 -33
- package/dist/templates/_executor/store.go +0 -91
- package/dist/templates/_executor/supervise.go +0 -109
- package/dist/templates/_executor/supervise_test.go +0 -130
- package/dist/templates/_executor/task_race_review_test.go +0 -47
- package/dist/templates/_executor/tasks.go +0 -320
- package/dist/templates/_executor/tasks_dsm71_test.go +0 -114
- package/dist/templates/_executor/tasks_review_test.go +0 -43
- package/dist/templates/_executor/tasks_test.go +0 -223
- package/dist/templates/_executor/testdata/evidence/cleanup.json +0 -24
- package/dist/templates/_executor/testdata/evidence/final-smoke.jsonl +0 -9
- package/dist/templates/_executor/testdata/evidence/kernel-acl.json +0 -6
- package/dist/templates/_executor/testdata/evidence/linux-tests.log +0 -123
- package/dist/templates/_executor/testdata/evidence/live.jsonl +0 -23
- package/dist/templates/_executor/testdata/evidence/storage.json +0 -90
- package/dist/templates/_executor/testdata/evidence/validation.json +0 -55
- package/dist/templates/_executor/testdata/live_probe.py +0 -98
- package/dist/templates/_executor/upgrade_watch_test.go +0 -244
- package/dist/templates/_executor/watch.go +0 -164
- package/dist/templates/_executor/watch_test.go +0 -291
- package/dist/templates/_executor/write_review_linux_test.go +0 -87
- package/dist/templates/_shared/AGENTS.md +0 -146
- package/dist/templates/_shared/CLAUDE.md +0 -1
- package/dist/templates/_shared/third-party-notices.mjs +0 -51
- package/dist/templates/binary/LICENSES/GO-LICENSE +0 -27
- package/dist/templates/binary/LICENSES/GO-PATENTS +0 -22
- package/dist/templates/binary/dsm-package.yaml +0 -46
- package/dist/templates/binary/example/main.go +0 -16
- package/dist/templates/binary/gitignore +0 -2
- package/dist/templates/binary/i18n/messages/de.json +0 -4
- package/dist/templates/binary/i18n/messages/en.json +0 -4
- package/dist/templates/binary/i18n/messages/es.json +0 -4
- package/dist/templates/binary/i18n/messages/fr.json +0 -4
- package/dist/templates/binary/i18n/messages/it.json +0 -4
- package/dist/templates/binary/i18n/messages/ja.json +0 -4
- package/dist/templates/binary/i18n/messages/ko.json +0 -4
- package/dist/templates/binary/i18n/messages/zh-CN.json +0 -4
- package/dist/templates/binary/i18n/messages/zh-TW.json +0 -4
- package/dist/templates/binary/ui/app.css +0 -4
- package/dist/templates/binary/ui/app.js +0 -32
- package/dist/templates/compose/compose.yaml +0 -8
- package/dist/templates/compose/synology-app.yaml +0 -16
- package/dist/templates/native-authorization/AuthorizationGate.vue +0 -91
- package/dist/templates/native-authorization/i18n/de.json +0 -37
- package/dist/templates/native-authorization/i18n/en.json +0 -37
- package/dist/templates/native-authorization/i18n/es.json +0 -37
- package/dist/templates/native-authorization/i18n/fr.json +0 -37
- package/dist/templates/native-authorization/i18n/index.ts +0 -15
- package/dist/templates/native-authorization/i18n/it.json +0 -37
- package/dist/templates/native-authorization/i18n/ja.json +0 -37
- package/dist/templates/native-authorization/i18n/ko.json +0 -37
- package/dist/templates/native-authorization/i18n/zh-CN.json +0 -37
- package/dist/templates/native-authorization/i18n/zh-TW.json +0 -37
- package/dist/templates/native-go/README.md +0 -459
- package/dist/templates/native-go/backend/THIRD_PARTY_NOTICES.txt +0 -61
- package/dist/templates/native-go/backend/cmd/app/main.go +0 -95
- package/dist/templates/native-go/backend/cmd/background-worker/main.go +0 -38
- package/dist/templates/native-go/backend/go.mod +0 -9
- package/dist/templates/native-go/backend/go.sum +0 -4
- package/dist/templates/native-go/backend/internal/api/cgi_framing_test.go +0 -32
- package/dist/templates/native-go/backend/internal/api/cookie_review_test.go +0 -28
- package/dist/templates/native-go/backend/internal/api/deadline_test.go +0 -114
- package/dist/templates/native-go/backend/internal/api/dsm-session.go +0 -54
- package/dist/templates/native-go/backend/internal/api/dsm-session_test.go +0 -51
- package/dist/templates/native-go/backend/internal/api/entry_test.go +0 -47
- package/dist/templates/native-go/backend/internal/api/errors.go +0 -47
- package/dist/templates/native-go/backend/internal/api/permissions.go +0 -161
- package/dist/templates/native-go/backend/internal/api/permissions.json +0 -5
- package/dist/templates/native-go/backend/internal/api/permissions_test.go +0 -113
- package/dist/templates/native-go/backend/internal/api/policy_fixture_test.go +0 -8
- package/dist/templates/native-go/backend/internal/api/registry.go +0 -142
- package/dist/templates/native-go/backend/internal/api/registry_test.go +0 -344
- package/dist/templates/native-go/backend/internal/api/resource_limits_test.go +0 -87
- package/dist/templates/native-go/backend/internal/api/sdk-permissions.json +0 -59
- package/dist/templates/native-go/backend/internal/api/sdk_policy_test.go +0 -31
- package/dist/templates/native-go/backend/internal/api/server.go +0 -305
- package/dist/templates/native-go/backend/internal/api/testdata/permissions-cases.json +0 -172
- package/dist/templates/native-go/backend/internal/app/background.go +0 -249
- package/dist/templates/native-go/backend/internal/app/background_none.go +0 -8
- package/dist/templates/native-go/backend/internal/app/background_owner.go +0 -38
- package/dist/templates/native-go/backend/internal/app/background_owner_test.go +0 -163
- package/dist/templates/native-go/backend/internal/app/background_schedule.go +0 -69
- package/dist/templates/native-go/backend/internal/app/background_schedule_test.go +0 -62
- package/dist/templates/native-go/backend/internal/app/background_test.go +0 -320
- package/dist/templates/native-go/backend/internal/app/delegate_config.go +0 -57
- package/dist/templates/native-go/backend/internal/app/delegate_config_test.go +0 -28
- package/dist/templates/native-go/backend/internal/app/delegate_none.go +0 -5
- package/dist/templates/native-go/backend/internal/app/identity.go +0 -20
- package/dist/templates/native-go/backend/internal/app/identity_test.go +0 -15
- package/dist/templates/native-go/backend/internal/app/migrations.go +0 -41
- package/dist/templates/native-go/backend/internal/app/migrations_test.go +0 -41
- package/dist/templates/native-go/backend/internal/app/portal.go +0 -30
- package/dist/templates/native-go/backend/internal/app/portal_test.go +0 -55
- package/dist/templates/native-go/backend/internal/app/root_none.go +0 -9
- package/dist/templates/native-go/backend/internal/app/routes.go +0 -137
- package/dist/templates/native-go/backend/internal/app/routes_test.go +0 -165
- package/dist/templates/native-go/backend/internal/app/session_files.go +0 -9
- package/dist/templates/native-go/backend/internal/app/session_files_test.go +0 -14
- package/dist/templates/native-go/backend/internal/app/shared_folder.go +0 -144
- package/dist/templates/native-go/backend/internal/app/shared_folder_test.go +0 -158
- package/dist/templates/native-go/backend/internal/background/access.go +0 -57
- package/dist/templates/native-go/backend/internal/background/lock_test.go +0 -131
- package/dist/templates/native-go/backend/internal/background/owner_test.go +0 -118
- package/dist/templates/native-go/backend/internal/background/runner.go +0 -185
- package/dist/templates/native-go/backend/internal/background/runner_test.go +0 -209
- package/dist/templates/native-go/backend/internal/background/schedule.go +0 -336
- package/dist/templates/native-go/backend/internal/background/schedule_test.go +0 -368
- package/dist/templates/native-go/backend/internal/background/store.go +0 -825
- package/dist/templates/native-go/backend/internal/background/store_test.go +0 -365
- package/dist/templates/native-go/backend/internal/datamigrate/migrate.go +0 -191
- package/dist/templates/native-go/backend/internal/datamigrate/migrate_test.go +0 -177
- package/dist/templates/native-go/backend/internal/dsm/admin.go +0 -76
- package/dist/templates/native-go/backend/internal/dsm/admin_linux.go +0 -110
- package/dist/templates/native-go/backend/internal/dsm/admin_linux_test.go +0 -105
- package/dist/templates/native-go/backend/internal/dsm/admin_other.go +0 -15
- package/dist/templates/native-go/backend/internal/dsm/admin_test.go +0 -67
- package/dist/templates/native-go/backend/internal/dsm/apppriv.go +0 -30
- package/dist/templates/native-go/backend/internal/dsm/auth.go +0 -94
- package/dist/templates/native-go/backend/internal/dsm/auth_test.go +0 -159
- package/dist/templates/native-go/backend/internal/dsm/bridge_file.go +0 -75
- package/dist/templates/native-go/backend/internal/dsm/bridge_file_test.go +0 -57
- package/dist/templates/native-go/backend/internal/dsm/entry.go +0 -177
- package/dist/templates/native-go/backend/internal/dsm/entry_test.go +0 -315
- package/dist/templates/native-go/backend/internal/dsm/native/admin-aarch64.elf +0 -0
- package/dist/templates/native-go/backend/internal/dsm/native/admin-armv7.elf +0 -0
- package/dist/templates/native-go/backend/internal/dsm/native/admin-x86_64.elf +0 -0
- package/dist/templates/native-go/backend/internal/dsm/native/admin_check.c +0 -28
- package/dist/templates/native-go/backend/internal/dsm/native/apppriv-aarch64.elf +0 -0
- package/dist/templates/native-go/backend/internal/dsm/native/apppriv-armv7.elf +0 -0
- package/dist/templates/native-go/backend/internal/dsm/native/apppriv-x86_64.elf +0 -0
- package/dist/templates/native-go/backend/internal/dsm/native/apppriv_check.c +0 -33
- package/dist/templates/native-go/backend/internal/dsm/native/build.sh +0 -18
- package/dist/templates/native-go/backend/internal/dsm/native/licenses/GLIBC-NOTICES.txt +0 -400
- package/dist/templates/native-go/backend/internal/dsm/native/licenses/LGPL-2.1.txt +0 -501
- package/dist/templates/native-go/backend/internal/dsm/native/licenses/SOURCE.txt +0 -5
- package/dist/templates/native-go/backend/internal/dsm/native/licenses/ZIG-MIT.txt +0 -21
- package/dist/templates/native-go/backend/internal/dsm/native/provenance.json +0 -18
- package/dist/templates/native-go/backend/internal/filestation/browse_test.go +0 -67
- package/dist/templates/native-go/backend/internal/filestation/check_permission.go +0 -71
- package/dist/templates/native-go/backend/internal/filestation/check_permission_test.go +0 -77
- package/dist/templates/native-go/backend/internal/filestation/client.go +0 -337
- package/dist/templates/native-go/backend/internal/filestation/client_test.go +0 -155
- package/dist/templates/native-go/backend/internal/filestation/doc.go +0 -4
- package/dist/templates/native-go/backend/internal/filestation/download_dsm71_test.go +0 -82
- package/dist/templates/native-go/backend/internal/filestation/http.go +0 -70
- package/dist/templates/native-go/backend/internal/filestation/http_test.go +0 -188
- package/dist/templates/native-go/backend/internal/filestation/operations_test.go +0 -206
- package/dist/templates/native-go/backend/internal/filestation/read_file_test.go +0 -89
- package/dist/templates/native-go/backend/internal/filestation/sdk_policy_test.go +0 -39
- package/dist/templates/native-go/backend/internal/filestation/service.go +0 -254
- package/dist/templates/native-go/backend/internal/filestation/service_test.go +0 -74
- package/dist/templates/native-go/backend/internal/filestation/upload_stream.go +0 -76
- package/dist/templates/native-go/backend/internal/filestation/upload_stream_test.go +0 -77
- package/dist/templates/native-go/backend/internal/filestation/write.go +0 -32
- package/dist/templates/native-go/backend/internal/filestation/write_test.go +0 -124
- package/dist/templates/native-go/backend/internal/identity/README.md +0 -59
- package/dist/templates/native-go/backend/internal/identity/dsm.go +0 -115
- package/dist/templates/native-go/backend/internal/identity/http.go +0 -291
- package/dist/templates/native-go/backend/internal/identity/identity_test.go +0 -530
- package/dist/templates/native-go/backend/internal/identity/service.go +0 -159
- package/dist/templates/native-go/backend/internal/identity/store.go +0 -109
- package/dist/templates/native-go/backend/internal/jsonlimits/limits.go +0 -48
- package/dist/templates/native-go/backend/internal/jsonlimits/limits_test.go +0 -52
- package/dist/templates/native-go/backend/internal/portal/portal.go +0 -138
- package/dist/templates/native-go/backend/internal/portal/portal_test.go +0 -89
- package/dist/templates/native-go/dsm-package.yaml +0 -71
- package/dist/templates/native-go/gitignore +0 -1
- package/dist/templates/native-go/i18n/glossary.json +0 -663
- package/dist/templates/native-go/i18n/messages/de.json +0 -29
- package/dist/templates/native-go/i18n/messages/en.json +0 -29
- package/dist/templates/native-go/i18n/messages/es.json +0 -29
- package/dist/templates/native-go/i18n/messages/fr.json +0 -29
- package/dist/templates/native-go/i18n/messages/it.json +0 -29
- package/dist/templates/native-go/i18n/messages/ja.json +0 -29
- package/dist/templates/native-go/i18n/messages/ko.json +0 -29
- package/dist/templates/native-go/i18n/messages/zh-CN.json +0 -29
- package/dist/templates/native-go/i18n/messages/zh-TW.json +0 -29
- package/dist/templates/native-go/ui/app.css +0 -45
- package/dist/templates/native-go/ui/app.js +0 -111
- package/dist/templates/native-go-delegate/DELEGATE.md +0 -263
- package/dist/templates/native-go-delegate/backend/cmd/background-worker/main.go +0 -48
- package/dist/templates/native-go-delegate/backend/internal/app/delegate.go +0 -25
- package/dist/templates/native-go-delegate/backend/internal/app/delegate_on.go +0 -5
- package/dist/templates/native-go-delegate/backend/internal/app/delegate_routes_test.go +0 -31
- package/dist/templates/native-go-delegate/backend/internal/background/delegate_review_test.go +0 -174
- package/dist/templates/native-go-delegate/backend/internal/background/delegated.go +0 -277
- package/dist/templates/native-go-delegate/backend/internal/background/delegated_moves.go +0 -270
- package/dist/templates/native-go-delegate/backend/internal/background/delegated_test.go +0 -34
- package/dist/templates/native-go-delegate/backend/internal/delegate/admission_recovery_test.go +0 -410
- package/dist/templates/native-go-delegate/backend/internal/delegate/busy_review_test.go +0 -15
- package/dist/templates/native-go-delegate/backend/internal/delegate/cancel_contract_test.go +0 -95
- package/dist/templates/native-go-delegate/backend/internal/delegate/client.go +0 -151
- package/dist/templates/native-go-delegate/backend/internal/delegate/client_test.go +0 -214
- package/dist/templates/native-go-delegate/backend/internal/delegate/destination.go +0 -110
- package/dist/templates/native-go-delegate/backend/internal/delegate/destination_state.go +0 -117
- package/dist/templates/native-go-delegate/backend/internal/delegate/destination_state_test.go +0 -60
- package/dist/templates/native-go-delegate/backend/internal/delegate/destination_test.go +0 -116
- package/dist/templates/native-go-delegate/backend/internal/delegate/example.go +0 -81
- package/dist/templates/native-go-delegate/backend/internal/delegate/example_test.go +0 -91
- package/dist/templates/native-go-delegate/backend/internal/delegate/executor_contract_test.go +0 -511
- package/dist/templates/native-go-delegate/backend/internal/delegate/files.go +0 -132
- package/dist/templates/native-go-delegate/backend/internal/delegate/long_running_routes.go +0 -92
- package/dist/templates/native-go-delegate/backend/internal/delegate/long_running_routes_test.go +0 -99
- package/dist/templates/native-go-delegate/backend/internal/delegate/move.go +0 -348
- package/dist/templates/native-go-delegate/backend/internal/delegate/move_test.go +0 -351
- package/dist/templates/native-go-delegate/backend/internal/delegate/operations_list.go +0 -65
- package/dist/templates/native-go-delegate/backend/internal/delegate/operations_list_test.go +0 -114
- package/dist/templates/native-go-delegate/backend/internal/delegate/retry.go +0 -106
- package/dist/templates/native-go-delegate/backend/internal/delegate/retry_test.go +0 -143
- package/dist/templates/native-go-delegate/backend/internal/delegate/service.go +0 -364
- package/dist/templates/native-go-delegate/backend/internal/delegate/service_test.go +0 -318
- package/dist/templates/native-go-delegate/backend/internal/delegate/staging.go +0 -121
- package/dist/templates/native-go-delegate/backend/internal/delegate/status_disabled_test.go +0 -51
- package/dist/templates/native-go-delegate/backend/internal/delegate/testdata/executor_contract.txt +0 -112
- package/dist/templates/native-go-delegate/backend/internal/delegate/transient_contract_test.go +0 -137
- package/dist/templates/native-go-delegate/backend/internal/delegate/wait_cancel_test.go +0 -101
- package/dist/templates/native-go-delegate/backend/internal/delegate/worker.go +0 -225
- package/dist/templates/native-go-delegate/backend/internal/filestation/files.go +0 -43
- package/dist/templates/native-go-delegate/backend/internal/filestation/files_test.go +0 -59
- package/dist/templates/native-go-delegate/frontend/src/CapabilityPanels.vue +0 -37
- package/dist/templates/native-go-delegate/frontend/src/delegate/BackgroundSavePanel.vue +0 -113
- package/dist/templates/native-go-delegate/frontend/src/delegate/DelegatePanel.vue +0 -70
- package/dist/templates/native-go-delegate/frontend/src/delegate/copy.ts +0 -8
- package/dist/templates/native-go-delegate/frontend/src/delegate/i18n/waiting.json +0 -11
- package/dist/templates/native-go-delegate/frontend/test/background-save.test.ts +0 -121
- package/dist/templates/native-go-delegate/frontend/test/delegate.test.ts +0 -145
- package/dist/templates/native-go-delegate/frontend/test/scope-settings.test.ts +0 -49
- package/dist/templates/native-go-delegate/test-frontend.sh +0 -12
- package/dist/templates/native-go-delegate/test.sh +0 -18
- package/dist/templates/native-go-jobs/BACKGROUND.md +0 -108
- package/dist/templates/native-go-jobs/backend/internal/app/background_on.go +0 -7
- package/dist/templates/native-go-jobs/backend/internal/app/background_routes_test.go +0 -90
- package/dist/templates/native-go-jobs/frontend/src/background/BackgroundPanel.vue +0 -170
- package/dist/templates/native-go-jobs/frontend/src/background/i18n/de.json +0 -75
- package/dist/templates/native-go-jobs/frontend/src/background/i18n/en.json +0 -75
- package/dist/templates/native-go-jobs/frontend/src/background/i18n/es.json +0 -75
- package/dist/templates/native-go-jobs/frontend/src/background/i18n/fr.json +0 -75
- package/dist/templates/native-go-jobs/frontend/src/background/i18n/it.json +0 -75
- package/dist/templates/native-go-jobs/frontend/src/background/i18n/ja.json +0 -75
- package/dist/templates/native-go-jobs/frontend/src/background/i18n/ko.json +0 -75
- package/dist/templates/native-go-jobs/frontend/src/background/i18n/zh-CN.json +0 -75
- package/dist/templates/native-go-jobs/frontend/src/background/i18n/zh-TW.json +0 -75
- package/dist/templates/native-go-jobs/frontend/src/background/i18n.ts +0 -19
- package/dist/templates/native-go-jobs/frontend/src/background/picker-provider.ts +0 -12
- package/dist/templates/native-go-jobs/frontend/src/background/request-key.ts +0 -5
- package/dist/templates/native-go-jobs/frontend/test/background.test.ts +0 -205
- package/dist/templates/native-go-root-ops/backend/internal/app/executor.go +0 -140
- package/dist/templates/native-go-root-ops/backend/internal/app/executor_test.go +0 -117
- package/dist/templates/native-go-root-ops/root/whoami.sh +0 -3
- package/dist/templates/native-go-vue/README.md +0 -47
- package/dist/templates/native-go-vue/frontend/DESIGN.md +0 -61
- package/dist/templates/native-go-vue/frontend/package-lock.json +0 -2530
- package/dist/templates/native-go-vue/frontend/package.json +0 -6
- package/dist/templates/native-go-vue/frontend/src/App.vue +0 -96
- package/dist/templates/native-go-vue/frontend/src/CapabilityPanels.vue +0 -6
- package/dist/templates/native-go-vue/frontend/src/context.ts +0 -78
- package/dist/templates/native-go-vue/frontend/src/delegate/ExecutorSettings.vue +0 -70
- package/dist/templates/native-go-vue/frontend/src/delegate/catalogs.ts +0 -11
- package/dist/templates/native-go-vue/frontend/src/delegate/copy.test.ts +0 -12
- package/dist/templates/native-go-vue/frontend/src/delegate/copy.ts +0 -4
- package/dist/templates/native-go-vue/frontend/src/delegate/executor-settings.test.ts +0 -23
- package/dist/templates/native-go-vue/frontend/src/delegate/executor-setup.ts +0 -24
- package/dist/templates/native-go-vue/frontend/src/delegate/facade.test.ts +0 -100
- package/dist/templates/native-go-vue/frontend/src/delegate/facade.ts +0 -85
- package/dist/templates/native-go-vue/frontend/src/delegate/i18n/de.json +0 -47
- package/dist/templates/native-go-vue/frontend/src/delegate/i18n/en.json +0 -47
- package/dist/templates/native-go-vue/frontend/src/delegate/i18n/es.json +0 -47
- package/dist/templates/native-go-vue/frontend/src/delegate/i18n/fr.json +0 -47
- package/dist/templates/native-go-vue/frontend/src/delegate/i18n/it.json +0 -47
- package/dist/templates/native-go-vue/frontend/src/delegate/i18n/ja.json +0 -47
- package/dist/templates/native-go-vue/frontend/src/delegate/i18n/ko.json +0 -47
- package/dist/templates/native-go-vue/frontend/src/delegate/i18n/save/de.json +0 -42
- package/dist/templates/native-go-vue/frontend/src/delegate/i18n/save/en.json +0 -42
- package/dist/templates/native-go-vue/frontend/src/delegate/i18n/save/es.json +0 -42
- package/dist/templates/native-go-vue/frontend/src/delegate/i18n/save/fr.json +0 -42
- package/dist/templates/native-go-vue/frontend/src/delegate/i18n/save/it.json +0 -42
- package/dist/templates/native-go-vue/frontend/src/delegate/i18n/save/ja.json +0 -42
- package/dist/templates/native-go-vue/frontend/src/delegate/i18n/save/ko.json +0 -42
- package/dist/templates/native-go-vue/frontend/src/delegate/i18n/save/zh-CN.json +0 -42
- package/dist/templates/native-go-vue/frontend/src/delegate/i18n/save/zh-TW.json +0 -42
- package/dist/templates/native-go-vue/frontend/src/delegate/i18n/zh-CN.json +0 -47
- package/dist/templates/native-go-vue/frontend/src/delegate/i18n/zh-TW.json +0 -47
- package/dist/templates/native-go-vue/frontend/src/delegate/long-running.ts +0 -57
- package/dist/templates/native-go-vue/frontend/src/delegate/save-copy.test.ts +0 -12
- package/dist/templates/native-go-vue/frontend/src/delegate/save-copy.ts +0 -24
- package/dist/templates/native-go-vue/frontend/src/delegate/scoped-picker.test.ts +0 -12
- package/dist/templates/native-go-vue/frontend/src/delegate/scoped-picker.ts +0 -21
- package/dist/templates/native-go-vue/frontend/src/files/FileBrowser.vue +0 -131
- package/dist/templates/native-go-vue/frontend/src/files/FilesPage.vue +0 -35
- package/dist/templates/native-go-vue/frontend/src/files/files.test.ts +0 -100
- package/dist/templates/native-go-vue/frontend/src/files/provider.test.ts +0 -48
- package/dist/templates/native-go-vue/frontend/src/files/transfers.test.ts +0 -27
- package/dist/templates/native-go-vue/frontend/src/files/transfers.ts +0 -25
- package/dist/templates/native-go-vue/frontend/src/i18n/de.json +0 -20
- package/dist/templates/native-go-vue/frontend/src/i18n/en.json +0 -20
- package/dist/templates/native-go-vue/frontend/src/i18n/es.json +0 -20
- package/dist/templates/native-go-vue/frontend/src/i18n/fr.json +0 -20
- package/dist/templates/native-go-vue/frontend/src/i18n/it.json +0 -20
- package/dist/templates/native-go-vue/frontend/src/i18n/ja.json +0 -20
- package/dist/templates/native-go-vue/frontend/src/i18n/ko.json +0 -20
- package/dist/templates/native-go-vue/frontend/src/i18n/zh-CN.json +0 -20
- package/dist/templates/native-go-vue/frontend/src/i18n/zh-TW.json +0 -20
- package/dist/templates/native-go-vue/frontend/src/i18n.ts +0 -13
- package/dist/templates/native-go-vue/frontend/src/identity/DESIGN.md +0 -46
- package/dist/templates/native-go-vue/frontend/src/identity/LoginPage.vue +0 -78
- package/dist/templates/native-go-vue/frontend/src/identity/i18n/de.json +0 -27
- package/dist/templates/native-go-vue/frontend/src/identity/i18n/en.json +0 -27
- package/dist/templates/native-go-vue/frontend/src/identity/i18n/es.json +0 -27
- package/dist/templates/native-go-vue/frontend/src/identity/i18n/fr.json +0 -27
- package/dist/templates/native-go-vue/frontend/src/identity/i18n/it.json +0 -27
- package/dist/templates/native-go-vue/frontend/src/identity/i18n/ja.json +0 -27
- package/dist/templates/native-go-vue/frontend/src/identity/i18n/ko.json +0 -27
- package/dist/templates/native-go-vue/frontend/src/identity/i18n/zh-CN.json +0 -27
- package/dist/templates/native-go-vue/frontend/src/identity/i18n/zh-TW.json +0 -27
- package/dist/templates/native-go-vue/frontend/src/identity/i18n.ts +0 -14
- package/dist/templates/native-go-vue/frontend/src/identity/login.test.ts +0 -32
- package/dist/templates/native-go-vue/frontend/src/identity/session.test.ts +0 -33
- package/dist/templates/native-go-vue/frontend/src/identity/session.ts +0 -74
- package/dist/templates/native-go-vue/frontend/src/main.ts +0 -32
- package/dist/templates/native-go-vue/frontend/src/nas/NasPicker.vue +0 -42
- package/dist/templates/native-go-vue/frontend/src/nas/contract.ts +0 -12
- package/dist/templates/native-go-vue/frontend/src/nas/destination.test.ts +0 -48
- package/dist/templates/native-go-vue/frontend/src/nas/i18n/files/de.json +0 -41
- package/dist/templates/native-go-vue/frontend/src/nas/i18n/files/en.json +0 -41
- package/dist/templates/native-go-vue/frontend/src/nas/i18n/files/es.json +0 -41
- package/dist/templates/native-go-vue/frontend/src/nas/i18n/files/fr.json +0 -41
- package/dist/templates/native-go-vue/frontend/src/nas/i18n/files/it.json +0 -41
- package/dist/templates/native-go-vue/frontend/src/nas/i18n/files/ja.json +0 -41
- package/dist/templates/native-go-vue/frontend/src/nas/i18n/files/ko.json +0 -41
- package/dist/templates/native-go-vue/frontend/src/nas/i18n/files/zh-CN.json +0 -41
- package/dist/templates/native-go-vue/frontend/src/nas/i18n/files/zh-TW.json +0 -41
- package/dist/templates/native-go-vue/frontend/src/nas/i18n.ts +0 -2
- package/dist/templates/native-go-vue/frontend/src/nas/locale.ts +0 -24
- package/dist/templates/native-go-vue/frontend/src/nas/provider.ts +0 -50
- package/dist/templates/native-go-vue/frontend/src/nas/use-request.ts +0 -18
- package/dist/templates/native-go-vue/frontend/src/portal/PortalSettings.vue +0 -39
- package/dist/templates/native-go-vue/frontend/src/shell/AppShell.vue +0 -48
- package/dist/templates/native-go-vue/frontend/src/shell/i18n/de.json +0 -4
- package/dist/templates/native-go-vue/frontend/src/shell/i18n/en.json +0 -4
- package/dist/templates/native-go-vue/frontend/src/shell/i18n/es.json +0 -4
- package/dist/templates/native-go-vue/frontend/src/shell/i18n/fr.json +0 -4
- package/dist/templates/native-go-vue/frontend/src/shell/i18n/it.json +0 -4
- package/dist/templates/native-go-vue/frontend/src/shell/i18n/ja.json +0 -4
- package/dist/templates/native-go-vue/frontend/src/shell/i18n/ko.json +0 -4
- package/dist/templates/native-go-vue/frontend/src/shell/i18n/zh-CN.json +0 -4
- package/dist/templates/native-go-vue/frontend/src/shell/i18n/zh-TW.json +0 -4
- package/dist/templates/native-go-vue/frontend/src/shell/i18n.ts +0 -17
- package/dist/templates/native-go-vue/frontend/src/shell/pages.ts +0 -15
- package/dist/templates/native-go-vue/frontend/src/style.css +0 -27
- package/dist/templates/native-go-vue/frontend/test/apps.test.ts +0 -57
- package/dist/templates/native-go-vue/frontend/test/native-controls.test.ts +0 -27
- package/dist/templates/native-go-vue/frontend/test/portal-settings.test.ts +0 -71
- package/dist/templates/native-go-vue/frontend/test/shell-i18n.test.ts +0 -50
- package/dist/templates/native-go-vue/frontend/test/shell-ui.test.ts +0 -20
- package/dist/templates/native-go-vue/frontend/test/shell.test.ts +0 -30
- package/dist/templates/native-go-vue/frontend/tsconfig.json +0 -1
- package/dist/templates/native-go-vue/frontend/vite.config.ts +0 -10
- package/dist/templates/native-go-vue/gitignore +0 -2
- package/templates/_daemon/fixture_linux_test.go +0 -15
- package/templates/_daemon/fixture_other_test.go +0 -7
- package/templates/_daemon/go.mod +0 -5
- package/templates/_daemon/main.go +0 -611
- package/templates/_daemon/main_test.go +0 -315
- package/templates/_daemon/process_linux.go +0 -55
- package/templates/_daemon/process_linux_test.go +0 -161
- package/templates/_daemon/process_other.go +0 -14
- package/templates/_daemon/testdata/child.go +0 -44
- package/templates/_executor/README.md +0 -318
- package/templates/_executor/anchor.go +0 -156
- package/templates/_executor/anchor_test.go +0 -161
- package/templates/_executor/apppriv_review_test.go +0 -28
- package/templates/_executor/auth_presence_review_test.go +0 -38
- package/templates/_executor/cancel_contract_test.go +0 -236
- package/templates/_executor/cmd/lifecycle/main.go +0 -42
- package/templates/_executor/cookie_review_test.go +0 -27
- package/templates/_executor/copy.go +0 -64
- package/templates/_executor/copy_test.go +0 -88
- package/templates/_executor/digest_review_test.go +0 -120
- package/templates/_executor/directories.go +0 -40
- package/templates/_executor/dsm.go +0 -369
- package/templates/_executor/dsm_test.go +0 -290
- package/templates/_executor/executor.go +0 -735
- package/templates/_executor/executor_test.go +0 -314
- package/templates/_executor/go.mod +0 -5
- package/templates/_executor/identity.go +0 -74
- package/templates/_executor/identity_kernel_linux_test.go +0 -60
- package/templates/_executor/identity_linux.go +0 -82
- package/templates/_executor/identity_security_test.go +0 -43
- package/templates/_executor/internal/lifecycle/lifecycle.go +0 -95
- package/templates/_executor/internal/lifecycle/lifecycle_test.go +0 -232
- package/templates/_executor/internal/taskscript/boot.sh +0 -31
- package/templates/_executor/internal/taskscript/cmd/main.go +0 -19
- package/templates/_executor/internal/taskscript/control.sh +0 -31
- package/templates/_executor/internal/taskscript/tasks.go +0 -44
- package/templates/_executor/json_review_test.go +0 -40
- package/templates/_executor/lifecycle_test.go +0 -97
- package/templates/_executor/link_linux.go +0 -28
- package/templates/_executor/long_running_test.go +0 -530
- package/templates/_executor/main.go +0 -576
- package/templates/_executor/managed.go +0 -117
- package/templates/_executor/managed_test.go +0 -137
- package/templates/_executor/move_linux.go +0 -490
- package/templates/_executor/move_linux_test.go +0 -460
- package/templates/_executor/move_validation.go +0 -46
- package/templates/_executor/move_validation_test.go +0 -187
- package/templates/_executor/operations.go +0 -926
- package/templates/_executor/path_test.go +0 -35
- package/templates/_executor/pid.go +0 -37
- package/templates/_executor/pid_test.go +0 -113
- package/templates/_executor/platform_linux.go +0 -187
- package/templates/_executor/platform_linux_test.go +0 -191
- package/templates/_executor/platform_other.go +0 -76
- package/templates/_executor/process.go +0 -142
- package/templates/_executor/purge_log.go +0 -18
- package/templates/_executor/records.go +0 -242
- package/templates/_executor/scope_cancel_contract_test.go +0 -91
- package/templates/_executor/scope_client.go +0 -37
- package/templates/_executor/scope_contract.go +0 -12
- package/templates/_executor/selected_scope.go +0 -146
- package/templates/_executor/selected_scope_test.go +0 -186
- package/templates/_executor/socket_linux_test.go +0 -46
- package/templates/_executor/status_disabled_test.go +0 -33
- package/templates/_executor/store.go +0 -91
- package/templates/_executor/supervise.go +0 -109
- package/templates/_executor/supervise_test.go +0 -130
- package/templates/_executor/task_race_review_test.go +0 -47
- package/templates/_executor/tasks.go +0 -320
- package/templates/_executor/tasks_dsm71_test.go +0 -114
- package/templates/_executor/tasks_review_test.go +0 -43
- package/templates/_executor/tasks_test.go +0 -223
- package/templates/_executor/testdata/evidence/cleanup.json +0 -24
- package/templates/_executor/testdata/evidence/final-smoke.jsonl +0 -9
- package/templates/_executor/testdata/evidence/kernel-acl.json +0 -6
- package/templates/_executor/testdata/evidence/linux-tests.log +0 -123
- package/templates/_executor/testdata/evidence/live.jsonl +0 -23
- package/templates/_executor/testdata/evidence/storage.json +0 -90
- package/templates/_executor/testdata/evidence/validation.json +0 -55
- package/templates/_executor/testdata/live_probe.py +0 -98
- package/templates/_executor/upgrade_watch_test.go +0 -244
- package/templates/_executor/watch.go +0 -164
- package/templates/_executor/watch_test.go +0 -291
- package/templates/_executor/write_review_linux_test.go +0 -87
- package/templates/_gateway/auth.go +0 -101
- package/templates/_gateway/auth_test.go +0 -216
- package/templates/_gateway/cgi.go +0 -133
- package/templates/_gateway/cgi_test.go +0 -156
- package/templates/_gateway/csrf.go +0 -73
- package/templates/_gateway/csrf_test.go +0 -155
- package/templates/_gateway/directory.go +0 -108
- package/templates/_gateway/directory_test.go +0 -202
- package/templates/_gateway/gateway.go +0 -412
- package/templates/_gateway/gateway_test.go +0 -676
- package/templates/_gateway/go.mod +0 -5
- package/templates/_gateway/groups.go +0 -66
- package/templates/_gateway/main.go +0 -45
- package/templates/_shared/AGENTS.md +0 -146
- package/templates/_shared/CLAUDE.md +0 -1
- package/templates/_shared/GO-LICENSE +0 -27
- package/templates/_shared/GO-PATENTS +0 -22
- package/templates/_shared/LICENSES/TEMPLATE.txt +0 -21
- package/templates/_shared/third-party-notices.mjs +0 -51
- package/templates/binary/LICENSES/GO-LICENSE +0 -27
- package/templates/binary/LICENSES/GO-PATENTS +0 -22
- package/templates/binary/dsm-package.yaml +0 -46
- package/templates/binary/example/main.go +0 -16
- package/templates/binary/gitignore +0 -2
- package/templates/binary/i18n/messages/de.json +0 -4
- package/templates/binary/i18n/messages/en.json +0 -4
- package/templates/binary/i18n/messages/es.json +0 -4
- package/templates/binary/i18n/messages/fr.json +0 -4
- package/templates/binary/i18n/messages/it.json +0 -4
- package/templates/binary/i18n/messages/ja.json +0 -4
- package/templates/binary/i18n/messages/ko.json +0 -4
- package/templates/binary/i18n/messages/zh-CN.json +0 -4
- package/templates/binary/i18n/messages/zh-TW.json +0 -4
- package/templates/binary/ui/app.css +0 -4
- package/templates/binary/ui/app.js +0 -32
- package/templates/compose/compose.yaml +0 -8
- package/templates/compose/synology-app.yaml +0 -16
- package/templates/native-authorization/AuthorizationGate.vue +0 -91
- package/templates/native-authorization/i18n/de.json +0 -37
- package/templates/native-authorization/i18n/en.json +0 -37
- package/templates/native-authorization/i18n/es.json +0 -37
- package/templates/native-authorization/i18n/fr.json +0 -37
- package/templates/native-authorization/i18n/index.ts +0 -15
- package/templates/native-authorization/i18n/it.json +0 -37
- package/templates/native-authorization/i18n/ja.json +0 -37
- package/templates/native-authorization/i18n/ko.json +0 -37
- package/templates/native-authorization/i18n/zh-CN.json +0 -37
- package/templates/native-authorization/i18n/zh-TW.json +0 -37
- package/templates/native-go/README.md +0 -459
- package/templates/native-go/backend/THIRD_PARTY_NOTICES.txt +0 -61
- package/templates/native-go/backend/cmd/app/main.go +0 -95
- package/templates/native-go/backend/cmd/background-worker/main.go +0 -38
- package/templates/native-go/backend/go.mod +0 -9
- package/templates/native-go/backend/go.sum +0 -4
- package/templates/native-go/backend/internal/api/cgi_framing_test.go +0 -32
- package/templates/native-go/backend/internal/api/cookie_review_test.go +0 -28
- package/templates/native-go/backend/internal/api/deadline_test.go +0 -114
- package/templates/native-go/backend/internal/api/dsm-session.go +0 -54
- package/templates/native-go/backend/internal/api/dsm-session_test.go +0 -51
- package/templates/native-go/backend/internal/api/entry_test.go +0 -47
- package/templates/native-go/backend/internal/api/errors.go +0 -47
- package/templates/native-go/backend/internal/api/permissions.go +0 -161
- package/templates/native-go/backend/internal/api/permissions.json +0 -5
- package/templates/native-go/backend/internal/api/permissions_test.go +0 -113
- package/templates/native-go/backend/internal/api/policy_fixture_test.go +0 -8
- package/templates/native-go/backend/internal/api/registry.go +0 -142
- package/templates/native-go/backend/internal/api/registry_test.go +0 -344
- package/templates/native-go/backend/internal/api/resource_limits_test.go +0 -87
- package/templates/native-go/backend/internal/api/sdk-permissions.json +0 -59
- package/templates/native-go/backend/internal/api/sdk_policy_test.go +0 -31
- package/templates/native-go/backend/internal/api/server.go +0 -305
- package/templates/native-go/backend/internal/api/testdata/permissions-cases.json +0 -172
- package/templates/native-go/backend/internal/app/background.go +0 -249
- package/templates/native-go/backend/internal/app/background_none.go +0 -8
- package/templates/native-go/backend/internal/app/background_owner.go +0 -38
- package/templates/native-go/backend/internal/app/background_owner_test.go +0 -163
- package/templates/native-go/backend/internal/app/background_schedule.go +0 -69
- package/templates/native-go/backend/internal/app/background_schedule_test.go +0 -62
- package/templates/native-go/backend/internal/app/background_test.go +0 -320
- package/templates/native-go/backend/internal/app/delegate_config.go +0 -57
- package/templates/native-go/backend/internal/app/delegate_config_test.go +0 -28
- package/templates/native-go/backend/internal/app/delegate_none.go +0 -5
- package/templates/native-go/backend/internal/app/identity.go +0 -20
- package/templates/native-go/backend/internal/app/identity_test.go +0 -15
- package/templates/native-go/backend/internal/app/migrations.go +0 -41
- package/templates/native-go/backend/internal/app/migrations_test.go +0 -41
- package/templates/native-go/backend/internal/app/portal.go +0 -30
- package/templates/native-go/backend/internal/app/portal_test.go +0 -55
- package/templates/native-go/backend/internal/app/root_none.go +0 -9
- package/templates/native-go/backend/internal/app/routes.go +0 -137
- package/templates/native-go/backend/internal/app/routes_test.go +0 -165
- package/templates/native-go/backend/internal/app/session_files.go +0 -9
- package/templates/native-go/backend/internal/app/session_files_test.go +0 -14
- package/templates/native-go/backend/internal/app/shared_folder.go +0 -144
- package/templates/native-go/backend/internal/app/shared_folder_test.go +0 -158
- package/templates/native-go/backend/internal/background/access.go +0 -57
- package/templates/native-go/backend/internal/background/lock_test.go +0 -131
- package/templates/native-go/backend/internal/background/owner_test.go +0 -118
- package/templates/native-go/backend/internal/background/runner.go +0 -185
- package/templates/native-go/backend/internal/background/runner_test.go +0 -209
- package/templates/native-go/backend/internal/background/schedule.go +0 -336
- package/templates/native-go/backend/internal/background/schedule_test.go +0 -368
- package/templates/native-go/backend/internal/background/store.go +0 -825
- package/templates/native-go/backend/internal/background/store_test.go +0 -365
- package/templates/native-go/backend/internal/datamigrate/migrate.go +0 -191
- package/templates/native-go/backend/internal/datamigrate/migrate_test.go +0 -177
- package/templates/native-go/backend/internal/dsm/admin.go +0 -76
- package/templates/native-go/backend/internal/dsm/admin_linux.go +0 -110
- package/templates/native-go/backend/internal/dsm/admin_linux_test.go +0 -105
- package/templates/native-go/backend/internal/dsm/admin_other.go +0 -15
- package/templates/native-go/backend/internal/dsm/admin_test.go +0 -67
- package/templates/native-go/backend/internal/dsm/apppriv.go +0 -30
- package/templates/native-go/backend/internal/dsm/auth.go +0 -94
- package/templates/native-go/backend/internal/dsm/auth_test.go +0 -159
- package/templates/native-go/backend/internal/dsm/bridge_file.go +0 -75
- package/templates/native-go/backend/internal/dsm/bridge_file_test.go +0 -57
- package/templates/native-go/backend/internal/dsm/entry.go +0 -177
- package/templates/native-go/backend/internal/dsm/entry_test.go +0 -315
- package/templates/native-go/backend/internal/dsm/native/admin-aarch64.elf +0 -0
- package/templates/native-go/backend/internal/dsm/native/admin-armv7.elf +0 -0
- package/templates/native-go/backend/internal/dsm/native/admin-x86_64.elf +0 -0
- package/templates/native-go/backend/internal/dsm/native/admin_check.c +0 -28
- package/templates/native-go/backend/internal/dsm/native/apppriv-aarch64.elf +0 -0
- package/templates/native-go/backend/internal/dsm/native/apppriv-armv7.elf +0 -0
- package/templates/native-go/backend/internal/dsm/native/apppriv-x86_64.elf +0 -0
- package/templates/native-go/backend/internal/dsm/native/apppriv_check.c +0 -33
- package/templates/native-go/backend/internal/dsm/native/build.sh +0 -18
- package/templates/native-go/backend/internal/dsm/native/licenses/GLIBC-NOTICES.txt +0 -400
- package/templates/native-go/backend/internal/dsm/native/licenses/LGPL-2.1.txt +0 -501
- package/templates/native-go/backend/internal/dsm/native/licenses/SOURCE.txt +0 -5
- package/templates/native-go/backend/internal/dsm/native/licenses/ZIG-MIT.txt +0 -21
- package/templates/native-go/backend/internal/dsm/native/provenance.json +0 -18
- package/templates/native-go/backend/internal/filestation/browse_test.go +0 -67
- package/templates/native-go/backend/internal/filestation/check_permission.go +0 -71
- package/templates/native-go/backend/internal/filestation/check_permission_test.go +0 -77
- package/templates/native-go/backend/internal/filestation/client.go +0 -337
- package/templates/native-go/backend/internal/filestation/client_test.go +0 -155
- package/templates/native-go/backend/internal/filestation/doc.go +0 -4
- package/templates/native-go/backend/internal/filestation/download_dsm71_test.go +0 -82
- package/templates/native-go/backend/internal/filestation/http.go +0 -70
- package/templates/native-go/backend/internal/filestation/http_test.go +0 -188
- package/templates/native-go/backend/internal/filestation/operations_test.go +0 -206
- package/templates/native-go/backend/internal/filestation/read_file_test.go +0 -89
- package/templates/native-go/backend/internal/filestation/sdk_policy_test.go +0 -39
- package/templates/native-go/backend/internal/filestation/service.go +0 -254
- package/templates/native-go/backend/internal/filestation/service_test.go +0 -74
- package/templates/native-go/backend/internal/filestation/upload_stream.go +0 -76
- package/templates/native-go/backend/internal/filestation/upload_stream_test.go +0 -77
- package/templates/native-go/backend/internal/filestation/write.go +0 -32
- package/templates/native-go/backend/internal/filestation/write_test.go +0 -124
- package/templates/native-go/backend/internal/identity/README.md +0 -59
- package/templates/native-go/backend/internal/identity/dsm.go +0 -115
- package/templates/native-go/backend/internal/identity/http.go +0 -291
- package/templates/native-go/backend/internal/identity/identity_test.go +0 -530
- package/templates/native-go/backend/internal/identity/service.go +0 -159
- package/templates/native-go/backend/internal/identity/store.go +0 -109
- package/templates/native-go/backend/internal/jsonlimits/limits.go +0 -48
- package/templates/native-go/backend/internal/jsonlimits/limits_test.go +0 -52
- package/templates/native-go/backend/internal/portal/portal.go +0 -138
- package/templates/native-go/backend/internal/portal/portal_test.go +0 -89
- package/templates/native-go/dsm-package.yaml +0 -71
- package/templates/native-go/gitignore +0 -1
- package/templates/native-go/i18n/glossary.json +0 -663
- package/templates/native-go/i18n/messages/de.json +0 -29
- package/templates/native-go/i18n/messages/en.json +0 -29
- package/templates/native-go/i18n/messages/es.json +0 -29
- package/templates/native-go/i18n/messages/fr.json +0 -29
- package/templates/native-go/i18n/messages/it.json +0 -29
- package/templates/native-go/i18n/messages/ja.json +0 -29
- package/templates/native-go/i18n/messages/ko.json +0 -29
- package/templates/native-go/i18n/messages/zh-CN.json +0 -29
- package/templates/native-go/i18n/messages/zh-TW.json +0 -29
- package/templates/native-go/ui/app.css +0 -45
- package/templates/native-go/ui/app.js +0 -111
- package/templates/native-go-delegate/DELEGATE.md +0 -263
- package/templates/native-go-delegate/backend/cmd/background-worker/main.go +0 -48
- package/templates/native-go-delegate/backend/internal/app/delegate.go +0 -25
- package/templates/native-go-delegate/backend/internal/app/delegate_on.go +0 -5
- package/templates/native-go-delegate/backend/internal/app/delegate_routes_test.go +0 -31
- package/templates/native-go-delegate/backend/internal/background/delegate_review_test.go +0 -174
- package/templates/native-go-delegate/backend/internal/background/delegated.go +0 -277
- package/templates/native-go-delegate/backend/internal/background/delegated_moves.go +0 -270
- package/templates/native-go-delegate/backend/internal/background/delegated_test.go +0 -34
- package/templates/native-go-delegate/backend/internal/delegate/admission_recovery_test.go +0 -410
- package/templates/native-go-delegate/backend/internal/delegate/busy_review_test.go +0 -15
- package/templates/native-go-delegate/backend/internal/delegate/cancel_contract_test.go +0 -95
- package/templates/native-go-delegate/backend/internal/delegate/client.go +0 -151
- package/templates/native-go-delegate/backend/internal/delegate/client_test.go +0 -214
- package/templates/native-go-delegate/backend/internal/delegate/destination.go +0 -110
- package/templates/native-go-delegate/backend/internal/delegate/destination_state.go +0 -117
- package/templates/native-go-delegate/backend/internal/delegate/destination_state_test.go +0 -60
- package/templates/native-go-delegate/backend/internal/delegate/destination_test.go +0 -116
- package/templates/native-go-delegate/backend/internal/delegate/example.go +0 -81
- package/templates/native-go-delegate/backend/internal/delegate/example_test.go +0 -91
- package/templates/native-go-delegate/backend/internal/delegate/executor_contract_test.go +0 -511
- package/templates/native-go-delegate/backend/internal/delegate/files.go +0 -132
- package/templates/native-go-delegate/backend/internal/delegate/long_running_routes.go +0 -92
- package/templates/native-go-delegate/backend/internal/delegate/long_running_routes_test.go +0 -99
- package/templates/native-go-delegate/backend/internal/delegate/move.go +0 -348
- package/templates/native-go-delegate/backend/internal/delegate/move_test.go +0 -351
- package/templates/native-go-delegate/backend/internal/delegate/operations_list.go +0 -65
- package/templates/native-go-delegate/backend/internal/delegate/operations_list_test.go +0 -114
- package/templates/native-go-delegate/backend/internal/delegate/retry.go +0 -106
- package/templates/native-go-delegate/backend/internal/delegate/retry_test.go +0 -143
- package/templates/native-go-delegate/backend/internal/delegate/service.go +0 -364
- package/templates/native-go-delegate/backend/internal/delegate/service_test.go +0 -318
- package/templates/native-go-delegate/backend/internal/delegate/staging.go +0 -121
- package/templates/native-go-delegate/backend/internal/delegate/status_disabled_test.go +0 -51
- package/templates/native-go-delegate/backend/internal/delegate/testdata/executor_contract.txt +0 -112
- package/templates/native-go-delegate/backend/internal/delegate/transient_contract_test.go +0 -137
- package/templates/native-go-delegate/backend/internal/delegate/wait_cancel_test.go +0 -101
- package/templates/native-go-delegate/backend/internal/delegate/worker.go +0 -225
- package/templates/native-go-delegate/backend/internal/filestation/files.go +0 -43
- package/templates/native-go-delegate/backend/internal/filestation/files_test.go +0 -59
- package/templates/native-go-delegate/frontend/src/CapabilityPanels.vue +0 -37
- package/templates/native-go-delegate/frontend/src/delegate/BackgroundSavePanel.vue +0 -113
- package/templates/native-go-delegate/frontend/src/delegate/DelegatePanel.vue +0 -70
- package/templates/native-go-delegate/frontend/src/delegate/copy.ts +0 -8
- package/templates/native-go-delegate/frontend/src/delegate/i18n/waiting.json +0 -11
- package/templates/native-go-delegate/frontend/test/background-save.test.ts +0 -121
- package/templates/native-go-delegate/frontend/test/delegate.test.ts +0 -145
- package/templates/native-go-delegate/frontend/test/scope-settings.test.ts +0 -49
- package/templates/native-go-delegate/test-frontend.sh +0 -12
- package/templates/native-go-delegate/test.sh +0 -18
- package/templates/native-go-jobs/BACKGROUND.md +0 -108
- package/templates/native-go-jobs/backend/internal/app/background_on.go +0 -7
- package/templates/native-go-jobs/backend/internal/app/background_routes_test.go +0 -90
- package/templates/native-go-jobs/frontend/src/background/BackgroundPanel.vue +0 -170
- package/templates/native-go-jobs/frontend/src/background/i18n/de.json +0 -75
- package/templates/native-go-jobs/frontend/src/background/i18n/en.json +0 -75
- package/templates/native-go-jobs/frontend/src/background/i18n/es.json +0 -75
- package/templates/native-go-jobs/frontend/src/background/i18n/fr.json +0 -75
- package/templates/native-go-jobs/frontend/src/background/i18n/it.json +0 -75
- package/templates/native-go-jobs/frontend/src/background/i18n/ja.json +0 -75
- package/templates/native-go-jobs/frontend/src/background/i18n/ko.json +0 -75
- package/templates/native-go-jobs/frontend/src/background/i18n/zh-CN.json +0 -75
- package/templates/native-go-jobs/frontend/src/background/i18n/zh-TW.json +0 -75
- package/templates/native-go-jobs/frontend/src/background/i18n.ts +0 -19
- package/templates/native-go-jobs/frontend/src/background/picker-provider.ts +0 -12
- package/templates/native-go-jobs/frontend/src/background/request-key.ts +0 -5
- package/templates/native-go-jobs/frontend/test/background.test.ts +0 -205
- package/templates/native-go-root-ops/backend/internal/app/executor.go +0 -140
- package/templates/native-go-root-ops/backend/internal/app/executor_test.go +0 -117
- package/templates/native-go-root-ops/root/whoami.sh +0 -3
- package/templates/native-go-vue/README.md +0 -47
- package/templates/native-go-vue/frontend/DESIGN.md +0 -61
- package/templates/native-go-vue/frontend/package-lock.json +0 -2530
- package/templates/native-go-vue/frontend/package.json +0 -6
- package/templates/native-go-vue/frontend/src/App.vue +0 -96
- package/templates/native-go-vue/frontend/src/CapabilityPanels.vue +0 -6
- package/templates/native-go-vue/frontend/src/context.ts +0 -78
- package/templates/native-go-vue/frontend/src/delegate/ExecutorSettings.vue +0 -70
- package/templates/native-go-vue/frontend/src/delegate/catalogs.ts +0 -11
- package/templates/native-go-vue/frontend/src/delegate/copy.test.ts +0 -12
- package/templates/native-go-vue/frontend/src/delegate/copy.ts +0 -4
- package/templates/native-go-vue/frontend/src/delegate/executor-settings.test.ts +0 -23
- package/templates/native-go-vue/frontend/src/delegate/executor-setup.ts +0 -24
- package/templates/native-go-vue/frontend/src/delegate/facade.test.ts +0 -100
- package/templates/native-go-vue/frontend/src/delegate/facade.ts +0 -85
- package/templates/native-go-vue/frontend/src/delegate/i18n/de.json +0 -47
- package/templates/native-go-vue/frontend/src/delegate/i18n/en.json +0 -47
- package/templates/native-go-vue/frontend/src/delegate/i18n/es.json +0 -47
- package/templates/native-go-vue/frontend/src/delegate/i18n/fr.json +0 -47
- package/templates/native-go-vue/frontend/src/delegate/i18n/it.json +0 -47
- package/templates/native-go-vue/frontend/src/delegate/i18n/ja.json +0 -47
- package/templates/native-go-vue/frontend/src/delegate/i18n/ko.json +0 -47
- package/templates/native-go-vue/frontend/src/delegate/i18n/save/de.json +0 -42
- package/templates/native-go-vue/frontend/src/delegate/i18n/save/en.json +0 -42
- package/templates/native-go-vue/frontend/src/delegate/i18n/save/es.json +0 -42
- package/templates/native-go-vue/frontend/src/delegate/i18n/save/fr.json +0 -42
- package/templates/native-go-vue/frontend/src/delegate/i18n/save/it.json +0 -42
- package/templates/native-go-vue/frontend/src/delegate/i18n/save/ja.json +0 -42
- package/templates/native-go-vue/frontend/src/delegate/i18n/save/ko.json +0 -42
- package/templates/native-go-vue/frontend/src/delegate/i18n/save/zh-CN.json +0 -42
- package/templates/native-go-vue/frontend/src/delegate/i18n/save/zh-TW.json +0 -42
- package/templates/native-go-vue/frontend/src/delegate/i18n/zh-CN.json +0 -47
- package/templates/native-go-vue/frontend/src/delegate/i18n/zh-TW.json +0 -47
- package/templates/native-go-vue/frontend/src/delegate/long-running.ts +0 -57
- package/templates/native-go-vue/frontend/src/delegate/save-copy.test.ts +0 -12
- package/templates/native-go-vue/frontend/src/delegate/save-copy.ts +0 -24
- package/templates/native-go-vue/frontend/src/delegate/scoped-picker.test.ts +0 -12
- package/templates/native-go-vue/frontend/src/delegate/scoped-picker.ts +0 -21
- package/templates/native-go-vue/frontend/src/files/FileBrowser.vue +0 -131
- package/templates/native-go-vue/frontend/src/files/FilesPage.vue +0 -35
- package/templates/native-go-vue/frontend/src/files/files.test.ts +0 -100
- package/templates/native-go-vue/frontend/src/files/provider.test.ts +0 -48
- package/templates/native-go-vue/frontend/src/files/transfers.test.ts +0 -27
- package/templates/native-go-vue/frontend/src/files/transfers.ts +0 -25
- package/templates/native-go-vue/frontend/src/i18n/de.json +0 -20
- package/templates/native-go-vue/frontend/src/i18n/en.json +0 -20
- package/templates/native-go-vue/frontend/src/i18n/es.json +0 -20
- package/templates/native-go-vue/frontend/src/i18n/fr.json +0 -20
- package/templates/native-go-vue/frontend/src/i18n/it.json +0 -20
- package/templates/native-go-vue/frontend/src/i18n/ja.json +0 -20
- package/templates/native-go-vue/frontend/src/i18n/ko.json +0 -20
- package/templates/native-go-vue/frontend/src/i18n/zh-CN.json +0 -20
- package/templates/native-go-vue/frontend/src/i18n/zh-TW.json +0 -20
- package/templates/native-go-vue/frontend/src/i18n.ts +0 -13
- package/templates/native-go-vue/frontend/src/identity/DESIGN.md +0 -46
- package/templates/native-go-vue/frontend/src/identity/LoginPage.vue +0 -78
- package/templates/native-go-vue/frontend/src/identity/i18n/de.json +0 -27
- package/templates/native-go-vue/frontend/src/identity/i18n/en.json +0 -27
- package/templates/native-go-vue/frontend/src/identity/i18n/es.json +0 -27
- package/templates/native-go-vue/frontend/src/identity/i18n/fr.json +0 -27
- package/templates/native-go-vue/frontend/src/identity/i18n/it.json +0 -27
- package/templates/native-go-vue/frontend/src/identity/i18n/ja.json +0 -27
- package/templates/native-go-vue/frontend/src/identity/i18n/ko.json +0 -27
- package/templates/native-go-vue/frontend/src/identity/i18n/zh-CN.json +0 -27
- package/templates/native-go-vue/frontend/src/identity/i18n/zh-TW.json +0 -27
- package/templates/native-go-vue/frontend/src/identity/i18n.ts +0 -14
- package/templates/native-go-vue/frontend/src/identity/login.test.ts +0 -32
- package/templates/native-go-vue/frontend/src/identity/session.test.ts +0 -33
- package/templates/native-go-vue/frontend/src/identity/session.ts +0 -74
- package/templates/native-go-vue/frontend/src/main.ts +0 -32
- package/templates/native-go-vue/frontend/src/nas/NasPicker.vue +0 -42
- package/templates/native-go-vue/frontend/src/nas/contract.ts +0 -12
- package/templates/native-go-vue/frontend/src/nas/destination.test.ts +0 -48
- package/templates/native-go-vue/frontend/src/nas/i18n/files/de.json +0 -41
- package/templates/native-go-vue/frontend/src/nas/i18n/files/en.json +0 -41
- package/templates/native-go-vue/frontend/src/nas/i18n/files/es.json +0 -41
- package/templates/native-go-vue/frontend/src/nas/i18n/files/fr.json +0 -41
- package/templates/native-go-vue/frontend/src/nas/i18n/files/it.json +0 -41
- package/templates/native-go-vue/frontend/src/nas/i18n/files/ja.json +0 -41
- package/templates/native-go-vue/frontend/src/nas/i18n/files/ko.json +0 -41
- package/templates/native-go-vue/frontend/src/nas/i18n/files/zh-CN.json +0 -41
- package/templates/native-go-vue/frontend/src/nas/i18n/files/zh-TW.json +0 -41
- package/templates/native-go-vue/frontend/src/nas/i18n.ts +0 -2
- package/templates/native-go-vue/frontend/src/nas/locale.ts +0 -24
- package/templates/native-go-vue/frontend/src/nas/provider.ts +0 -50
- package/templates/native-go-vue/frontend/src/nas/use-request.ts +0 -18
- package/templates/native-go-vue/frontend/src/portal/PortalSettings.vue +0 -39
- package/templates/native-go-vue/frontend/src/shell/AppShell.vue +0 -48
- package/templates/native-go-vue/frontend/src/shell/i18n/de.json +0 -4
- package/templates/native-go-vue/frontend/src/shell/i18n/en.json +0 -4
- package/templates/native-go-vue/frontend/src/shell/i18n/es.json +0 -4
- package/templates/native-go-vue/frontend/src/shell/i18n/fr.json +0 -4
- package/templates/native-go-vue/frontend/src/shell/i18n/it.json +0 -4
- package/templates/native-go-vue/frontend/src/shell/i18n/ja.json +0 -4
- package/templates/native-go-vue/frontend/src/shell/i18n/ko.json +0 -4
- package/templates/native-go-vue/frontend/src/shell/i18n/zh-CN.json +0 -4
- package/templates/native-go-vue/frontend/src/shell/i18n/zh-TW.json +0 -4
- package/templates/native-go-vue/frontend/src/shell/i18n.ts +0 -17
- package/templates/native-go-vue/frontend/src/shell/pages.ts +0 -15
- package/templates/native-go-vue/frontend/src/style.css +0 -27
- package/templates/native-go-vue/frontend/test/apps.test.ts +0 -57
- package/templates/native-go-vue/frontend/test/native-controls.test.ts +0 -27
- package/templates/native-go-vue/frontend/test/portal-settings.test.ts +0 -71
- package/templates/native-go-vue/frontend/test/shell-i18n.test.ts +0 -50
- package/templates/native-go-vue/frontend/test/shell-ui.test.ts +0 -20
- package/templates/native-go-vue/frontend/test/shell.test.ts +0 -30
- package/templates/native-go-vue/frontend/tsconfig.json +0 -1
- package/templates/native-go-vue/frontend/vite.config.ts +0 -10
- package/templates/native-go-vue/gitignore +0 -2
- /package/{dist/templates/_daemon → assets/go/daemon}/fixture_linux_test.go +0 -0
- /package/{dist/templates/_daemon → assets/go/daemon}/fixture_other_test.go +0 -0
- /package/{dist/templates/_daemon → assets/go/daemon}/go.mod +0 -0
- /package/{dist/templates/_daemon → assets/go/daemon}/main.go +0 -0
- /package/{dist/templates/_daemon → assets/go/daemon}/main_test.go +0 -0
- /package/{dist/templates/_daemon → assets/go/daemon}/process_linux.go +0 -0
- /package/{dist/templates/_daemon → assets/go/daemon}/process_linux_test.go +0 -0
- /package/{dist/templates/_daemon → assets/go/daemon}/process_other.go +0 -0
- /package/{dist/templates/_daemon → assets/go/daemon}/testdata/child.go +0 -0
- /package/{dist/templates/_gateway → assets/go/gateway}/auth.go +0 -0
- /package/{dist/templates/_gateway → assets/go/gateway}/auth_test.go +0 -0
- /package/{dist/templates/_gateway → assets/go/gateway}/cgi.go +0 -0
- /package/{dist/templates/_gateway → assets/go/gateway}/cgi_test.go +0 -0
- /package/{dist/templates/_gateway → assets/go/gateway}/csrf.go +0 -0
- /package/{dist/templates/_gateway → assets/go/gateway}/csrf_test.go +0 -0
- /package/{dist/templates/_gateway → assets/go/gateway}/directory.go +0 -0
- /package/{dist/templates/_gateway → assets/go/gateway}/directory_test.go +0 -0
- /package/{dist/templates/_gateway → assets/go/gateway}/gateway.go +0 -0
- /package/{dist/templates/_gateway → assets/go/gateway}/gateway_test.go +0 -0
- /package/{dist/templates/_gateway → assets/go/gateway}/go.mod +0 -0
- /package/{dist/templates/_gateway → assets/go/gateway}/groups.go +0 -0
- /package/{dist/templates/_gateway → assets/go/gateway}/main.go +0 -0
- /package/{dist/templates/_shared → assets/licenses}/GO-LICENSE +0 -0
- /package/{dist/templates/_shared → assets/licenses}/GO-PATENTS +0 -0
- /package/{dist/templates/_shared/LICENSES → assets/licenses}/TEMPLATE.txt +0 -0
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
// @vitest-environment jsdom
|
|
2
|
-
// @vitest-environment-options {"url":"https://nas.test"}
|
|
3
|
-
import {expect, test, vi} from 'vitest'
|
|
4
|
-
import {nextTick} from 'vue'
|
|
5
|
-
import {mount} from '../main'
|
|
6
|
-
import type {Context} from '../context'
|
|
7
|
-
async function settle(){for(let i=0;i<20;i++){await Promise.resolve();await nextTick()}}
|
|
8
|
-
function fill(root: HTMLElement, selector: string, value: string){const field=root.querySelector<HTMLInputElement>(selector)!;field.value=value;field.dispatchEvent(new Event('input',{bubbles:true}))}
|
|
9
|
-
function button(root: HTMLElement, text: string){return Array.from(root.querySelectorAll<HTMLButtonElement>('button')).find(b=>b.textContent?.trim()===text)!}
|
|
10
|
-
test('OTP focuses the enabled code field and successful login loads app data',async()=>{
|
|
11
|
-
let signedIn=false
|
|
12
|
-
const call=vi.fn(async(method: string, params?: Record<string, unknown>)=>{
|
|
13
|
-
if(method==='identity.status')return {enabled:true}
|
|
14
|
-
if(method==='identity.session')throw {code:'session_required'}
|
|
15
|
-
if(method==='identity.login') {if(!params?.otp)throw {code:'otp_required'};signedIn=true;return {user:'alice',uid:'1205',expiresAt:new Date(Date.now()+900000).toISOString()}}
|
|
16
|
-
if(method==='identity.logout'){signedIn=false;return {loggedOut:true}}
|
|
17
|
-
if(!signedIn)throw {code:'session_required'}
|
|
18
|
-
if(method==='app.status')return {package:'Test package',version:'1',user:'alice',admin:false}
|
|
19
|
-
if(method==='greeting.get')return {text:'Hello Alice'}
|
|
20
|
-
return {}
|
|
21
|
-
})
|
|
22
|
-
const ctx={locale:'en',call,reopen(){return ()=>{}}} as unknown as Context
|
|
23
|
-
const root=document.createElement('div');document.body.append(root);const app=mount(root,ctx)
|
|
24
|
-
try{
|
|
25
|
-
await settle();fill(root,'input[autocomplete="username"]','alice');fill(root,'input[type="password"]','password');await settle();button(root,'Sign in').click();await settle()
|
|
26
|
-
const otp=root.querySelector<HTMLInputElement>('input[autocomplete="one-time-code"]')!
|
|
27
|
-
expect(otp.disabled).toBe(false);expect(document.activeElement).toBe(otp)
|
|
28
|
-
fill(root,'input[autocomplete="one-time-code"]','123456');await settle();button(root,'Verify and sign in').click();await settle()
|
|
29
|
-
expect(root.textContent).toContain('Test package');expect(root.querySelector('textarea')).toBeNull();expect(call).not.toHaveBeenCalledWith('greeting.get',undefined)
|
|
30
|
-
button(root,'Sign out').click();await settle();expect(root.querySelector('textarea')).toBeNull();expect(root.textContent).not.toContain('alice');expect(root.querySelector<HTMLInputElement>('input[type="password"]')?.value).toBe('')
|
|
31
|
-
}finally{app.unmount();root.remove()}
|
|
32
|
-
})
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
// @vitest-environment jsdom
|
|
2
|
-
import {afterEach, expect, test, vi} from 'vitest'
|
|
3
|
-
import {createSession} from './session'
|
|
4
|
-
import type {Context} from '../context'
|
|
5
|
-
afterEach(()=>vi.useRealTimers())
|
|
6
|
-
function context(call: Context['call']){return {call} as Context}
|
|
7
|
-
test('discovers disabled identity without changing existing transport',async()=>{
|
|
8
|
-
const call=vi.fn().mockRejectedValue({code:'unknown_method'})
|
|
9
|
-
const session=createSession(context(call));await session.start();expect(session.enabled.value).toBe(false);expect(session.ready.value).toBe(true);session.dispose()
|
|
10
|
-
})
|
|
11
|
-
test('an Application Privileges refusal keeps the DSM shell instead of offering sign-in',async()=>{
|
|
12
|
-
const call=vi.fn().mockRejectedValue({code:'app_privilege_denied'})
|
|
13
|
-
const session=createSession(context(call));await session.start();expect(session.enabled.value).toBe(false);expect(session.notice.value).toBe('');session.dispose()
|
|
14
|
-
})
|
|
15
|
-
test('bootstraps, expires and returns to login after a business rejection',async()=>{
|
|
16
|
-
vi.useFakeTimers();const expiresAt=new Date(Date.now()+60000).toISOString()
|
|
17
|
-
const call=vi.fn().mockResolvedValueOnce({enabled:true}).mockResolvedValueOnce({user:'alice',uid:'1205',expiresAt})
|
|
18
|
-
const session=createSession(context(call));await session.start();expect(session.subject.value?.user).toBe('alice')
|
|
19
|
-
call.mockRejectedValueOnce({code:'session_required'})
|
|
20
|
-
await expect(session.call('greeting.get')).rejects.toEqual({code:'session_required'});expect(session.subject.value).toBeUndefined()
|
|
21
|
-
call.mockResolvedValueOnce({user:'alice',uid:'1205',expiresAt});await session.login('alice','password','123456');expect(session.subject.value?.user).toBe('alice')
|
|
22
|
-
await vi.advanceTimersByTimeAsync(60000);expect(session.subject.value).toBeUndefined();session.dispose()
|
|
23
|
-
})
|
|
24
|
-
test('disposal ignores pending session responses and cancels timers',async()=>{
|
|
25
|
-
let resolve: (value:unknown)=>void=()=>{};const call=vi.fn().mockResolvedValueOnce({enabled:true}).mockImplementationOnce(()=>new Promise(r=>{resolve=r}))
|
|
26
|
-
const session=createSession(context(call));const pending=session.start();await Promise.resolve();session.dispose();resolve({user:'alice',expiresAt:new Date(Date.now()+60000).toISOString()});await pending;expect(session.subject.value).toBeUndefined()
|
|
27
|
-
})
|
|
28
|
-
test('OTP errors remain actionable and logout clears the identity',async()=>{
|
|
29
|
-
const call=vi.fn().mockResolvedValueOnce({enabled:true}).mockRejectedValueOnce({code:'session_required'})
|
|
30
|
-
const session=createSession(context(call));await session.start();call.mockRejectedValueOnce({code:'otp_required'})
|
|
31
|
-
await expect(session.login('alice','p','')).rejects.toEqual({code:'otp_required'});expect(session.subject.value).toBeUndefined()
|
|
32
|
-
call.mockResolvedValueOnce({user:'alice',expiresAt:new Date(Date.now()+60000).toISOString()});await session.login('alice','p','123456');call.mockResolvedValueOnce({loggedOut:true});await session.logout();expect(session.subject.value).toBeUndefined();session.dispose()
|
|
33
|
-
})
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
import {ref} from 'vue'
|
|
2
|
-
import type {Context} from '../context'
|
|
3
|
-
import type {IdentityNotice} from './i18n'
|
|
4
|
-
|
|
5
|
-
export interface SessionSubject {user: string; uid: string; expiresAt: string}
|
|
6
|
-
export function createSession(ctx: Context) {
|
|
7
|
-
const enabled = ref(false)
|
|
8
|
-
const ready = ref(false)
|
|
9
|
-
const subject = ref<SessionSubject>()
|
|
10
|
-
const notice = ref<IdentityNotice>('')
|
|
11
|
-
let disposed = false
|
|
12
|
-
let revision = 0
|
|
13
|
-
let expiry: ReturnType<typeof setTimeout> | undefined
|
|
14
|
-
let poll: ReturnType<typeof setTimeout> | undefined
|
|
15
|
-
function cancelTimers() {clearTimeout(expiry); clearTimeout(poll)}
|
|
16
|
-
function clear(message: IdentityNotice = '') {revision++; cancelTimers(); subject.value = undefined; notice.value = message}
|
|
17
|
-
function accept(value: SessionSubject) {
|
|
18
|
-
if (disposed) return
|
|
19
|
-
const remaining = Date.parse(value.expiresAt) - Date.now()
|
|
20
|
-
if (!Number.isFinite(remaining) || remaining <= 0) {clear('expired'); return}
|
|
21
|
-
cancelTimers(); subject.value = value; notice.value = ''
|
|
22
|
-
expiry = setTimeout(() => clear('expired'), remaining)
|
|
23
|
-
const current = revision
|
|
24
|
-
poll = setTimeout(async () => {
|
|
25
|
-
try {const next = await ctx.call<SessionSubject>('identity.session'); if (!disposed && revision === current) accept(next)}
|
|
26
|
-
catch {if (!disposed && revision === current) clear('expired')}
|
|
27
|
-
}, Math.min(60000, remaining))
|
|
28
|
-
}
|
|
29
|
-
async function start() {
|
|
30
|
-
try {
|
|
31
|
-
const status = await ctx.call<{enabled: boolean}>('identity.status')
|
|
32
|
-
if (disposed) return
|
|
33
|
-
enabled.value = status.enabled === true
|
|
34
|
-
if (enabled.value) {
|
|
35
|
-
try {accept(await ctx.call<SessionSubject>('identity.session', {bootstrap: true}))}
|
|
36
|
-
catch {if (!disposed) clear()}
|
|
37
|
-
}
|
|
38
|
-
} catch (e) {
|
|
39
|
-
// Existing templates have no identity transport and retain their DSM shell.
|
|
40
|
-
const code = (e as {code?: string})?.code
|
|
41
|
-
enabled.value = !['unknown_method', 'admin_required', 'app_privilege_denied', 'session_required'].includes(code || '')
|
|
42
|
-
if (enabled.value) notice.value = 'unavailable'
|
|
43
|
-
} finally {if (!disposed) ready.value = true}
|
|
44
|
-
}
|
|
45
|
-
async function call<T = unknown>(method: string, params?: Record<string, unknown>): Promise<T> {
|
|
46
|
-
const current = revision
|
|
47
|
-
try {
|
|
48
|
-
const result = await ctx.call<T>(method, params)
|
|
49
|
-
if (disposed || (enabled.value && current !== revision)) throw {code: 'session_required'}
|
|
50
|
-
return result
|
|
51
|
-
}
|
|
52
|
-
catch (e) {
|
|
53
|
-
const code = (e as {code?: string})?.code
|
|
54
|
-
if (!disposed && current === revision && enabled.value && ['session_required', 'session_revalidation_required'].includes(code || '')) {
|
|
55
|
-
clear(code === 'session_revalidation_required' ? 'revalidate' : 'expired')
|
|
56
|
-
}
|
|
57
|
-
throw e
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
async function login(account: string, password: string, otp: string) {
|
|
61
|
-
const value = await ctx.call<SessionSubject>('identity.login', {account, password, otp})
|
|
62
|
-
if (!disposed) {revision++; accept(value)}
|
|
63
|
-
}
|
|
64
|
-
async function bootstrap() {
|
|
65
|
-
const value = await ctx.call<SessionSubject>('identity.session', {bootstrap: true})
|
|
66
|
-
if (!disposed) {revision++; accept(value)}
|
|
67
|
-
}
|
|
68
|
-
async function logout() {
|
|
69
|
-
await ctx.call('identity.logout'); if (!disposed) clear()
|
|
70
|
-
}
|
|
71
|
-
function dispose() {disposed = true; clear()}
|
|
72
|
-
return {enabled, ready, subject, notice, start, call, login, bootstrap, logout, dispose}
|
|
73
|
-
}
|
|
74
|
-
export type IdentitySession = ReturnType<typeof createSession>
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import {createApp} from 'vue'
|
|
2
|
-
import App from './App.vue'
|
|
3
|
-
import {ExecutorSetupKey} from './delegate/executor-setup'
|
|
4
|
-
import type {Context} from './context'
|
|
5
|
-
import '@synopackageland/ui/themes/dsm7-embedded.css'
|
|
6
|
-
import './style.css'
|
|
7
|
-
|
|
8
|
-
let mountSequence = 0
|
|
9
|
-
export function mount(root: HTMLElement, ctx: Context) {
|
|
10
|
-
const app = createApp(App, {ctx})
|
|
11
|
-
app.provide(ExecutorSetupKey, ctx.executor ?? {
|
|
12
|
-
async status() {return {state: 'unsupported'}},
|
|
13
|
-
async authorize() {return {state: 'unsupported'}},
|
|
14
|
-
async control() {return {state: 'unsupported'}},
|
|
15
|
-
})
|
|
16
|
-
// Include the generated package ID, an instance counter and randomness even
|
|
17
|
-
// across separately loaded bundles. getRandomValues also works on DSM HTTP.
|
|
18
|
-
app.config.idPrefix = `__PACKAGE__-${++mountSequence}-${crypto.getRandomValues(new Uint32Array(4)).join('-')}`
|
|
19
|
-
const hadRootClass = root.classList.contains('dsmapp-vue-root')
|
|
20
|
-
root.classList.add('dsmapp-vue-root')
|
|
21
|
-
app.mount(root)
|
|
22
|
-
return {unmount() {app.unmount(); if(!hadRootClass) root.classList.remove('dsmapp-vue-root')}}
|
|
23
|
-
}
|
|
24
|
-
// Register with the existing per-package DSM window loader. Never share a
|
|
25
|
-
// singleton app or user/session state between different mount calls.
|
|
26
|
-
const script = document.currentScript as HTMLScriptElement | null
|
|
27
|
-
const packageID = script?.getAttribute('data-package')
|
|
28
|
-
const host = window as unknown as {DsmPackageApps: Record<string, {mount: typeof mount}>}
|
|
29
|
-
if (packageID) {
|
|
30
|
-
host.DsmPackageApps = host.DsmPackageApps || {}
|
|
31
|
-
host.DsmPackageApps[packageID] = {mount}
|
|
32
|
-
}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
import {computed,onBeforeUnmount,ref,watch} from 'vue'
|
|
3
|
-
import {Button,Callout,Dialog} from '@synopackageland/ui'
|
|
4
|
-
import FileBrowser from '../files/FileBrowser.vue'
|
|
5
|
-
import type {NasProvider} from './contract'
|
|
6
|
-
import {nasCopy} from './locale'
|
|
7
|
-
import type {DestinationGrant,DestinationSelection} from '../delegate/long-running'
|
|
8
|
-
import {saveCopy,saveError} from '../delegate/save-copy'
|
|
9
|
-
const props=defineProps<{open:boolean;locale:string;provider:NasProvider;mode:'folder'|'file';title?:string;description?:string;destination?:DestinationSelection}>()
|
|
10
|
-
const emit=defineEmits<{'update:open':[value:boolean];selected:[path:string];authorized:[grant:DestinationGrant]}>()
|
|
11
|
-
const selected=ref<string>(),copy=computed(()=>nasCopy(props.locale)),save=computed(()=>saveCopy(props.locale)),busy=ref(false),error=ref<unknown>()
|
|
12
|
-
let generation=0,disposed=false
|
|
13
|
-
watch(()=>props.open,()=>{generation++;selected.value=undefined;error.value=undefined})
|
|
14
|
-
onBeforeUnmount(()=>{disposed=true;generation++})
|
|
15
|
-
function close(){if(busy.value)return;selected.value=undefined;emit('update:open',false)}
|
|
16
|
-
async function confirm(){
|
|
17
|
-
const path=selected.value,destination=props.destination,version=generation
|
|
18
|
-
if(!path||busy.value||!props.open||disposed||(destination&&props.mode!=='folder'))return
|
|
19
|
-
if(!destination){emit('selected',path);close();return}
|
|
20
|
-
busy.value=true;error.value=undefined
|
|
21
|
-
try{
|
|
22
|
-
const grant=await destination.selectDestination({key:destination.key,path})
|
|
23
|
-
if(disposed||version!==generation)return
|
|
24
|
-
if(!grant||typeof grant.id!=='string'||!grant.id||typeof grant.username!=='string'||!grant.username||grant.path!==path||grant.key!==destination.key||grant.lifetime!=='until-revoked')throw {code:'commit-uncertain'}
|
|
25
|
-
emit('authorized',grant);busy.value=false;close()
|
|
26
|
-
}catch(e){if(!disposed&&version===generation)error.value=e}
|
|
27
|
-
finally{if(!disposed)busy.value=false}
|
|
28
|
-
}
|
|
29
|
-
</script>
|
|
30
|
-
<template>
|
|
31
|
-
<Dialog :open="open" :title="title??(mode==='folder'?copy.choose:copy.chooseFile)" :description="description??copy.ownPermissions" :close-label="copy.close" :show-close="!busy" width="800px" @escape-key-down="event=>{if(busy)event.preventDefault()}" @interact-outside="event=>{if(busy)event.preventDefault()}" @update:open="value=>{if(!value)close()}">
|
|
32
|
-
<p v-if="destination" class="save-consent">{{ save.selection }}</p>
|
|
33
|
-
<Callout v-if="error" tone="danger" role="alert" class="save-message">{{ saveError(error,save) }}</Callout>
|
|
34
|
-
<div class="nas-picker-content" :aria-busy="busy" :inert="busy"><FileBrowser v-if="open" :provider="provider" :locale="locale" :mode="mode" @selected="selected=$event" /></div>
|
|
35
|
-
<template #footer><Button variant="secondary" :disabled="busy" @click="close">{{ copy.cancel }}</Button><Button variant="primary" :disabled="!selected||busy||!!destination&&mode!=='folder'" @click="confirm">{{ copy.confirm }}</Button></template>
|
|
36
|
-
</Dialog>
|
|
37
|
-
</template>
|
|
38
|
-
<style scoped>
|
|
39
|
-
.nas-picker-content { max-height: 65vh; overflow: auto; }
|
|
40
|
-
.save-message {--ui-text-secondary:var(--ui-text);}
|
|
41
|
-
.save-consent {color:var(--ui-text);margin-block:0 var(--ui-space-4,16px);}
|
|
42
|
-
</style>
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export interface NasEntry {name:string; path:string; isDir:boolean; bytes?:number}
|
|
2
|
-
export interface NasPage {entries:NasEntry[]; total:number; offset:number; nextOffset?:number}
|
|
3
|
-
export interface ListOptions {offset?:number;limit?:number;sortBy?:'name'|'size'|'type'|'mtime';sortDirection?:'ASC'|'DESC'}
|
|
4
|
-
export interface NasProvider {
|
|
5
|
-
download?(path:string):void
|
|
6
|
-
upload?(parent:string,file:File,signal:AbortSignal):Promise<void>
|
|
7
|
-
shares(offset:number,signal:AbortSignal):Promise<NasPage>
|
|
8
|
-
list(path:string,options:ListOptions,signal:AbortSignal):Promise<NasPage>
|
|
9
|
-
info(path:string,signal:AbortSignal):Promise<NasEntry>
|
|
10
|
-
createFolder(parent:string,name:string,signal:AbortSignal):Promise<void>
|
|
11
|
-
dispose():void
|
|
12
|
-
}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
// @vitest-environment jsdom
|
|
2
|
-
import {afterEach,expect,test,vi} from 'vitest'
|
|
3
|
-
import {createApp,h,nextTick,ref} from 'vue'
|
|
4
|
-
import {AppRoot,ConfigProvider} from '@synopackageland/ui'
|
|
5
|
-
import NasPicker from './NasPicker.vue'
|
|
6
|
-
import {createNasProvider} from './provider'
|
|
7
|
-
import {nasCopy} from './locale'
|
|
8
|
-
const cleanup:Array<()=>void>=[]
|
|
9
|
-
afterEach(()=>cleanup.splice(0).forEach(fn=>fn()))
|
|
10
|
-
async function settle(){for(let i=0;i<30;i++){await Promise.resolve();await nextTick()}}
|
|
11
|
-
const grant={id:'d1',key:'save',path:'/home',username:'normal1',lifetime:'until-revoked' as const}
|
|
12
|
-
function fixture(selectDestination:any,mode:'folder'|'file'='folder'){
|
|
13
|
-
const root=document.createElement('div');document.body.append(root)
|
|
14
|
-
const selected=vi.fn(),authorized=vi.fn(),open=ref(true)
|
|
15
|
-
const provider=createNasProvider({call:vi.fn(async()=>({shares:[{name:'home',path:'/home',isdir:true}],offset:0,total:1})) as any})
|
|
16
|
-
const app=createApp({render:()=>h(ConfigProvider,{locale:'en'},()=>h(AppRoot,{},()=>h(NasPicker,{provider,locale:'en',mode,open:open.value,destination:{key:'save',selectDestination},onSelected:selected,onAuthorized:authorized,'onUpdate:open':v=>open.value=v})))})
|
|
17
|
-
app.config.idPrefix='destination-test';app.mount(root)
|
|
18
|
-
cleanup.push(()=>{app.unmount();provider.dispose();root.remove()})
|
|
19
|
-
return {root,open,selected,authorized,app}
|
|
20
|
-
}
|
|
21
|
-
function button(root:HTMLElement,label:string){const b=Array.from(root.querySelectorAll('button')).find(n=>n.textContent?.trim()===label||n.getAttribute('aria-label')===label);expect(b,label).toBeTruthy();return b!}
|
|
22
|
-
async function select(root:HTMLElement){await settle();button(root,'Select home').click();await settle();button(root,nasCopy('en').confirm).click();await settle()}
|
|
23
|
-
test('destination confirmation authorizes once with its manifest key, without a second consent dialog',async()=>{
|
|
24
|
-
const call=vi.fn(async()=>grant),f=fixture(call);await settle()
|
|
25
|
-
expect(f.root.textContent).toContain('after you sign out')
|
|
26
|
-
await select(f.root)
|
|
27
|
-
expect(call).toHaveBeenCalledExactlyOnceWith({key:'save',path:'/home'})
|
|
28
|
-
expect(f.authorized).toHaveBeenCalledExactlyOnceWith(grant)
|
|
29
|
-
expect(f.selected).not.toHaveBeenCalled();expect(f.open.value).toBe(false)
|
|
30
|
-
})
|
|
31
|
-
test('a rejected write/session check keeps the picker open and never emits a path or a grant',async()=>{
|
|
32
|
-
const f=fixture(vi.fn(async()=>{throw {code:'PERMISSION_DENIED',message:'secret SID'}}));await select(f.root)
|
|
33
|
-
expect(f.open.value).toBe(true);expect(f.selected).not.toHaveBeenCalled();expect(f.authorized).not.toHaveBeenCalled()
|
|
34
|
-
expect(f.root.querySelector('[role=alert]')?.textContent).toContain('permission')
|
|
35
|
-
expect(f.root.textContent).not.toContain('secret SID')
|
|
36
|
-
})
|
|
37
|
-
test('only folder destinations can authorize; a malformed grant is never reported as successful',async()=>{
|
|
38
|
-
const call=vi.fn(async()=>({...grant,path:'/elsewhere'})),f=fixture(call);await select(f.root)
|
|
39
|
-
expect(f.open.value).toBe(true);expect(f.authorized).not.toHaveBeenCalled()
|
|
40
|
-
const fileCall=vi.fn(async()=>grant),file=fixture(fileCall,'file');await settle()
|
|
41
|
-
expect(button(file.root,nasCopy('en').confirm).disabled).toBe(true);expect(fileCall).not.toHaveBeenCalled()
|
|
42
|
-
})
|
|
43
|
-
test('pending authorization prevents duplicate confirmation and ignores a late result after unmount',async()=>{
|
|
44
|
-
let resolve!:(value:typeof grant)=>void
|
|
45
|
-
const call=vi.fn(()=>new Promise(r=>resolve=r)),f=fixture(call);await select(f.root)
|
|
46
|
-
expect(button(f.root,nasCopy('en').confirm).disabled).toBe(true)
|
|
47
|
-
f.app.unmount();resolve(grant);await settle();expect(f.authorized).not.toHaveBeenCalled()
|
|
48
|
-
})
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"title": "NAS-Ordner — File Station",
|
|
3
|
-
"ownPermissions": "Aktionen verwenden Ihre eigene DSM-Sitzung und die aktuellen File-Station-Rechte.",
|
|
4
|
-
"choose": "Ordner auswählen",
|
|
5
|
-
"confirm": "Auswahl bestätigen",
|
|
6
|
-
"refresh": "Ordner aktualisieren",
|
|
7
|
-
"loading": "Wird geladen…",
|
|
8
|
-
"emptyFolder": "Dieser Ordner ist leer.",
|
|
9
|
-
"roots": "Ordner",
|
|
10
|
-
"back": "Zurück",
|
|
11
|
-
"select": "{name} auswählen",
|
|
12
|
-
"open": "{name} öffnen",
|
|
13
|
-
"selected": "Ausgewählt: {name}",
|
|
14
|
-
"cancel": "Abbrechen",
|
|
15
|
-
"close": "Schließen",
|
|
16
|
-
"loadMore": "Mehr laden",
|
|
17
|
-
"errorSession": "DSM-Sitzung abgelaufen. Melden Sie sich erneut bei DSM an und aktualisieren Sie die Ordner.",
|
|
18
|
-
"errorDenied": "Sie haben keine Berechtigung für diese Datei oder diesen Ordner. Wählen Sie einen anderen Ordner.",
|
|
19
|
-
"errorNotFound": "Datei oder Ordner nicht mehr vorhanden. Aktualisieren Sie die Liste.",
|
|
20
|
-
"errorConflict": "Dieser Name existiert bereits. Wählen Sie einen anderen Namen.",
|
|
21
|
-
"errorUncertain": "Die Aktion wurde möglicherweise ausgeführt. Aktualisieren Sie Auswahl oder Ziel und prüfen Sie das Ergebnis vor einer erneuten Übermittlung.",
|
|
22
|
-
"errorInvalid": "Ungültiger Ordner, Dateiname oder Aufruf. Prüfen Sie die Eingabe.",
|
|
23
|
-
"errorUnavailable": "File Station ist nicht verfügbar oder der Sitzungsadapter fehlt. Aktualisieren Sie später.",
|
|
24
|
-
"errorCanceled": "Aufruf abgebrochen. Aktualisieren Sie vor dem Fortfahren.",
|
|
25
|
-
"errorTimeout": "Zeitüberschreitung. Aktualisieren Sie die Liste vor dem Fortfahren.",
|
|
26
|
-
"metadata": "Metadaten",
|
|
27
|
-
"fileKind": "Datei",
|
|
28
|
-
"directoryKind": "Ordner",
|
|
29
|
-
"nameColumn": "Name",
|
|
30
|
-
"kindColumn": "Typ",
|
|
31
|
-
"sizeColumn": "Bytes",
|
|
32
|
-
"selectAction": "Auswählen",
|
|
33
|
-
"chooseFile": "Datei auswählen",
|
|
34
|
-
"expand": "{name} erweitern",
|
|
35
|
-
"collapse": "{name} reduzieren",
|
|
36
|
-
"upload": "Hochladen",
|
|
37
|
-
"download": "Herunterladen",
|
|
38
|
-
"uploaded": "Datei hochgeladen.",
|
|
39
|
-
"errorDSM": "Melden Sie sich unter diesem Hostnamen bei DSM an, um auf NAS-Dateien zuzugreifen. Eine App-Anmeldung allein erlaubt keinen Zugriff auf File Station.",
|
|
40
|
-
"errorUploadSize": "Wählen Sie eine Datei mit höchstens 16 GB aus."
|
|
41
|
-
}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"title": "NAS folders — File Station",
|
|
3
|
-
"ownPermissions": "Operations use your own DSM session and current File Station permissions.",
|
|
4
|
-
"choose": "Choose folder",
|
|
5
|
-
"confirm": "Confirm selection",
|
|
6
|
-
"refresh": "Refresh folders",
|
|
7
|
-
"loading": "Loading…",
|
|
8
|
-
"emptyFolder": "This folder is empty.",
|
|
9
|
-
"roots": "Folders",
|
|
10
|
-
"back": "Back",
|
|
11
|
-
"select": "Select {name}",
|
|
12
|
-
"open": "Open {name}",
|
|
13
|
-
"selected": "Selected: {name}",
|
|
14
|
-
"cancel": "Cancel",
|
|
15
|
-
"close": "Close",
|
|
16
|
-
"loadMore": "Load more",
|
|
17
|
-
"errorSession": "Your DSM session expired. Sign in to DSM again, then refresh folders.",
|
|
18
|
-
"errorDenied": "You do not have permission to access this file or folder. Choose another folder.",
|
|
19
|
-
"errorNotFound": "The file or folder no longer exists. Refresh the listing.",
|
|
20
|
-
"errorConflict": "A file or folder with that name already exists. Choose another name.",
|
|
21
|
-
"errorUncertain": "The operation may have completed. Refresh selections or the destination and inspect the result before submitting again.",
|
|
22
|
-
"errorInvalid": "Invalid folder, filename or request. Check the input and try again.",
|
|
23
|
-
"errorUnavailable": "File Station is unavailable or this package lacks the session adapter. Refresh later.",
|
|
24
|
-
"errorCanceled": "Request canceled. Refresh before continuing.",
|
|
25
|
-
"errorTimeout": "The request timed out. Refresh the listing before continuing.",
|
|
26
|
-
"metadata": "Metadata",
|
|
27
|
-
"fileKind": "File",
|
|
28
|
-
"directoryKind": "Folder",
|
|
29
|
-
"nameColumn": "Name",
|
|
30
|
-
"kindColumn": "Type",
|
|
31
|
-
"sizeColumn": "Bytes",
|
|
32
|
-
"selectAction": "Select",
|
|
33
|
-
"chooseFile": "Choose file",
|
|
34
|
-
"expand": "Expand {name}",
|
|
35
|
-
"collapse": "Collapse {name}",
|
|
36
|
-
"upload": "Upload",
|
|
37
|
-
"download": "Download",
|
|
38
|
-
"uploaded": "File uploaded.",
|
|
39
|
-
"errorDSM": "Sign in to DSM on this hostname to access NAS files. An App login alone cannot access File Station.",
|
|
40
|
-
"errorUploadSize": "Choose one file up to 16 GB."
|
|
41
|
-
}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"title": "Carpetas NAS — File Station",
|
|
3
|
-
"ownPermissions": "Las operaciones usan su sesión DSM y sus permisos actuales de File Station.",
|
|
4
|
-
"choose": "Elegir carpeta",
|
|
5
|
-
"confirm": "Confirmar selección",
|
|
6
|
-
"refresh": "Actualizar carpetas",
|
|
7
|
-
"loading": "Cargando…",
|
|
8
|
-
"emptyFolder": "Esta carpeta está vacía.",
|
|
9
|
-
"roots": "Carpetas",
|
|
10
|
-
"back": "Atrás",
|
|
11
|
-
"select": "Seleccionar {name}",
|
|
12
|
-
"open": "Abrir {name}",
|
|
13
|
-
"selected": "Seleccionado: {name}",
|
|
14
|
-
"cancel": "Cancelar",
|
|
15
|
-
"close": "Cerrar",
|
|
16
|
-
"loadMore": "Cargar más",
|
|
17
|
-
"errorSession": "La sesión DSM caducó. Inicie sesión en DSM y actualice las carpetas.",
|
|
18
|
-
"errorDenied": "No tiene permiso para acceder a este archivo o carpeta. Elija otra carpeta.",
|
|
19
|
-
"errorNotFound": "El archivo o la carpeta ya no existe. Actualice la lista.",
|
|
20
|
-
"errorConflict": "Ya existe un archivo o carpeta con ese nombre. Use otro nombre.",
|
|
21
|
-
"errorUncertain": "La operación puede haber terminado. Actualice las selecciones o el destino y compruebe el resultado antes de enviarla de nuevo.",
|
|
22
|
-
"errorInvalid": "Carpeta, nombre o solicitud no válidos. Revise los datos.",
|
|
23
|
-
"errorUnavailable": "File Station no está disponible o falta el adaptador de sesión. Actualice más tarde.",
|
|
24
|
-
"errorCanceled": "Solicitud cancelada. Actualice antes de continuar.",
|
|
25
|
-
"errorTimeout": "La solicitud agotó el tiempo. Actualice la lista antes de continuar.",
|
|
26
|
-
"metadata": "Metadatos",
|
|
27
|
-
"fileKind": "Archivo",
|
|
28
|
-
"directoryKind": "Carpeta",
|
|
29
|
-
"nameColumn": "Nombre",
|
|
30
|
-
"kindColumn": "Tipo",
|
|
31
|
-
"sizeColumn": "Bytes",
|
|
32
|
-
"selectAction": "Seleccionar",
|
|
33
|
-
"chooseFile": "Elegir archivo",
|
|
34
|
-
"expand": "Expandir {name}",
|
|
35
|
-
"collapse": "Contraer {name}",
|
|
36
|
-
"upload": "Subir",
|
|
37
|
-
"download": "Descargar",
|
|
38
|
-
"uploaded": "Archivo subido.",
|
|
39
|
-
"errorDSM": "Inicie sesión en DSM con este nombre de host para acceder a los archivos NAS. El inicio de sesión en la App por sí solo no permite usar File Station.",
|
|
40
|
-
"errorUploadSize": "Seleccione un archivo de hasta 16 GB."
|
|
41
|
-
}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"title": "Dossiers NAS — File Station",
|
|
3
|
-
"ownPermissions": "Les opérations utilisent votre session DSM et vos droits File Station actuels.",
|
|
4
|
-
"choose": "Choisir un dossier",
|
|
5
|
-
"confirm": "Confirmer la sélection",
|
|
6
|
-
"refresh": "Actualiser les dossiers",
|
|
7
|
-
"loading": "Chargement…",
|
|
8
|
-
"emptyFolder": "Ce dossier est vide.",
|
|
9
|
-
"roots": "Dossiers",
|
|
10
|
-
"back": "Retour",
|
|
11
|
-
"select": "Sélectionner {name}",
|
|
12
|
-
"open": "Ouvrir {name}",
|
|
13
|
-
"selected": "Sélection : {name}",
|
|
14
|
-
"cancel": "Annuler",
|
|
15
|
-
"close": "Fermer",
|
|
16
|
-
"loadMore": "Charger plus",
|
|
17
|
-
"errorSession": "Votre session DSM a expiré. Reconnectez-vous à DSM puis actualisez les dossiers.",
|
|
18
|
-
"errorDenied": "Vous n’avez pas l’autorisation d’accéder à ce fichier ou dossier. Choisissez un autre dossier.",
|
|
19
|
-
"errorNotFound": "Le fichier ou dossier n’existe plus. Actualisez la liste.",
|
|
20
|
-
"errorConflict": "Ce nom existe déjà. Choisissez un autre nom.",
|
|
21
|
-
"errorUncertain": "L’opération a peut-être abouti. Actualisez les sélections ou la destination et vérifiez le résultat avant de soumettre à nouveau.",
|
|
22
|
-
"errorInvalid": "Dossier, nom de fichier ou requête invalide. Vérifiez la saisie.",
|
|
23
|
-
"errorUnavailable": "File Station est indisponible ou l’adaptateur de session manque. Actualisez plus tard.",
|
|
24
|
-
"errorCanceled": "Requête annulée. Actualisez avant de continuer.",
|
|
25
|
-
"errorTimeout": "Délai dépassé. Actualisez la liste avant de continuer.",
|
|
26
|
-
"metadata": "Métadonnées",
|
|
27
|
-
"fileKind": "Fichier",
|
|
28
|
-
"directoryKind": "Dossier",
|
|
29
|
-
"nameColumn": "Nom",
|
|
30
|
-
"kindColumn": "Type",
|
|
31
|
-
"sizeColumn": "Octets",
|
|
32
|
-
"selectAction": "Sélectionner",
|
|
33
|
-
"chooseFile": "Choisir un fichier",
|
|
34
|
-
"expand": "Développer {name}",
|
|
35
|
-
"collapse": "Réduire {name}",
|
|
36
|
-
"upload": "Téléverser",
|
|
37
|
-
"download": "Télécharger",
|
|
38
|
-
"uploaded": "Fichier téléversé.",
|
|
39
|
-
"errorDSM": "Connectez-vous à DSM sur ce nom d’hôte pour accéder aux fichiers NAS. La connexion à l’App seule ne permet pas d’utiliser File Station.",
|
|
40
|
-
"errorUploadSize": "Choisissez un fichier de 16 GB maximum."
|
|
41
|
-
}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"title": "Cartelle NAS — File Station",
|
|
3
|
-
"ownPermissions": "Le operazioni usano la sessione DSM corrente e i relativi permessi File Station.",
|
|
4
|
-
"choose": "Scegli cartella",
|
|
5
|
-
"confirm": "Conferma selezione",
|
|
6
|
-
"refresh": "Aggiorna cartelle",
|
|
7
|
-
"loading": "Caricamento…",
|
|
8
|
-
"emptyFolder": "Questa cartella è vuota.",
|
|
9
|
-
"roots": "Cartelle",
|
|
10
|
-
"back": "Indietro",
|
|
11
|
-
"select": "Seleziona {name}",
|
|
12
|
-
"open": "Apri {name}",
|
|
13
|
-
"selected": "Selezionato: {name}",
|
|
14
|
-
"cancel": "Annulla",
|
|
15
|
-
"close": "Chiudi",
|
|
16
|
-
"loadMore": "Carica altro",
|
|
17
|
-
"errorSession": "Sessione DSM scaduta. Accedere di nuovo a DSM e aggiornare le cartelle.",
|
|
18
|
-
"errorDenied": "Nessun permesso di accesso a questo file o cartella. Scegliere un’altra cartella.",
|
|
19
|
-
"errorNotFound": "Il file o la cartella non esiste più. Aggiornare l’elenco.",
|
|
20
|
-
"errorConflict": "Esiste già un file o una cartella con questo nome. Scegliere un altro nome.",
|
|
21
|
-
"errorUncertain": "L’operazione potrebbe essere stata completata. Aggiornare selezioni o destinazione e controllare il risultato prima di inviarla di nuovo.",
|
|
22
|
-
"errorInvalid": "Cartella, nome o richiesta non validi. Controllare i dati.",
|
|
23
|
-
"errorUnavailable": "File Station non disponibile o adattatore di sessione mancante. Aggiornare più tardi.",
|
|
24
|
-
"errorCanceled": "Richiesta annullata. Aggiornare prima di continuare.",
|
|
25
|
-
"errorTimeout": "Tempo scaduto. Aggiornare l’elenco prima di continuare.",
|
|
26
|
-
"metadata": "Metadati",
|
|
27
|
-
"fileKind": "File",
|
|
28
|
-
"directoryKind": "Cartella",
|
|
29
|
-
"nameColumn": "Nome",
|
|
30
|
-
"kindColumn": "Tipo",
|
|
31
|
-
"sizeColumn": "Byte",
|
|
32
|
-
"selectAction": "Seleziona",
|
|
33
|
-
"chooseFile": "Scegli file",
|
|
34
|
-
"expand": "Espandi {name}",
|
|
35
|
-
"collapse": "Comprimi {name}",
|
|
36
|
-
"upload": "Carica",
|
|
37
|
-
"download": "Scarica",
|
|
38
|
-
"uploaded": "File caricato.",
|
|
39
|
-
"errorDSM": "Accedere a DSM con questo nome host per accedere ai file NAS. Il solo accesso all’App non consente di usare File Station.",
|
|
40
|
-
"errorUploadSize": "Selezionare un file fino a 16 GB."
|
|
41
|
-
}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"title": "NAS フォルダ — File Station",
|
|
3
|
-
"ownPermissions": "自分の DSM セッションと現在の File Station 権限で操作します。",
|
|
4
|
-
"choose": "フォルダを選択",
|
|
5
|
-
"confirm": "選択を確定",
|
|
6
|
-
"refresh": "フォルダを最新の情報に更新",
|
|
7
|
-
"loading": "読み込み中…",
|
|
8
|
-
"emptyFolder": "空のフォルダです。",
|
|
9
|
-
"roots": "フォルダ",
|
|
10
|
-
"back": "戻る",
|
|
11
|
-
"select": "{name} を選択",
|
|
12
|
-
"open": "{name} を開く",
|
|
13
|
-
"selected": "選択済み:{name}",
|
|
14
|
-
"cancel": "キャンセル",
|
|
15
|
-
"close": "閉じる",
|
|
16
|
-
"loadMore": "さらに読み込む",
|
|
17
|
-
"errorSession": "DSM セッションが期限切れです。DSM に再ログインし、フォルダを最新の情報に更新してください。",
|
|
18
|
-
"errorDenied": "このファイルまたはフォルダにアクセスする権限がありません。別のフォルダを選択してください。",
|
|
19
|
-
"errorNotFound": "ファイルまたはフォルダがありません。一覧を最新の情報に更新してください。",
|
|
20
|
-
"errorConflict": "同名のファイルまたはフォルダがあります。別の名前を指定してください。",
|
|
21
|
-
"errorUncertain": "操作が完了した可能性があります。再送信する前に選択または保存先を最新の情報に更新し、結果を確認してください。",
|
|
22
|
-
"errorInvalid": "フォルダ、ファイル名またはリクエストが無効です。入力を確認してください。",
|
|
23
|
-
"errorUnavailable": "File Station が利用できないか、このパッケージにセッション adapter がありません。後で最新の情報に更新してください。",
|
|
24
|
-
"errorCanceled": "リクエストをキャンセルしました。最新の情報に更新してから続けてください。",
|
|
25
|
-
"errorTimeout": "リクエストがタイムアウトしました。一覧を最新の情報に更新してください。",
|
|
26
|
-
"metadata": "情報",
|
|
27
|
-
"fileKind": "ファイル",
|
|
28
|
-
"directoryKind": "フォルダ",
|
|
29
|
-
"nameColumn": "名前",
|
|
30
|
-
"kindColumn": "種類",
|
|
31
|
-
"sizeColumn": "バイト",
|
|
32
|
-
"selectAction": "選択",
|
|
33
|
-
"chooseFile": "ファイルを選択",
|
|
34
|
-
"expand": "{name} を展開",
|
|
35
|
-
"collapse": "{name} を折りたたむ",
|
|
36
|
-
"upload": "アップロード",
|
|
37
|
-
"download": "ダウンロード",
|
|
38
|
-
"uploaded": "ファイルをアップロードしました。",
|
|
39
|
-
"errorDSM": "NAS ファイルを利用するには同じホスト名で DSM にサインインしてください。App のログインだけでは File Station を利用できません。",
|
|
40
|
-
"errorUploadSize": "16 GB 以下のファイルを 1 つ選択してください。"
|
|
41
|
-
}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"title": "NAS 폴더 — File Station",
|
|
3
|
-
"ownPermissions": "자신의 DSM 세션과 현재 File Station 권한으로 작업합니다.",
|
|
4
|
-
"choose": "폴더 선택",
|
|
5
|
-
"confirm": "선택 확인",
|
|
6
|
-
"refresh": "폴더 새로 고침",
|
|
7
|
-
"loading": "불러오는 중…",
|
|
8
|
-
"emptyFolder": "빈 폴더입니다.",
|
|
9
|
-
"roots": "폴더",
|
|
10
|
-
"back": "뒤로",
|
|
11
|
-
"select": "{name} 선택",
|
|
12
|
-
"open": "{name} 열기",
|
|
13
|
-
"selected": "선택됨: {name}",
|
|
14
|
-
"cancel": "취소",
|
|
15
|
-
"close": "종료",
|
|
16
|
-
"loadMore": "더 불러오기",
|
|
17
|
-
"errorSession": "DSM 세션이 만료되었습니다. DSM에 다시 로그인한 후 폴더를 새로 고치십시오.",
|
|
18
|
-
"errorDenied": "이 파일 또는 폴더에 접근할 권한이 없습니다. 다른 폴더를 선택하십시오.",
|
|
19
|
-
"errorNotFound": "파일 또는 폴더가 없습니다. 목록을 새로 고치십시오.",
|
|
20
|
-
"errorConflict": "같은 이름의 파일 또는 폴더가 있습니다. 다른 이름을 사용하십시오.",
|
|
21
|
-
"errorUncertain": "작업이 완료되었을 수 있습니다. 다시 제출하기 전에 선택 또는 대상 폴더를 새로 고쳐 결과를 확인하십시오.",
|
|
22
|
-
"errorInvalid": "폴더, 파일 이름 또는 요청이 잘못되었습니다. 입력을 확인하십시오.",
|
|
23
|
-
"errorUnavailable": "File Station을 사용할 수 없거나 패키지에 세션 adapter가 없습니다. 나중에 새로 고치십시오.",
|
|
24
|
-
"errorCanceled": "요청이 취소되었습니다. 새로 고친 후 계속하십시오.",
|
|
25
|
-
"errorTimeout": "요청 시간이 초과되었습니다. 목록을 새로 고치십시오.",
|
|
26
|
-
"metadata": "정보",
|
|
27
|
-
"fileKind": "파일",
|
|
28
|
-
"directoryKind": "폴더",
|
|
29
|
-
"nameColumn": "이름",
|
|
30
|
-
"kindColumn": "유형",
|
|
31
|
-
"sizeColumn": "바이트",
|
|
32
|
-
"selectAction": "선택",
|
|
33
|
-
"chooseFile": "파일 선택",
|
|
34
|
-
"expand": "{name} 펼치기",
|
|
35
|
-
"collapse": "{name} 접기",
|
|
36
|
-
"upload": "업로드",
|
|
37
|
-
"download": "다운로드",
|
|
38
|
-
"uploaded": "파일을 업로드했습니다.",
|
|
39
|
-
"errorDSM": "NAS 파일에 접근하려면 같은 호스트 이름에서 DSM에 로그인하십시오. App 로그인만으로는 File Station을 사용할 수 없습니다.",
|
|
40
|
-
"errorUploadSize": "16 GB 이하의 파일 하나를 선택하십시오."
|
|
41
|
-
}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"title": "NAS 文件夹 — File Station",
|
|
3
|
-
"ownPermissions": "操作使用你自己的 DSM 会话与 File Station 实时权限。",
|
|
4
|
-
"choose": "选择文件夹",
|
|
5
|
-
"confirm": "确认选择",
|
|
6
|
-
"refresh": "刷新文件夹",
|
|
7
|
-
"loading": "正在加载…",
|
|
8
|
-
"emptyFolder": "此文件夹为空。",
|
|
9
|
-
"roots": "文件夹",
|
|
10
|
-
"back": "返回",
|
|
11
|
-
"select": "选择 {name}",
|
|
12
|
-
"open": "打开 {name}",
|
|
13
|
-
"selected": "已选择:{name}",
|
|
14
|
-
"cancel": "取消",
|
|
15
|
-
"close": "关闭",
|
|
16
|
-
"loadMore": "加载更多",
|
|
17
|
-
"errorSession": "DSM 会话已失效。请重新登录 DSM,再刷新文件夹。",
|
|
18
|
-
"errorDenied": "没有权限访问此文件或文件夹。请选择其他文件夹。",
|
|
19
|
-
"errorNotFound": "文件或文件夹已不存在。请刷新列表。",
|
|
20
|
-
"errorConflict": "已有同名文件或文件夹。请使用其他名称。",
|
|
21
|
-
"errorUncertain": "操作可能已完成。请刷新选择或目标文件夹并确认结果,再决定是否重新提交。",
|
|
22
|
-
"errorInvalid": "文件夹、文件名或请求无效。请检查输入后重试。",
|
|
23
|
-
"errorUnavailable": "File Station 不可用,或此套件未提供会话 adapter。请稍后刷新。",
|
|
24
|
-
"errorCanceled": "请求已取消。请刷新后继续。",
|
|
25
|
-
"errorTimeout": "请求超时。请刷新列表后继续。",
|
|
26
|
-
"metadata": "信息",
|
|
27
|
-
"fileKind": "文件",
|
|
28
|
-
"directoryKind": "文件夹",
|
|
29
|
-
"nameColumn": "名称",
|
|
30
|
-
"kindColumn": "类型",
|
|
31
|
-
"sizeColumn": "字节",
|
|
32
|
-
"selectAction": "选择",
|
|
33
|
-
"chooseFile": "选择文件",
|
|
34
|
-
"expand": "展开 {name}",
|
|
35
|
-
"collapse": "收起 {name}",
|
|
36
|
-
"upload": "上传",
|
|
37
|
-
"download": "下载",
|
|
38
|
-
"uploaded": "文件已上传。",
|
|
39
|
-
"errorDSM": "请在同一主机名登录 DSM,以访问 NAS 文件。只有 App 登录无法使用 File Station。",
|
|
40
|
-
"errorUploadSize": "请选择一个不超过 16 GB 的文件。"
|
|
41
|
-
}
|