@synopackageland/cli 0.3.10 → 0.4.1

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 (641) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +57 -9
  3. package/dist/bin.js +1 -2
  4. package/dist/build-spk/generator.d.ts +0 -3
  5. package/dist/build-spk/generator.js +138 -287
  6. package/dist/build-spk/native-lifecycle.js +0 -3
  7. package/dist/build-spk/native-payload.js +0 -1
  8. package/dist/build-spk/notices.d.ts +5 -0
  9. package/dist/build-spk/notices.js +60 -0
  10. package/dist/cli.js +178 -151
  11. package/dist/compose/analyze.d.ts +1 -2
  12. package/dist/compose/analyze.js +5 -48
  13. package/dist/contract/unsupported-types.d.ts +10 -0
  14. package/dist/contract/unsupported-types.js +49 -0
  15. package/dist/contract/validate.js +25 -2
  16. package/dist/contract/web-launch.js +0 -2
  17. package/dist/deploy/deploy.d.ts +1 -4
  18. package/dist/deploy/deploy.js +45 -156
  19. package/dist/deploy/homes-values.js +1 -1
  20. package/dist/deploy/plan.d.ts +18 -0
  21. package/dist/deploy/plan.js +54 -0
  22. package/dist/deploy/spk-version.d.ts +2 -14
  23. package/dist/deploy/spk-version.js +25 -111
  24. package/dist/dev.d.ts +1 -3
  25. package/dist/dev.js +14 -28
  26. package/dist/error-registry.js +830 -862
  27. package/dist/host/dsm-client.js +12 -272
  28. package/dist/host/dsm-port-profile.d.ts +0 -1
  29. package/dist/host/dsm-port-profile.js +0 -2
  30. package/dist/host/types.d.ts +1 -83
  31. package/dist/index.d.ts +0 -9
  32. package/dist/index.js +0 -6
  33. package/dist/info.d.ts +0 -1
  34. package/dist/info.js +3 -10
  35. package/dist/init.d.ts +15 -1
  36. package/dist/init.js +128 -12
  37. package/dist/log.js +2 -3
  38. package/dist/native/validate.js +0 -1
  39. package/dist/standalone/binary.d.ts +9 -0
  40. package/dist/standalone/binary.js +67 -0
  41. package/dist/standalone/build.d.ts +25 -0
  42. package/dist/standalone/build.js +110 -0
  43. package/dist/standalone/daemon.d.ts +23 -0
  44. package/dist/standalone/daemon.js +114 -0
  45. package/dist/standalone/dsm-window.d.ts +26 -0
  46. package/dist/standalone/dsm-window.js +291 -0
  47. package/dist/standalone/helper-inventory.d.ts +16 -0
  48. package/dist/standalone/helper-inventory.js +2 -0
  49. package/dist/standalone/helper.d.ts +21 -0
  50. package/dist/standalone/helper.js +105 -0
  51. package/dist/standalone/host-adapter.d.ts +5 -0
  52. package/dist/standalone/host-adapter.js +148 -0
  53. package/dist/standalone/host-platform.d.ts +13 -0
  54. package/dist/standalone/host-platform.js +42 -0
  55. package/dist/standalone/host-types.d.ts +49 -0
  56. package/dist/standalone/host-types.js +1 -0
  57. package/dist/standalone/i18n.d.ts +28 -0
  58. package/dist/standalone/i18n.js +161 -0
  59. package/dist/standalone/inspect-helper.d.ts +6 -0
  60. package/dist/standalone/inspect-helper.js +88 -0
  61. package/dist/standalone/inspect-spk.d.ts +23 -0
  62. package/dist/standalone/inspect-spk.js +209 -0
  63. package/dist/standalone/lifecycle-helper.d.ts +2 -0
  64. package/dist/standalone/lifecycle-helper.js +12 -0
  65. package/dist/standalone/lifecycle.d.ts +3 -0
  66. package/dist/standalone/lifecycle.js +53 -0
  67. package/dist/standalone/manifest.d.ts +73 -0
  68. package/dist/standalone/manifest.js +279 -0
  69. package/dist/standalone/reopen-events.d.ts +2 -0
  70. package/dist/standalone/reopen-events.js +28 -0
  71. package/dist/standalone/root-messages.d.ts +7 -0
  72. package/dist/standalone/root-messages.js +259 -0
  73. package/dist/standalone/root-ops.d.ts +42 -0
  74. package/dist/standalone/root-ops.js +101 -0
  75. package/dist/standalone/root-window.d.ts +36 -0
  76. package/dist/standalone/root-window.js +302 -0
  77. package/dist/standalone/spk.d.ts +23 -0
  78. package/dist/standalone/spk.js +192 -0
  79. package/dist/template-paths.d.ts +2 -0
  80. package/dist/template-paths.js +9 -0
  81. package/dist/templates/_daemon/fixture_linux_test.go +15 -0
  82. package/dist/templates/_daemon/fixture_other_test.go +7 -0
  83. package/dist/templates/_daemon/go.mod +3 -0
  84. package/dist/templates/_daemon/main.go +608 -0
  85. package/dist/templates/_daemon/main_test.go +242 -0
  86. package/dist/templates/_daemon/process_linux.go +55 -0
  87. package/dist/templates/_daemon/process_linux_test.go +161 -0
  88. package/dist/templates/_daemon/process_other.go +14 -0
  89. package/dist/templates/_daemon/testdata/child.go +41 -0
  90. package/dist/templates/_shared/GO-LICENSE +27 -0
  91. package/dist/templates/_shared/GO-PATENTS +22 -0
  92. package/dist/templates/_shared/LICENSES/TEMPLATE.txt +21 -0
  93. package/dist/templates/_shared/notice-overrides/index.json +14 -0
  94. package/dist/templates/_shared/notice-overrides/utils-0.4.2-LICENSE +21 -0
  95. package/dist/templates/_shared/notice-overrides/utils-0.5.0-LICENSE +21 -0
  96. package/dist/templates/_shared/third-party-notices.mjs +51 -0
  97. package/dist/templates/binary/synology-app.yaml +7 -0
  98. package/dist/templates/hello-files/compose.yaml +0 -1
  99. package/dist/templates/hello-web/compose.yaml +13 -10
  100. package/dist/templates/hello-web/html/app.js +1 -23
  101. package/dist/templates/hello-web/html/index.html +1 -3
  102. package/dist/templates/hello-web-page/compose.yaml +13 -10
  103. package/dist/templates/hello-web-page/html/app.js +1 -23
  104. package/dist/templates/hello-web-page/html/index.html +1 -3
  105. package/dist/templates/native-go/README.md +324 -0
  106. package/dist/templates/native-go/backend/THIRD_PARTY_NOTICES.txt +59 -0
  107. package/dist/templates/native-go/backend/cmd/app/main.go +49 -0
  108. package/dist/templates/native-go/backend/cmd/dsm-readonly-probe/main_linux.go +46 -0
  109. package/dist/templates/native-go/backend/cmd/helper/main.go +38 -0
  110. package/dist/templates/native-go/backend/go.mod +7 -0
  111. package/dist/templates/native-go/backend/go.sum +4 -0
  112. package/dist/templates/native-go/backend/internal/api/binary.go +154 -0
  113. package/dist/templates/native-go/backend/internal/api/binary_test.go +165 -0
  114. package/dist/templates/native-go/backend/internal/api/errors.go +33 -0
  115. package/dist/templates/native-go/backend/internal/api/registry.go +104 -0
  116. package/dist/templates/native-go/backend/internal/api/registry_test.go +329 -0
  117. package/dist/templates/native-go/backend/internal/api/server.go +159 -0
  118. package/dist/templates/native-go/backend/internal/app/nas_cgi_artifact_test.go +121 -0
  119. package/dist/templates/native-go/backend/internal/app/nas_refusal_test.go +46 -0
  120. package/dist/templates/native-go/backend/internal/app/root_none.go +9 -0
  121. package/dist/templates/native-go/backend/internal/app/routes.go +138 -0
  122. package/dist/templates/native-go/backend/internal/app/routes_test.go +172 -0
  123. package/dist/templates/native-go/backend/internal/dsm/auth.go +118 -0
  124. package/dist/templates/native-go/backend/internal/dsm/auth_test.go +139 -0
  125. package/dist/templates/native-go/backend/internal/dsmprobe/collector_linux.go +335 -0
  126. package/dist/templates/native-go/backend/internal/dsmprobe/collector_linux_test.go +41 -0
  127. package/dist/templates/native-go/backend/internal/dsmprobe/protocol.go +179 -0
  128. package/dist/templates/native-go/backend/internal/dsmprobe/protocol_test.go +29 -0
  129. package/dist/templates/native-go/backend/internal/helper/cohort.go +393 -0
  130. package/dist/templates/native-go/backend/internal/helper/cohort_publication.go +18 -0
  131. package/dist/templates/native-go/backend/internal/helper/cohort_publication_test.go +105 -0
  132. package/dist/templates/native-go/backend/internal/helper/cohort_test.go +372 -0
  133. package/dist/templates/native-go/backend/internal/helper/control.go +424 -0
  134. package/dist/templates/native-go/backend/internal/helper/control_test.go +250 -0
  135. package/dist/templates/native-go/backend/internal/helper/data_contract.go +242 -0
  136. package/dist/templates/native-go/backend/internal/helper/data_contract_test.go +51 -0
  137. package/dist/templates/native-go/backend/internal/helper/data_decode.go +184 -0
  138. package/dist/templates/native-go/backend/internal/helper/data_decode_pointer_test.go +30 -0
  139. package/dist/templates/native-go/backend/internal/helper/data_protocol.go +416 -0
  140. package/dist/templates/native-go/backend/internal/helper/data_protocol_test.go +449 -0
  141. package/dist/templates/native-go/backend/internal/helper/dsm_acl_linux.go +139 -0
  142. package/dist/templates/native-go/backend/internal/helper/dsm_acl_linux_test.go +121 -0
  143. package/dist/templates/native-go/backend/internal/helper/dsm_acl_syscall_linux.go +95 -0
  144. package/dist/templates/native-go/backend/internal/helper/dsm_acl_syscall_linux_test.go +56 -0
  145. package/dist/templates/native-go/backend/internal/helper/dsm_bridge_linux.go +144 -0
  146. package/dist/templates/native-go/backend/internal/helper/dsm_bridge_linux_test.go +89 -0
  147. package/dist/templates/native-go/backend/internal/helper/dsm_home_linux.go +107 -0
  148. package/dist/templates/native-go/backend/internal/helper/dsm_home_linux_test.go +82 -0
  149. package/dist/templates/native-go/backend/internal/helper/dsm_probe_transport_linux.go +151 -0
  150. package/dist/templates/native-go/backend/internal/helper/dsm_probe_transport_linux_test.go +66 -0
  151. package/dist/templates/native-go/backend/internal/helper/grant_authority.go +516 -0
  152. package/dist/templates/native-go/backend/internal/helper/grant_authority_contract.go +88 -0
  153. package/dist/templates/native-go/backend/internal/helper/grant_authority_test.go +510 -0
  154. package/dist/templates/native-go/backend/internal/helper/grant_cohort.go +389 -0
  155. package/dist/templates/native-go/backend/internal/helper/grant_cohort_test.go +239 -0
  156. package/dist/templates/native-go/backend/internal/helper/grant_delivery.go +49 -0
  157. package/dist/templates/native-go/backend/internal/helper/grant_delivery_methods.go +273 -0
  158. package/dist/templates/native-go/backend/internal/helper/grant_delivery_test.go +322 -0
  159. package/dist/templates/native-go/backend/internal/helper/grant_operation_contract.go +47 -0
  160. package/dist/templates/native-go/backend/internal/helper/grant_readonly_test.go +180 -0
  161. package/dist/templates/native-go/backend/internal/helper/grant_repository_linux.go +415 -0
  162. package/dist/templates/native-go/backend/internal/helper/grant_repository_linux_test.go +468 -0
  163. package/dist/templates/native-go/backend/internal/helper/grant_rpc.go +147 -0
  164. package/dist/templates/native-go/backend/internal/helper/grant_rpc_test.go +51 -0
  165. package/dist/templates/native-go/backend/internal/helper/grant_snapshot.go +75 -0
  166. package/dist/templates/native-go/backend/internal/helper/grant_supervisor_linux.go +134 -0
  167. package/dist/templates/native-go/backend/internal/helper/grant_supervisor_linux_test.go +254 -0
  168. package/dist/templates/native-go/backend/internal/helper/lease.go +112 -0
  169. package/dist/templates/native-go/backend/internal/helper/lease_linux.go +44 -0
  170. package/dist/templates/native-go/backend/internal/helper/lease_other.go +8 -0
  171. package/dist/templates/native-go/backend/internal/helper/lifecycle.go +234 -0
  172. package/dist/templates/native-go/backend/internal/helper/lifecycle_test.go +473 -0
  173. package/dist/templates/native-go/backend/internal/helper/managed_pilot.go +284 -0
  174. package/dist/templates/native-go/backend/internal/helper/managed_pilot_repository_linux.go +74 -0
  175. package/dist/templates/native-go/backend/internal/helper/managed_pilot_repository_linux_test.go +40 -0
  176. package/dist/templates/native-go/backend/internal/helper/managed_pilot_test.go +210 -0
  177. package/dist/templates/native-go/backend/internal/helper/nas_shipped_refusal_linux_test.go +97 -0
  178. package/dist/templates/native-go/backend/internal/helper/native_discovery.go +79 -0
  179. package/dist/templates/native-go/backend/internal/helper/native_identity.go +89 -0
  180. package/dist/templates/native-go/backend/internal/helper/native_provider.go +159 -0
  181. package/dist/templates/native-go/backend/internal/helper/native_provider_test.go +421 -0
  182. package/dist/templates/native-go/backend/internal/helper/observation.go +204 -0
  183. package/dist/templates/native-go/backend/internal/helper/observation_health_test.go +115 -0
  184. package/dist/templates/native-go/backend/internal/helper/observation_reload_budget_test.go +117 -0
  185. package/dist/templates/native-go/backend/internal/helper/observation_test.go +196 -0
  186. package/dist/templates/native-go/backend/internal/helper/observer_diagnostic.go +109 -0
  187. package/dist/templates/native-go/backend/internal/helper/observer_diagnostic_linux.go +76 -0
  188. package/dist/templates/native-go/backend/internal/helper/observer_diagnostic_linux_test.go +124 -0
  189. package/dist/templates/native-go/backend/internal/helper/observer_diagnostic_test.go +98 -0
  190. package/dist/templates/native-go/backend/internal/helper/operation_bootstrap_linux.go +193 -0
  191. package/dist/templates/native-go/backend/internal/helper/operation_credentials_linux.go +56 -0
  192. package/dist/templates/native-go/backend/internal/helper/operation_linux.go +480 -0
  193. package/dist/templates/native-go/backend/internal/helper/operation_linux_test.go +528 -0
  194. package/dist/templates/native-go/backend/internal/helper/peer_linux.go +44 -0
  195. package/dist/templates/native-go/backend/internal/helper/peer_other.go +7 -0
  196. package/dist/templates/native-go/backend/internal/helper/process_linux.go +177 -0
  197. package/dist/templates/native-go/backend/internal/helper/process_other.go +5 -0
  198. package/dist/templates/native-go/backend/internal/helper/publication_test.go +178 -0
  199. package/dist/templates/native-go/backend/internal/helper/read_stream_cohort_linux_test.go +156 -0
  200. package/dist/templates/native-go/backend/internal/helper/read_transfer.go +40 -0
  201. package/dist/templates/native-go/backend/internal/helper/read_transfer_linux.go +109 -0
  202. package/dist/templates/native-go/backend/internal/helper/read_transfer_linux_test.go +118 -0
  203. package/dist/templates/native-go/backend/internal/helper/read_transfer_test.go +177 -0
  204. package/dist/templates/native-go/backend/internal/helper/readonly.go +105 -0
  205. package/dist/templates/native-go/backend/internal/helper/readonly_admission.go +85 -0
  206. package/dist/templates/native-go/backend/internal/helper/readonly_cohort_linux_test.go +253 -0
  207. package/dist/templates/native-go/backend/internal/helper/readonly_linux_test.go +378 -0
  208. package/dist/templates/native-go/backend/internal/helper/readonly_mount_linux.go +65 -0
  209. package/dist/templates/native-go/backend/internal/helper/readonly_mount_proxy_linux.go +113 -0
  210. package/dist/templates/native-go/backend/internal/helper/readonly_operations_linux.go +168 -0
  211. package/dist/templates/native-go/backend/internal/helper/readonly_resolver_linux.go +241 -0
  212. package/dist/templates/native-go/backend/internal/helper/readonly_test.go +40 -0
  213. package/dist/templates/native-go/backend/internal/helper/relaxed_identity.go +252 -0
  214. package/dist/templates/native-go/backend/internal/helper/relaxed_identity_contract.go +105 -0
  215. package/dist/templates/native-go/backend/internal/helper/relaxed_identity_test.go +406 -0
  216. package/dist/templates/native-go/backend/internal/helper/relaxed_invalidation.go +200 -0
  217. package/dist/templates/native-go/backend/internal/helper/repair.go +132 -0
  218. package/dist/templates/native-go/backend/internal/helper/repair_test.go +271 -0
  219. package/dist/templates/native-go/backend/internal/helper/s1r_actor_acl_linux_test.go +303 -0
  220. package/dist/templates/native-go/backend/internal/helper/s1r_actor_fixture_linux_test.go +184 -0
  221. package/dist/templates/native-go/backend/internal/helper/s1r_actor_races_linux_test.go +231 -0
  222. package/dist/templates/native-go/backend/internal/helper/s1r_fixture_contract_linux_test.go +18 -0
  223. package/dist/templates/native-go/backend/internal/helper/server_linux.go +124 -0
  224. package/dist/templates/native-go/backend/internal/helper/status.go +334 -0
  225. package/dist/templates/native-go/backend/internal/helper/status_test.go +288 -0
  226. package/dist/templates/native-go/backend/internal/helper/supervision.go +107 -0
  227. package/dist/templates/native-go/backend/internal/helper/supervision_test.go +124 -0
  228. package/dist/templates/native-go/backend/internal/helper/supervisor_frame.go +76 -0
  229. package/dist/templates/native-go/backend/internal/helper/supervisor_frame_linux_test.go +69 -0
  230. package/dist/templates/native-go/backend/internal/helper/supervisor_frame_test.go +107 -0
  231. package/dist/templates/native-go/backend/internal/helper/supervisor_linux.go +363 -0
  232. package/dist/templates/native-go/backend/internal/helper/supervisor_linux_test.go +913 -0
  233. package/dist/templates/native-go/backend/internal/helper/supervisor_socket_eof_test.go +74 -0
  234. package/dist/templates/native-go/backend/internal/helper/supervisor_socket_test.go +45 -0
  235. package/dist/templates/native-go/backend/internal/helper/testdata/protocol2/create.json +23 -0
  236. package/dist/templates/native-go/backend/internal/helper/testdata/protocol2/frames.json +67 -0
  237. package/dist/templates/native-go/backend/internal/helper/testdata/protocol2/grant-store.json +52 -0
  238. package/dist/templates/native-go/backend/internal/helper/testdata/protocol2/intent.json +20 -0
  239. package/dist/templates/native-go/backend/internal/helper/testdata/protocol2/list.json +20 -0
  240. package/dist/templates/native-go/backend/internal/helper/testdata/protocol2/publish.json +20 -0
  241. package/dist/templates/native-go/backend/internal/helper/testdata/protocol2/read.json +22 -0
  242. package/dist/templates/native-go/backend/internal/helper/testdata/protocol2/stat.json +22 -0
  243. package/dist/templates/native-go/backend/internal/helper/testdata/protocol2/write-stream.json +22 -0
  244. package/dist/templates/native-go/backend/internal/helper/unit_connection.go +75 -0
  245. package/dist/templates/native-go/backend/internal/helper/unit_connection_linux_test.go +135 -0
  246. package/dist/templates/native-go/backend/internal/helper/unit_connection_test.go +133 -0
  247. package/dist/templates/native-go/backend/internal/helper/unit_frame_test.go +32 -0
  248. package/dist/templates/native-go/backend/internal/helper/unit_linux.go +364 -0
  249. package/dist/templates/native-go/backend/internal/helper/unit_linux_test.go +46 -0
  250. package/dist/templates/native-go/backend/internal/helper/unit_mechanisms_linux_test.go +217 -0
  251. package/dist/templates/native-go/backend/internal/helper/unit_padding_linux_test.go +178 -0
  252. package/dist/templates/native-go/backend/internal/helper/unit_query_linux.go +111 -0
  253. package/dist/templates/native-go/backend/internal/helper/unit_reload_linux_test.go +372 -0
  254. package/dist/templates/native-go/backend/internal/helper/unit_reload_sequence_linux_test.go +232 -0
  255. package/dist/templates/native-go/backend/internal/helper/write.go +77 -0
  256. package/dist/templates/native-go/backend/internal/helper/write_admission.go +260 -0
  257. package/dist/templates/native-go/backend/internal/helper/write_admission_test.go +135 -0
  258. package/dist/templates/native-go/backend/internal/helper/write_cohort_linux_test.go +218 -0
  259. package/dist/templates/native-go/backend/internal/helper/write_files_linux.go +202 -0
  260. package/dist/templates/native-go/backend/internal/helper/write_files_linux_test.go +199 -0
  261. package/dist/templates/native-go/backend/internal/helper/write_intent_linux.go +116 -0
  262. package/dist/templates/native-go/backend/internal/helper/write_intent_linux_test.go +74 -0
  263. package/dist/templates/native-go/backend/internal/helper/write_operation_linux.go +245 -0
  264. package/dist/templates/native-go/backend/internal/helper/write_test.go +53 -0
  265. package/dist/templates/native-go/dsm-package.yaml +58 -0
  266. package/dist/templates/native-go/gitignore +1 -0
  267. package/dist/templates/native-go/i18n/glossary.json +662 -0
  268. package/dist/templates/native-go/i18n/messages/de.json +28 -0
  269. package/dist/templates/native-go/i18n/messages/en.json +28 -0
  270. package/dist/templates/native-go/i18n/messages/es.json +28 -0
  271. package/dist/templates/native-go/i18n/messages/fr.json +28 -0
  272. package/dist/templates/native-go/i18n/messages/it.json +28 -0
  273. package/dist/templates/native-go/i18n/messages/ja.json +28 -0
  274. package/dist/templates/native-go/i18n/messages/ko.json +28 -0
  275. package/dist/templates/native-go/i18n/messages/zh-CN.json +28 -0
  276. package/dist/templates/native-go/i18n/messages/zh-TW.json +28 -0
  277. package/dist/templates/native-go/ui/app.css +35 -0
  278. package/dist/templates/native-go/ui/app.js +101 -0
  279. package/dist/templates/native-go-better-auth/backend/internal/app/identity.go +208 -0
  280. package/dist/templates/native-go-better-auth/backend/internal/app/identity_test.go +113 -0
  281. package/dist/templates/native-go-better-auth/node/app.mjs +72 -0
  282. package/dist/templates/native-go-better-auth/node/build.mjs +4 -0
  283. package/dist/templates/native-go-better-auth/node/package-lock.json +862 -0
  284. package/dist/templates/native-go-better-auth/node/package.json +1 -0
  285. package/dist/templates/native-go-better-auth/node/test/auth.test.mjs +31 -0
  286. package/dist/templates/native-go-integration/backend/internal/app/identity_none.go +6 -0
  287. package/dist/templates/native-go-integration/backend/internal/app/personal.go +203 -0
  288. package/dist/templates/native-go-integration/backend/internal/app/personal_test.go +119 -0
  289. package/dist/templates/native-go-root/backend/internal/app/root.go +107 -0
  290. package/dist/templates/native-go-root/backend/internal/app/root_test.go +124 -0
  291. package/dist/templates/native-go-root/root/whoami.sh +6 -0
  292. package/dist/templates/native-go-vue/README.md +224 -0
  293. package/dist/templates/native-go-vue/frontend/DESIGN.md +78 -0
  294. package/dist/templates/native-go-vue/frontend/package-lock.json +2410 -0
  295. package/dist/templates/native-go-vue/frontend/package.json +6 -0
  296. package/dist/templates/native-go-vue/frontend/src/App.vue +159 -0
  297. package/dist/templates/native-go-vue/frontend/src/context.ts +56 -0
  298. package/dist/templates/native-go-vue/frontend/src/main.ts +29 -0
  299. package/dist/templates/native-go-vue/frontend/src/nas/NasGrantSettings.vue +74 -0
  300. package/dist/templates/native-go-vue/frontend/src/nas/NasPathPicker.vue +106 -0
  301. package/dist/templates/native-go-vue/frontend/src/nas/NasUnavailable.vue +20 -0
  302. package/dist/templates/native-go-vue/frontend/src/nas/i18n/de.json +74 -0
  303. package/dist/templates/native-go-vue/frontend/src/nas/i18n/en.json +74 -0
  304. package/dist/templates/native-go-vue/frontend/src/nas/i18n/es.json +74 -0
  305. package/dist/templates/native-go-vue/frontend/src/nas/i18n/fr.json +74 -0
  306. package/dist/templates/native-go-vue/frontend/src/nas/i18n/it.json +74 -0
  307. package/dist/templates/native-go-vue/frontend/src/nas/i18n/ja.json +74 -0
  308. package/dist/templates/native-go-vue/frontend/src/nas/i18n/ko.json +74 -0
  309. package/dist/templates/native-go-vue/frontend/src/nas/i18n/zh-CN.json +74 -0
  310. package/dist/templates/native-go-vue/frontend/src/nas/i18n/zh-TW.json +74 -0
  311. package/dist/templates/native-go-vue/frontend/src/nas/i18n.ts +38 -0
  312. package/dist/templates/native-go-vue/frontend/src/nas/mock-provider.ts +119 -0
  313. package/dist/templates/native-go-vue/frontend/src/nas/provider.ts +59 -0
  314. package/dist/templates/native-go-vue/frontend/src/nas/use-request.ts +27 -0
  315. package/dist/templates/native-go-vue/frontend/src/style.css +31 -0
  316. package/dist/templates/native-go-vue/frontend/test/apps.test.ts +190 -0
  317. package/dist/templates/native-go-vue/frontend/test/nas-provider.test.ts +81 -0
  318. package/dist/templates/native-go-vue/frontend/test/nas-request.test.ts +21 -0
  319. package/dist/templates/native-go-vue/frontend/test/nas-ui.test.ts +261 -0
  320. package/dist/templates/native-go-vue/frontend/tsconfig.json +1 -0
  321. package/dist/templates/native-go-vue/frontend/vite.config.ts +10 -0
  322. package/dist/templates/native-go-vue/gitignore +2 -0
  323. package/dist/types.d.ts +1 -1
  324. package/dist/validate.js +11 -7
  325. package/package.json +5 -8
  326. package/schema/synology-app.schema.json +36 -37
  327. package/skills/SKILL.md +4 -48
  328. package/skills/reference/create.md +11 -83
  329. package/skills/reference/deploy.md +7 -78
  330. package/skills/reference/diagnose.md +4 -101
  331. package/skills/reference/files.md +5 -41
  332. package/skills/reference/identity.md +3 -29
  333. package/skills/reference/wrap.md +0 -2
  334. package/templates/_daemon/fixture_linux_test.go +15 -0
  335. package/templates/_daemon/fixture_other_test.go +7 -0
  336. package/templates/_daemon/go.mod +3 -0
  337. package/templates/_daemon/main.go +608 -0
  338. package/templates/_daemon/main_test.go +242 -0
  339. package/templates/_daemon/process_linux.go +55 -0
  340. package/templates/_daemon/process_linux_test.go +161 -0
  341. package/templates/_daemon/process_other.go +14 -0
  342. package/templates/_daemon/testdata/child.go +41 -0
  343. package/templates/_shared/GO-LICENSE +27 -0
  344. package/templates/_shared/GO-PATENTS +22 -0
  345. package/templates/_shared/LICENSES/TEMPLATE.txt +21 -0
  346. package/templates/_shared/notice-overrides/index.json +14 -0
  347. package/templates/_shared/notice-overrides/utils-0.4.2-LICENSE +21 -0
  348. package/templates/_shared/notice-overrides/utils-0.5.0-LICENSE +21 -0
  349. package/templates/_shared/third-party-notices.mjs +51 -0
  350. package/templates/binary/synology-app.yaml +7 -0
  351. package/templates/hello-files/compose.yaml +0 -1
  352. package/templates/hello-web/compose.yaml +13 -10
  353. package/templates/hello-web/html/app.js +1 -23
  354. package/templates/hello-web/html/index.html +1 -3
  355. package/templates/hello-web-page/compose.yaml +13 -10
  356. package/templates/hello-web-page/html/app.js +1 -23
  357. package/templates/hello-web-page/html/index.html +1 -3
  358. package/templates/native-go/README.md +324 -0
  359. package/templates/native-go/backend/THIRD_PARTY_NOTICES.txt +59 -0
  360. package/templates/native-go/backend/cmd/app/main.go +49 -0
  361. package/templates/native-go/backend/cmd/dsm-readonly-probe/main_linux.go +46 -0
  362. package/templates/native-go/backend/cmd/helper/main.go +38 -0
  363. package/templates/native-go/backend/go.mod +7 -0
  364. package/templates/native-go/backend/go.sum +4 -0
  365. package/templates/native-go/backend/internal/api/binary.go +154 -0
  366. package/templates/native-go/backend/internal/api/binary_test.go +165 -0
  367. package/templates/native-go/backend/internal/api/errors.go +33 -0
  368. package/templates/native-go/backend/internal/api/registry.go +104 -0
  369. package/templates/native-go/backend/internal/api/registry_test.go +329 -0
  370. package/templates/native-go/backend/internal/api/server.go +159 -0
  371. package/templates/native-go/backend/internal/app/nas_cgi_artifact_test.go +121 -0
  372. package/templates/native-go/backend/internal/app/nas_refusal_test.go +46 -0
  373. package/templates/native-go/backend/internal/app/root_none.go +9 -0
  374. package/templates/native-go/backend/internal/app/routes.go +138 -0
  375. package/templates/native-go/backend/internal/app/routes_test.go +172 -0
  376. package/templates/native-go/backend/internal/dsm/auth.go +118 -0
  377. package/templates/native-go/backend/internal/dsm/auth_test.go +139 -0
  378. package/templates/native-go/backend/internal/dsmprobe/collector_linux.go +335 -0
  379. package/templates/native-go/backend/internal/dsmprobe/collector_linux_test.go +41 -0
  380. package/templates/native-go/backend/internal/dsmprobe/protocol.go +179 -0
  381. package/templates/native-go/backend/internal/dsmprobe/protocol_test.go +29 -0
  382. package/templates/native-go/backend/internal/helper/cohort.go +393 -0
  383. package/templates/native-go/backend/internal/helper/cohort_publication.go +18 -0
  384. package/templates/native-go/backend/internal/helper/cohort_publication_test.go +105 -0
  385. package/templates/native-go/backend/internal/helper/cohort_test.go +372 -0
  386. package/templates/native-go/backend/internal/helper/control.go +424 -0
  387. package/templates/native-go/backend/internal/helper/control_test.go +250 -0
  388. package/templates/native-go/backend/internal/helper/data_contract.go +242 -0
  389. package/templates/native-go/backend/internal/helper/data_contract_test.go +51 -0
  390. package/templates/native-go/backend/internal/helper/data_decode.go +184 -0
  391. package/templates/native-go/backend/internal/helper/data_decode_pointer_test.go +30 -0
  392. package/templates/native-go/backend/internal/helper/data_protocol.go +416 -0
  393. package/templates/native-go/backend/internal/helper/data_protocol_test.go +449 -0
  394. package/templates/native-go/backend/internal/helper/dsm_acl_linux.go +139 -0
  395. package/templates/native-go/backend/internal/helper/dsm_acl_linux_test.go +121 -0
  396. package/templates/native-go/backend/internal/helper/dsm_acl_syscall_linux.go +95 -0
  397. package/templates/native-go/backend/internal/helper/dsm_acl_syscall_linux_test.go +56 -0
  398. package/templates/native-go/backend/internal/helper/dsm_bridge_linux.go +144 -0
  399. package/templates/native-go/backend/internal/helper/dsm_bridge_linux_test.go +89 -0
  400. package/templates/native-go/backend/internal/helper/dsm_home_linux.go +107 -0
  401. package/templates/native-go/backend/internal/helper/dsm_home_linux_test.go +82 -0
  402. package/templates/native-go/backend/internal/helper/dsm_probe_transport_linux.go +151 -0
  403. package/templates/native-go/backend/internal/helper/dsm_probe_transport_linux_test.go +66 -0
  404. package/templates/native-go/backend/internal/helper/grant_authority.go +516 -0
  405. package/templates/native-go/backend/internal/helper/grant_authority_contract.go +88 -0
  406. package/templates/native-go/backend/internal/helper/grant_authority_test.go +510 -0
  407. package/templates/native-go/backend/internal/helper/grant_cohort.go +389 -0
  408. package/templates/native-go/backend/internal/helper/grant_cohort_test.go +239 -0
  409. package/templates/native-go/backend/internal/helper/grant_delivery.go +49 -0
  410. package/templates/native-go/backend/internal/helper/grant_delivery_methods.go +273 -0
  411. package/templates/native-go/backend/internal/helper/grant_delivery_test.go +322 -0
  412. package/templates/native-go/backend/internal/helper/grant_operation_contract.go +47 -0
  413. package/templates/native-go/backend/internal/helper/grant_readonly_test.go +180 -0
  414. package/templates/native-go/backend/internal/helper/grant_repository_linux.go +415 -0
  415. package/templates/native-go/backend/internal/helper/grant_repository_linux_test.go +468 -0
  416. package/templates/native-go/backend/internal/helper/grant_rpc.go +147 -0
  417. package/templates/native-go/backend/internal/helper/grant_rpc_test.go +51 -0
  418. package/templates/native-go/backend/internal/helper/grant_snapshot.go +75 -0
  419. package/templates/native-go/backend/internal/helper/grant_supervisor_linux.go +134 -0
  420. package/templates/native-go/backend/internal/helper/grant_supervisor_linux_test.go +254 -0
  421. package/templates/native-go/backend/internal/helper/lease.go +112 -0
  422. package/templates/native-go/backend/internal/helper/lease_linux.go +44 -0
  423. package/templates/native-go/backend/internal/helper/lease_other.go +8 -0
  424. package/templates/native-go/backend/internal/helper/lifecycle.go +234 -0
  425. package/templates/native-go/backend/internal/helper/lifecycle_test.go +473 -0
  426. package/templates/native-go/backend/internal/helper/managed_pilot.go +284 -0
  427. package/templates/native-go/backend/internal/helper/managed_pilot_repository_linux.go +74 -0
  428. package/templates/native-go/backend/internal/helper/managed_pilot_repository_linux_test.go +40 -0
  429. package/templates/native-go/backend/internal/helper/managed_pilot_test.go +210 -0
  430. package/templates/native-go/backend/internal/helper/nas_shipped_refusal_linux_test.go +97 -0
  431. package/templates/native-go/backend/internal/helper/native_discovery.go +79 -0
  432. package/templates/native-go/backend/internal/helper/native_identity.go +89 -0
  433. package/templates/native-go/backend/internal/helper/native_provider.go +159 -0
  434. package/templates/native-go/backend/internal/helper/native_provider_test.go +421 -0
  435. package/templates/native-go/backend/internal/helper/observation.go +204 -0
  436. package/templates/native-go/backend/internal/helper/observation_health_test.go +115 -0
  437. package/templates/native-go/backend/internal/helper/observation_reload_budget_test.go +117 -0
  438. package/templates/native-go/backend/internal/helper/observation_test.go +196 -0
  439. package/templates/native-go/backend/internal/helper/observer_diagnostic.go +109 -0
  440. package/templates/native-go/backend/internal/helper/observer_diagnostic_linux.go +76 -0
  441. package/templates/native-go/backend/internal/helper/observer_diagnostic_linux_test.go +124 -0
  442. package/templates/native-go/backend/internal/helper/observer_diagnostic_test.go +98 -0
  443. package/templates/native-go/backend/internal/helper/operation_bootstrap_linux.go +193 -0
  444. package/templates/native-go/backend/internal/helper/operation_credentials_linux.go +56 -0
  445. package/templates/native-go/backend/internal/helper/operation_linux.go +480 -0
  446. package/templates/native-go/backend/internal/helper/operation_linux_test.go +528 -0
  447. package/templates/native-go/backend/internal/helper/peer_linux.go +44 -0
  448. package/templates/native-go/backend/internal/helper/peer_other.go +7 -0
  449. package/templates/native-go/backend/internal/helper/process_linux.go +177 -0
  450. package/templates/native-go/backend/internal/helper/process_other.go +5 -0
  451. package/templates/native-go/backend/internal/helper/publication_test.go +178 -0
  452. package/templates/native-go/backend/internal/helper/read_stream_cohort_linux_test.go +156 -0
  453. package/templates/native-go/backend/internal/helper/read_transfer.go +40 -0
  454. package/templates/native-go/backend/internal/helper/read_transfer_linux.go +109 -0
  455. package/templates/native-go/backend/internal/helper/read_transfer_linux_test.go +118 -0
  456. package/templates/native-go/backend/internal/helper/read_transfer_test.go +177 -0
  457. package/templates/native-go/backend/internal/helper/readonly.go +105 -0
  458. package/templates/native-go/backend/internal/helper/readonly_admission.go +85 -0
  459. package/templates/native-go/backend/internal/helper/readonly_cohort_linux_test.go +253 -0
  460. package/templates/native-go/backend/internal/helper/readonly_linux_test.go +378 -0
  461. package/templates/native-go/backend/internal/helper/readonly_mount_linux.go +65 -0
  462. package/templates/native-go/backend/internal/helper/readonly_mount_proxy_linux.go +113 -0
  463. package/templates/native-go/backend/internal/helper/readonly_operations_linux.go +168 -0
  464. package/templates/native-go/backend/internal/helper/readonly_resolver_linux.go +241 -0
  465. package/templates/native-go/backend/internal/helper/readonly_test.go +40 -0
  466. package/templates/native-go/backend/internal/helper/relaxed_identity.go +252 -0
  467. package/templates/native-go/backend/internal/helper/relaxed_identity_contract.go +105 -0
  468. package/templates/native-go/backend/internal/helper/relaxed_identity_test.go +406 -0
  469. package/templates/native-go/backend/internal/helper/relaxed_invalidation.go +200 -0
  470. package/templates/native-go/backend/internal/helper/repair.go +132 -0
  471. package/templates/native-go/backend/internal/helper/repair_test.go +271 -0
  472. package/templates/native-go/backend/internal/helper/s1r_actor_acl_linux_test.go +303 -0
  473. package/templates/native-go/backend/internal/helper/s1r_actor_fixture_linux_test.go +184 -0
  474. package/templates/native-go/backend/internal/helper/s1r_actor_races_linux_test.go +231 -0
  475. package/templates/native-go/backend/internal/helper/s1r_fixture_contract_linux_test.go +18 -0
  476. package/templates/native-go/backend/internal/helper/server_linux.go +124 -0
  477. package/templates/native-go/backend/internal/helper/status.go +334 -0
  478. package/templates/native-go/backend/internal/helper/status_test.go +288 -0
  479. package/templates/native-go/backend/internal/helper/supervision.go +107 -0
  480. package/templates/native-go/backend/internal/helper/supervision_test.go +124 -0
  481. package/templates/native-go/backend/internal/helper/supervisor_frame.go +76 -0
  482. package/templates/native-go/backend/internal/helper/supervisor_frame_linux_test.go +69 -0
  483. package/templates/native-go/backend/internal/helper/supervisor_frame_test.go +107 -0
  484. package/templates/native-go/backend/internal/helper/supervisor_linux.go +363 -0
  485. package/templates/native-go/backend/internal/helper/supervisor_linux_test.go +913 -0
  486. package/templates/native-go/backend/internal/helper/supervisor_socket_eof_test.go +74 -0
  487. package/templates/native-go/backend/internal/helper/supervisor_socket_test.go +45 -0
  488. package/templates/native-go/backend/internal/helper/testdata/protocol2/create.json +23 -0
  489. package/templates/native-go/backend/internal/helper/testdata/protocol2/frames.json +67 -0
  490. package/templates/native-go/backend/internal/helper/testdata/protocol2/grant-store.json +52 -0
  491. package/templates/native-go/backend/internal/helper/testdata/protocol2/intent.json +20 -0
  492. package/templates/native-go/backend/internal/helper/testdata/protocol2/list.json +20 -0
  493. package/templates/native-go/backend/internal/helper/testdata/protocol2/publish.json +20 -0
  494. package/templates/native-go/backend/internal/helper/testdata/protocol2/read.json +22 -0
  495. package/templates/native-go/backend/internal/helper/testdata/protocol2/stat.json +22 -0
  496. package/templates/native-go/backend/internal/helper/testdata/protocol2/write-stream.json +22 -0
  497. package/templates/native-go/backend/internal/helper/unit_connection.go +75 -0
  498. package/templates/native-go/backend/internal/helper/unit_connection_linux_test.go +135 -0
  499. package/templates/native-go/backend/internal/helper/unit_connection_test.go +133 -0
  500. package/templates/native-go/backend/internal/helper/unit_frame_test.go +32 -0
  501. package/templates/native-go/backend/internal/helper/unit_linux.go +364 -0
  502. package/templates/native-go/backend/internal/helper/unit_linux_test.go +46 -0
  503. package/templates/native-go/backend/internal/helper/unit_mechanisms_linux_test.go +217 -0
  504. package/templates/native-go/backend/internal/helper/unit_padding_linux_test.go +178 -0
  505. package/templates/native-go/backend/internal/helper/unit_query_linux.go +111 -0
  506. package/templates/native-go/backend/internal/helper/unit_reload_linux_test.go +372 -0
  507. package/templates/native-go/backend/internal/helper/unit_reload_sequence_linux_test.go +232 -0
  508. package/templates/native-go/backend/internal/helper/write.go +77 -0
  509. package/templates/native-go/backend/internal/helper/write_admission.go +260 -0
  510. package/templates/native-go/backend/internal/helper/write_admission_test.go +135 -0
  511. package/templates/native-go/backend/internal/helper/write_cohort_linux_test.go +218 -0
  512. package/templates/native-go/backend/internal/helper/write_files_linux.go +202 -0
  513. package/templates/native-go/backend/internal/helper/write_files_linux_test.go +199 -0
  514. package/templates/native-go/backend/internal/helper/write_intent_linux.go +116 -0
  515. package/templates/native-go/backend/internal/helper/write_intent_linux_test.go +74 -0
  516. package/templates/native-go/backend/internal/helper/write_operation_linux.go +245 -0
  517. package/templates/native-go/backend/internal/helper/write_test.go +53 -0
  518. package/templates/native-go/dsm-package.yaml +58 -0
  519. package/templates/native-go/gitignore +1 -0
  520. package/templates/native-go/i18n/glossary.json +662 -0
  521. package/templates/native-go/i18n/messages/de.json +28 -0
  522. package/templates/native-go/i18n/messages/en.json +28 -0
  523. package/templates/native-go/i18n/messages/es.json +28 -0
  524. package/templates/native-go/i18n/messages/fr.json +28 -0
  525. package/templates/native-go/i18n/messages/it.json +28 -0
  526. package/templates/native-go/i18n/messages/ja.json +28 -0
  527. package/templates/native-go/i18n/messages/ko.json +28 -0
  528. package/templates/native-go/i18n/messages/zh-CN.json +28 -0
  529. package/templates/native-go/i18n/messages/zh-TW.json +28 -0
  530. package/templates/native-go/ui/app.css +35 -0
  531. package/templates/native-go/ui/app.js +101 -0
  532. package/templates/native-go-better-auth/backend/internal/app/identity.go +208 -0
  533. package/templates/native-go-better-auth/backend/internal/app/identity_test.go +113 -0
  534. package/templates/native-go-better-auth/node/app.mjs +72 -0
  535. package/templates/native-go-better-auth/node/build.mjs +4 -0
  536. package/templates/native-go-better-auth/node/package-lock.json +862 -0
  537. package/templates/native-go-better-auth/node/package.json +1 -0
  538. package/templates/native-go-better-auth/node/test/auth.test.mjs +31 -0
  539. package/templates/native-go-integration/backend/internal/app/identity_none.go +6 -0
  540. package/templates/native-go-integration/backend/internal/app/personal.go +203 -0
  541. package/templates/native-go-integration/backend/internal/app/personal_test.go +119 -0
  542. package/templates/native-go-root/backend/internal/app/root.go +107 -0
  543. package/templates/native-go-root/backend/internal/app/root_test.go +124 -0
  544. package/templates/native-go-root/root/whoami.sh +6 -0
  545. package/templates/native-go-vue/README.md +224 -0
  546. package/templates/native-go-vue/frontend/DESIGN.md +78 -0
  547. package/templates/native-go-vue/frontend/package-lock.json +2410 -0
  548. package/templates/native-go-vue/frontend/package.json +6 -0
  549. package/templates/native-go-vue/frontend/src/App.vue +159 -0
  550. package/templates/native-go-vue/frontend/src/context.ts +56 -0
  551. package/templates/native-go-vue/frontend/src/main.ts +29 -0
  552. package/templates/native-go-vue/frontend/src/nas/NasGrantSettings.vue +74 -0
  553. package/templates/native-go-vue/frontend/src/nas/NasPathPicker.vue +106 -0
  554. package/templates/native-go-vue/frontend/src/nas/NasUnavailable.vue +20 -0
  555. package/templates/native-go-vue/frontend/src/nas/i18n/de.json +74 -0
  556. package/templates/native-go-vue/frontend/src/nas/i18n/en.json +74 -0
  557. package/templates/native-go-vue/frontend/src/nas/i18n/es.json +74 -0
  558. package/templates/native-go-vue/frontend/src/nas/i18n/fr.json +74 -0
  559. package/templates/native-go-vue/frontend/src/nas/i18n/it.json +74 -0
  560. package/templates/native-go-vue/frontend/src/nas/i18n/ja.json +74 -0
  561. package/templates/native-go-vue/frontend/src/nas/i18n/ko.json +74 -0
  562. package/templates/native-go-vue/frontend/src/nas/i18n/zh-CN.json +74 -0
  563. package/templates/native-go-vue/frontend/src/nas/i18n/zh-TW.json +74 -0
  564. package/templates/native-go-vue/frontend/src/nas/i18n.ts +38 -0
  565. package/templates/native-go-vue/frontend/src/nas/mock-provider.ts +119 -0
  566. package/templates/native-go-vue/frontend/src/nas/provider.ts +59 -0
  567. package/templates/native-go-vue/frontend/src/nas/use-request.ts +27 -0
  568. package/templates/native-go-vue/frontend/src/style.css +31 -0
  569. package/templates/native-go-vue/frontend/test/apps.test.ts +190 -0
  570. package/templates/native-go-vue/frontend/test/nas-provider.test.ts +81 -0
  571. package/templates/native-go-vue/frontend/test/nas-request.test.ts +21 -0
  572. package/templates/native-go-vue/frontend/test/nas-ui.test.ts +261 -0
  573. package/templates/native-go-vue/frontend/tsconfig.json +1 -0
  574. package/templates/native-go-vue/frontend/vite.config.ts +10 -0
  575. package/templates/native-go-vue/gitignore +2 -0
  576. package/dist/attestation/app-package.d.ts +0 -86
  577. package/dist/attestation/app-package.js +0 -206
  578. package/dist/attestation/install-on-host.d.ts +0 -14
  579. package/dist/attestation/install-on-host.js +0 -52
  580. package/dist/attestation/keyring.d.ts +0 -21
  581. package/dist/attestation/keyring.js +0 -168
  582. package/dist/attestation/platform-service.d.ts +0 -70
  583. package/dist/attestation/platform-service.js +0 -250
  584. package/dist/build-spk/broker-glue.d.ts +0 -16
  585. package/dist/build-spk/broker-glue.js +0 -40
  586. package/dist/deploy/catalog-publish.d.ts +0 -3
  587. package/dist/deploy/catalog-publish.js +0 -7
  588. package/dist/doctor.d.ts +0 -22
  589. package/dist/doctor.js +0 -822
  590. package/dist/error-collector.d.ts +0 -2
  591. package/dist/error-collector.js +0 -46
  592. package/dist/host/broker-paths.d.ts +0 -1
  593. package/dist/host/broker-paths.js +0 -1
  594. package/dist/host/broker-upgrade-preflight.d.ts +0 -61
  595. package/dist/host/broker-upgrade-preflight.js +0 -156
  596. package/dist/host/digests.d.ts +0 -5
  597. package/dist/host/digests.js +0 -63
  598. package/dist/host/fake-nas.d.ts +0 -49
  599. package/dist/host/fake-nas.js +0 -193
  600. package/dist/mock-broker/bootstrap.d.ts +0 -2
  601. package/dist/mock-broker/bootstrap.js +0 -8
  602. package/dist/mock-broker/files.d.ts +0 -60
  603. package/dist/mock-broker/files.js +0 -408
  604. package/dist/mock-broker/oidc.d.ts +0 -31
  605. package/dist/mock-broker/oidc.js +0 -161
  606. package/dist/mock-broker/path.d.ts +0 -9
  607. package/dist/mock-broker/path.js +0 -50
  608. package/dist/mock-broker/server.d.ts +0 -19
  609. package/dist/mock-broker/server.js +0 -350
  610. package/dist/publish/build-ledger.d.ts +0 -22
  611. package/dist/publish/build-ledger.js +0 -26
  612. package/dist/publish/community-path.d.ts +0 -6
  613. package/dist/publish/community-path.js +0 -41
  614. package/dist/publish/curated-release.d.ts +0 -78
  615. package/dist/publish/curated-release.js +0 -883
  616. package/dist/publish/file-build-ledger.d.ts +0 -18
  617. package/dist/publish/file-build-ledger.js +0 -268
  618. package/dist/publish/github-pr.d.ts +0 -25
  619. package/dist/publish/github-pr.js +0 -85
  620. package/dist/publish/github-repo.d.ts +0 -8
  621. package/dist/publish/github-repo.js +0 -21
  622. package/dist/publish/platform-service-release.d.ts +0 -60
  623. package/dist/publish/platform-service-release.js +0 -333
  624. package/dist/publish/preflight.d.ts +0 -24
  625. package/dist/publish/preflight.js +0 -138
  626. package/dist/publish/publish.d.ts +0 -27
  627. package/dist/publish/publish.js +0 -136
  628. package/dist/publish/sync-definition.d.ts +0 -4
  629. package/dist/publish/sync-definition.js +0 -48
  630. package/dist/release-bin.d.ts +0 -2
  631. package/dist/release-bin.js +0 -23
  632. package/dist/templates/hello-web/html/sdk.js +0 -68
  633. package/dist/templates/hello-web-page/html/sdk.js +0 -68
  634. package/dist/templates/native/synology-app.yaml +0 -7
  635. package/dist/test-host.d.ts +0 -15
  636. package/dist/test-host.js +0 -37
  637. package/templates/hello-web/html/sdk.js +0 -68
  638. package/templates/hello-web-page/html/sdk.js +0 -68
  639. package/templates/native/synology-app.yaml +0 -7
  640. /package/dist/templates/{native → binary}/native.yaml +0 -0
  641. /package/templates/{native → binary}/native.yaml +0 -0
@@ -1,2 +0,0 @@
1
- export declare function extractReferencedErrorCodes(srcDirectory: string): Set<string>;
2
- export declare function extractAllStringLiterals(srcDirectory: string): Set<string>;
@@ -1,46 +0,0 @@
1
- import { readFileSync, readdirSync, statSync } from "node:fs";
2
- import { join } from "node:path";
3
- import { ERROR_REGISTRY } from "../src/error-registry.js";
4
- function getAllTsFiles(dir, excludeDirs = []) {
5
- const files = [];
6
- for (const entry of readdirSync(dir)) {
7
- const fullPath = join(dir, entry);
8
- if (statSync(fullPath).isDirectory()) {
9
- if (!excludeDirs.includes(entry)) {
10
- files.push(...getAllTsFiles(fullPath, excludeDirs));
11
- }
12
- }
13
- else if (fullPath.endsWith(".ts")) {
14
- files.push(fullPath);
15
- }
16
- }
17
- return files;
18
- }
19
- export function extractReferencedErrorCodes(srcDirectory) {
20
- const tsFiles = getAllTsFiles(srcDirectory, ["mock-broker"]).filter((f) => !f.endsWith("error-registry.ts"));
21
- const referenced = new Set();
22
- for (const file of tsFiles) {
23
- const content = readFileSync(file, "utf8");
24
- for (const code of Object.keys(ERROR_REGISTRY)) {
25
- // Check if `code` appears as a string literal or identifier in the file
26
- if (content.includes(`"${code}"`) || content.includes(`'${code}'`) || content.includes(`\`${code}\``)) {
27
- referenced.add(code);
28
- }
29
- }
30
- }
31
- return referenced;
32
- }
33
- export function extractAllStringLiterals(srcDirectory) {
34
- const tsFiles = getAllTsFiles(srcDirectory, ["mock-broker"]).filter((f) => !f.endsWith("error-registry.ts"));
35
- const literals = new Set();
36
- const codeRegex = /["']([A-Z][A-Z0-9_]{2,})["']/g;
37
- for (const file of tsFiles) {
38
- const content = readFileSync(file, "utf8");
39
- codeRegex.lastIndex = 0;
40
- let match;
41
- while ((match = codeRegex.exec(content)) !== null) {
42
- literals.add(match[1]);
43
- }
44
- }
45
- return literals;
46
- }
@@ -1 +0,0 @@
1
- export declare const IDENTITY_CGI_PATH = "/webman/3rdparty/SynoPkgLandService/index.cgi";
@@ -1 +0,0 @@
1
- export const IDENTITY_CGI_PATH = "/webman/3rdparty/SynoPkgLandService/index.cgi";
@@ -1,61 +0,0 @@
1
- export declare const BROKER_UPGRADE_TARGET_HOST = "10.17.83.200";
2
- export type DsmUpgradeResponseKind = "error-4552" | "success" | "consent" | "unknown";
3
- export interface ConsentDialogEvidence {
4
- consentDialog: {
5
- dependers: string[];
6
- };
7
- }
8
- export interface BrokerUpgradeDependerBaseline {
9
- packageIdentity: string;
10
- version: string;
11
- status: string;
12
- running: boolean;
13
- }
14
- export interface BrokerUpgradeDepender extends BrokerUpgradeDependerBaseline {
15
- healthCheckOk: boolean;
16
- a23Classified: boolean;
17
- dataSnapshotOk: boolean;
18
- }
19
- export interface BrokerUpgradePreflightInput {
20
- targetHost: string;
21
- broker: {
22
- version: string;
23
- status: string;
24
- running: boolean;
25
- };
26
- dependers: BrokerUpgradeDepender[];
27
- previousSpk: {
28
- available: boolean;
29
- sha256?: string;
30
- };
31
- canonicalizeGateSatisfied: boolean;
32
- catalogEntry: {
33
- version: string;
34
- };
35
- }
36
- export type PreflightDecision = {
37
- ok: true;
38
- } | {
39
- ok: false;
40
- codes: string[];
41
- };
42
- export interface Evaluate4552BranchInput {
43
- response: unknown;
44
- dependers: BrokerUpgradeDependerBaseline[];
45
- }
46
- /**
47
- * Classify only already-parsed DSM evidence. Strings are deliberately never
48
- * parsed or searched: a textual mention of 4552 is not a DSM error response.
49
- */
50
- export declare function classifyDsmUpgradeResponse(raw: unknown): DsmUpgradeResponseKind;
51
- /**
52
- * Evaluate every local prerequisite without performing an upgrade or
53
- * proposing a stop/start action. A missing or malformed prerequisite is a
54
- * failure, even when another part of the input looks healthy.
55
- */
56
- export declare function evaluateBrokerUpgradePreflight(input: BrokerUpgradePreflightInput): PreflightDecision;
57
- /**
58
- * The 4552 path is entered only for a numeric DSM error and a non-empty,
59
- * fully identified running baseline inventory.
60
- */
61
- export declare function evaluate4552Branch(input: Evaluate4552BranchInput): PreflightDecision;
@@ -1,156 +0,0 @@
1
- import { comparePackageVersions } from "@synopackageland/package-source/index-manifest";
2
- export const BROKER_UPGRADE_TARGET_HOST = "10.17.83.200";
3
- /**
4
- * Classify only already-parsed DSM evidence. Strings are deliberately never
5
- * parsed or searched: a textual mention of 4552 is not a DSM error response.
6
- */
7
- export function classifyDsmUpgradeResponse(raw) {
8
- if (!isRecord(raw)) {
9
- return "unknown";
10
- }
11
- if (isRecord(raw.error) && raw.error.code === 4552) {
12
- return "error-4552";
13
- }
14
- const hasError = Object.prototype.hasOwnProperty.call(raw, "error") &&
15
- raw.error !== null &&
16
- raw.error !== undefined;
17
- if (raw.success === true && !hasError) {
18
- return "success";
19
- }
20
- if (isConsentDialogEvidence(raw)) {
21
- return "consent";
22
- }
23
- return "unknown";
24
- }
25
- /**
26
- * Evaluate every local prerequisite without performing an upgrade or
27
- * proposing a stop/start action. A missing or malformed prerequisite is a
28
- * failure, even when another part of the input looks healthy.
29
- */
30
- export function evaluateBrokerUpgradePreflight(input) {
31
- const candidate = isRecord(input) ? input : {};
32
- const codes = [];
33
- const addCode = (code) => {
34
- if (!codes.includes(code)) {
35
- codes.push(code);
36
- }
37
- };
38
- if (candidate.targetHost !== BROKER_UPGRADE_TARGET_HOST) {
39
- addCode("PREFLIGHT_WRONG_TARGET");
40
- }
41
- const broker = candidate.broker;
42
- if (!isRecord(broker)) {
43
- addCode("PREFLIGHT_BROKER_NOT_RUNNING");
44
- addCode("PREFLIGHT_BROKER_VERSION_INVALID");
45
- }
46
- else {
47
- if (broker.running !== true || broker.status !== "running") {
48
- addCode("PREFLIGHT_BROKER_NOT_RUNNING");
49
- }
50
- if (!isNonEmptyString(broker.version)) {
51
- addCode("PREFLIGHT_BROKER_VERSION_INVALID");
52
- }
53
- }
54
- const dependers = candidate.dependers;
55
- if (!Array.isArray(dependers)) {
56
- addCode("PREFLIGHT_DEPENDER_INVENTORY_INVALID");
57
- }
58
- else {
59
- for (const depender of dependers) {
60
- if (!isRecord(depender)) {
61
- addCode("PREFLIGHT_DEPENDER_INVENTORY_INVALID");
62
- continue;
63
- }
64
- if (!isNonEmptyString(depender.packageIdentity) || !isNonEmptyString(depender.version)) {
65
- addCode("PREFLIGHT_DEPENDER_INVENTORY_INVALID");
66
- }
67
- if (depender.running !== true) {
68
- addCode("PREFLIGHT_DEPENDER_NOT_RUNNING");
69
- }
70
- if (depender.status !== "running") {
71
- addCode("PREFLIGHT_DEPENDER_UNSAFE_STATUS");
72
- }
73
- if (depender.healthCheckOk !== true) {
74
- addCode("PREFLIGHT_DEPENDER_HEALTHCHECK_FAILED");
75
- }
76
- if (depender.a23Classified !== true) {
77
- addCode("PREFLIGHT_DEPENDER_A23_UNCLASSIFIED");
78
- }
79
- if (depender.dataSnapshotOk !== true) {
80
- addCode("PREFLIGHT_DEPENDER_DATA_SNAPSHOT_MISSING");
81
- }
82
- }
83
- }
84
- const previousSpk = candidate.previousSpk;
85
- if (!isRecord(previousSpk) || previousSpk.available !== true) {
86
- addCode("PREFLIGHT_PREVIOUS_SPK_UNAVAILABLE");
87
- }
88
- else if (!isSha256(previousSpk.sha256)) {
89
- addCode("PREFLIGHT_PREVIOUS_SPK_DIGEST_INVALID");
90
- }
91
- if (candidate.canonicalizeGateSatisfied !== true) {
92
- addCode("PREFLIGHT_CANONICALIZE_GATE_UNSATISFIED");
93
- }
94
- const catalogEntry = candidate.catalogEntry;
95
- if (!isRecord(catalogEntry) || !isNonEmptyString(catalogEntry.version)) {
96
- addCode("PREFLIGHT_CATALOG_VERSION_INVALID");
97
- }
98
- else if (!isRecord(broker) || !isNonEmptyString(broker.version)) {
99
- // The broker version gate is already reported above; without both version
100
- // strings there is no safe comparison to perform.
101
- addCode("PREFLIGHT_VERSION_COMPARISON_INVALID");
102
- }
103
- else {
104
- const comparison = comparePackageVersions(catalogEntry.version, broker.version);
105
- if (!Number.isFinite(comparison)) {
106
- addCode("PREFLIGHT_VERSION_COMPARISON_INVALID");
107
- }
108
- else if (comparison <= 0) {
109
- addCode("PREFLIGHT_CATALOG_VERSION_NOT_NEWER");
110
- }
111
- }
112
- return decisionFromCodes(codes);
113
- }
114
- /**
115
- * The 4552 path is entered only for a numeric DSM error and a non-empty,
116
- * fully identified running baseline inventory.
117
- */
118
- export function evaluate4552Branch(input) {
119
- const candidate = isRecord(input) ? input : {};
120
- const codes = [];
121
- if (classifyDsmUpgradeResponse(candidate.response) !== "error-4552") {
122
- codes.push("PREFLIGHT_RESPONSE_NOT_4552");
123
- }
124
- const dependers = candidate.dependers;
125
- if (!Array.isArray(dependers) ||
126
- dependers.length === 0 ||
127
- dependers.some((depender) => !isRunningBaseline(depender))) {
128
- codes.push("PREFLIGHT_DEPENDER_INVENTORY_INCOMPLETE");
129
- }
130
- return decisionFromCodes(codes);
131
- }
132
- function decisionFromCodes(codes) {
133
- return codes.length === 0 ? { ok: true } : { ok: false, codes };
134
- }
135
- function isRunningBaseline(value) {
136
- return (isRecord(value) &&
137
- isNonEmptyString(value.packageIdentity) &&
138
- isNonEmptyString(value.version) &&
139
- value.status === "running" &&
140
- value.running === true);
141
- }
142
- function isConsentDialogEvidence(value) {
143
- const dialog = value.consentDialog;
144
- return (isRecord(dialog) &&
145
- Array.isArray(dialog.dependers) &&
146
- dialog.dependers.every((depender) => typeof depender === "string"));
147
- }
148
- function isRecord(value) {
149
- return value !== null && typeof value === "object" && !Array.isArray(value);
150
- }
151
- function isNonEmptyString(value) {
152
- return typeof value === "string" && value.length > 0;
153
- }
154
- function isSha256(value) {
155
- return typeof value === "string" && /^[0-9a-fA-F]{64}$/.test(value);
156
- }
@@ -1,5 +0,0 @@
1
- import type { ProjectRoot } from "../discovery.js";
2
- export declare function digestString(value: string): string;
3
- export declare function digestDirectory(root: string): string;
4
- export declare function digestProjectContract(project: ProjectRoot): string;
5
- export declare function digestProjectBundle(project: ProjectRoot): string;
@@ -1,63 +0,0 @@
1
- import { createHash } from "node:crypto";
2
- import { cpSync, existsSync, mkdirSync, mkdtempSync, readFileSync, readdirSync, rmSync, statSync } from "node:fs";
3
- import { tmpdir } from "node:os";
4
- import { join } from "node:path";
5
- export function digestString(value) {
6
- return createHash("sha256").update(value).digest("hex");
7
- }
8
- export function digestDirectory(root) {
9
- const hash = createHash("sha256");
10
- for (const relative of walkFiles(root)) {
11
- hash.update(relative);
12
- hash.update("\0");
13
- hash.update(readFileSync(join(root, relative)));
14
- hash.update("\0");
15
- }
16
- return hash.digest("hex");
17
- }
18
- export function digestProjectContract(project) {
19
- return digestString(readFileSync(project.contractPath, "utf8"));
20
- }
21
- export function digestProjectBundle(project) {
22
- const staging = mkdtempSync(join(tmpdir(), "syno-bundle-digest-"));
23
- try {
24
- const packageDir = join(staging, "package");
25
- mkdirSync(packageDir, { recursive: true });
26
- // Runtime members are whichever of the two exist; validate already refuses
27
- // a project that has both or neither. The Broker computes the same set
28
- // (packages/broker/src/digest.ts), so the two digests have to agree.
29
- if (existsSync(project.composePath)) {
30
- cpSync(project.composePath, join(packageDir, "compose.yaml"));
31
- }
32
- if (project.nativePath && existsSync(project.nativePath)) {
33
- cpSync(project.nativePath, join(packageDir, "native.yaml"));
34
- }
35
- cpSync(project.contractPath, join(packageDir, "synology-app.yaml"));
36
- const htmlDir = join(project.root, "html");
37
- if (existsSync(htmlDir)) {
38
- cpSync(htmlDir, join(packageDir, "html"), { recursive: true });
39
- }
40
- return digestDirectory(packageDir);
41
- }
42
- finally {
43
- rmSync(staging, { recursive: true, force: true });
44
- }
45
- }
46
- function walkFiles(root, prefix = "") {
47
- const files = [];
48
- for (const entry of readdirSync(root).sort(comparePosixPaths)) {
49
- const relative = prefix ? `${prefix}/${entry}` : entry;
50
- const absolute = join(root, entry);
51
- const stat = statSync(absolute);
52
- if (stat.isDirectory()) {
53
- files.push(...walkFiles(absolute, relative));
54
- }
55
- else if (stat.isFile()) {
56
- files.push(relative);
57
- }
58
- }
59
- return files;
60
- }
61
- function comparePosixPaths(left, right) {
62
- return left < right ? -1 : left > right ? 1 : 0;
63
- }
@@ -1,49 +0,0 @@
1
- import type { SharePermissionRow } from "./share-permission.js";
2
- import type { PortInfoEntry } from "./port-info.js";
3
- import type { AttestationKind, HostInstallRecord, HostOidcCompatSettings, NasHost, PackageRoute } from "./types.js";
4
- import type { DsmPortProfileInventory } from "./dsm-port-profile.js";
5
- export type SharePermissionRowInput = {
6
- name: string;
7
- } & Partial<Omit<SharePermissionRow, "name">>;
8
- export interface FakeNasHostOptions {
9
- curated?: string[];
10
- dsmOrigin?: string;
11
- homesPath?: string;
12
- installationId?: string;
13
- shareNames?: string[];
14
- shares?: Record<string, string>;
15
- /**
16
- * SYNO.Core.Share.Permission rows per Share, as partials -- every flag
17
- * defaults to false, matching a row DSM grants nothing on. Omit the whole
18
- * option to model a host that cannot answer the permission question.
19
- */
20
- sharePermissions?: Record<string, {
21
- users: SharePermissionRowInput[];
22
- groups: SharePermissionRowInput[];
23
- }>;
24
- /** Group membership per DSM user, for share-permission resolution. */
25
- userGroups?: Record<string, string[]>;
26
- /** SYNO.Core.Service.PortInfo rows; omit to model a host without the capability. */
27
- portInfo?: PortInfoEntry[];
28
- /** Model a host whose PortInfo capability is present but the API failed. */
29
- portInfoFailure?: boolean;
30
- installedEnv?: Record<string, Record<string, string>>;
31
- diagnostics?: {
32
- dsmResidue?: import("./types.js").DsmResidueInventory;
33
- packageRoute?: PackageRoute;
34
- isPackageOnly?: boolean;
35
- [key: string]: unknown;
36
- };
37
- /** Administrator-only DSM PortInfo inventory, when the fake should expose it. */
38
- portProfileInventory?: DsmPortProfileInventory;
39
- /** Omit to model an older Broker without the OIDC settings endpoint. */
40
- oidcCompat?: HostOidcCompatSettings;
41
- }
42
- export declare function createFakeNasHost(options?: FakeNasHostOptions): NasHost & {
43
- installs: HostInstallRecord[];
44
- attestations: Set<string>;
45
- attestationInfo(packageIdentity: string): {
46
- attestationKind: AttestationKind;
47
- } | undefined;
48
- seedInstalled(packageIdentity: string): void;
49
- };
@@ -1,193 +0,0 @@
1
- import { webStationAlias } from "../contract/web-launch.js";
2
- function sharePermissionRow(input) {
3
- return {
4
- is_admin: false,
5
- is_writable: false,
6
- is_readonly: false,
7
- is_deny: false,
8
- is_custom: false,
9
- ...input,
10
- };
11
- }
12
- export function createFakeNasHost(options = {}) {
13
- const dsmOrigin = options.dsmOrigin ?? "http://nas.example:5000";
14
- const installationId = options.installationId ?? "fake-installation";
15
- const curated = new Set(options.curated ?? []);
16
- const installs = [];
17
- const localAttestations = new Map();
18
- const installed = new Set();
19
- const openUrls = new Map();
20
- const shares = { ...(options.shares ?? {}) };
21
- const shareNames = options.shareNames
22
- ? [...options.shareNames]
23
- : Object.keys(shares).length > 0
24
- ? Object.keys(shares)
25
- : ["docker", "home", "photo"];
26
- const installedEnv = Object.fromEntries(Object.entries(options.installedEnv ?? {}).map(([packageId, env]) => [packageId, { ...env }]));
27
- const host = {
28
- dsmOrigin,
29
- installationId,
30
- installs,
31
- attestations: new Set(),
32
- markCurated(packageIdentity) {
33
- curated.add(packageIdentity);
34
- localAttestations.set(packageIdentity, "app-package");
35
- },
36
- seedInstalled(packageIdentity) {
37
- installed.add(packageIdentity);
38
- },
39
- async resolveSharePath(logicalName) {
40
- return shares[logicalName];
41
- },
42
- async listShareNames() {
43
- return [...shareNames];
44
- },
45
- ...(options.sharePermissions
46
- ? {
47
- async listSharePermissions(logicalName) {
48
- const listing = options.sharePermissions?.[logicalName];
49
- if (!listing) {
50
- return undefined;
51
- }
52
- return {
53
- users: listing.users.map(sharePermissionRow),
54
- groups: listing.groups.map(sharePermissionRow),
55
- };
56
- },
57
- }
58
- : {}),
59
- ...(options.userGroups
60
- ? {
61
- async listUserGroups(userName) {
62
- return options.userGroups?.[userName];
63
- },
64
- }
65
- : {}),
66
- ...(options.portInfo !== undefined || options.portInfoFailure
67
- ? {
68
- async listPortInfo() {
69
- if (options.portInfoFailure) {
70
- return undefined;
71
- }
72
- return options.portInfo?.map((entry) => ({
73
- ...entry,
74
- dst_port: [...entry.dst_port],
75
- ...(entry.src_port === undefined
76
- ? {}
77
- : { src_port: entry.src_port === null ? null : [...entry.src_port] }),
78
- }));
79
- },
80
- }
81
- : {}),
82
- async resolveHomesPath() {
83
- return options.homesPath;
84
- },
85
- async getInstalledProjectEnv(packageIdentity) {
86
- const env = installedEnv[packageIdentity];
87
- return env ? { ...env } : undefined;
88
- },
89
- attestationInfo(packageIdentity) {
90
- const kind = localAttestations.get(packageIdentity) ?? (installed.has(packageIdentity) ? "local" : "none");
91
- return kind === "none" ? undefined : { attestationKind: kind };
92
- },
93
- async requestAttestation(input) {
94
- if (curated.has(input.packageIdentity) && !input.allowCuratedDowngrade) {
95
- const error = new Error("Curated deploy refused");
96
- error.code = "CURATED_DEPLOY_REFUSED";
97
- throw error;
98
- }
99
- if (curated.has(input.packageIdentity) && input.allowCuratedDowngrade) {
100
- localAttestations.set(input.packageIdentity, "local");
101
- }
102
- else {
103
- localAttestations.set(input.packageIdentity, "local");
104
- }
105
- const digest = `${input.packageIdentity}:${input.bundleDigest}:${input.contractDigest}`;
106
- host.attestations.add(input.packageIdentity);
107
- return {
108
- kind: "local",
109
- attestationDigest: digest,
110
- token: `fake-local-attestation.${input.packageIdentity}`,
111
- };
112
- },
113
- async ensurePackageSource() { },
114
- async installFromCatalog(input) {
115
- installs.push({
116
- packageId: input.packageId,
117
- version: input.version,
118
- source: "package-center",
119
- extraValues: { ...(input.extraValues ?? {}) },
120
- });
121
- installed.add(input.packageId);
122
- installedEnv[input.packageId] = {
123
- ...(installedEnv[input.packageId] ?? {}),
124
- ...(input.extraValues ?? {}),
125
- };
126
- openUrls.set(input.packageId, `${new URL(dsmOrigin).protocol}//${new URL(dsmOrigin).hostname}/${webStationAlias(input.packageId)}/`);
127
- if (!localAttestations.has(input.packageId)) {
128
- localAttestations.set(input.packageId, "local");
129
- }
130
- },
131
- async installFromLocalSpk(input) {
132
- installs.push({
133
- packageId: input.packageId,
134
- version: input.version,
135
- source: "local-spk",
136
- extraValues: { ...(input.extraValues ?? {}) },
137
- });
138
- installed.add(input.packageId);
139
- installedEnv[input.packageId] = {
140
- ...(installedEnv[input.packageId] ?? {}),
141
- ...(input.extraValues ?? {}),
142
- };
143
- openUrls.set(input.packageId, `${new URL(dsmOrigin).protocol}//${new URL(dsmOrigin).hostname}/${webStationAlias(input.packageId)}/`);
144
- if (!localAttestations.has(input.packageId)) {
145
- localAttestations.set(input.packageId, "local");
146
- }
147
- },
148
- async getInstalledPackageVersion(packageIdentity) {
149
- const latest = [...installs].reverse().find((entry) => entry.packageId === packageIdentity);
150
- return latest?.version;
151
- },
152
- async getAttestationInfo(packageIdentity) {
153
- return {
154
- packageIdentity,
155
- attestationKind: localAttestations.get(packageIdentity) ?? (installed.has(packageIdentity) ? "local" : "none"),
156
- developmentInstance: packageIdentity.endsWith(".dev"),
157
- openUrl: openUrls.get(packageIdentity),
158
- readiness: installed.has(packageIdentity) ? "RUNNING" : "NOT_INSTALLED",
159
- };
160
- },
161
- async isPackageInstalled(packageIdentity) {
162
- return installed.has(packageIdentity);
163
- },
164
- async fetchContainerLogs(packageIdentity) {
165
- if (!installed.has(packageIdentity)) {
166
- return [];
167
- }
168
- return [`[${packageIdentity}] container ready`];
169
- },
170
- async getDsmDiagnostics() {
171
- return options.diagnostics;
172
- },
173
- async getDsmPortProfileInventory() {
174
- return options.portProfileInventory;
175
- },
176
- async getOidcCompatSettings() {
177
- if (!options.oidcCompat) {
178
- return undefined;
179
- }
180
- return {
181
- enabled: options.oidcCompat.enabled,
182
- origin: { ...options.oidcCompat.origin },
183
- };
184
- },
185
- async smokeRequireLogin() {
186
- return { ok: true, username: "admin" };
187
- },
188
- };
189
- for (const packageId of curated) {
190
- localAttestations.set(packageId, "app-package");
191
- }
192
- return host;
193
- }
@@ -1,2 +0,0 @@
1
- import type { BrokerBootstrap } from "@synopackageland/dev-sdk/node";
2
- export declare function writeMockBrokerBootstrap(projectRoot: string, bootstrap: BrokerBootstrap): string;
@@ -1,8 +0,0 @@
1
- import { mkdirSync, writeFileSync } from "node:fs";
2
- import { dirname, resolve } from "node:path";
3
- export function writeMockBrokerBootstrap(projectRoot, bootstrap) {
4
- const path = resolve(projectRoot, ".synopkgland", "mock-broker.json");
5
- mkdirSync(dirname(path), { recursive: true });
6
- writeFileSync(path, `${JSON.stringify(bootstrap, null, 2)}\n`, "utf8");
7
- return path;
8
- }
@@ -1,60 +0,0 @@
1
- import { createReadStream } from "node:fs";
2
- export interface FileItem {
3
- name: string;
4
- type: "file" | "directory";
5
- path: string;
6
- size?: number;
7
- }
8
- export declare class FileStoreError extends Error {
9
- readonly code: string;
10
- readonly status: number;
11
- constructor(code: string, status: number, message: string);
12
- }
13
- export interface MockFileStoreOptions {
14
- filesRoot?: string;
15
- recycleBinDisabled?: boolean;
16
- }
17
- export interface DownloadResult {
18
- buffer?: Buffer;
19
- stream?: ReturnType<typeof createReadStream>;
20
- size: number;
21
- totalSize: number;
22
- }
23
- export declare class MockFileStore {
24
- private readonly filesRoot?;
25
- private readonly recycleBinDisabled;
26
- private readonly treeRoot;
27
- constructor(options?: MockFileStoreOptions);
28
- list(rawPath: string): FileItem[];
29
- stat(rawPath: string): FileItem;
30
- download(rawPath: string, range?: {
31
- start: number;
32
- end?: number;
33
- }): DownloadResult;
34
- upload(rawPath: string, body: Buffer, overwrite?: boolean): void;
35
- mkdir(rawPath: string): void;
36
- rename(rawPath: string, rawTo: string, overwrite?: boolean): void;
37
- move(rawPath: string, rawTo: string, overwrite?: boolean): void;
38
- copy(rawPath: string, rawTo: string, overwrite?: boolean): void;
39
- trash(rawPath: string): void;
40
- private resolveListPath;
41
- private resolveOperationPath;
42
- private listMemory;
43
- private statMemory;
44
- private downloadMemory;
45
- private uploadMemory;
46
- private mkdirMemory;
47
- private moveMemory;
48
- private copyMemory;
49
- private trashMemory;
50
- private listMapped;
51
- private statMapped;
52
- private downloadMapped;
53
- private uploadMapped;
54
- private mkdirMapped;
55
- private moveMapped;
56
- private copyMapped;
57
- private trashMapped;
58
- }
59
- /** @deprecated Use MockFileStore.list instead */
60
- export declare function listFakeFiles(path: string, filesRoot?: string): FileItem[];