@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,17 +1,11 @@
1
1
  import { spawnSync } from "node:child_process";
2
- import { mkdtempSync, writeFileSync, rmSync } from "node:fs";
3
- import { tmpdir } from "node:os";
4
- import { join } from "node:path";
5
- import { IDENTITY_CGI_PATH } from "./broker-paths.js";
6
- import { packageSourceOrigin } from "../deploy/catalog-publish.js";
7
2
  import { listShareNamesWithSynoagentcli, lookupSharePathWithSynoagentcli } from "./share-lookup.js";
8
3
  import { createSynoagentcliApiCall, fetchSharePermissions, fetchUserGroups, } from "./share-permission-lookup.js";
9
4
  import { fetchPortInfo } from "./port-info-lookup.js";
10
5
  import { dsmFetch } from "./dsm-http.js";
11
6
  import { fetchDsmPortProfileInventory } from "./dsm-port-profile.js";
12
- import { installPackageFromCatalog, installPackageFromLocalSpk, uninstallPackageFromDsm, fetchInstalledPackageState, packageStateFromRecord, } from "./catalog-install.js";
7
+ import { installPackageFromLocalSpk, fetchInstalledPackageState, packageStateFromRecord, } from "./catalog-install.js";
13
8
  import { resolveHostCredentials } from "./credentials.js";
14
- const OIDC_COMPAT_PATH = "/api/v1/inner-loop/oidc-compat";
15
9
  export function createNasHost(options = {}) {
16
10
  const credentials = options.credentials ?? resolveHostCredentials(options.host);
17
11
  if (!credentials) {
@@ -61,9 +55,7 @@ export function homesPathFromDsmUserHomeRead(result) {
61
55
  }
62
56
  function createDsmNasHost(credentials, profileName) {
63
57
  const dsmOrigin = credentials.dsmOrigin.replace(/\/$/, "");
64
- const brokerBaseUrl = `${dsmOrigin}${IDENTITY_CGI_PATH}`;
65
58
  let cookieHeader = credentials.cookieHeader;
66
- const projectEnvCache = new Map();
67
59
  const ensureLogin = async () => {
68
60
  if (cookieHeader) {
69
61
  return;
@@ -77,7 +69,10 @@ function createDsmNasHost(credentials, profileName) {
77
69
  session: "FileStation",
78
70
  format: "cookie",
79
71
  });
80
- const response = await dsmFetch(`${dsmOrigin}/webapi/entry.cgi?${query.toString()}`);
72
+ const response = await dsmFetch(`${dsmOrigin}/webapi/entry.cgi`, { method: "POST", headers: { "content-type": "application/x-www-form-urlencoded" }, body: query });
73
+ const login = await response.json();
74
+ if (!response.ok || login.success !== true)
75
+ throw new Error("DSM login failed");
81
76
  const setCookie = typeof response.headers.getSetCookie === "function"
82
77
  ? response.headers.getSetCookie()
83
78
  : response.headers.get("set-cookie")
@@ -87,140 +82,18 @@ function createDsmNasHost(credentials, profileName) {
87
82
  .map((line) => line.split(";")[0]?.trim())
88
83
  .filter((pair) => Boolean(pair));
89
84
  cookieHeader = pairs.join("; ");
90
- };
91
- const ensureInnerLoopApi = async () => {
92
- await ensureLogin();
93
- const response = await dsmFetch(`${brokerBaseUrl}/api/v1/inner-loop/diagnostics?package=probe`, { headers: { cookie: cookieHeader ?? "" } });
94
- const text = await response.text();
95
- if (response.status === 404 || text.trimStart().startsWith("<")) {
96
- const error = new Error("Broker inner-loop API 不可用(收到 HTML 404)。請將 SynoPkgLandService 升級到 >=0.1.0-0016。");
97
- error.code = "INNER_LOOP_API_MISSING";
98
- throw error;
99
- }
100
- try {
101
- JSON.parse(text);
102
- }
103
- catch {
104
- const error = new Error("Broker inner-loop API 回傳非 JSON 內容。");
105
- error.code = "INNER_LOOP_API_MISSING";
106
- throw error;
107
- }
108
- };
109
- const ensurePackageSourceFeed = (origin) => {
110
- const feed = origin.replace(/\/$/, "") + "/";
111
- const list = synoagentcli(["dsm", "package-center", "source", "list"], profileName);
112
- if (list.status !== 0) {
113
- return;
114
- }
115
- const parsed = JSON.parse(list.stdout);
116
- const items = parsed.data?.items ?? [];
117
- const normalizedFeed = feed.replace(/\/$/, "");
118
- const existing = items.find((item) => item.feed?.replace(/\/$/, "") === normalizedFeed);
119
- if (existing) {
120
- return;
121
- }
122
- const stale = items.find((item) => item.name === "package-land-throwaway");
123
- const payload = { name: "package-land-throwaway", feed };
124
- const staging = mkdtempSync(join(tmpdir(), "syno-package-source-feed-"));
125
- const jsonPath = join(staging, "source.json");
126
- writeFileSync(jsonPath, JSON.stringify(payload));
127
- try {
128
- if (stale?.feed) {
129
- synoagentcli(["dsm", "package-center", "source", "update", stale.feed, "--json-file", jsonPath], profileName);
130
- return;
131
- }
132
- synoagentcli(["dsm", "package-center", "source", "add", "--json-file", jsonPath], profileName);
133
- }
134
- finally {
135
- rmSync(staging, { recursive: true, force: true });
136
- }
85
+ if (!cookieHeader)
86
+ throw new Error("DSM login returned no session cookie");
137
87
  };
138
88
  return {
139
89
  dsmOrigin,
140
- installationId: "live-nas",
141
- async requestAttestation(input) {
142
- await ensureInnerLoopApi();
90
+ async installFromLocalSpk(input) {
143
91
  await ensureLogin();
144
- const response = await dsmFetch(`${brokerBaseUrl}/api/v1/inner-loop/attest`, {
145
- method: "POST",
146
- headers: {
147
- cookie: cookieHeader ?? "",
148
- "content-type": "application/json",
149
- },
150
- body: JSON.stringify(input),
92
+ await installPackageFromLocalSpk({
93
+ dsmOrigin, cookieHeader: cookieHeader ?? "",
94
+ packageId: input.packageId, spkPath: input.spkPath,
95
+ version: input.version, profileName, extraValues: input.extraValues,
151
96
  });
152
- const text = await response.text();
153
- let body;
154
- try {
155
- body = JSON.parse(text);
156
- }
157
- catch {
158
- const error = new Error("Broker inner-loop attest 回傳非 JSON 內容。");
159
- error.code = "INNER_LOOP_API_MISSING";
160
- throw error;
161
- }
162
- if (!response.ok) {
163
- const error = new Error(body.error?.message ?? `Attestation failed (${response.status})`);
164
- error.code = body.error?.code;
165
- throw error;
166
- }
167
- const token = typeof body.token === "string" && body.token.length > 0 ? body.token : undefined;
168
- return {
169
- kind: "local",
170
- attestationDigest: body.attestationDigest ?? "",
171
- ...(token !== undefined ? { token } : {}),
172
- };
173
- },
174
- async ensurePackageSource(origin) {
175
- ensurePackageSourceFeed(origin);
176
- },
177
- async installFromCatalog(input) {
178
- try {
179
- ensurePackageSourceFeed(packageSourceOrigin());
180
- await ensureLogin();
181
- await installPackageFromCatalog({
182
- dsmOrigin,
183
- cookieHeader: cookieHeader ?? "",
184
- packageId: input.packageId,
185
- profileName,
186
- expectedVersion: input.version,
187
- packageSourceOrigin: packageSourceOrigin(),
188
- extraValues: input.extraValues,
189
- });
190
- }
191
- finally {
192
- projectEnvCache.delete(input.packageId);
193
- }
194
- },
195
- async installFromLocalSpk(input) {
196
- try {
197
- await ensureLogin();
198
- await installPackageFromLocalSpk({
199
- dsmOrigin,
200
- cookieHeader: cookieHeader ?? "",
201
- packageId: input.packageId,
202
- spkPath: input.spkPath,
203
- version: input.version,
204
- profileName,
205
- extraValues: input.extraValues,
206
- });
207
- }
208
- finally {
209
- projectEnvCache.delete(input.packageId);
210
- }
211
- },
212
- async uninstallPackage(packageIdentity) {
213
- try {
214
- await ensureLogin();
215
- await uninstallPackageFromDsm({
216
- dsmOrigin,
217
- cookieHeader: cookieHeader ?? "",
218
- packageId: packageIdentity,
219
- });
220
- }
221
- finally {
222
- projectEnvCache.delete(packageIdentity);
223
- }
224
97
  },
225
98
  async getArchFamily() {
226
99
  await ensureLogin();
@@ -261,44 +134,6 @@ function createDsmNasHost(credentials, profileName) {
261
134
  return undefined;
262
135
  }
263
136
  },
264
- async getInstalledProjectEnv(packageIdentity) {
265
- const cached = projectEnvCache.get(packageIdentity);
266
- if (cached) {
267
- return cached;
268
- }
269
- const lookup = (async () => {
270
- await ensureLogin();
271
- const response = await dsmFetch(`${brokerBaseUrl}/api/v1/inner-loop/project-env/${encodeURIComponent(packageIdentity)}`, { headers: { cookie: cookieHeader ?? "" } });
272
- if (response.ok) {
273
- const payload = (await response.json());
274
- if (!payload.env || typeof payload.env !== "object" || Array.isArray(payload.env)) {
275
- return undefined;
276
- }
277
- return Object.fromEntries(Object.entries(payload.env).filter((entry) => typeof entry[1] === "string"));
278
- }
279
- return undefined;
280
- })();
281
- projectEnvCache.set(packageIdentity, lookup);
282
- return lookup;
283
- },
284
- async getAttestationInfo(packageIdentity) {
285
- await ensureLogin();
286
- const response = await dsmFetch(`${brokerBaseUrl}/api/v1/inner-loop/info/${encodeURIComponent(packageIdentity)}`, { headers: { cookie: cookieHeader ?? "" } });
287
- const text = await response.text();
288
- if (response.status === 404 || text.trimStart().startsWith("<")) {
289
- const error = new Error("Broker inner-loop info 不可用(HTML 404)。");
290
- error.code = "INNER_LOOP_API_MISSING";
291
- throw error;
292
- }
293
- try {
294
- return JSON.parse(text);
295
- }
296
- catch {
297
- const error = new Error("Broker inner-loop info 回傳非 JSON 內容。");
298
- error.code = "INNER_LOOP_API_MISSING";
299
- throw error;
300
- }
301
- },
302
137
  async getInstalledPackageState(packageIdentity) {
303
138
  await ensureLogin();
304
139
  const viaDsm = await fetchInstalledPackageState(dsmOrigin, cookieHeader ?? "", packageIdentity);
@@ -355,21 +190,6 @@ function createDsmNasHost(credentials, profileName) {
355
190
  .filter(Boolean)
356
191
  .map((line) => `[status] ${line}`);
357
192
  },
358
- async getDsmDiagnostics(packageIdentity) {
359
- try {
360
- await ensureLogin();
361
- const pkg = packageIdentity ?? "probe";
362
- const response = await dsmFetch(`${brokerBaseUrl}/api/v1/inner-loop/diagnostics?package=${encodeURIComponent(pkg)}`, { headers: { cookie: cookieHeader ?? "" } });
363
- if (!response.ok) {
364
- return undefined;
365
- }
366
- const text = await response.text();
367
- return JSON.parse(text);
368
- }
369
- catch {
370
- return undefined;
371
- }
372
- },
373
193
  async getDsmPortProfileInventory() {
374
194
  try {
375
195
  await ensureLogin();
@@ -379,86 +199,6 @@ function createDsmNasHost(credentials, profileName) {
379
199
  return undefined;
380
200
  }
381
201
  },
382
- async getOidcCompatSettings() {
383
- try {
384
- await ensureLogin();
385
- const response = await dsmFetch(`${brokerBaseUrl}${OIDC_COMPAT_PATH}`, {
386
- headers: { cookie: cookieHeader ?? "" },
387
- });
388
- const text = await response.text();
389
- if (response.status === 404 || text.trimStart().startsWith("<")) {
390
- return undefined;
391
- }
392
- if (!response.ok) {
393
- return undefined;
394
- }
395
- const payload = JSON.parse(text);
396
- const settings = payload.settings;
397
- if (!settings || typeof settings !== "object" || Array.isArray(settings)) {
398
- return undefined;
399
- }
400
- const record = settings;
401
- const origin = record.origin;
402
- if (!origin || typeof origin !== "object" || Array.isArray(origin)) {
403
- return undefined;
404
- }
405
- const originRecord = origin;
406
- if (typeof record.enabled !== "boolean" ||
407
- typeof originRecord.ready !== "boolean" ||
408
- typeof originRecord.kind !== "string" ||
409
- typeof originRecord.setupHint !== "string") {
410
- return undefined;
411
- }
412
- return {
413
- enabled: record.enabled,
414
- origin: {
415
- ready: originRecord.ready,
416
- kind: originRecord.kind,
417
- hostname: typeof originRecord.hostname === "string" ? originRecord.hostname : undefined,
418
- issuerUrl: typeof originRecord.issuerUrl === "string" ? originRecord.issuerUrl : undefined,
419
- setupHint: originRecord.setupHint,
420
- },
421
- };
422
- }
423
- catch {
424
- return undefined;
425
- }
426
- },
427
- async smokeRequireLogin(input) {
428
- await ensureLogin();
429
- const info = await this.getAttestationInfo(input.packageIdentity);
430
- let openUrl = info.openUrl;
431
- if (!openUrl) {
432
- const pkg = synoagentcli(["dsm", "package-center", "get", input.packageIdentity], profileName);
433
- if (pkg.status === 0) {
434
- try {
435
- const parsed = JSON.parse(pkg.stdout);
436
- openUrl = parsed.data?.url?.[0];
437
- }
438
- catch {
439
- // ignore parse errors
440
- }
441
- }
442
- }
443
- if (!openUrl) {
444
- return { ok: false };
445
- }
446
- const origin = new URL(openUrl).origin;
447
- const response = await dsmFetch(`${brokerBaseUrl}/api/v1/auth/login`, {
448
- method: "POST",
449
- headers: {
450
- cookie: cookieHeader ?? input.cookieHeader,
451
- origin,
452
- "content-type": "application/json",
453
- },
454
- body: JSON.stringify({ packageId: input.packageIdentity }),
455
- });
456
- if (!response.ok) {
457
- return { ok: false };
458
- }
459
- const body = (await response.json());
460
- return { ok: Boolean(body.user?.username), username: body.user?.username };
461
- },
462
202
  };
463
203
  }
464
204
  /**
@@ -17,7 +17,6 @@ export interface DsmPortProfileInventory {
17
17
  orphaned: DsmPortProfile[];
18
18
  }
19
19
  /**
20
- * Parses the Docker .sc filename using the same rules as the Broker's
21
20
  * parsePortProfileFilename(). In particular, projectName is everything before
22
21
  * the final two dash-separated container segments.
23
22
  */
@@ -4,7 +4,6 @@ import { dsmFetch } from "./dsm-http.js";
4
4
  /** The precision caveat for the administrator-only fallback. */
5
5
  export const DSM_PORT_PROFILE_PRECISION_WARNING = "API 版未讀取 conf/resource;若有 App 自訂 Compose project 名可能誤報";
6
6
  /**
7
- * Parses the Docker .sc filename using the same rules as the Broker's
8
7
  * parsePortProfileFilename(). In particular, projectName is everything before
9
8
  * the final two dash-separated container segments.
10
9
  */
@@ -17,7 +16,6 @@ export function parsePortProfileFilename(filename) {
17
16
  if (!containerName) {
18
17
  return undefined;
19
18
  }
20
- // Keep this split aligned with packages/broker/src/diagnostics/dsm-residue.ts:
21
19
  // remove the final -<service>-<replica> pair, not an identity-specific guess.
22
20
  const lastDash = containerName.lastIndexOf("-");
23
21
  if (lastDash <= 0) {
@@ -2,77 +2,19 @@ import type { SharePermissionListing } from "../deploy/share-permission-prefligh
2
2
  import type { InstalledPackageState } from "./catalog-install.js";
3
3
  import type { PortInfoEntry } from "./port-info.js";
4
4
  import type { DsmPortProfileInventory } from "./dsm-port-profile.js";
5
- export type AttestationKind = "local" | "app-package" | "none";
6
- export type PackageRoute = "package-only" | "broker-installer" | "unknown";
7
- export type OidcOriginKind = "public-ca" | "quickconnect" | "lan-ip" | "self-signed" | "private-ca" | "http";
8
- export interface HostOidcOriginEvaluation {
9
- ready: boolean;
10
- kind: OidcOriginKind;
11
- hostname?: string;
12
- issuerUrl?: string;
13
- setupHint: string;
14
- }
15
- export interface HostOidcCompatSettings {
16
- enabled: boolean;
17
- origin: HostOidcOriginEvaluation;
18
- }
19
5
  export interface DeployIdentity {
20
6
  packageId: string;
21
7
  displayname: string;
22
8
  developmentInstance: boolean;
23
9
  }
24
- export interface AttestationIssueResult {
25
- kind: "local";
26
- attestationDigest: string;
27
- token?: string;
28
- }
29
- export interface ResidueItem {
30
- kind: "port_profile_sc" | "cm_project_config";
31
- path: string;
32
- name: string;
33
- reason: string;
34
- }
35
- export interface DsmResidueInventory {
36
- items: ResidueItem[];
37
- unreadable: string[];
38
- }
39
- export interface HostAttestationInfo {
40
- packageIdentity: string;
41
- attestationKind: AttestationKind;
42
- developmentInstance: boolean;
43
- openUrl?: string;
44
- readiness?: string;
45
- projectName?: string;
46
- }
47
- export interface HostInstallRecord {
48
- packageId: string;
49
- version?: string;
50
- source?: "package-center" | "local-spk";
51
- extraValues?: Record<string, string>;
52
- }
53
10
  export interface NasHost {
54
11
  readonly dsmOrigin: string;
55
- readonly installationId: string;
56
- requestAttestation(input: {
57
- packageIdentity: string;
58
- contractDigest: string;
59
- bundleDigest: string;
60
- capabilities: string[];
61
- allowCuratedDowngrade?: boolean;
62
- }): Promise<AttestationIssueResult>;
63
- installFromCatalog(input: {
64
- packageId: string;
65
- version?: string;
66
- extraValues?: Record<string, string>;
67
- }): Promise<void>;
68
- installFromLocalSpk?(input: {
12
+ installFromLocalSpk(input: {
69
13
  packageId: string;
70
14
  version: string;
71
15
  spkPath: string;
72
16
  extraValues?: Record<string, string>;
73
17
  }): Promise<void>;
74
- /** Stop and normally uninstall a formal package while preserving App Data. */
75
- uninstallPackage?(packageIdentity: string): Promise<void>;
76
18
  /**
77
19
  * CPU family of this NAS, for picking a native App's target. Returns
78
20
  * undefined when the DSM answer does not map to a family we ship, so the
@@ -94,35 +36,11 @@ export interface NasHost {
94
36
  listPortInfo?(): Promise<PortInfoEntry[] | undefined>;
95
37
  /** Resolve the NAS-specific user-home root when DSM User Home is enabled. */
96
38
  resolveHomesPath?(): Promise<string | undefined>;
97
- getInstalledProjectEnv?(packageIdentity: string): Promise<Record<string, string> | undefined>;
98
- ensurePackageSource?(origin: string): Promise<void>;
99
39
  getInstalledPackageVersion?(packageIdentity: string): Promise<string | undefined>;
100
40
  getInstalledPackageState?(packageIdentity: string): Promise<InstalledPackageState | undefined>;
101
- getAttestationInfo(packageIdentity: string): Promise<HostAttestationInfo>;
102
41
  isPackageInstalled(packageIdentity: string): Promise<boolean>;
103
42
  fetchContainerLogs(packageIdentity: string): Promise<string[]>;
104
- getDsmDiagnostics?(packageIdentity?: string): Promise<{
105
- dsmResidue?: DsmResidueInventory;
106
- packageRoute?: PackageRoute;
107
- isPackageOnly?: boolean;
108
- [key: string]: unknown;
109
- } | undefined>;
110
- /**
111
- * Read DSM PortInfo plus the administrator-visible installed package list.
112
- * This path does not require SynoPkgLandService; undefined means the host
113
- * could not answer and must be treated as unknown by diagnostics.
114
- */
115
43
  getDsmPortProfileInventory?(): Promise<DsmPortProfileInventory | undefined>;
116
- /** Read the optional administrator OIDC compatibility settings endpoint. */
117
- getOidcCompatSettings?(): Promise<HostOidcCompatSettings | undefined>;
118
- smokeRequireLogin(input: {
119
- packageIdentity: string;
120
- cookieHeader: string;
121
- }): Promise<{
122
- ok: boolean;
123
- username?: string;
124
- }>;
125
- markCurated?(packageIdentity: string): void;
126
44
  }
127
45
  export interface HostCredentials {
128
46
  dsmOrigin: string;
package/dist/index.d.ts CHANGED
@@ -6,14 +6,5 @@ export { initFromTemplate, isTemplateName } from "./init.js";
6
6
  export { runDev } from "./dev.js";
7
7
  export { testProject } from "./test-command.js";
8
8
  export { buildSpk } from "./build-spk/generator.js";
9
- export { publishProject, resolveCommunityAppsRoot } from "./publish/publish.js";
10
- export { communityAppsGitHubRepo, communityAppsGitHubUrl, DEFAULT_GITHUB_OWNER, } from "./publish/github-repo.js";
11
- export { InMemoryBuildLedger } from "./publish/build-ledger.js";
12
- export type { BuildLedger } from "./publish/build-ledger.js";
13
- export { createCuratedAttestationSignerFromEnv, isPublicOciDigest, releaseCurated, runCuratedRelease, runCuratedReleaseCli, digestReleaseBundle, validateCuratedCompose, } from "./publish/curated-release.js";
14
- export type { CuratedAttestationSignInput, CuratedAttestationSigner, CuratedComposeGateResult, CuratedReleaseSignInput, CuratedReleaseOptions, CuratedReleaseResult, } from "./publish/curated-release.js";
15
- export { canonicalAppPackageClaims, canonicalCuratedReleaseClaims, digestAppPackageClaims, digestCuratedReleaseClaims, normalizeCapabilities, assertPackageVersionBinding, signCuratedAppPackageAttestationToken, signCuratedReleaseAttestationToken, } from "./attestation/app-package.js";
16
- export type { AppPackageAttestationClaims, AppPackageSigningKey, CuratedAppPackageAttestationInput, CuratedReleaseAttestationClaims, CuratedReleaseAttestationInput, } from "./attestation/app-package.js";
17
- export { startMockBroker, FAKE_USER } from "./mock-broker/server.js";
18
9
  export { RecordingComposeRunner } from "./compose/runner.js";
19
10
  export type { ValidationError, ValidationResult } from "./types.js";
package/dist/index.js CHANGED
@@ -5,10 +5,4 @@ export { initFromTemplate, isTemplateName } from "./init.js";
5
5
  export { runDev } from "./dev.js";
6
6
  export { testProject } from "./test-command.js";
7
7
  export { buildSpk } from "./build-spk/generator.js";
8
- export { publishProject, resolveCommunityAppsRoot } from "./publish/publish.js";
9
- export { communityAppsGitHubRepo, communityAppsGitHubUrl, DEFAULT_GITHUB_OWNER, } from "./publish/github-repo.js";
10
- export { InMemoryBuildLedger } from "./publish/build-ledger.js";
11
- export { createCuratedAttestationSignerFromEnv, isPublicOciDigest, releaseCurated, runCuratedRelease, runCuratedReleaseCli, digestReleaseBundle, validateCuratedCompose, } from "./publish/curated-release.js";
12
- export { canonicalAppPackageClaims, canonicalCuratedReleaseClaims, digestAppPackageClaims, digestCuratedReleaseClaims, normalizeCapabilities, assertPackageVersionBinding, signCuratedAppPackageAttestationToken, signCuratedReleaseAttestationToken, } from "./attestation/app-package.js";
13
- export { startMockBroker, FAKE_USER } from "./mock-broker/server.js";
14
8
  export { RecordingComposeRunner } from "./compose/runner.js";
package/dist/info.d.ts CHANGED
@@ -8,7 +8,6 @@ export interface ProjectInfoOptions {
8
8
  export declare function projectInfo(options: ProjectInfoOptions): Promise<ProjectInfoResult>;
9
9
  export interface ProjectInfoResult {
10
10
  packageIdentity: string;
11
- attestationKind: "local" | "app-package" | "none";
12
11
  developmentInstance: boolean;
13
12
  openUrl?: string;
14
13
  readiness?: string;
package/dist/info.js CHANGED
@@ -3,27 +3,20 @@ import { appOriginFromContract } from "./host/open-url.js";
3
3
  import { resolveDeployIdentity } from "./deploy/identity.js";
4
4
  export async function projectInfo(options) {
5
5
  const identity = resolveDeployIdentity(options.project, { dev: options.dev });
6
- const remote = await options.host.getAttestationInfo(identity.packageId);
6
+ const remote = await options.host.getInstalledPackageState?.(identity.packageId);
7
7
  const installed = await options.host.isPackageInstalled(identity.packageId);
8
8
  const contract = loadContract(options.project.contractPath).contract;
9
9
  return {
10
10
  packageIdentity: identity.packageId,
11
- attestationKind: remote.attestationKind,
12
11
  developmentInstance: identity.developmentInstance,
13
- openUrl: remote.openUrl ?? appOriginFromContract(options.host.dsmOrigin, contract),
14
- readiness: remote.readiness ?? (installed ? "UNKNOWN" : "NOT_INSTALLED"),
12
+ openUrl: appOriginFromContract(options.host.dsmOrigin, contract),
13
+ readiness: remote?.status ?? (installed ? "UNKNOWN" : "NOT_INSTALLED"),
15
14
  installed,
16
15
  };
17
16
  }
18
17
  export function formatProjectInfo(info) {
19
- const attestationLabel = info.attestationKind === "app-package"
20
- ? "Curated(App Package Attestation)"
21
- : info.attestationKind === "local"
22
- ? "Local(Local Attestation)"
23
- : "無";
24
18
  return [
25
19
  `Package Identity:${info.packageIdentity}`,
26
- `Attestation:${attestationLabel}`,
27
20
  `開發用 Instance:${info.developmentInstance ? "是" : "否"}`,
28
21
  `已安裝:${info.installed ? "是" : "否"}`,
29
22
  info.openUrl ? `Open URL:${info.openUrl}` : "Open URL:(未設定)",
package/dist/init.d.ts CHANGED
@@ -1,4 +1,18 @@
1
1
  import type { TemplateName } from "./types.js";
2
2
  export declare function isTemplateName(value: string): value is TemplateName;
3
3
  export declare function listTemplates(): TemplateName[];
4
- export declare function initFromTemplate(template: TemplateName, targetDir: string): void;
4
+ export interface InitOptions {
5
+ /** Standalone templates: INFO.package (default: from the directory name). */
6
+ packageId?: string;
7
+ /** Standalone templates: display name (default: from the directory name). */
8
+ displayName?: string;
9
+ /** native-go: "root" adds administrator-approved root operations (default "none"). */
10
+ privilege?: "none" | "root";
11
+ ui?: "plain" | "vue";
12
+ integration?: "go" | "better-auth";
13
+ /** Pin the helper inventory protocol; protocol 2 still refuses NAS data. */
14
+ integrationProtocol?: 1 | 2;
15
+ /** Protocol 2 policy only; unavailable adapters still refuse data. */
16
+ dataAccess?: "unavailable" | "relaxed";
17
+ }
18
+ export declare function initFromTemplate(template: TemplateName, targetDir: string, options?: InitOptions): void;