@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
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,129 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## Unreleased (0.9.0)
|
|
4
|
+
|
|
5
|
+
The CLI, the SDK and the project templates are now three repositories, and
|
|
6
|
+
the CLI only packages, deploys and checks. An App names its SDK version once,
|
|
7
|
+
in `backend/go.mod`. Background saves can create subfolders and choose what
|
|
8
|
+
happens on a name conflict, and time-limited delegate jobs gain read, rename,
|
|
9
|
+
copy, move and delete.
|
|
10
|
+
|
|
11
|
+
繁中摘要:CLI 移到 github.com/synopackageland/syno-pkg-land-cli,只負責打包、部署與檢查;
|
|
12
|
+
範本改由 `@synopackageland/templates`(精確 pin)提供;SDK 是
|
|
13
|
+
`github.com/synopackageland/syno-pkg-land-sdk`(Go)與 `@synopackageland/sdk`(前端,含
|
|
14
|
+
`./vue`),版本只寫在 `backend/go.mod`。`build` 依該版本 `go mod download`
|
|
15
|
+
executor 並比對 CLI 內建的 sha256 表。`check` 新增 `SDK_REQUIRED`、
|
|
16
|
+
`SDK_VERSION_MISMATCH`、`SDK_UNSUPPORTED`。`files.moveFromStaging` 的 `name`
|
|
17
|
+
可帶子資料夾,新增 `conflict: fail|overwrite|rename`;有時限的 delegate 新增
|
|
18
|
+
`files.read`、`files.rename`、`files.copy`、`files.move`、`files.delete`。
|
|
19
|
+
管理員只在 executor policy 改變時需要重新核准;0.9.0 的 policy 有改變。
|
|
20
|
+
|
|
21
|
+
### Repositories and the SDK version
|
|
22
|
+
|
|
23
|
+
- The CLI is github.com/synopackageland/syno-pkg-land-cli, published as
|
|
24
|
+
`@synopackageland/cli`. The SDK is github.com/synopackageland/syno-pkg-land-sdk: the Go
|
|
25
|
+
module `github.com/synopackageland/syno-pkg-land-sdk` and the npm package
|
|
26
|
+
`@synopackageland/sdk`, which includes the Vue components at
|
|
27
|
+
`@synopackageland/sdk/vue`.
|
|
28
|
+
- The `require github.com/synopackageland/syno-pkg-land-sdk` line in `backend/go.mod` is the
|
|
29
|
+
only SDK version. `dsm-package.yaml` has no SDK field.
|
|
30
|
+
- `check` and `build` report `SDK_REQUIRED` when `capabilities.delegate` or
|
|
31
|
+
`rootOps` is declared without that line (an `entry` mode without it fails
|
|
32
|
+
with `STANDALONE_ENTRY_UNSUPPORTED`), `SDK_UNSUPPORTED` when its minor version is not the CLI's (CLI 0.9.x builds
|
|
33
|
+
SDK 0.9.x), and `SDK_VERSION_MISMATCH` when the frontend's
|
|
34
|
+
`@synopackageland/sdk` differs from it. A `file:` frontend dependency is
|
|
35
|
+
compared through that folder's `package.json` version.
|
|
36
|
+
- `build` reads the SDK version from `backend/go.mod`, runs `go mod download`
|
|
37
|
+
for the executor of that version, and builds it with go1.26.9. Its sha256
|
|
38
|
+
must match the table shipped in this CLI, or the build fails with
|
|
39
|
+
`EXECUTOR_DIGEST_MISMATCH`. A version Go cannot fetch fails with
|
|
40
|
+
`SDK_DOWNLOAD_FAILED`. While the SDK repositories are private, set
|
|
41
|
+
`GOPRIVATE=github.com/synopackageland/*` and give git a credential for
|
|
42
|
+
github.com; the error says which of the two is missing. Root task scripts
|
|
43
|
+
and `sdk-permissions.json` come from the same SDK version.
|
|
44
|
+
- The CGI binds both policy digests at link time:
|
|
45
|
+
`<module>/internal/api.expectedPermissionsDigest` for the App and
|
|
46
|
+
`github.com/synopackageland/syno-pkg-land-sdk/api.expectedSDKPermissionsDigest` for the
|
|
47
|
+
SDK.
|
|
48
|
+
- `@synopackageland/cli/authorization-sdk` exports `AUTHORIZATION_RUNTIME`
|
|
49
|
+
and `ROOT_RUNTIME`. `authorizationTemplateDirectory` is removed;
|
|
50
|
+
`AuthorizationGate` is in `@synopackageland/sdk/vue`.
|
|
51
|
+
|
|
52
|
+
### Templates
|
|
53
|
+
|
|
54
|
+
- `init` and `add` read the templates from `@synopackageland/templates`, a
|
|
55
|
+
dependency pinned to an exact version. `SYNOPKGLAND_TEMPLATES_DIR` points
|
|
56
|
+
them at a templates checkout; without either, `TEMPLATES_MISSING`.
|
|
57
|
+
- `init` fills the placeholders in every generated file; the Go module path
|
|
58
|
+
of a new backend is the package id. The next steps say
|
|
59
|
+
`(cd frontend && npm install)`: the templates ship no lockfile.
|
|
60
|
+
- `init` and `add` share one capability overlay table (`root-ops`, `jobs`,
|
|
61
|
+
`delegate`).
|
|
62
|
+
|
|
63
|
+
### Local SDK checkout
|
|
64
|
+
|
|
65
|
+
- With `SYNOPKGLAND_SDK_DIR`, `init` adds
|
|
66
|
+
`replace github.com/synopackageland/syno-pkg-land-sdk => $SYNOPKGLAND_SDK_DIR` to
|
|
67
|
+
`backend/go.mod` and sets the frontend dependency to
|
|
68
|
+
`file:$SYNOPKGLAND_SDK_DIR/ts`; install it with
|
|
69
|
+
`(cd frontend && npm install --install-links)`, which packs the SDK like the
|
|
70
|
+
released package. npm does not build a `file:` package, so a Vue project
|
|
71
|
+
needs `(cd $SYNOPKGLAND_SDK_DIR/ts && npm ci && npm run build)` first, and
|
|
72
|
+
again after SDK changes; `init` refuses a checkout without `ts/dist`, or
|
|
73
|
+
without a root `go.mod`, with `SDK_DIR_NOT_READY`.
|
|
74
|
+
- `build` uses `$SYNOPKGLAND_SDK_DIR/executor`, skips the digest table and
|
|
75
|
+
warns with `EXECUTOR_DIGEST_UNVERIFIED`. Do not
|
|
76
|
+
publish such an SPK; the release script refuses to run while
|
|
77
|
+
`SYNOPKGLAND_SDK_DIR` or `SYNOPKGLAND_TEMPLATES_DIR` is set.
|
|
78
|
+
|
|
79
|
+
### Delegate: subfolders and conflict policy
|
|
80
|
+
|
|
81
|
+
- `files.moveFromStaging` (Go: `delegate.MoveParams.Name`) accepts folders
|
|
82
|
+
below the destination, for example `Album/CD1/01.flac`. The executor's move
|
|
83
|
+
child creates missing folders as the user, after the final revoke check, so
|
|
84
|
+
a canceled move leaves none behind. Existing folders are reused. Limits: 16
|
|
85
|
+
folders, 255 bytes per name, 1024 bytes in total. A name without folders
|
|
86
|
+
behaves exactly as before.
|
|
87
|
+
- New `conflict` field for `files.moveFromStaging` and the time-limited
|
|
88
|
+
`files.write`: `fail` (default, unchanged), `overwrite` (atomic replace of a
|
|
89
|
+
regular file the user can write) or `rename` (`name (1).ext` up to
|
|
90
|
+
`name (99).ext`; the receipt path reports the name used).
|
|
91
|
+
- New error codes: `invalid-path`, `path-too-deep`,
|
|
92
|
+
`destination-not-directory`, `name-too-long`.
|
|
93
|
+
|
|
94
|
+
### Delegate: file operations for time-limited grants
|
|
95
|
+
|
|
96
|
+
- New operations `files.read`, `files.rename`, `files.copy`, `files.move` and
|
|
97
|
+
`files.delete`, each declared on its own; a write operation never implies
|
|
98
|
+
delete. Go: `job.Files()` returns `delegate.JobFiles` with `Read`, `Rename`,
|
|
99
|
+
`CreateFolderAll`, `Copy`, `Move`, `Delete`, `TaskStatus` and `CancelTask`.
|
|
100
|
+
- `files.createFolder` takes `parents` (`CreateFolderAll`, like `mkdir -p`).
|
|
101
|
+
- Except `files.write` and `files.read`, the executor calls File Station as the
|
|
102
|
+
user through one root-side allowlist of methods, and re-checks the paths File
|
|
103
|
+
Station reports against the grant. `files.read` copies the file into staging
|
|
104
|
+
in a child that drops to the user and never follows symlinks.
|
|
105
|
+
- Copy, move and delete run as File Station background tasks followed with the
|
|
106
|
+
implied `files.taskStatus` and `files.taskCancel`; revoking the grant stops
|
|
107
|
+
them. Delete needs `recursive` for folders and goes to the recycle bin; a
|
|
108
|
+
Shared Folder without one needs `permanent`.
|
|
109
|
+
- File Station refusals now report SDK codes (`PERMISSION_DENIED`,
|
|
110
|
+
`not-found`, `destination-exists`, `NO_SPACE`, `invalid-path`,
|
|
111
|
+
`name-too-long`) instead of `DSM_FAILED`. New codes: `not-a-file`,
|
|
112
|
+
`recursive-required`, `recycle-bin-disabled`, `task-not-found`,
|
|
113
|
+
`too-many-tasks`, `READ_FAILED`.
|
|
114
|
+
|
|
115
|
+
### Approval
|
|
116
|
+
|
|
117
|
+
- An administrator approves the executor policy (operations, scope and root
|
|
118
|
+
tasks), not the executor binary. When an upgrade keeps the policy and the
|
|
119
|
+
new executor matches the `INFO` anchor, it installs without a new approval.
|
|
120
|
+
When the policy changes, the App stays at `needs-admin-approval` until an
|
|
121
|
+
administrator approves again.
|
|
122
|
+
- The 0.9.0 policy changes (new operations and `conflict`), so a delegate App
|
|
123
|
+
rebuilt with this CLI needs one new approval after the upgrade.
|
|
124
|
+
Moving the SDK to its own repository does not add one. Apps not rebuilt are
|
|
125
|
+
not affected.
|
|
126
|
+
|
|
3
127
|
## 0.8.0 (2026-10-11)
|
|
4
128
|
|
|
5
129
|
Faster builds, one SPK checker for any package, and a guide for scripts and
|
package/README.md
CHANGED
|
@@ -18,7 +18,7 @@ Native Go apps need Go 1.25+ and npm. The CLI is tested on Node.js 22.19.
|
|
|
18
18
|
```sh
|
|
19
19
|
synopkgland init -t native-go --with files,jobs,login --package MyApp my-app
|
|
20
20
|
cd my-app
|
|
21
|
-
(cd frontend && npm
|
|
21
|
+
(cd frontend && npm install)
|
|
22
22
|
synopkgland check --json
|
|
23
23
|
synopkgland build --arch x86_64 --json
|
|
24
24
|
synopkgland inspect dist/MyApp-0.1.0-0001-x86_64.spk --json
|
|
@@ -40,6 +40,27 @@ the SPK with Package Center's Manual Install.
|
|
|
40
40
|
Existing native products with their own payload layout use `backend: {kind: native}` in
|
|
41
41
|
`dsm-package.yaml`.
|
|
42
42
|
|
|
43
|
+
## SDK and templates
|
|
44
|
+
|
|
45
|
+
The CLI packages, deploys and checks. The app-side code is the SDK
|
|
46
|
+
([synopackageland/syno-pkg-land-sdk](https://github.com/synopackageland/syno-pkg-land-sdk)): the Go module
|
|
47
|
+
`github.com/synopackageland/syno-pkg-land-sdk` and the npm package `@synopackageland/sdk` (Vue components at
|
|
48
|
+
`@synopackageland/sdk/vue`). The `require github.com/synopackageland/syno-pkg-land-sdk` line in
|
|
49
|
+
`backend/go.mod` is the app's only SDK version; `build` compiles the executor of that version
|
|
50
|
+
and checks it against the digests shipped in this CLI. CLI 0.9.x builds SDK 0.9.x.
|
|
51
|
+
|
|
52
|
+
The SDK repositories are private for now, so Go cannot fetch them from proxy.golang.org. Set
|
|
53
|
+
`go env -w GOPRIVATE=github.com/synopackageland/*` and give git a credential that can read
|
|
54
|
+
`https://github.com/synopackageland/syno-pkg-land-sdk` (check with `git ls-remote`); a failed
|
|
55
|
+
fetch reports `SDK_DOWNLOAD_FAILED` with the step that is missing.
|
|
56
|
+
|
|
57
|
+
`init` and `add` read their templates from `@synopackageland/templates`, an exact-pinned
|
|
58
|
+
dependency. For development against local checkouts, set `SYNOPKGLAND_TEMPLATES_DIR` to a
|
|
59
|
+
templates checkout and `SYNOPKGLAND_SDK_DIR` to an SDK checkout; SPKs built with
|
|
60
|
+
`SYNOPKGLAND_SDK_DIR` warn `EXECUTOR_DIGEST_UNVERIFIED` and must not be published. A Vue project
|
|
61
|
+
packs the local SDK into its frontend (`npm install --install-links`) without building it: run
|
|
62
|
+
`npm ci && npm run build` in `$SYNOPKGLAND_SDK_DIR/ts` first, and again after SDK changes.
|
|
63
|
+
|
|
43
64
|
## Capabilities
|
|
44
65
|
|
|
45
66
|
Add them with `init --with …` or later with `synopkgland add <capability…>`.
|
|
@@ -86,14 +107,15 @@ UI components and `npx --no syno-pkg-land-ui describe Button --json` describes o
|
|
|
86
107
|
|
|
87
108
|
## Licensing
|
|
88
109
|
|
|
89
|
-
The CLI
|
|
110
|
+
The CLI is MIT licensed, Copyright (c) 2026 synopkgland.
|
|
90
111
|
Third-party components keep their own terms.
|
|
91
112
|
|
|
92
113
|
- Generated projects keep the template terms in `LICENSES/TEMPLATE.txt`. `init` does not choose a
|
|
93
114
|
license for your app: add your own `LICENSE`.
|
|
94
115
|
- An SPK carries its legal notices under `LICENSES/` in the installed payload: `TEMPLATE.txt`,
|
|
95
|
-
an optional `APP.txt`,
|
|
96
|
-
|
|
116
|
+
an optional `APP.txt`, `SDK.txt` (the SDK's MIT license, when `backend/go.mod` requires the SDK),
|
|
117
|
+
Go's license, patents and third-party notices, and the Vue UI notices.
|
|
118
|
+
- Vue builds generate the UI notices from the installed dependencies; run `npm install` in
|
|
97
119
|
`frontend/` first. A missing notice or version mismatch fails the build.
|
|
98
120
|
- Keep `backend/THIRD_PARTY_NOTICES.txt` current when you change Go modules. Your own binaries,
|
|
99
121
|
added modules, container images and upstream apps need their own notices.
|
package/dist/add.js
CHANGED
|
@@ -5,19 +5,9 @@ import { isScalar, parseDocument } from 'yaml';
|
|
|
5
5
|
import { capabilityNames, capabilitySettings } from './capabilities.js';
|
|
6
6
|
import { initFromTemplate, nativeCapabilitySettings } from './init.js';
|
|
7
7
|
import { templatesRoot } from './template-paths.js';
|
|
8
|
+
import { borrowedTarget, capabilityOverlays } from './capability-overlays.js';
|
|
8
9
|
import { DEFAULT_MIN_DSM, isDsmAtLeast, PORTAL_MIN_DSM } from './build-spk/dsm-version.js';
|
|
9
10
|
import { loadStandaloneManifest } from './standalone/manifest.js';
|
|
10
|
-
const overlays = {
|
|
11
|
-
jobs: ['native-go-jobs'],
|
|
12
|
-
'root-ops': ['native-go-root-ops'],
|
|
13
|
-
delegate: ['native-go-jobs', 'native-go-delegate'],
|
|
14
|
-
files: ['native-go-files'], login: ['native-go-identity'],
|
|
15
|
-
};
|
|
16
|
-
const removed = {
|
|
17
|
-
jobs: ['backend/internal/app/background_none.go'],
|
|
18
|
-
'root-ops': ['backend/internal/app/root_none.go'],
|
|
19
|
-
delegate: ['backend/internal/app/background_none.go', 'backend/internal/app/root_none.go', 'backend/internal/app/delegate_none.go'],
|
|
20
|
-
};
|
|
21
11
|
function files(root, dir = root) {
|
|
22
12
|
if (!existsSync(dir))
|
|
23
13
|
return [];
|
|
@@ -106,12 +96,9 @@ export function addCapabilities(root, requested) {
|
|
|
106
96
|
const before = join(work, 'before'), generated = join(work, 'generated');
|
|
107
97
|
initFromTemplate('native-go', before, { ui: m.ui.build ? 'vue' : 'plain', with: existingNames, packageId: m.package, displayName: m.displayname });
|
|
108
98
|
initFromTemplate('native-go', generated, { ui: m.ui.build ? 'vue' : 'plain', with: [...existingNames, ...added], packageId: m.package, displayName: m.displayname });
|
|
109
|
-
const
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
if (added.includes('jobs') || added.includes('delegate') || added.includes('root-ops'))
|
|
113
|
-
destinations.push('backend/internal/app/routes_test.go');
|
|
114
|
-
const deletions = added.flatMap(name => removed[name] ?? []);
|
|
99
|
+
const capability = capabilityOverlays(added);
|
|
100
|
+
const destinations = [...new Set([...capability.overlays.flatMap(overlay => files(join(templatesRoot(), overlay))), ...capability.borrowed.map(borrowedTarget)])].filter(file => existsSync(join(generated, file)));
|
|
101
|
+
const deletions = capability.removed;
|
|
115
102
|
const conflicts = [];
|
|
116
103
|
for (const file of destinations) {
|
|
117
104
|
if (existsSync(join(before, file)) && safePath(root, file) && existsSync(join(root, file)) && lstatSync(join(root, file)).isFile() && readFileSync(join(root, file)).equals(readFileSync(join(before, file))))
|
|
@@ -3,7 +3,7 @@ import { join } from "node:path";
|
|
|
3
3
|
import { checkCgiBinary } from "../standalone/binary.js";
|
|
4
4
|
import { runCommand } from "../standalone/build.js";
|
|
5
5
|
import { resolvedWebAccess } from "../contract/web-launch.js";
|
|
6
|
-
import {
|
|
6
|
+
import { goAssetDir } from "../template-paths.js";
|
|
7
7
|
import { PINNED_GO_HINT, pinnedGoBuildEnv, pinnedGoProblem } from "./go-toolchain.js";
|
|
8
8
|
export { gatewayEntryPath } from "../contract/web-launch.js";
|
|
9
9
|
/** Where the gateway CGI sits in the package payload; DSM serves `ui/` under /webman/3rdparty/<package>/. */
|
|
@@ -28,7 +28,7 @@ export async function buildGatewayBinary(input) {
|
|
|
28
28
|
const out = join(input.work, `gateway-${input.arch}.cgi`);
|
|
29
29
|
const ldflags = ["-s", "-w", "-buildid=", `-X main.packageID=${input.packageId}`, `-X 'main.configJSON=${JSON.stringify(input.config)}'`].join(" ");
|
|
30
30
|
const result = await (input.run ?? runCommand)("go", ["build", "-trimpath", "-buildvcs=false", "-ldflags", ldflags, "-o", out, "."], {
|
|
31
|
-
cwd:
|
|
31
|
+
cwd: goAssetDir("gateway"),
|
|
32
32
|
env: { ...process.env, ...pinnedGoBuildEnv(input.arch) },
|
|
33
33
|
});
|
|
34
34
|
if (result.missing) {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { copyFileSync, existsSync, lstatSync, mkdirSync, readFileSync, readdirSync } from 'node:fs';
|
|
2
2
|
import { dirname, join } from 'node:path';
|
|
3
|
+
import { sdkRequirement, sdkSource } from '../runtime/sdk-source.js';
|
|
3
4
|
/** Copy legal text only; never follow a project-supplied symlink. */
|
|
4
5
|
export function copyNoticeTree(source, target) {
|
|
5
6
|
const stat = lstatSync(source);
|
|
@@ -28,7 +29,7 @@ export function copyProjectNotices(root, payload) {
|
|
|
28
29
|
export function copyStandaloneNotices(root, uiDir, payload, go, goDir = join(root, 'backend')) {
|
|
29
30
|
copyProjectNotices(root, payload);
|
|
30
31
|
const dest = join(payload, 'LICENSES');
|
|
31
|
-
const shared = new URL('../../
|
|
32
|
+
const shared = new URL('../../assets/licenses/', import.meta.url);
|
|
32
33
|
if (go) {
|
|
33
34
|
mkdirSync(dest, { recursive: true });
|
|
34
35
|
for (const name of ['GO-LICENSE', 'GO-PATENTS'])
|
|
@@ -36,14 +37,17 @@ export function copyStandaloneNotices(root, uiDir, payload, go, goDir = join(roo
|
|
|
36
37
|
if (existsSync(join(goDir, 'THIRD_PARTY_NOTICES.txt')))
|
|
37
38
|
copyNoticeTree(join(goDir, 'THIRD_PARTY_NOTICES.txt'), join(dest, 'GO-THIRD_PARTY_NOTICES.txt'));
|
|
38
39
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
40
|
+
// The SDK's dsm package embeds the native administrator and AppPriv bridges; their sources and terms ship with them.
|
|
41
|
+
const sdk = go ? sdkRequirement(goDir) : undefined;
|
|
42
|
+
if (sdk) {
|
|
43
|
+
const source = sdkSource(sdk);
|
|
44
|
+
const license = join(source.goDir, 'LICENSE');
|
|
45
|
+
if (!existsSync(license))
|
|
46
|
+
throw new Error(`[NOTICE_MISSING] SDK license missing: ${license}`);
|
|
47
|
+
copyNoticeTree(license, join(dest, 'SDK.txt'));
|
|
48
|
+
const nativeAdmin = join(source.goDir, 'dsm/native');
|
|
49
|
+
for (const name of ['admin_check.c', 'apppriv_check.c', 'build.sh', 'provenance.json', 'licenses'])
|
|
45
50
|
copyNoticeTree(join(nativeAdmin, name), join(dest, 'native-admin', name));
|
|
46
|
-
}
|
|
47
51
|
}
|
|
48
52
|
const frontend = join(root, 'frontend/package.json');
|
|
49
53
|
const usesUi = existsSync(frontend) && Boolean(JSON.parse(readFileSync(frontend, 'utf8')).dependencies?.['@synopackageland/ui']);
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How each native-go capability is laid over the base template: the template
|
|
3
|
+
* directories copied on top, files borrowed from another overlay, and the
|
|
4
|
+
* base files the overlay replaces. init and add both read this table.
|
|
5
|
+
*/
|
|
6
|
+
export interface CapabilityOverlay {
|
|
7
|
+
overlays: string[];
|
|
8
|
+
borrowed: string[];
|
|
9
|
+
removed: string[];
|
|
10
|
+
}
|
|
11
|
+
export declare const CAPABILITY_OVERLAYS: Record<string, CapabilityOverlay>;
|
|
12
|
+
/** The overlays of these capabilities, in table order, each once; a capability without one adds nothing. */
|
|
13
|
+
export declare function capabilityOverlays(names: readonly string[]): CapabilityOverlay;
|
|
14
|
+
/** A borrowed path names its overlay first; this is where it lands in a project. */
|
|
15
|
+
export declare const borrowedTarget: (path: string) => string;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
const EXECUTOR_SHELL = ['backend/internal/app/executor.go', 'backend/internal/app/executor_test.go'];
|
|
2
|
+
export const CAPABILITY_OVERLAYS = {
|
|
3
|
+
'root-ops': { overlays: ['native-go-root-ops'], borrowed: [], removed: ['backend/internal/app/root_none.go'] },
|
|
4
|
+
jobs: { overlays: ['native-go-jobs'], borrowed: [], removed: ['backend/internal/app/background_none.go'] },
|
|
5
|
+
delegate: {
|
|
6
|
+
overlays: ['native-go-jobs', 'native-go-delegate'],
|
|
7
|
+
borrowed: EXECUTOR_SHELL.map(file => `native-go-root-ops/${file}`),
|
|
8
|
+
removed: ['backend/internal/app/background_none.go', 'backend/internal/app/root_none.go', 'backend/internal/app/delegate_none.go'],
|
|
9
|
+
},
|
|
10
|
+
};
|
|
11
|
+
/** The overlays of these capabilities, in table order, each once; a capability without one adds nothing. */
|
|
12
|
+
export function capabilityOverlays(names) {
|
|
13
|
+
const chosen = Object.entries(CAPABILITY_OVERLAYS).filter(([name]) => names.includes(name)).map(([, overlay]) => overlay);
|
|
14
|
+
const unique = (pick) => [...new Set(chosen.flatMap(pick))];
|
|
15
|
+
return { overlays: unique(o => o.overlays), borrowed: unique(o => o.borrowed), removed: unique(o => o.removed) };
|
|
16
|
+
}
|
|
17
|
+
/** A borrowed path names its overlay first; this is where it lands in a project. */
|
|
18
|
+
export const borrowedTarget = (path) => path.split('/').slice(1).join('/');
|
package/dist/cli.js
CHANGED
|
@@ -118,6 +118,7 @@ async function standaloneBuild(root, arches, options) {
|
|
|
118
118
|
const result = isNativeLayout(root)
|
|
119
119
|
? await buildNativeLayout({ root, arches, outDir, minDsm: options.minDsm, jobs: options.jobs })
|
|
120
120
|
: await buildStandalone({ root, arches: arches, outDir, minDsm: options.minDsm, jobs: options.jobs });
|
|
121
|
+
result.warnings?.forEach((warning) => console.error(warning));
|
|
121
122
|
return result.outputs.map((output) => {
|
|
122
123
|
if (!options.output)
|
|
123
124
|
return output;
|
|
@@ -306,8 +307,9 @@ export async function runCli(argv) {
|
|
|
306
307
|
},
|
|
307
308
|
});
|
|
308
309
|
stdout(`已建立 ${options.template} 專案於 ${targetDir}`);
|
|
310
|
+
// --install-links packs a local SDK like the released package; a symlink would load the checkout's own node_modules.
|
|
309
311
|
if (options.template === "native-go")
|
|
310
|
-
stdout(`下一步:\n cd ${dir}\n (cd backend && go test ./...)\n${existsSync(join(targetDir, "frontend", "package.json")) ?
|
|
312
|
+
stdout(`下一步:\n cd ${dir}\n (cd backend && go test ./...)\n${existsSync(join(targetDir, "frontend", "package.json")) ? ` (cd frontend && npm install${process.env.SYNOPKGLAND_SDK_DIR ? " --install-links" : ""})\n` : ""} synopkgland build\n說明見 README.md。`);
|
|
311
313
|
});
|
|
312
314
|
program
|
|
313
315
|
.command("add <caps...>")
|
package/dist/error-registry.js
CHANGED
|
@@ -102,7 +102,7 @@ export const ERROR_REGISTRY = {
|
|
|
102
102
|
"GATEWAY_BUILD_FAILED": {
|
|
103
103
|
"code": "GATEWAY_BUILD_FAILED",
|
|
104
104
|
"description": "DSM 驗證閘道建置失敗或產出不是對應架構的靜態 ELF。",
|
|
105
|
-
"suggestion": "請查看 go build 輸出;閘道固定以 go1.26.9 建置,離線時請安裝 go1.26.9 或讓 GOPROXY 可提供 golang.org/toolchain,並確認
|
|
105
|
+
"suggestion": "請查看 go build 輸出;閘道固定以 go1.26.9 建置,離線時請安裝 go1.26.9 或讓 GOPROXY 可提供 golang.org/toolchain,並確認 CLI 套件的 assets/go/gateway 未被修改。"
|
|
106
106
|
},
|
|
107
107
|
"CONTRACT_INVALID_STRING": {
|
|
108
108
|
"code": "CONTRACT_INVALID_STRING",
|
|
@@ -587,7 +587,7 @@ export const ERROR_REGISTRY = {
|
|
|
587
587
|
"STANDALONE_GO_BUILD_FAILED": {
|
|
588
588
|
"code": "STANDALONE_GO_BUILD_FAILED",
|
|
589
589
|
"description": "go build 失敗。",
|
|
590
|
-
"suggestion": "請在 backend 目錄執行 go build ./...
|
|
590
|
+
"suggestion": "請在 backend 目錄執行 go build ./... 並修正錯誤。取不到 github.com/synopackageland/syno-pkg-land-sdk 時,設定 GOPRIVATE=github.com/synopackageland/* 並讓 git 能以憑證讀 github.com。"
|
|
591
591
|
},
|
|
592
592
|
"STANDALONE_PORTAL_INVALID": {
|
|
593
593
|
"code": "STANDALONE_PORTAL_INVALID",
|
|
@@ -695,7 +695,15 @@ export function getErrorCode(code) {
|
|
|
695
695
|
return ERROR_REGISTRY[code];
|
|
696
696
|
}
|
|
697
697
|
for (const [code, description, suggestion] of [
|
|
698
|
-
["EXECUTOR_BUILD_FAILED", "executor 或 lifecycle helper
|
|
698
|
+
["EXECUTOR_BUILD_FAILED", "從 App 相依的 SDK 版本編譯 executor 或 lifecycle helper 失敗。", "確認已安裝 Go 1.21 以上且可取得 go1.26.9(離線時請先備妥),查看訊息中的編譯器輸出。"],
|
|
699
|
+
["EXECUTOR_DIGEST_MISMATCH", "由 SDK 版本建出的 executor 與 CLI 內建的 sha256 表不符,或表中沒有這個 SDK 版本。", "確認 backend/go.mod 的 github.com/synopackageland/syno-pkg-land-sdk 是正式版本且 Go 為 go1.26.9;表中沒有該版本時升級 CLI。"],
|
|
700
|
+
["EXECUTOR_DIGEST_UNVERIFIED", "SYNOPKGLAND_SDK_DIR 指向本機 SDK,executor 未對照 sha256 表(警告)。", "只用於開發;要發佈的 SPK 請取消 SYNOPKGLAND_SDK_DIR 後重新 build。"],
|
|
701
|
+
["SDK_REQUIRED", "rootOps 或 delegate 需要 SDK,但 backend/go.mod 沒有 require github.com/synopackageland/syno-pkg-land-sdk。", "在 backend/go.mod 加入 require github.com/synopackageland/syno-pkg-land-sdk 與 CLI 同一 minor 的版本,或改用 init 產生的 Go 後端。"],
|
|
702
|
+
["SDK_VERSION_MISMATCH", "frontend/package.json 的 @synopackageland/sdk 與 backend/go.mod 要求的 SDK 版本不同。", "把兩邊改成同一個版本;file: 相依時,比對的是該目錄 package.json 的 version。"],
|
|
703
|
+
["SDK_UNSUPPORTED", "backend/go.mod 要求的 SDK 不是這個 CLI 的 minor 版本線。", "改用與 SDK 同一 minor 的 CLI,或把 SDK 升到 CLI 支援的版本線(訊息列出)。"],
|
|
704
|
+
["SDK_DIR_NOT_READY", "SYNOPKGLAND_SDK_DIR 指向的 SDK checkout 根目錄缺少 go.mod,或 Vue 專案需要的 ts 套件尚未建置(沒有 ts/dist)。", "指向 syno-pkg-land-sdk checkout;Vue 專案先在 $SYNOPKGLAND_SDK_DIR/ts 執行 npm ci && npm run build(npm 安裝 file: 套件時不會替它 build)。"],
|
|
705
|
+
["SDK_DOWNLOAD_FAILED", "go mod download 取不到 backend/go.mod 要求的 SDK 版本。", "SDK repo 目前是 private,不能經 proxy.golang.org 取得:設定 GOPRIVATE=github.com/synopackageland/*(例如 go env -w),並讓 git 能以憑證讀 github.com(git ls-remote 可驗證);再確認版本存在。離線時先在同一台機器 go mod download 一次。"],
|
|
706
|
+
["TEMPLATES_MISSING", "找不到 @synopackageland/templates。", "重新安裝 @synopackageland/cli,或把 SYNOPKGLAND_TEMPLATES_DIR 指向 templates checkout。"],
|
|
699
707
|
["EXECUTOR_PIN_REQUIRED", "宣告 rootOps 或 delegate 的套件建置時沒有 executor 產物。", "使用 synopkgland build,讓 CLI 編譯並 pin executor;不要直接呼叫低階 SPK API。"],
|
|
700
708
|
["EXECUTOR_POLICY", "capabilities.delegate 的 operations 或 scope 不合法,無法產生 executor policy。", "改用 init/add 產生的 delegate 宣告,或依 manifest 參考修正 scope 與 operations。"],
|
|
701
709
|
["EXECUTOR_PACKAGE", "pin 進 root task 的套件名稱不合法。", "package 必須以英文字母開頭,只含英數字(2–64 字)。"],
|
|
@@ -706,7 +714,7 @@ for (const [code, description, suggestion] of [
|
|
|
706
714
|
ERROR_REGISTRY[code] = { code, description, suggestion };
|
|
707
715
|
ERROR_REGISTRY["STANDALONE_ENTRY_INVALID"] = { "code": "STANDALONE_ENTRY_INVALID", "description": "entry 設定不合法。", "suggestion": "entry 填 admin-only 或 app-privilege;app-privilege 需要至少一個 authenticated route。" };
|
|
708
716
|
ERROR_REGISTRY["STANDALONE_ENTRY_WIDENED"] = { "code": "STANDALONE_ENTRY_WIDENED", "description": "entry: admin-only 與放寬權限的 route 設定衝突。", "suggestion": "把 permissions.json 中 authenticated 或 public 的 route 改為 administrators;要開放給一般使用者請改用 entry: app-privilege 或省略 entry。" };
|
|
709
|
-
ERROR_REGISTRY["STANDALONE_ENTRY_UNSUPPORTED"] = { "code": "STANDALONE_ENTRY_UNSUPPORTED", "description": "backend 無法強制 entry 模式。", "suggestion": "使用 Go backend
|
|
717
|
+
ERROR_REGISTRY["STANDALONE_ENTRY_UNSUPPORTED"] = { "code": "STANDALONE_ENTRY_UNSUPPORTED", "description": "backend 無法強制 entry 模式。", "suggestion": "使用 Go backend:backend/go.mod require github.com/synopackageland/syno-pkg-land-sdk,並在 cmd/app/main.go 以 dsm.NewEntryGate 包住 authenticator。" };
|
|
710
718
|
ERROR_REGISTRY["DSM_TLS_UNTRUSTED"] = { "code": "DSM_TLS_UNTRUSTED", "description": "DSM 的 TLS 憑證不受這台電腦信任(自簽、過期或名稱不符)。", "suggestion": "把 NAS 憑證或其 CA 匯出成 PEM,用 NODE_EXTRA_CA_CERTS=<該檔> 執行;或讓 DSM 使用與 host profile 名稱相符的受信任憑證。不要關閉憑證驗證。" };
|
|
711
719
|
ERROR_REGISTRY["STANDALONE_ICON_INVALID"] = { "code": "STANDALONE_ICON_INVALID", "description": "dsm-package.yaml 的 icon 不是可用的套件圖示。", "suggestion": "icon 填專案內的正方形 PNG(至少 256×256),或含 icon_256.png 的 icon_<size>.png 目錄;省略則使用 SDK 預設圖示。" };
|
|
712
720
|
ERROR_REGISTRY["CONTRACT_ICON_INVALID"] = { "code": "CONTRACT_ICON_INVALID", "description": "synology-app.yaml 的 icon 不是可用的套件圖示。", "suggestion": "icon 填專案內的正方形 PNG(至少 256×256),或含 icon_256.png 的 icon_<size>.png 目錄;省略則使用 SDK 預設圖示。" };
|
package/dist/info.js
CHANGED
|
@@ -8,6 +8,7 @@ import { inspectSpk } from "./standalone/inspect-spk.js";
|
|
|
8
8
|
import { isNativeLayout, loadNativeLayout } from "./standalone/native-layout.js";
|
|
9
9
|
import { executorPolicy, executorPolicyText, sha256 } from "./runtime/executor-policy.js";
|
|
10
10
|
import { executorTasks } from "./runtime/executor-tasks.js";
|
|
11
|
+
import { requiredSdk } from "./runtime/sdk-source.js";
|
|
11
12
|
import { uninstallCleanup } from "./runtime/uninstall-cleanup.js";
|
|
12
13
|
export async function projectInfo(options) {
|
|
13
14
|
const identity = resolveDeployIdentity(options.project, { dev: options.dev });
|
|
@@ -68,7 +69,7 @@ export function classifyRootTasks(expected, inventory) {
|
|
|
68
69
|
async function liveRootCapability(m, host) {
|
|
69
70
|
try {
|
|
70
71
|
const policyDigest = sha256(executorPolicyText(executorPolicy(m)));
|
|
71
|
-
const classified = classifyRootTasks(executorTasks({ package: m.package, policyDigest }), await host.getRootTaskInventory?.(m.package));
|
|
72
|
+
const classified = classifyRootTasks(executorTasks({ package: m.package, policyDigest }, requiredSdk(m.backend.kind === "go" ? m.backend.dir : m.root).executorDir), await host.getRootTaskInventory?.(m.package));
|
|
72
73
|
if (classified.state !== "ready")
|
|
73
74
|
return classified;
|
|
74
75
|
const observed = await host.getExecutorStatus?.(m.package);
|
package/dist/init.js
CHANGED
|
@@ -3,8 +3,10 @@ import { isMap, isScalar, parse, parseDocument, stringify } from "yaml";
|
|
|
3
3
|
import { capabilityNames, capabilitySettings } from "./capabilities.js";
|
|
4
4
|
import { MOVE_FROM_STAGING } from './runtime/delegate-contract.js';
|
|
5
5
|
import { cpSync, existsSync, mkdirSync, readdirSync, readFileSync, renameSync, rmSync, statSync, writeFileSync } from "node:fs";
|
|
6
|
-
import { basename, join, relative } from "node:path";
|
|
6
|
+
import { basename, join, relative, resolve } from "node:path";
|
|
7
|
+
import { SDK_MODULE, SDK_PACKAGE } from "./runtime/sdk-source.js";
|
|
7
8
|
import { templatesRoot } from "./template-paths.js";
|
|
9
|
+
import { borrowedTarget, capabilityOverlays } from "./capability-overlays.js";
|
|
8
10
|
import { resolveMinDsm, assertContainerMinDsm, DEFAULT_MIN_DSM, isDsmAtLeast } from "./build-spk/dsm-version.js";
|
|
9
11
|
import { readSharedFolder } from "./standalone/shared-folder.js";
|
|
10
12
|
const TEMPLATE_NAMES = [
|
|
@@ -35,20 +37,8 @@ export function nativeCapabilitySettings(names) {
|
|
|
35
37
|
};
|
|
36
38
|
return settings;
|
|
37
39
|
}
|
|
38
|
-
/**
|
|
39
|
-
|
|
40
|
-
* files they replace.
|
|
41
|
-
*/
|
|
42
|
-
const ROOT_OVERLAY = "native-go-root-ops";
|
|
43
|
-
const ROOT_REPLACED = ["backend/internal/app/root_none.go"];
|
|
44
|
-
/** native-go --with jobs: overlay with the routes, the UI panel and the docs. */
|
|
45
|
-
const BACKGROUND_OVERLAY = "native-go-jobs";
|
|
46
|
-
const BACKGROUND_REPLACED = ["backend/internal/app/background_none.go"];
|
|
47
|
-
/** Templates whose identity is filled in at init (placeholders in these files). */
|
|
48
|
-
const SUBSTITUTED = {
|
|
49
|
-
"native-go": ["dsm-package.yaml", "README.md"],
|
|
50
|
-
"binary": ["dsm-package.yaml", "ui/app.js"],
|
|
51
|
-
};
|
|
40
|
+
/** Templates whose identity is filled in at init: every generated file may carry a placeholder. */
|
|
41
|
+
const IDENTIFIED = ["native-go", "binary"];
|
|
52
42
|
const PACKAGE_ID = /^[A-Za-z][A-Za-z0-9]{1,63}$/;
|
|
53
43
|
/** npm never publishes files named .gitignore, so templates ship them as `gitignore`. */
|
|
54
44
|
const RENAMED = { gitignore: ".gitignore" };
|
|
@@ -105,8 +95,9 @@ export function initFromTemplate(template, targetDir, options = {}) {
|
|
|
105
95
|
throw new Error("[INIT_OPTIONS_UNSUPPORTED] --from 只適用於 compose。");
|
|
106
96
|
if (caps.length && template !== "native-go")
|
|
107
97
|
throw new Error("[CAPABILITY_UNSUPPORTED] binary/compose 不支援 --with 能力。");
|
|
108
|
-
const
|
|
109
|
-
|
|
98
|
+
const localSdk = template === "native-go" && process.env.SYNOPKGLAND_SDK_DIR ? resolve(process.env.SYNOPKGLAND_SDK_DIR) : undefined;
|
|
99
|
+
if (localSdk)
|
|
100
|
+
assertLocalSdkReady(localSdk, resolvedUi(template, options) === "vue");
|
|
110
101
|
const source = join(templatesRoot(), template);
|
|
111
102
|
if (!existsSync(source)) {
|
|
112
103
|
throw new Error(`找不到模板:${template}`);
|
|
@@ -121,14 +112,8 @@ export function initFromTemplate(template, targetDir, options = {}) {
|
|
|
121
112
|
if (rootExample && minDsm !== undefined && !isDsmAtLeast(minDsm, DEFAULT_MIN_DSM)) {
|
|
122
113
|
throw new Error(`[MIN_DSM_INVALID] root templates require DSM ${DEFAULT_MIN_DSM} or later.`);
|
|
123
114
|
}
|
|
124
|
-
const
|
|
125
|
-
|
|
126
|
-
...(ui === "vue" ? ["native-go-vue"] : []),
|
|
127
|
-
...(background ? [BACKGROUND_OVERLAY] : []),
|
|
128
|
-
...(caps.includes("login") && existsSync(join(templatesRoot(), "native-go-identity")) ? ["native-go-identity"] : []),
|
|
129
|
-
...(caps.includes("files") && existsSync(join(templatesRoot(), "native-go-files")) ? ["native-go-files"] : []),
|
|
130
|
-
...(caps.includes("delegate") ? ["native-go-delegate"] : []),
|
|
131
|
-
].map(name => join(templatesRoot(), name));
|
|
115
|
+
const capability = capabilityOverlays(caps);
|
|
116
|
+
const overlays = [...(ui === "vue" ? ["native-go-vue"] : []), ...capability.overlays].map(name => join(templatesRoot(), name));
|
|
132
117
|
// Shared legal resources also live in the CLI package; only the template
|
|
133
118
|
// terms are an unconditional part of a generated project.
|
|
134
119
|
const shared = join(templatesRoot(), "_shared");
|
|
@@ -149,35 +134,25 @@ export function initFromTemplate(template, targetDir, options = {}) {
|
|
|
149
134
|
for (const dir of (ui === "vue" ? ["frontend"] : [])) {
|
|
150
135
|
cpSync(join(shared, "third-party-notices.mjs"), join(targetDir, dir, "third-party-notices.mjs"));
|
|
151
136
|
}
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
cpSync(join(templatesRoot(), ROOT_OVERLAY, "backend/internal/app/executor_test.go"), join(targetDir, "backend/internal/app/executor_test.go"));
|
|
157
|
-
ROOT_REPLACED.forEach(file => rmSync(join(targetDir, file), { force: true }));
|
|
158
|
-
}
|
|
137
|
+
for (const path of capability.borrowed)
|
|
138
|
+
cpSync(join(templatesRoot(), path), join(targetDir, borrowedTarget(path)));
|
|
139
|
+
for (const file of capability.removed)
|
|
140
|
+
rmSync(join(targetDir, file));
|
|
159
141
|
if (caps.includes("delegate")) {
|
|
160
|
-
rmSync(join(targetDir, "backend/internal/app/delegate_none.go"));
|
|
161
142
|
const path = join(targetDir, "backend/internal/api/permissions.json");
|
|
162
143
|
const policy = JSON.parse(readFileSync(path, "utf8"));
|
|
163
144
|
policy.methods["app.status"] = "authenticated";
|
|
164
145
|
writeFileSync(path, JSON.stringify(policy, null, 2) + "\n");
|
|
165
146
|
}
|
|
166
|
-
if (background)
|
|
167
|
-
BACKGROUND_REPLACED.forEach(file => rmSync(join(targetDir, file)));
|
|
168
147
|
for (const [from, to] of Object.entries(RENAMED)) {
|
|
169
148
|
if (files.includes(from)) {
|
|
170
149
|
renameSync(join(targetDir, from), join(targetDir, to));
|
|
171
150
|
}
|
|
172
151
|
}
|
|
173
|
-
for (const file of
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
text = text.replaceAll(token, value);
|
|
178
|
-
}
|
|
179
|
-
writeFileSync(path, text);
|
|
180
|
-
}
|
|
152
|
+
for (const file of files.map(targetName))
|
|
153
|
+
substitute(join(targetDir, file), substitutions);
|
|
154
|
+
if (localSdk)
|
|
155
|
+
useLocalSdk(targetDir, localSdk);
|
|
181
156
|
if (minDsm) {
|
|
182
157
|
const manifest = join(targetDir, template !== "compose" ? "dsm-package.yaml" : "synology-app.yaml");
|
|
183
158
|
writeFileSync(manifest, readFileSync(manifest, "utf8").replace(/^os_min_ver:.*$/m, `os_min_ver: "${minDsm}"`));
|
|
@@ -189,20 +164,6 @@ export function initFromTemplate(template, targetDir, options = {}) {
|
|
|
189
164
|
}
|
|
190
165
|
if (ui !== "vue")
|
|
191
166
|
rmSync(join(targetDir, "frontend"), { recursive: true, force: true });
|
|
192
|
-
if (background) {
|
|
193
|
-
const routeTest = join(targetDir, "backend/internal/app/routes_test.go");
|
|
194
|
-
writeFileSync(routeTest, readFileSync(routeTest, "utf8").replace('want := ""', 'want := sampleOutcome[r.Method()]'));
|
|
195
|
-
}
|
|
196
|
-
if (executor) {
|
|
197
|
-
const path = join(targetDir, "backend/internal/app/routes_test.go");
|
|
198
|
-
writeFileSync(path, readFileSync(path, "utf8").replace('if strings.HasPrefix(r.Method(), "jobs.") {', 'if r.Method() == "root.run" { want = "session_required" }\n\t\tif strings.HasPrefix(r.Method(), "jobs.") {'));
|
|
199
|
-
}
|
|
200
|
-
if (background && ui === "vue") {
|
|
201
|
-
const app = join(targetDir, "frontend/src/App.vue");
|
|
202
|
-
writeFileSync(app, readFileSync(app, "utf8")
|
|
203
|
-
.replace("import AppShell from './shell/AppShell.vue'\n", "import AppShell from './shell/AppShell.vue'\nimport BackgroundPanel from './background/BackgroundPanel.vue'\n")
|
|
204
|
-
.replace(" <!-- BACKGROUND_PANEL -->", " <BackgroundPanel v-if=\"app\" :key=\"app.user\" :ctx=\"ctx\" />"));
|
|
205
|
-
}
|
|
206
167
|
if (template !== "compose") {
|
|
207
168
|
const path = join(targetDir, "dsm-package.yaml");
|
|
208
169
|
const raw = parse(readFileSync(path, "utf8"));
|
|
@@ -262,6 +223,39 @@ function sharedFolderYaml(options) {
|
|
|
262
223
|
}
|
|
263
224
|
return `\ninstall:\n sharedFolder:\n${Object.entries(folder).map(([k, v]) => ` ${k}: ${v}\n`).join("")}`;
|
|
264
225
|
}
|
|
226
|
+
/**
|
|
227
|
+
* A local sdk checkout must hold the Go module, and for a Vue frontend the
|
|
228
|
+
* built ts package: npm installs a file: package as it is, without its build.
|
|
229
|
+
*/
|
|
230
|
+
function assertLocalSdkReady(sdkDir, vue) {
|
|
231
|
+
if (!existsSync(join(sdkDir, "go.mod"))) {
|
|
232
|
+
throw new Error(`[SDK_DIR_NOT_READY] SYNOPKGLAND_SDK_DIR=${sdkDir} 沒有 go.mod;請指向 syno-pkg-land-sdk 的 checkout。`);
|
|
233
|
+
}
|
|
234
|
+
const ts = join(sdkDir, "ts");
|
|
235
|
+
if (vue && !existsSync(join(ts, "dist"))) {
|
|
236
|
+
throw new Error(`[SDK_DIR_NOT_READY] ${ts} 尚未建置;前端安裝本機 SDK 時 npm 不會替它 build。請先執行 (cd ${ts} && npm ci && npm run build),SDK 原始碼改動後也要重新 build。`);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
/** SYNOPKGLAND_SDK_DIR: the project builds against a local sdk checkout instead of the released version. */
|
|
240
|
+
function useLocalSdk(targetDir, sdkDir) {
|
|
241
|
+
const goMod = join(targetDir, "backend/go.mod");
|
|
242
|
+
writeFileSync(goMod, `${readFileSync(goMod, "utf8")}\nreplace ${SDK_MODULE} => ${sdkDir}\n`);
|
|
243
|
+
const frontend = join(targetDir, "frontend/package.json");
|
|
244
|
+
if (!existsSync(frontend))
|
|
245
|
+
return;
|
|
246
|
+
const pkg = JSON.parse(readFileSync(frontend, "utf8"));
|
|
247
|
+
pkg.dependencies[SDK_PACKAGE] = `file:${join(sdkDir, "ts")}`;
|
|
248
|
+
writeFileSync(frontend, JSON.stringify(pkg, null, 2) + "\n");
|
|
249
|
+
}
|
|
250
|
+
/** Fill the placeholders of one generated file; files without one, or removed by an overlay, stay untouched. */
|
|
251
|
+
function substitute(path, substitutions) {
|
|
252
|
+
if (!existsSync(path))
|
|
253
|
+
return;
|
|
254
|
+
const original = readFileSync(path, "utf8");
|
|
255
|
+
const text = Object.entries(substitutions).reduce((current, [token, value]) => current.replaceAll(token, value), original);
|
|
256
|
+
if (text !== original)
|
|
257
|
+
writeFileSync(path, text);
|
|
258
|
+
}
|
|
265
259
|
function substitutionsFor(template, targetDir, options) {
|
|
266
260
|
const ui = resolvedUi(template, options);
|
|
267
261
|
const caps = capabilityNames(options.with ?? []);
|
|
@@ -274,7 +268,7 @@ function substitutionsFor(template, targetDir, options) {
|
|
|
274
268
|
}
|
|
275
269
|
if (options.ui !== undefined && !["plain", "vue"].includes(options.ui))
|
|
276
270
|
throw new Error("[INIT_UI_INVALID] --ui 只接受 plain 或 vue。");
|
|
277
|
-
if (!
|
|
271
|
+
if (!IDENTIFIED.includes(template)) {
|
|
278
272
|
if (options.from && options.displayName !== undefined)
|
|
279
273
|
validDisplayName(options.displayName);
|
|
280
274
|
return {};
|
package/dist/reproducible.js
CHANGED
|
@@ -9,9 +9,9 @@ import { tmpdir } from "node:os";
|
|
|
9
9
|
import { dirname, isAbsolute, join, relative, resolve } from "node:path";
|
|
10
10
|
import { extractSpk, walkFiles } from "./build-spk/generator.js";
|
|
11
11
|
import { invalid, readReproducible } from "./reproducible-config.js";
|
|
12
|
+
import { CLI_VERSION } from "./cli-version.js";
|
|
12
13
|
export { readReproducible, validateReproducible } from "./reproducible-config.js";
|
|
13
14
|
export const FINGERPRINT_RECORD = "reproducible-fingerprint.json";
|
|
14
|
-
const CLI_VERSION = JSON.parse(readFileSync(new URL("../package.json", import.meta.url), "utf8")).version;
|
|
15
15
|
const sha256 = (bytes) => createHash("sha256").update(bytes).digest("hex");
|
|
16
16
|
function insideProject(root, path) {
|
|
17
17
|
const rel = relative(realpathSync(root), realpathSync(path));
|