@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,56 @@
1
+ {
2
+ "title": "Cartelle NAS — File Station",
3
+ "ownPermissions": "Le operazioni usano la tua sessione DSM e i permessi File Station attuali.",
4
+ "consent": "Una selezione salvata registra il consenso senza concedere ulteriori permessi DSM.",
5
+ "writable": "Consenti creazione di cartelle e caricamento di file (servono permessi DSM)",
6
+ "readOnly": "Sola lettura",
7
+ "unsupported": "Processi in background, accesso offline, streaming e pubblicazione atomica non sono supportati.",
8
+ "localOnly": "Sperimentale: solo test locali; compatibilità DSM non verificata.",
9
+ "identityRisk": "Un account ricreato con lo stesso nome e UID può conservare le selezioni.",
10
+ "pathRisk": "Le selezioni usano percorsi; non fissano inode né limitano link simbolici o rinomine.",
11
+ "choose": "Scegli cartella",
12
+ "confirm": "Conferma selezione",
13
+ "emptySelections": "Nessuna cartella salvata. Scegli una cartella.",
14
+ "refresh": "Aggiorna cartelle",
15
+ "openFiles": "Sfoglia file",
16
+ "revoke": "Revoca",
17
+ "confirmRevoke": "Conferma revoca",
18
+ "revokeWarning": "La revoca rifiuta nuove operazioni. I dati scritti restano; annullare una richiesta non dimostra che si sia fermata.",
19
+ "loading": "Caricamento…",
20
+ "emptyFolder": "Questa cartella è vuota.",
21
+ "roots": "Cartelle",
22
+ "back": "Indietro",
23
+ "select": "Seleziona {name}",
24
+ "open": "Apri {name}",
25
+ "selected": "Selezionato: {name}",
26
+ "cancel": "Annulla",
27
+ "close": "Chiudi",
28
+ "loadMore": "Carica altro",
29
+ "inspect": "Informazioni",
30
+ "read": "Leggi file",
31
+ "readComplete": "Lettura completata. Scarica i dati qui sotto.",
32
+ "create": "Crea cartella",
33
+ "folderName": "Nome della nuova cartella",
34
+ "upload": "Carica",
35
+ "uploadFile": "Scegli un file locale",
36
+ "limit": "Lettura e caricamento: massimo 512 KiB per file. Crea nuovi file senza sovrascrivere.",
37
+ "selectionAdded": "Selezione della cartella salvata.",
38
+ "revokedNotice": "Selezione revocata.",
39
+ "created": "Cartella creata.",
40
+ "uploaded": "File caricato.",
41
+ "accountChanged": "Account o pacchetto cambiato. Chiudi e riapri questa finestra.",
42
+ "errorSession": "Sessione DSM scaduta. Accedi di nuovo a DSM e aggiorna le cartelle.",
43
+ "errorDenied": "Accesso negato dai permessi DSM attuali o dalla selezione. Scegli un’altra cartella.",
44
+ "errorNotFound": "Il file o la cartella non esiste più. Aggiorna l’elenco.",
45
+ "errorConflict": "Esiste già un file o una cartella con questo nome. Scegli un altro nome.",
46
+ "errorUncertain": "L’operazione potrebbe essere completata. Aggiorna selezioni o destinazione e controlla il risultato prima di inviarla di nuovo.",
47
+ "errorInvalid": "Cartella, nome o richiesta non validi. Controlla i dati.",
48
+ "errorUnavailable": "File Station non disponibile o adattatore di sessione mancante. Aggiorna più tardi.",
49
+ "errorLimit": "Superato il limite di 512 KiB o un altro limite del servizio. Scegli un file più piccolo.",
50
+ "errorCanceled": "Richiesta annullata. Aggiorna prima di continuare.",
51
+ "errorTimeout": "Tempo scaduto. Aggiorna l’elenco prima di continuare.",
52
+ "metadata": "Metadati",
53
+ "fileKind": "File",
54
+ "directoryKind": "Cartella",
55
+ "download": "Scarica file"
56
+ }
@@ -0,0 +1,56 @@
1
+ {
2
+ "title": "NAS フォルダー — File Station",
3
+ "ownPermissions": "自分の DSM セッションと現在の File Station 権限で操作します。",
4
+ "consent": "保存した選択は同意の記録であり、DSM 権限を追加しません。",
5
+ "writable": "フォルダー作成とアップロードを許可(DSM 権限が必要)",
6
+ "readOnly": "読み取り専用",
7
+ "unsupported": "バックグラウンド処理、オフラインアクセス、ストリーミング、アトミック公開は非対応です。",
8
+ "localOnly": "実験機能:ローカルテストのみ。DSM 互換性は未検証です。",
9
+ "identityRisk": "同じユーザー名と UID でアカウントを再作成すると選択が残る場合があります。",
10
+ "pathRisk": "選択はパスを使用し、inode の固定やシンボリックリンク・名前変更の制限は行いません。",
11
+ "choose": "フォルダーを選択",
12
+ "confirm": "選択を確定",
13
+ "emptySelections": "保存したフォルダーはありません。フォルダーを選択してください。",
14
+ "refresh": "フォルダーを更新",
15
+ "openFiles": "ファイルを参照",
16
+ "revoke": "取り消す",
17
+ "confirmRevoke": "取り消しを確定",
18
+ "revokeWarning": "取り消すと新しい操作を拒否します。書き込み済みデータは残り、リクエストのキャンセルは停止の証明になりません。",
19
+ "loading": "読み込み中…",
20
+ "emptyFolder": "空のフォルダーです。",
21
+ "roots": "フォルダー",
22
+ "back": "戻る",
23
+ "select": "{name} を選択",
24
+ "open": "{name} を開く",
25
+ "selected": "選択済み:{name}",
26
+ "cancel": "キャンセル",
27
+ "close": "閉じる",
28
+ "loadMore": "さらに読み込む",
29
+ "inspect": "情報を表示",
30
+ "read": "ファイルを読む",
31
+ "readComplete": "読み取りが完了しました。以下からダウンロードできます。",
32
+ "create": "フォルダーを作成",
33
+ "folderName": "新しいフォルダー名",
34
+ "upload": "アップロード",
35
+ "uploadFile": "ローカルファイルを選択",
36
+ "limit": "読み取り・アップロードは 1 ファイル 512 KiB まで。新規ファイルを作成し、上書きしません。",
37
+ "selectionAdded": "フォルダーの選択を保存しました。",
38
+ "revokedNotice": "選択を取り消しました。",
39
+ "created": "フォルダーを作成しました。",
40
+ "uploaded": "ファイルをアップロードしました。",
41
+ "accountChanged": "アカウントまたはパッケージが変わりました。ウィンドウを閉じて開き直してください。",
42
+ "errorSession": "DSM セッションが期限切れです。DSM に再ログインし、フォルダーを更新してください。",
43
+ "errorDenied": "現在の DSM 権限または選択でアクセスが拒否されました。別のフォルダーを選んでください。",
44
+ "errorNotFound": "ファイルまたはフォルダーがありません。一覧を更新してください。",
45
+ "errorConflict": "同名のファイルまたはフォルダーがあります。別の名前を指定してください。",
46
+ "errorUncertain": "操作が完了した可能性があります。再送信する前に選択または保存先を更新し、結果を確認してください。",
47
+ "errorInvalid": "フォルダー、ファイル名またはリクエストが無効です。入力を確認してください。",
48
+ "errorUnavailable": "File Station が利用できないか、このパッケージにセッション adapter がありません。後で更新してください。",
49
+ "errorLimit": "512 KiB またはサービスの上限を超えました。小さいファイルを選んでください。",
50
+ "errorCanceled": "リクエストをキャンセルしました。更新してから続けてください。",
51
+ "errorTimeout": "リクエストがタイムアウトしました。一覧を更新してください。",
52
+ "metadata": "情報",
53
+ "fileKind": "ファイル",
54
+ "directoryKind": "フォルダー",
55
+ "download": "ファイルをダウンロード"
56
+ }
@@ -0,0 +1,56 @@
1
+ {
2
+ "title": "NAS 폴더 — File Station",
3
+ "ownPermissions": "자신의 DSM 세션과 현재 File Station 권한으로 작업합니다.",
4
+ "consent": "저장된 선택은 동의 기록이며 추가 DSM 권한을 부여하지 않습니다.",
5
+ "writable": "폴더 생성 및 파일 업로드 허용 (DSM 권한 필요)",
6
+ "readOnly": "읽기 전용",
7
+ "unsupported": "백그라운드 작업, 오프라인 접근, 스트리밍 및 원자적 게시를 지원하지 않습니다.",
8
+ "localOnly": "실험 기능: 로컬 테스트만 완료했으며 DSM 호환성은 검증되지 않았습니다.",
9
+ "identityRisk": "같은 사용자 이름과 UID로 계정을 다시 만들면 기존 선택이 유지될 수 있습니다.",
10
+ "pathRisk": "선택은 경로를 사용하며 inode 고정이나 심볼릭 링크 및 이름 변경 제한을 제공하지 않습니다.",
11
+ "choose": "폴더 선택",
12
+ "confirm": "선택 확인",
13
+ "emptySelections": "저장된 폴더가 없습니다. 폴더를 선택하세요.",
14
+ "refresh": "폴더 새로 고침",
15
+ "openFiles": "파일 탐색",
16
+ "revoke": "철회",
17
+ "confirmRevoke": "철회 확인",
18
+ "revokeWarning": "선택 철회는 새 작업을 거부합니다. 이미 기록된 데이터는 남으며 요청 취소가 작업 중단을 보장하지 않습니다.",
19
+ "loading": "불러오는 중…",
20
+ "emptyFolder": "빈 폴더입니다.",
21
+ "roots": "폴더",
22
+ "back": "뒤로",
23
+ "select": "{name} 선택",
24
+ "open": "{name} 열기",
25
+ "selected": "선택됨: {name}",
26
+ "cancel": "취소",
27
+ "close": "닫기",
28
+ "loadMore": "더 불러오기",
29
+ "inspect": "정보 보기",
30
+ "read": "파일 읽기",
31
+ "readComplete": "파일 읽기가 완료되었습니다. 아래에서 다운로드하세요.",
32
+ "create": "폴더 생성",
33
+ "folderName": "새 폴더 이름",
34
+ "upload": "업로드",
35
+ "uploadFile": "로컬 파일 선택",
36
+ "limit": "파일당 읽기 및 업로드 제한: 512 KiB. 새 파일을 생성하며 덮어쓰지 않습니다.",
37
+ "selectionAdded": "폴더 선택을 저장했습니다.",
38
+ "revokedNotice": "선택을 철회했습니다.",
39
+ "created": "폴더를 생성했습니다.",
40
+ "uploaded": "파일을 업로드했습니다.",
41
+ "accountChanged": "계정 또는 패키지가 변경되었습니다. 창을 닫고 다시 여세요.",
42
+ "errorSession": "DSM 세션이 만료되었습니다. DSM에 다시 로그인한 후 폴더를 새로 고치세요.",
43
+ "errorDenied": "현재 DSM 권한 또는 선택으로 접근이 거부되었습니다. 다른 폴더를 선택하세요.",
44
+ "errorNotFound": "파일 또는 폴더가 없습니다. 목록을 새로 고치세요.",
45
+ "errorConflict": "같은 이름의 파일 또는 폴더가 있습니다. 다른 이름을 사용하세요.",
46
+ "errorUncertain": "작업이 완료되었을 수 있습니다. 다시 제출하기 전에 선택 또는 대상 폴더를 새로 고쳐 결과를 확인하세요.",
47
+ "errorInvalid": "폴더, 파일 이름 또는 요청이 잘못되었습니다. 입력을 확인하세요.",
48
+ "errorUnavailable": "File Station을 사용할 수 없거나 패키지에 세션 adapter가 없습니다. 나중에 새로 고치세요.",
49
+ "errorLimit": "512 KiB 파일 제한 또는 서비스 제한을 초과했습니다. 더 작은 파일을 선택하세요.",
50
+ "errorCanceled": "요청이 취소되었습니다. 새로 고친 후 계속하세요.",
51
+ "errorTimeout": "요청 시간이 초과되었습니다. 목록을 새로 고치세요.",
52
+ "metadata": "정보",
53
+ "fileKind": "파일",
54
+ "directoryKind": "폴더",
55
+ "download": "파일 다운로드"
56
+ }
@@ -0,0 +1,56 @@
1
+ {
2
+ "title": "NAS 文件夹 — File Station",
3
+ "ownPermissions": "操作使用你自己的 DSM 会话与 File Station 实时权限。",
4
+ "consent": "保存选择仅记录你的同意,不会授予额外 DSM 权限。",
5
+ "writable": "允许创建文件夹和上传文件(仍须符合 DSM 权限)",
6
+ "readOnly": "只读",
7
+ "unsupported": "不支持后台任务、离线访问、流式传输和原子发布。",
8
+ "localOnly": "实验功能:仅通过本地测试,DSM 兼容性尚未验证。",
9
+ "identityRisk": "使用相同用户名和 UID 重建账号,可能保留已有选择。",
10
+ "pathRisk": "选择按路径操作,不固定 inode,也不限制符号链接和重命名。",
11
+ "choose": "选择文件夹",
12
+ "confirm": "确认选择",
13
+ "emptySelections": "尚未保存文件夹。请选择文件夹开始。",
14
+ "refresh": "刷新文件夹",
15
+ "openFiles": "浏览文件",
16
+ "revoke": "撤销",
17
+ "confirmRevoke": "确认撤销",
18
+ "revokeWarning": "撤销选择会拒绝新操作。已写入的数据仍会保留;取消请求不代表操作已停止。",
19
+ "loading": "正在加载…",
20
+ "emptyFolder": "此文件夹为空。",
21
+ "roots": "文件夹",
22
+ "back": "返回",
23
+ "select": "选择 {name}",
24
+ "open": "打开 {name}",
25
+ "selected": "已选择:{name}",
26
+ "cancel": "取消",
27
+ "close": "关闭",
28
+ "loadMore": "加载更多",
29
+ "inspect": "查看信息",
30
+ "read": "读取文件",
31
+ "readComplete": "文件读取完成。可在下方下载内容。",
32
+ "create": "创建文件夹",
33
+ "folderName": "新文件夹名称",
34
+ "upload": "上传",
35
+ "uploadFile": "选择本地文件",
36
+ "limit": "单文件读取和上传上限:512 KiB。上传会创建新文件,不会覆盖。",
37
+ "selectionAdded": "已保存文件夹选择。",
38
+ "revokedNotice": "已撤销选择。",
39
+ "created": "已创建文件夹。",
40
+ "uploaded": "已上传文件。",
41
+ "accountChanged": "账号或套件已变更。请关闭并重新打开窗口后继续。",
42
+ "errorSession": "DSM 会话已失效。请重新登录 DSM,再刷新文件夹。",
43
+ "errorDenied": "当前 DSM 权限或选择拒绝访问。请选择其他文件夹。",
44
+ "errorNotFound": "文件或文件夹已不存在。请刷新列表。",
45
+ "errorConflict": "已有同名文件或文件夹。请使用其他名称。",
46
+ "errorUncertain": "操作可能已完成。请刷新选择或目标文件夹并确认结果,再决定是否重新提交。",
47
+ "errorInvalid": "文件夹、文件名或请求无效。请检查输入后重试。",
48
+ "errorUnavailable": "File Station 不可用,或此套件未提供会话 adapter。请稍后刷新。",
49
+ "errorLimit": "请求超过单文件 512 KiB 或其他服务限制。请选择较小的文件。",
50
+ "errorCanceled": "请求已取消。请刷新后继续。",
51
+ "errorTimeout": "请求超时。请刷新列表后继续。",
52
+ "metadata": "信息",
53
+ "fileKind": "文件",
54
+ "directoryKind": "文件夹",
55
+ "download": "下载文件"
56
+ }
@@ -0,0 +1,56 @@
1
+ {
2
+ "title": "NAS 資料夾 — File Station",
3
+ "ownPermissions": "操作使用你自己的 DSM 工作階段與 File Station 即時權限。",
4
+ "consent": "儲存選取僅記錄你的同意,不會授予額外 DSM 權限。",
5
+ "writable": "允許建立資料夾與上傳檔案(仍須符合 DSM 權限)",
6
+ "readOnly": "唯讀",
7
+ "unsupported": "不支援背景工作、離線存取、串流與原子發布。",
8
+ "localOnly": "實驗功能:僅通過本機測試,DSM 相容性尚未驗證。",
9
+ "identityRisk": "以相同使用者名稱與 UID 重建帳號,可能保留既有選取。",
10
+ "pathRisk": "選取依路徑操作,不固定 inode,也不限制符號連結與重新命名。",
11
+ "choose": "選擇資料夾",
12
+ "confirm": "確認選取",
13
+ "emptySelections": "尚未儲存資料夾。請選擇資料夾開始。",
14
+ "refresh": "重新整理資料夾",
15
+ "openFiles": "瀏覽檔案",
16
+ "revoke": "撤銷",
17
+ "confirmRevoke": "確認撤銷",
18
+ "revokeWarning": "撤銷選取會拒絕新操作。已寫入資料仍會保留;取消請求不代表操作已停止。",
19
+ "loading": "載入中…",
20
+ "emptyFolder": "此資料夾是空的。",
21
+ "roots": "資料夾",
22
+ "back": "返回",
23
+ "select": "選取 {name}",
24
+ "open": "開啟 {name}",
25
+ "selected": "已選取:{name}",
26
+ "cancel": "取消",
27
+ "close": "關閉",
28
+ "loadMore": "載入更多",
29
+ "inspect": "檢視資訊",
30
+ "read": "讀取檔案",
31
+ "readComplete": "檔案讀取完成。可在下方下載內容。",
32
+ "create": "建立資料夾",
33
+ "folderName": "新資料夾名稱",
34
+ "upload": "上傳",
35
+ "uploadFile": "選擇本機檔案",
36
+ "limit": "單檔讀取與上傳上限:512 KiB。上傳會建立新檔案,不會覆寫。",
37
+ "selectionAdded": "已儲存資料夾選取。",
38
+ "revokedNotice": "已撤銷選取。",
39
+ "created": "已建立資料夾。",
40
+ "uploaded": "已上傳檔案。",
41
+ "accountChanged": "帳號或套件已變更。請關閉並重新開啟視窗後繼續。",
42
+ "errorSession": "DSM 工作階段已失效。請重新登入 DSM,再重新整理資料夾。",
43
+ "errorDenied": "目前的 DSM 權限或選取拒絕存取。請選擇其他資料夾。",
44
+ "errorNotFound": "檔案或資料夾已不存在。請重新整理清單。",
45
+ "errorConflict": "已有同名檔案或資料夾。請使用其他名稱。",
46
+ "errorUncertain": "操作可能已完成。請重新整理選取或目的資料夾並確認結果,再決定是否重新送出。",
47
+ "errorInvalid": "資料夾、檔名或請求無效。請檢查輸入後重試。",
48
+ "errorUnavailable": "File Station 無法使用,或此套件未提供工作階段 adapter。請稍後重新整理。",
49
+ "errorLimit": "請求超過單檔 512 KiB 或其他服務限制。請選擇較小的檔案。",
50
+ "errorCanceled": "請求已取消。請重新整理後繼續。",
51
+ "errorTimeout": "請求逾時。請重新整理清單後繼續。",
52
+ "metadata": "資訊",
53
+ "fileKind": "檔案",
54
+ "directoryKind": "資料夾",
55
+ "download": "下載檔案"
56
+ }
@@ -0,0 +1,74 @@
1
+ {
2
+ "title": "NAS 文件夹授权",
3
+ "mock": "模拟预览 — 不会更改 NAS 文件或权限。",
4
+ "personal": "我的文件夹",
5
+ "shared": "App 共享文件夹",
6
+ "choosePersonal": "选择我的文件夹",
7
+ "chooseShared": "选择共享文件夹",
8
+ "refresh": "刷新授权",
9
+ "emptyGrant": "尚未授权文件夹。选择文件夹以预览只读访问。",
10
+ "pickerTitle": "选择 NAS 文件夹",
11
+ "pickerHelp": "浏览文件夹,选择一个,再查看只读授权。",
12
+ "roots": "文件夹",
13
+ "back": "返回",
14
+ "open": "打开 {name}",
15
+ "select": "选择 {name}",
16
+ "selected": "已选择:{name}",
17
+ "review": "查看授权",
18
+ "cancel": "取消",
19
+ "confirm": "确认授权",
20
+ "summaryTitle": "查看文件夹授权",
21
+ "app": "App",
22
+ "scope": "范围",
23
+ "folder": "文件夹",
24
+ "actions": "允许的操作",
25
+ "readOnly": "列出文件夹、查看元数据及读取文件",
26
+ "persistent": "持续授权 — 直到您撤权或绑定失效。",
27
+ "revokeHow": "可在此逐一撤权。重新授权会创建新的 grant。",
28
+ "expires": "请在 30 秒内确认。",
29
+ "loading": "正在加载文件夹…",
30
+ "emptyFolder": "此文件夹为空",
31
+ "loadMore": "加载更多",
32
+ "state": "授权状态",
33
+ "active": "有效",
34
+ "suspended": "已暂停 — 请重新选择并授权",
35
+ "revoked": "已撤权",
36
+ "draining": "已撤权,正在停止传输",
37
+ "cleanup": "已撤权,清理待确认",
38
+ "createdAt": "创建时间",
39
+ "revoke": "撤权",
40
+ "revokeTitle": "撤销文件夹授权?",
41
+ "revokeWarning": "停止新的访问,并停止正在进行的传输。已发送或已写入的数据不会还原。",
42
+ "confirmRevoke": "确认撤权",
43
+ "noticeCreated": "已新增文件夹授权。",
44
+ "errorTitle": "无法更新文件夹授权",
45
+ "errorDenied": "访问被拒绝。请选择当前账号可见的文件夹。",
46
+ "errorExpired": "选择或确认已过期。请取消后重新选择文件夹。",
47
+ "errorStale": "会话或选择已更改。请取消后重新选择文件夹。",
48
+ "errorUnavailable": "文件夹服务不可用。请管理员检查集成及主目录服务。",
49
+ "errorBusy": "已达请求上限。请稍候再试。",
50
+ "errorCanceled": "请求已取消。准备好时请重新选择文件夹。",
51
+ "errorInternal": "请求失败。请先刷新授权,再重试。",
52
+ "retry": "重试",
53
+ "close": "关闭",
54
+ "selection": "选择文件夹",
55
+ "actionList": "列出文件夹",
56
+ "actionStat": "查看元数据",
57
+ "actionRead": "读取文件",
58
+ "pilotOff": "受管账号试点:关闭",
59
+ "pilotRestrictions": "需要管理员批准及已验证的账号维护流程。账号变更或身份无法确认时会撤销访问,并要求重新登录及批准。此版本尚无法启用试点。",
60
+ "unavailableTitle": "尚未开放",
61
+ "unavailableMessage": "NAS 文件夹授权及文件操作尚未开放,目前无法验证必要的原生身份与权限证明。",
62
+ "pilotUnavailable": "受管账号试点 B 为 experimental,无法启用。",
63
+ "noUnlock": "启用集成或重新登录不会解锁 NAS 文件访问。",
64
+ "errorUnknownMethod": "此套件版本未提供这个方法。",
65
+ "errorNativeProof": "必要的原生身份或权限证明无法确认,NAS 访问保持关闭。",
66
+ "errorSession": "DSM 会话已过期。重新登录可恢复 App 会话;NAS 文件访问仍未开放。",
67
+ "errorAuthentication": "DSM 身份验证不可用,请稍后刷新 App 状态。",
68
+ "errorUnsupported": "此版本尚未开放 NAS 文件操作。",
69
+ "healthPending": "暂时重新验证中",
70
+ "healthPendingHelp": "集成服务暂时重新验证中。请稍候再刷新;验证完成前无法获取新的访问权限。",
71
+ "relaxedRisk": "选择宽松身份时,同 UID 且同 username 的账号删除后重建可能沿用授权。",
72
+ "relaxedReauthorize": "UID 或 username 改变会作废您的全部授权,必须重新授权。",
73
+ "relaxedPermissions": "文件操作以您的 UID 与群组执行,受 NAS 权限与已授权文件夹限制。账号停用或 App 权限撤销时拒绝访问。"
74
+ }
@@ -0,0 +1,74 @@
1
+ {
2
+ "title": "NAS 資料夾授權",
3
+ "mock": "模擬預覽 — 不會變更 NAS 檔案或權限。",
4
+ "personal": "我的資料夾",
5
+ "shared": "App 共用資料夾",
6
+ "choosePersonal": "選擇我的資料夾",
7
+ "chooseShared": "選擇共用資料夾",
8
+ "refresh": "重新整理授權",
9
+ "emptyGrant": "尚未授權資料夾。選擇資料夾以預覽唯讀存取。",
10
+ "pickerTitle": "選擇 NAS 資料夾",
11
+ "pickerHelp": "瀏覽資料夾,選取一個,再檢視唯讀授權。",
12
+ "roots": "資料夾",
13
+ "back": "返回",
14
+ "open": "開啟 {name}",
15
+ "select": "選取 {name}",
16
+ "selected": "已選取:{name}",
17
+ "review": "檢視授權",
18
+ "cancel": "取消",
19
+ "confirm": "確認授權",
20
+ "summaryTitle": "檢視資料夾授權",
21
+ "app": "App",
22
+ "scope": "範圍",
23
+ "folder": "資料夾",
24
+ "actions": "允許的操作",
25
+ "readOnly": "列出資料夾、檢視中繼資料及讀取檔案",
26
+ "persistent": "持續授權 — 直到您撤權或綁定失效。",
27
+ "revokeHow": "可在此逐一撤權。重新授權會建立新的 grant。",
28
+ "expires": "請在 30 秒內確認。",
29
+ "loading": "正在載入資料夾…",
30
+ "emptyFolder": "此資料夾是空的",
31
+ "loadMore": "載入更多",
32
+ "state": "授權狀態",
33
+ "active": "有效",
34
+ "suspended": "已暫停 — 請重新選取並授權",
35
+ "revoked": "已撤權",
36
+ "draining": "已撤權,正在停止傳輸",
37
+ "cleanup": "已撤權,清理待確認",
38
+ "createdAt": "建立時間",
39
+ "revoke": "撤權",
40
+ "revokeTitle": "撤銷資料夾授權?",
41
+ "revokeWarning": "停止新的存取,並停止進行中的傳輸。已傳送或已寫入的資料不會還原。",
42
+ "confirmRevoke": "確認撤權",
43
+ "noticeCreated": "已新增資料夾授權。",
44
+ "errorTitle": "無法更新資料夾授權",
45
+ "errorDenied": "存取遭拒。請選擇目前帳號可見的資料夾。",
46
+ "errorExpired": "選取或確認已過期。請取消後重新選擇資料夾。",
47
+ "errorStale": "工作階段或選取已變更。請取消後重新選擇資料夾。",
48
+ "errorUnavailable": "資料夾服務無法使用。請管理員檢查整合及家目錄服務。",
49
+ "errorBusy": "已達請求上限。請稍候再試。",
50
+ "errorCanceled": "請求已取消。準備好時請重新選擇資料夾。",
51
+ "errorInternal": "請求失敗。請先重新整理授權,再重試。",
52
+ "retry": "重試",
53
+ "close": "關閉",
54
+ "selection": "選取資料夾",
55
+ "actionList": "列出資料夾",
56
+ "actionStat": "檢視中繼資料",
57
+ "actionRead": "讀取檔案",
58
+ "pilotOff": "受管帳號試點:關閉",
59
+ "pilotRestrictions": "需要管理員核准及已驗證的帳號維護流程。帳號變更或身分無法確認時會撤銷存取,並要求重新登入及核准。此版本尚無法啟用試點。",
60
+ "unavailableTitle": "尚未開放",
61
+ "unavailableMessage": "NAS 資料夾授權及檔案操作尚未開放,目前無法驗證必要的原生身分與權限證明。",
62
+ "pilotUnavailable": "受管帳號試點 B 為 experimental,無法啟用。",
63
+ "noUnlock": "啟用整合或重新登入不會解鎖 NAS 檔案存取。",
64
+ "errorUnknownMethod": "此套件版本未提供這個方法。",
65
+ "errorNativeProof": "必要的原生身分或權限證明無法確認,NAS 存取維持關閉。",
66
+ "errorSession": "DSM 工作階段已過期。重新登入可恢復 App 工作階段;NAS 檔案存取仍未開放。",
67
+ "errorAuthentication": "DSM 身分驗證無法使用,請稍後重新整理 App 狀態。",
68
+ "errorUnsupported": "此版本尚未開放 NAS 檔案操作。",
69
+ "healthPending": "暫時重新驗證中",
70
+ "healthPendingHelp": "整合服務暫時重新驗證中。請稍候再重新整理;驗證完成前無法取得新的存取權限。",
71
+ "relaxedRisk": "選用寬鬆身分時,同 UID 且同 username 的帳號刪除後重建可能沿用授權。",
72
+ "relaxedReauthorize": "UID 或 username 改變會作廢您的全部授權,必須重新授權。",
73
+ "relaxedPermissions": "檔案操作以您的 UID 與群組執行,受 NAS 權限與已授權資料夾限制。帳號停用或 App 權限撤銷時拒絕存取。"
74
+ }
@@ -0,0 +1,38 @@
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
+ import type {ReadAction, SafeCode} from './provider'
11
+
12
+ export type NasCopy = typeof en
13
+ export const catalogs: Record<string, NasCopy> = {en,'zh-TW':zhTW,'zh-CN':zhCN,ja,ko,de,fr,es,it}
14
+ 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'}
15
+ export function nasCopy(locale:string):NasCopy {
16
+ const normalized=locale.replaceAll('_','-')
17
+ return catalogs[aliases[normalized] ?? normalized] ?? catalogs[normalized.split('-')[0]!] ?? en
18
+ }
19
+ export function format(copy:string,name:string) {return copy.replace('{name}',name)}
20
+ export function actionCopy(actions:readonly ReadAction[],copy:NasCopy) {
21
+ const labels:Record<ReadAction,string>={'nas.files.list':copy.actionList,'nas.files.stat':copy.actionStat,'nas.files.read':copy.actionRead}
22
+ return actions.map(action=>labels[action] ?? copy.errorInternal).join(' · ')
23
+ }
24
+ export function errorCopy(error:unknown, copy:NasCopy):string {
25
+ const code=(error as {code?:SafeCode})?.code
26
+ if(code==='unknown_method') return copy.errorUnknownMethod
27
+ if(code==='session_required') return copy.errorSession
28
+ if(code==='auth_unavailable') return copy.errorAuthentication
29
+ if(code==='unavailable') return copy.errorNativeProof
30
+ if(code==='unsupported') return copy.errorUnsupported
31
+ if(code==='denied') return copy.errorDenied
32
+ if(code==='expired') return copy.errorExpired
33
+ if(['stale','replay','suspended','revoked','fenced'].includes(code ?? '')) return copy.errorStale
34
+ if(['incompatible','cleanup-required'].includes(code ?? '')) return copy.errorUnavailable
35
+ if(code==='busy' || code==='limit-exceeded') return copy.errorBusy
36
+ if(code==='canceled') return copy.errorCanceled
37
+ return copy.errorInternal // Never render a native message, path or arbitrary code.
38
+ }
@@ -0,0 +1,33 @@
1
+ import type {InjectionKey} from 'vue'
2
+
3
+ // File Station session selections are consent, not native helper grants.
4
+ // Paths are display/routing data. Only the backend's authenticated DSM session
5
+ // and current File Station ACL authorize an operation; writable is consent only.
6
+ export const M2_MAX_BYTES = 512 * 1024
7
+ export const M2_PAGE_SIZE = 100
8
+ export type M2Code = 'session_required' | 'auth_unavailable' | 'denied' | 'not_found' |
9
+ 'conflict' | 'invalid-request' | 'unavailable' | 'unknown_method' | 'unsupported' |
10
+ 'commit-uncertain' | 'limit-exceeded' | 'canceled' | 'timeout'
11
+ export interface M2Selection {grantId:string; folder:string; writable:boolean}
12
+ export interface M2Entry {name:string; path:string; isDir:boolean; bytes?:number}
13
+ // File picks consent to their containing folder, with one relative filename.
14
+ export interface M2JobSource {selection:M2Selection;entry:M2Entry;segments:readonly string[]}
15
+ export interface M2Page {entries:M2Entry[]; total:number; offset:number; nextOffset?:number}
16
+ export interface M2Session {
17
+ mode:'filestation-session'; interactive:'session-required'; background:'unavailable'; validation:'local-only'
18
+ }
19
+ export interface M2Provider {
20
+ readonly mode:'filestation-session'
21
+ status(signal:AbortSignal):Promise<M2Session>
22
+ discovery(folder:string|undefined,offset:number,signal:AbortSignal):Promise<M2Page>
23
+ confirm(folder:string,writable:boolean,signal:AbortSignal):Promise<M2Selection>
24
+ selections(signal:AbortSignal):Promise<M2Selection[]>
25
+ revoke(grantId:string,signal:AbortSignal):Promise<void>
26
+ list(grantId:string,relative:string,offset:number,signal:AbortSignal):Promise<M2Page>
27
+ stat(grantId:string,relative:string,signal:AbortSignal):Promise<M2Entry>
28
+ read(grantId:string,relative:string,signal:AbortSignal):Promise<Uint8Array>
29
+ create(grantId:string,relative:string,name:string,signal:AbortSignal):Promise<void>
30
+ upload(grantId:string,relative:string,name:string,data:Uint8Array,signal:AbortSignal):Promise<void>
31
+ dispose():void
32
+ }
33
+ export const M2ProviderKey:InjectionKey<M2Provider> = Symbol('m2-filestation-session')
@@ -0,0 +1,24 @@
1
+ import type {UiLocale} from '@synopackageland/ui'
2
+ import en from './i18n/m2/en.json'
3
+ import zhTW from './i18n/m2/zh-TW.json'
4
+ import zhCN from './i18n/m2/zh-CN.json'
5
+ import ja from './i18n/m2/ja.json'
6
+ import ko from './i18n/m2/ko.json'
7
+ import de from './i18n/m2/de.json'
8
+ import fr from './i18n/m2/fr.json'
9
+ import es from './i18n/m2/es.json'
10
+ import it from './i18n/m2/it.json'
11
+ export type M2Copy=typeof en
12
+ export const m2Catalogs:Record<string,M2Copy>={en,'zh-TW':zhTW,'zh-CN':zhCN,ja,ko,de,fr,es,it}
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
+ /** The built-in UI locale (shared by these catalogs and the UI's own text) for a DSM or BCP-47 language tag. */
15
+ export function uiLocale(locale:string):UiLocale{
16
+ const normalized=locale.replaceAll('_','-')
17
+ return ([aliases[normalized]??normalized,normalized.split('-')[0]!].find(key=>key in m2Catalogs)??'en') as UiLocale
18
+ }
19
+ export function m2Copy(locale:string):M2Copy{return m2Catalogs[uiLocale(locale)]!}
20
+ export function m2ErrorCopy(error:unknown,copy:M2Copy):string{
21
+ const code=(error as {code?:string})?.code
22
+ const keys:Record<string,keyof M2Copy>={session_required:'errorSession',denied:'errorDenied',not_found:'errorNotFound',conflict:'errorConflict','commit-uncertain':'errorUncertain','invalid-request':'errorInvalid','limit-exceeded':'errorLimit',canceled:'errorCanceled',timeout:'errorTimeout',unsupported:'unsupported'}
23
+ return copy[keys[code??'']??'errorUnavailable']
24
+ }