@nextclaw/app-runtime 0.9.13 → 0.9.14

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 (306) hide show
  1. package/README.md +2 -2
  2. package/dist/{main.js → app/main.js} +2 -2
  3. package/dist/app/main.js.map +1 -0
  4. package/dist/{commands → controllers}/create.controller.d.ts +2 -2
  5. package/dist/controllers/create.controller.d.ts.map +1 -0
  6. package/dist/{commands → controllers}/create.controller.js +2 -2
  7. package/dist/controllers/create.controller.js.map +1 -0
  8. package/dist/{commands → controllers}/dev.controller.js +1 -1
  9. package/dist/controllers/dev.controller.js.map +1 -0
  10. package/dist/{commands → controllers}/grant.controller.d.ts +3 -3
  11. package/dist/controllers/grant.controller.d.ts.map +1 -0
  12. package/dist/{commands → controllers}/grant.controller.js +2 -2
  13. package/dist/controllers/grant.controller.js.map +1 -0
  14. package/dist/{commands → controllers}/info.controller.d.ts +2 -2
  15. package/dist/controllers/info.controller.d.ts.map +1 -0
  16. package/dist/{commands → controllers}/info.controller.js +2 -2
  17. package/dist/controllers/info.controller.js.map +1 -0
  18. package/dist/{commands → controllers}/inspect.controller.js +8 -2
  19. package/dist/controllers/inspect.controller.js.map +1 -0
  20. package/dist/{commands → controllers}/install.controller.d.ts +2 -2
  21. package/dist/controllers/install.controller.d.ts.map +1 -0
  22. package/dist/{commands → controllers}/install.controller.js +2 -2
  23. package/dist/controllers/install.controller.js.map +1 -0
  24. package/dist/{commands → controllers}/list.controller.d.ts +2 -2
  25. package/dist/controllers/list.controller.d.ts.map +1 -0
  26. package/dist/{commands → controllers}/list.controller.js +2 -2
  27. package/dist/controllers/list.controller.js.map +1 -0
  28. package/dist/controllers/pack.controller.d.ts +19 -0
  29. package/dist/controllers/pack.controller.d.ts.map +1 -0
  30. package/dist/{commands → controllers}/pack.controller.js +8 -4
  31. package/dist/controllers/pack.controller.js.map +1 -0
  32. package/dist/{commands → controllers}/permissions.controller.d.ts +2 -2
  33. package/dist/controllers/permissions.controller.d.ts.map +1 -0
  34. package/dist/{commands → controllers}/permissions.controller.js +2 -2
  35. package/dist/controllers/permissions.controller.js.map +1 -0
  36. package/dist/{commands → controllers}/publish.controller.d.ts +3 -3
  37. package/dist/controllers/publish.controller.d.ts.map +1 -0
  38. package/dist/{commands → controllers}/publish.controller.js +2 -2
  39. package/dist/controllers/publish.controller.js.map +1 -0
  40. package/dist/{commands → controllers}/registry.controller.d.ts +2 -2
  41. package/dist/controllers/registry.controller.d.ts.map +1 -0
  42. package/dist/{commands → controllers}/registry.controller.js +2 -2
  43. package/dist/controllers/registry.controller.js.map +1 -0
  44. package/dist/{commands → controllers}/revoke.controller.d.ts +2 -2
  45. package/dist/controllers/revoke.controller.d.ts.map +1 -0
  46. package/dist/{commands → controllers}/revoke.controller.js +2 -2
  47. package/dist/controllers/revoke.controller.js.map +1 -0
  48. package/dist/{commands → controllers}/run.controller.js +8 -6
  49. package/dist/controllers/run.controller.js.map +1 -0
  50. package/dist/{commands → controllers}/uninstall.controller.d.ts +2 -2
  51. package/dist/controllers/uninstall.controller.d.ts.map +1 -0
  52. package/dist/{commands → controllers}/uninstall.controller.js +2 -2
  53. package/dist/controllers/uninstall.controller.js.map +1 -0
  54. package/dist/{commands → controllers}/update.controller.d.ts +2 -2
  55. package/dist/controllers/update.controller.d.ts.map +1 -0
  56. package/dist/{commands → controllers}/update.controller.js +2 -2
  57. package/dist/controllers/update.controller.js.map +1 -0
  58. package/dist/{commands → controllers}/validate-publish.controller.d.ts +3 -3
  59. package/dist/controllers/validate-publish.controller.d.ts.map +1 -0
  60. package/dist/{commands → controllers}/validate-publish.controller.js +9 -5
  61. package/dist/controllers/validate-publish.controller.js.map +1 -0
  62. package/dist/index.d.ts +51 -51
  63. package/dist/index.js +46 -45
  64. package/dist/package.js +1 -1
  65. package/dist/{runtime → services}/app-build.service.d.ts +2 -2
  66. package/dist/services/app-build.service.d.ts.map +1 -0
  67. package/dist/{runtime → services}/app-build.service.js +4 -2
  68. package/dist/services/app-build.service.js.map +1 -0
  69. package/dist/{bundle → services}/app-bundle.service.d.ts +18 -6
  70. package/dist/services/app-bundle.service.d.ts.map +1 -0
  71. package/dist/services/app-bundle.service.js +305 -0
  72. package/dist/services/app-bundle.service.js.map +1 -0
  73. package/dist/{permissions → services}/app-grant.service.d.ts +4 -4
  74. package/dist/services/app-grant.service.d.ts.map +1 -0
  75. package/dist/{permissions → services}/app-grant.service.js +7 -4
  76. package/dist/services/app-grant.service.js.map +1 -0
  77. package/dist/{paths → services}/app-home.service.d.ts +1 -1
  78. package/dist/services/app-home.service.d.ts.map +1 -0
  79. package/dist/{paths → services}/app-home.service.js +1 -1
  80. package/dist/services/app-home.service.js.map +1 -0
  81. package/dist/{host → services}/app-host.service.d.ts +2 -2
  82. package/dist/services/app-host.service.d.ts.map +1 -0
  83. package/dist/{host → services}/app-host.service.js +3 -3
  84. package/dist/services/app-host.service.js.map +1 -0
  85. package/dist/services/app-install-source.service.js +72 -0
  86. package/dist/services/app-install-source.service.js.map +1 -0
  87. package/dist/{install → services}/app-installation.service.d.ts +15 -14
  88. package/dist/services/app-installation.service.d.ts.map +1 -0
  89. package/dist/services/app-installation.service.js +332 -0
  90. package/dist/services/app-installation.service.js.map +1 -0
  91. package/dist/services/app-instance.service.d.ts +34 -0
  92. package/dist/services/app-instance.service.d.ts.map +1 -0
  93. package/dist/{host → services}/app-instance.service.js +4 -4
  94. package/dist/services/app-instance.service.js.map +1 -0
  95. package/dist/{manifest → services}/app-manifest.service.d.ts +12 -2
  96. package/dist/services/app-manifest.service.d.ts.map +1 -0
  97. package/dist/services/app-manifest.service.js +271 -0
  98. package/dist/services/app-manifest.service.js.map +1 -0
  99. package/dist/{publish → services}/app-marketplace-client.service.d.ts +2 -2
  100. package/dist/services/app-marketplace-client.service.d.ts.map +1 -0
  101. package/dist/{publish → services}/app-marketplace-client.service.js +2 -2
  102. package/dist/services/app-marketplace-client.service.js.map +1 -0
  103. package/dist/{publish → services}/app-marketplace-metadata.service.d.ts +3 -3
  104. package/dist/services/app-marketplace-metadata.service.d.ts.map +1 -0
  105. package/dist/{publish → services}/app-marketplace-metadata.service.js +1 -1
  106. package/dist/services/app-marketplace-metadata.service.js.map +1 -0
  107. package/dist/{permissions → services}/app-permissions.service.d.ts +3 -3
  108. package/dist/services/app-permissions.service.d.ts.map +1 -0
  109. package/dist/{permissions → services}/app-permissions.service.js +4 -1
  110. package/dist/services/app-permissions.service.js.map +1 -0
  111. package/dist/{publish → services}/app-publish-validation.service.d.ts +9 -7
  112. package/dist/services/app-publish-validation.service.d.ts.map +1 -0
  113. package/dist/{publish → services}/app-publish-validation.service.js +14 -10
  114. package/dist/services/app-publish-validation.service.js.map +1 -0
  115. package/dist/{publish → services}/app-publish.service.d.ts +5 -5
  116. package/dist/services/app-publish.service.d.ts.map +1 -0
  117. package/dist/{publish → services}/app-publish.service.js +6 -6
  118. package/dist/services/app-publish.service.js.map +1 -0
  119. package/dist/{registry → services}/app-registry-config.service.d.ts +3 -3
  120. package/dist/{registry → services}/app-registry-config.service.d.ts.map +1 -1
  121. package/dist/{registry → services}/app-registry-config.service.js +3 -3
  122. package/dist/services/app-registry-config.service.js.map +1 -0
  123. package/dist/{registry → services}/app-registry.service.d.ts +18 -5
  124. package/dist/services/app-registry.service.d.ts.map +1 -0
  125. package/dist/services/app-registry.service.js +210 -0
  126. package/dist/services/app-registry.service.js.map +1 -0
  127. package/dist/{registry → services}/app-remote-registry-client.service.d.ts +6 -2
  128. package/dist/services/app-remote-registry-client.service.d.ts.map +1 -0
  129. package/dist/{registry → services}/app-remote-registry-client.service.js +54 -8
  130. package/dist/services/app-remote-registry-client.service.js.map +1 -0
  131. package/dist/{cli → services}/app-runtime-cli.service.d.ts +1 -1
  132. package/dist/services/app-runtime-cli.service.d.ts.map +1 -0
  133. package/dist/{cli → services}/app-runtime-cli.service.js +19 -19
  134. package/dist/services/app-runtime-cli.service.js.map +1 -0
  135. package/dist/{cli → services}/app-runtime-options.service.d.ts +6 -6
  136. package/dist/services/app-runtime-options.service.d.ts.map +1 -0
  137. package/dist/{cli → services}/app-runtime-options.service.js +3 -9
  138. package/dist/services/app-runtime-options.service.js.map +1 -0
  139. package/dist/{runtime → services}/app-runtime-toolchain.service.d.ts +1 -1
  140. package/dist/services/app-runtime-toolchain.service.d.ts.map +1 -0
  141. package/dist/{runtime → services}/app-runtime-toolchain.service.js +1 -1
  142. package/dist/services/app-runtime-toolchain.service.js.map +1 -0
  143. package/dist/{scaffold → services}/app-scaffold.service.d.ts +1 -1
  144. package/dist/{scaffold → services}/app-scaffold.service.d.ts.map +1 -1
  145. package/dist/{scaffold → services}/app-scaffold.service.js +1 -1
  146. package/dist/{scaffold → services}/app-scaffold.service.js.map +1 -1
  147. package/dist/{scaffold → services}/app-ts-http-lite-scaffold-template.service.d.ts +1 -1
  148. package/dist/{scaffold → services}/app-ts-http-lite-scaffold-template.service.d.ts.map +1 -1
  149. package/dist/{scaffold → services}/app-ts-http-lite-scaffold-template.service.js +1 -1
  150. package/dist/{scaffold → services}/app-ts-http-lite-scaffold-template.service.js.map +1 -1
  151. package/dist/{scaffold → services}/app-ts-http-scaffold-template.service.d.ts +1 -1
  152. package/dist/{scaffold → services}/app-ts-http-scaffold-template.service.d.ts.map +1 -1
  153. package/dist/{scaffold → services}/app-ts-http-scaffold-template.service.js +1 -1
  154. package/dist/{scaffold → services}/app-ts-http-scaffold-template.service.js.map +1 -1
  155. package/dist/{bridge → services}/host-bridge.service.d.ts +2 -2
  156. package/dist/services/host-bridge.service.d.ts.map +1 -0
  157. package/dist/{bridge → services}/host-bridge.service.js +1 -1
  158. package/dist/services/host-bridge.service.js.map +1 -0
  159. package/dist/services/main-runner.service.d.ts +9 -0
  160. package/dist/services/main-runner.service.d.ts.map +1 -0
  161. package/dist/services/main-runner.service.js +6 -0
  162. package/dist/services/main-runner.service.js.map +1 -0
  163. package/dist/{publish → services}/platform-auth-state.service.d.ts +1 -1
  164. package/dist/services/platform-auth-state.service.d.ts.map +1 -0
  165. package/dist/{publish → services}/platform-auth-state.service.js +1 -1
  166. package/dist/services/platform-auth-state.service.js.map +1 -0
  167. package/dist/{ui → services}/ui-server.service.d.ts +3 -3
  168. package/dist/services/ui-server.service.d.ts.map +1 -0
  169. package/dist/{ui → services}/ui-server.service.js +1 -1
  170. package/dist/services/ui-server.service.js.map +1 -0
  171. package/dist/{runtime → services}/wasm-main-runner.service.d.ts +3 -3
  172. package/dist/services/wasm-main-runner.service.d.ts.map +1 -0
  173. package/dist/{runtime → services}/wasm-main-runner.service.js +2 -2
  174. package/dist/services/wasm-main-runner.service.js.map +1 -0
  175. package/dist/{sidecar → services}/wasm-sidecar-client.service.d.ts +1 -1
  176. package/dist/services/wasm-sidecar-client.service.d.ts.map +1 -0
  177. package/dist/{sidecar → services}/wasm-sidecar-client.service.js +1 -1
  178. package/dist/services/wasm-sidecar-client.service.js.map +1 -0
  179. package/dist/{runtime → services}/wasmtime-wasi-http-component.service.d.ts +1 -1
  180. package/dist/services/wasmtime-wasi-http-component.service.d.ts.map +1 -0
  181. package/dist/{runtime → services}/wasmtime-wasi-http-component.service.js +1 -1
  182. package/dist/services/wasmtime-wasi-http-component.service.js.map +1 -0
  183. package/dist/{bundle → types}/app-bundle.types.d.ts +1 -1
  184. package/dist/types/app-bundle.types.d.ts.map +1 -0
  185. package/dist/{install → types}/app-installation.types.d.ts +27 -7
  186. package/dist/types/app-installation.types.d.ts.map +1 -0
  187. package/dist/types/app-manifest.types.d.ts +119 -0
  188. package/dist/types/app-manifest.types.d.ts.map +1 -0
  189. package/dist/types/app-manifest.types.js +11 -0
  190. package/dist/types/app-manifest.types.js.map +1 -0
  191. package/dist/{permissions → types}/app-permissions.types.d.ts +2 -2
  192. package/dist/types/app-permissions.types.d.ts.map +1 -0
  193. package/dist/{publish → types}/app-publish.types.d.ts +4 -4
  194. package/dist/types/app-publish.types.d.ts.map +1 -0
  195. package/dist/{publish → types}/app-publish.types.js +1 -1
  196. package/dist/types/app-publish.types.js.map +1 -0
  197. package/dist/{registry → types}/app-registry.types.d.ts +8 -4
  198. package/dist/types/app-registry.types.d.ts.map +1 -0
  199. package/dist/{registry → types}/app-remote-registry.types.d.ts +3 -3
  200. package/dist/types/app-remote-registry.types.d.ts.map +1 -0
  201. package/dist/{registry → types}/app-remote-registry.types.js +1 -1
  202. package/dist/types/app-remote-registry.types.js.map +1 -0
  203. package/dist/{runtime → types}/main-runner.types.d.ts +3 -3
  204. package/dist/types/main-runner.types.d.ts.map +1 -0
  205. package/package.json +10 -3
  206. package/dist/bridge/host-bridge.service.d.ts.map +0 -1
  207. package/dist/bridge/host-bridge.service.js.map +0 -1
  208. package/dist/bundle/app-bundle.service.d.ts.map +0 -1
  209. package/dist/bundle/app-bundle.service.js +0 -196
  210. package/dist/bundle/app-bundle.service.js.map +0 -1
  211. package/dist/bundle/app-bundle.types.d.ts.map +0 -1
  212. package/dist/cli/app-runtime-cli.service.d.ts.map +0 -1
  213. package/dist/cli/app-runtime-cli.service.js.map +0 -1
  214. package/dist/cli/app-runtime-options.service.d.ts.map +0 -1
  215. package/dist/cli/app-runtime-options.service.js.map +0 -1
  216. package/dist/commands/create.controller.d.ts.map +0 -1
  217. package/dist/commands/create.controller.js.map +0 -1
  218. package/dist/commands/dev.controller.js.map +0 -1
  219. package/dist/commands/grant.controller.d.ts.map +0 -1
  220. package/dist/commands/grant.controller.js.map +0 -1
  221. package/dist/commands/info.controller.d.ts.map +0 -1
  222. package/dist/commands/info.controller.js.map +0 -1
  223. package/dist/commands/inspect.controller.js.map +0 -1
  224. package/dist/commands/install.controller.d.ts.map +0 -1
  225. package/dist/commands/install.controller.js.map +0 -1
  226. package/dist/commands/list.controller.d.ts.map +0 -1
  227. package/dist/commands/list.controller.js.map +0 -1
  228. package/dist/commands/pack.controller.d.ts +0 -17
  229. package/dist/commands/pack.controller.d.ts.map +0 -1
  230. package/dist/commands/pack.controller.js.map +0 -1
  231. package/dist/commands/permissions.controller.d.ts.map +0 -1
  232. package/dist/commands/permissions.controller.js.map +0 -1
  233. package/dist/commands/publish.controller.d.ts.map +0 -1
  234. package/dist/commands/publish.controller.js.map +0 -1
  235. package/dist/commands/registry.controller.d.ts.map +0 -1
  236. package/dist/commands/registry.controller.js.map +0 -1
  237. package/dist/commands/revoke.controller.d.ts.map +0 -1
  238. package/dist/commands/revoke.controller.js.map +0 -1
  239. package/dist/commands/run.controller.js.map +0 -1
  240. package/dist/commands/uninstall.controller.d.ts.map +0 -1
  241. package/dist/commands/uninstall.controller.js.map +0 -1
  242. package/dist/commands/update.controller.d.ts.map +0 -1
  243. package/dist/commands/update.controller.js.map +0 -1
  244. package/dist/commands/validate-publish.controller.d.ts.map +0 -1
  245. package/dist/commands/validate-publish.controller.js.map +0 -1
  246. package/dist/host/app-host.service.d.ts.map +0 -1
  247. package/dist/host/app-host.service.js.map +0 -1
  248. package/dist/host/app-instance.service.d.ts +0 -34
  249. package/dist/host/app-instance.service.d.ts.map +0 -1
  250. package/dist/host/app-instance.service.js.map +0 -1
  251. package/dist/install/app-installation.service.d.ts.map +0 -1
  252. package/dist/install/app-installation.service.js +0 -276
  253. package/dist/install/app-installation.service.js.map +0 -1
  254. package/dist/install/app-installation.types.d.ts.map +0 -1
  255. package/dist/main.js.map +0 -1
  256. package/dist/manifest/app-manifest.service.d.ts.map +0 -1
  257. package/dist/manifest/app-manifest.service.js +0 -147
  258. package/dist/manifest/app-manifest.service.js.map +0 -1
  259. package/dist/manifest/app-manifest.types.d.ts +0 -68
  260. package/dist/manifest/app-manifest.types.d.ts.map +0 -1
  261. package/dist/paths/app-home.service.d.ts.map +0 -1
  262. package/dist/paths/app-home.service.js.map +0 -1
  263. package/dist/permissions/app-grant.service.d.ts.map +0 -1
  264. package/dist/permissions/app-grant.service.js.map +0 -1
  265. package/dist/permissions/app-permissions.service.d.ts.map +0 -1
  266. package/dist/permissions/app-permissions.service.js.map +0 -1
  267. package/dist/permissions/app-permissions.types.d.ts.map +0 -1
  268. package/dist/publish/app-marketplace-client.service.d.ts.map +0 -1
  269. package/dist/publish/app-marketplace-client.service.js.map +0 -1
  270. package/dist/publish/app-marketplace-metadata.service.d.ts.map +0 -1
  271. package/dist/publish/app-marketplace-metadata.service.js.map +0 -1
  272. package/dist/publish/app-publish-validation.service.d.ts.map +0 -1
  273. package/dist/publish/app-publish-validation.service.js.map +0 -1
  274. package/dist/publish/app-publish.service.d.ts.map +0 -1
  275. package/dist/publish/app-publish.service.js.map +0 -1
  276. package/dist/publish/app-publish.types.d.ts.map +0 -1
  277. package/dist/publish/app-publish.types.js.map +0 -1
  278. package/dist/publish/platform-auth-state.service.d.ts.map +0 -1
  279. package/dist/publish/platform-auth-state.service.js.map +0 -1
  280. package/dist/registry/app-registry-config.service.js.map +0 -1
  281. package/dist/registry/app-registry.service.d.ts.map +0 -1
  282. package/dist/registry/app-registry.service.js +0 -118
  283. package/dist/registry/app-registry.service.js.map +0 -1
  284. package/dist/registry/app-registry.types.d.ts.map +0 -1
  285. package/dist/registry/app-remote-registry-client.service.d.ts.map +0 -1
  286. package/dist/registry/app-remote-registry-client.service.js.map +0 -1
  287. package/dist/registry/app-remote-registry.types.d.ts.map +0 -1
  288. package/dist/registry/app-remote-registry.types.js.map +0 -1
  289. package/dist/runtime/app-build.service.d.ts.map +0 -1
  290. package/dist/runtime/app-build.service.js.map +0 -1
  291. package/dist/runtime/app-runtime-toolchain.service.d.ts.map +0 -1
  292. package/dist/runtime/app-runtime-toolchain.service.js.map +0 -1
  293. package/dist/runtime/main-runner.service.d.ts +0 -9
  294. package/dist/runtime/main-runner.service.d.ts.map +0 -1
  295. package/dist/runtime/main-runner.service.js +0 -6
  296. package/dist/runtime/main-runner.service.js.map +0 -1
  297. package/dist/runtime/main-runner.types.d.ts.map +0 -1
  298. package/dist/runtime/wasm-main-runner.service.d.ts.map +0 -1
  299. package/dist/runtime/wasm-main-runner.service.js.map +0 -1
  300. package/dist/runtime/wasmtime-wasi-http-component.service.d.ts.map +0 -1
  301. package/dist/runtime/wasmtime-wasi-http-component.service.js.map +0 -1
  302. package/dist/sidecar/wasm-sidecar-client.service.d.ts.map +0 -1
  303. package/dist/sidecar/wasm-sidecar-client.service.js.map +0 -1
  304. package/dist/ui/ui-server.service.d.ts.map +0 -1
  305. package/dist/ui/ui-server.service.js.map +0 -1
  306. /package/dist/{main.d.ts → app/main.d.ts} +0 -0
package/README.md CHANGED
@@ -10,9 +10,9 @@
10
10
  - `napp build <app-dir> --install`:安装模板依赖并构建 TS/WASI HTTP 后端
11
11
  - `napp run <app-dir|app-id>`:启动本地宿主,支持目录运行和已安装应用运行
12
12
  - `napp dev <app-dir>`:当前等价于 `run`
13
- - `napp pack <app-dir>`:把应用目录打成 `.napp` 分发包,默认使用轻量 `source` 模式
13
+ - `napp pack <app-dir>`:把应用目录打成 `.napp` 分发包;独立应用默认使用轻量 `source`,组合包默认使用安全的 `bundle`
14
14
  - `napp validate-publish <app-dir>`:本地做发布前校验并输出体积/包内容 warning
15
- - `napp publish <app-dir>`:把应用目录发布到官方 apps registry,默认发布轻量 `source` 分发包
15
+ - `napp publish <app-dir>`:把应用目录发布到官方 apps registry;独立应用默认使用 `source`,组合包默认使用 `bundle`
16
16
  - `napp install <app-dir|bundle.napp|app-id[@version]>`:从本地或 registry 安装应用
17
17
  - `napp update <app-id>`:更新已安装应用
18
18
  - `napp uninstall <app-id>`:卸载已安装应用
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
- import { AppRuntimeCliService } from "./cli/app-runtime-cli.service.js";
3
- //#region src/main.ts
2
+ import { AppRuntimeCliService } from "../services/app-runtime-cli.service.js";
3
+ //#region src/app/main.ts
4
4
  new AppRuntimeCliService().run().catch((error) => {
5
5
  process.stderr.write(`${error instanceof Error ? error.message : String(error)}\n`);
6
6
  process.exit(1);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","names":[],"sources":["../../src/app/main.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { AppRuntimeCliService } from \"#app-runtime/services/app-runtime-cli.service.js\";\n\nvoid new AppRuntimeCliService().run().catch((error) => {\n process.stderr.write(`${error instanceof Error ? error.message : String(error)}\\n`);\n process.exit(1);\n});\n"],"mappings":";;;AAIK,IAAI,sBAAsB,CAAC,KAAK,CAAC,OAAO,UAAU;AACrD,SAAQ,OAAO,MAAM,GAAG,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM,CAAC,IAAI;AACnF,SAAQ,KAAK,EAAE;EACf"}
@@ -1,6 +1,6 @@
1
- import { AppScaffoldService, AppScaffoldTemplate } from "../scaffold/app-scaffold.service.js";
1
+ import { AppScaffoldService, AppScaffoldTemplate } from "../services/app-scaffold.service.js";
2
2
 
3
- //#region src/commands/create.controller.d.ts
3
+ //#region src/controllers/create.controller.d.ts
4
4
  declare class CreateCommand {
5
5
  private readonly scaffoldService;
6
6
  constructor(scaffoldService?: AppScaffoldService);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.controller.d.ts","names":[],"sources":["../../src/controllers/create.controller.ts"],"mappings":";;;cAGa,aAAA;EAAA,iBAEQ,eAAA;cAAA,eAAA,GAAiB,kBAAA;EAGpC,GAAA,GAAa,MAAA;IACX,YAAA;IACA,QAAA,EAAU,mBAAA;IACV,IAAA;IACA,KAAA,GAAQ,IAAA;EAAA,MACN,OAAA;AAAA"}
@@ -1,5 +1,5 @@
1
- import { AppScaffoldService } from "../scaffold/app-scaffold.service.js";
2
- //#region src/commands/create.controller.ts
1
+ import { AppScaffoldService } from "../services/app-scaffold.service.js";
2
+ //#region src/controllers/create.controller.ts
3
3
  var CreateCommand = class {
4
4
  constructor(scaffoldService = new AppScaffoldService()) {
5
5
  this.scaffoldService = scaffoldService;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.controller.js","names":[],"sources":["../../src/controllers/create.controller.ts"],"sourcesContent":["import { AppScaffoldService } from \"#app-runtime/services/app-scaffold.service.js\";\nimport type { AppScaffoldTemplate } from \"#app-runtime/services/app-scaffold.service.js\";\n\nexport class CreateCommand {\n constructor(\n private readonly scaffoldService: AppScaffoldService = new AppScaffoldService(),\n ) {}\n\n run = async (params: {\n appDirectory: string;\n template: AppScaffoldTemplate;\n json: boolean;\n write: (text: string) => void;\n }): Promise<void> => {\n const { appDirectory, template, json, write } = params;\n const result = await this.scaffoldService.scaffold(appDirectory, { template });\n if (json) {\n write(`${JSON.stringify({ ok: true, created: result }, null, 2)}\\n`);\n return;\n }\n write(`Created app scaffold at ${result.appDirectory}\\n`);\n write(`Template: ${result.template}\\n`);\n write(`Manifest: ${result.manifestPath}\\n`);\n write(\"Next: napp inspect <app-dir> && napp run <app-dir>\\n\");\n };\n}\n"],"mappings":";;AAGA,IAAa,gBAAb,MAA2B;CACzB,YACE,kBAAuD,IAAI,oBAAoB,EAC/E;AADiB,OAAA,kBAAA;;CAGnB,MAAM,OAAO,WAKQ;EACnB,MAAM,EAAE,cAAc,UAAU,MAAM,UAAU;EAChD,MAAM,SAAS,MAAM,KAAK,gBAAgB,SAAS,cAAc,EAAE,UAAU,CAAC;AAC9E,MAAI,MAAM;AACR,SAAM,GAAG,KAAK,UAAU;IAAE,IAAI;IAAM,SAAS;IAAQ,EAAE,MAAM,EAAE,CAAC,IAAI;AACpE;;AAEF,QAAM,2BAA2B,OAAO,aAAa,IAAI;AACzD,QAAM,aAAa,OAAO,SAAS,IAAI;AACvC,QAAM,aAAa,OAAO,aAAa,IAAI;AAC3C,QAAM,uDAAuD"}
@@ -1,5 +1,5 @@
1
1
  import { RunCommand } from "./run.controller.js";
2
- //#region src/commands/dev.controller.ts
2
+ //#region src/controllers/dev.controller.ts
3
3
  var DevCommand = class {
4
4
  constructor(runCommand = new RunCommand()) {
5
5
  this.runCommand = runCommand;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev.controller.js","names":[],"sources":["../../src/controllers/dev.controller.ts"],"sourcesContent":["import { RunCommand, type RunCommandInput } from \"./run.controller.js\";\n\nexport class DevCommand {\n constructor(private readonly runCommand: RunCommand = new RunCommand()) {}\n\n run = async (params: RunCommandInput): Promise<void> => {\n await this.runCommand.run(params);\n };\n}\n"],"mappings":";;AAEA,IAAa,aAAb,MAAwB;CACtB,YAAY,aAA0C,IAAI,YAAY,EAAE;AAA3C,OAAA,aAAA;;CAE7B,MAAM,OAAO,WAA2C;AACtD,QAAM,KAAK,WAAW,IAAI,OAAO"}
@@ -1,7 +1,7 @@
1
- import { AppDocumentGrantMap } from "../permissions/app-permissions.types.js";
2
- import { AppGrantService } from "../permissions/app-grant.service.js";
1
+ import { AppDocumentGrantMap } from "../types/app-permissions.types.js";
2
+ import { AppGrantService } from "../services/app-grant.service.js";
3
3
 
4
- //#region src/commands/grant.controller.d.ts
4
+ //#region src/controllers/grant.controller.d.ts
5
5
  declare class GrantCommand {
6
6
  private readonly grantService;
7
7
  constructor(grantService?: AppGrantService);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grant.controller.d.ts","names":[],"sources":["../../src/controllers/grant.controller.ts"],"mappings":";;;;cAGa,YAAA;EAAA,iBAEQ,YAAA;cAAA,YAAA,GAAc,eAAA;EAGjC,GAAA,GAAa,MAAA;IACX,KAAA;IACA,gBAAA,EAAkB,mBAAA;IAClB,IAAA;IACA,KAAA,GAAQ,IAAA;EAAA,MACN,OAAA;AAAA"}
@@ -1,5 +1,5 @@
1
- import { AppGrantService } from "../permissions/app-grant.service.js";
2
- //#region src/commands/grant.controller.ts
1
+ import { AppGrantService } from "../services/app-grant.service.js";
2
+ //#region src/controllers/grant.controller.ts
3
3
  var GrantCommand = class {
4
4
  constructor(grantService = new AppGrantService()) {
5
5
  this.grantService = grantService;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grant.controller.js","names":[],"sources":["../../src/controllers/grant.controller.ts"],"sourcesContent":["import { AppGrantService } from \"#app-runtime/services/app-grant.service.js\";\nimport type { AppDocumentGrantMap } from \"#app-runtime/types/app-permissions.types.js\";\n\nexport class GrantCommand {\n constructor(\n private readonly grantService: AppGrantService = new AppGrantService(),\n ) {}\n\n run = async (params: {\n appId: string;\n documentGrantMap: AppDocumentGrantMap;\n json: boolean;\n write: (text: string) => void;\n }): Promise<void> => {\n const { appId, documentGrantMap, json, write } = params;\n const results = await Promise.all(\n Object.entries(documentGrantMap).map(([scopeId, directoryPath]) =>\n this.grantService.grantDocumentScope({\n appId,\n scopeId,\n directoryPath,\n }),\n ),\n );\n if (json) {\n write(`${JSON.stringify({ ok: true, grants: results }, null, 2)}\\n`);\n return;\n }\n for (const result of results) {\n write(`Granted ${result.scopeId} -> ${result.grantedPath}\\n`);\n }\n };\n}\n"],"mappings":";;AAGA,IAAa,eAAb,MAA0B;CACxB,YACE,eAAiD,IAAI,iBAAiB,EACtE;AADiB,OAAA,eAAA;;CAGnB,MAAM,OAAO,WAKQ;EACnB,MAAM,EAAE,OAAO,kBAAkB,MAAM,UAAU;EACjD,MAAM,UAAU,MAAM,QAAQ,IAC5B,OAAO,QAAQ,iBAAiB,CAAC,KAAK,CAAC,SAAS,mBAC9C,KAAK,aAAa,mBAAmB;GACnC;GACA;GACA;GACD,CAAC,CACH,CACF;AACD,MAAI,MAAM;AACR,SAAM,GAAG,KAAK,UAAU;IAAE,IAAI;IAAM,QAAQ;IAAS,EAAE,MAAM,EAAE,CAAC,IAAI;AACpE;;AAEF,OAAK,MAAM,UAAU,QACnB,OAAM,WAAW,OAAO,QAAQ,MAAM,OAAO,YAAY,IAAI"}
@@ -1,6 +1,6 @@
1
- import { AppInstallationService } from "../install/app-installation.service.js";
1
+ import { AppInstallationService } from "../services/app-installation.service.js";
2
2
 
3
- //#region src/commands/info.controller.d.ts
3
+ //#region src/controllers/info.controller.d.ts
4
4
  declare class InfoCommand {
5
5
  private readonly installationService;
6
6
  constructor(installationService?: AppInstallationService);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"info.controller.d.ts","names":[],"sources":["../../src/controllers/info.controller.ts"],"mappings":";;;cAEa,WAAA;EAAA,iBAEQ,mBAAA;cAAA,mBAAA,GAAqB,sBAAA;EAGxC,GAAA,GAAa,MAAA;IACX,KAAA;IACA,IAAA;IACA,KAAA,GAAQ,IAAA;EAAA,MACN,OAAA;AAAA"}
@@ -1,5 +1,5 @@
1
- import { AppInstallationService } from "../install/app-installation.service.js";
2
- //#region src/commands/info.controller.ts
1
+ import { AppInstallationService } from "../services/app-installation.service.js";
2
+ //#region src/controllers/info.controller.ts
3
3
  var InfoCommand = class {
4
4
  constructor(installationService = new AppInstallationService()) {
5
5
  this.installationService = installationService;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"info.controller.js","names":[],"sources":["../../src/controllers/info.controller.ts"],"sourcesContent":["import { AppInstallationService } from \"#app-runtime/services/app-installation.service.js\";\n\nexport class InfoCommand {\n constructor(\n private readonly installationService: AppInstallationService = new AppInstallationService(),\n ) {}\n\n run = async (params: {\n appId: string;\n json: boolean;\n write: (text: string) => void;\n }): Promise<void> => {\n const { appId, json, write } = params;\n const result = await this.installationService.info(appId);\n if (json) {\n write(`${JSON.stringify({ ok: true, app: result }, null, 2)}\\n`);\n return;\n }\n write(`App: ${result.name} (${result.appId})\\n`);\n write(`Active version: ${result.activeVersion}\\n`);\n write(`Data: ${result.dataDirectory}\\n`);\n write(`Installed versions: ${result.installedVersions.map((item) => item.version).join(\", \")}\\n`);\n const activeVersion = result.installedVersions.find(\n (item) => item.version === result.activeVersion,\n );\n if (activeVersion?.registryUrl) {\n write(`Registry: ${activeVersion.registryUrl}\\n`);\n }\n if (activeVersion?.publisher) {\n write(`Publisher: ${activeVersion.publisher.name} (${activeVersion.publisher.id})\\n`);\n }\n };\n}\n"],"mappings":";;AAEA,IAAa,cAAb,MAAyB;CACvB,YACE,sBAA+D,IAAI,wBAAwB,EAC3F;AADiB,OAAA,sBAAA;;CAGnB,MAAM,OAAO,WAIQ;EACnB,MAAM,EAAE,OAAO,MAAM,UAAU;EAC/B,MAAM,SAAS,MAAM,KAAK,oBAAoB,KAAK,MAAM;AACzD,MAAI,MAAM;AACR,SAAM,GAAG,KAAK,UAAU;IAAE,IAAI;IAAM,KAAK;IAAQ,EAAE,MAAM,EAAE,CAAC,IAAI;AAChE;;AAEF,QAAM,QAAQ,OAAO,KAAK,IAAI,OAAO,MAAM,KAAK;AAChD,QAAM,mBAAmB,OAAO,cAAc,IAAI;AAClD,QAAM,SAAS,OAAO,cAAc,IAAI;AACxC,QAAM,uBAAuB,OAAO,kBAAkB,KAAK,SAAS,KAAK,QAAQ,CAAC,KAAK,KAAK,CAAC,IAAI;EACjG,MAAM,gBAAgB,OAAO,kBAAkB,MAC5C,SAAS,KAAK,YAAY,OAAO,cACnC;AACD,MAAI,eAAe,YACjB,OAAM,aAAa,cAAc,YAAY,IAAI;AAEnD,MAAI,eAAe,UACjB,OAAM,cAAc,cAAc,UAAU,KAAK,IAAI,cAAc,UAAU,GAAG,KAAK"}
@@ -1,5 +1,5 @@
1
- import { AppManifestService } from "../manifest/app-manifest.service.js";
2
- //#region src/commands/inspect.controller.ts
1
+ import { AppManifestService } from "../services/app-manifest.service.js";
2
+ //#region src/controllers/inspect.controller.ts
3
3
  var InspectCommand = class {
4
4
  constructor(manifestService = new AppManifestService()) {
5
5
  this.manifestService = manifestService;
@@ -17,6 +17,12 @@ var InspectCommand = class {
17
17
  }
18
18
  write(`App: ${summary.name} (${summary.id})\n`);
19
19
  write(`Version: ${summary.version}\n`);
20
+ if (summary.schemaVersion === 2) {
21
+ write(`Profile: components\n`);
22
+ write(`Components (${summary.components.length}): ${summary.components.map((component) => `${component.kind}:${component.id}`).join(", ")}\n`);
23
+ if (summary.primaryPanelId) write(`Primary Panel: ${summary.primaryPanelId}\n`);
24
+ return;
25
+ }
20
26
  write(`Main Kind: ${summary.mainKind}\n`);
21
27
  if (summary.action) write(`Action: ${summary.action}\n`);
22
28
  write(`Main: ${summary.mainEntryPath}\n`);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inspect.controller.js","names":[],"sources":["../../src/controllers/inspect.controller.ts"],"sourcesContent":["import { AppManifestService } from \"#app-runtime/services/app-manifest.service.js\";\n\nexport class InspectCommand {\n constructor(\n private readonly manifestService: AppManifestService = new AppManifestService(),\n ) {}\n\n run = async (params: {\n appDirectory: string;\n json: boolean;\n write: (text: string) => void;\n }): Promise<void> => {\n const { appDirectory, json, write } = params;\n const bundle = await this.manifestService.load(appDirectory);\n const summary = this.manifestService.summarize(bundle);\n if (json) {\n write(`${JSON.stringify({ ok: true, summary }, null, 2)}\\n`);\n return;\n }\n write(`App: ${summary.name} (${summary.id})\\n`);\n write(`Version: ${summary.version}\\n`);\n if (summary.schemaVersion === 2) {\n write(`Profile: components\\n`);\n write(`Components (${summary.components.length}): ${summary.components.map((component) => `${component.kind}:${component.id}`).join(\", \")}\\n`);\n if (summary.primaryPanelId) {\n write(`Primary Panel: ${summary.primaryPanelId}\\n`);\n }\n return;\n }\n write(`Main Kind: ${summary.mainKind}\\n`);\n if (summary.action) {\n write(`Action: ${summary.action}\\n`);\n }\n write(`Main: ${summary.mainEntryPath}\\n`);\n write(`UI: ${summary.uiEntryPath}\\n`);\n };\n}\n"],"mappings":";;AAEA,IAAa,iBAAb,MAA4B;CAC1B,YACE,kBAAuD,IAAI,oBAAoB,EAC/E;AADiB,OAAA,kBAAA;;CAGnB,MAAM,OAAO,WAIQ;EACnB,MAAM,EAAE,cAAc,MAAM,UAAU;EACtC,MAAM,SAAS,MAAM,KAAK,gBAAgB,KAAK,aAAa;EAC5D,MAAM,UAAU,KAAK,gBAAgB,UAAU,OAAO;AACtD,MAAI,MAAM;AACR,SAAM,GAAG,KAAK,UAAU;IAAE,IAAI;IAAM;IAAS,EAAE,MAAM,EAAE,CAAC,IAAI;AAC5D;;AAEF,QAAM,QAAQ,QAAQ,KAAK,IAAI,QAAQ,GAAG,KAAK;AAC/C,QAAM,YAAY,QAAQ,QAAQ,IAAI;AACtC,MAAI,QAAQ,kBAAkB,GAAG;AAC/B,SAAM,wBAAwB;AAC9B,SAAM,eAAe,QAAQ,WAAW,OAAO,KAAK,QAAQ,WAAW,KAAK,cAAc,GAAG,UAAU,KAAK,GAAG,UAAU,KAAK,CAAC,KAAK,KAAK,CAAC,IAAI;AAC9I,OAAI,QAAQ,eACV,OAAM,kBAAkB,QAAQ,eAAe,IAAI;AAErD;;AAEF,QAAM,cAAc,QAAQ,SAAS,IAAI;AACzC,MAAI,QAAQ,OACV,OAAM,WAAW,QAAQ,OAAO,IAAI;AAEtC,QAAM,SAAS,QAAQ,cAAc,IAAI;AACzC,QAAM,OAAO,QAAQ,YAAY,IAAI"}
@@ -1,6 +1,6 @@
1
- import { AppInstallationService } from "../install/app-installation.service.js";
1
+ import { AppInstallationService } from "../services/app-installation.service.js";
2
2
 
3
- //#region src/commands/install.controller.d.ts
3
+ //#region src/controllers/install.controller.d.ts
4
4
  declare class InstallCommand {
5
5
  private readonly installationService;
6
6
  constructor(installationService?: AppInstallationService);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.controller.d.ts","names":[],"sources":["../../src/controllers/install.controller.ts"],"mappings":";;;cAEa,cAAA;EAAA,iBAEQ,mBAAA;cAAA,mBAAA,GAAqB,sBAAA;EAGxC,GAAA,GAAa,MAAA;IACX,SAAA;IACA,WAAA;IACA,IAAA;IACA,KAAA,GAAQ,IAAA;EAAA,MACN,OAAA;AAAA"}
@@ -1,5 +1,5 @@
1
- import { AppInstallationService } from "../install/app-installation.service.js";
2
- //#region src/commands/install.controller.ts
1
+ import { AppInstallationService } from "../services/app-installation.service.js";
2
+ //#region src/controllers/install.controller.ts
3
3
  var InstallCommand = class {
4
4
  constructor(installationService = new AppInstallationService()) {
5
5
  this.installationService = installationService;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.controller.js","names":[],"sources":["../../src/controllers/install.controller.ts"],"sourcesContent":["import { AppInstallationService } from \"#app-runtime/services/app-installation.service.js\";\n\nexport class InstallCommand {\n constructor(\n private readonly installationService: AppInstallationService = new AppInstallationService(),\n ) {}\n\n run = async (params: {\n appSource: string;\n registryUrl?: string;\n json: boolean;\n write: (text: string) => void;\n }): Promise<void> => {\n const { appSource, registryUrl, json, write } = params;\n const result = await this.installationService.install(appSource, {\n registryUrl,\n });\n if (json) {\n write(`${JSON.stringify({ ok: true, installation: result }, null, 2)}\\n`);\n return;\n }\n write(`Installed ${result.name} (${result.appId}) ${result.version}\\n`);\n write(`Code: ${result.installDirectory}\\n`);\n write(`Data: ${result.dataDirectory}\\n`);\n if (result.registryUrl) {\n write(`Registry: ${result.registryUrl}\\n`);\n }\n };\n}\n"],"mappings":";;AAEA,IAAa,iBAAb,MAA4B;CAC1B,YACE,sBAA+D,IAAI,wBAAwB,EAC3F;AADiB,OAAA,sBAAA;;CAGnB,MAAM,OAAO,WAKQ;EACnB,MAAM,EAAE,WAAW,aAAa,MAAM,UAAU;EAChD,MAAM,SAAS,MAAM,KAAK,oBAAoB,QAAQ,WAAW,EAC/D,aACD,CAAC;AACF,MAAI,MAAM;AACR,SAAM,GAAG,KAAK,UAAU;IAAE,IAAI;IAAM,cAAc;IAAQ,EAAE,MAAM,EAAE,CAAC,IAAI;AACzE;;AAEF,QAAM,aAAa,OAAO,KAAK,IAAI,OAAO,MAAM,IAAI,OAAO,QAAQ,IAAI;AACvE,QAAM,SAAS,OAAO,iBAAiB,IAAI;AAC3C,QAAM,SAAS,OAAO,cAAc,IAAI;AACxC,MAAI,OAAO,YACT,OAAM,aAAa,OAAO,YAAY,IAAI"}
@@ -1,6 +1,6 @@
1
- import { AppInstallationService } from "../install/app-installation.service.js";
1
+ import { AppInstallationService } from "../services/app-installation.service.js";
2
2
 
3
- //#region src/commands/list.controller.d.ts
3
+ //#region src/controllers/list.controller.d.ts
4
4
  declare class ListCommand {
5
5
  private readonly installationService;
6
6
  constructor(installationService?: AppInstallationService);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.controller.d.ts","names":[],"sources":["../../src/controllers/list.controller.ts"],"mappings":";;;cAEa,WAAA;EAAA,iBAEQ,mBAAA;cAAA,mBAAA,GAAqB,sBAAA;EAGxC,GAAA,GAAa,MAAA;IACX,IAAA;IACA,KAAA,GAAQ,IAAA;EAAA,MACN,OAAA;AAAA"}
@@ -1,5 +1,5 @@
1
- import { AppInstallationService } from "../install/app-installation.service.js";
2
- //#region src/commands/list.controller.ts
1
+ import { AppInstallationService } from "../services/app-installation.service.js";
2
+ //#region src/controllers/list.controller.ts
3
3
  var ListCommand = class {
4
4
  constructor(installationService = new AppInstallationService()) {
5
5
  this.installationService = installationService;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.controller.js","names":[],"sources":["../../src/controllers/list.controller.ts"],"sourcesContent":["import { AppInstallationService } from \"#app-runtime/services/app-installation.service.js\";\n\nexport class ListCommand {\n constructor(\n private readonly installationService: AppInstallationService = new AppInstallationService(),\n ) {}\n\n run = async (params: {\n json: boolean;\n write: (text: string) => void;\n }): Promise<void> => {\n const { json, write } = params;\n const result = await this.installationService.list();\n if (json) {\n write(`${JSON.stringify({ ok: true, apps: result }, null, 2)}\\n`);\n return;\n }\n if (result.length === 0) {\n write(\"No installed apps.\\n\");\n return;\n }\n for (const appItem of result) {\n write(`${appItem.appId} ${appItem.activeVersion} ${appItem.sourceKind} ${appItem.name}\\n`);\n }\n };\n}\n"],"mappings":";;AAEA,IAAa,cAAb,MAAyB;CACvB,YACE,sBAA+D,IAAI,wBAAwB,EAC3F;AADiB,OAAA,sBAAA;;CAGnB,MAAM,OAAO,WAGQ;EACnB,MAAM,EAAE,MAAM,UAAU;EACxB,MAAM,SAAS,MAAM,KAAK,oBAAoB,MAAM;AACpD,MAAI,MAAM;AACR,SAAM,GAAG,KAAK,UAAU;IAAE,IAAI;IAAM,MAAM;IAAQ,EAAE,MAAM,EAAE,CAAC,IAAI;AACjE;;AAEF,MAAI,OAAO,WAAW,GAAG;AACvB,SAAM,uBAAuB;AAC7B;;AAEF,OAAK,MAAM,WAAW,OACpB,OAAM,GAAG,QAAQ,MAAM,GAAG,QAAQ,cAAc,GAAG,QAAQ,WAAW,GAAG,QAAQ,KAAK,IAAI"}
@@ -0,0 +1,19 @@
1
+ import { AppManifestService } from "../services/app-manifest.service.js";
2
+ import { AppBundleService } from "../services/app-bundle.service.js";
3
+
4
+ //#region src/controllers/pack.controller.d.ts
5
+ declare class PackCommand {
6
+ private readonly bundleService;
7
+ private readonly manifestService;
8
+ constructor(bundleService?: AppBundleService, manifestService?: AppManifestService);
9
+ run: (params: {
10
+ appDirectory: string;
11
+ outputPath?: string;
12
+ mode?: "source" | "bundle";
13
+ json: boolean;
14
+ write: (text: string) => void;
15
+ }) => Promise<void>;
16
+ }
17
+ //#endregion
18
+ export { PackCommand };
19
+ //# sourceMappingURL=pack.controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pack.controller.d.ts","names":[],"sources":["../../src/controllers/pack.controller.ts"],"mappings":";;;;cAGa,WAAA;EAAA,iBAEQ,aAAA;EAAA,iBACA,eAAA;cADA,aAAA,GAAe,gBAAA,EACf,eAAA,GAAiB,kBAAA;EAGpC,GAAA,GAAa,MAAA;IACX,YAAA;IACA,UAAA;IACA,IAAA;IACA,IAAA;IACA,KAAA,GAAQ,IAAA;EAAA,MACN,OAAA;AAAA"}
@@ -1,15 +1,19 @@
1
- import { AppBundleService } from "../bundle/app-bundle.service.js";
2
- //#region src/commands/pack.controller.ts
1
+ import { AppManifestService } from "../services/app-manifest.service.js";
2
+ import { AppBundleService } from "../services/app-bundle.service.js";
3
+ //#region src/controllers/pack.controller.ts
3
4
  var PackCommand = class {
4
- constructor(bundleService = new AppBundleService()) {
5
+ constructor(bundleService = new AppBundleService(), manifestService = new AppManifestService()) {
5
6
  this.bundleService = bundleService;
7
+ this.manifestService = manifestService;
6
8
  }
7
9
  run = async (params) => {
8
10
  const { appDirectory, outputPath, mode, json, write } = params;
11
+ const manifest = await this.manifestService.load(appDirectory);
12
+ const distributionMode = mode ?? (manifest.manifest.schemaVersion === 2 ? "bundle" : "source");
9
13
  const result = await this.bundleService.packAppDirectory({
10
14
  appDirectory,
11
15
  outputPath,
12
- mode
16
+ mode: distributionMode
13
17
  });
14
18
  if (json) {
15
19
  write(`${JSON.stringify({
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pack.controller.js","names":[],"sources":["../../src/controllers/pack.controller.ts"],"sourcesContent":["import { AppBundleService } from \"#app-runtime/services/app-bundle.service.js\";\nimport { AppManifestService } from \"#app-runtime/services/app-manifest.service.js\";\n\nexport class PackCommand {\n constructor(\n private readonly bundleService: AppBundleService = new AppBundleService(),\n private readonly manifestService: AppManifestService = new AppManifestService(),\n ) {}\n\n run = async (params: {\n appDirectory: string;\n outputPath?: string;\n mode?: \"source\" | \"bundle\";\n json: boolean;\n write: (text: string) => void;\n }): Promise<void> => {\n const { appDirectory, outputPath, mode, json, write } = params;\n const manifest = await this.manifestService.load(appDirectory);\n const distributionMode = mode ?? (manifest.manifest.schemaVersion === 2 ? \"bundle\" : \"source\");\n const result = await this.bundleService.packAppDirectory({\n appDirectory,\n outputPath,\n mode: distributionMode,\n });\n if (json) {\n write(`${JSON.stringify({ ok: true, bundle: result }, null, 2)}\\n`);\n return;\n }\n write(`Packed ${result.metadata.name} ${result.metadata.version} (${result.metadata.distributionMode})\\n`);\n write(`Bundle: ${result.bundlePath}\\n`);\n };\n}\n"],"mappings":";;;AAGA,IAAa,cAAb,MAAyB;CACvB,YACE,gBAAmD,IAAI,kBAAkB,EACzE,kBAAuD,IAAI,oBAAoB,EAC/E;AAFiB,OAAA,gBAAA;AACA,OAAA,kBAAA;;CAGnB,MAAM,OAAO,WAMQ;EACnB,MAAM,EAAE,cAAc,YAAY,MAAM,MAAM,UAAU;EACxD,MAAM,WAAW,MAAM,KAAK,gBAAgB,KAAK,aAAa;EAC9D,MAAM,mBAAmB,SAAS,SAAS,SAAS,kBAAkB,IAAI,WAAW;EACrF,MAAM,SAAS,MAAM,KAAK,cAAc,iBAAiB;GACvD;GACA;GACA,MAAM;GACP,CAAC;AACF,MAAI,MAAM;AACR,SAAM,GAAG,KAAK,UAAU;IAAE,IAAI;IAAM,QAAQ;IAAQ,EAAE,MAAM,EAAE,CAAC,IAAI;AACnE;;AAEF,QAAM,UAAU,OAAO,SAAS,KAAK,GAAG,OAAO,SAAS,QAAQ,IAAI,OAAO,SAAS,iBAAiB,KAAK;AAC1G,QAAM,WAAW,OAAO,WAAW,IAAI"}
@@ -1,6 +1,6 @@
1
- import { AppGrantService } from "../permissions/app-grant.service.js";
1
+ import { AppGrantService } from "../services/app-grant.service.js";
2
2
 
3
- //#region src/commands/permissions.controller.d.ts
3
+ //#region src/controllers/permissions.controller.d.ts
4
4
  declare class PermissionsCommand {
5
5
  private readonly grantService;
6
6
  constructor(grantService?: AppGrantService);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissions.controller.d.ts","names":[],"sources":["../../src/controllers/permissions.controller.ts"],"mappings":";;;cAEa,kBAAA;EAAA,iBAEQ,YAAA;cAAA,YAAA,GAAc,eAAA;EAGjC,GAAA,GAAa,MAAA;IACX,KAAA;IACA,IAAA;IACA,KAAA,GAAQ,IAAA;EAAA,MACN,OAAA;AAAA"}
@@ -1,5 +1,5 @@
1
- import { AppGrantService } from "../permissions/app-grant.service.js";
2
- //#region src/commands/permissions.controller.ts
1
+ import { AppGrantService } from "../services/app-grant.service.js";
2
+ //#region src/controllers/permissions.controller.ts
3
3
  var PermissionsCommand = class {
4
4
  constructor(grantService = new AppGrantService()) {
5
5
  this.grantService = grantService;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissions.controller.js","names":[],"sources":["../../src/controllers/permissions.controller.ts"],"sourcesContent":["import { AppGrantService } from \"#app-runtime/services/app-grant.service.js\";\n\nexport class PermissionsCommand {\n constructor(\n private readonly grantService: AppGrantService = new AppGrantService(),\n ) {}\n\n run = async (params: {\n appId: string;\n json: boolean;\n write: (text: string) => void;\n }): Promise<void> => {\n const { appId, json, write } = params;\n const result = await this.grantService.summarize(appId);\n if (json) {\n write(`${JSON.stringify({ ok: true, permissions: result }, null, 2)}\\n`);\n return;\n }\n write(`Permissions: ${result.name} (${result.appId}) ${result.activeVersion}\\n`);\n if (result.documentAccess.length === 0) {\n write(\"Document access: none\\n\");\n } else {\n for (const scope of result.documentAccess) {\n write(\n `Document ${scope.id} ${scope.mode} ${scope.granted ? scope.grantedPath : \"[missing]\"}\\n`,\n );\n }\n }\n write(\n `Allowed domains: ${result.allowedDomains.length > 0 ? result.allowedDomains.join(\", \") : \"none\"}\\n`,\n );\n write(`Storage: ${result.storage.enabled ? result.storage.namespace ?? \"enabled\" : \"disabled\"}\\n`);\n write(`Host bridge: ${result.capabilities.hostBridge ? \"enabled\" : \"disabled\"}\\n`);\n };\n}\n"],"mappings":";;AAEA,IAAa,qBAAb,MAAgC;CAC9B,YACE,eAAiD,IAAI,iBAAiB,EACtE;AADiB,OAAA,eAAA;;CAGnB,MAAM,OAAO,WAIQ;EACnB,MAAM,EAAE,OAAO,MAAM,UAAU;EAC/B,MAAM,SAAS,MAAM,KAAK,aAAa,UAAU,MAAM;AACvD,MAAI,MAAM;AACR,SAAM,GAAG,KAAK,UAAU;IAAE,IAAI;IAAM,aAAa;IAAQ,EAAE,MAAM,EAAE,CAAC,IAAI;AACxE;;AAEF,QAAM,gBAAgB,OAAO,KAAK,IAAI,OAAO,MAAM,IAAI,OAAO,cAAc,IAAI;AAChF,MAAI,OAAO,eAAe,WAAW,EACnC,OAAM,0BAA0B;MAEhC,MAAK,MAAM,SAAS,OAAO,eACzB,OACE,YAAY,MAAM,GAAG,GAAG,MAAM,KAAK,GAAG,MAAM,UAAU,MAAM,cAAc,YAAY,IACvF;AAGL,QACE,oBAAoB,OAAO,eAAe,SAAS,IAAI,OAAO,eAAe,KAAK,KAAK,GAAG,OAAO,IAClG;AACD,QAAM,YAAY,OAAO,QAAQ,UAAU,OAAO,QAAQ,aAAa,YAAY,WAAW,IAAI;AAClG,QAAM,gBAAgB,OAAO,aAAa,aAAa,YAAY,WAAW,IAAI"}
@@ -1,6 +1,6 @@
1
- import { AppPublishService } from "../publish/app-publish.service.js";
1
+ import { AppPublishService } from "../services/app-publish.service.js";
2
2
 
3
- //#region src/commands/publish.controller.d.ts
3
+ //#region src/controllers/publish.controller.d.ts
4
4
  declare class PublishCommand {
5
5
  private readonly publishService;
6
6
  constructor(publishService?: AppPublishService);
@@ -9,7 +9,7 @@ declare class PublishCommand {
9
9
  metadataPath?: string;
10
10
  apiBaseUrl?: string;
11
11
  token?: string;
12
- mode: "source" | "bundle";
12
+ mode?: "source" | "bundle";
13
13
  json: boolean;
14
14
  write: (text: string) => void;
15
15
  }) => Promise<void>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publish.controller.d.ts","names":[],"sources":["../../src/controllers/publish.controller.ts"],"mappings":";;;cAEa,cAAA;EAAA,iBAEQ,cAAA;cAAA,cAAA,GAAgB,iBAAA;EAGnC,GAAA,GAAa,MAAA;IACX,YAAA;IACA,YAAA;IACA,UAAA;IACA,KAAA;IACA,IAAA;IACA,IAAA;IACA,KAAA,GAAQ,IAAA;EAAA,MACN,OAAA;AAAA"}
@@ -1,5 +1,5 @@
1
- import { AppPublishService } from "../publish/app-publish.service.js";
2
- //#region src/commands/publish.controller.ts
1
+ import { AppPublishService } from "../services/app-publish.service.js";
2
+ //#region src/controllers/publish.controller.ts
3
3
  var PublishCommand = class {
4
4
  constructor(publishService = new AppPublishService()) {
5
5
  this.publishService = publishService;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publish.controller.js","names":[],"sources":["../../src/controllers/publish.controller.ts"],"sourcesContent":["import { AppPublishService } from \"#app-runtime/services/app-publish.service.js\";\n\nexport class PublishCommand {\n constructor(\n private readonly publishService: AppPublishService = new AppPublishService(),\n ) {}\n\n run = async (params: {\n appDirectory: string;\n metadataPath?: string;\n apiBaseUrl?: string;\n token?: string;\n mode?: \"source\" | \"bundle\";\n json: boolean;\n write: (text: string) => void;\n }): Promise<void> => {\n const { appDirectory, metadataPath, apiBaseUrl, token, mode, json, write } = params;\n const result = await this.publishService.publish({\n appDirectory,\n metadataPath,\n apiBaseUrl,\n token,\n mode,\n });\n if (json) {\n write(`${JSON.stringify({ ok: true, publish: result }, null, 2)}\\n`);\n return;\n }\n write(\n `${result.created ? \"Published\" : \"Updated\"} ${result.item.name} (${result.item.appId}) ${result.item.latestVersion}\\n`,\n );\n write(`Distribution: ${result.distribution.path} (${result.distribution.mode})\\n`);\n if (result.item.webUrl) {\n write(`Details: ${result.item.webUrl}\\n`);\n }\n write(`Install: ${result.item.install.command}\\n`);\n };\n}\n"],"mappings":";;AAEA,IAAa,iBAAb,MAA4B;CAC1B,YACE,iBAAqD,IAAI,mBAAmB,EAC5E;AADiB,OAAA,iBAAA;;CAGnB,MAAM,OAAO,WAQQ;EACnB,MAAM,EAAE,cAAc,cAAc,YAAY,OAAO,MAAM,MAAM,UAAU;EAC7E,MAAM,SAAS,MAAM,KAAK,eAAe,QAAQ;GAC/C;GACA;GACA;GACA;GACA;GACD,CAAC;AACF,MAAI,MAAM;AACR,SAAM,GAAG,KAAK,UAAU;IAAE,IAAI;IAAM,SAAS;IAAQ,EAAE,MAAM,EAAE,CAAC,IAAI;AACpE;;AAEF,QACE,GAAG,OAAO,UAAU,cAAc,UAAU,GAAG,OAAO,KAAK,KAAK,IAAI,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,cAAc,IACrH;AACD,QAAM,iBAAiB,OAAO,aAAa,KAAK,IAAI,OAAO,aAAa,KAAK,KAAK;AAClF,MAAI,OAAO,KAAK,OACd,OAAM,YAAY,OAAO,KAAK,OAAO,IAAI;AAE3C,QAAM,YAAY,OAAO,KAAK,QAAQ,QAAQ,IAAI"}
@@ -1,6 +1,6 @@
1
- import { AppRegistryConfigService } from "../registry/app-registry-config.service.js";
1
+ import { AppRegistryConfigService } from "../services/app-registry-config.service.js";
2
2
 
3
- //#region src/commands/registry.controller.d.ts
3
+ //#region src/controllers/registry.controller.d.ts
4
4
  declare class RegistryCommand {
5
5
  private readonly configService;
6
6
  constructor(configService?: AppRegistryConfigService);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.controller.d.ts","names":[],"sources":["../../src/controllers/registry.controller.ts"],"mappings":";;;cAEa,eAAA;EAAA,iBAEQ,aAAA;cAAA,aAAA,GAAe,wBAAA;EAGlC,GAAA,GAAa,MAAA;IACX,MAAA;IACA,WAAA;IACA,IAAA;IACA,KAAA,GAAQ,IAAA;EAAA,MACN,OAAA;EAAA,QAiBI,kBAAA;AAAA"}
@@ -1,5 +1,5 @@
1
- import { AppRegistryConfigService } from "../registry/app-registry-config.service.js";
2
- //#region src/commands/registry.controller.ts
1
+ import { AppRegistryConfigService } from "../services/app-registry-config.service.js";
2
+ //#region src/controllers/registry.controller.ts
3
3
  var RegistryCommand = class {
4
4
  constructor(configService = new AppRegistryConfigService()) {
5
5
  this.configService = configService;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.controller.js","names":[],"sources":["../../src/controllers/registry.controller.ts"],"sourcesContent":["import { AppRegistryConfigService } from \"#app-runtime/services/app-registry-config.service.js\";\n\nexport class RegistryCommand {\n constructor(\n private readonly configService: AppRegistryConfigService = new AppRegistryConfigService(),\n ) {}\n\n run = async (params: {\n action: \"get\" | \"set\" | \"reset\";\n registryUrl?: string;\n json: boolean;\n write: (text: string) => void;\n }): Promise<void> => {\n const { action, registryUrl, json, write } = params;\n const snapshot =\n action === \"set\"\n ? await this.configService.setRegistryUrl(this.requireRegistryUrl(registryUrl))\n : action === \"reset\"\n ? await this.configService.resetRegistryUrl()\n : await this.configService.getSnapshot();\n if (json) {\n write(`${JSON.stringify({ ok: true, registry: snapshot }, null, 2)}\\n`);\n return;\n }\n write(`Registry: ${snapshot.currentUrl}\\n`);\n write(`Source: ${snapshot.source}\\n`);\n write(`Default: ${snapshot.defaultUrl}\\n`);\n };\n\n private requireRegistryUrl = (registryUrl: string | undefined): string => {\n if (!registryUrl) {\n throw new Error(\"registry set 缺少 URL。\");\n }\n return registryUrl;\n };\n}\n"],"mappings":";;AAEA,IAAa,kBAAb,MAA6B;CAC3B,YACE,gBAA2D,IAAI,0BAA0B,EACzF;AADiB,OAAA,gBAAA;;CAGnB,MAAM,OAAO,WAKQ;EACnB,MAAM,EAAE,QAAQ,aAAa,MAAM,UAAU;EAC7C,MAAM,WACJ,WAAW,QACP,MAAM,KAAK,cAAc,eAAe,KAAK,mBAAmB,YAAY,CAAC,GAC7E,WAAW,UACT,MAAM,KAAK,cAAc,kBAAkB,GAC3C,MAAM,KAAK,cAAc,aAAa;AAC9C,MAAI,MAAM;AACR,SAAM,GAAG,KAAK,UAAU;IAAE,IAAI;IAAM,UAAU;IAAU,EAAE,MAAM,EAAE,CAAC,IAAI;AACvE;;AAEF,QAAM,aAAa,SAAS,WAAW,IAAI;AAC3C,QAAM,WAAW,SAAS,OAAO,IAAI;AACrC,QAAM,YAAY,SAAS,WAAW,IAAI;;CAG5C,sBAA8B,gBAA4C;AACxE,MAAI,CAAC,YACH,OAAM,IAAI,MAAM,uBAAuB;AAEzC,SAAO"}
@@ -1,6 +1,6 @@
1
- import { AppGrantService } from "../permissions/app-grant.service.js";
1
+ import { AppGrantService } from "../services/app-grant.service.js";
2
2
 
3
- //#region src/commands/revoke.controller.d.ts
3
+ //#region src/controllers/revoke.controller.d.ts
4
4
  declare class RevokeCommand {
5
5
  private readonly grantService;
6
6
  constructor(grantService?: AppGrantService);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"revoke.controller.d.ts","names":[],"sources":["../../src/controllers/revoke.controller.ts"],"mappings":";;;cAEa,aAAA;EAAA,iBAEQ,YAAA;cAAA,YAAA,GAAc,eAAA;EAGjC,GAAA,GAAa,MAAA;IACX,KAAA;IACA,gBAAA;IACA,IAAA;IACA,KAAA,GAAQ,IAAA;EAAA,MACN,OAAA;AAAA"}
@@ -1,5 +1,5 @@
1
- import { AppGrantService } from "../permissions/app-grant.service.js";
2
- //#region src/commands/revoke.controller.ts
1
+ import { AppGrantService } from "../services/app-grant.service.js";
2
+ //#region src/controllers/revoke.controller.ts
3
3
  var RevokeCommand = class {
4
4
  constructor(grantService = new AppGrantService()) {
5
5
  this.grantService = grantService;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"revoke.controller.js","names":[],"sources":["../../src/controllers/revoke.controller.ts"],"sourcesContent":["import { AppGrantService } from \"#app-runtime/services/app-grant.service.js\";\n\nexport class RevokeCommand {\n constructor(\n private readonly grantService: AppGrantService = new AppGrantService(),\n ) {}\n\n run = async (params: {\n appId: string;\n documentScopeIds: string[];\n json: boolean;\n write: (text: string) => void;\n }): Promise<void> => {\n const { appId, documentScopeIds, json, write } = params;\n const results = await Promise.all(\n documentScopeIds.map((scopeId) =>\n this.grantService.revokeDocumentScope({\n appId,\n scopeId,\n }),\n ),\n );\n if (json) {\n write(`${JSON.stringify({ ok: true, revocations: results }, null, 2)}\\n`);\n return;\n }\n for (const result of results) {\n write(`Revoked ${result.scopeId}: ${result.removed ? \"yes\" : \"no\"}\\n`);\n }\n };\n}\n"],"mappings":";;AAEA,IAAa,gBAAb,MAA2B;CACzB,YACE,eAAiD,IAAI,iBAAiB,EACtE;AADiB,OAAA,eAAA;;CAGnB,MAAM,OAAO,WAKQ;EACnB,MAAM,EAAE,OAAO,kBAAkB,MAAM,UAAU;EACjD,MAAM,UAAU,MAAM,QAAQ,IAC5B,iBAAiB,KAAK,YACpB,KAAK,aAAa,oBAAoB;GACpC;GACA;GACD,CAAC,CACH,CACF;AACD,MAAI,MAAM;AACR,SAAM,GAAG,KAAK,UAAU;IAAE,IAAI;IAAM,aAAa;IAAS,EAAE,MAAM,EAAE,CAAC,IAAI;AACzE;;AAEF,OAAK,MAAM,UAAU,QACnB,OAAM,WAAW,OAAO,QAAQ,IAAI,OAAO,UAAU,QAAQ,KAAK,IAAI"}
@@ -1,9 +1,10 @@
1
- import { AppManifestService } from "../manifest/app-manifest.service.js";
2
- import { AppHostService } from "../host/app-host.service.js";
3
- import { AppInstanceService } from "../host/app-instance.service.js";
4
- import { AppInstallationService } from "../install/app-installation.service.js";
5
- import { WasmtimeWasiHttpComponentService } from "../runtime/wasmtime-wasi-http-component.service.js";
6
- //#region src/commands/run.controller.ts
1
+ import { AppManifestService } from "../services/app-manifest.service.js";
2
+ import { isAppStandaloneManifestBundle } from "../types/app-manifest.types.js";
3
+ import { AppHostService } from "../services/app-host.service.js";
4
+ import { AppInstanceService } from "../services/app-instance.service.js";
5
+ import { AppInstallationService } from "../services/app-installation.service.js";
6
+ import { WasmtimeWasiHttpComponentService } from "../services/wasmtime-wasi-http-component.service.js";
7
+ //#region src/controllers/run.controller.ts
7
8
  var RunCommand = class {
8
9
  constructor(manifestService = new AppManifestService(), installationService = new AppInstallationService()) {
9
10
  this.manifestService = manifestService;
@@ -13,6 +14,7 @@ var RunCommand = class {
13
14
  const { appReference, host, port, dataDirectory, json, documentGrantMap, write } = params;
14
15
  const launch = await this.installationService.resolveLaunch(appReference, documentGrantMap);
15
16
  const bundle = await this.manifestService.load(launch.appDirectory);
17
+ if (!isAppStandaloneManifestBundle(bundle)) throw new Error("schema v2 组合包由 NextClaw 主产品运行,不能使用 napp run。");
16
18
  const appInstance = new AppInstanceService(bundle);
17
19
  await appInstance.initialize(launch.documentGrantMap, { appId: launch.appId });
18
20
  await this.installationService.persistGrants(launch.appId, launch.documentGrantMap);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.controller.js","names":[],"sources":["../../src/controllers/run.controller.ts"],"sourcesContent":["import { AppHostService } from \"#app-runtime/services/app-host.service.js\";\nimport { AppInstanceService } from \"#app-runtime/services/app-instance.service.js\";\nimport { AppInstallationService } from \"#app-runtime/services/app-installation.service.js\";\nimport { AppManifestService } from \"#app-runtime/services/app-manifest.service.js\";\nimport { isAppStandaloneManifestBundle } from \"#app-runtime/types/app-manifest.types.js\";\nimport type { AppDocumentGrantMap } from \"#app-runtime/types/app-permissions.types.js\";\nimport { WasmtimeWasiHttpComponentService } from \"#app-runtime/services/wasmtime-wasi-http-component.service.js\";\n\nexport type RunCommandInput = {\n appReference: string;\n host: string;\n port: number;\n dataDirectory?: string;\n json: boolean;\n documentGrantMap: AppDocumentGrantMap;\n write: (text: string) => void;\n};\n\nexport class RunCommand {\n constructor(\n private readonly manifestService: AppManifestService = new AppManifestService(),\n private readonly installationService: AppInstallationService = new AppInstallationService(),\n ) {}\n\n run = async (params: RunCommandInput): Promise<void> => {\n const { appReference, host, port, dataDirectory, json, documentGrantMap, write } = params;\n const launch = await this.installationService.resolveLaunch(appReference, documentGrantMap);\n const bundle = await this.manifestService.load(launch.appDirectory);\n if (!isAppStandaloneManifestBundle(bundle)) {\n throw new Error(\"schema v2 组合包由 NextClaw 主产品运行,不能使用 napp run。\");\n }\n const appInstance = new AppInstanceService(bundle);\n await appInstance.initialize(launch.documentGrantMap, {\n appId: launch.appId,\n });\n await this.installationService.persistGrants(launch.appId, launch.documentGrantMap);\n const wasiHttpComponentService =\n bundle.manifest.main.kind === \"wasi-http-component\"\n ? new WasmtimeWasiHttpComponentService()\n : undefined;\n const effectiveDataDirectory = dataDirectory ?? launch.dataDirectory;\n if (wasiHttpComponentService) {\n if (!effectiveDataDirectory) {\n throw new Error(\"wasi-http-component 应用需要通过 --data /path 指定后端数据目录。\");\n }\n await wasiHttpComponentService.start({\n wasmPath: bundle.mainEntryPath,\n dataDirectory: effectiveDataDirectory,\n });\n }\n const appHost = new AppHostService(appInstance, wasiHttpComponentService);\n let hostHandle: Awaited<ReturnType<AppHostService[\"start\"]>>;\n try {\n hostHandle = await appHost.start({\n host,\n port,\n });\n } catch (error) {\n await wasiHttpComponentService?.stop();\n throw error;\n }\n\n const shutdown = async (): Promise<void> => {\n await appHost.stop();\n await wasiHttpComponentService?.stop();\n process.exit(0);\n };\n\n process.once(\"SIGINT\", () => {\n void shutdown();\n });\n process.once(\"SIGTERM\", () => {\n void shutdown();\n });\n\n if (json) {\n write(\n `${JSON.stringify(\n {\n ok: true,\n host: hostHandle,\n app: {\n appId: launch.appId ?? bundle.manifest.id,\n appDirectory: launch.appDirectory,\n dataDirectory: effectiveDataDirectory,\n },\n },\n null,\n 2,\n )}\\n`,\n );\n return;\n }\n\n write(`[napp] ${bundle.manifest.name} listening on ${hostHandle.url}\\n`);\n };\n}\n"],"mappings":";;;;;;;AAkBA,IAAa,aAAb,MAAwB;CACtB,YACE,kBAAuD,IAAI,oBAAoB,EAC/E,sBAA+D,IAAI,wBAAwB,EAC3F;AAFiB,OAAA,kBAAA;AACA,OAAA,sBAAA;;CAGnB,MAAM,OAAO,WAA2C;EACtD,MAAM,EAAE,cAAc,MAAM,MAAM,eAAe,MAAM,kBAAkB,UAAU;EACnF,MAAM,SAAS,MAAM,KAAK,oBAAoB,cAAc,cAAc,iBAAiB;EAC3F,MAAM,SAAS,MAAM,KAAK,gBAAgB,KAAK,OAAO,aAAa;AACnE,MAAI,CAAC,8BAA8B,OAAO,CACxC,OAAM,IAAI,MAAM,+CAA+C;EAEjE,MAAM,cAAc,IAAI,mBAAmB,OAAO;AAClD,QAAM,YAAY,WAAW,OAAO,kBAAkB,EACpD,OAAO,OAAO,OACf,CAAC;AACF,QAAM,KAAK,oBAAoB,cAAc,OAAO,OAAO,OAAO,iBAAiB;EACnF,MAAM,2BACJ,OAAO,SAAS,KAAK,SAAS,wBAC1B,IAAI,kCAAkC,GACtC,KAAA;EACN,MAAM,yBAAyB,iBAAiB,OAAO;AACvD,MAAI,0BAA0B;AAC5B,OAAI,CAAC,uBACH,OAAM,IAAI,MAAM,oDAAoD;AAEtE,SAAM,yBAAyB,MAAM;IACnC,UAAU,OAAO;IACjB,eAAe;IAChB,CAAC;;EAEJ,MAAM,UAAU,IAAI,eAAe,aAAa,yBAAyB;EACzE,IAAI;AACJ,MAAI;AACF,gBAAa,MAAM,QAAQ,MAAM;IAC/B;IACA;IACD,CAAC;WACK,OAAO;AACd,SAAM,0BAA0B,MAAM;AACtC,SAAM;;EAGR,MAAM,WAAW,YAA2B;AAC1C,SAAM,QAAQ,MAAM;AACpB,SAAM,0BAA0B,MAAM;AACtC,WAAQ,KAAK,EAAE;;AAGjB,UAAQ,KAAK,gBAAgB;AACtB,aAAU;IACf;AACF,UAAQ,KAAK,iBAAiB;AACvB,aAAU;IACf;AAEF,MAAI,MAAM;AACR,SACE,GAAG,KAAK,UACN;IACE,IAAI;IACJ,MAAM;IACN,KAAK;KACH,OAAO,OAAO,SAAS,OAAO,SAAS;KACvC,cAAc,OAAO;KACrB,eAAe;KAChB;IACF,EACD,MACA,EACD,CAAC,IACH;AACD;;AAGF,QAAM,UAAU,OAAO,SAAS,KAAK,gBAAgB,WAAW,IAAI,IAAI"}
@@ -1,6 +1,6 @@
1
- import { AppInstallationService } from "../install/app-installation.service.js";
1
+ import { AppInstallationService } from "../services/app-installation.service.js";
2
2
 
3
- //#region src/commands/uninstall.controller.d.ts
3
+ //#region src/controllers/uninstall.controller.d.ts
4
4
  declare class UninstallCommand {
5
5
  private readonly installationService;
6
6
  constructor(installationService?: AppInstallationService);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uninstall.controller.d.ts","names":[],"sources":["../../src/controllers/uninstall.controller.ts"],"mappings":";;;cAEa,gBAAA;EAAA,iBAEQ,mBAAA;cAAA,mBAAA,GAAqB,sBAAA;EAGxC,GAAA,GAAa,MAAA;IACX,KAAA;IACA,SAAA;IACA,IAAA;IACA,KAAA,GAAQ,IAAA;EAAA,MACN,OAAA;AAAA"}
@@ -1,5 +1,5 @@
1
- import { AppInstallationService } from "../install/app-installation.service.js";
2
- //#region src/commands/uninstall.controller.ts
1
+ import { AppInstallationService } from "../services/app-installation.service.js";
2
+ //#region src/controllers/uninstall.controller.ts
3
3
  var UninstallCommand = class {
4
4
  constructor(installationService = new AppInstallationService()) {
5
5
  this.installationService = installationService;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uninstall.controller.js","names":[],"sources":["../../src/controllers/uninstall.controller.ts"],"sourcesContent":["import { AppInstallationService } from \"#app-runtime/services/app-installation.service.js\";\n\nexport class UninstallCommand {\n constructor(\n private readonly installationService: AppInstallationService = new AppInstallationService(),\n ) {}\n\n run = async (params: {\n appId: string;\n purgeData: boolean;\n json: boolean;\n write: (text: string) => void;\n }): Promise<void> => {\n const { appId, purgeData, json, write } = params;\n const result = await this.installationService.uninstall(appId, purgeData);\n if (json) {\n write(`${JSON.stringify({ ok: true, uninstall: result }, null, 2)}\\n`);\n return;\n }\n write(`Uninstalled ${result.appId}\\n`);\n write(`Versions: ${result.removedVersions.join(\", \")}\\n`);\n write(`Data removed: ${result.dataRemoved ? \"yes\" : \"no\"}\\n`);\n };\n}\n"],"mappings":";;AAEA,IAAa,mBAAb,MAA8B;CAC5B,YACE,sBAA+D,IAAI,wBAAwB,EAC3F;AADiB,OAAA,sBAAA;;CAGnB,MAAM,OAAO,WAKQ;EACnB,MAAM,EAAE,OAAO,WAAW,MAAM,UAAU;EAC1C,MAAM,SAAS,MAAM,KAAK,oBAAoB,UAAU,OAAO,UAAU;AACzE,MAAI,MAAM;AACR,SAAM,GAAG,KAAK,UAAU;IAAE,IAAI;IAAM,WAAW;IAAQ,EAAE,MAAM,EAAE,CAAC,IAAI;AACtE;;AAEF,QAAM,eAAe,OAAO,MAAM,IAAI;AACtC,QAAM,aAAa,OAAO,gBAAgB,KAAK,KAAK,CAAC,IAAI;AACzD,QAAM,iBAAiB,OAAO,cAAc,QAAQ,KAAK,IAAI"}
@@ -1,6 +1,6 @@
1
- import { AppInstallationService } from "../install/app-installation.service.js";
1
+ import { AppInstallationService } from "../services/app-installation.service.js";
2
2
 
3
- //#region src/commands/update.controller.d.ts
3
+ //#region src/controllers/update.controller.d.ts
4
4
  declare class UpdateCommand {
5
5
  private readonly installationService;
6
6
  constructor(installationService?: AppInstallationService);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.controller.d.ts","names":[],"sources":["../../src/controllers/update.controller.ts"],"mappings":";;;cAEa,aAAA;EAAA,iBAEQ,mBAAA;cAAA,mBAAA,GAAqB,sBAAA;EAGxC,GAAA,GAAa,MAAA;IACX,KAAA;IACA,OAAA;IACA,WAAA;IACA,IAAA;IACA,KAAA,GAAQ,IAAA;EAAA,MACN,OAAA;AAAA"}
@@ -1,5 +1,5 @@
1
- import { AppInstallationService } from "../install/app-installation.service.js";
2
- //#region src/commands/update.controller.ts
1
+ import { AppInstallationService } from "../services/app-installation.service.js";
2
+ //#region src/controllers/update.controller.ts
3
3
  var UpdateCommand = class {
4
4
  constructor(installationService = new AppInstallationService()) {
5
5
  this.installationService = installationService;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.controller.js","names":[],"sources":["../../src/controllers/update.controller.ts"],"sourcesContent":["import { AppInstallationService } from \"#app-runtime/services/app-installation.service.js\";\n\nexport class UpdateCommand {\n constructor(\n private readonly installationService: AppInstallationService = new AppInstallationService(),\n ) {}\n\n run = async (params: {\n appId: string;\n version?: string;\n registryUrl?: string;\n json: boolean;\n write: (text: string) => void;\n }): Promise<void> => {\n const { appId, version, registryUrl, json, write } = params;\n const result = await this.installationService.update(appId, {\n version,\n registryUrl,\n });\n if (json) {\n write(`${JSON.stringify({ ok: true, update: result }, null, 2)}\\n`);\n return;\n }\n if (!result.updated) {\n write(`Already up to date: ${result.appId} ${result.version}\\n`);\n return;\n }\n write(`Updated ${result.name} (${result.appId}) ${result.previousVersion} -> ${result.version}\\n`);\n write(`Code: ${result.installDirectory}\\n`);\n };\n}\n"],"mappings":";;AAEA,IAAa,gBAAb,MAA2B;CACzB,YACE,sBAA+D,IAAI,wBAAwB,EAC3F;AADiB,OAAA,sBAAA;;CAGnB,MAAM,OAAO,WAMQ;EACnB,MAAM,EAAE,OAAO,SAAS,aAAa,MAAM,UAAU;EACrD,MAAM,SAAS,MAAM,KAAK,oBAAoB,OAAO,OAAO;GAC1D;GACA;GACD,CAAC;AACF,MAAI,MAAM;AACR,SAAM,GAAG,KAAK,UAAU;IAAE,IAAI;IAAM,QAAQ;IAAQ,EAAE,MAAM,EAAE,CAAC,IAAI;AACnE;;AAEF,MAAI,CAAC,OAAO,SAAS;AACnB,SAAM,uBAAuB,OAAO,MAAM,GAAG,OAAO,QAAQ,IAAI;AAChE;;AAEF,QAAM,WAAW,OAAO,KAAK,IAAI,OAAO,MAAM,IAAI,OAAO,gBAAgB,MAAM,OAAO,QAAQ,IAAI;AAClG,QAAM,SAAS,OAAO,iBAAiB,IAAI"}
@@ -1,13 +1,13 @@
1
- import { AppPublishValidationService } from "../publish/app-publish-validation.service.js";
1
+ import { AppPublishValidationService } from "../services/app-publish-validation.service.js";
2
2
 
3
- //#region src/commands/validate-publish.controller.d.ts
3
+ //#region src/controllers/validate-publish.controller.d.ts
4
4
  declare class ValidatePublishCommand {
5
5
  private readonly validationService;
6
6
  constructor(validationService?: AppPublishValidationService);
7
7
  run: (params: {
8
8
  appDirectory: string;
9
9
  metadataPath?: string;
10
- mode: "source" | "bundle";
10
+ mode?: "source" | "bundle";
11
11
  json: boolean;
12
12
  write: (text: string) => void;
13
13
  }) => Promise<void>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-publish.controller.d.ts","names":[],"sources":["../../src/controllers/validate-publish.controller.ts"],"mappings":";;;cAEa,sBAAA;EAAA,iBAEQ,iBAAA;cAAA,iBAAA,GAAmB,2BAAA;EAGtC,GAAA,GAAa,MAAA;IACX,YAAA;IACA,YAAA;IACA,IAAA;IACA,IAAA;IACA,KAAA,GAAQ,IAAA;EAAA,MACN,OAAA;AAAA"}
@@ -1,5 +1,5 @@
1
- import { AppPublishValidationService } from "../publish/app-publish-validation.service.js";
2
- //#region src/commands/validate-publish.controller.ts
1
+ import { AppPublishValidationService } from "../services/app-publish-validation.service.js";
2
+ //#region src/controllers/validate-publish.controller.ts
3
3
  var ValidatePublishCommand = class {
4
4
  constructor(validationService = new AppPublishValidationService()) {
5
5
  this.validationService = validationService;
@@ -20,11 +20,15 @@ var ValidatePublishCommand = class {
20
20
  }
21
21
  write(`Publish validation ok for ${result.appId}@${result.version}\n`);
22
22
  write(`Distribution mode: ${result.distributionMode}\n`);
23
- write(`Main kind: ${result.mainKind}\n`);
24
- write(`Main: ${result.mainEntryPath}\n`);
23
+ write(`Profile: ${result.profile}\n`);
24
+ if (result.mainKind && result.mainEntryPath) {
25
+ write(`Main kind: ${result.mainKind}\n`);
26
+ write(`Main: ${result.mainEntryPath}\n`);
27
+ }
28
+ if (result.componentCount !== void 0) write(`Components: ${result.componentCount}\n`);
25
29
  write(`Metadata: ${result.metadataPath}\n`);
26
30
  write(`Bundle size: ${result.bundleSizeBytes} bytes\n`);
27
- write(`Main entry size: ${result.mainEntrySizeBytes} bytes\n`);
31
+ if (result.mainEntrySizeBytes !== void 0) write(`Main entry size: ${result.mainEntrySizeBytes} bytes\n`);
28
32
  write(`Bundle files (${result.bundleFilePaths.length}): ${result.bundleFilePaths.join(", ")}\n`);
29
33
  if (result.warnings.length > 0) for (const warning of result.warnings) write(`Warning [${warning.code}]: ${warning.message}\n`);
30
34
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-publish.controller.js","names":[],"sources":["../../src/controllers/validate-publish.controller.ts"],"sourcesContent":["import { AppPublishValidationService } from \"#app-runtime/services/app-publish-validation.service.js\";\n\nexport class ValidatePublishCommand {\n constructor(\n private readonly validationService: AppPublishValidationService = new AppPublishValidationService(),\n ) {}\n\n run = async (params: {\n appDirectory: string;\n metadataPath?: string;\n mode?: \"source\" | \"bundle\";\n json: boolean;\n write: (text: string) => void;\n }): Promise<void> => {\n const { appDirectory, metadataPath, mode, json, write } = params;\n const result = await this.validationService.validate({\n appDirectory,\n metadataPath,\n mode,\n });\n if (json) {\n write(`${JSON.stringify({ ok: true, validation: result }, null, 2)}\\n`);\n return;\n }\n write(`Publish validation ok for ${result.appId}@${result.version}\\n`);\n write(`Distribution mode: ${result.distributionMode}\\n`);\n write(`Profile: ${result.profile}\\n`);\n if (result.mainKind && result.mainEntryPath) {\n write(`Main kind: ${result.mainKind}\\n`);\n write(`Main: ${result.mainEntryPath}\\n`);\n }\n if (result.componentCount !== undefined) {\n write(`Components: ${result.componentCount}\\n`);\n }\n write(`Metadata: ${result.metadataPath}\\n`);\n write(`Bundle size: ${result.bundleSizeBytes} bytes\\n`);\n if (result.mainEntrySizeBytes !== undefined) {\n write(`Main entry size: ${result.mainEntrySizeBytes} bytes\\n`);\n }\n write(`Bundle files (${result.bundleFilePaths.length}): ${result.bundleFilePaths.join(\", \")}\\n`);\n if (result.warnings.length > 0) {\n for (const warning of result.warnings) {\n write(`Warning [${warning.code}]: ${warning.message}\\n`);\n }\n }\n };\n}\n"],"mappings":";;AAEA,IAAa,yBAAb,MAAoC;CAClC,YACE,oBAAkE,IAAI,6BAA6B,EACnG;AADiB,OAAA,oBAAA;;CAGnB,MAAM,OAAO,WAMQ;EACnB,MAAM,EAAE,cAAc,cAAc,MAAM,MAAM,UAAU;EAC1D,MAAM,SAAS,MAAM,KAAK,kBAAkB,SAAS;GACnD;GACA;GACA;GACD,CAAC;AACF,MAAI,MAAM;AACR,SAAM,GAAG,KAAK,UAAU;IAAE,IAAI;IAAM,YAAY;IAAQ,EAAE,MAAM,EAAE,CAAC,IAAI;AACvE;;AAEF,QAAM,6BAA6B,OAAO,MAAM,GAAG,OAAO,QAAQ,IAAI;AACtE,QAAM,sBAAsB,OAAO,iBAAiB,IAAI;AACxD,QAAM,YAAY,OAAO,QAAQ,IAAI;AACrC,MAAI,OAAO,YAAY,OAAO,eAAe;AAC3C,SAAM,cAAc,OAAO,SAAS,IAAI;AACxC,SAAM,SAAS,OAAO,cAAc,IAAI;;AAE1C,MAAI,OAAO,mBAAmB,KAAA,EAC5B,OAAM,eAAe,OAAO,eAAe,IAAI;AAEjD,QAAM,aAAa,OAAO,aAAa,IAAI;AAC3C,QAAM,gBAAgB,OAAO,gBAAgB,UAAU;AACvD,MAAI,OAAO,uBAAuB,KAAA,EAChC,OAAM,oBAAoB,OAAO,mBAAmB,UAAU;AAEhE,QAAM,iBAAiB,OAAO,gBAAgB,OAAO,KAAK,OAAO,gBAAgB,KAAK,KAAK,CAAC,IAAI;AAChG,MAAI,OAAO,SAAS,SAAS,EAC3B,MAAK,MAAM,WAAW,OAAO,SAC3B,OAAM,YAAY,QAAQ,KAAK,KAAK,QAAQ,QAAQ,IAAI"}