@synopackageland/cli 0.4.1 → 0.5.3

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 (699) hide show
  1. package/README.md +7 -3
  2. package/dist/authorization-sdk.d.ts +5 -0
  3. package/dist/authorization-sdk.js +5 -0
  4. package/dist/build-spk/delete-app-data.d.ts +27 -7
  5. package/dist/build-spk/delete-app-data.js +35 -34
  6. package/dist/build-spk/dsm-arch.d.ts +6 -1
  7. package/dist/build-spk/dsm-arch.js +25 -1
  8. package/dist/build-spk/dsm-version.d.ts +14 -0
  9. package/dist/build-spk/dsm-version.js +47 -0
  10. package/dist/build-spk/gateway.d.ts +31 -0
  11. package/dist/build-spk/gateway.js +55 -0
  12. package/dist/build-spk/generator.d.ts +5 -0
  13. package/dist/build-spk/generator.js +103 -107
  14. package/dist/build-spk/install-wizard.d.ts +20 -0
  15. package/dist/build-spk/install-wizard.js +76 -0
  16. package/dist/build-spk/native-lifecycle.d.ts +5 -0
  17. package/dist/build-spk/native-lifecycle.js +12 -2
  18. package/dist/build-spk/resource-worker.d.ts +9 -4
  19. package/dist/build-spk/resource-worker.js +15 -6
  20. package/dist/build-spk/share-combobox.d.ts +3 -0
  21. package/dist/build-spk/share-combobox.js +27 -0
  22. package/dist/build-spk/uninstall-wizard.d.ts +14 -0
  23. package/dist/build-spk/uninstall-wizard.js +33 -0
  24. package/dist/build-spk/wizard-i18n.d.ts +18 -0
  25. package/dist/build-spk/wizard-i18n.js +38 -0
  26. package/dist/build-spk/wizard-messages.d.ts +388 -0
  27. package/dist/build-spk/wizard-messages.js +387 -0
  28. package/dist/cli.js +132 -32
  29. package/dist/compose/analyze.d.ts +20 -0
  30. package/dist/compose/analyze.js +75 -11
  31. package/dist/contract/validate.js +33 -1
  32. package/dist/contract/web-launch.d.ts +22 -0
  33. package/dist/contract/web-launch.js +37 -0
  34. package/dist/deploy/deploy.d.ts +3 -0
  35. package/dist/deploy/deploy.js +11 -2
  36. package/dist/error-registry.js +62 -3
  37. package/dist/host/dsm-port-profile.d.ts +1 -1
  38. package/dist/host/dsm-port-profile.js +1 -1
  39. package/dist/host/open-url.d.ts +2 -0
  40. package/dist/host/open-url.js +4 -1
  41. package/dist/images/pin.d.ts +52 -0
  42. package/dist/images/pin.js +249 -0
  43. package/dist/init.d.ts +27 -3
  44. package/dist/init.js +126 -16
  45. package/dist/inspect.d.ts +3 -0
  46. package/dist/inspect.js +15 -3
  47. package/dist/standalone/authorization-window.d.ts +2 -0
  48. package/dist/standalone/authorization-window.js +28 -0
  49. package/dist/standalone/authorization.d.ts +48 -0
  50. package/dist/standalone/authorization.js +116 -0
  51. package/dist/standalone/background.d.ts +21 -0
  52. package/dist/standalone/background.js +52 -0
  53. package/dist/standalone/binary.d.ts +1 -0
  54. package/dist/standalone/binary.js +1 -1
  55. package/dist/standalone/build.d.ts +2 -0
  56. package/dist/standalone/build.js +54 -10
  57. package/dist/standalone/dsm-window.js +10 -3
  58. package/dist/standalone/helper-inventory.d.ts +15 -0
  59. package/dist/standalone/helper-inventory.js +9 -0
  60. package/dist/standalone/helper.d.ts +1 -0
  61. package/dist/standalone/helper.js +29 -11
  62. package/dist/standalone/host-adapter.d.ts +1 -1
  63. package/dist/standalone/host-adapter.js +33 -15
  64. package/dist/standalone/host-file-navigation.d.ts +7 -0
  65. package/dist/standalone/host-file-navigation.js +172 -0
  66. package/dist/standalone/inspect-helper.js +21 -6
  67. package/dist/standalone/inspect-spk.d.ts +1 -1
  68. package/dist/standalone/inspect-spk.js +211 -7
  69. package/dist/standalone/job-diagnostics.d.ts +1 -0
  70. package/dist/standalone/job-diagnostics.js +49 -0
  71. package/dist/standalone/lifecycle-helper.d.ts +1 -1
  72. package/dist/standalone/lifecycle-helper.js +2 -2
  73. package/dist/standalone/lifecycle.d.ts +1 -1
  74. package/dist/standalone/lifecycle.js +14 -4
  75. package/dist/standalone/manifest.d.ts +15 -2
  76. package/dist/standalone/manifest.js +37 -6
  77. package/dist/standalone/native-layout.d.ts +74 -0
  78. package/dist/standalone/native-layout.js +318 -0
  79. package/dist/standalone/resource.d.ts +11 -0
  80. package/dist/standalone/resource.js +13 -0
  81. package/dist/standalone/root-ops.d.ts +2 -0
  82. package/dist/standalone/root-ops.js +10 -0
  83. package/dist/standalone/root-window.d.ts +3 -1
  84. package/dist/standalone/root-window.js +156 -38
  85. package/dist/standalone/shared-folder.d.ts +39 -0
  86. package/dist/standalone/shared-folder.js +141 -0
  87. package/dist/standalone/spk.d.ts +4 -0
  88. package/dist/standalone/spk.js +47 -3
  89. package/dist/standalone/worker-contract-json.d.ts +8 -0
  90. package/dist/standalone/worker-contract-json.js +141 -0
  91. package/dist/standalone/worker-contract.d.ts +189 -0
  92. package/dist/standalone/worker-contract.js +175 -0
  93. package/dist/standalone/worker-registry.d.ts +40 -0
  94. package/dist/standalone/worker-registry.js +167 -0
  95. package/dist/templates/_authorization/main.go +104 -0
  96. package/dist/templates/_authorization/main_test.go +35 -0
  97. package/dist/templates/_daemon/go.mod +2 -0
  98. package/dist/templates/_gateway/auth.go +101 -0
  99. package/dist/templates/_gateway/auth_test.go +216 -0
  100. package/dist/templates/_gateway/cgi.go +133 -0
  101. package/dist/templates/_gateway/cgi_test.go +156 -0
  102. package/dist/templates/_gateway/csrf.go +73 -0
  103. package/dist/templates/_gateway/csrf_test.go +155 -0
  104. package/dist/templates/_gateway/directory.go +108 -0
  105. package/dist/templates/_gateway/directory_test.go +202 -0
  106. package/dist/templates/_gateway/gateway.go +412 -0
  107. package/dist/templates/_gateway/gateway_test.go +676 -0
  108. package/dist/templates/_gateway/go.mod +3 -0
  109. package/dist/templates/_gateway/groups.go +66 -0
  110. package/dist/templates/_gateway/main.go +45 -0
  111. package/dist/templates/binary/synology-app.yaml +1 -1
  112. package/dist/templates/compose-import/compose.yaml +1 -1
  113. package/dist/templates/compose-import/synology-app.yaml +1 -1
  114. package/dist/templates/hello-files/compose.yaml +1 -1
  115. package/dist/templates/hello-files/synology-app.yaml +1 -1
  116. package/dist/templates/native-go/README.md +118 -5
  117. package/dist/templates/native-go/backend/THIRD_PARTY_NOTICES.txt +3 -1
  118. package/dist/templates/native-go/backend/cmd/app/main.go +25 -6
  119. package/dist/templates/native-go/backend/cmd/app/sdk_main.go +62 -0
  120. package/dist/templates/native-go/backend/cmd/background-worker/main.go +38 -0
  121. package/dist/templates/native-go/backend/cmd/helper/main.go +27 -1
  122. package/dist/templates/native-go/backend/cmd/helper/sdk_registry.go +19 -0
  123. package/dist/templates/native-go/backend/go.mod +5 -3
  124. package/dist/templates/native-go/backend/go.sum +4 -4
  125. package/dist/templates/native-go/backend/internal/api/registry.go +17 -6
  126. package/dist/templates/native-go/backend/internal/api/server.go +7 -1
  127. package/dist/templates/native-go/backend/internal/app/authorization_none.go +5 -0
  128. package/dist/templates/native-go/backend/internal/app/background.go +270 -0
  129. package/dist/templates/native-go/backend/internal/app/background_none.go +8 -0
  130. package/dist/templates/native-go/backend/internal/app/background_owner.go +59 -0
  131. package/dist/templates/native-go/backend/internal/app/background_owner_test.go +145 -0
  132. package/dist/templates/native-go/backend/internal/app/background_schedule.go +74 -0
  133. package/dist/templates/native-go/backend/internal/app/background_schedule_test.go +62 -0
  134. package/dist/templates/native-go/backend/internal/app/background_test.go +346 -0
  135. package/dist/templates/native-go/backend/internal/app/integration_state.go +16 -0
  136. package/dist/templates/native-go/backend/internal/app/migrations.go +41 -0
  137. package/dist/templates/native-go/backend/internal/app/migrations_test.go +41 -0
  138. package/dist/templates/native-go/backend/internal/app/nas_cgi_artifact_test.go +8 -0
  139. package/dist/templates/native-go/backend/internal/app/routes.go +22 -5
  140. package/dist/templates/native-go/backend/internal/app/routes_test.go +20 -3
  141. package/dist/templates/native-go/backend/internal/app/sdk_jobs.go +70 -0
  142. package/dist/templates/native-go/backend/internal/app/sdk_jobs_test.go +116 -0
  143. package/dist/templates/native-go/backend/internal/app/sdk_routes.go +177 -0
  144. package/dist/templates/native-go/backend/internal/app/session_files.go +15 -0
  145. package/dist/templates/native-go/backend/internal/app/session_files_test.go +26 -0
  146. package/dist/templates/native-go/backend/internal/app/shared_folder.go +144 -0
  147. package/dist/templates/native-go/backend/internal/app/shared_folder_test.go +158 -0
  148. package/dist/templates/native-go/backend/internal/background/access.go +57 -0
  149. package/dist/templates/native-go/backend/internal/background/owner_test.go +126 -0
  150. package/dist/templates/native-go/backend/internal/background/runner.go +185 -0
  151. package/dist/templates/native-go/backend/internal/background/runner_test.go +209 -0
  152. package/dist/templates/native-go/backend/internal/background/schedule.go +300 -0
  153. package/dist/templates/native-go/backend/internal/background/schedule_test.go +335 -0
  154. package/dist/templates/native-go/backend/internal/background/store.go +807 -0
  155. package/dist/templates/native-go/backend/internal/background/store_test.go +407 -0
  156. package/dist/templates/native-go/backend/internal/datamigrate/migrate.go +191 -0
  157. package/dist/templates/native-go/backend/internal/datamigrate/migrate_test.go +177 -0
  158. package/dist/templates/native-go/backend/internal/filestation/browse_test.go +67 -0
  159. package/dist/templates/native-go/backend/internal/filestation/client.go +251 -0
  160. package/dist/templates/native-go/backend/internal/filestation/client_test.go +155 -0
  161. package/dist/templates/native-go/backend/internal/filestation/doc.go +4 -0
  162. package/dist/templates/native-go/backend/internal/filestation/read_file_test.go +90 -0
  163. package/dist/templates/native-go/backend/internal/filestation/repository.go +207 -0
  164. package/dist/templates/native-go/backend/internal/filestation/repository_test.go +104 -0
  165. package/dist/templates/native-go/backend/internal/filestation/sdk_session.go +241 -0
  166. package/dist/templates/native-go/backend/internal/filestation/sdk_session_test.go +183 -0
  167. package/dist/templates/native-go/backend/internal/filestation/service.go +254 -0
  168. package/dist/templates/native-go/backend/internal/filestation/service_test.go +94 -0
  169. package/dist/templates/native-go/backend/internal/filestation/session_semantics_test.go +383 -0
  170. package/dist/templates/native-go/backend/internal/filestation/write.go +72 -0
  171. package/dist/templates/native-go/backend/internal/filestation/write_test.go +123 -0
  172. package/dist/templates/native-go/backend/internal/helper/background_proof.go +163 -0
  173. package/dist/templates/native-go/backend/internal/helper/background_proof_contract.go +46 -0
  174. package/dist/templates/native-go/backend/internal/helper/background_proof_test.go +161 -0
  175. package/dist/templates/native-go/backend/internal/helper/data_contract.go +3 -0
  176. package/dist/templates/native-go/backend/internal/helper/data_protocol.go +3 -0
  177. package/dist/templates/native-go/backend/internal/helper/data_protocol_test.go +1 -1
  178. package/dist/templates/native-go/backend/internal/helper/grant_authority.go +3 -0
  179. package/dist/templates/native-go/backend/internal/helper/grant_authority_test.go +1 -1
  180. package/dist/templates/native-go/backend/internal/helper/grant_repository_linux.go +2 -1
  181. package/dist/templates/native-go/backend/internal/helper/grant_repository_linux_test.go +4 -3
  182. package/dist/templates/native-go/backend/internal/helper/grant_snapshot.go +3 -0
  183. package/dist/templates/native-go/backend/internal/helper/jobcontract/bindings.go +48 -0
  184. package/dist/templates/native-go/backend/internal/helper/jobcontract/contract_test.go +436 -0
  185. package/dist/templates/native-go/backend/internal/helper/jobcontract/decode.go +185 -0
  186. package/dist/templates/native-go/backend/internal/helper/jobcontract/digest.go +55 -0
  187. package/dist/templates/native-go/backend/internal/helper/jobcontract/registry.go +85 -0
  188. package/dist/templates/native-go/backend/internal/helper/jobcontract/registry_test.go +73 -0
  189. package/dist/templates/native-go/backend/internal/helper/jobcontract/result.go +53 -0
  190. package/dist/templates/native-go/backend/internal/helper/jobcontract/stub.go +8 -0
  191. package/dist/templates/native-go/backend/internal/helper/jobcontract/testdata/input-digests.json +127 -0
  192. package/dist/templates/native-go/backend/internal/helper/jobcontract/types.go +234 -0
  193. package/dist/templates/native-go/backend/internal/helper/jobcontract/types_test.go +29 -0
  194. package/dist/templates/native-go/backend/internal/helper/jobcontract/validate.go +462 -0
  195. package/dist/templates/native-go/backend/internal/helper/legacy_authority_schema_linux_test.go +34 -0
  196. package/dist/templates/native-go/backend/internal/helper/legacy_authority_schema_test.go +6 -0
  197. package/dist/templates/native-go/backend/internal/helper/management.go +86 -0
  198. package/dist/templates/native-go/backend/internal/helper/observation.go +42 -2
  199. package/dist/templates/native-go/backend/internal/helper/observation_health_test.go +13 -1
  200. package/dist/templates/native-go/backend/internal/helper/observer_diagnostic.go +56 -10
  201. package/dist/templates/native-go/backend/internal/helper/observer_diagnostic_linux_test.go +6 -0
  202. package/dist/templates/native-go/backend/internal/helper/observer_diagnostic_writer.go +40 -0
  203. package/dist/templates/native-go/backend/internal/helper/process_linux.go +3 -0
  204. package/dist/templates/native-go/backend/internal/helper/purge.go +115 -0
  205. package/dist/templates/native-go/backend/internal/helper/purge_test.go +59 -0
  206. package/dist/templates/native-go/backend/internal/helper/query_deadline_linux_test.go +115 -0
  207. package/dist/templates/native-go/backend/internal/helper/query_pending_diagnostic_test.go +254 -0
  208. package/dist/templates/native-go/backend/internal/helper/relaxed_invalidation.go +3 -0
  209. package/dist/templates/native-go/backend/internal/helper/revoke.go +109 -0
  210. package/dist/templates/native-go/backend/internal/helper/revoke_test.go +121 -0
  211. package/dist/templates/native-go/backend/internal/helper/s1r_actor_races_linux_test.go +23 -4
  212. package/dist/templates/native-go/backend/internal/helper/sdk_assembly_linux.go +51 -0
  213. package/dist/templates/native-go/backend/internal/helper/sdk_attach.go +83 -0
  214. package/dist/templates/native-go/backend/internal/helper/sdk_attach_contract.go +32 -0
  215. package/dist/templates/native-go/backend/internal/helper/sdk_attach_test.go +184 -0
  216. package/dist/templates/native-go/backend/internal/helper/sdk_authority_schema_test.go +6 -0
  217. package/dist/templates/native-go/backend/internal/helper/sdk_background_authority.go +832 -0
  218. package/dist/templates/native-go/backend/internal/helper/sdk_background_authority_test.go +714 -0
  219. package/dist/templates/native-go/backend/internal/helper/sdk_background_invalidation.go +218 -0
  220. package/dist/templates/native-go/backend/internal/helper/sdk_background_lease.go +218 -0
  221. package/dist/templates/native-go/backend/internal/helper/sdk_background_snapshot.go +110 -0
  222. package/dist/templates/native-go/backend/internal/helper/sdk_background_store_linux_test.go +261 -0
  223. package/dist/templates/native-go/backend/internal/helper/sdk_background_store_test.go +58 -0
  224. package/dist/templates/native-go/backend/internal/helper/sdk_bindings.go +60 -0
  225. package/dist/templates/native-go/backend/internal/helper/sdk_data_contract.go +251 -0
  226. package/dist/templates/native-go/backend/internal/helper/sdk_data_protocol.go +424 -0
  227. package/dist/templates/native-go/backend/internal/helper/sdk_dispatch_absence_test.go +51 -0
  228. package/dist/templates/native-go/backend/internal/helper/sdk_display.go +488 -0
  229. package/dist/templates/native-go/backend/internal/helper/sdk_display_contract.go +121 -0
  230. package/dist/templates/native-go/backend/internal/helper/sdk_display_test.go +459 -0
  231. package/dist/templates/native-go/backend/internal/helper/sdk_grant_authority.go +559 -0
  232. package/dist/templates/native-go/backend/internal/helper/sdk_grant_repository_linux.go +417 -0
  233. package/dist/templates/native-go/backend/internal/helper/sdk_grant_snapshot.go +94 -0
  234. package/dist/templates/native-go/backend/internal/helper/sdk_history.go +80 -0
  235. package/dist/templates/native-go/backend/internal/helper/sdk_history_test.go +76 -0
  236. package/dist/templates/native-go/backend/internal/helper/sdk_job.go +697 -0
  237. package/dist/templates/native-go/backend/internal/helper/sdk_job_child_linux.go +309 -0
  238. package/dist/templates/native-go/backend/internal/helper/sdk_job_contract.go +122 -0
  239. package/dist/templates/native-go/backend/internal/helper/sdk_job_linux_test.go +159 -0
  240. package/dist/templates/native-go/backend/internal/helper/sdk_job_process_linux.go +327 -0
  241. package/dist/templates/native-go/backend/internal/helper/sdk_job_test.go +501 -0
  242. package/dist/templates/native-go/backend/internal/helper/sdk_job_vm_linux_test.go +343 -0
  243. package/dist/templates/native-go/backend/internal/helper/sdk_journal.go +77 -0
  244. package/dist/templates/native-go/backend/internal/helper/sdk_journal_linux.go +244 -0
  245. package/dist/templates/native-go/backend/internal/helper/sdk_journal_linux_test.go +295 -0
  246. package/dist/templates/native-go/backend/internal/helper/sdk_journal_test.go +71 -0
  247. package/dist/templates/native-go/backend/internal/helper/sdk_picker_test.go +50 -0
  248. package/dist/templates/native-go/backend/internal/helper/sdk_process_linux.go +184 -0
  249. package/dist/templates/native-go/backend/internal/helper/sdk_public_vm_linux_test.go +129 -0
  250. package/dist/templates/native-go/backend/internal/helper/sdk_relaxed_invalidation.go +242 -0
  251. package/dist/templates/native-go/backend/internal/helper/sdk_rpc.go +299 -0
  252. package/dist/templates/native-go/backend/internal/helper/sdk_rpc_contract.go +70 -0
  253. package/dist/templates/native-go/backend/internal/helper/sdk_rpc_test.go +135 -0
  254. package/dist/templates/native-go/backend/internal/helper/sdk_server_linux.go +161 -0
  255. package/dist/templates/native-go/backend/internal/helper/sdk_session.go +677 -0
  256. package/dist/templates/native-go/backend/internal/helper/sdk_session_contract.go +72 -0
  257. package/dist/templates/native-go/backend/internal/helper/sdk_session_fence_test.go +215 -0
  258. package/dist/templates/native-go/backend/internal/helper/sdk_session_test.go +475 -0
  259. package/dist/templates/native-go/backend/internal/helper/sdk_supervisor_frame.go +78 -0
  260. package/dist/templates/native-go/backend/internal/helper/sdk_supervisor_linux.go +414 -0
  261. package/dist/templates/native-go/backend/internal/helper/sdk_transport.go +79 -0
  262. package/dist/templates/native-go/backend/internal/helper/sdk_transport_linux.go +82 -0
  263. package/dist/templates/native-go/backend/internal/helper/sdk_transport_test.go +64 -0
  264. package/dist/templates/native-go/backend/internal/helper/server_linux.go +14 -2
  265. package/dist/templates/native-go/backend/internal/helper/stale_management_linux_test.go +126 -0
  266. package/dist/templates/native-go/backend/internal/helper/stale_management_test.go +122 -0
  267. package/dist/templates/native-go/backend/internal/helper/startup_diagnostic.go +68 -0
  268. package/dist/templates/native-go/backend/internal/helper/startup_diagnostic_linux_test.go +126 -0
  269. package/dist/templates/native-go/backend/internal/helper/startup_diagnostic_test.go +117 -0
  270. package/dist/templates/native-go/backend/internal/helper/status.go +22 -13
  271. package/dist/templates/native-go/backend/internal/helper/status_test.go +45 -0
  272. package/dist/templates/native-go/backend/internal/helper/supervision.go +1 -1
  273. package/dist/templates/native-go/backend/internal/helper/supervisor_frame.go +3 -0
  274. package/dist/templates/native-go/backend/internal/helper/supervisor_linux.go +6 -2
  275. package/dist/templates/native-go/backend/internal/helper/unit_connection_test.go +22 -4
  276. package/dist/templates/native-go/backend/internal/helper/unit_linux.go +7 -3
  277. package/dist/templates/native-go/backend/internal/helper/unit_query_linux.go +5 -1
  278. package/dist/templates/native-go/backend/internal/helper/write_files_linux.go +7 -4
  279. package/dist/templates/native-go/backend/internal/helper/write_files_linux_test.go +26 -0
  280. package/dist/templates/native-go/dsm-package.yaml +2 -2
  281. package/dist/templates/native-go-authorization/backend/internal/app/authorization.go +298 -0
  282. package/dist/templates/native-go-authorization/backend/internal/app/authorization_test.go +96 -0
  283. package/dist/templates/native-go-authorization/frontend/src/authorization/AuthorizationGate.vue +89 -0
  284. package/dist/templates/native-go-authorization/frontend/src/authorization/i18n/de.json +36 -0
  285. package/dist/templates/native-go-authorization/frontend/src/authorization/i18n/en.json +36 -0
  286. package/dist/templates/native-go-authorization/frontend/src/authorization/i18n/es.json +36 -0
  287. package/dist/templates/native-go-authorization/frontend/src/authorization/i18n/fr.json +36 -0
  288. package/dist/templates/native-go-authorization/frontend/src/authorization/i18n/index.ts +15 -0
  289. package/dist/templates/native-go-authorization/frontend/src/authorization/i18n/it.json +36 -0
  290. package/dist/templates/native-go-authorization/frontend/src/authorization/i18n/ja.json +36 -0
  291. package/dist/templates/native-go-authorization/frontend/src/authorization/i18n/ko.json +36 -0
  292. package/dist/templates/native-go-authorization/frontend/src/authorization/i18n/zh-CN.json +36 -0
  293. package/dist/templates/native-go-authorization/frontend/src/authorization/i18n/zh-TW.json +36 -0
  294. package/dist/templates/native-go-authorization/frontend/test/authorization-preview.html +14 -0
  295. package/dist/templates/native-go-authorization/frontend/test/authorization.test.ts +59 -0
  296. package/dist/templates/native-go-background/BACKGROUND.md +111 -0
  297. package/dist/templates/native-go-background/backend/internal/app/background_on.go +7 -0
  298. package/dist/templates/native-go-background/backend/internal/app/background_routes_test.go +32 -0
  299. package/dist/templates/native-go-background/frontend/src/background/BackgroundPanel.vue +178 -0
  300. package/dist/templates/native-go-background/frontend/src/background/i18n/de.json +83 -0
  301. package/dist/templates/native-go-background/frontend/src/background/i18n/en.json +83 -0
  302. package/dist/templates/native-go-background/frontend/src/background/i18n/es.json +83 -0
  303. package/dist/templates/native-go-background/frontend/src/background/i18n/fr.json +83 -0
  304. package/dist/templates/native-go-background/frontend/src/background/i18n/it.json +83 -0
  305. package/dist/templates/native-go-background/frontend/src/background/i18n/ja.json +83 -0
  306. package/dist/templates/native-go-background/frontend/src/background/i18n/ko.json +83 -0
  307. package/dist/templates/native-go-background/frontend/src/background/i18n/zh-CN.json +83 -0
  308. package/dist/templates/native-go-background/frontend/src/background/i18n/zh-TW.json +83 -0
  309. package/dist/templates/native-go-background/frontend/src/background/i18n.ts +19 -0
  310. package/dist/templates/native-go-background/frontend/src/background/picker-provider.ts +13 -0
  311. package/dist/templates/native-go-background/frontend/test/background.test.ts +179 -0
  312. package/dist/templates/native-go-integration/backend/internal/app/personal.go +2 -2
  313. package/dist/templates/native-go-integration/backend/internal/app/personal_test.go +37 -0
  314. package/dist/templates/native-go-vue/README.md +38 -7
  315. package/dist/templates/native-go-vue/frontend/DESIGN.md +15 -3
  316. package/dist/templates/native-go-vue/frontend/README-JOBS.md +75 -0
  317. package/dist/templates/native-go-vue/frontend/README-M2.md +64 -0
  318. package/dist/templates/native-go-vue/frontend/package-lock.json +5 -4
  319. package/dist/templates/native-go-vue/frontend/package.json +1 -1
  320. package/dist/templates/native-go-vue/frontend/src/App.vue +39 -11
  321. package/dist/templates/native-go-vue/frontend/src/M2App.vue +57 -0
  322. package/dist/templates/native-go-vue/frontend/src/SDKApp.vue +203 -0
  323. package/dist/templates/native-go-vue/frontend/src/context.ts +3 -0
  324. package/dist/templates/native-go-vue/frontend/src/jobs/InteractiveJobForm.vue +70 -0
  325. package/dist/templates/native-go-vue/frontend/src/jobs/JobsAdminPanel.vue +33 -0
  326. package/dist/templates/native-go-vue/frontend/src/jobs/JobsPanel.vue +135 -0
  327. package/dist/templates/native-go-vue/frontend/src/jobs/connected-provider.ts +179 -0
  328. package/dist/templates/native-go-vue/frontend/src/jobs/i18n/de.json +62 -0
  329. package/dist/templates/native-go-vue/frontend/src/jobs/i18n/en.json +62 -0
  330. package/dist/templates/native-go-vue/frontend/src/jobs/i18n/es.json +62 -0
  331. package/dist/templates/native-go-vue/frontend/src/jobs/i18n/fr.json +62 -0
  332. package/dist/templates/native-go-vue/frontend/src/jobs/i18n/it.json +62 -0
  333. package/dist/templates/native-go-vue/frontend/src/jobs/i18n/ja.json +62 -0
  334. package/dist/templates/native-go-vue/frontend/src/jobs/i18n/ko.json +62 -0
  335. package/dist/templates/native-go-vue/frontend/src/jobs/i18n/zh-CN.json +62 -0
  336. package/dist/templates/native-go-vue/frontend/src/jobs/i18n/zh-TW.json +62 -0
  337. package/dist/templates/native-go-vue/frontend/src/jobs/i18n.ts +15 -0
  338. package/dist/templates/native-go-vue/frontend/src/jobs/mock-provider.ts +67 -0
  339. package/dist/templates/native-go-vue/frontend/src/jobs/provider.ts +60 -0
  340. package/dist/templates/native-go-vue/frontend/src/jobs/validate.ts +44 -0
  341. package/dist/templates/native-go-vue/frontend/src/m2-main.ts +21 -0
  342. package/dist/templates/native-go-vue/frontend/src/m2-style.css +7 -0
  343. package/dist/templates/native-go-vue/frontend/src/nas/M2Files.vue +94 -0
  344. package/dist/templates/native-go-vue/frontend/src/nas/M2PathPicker.vue +70 -0
  345. package/dist/templates/native-go-vue/frontend/src/nas/M2Settings.vue +69 -0
  346. package/dist/templates/native-go-vue/frontend/src/nas/i18n/m2/de.json +56 -0
  347. package/dist/templates/native-go-vue/frontend/src/nas/i18n/m2/en.json +56 -0
  348. package/dist/templates/native-go-vue/frontend/src/nas/i18n/m2/es.json +56 -0
  349. package/dist/templates/native-go-vue/frontend/src/nas/i18n/m2/fr.json +56 -0
  350. package/dist/templates/native-go-vue/frontend/src/nas/i18n/m2/it.json +56 -0
  351. package/dist/templates/native-go-vue/frontend/src/nas/i18n/m2/ja.json +56 -0
  352. package/dist/templates/native-go-vue/frontend/src/nas/i18n/m2/ko.json +56 -0
  353. package/dist/templates/native-go-vue/frontend/src/nas/i18n/m2/zh-CN.json +56 -0
  354. package/dist/templates/native-go-vue/frontend/src/nas/i18n/m2/zh-TW.json +56 -0
  355. package/dist/templates/native-go-vue/frontend/src/nas/m2-contract.ts +33 -0
  356. package/dist/templates/native-go-vue/frontend/src/nas/m2-i18n.ts +24 -0
  357. package/dist/templates/native-go-vue/frontend/src/nas/m2-provider.ts +104 -0
  358. package/dist/templates/native-go-vue/frontend/src/nas/use-m2-request.ts +18 -0
  359. package/dist/templates/native-go-vue/frontend/src/sdk-main.ts +39 -0
  360. package/dist/templates/native-go-vue/frontend/src/shell/AppShell.vue +48 -0
  361. package/dist/templates/native-go-vue/frontend/src/shell/i18n/de.json +10 -0
  362. package/dist/templates/native-go-vue/frontend/src/shell/i18n/en.json +10 -0
  363. package/dist/templates/native-go-vue/frontend/src/shell/i18n/es.json +10 -0
  364. package/dist/templates/native-go-vue/frontend/src/shell/i18n/fr.json +10 -0
  365. package/dist/templates/native-go-vue/frontend/src/shell/i18n/it.json +10 -0
  366. package/dist/templates/native-go-vue/frontend/src/shell/i18n/ja.json +10 -0
  367. package/dist/templates/native-go-vue/frontend/src/shell/i18n/ko.json +10 -0
  368. package/dist/templates/native-go-vue/frontend/src/shell/i18n/zh-CN.json +10 -0
  369. package/dist/templates/native-go-vue/frontend/src/shell/i18n/zh-TW.json +10 -0
  370. package/dist/templates/native-go-vue/frontend/src/shell/i18n.ts +17 -0
  371. package/dist/templates/native-go-vue/frontend/src/shell/pages.ts +34 -0
  372. package/dist/templates/native-go-vue/frontend/src/style.css +2 -6
  373. package/dist/templates/native-go-vue/frontend/test/apps.test.ts +21 -0
  374. package/dist/templates/native-go-vue/frontend/test/jobs-connected.test.ts +163 -0
  375. package/dist/templates/native-go-vue/frontend/test/jobs-preview.html +22 -0
  376. package/dist/templates/native-go-vue/frontend/test/jobs.test.ts +176 -0
  377. package/dist/templates/native-go-vue/frontend/test/m2-preview.html +27 -0
  378. package/dist/templates/native-go-vue/frontend/test/m2-provider.test.ts +87 -0
  379. package/dist/templates/native-go-vue/frontend/test/m2-ui.test.ts +209 -0
  380. package/dist/templates/native-go-vue/frontend/test/native-controls.test.ts +27 -0
  381. package/dist/templates/native-go-vue/frontend/test/picker-wire.test.ts +110 -0
  382. package/dist/templates/native-go-vue/frontend/test/shell-preview.html +19 -0
  383. package/dist/templates/native-go-vue/frontend/test/shell-sdk.test.ts +73 -0
  384. package/dist/templates/native-go-vue/frontend/test/shell-ui.test.ts +114 -0
  385. package/dist/templates/native-go-vue/frontend/test/shell.test.ts +45 -0
  386. package/dist/templates/native-go-vue/frontend/vite.config.ts +2 -2
  387. package/dist/types.d.ts +1 -1
  388. package/dist/validate.js +6 -3
  389. package/package.json +5 -2
  390. package/schema/synology-app.schema.json +19 -0
  391. package/skills/reference/create.md +6 -2
  392. package/templates/_authorization/main.go +104 -0
  393. package/templates/_authorization/main_test.go +35 -0
  394. package/templates/_daemon/go.mod +2 -0
  395. package/templates/_gateway/auth.go +101 -0
  396. package/templates/_gateway/auth_test.go +216 -0
  397. package/templates/_gateway/cgi.go +133 -0
  398. package/templates/_gateway/cgi_test.go +156 -0
  399. package/templates/_gateway/csrf.go +73 -0
  400. package/templates/_gateway/csrf_test.go +155 -0
  401. package/templates/_gateway/directory.go +108 -0
  402. package/templates/_gateway/directory_test.go +202 -0
  403. package/templates/_gateway/gateway.go +412 -0
  404. package/templates/_gateway/gateway_test.go +676 -0
  405. package/templates/_gateway/go.mod +3 -0
  406. package/templates/_gateway/groups.go +66 -0
  407. package/templates/_gateway/main.go +45 -0
  408. package/templates/binary/synology-app.yaml +1 -1
  409. package/templates/compose-import/compose.yaml +1 -1
  410. package/templates/compose-import/synology-app.yaml +1 -1
  411. package/templates/hello-files/compose.yaml +1 -1
  412. package/templates/hello-files/synology-app.yaml +1 -1
  413. package/templates/native-go/README.md +118 -5
  414. package/templates/native-go/backend/THIRD_PARTY_NOTICES.txt +3 -1
  415. package/templates/native-go/backend/cmd/app/main.go +25 -6
  416. package/templates/native-go/backend/cmd/app/sdk_main.go +62 -0
  417. package/templates/native-go/backend/cmd/background-worker/main.go +38 -0
  418. package/templates/native-go/backend/cmd/helper/main.go +27 -1
  419. package/templates/native-go/backend/cmd/helper/sdk_registry.go +19 -0
  420. package/templates/native-go/backend/go.mod +5 -3
  421. package/templates/native-go/backend/go.sum +4 -4
  422. package/templates/native-go/backend/internal/api/registry.go +17 -6
  423. package/templates/native-go/backend/internal/api/server.go +7 -1
  424. package/templates/native-go/backend/internal/app/authorization_none.go +5 -0
  425. package/templates/native-go/backend/internal/app/background.go +270 -0
  426. package/templates/native-go/backend/internal/app/background_none.go +8 -0
  427. package/templates/native-go/backend/internal/app/background_owner.go +59 -0
  428. package/templates/native-go/backend/internal/app/background_owner_test.go +145 -0
  429. package/templates/native-go/backend/internal/app/background_schedule.go +74 -0
  430. package/templates/native-go/backend/internal/app/background_schedule_test.go +62 -0
  431. package/templates/native-go/backend/internal/app/background_test.go +346 -0
  432. package/templates/native-go/backend/internal/app/integration_state.go +16 -0
  433. package/templates/native-go/backend/internal/app/migrations.go +41 -0
  434. package/templates/native-go/backend/internal/app/migrations_test.go +41 -0
  435. package/templates/native-go/backend/internal/app/nas_cgi_artifact_test.go +8 -0
  436. package/templates/native-go/backend/internal/app/routes.go +22 -5
  437. package/templates/native-go/backend/internal/app/routes_test.go +20 -3
  438. package/templates/native-go/backend/internal/app/sdk_jobs.go +70 -0
  439. package/templates/native-go/backend/internal/app/sdk_jobs_test.go +116 -0
  440. package/templates/native-go/backend/internal/app/sdk_routes.go +177 -0
  441. package/templates/native-go/backend/internal/app/session_files.go +15 -0
  442. package/templates/native-go/backend/internal/app/session_files_test.go +26 -0
  443. package/templates/native-go/backend/internal/app/shared_folder.go +144 -0
  444. package/templates/native-go/backend/internal/app/shared_folder_test.go +158 -0
  445. package/templates/native-go/backend/internal/background/access.go +57 -0
  446. package/templates/native-go/backend/internal/background/owner_test.go +126 -0
  447. package/templates/native-go/backend/internal/background/runner.go +185 -0
  448. package/templates/native-go/backend/internal/background/runner_test.go +209 -0
  449. package/templates/native-go/backend/internal/background/schedule.go +300 -0
  450. package/templates/native-go/backend/internal/background/schedule_test.go +335 -0
  451. package/templates/native-go/backend/internal/background/store.go +807 -0
  452. package/templates/native-go/backend/internal/background/store_test.go +407 -0
  453. package/templates/native-go/backend/internal/datamigrate/migrate.go +191 -0
  454. package/templates/native-go/backend/internal/datamigrate/migrate_test.go +177 -0
  455. package/templates/native-go/backend/internal/filestation/browse_test.go +67 -0
  456. package/templates/native-go/backend/internal/filestation/client.go +251 -0
  457. package/templates/native-go/backend/internal/filestation/client_test.go +155 -0
  458. package/templates/native-go/backend/internal/filestation/doc.go +4 -0
  459. package/templates/native-go/backend/internal/filestation/read_file_test.go +90 -0
  460. package/templates/native-go/backend/internal/filestation/repository.go +207 -0
  461. package/templates/native-go/backend/internal/filestation/repository_test.go +104 -0
  462. package/templates/native-go/backend/internal/filestation/sdk_session.go +241 -0
  463. package/templates/native-go/backend/internal/filestation/sdk_session_test.go +183 -0
  464. package/templates/native-go/backend/internal/filestation/service.go +254 -0
  465. package/templates/native-go/backend/internal/filestation/service_test.go +94 -0
  466. package/templates/native-go/backend/internal/filestation/session_semantics_test.go +383 -0
  467. package/templates/native-go/backend/internal/filestation/write.go +72 -0
  468. package/templates/native-go/backend/internal/filestation/write_test.go +123 -0
  469. package/templates/native-go/backend/internal/helper/background_proof.go +163 -0
  470. package/templates/native-go/backend/internal/helper/background_proof_contract.go +46 -0
  471. package/templates/native-go/backend/internal/helper/background_proof_test.go +161 -0
  472. package/templates/native-go/backend/internal/helper/data_contract.go +3 -0
  473. package/templates/native-go/backend/internal/helper/data_protocol.go +3 -0
  474. package/templates/native-go/backend/internal/helper/data_protocol_test.go +1 -1
  475. package/templates/native-go/backend/internal/helper/grant_authority.go +3 -0
  476. package/templates/native-go/backend/internal/helper/grant_authority_test.go +1 -1
  477. package/templates/native-go/backend/internal/helper/grant_repository_linux.go +2 -1
  478. package/templates/native-go/backend/internal/helper/grant_repository_linux_test.go +4 -3
  479. package/templates/native-go/backend/internal/helper/grant_snapshot.go +3 -0
  480. package/templates/native-go/backend/internal/helper/jobcontract/bindings.go +48 -0
  481. package/templates/native-go/backend/internal/helper/jobcontract/contract_test.go +436 -0
  482. package/templates/native-go/backend/internal/helper/jobcontract/decode.go +185 -0
  483. package/templates/native-go/backend/internal/helper/jobcontract/digest.go +55 -0
  484. package/templates/native-go/backend/internal/helper/jobcontract/registry.go +85 -0
  485. package/templates/native-go/backend/internal/helper/jobcontract/registry_test.go +73 -0
  486. package/templates/native-go/backend/internal/helper/jobcontract/result.go +53 -0
  487. package/templates/native-go/backend/internal/helper/jobcontract/stub.go +8 -0
  488. package/templates/native-go/backend/internal/helper/jobcontract/testdata/input-digests.json +127 -0
  489. package/templates/native-go/backend/internal/helper/jobcontract/types.go +234 -0
  490. package/templates/native-go/backend/internal/helper/jobcontract/types_test.go +29 -0
  491. package/templates/native-go/backend/internal/helper/jobcontract/validate.go +462 -0
  492. package/templates/native-go/backend/internal/helper/legacy_authority_schema_linux_test.go +34 -0
  493. package/templates/native-go/backend/internal/helper/legacy_authority_schema_test.go +6 -0
  494. package/templates/native-go/backend/internal/helper/management.go +86 -0
  495. package/templates/native-go/backend/internal/helper/observation.go +42 -2
  496. package/templates/native-go/backend/internal/helper/observation_health_test.go +13 -1
  497. package/templates/native-go/backend/internal/helper/observer_diagnostic.go +56 -10
  498. package/templates/native-go/backend/internal/helper/observer_diagnostic_linux_test.go +6 -0
  499. package/templates/native-go/backend/internal/helper/observer_diagnostic_writer.go +40 -0
  500. package/templates/native-go/backend/internal/helper/process_linux.go +3 -0
  501. package/templates/native-go/backend/internal/helper/purge.go +115 -0
  502. package/templates/native-go/backend/internal/helper/purge_test.go +59 -0
  503. package/templates/native-go/backend/internal/helper/query_deadline_linux_test.go +115 -0
  504. package/templates/native-go/backend/internal/helper/query_pending_diagnostic_test.go +254 -0
  505. package/templates/native-go/backend/internal/helper/relaxed_invalidation.go +3 -0
  506. package/templates/native-go/backend/internal/helper/revoke.go +109 -0
  507. package/templates/native-go/backend/internal/helper/revoke_test.go +121 -0
  508. package/templates/native-go/backend/internal/helper/s1r_actor_races_linux_test.go +23 -4
  509. package/templates/native-go/backend/internal/helper/sdk_assembly_linux.go +51 -0
  510. package/templates/native-go/backend/internal/helper/sdk_attach.go +83 -0
  511. package/templates/native-go/backend/internal/helper/sdk_attach_contract.go +32 -0
  512. package/templates/native-go/backend/internal/helper/sdk_attach_test.go +184 -0
  513. package/templates/native-go/backend/internal/helper/sdk_authority_schema_test.go +6 -0
  514. package/templates/native-go/backend/internal/helper/sdk_background_authority.go +832 -0
  515. package/templates/native-go/backend/internal/helper/sdk_background_authority_test.go +714 -0
  516. package/templates/native-go/backend/internal/helper/sdk_background_invalidation.go +218 -0
  517. package/templates/native-go/backend/internal/helper/sdk_background_lease.go +218 -0
  518. package/templates/native-go/backend/internal/helper/sdk_background_snapshot.go +110 -0
  519. package/templates/native-go/backend/internal/helper/sdk_background_store_linux_test.go +261 -0
  520. package/templates/native-go/backend/internal/helper/sdk_background_store_test.go +58 -0
  521. package/templates/native-go/backend/internal/helper/sdk_bindings.go +60 -0
  522. package/templates/native-go/backend/internal/helper/sdk_data_contract.go +251 -0
  523. package/templates/native-go/backend/internal/helper/sdk_data_protocol.go +424 -0
  524. package/templates/native-go/backend/internal/helper/sdk_dispatch_absence_test.go +51 -0
  525. package/templates/native-go/backend/internal/helper/sdk_display.go +488 -0
  526. package/templates/native-go/backend/internal/helper/sdk_display_contract.go +121 -0
  527. package/templates/native-go/backend/internal/helper/sdk_display_test.go +459 -0
  528. package/templates/native-go/backend/internal/helper/sdk_grant_authority.go +559 -0
  529. package/templates/native-go/backend/internal/helper/sdk_grant_repository_linux.go +417 -0
  530. package/templates/native-go/backend/internal/helper/sdk_grant_snapshot.go +94 -0
  531. package/templates/native-go/backend/internal/helper/sdk_history.go +80 -0
  532. package/templates/native-go/backend/internal/helper/sdk_history_test.go +76 -0
  533. package/templates/native-go/backend/internal/helper/sdk_job.go +697 -0
  534. package/templates/native-go/backend/internal/helper/sdk_job_child_linux.go +309 -0
  535. package/templates/native-go/backend/internal/helper/sdk_job_contract.go +122 -0
  536. package/templates/native-go/backend/internal/helper/sdk_job_linux_test.go +159 -0
  537. package/templates/native-go/backend/internal/helper/sdk_job_process_linux.go +327 -0
  538. package/templates/native-go/backend/internal/helper/sdk_job_test.go +501 -0
  539. package/templates/native-go/backend/internal/helper/sdk_job_vm_linux_test.go +343 -0
  540. package/templates/native-go/backend/internal/helper/sdk_journal.go +77 -0
  541. package/templates/native-go/backend/internal/helper/sdk_journal_linux.go +244 -0
  542. package/templates/native-go/backend/internal/helper/sdk_journal_linux_test.go +295 -0
  543. package/templates/native-go/backend/internal/helper/sdk_journal_test.go +71 -0
  544. package/templates/native-go/backend/internal/helper/sdk_picker_test.go +50 -0
  545. package/templates/native-go/backend/internal/helper/sdk_process_linux.go +184 -0
  546. package/templates/native-go/backend/internal/helper/sdk_public_vm_linux_test.go +129 -0
  547. package/templates/native-go/backend/internal/helper/sdk_relaxed_invalidation.go +242 -0
  548. package/templates/native-go/backend/internal/helper/sdk_rpc.go +299 -0
  549. package/templates/native-go/backend/internal/helper/sdk_rpc_contract.go +70 -0
  550. package/templates/native-go/backend/internal/helper/sdk_rpc_test.go +135 -0
  551. package/templates/native-go/backend/internal/helper/sdk_server_linux.go +161 -0
  552. package/templates/native-go/backend/internal/helper/sdk_session.go +677 -0
  553. package/templates/native-go/backend/internal/helper/sdk_session_contract.go +72 -0
  554. package/templates/native-go/backend/internal/helper/sdk_session_fence_test.go +215 -0
  555. package/templates/native-go/backend/internal/helper/sdk_session_test.go +475 -0
  556. package/templates/native-go/backend/internal/helper/sdk_supervisor_frame.go +78 -0
  557. package/templates/native-go/backend/internal/helper/sdk_supervisor_linux.go +414 -0
  558. package/templates/native-go/backend/internal/helper/sdk_transport.go +79 -0
  559. package/templates/native-go/backend/internal/helper/sdk_transport_linux.go +82 -0
  560. package/templates/native-go/backend/internal/helper/sdk_transport_test.go +64 -0
  561. package/templates/native-go/backend/internal/helper/server_linux.go +14 -2
  562. package/templates/native-go/backend/internal/helper/stale_management_linux_test.go +126 -0
  563. package/templates/native-go/backend/internal/helper/stale_management_test.go +122 -0
  564. package/templates/native-go/backend/internal/helper/startup_diagnostic.go +68 -0
  565. package/templates/native-go/backend/internal/helper/startup_diagnostic_linux_test.go +126 -0
  566. package/templates/native-go/backend/internal/helper/startup_diagnostic_test.go +117 -0
  567. package/templates/native-go/backend/internal/helper/status.go +22 -13
  568. package/templates/native-go/backend/internal/helper/status_test.go +45 -0
  569. package/templates/native-go/backend/internal/helper/supervision.go +1 -1
  570. package/templates/native-go/backend/internal/helper/supervisor_frame.go +3 -0
  571. package/templates/native-go/backend/internal/helper/supervisor_linux.go +6 -2
  572. package/templates/native-go/backend/internal/helper/unit_connection_test.go +22 -4
  573. package/templates/native-go/backend/internal/helper/unit_linux.go +7 -3
  574. package/templates/native-go/backend/internal/helper/unit_query_linux.go +5 -1
  575. package/templates/native-go/backend/internal/helper/write_files_linux.go +7 -4
  576. package/templates/native-go/backend/internal/helper/write_files_linux_test.go +26 -0
  577. package/templates/native-go/dsm-package.yaml +2 -2
  578. package/templates/native-go-authorization/backend/internal/app/authorization.go +298 -0
  579. package/templates/native-go-authorization/backend/internal/app/authorization_test.go +96 -0
  580. package/templates/native-go-authorization/frontend/src/authorization/AuthorizationGate.vue +89 -0
  581. package/templates/native-go-authorization/frontend/src/authorization/i18n/de.json +36 -0
  582. package/templates/native-go-authorization/frontend/src/authorization/i18n/en.json +36 -0
  583. package/templates/native-go-authorization/frontend/src/authorization/i18n/es.json +36 -0
  584. package/templates/native-go-authorization/frontend/src/authorization/i18n/fr.json +36 -0
  585. package/templates/native-go-authorization/frontend/src/authorization/i18n/index.ts +15 -0
  586. package/templates/native-go-authorization/frontend/src/authorization/i18n/it.json +36 -0
  587. package/templates/native-go-authorization/frontend/src/authorization/i18n/ja.json +36 -0
  588. package/templates/native-go-authorization/frontend/src/authorization/i18n/ko.json +36 -0
  589. package/templates/native-go-authorization/frontend/src/authorization/i18n/zh-CN.json +36 -0
  590. package/templates/native-go-authorization/frontend/src/authorization/i18n/zh-TW.json +36 -0
  591. package/templates/native-go-authorization/frontend/test/authorization-preview.html +14 -0
  592. package/templates/native-go-authorization/frontend/test/authorization.test.ts +59 -0
  593. package/templates/native-go-background/BACKGROUND.md +111 -0
  594. package/templates/native-go-background/backend/internal/app/background_on.go +7 -0
  595. package/templates/native-go-background/backend/internal/app/background_routes_test.go +32 -0
  596. package/templates/native-go-background/frontend/src/background/BackgroundPanel.vue +178 -0
  597. package/templates/native-go-background/frontend/src/background/i18n/de.json +83 -0
  598. package/templates/native-go-background/frontend/src/background/i18n/en.json +83 -0
  599. package/templates/native-go-background/frontend/src/background/i18n/es.json +83 -0
  600. package/templates/native-go-background/frontend/src/background/i18n/fr.json +83 -0
  601. package/templates/native-go-background/frontend/src/background/i18n/it.json +83 -0
  602. package/templates/native-go-background/frontend/src/background/i18n/ja.json +83 -0
  603. package/templates/native-go-background/frontend/src/background/i18n/ko.json +83 -0
  604. package/templates/native-go-background/frontend/src/background/i18n/zh-CN.json +83 -0
  605. package/templates/native-go-background/frontend/src/background/i18n/zh-TW.json +83 -0
  606. package/templates/native-go-background/frontend/src/background/i18n.ts +19 -0
  607. package/templates/native-go-background/frontend/src/background/picker-provider.ts +13 -0
  608. package/templates/native-go-background/frontend/test/background.test.ts +179 -0
  609. package/templates/native-go-integration/backend/internal/app/personal.go +2 -2
  610. package/templates/native-go-integration/backend/internal/app/personal_test.go +37 -0
  611. package/templates/native-go-vue/README.md +38 -7
  612. package/templates/native-go-vue/frontend/DESIGN.md +15 -3
  613. package/templates/native-go-vue/frontend/README-JOBS.md +75 -0
  614. package/templates/native-go-vue/frontend/README-M2.md +64 -0
  615. package/templates/native-go-vue/frontend/package-lock.json +5 -4
  616. package/templates/native-go-vue/frontend/package.json +1 -1
  617. package/templates/native-go-vue/frontend/src/App.vue +39 -11
  618. package/templates/native-go-vue/frontend/src/M2App.vue +57 -0
  619. package/templates/native-go-vue/frontend/src/SDKApp.vue +203 -0
  620. package/templates/native-go-vue/frontend/src/context.ts +3 -0
  621. package/templates/native-go-vue/frontend/src/jobs/InteractiveJobForm.vue +70 -0
  622. package/templates/native-go-vue/frontend/src/jobs/JobsAdminPanel.vue +33 -0
  623. package/templates/native-go-vue/frontend/src/jobs/JobsPanel.vue +135 -0
  624. package/templates/native-go-vue/frontend/src/jobs/connected-provider.ts +179 -0
  625. package/templates/native-go-vue/frontend/src/jobs/i18n/de.json +62 -0
  626. package/templates/native-go-vue/frontend/src/jobs/i18n/en.json +62 -0
  627. package/templates/native-go-vue/frontend/src/jobs/i18n/es.json +62 -0
  628. package/templates/native-go-vue/frontend/src/jobs/i18n/fr.json +62 -0
  629. package/templates/native-go-vue/frontend/src/jobs/i18n/it.json +62 -0
  630. package/templates/native-go-vue/frontend/src/jobs/i18n/ja.json +62 -0
  631. package/templates/native-go-vue/frontend/src/jobs/i18n/ko.json +62 -0
  632. package/templates/native-go-vue/frontend/src/jobs/i18n/zh-CN.json +62 -0
  633. package/templates/native-go-vue/frontend/src/jobs/i18n/zh-TW.json +62 -0
  634. package/templates/native-go-vue/frontend/src/jobs/i18n.ts +15 -0
  635. package/templates/native-go-vue/frontend/src/jobs/mock-provider.ts +67 -0
  636. package/templates/native-go-vue/frontend/src/jobs/provider.ts +60 -0
  637. package/templates/native-go-vue/frontend/src/jobs/validate.ts +44 -0
  638. package/templates/native-go-vue/frontend/src/m2-main.ts +21 -0
  639. package/templates/native-go-vue/frontend/src/m2-style.css +7 -0
  640. package/templates/native-go-vue/frontend/src/nas/M2Files.vue +94 -0
  641. package/templates/native-go-vue/frontend/src/nas/M2PathPicker.vue +70 -0
  642. package/templates/native-go-vue/frontend/src/nas/M2Settings.vue +69 -0
  643. package/templates/native-go-vue/frontend/src/nas/i18n/m2/de.json +56 -0
  644. package/templates/native-go-vue/frontend/src/nas/i18n/m2/en.json +56 -0
  645. package/templates/native-go-vue/frontend/src/nas/i18n/m2/es.json +56 -0
  646. package/templates/native-go-vue/frontend/src/nas/i18n/m2/fr.json +56 -0
  647. package/templates/native-go-vue/frontend/src/nas/i18n/m2/it.json +56 -0
  648. package/templates/native-go-vue/frontend/src/nas/i18n/m2/ja.json +56 -0
  649. package/templates/native-go-vue/frontend/src/nas/i18n/m2/ko.json +56 -0
  650. package/templates/native-go-vue/frontend/src/nas/i18n/m2/zh-CN.json +56 -0
  651. package/templates/native-go-vue/frontend/src/nas/i18n/m2/zh-TW.json +56 -0
  652. package/templates/native-go-vue/frontend/src/nas/m2-contract.ts +33 -0
  653. package/templates/native-go-vue/frontend/src/nas/m2-i18n.ts +24 -0
  654. package/templates/native-go-vue/frontend/src/nas/m2-provider.ts +104 -0
  655. package/templates/native-go-vue/frontend/src/nas/use-m2-request.ts +18 -0
  656. package/templates/native-go-vue/frontend/src/sdk-main.ts +39 -0
  657. package/templates/native-go-vue/frontend/src/shell/AppShell.vue +48 -0
  658. package/templates/native-go-vue/frontend/src/shell/i18n/de.json +10 -0
  659. package/templates/native-go-vue/frontend/src/shell/i18n/en.json +10 -0
  660. package/templates/native-go-vue/frontend/src/shell/i18n/es.json +10 -0
  661. package/templates/native-go-vue/frontend/src/shell/i18n/fr.json +10 -0
  662. package/templates/native-go-vue/frontend/src/shell/i18n/it.json +10 -0
  663. package/templates/native-go-vue/frontend/src/shell/i18n/ja.json +10 -0
  664. package/templates/native-go-vue/frontend/src/shell/i18n/ko.json +10 -0
  665. package/templates/native-go-vue/frontend/src/shell/i18n/zh-CN.json +10 -0
  666. package/templates/native-go-vue/frontend/src/shell/i18n/zh-TW.json +10 -0
  667. package/templates/native-go-vue/frontend/src/shell/i18n.ts +17 -0
  668. package/templates/native-go-vue/frontend/src/shell/pages.ts +34 -0
  669. package/templates/native-go-vue/frontend/src/style.css +2 -6
  670. package/templates/native-go-vue/frontend/test/apps.test.ts +21 -0
  671. package/templates/native-go-vue/frontend/test/jobs-connected.test.ts +163 -0
  672. package/templates/native-go-vue/frontend/test/jobs-preview.html +22 -0
  673. package/templates/native-go-vue/frontend/test/jobs.test.ts +176 -0
  674. package/templates/native-go-vue/frontend/test/m2-preview.html +27 -0
  675. package/templates/native-go-vue/frontend/test/m2-provider.test.ts +87 -0
  676. package/templates/native-go-vue/frontend/test/m2-ui.test.ts +209 -0
  677. package/templates/native-go-vue/frontend/test/native-controls.test.ts +27 -0
  678. package/templates/native-go-vue/frontend/test/picker-wire.test.ts +110 -0
  679. package/templates/native-go-vue/frontend/test/shell-preview.html +19 -0
  680. package/templates/native-go-vue/frontend/test/shell-sdk.test.ts +73 -0
  681. package/templates/native-go-vue/frontend/test/shell-ui.test.ts +114 -0
  682. package/templates/native-go-vue/frontend/test/shell.test.ts +45 -0
  683. package/templates/native-go-vue/frontend/vite.config.ts +2 -2
  684. package/dist/templates/hello-web/compose.yaml +0 -21
  685. package/dist/templates/hello-web/html/app.js +0 -1
  686. package/dist/templates/hello-web/html/index.html +0 -13
  687. package/dist/templates/hello-web/synology-app.yaml +0 -13
  688. package/dist/templates/hello-web-page/compose.yaml +0 -21
  689. package/dist/templates/hello-web-page/html/app.js +0 -1
  690. package/dist/templates/hello-web-page/html/index.html +0 -13
  691. package/dist/templates/hello-web-page/synology-app.yaml +0 -13
  692. package/templates/hello-web/compose.yaml +0 -21
  693. package/templates/hello-web/html/app.js +0 -1
  694. package/templates/hello-web/html/index.html +0 -13
  695. package/templates/hello-web/synology-app.yaml +0 -13
  696. package/templates/hello-web-page/compose.yaml +0 -21
  697. package/templates/hello-web-page/html/app.js +0 -1
  698. package/templates/hello-web-page/html/index.html +0 -13
  699. package/templates/hello-web-page/synology-app.yaml +0 -13
@@ -0,0 +1,83 @@
1
+ {
2
+ "title": "Tâches en arrière-plan",
3
+ "help": "Copie un fichier sélectionné dans le paquet et calcule son SHA-256 avec le compte du paquet. Les tâches continuent après la déconnexion. Le paquet conserve la copie et le résultat ; une modification des droits de la source ne les retire pas. Reconnectez-vous pour consulter votre résultat.",
4
+ "unsupported": "Les tâches en arrière-plan ne sont pas disponibles pour votre compte. Demandez à un administrateur d’autoriser les utilisateurs ordinaires.",
5
+ "modeOn": "Le mode arrière-plan est activé",
6
+ "modeOff": "Le mode arrière-plan est désactivé",
7
+ "enable": "Activer",
8
+ "disable": "Désactiver",
9
+ "worker": "Worker",
10
+ "workerRunning": "Le worker s’exécute sous {user}",
11
+ "workerStopped": "Le worker n’est pas en cours d’exécution",
12
+ "chooseFile": "Choisir un fichier",
13
+ "chosen": "Fichier sélectionné : {path}",
14
+ "pickerTitle": "Choisir un fichier à importer",
15
+ "pickerConsent": "Le fichier sélectionné est lu une seule fois avec votre connexion DSM actuelle et transmis à la tâche en arrière-plan. Aucune autorisation n'est enregistrée.",
16
+ "submit": "Importer et envoyer",
17
+ "refresh": "Actualiser",
18
+ "cancel": "Annuler",
19
+ "result": "Résultat",
20
+ "download": "Télécharger le résultat",
21
+ "noJobs": "Aucune tâche",
22
+ "state_queued": "En attente",
23
+ "state_running": "En cours",
24
+ "state_succeeded": "Réussie",
25
+ "state_failed": "Échec",
26
+ "state_canceled": "Annulée",
27
+ "state_interrupted": "Interrompue",
28
+ "limits": "Jusqu’à {size} Kio par fichier, {queue} tâches en attente, {seconds} secondes par tâche.",
29
+ "errors": {
30
+ "failed": "La requête n’a pas pu aboutir. Actualisez puis réessayez.",
31
+ "unsupported": "Les tâches en arrière-plan ne sont pas disponibles pour votre compte. Demandez à un administrateur d’autoriser les utilisateurs ordinaires.",
32
+ "disabled": "Le mode arrière-plan est désactivé.",
33
+ "limit-exceeded": "Le fichier dépasse la limite.",
34
+ "queue-full": "La file d’attente est pleine.",
35
+ "quota-exceeded": "Le stockage en arrière-plan est plein.",
36
+ "conflict": "L’état de la tâche a changé. Actualisez.",
37
+ "not_found": "Introuvable.",
38
+ "denied": "Accès refusé.",
39
+ "session_required": "Votre session DSM a expiré. Reconnectez-vous.",
40
+ "owner-queue-full": "Votre limite de tâches en attente est atteinte. Attendez une fin ou annulez une tâche.",
41
+ "owner-quota-exceeded": "Votre limite de stockage est atteinte. Demandez à un administrateur d’effacer vos anciennes tâches.",
42
+ "identity_unavailable": "L’UID de votre utilisateur DSM n’a pas pu être vérifié. Reconnectez-vous ou contactez un administrateur.",
43
+ "schedule-full": "La limite de 8 planifications est atteinte. Supprimez-en une.",
44
+ "input-unavailable": "La copie privée manque ou a changé. Importez-la à nouveau."
45
+ },
46
+ "ownerScope": "Vous pouvez voir, annuler et télécharger uniquement vos propres tâches.",
47
+ "adminScope": "Les administrateurs peuvent voir et annuler les tâches de tous les utilisateurs.",
48
+ "ownerLimits": "Par utilisateur : {jobs} tâches en attente et {size} KiB pour les entrées et résultats réservés.",
49
+ "allowUsers": "Autoriser les utilisateurs ordinaires",
50
+ "blockUsers": "Bloquer les utilisateurs ordinaires",
51
+ "usersOn": "Utilisateurs ordinaires autorisés",
52
+ "usersOff": "Utilisateurs ordinaires bloqués",
53
+ "owner": "Propriétaire : {user} (UID {uid})",
54
+ "purgeOwner": "Effacer les tâches du propriétaire",
55
+ "purgeConfirm": "Effacer toutes les tâches de {user} (UID {uid}) ? Les tâches en cours seront annulées et terminées ; les résultats enregistrés seront supprimés.",
56
+ "confirmPurge": "Confirmer l’effacement",
57
+ "keepJobs": "Conserver les tâches",
58
+ "schedulesTitle": "Planifications",
59
+ "scheduleHelp": "Recalcule la copie privée fixe avec le compte du paquet chaque heure, jour ou semaine. Jusqu’à 8 planifications. Les exécutions manquées sont consignées sans rattrapage.",
60
+ "scheduleCopy": "Planifier cette copie",
61
+ "scheduleSource": "Copie privée : {name}",
62
+ "interval": "Intervalle de répétition",
63
+ "hourly": "Chaque heure",
64
+ "daily": "Chaque jour",
65
+ "weekly": "Chaque semaine",
66
+ "scheduleConsent": "J’accepte de conserver cette copie fixe et de la recalculer avec le compte du paquet. Aucun nouveau fichier source ni ACL personnel n’est lu.",
67
+ "createSchedule": "Créer la planification",
68
+ "noSchedules": "Aucune planification",
69
+ "scheduleOn": "Activée",
70
+ "scheduleOff": "Désactivée",
71
+ "nextRun": "Prochaine exécution : {time}",
72
+ "missedRuns": "Exécutions manquées : {count}",
73
+ "disableSchedule": "Désactiver la planification",
74
+ "deleteSchedule": "Supprimer la planification",
75
+ "deleteScheduleConsent": "Supprimer la planification de {name} ? Les tâches en attente sont annulées et celles en cours s’arrêtent proprement. Les résultats terminés sont conservés.",
76
+ "confirmDeleteSchedule": "Confirmer la suppression",
77
+ "enableSchedule": "Activer la planification",
78
+ "enableScheduleConsent": "Activer la planification de {name} avec la révision actuelle du worker ? J’accepte de recalculer cette copie fixe. Les anciennes exécutions ne seront pas rejouées.",
79
+ "confirmEnableSchedule": "Confirmer l’activation",
80
+ "revisionChanged": "La révision du worker a changé. Un administrateur doit vérifier et activer explicitement cette planification.",
81
+ "scheduledJob": "Exécution planifiée",
82
+ "unknownTime": "Inconnue"
83
+ }
@@ -0,0 +1,83 @@
1
+ {
2
+ "title": "Processi in background",
3
+ "help": "Copia un file selezionato nel pacchetto e calcola il suo SHA-256 con l’account del pacchetto. I processi continuano dopo la disconnessione. Il pacchetto conserva copia e risultato; i cambiamenti ai permessi di origine non li revocano. Accedi di nuovo per vedere il tuo risultato.",
4
+ "unsupported": "Il tuo account non può usare processi in background. Chiedi a un amministratore di consentire gli utenti normali.",
5
+ "modeOn": "La modalità in background è attiva",
6
+ "modeOff": "La modalità in background è disattivata",
7
+ "enable": "Attiva",
8
+ "disable": "Disattiva",
9
+ "worker": "Worker",
10
+ "workerRunning": "Il worker è in esecuzione come {user}",
11
+ "workerStopped": "Il worker non è in esecuzione",
12
+ "chooseFile": "Scegli un file",
13
+ "chosen": "File selezionato: {path}",
14
+ "pickerTitle": "Scegli un file da importare",
15
+ "pickerConsent": "Il file selezionato viene letto una sola volta con l'accesso DSM corrente e passato al processo in background. Nessuna autorizzazione viene salvata.",
16
+ "submit": "Importa e invia",
17
+ "refresh": "Aggiorna",
18
+ "cancel": "Annulla",
19
+ "result": "Risultato",
20
+ "download": "Scarica il risultato",
21
+ "noJobs": "Nessun processo",
22
+ "state_queued": "In coda",
23
+ "state_running": "In esecuzione",
24
+ "state_succeeded": "Riuscito",
25
+ "state_failed": "Non riuscito",
26
+ "state_canceled": "Annullato",
27
+ "state_interrupted": "Interrotto",
28
+ "limits": "Fino a {size} KiB per file, {queue} processi in coda, {seconds} secondi per processo.",
29
+ "errors": {
30
+ "failed": "Impossibile completare la richiesta. Aggiornate e riprovate.",
31
+ "unsupported": "Il tuo account non può usare processi in background. Chiedi a un amministratore di consentire gli utenti normali.",
32
+ "disabled": "La modalità in background è disattivata.",
33
+ "limit-exceeded": "Il file supera il limite.",
34
+ "queue-full": "La coda è piena.",
35
+ "quota-exceeded": "Lo spazio di archiviazione in background è pieno.",
36
+ "conflict": "Lo stato del processo è cambiato. Aggiornate.",
37
+ "not_found": "Non trovato.",
38
+ "denied": "Accesso negato.",
39
+ "session_required": "La sessione DSM è scaduta. Accedete di nuovo.",
40
+ "owner-queue-full": "Hai raggiunto il limite dei processi in attesa. Attendi il completamento o annulla un processo.",
41
+ "owner-quota-exceeded": "Hai raggiunto il limite di archiviazione. Chiedi a un amministratore di cancellare i vecchi processi.",
42
+ "identity_unavailable": "Impossibile verificare l’UID dell’utente DSM. Accedi di nuovo o contatta un amministratore.",
43
+ "schedule-full": "Limite di 8 pianificazioni raggiunto. Eliminane una.",
44
+ "input-unavailable": "La copia privata non è disponibile o è cambiata. Importala di nuovo."
45
+ },
46
+ "ownerScope": "Puoi vedere, annullare e scaricare solo i tuoi processi.",
47
+ "adminScope": "Gli amministratori possono vedere e annullare i processi di tutti gli utenti.",
48
+ "ownerLimits": "Per utente: {jobs} processi in attesa e {size} KiB per input e risultati riservati.",
49
+ "allowUsers": "Consenti utenti normali",
50
+ "blockUsers": "Blocca utenti normali",
51
+ "usersOn": "Utenti normali consentiti",
52
+ "usersOff": "Utenti normali bloccati",
53
+ "owner": "Proprietario: {user} (UID {uid})",
54
+ "purgeOwner": "Cancella processi del proprietario",
55
+ "purgeConfirm": "Cancellare tutti i processi di {user} (UID {uid})? I processi in corso saranno annullati e terminati; i risultati salvati saranno rimossi.",
56
+ "confirmPurge": "Conferma cancellazione",
57
+ "keepJobs": "Conserva processi",
58
+ "schedulesTitle": "Pianificazioni",
59
+ "scheduleHelp": "Ricalcola la copia privata fissa come utente del pacchetto ogni ora, giorno o settimana. Fino a 8 pianificazioni. Le esecuzioni perse vengono registrate, senza recupero.",
60
+ "scheduleCopy": "Pianifica questa copia",
61
+ "scheduleSource": "Copia privata: {name}",
62
+ "interval": "Intervallo di ripetizione",
63
+ "hourly": "Ogni ora",
64
+ "daily": "Ogni giorno",
65
+ "weekly": "Ogni settimana",
66
+ "scheduleConsent": "Acconsento a conservare questa copia fissa e a ricalcolarla come utente del pacchetto. Non vengono letti nuovi file di origine o ACL personali.",
67
+ "createSchedule": "Crea pianificazione",
68
+ "noSchedules": "Nessuna pianificazione",
69
+ "scheduleOn": "Attiva",
70
+ "scheduleOff": "Disattivata",
71
+ "nextRun": "Prossima esecuzione: {time}",
72
+ "missedRuns": "Esecuzioni perse: {count}",
73
+ "disableSchedule": "Disattiva pianificazione",
74
+ "deleteSchedule": "Elimina pianificazione",
75
+ "deleteScheduleConsent": "Eliminare la pianificazione di {name}? I lavori in coda vengono annullati e quelli in corso vengono arrestati e conclusi. I risultati completati restano.",
76
+ "confirmDeleteSchedule": "Conferma eliminazione",
77
+ "enableSchedule": "Attiva pianificazione",
78
+ "enableScheduleConsent": "Attivare la pianificazione di {name} con la revisione attuale del worker? Acconsento a ricalcolare questa copia fissa. Le esecuzioni passate non saranno ripetute.",
79
+ "confirmEnableSchedule": "Conferma attivazione",
80
+ "revisionChanged": "La revisione del worker è cambiata. Un amministratore deve verificare e attivare esplicitamente questa pianificazione.",
81
+ "scheduledJob": "Esecuzione pianificata",
82
+ "unknownTime": "Sconosciuta"
83
+ }
@@ -0,0 +1,83 @@
1
+ {
2
+ "title": "バックグラウンドジョブ",
3
+ "help": "選択したファイルをパッケージにコピーし、パッケージアカウントで SHA-256 を計算します。サインアウト後も処理は継続します。コピーと結果はパッケージが保存し、元ファイルの権限変更では回収されません。再度サインインすると自分の結果を確認できます。",
4
+ "unsupported": "このアカウントではバックグラウンドジョブを利用できません。管理者に一般ユーザーの許可を依頼してください。",
5
+ "modeOn": "バックグラウンドモードはオンです",
6
+ "modeOff": "バックグラウンドモードはオフです",
7
+ "enable": "オンにする",
8
+ "disable": "オフにする",
9
+ "worker": "ワーカー",
10
+ "workerRunning": "ワーカーは {user} として実行中です",
11
+ "workerStopped": "ワーカーは停止しています",
12
+ "chooseFile": "ファイルを選択",
13
+ "chosen": "選択したファイル: {path}",
14
+ "pickerTitle": "インポートするファイルを選択",
15
+ "pickerConsent": "選択したファイルは現在の DSM サインインで一度だけ読み取られ、バックグラウンドジョブに渡されます。権限は保存されません。",
16
+ "submit": "インポートして送信",
17
+ "refresh": "更新",
18
+ "cancel": "キャンセル",
19
+ "result": "結果",
20
+ "download": "結果をダウンロード",
21
+ "noJobs": "ジョブはまだありません",
22
+ "state_queued": "待機中",
23
+ "state_running": "実行中",
24
+ "state_succeeded": "成功",
25
+ "state_failed": "失敗",
26
+ "state_canceled": "キャンセル済み",
27
+ "state_interrupted": "中断",
28
+ "limits": "1 ファイル最大 {size} KiB、キュー {queue} 件、1 ジョブ {seconds} 秒。",
29
+ "errors": {
30
+ "failed": "要求を完了できませんでした。更新して再試行してください。",
31
+ "unsupported": "このアカウントではバックグラウンドジョブを利用できません。管理者に一般ユーザーの許可を依頼してください。",
32
+ "disabled": "バックグラウンドモードはオフです。",
33
+ "limit-exceeded": "ファイルが上限を超えています。",
34
+ "queue-full": "キューがいっぱいです。",
35
+ "quota-exceeded": "バックグラウンド用の容量がいっぱいです。",
36
+ "conflict": "ジョブの状態が変わりました。更新してください。",
37
+ "not_found": "見つかりません。",
38
+ "denied": "アクセスが拒否されました。",
39
+ "session_required": "DSM セッションの有効期限が切れました。再度サインインしてください。",
40
+ "owner-queue-full": "保留中ジョブの上限です。完了を待つか、ジョブをキャンセルしてください。",
41
+ "owner-quota-exceeded": "保存領域の上限です。管理者に古いジョブの消去を依頼してください。",
42
+ "identity_unavailable": "DSM ユーザーの UID を確認できません。再度サインインするか、管理者に連絡してください。",
43
+ "schedule-full": "スケジュールは最大 8 件です。削除してください。",
44
+ "input-unavailable": "非公開コピーがないか変更されています。再度インポートしてください。"
45
+ },
46
+ "ownerScope": "自分のジョブのみ表示、キャンセル、ダウンロードできます。",
47
+ "adminScope": "管理者はすべてのユーザーのジョブを表示、キャンセルできます。",
48
+ "ownerLimits": "ユーザーごとの上限:保留中 {jobs} 件、入力と予約済み結果の保存領域 {size} KiB。",
49
+ "allowUsers": "一般ユーザーを許可",
50
+ "blockUsers": "一般ユーザーを無効化",
51
+ "usersOn": "一般ユーザーを許可済み",
52
+ "usersOff": "一般ユーザーは無効",
53
+ "owner": "所有者:{user}(UID {uid})",
54
+ "purgeOwner": "所有者のジョブを消去",
55
+ "purgeConfirm": "{user}(UID {uid})の全ジョブを消去しますか?実行中のジョブはキャンセルして終了を待ち、保存済み結果は削除します。",
56
+ "confirmPurge": "消去を確認",
57
+ "keepJobs": "ジョブを保持",
58
+ "schedulesTitle": "スケジュール",
59
+ "scheduleHelp": "パッケージユーザーとして固定の非公開コピーを毎時、毎日、毎週再計算します。最大 8 件。逃した実行は記録のみで再実行しません。",
60
+ "scheduleCopy": "このコピーを定期実行",
61
+ "scheduleSource": "非公開コピー:{name}",
62
+ "interval": "繰り返し間隔",
63
+ "hourly": "毎時",
64
+ "daily": "毎日",
65
+ "weekly": "毎週",
66
+ "scheduleConsent": "固定コピーを保存し、パッケージユーザーとして再計算することに同意します。新しい元ファイルや個人 ACL は読みません。",
67
+ "createSchedule": "スケジュールを作成",
68
+ "noSchedules": "スケジュールはありません",
69
+ "scheduleOn": "有効",
70
+ "scheduleOff": "無効",
71
+ "nextRun": "次回実行:{time}",
72
+ "missedRuns": "逃した実行:{count} 回",
73
+ "disableSchedule": "スケジュールを無効化",
74
+ "deleteSchedule": "スケジュールを削除",
75
+ "deleteScheduleConsent": "{name} のスケジュールを削除しますか?待機中のジョブは取り消され、実行中のジョブは停止処理を行います。完了した結果は残ります。",
76
+ "confirmDeleteSchedule": "削除を確認",
77
+ "enableSchedule": "スケジュールを有効化",
78
+ "enableScheduleConsent": "現在のワーカーリビジョンで {name} のスケジュールを有効にしますか?固定コピーの再計算に同意します。過去の実行は再生しません。",
79
+ "confirmEnableSchedule": "有効化を確認",
80
+ "revisionChanged": "ワーカーのリビジョンが変更されました。管理者が確認して明示的に有効にしてください。",
81
+ "scheduledJob": "定期実行",
82
+ "unknownTime": "不明"
83
+ }
@@ -0,0 +1,83 @@
1
+ {
2
+ "title": "백그라운드 작업",
3
+ "help": "선택한 파일 하나를 패키지에 복사하고 패키지 계정으로 SHA-256을 계산합니다. 로그아웃 후에도 작업은 계속됩니다. 복사본과 결과는 패키지가 보관하며 원본 권한 변경으로 회수되지 않습니다. 다시 로그인하여 자신의 결과를 확인하세요.",
4
+ "unsupported": "이 계정에서는 백그라운드 작업을 사용할 수 없습니다. 관리자에게 일반 사용자 허용을 요청하세요.",
5
+ "modeOn": "백그라운드 모드 켜짐",
6
+ "modeOff": "백그라운드 모드 꺼짐",
7
+ "enable": "켜기",
8
+ "disable": "끄기",
9
+ "worker": "워커",
10
+ "workerRunning": "워커가 {user} 계정으로 실행 중",
11
+ "workerStopped": "워커가 실행 중이 아닙니다",
12
+ "chooseFile": "파일 선택",
13
+ "chosen": "선택한 파일: {path}",
14
+ "pickerTitle": "가져올 파일 선택",
15
+ "pickerConsent": "선택한 파일은 현재 DSM 로그인으로 한 번만 읽어 백그라운드 작업에 전달됩니다. 권한은 저장되지 않습니다.",
16
+ "submit": "가져오기 및 제출",
17
+ "refresh": "새로 고침",
18
+ "cancel": "취소",
19
+ "result": "결과",
20
+ "download": "결과 다운로드",
21
+ "noJobs": "작업이 없습니다",
22
+ "state_queued": "대기 중",
23
+ "state_running": "실행 중",
24
+ "state_succeeded": "성공",
25
+ "state_failed": "실패",
26
+ "state_canceled": "취소됨",
27
+ "state_interrupted": "중단됨",
28
+ "limits": "파일당 최대 {size} KiB, 대기 {queue}개, 작업당 {seconds}초.",
29
+ "errors": {
30
+ "failed": "요청을 완료할 수 없습니다. 새로 고친 후 다시 시도하세요.",
31
+ "unsupported": "이 계정에서는 백그라운드 작업을 사용할 수 없습니다. 관리자에게 일반 사용자 허용을 요청하세요.",
32
+ "disabled": "백그라운드 모드가 꺼져 있습니다.",
33
+ "limit-exceeded": "파일이 한도를 초과했습니다.",
34
+ "queue-full": "대기열이 가득 찼습니다.",
35
+ "quota-exceeded": "백그라운드 저장 공간이 가득 찼습니다.",
36
+ "conflict": "작업 상태가 변경되었습니다. 새로 고치세요.",
37
+ "not_found": "찾을 수 없습니다.",
38
+ "denied": "액세스가 거부되었습니다.",
39
+ "session_required": "DSM 세션이 만료되었습니다. 다시 로그인하세요.",
40
+ "owner-queue-full": "대기 작업 한도에 도달했습니다. 완료를 기다리거나 작업 하나를 취소하세요.",
41
+ "owner-quota-exceeded": "저장 공간 한도에 도달했습니다. 관리자에게 이전 작업 삭제를 요청하세요.",
42
+ "identity_unavailable": "DSM 사용자 UID를 확인할 수 없습니다. 다시 로그인하거나 관리자에게 문의하세요.",
43
+ "schedule-full": "일정은 최대 8개입니다. 일정을 삭제하세요.",
44
+ "input-unavailable": "비공개 사본이 없거나 변경되었습니다. 다시 가져오세요."
45
+ },
46
+ "ownerScope": "자신의 작업만 보고 취소하고 다운로드할 수 있습니다.",
47
+ "adminScope": "관리자는 모든 사용자의 작업을 보고 취소할 수 있습니다.",
48
+ "ownerLimits": "사용자당 한도: 대기 중인 작업 {jobs}개, 입력 및 결과 예약 저장 공간 {size} KiB.",
49
+ "allowUsers": "일반 사용자 허용",
50
+ "blockUsers": "일반 사용자 차단",
51
+ "usersOn": "일반 사용자 허용됨",
52
+ "usersOff": "일반 사용자 차단됨",
53
+ "owner": "소유자: {user} (UID {uid})",
54
+ "purgeOwner": "소유자의 작업 지우기",
55
+ "purgeConfirm": "{user} (UID {uid})의 모든 작업을 지울까요? 실행 중인 작업은 취소 후 종료를 기다리며 저장된 결과는 삭제됩니다.",
56
+ "confirmPurge": "지우기 확인",
57
+ "keepJobs": "작업 유지",
58
+ "schedulesTitle": "일정",
59
+ "scheduleHelp": "패키지 사용자로 고정된 비공개 사본을 매시간, 매일 또는 매주 다시 계산합니다. 최대 8개 일정. 놓친 실행은 기록만 하며 다시 실행하지 않습니다.",
60
+ "scheduleCopy": "이 사본 예약",
61
+ "scheduleSource": "비공개 사본: {name}",
62
+ "interval": "반복 간격",
63
+ "hourly": "매시간",
64
+ "daily": "매일",
65
+ "weekly": "매주",
66
+ "scheduleConsent": "고정된 사본을 보관하고 패키지 사용자로 다시 계산하는 데 동의합니다. 새 원본 파일이나 개인 ACL은 읽지 않습니다.",
67
+ "createSchedule": "일정 만들기",
68
+ "noSchedules": "일정 없음",
69
+ "scheduleOn": "활성화됨",
70
+ "scheduleOff": "비활성화됨",
71
+ "nextRun": "다음 실행: {time}",
72
+ "missedRuns": "놓친 실행: {count}회",
73
+ "disableSchedule": "일정 비활성화",
74
+ "deleteSchedule": "일정 삭제",
75
+ "deleteScheduleConsent": "{name}의 일정을 삭제할까요? 대기 작업은 취소되고 실행 중인 작업은 중지 후 정리됩니다. 완료된 결과는 유지됩니다.",
76
+ "confirmDeleteSchedule": "삭제 확인",
77
+ "enableSchedule": "일정 활성화",
78
+ "enableScheduleConsent": "현재 작업자 리비전으로 {name}의 일정을 활성화할까요? 고정된 사본의 재계산에 동의합니다. 과거 실행은 반복하지 않습니다.",
79
+ "confirmEnableSchedule": "활성화 확인",
80
+ "revisionChanged": "작업자 리비전이 변경되었습니다. 관리자가 검토하고 명시적으로 활성화해야 합니다.",
81
+ "scheduledJob": "예약 실행",
82
+ "unknownTime": "알 수 없음"
83
+ }
@@ -0,0 +1,83 @@
1
+ {
2
+ "title": "后台任务",
3
+ "help": "将选择的一个文件复制到套件内,由套件账号计算 SHA-256。退出登录后任务仍会继续。副本与结果由套件保存,源权限变化不会收回;再次登录即可查看自己的结果。",
4
+ "unsupported": "你的账号无法使用后台任务。请管理员允许普通用户。",
5
+ "modeOn": "后台模式已开启",
6
+ "modeOff": "后台模式已关闭",
7
+ "enable": "开启",
8
+ "disable": "关闭",
9
+ "worker": "Worker",
10
+ "workerRunning": "Worker 正以 {user} 运行",
11
+ "workerStopped": "Worker 未运行",
12
+ "chooseFile": "选择文件",
13
+ "chosen": "已选择的文件:{path}",
14
+ "pickerTitle": "选择要导入的文件",
15
+ "pickerConsent": "所选文件会使用你当前的 DSM 登录读取一次并交给后台任务,不会保存授权。",
16
+ "submit": "导入并提交",
17
+ "refresh": "刷新",
18
+ "cancel": "取消",
19
+ "result": "结果",
20
+ "download": "下载结果",
21
+ "noJobs": "暂无任务",
22
+ "state_queued": "排队中",
23
+ "state_running": "运行中",
24
+ "state_succeeded": "成功",
25
+ "state_failed": "失败",
26
+ "state_canceled": "已取消",
27
+ "state_interrupted": "已中断",
28
+ "limits": "每个文件最多 {size} KiB、队列 {queue} 个任务、每个任务 {seconds} 秒。",
29
+ "errors": {
30
+ "failed": "无法完成请求。请刷新后重试。",
31
+ "unsupported": "你的账号无法使用后台任务。请管理员允许普通用户。",
32
+ "disabled": "后台模式已关闭。",
33
+ "limit-exceeded": "文件超过上限。",
34
+ "queue-full": "队列已满。",
35
+ "quota-exceeded": "后台存储空间已满。",
36
+ "conflict": "任务状态已变更,请刷新。",
37
+ "not_found": "未找到。",
38
+ "denied": "访问被拒绝。",
39
+ "session_required": "DSM 会话已过期,请重新登录。",
40
+ "owner-queue-full": "你的待处理任务已达上限。请等待完成或取消一个任务。",
41
+ "owner-quota-exceeded": "你的后台存储已达上限。请管理员清除旧任务。",
42
+ "identity_unavailable": "无法确认你的 DSM 用户 UID。请重新登录或联系管理员。",
43
+ "schedule-full": "已达 8 个计划上限。请删除计划。",
44
+ "input-unavailable": "私有副本不存在或已更改。请重新导入。"
45
+ },
46
+ "ownerScope": "你只能查看、取消及下载自己的任务。",
47
+ "adminScope": "管理员可查看及取消所有用户的任务。",
48
+ "ownerLimits": "每人上限:{jobs} 个待处理任务、{size} KiB 输入与预留结果存储。",
49
+ "allowUsers": "允许普通用户",
50
+ "blockUsers": "禁用普通用户",
51
+ "usersOn": "已允许普通用户",
52
+ "usersOff": "已禁用普通用户",
53
+ "owner": "所有者:{user}(UID {uid})",
54
+ "purgeOwner": "清除所有者的任务",
55
+ "purgeConfirm": "清除 {user}(UID {uid})的所有任务?运行中的任务会取消并等待结束;已保存的结果会移除。",
56
+ "confirmPurge": "确认清除",
57
+ "keepJobs": "保留任务",
58
+ "schedulesTitle": "计划",
59
+ "scheduleHelp": "由套件账户每小时、每日或每周重新计算固定私有副本。最多 8 个计划;错过的执行仅记录,不补跑。",
60
+ "scheduleCopy": "计划重跑副本",
61
+ "scheduleSource": "私有副本:{name}",
62
+ "interval": "重复间隔",
63
+ "hourly": "每小时",
64
+ "daily": "每日",
65
+ "weekly": "每周",
66
+ "scheduleConsent": "我同意保留此固定副本,并由套件账户重新计算。不读取新来源文件或个人 ACL。",
67
+ "createSchedule": "创建计划",
68
+ "noSchedules": "暂无计划",
69
+ "scheduleOn": "已启用",
70
+ "scheduleOff": "已停用",
71
+ "nextRun": "下次执行:{time}",
72
+ "missedRuns": "错过执行:{count} 次",
73
+ "disableSchedule": "停用计划",
74
+ "deleteSchedule": "删除计划",
75
+ "deleteScheduleConsent": "删除 {name} 的计划?排队任务将取消,运行中的任务将停止并完成收尾。已完成结果保留。",
76
+ "confirmDeleteSchedule": "确认删除",
77
+ "enableSchedule": "启用计划",
78
+ "enableScheduleConsent": "使用当前 worker revision 启用 {name} 的计划?我同意重新计算此固定副本。不重播过去的执行。",
79
+ "confirmEnableSchedule": "确认启用",
80
+ "revisionChanged": "Worker revision 已更改。管理员须检查并明确启用此计划。",
81
+ "scheduledJob": "计划执行",
82
+ "unknownTime": "未知"
83
+ }
@@ -0,0 +1,83 @@
1
+ {
2
+ "title": "背景工作",
3
+ "help": "將選取的一個檔案複製到套件內,由套件帳號計算 SHA-256。登出後工作仍會繼續。副本與結果由套件保存,來源權限變動不會收回;再次登入即可查看自己的結果。",
4
+ "unsupported": "你的帳號無法使用背景工作。請管理員允許一般使用者。",
5
+ "modeOn": "背景模式已開啟",
6
+ "modeOff": "背景模式已關閉",
7
+ "enable": "開啟",
8
+ "disable": "關閉",
9
+ "worker": "Worker",
10
+ "workerRunning": "Worker 正以 {user} 執行",
11
+ "workerStopped": "Worker 未執行",
12
+ "chooseFile": "選擇檔案",
13
+ "chosen": "已選擇的檔案:{path}",
14
+ "pickerTitle": "選擇要匯入的檔案",
15
+ "pickerConsent": "選取的檔案會用你目前的 DSM 登入讀取一次並交給背景工作,不會保存授權。",
16
+ "submit": "匯入並送出",
17
+ "refresh": "重新整理",
18
+ "cancel": "取消",
19
+ "result": "結果",
20
+ "download": "下載結果",
21
+ "noJobs": "尚無工作",
22
+ "state_queued": "排隊中",
23
+ "state_running": "執行中",
24
+ "state_succeeded": "成功",
25
+ "state_failed": "失敗",
26
+ "state_canceled": "已取消",
27
+ "state_interrupted": "已中斷",
28
+ "limits": "每個檔案最多 {size} KiB、佇列 {queue} 個工作、每個工作 {seconds} 秒。",
29
+ "errors": {
30
+ "failed": "無法完成要求。請重新整理後再試。",
31
+ "unsupported": "你的帳號無法使用背景工作。請管理員允許一般使用者。",
32
+ "disabled": "背景模式已關閉。",
33
+ "limit-exceeded": "檔案超過上限。",
34
+ "queue-full": "佇列已滿。",
35
+ "quota-exceeded": "背景儲存空間已滿。",
36
+ "conflict": "工作狀態已變更,請重新整理。",
37
+ "not_found": "找不到。",
38
+ "denied": "存取被拒絕。",
39
+ "session_required": "DSM 工作階段已過期,請重新登入。",
40
+ "owner-queue-full": "你的待處理工作已達上限。請等待完成或取消一個工作。",
41
+ "owner-quota-exceeded": "你的背景儲存已達上限。請管理員清除舊工作。",
42
+ "identity_unavailable": "無法確認你的 DSM 使用者 UID。請重新登入或洽管理員。",
43
+ "schedule-full": "已達 8 個排程上限。請刪除排程。",
44
+ "input-unavailable": "私有副本不存在或已變更。請重新匯入。"
45
+ },
46
+ "ownerScope": "你只能檢視、取消及下載自己的工作。",
47
+ "adminScope": "管理員可檢視及取消所有使用者的工作。",
48
+ "ownerLimits": "每人上限:{jobs} 個待處理工作、{size} KiB 輸入與預留結果儲存。",
49
+ "allowUsers": "允許一般使用者",
50
+ "blockUsers": "停用一般使用者",
51
+ "usersOn": "已允許一般使用者",
52
+ "usersOff": "已停用一般使用者",
53
+ "owner": "擁有者:{user}(UID {uid})",
54
+ "purgeOwner": "清除擁有者的工作",
55
+ "purgeConfirm": "清除 {user}(UID {uid})的所有工作?執行中的工作會取消並等待結束;已儲存的結果會移除。",
56
+ "confirmPurge": "確認清除",
57
+ "keepJobs": "保留工作",
58
+ "schedulesTitle": "排程",
59
+ "scheduleHelp": "由套件帳號每小時、每日或每週重算固定私有副本。最多 8 個排程;錯過的執行只記錄,不補跑。",
60
+ "scheduleCopy": "排程重跑副本",
61
+ "scheduleSource": "私有副本:{name}",
62
+ "interval": "重複間隔",
63
+ "hourly": "每小時",
64
+ "daily": "每日",
65
+ "weekly": "每週",
66
+ "scheduleConsent": "我同意保留此固定副本,並由套件帳號重算。不讀取新來源檔案或個人 ACL。",
67
+ "createSchedule": "建立排程",
68
+ "noSchedules": "尚無排程",
69
+ "scheduleOn": "已啟用",
70
+ "scheduleOff": "已停用",
71
+ "nextRun": "下次執行:{time}",
72
+ "missedRuns": "錯過執行:{count} 次",
73
+ "disableSchedule": "停用排程",
74
+ "deleteSchedule": "刪除排程",
75
+ "deleteScheduleConsent": "刪除 {name} 的排程?排隊工作會取消,執行中工作會停止並完成收尾。已完成結果保留。",
76
+ "confirmDeleteSchedule": "確認刪除",
77
+ "enableSchedule": "啟用排程",
78
+ "enableScheduleConsent": "使用目前 worker revision 啟用 {name} 的排程?我同意重算此固定副本。不重播過去的執行。",
79
+ "confirmEnableSchedule": "確認啟用",
80
+ "revisionChanged": "Worker revision 已變更。管理員須審閱並明確啟用此排程。",
81
+ "scheduledJob": "排程執行",
82
+ "unknownTime": "未知"
83
+ }
@@ -0,0 +1,19 @@
1
+ import en from './i18n/en.json'
2
+ import zhTW from './i18n/zh-TW.json'
3
+ import zhCN from './i18n/zh-CN.json'
4
+ import ja from './i18n/ja.json'
5
+ import ko from './i18n/ko.json'
6
+ import de from './i18n/de.json'
7
+ import fr from './i18n/fr.json'
8
+ import es from './i18n/es.json'
9
+ import it from './i18n/it.json'
10
+ export type BackgroundCopy=typeof en
11
+ export const backgroundCatalogs:Record<string,BackgroundCopy>={en,'zh-TW':zhTW,'zh-CN':zhCN,ja,ko,de,fr,es,it}
12
+ export function backgroundCopy(locale:string):BackgroundCopy{
13
+ const aliases:Record<string,string>={enu:'en',cht:'zh-TW',chs:'zh-CN',jpn:'ja',krn:'ko',ger:'de',fre:'fr',spn:'es',ita:'it'}
14
+ const key=locale.replaceAll('_','-');return backgroundCatalogs[aliases[key]??key]??backgroundCatalogs[key.split('-')[0]]??en
15
+ }
16
+ export function backgroundErrorCopy(e:unknown,copy:BackgroundCopy):string{
17
+ const code=(e as {code?:string})?.code??''
18
+ return (copy.errors as Record<string,string>)[code]??copy.errors.failed
19
+ }
@@ -0,0 +1,13 @@
1
+ import type {Context} from '../context'
2
+ import {createM2Provider} from '../nas/m2-provider'
3
+ import type {M2Provider} from '../nas/m2-contract'
4
+
5
+ // The shared File Station picker browses through bg.browse, the caller's
6
+ // own session, so a package built without --file-station still has a picker.
7
+ // Confirming a pick stores nothing and grants nothing: submit re-reads the file
8
+ // through the same session. Only the listing and the confirm step are real; the
9
+ // grant and file operations of the full provider are never reached from here.
10
+ export function createBackgroundPickerProvider(ctx:Pick<Context,'call'>):M2Provider{
11
+ const provider=createM2Provider({call:(method,params)=>ctx.call(method==='nas.discovery'?'bg.browse':method,params)})
12
+ return {...provider,async confirm(folder,writable){return {grantId:'',folder,writable}}}
13
+ }