@synopackageland/cli 0.4.0 → 0.5.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.
Files changed (956) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +42 -1
  3. package/dist/build-spk/delete-app-data.d.ts +27 -7
  4. package/dist/build-spk/delete-app-data.js +35 -34
  5. package/dist/build-spk/dsm-arch.d.ts +6 -1
  6. package/dist/build-spk/dsm-arch.js +25 -1
  7. package/dist/build-spk/dsm-version.d.ts +14 -0
  8. package/dist/build-spk/dsm-version.js +47 -0
  9. package/dist/build-spk/gateway.d.ts +31 -0
  10. package/dist/build-spk/gateway.js +55 -0
  11. package/dist/build-spk/generator.d.ts +5 -0
  12. package/dist/build-spk/generator.js +106 -107
  13. package/dist/build-spk/install-wizard.d.ts +20 -0
  14. package/dist/build-spk/install-wizard.js +76 -0
  15. package/dist/build-spk/native-lifecycle.d.ts +5 -0
  16. package/dist/build-spk/native-lifecycle.js +12 -2
  17. package/dist/build-spk/notices.d.ts +5 -0
  18. package/dist/build-spk/notices.js +60 -0
  19. package/dist/build-spk/resource-worker.d.ts +9 -4
  20. package/dist/build-spk/resource-worker.js +15 -6
  21. package/dist/build-spk/share-combobox.d.ts +3 -0
  22. package/dist/build-spk/share-combobox.js +27 -0
  23. package/dist/build-spk/uninstall-wizard.d.ts +14 -0
  24. package/dist/build-spk/uninstall-wizard.js +33 -0
  25. package/dist/build-spk/wizard-i18n.d.ts +18 -0
  26. package/dist/build-spk/wizard-i18n.js +38 -0
  27. package/dist/build-spk/wizard-messages.d.ts +388 -0
  28. package/dist/build-spk/wizard-messages.js +387 -0
  29. package/dist/cli.js +136 -29
  30. package/dist/compose/analyze.d.ts +20 -0
  31. package/dist/compose/analyze.js +75 -11
  32. package/dist/contract/validate.js +33 -1
  33. package/dist/contract/web-launch.d.ts +22 -0
  34. package/dist/contract/web-launch.js +37 -0
  35. package/dist/deploy/deploy.d.ts +3 -0
  36. package/dist/deploy/deploy.js +11 -2
  37. package/dist/error-registry.js +80 -1
  38. package/dist/host/open-url.d.ts +2 -0
  39. package/dist/host/open-url.js +4 -1
  40. package/dist/images/pin.d.ts +52 -0
  41. package/dist/images/pin.js +249 -0
  42. package/dist/init.d.ts +29 -1
  43. package/dist/init.js +122 -25
  44. package/dist/inspect.d.ts +3 -0
  45. package/dist/inspect.js +15 -3
  46. package/dist/standalone/background.d.ts +21 -0
  47. package/dist/standalone/background.js +52 -0
  48. package/dist/standalone/binary.d.ts +1 -0
  49. package/dist/standalone/binary.js +1 -1
  50. package/dist/standalone/build.d.ts +2 -0
  51. package/dist/standalone/build.js +40 -6
  52. package/dist/standalone/daemon.d.ts +23 -0
  53. package/dist/standalone/daemon.js +114 -0
  54. package/dist/standalone/dsm-window.d.ts +1 -1
  55. package/dist/standalone/dsm-window.js +52 -12
  56. package/dist/standalone/helper-inventory.d.ts +31 -0
  57. package/dist/standalone/helper-inventory.js +11 -0
  58. package/dist/standalone/helper.d.ts +3 -12
  59. package/dist/standalone/helper.js +31 -12
  60. package/dist/standalone/host-adapter.d.ts +5 -0
  61. package/dist/standalone/host-adapter.js +166 -0
  62. package/dist/standalone/host-file-navigation.d.ts +7 -0
  63. package/dist/standalone/host-file-navigation.js +172 -0
  64. package/dist/standalone/host-platform.d.ts +13 -0
  65. package/dist/standalone/host-platform.js +42 -0
  66. package/dist/standalone/host-types.d.ts +49 -0
  67. package/dist/standalone/host-types.js +1 -0
  68. package/dist/standalone/inspect-helper.d.ts +6 -0
  69. package/dist/standalone/inspect-helper.js +93 -0
  70. package/dist/standalone/inspect-spk.d.ts +3 -1
  71. package/dist/standalone/inspect-spk.js +247 -5
  72. package/dist/standalone/job-diagnostics.d.ts +1 -0
  73. package/dist/standalone/job-diagnostics.js +49 -0
  74. package/dist/standalone/lifecycle-helper.d.ts +2 -0
  75. package/dist/standalone/lifecycle-helper.js +12 -0
  76. package/dist/standalone/lifecycle.d.ts +3 -0
  77. package/dist/standalone/lifecycle.js +63 -0
  78. package/dist/standalone/manifest.d.ts +17 -2
  79. package/dist/standalone/manifest.js +40 -6
  80. package/dist/standalone/native-layout.d.ts +74 -0
  81. package/dist/standalone/native-layout.js +318 -0
  82. package/dist/standalone/reopen-events.d.ts +2 -0
  83. package/dist/standalone/reopen-events.js +28 -0
  84. package/dist/standalone/resource.d.ts +11 -0
  85. package/dist/standalone/resource.js +13 -0
  86. package/dist/standalone/root-messages.js +9 -0
  87. package/dist/standalone/root-window.d.ts +6 -3
  88. package/dist/standalone/root-window.js +160 -30
  89. package/dist/standalone/shared-folder.d.ts +39 -0
  90. package/dist/standalone/shared-folder.js +141 -0
  91. package/dist/standalone/spk.d.ts +6 -3
  92. package/dist/standalone/spk.js +52 -35
  93. package/dist/standalone/worker-contract-json.d.ts +8 -0
  94. package/dist/standalone/worker-contract-json.js +141 -0
  95. package/dist/standalone/worker-contract.d.ts +189 -0
  96. package/dist/standalone/worker-contract.js +175 -0
  97. package/dist/standalone/worker-registry.d.ts +40 -0
  98. package/dist/standalone/worker-registry.js +167 -0
  99. package/dist/template-paths.d.ts +2 -0
  100. package/dist/template-paths.js +9 -0
  101. package/dist/templates/_daemon/fixture_linux_test.go +15 -0
  102. package/dist/templates/_daemon/fixture_other_test.go +7 -0
  103. package/dist/templates/_daemon/go.mod +5 -0
  104. package/dist/templates/_daemon/main.go +608 -0
  105. package/dist/templates/_daemon/main_test.go +242 -0
  106. package/dist/templates/_daemon/process_linux.go +55 -0
  107. package/dist/templates/_daemon/process_linux_test.go +161 -0
  108. package/dist/templates/_daemon/process_other.go +14 -0
  109. package/dist/templates/_daemon/testdata/child.go +41 -0
  110. package/dist/templates/_gateway/auth.go +101 -0
  111. package/dist/templates/_gateway/auth_test.go +216 -0
  112. package/dist/templates/_gateway/cgi.go +133 -0
  113. package/dist/templates/_gateway/cgi_test.go +156 -0
  114. package/dist/templates/_gateway/csrf.go +73 -0
  115. package/dist/templates/_gateway/csrf_test.go +155 -0
  116. package/dist/templates/_gateway/directory.go +108 -0
  117. package/dist/templates/_gateway/directory_test.go +202 -0
  118. package/dist/templates/_gateway/gateway.go +412 -0
  119. package/dist/templates/_gateway/gateway_test.go +676 -0
  120. package/dist/templates/_gateway/go.mod +3 -0
  121. package/dist/templates/_gateway/groups.go +66 -0
  122. package/dist/templates/_gateway/main.go +45 -0
  123. package/dist/templates/_shared/GO-LICENSE +27 -0
  124. package/dist/templates/_shared/GO-PATENTS +22 -0
  125. package/dist/templates/_shared/LICENSES/TEMPLATE.txt +21 -0
  126. package/dist/templates/_shared/notice-overrides/index.json +14 -0
  127. package/dist/templates/_shared/notice-overrides/utils-0.4.2-LICENSE +21 -0
  128. package/dist/templates/_shared/notice-overrides/utils-0.5.0-LICENSE +21 -0
  129. package/dist/templates/_shared/third-party-notices.mjs +51 -0
  130. package/dist/templates/binary/synology-app.yaml +1 -1
  131. package/dist/templates/compose-import/compose.yaml +1 -1
  132. package/dist/templates/compose-import/synology-app.yaml +1 -1
  133. package/dist/templates/hello-files/compose.yaml +1 -1
  134. package/dist/templates/hello-files/synology-app.yaml +1 -1
  135. package/dist/templates/hello-web/compose.yaml +5 -2
  136. package/dist/templates/hello-web/synology-app.yaml +4 -1
  137. package/dist/templates/hello-web-page/compose.yaml +5 -2
  138. package/dist/templates/hello-web-page/synology-app.yaml +4 -1
  139. package/dist/templates/native-go/README.md +149 -4
  140. package/dist/templates/native-go/backend/THIRD_PARTY_NOTICES.txt +61 -0
  141. package/dist/templates/native-go/backend/cmd/app/main.go +17 -0
  142. package/dist/templates/native-go/backend/cmd/app/sdk_main.go +60 -0
  143. package/dist/templates/native-go/backend/cmd/background-worker/main.go +38 -0
  144. package/dist/templates/native-go/backend/cmd/dsm-readonly-probe/main_linux.go +46 -0
  145. package/dist/templates/native-go/backend/cmd/helper/main.go +10 -1
  146. package/dist/templates/native-go/backend/cmd/helper/sdk_registry.go +19 -0
  147. package/dist/templates/native-go/backend/go.mod +7 -1
  148. package/dist/templates/native-go/backend/go.sum +4 -0
  149. package/dist/templates/native-go/backend/internal/api/binary.go +154 -0
  150. package/dist/templates/native-go/backend/internal/api/binary_test.go +165 -0
  151. package/dist/templates/native-go/backend/internal/api/registry.go +28 -7
  152. package/dist/templates/native-go/backend/internal/api/server.go +11 -1
  153. package/dist/templates/native-go/backend/internal/app/background.go +270 -0
  154. package/dist/templates/native-go/backend/internal/app/background_none.go +8 -0
  155. package/dist/templates/native-go/backend/internal/app/background_owner.go +59 -0
  156. package/dist/templates/native-go/backend/internal/app/background_owner_test.go +145 -0
  157. package/dist/templates/native-go/backend/internal/app/background_schedule.go +74 -0
  158. package/dist/templates/native-go/backend/internal/app/background_schedule_test.go +62 -0
  159. package/dist/templates/native-go/backend/internal/app/background_test.go +346 -0
  160. package/dist/templates/native-go/backend/internal/app/integration_state.go +16 -0
  161. package/dist/templates/native-go/backend/internal/app/migrations.go +41 -0
  162. package/dist/templates/native-go/backend/internal/app/migrations_test.go +41 -0
  163. package/dist/templates/native-go/backend/internal/app/nas_cgi_artifact_test.go +129 -0
  164. package/dist/templates/native-go/backend/internal/app/nas_refusal_test.go +46 -0
  165. package/dist/templates/native-go/backend/internal/app/routes.go +28 -3
  166. package/dist/templates/native-go/backend/internal/app/routes_test.go +27 -5
  167. package/dist/templates/native-go/backend/internal/app/sdk_jobs.go +70 -0
  168. package/dist/templates/native-go/backend/internal/app/sdk_jobs_test.go +116 -0
  169. package/dist/templates/native-go/backend/internal/app/sdk_routes.go +174 -0
  170. package/dist/templates/native-go/backend/internal/app/session_files.go +15 -0
  171. package/dist/templates/native-go/backend/internal/app/session_files_test.go +26 -0
  172. package/dist/templates/native-go/backend/internal/app/shared_folder.go +144 -0
  173. package/dist/templates/native-go/backend/internal/app/shared_folder_test.go +158 -0
  174. package/dist/templates/native-go/backend/internal/background/access.go +57 -0
  175. package/dist/templates/native-go/backend/internal/background/owner_test.go +126 -0
  176. package/dist/templates/native-go/backend/internal/background/runner.go +185 -0
  177. package/dist/templates/native-go/backend/internal/background/runner_test.go +209 -0
  178. package/dist/templates/native-go/backend/internal/background/schedule.go +300 -0
  179. package/dist/templates/native-go/backend/internal/background/schedule_test.go +335 -0
  180. package/dist/templates/native-go/backend/internal/background/store.go +807 -0
  181. package/dist/templates/native-go/backend/internal/background/store_test.go +407 -0
  182. package/dist/templates/native-go/backend/internal/datamigrate/migrate.go +191 -0
  183. package/dist/templates/native-go/backend/internal/datamigrate/migrate_test.go +177 -0
  184. package/dist/templates/native-go/backend/internal/dsmprobe/collector_linux.go +335 -0
  185. package/dist/templates/native-go/backend/internal/dsmprobe/collector_linux_test.go +41 -0
  186. package/dist/templates/native-go/backend/internal/dsmprobe/protocol.go +179 -0
  187. package/dist/templates/native-go/backend/internal/dsmprobe/protocol_test.go +29 -0
  188. package/dist/templates/native-go/backend/internal/filestation/browse_test.go +67 -0
  189. package/dist/templates/native-go/backend/internal/filestation/client.go +251 -0
  190. package/dist/templates/native-go/backend/internal/filestation/client_test.go +155 -0
  191. package/dist/templates/native-go/backend/internal/filestation/doc.go +4 -0
  192. package/dist/templates/native-go/backend/internal/filestation/read_file_test.go +90 -0
  193. package/dist/templates/native-go/backend/internal/filestation/repository.go +207 -0
  194. package/dist/templates/native-go/backend/internal/filestation/repository_test.go +104 -0
  195. package/dist/templates/native-go/backend/internal/filestation/sdk_session.go +241 -0
  196. package/dist/templates/native-go/backend/internal/filestation/sdk_session_test.go +183 -0
  197. package/dist/templates/native-go/backend/internal/filestation/service.go +254 -0
  198. package/dist/templates/native-go/backend/internal/filestation/service_test.go +94 -0
  199. package/dist/templates/native-go/backend/internal/filestation/session_semantics_test.go +383 -0
  200. package/dist/templates/native-go/backend/internal/filestation/write.go +72 -0
  201. package/dist/templates/native-go/backend/internal/filestation/write_test.go +123 -0
  202. package/dist/templates/native-go/backend/internal/helper/background_proof.go +163 -0
  203. package/dist/templates/native-go/backend/internal/helper/background_proof_contract.go +46 -0
  204. package/dist/templates/native-go/backend/internal/helper/background_proof_test.go +161 -0
  205. package/dist/templates/native-go/backend/internal/helper/cohort.go +393 -0
  206. package/dist/templates/native-go/backend/internal/helper/cohort_publication.go +18 -0
  207. package/dist/templates/native-go/backend/internal/helper/cohort_publication_test.go +105 -0
  208. package/dist/templates/native-go/backend/internal/helper/cohort_test.go +372 -0
  209. package/dist/templates/native-go/backend/internal/helper/control.go +226 -21
  210. package/dist/templates/native-go/backend/internal/helper/control_test.go +10 -2
  211. package/dist/templates/native-go/backend/internal/helper/data_contract.go +245 -0
  212. package/dist/templates/native-go/backend/internal/helper/data_contract_test.go +51 -0
  213. package/dist/templates/native-go/backend/internal/helper/data_decode.go +184 -0
  214. package/dist/templates/native-go/backend/internal/helper/data_decode_pointer_test.go +30 -0
  215. package/dist/templates/native-go/backend/internal/helper/data_protocol.go +419 -0
  216. package/dist/templates/native-go/backend/internal/helper/data_protocol_test.go +449 -0
  217. package/dist/templates/native-go/backend/internal/helper/dsm_acl_linux.go +139 -0
  218. package/dist/templates/native-go/backend/internal/helper/dsm_acl_linux_test.go +121 -0
  219. package/dist/templates/native-go/backend/internal/helper/dsm_acl_syscall_linux.go +95 -0
  220. package/dist/templates/native-go/backend/internal/helper/dsm_acl_syscall_linux_test.go +56 -0
  221. package/dist/templates/native-go/backend/internal/helper/dsm_bridge_linux.go +144 -0
  222. package/dist/templates/native-go/backend/internal/helper/dsm_bridge_linux_test.go +89 -0
  223. package/dist/templates/native-go/backend/internal/helper/dsm_home_linux.go +107 -0
  224. package/dist/templates/native-go/backend/internal/helper/dsm_home_linux_test.go +82 -0
  225. package/dist/templates/native-go/backend/internal/helper/dsm_probe_transport_linux.go +151 -0
  226. package/dist/templates/native-go/backend/internal/helper/dsm_probe_transport_linux_test.go +66 -0
  227. package/dist/templates/native-go/backend/internal/helper/grant_authority.go +519 -0
  228. package/dist/templates/native-go/backend/internal/helper/grant_authority_contract.go +88 -0
  229. package/dist/templates/native-go/backend/internal/helper/grant_authority_test.go +510 -0
  230. package/dist/templates/native-go/backend/internal/helper/grant_cohort.go +389 -0
  231. package/dist/templates/native-go/backend/internal/helper/grant_cohort_test.go +239 -0
  232. package/dist/templates/native-go/backend/internal/helper/grant_delivery.go +49 -0
  233. package/dist/templates/native-go/backend/internal/helper/grant_delivery_methods.go +273 -0
  234. package/dist/templates/native-go/backend/internal/helper/grant_delivery_test.go +322 -0
  235. package/dist/templates/native-go/backend/internal/helper/grant_operation_contract.go +47 -0
  236. package/dist/templates/native-go/backend/internal/helper/grant_readonly_test.go +180 -0
  237. package/dist/templates/native-go/backend/internal/helper/grant_repository_linux.go +416 -0
  238. package/dist/templates/native-go/backend/internal/helper/grant_repository_linux_test.go +469 -0
  239. package/dist/templates/native-go/backend/internal/helper/grant_rpc.go +147 -0
  240. package/dist/templates/native-go/backend/internal/helper/grant_rpc_test.go +51 -0
  241. package/dist/templates/native-go/backend/internal/helper/grant_snapshot.go +78 -0
  242. package/dist/templates/native-go/backend/internal/helper/grant_supervisor_linux.go +134 -0
  243. package/dist/templates/native-go/backend/internal/helper/grant_supervisor_linux_test.go +254 -0
  244. package/dist/templates/native-go/backend/internal/helper/jobcontract/bindings.go +48 -0
  245. package/dist/templates/native-go/backend/internal/helper/jobcontract/contract_test.go +436 -0
  246. package/dist/templates/native-go/backend/internal/helper/jobcontract/decode.go +185 -0
  247. package/dist/templates/native-go/backend/internal/helper/jobcontract/digest.go +55 -0
  248. package/dist/templates/native-go/backend/internal/helper/jobcontract/registry.go +85 -0
  249. package/dist/templates/native-go/backend/internal/helper/jobcontract/registry_test.go +73 -0
  250. package/dist/templates/native-go/backend/internal/helper/jobcontract/result.go +53 -0
  251. package/dist/templates/native-go/backend/internal/helper/jobcontract/stub.go +8 -0
  252. package/dist/templates/native-go/backend/internal/helper/jobcontract/testdata/input-digests.json +127 -0
  253. package/dist/templates/native-go/backend/internal/helper/jobcontract/types.go +234 -0
  254. package/dist/templates/native-go/backend/internal/helper/jobcontract/types_test.go +29 -0
  255. package/dist/templates/native-go/backend/internal/helper/jobcontract/validate.go +462 -0
  256. package/dist/templates/native-go/backend/internal/helper/lease.go +112 -0
  257. package/dist/templates/native-go/backend/internal/helper/lease_linux.go +44 -0
  258. package/dist/templates/native-go/backend/internal/helper/lease_other.go +8 -0
  259. package/dist/templates/native-go/backend/internal/helper/legacy_authority_schema_linux_test.go +34 -0
  260. package/dist/templates/native-go/backend/internal/helper/legacy_authority_schema_test.go +6 -0
  261. package/dist/templates/native-go/backend/internal/helper/lifecycle.go +234 -0
  262. package/dist/templates/native-go/backend/internal/helper/lifecycle_test.go +473 -0
  263. package/dist/templates/native-go/backend/internal/helper/managed_pilot.go +284 -0
  264. package/dist/templates/native-go/backend/internal/helper/managed_pilot_repository_linux.go +74 -0
  265. package/dist/templates/native-go/backend/internal/helper/managed_pilot_repository_linux_test.go +40 -0
  266. package/dist/templates/native-go/backend/internal/helper/managed_pilot_test.go +210 -0
  267. package/dist/templates/native-go/backend/internal/helper/management.go +79 -0
  268. package/dist/templates/native-go/backend/internal/helper/nas_shipped_refusal_linux_test.go +97 -0
  269. package/dist/templates/native-go/backend/internal/helper/native_discovery.go +79 -0
  270. package/dist/templates/native-go/backend/internal/helper/native_identity.go +89 -0
  271. package/dist/templates/native-go/backend/internal/helper/native_provider.go +159 -0
  272. package/dist/templates/native-go/backend/internal/helper/native_provider_test.go +421 -0
  273. package/dist/templates/native-go/backend/internal/helper/observation.go +244 -0
  274. package/dist/templates/native-go/backend/internal/helper/observation_health_test.go +127 -0
  275. package/dist/templates/native-go/backend/internal/helper/observation_reload_budget_test.go +117 -0
  276. package/dist/templates/native-go/backend/internal/helper/observation_test.go +196 -0
  277. package/dist/templates/native-go/backend/internal/helper/observer_diagnostic.go +155 -0
  278. package/dist/templates/native-go/backend/internal/helper/observer_diagnostic_linux.go +76 -0
  279. package/dist/templates/native-go/backend/internal/helper/observer_diagnostic_linux_test.go +130 -0
  280. package/dist/templates/native-go/backend/internal/helper/observer_diagnostic_test.go +98 -0
  281. package/dist/templates/native-go/backend/internal/helper/observer_diagnostic_writer.go +40 -0
  282. package/dist/templates/native-go/backend/internal/helper/operation_bootstrap_linux.go +193 -0
  283. package/dist/templates/native-go/backend/internal/helper/operation_credentials_linux.go +56 -0
  284. package/dist/templates/native-go/backend/internal/helper/operation_linux.go +480 -0
  285. package/dist/templates/native-go/backend/internal/helper/operation_linux_test.go +528 -0
  286. package/dist/templates/native-go/backend/internal/helper/process_linux.go +14 -1
  287. package/dist/templates/native-go/backend/internal/helper/publication_test.go +178 -0
  288. package/dist/templates/native-go/backend/internal/helper/query_deadline_linux_test.go +115 -0
  289. package/dist/templates/native-go/backend/internal/helper/query_pending_diagnostic_test.go +254 -0
  290. package/dist/templates/native-go/backend/internal/helper/read_stream_cohort_linux_test.go +156 -0
  291. package/dist/templates/native-go/backend/internal/helper/read_transfer.go +40 -0
  292. package/dist/templates/native-go/backend/internal/helper/read_transfer_linux.go +109 -0
  293. package/dist/templates/native-go/backend/internal/helper/read_transfer_linux_test.go +118 -0
  294. package/dist/templates/native-go/backend/internal/helper/read_transfer_test.go +177 -0
  295. package/dist/templates/native-go/backend/internal/helper/readonly.go +105 -0
  296. package/dist/templates/native-go/backend/internal/helper/readonly_admission.go +85 -0
  297. package/dist/templates/native-go/backend/internal/helper/readonly_cohort_linux_test.go +253 -0
  298. package/dist/templates/native-go/backend/internal/helper/readonly_linux_test.go +378 -0
  299. package/dist/templates/native-go/backend/internal/helper/readonly_mount_linux.go +65 -0
  300. package/dist/templates/native-go/backend/internal/helper/readonly_mount_proxy_linux.go +113 -0
  301. package/dist/templates/native-go/backend/internal/helper/readonly_operations_linux.go +168 -0
  302. package/dist/templates/native-go/backend/internal/helper/readonly_resolver_linux.go +241 -0
  303. package/dist/templates/native-go/backend/internal/helper/readonly_test.go +40 -0
  304. package/dist/templates/native-go/backend/internal/helper/relaxed_identity.go +252 -0
  305. package/dist/templates/native-go/backend/internal/helper/relaxed_identity_contract.go +105 -0
  306. package/dist/templates/native-go/backend/internal/helper/relaxed_identity_test.go +406 -0
  307. package/dist/templates/native-go/backend/internal/helper/relaxed_invalidation.go +203 -0
  308. package/dist/templates/native-go/backend/internal/helper/repair.go +132 -0
  309. package/dist/templates/native-go/backend/internal/helper/repair_test.go +271 -0
  310. package/dist/templates/native-go/backend/internal/helper/s1r_actor_acl_linux_test.go +303 -0
  311. package/dist/templates/native-go/backend/internal/helper/s1r_actor_fixture_linux_test.go +184 -0
  312. package/dist/templates/native-go/backend/internal/helper/s1r_actor_races_linux_test.go +250 -0
  313. package/dist/templates/native-go/backend/internal/helper/s1r_fixture_contract_linux_test.go +18 -0
  314. package/dist/templates/native-go/backend/internal/helper/sdk_assembly_linux.go +51 -0
  315. package/dist/templates/native-go/backend/internal/helper/sdk_attach.go +83 -0
  316. package/dist/templates/native-go/backend/internal/helper/sdk_attach_contract.go +32 -0
  317. package/dist/templates/native-go/backend/internal/helper/sdk_attach_test.go +184 -0
  318. package/dist/templates/native-go/backend/internal/helper/sdk_authority_schema_test.go +6 -0
  319. package/dist/templates/native-go/backend/internal/helper/sdk_background_authority.go +832 -0
  320. package/dist/templates/native-go/backend/internal/helper/sdk_background_authority_test.go +714 -0
  321. package/dist/templates/native-go/backend/internal/helper/sdk_background_invalidation.go +218 -0
  322. package/dist/templates/native-go/backend/internal/helper/sdk_background_lease.go +218 -0
  323. package/dist/templates/native-go/backend/internal/helper/sdk_background_snapshot.go +110 -0
  324. package/dist/templates/native-go/backend/internal/helper/sdk_background_store_linux_test.go +261 -0
  325. package/dist/templates/native-go/backend/internal/helper/sdk_background_store_test.go +58 -0
  326. package/dist/templates/native-go/backend/internal/helper/sdk_bindings.go +60 -0
  327. package/dist/templates/native-go/backend/internal/helper/sdk_data_contract.go +251 -0
  328. package/dist/templates/native-go/backend/internal/helper/sdk_data_protocol.go +424 -0
  329. package/dist/templates/native-go/backend/internal/helper/sdk_dispatch_absence_test.go +51 -0
  330. package/dist/templates/native-go/backend/internal/helper/sdk_display.go +488 -0
  331. package/dist/templates/native-go/backend/internal/helper/sdk_display_contract.go +121 -0
  332. package/dist/templates/native-go/backend/internal/helper/sdk_display_test.go +459 -0
  333. package/dist/templates/native-go/backend/internal/helper/sdk_grant_authority.go +559 -0
  334. package/dist/templates/native-go/backend/internal/helper/sdk_grant_repository_linux.go +417 -0
  335. package/dist/templates/native-go/backend/internal/helper/sdk_grant_snapshot.go +94 -0
  336. package/dist/templates/native-go/backend/internal/helper/sdk_history.go +80 -0
  337. package/dist/templates/native-go/backend/internal/helper/sdk_history_test.go +76 -0
  338. package/dist/templates/native-go/backend/internal/helper/sdk_job.go +697 -0
  339. package/dist/templates/native-go/backend/internal/helper/sdk_job_child_linux.go +309 -0
  340. package/dist/templates/native-go/backend/internal/helper/sdk_job_contract.go +122 -0
  341. package/dist/templates/native-go/backend/internal/helper/sdk_job_linux_test.go +159 -0
  342. package/dist/templates/native-go/backend/internal/helper/sdk_job_process_linux.go +327 -0
  343. package/dist/templates/native-go/backend/internal/helper/sdk_job_test.go +501 -0
  344. package/dist/templates/native-go/backend/internal/helper/sdk_job_vm_linux_test.go +343 -0
  345. package/dist/templates/native-go/backend/internal/helper/sdk_journal.go +77 -0
  346. package/dist/templates/native-go/backend/internal/helper/sdk_journal_linux.go +244 -0
  347. package/dist/templates/native-go/backend/internal/helper/sdk_journal_linux_test.go +295 -0
  348. package/dist/templates/native-go/backend/internal/helper/sdk_journal_test.go +71 -0
  349. package/dist/templates/native-go/backend/internal/helper/sdk_picker_test.go +50 -0
  350. package/dist/templates/native-go/backend/internal/helper/sdk_process_linux.go +184 -0
  351. package/dist/templates/native-go/backend/internal/helper/sdk_public_vm_linux_test.go +129 -0
  352. package/dist/templates/native-go/backend/internal/helper/sdk_relaxed_invalidation.go +242 -0
  353. package/dist/templates/native-go/backend/internal/helper/sdk_rpc.go +299 -0
  354. package/dist/templates/native-go/backend/internal/helper/sdk_rpc_contract.go +70 -0
  355. package/dist/templates/native-go/backend/internal/helper/sdk_rpc_test.go +135 -0
  356. package/dist/templates/native-go/backend/internal/helper/sdk_server_linux.go +152 -0
  357. package/dist/templates/native-go/backend/internal/helper/sdk_session.go +677 -0
  358. package/dist/templates/native-go/backend/internal/helper/sdk_session_contract.go +72 -0
  359. package/dist/templates/native-go/backend/internal/helper/sdk_session_fence_test.go +215 -0
  360. package/dist/templates/native-go/backend/internal/helper/sdk_session_test.go +475 -0
  361. package/dist/templates/native-go/backend/internal/helper/sdk_supervisor_frame.go +78 -0
  362. package/dist/templates/native-go/backend/internal/helper/sdk_supervisor_linux.go +414 -0
  363. package/dist/templates/native-go/backend/internal/helper/sdk_transport.go +79 -0
  364. package/dist/templates/native-go/backend/internal/helper/sdk_transport_linux.go +82 -0
  365. package/dist/templates/native-go/backend/internal/helper/sdk_transport_test.go +64 -0
  366. package/dist/templates/native-go/backend/internal/helper/server_linux.go +47 -3
  367. package/dist/templates/native-go/backend/internal/helper/stale_management_linux_test.go +126 -0
  368. package/dist/templates/native-go/backend/internal/helper/stale_management_test.go +122 -0
  369. package/dist/templates/native-go/backend/internal/helper/startup_diagnostic.go +68 -0
  370. package/dist/templates/native-go/backend/internal/helper/startup_diagnostic_linux_test.go +126 -0
  371. package/dist/templates/native-go/backend/internal/helper/startup_diagnostic_test.go +117 -0
  372. package/dist/templates/native-go/backend/internal/helper/status.go +83 -11
  373. package/dist/templates/native-go/backend/internal/helper/status_test.go +128 -0
  374. package/dist/templates/native-go/backend/internal/helper/supervision.go +28 -5
  375. package/dist/templates/native-go/backend/internal/helper/supervisor_frame.go +79 -0
  376. package/dist/templates/native-go/backend/internal/helper/supervisor_frame_linux_test.go +69 -0
  377. package/dist/templates/native-go/backend/internal/helper/supervisor_frame_test.go +107 -0
  378. package/dist/templates/native-go/backend/internal/helper/supervisor_linux.go +191 -16
  379. package/dist/templates/native-go/backend/internal/helper/supervisor_linux_test.go +618 -7
  380. package/dist/templates/native-go/backend/internal/helper/supervisor_socket_eof_test.go +74 -0
  381. package/dist/templates/native-go/backend/internal/helper/supervisor_socket_test.go +45 -0
  382. package/dist/templates/native-go/backend/internal/helper/testdata/protocol2/create.json +23 -0
  383. package/dist/templates/native-go/backend/internal/helper/testdata/protocol2/frames.json +67 -0
  384. package/dist/templates/native-go/backend/internal/helper/testdata/protocol2/grant-store.json +52 -0
  385. package/dist/templates/native-go/backend/internal/helper/testdata/protocol2/intent.json +20 -0
  386. package/dist/templates/native-go/backend/internal/helper/testdata/protocol2/list.json +20 -0
  387. package/dist/templates/native-go/backend/internal/helper/testdata/protocol2/publish.json +20 -0
  388. package/dist/templates/native-go/backend/internal/helper/testdata/protocol2/read.json +22 -0
  389. package/dist/templates/native-go/backend/internal/helper/testdata/protocol2/stat.json +22 -0
  390. package/dist/templates/native-go/backend/internal/helper/testdata/protocol2/write-stream.json +22 -0
  391. package/dist/templates/native-go/backend/internal/helper/unit_connection.go +75 -0
  392. package/dist/templates/native-go/backend/internal/helper/unit_connection_linux_test.go +135 -0
  393. package/dist/templates/native-go/backend/internal/helper/unit_connection_test.go +151 -0
  394. package/dist/templates/native-go/backend/internal/helper/unit_frame_test.go +32 -0
  395. package/dist/templates/native-go/backend/internal/helper/unit_linux.go +368 -0
  396. package/dist/templates/native-go/backend/internal/helper/unit_linux_test.go +46 -0
  397. package/dist/templates/native-go/backend/internal/helper/unit_mechanisms_linux_test.go +217 -0
  398. package/dist/templates/native-go/backend/internal/helper/unit_padding_linux_test.go +178 -0
  399. package/dist/templates/native-go/backend/internal/helper/unit_query_linux.go +115 -0
  400. package/dist/templates/native-go/backend/internal/helper/unit_reload_linux_test.go +372 -0
  401. package/dist/templates/native-go/backend/internal/helper/unit_reload_sequence_linux_test.go +232 -0
  402. package/dist/templates/native-go/backend/internal/helper/write.go +77 -0
  403. package/dist/templates/native-go/backend/internal/helper/write_admission.go +260 -0
  404. package/dist/templates/native-go/backend/internal/helper/write_admission_test.go +135 -0
  405. package/dist/templates/native-go/backend/internal/helper/write_cohort_linux_test.go +218 -0
  406. package/dist/templates/native-go/backend/internal/helper/write_files_linux.go +205 -0
  407. package/dist/templates/native-go/backend/internal/helper/write_files_linux_test.go +225 -0
  408. package/dist/templates/native-go/backend/internal/helper/write_intent_linux.go +116 -0
  409. package/dist/templates/native-go/backend/internal/helper/write_intent_linux_test.go +74 -0
  410. package/dist/templates/native-go/backend/internal/helper/write_operation_linux.go +245 -0
  411. package/dist/templates/native-go/backend/internal/helper/write_test.go +53 -0
  412. package/dist/templates/native-go/dsm-package.yaml +1 -1
  413. package/dist/templates/native-go/ui/app.js +8 -1
  414. package/dist/templates/native-go-background/BACKGROUND.md +111 -0
  415. package/dist/templates/native-go-background/backend/internal/app/background_on.go +7 -0
  416. package/dist/templates/native-go-background/backend/internal/app/background_routes_test.go +32 -0
  417. package/dist/templates/native-go-background/frontend/src/background/BackgroundPanel.vue +178 -0
  418. package/dist/templates/native-go-background/frontend/src/background/i18n/de.json +83 -0
  419. package/dist/templates/native-go-background/frontend/src/background/i18n/en.json +83 -0
  420. package/dist/templates/native-go-background/frontend/src/background/i18n/es.json +83 -0
  421. package/dist/templates/native-go-background/frontend/src/background/i18n/fr.json +83 -0
  422. package/dist/templates/native-go-background/frontend/src/background/i18n/it.json +83 -0
  423. package/dist/templates/native-go-background/frontend/src/background/i18n/ja.json +83 -0
  424. package/dist/templates/native-go-background/frontend/src/background/i18n/ko.json +83 -0
  425. package/dist/templates/native-go-background/frontend/src/background/i18n/zh-CN.json +83 -0
  426. package/dist/templates/native-go-background/frontend/src/background/i18n/zh-TW.json +83 -0
  427. package/dist/templates/native-go-background/frontend/src/background/i18n.ts +19 -0
  428. package/dist/templates/native-go-background/frontend/src/background/picker-provider.ts +13 -0
  429. package/dist/templates/native-go-background/frontend/test/background.test.ts +179 -0
  430. package/dist/templates/native-go-better-auth/node/build.mjs +2 -0
  431. package/dist/templates/native-go-integration/backend/internal/app/personal.go +2 -2
  432. package/dist/templates/native-go-integration/backend/internal/app/personal_test.go +37 -0
  433. package/dist/templates/native-go-vue/README.md +151 -6
  434. package/dist/templates/native-go-vue/frontend/DESIGN.md +16 -4
  435. package/dist/templates/native-go-vue/frontend/README-JOBS.md +75 -0
  436. package/dist/templates/native-go-vue/frontend/README-M2.md +64 -0
  437. package/dist/templates/native-go-vue/frontend/package-lock.json +137 -233
  438. package/dist/templates/native-go-vue/frontend/package.json +2 -2
  439. package/dist/templates/native-go-vue/frontend/src/App.vue +71 -16
  440. package/dist/templates/native-go-vue/frontend/src/M2App.vue +57 -0
  441. package/dist/templates/native-go-vue/frontend/src/SDKApp.vue +203 -0
  442. package/dist/templates/native-go-vue/frontend/src/context.ts +41 -2
  443. package/dist/templates/native-go-vue/frontend/src/jobs/InteractiveJobForm.vue +70 -0
  444. package/dist/templates/native-go-vue/frontend/src/jobs/JobsAdminPanel.vue +33 -0
  445. package/dist/templates/native-go-vue/frontend/src/jobs/JobsPanel.vue +135 -0
  446. package/dist/templates/native-go-vue/frontend/src/jobs/connected-provider.ts +179 -0
  447. package/dist/templates/native-go-vue/frontend/src/jobs/i18n/de.json +62 -0
  448. package/dist/templates/native-go-vue/frontend/src/jobs/i18n/en.json +62 -0
  449. package/dist/templates/native-go-vue/frontend/src/jobs/i18n/es.json +62 -0
  450. package/dist/templates/native-go-vue/frontend/src/jobs/i18n/fr.json +62 -0
  451. package/dist/templates/native-go-vue/frontend/src/jobs/i18n/it.json +62 -0
  452. package/dist/templates/native-go-vue/frontend/src/jobs/i18n/ja.json +62 -0
  453. package/dist/templates/native-go-vue/frontend/src/jobs/i18n/ko.json +62 -0
  454. package/dist/templates/native-go-vue/frontend/src/jobs/i18n/zh-CN.json +62 -0
  455. package/dist/templates/native-go-vue/frontend/src/jobs/i18n/zh-TW.json +62 -0
  456. package/dist/templates/native-go-vue/frontend/src/jobs/i18n.ts +15 -0
  457. package/dist/templates/native-go-vue/frontend/src/jobs/mock-provider.ts +67 -0
  458. package/dist/templates/native-go-vue/frontend/src/jobs/provider.ts +60 -0
  459. package/dist/templates/native-go-vue/frontend/src/jobs/validate.ts +44 -0
  460. package/dist/templates/native-go-vue/frontend/src/m2-main.ts +21 -0
  461. package/dist/templates/native-go-vue/frontend/src/m2-style.css +7 -0
  462. package/dist/templates/native-go-vue/frontend/src/main.ts +4 -1
  463. package/dist/templates/native-go-vue/frontend/src/nas/M2Files.vue +94 -0
  464. package/dist/templates/native-go-vue/frontend/src/nas/M2PathPicker.vue +70 -0
  465. package/dist/templates/native-go-vue/frontend/src/nas/M2Settings.vue +69 -0
  466. package/dist/templates/native-go-vue/frontend/src/nas/NasGrantSettings.vue +74 -0
  467. package/dist/templates/native-go-vue/frontend/src/nas/NasPathPicker.vue +106 -0
  468. package/dist/templates/native-go-vue/frontend/src/nas/NasUnavailable.vue +20 -0
  469. package/dist/templates/native-go-vue/frontend/src/nas/i18n/de.json +74 -0
  470. package/dist/templates/native-go-vue/frontend/src/nas/i18n/en.json +74 -0
  471. package/dist/templates/native-go-vue/frontend/src/nas/i18n/es.json +74 -0
  472. package/dist/templates/native-go-vue/frontend/src/nas/i18n/fr.json +74 -0
  473. package/dist/templates/native-go-vue/frontend/src/nas/i18n/it.json +74 -0
  474. package/dist/templates/native-go-vue/frontend/src/nas/i18n/ja.json +74 -0
  475. package/dist/templates/native-go-vue/frontend/src/nas/i18n/ko.json +74 -0
  476. package/dist/templates/native-go-vue/frontend/src/nas/i18n/m2/de.json +56 -0
  477. package/dist/templates/native-go-vue/frontend/src/nas/i18n/m2/en.json +56 -0
  478. package/dist/templates/native-go-vue/frontend/src/nas/i18n/m2/es.json +56 -0
  479. package/dist/templates/native-go-vue/frontend/src/nas/i18n/m2/fr.json +56 -0
  480. package/dist/templates/native-go-vue/frontend/src/nas/i18n/m2/it.json +56 -0
  481. package/dist/templates/native-go-vue/frontend/src/nas/i18n/m2/ja.json +56 -0
  482. package/dist/templates/native-go-vue/frontend/src/nas/i18n/m2/ko.json +56 -0
  483. package/dist/templates/native-go-vue/frontend/src/nas/i18n/m2/zh-CN.json +56 -0
  484. package/dist/templates/native-go-vue/frontend/src/nas/i18n/m2/zh-TW.json +56 -0
  485. package/dist/templates/native-go-vue/frontend/src/nas/i18n/zh-CN.json +74 -0
  486. package/dist/templates/native-go-vue/frontend/src/nas/i18n/zh-TW.json +74 -0
  487. package/dist/templates/native-go-vue/frontend/src/nas/i18n.ts +38 -0
  488. package/dist/templates/native-go-vue/frontend/src/nas/m2-contract.ts +33 -0
  489. package/dist/templates/native-go-vue/frontend/src/nas/m2-i18n.ts +24 -0
  490. package/dist/templates/native-go-vue/frontend/src/nas/m2-provider.ts +104 -0
  491. package/dist/templates/native-go-vue/frontend/src/nas/mock-provider.ts +119 -0
  492. package/dist/templates/native-go-vue/frontend/src/nas/provider.ts +59 -0
  493. package/dist/templates/native-go-vue/frontend/src/nas/use-m2-request.ts +18 -0
  494. package/dist/templates/native-go-vue/frontend/src/nas/use-request.ts +27 -0
  495. package/dist/templates/native-go-vue/frontend/src/sdk-main.ts +39 -0
  496. package/dist/templates/native-go-vue/frontend/src/shell/AppShell.vue +48 -0
  497. package/dist/templates/native-go-vue/frontend/src/shell/i18n/de.json +10 -0
  498. package/dist/templates/native-go-vue/frontend/src/shell/i18n/en.json +10 -0
  499. package/dist/templates/native-go-vue/frontend/src/shell/i18n/es.json +10 -0
  500. package/dist/templates/native-go-vue/frontend/src/shell/i18n/fr.json +10 -0
  501. package/dist/templates/native-go-vue/frontend/src/shell/i18n/it.json +10 -0
  502. package/dist/templates/native-go-vue/frontend/src/shell/i18n/ja.json +10 -0
  503. package/dist/templates/native-go-vue/frontend/src/shell/i18n/ko.json +10 -0
  504. package/dist/templates/native-go-vue/frontend/src/shell/i18n/zh-CN.json +10 -0
  505. package/dist/templates/native-go-vue/frontend/src/shell/i18n/zh-TW.json +10 -0
  506. package/dist/templates/native-go-vue/frontend/src/shell/i18n.ts +17 -0
  507. package/dist/templates/native-go-vue/frontend/src/shell/pages.ts +34 -0
  508. package/dist/templates/native-go-vue/frontend/src/style.css +19 -6
  509. package/dist/templates/native-go-vue/frontend/test/apps.test.ts +65 -2
  510. package/dist/templates/native-go-vue/frontend/test/jobs-connected.test.ts +163 -0
  511. package/dist/templates/native-go-vue/frontend/test/jobs-preview.html +22 -0
  512. package/dist/templates/native-go-vue/frontend/test/jobs.test.ts +176 -0
  513. package/dist/templates/native-go-vue/frontend/test/m2-preview.html +27 -0
  514. package/dist/templates/native-go-vue/frontend/test/m2-provider.test.ts +87 -0
  515. package/dist/templates/native-go-vue/frontend/test/m2-ui.test.ts +209 -0
  516. package/dist/templates/native-go-vue/frontend/test/nas-provider.test.ts +81 -0
  517. package/dist/templates/native-go-vue/frontend/test/nas-request.test.ts +21 -0
  518. package/dist/templates/native-go-vue/frontend/test/nas-ui.test.ts +261 -0
  519. package/dist/templates/native-go-vue/frontend/test/native-controls.test.ts +27 -0
  520. package/dist/templates/native-go-vue/frontend/test/picker-wire.test.ts +110 -0
  521. package/dist/templates/native-go-vue/frontend/test/shell-preview.html +19 -0
  522. package/dist/templates/native-go-vue/frontend/test/shell-sdk.test.ts +73 -0
  523. package/dist/templates/native-go-vue/frontend/test/shell-ui.test.ts +114 -0
  524. package/dist/templates/native-go-vue/frontend/test/shell.test.ts +45 -0
  525. package/dist/templates/native-go-vue/frontend/tsconfig.json +1 -1
  526. package/dist/templates/native-go-vue/frontend/vite.config.ts +8 -6
  527. package/dist/validate.js +6 -3
  528. package/package.json +3 -2
  529. package/schema/synology-app.schema.json +19 -0
  530. package/skills/reference/create.md +4 -0
  531. package/templates/_daemon/fixture_linux_test.go +15 -0
  532. package/templates/_daemon/fixture_other_test.go +7 -0
  533. package/templates/_daemon/go.mod +5 -0
  534. package/templates/_daemon/main.go +608 -0
  535. package/templates/_daemon/main_test.go +242 -0
  536. package/templates/_daemon/process_linux.go +55 -0
  537. package/templates/_daemon/process_linux_test.go +161 -0
  538. package/templates/_daemon/process_other.go +14 -0
  539. package/templates/_daemon/testdata/child.go +41 -0
  540. package/templates/_gateway/auth.go +101 -0
  541. package/templates/_gateway/auth_test.go +216 -0
  542. package/templates/_gateway/cgi.go +133 -0
  543. package/templates/_gateway/cgi_test.go +156 -0
  544. package/templates/_gateway/csrf.go +73 -0
  545. package/templates/_gateway/csrf_test.go +155 -0
  546. package/templates/_gateway/directory.go +108 -0
  547. package/templates/_gateway/directory_test.go +202 -0
  548. package/templates/_gateway/gateway.go +412 -0
  549. package/templates/_gateway/gateway_test.go +676 -0
  550. package/templates/_gateway/go.mod +3 -0
  551. package/templates/_gateway/groups.go +66 -0
  552. package/templates/_gateway/main.go +45 -0
  553. package/templates/_shared/GO-LICENSE +27 -0
  554. package/templates/_shared/GO-PATENTS +22 -0
  555. package/templates/_shared/LICENSES/TEMPLATE.txt +21 -0
  556. package/templates/_shared/notice-overrides/index.json +14 -0
  557. package/templates/_shared/notice-overrides/utils-0.4.2-LICENSE +21 -0
  558. package/templates/_shared/notice-overrides/utils-0.5.0-LICENSE +21 -0
  559. package/templates/_shared/third-party-notices.mjs +51 -0
  560. package/templates/binary/synology-app.yaml +1 -1
  561. package/templates/compose-import/compose.yaml +1 -1
  562. package/templates/compose-import/synology-app.yaml +1 -1
  563. package/templates/hello-files/compose.yaml +1 -1
  564. package/templates/hello-files/synology-app.yaml +1 -1
  565. package/templates/hello-web/compose.yaml +5 -2
  566. package/templates/hello-web/synology-app.yaml +4 -1
  567. package/templates/hello-web-page/compose.yaml +5 -2
  568. package/templates/hello-web-page/synology-app.yaml +4 -1
  569. package/templates/native-go/README.md +149 -4
  570. package/templates/native-go/backend/THIRD_PARTY_NOTICES.txt +61 -0
  571. package/templates/native-go/backend/cmd/app/main.go +17 -0
  572. package/templates/native-go/backend/cmd/app/sdk_main.go +60 -0
  573. package/templates/native-go/backend/cmd/background-worker/main.go +38 -0
  574. package/templates/native-go/backend/cmd/dsm-readonly-probe/main_linux.go +46 -0
  575. package/templates/native-go/backend/cmd/helper/main.go +10 -1
  576. package/templates/native-go/backend/cmd/helper/sdk_registry.go +19 -0
  577. package/templates/native-go/backend/go.mod +7 -1
  578. package/templates/native-go/backend/go.sum +4 -0
  579. package/templates/native-go/backend/internal/api/binary.go +154 -0
  580. package/templates/native-go/backend/internal/api/binary_test.go +165 -0
  581. package/templates/native-go/backend/internal/api/registry.go +28 -7
  582. package/templates/native-go/backend/internal/api/server.go +11 -1
  583. package/templates/native-go/backend/internal/app/background.go +270 -0
  584. package/templates/native-go/backend/internal/app/background_none.go +8 -0
  585. package/templates/native-go/backend/internal/app/background_owner.go +59 -0
  586. package/templates/native-go/backend/internal/app/background_owner_test.go +145 -0
  587. package/templates/native-go/backend/internal/app/background_schedule.go +74 -0
  588. package/templates/native-go/backend/internal/app/background_schedule_test.go +62 -0
  589. package/templates/native-go/backend/internal/app/background_test.go +346 -0
  590. package/templates/native-go/backend/internal/app/integration_state.go +16 -0
  591. package/templates/native-go/backend/internal/app/migrations.go +41 -0
  592. package/templates/native-go/backend/internal/app/migrations_test.go +41 -0
  593. package/templates/native-go/backend/internal/app/nas_cgi_artifact_test.go +129 -0
  594. package/templates/native-go/backend/internal/app/nas_refusal_test.go +46 -0
  595. package/templates/native-go/backend/internal/app/routes.go +28 -3
  596. package/templates/native-go/backend/internal/app/routes_test.go +27 -5
  597. package/templates/native-go/backend/internal/app/sdk_jobs.go +70 -0
  598. package/templates/native-go/backend/internal/app/sdk_jobs_test.go +116 -0
  599. package/templates/native-go/backend/internal/app/sdk_routes.go +174 -0
  600. package/templates/native-go/backend/internal/app/session_files.go +15 -0
  601. package/templates/native-go/backend/internal/app/session_files_test.go +26 -0
  602. package/templates/native-go/backend/internal/app/shared_folder.go +144 -0
  603. package/templates/native-go/backend/internal/app/shared_folder_test.go +158 -0
  604. package/templates/native-go/backend/internal/background/access.go +57 -0
  605. package/templates/native-go/backend/internal/background/owner_test.go +126 -0
  606. package/templates/native-go/backend/internal/background/runner.go +185 -0
  607. package/templates/native-go/backend/internal/background/runner_test.go +209 -0
  608. package/templates/native-go/backend/internal/background/schedule.go +300 -0
  609. package/templates/native-go/backend/internal/background/schedule_test.go +335 -0
  610. package/templates/native-go/backend/internal/background/store.go +807 -0
  611. package/templates/native-go/backend/internal/background/store_test.go +407 -0
  612. package/templates/native-go/backend/internal/datamigrate/migrate.go +191 -0
  613. package/templates/native-go/backend/internal/datamigrate/migrate_test.go +177 -0
  614. package/templates/native-go/backend/internal/dsmprobe/collector_linux.go +335 -0
  615. package/templates/native-go/backend/internal/dsmprobe/collector_linux_test.go +41 -0
  616. package/templates/native-go/backend/internal/dsmprobe/protocol.go +179 -0
  617. package/templates/native-go/backend/internal/dsmprobe/protocol_test.go +29 -0
  618. package/templates/native-go/backend/internal/filestation/browse_test.go +67 -0
  619. package/templates/native-go/backend/internal/filestation/client.go +251 -0
  620. package/templates/native-go/backend/internal/filestation/client_test.go +155 -0
  621. package/templates/native-go/backend/internal/filestation/doc.go +4 -0
  622. package/templates/native-go/backend/internal/filestation/read_file_test.go +90 -0
  623. package/templates/native-go/backend/internal/filestation/repository.go +207 -0
  624. package/templates/native-go/backend/internal/filestation/repository_test.go +104 -0
  625. package/templates/native-go/backend/internal/filestation/sdk_session.go +241 -0
  626. package/templates/native-go/backend/internal/filestation/sdk_session_test.go +183 -0
  627. package/templates/native-go/backend/internal/filestation/service.go +254 -0
  628. package/templates/native-go/backend/internal/filestation/service_test.go +94 -0
  629. package/templates/native-go/backend/internal/filestation/session_semantics_test.go +383 -0
  630. package/templates/native-go/backend/internal/filestation/write.go +72 -0
  631. package/templates/native-go/backend/internal/filestation/write_test.go +123 -0
  632. package/templates/native-go/backend/internal/helper/background_proof.go +163 -0
  633. package/templates/native-go/backend/internal/helper/background_proof_contract.go +46 -0
  634. package/templates/native-go/backend/internal/helper/background_proof_test.go +161 -0
  635. package/templates/native-go/backend/internal/helper/cohort.go +393 -0
  636. package/templates/native-go/backend/internal/helper/cohort_publication.go +18 -0
  637. package/templates/native-go/backend/internal/helper/cohort_publication_test.go +105 -0
  638. package/templates/native-go/backend/internal/helper/cohort_test.go +372 -0
  639. package/templates/native-go/backend/internal/helper/control.go +226 -21
  640. package/templates/native-go/backend/internal/helper/control_test.go +10 -2
  641. package/templates/native-go/backend/internal/helper/data_contract.go +245 -0
  642. package/templates/native-go/backend/internal/helper/data_contract_test.go +51 -0
  643. package/templates/native-go/backend/internal/helper/data_decode.go +184 -0
  644. package/templates/native-go/backend/internal/helper/data_decode_pointer_test.go +30 -0
  645. package/templates/native-go/backend/internal/helper/data_protocol.go +419 -0
  646. package/templates/native-go/backend/internal/helper/data_protocol_test.go +449 -0
  647. package/templates/native-go/backend/internal/helper/dsm_acl_linux.go +139 -0
  648. package/templates/native-go/backend/internal/helper/dsm_acl_linux_test.go +121 -0
  649. package/templates/native-go/backend/internal/helper/dsm_acl_syscall_linux.go +95 -0
  650. package/templates/native-go/backend/internal/helper/dsm_acl_syscall_linux_test.go +56 -0
  651. package/templates/native-go/backend/internal/helper/dsm_bridge_linux.go +144 -0
  652. package/templates/native-go/backend/internal/helper/dsm_bridge_linux_test.go +89 -0
  653. package/templates/native-go/backend/internal/helper/dsm_home_linux.go +107 -0
  654. package/templates/native-go/backend/internal/helper/dsm_home_linux_test.go +82 -0
  655. package/templates/native-go/backend/internal/helper/dsm_probe_transport_linux.go +151 -0
  656. package/templates/native-go/backend/internal/helper/dsm_probe_transport_linux_test.go +66 -0
  657. package/templates/native-go/backend/internal/helper/grant_authority.go +519 -0
  658. package/templates/native-go/backend/internal/helper/grant_authority_contract.go +88 -0
  659. package/templates/native-go/backend/internal/helper/grant_authority_test.go +510 -0
  660. package/templates/native-go/backend/internal/helper/grant_cohort.go +389 -0
  661. package/templates/native-go/backend/internal/helper/grant_cohort_test.go +239 -0
  662. package/templates/native-go/backend/internal/helper/grant_delivery.go +49 -0
  663. package/templates/native-go/backend/internal/helper/grant_delivery_methods.go +273 -0
  664. package/templates/native-go/backend/internal/helper/grant_delivery_test.go +322 -0
  665. package/templates/native-go/backend/internal/helper/grant_operation_contract.go +47 -0
  666. package/templates/native-go/backend/internal/helper/grant_readonly_test.go +180 -0
  667. package/templates/native-go/backend/internal/helper/grant_repository_linux.go +416 -0
  668. package/templates/native-go/backend/internal/helper/grant_repository_linux_test.go +469 -0
  669. package/templates/native-go/backend/internal/helper/grant_rpc.go +147 -0
  670. package/templates/native-go/backend/internal/helper/grant_rpc_test.go +51 -0
  671. package/templates/native-go/backend/internal/helper/grant_snapshot.go +78 -0
  672. package/templates/native-go/backend/internal/helper/grant_supervisor_linux.go +134 -0
  673. package/templates/native-go/backend/internal/helper/grant_supervisor_linux_test.go +254 -0
  674. package/templates/native-go/backend/internal/helper/jobcontract/bindings.go +48 -0
  675. package/templates/native-go/backend/internal/helper/jobcontract/contract_test.go +436 -0
  676. package/templates/native-go/backend/internal/helper/jobcontract/decode.go +185 -0
  677. package/templates/native-go/backend/internal/helper/jobcontract/digest.go +55 -0
  678. package/templates/native-go/backend/internal/helper/jobcontract/registry.go +85 -0
  679. package/templates/native-go/backend/internal/helper/jobcontract/registry_test.go +73 -0
  680. package/templates/native-go/backend/internal/helper/jobcontract/result.go +53 -0
  681. package/templates/native-go/backend/internal/helper/jobcontract/stub.go +8 -0
  682. package/templates/native-go/backend/internal/helper/jobcontract/testdata/input-digests.json +127 -0
  683. package/templates/native-go/backend/internal/helper/jobcontract/types.go +234 -0
  684. package/templates/native-go/backend/internal/helper/jobcontract/types_test.go +29 -0
  685. package/templates/native-go/backend/internal/helper/jobcontract/validate.go +462 -0
  686. package/templates/native-go/backend/internal/helper/lease.go +112 -0
  687. package/templates/native-go/backend/internal/helper/lease_linux.go +44 -0
  688. package/templates/native-go/backend/internal/helper/lease_other.go +8 -0
  689. package/templates/native-go/backend/internal/helper/legacy_authority_schema_linux_test.go +34 -0
  690. package/templates/native-go/backend/internal/helper/legacy_authority_schema_test.go +6 -0
  691. package/templates/native-go/backend/internal/helper/lifecycle.go +234 -0
  692. package/templates/native-go/backend/internal/helper/lifecycle_test.go +473 -0
  693. package/templates/native-go/backend/internal/helper/managed_pilot.go +284 -0
  694. package/templates/native-go/backend/internal/helper/managed_pilot_repository_linux.go +74 -0
  695. package/templates/native-go/backend/internal/helper/managed_pilot_repository_linux_test.go +40 -0
  696. package/templates/native-go/backend/internal/helper/managed_pilot_test.go +210 -0
  697. package/templates/native-go/backend/internal/helper/management.go +79 -0
  698. package/templates/native-go/backend/internal/helper/nas_shipped_refusal_linux_test.go +97 -0
  699. package/templates/native-go/backend/internal/helper/native_discovery.go +79 -0
  700. package/templates/native-go/backend/internal/helper/native_identity.go +89 -0
  701. package/templates/native-go/backend/internal/helper/native_provider.go +159 -0
  702. package/templates/native-go/backend/internal/helper/native_provider_test.go +421 -0
  703. package/templates/native-go/backend/internal/helper/observation.go +244 -0
  704. package/templates/native-go/backend/internal/helper/observation_health_test.go +127 -0
  705. package/templates/native-go/backend/internal/helper/observation_reload_budget_test.go +117 -0
  706. package/templates/native-go/backend/internal/helper/observation_test.go +196 -0
  707. package/templates/native-go/backend/internal/helper/observer_diagnostic.go +155 -0
  708. package/templates/native-go/backend/internal/helper/observer_diagnostic_linux.go +76 -0
  709. package/templates/native-go/backend/internal/helper/observer_diagnostic_linux_test.go +130 -0
  710. package/templates/native-go/backend/internal/helper/observer_diagnostic_test.go +98 -0
  711. package/templates/native-go/backend/internal/helper/observer_diagnostic_writer.go +40 -0
  712. package/templates/native-go/backend/internal/helper/operation_bootstrap_linux.go +193 -0
  713. package/templates/native-go/backend/internal/helper/operation_credentials_linux.go +56 -0
  714. package/templates/native-go/backend/internal/helper/operation_linux.go +480 -0
  715. package/templates/native-go/backend/internal/helper/operation_linux_test.go +528 -0
  716. package/templates/native-go/backend/internal/helper/process_linux.go +14 -1
  717. package/templates/native-go/backend/internal/helper/publication_test.go +178 -0
  718. package/templates/native-go/backend/internal/helper/query_deadline_linux_test.go +115 -0
  719. package/templates/native-go/backend/internal/helper/query_pending_diagnostic_test.go +254 -0
  720. package/templates/native-go/backend/internal/helper/read_stream_cohort_linux_test.go +156 -0
  721. package/templates/native-go/backend/internal/helper/read_transfer.go +40 -0
  722. package/templates/native-go/backend/internal/helper/read_transfer_linux.go +109 -0
  723. package/templates/native-go/backend/internal/helper/read_transfer_linux_test.go +118 -0
  724. package/templates/native-go/backend/internal/helper/read_transfer_test.go +177 -0
  725. package/templates/native-go/backend/internal/helper/readonly.go +105 -0
  726. package/templates/native-go/backend/internal/helper/readonly_admission.go +85 -0
  727. package/templates/native-go/backend/internal/helper/readonly_cohort_linux_test.go +253 -0
  728. package/templates/native-go/backend/internal/helper/readonly_linux_test.go +378 -0
  729. package/templates/native-go/backend/internal/helper/readonly_mount_linux.go +65 -0
  730. package/templates/native-go/backend/internal/helper/readonly_mount_proxy_linux.go +113 -0
  731. package/templates/native-go/backend/internal/helper/readonly_operations_linux.go +168 -0
  732. package/templates/native-go/backend/internal/helper/readonly_resolver_linux.go +241 -0
  733. package/templates/native-go/backend/internal/helper/readonly_test.go +40 -0
  734. package/templates/native-go/backend/internal/helper/relaxed_identity.go +252 -0
  735. package/templates/native-go/backend/internal/helper/relaxed_identity_contract.go +105 -0
  736. package/templates/native-go/backend/internal/helper/relaxed_identity_test.go +406 -0
  737. package/templates/native-go/backend/internal/helper/relaxed_invalidation.go +203 -0
  738. package/templates/native-go/backend/internal/helper/repair.go +132 -0
  739. package/templates/native-go/backend/internal/helper/repair_test.go +271 -0
  740. package/templates/native-go/backend/internal/helper/s1r_actor_acl_linux_test.go +303 -0
  741. package/templates/native-go/backend/internal/helper/s1r_actor_fixture_linux_test.go +184 -0
  742. package/templates/native-go/backend/internal/helper/s1r_actor_races_linux_test.go +250 -0
  743. package/templates/native-go/backend/internal/helper/s1r_fixture_contract_linux_test.go +18 -0
  744. package/templates/native-go/backend/internal/helper/sdk_assembly_linux.go +51 -0
  745. package/templates/native-go/backend/internal/helper/sdk_attach.go +83 -0
  746. package/templates/native-go/backend/internal/helper/sdk_attach_contract.go +32 -0
  747. package/templates/native-go/backend/internal/helper/sdk_attach_test.go +184 -0
  748. package/templates/native-go/backend/internal/helper/sdk_authority_schema_test.go +6 -0
  749. package/templates/native-go/backend/internal/helper/sdk_background_authority.go +832 -0
  750. package/templates/native-go/backend/internal/helper/sdk_background_authority_test.go +714 -0
  751. package/templates/native-go/backend/internal/helper/sdk_background_invalidation.go +218 -0
  752. package/templates/native-go/backend/internal/helper/sdk_background_lease.go +218 -0
  753. package/templates/native-go/backend/internal/helper/sdk_background_snapshot.go +110 -0
  754. package/templates/native-go/backend/internal/helper/sdk_background_store_linux_test.go +261 -0
  755. package/templates/native-go/backend/internal/helper/sdk_background_store_test.go +58 -0
  756. package/templates/native-go/backend/internal/helper/sdk_bindings.go +60 -0
  757. package/templates/native-go/backend/internal/helper/sdk_data_contract.go +251 -0
  758. package/templates/native-go/backend/internal/helper/sdk_data_protocol.go +424 -0
  759. package/templates/native-go/backend/internal/helper/sdk_dispatch_absence_test.go +51 -0
  760. package/templates/native-go/backend/internal/helper/sdk_display.go +488 -0
  761. package/templates/native-go/backend/internal/helper/sdk_display_contract.go +121 -0
  762. package/templates/native-go/backend/internal/helper/sdk_display_test.go +459 -0
  763. package/templates/native-go/backend/internal/helper/sdk_grant_authority.go +559 -0
  764. package/templates/native-go/backend/internal/helper/sdk_grant_repository_linux.go +417 -0
  765. package/templates/native-go/backend/internal/helper/sdk_grant_snapshot.go +94 -0
  766. package/templates/native-go/backend/internal/helper/sdk_history.go +80 -0
  767. package/templates/native-go/backend/internal/helper/sdk_history_test.go +76 -0
  768. package/templates/native-go/backend/internal/helper/sdk_job.go +697 -0
  769. package/templates/native-go/backend/internal/helper/sdk_job_child_linux.go +309 -0
  770. package/templates/native-go/backend/internal/helper/sdk_job_contract.go +122 -0
  771. package/templates/native-go/backend/internal/helper/sdk_job_linux_test.go +159 -0
  772. package/templates/native-go/backend/internal/helper/sdk_job_process_linux.go +327 -0
  773. package/templates/native-go/backend/internal/helper/sdk_job_test.go +501 -0
  774. package/templates/native-go/backend/internal/helper/sdk_job_vm_linux_test.go +343 -0
  775. package/templates/native-go/backend/internal/helper/sdk_journal.go +77 -0
  776. package/templates/native-go/backend/internal/helper/sdk_journal_linux.go +244 -0
  777. package/templates/native-go/backend/internal/helper/sdk_journal_linux_test.go +295 -0
  778. package/templates/native-go/backend/internal/helper/sdk_journal_test.go +71 -0
  779. package/templates/native-go/backend/internal/helper/sdk_picker_test.go +50 -0
  780. package/templates/native-go/backend/internal/helper/sdk_process_linux.go +184 -0
  781. package/templates/native-go/backend/internal/helper/sdk_public_vm_linux_test.go +129 -0
  782. package/templates/native-go/backend/internal/helper/sdk_relaxed_invalidation.go +242 -0
  783. package/templates/native-go/backend/internal/helper/sdk_rpc.go +299 -0
  784. package/templates/native-go/backend/internal/helper/sdk_rpc_contract.go +70 -0
  785. package/templates/native-go/backend/internal/helper/sdk_rpc_test.go +135 -0
  786. package/templates/native-go/backend/internal/helper/sdk_server_linux.go +152 -0
  787. package/templates/native-go/backend/internal/helper/sdk_session.go +677 -0
  788. package/templates/native-go/backend/internal/helper/sdk_session_contract.go +72 -0
  789. package/templates/native-go/backend/internal/helper/sdk_session_fence_test.go +215 -0
  790. package/templates/native-go/backend/internal/helper/sdk_session_test.go +475 -0
  791. package/templates/native-go/backend/internal/helper/sdk_supervisor_frame.go +78 -0
  792. package/templates/native-go/backend/internal/helper/sdk_supervisor_linux.go +414 -0
  793. package/templates/native-go/backend/internal/helper/sdk_transport.go +79 -0
  794. package/templates/native-go/backend/internal/helper/sdk_transport_linux.go +82 -0
  795. package/templates/native-go/backend/internal/helper/sdk_transport_test.go +64 -0
  796. package/templates/native-go/backend/internal/helper/server_linux.go +47 -3
  797. package/templates/native-go/backend/internal/helper/stale_management_linux_test.go +126 -0
  798. package/templates/native-go/backend/internal/helper/stale_management_test.go +122 -0
  799. package/templates/native-go/backend/internal/helper/startup_diagnostic.go +68 -0
  800. package/templates/native-go/backend/internal/helper/startup_diagnostic_linux_test.go +126 -0
  801. package/templates/native-go/backend/internal/helper/startup_diagnostic_test.go +117 -0
  802. package/templates/native-go/backend/internal/helper/status.go +83 -11
  803. package/templates/native-go/backend/internal/helper/status_test.go +128 -0
  804. package/templates/native-go/backend/internal/helper/supervision.go +28 -5
  805. package/templates/native-go/backend/internal/helper/supervisor_frame.go +79 -0
  806. package/templates/native-go/backend/internal/helper/supervisor_frame_linux_test.go +69 -0
  807. package/templates/native-go/backend/internal/helper/supervisor_frame_test.go +107 -0
  808. package/templates/native-go/backend/internal/helper/supervisor_linux.go +191 -16
  809. package/templates/native-go/backend/internal/helper/supervisor_linux_test.go +618 -7
  810. package/templates/native-go/backend/internal/helper/supervisor_socket_eof_test.go +74 -0
  811. package/templates/native-go/backend/internal/helper/supervisor_socket_test.go +45 -0
  812. package/templates/native-go/backend/internal/helper/testdata/protocol2/create.json +23 -0
  813. package/templates/native-go/backend/internal/helper/testdata/protocol2/frames.json +67 -0
  814. package/templates/native-go/backend/internal/helper/testdata/protocol2/grant-store.json +52 -0
  815. package/templates/native-go/backend/internal/helper/testdata/protocol2/intent.json +20 -0
  816. package/templates/native-go/backend/internal/helper/testdata/protocol2/list.json +20 -0
  817. package/templates/native-go/backend/internal/helper/testdata/protocol2/publish.json +20 -0
  818. package/templates/native-go/backend/internal/helper/testdata/protocol2/read.json +22 -0
  819. package/templates/native-go/backend/internal/helper/testdata/protocol2/stat.json +22 -0
  820. package/templates/native-go/backend/internal/helper/testdata/protocol2/write-stream.json +22 -0
  821. package/templates/native-go/backend/internal/helper/unit_connection.go +75 -0
  822. package/templates/native-go/backend/internal/helper/unit_connection_linux_test.go +135 -0
  823. package/templates/native-go/backend/internal/helper/unit_connection_test.go +151 -0
  824. package/templates/native-go/backend/internal/helper/unit_frame_test.go +32 -0
  825. package/templates/native-go/backend/internal/helper/unit_linux.go +368 -0
  826. package/templates/native-go/backend/internal/helper/unit_linux_test.go +46 -0
  827. package/templates/native-go/backend/internal/helper/unit_mechanisms_linux_test.go +217 -0
  828. package/templates/native-go/backend/internal/helper/unit_padding_linux_test.go +178 -0
  829. package/templates/native-go/backend/internal/helper/unit_query_linux.go +115 -0
  830. package/templates/native-go/backend/internal/helper/unit_reload_linux_test.go +372 -0
  831. package/templates/native-go/backend/internal/helper/unit_reload_sequence_linux_test.go +232 -0
  832. package/templates/native-go/backend/internal/helper/write.go +77 -0
  833. package/templates/native-go/backend/internal/helper/write_admission.go +260 -0
  834. package/templates/native-go/backend/internal/helper/write_admission_test.go +135 -0
  835. package/templates/native-go/backend/internal/helper/write_cohort_linux_test.go +218 -0
  836. package/templates/native-go/backend/internal/helper/write_files_linux.go +205 -0
  837. package/templates/native-go/backend/internal/helper/write_files_linux_test.go +225 -0
  838. package/templates/native-go/backend/internal/helper/write_intent_linux.go +116 -0
  839. package/templates/native-go/backend/internal/helper/write_intent_linux_test.go +74 -0
  840. package/templates/native-go/backend/internal/helper/write_operation_linux.go +245 -0
  841. package/templates/native-go/backend/internal/helper/write_test.go +53 -0
  842. package/templates/native-go/dsm-package.yaml +1 -1
  843. package/templates/native-go/ui/app.js +8 -1
  844. package/templates/native-go-background/BACKGROUND.md +111 -0
  845. package/templates/native-go-background/backend/internal/app/background_on.go +7 -0
  846. package/templates/native-go-background/backend/internal/app/background_routes_test.go +32 -0
  847. package/templates/native-go-background/frontend/src/background/BackgroundPanel.vue +178 -0
  848. package/templates/native-go-background/frontend/src/background/i18n/de.json +83 -0
  849. package/templates/native-go-background/frontend/src/background/i18n/en.json +83 -0
  850. package/templates/native-go-background/frontend/src/background/i18n/es.json +83 -0
  851. package/templates/native-go-background/frontend/src/background/i18n/fr.json +83 -0
  852. package/templates/native-go-background/frontend/src/background/i18n/it.json +83 -0
  853. package/templates/native-go-background/frontend/src/background/i18n/ja.json +83 -0
  854. package/templates/native-go-background/frontend/src/background/i18n/ko.json +83 -0
  855. package/templates/native-go-background/frontend/src/background/i18n/zh-CN.json +83 -0
  856. package/templates/native-go-background/frontend/src/background/i18n/zh-TW.json +83 -0
  857. package/templates/native-go-background/frontend/src/background/i18n.ts +19 -0
  858. package/templates/native-go-background/frontend/src/background/picker-provider.ts +13 -0
  859. package/templates/native-go-background/frontend/test/background.test.ts +179 -0
  860. package/templates/native-go-better-auth/node/build.mjs +2 -0
  861. package/templates/native-go-integration/backend/internal/app/personal.go +2 -2
  862. package/templates/native-go-integration/backend/internal/app/personal_test.go +37 -0
  863. package/templates/native-go-vue/README.md +151 -6
  864. package/templates/native-go-vue/frontend/DESIGN.md +16 -4
  865. package/templates/native-go-vue/frontend/README-JOBS.md +75 -0
  866. package/templates/native-go-vue/frontend/README-M2.md +64 -0
  867. package/templates/native-go-vue/frontend/package-lock.json +137 -233
  868. package/templates/native-go-vue/frontend/package.json +2 -2
  869. package/templates/native-go-vue/frontend/src/App.vue +71 -16
  870. package/templates/native-go-vue/frontend/src/M2App.vue +57 -0
  871. package/templates/native-go-vue/frontend/src/SDKApp.vue +203 -0
  872. package/templates/native-go-vue/frontend/src/context.ts +41 -2
  873. package/templates/native-go-vue/frontend/src/jobs/InteractiveJobForm.vue +70 -0
  874. package/templates/native-go-vue/frontend/src/jobs/JobsAdminPanel.vue +33 -0
  875. package/templates/native-go-vue/frontend/src/jobs/JobsPanel.vue +135 -0
  876. package/templates/native-go-vue/frontend/src/jobs/connected-provider.ts +179 -0
  877. package/templates/native-go-vue/frontend/src/jobs/i18n/de.json +62 -0
  878. package/templates/native-go-vue/frontend/src/jobs/i18n/en.json +62 -0
  879. package/templates/native-go-vue/frontend/src/jobs/i18n/es.json +62 -0
  880. package/templates/native-go-vue/frontend/src/jobs/i18n/fr.json +62 -0
  881. package/templates/native-go-vue/frontend/src/jobs/i18n/it.json +62 -0
  882. package/templates/native-go-vue/frontend/src/jobs/i18n/ja.json +62 -0
  883. package/templates/native-go-vue/frontend/src/jobs/i18n/ko.json +62 -0
  884. package/templates/native-go-vue/frontend/src/jobs/i18n/zh-CN.json +62 -0
  885. package/templates/native-go-vue/frontend/src/jobs/i18n/zh-TW.json +62 -0
  886. package/templates/native-go-vue/frontend/src/jobs/i18n.ts +15 -0
  887. package/templates/native-go-vue/frontend/src/jobs/mock-provider.ts +67 -0
  888. package/templates/native-go-vue/frontend/src/jobs/provider.ts +60 -0
  889. package/templates/native-go-vue/frontend/src/jobs/validate.ts +44 -0
  890. package/templates/native-go-vue/frontend/src/m2-main.ts +21 -0
  891. package/templates/native-go-vue/frontend/src/m2-style.css +7 -0
  892. package/templates/native-go-vue/frontend/src/main.ts +4 -1
  893. package/templates/native-go-vue/frontend/src/nas/M2Files.vue +94 -0
  894. package/templates/native-go-vue/frontend/src/nas/M2PathPicker.vue +70 -0
  895. package/templates/native-go-vue/frontend/src/nas/M2Settings.vue +69 -0
  896. package/templates/native-go-vue/frontend/src/nas/NasGrantSettings.vue +74 -0
  897. package/templates/native-go-vue/frontend/src/nas/NasPathPicker.vue +106 -0
  898. package/templates/native-go-vue/frontend/src/nas/NasUnavailable.vue +20 -0
  899. package/templates/native-go-vue/frontend/src/nas/i18n/de.json +74 -0
  900. package/templates/native-go-vue/frontend/src/nas/i18n/en.json +74 -0
  901. package/templates/native-go-vue/frontend/src/nas/i18n/es.json +74 -0
  902. package/templates/native-go-vue/frontend/src/nas/i18n/fr.json +74 -0
  903. package/templates/native-go-vue/frontend/src/nas/i18n/it.json +74 -0
  904. package/templates/native-go-vue/frontend/src/nas/i18n/ja.json +74 -0
  905. package/templates/native-go-vue/frontend/src/nas/i18n/ko.json +74 -0
  906. package/templates/native-go-vue/frontend/src/nas/i18n/m2/de.json +56 -0
  907. package/templates/native-go-vue/frontend/src/nas/i18n/m2/en.json +56 -0
  908. package/templates/native-go-vue/frontend/src/nas/i18n/m2/es.json +56 -0
  909. package/templates/native-go-vue/frontend/src/nas/i18n/m2/fr.json +56 -0
  910. package/templates/native-go-vue/frontend/src/nas/i18n/m2/it.json +56 -0
  911. package/templates/native-go-vue/frontend/src/nas/i18n/m2/ja.json +56 -0
  912. package/templates/native-go-vue/frontend/src/nas/i18n/m2/ko.json +56 -0
  913. package/templates/native-go-vue/frontend/src/nas/i18n/m2/zh-CN.json +56 -0
  914. package/templates/native-go-vue/frontend/src/nas/i18n/m2/zh-TW.json +56 -0
  915. package/templates/native-go-vue/frontend/src/nas/i18n/zh-CN.json +74 -0
  916. package/templates/native-go-vue/frontend/src/nas/i18n/zh-TW.json +74 -0
  917. package/templates/native-go-vue/frontend/src/nas/i18n.ts +38 -0
  918. package/templates/native-go-vue/frontend/src/nas/m2-contract.ts +33 -0
  919. package/templates/native-go-vue/frontend/src/nas/m2-i18n.ts +24 -0
  920. package/templates/native-go-vue/frontend/src/nas/m2-provider.ts +104 -0
  921. package/templates/native-go-vue/frontend/src/nas/mock-provider.ts +119 -0
  922. package/templates/native-go-vue/frontend/src/nas/provider.ts +59 -0
  923. package/templates/native-go-vue/frontend/src/nas/use-m2-request.ts +18 -0
  924. package/templates/native-go-vue/frontend/src/nas/use-request.ts +27 -0
  925. package/templates/native-go-vue/frontend/src/sdk-main.ts +39 -0
  926. package/templates/native-go-vue/frontend/src/shell/AppShell.vue +48 -0
  927. package/templates/native-go-vue/frontend/src/shell/i18n/de.json +10 -0
  928. package/templates/native-go-vue/frontend/src/shell/i18n/en.json +10 -0
  929. package/templates/native-go-vue/frontend/src/shell/i18n/es.json +10 -0
  930. package/templates/native-go-vue/frontend/src/shell/i18n/fr.json +10 -0
  931. package/templates/native-go-vue/frontend/src/shell/i18n/it.json +10 -0
  932. package/templates/native-go-vue/frontend/src/shell/i18n/ja.json +10 -0
  933. package/templates/native-go-vue/frontend/src/shell/i18n/ko.json +10 -0
  934. package/templates/native-go-vue/frontend/src/shell/i18n/zh-CN.json +10 -0
  935. package/templates/native-go-vue/frontend/src/shell/i18n/zh-TW.json +10 -0
  936. package/templates/native-go-vue/frontend/src/shell/i18n.ts +17 -0
  937. package/templates/native-go-vue/frontend/src/shell/pages.ts +34 -0
  938. package/templates/native-go-vue/frontend/src/style.css +19 -6
  939. package/templates/native-go-vue/frontend/test/apps.test.ts +65 -2
  940. package/templates/native-go-vue/frontend/test/jobs-connected.test.ts +163 -0
  941. package/templates/native-go-vue/frontend/test/jobs-preview.html +22 -0
  942. package/templates/native-go-vue/frontend/test/jobs.test.ts +176 -0
  943. package/templates/native-go-vue/frontend/test/m2-preview.html +27 -0
  944. package/templates/native-go-vue/frontend/test/m2-provider.test.ts +87 -0
  945. package/templates/native-go-vue/frontend/test/m2-ui.test.ts +209 -0
  946. package/templates/native-go-vue/frontend/test/nas-provider.test.ts +81 -0
  947. package/templates/native-go-vue/frontend/test/nas-request.test.ts +21 -0
  948. package/templates/native-go-vue/frontend/test/nas-ui.test.ts +261 -0
  949. package/templates/native-go-vue/frontend/test/native-controls.test.ts +27 -0
  950. package/templates/native-go-vue/frontend/test/picker-wire.test.ts +110 -0
  951. package/templates/native-go-vue/frontend/test/shell-preview.html +19 -0
  952. package/templates/native-go-vue/frontend/test/shell-sdk.test.ts +73 -0
  953. package/templates/native-go-vue/frontend/test/shell-ui.test.ts +114 -0
  954. package/templates/native-go-vue/frontend/test/shell.test.ts +45 -0
  955. package/templates/native-go-vue/frontend/tsconfig.json +1 -1
  956. package/templates/native-go-vue/frontend/vite.config.ts +8 -6
@@ -0,0 +1,387 @@
1
+ export const WIZARD_MESSAGES = {
2
+ "install.step": {
3
+ en: "Install settings",
4
+ "zh-TW": "安裝設定",
5
+ "zh-CN": "安装设置",
6
+ ja: "インストール設定",
7
+ ko: "설치 설정",
8
+ de: "Installationseinstellungen",
9
+ fr: "Paramètres d'installation",
10
+ es: "Configuración de instalación",
11
+ it: "Impostazioni di installazione",
12
+ },
13
+ "install.reuseData": {
14
+ en: "Data from an earlier installation is still on this NAS (@appdata/{package}), so this install reuses it: saved settings and generated secrets stay. To start empty, cancel and clear that data first — uninstall the app with “Also delete the app data listed above” ticked — then install again.",
15
+ "zh-TW": "這台 NAS 還留有先前安裝的資料(@appdata/{package}),本次安裝會沿用:已存的設定與產生的 secrets 都會保留。若要從空白開始,請先取消並清除該資料——解除安裝時勾選「一併刪除上列 App 資料」——再重新安裝。",
16
+ "zh-CN": "这台 NAS 还保留着先前安装的数据(@appdata/{package}),本次安装将继续使用:已保存的设置和生成的密钥都会保留。若要从空白开始,请先取消并清除该数据——卸载时勾选“同时删除上列应用数据”——然后重新安装。",
17
+ ja: "この NAS には以前のインストールのデータ(@appdata/{package})が残っているため、今回のインストールはそれを引き継ぎます。保存済みの設定と生成済みシークレットは保持されます。空の状態から始めるには、いったん中止し、そのデータを削除して(アンインストール時に「上記のアプリデータも削除する」をオン)から再インストールしてください。",
18
+ ko: "이 NAS에는 이전 설치의 데이터(@appdata/{package})가 남아 있어 이번 설치에서 그대로 사용합니다. 저장된 설정과 생성된 시크릿이 유지됩니다. 빈 상태로 시작하려면 먼저 취소하고 해당 데이터를 지운 뒤(제거 시 '위에 나열된 앱 데이터도 삭제' 선택) 다시 설치하세요.",
19
+ de: "Auf diesem NAS liegen noch Daten einer früheren Installation (@appdata/{package}); diese Installation verwendet sie weiter: gespeicherte Einstellungen und erzeugte Geheimnisse bleiben erhalten. Für einen leeren Start brechen Sie ab, löschen diese Daten (Deinstallation mit aktiviertem „Oben aufgeführte App-Daten ebenfalls löschen“) und installieren erneut.",
20
+ fr: "Ce NAS contient encore les données d'une installation précédente (@appdata/{package}) ; cette installation les réutilise : les réglages enregistrés et les secrets générés sont conservés. Pour repartir de zéro, annulez, supprimez ces données (désinstallation avec « Supprimer aussi les données de l'application listées ci-dessus » cochée), puis réinstallez.",
21
+ es: "Este NAS todavía conserva datos de una instalación anterior (@appdata/{package}); esta instalación los reutiliza: se mantienen los ajustes guardados y los secretos generados. Para empezar de cero, cancele, borre esos datos (desinstale con «Eliminar también los datos de la aplicación indicados arriba» marcado) y vuelva a instalar.",
22
+ it: "Questo NAS conserva ancora i dati di un'installazione precedente (@appdata/{package}); questa installazione li riutilizza: le impostazioni salvate e i segreti generati restano. Per partire da zero, annulla, elimina quei dati (disinstallazione con «Elimina anche i dati dell'app elencati sopra» selezionato) e reinstalla.",
23
+ },
24
+ "upgrade.step": {
25
+ en: "Upgrade settings",
26
+ "zh-TW": "升級設定",
27
+ "zh-CN": "升级设置",
28
+ ja: "アップグレード設定",
29
+ ko: "업그레이드 설정",
30
+ de: "Upgrade-Einstellungen",
31
+ fr: "Paramètres de mise à jour",
32
+ es: "Configuración de actualización",
33
+ it: "Impostazioni di aggiornamento",
34
+ },
35
+ "uninstall.step": {
36
+ en: "Uninstall",
37
+ "zh-TW": "解除安裝",
38
+ "zh-CN": "卸载",
39
+ ja: "アンインストール",
40
+ ko: "제거",
41
+ de: "Deinstallation",
42
+ fr: "Désinstallation",
43
+ es: "Desinstalación",
44
+ it: "Disinstallazione",
45
+ },
46
+ "label.sharedFolder": {
47
+ en: "Shared Folder",
48
+ "zh-TW": "共用資料夾",
49
+ "zh-CN": "共享文件夹",
50
+ ja: "共有フォルダ",
51
+ ko: "공유 폴더",
52
+ de: "Freigegebener Ordner",
53
+ fr: "Dossier partagé",
54
+ es: "Carpeta compartida",
55
+ it: "Cartella condivisa",
56
+ },
57
+ "label.runAs": {
58
+ en: "Container Run-as",
59
+ "zh-TW": "容器執行身分",
60
+ "zh-CN": "容器运行身份",
61
+ ja: "コンテナの実行ユーザー",
62
+ ko: "컨테이너 실행 사용자",
63
+ de: "Container-Ausführungskonto",
64
+ fr: "Compte d'exécution du conteneur",
65
+ es: "Cuenta de ejecución del contenedor",
66
+ it: "Account di esecuzione del container",
67
+ },
68
+ "param.install": {
69
+ en: "Install Parameter: {name}",
70
+ "zh-TW": "安裝參數:{name}",
71
+ "zh-CN": "安装参数:{name}",
72
+ ja: "インストールパラメータ: {name}",
73
+ ko: "설치 매개변수: {name}",
74
+ de: "Installationsparameter: {name}",
75
+ fr: "Paramètre d'installation : {name}",
76
+ es: "Parámetro de instalación: {name}",
77
+ it: "Parametro di installazione: {name}",
78
+ },
79
+ "param.sharedFolder": {
80
+ en: "Shared Folder: {name}",
81
+ "zh-TW": "共用資料夾:{name}",
82
+ "zh-CN": "共享文件夹:{name}",
83
+ ja: "共有フォルダ: {name}",
84
+ ko: "공유 폴더: {name}",
85
+ de: "Freigegebener Ordner: {name}",
86
+ fr: "Dossier partagé : {name}",
87
+ es: "Carpeta compartida: {name}",
88
+ it: "Cartella condivisa: {name}",
89
+ },
90
+ "param.runAs": {
91
+ en: "Container Run-as: {name}",
92
+ "zh-TW": "容器執行身分:{name}",
93
+ "zh-CN": "容器运行身份:{name}",
94
+ ja: "コンテナの実行ユーザー: {name}",
95
+ ko: "컨테이너 실행 사용자: {name}",
96
+ de: "Container-Ausführung als: {name}",
97
+ fr: "Exécution du conteneur en tant que : {name}",
98
+ es: "Ejecución del contenedor como: {name}",
99
+ it: "Esecuzione del container come: {name}",
100
+ },
101
+ "consent.sharedFolder": {
102
+ en: "This app uses the folder you select on this NAS, and the whole app can see it. Shared Folder Mount is container access for the entire app instance: for anyone who can open this app, the programs in the container can see that Share, even if the user cannot see it in File Station. This is not a per-user DSM ACL. File permissions depend on the container service account; the app must enforce its own user authorization.",
103
+ "zh-TW": "此 App 會用你在這台 NAS 選的資料夾;整顆應用都看得到。共用資料夾掛載(Shared Folder Mount)是整個 App Instance 的 container access:能打開這個 App 的使用者,容器裡的程式都看得到該 Share,即使該使用者在 File Station 看不到。這不是逐使用者 DSM ACL。檔案權限取決於容器服務帳號;App 必須自行實作使用者授權。",
104
+ "zh-CN": "此应用会使用你在这台 NAS 上选择的文件夹,整个应用都能看到它。共享文件夹挂载是整个应用实例的容器访问权限:能够打开此应用的用户,其容器内的程序都能看到该共享文件夹,即使该用户在 File Station 中看不到。这不是按用户设置的 DSM ACL。文件权限取决于容器服务账户;应用必须自行实现用户授权。",
105
+ ja: "このアプリは、この NAS で選択したフォルダを使用し、アプリ全体からそのフォルダが見えます。共有フォルダのマウントは、アプリインスタンス全体に対するコンテナアクセスです。このアプリを開けるユーザーであれば、File Station でその共有フォルダが見えないユーザーであっても、コンテナ内のプログラムから共有フォルダが見えます。これはユーザーごとの DSM ACL ではありません。ファイル権限はコンテナのサービスアカウントによって決まり、アプリは独自にユーザー認可を実装する必要があります。",
106
+ ko: "이 앱은 이 NAS에서 선택한 폴더를 사용하며 앱 전체에서 해당 폴더를 볼 수 있습니다. 공유 폴더 마운트는 앱 인스턴스 전체에 대한 컨테이너 접근입니다. 이 앱을 열 수 있는 사용자라면 File Station에서 해당 공유 폴더가 보이지 않는 사용자라도 컨테이너 안의 프로그램은 그 공유 폴더를 볼 수 있습니다. 이는 사용자별 DSM ACL이 아닙니다. 파일 권한은 컨테이너 서비스 계정에 따라 결정되며, 앱이 직접 사용자 권한 부여를 구현해야 합니다.",
107
+ de: "Diese App verwendet den Ordner, den Sie auf diesem NAS auswählen, und die gesamte App kann ihn sehen. Das Einbinden des freigegebenen Ordners ist ein Container-Zugriff für die gesamte App-Instanz: Für jeden, der diese App öffnen kann, sehen die Programme im Container die Freigabe, auch wenn der Benutzer sie in File Station nicht sehen kann. Das ist keine DSM-ACL pro Benutzer. Die Dateiberechtigungen richten sich nach dem Dienstkonto des Containers; die App muss die Benutzerautorisierung selbst umsetzen.",
108
+ fr: "Cette application utilise le dossier que vous sélectionnez sur ce NAS, et toute l'application peut le voir. Le montage de dossier partagé est un accès conteneur pour l'ensemble de l'instance de l'application : pour tout utilisateur pouvant ouvrir cette application, les programmes du conteneur voient ce dossier partagé, même si l'utilisateur ne le voit pas dans File Station. Ce n'est pas une ACL DSM par utilisateur. Les autorisations de fichiers dépendent du compte de service du conteneur ; l'application doit mettre en œuvre elle-même l'autorisation des utilisateurs.",
109
+ es: "Esta aplicación usa la carpeta que seleccione en este NAS y toda la aplicación puede verla. El montaje de carpeta compartida es un acceso de contenedor para toda la instancia de la aplicación: para cualquier usuario que pueda abrir esta aplicación, los programas del contenedor ven esa carpeta compartida, aunque el usuario no la vea en File Station. No es una ACL de DSM por usuario. Los permisos de archivo dependen de la cuenta de servicio del contenedor; la aplicación debe implementar su propia autorización de usuarios.",
110
+ it: "Questa app usa la cartella selezionata su questo NAS e l'intera app può vederla. Il montaggio della cartella condivisa è un accesso del container per l'intera istanza dell'app: per qualsiasi utente che possa aprire l'app, i programmi nel container vedono la cartella condivisa, anche se l'utente non la vede in File Station. Non è una ACL DSM per utente. I permessi dei file dipendono dall'account di servizio del container; l'app deve implementare da sola l'autorizzazione degli utenti.",
111
+ },
112
+ "consent.homes": {
113
+ en: "This app uses the User Home service already enabled on this NAS. All of the app's containers can see it, and the Compose file decides the container path. This is not a per-user DSM ACL; file permissions depend on the container service account, and the app must enforce its own user authorization.",
114
+ "zh-TW": "此 App 會使用這台 NAS 已啟用的 User Home;整顆應用的容器都看得到,容器路徑由 Compose 決定。這不是逐使用者 DSM ACL;檔案權限取決於容器服務帳號;App 必須自行實作使用者授權。",
115
+ "zh-CN": "此应用会使用这台 NAS 上已启用的用户主目录服务;应用的所有容器都能看到,容器内路径由 Compose 决定。这不是按用户设置的 DSM ACL;文件权限取决于容器服务账户;应用必须自行实现用户授权。",
116
+ ja: "このアプリは、この NAS で有効になっているユーザーホームサービスを使用します。アプリのすべてのコンテナから見え、コンテナ内のパスは Compose で決まります。これはユーザーごとの DSM ACL ではありません。ファイル権限はコンテナのサービスアカウントによって決まり、アプリは独自にユーザー認可を実装する必要があります。",
117
+ ko: "이 앱은 이 NAS에서 이미 활성화된 사용자 홈 서비스를 사용합니다. 앱의 모든 컨테이너에서 볼 수 있으며, 컨테이너 내 경로는 Compose가 결정합니다. 이는 사용자별 DSM ACL이 아니며, 파일 권한은 컨테이너 서비스 계정에 따라 결정됩니다. 앱이 직접 사용자 권한 부여를 구현해야 합니다.",
118
+ de: "Diese App verwendet den auf diesem NAS bereits aktivierten Benutzerhomedienst. Alle Container der App können ihn sehen; den Pfad im Container legt die Compose-Datei fest. Das ist keine DSM-ACL pro Benutzer; die Dateiberechtigungen richten sich nach dem Dienstkonto des Containers, und die App muss die Benutzerautorisierung selbst umsetzen.",
119
+ fr: "Cette application utilise le service de dossiers personnels déjà activé sur ce NAS. Tous les conteneurs de l'application peuvent le voir, et le chemin dans le conteneur est défini par le fichier Compose. Ce n'est pas une ACL DSM par utilisateur ; les autorisations de fichiers dépendent du compte de service du conteneur, et l'application doit mettre en œuvre elle-même l'autorisation des utilisateurs.",
120
+ es: "Esta aplicación usa el servicio de carpetas personales ya habilitado en este NAS. Todos los contenedores de la aplicación pueden verlo y la ruta dentro del contenedor la define el archivo Compose. No es una ACL de DSM por usuario; los permisos de archivo dependen de la cuenta de servicio del contenedor y la aplicación debe implementar su propia autorización de usuarios.",
121
+ it: "Questa app usa il servizio Home utente già abilitato su questo NAS. Tutti i container dell'app possono vederlo e il percorso nel container è definito dal file Compose. Non è una ACL DSM per utente; i permessi dei file dipendono dall'account di servizio del container e l'app deve implementare da sola l'autorizzazione degli utenti.",
122
+ },
123
+ "consent.dsmUser": {
124
+ en: "Files written to the Share appear in File Station as the DSM user you select. Everyone who opens this app shares that disk identity; it is not a per-login ACL.",
125
+ "zh-TW": "寫進 Share 的新檔在 File Station 顯示為你選的那位 DSM 使用者。點開此 App 的人共用這個磁碟身分,不是逐登入 ACL。",
126
+ "zh-CN": "写入共享文件夹的新文件在 File Station 中显示为你所选的 DSM 用户。所有打开此应用的人共用该磁盘身份,而不是按登录用户设置的 ACL。",
127
+ ja: "共有フォルダに書き込まれた新しいファイルは、File Station では選択した DSM ユーザーのファイルとして表示されます。このアプリを開く全員がそのディスク ID を共有し、ログインごとの ACL ではありません。",
128
+ ko: "공유 폴더에 쓰는 새 파일은 File Station에서 선택한 DSM 사용자의 파일로 표시됩니다. 이 앱을 여는 모든 사람이 그 디스크 ID를 공유하며, 로그인별 ACL이 아닙니다.",
129
+ de: "Neue Dateien in der Freigabe erscheinen in File Station als Dateien des gewählten DSM-Benutzers. Alle, die diese App öffnen, teilen sich diese Datenträgeridentität; es ist keine ACL pro Anmeldung.",
130
+ fr: "Les nouveaux fichiers écrits dans le dossier partagé apparaissent dans File Station comme appartenant à l'utilisateur DSM que vous sélectionnez. Toutes les personnes qui ouvrent cette application partagent cette identité disque ; ce n'est pas une ACL par connexion.",
131
+ es: "Los archivos nuevos que se escriban en la carpeta compartida aparecen en File Station como del usuario de DSM que seleccione. Todos los que abran esta aplicación comparten esa identidad de disco; no es una ACL por inicio de sesión.",
132
+ it: "I nuovi file scritti nella cartella condivisa compaiono in File Station come appartenenti all'utente DSM selezionato. Tutti coloro che aprono questa app condividono quell'identità disco; non è una ACL per accesso.",
133
+ },
134
+ "consent.appOwnSpace": {
135
+ en: "This app only uses its own app space.",
136
+ "zh-TW": "此 App 只用 App 自己的空間。",
137
+ "zh-CN": "此应用只使用应用自己的空间。",
138
+ ja: "このアプリはアプリ専用の領域のみを使用します。",
139
+ ko: "이 앱은 앱 자체 공간만 사용합니다.",
140
+ de: "Diese App verwendet nur ihren eigenen App-Speicherplatz.",
141
+ fr: "Cette application n'utilise que son propre espace.",
142
+ es: "Esta aplicación solo usa su propio espacio.",
143
+ it: "Questa app usa solo il proprio spazio.",
144
+ },
145
+ "consent.posixAllShares": {
146
+ en: "This app uses all Shared Folders on this NAS as of installation (app-wide, not subject to individual DSM ACLs); the containers can read (or read and write, depending on the Compose mode) the files in all of them. Shared Folders created after installation are not added automatically. Package Center cannot provide a snapshot of the Shared Folder list at install time. To install with all Shares, use the CLI `synopkgland deploy`: the CLI lists every Share with administrator rights and writes the snapshot. The administrator decides whether to install.",
147
+ "zh-TW": "此 App 會使用安裝當下這台 NAS 的全部 Shared Folder(App-wide,不依個別 DSM ACL);容器內可讀(或讀寫,依 Compose 模式)所有這些資料夾的檔案。安裝後新建的共用資料夾不會自動加入。Package Center 無法提供安裝當下的 Shared Folder 清單快照;要以全部 Share 安裝,請用 CLI `synopkgland deploy`,由 CLI 以管理員權限列舉全部 Share 並寫入快照。由管理員決定是否安裝。",
148
+ "zh-CN": "此应用会使用安装时这台 NAS 上的全部共享文件夹(应用级,不依据各个 DSM ACL);容器内可读取(或读写,取决于 Compose 模式)所有这些文件夹中的文件。安装后新建的共享文件夹不会自动加入。Package Center 无法提供安装时的共享文件夹列表快照;若要以全部共享文件夹安装,请使用 CLI `synopkgland deploy`,由 CLI 以管理员权限列出全部共享文件夹并写入快照。是否安装由管理员决定。",
149
+ ja: "このアプリは、インストール時点でこの NAS にあるすべての共有フォルダを使用します(アプリ全体に適用され、個々の DSM ACL には従いません)。コンテナはそれらすべてのフォルダ内のファイルを読み取れます(Compose のモードによっては読み書きも可能です)。インストール後に作成された共有フォルダは自動的には追加されません。Package Center ではインストール時点の共有フォルダ一覧のスナップショットを提供できません。すべての共有フォルダでインストールするには、CLI の `synopkgland deploy` を使用してください。CLI が管理者権限ですべての共有フォルダを列挙し、スナップショットを書き込みます。インストールするかどうかは管理者が判断します。",
150
+ ko: "이 앱은 설치 시점에 이 NAS에 있는 모든 공유 폴더를 사용합니다(앱 전체 범위이며 개별 DSM ACL을 따르지 않음). 컨테이너는 해당 폴더의 파일을 모두 읽을 수 있으며 Compose 모드에 따라 읽고 쓸 수도 있습니다. 설치 후 새로 만든 공유 폴더는 자동으로 추가되지 않습니다. Package Center는 설치 시점의 공유 폴더 목록 스냅샷을 제공할 수 없습니다. 모든 공유 폴더로 설치하려면 CLI `synopkgland deploy`를 사용하세요. CLI가 관리자 권한으로 모든 공유 폴더를 나열하고 스냅샷을 기록합니다. 설치 여부는 관리자가 결정합니다.",
151
+ de: "Diese App verwendet alle zum Installationszeitpunkt vorhandenen freigegebenen Ordner dieses NAS (appweit, unabhängig von einzelnen DSM-ACLs); die Container können die Dateien in allen diesen Ordnern lesen (oder je nach Compose-Modus lesen und schreiben). Nach der Installation angelegte freigegebene Ordner werden nicht automatisch hinzugefügt. Das Paket-Zentrum kann keine Momentaufnahme der Liste der freigegebenen Ordner zum Installationszeitpunkt bereitstellen. Um mit allen Freigaben zu installieren, verwenden Sie die CLI `synopkgland deploy`: Sie listet alle Freigaben mit Administratorrechten auf und schreibt die Momentaufnahme. Der Administrator entscheidet, ob installiert wird.",
152
+ fr: "Cette application utilise tous les dossiers partagés de ce NAS existant au moment de l'installation (à l'échelle de l'application, sans tenir compte des ACL DSM individuelles) ; les conteneurs peuvent lire (ou lire et écrire, selon le mode Compose) les fichiers de tous ces dossiers. Les dossiers partagés créés après l'installation ne sont pas ajoutés automatiquement. Package Center ne peut pas fournir un instantané de la liste des dossiers partagés au moment de l'installation. Pour installer avec tous les dossiers partagés, utilisez la CLI `synopkgland deploy` : elle énumère tous les dossiers partagés avec les droits d'administrateur et écrit l'instantané. L'administrateur décide de l'installation.",
153
+ es: "Esta aplicación usa todas las carpetas compartidas de este NAS existentes en el momento de la instalación (a nivel de aplicación, sin respetar las ACL de DSM individuales); los contenedores pueden leer (o leer y escribir, según el modo de Compose) los archivos de todas ellas. Las carpetas compartidas creadas después de la instalación no se añaden automáticamente. Package Center no puede proporcionar una instantánea de la lista de carpetas compartidas en el momento de la instalación. Para instalar con todas las carpetas compartidas, use la CLI `synopkgland deploy`: enumera todas las carpetas compartidas con derechos de administrador y escribe la instantánea. El administrador decide si se instala.",
154
+ it: "Questa app usa tutte le cartelle condivise presenti su questo NAS al momento dell'installazione (a livello di app, senza rispettare le singole ACL DSM); i container possono leggere (o leggere e scrivere, a seconda della modalità Compose) i file di tutte queste cartelle. Le cartelle condivise create dopo l'installazione non vengono aggiunte automaticamente. Package Center non può fornire un'istantanea dell'elenco delle cartelle condivise al momento dell'installazione. Per installare con tutte le cartelle condivise, usare la CLI `synopkgland deploy`: elenca tutte le cartelle condivise con diritti di amministratore e scrive l'istantanea. L'amministratore decide se installare.",
155
+ },
156
+ "consent.privilege": {
157
+ en: "This app's container has high privileges, close to root on this NAS and almost the whole machine. You, as the administrator, decide whether to install it.",
158
+ "zh-TW": "此 App 的容器有高權限,接近這台 NAS 的 root、幾乎整台機器。是否安裝由你這位管理員決定。",
159
+ "zh-CN": "此应用的容器拥有高权限,接近这台 NAS 的 root,几乎等同于整台机器。是否安装由你这位管理员决定。",
160
+ ja: "このアプリのコンテナは高い権限を持ち、この NAS の root にほぼ等しく、マシン全体に近い範囲に及びます。インストールするかどうかは管理者であるあなたが判断します。",
161
+ ko: "이 앱의 컨테이너는 높은 권한을 가지며, 이 NAS의 root에 가깝고 사실상 시스템 전체에 해당합니다. 설치 여부는 관리자인 사용자가 결정합니다.",
162
+ de: "Der Container dieser App hat hohe Rechte, nahe an root auf diesem NAS und damit fast am gesamten System. Sie als Administrator entscheiden, ob die App installiert wird.",
163
+ fr: "Le conteneur de cette application dispose de privilèges élevés, proches de root sur ce NAS et donc de presque toute la machine. C'est à vous, administrateur, de décider de l'installer ou non.",
164
+ es: "El contenedor de esta aplicación tiene privilegios elevados, cercanos a root en este NAS y, por tanto, a casi toda la máquina. Usted, como administrador, decide si se instala.",
165
+ it: "Il container di questa app ha privilegi elevati, vicini a root su questo NAS e quindi a quasi tutta la macchina. Spetta a lei, come amministratore, decidere se installarla.",
166
+ },
167
+ "upgrade.posixNotice": {
168
+ en: "An upgrade keeps the existing snapshot (all Shared Folders the CLI listed at install time). The mounted scope can only be changed explicitly through the CLI (`synopkgland deploy`); a Package Center upgrade does not change the existing snapshot.",
169
+ "zh-TW": "升級會保留既有快照(安裝當下由 CLI 列舉的全部 Shared Folder);變更掛載範圍只能由 CLI 明確提供(`synopkgland deploy`)。Package Center 升級不會改動現有快照。",
170
+ "zh-CN": "升级会保留现有快照(安装时由 CLI 列出的全部共享文件夹);变更挂载范围只能通过 CLI 明确指定(`synopkgland deploy`)。Package Center 升级不会改动现有快照。",
171
+ ja: "アップグレードでは既存のスナップショット(インストール時に CLI が列挙したすべての共有フォルダ)が保持されます。マウント範囲を変更できるのは CLI(`synopkgland deploy`)で明示的に指定した場合のみで、Package Center からのアップグレードでは既存のスナップショットは変更されません。",
172
+ ko: "업그레이드해도 기존 스냅샷(설치 시 CLI가 나열한 모든 공유 폴더)은 유지됩니다. 마운트 범위는 CLI(`synopkgland deploy`)로 명시적으로 지정해야만 변경할 수 있으며, Package Center 업그레이드는 기존 스냅샷을 변경하지 않습니다.",
173
+ de: "Ein Upgrade behält die vorhandene Momentaufnahme bei (alle Freigaben, die die CLI zum Installationszeitpunkt aufgelistet hat). Der eingebundene Umfang lässt sich nur ausdrücklich über die CLI ändern (`synopkgland deploy`); ein Upgrade über das Paket-Zentrum ändert die vorhandene Momentaufnahme nicht.",
174
+ fr: "Une mise à jour conserve l'instantané existant (tous les dossiers partagés énumérés par la CLI au moment de l'installation). L'étendue montée ne peut être modifiée explicitement que via la CLI (`synopkgland deploy`) ; une mise à jour depuis Package Center ne modifie pas l'instantané existant.",
175
+ es: "Una actualización conserva la instantánea existente (todas las carpetas compartidas que la CLI enumeró en la instalación). El alcance montado solo puede cambiarse de forma explícita mediante la CLI (`synopkgland deploy`); una actualización desde Package Center no modifica la instantánea existente.",
176
+ it: "Un aggiornamento mantiene l'istantanea esistente (tutte le cartelle condivise elencate dalla CLI al momento dell'installazione). L'ambito montato può essere modificato solo in modo esplicito tramite la CLI (`synopkgland deploy`); un aggiornamento da Package Center non modifica l'istantanea esistente.",
177
+ },
178
+ "upgrade.sharedFolderRw": {
179
+ en: "This version changes the Share mount to read-write; the container can read and write the Share you selected, and it is no longer read-only.",
180
+ "zh-TW": "此版本把 Share 掛載改為讀寫;容器可讀取並寫入你選的 Share,不再是唯讀。",
181
+ "zh-CN": "此版本将共享文件夹挂载改为读写;容器可以读取并写入你选择的共享文件夹,不再是只读。",
182
+ ja: "このバージョンでは共有フォルダのマウントが読み書き可能に変更されます。コンテナは選択した共有フォルダを読み書きでき、読み取り専用ではなくなります。",
183
+ ko: "이 버전은 공유 폴더 마운트를 읽기/쓰기로 변경합니다. 컨테이너가 선택한 공유 폴더를 읽고 쓸 수 있으며 더 이상 읽기 전용이 아닙니다.",
184
+ de: "Diese Version bindet die Freigabe mit Lese- und Schreibzugriff ein; der Container kann die gewählte Freigabe lesen und beschreiben und ist nicht mehr schreibgeschützt.",
185
+ fr: "Cette version monte le dossier partagé en lecture-écriture ; le conteneur peut lire et écrire dans le dossier partagé que vous avez sélectionné, qui n'est plus en lecture seule.",
186
+ es: "Esta versión cambia el montaje de la carpeta compartida a lectura y escritura; el contenedor puede leer y escribir en la carpeta compartida que seleccionó y ya no es de solo lectura.",
187
+ it: "Questa versione modifica il montaggio della cartella condivisa in lettura e scrittura; il container può leggere e scrivere nella cartella condivisa selezionata e non è più in sola lettura.",
188
+ },
189
+ "upgrade.dsmUser": {
190
+ en: "Changing the Container Run-as during an upgrade does not chown the old files on the Share; only files written after the upgrade use the new disk identity.",
191
+ "zh-TW": "升級時更換 Container Run-as 不會 chown Share 上的舊檔;只有升級後寫入的新檔才會使用新的磁碟身分。",
192
+ "zh-CN": "升级时更换容器运行身份不会对共享文件夹上的旧文件执行 chown;只有升级后写入的新文件才会使用新的磁盘身份。",
193
+ ja: "アップグレード時にコンテナの実行ユーザーを変更しても、共有フォルダ上の既存ファイルの所有者は変更されません。アップグレード後に書き込まれた新しいファイルのみが新しいディスク ID を使用します。",
194
+ ko: "업그레이드 중 컨테이너 실행 사용자를 변경해도 공유 폴더의 기존 파일 소유자는 변경되지 않습니다. 업그레이드 후 새로 쓰는 파일만 새 디스크 ID를 사용합니다.",
195
+ de: "Eine Änderung des Container-Benutzers beim Upgrade ändert nicht den Besitzer der alten Dateien in der Freigabe; nur nach dem Upgrade geschriebene Dateien verwenden die neue Datenträgeridentität.",
196
+ fr: "Changer l'utilisateur d'exécution du conteneur lors d'une mise à jour ne modifie pas le propriétaire des anciens fichiers du dossier partagé ; seuls les fichiers écrits après la mise à jour utilisent la nouvelle identité disque.",
197
+ es: "Cambiar el usuario de ejecución del contenedor durante una actualización no cambia el propietario de los archivos antiguos de la carpeta compartida; solo los archivos escritos después de la actualización usan la nueva identidad de disco.",
198
+ it: "La modifica dell'utente di esecuzione del container durante un aggiornamento non cambia il proprietario dei vecchi file nella cartella condivisa; solo i file scritti dopo l'aggiornamento usano la nuova identità disco.",
199
+ },
200
+ "upgrade.reuseDesc": {
201
+ en: "{desc} (leave blank to keep the current setting)",
202
+ "zh-TW": "{desc}(留空=沿用目前設定)",
203
+ "zh-CN": "{desc}(留空=沿用当前设置)",
204
+ ja: "{desc}(空欄=現在の設定を継続)",
205
+ ko: "{desc} (비워 두면 현재 설정 유지)",
206
+ de: "{desc} (leer lassen, um die aktuelle Einstellung beizubehalten)",
207
+ fr: "{desc} (laisser vide pour conserver le réglage actuel)",
208
+ es: "{desc} (dejar en blanco para mantener la configuración actual)",
209
+ it: "{desc} (lasciare vuoto per mantenere l'impostazione attuale)",
210
+ },
211
+ "upgrade.changeDesc": {
212
+ en: "Change {label} (unchecked = keep the current setting)",
213
+ "zh-TW": "變更 {label}(不勾=沿用目前設定)",
214
+ "zh-CN": "变更 {label}(不勾选=沿用当前设置)",
215
+ ja: "{label} を変更する(オフ=現在の設定を継続)",
216
+ ko: "{label} 변경(선택 안 함 = 현재 설정 유지)",
217
+ de: "{label} ändern (nicht aktiviert = aktuelle Einstellung beibehalten)",
218
+ fr: "Modifier {label} (non coché = conserver le réglage actuel)",
219
+ es: "Cambiar {label} (sin marcar = mantener la configuración actual)",
220
+ it: "Modifica {label} (non selezionato = mantieni l'impostazione attuale)",
221
+ },
222
+ "upgrade.changeSub": {
223
+ en: "Change {label}",
224
+ "zh-TW": "變更 {label}",
225
+ "zh-CN": "变更 {label}",
226
+ ja: "{label} を変更する",
227
+ ko: "{label} 변경",
228
+ de: "{label} ändern",
229
+ fr: "Modifier {label}",
230
+ es: "Cambiar {label}",
231
+ it: "Modifica {label}",
232
+ },
233
+ "uninstall.integration": {
234
+ en: "This app has an approved root integration. Disable the integration inside the App (and remove its root task) before uninstalling; while the integration stays enabled, DSM blocks the uninstall.",
235
+ "zh-TW": "此 App 有已核准的 root 整合。卸載前請先在 App 內停用整合(並移除其 root 工作);整合未停用時,DSM 會擋下卸載。",
236
+ "zh-CN": "此应用有已批准的 root 集成。卸载前请先在应用内停用集成(并移除其 root 任务);集成未停用时,DSM 会阻止卸载。",
237
+ ja: "このアプリには承認済みの root 統合があります。アンインストールする前に、アプリ内で統合を無効化し(root タスクも削除して)ください。統合が有効な間は DSM がアンインストールをブロックします。",
238
+ ko: "이 앱에는 승인된 root 통합이 있습니다. 제거하기 전에 앱에서 통합을 비활성화하고 root 작업도 제거하세요. 통합이 활성화된 동안에는 DSM이 제거를 차단합니다.",
239
+ de: "Diese App hat eine genehmigte root-Integration. Deaktivieren Sie die Integration in der App (und entfernen Sie deren root-Aufgabe), bevor Sie deinstallieren; solange die Integration aktiv ist, blockiert DSM die Deinstallation.",
240
+ fr: "Cette application dispose d'une intégration root approuvée. Désactivez l'intégration dans l'application (et supprimez sa tâche root) avant de désinstaller ; tant que l'intégration reste active, DSM bloque la désinstallation.",
241
+ es: "Esta aplicación tiene una integración root aprobada. Desactive la integración dentro de la aplicación (y elimine su tarea root) antes de desinstalar; mientras la integración siga activada, DSM bloquea la desinstalación.",
242
+ it: "Questa app ha un'integrazione root approvata. Disattiva l'integrazione nell'app (e rimuovi la relativa attività root) prima di disinstallare; finché l'integrazione resta attiva, DSM blocca la disinstallazione.",
243
+ },
244
+ "uninstall.intro": {
245
+ en: "By default, uninstalling keeps this app's data, and a later reinstall continues with it. Tick the box below to also permanently delete the data listed here.",
246
+ "zh-TW": "預設解除安裝會保留此 App 的資料,之後重新安裝會沿用。勾選下方選項,可一併永久刪除這裡列出的資料。",
247
+ "zh-CN": "默认情况下,卸载会保留此应用的数据,之后重新安装将继续使用。勾选下方选项,可同时永久删除这里列出的数据。",
248
+ ja: "既定では、アンインストールしてもこのアプリのデータは保持され、再インストール時に引き続き使用されます。下のチェックボックスをオンにすると、ここに表示されているデータも完全に削除されます。",
249
+ ko: "기본적으로 제거해도 이 앱의 데이터는 유지되며, 나중에 다시 설치하면 그대로 사용됩니다. 아래 확인란을 선택하면 여기에 나열된 데이터도 영구적으로 삭제됩니다.",
250
+ de: "Standardmäßig bleiben die Daten dieser App bei der Deinstallation erhalten; eine spätere Neuinstallation verwendet sie weiter. Aktivieren Sie das Kontrollkästchen unten, um die hier aufgeführten Daten zusätzlich dauerhaft zu löschen.",
251
+ fr: "Par défaut, la désinstallation conserve les données de cette application, et une réinstallation ultérieure les reprend. Cochez la case ci-dessous pour supprimer aussi définitivement les données listées ici.",
252
+ es: "De forma predeterminada, al desinstalar se conservan los datos de esta aplicación y una reinstalación posterior los reutiliza. Marque la casilla siguiente para eliminar además de forma permanente los datos indicados aquí.",
253
+ it: "Per impostazione predefinita, la disinstallazione conserva i dati di questa app e una reinstallazione successiva li riutilizza. Selezionare la casella qui sotto per eliminare in modo permanente anche i dati elencati qui.",
254
+ },
255
+ "uninstall.deleteHeading": {
256
+ en: "If you tick the box, these items are permanently deleted:",
257
+ "zh-TW": "勾選後,下列項目會被永久刪除:",
258
+ "zh-CN": "勾选后,以下项目将被永久删除:",
259
+ ja: "チェックすると、次の項目が完全に削除されます:",
260
+ ko: "선택하면 다음 항목이 영구적으로 삭제됩니다:",
261
+ de: "Wenn Sie das Kontrollkästchen aktivieren, werden folgende Elemente dauerhaft gelöscht:",
262
+ fr: "Si vous cochez la case, les éléments suivants sont supprimés définitivement :",
263
+ es: "Si marca la casilla, los siguientes elementos se eliminan de forma permanente:",
264
+ it: "Se si seleziona la casella, i seguenti elementi vengono eliminati in modo permanente:",
265
+ },
266
+ "uninstall.item.appdata": {
267
+ en: "App data (@appdata/{package})",
268
+ "zh-TW": "App 資料(@appdata/{package})",
269
+ "zh-CN": "应用数据(@appdata/{package})",
270
+ ja: "アプリのデータ(@appdata/{package})",
271
+ ko: "앱 데이터(@appdata/{package})",
272
+ de: "App-Daten (@appdata/{package})",
273
+ fr: "Données de l'application (@appdata/{package})",
274
+ es: "Datos de la aplicación (@appdata/{package})",
275
+ it: "Dati dell'app (@appdata/{package})",
276
+ },
277
+ "uninstall.item.apphome": {
278
+ en: "App home folder (@apphome/{package})",
279
+ "zh-TW": "App 主目錄(@apphome/{package})",
280
+ "zh-CN": "应用主目录(@apphome/{package})",
281
+ ja: "アプリのホームフォルダ(@apphome/{package})",
282
+ ko: "앱 홈 폴더(@apphome/{package})",
283
+ de: "Home-Ordner der App (@apphome/{package})",
284
+ fr: "Dossier personnel de l'application (@apphome/{package})",
285
+ es: "Carpeta de inicio de la aplicación (@apphome/{package})",
286
+ it: "Cartella home dell'app (@apphome/{package})",
287
+ },
288
+ "uninstall.item.apphomeSecrets": {
289
+ en: "App home folder, including generated secrets (@apphome/{package})",
290
+ "zh-TW": "App 主目錄,含自動產生的 secrets(@apphome/{package})",
291
+ "zh-CN": "应用主目录,包含自动生成的密钥(@apphome/{package})",
292
+ ja: "アプリのホームフォルダ(自動生成されたシークレットを含む)(@apphome/{package})",
293
+ ko: "앱 홈 폴더(자동 생성된 시크릿 포함)(@apphome/{package})",
294
+ de: "Home-Ordner der App einschließlich erzeugter Geheimnisse (@apphome/{package})",
295
+ fr: "Dossier personnel de l'application, y compris les secrets générés (@apphome/{package})",
296
+ es: "Carpeta de inicio de la aplicación, incluidos los secretos generados (@apphome/{package})",
297
+ it: "Cartella home dell'app, inclusi i segreti generati (@apphome/{package})",
298
+ },
299
+ "uninstall.keep.native": {
300
+ en: "Never deleted: Shared Folders, the package account, and other apps' data.",
301
+ "zh-TW": "不會被刪除:共用資料夾(Shared Folder)、套件帳號,以及其他 App 的資料。",
302
+ "zh-CN": "不会被删除:共享文件夹、套件账户,以及其他应用的数据。",
303
+ ja: "削除されないもの: 共有フォルダ、パッケージアカウント、他のアプリのデータ。",
304
+ ko: "삭제되지 않는 항목: 공유 폴더, 패키지 계정, 다른 앱의 데이터.",
305
+ de: "Nie gelöscht werden: freigegebene Ordner, das Paketkonto und die Daten anderer Apps.",
306
+ fr: "Jamais supprimés : les dossiers partagés, le compte du paquet et les données des autres applications.",
307
+ es: "Nunca se eliminan: las carpetas compartidas, la cuenta del paquete y los datos de otras aplicaciones.",
308
+ it: "Non vengono mai eliminati: le cartelle condivise, l'account del pacchetto e i dati delle altre app.",
309
+ },
310
+ "uninstall.keep.container": {
311
+ en: "Never deleted: Shared Folders, Docker named volumes, the package account, and other apps' data.",
312
+ "zh-TW": "不會被刪除:共用資料夾(Shared Folder)、Docker named volume、套件帳號,以及其他 App 的資料。",
313
+ "zh-CN": "不会被删除:共享文件夹、Docker 命名卷、套件账户,以及其他应用的数据。",
314
+ ja: "削除されないもの: 共有フォルダ、Docker の名前付きボリューム、パッケージアカウント、他のアプリのデータ。",
315
+ ko: "삭제되지 않는 항목: 공유 폴더, Docker 명명된 볼륨, 패키지 계정, 다른 앱의 데이터.",
316
+ de: "Nie gelöscht werden: freigegebene Ordner, benannte Docker-Volumes, das Paketkonto und die Daten anderer Apps.",
317
+ fr: "Jamais supprimés : les dossiers partagés, les volumes nommés Docker, le compte du paquet et les données des autres applications.",
318
+ es: "Nunca se eliminan: las carpetas compartidas, los volúmenes con nombre de Docker, la cuenta del paquete y los datos de otras aplicaciones.",
319
+ it: "Non vengono mai eliminati: le cartelle condivise, i volumi con nome di Docker, l'account del pacchetto e i dati delle altre app.",
320
+ },
321
+ "uninstall.backup": {
322
+ en: "Hyper Backup is not checked, and the platform cannot verify that a recoverable backup exists.",
323
+ "zh-TW": "平台不會檢查 Hyper Backup,也未驗證是否有可復原的備份。",
324
+ "zh-CN": "平台不会检查 Hyper Backup,也无法验证是否存在可恢复的备份。",
325
+ ja: "Hyper Backup は確認されず、復元可能なバックアップが存在するかどうかもプラットフォームでは検証できません。",
326
+ ko: "Hyper Backup은 확인하지 않으며, 복구 가능한 백업이 있는지도 플랫폼에서 확인할 수 없습니다.",
327
+ de: "Hyper Backup wird nicht geprüft; die Plattform kann auch nicht feststellen, ob eine wiederherstellbare Sicherung vorhanden ist.",
328
+ fr: "Hyper Backup n'est pas vérifié, et la plateforme ne peut pas confirmer qu'une sauvegarde récupérable existe.",
329
+ es: "No se comprueba Hyper Backup y la plataforma no puede verificar que exista una copia de seguridad recuperable.",
330
+ it: "Hyper Backup non viene controllato e la piattaforma non può verificare che esista un backup recuperabile.",
331
+ },
332
+ "uninstall.checkbox": {
333
+ en: "Also delete the app data listed above",
334
+ "zh-TW": "一併刪除上列 App 資料",
335
+ "zh-CN": "同时删除上列应用数据",
336
+ ja: "上記のアプリデータも削除する",
337
+ ko: "위에 나열된 앱 데이터도 삭제",
338
+ de: "Oben aufgeführte App-Daten ebenfalls löschen",
339
+ fr: "Supprimer aussi les données de l'application listées ci-dessus",
340
+ es: "Eliminar también los datos de la aplicación indicados arriba",
341
+ it: "Elimina anche i dati dell'app elencati sopra",
342
+ },
343
+ "nativeShare.selectIntro": {
344
+ en: "This app keeps its files in a Shared Folder you select below. DSM does not give the app's package account access to a folder chosen here: after installing, open Control Panel > Shared Folder, edit the folder, and under Permissions > System internal user give the package account {account} {permission} access. Until then the app reports that it cannot use the folder.",
345
+ "zh-TW": "此 App 會把檔案存放在你於下方選擇的共用資料夾。DSM 不會自動讓 App 的套件帳號存取這裡選的資料夾:安裝後請到「控制台」>「共用資料夾」,編輯該資料夾,在「權限」>「系統內部使用者」中授予套件帳號 {account}「{permission}」權限。在此之前,App 會回報無法使用該資料夾。",
346
+ "zh-CN": "此应用会把文件存放在你在下方选择的共享文件夹。DSM 不会自动让应用的套件账户访问此处所选的文件夹:安装后请前往“控制面板”>“共享文件夹”,编辑该文件夹,在“权限”>“系统内部用户”中授予套件账户 {account}“{permission}”权限。在此之前,应用会报告无法使用该文件夹。",
347
+ ja: "このアプリは、以下で選択した共有フォルダにファイルを保存します。DSM は、ここで選択したフォルダへのアクセス権をアプリのパッケージアカウントに自動では付与しません。インストール後に [コントロールパネル] > [共有フォルダ] でそのフォルダを編集し、[権限] > [システム内部ユーザー] でパッケージアカウント {account} に「{permission}」権限を付与してください。付与するまで、アプリはこのフォルダを使用できないと報告します。",
348
+ ko: "이 앱은 아래에서 선택한 공유 폴더에 파일을 저장합니다. DSM은 여기서 선택한 폴더에 대한 접근 권한을 앱의 패키지 계정에 자동으로 부여하지 않습니다. 설치 후 [제어판] > [공유 폴더]에서 해당 폴더를 편집하고 [권한] > [시스템 내부 사용자]에서 패키지 계정 {account}에 '{permission}' 권한을 부여하세요. 그때까지 앱은 이 폴더를 사용할 수 없다고 보고합니다.",
349
+ de: "Diese App speichert ihre Dateien in einem freigegebenen Ordner, den Sie unten auswählen. DSM gewährt dem Paketkonto der App keinen automatischen Zugriff auf hier gewählte Ordner: Öffnen Sie nach der Installation Systemsteuerung > Gemeinsamer Ordner, bearbeiten Sie den Ordner und geben Sie dem Paketkonto {account} unter Berechtigungen > Interner Systembenutzer die Berechtigung „{permission}“. Bis dahin meldet die App, dass sie den Ordner nicht verwenden kann.",
350
+ fr: "Cette application enregistre ses fichiers dans un dossier partagé que vous sélectionnez ci-dessous. DSM n'accorde pas automatiquement au compte de paquet de l'application l'accès à un dossier choisi ici : après l'installation, ouvrez Panneau de configuration > Dossier partagé, modifiez le dossier et, sous Autorisations > Utilisateur système interne, accordez au compte de paquet {account} l'accès « {permission} ». D'ici là, l'application signale qu'elle ne peut pas utiliser le dossier.",
351
+ es: "Esta aplicación guarda sus archivos en una carpeta compartida que seleccione a continuación. DSM no concede automáticamente a la cuenta de paquete de la aplicación acceso a una carpeta elegida aquí: después de instalar, abra Panel de control > Carpeta compartida, edite la carpeta y, en Permisos > Usuario interno del sistema, conceda a la cuenta de paquete {account} el acceso «{permission}». Hasta entonces, la aplicación informará de que no puede usar la carpeta.",
352
+ it: "Questa app salva i propri file in una cartella condivisa selezionata qui sotto. DSM non concede automaticamente all'account del pacchetto dell'app l'accesso a una cartella scelta qui: dopo l'installazione apri Pannello di controllo > Cartella condivisa, modifica la cartella e, in Autorizzazioni > Utente interno del sistema, concedi all'account del pacchetto {account} l'accesso «{permission}». Fino ad allora l'app segnalerà di non poter usare la cartella.",
353
+ },
354
+ "nativeShare.createIntro": {
355
+ en: "This app creates the Shared Folder {name} and gives its package account {permission} access to it. If {name} already exists, it is kept and only the package account's permission is set. Uninstalling the app never deletes this Shared Folder or the files in it.",
356
+ "zh-TW": "此 App 會建立共用資料夾 {name},並授予其套件帳號「{permission}」權限。若 {name} 已存在,會沿用它,只設定套件帳號的權限。解除安裝 App 不會刪除這個共用資料夾或其中的檔案。",
357
+ "zh-CN": "此应用会创建共享文件夹 {name},并授予其套件账户“{permission}”权限。若 {name} 已存在,则沿用它,只设置套件账户的权限。卸载应用不会删除此共享文件夹或其中的文件。",
358
+ ja: "このアプリは共有フォルダ {name} を作成し、そのパッケージアカウントに「{permission}」権限を付与します。{name} が既に存在する場合はそのまま使用し、パッケージアカウントの権限のみを設定します。アプリをアンインストールしても、この共有フォルダとその中のファイルは削除されません。",
359
+ ko: "이 앱은 공유 폴더 {name}을(를) 만들고 패키지 계정에 '{permission}' 권한을 부여합니다. {name}이(가) 이미 있으면 그대로 사용하며 패키지 계정의 권한만 설정합니다. 앱을 제거해도 이 공유 폴더와 그 안의 파일은 삭제되지 않습니다.",
360
+ de: "Diese App erstellt den freigegebenen Ordner {name} und gibt ihrem Paketkonto die Berechtigung „{permission}“. Ist {name} bereits vorhanden, wird er beibehalten und nur die Berechtigung des Paketkontos gesetzt. Beim Deinstallieren der App werden dieser freigegebene Ordner und seine Dateien nie gelöscht.",
361
+ fr: "Cette application crée le dossier partagé {name} et accorde à son compte de paquet l'accès « {permission} ». Si {name} existe déjà, il est conservé et seule l'autorisation du compte de paquet est définie. La désinstallation de l'application ne supprime jamais ce dossier partagé ni les fichiers qu'il contient.",
362
+ es: "Esta aplicación crea la carpeta compartida {name} y concede a su cuenta de paquete el acceso «{permission}». Si {name} ya existe, se conserva y solo se establece el permiso de la cuenta de paquete. Desinstalar la aplicación nunca elimina esta carpeta compartida ni los archivos que contiene.",
363
+ it: "Questa app crea la cartella condivisa {name} e concede al suo account del pacchetto l'accesso «{permission}». Se {name} esiste già, viene mantenuta e viene impostata solo l'autorizzazione dell'account del pacchetto. La disinstallazione dell'app non elimina mai questa cartella condivisa né i file al suo interno.",
364
+ },
365
+ "nativeShare.permission.ro": {
366
+ en: "read-only",
367
+ "zh-TW": "唯讀",
368
+ "zh-CN": "只读",
369
+ ja: "読み取り専用",
370
+ ko: "읽기 전용",
371
+ de: "Nur Lesen",
372
+ fr: "lecture seule",
373
+ es: "solo lectura",
374
+ it: "sola lettura",
375
+ },
376
+ "nativeShare.permission.rw": {
377
+ en: "read and write",
378
+ "zh-TW": "讀寫",
379
+ "zh-CN": "读写",
380
+ ja: "読み取りと書き込み",
381
+ ko: "읽기/쓰기",
382
+ de: "Lesen und Schreiben",
383
+ fr: "lecture et écriture",
384
+ es: "lectura y escritura",
385
+ it: "lettura e scrittura",
386
+ },
387
+ };