@nocobase/app-server 0.11.1-alpha.4 → 2.0.0-beta.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 (579) hide show
  1. package/README.md +295 -0
  2. package/dist/application/index.d.ts +128 -0
  3. package/dist/application/index.d.ts.map +1 -0
  4. package/dist/application/index.js +386 -0
  5. package/dist/application/index.js.map +1 -0
  6. package/dist/caching/config.d.ts +2 -0
  7. package/dist/caching/config.d.ts.map +1 -0
  8. package/dist/caching/config.js +2 -0
  9. package/dist/caching/config.js.map +1 -0
  10. package/dist/caching/index.d.ts +5 -0
  11. package/dist/caching/index.d.ts.map +1 -0
  12. package/dist/caching/index.js +4 -0
  13. package/dist/caching/index.js.map +1 -0
  14. package/dist/caching/provider.d.ts +8 -0
  15. package/dist/caching/provider.d.ts.map +1 -0
  16. package/dist/caching/provider.js +14 -0
  17. package/dist/caching/provider.js.map +1 -0
  18. package/dist/caching/token.d.ts +4 -0
  19. package/dist/caching/token.d.ts.map +1 -0
  20. package/dist/caching/token.js +3 -0
  21. package/dist/caching/token.js.map +1 -0
  22. package/dist/config/app-config-types.d.ts +44 -0
  23. package/dist/config/app-config-types.d.ts.map +1 -0
  24. package/dist/config/app-config-types.js +2 -0
  25. package/dist/config/app-config-types.js.map +1 -0
  26. package/dist/config/app-config.d.ts +60 -0
  27. package/dist/config/app-config.d.ts.map +1 -0
  28. package/dist/config/app-config.js +247 -0
  29. package/dist/config/app-config.js.map +1 -0
  30. package/dist/config/context.d.ts +3 -0
  31. package/dist/config/context.d.ts.map +1 -0
  32. package/dist/config/context.js +7 -0
  33. package/dist/config/context.js.map +1 -0
  34. package/dist/config/define-app-config.d.ts +71 -0
  35. package/dist/config/define-app-config.d.ts.map +1 -0
  36. package/dist/config/define-app-config.js +48 -0
  37. package/dist/config/define-app-config.js.map +1 -0
  38. package/dist/config/index.d.ts +13 -0
  39. package/dist/config/index.d.ts.map +1 -0
  40. package/dist/config/index.js +11 -0
  41. package/dist/config/index.js.map +1 -0
  42. package/dist/config/not-configured.d.ts +23 -0
  43. package/dist/config/not-configured.d.ts.map +1 -0
  44. package/dist/config/not-configured.js +31 -0
  45. package/dist/config/not-configured.js.map +1 -0
  46. package/dist/config/paths.d.ts +27 -0
  47. package/dist/config/paths.d.ts.map +1 -0
  48. package/dist/config/paths.js +27 -0
  49. package/dist/config/paths.js.map +1 -0
  50. package/dist/config/placeholder-secret.d.ts +19 -0
  51. package/dist/config/placeholder-secret.d.ts.map +1 -0
  52. package/dist/config/placeholder-secret.js +26 -0
  53. package/dist/config/placeholder-secret.js.map +1 -0
  54. package/dist/config/runtime-environment.d.ts +11 -0
  55. package/dist/config/runtime-environment.d.ts.map +1 -0
  56. package/dist/config/runtime-environment.js +20 -0
  57. package/dist/config/runtime-environment.js.map +1 -0
  58. package/dist/config/types.d.ts +12 -0
  59. package/dist/config/types.d.ts.map +1 -0
  60. package/dist/config/types.js +2 -0
  61. package/dist/config/types.js.map +1 -0
  62. package/dist/config/validation.d.ts +36 -0
  63. package/dist/config/validation.d.ts.map +1 -0
  64. package/dist/config/validation.js +186 -0
  65. package/dist/config/validation.js.map +1 -0
  66. package/dist/config/variables.d.ts +57 -0
  67. package/dist/config/variables.d.ts.map +1 -0
  68. package/dist/config/variables.js +89 -0
  69. package/dist/config/variables.js.map +1 -0
  70. package/dist/database/collections-artifact.d.ts +99 -0
  71. package/dist/database/collections-artifact.d.ts.map +1 -0
  72. package/dist/database/collections-artifact.js +397 -0
  73. package/dist/database/collections-artifact.js.map +1 -0
  74. package/dist/database/collections-directory.d.ts +36 -0
  75. package/dist/database/collections-directory.d.ts.map +1 -0
  76. package/dist/database/collections-directory.js +115 -0
  77. package/dist/database/collections-directory.js.map +1 -0
  78. package/dist/database/collections-doctor.d.ts +43 -0
  79. package/dist/database/collections-doctor.d.ts.map +1 -0
  80. package/dist/database/collections-doctor.js +88 -0
  81. package/dist/database/collections-doctor.js.map +1 -0
  82. package/dist/database/connection-check.d.ts +25 -0
  83. package/dist/database/connection-check.d.ts.map +1 -0
  84. package/dist/database/connection-check.js +65 -0
  85. package/dist/database/connection-check.js.map +1 -0
  86. package/dist/database/connection-selection.d.ts +16 -0
  87. package/dist/database/connection-selection.d.ts.map +1 -0
  88. package/dist/database/connection-selection.js +30 -0
  89. package/dist/database/connection-selection.js.map +1 -0
  90. package/dist/database/define-app-database-config.d.ts +49 -0
  91. package/dist/database/define-app-database-config.d.ts.map +1 -0
  92. package/dist/database/define-app-database-config.js +73 -0
  93. package/dist/database/define-app-database-config.js.map +1 -0
  94. package/dist/database/environment.d.ts +11 -0
  95. package/dist/database/environment.d.ts.map +1 -0
  96. package/dist/database/environment.js +49 -0
  97. package/dist/database/environment.js.map +1 -0
  98. package/dist/database/index.d.ts +17 -0
  99. package/dist/database/index.d.ts.map +1 -0
  100. package/dist/database/index.js +16 -0
  101. package/dist/database/index.js.map +1 -0
  102. package/dist/database/manager.d.ts +16 -0
  103. package/dist/database/manager.d.ts.map +1 -0
  104. package/dist/database/manager.js +83 -0
  105. package/dist/database/manager.js.map +1 -0
  106. package/dist/database/migrator.d.ts +88 -0
  107. package/dist/database/migrator.d.ts.map +1 -0
  108. package/dist/database/migrator.js +143 -0
  109. package/dist/database/migrator.js.map +1 -0
  110. package/dist/database/ownership.d.ts +6 -0
  111. package/dist/database/ownership.d.ts.map +1 -0
  112. package/dist/database/ownership.js +50 -0
  113. package/dist/database/ownership.js.map +1 -0
  114. package/dist/database/plan.d.ts +36 -0
  115. package/dist/database/plan.d.ts.map +1 -0
  116. package/dist/database/plan.js +136 -0
  117. package/dist/database/plan.js.map +1 -0
  118. package/dist/database/provider.d.ts +43 -0
  119. package/dist/database/provider.d.ts.map +1 -0
  120. package/dist/database/provider.js +171 -0
  121. package/dist/database/provider.js.map +1 -0
  122. package/dist/database/resolve-config.d.ts +42 -0
  123. package/dist/database/resolve-config.d.ts.map +1 -0
  124. package/dist/database/resolve-config.js +118 -0
  125. package/dist/database/resolve-config.js.map +1 -0
  126. package/dist/database/seeder.d.ts +50 -0
  127. package/dist/database/seeder.d.ts.map +1 -0
  128. package/dist/database/seeder.js +117 -0
  129. package/dist/database/seeder.js.map +1 -0
  130. package/dist/database/storage.d.ts +10 -0
  131. package/dist/database/storage.d.ts.map +1 -0
  132. package/dist/database/storage.js +37 -0
  133. package/dist/database/storage.js.map +1 -0
  134. package/dist/database/task-config.d.ts +7 -0
  135. package/dist/database/task-config.d.ts.map +1 -0
  136. package/dist/database/task-config.js +19 -0
  137. package/dist/database/task-config.js.map +1 -0
  138. package/dist/database/task-container.d.ts +3 -0
  139. package/dist/database/task-container.d.ts.map +1 -0
  140. package/dist/database/task-container.js +34 -0
  141. package/dist/database/task-container.js.map +1 -0
  142. package/dist/database/tasks.d.ts +104 -0
  143. package/dist/database/tasks.d.ts.map +1 -0
  144. package/dist/database/tasks.js +350 -0
  145. package/dist/database/tasks.js.map +1 -0
  146. package/dist/database/types.d.ts +92 -0
  147. package/dist/database/types.d.ts.map +1 -0
  148. package/dist/database/types.js +2 -0
  149. package/dist/database/types.js.map +1 -0
  150. package/dist/drive/config.d.ts +2 -0
  151. package/dist/drive/config.d.ts.map +1 -0
  152. package/dist/drive/config.js +2 -0
  153. package/dist/drive/config.js.map +1 -0
  154. package/dist/drive/index.d.ts +5 -0
  155. package/dist/drive/index.d.ts.map +1 -0
  156. package/dist/drive/index.js +4 -0
  157. package/dist/drive/index.js.map +1 -0
  158. package/dist/drive/provider.d.ts +9 -0
  159. package/dist/drive/provider.d.ts.map +1 -0
  160. package/dist/drive/provider.js +22 -0
  161. package/dist/drive/provider.js.map +1 -0
  162. package/dist/drive/token.d.ts +4 -0
  163. package/dist/drive/token.d.ts.map +1 -0
  164. package/dist/drive/token.js +3 -0
  165. package/dist/drive/token.js.map +1 -0
  166. package/dist/i18n/index.d.ts +37 -0
  167. package/dist/i18n/index.d.ts.map +1 -0
  168. package/dist/i18n/index.js +44 -0
  169. package/dist/i18n/index.js.map +1 -0
  170. package/dist/id-generator/config.d.ts +2 -0
  171. package/dist/id-generator/config.d.ts.map +1 -0
  172. package/dist/id-generator/config.js +2 -0
  173. package/dist/id-generator/config.js.map +1 -0
  174. package/dist/id-generator/index.d.ts +5 -0
  175. package/dist/id-generator/index.d.ts.map +1 -0
  176. package/dist/id-generator/index.js +4 -0
  177. package/dist/id-generator/index.js.map +1 -0
  178. package/dist/id-generator/provider.d.ts +7 -0
  179. package/dist/id-generator/provider.d.ts.map +1 -0
  180. package/dist/id-generator/provider.js +11 -0
  181. package/dist/id-generator/provider.js.map +1 -0
  182. package/dist/id-generator/token.d.ts +4 -0
  183. package/dist/id-generator/token.d.ts.map +1 -0
  184. package/dist/id-generator/token.js +3 -0
  185. package/dist/id-generator/token.js.map +1 -0
  186. package/dist/index.d.ts +20 -0
  187. package/dist/index.d.ts.map +1 -0
  188. package/dist/index.js +20 -0
  189. package/dist/index.js.map +1 -0
  190. package/dist/jobs/config.d.ts +2 -0
  191. package/dist/jobs/config.d.ts.map +1 -0
  192. package/dist/jobs/config.js +2 -0
  193. package/dist/jobs/config.js.map +1 -0
  194. package/dist/jobs/index.d.ts +4 -0
  195. package/dist/jobs/index.d.ts.map +1 -0
  196. package/dist/jobs/index.js +4 -0
  197. package/dist/jobs/index.js.map +1 -0
  198. package/dist/jobs/provider.d.ts +23 -0
  199. package/dist/jobs/provider.d.ts.map +1 -0
  200. package/dist/jobs/provider.js +55 -0
  201. package/dist/jobs/provider.js.map +1 -0
  202. package/dist/jobs/token.d.ts +8 -0
  203. package/dist/jobs/token.d.ts.map +1 -0
  204. package/dist/jobs/token.js +7 -0
  205. package/dist/jobs/token.js.map +1 -0
  206. package/dist/logging/config.d.ts +16 -0
  207. package/dist/logging/config.d.ts.map +1 -0
  208. package/dist/logging/config.js +26 -0
  209. package/dist/logging/config.js.map +1 -0
  210. package/dist/logging/index.d.ts +5 -0
  211. package/dist/logging/index.d.ts.map +1 -0
  212. package/dist/logging/index.js +5 -0
  213. package/dist/logging/index.js.map +1 -0
  214. package/dist/logging/middleware.d.ts +13 -0
  215. package/dist/logging/middleware.d.ts.map +1 -0
  216. package/dist/logging/middleware.js +128 -0
  217. package/dist/logging/middleware.js.map +1 -0
  218. package/dist/logging/provider.d.ts +9 -0
  219. package/dist/logging/provider.d.ts.map +1 -0
  220. package/dist/logging/provider.js +95 -0
  221. package/dist/logging/provider.js.map +1 -0
  222. package/dist/logging/token.d.ts +4 -0
  223. package/dist/logging/token.d.ts.map +1 -0
  224. package/dist/logging/token.js +3 -0
  225. package/dist/logging/token.js.map +1 -0
  226. package/dist/node/config.d.ts +6 -0
  227. package/dist/node/config.d.ts.map +1 -0
  228. package/dist/node/config.js +2 -0
  229. package/dist/node/config.js.map +1 -0
  230. package/dist/node/index.d.ts +6 -0
  231. package/dist/node/index.d.ts.map +1 -0
  232. package/dist/node/index.js +6 -0
  233. package/dist/node/index.js.map +1 -0
  234. package/dist/node/not-configured-message.d.ts +10 -0
  235. package/dist/node/not-configured-message.d.ts.map +1 -0
  236. package/dist/node/not-configured-message.js +24 -0
  237. package/dist/node/not-configured-message.js.map +1 -0
  238. package/dist/node/proxy.d.ts +25 -0
  239. package/dist/node/proxy.d.ts.map +1 -0
  240. package/dist/node/proxy.js +229 -0
  241. package/dist/node/proxy.js.map +1 -0
  242. package/dist/node/runtime.d.ts +45 -0
  243. package/dist/node/runtime.d.ts.map +1 -0
  244. package/dist/node/runtime.js +176 -0
  245. package/dist/node/runtime.js.map +1 -0
  246. package/dist/node/scope.d.ts +55 -0
  247. package/dist/node/scope.d.ts.map +1 -0
  248. package/dist/node/scope.js +115 -0
  249. package/dist/node/scope.js.map +1 -0
  250. package/dist/node/server.d.ts +80 -0
  251. package/dist/node/server.d.ts.map +1 -0
  252. package/dist/node/server.js +283 -0
  253. package/dist/node/server.js.map +1 -0
  254. package/dist/plugins/define.d.ts +4 -0
  255. package/dist/plugins/define.d.ts.map +1 -0
  256. package/dist/plugins/define.js +45 -0
  257. package/dist/plugins/define.js.map +1 -0
  258. package/dist/plugins/index.d.ts +27 -0
  259. package/dist/plugins/index.d.ts.map +1 -0
  260. package/dist/plugins/index.js +4 -0
  261. package/dist/plugins/index.js.map +1 -0
  262. package/dist/plugins/inspect.d.ts +79 -0
  263. package/dist/plugins/inspect.d.ts.map +1 -0
  264. package/dist/plugins/inspect.js +142 -0
  265. package/dist/plugins/inspect.js.map +1 -0
  266. package/dist/plugins/resolve.d.ts +14 -0
  267. package/dist/plugins/resolve.d.ts.map +1 -0
  268. package/dist/plugins/resolve.js +101 -0
  269. package/dist/plugins/resolve.js.map +1 -0
  270. package/dist/plugins/types.d.ts +91 -0
  271. package/dist/plugins/types.d.ts.map +1 -0
  272. package/dist/plugins/types.js +2 -0
  273. package/dist/plugins/types.js.map +1 -0
  274. package/dist/proxy/http-proxy.d.ts +8 -0
  275. package/dist/proxy/http-proxy.d.ts.map +1 -0
  276. package/dist/proxy/http-proxy.js +59 -0
  277. package/dist/proxy/http-proxy.js.map +1 -0
  278. package/dist/proxy/index.d.ts +3 -0
  279. package/dist/proxy/index.d.ts.map +1 -0
  280. package/dist/proxy/index.js +3 -0
  281. package/dist/proxy/index.js.map +1 -0
  282. package/dist/proxy/origin.d.ts +12 -0
  283. package/dist/proxy/origin.d.ts.map +1 -0
  284. package/dist/proxy/origin.js +61 -0
  285. package/dist/proxy/origin.js.map +1 -0
  286. package/dist/queue/config.d.ts +4 -0
  287. package/dist/queue/config.d.ts.map +1 -0
  288. package/dist/queue/config.js +2 -0
  289. package/dist/queue/config.js.map +1 -0
  290. package/dist/queue/index.d.ts +4 -0
  291. package/dist/queue/index.d.ts.map +1 -0
  292. package/dist/queue/index.js +4 -0
  293. package/dist/queue/index.js.map +1 -0
  294. package/dist/queue/provider.d.ts +24 -0
  295. package/dist/queue/provider.d.ts.map +1 -0
  296. package/dist/queue/provider.js +57 -0
  297. package/dist/queue/provider.js.map +1 -0
  298. package/dist/queue/token.d.ts +9 -0
  299. package/dist/queue/token.d.ts.map +1 -0
  300. package/dist/queue/token.js +8 -0
  301. package/dist/queue/token.js.map +1 -0
  302. package/dist/realtime/index.d.ts +6 -0
  303. package/dist/realtime/index.d.ts.map +1 -0
  304. package/dist/realtime/index.js +6 -0
  305. package/dist/realtime/index.js.map +1 -0
  306. package/dist/realtime/provider.d.ts +10 -0
  307. package/dist/realtime/provider.d.ts.map +1 -0
  308. package/dist/realtime/provider.js +19 -0
  309. package/dist/realtime/provider.js.map +1 -0
  310. package/dist/realtime/service.d.ts +9 -0
  311. package/dist/realtime/service.d.ts.map +1 -0
  312. package/dist/realtime/service.js +347 -0
  313. package/dist/realtime/service.js.map +1 -0
  314. package/dist/realtime/types.d.ts +74 -0
  315. package/dist/realtime/types.d.ts.map +1 -0
  316. package/dist/realtime/types.js +4 -0
  317. package/dist/realtime/types.js.map +1 -0
  318. package/dist/realtime/websocket.d.ts +7 -0
  319. package/dist/realtime/websocket.d.ts.map +1 -0
  320. package/dist/realtime/websocket.js +57 -0
  321. package/dist/realtime/websocket.js.map +1 -0
  322. package/dist/router/api-error.d.ts +171 -0
  323. package/dist/router/api-error.d.ts.map +1 -0
  324. package/dist/router/api-error.js +291 -0
  325. package/dist/router/api-error.js.map +1 -0
  326. package/dist/router/api-limits.d.ts +80 -0
  327. package/dist/router/api-limits.d.ts.map +1 -0
  328. package/dist/router/api-limits.js +281 -0
  329. package/dist/router/api-limits.js.map +1 -0
  330. package/dist/router/cli/derive.d.ts +32 -0
  331. package/dist/router/cli/derive.d.ts.map +1 -0
  332. package/dist/router/cli/derive.js +548 -0
  333. package/dist/router/cli/derive.js.map +1 -0
  334. package/dist/router/cli/index.d.ts +6 -0
  335. package/dist/router/cli/index.d.ts.map +1 -0
  336. package/dist/router/cli/index.js +6 -0
  337. package/dist/router/cli/index.js.map +1 -0
  338. package/dist/router/cli/reference.d.ts +9 -0
  339. package/dist/router/cli/reference.d.ts.map +1 -0
  340. package/dist/router/cli/reference.js +64 -0
  341. package/dist/router/cli/reference.js.map +1 -0
  342. package/dist/router/cli/routes.d.ts +9 -0
  343. package/dist/router/cli/routes.d.ts.map +1 -0
  344. package/dist/router/cli/routes.js +228 -0
  345. package/dist/router/cli/routes.js.map +1 -0
  346. package/dist/router/cli/service.d.ts +50 -0
  347. package/dist/router/cli/service.d.ts.map +1 -0
  348. package/dist/router/cli/service.js +104 -0
  349. package/dist/router/cli/service.js.map +1 -0
  350. package/dist/router/cli/types.d.ts +278 -0
  351. package/dist/router/cli/types.d.ts.map +1 -0
  352. package/dist/router/cli/types.js +18 -0
  353. package/dist/router/cli/types.js.map +1 -0
  354. package/dist/router/duplicate-routes.d.ts +25 -0
  355. package/dist/router/duplicate-routes.d.ts.map +1 -0
  356. package/dist/router/duplicate-routes.js +51 -0
  357. package/dist/router/duplicate-routes.js.map +1 -0
  358. package/dist/router/health.d.ts +7 -0
  359. package/dist/router/health.d.ts.map +1 -0
  360. package/dist/router/health.js +48 -0
  361. package/dist/router/health.js.map +1 -0
  362. package/dist/router/index.d.ts +26 -0
  363. package/dist/router/index.d.ts.map +1 -0
  364. package/dist/router/index.js +29 -0
  365. package/dist/router/index.js.map +1 -0
  366. package/dist/router/openapi/components.d.ts +24 -0
  367. package/dist/router/openapi/components.d.ts.map +1 -0
  368. package/dist/router/openapi/components.js +128 -0
  369. package/dist/router/openapi/components.js.map +1 -0
  370. package/dist/router/openapi/declared.d.ts +19 -0
  371. package/dist/router/openapi/declared.d.ts.map +1 -0
  372. package/dist/router/openapi/declared.js +46 -0
  373. package/dist/router/openapi/declared.js.map +1 -0
  374. package/dist/router/openapi/describe.d.ts +82 -0
  375. package/dist/router/openapi/describe.d.ts.map +1 -0
  376. package/dist/router/openapi/describe.js +207 -0
  377. package/dist/router/openapi/describe.js.map +1 -0
  378. package/dist/router/openapi/docs-routes.d.ts +10 -0
  379. package/dist/router/openapi/docs-routes.d.ts.map +1 -0
  380. package/dist/router/openapi/docs-routes.js +157 -0
  381. package/dist/router/openapi/docs-routes.js.map +1 -0
  382. package/dist/router/openapi/document.d.ts +151 -0
  383. package/dist/router/openapi/document.d.ts.map +1 -0
  384. package/dist/router/openapi/document.js +471 -0
  385. package/dist/router/openapi/document.js.map +1 -0
  386. package/dist/router/openapi/index.d.ts +7 -0
  387. package/dist/router/openapi/index.d.ts.map +1 -0
  388. package/dist/router/openapi/index.js +7 -0
  389. package/dist/router/openapi/index.js.map +1 -0
  390. package/dist/router/openapi/repository-document.d.ts +30 -0
  391. package/dist/router/openapi/repository-document.d.ts.map +1 -0
  392. package/dist/router/openapi/repository-document.js +812 -0
  393. package/dist/router/openapi/repository-document.js.map +1 -0
  394. package/dist/router/openapi/schema.d.ts +30 -0
  395. package/dist/router/openapi/schema.d.ts.map +1 -0
  396. package/dist/router/openapi/schema.js +301 -0
  397. package/dist/router/openapi/schema.js.map +1 -0
  398. package/dist/router/openapi/service.d.ts +101 -0
  399. package/dist/router/openapi/service.d.ts.map +1 -0
  400. package/dist/router/openapi/service.js +162 -0
  401. package/dist/router/openapi/service.js.map +1 -0
  402. package/dist/router/repository-constraints.d.ts +15 -0
  403. package/dist/router/repository-constraints.d.ts.map +1 -0
  404. package/dist/router/repository-constraints.js +14 -0
  405. package/dist/router/repository-constraints.js.map +1 -0
  406. package/dist/router/repository-routes.d.ts +90 -0
  407. package/dist/router/repository-routes.d.ts.map +1 -0
  408. package/dist/router/repository-routes.js +452 -0
  409. package/dist/router/repository-routes.js.map +1 -0
  410. package/dist/router/routes.d.ts +24 -0
  411. package/dist/router/routes.d.ts.map +1 -0
  412. package/dist/router/routes.js +19 -0
  413. package/dist/router/routes.js.map +1 -0
  414. package/dist/runtime/application.d.ts +8 -0
  415. package/dist/runtime/application.d.ts.map +1 -0
  416. package/dist/runtime/application.js +22 -0
  417. package/dist/runtime/application.js.map +1 -0
  418. package/dist/runtime/definition.d.ts +50 -0
  419. package/dist/runtime/definition.d.ts.map +1 -0
  420. package/dist/runtime/definition.js +82 -0
  421. package/dist/runtime/definition.js.map +1 -0
  422. package/dist/runtime/index.d.ts +8 -0
  423. package/dist/runtime/index.d.ts.map +1 -0
  424. package/dist/runtime/index.js +7 -0
  425. package/dist/runtime/index.js.map +1 -0
  426. package/dist/runtime/lifecycle.d.ts +29 -0
  427. package/dist/runtime/lifecycle.d.ts.map +1 -0
  428. package/dist/runtime/lifecycle.js +104 -0
  429. package/dist/runtime/lifecycle.js.map +1 -0
  430. package/dist/runtime/mount.d.ts +4 -0
  431. package/dist/runtime/mount.d.ts.map +1 -0
  432. package/dist/runtime/mount.js +47 -0
  433. package/dist/runtime/mount.js.map +1 -0
  434. package/dist/runtime/scope.d.ts +29 -0
  435. package/dist/runtime/scope.d.ts.map +1 -0
  436. package/dist/runtime/scope.js +48 -0
  437. package/dist/runtime/scope.js.map +1 -0
  438. package/dist/runtime/types.d.ts +55 -0
  439. package/dist/runtime/types.d.ts.map +1 -0
  440. package/dist/runtime/types.js +2 -0
  441. package/dist/runtime/types.js.map +1 -0
  442. package/dist/sample-data/index.d.ts +3 -0
  443. package/dist/sample-data/index.d.ts.map +1 -0
  444. package/dist/sample-data/index.js +3 -0
  445. package/dist/sample-data/index.js.map +1 -0
  446. package/dist/sample-data/registry.d.ts +4 -0
  447. package/dist/sample-data/registry.d.ts.map +1 -0
  448. package/dist/sample-data/registry.js +74 -0
  449. package/dist/sample-data/registry.js.map +1 -0
  450. package/dist/sample-data/token.d.ts +64 -0
  451. package/dist/sample-data/token.d.ts.map +1 -0
  452. package/dist/sample-data/token.js +7 -0
  453. package/dist/sample-data/token.js.map +1 -0
  454. package/dist/secrets/config.d.ts +15 -0
  455. package/dist/secrets/config.d.ts.map +1 -0
  456. package/dist/secrets/config.js +43 -0
  457. package/dist/secrets/config.js.map +1 -0
  458. package/dist/secrets/index.d.ts +6 -0
  459. package/dist/secrets/index.d.ts.map +1 -0
  460. package/dist/secrets/index.js +6 -0
  461. package/dist/secrets/index.js.map +1 -0
  462. package/dist/secrets/provider.d.ts +7 -0
  463. package/dist/secrets/provider.d.ts.map +1 -0
  464. package/dist/secrets/provider.js +10 -0
  465. package/dist/secrets/provider.js.map +1 -0
  466. package/dist/secrets/service.d.ts +64 -0
  467. package/dist/secrets/service.d.ts.map +1 -0
  468. package/dist/secrets/service.js +47 -0
  469. package/dist/secrets/service.js.map +1 -0
  470. package/dist/secrets/table-store.d.ts +34 -0
  471. package/dist/secrets/table-store.d.ts.map +1 -0
  472. package/dist/secrets/table-store.js +118 -0
  473. package/dist/secrets/table-store.js.map +1 -0
  474. package/dist/secrets/token.d.ts +4 -0
  475. package/dist/secrets/token.d.ts.map +1 -0
  476. package/dist/secrets/token.js +3 -0
  477. package/dist/secrets/token.js.map +1 -0
  478. package/dist/session/config.d.ts +10 -0
  479. package/dist/session/config.d.ts.map +1 -0
  480. package/dist/session/config.js +2 -0
  481. package/dist/session/config.js.map +1 -0
  482. package/dist/session/index.d.ts +4 -0
  483. package/dist/session/index.d.ts.map +1 -0
  484. package/dist/session/index.js +4 -0
  485. package/dist/session/index.js.map +1 -0
  486. package/dist/session/provider.d.ts +26 -0
  487. package/dist/session/provider.d.ts.map +1 -0
  488. package/dist/session/provider.js +69 -0
  489. package/dist/session/provider.js.map +1 -0
  490. package/dist/session/token.d.ts +4 -0
  491. package/dist/session/token.d.ts.map +1 -0
  492. package/dist/session/token.js +3 -0
  493. package/dist/session/token.js.map +1 -0
  494. package/dist/spa/config.d.ts +5 -0
  495. package/dist/spa/config.d.ts.map +1 -0
  496. package/dist/spa/config.js +2 -0
  497. package/dist/spa/config.js.map +1 -0
  498. package/dist/spa/content-types.d.ts +2 -0
  499. package/dist/spa/content-types.d.ts.map +1 -0
  500. package/dist/spa/content-types.js +25 -0
  501. package/dist/spa/content-types.js.map +1 -0
  502. package/dist/spa/index.d.ts +9 -0
  503. package/dist/spa/index.d.ts.map +1 -0
  504. package/dist/spa/index.js +9 -0
  505. package/dist/spa/index.js.map +1 -0
  506. package/dist/spa/provider.d.ts +13 -0
  507. package/dist/spa/provider.d.ts.map +1 -0
  508. package/dist/spa/provider.js +90 -0
  509. package/dist/spa/provider.js.map +1 -0
  510. package/dist/spa/routes.d.ts +4 -0
  511. package/dist/spa/routes.d.ts.map +1 -0
  512. package/dist/spa/routes.js +58 -0
  513. package/dist/spa/routes.js.map +1 -0
  514. package/dist/spa/runtime-html.d.ts +14 -0
  515. package/dist/spa/runtime-html.d.ts.map +1 -0
  516. package/dist/spa/runtime-html.js +85 -0
  517. package/dist/spa/runtime-html.js.map +1 -0
  518. package/dist/spa/serve-index.d.ts +9 -0
  519. package/dist/spa/serve-index.d.ts.map +1 -0
  520. package/dist/spa/serve-index.js +12 -0
  521. package/dist/spa/serve-index.js.map +1 -0
  522. package/dist/spa/static-assets.d.ts +7 -0
  523. package/dist/spa/static-assets.d.ts.map +1 -0
  524. package/dist/spa/static-assets.js +90 -0
  525. package/dist/spa/static-assets.js.map +1 -0
  526. package/dist/spa/types.d.ts +23 -0
  527. package/dist/spa/types.d.ts.map +1 -0
  528. package/dist/spa/types.js +2 -0
  529. package/dist/spa/types.js.map +1 -0
  530. package/dist/support/index.d.ts +4 -0
  531. package/dist/support/index.d.ts.map +1 -0
  532. package/dist/support/index.js +4 -0
  533. package/dist/support/index.js.map +1 -0
  534. package/dist/support/paths.d.ts +10 -0
  535. package/dist/support/paths.d.ts.map +1 -0
  536. package/dist/support/paths.js +25 -0
  537. package/dist/support/paths.js.map +1 -0
  538. package/dist/support/redirects.d.ts +3 -0
  539. package/dist/support/redirects.d.ts.map +1 -0
  540. package/dist/support/redirects.js +48 -0
  541. package/dist/support/redirects.js.map +1 -0
  542. package/dist/support/requests.d.ts +2 -0
  543. package/dist/support/requests.d.ts.map +1 -0
  544. package/dist/support/requests.js +13 -0
  545. package/dist/support/requests.js.map +1 -0
  546. package/dist/swagger-ui/LICENSE +202 -0
  547. package/dist/swagger-ui/NOTICE +2 -0
  548. package/dist/swagger-ui/favicon-16x16.png +0 -0
  549. package/dist/swagger-ui/favicon-32x32.png +0 -0
  550. package/dist/swagger-ui/swagger-ui-bundle.js +2 -0
  551. package/dist/swagger-ui/swagger-ui-bundle.js.LICENSE.txt +129 -0
  552. package/dist/swagger-ui/swagger-ui.css +3 -0
  553. package/dist/websocket.d.ts +61 -0
  554. package/dist/websocket.d.ts.map +1 -0
  555. package/dist/websocket.js +371 -0
  556. package/dist/websocket.js.map +1 -0
  557. package/package.json +193 -12
  558. package/LICENSE +0 -661
  559. package/lib/config/cache.d.ts +0 -2
  560. package/lib/config/cache.js +0 -16
  561. package/lib/config/database.d.ts +0 -3
  562. package/lib/config/database.js +0 -25
  563. package/lib/config/index.d.ts +0 -10
  564. package/lib/config/index.js +0 -20
  565. package/lib/config/logger.d.ts +0 -3
  566. package/lib/config/logger.js +0 -11
  567. package/lib/config/plugins.d.ts +0 -3
  568. package/lib/config/plugins.js +0 -8
  569. package/lib/config/resourcer.d.ts +0 -4
  570. package/lib/config/resourcer.js +0 -10
  571. package/lib/index.d.ts +0 -3
  572. package/lib/index.js +0 -21
  573. package/src/config/cache.ts +0 -5
  574. package/src/config/database.ts +0 -21
  575. package/src/config/index.ts +0 -13
  576. package/src/config/logger.ts +0 -6
  577. package/src/config/plugins.ts +0 -3
  578. package/src/config/resourcer.ts +0 -3
  579. package/src/index.ts +0 -10
@@ -0,0 +1,548 @@
1
+ import { createHash } from 'node:crypto';
2
+ import { CLI_EXTENSION, CLI_MANIFEST_VERSION, } from './types.js';
3
+ function excluded(exclusions, path, operation) {
4
+ const tag = operation.tags?.[0];
5
+ return exclusions.some((rule) => (tag !== undefined && rule.tags?.includes(tag)) ||
6
+ rule.paths?.some((prefix) => path.startsWith(prefix)) ||
7
+ (operation.operationId !== undefined &&
8
+ rule.operationIds?.includes(operation.operationId)));
9
+ }
10
+ const DEFAULT_IDENTITY_SCHEMES = {
11
+ cookieAuth: 'person',
12
+ apiKeyAuth: 'person',
13
+ };
14
+ const METHODS = ['get', 'post', 'put', 'patch', 'delete'];
15
+ const REPOSITORY_ACTIONS = new Set([
16
+ 'findMany',
17
+ 'findOne',
18
+ 'count',
19
+ 'aggregate',
20
+ 'groupBy',
21
+ 'exists',
22
+ 'createOne',
23
+ 'updateOne',
24
+ 'deleteOne',
25
+ ]);
26
+ /** `issueId` → `issue-id`, `AiEmployee` → `ai-employee`. */
27
+ export function kebabCase(value) {
28
+ return value
29
+ .replace(/([a-z0-9])([A-Z])/gu, '$1-$2')
30
+ .replace(/([A-Z]+)([A-Z][a-z])/gu, '$1-$2')
31
+ .replace(/[^A-Za-z0-9]+/gu, '-')
32
+ .replace(/^-+|-+$/gu, '')
33
+ .toLowerCase();
34
+ }
35
+ function isParam(segment) {
36
+ return segment.startsWith('{') && segment.endsWith('}');
37
+ }
38
+ function sameNoun(segment, noun) {
39
+ const word = kebabCase(segment);
40
+ return word === noun || word === `${noun}s` || `${word}s` === noun;
41
+ }
42
+ /**
43
+ * The command words derived from an operation's tag, path and method. A `POST` to a path that ends in a literal after
44
+ * a parameter is a custom method (`POST /issues/{id}/close` → `close`), unless the path is a collection, which
45
+ * `collections` names by having a `GET` on it (`POST /issues/{id}/comments` → `comments create`).
46
+ */
47
+ export function deriveCommandWords(method, path, tag, collections = new Set()) {
48
+ const segments = path
49
+ .replace(/^\/api\/?/u, '')
50
+ .split('/')
51
+ .filter((segment) => segment !== '');
52
+ const literal = segments.filter((segment) => !isParam(segment));
53
+ const noun = kebabCase(tag ?? literal[0] ?? 'api') || 'api';
54
+ const nouns = [...literal];
55
+ if (nouns[0] !== undefined && sameNoun(nouns[0], noun))
56
+ nouns.shift();
57
+ const last = segments.at(-1);
58
+ let verb;
59
+ switch (method) {
60
+ case 'get':
61
+ verb = last !== undefined && isParam(last) ? 'get' : 'list';
62
+ break;
63
+ case 'put':
64
+ verb = 'set';
65
+ break;
66
+ case 'patch':
67
+ verb = 'update';
68
+ break;
69
+ case 'delete':
70
+ verb = 'delete';
71
+ break;
72
+ default: {
73
+ const beforeLast = segments.at(-2);
74
+ const custom = last !== undefined &&
75
+ !isParam(last) &&
76
+ nouns.length > 0 &&
77
+ !collections.has(path) &&
78
+ ((beforeLast !== undefined && isParam(beforeLast)) ||
79
+ (segments.length === 2 && REPOSITORY_ACTIONS.has(last)));
80
+ if (custom) {
81
+ nouns.pop();
82
+ verb = kebabCase(last);
83
+ }
84
+ else
85
+ verb = 'create';
86
+ }
87
+ }
88
+ return [noun, ...nouns.map(kebabCase), verb].filter((word) => word !== '');
89
+ }
90
+ function resolve(document, value) {
91
+ let current = value;
92
+ for (let depth = 0; depth < 10; depth += 1) {
93
+ if (!current || typeof current !== 'object' || !('$ref' in current))
94
+ return current;
95
+ const ref = current.$ref;
96
+ if (!ref.startsWith('#/'))
97
+ return undefined;
98
+ current = ref
99
+ .slice(2)
100
+ .split('/')
101
+ .reduce((node, key) => node && typeof node === 'object'
102
+ ? node[key.replaceAll('~1', '/').replaceAll('~0', '~')]
103
+ : undefined, document);
104
+ }
105
+ return undefined;
106
+ }
107
+ function typesOf(schema) {
108
+ const type = schema.type;
109
+ if (Array.isArray(type))
110
+ return type.filter((item) => item !== 'null');
111
+ return type ? [type] : [];
112
+ }
113
+ function shapeOf(document, value) {
114
+ const schema = resolve(document, value);
115
+ if (!schema)
116
+ return { type: 'json' };
117
+ const branches = [...(schema.anyOf ?? []), ...(schema.oneOf ?? [])]
118
+ .map((branch) => resolve(document, branch))
119
+ .filter((branch) => branch !== undefined &&
120
+ !(branch.type === 'null' ||
121
+ (Array.isArray(branch.type) && typesOf(branch).length === 0)));
122
+ if (branches.length > 0) {
123
+ if (branches.length === 1)
124
+ return shapeOf(document, branches[0]);
125
+ const shapes = branches.map((branch) => shapeOf(document, branch));
126
+ if (shapes.every((shape) => shape.type === 'string')) {
127
+ const values = shapes.flatMap((shape) => shape.enum ?? []);
128
+ return {
129
+ type: 'string',
130
+ ...(shapes.every((shape) => shape.enum) ? { enum: values } : {}),
131
+ };
132
+ }
133
+ return { type: 'json' };
134
+ }
135
+ const types = typesOf(schema);
136
+ const enumValues = Array.isArray(schema.enum)
137
+ ? schema.enum.filter((item) => typeof item === 'string')
138
+ : undefined;
139
+ if (types.length === 0 && schema.const !== undefined)
140
+ return typeof schema.const === 'string'
141
+ ? { type: 'string', enum: [schema.const] }
142
+ : { type: 'json' };
143
+ if (types.length === 0 && enumValues?.length)
144
+ return { type: 'string', enum: enumValues };
145
+ if (types.length !== 1)
146
+ return { type: 'json' };
147
+ switch (types[0]) {
148
+ case 'string':
149
+ // A query flag spelled `true` or `false` is a boolean on the command line.
150
+ if (enumValues?.length === 2 &&
151
+ enumValues.includes('true') &&
152
+ enumValues.includes('false'))
153
+ return { type: 'boolean' };
154
+ return {
155
+ type: 'string',
156
+ ...(enumValues?.length ? { enum: enumValues } : {}),
157
+ ...(schema.format === 'binary' ||
158
+ schema.contentMediaType === 'application/octet-stream'
159
+ ? { binary: true }
160
+ : {}),
161
+ };
162
+ case 'number':
163
+ case 'integer':
164
+ case 'boolean':
165
+ return { type: types[0] };
166
+ case 'array': {
167
+ const item = shapeOf(document, schema.items);
168
+ if (item.type === 'string')
169
+ return {
170
+ type: 'string[]',
171
+ ...(item.enum ? { enum: item.enum } : {}),
172
+ ...(item.binary ? { binary: true } : {}),
173
+ };
174
+ if (item.type === 'number' || item.type === 'integer')
175
+ return { type: 'number[]' };
176
+ return { type: 'json' };
177
+ }
178
+ default:
179
+ return { type: 'json' };
180
+ }
181
+ }
182
+ function descriptionOf(document, value) {
183
+ if (!value)
184
+ return undefined;
185
+ if ('$ref' in value) {
186
+ const own = value.description;
187
+ if (typeof own === 'string')
188
+ return own;
189
+ }
190
+ return resolve(document, value)?.description;
191
+ }
192
+ function identitiesOf(document, operation, schemes) {
193
+ const requirements = operation.security ?? document.security;
194
+ // A route that takes no credential (signing in, a webhook, a health check) is a person's to call: a run is offered
195
+ // only what names its own credential.
196
+ if (!requirements || requirements.length === 0)
197
+ return ['person'];
198
+ const found = new Set();
199
+ for (const requirement of requirements) {
200
+ const names = Object.keys(requirement);
201
+ if (names.length === 0)
202
+ found.add('person');
203
+ for (const name of names) {
204
+ const identity = schemes[name];
205
+ if (identity)
206
+ found.add(identity);
207
+ }
208
+ }
209
+ return found.size > 0 ? [...found].sort() : ['person'];
210
+ }
211
+ function outputOf(document, operation) {
212
+ const responses = operation.responses ?? {};
213
+ for (const status of ['200', '201', '202', '204']) {
214
+ const response = resolve(document, responses[status]);
215
+ if (!response)
216
+ continue;
217
+ const content = response.content ?? {};
218
+ const media = Object.keys(content);
219
+ if (media.length === 0)
220
+ return 'empty';
221
+ const json = content['application/json'];
222
+ if (!json)
223
+ return 'download';
224
+ const schema = resolve(document, json.schema);
225
+ const data = resolve(document, schema?.properties?.data);
226
+ if (data && schema?.properties?.meta && typesOf(data).includes('array'))
227
+ return 'list';
228
+ return 'data';
229
+ }
230
+ return 'data';
231
+ }
232
+ function operationsById(document) {
233
+ const result = new Map();
234
+ for (const [path, item] of Object.entries(document.paths ?? {}))
235
+ for (const method of METHODS) {
236
+ const operation = item?.[method];
237
+ if (operation?.operationId)
238
+ result.set(operation.operationId, { method, path });
239
+ }
240
+ return result;
241
+ }
242
+ function basePathOf(document) {
243
+ const url = document.servers?.[0]?.url ?? '';
244
+ if (!url.startsWith('/'))
245
+ return '';
246
+ return url.replace(/\/+$/u, '');
247
+ }
248
+ function deriveOne(document, path, method, operation, schemes, operations, collections) {
249
+ const hint = operation[CLI_EXTENSION];
250
+ if (hint === false || hint?.hidden)
251
+ return undefined;
252
+ const options = hint ?? {};
253
+ const tag = operation.tags?.[0];
254
+ const explicit = options.command
255
+ ?.trim()
256
+ .split(/\s+/u)
257
+ .map((word) => kebabCase(word))
258
+ .filter(Boolean);
259
+ const words = explicit?.length
260
+ ? explicit
261
+ : deriveCommandWords(method, path, tag, collections);
262
+ const noun = words[0] ?? 'api';
263
+ const fallback = operation.operationId
264
+ ? [noun, kebabCase(operation.operationId)]
265
+ : [...words, method];
266
+ const flagHints = options.flags ?? {};
267
+ const inputs = [];
268
+ const parameters = (operation.parameters ?? [])
269
+ .map((parameter) => resolve(document, parameter))
270
+ .filter((parameter) => parameter !== undefined &&
271
+ (parameter.in === 'path' || parameter.in === 'query'));
272
+ for (const parameter of parameters) {
273
+ const shape = shapeOf(document, parameter.schema);
274
+ const schema = resolve(document, parameter.schema);
275
+ inputs.push({
276
+ field: parameter.name,
277
+ in: parameter.in,
278
+ type: shape.type,
279
+ required: parameter.in === 'path' || parameter.required === true,
280
+ ...(parameter.description || descriptionOf(document, parameter.schema)
281
+ ? {
282
+ description: parameter.description ??
283
+ descriptionOf(document, parameter.schema),
284
+ }
285
+ : {}),
286
+ ...(shape.enum ? { enum: shape.enum } : {}),
287
+ ...(schema?.default !== undefined ? { default: schema.default } : {}),
288
+ });
289
+ }
290
+ let body;
291
+ const requestBody = resolve(document, operation.requestBody);
292
+ const uploads = options.uploads ?? {};
293
+ const uploadFields = new Set([
294
+ ...Object.values(uploads).map((upload) => upload.field),
295
+ ...(options.changedFiles ? [options.changedFiles.field] : []),
296
+ ]);
297
+ if (requestBody) {
298
+ const media = requestBody.content['application/json']
299
+ ? 'application/json'
300
+ : requestBody.content['multipart/form-data']
301
+ ? 'multipart/form-data'
302
+ : undefined;
303
+ if (media) {
304
+ const schema = resolve(document, requestBody.content[media]?.schema);
305
+ const properties = schema?.properties ?? {};
306
+ const required = new Set(schema?.required ?? []);
307
+ // A body without fields is given whole from a file, unless it allows none: an empty strict body is sent as `{}`.
308
+ const file = options.bodyFile ??
309
+ (Object.keys(properties).length === 0 &&
310
+ schema?.additionalProperties !== false
311
+ ? 'body'
312
+ : undefined);
313
+ body = {
314
+ media,
315
+ ...(file ? { file } : {}),
316
+ ...(requestBody.required ? { required: true } : {}),
317
+ };
318
+ for (const [field, value] of Object.entries(properties)) {
319
+ if (uploadFields.has(field))
320
+ continue;
321
+ const shape = shapeOf(document, value);
322
+ const property = resolve(document, value);
323
+ if (property?.readOnly)
324
+ continue;
325
+ const description = descriptionOf(document, value);
326
+ inputs.push({
327
+ field,
328
+ in: 'body',
329
+ type: shape.type,
330
+ required: !file && required.has(field),
331
+ ...(description ? { description } : {}),
332
+ ...(shape.enum ? { enum: shape.enum } : {}),
333
+ ...(property?.default !== undefined
334
+ ? { default: property.default }
335
+ : {}),
336
+ ...(shape.binary
337
+ ? { binary: true, multiple: shape.type === 'string[]' }
338
+ : {}),
339
+ });
340
+ }
341
+ }
342
+ }
343
+ const positional = options.args ??
344
+ parameters
345
+ .filter((parameter) => parameter.in === 'path')
346
+ .map((parameter) => parameter.name);
347
+ const result = [];
348
+ for (const input of inputs) {
349
+ const flag = flagHints[input.field] ?? {};
350
+ if (flag.hidden && !input.required)
351
+ continue;
352
+ const position = positional.indexOf(input.field);
353
+ const name = flag.name ?? (position >= 0 ? input.field : kebabCase(input.field));
354
+ result.push({
355
+ ...input,
356
+ name,
357
+ ...(position >= 0 ? { position } : {}),
358
+ ...(flag.description ? { description: flag.description } : {}),
359
+ ...(flag.alias ? { alias: flag.alias } : {}),
360
+ ...(flag.contentFile ? { contentFile: true } : {}),
361
+ ...(flag.prompt ? { prompt: true } : {}),
362
+ ...(flag.fromEnv ? { fromEnv: flag.fromEnv } : {}),
363
+ ...(flag.env?.length ? { env: flag.env } : {}),
364
+ });
365
+ }
366
+ if (options.ticketUpload) {
367
+ const { flag, maxBytes, accept, description, optional } = options.ticketUpload;
368
+ // An optional file's name fills the body field named like the flag: it is no flag of its own.
369
+ if (optional) {
370
+ const index = result.findIndex((parameter) => parameter.in === 'body' && parameter.field === flag);
371
+ if (index >= 0)
372
+ result.splice(index, 1);
373
+ }
374
+ result.push({
375
+ name: flag,
376
+ field: flag,
377
+ in: 'file',
378
+ type: 'string',
379
+ required: !optional,
380
+ ...(description ? { description } : {}),
381
+ ticket: {
382
+ maxBytes,
383
+ ...(accept?.length ? { accept } : {}),
384
+ ...(optional ? { optional: true } : {}),
385
+ },
386
+ });
387
+ }
388
+ if (options.changedFiles) {
389
+ const { flag, field, description, ...changed } = options.changedFiles;
390
+ result.push({
391
+ name: flag,
392
+ field,
393
+ in: 'file',
394
+ type: 'boolean',
395
+ required: false,
396
+ ...(description ? { description } : {}),
397
+ changed: {
398
+ dir: changed.dir,
399
+ manifest: changed.manifest,
400
+ maxBytes: changed.maxBytes,
401
+ maxFiles: changed.maxFiles,
402
+ ...(changed.accept?.length ? { accept: changed.accept } : {}),
403
+ },
404
+ });
405
+ }
406
+ for (const [flag, upload] of Object.entries(uploads)) {
407
+ const target = operations.get(upload.upload);
408
+ if (!target)
409
+ continue;
410
+ result.push({
411
+ name: flag,
412
+ field: upload.field,
413
+ in: 'file',
414
+ type: upload.multiple ? 'string[]' : 'string',
415
+ required: false,
416
+ ...(upload.description ? { description: upload.description } : {}),
417
+ upload: {
418
+ method: target.method.toUpperCase(),
419
+ path: `${basePathOf(document)}${target.path}`,
420
+ part: upload.part ?? 'file',
421
+ field: upload.field,
422
+ multiple: upload.multiple ?? false,
423
+ ...(upload.maxBytes ? { maxBytes: upload.maxBytes } : {}),
424
+ },
425
+ });
426
+ }
427
+ result.sort((a, b) => (a.position ?? Number.MAX_SAFE_INTEGER) -
428
+ (b.position ?? Number.MAX_SAFE_INTEGER));
429
+ const output = outputOf(document, operation);
430
+ const command = {
431
+ id: words.join(':'),
432
+ summary: operation.summary ?? operation.operationId ?? words.join(' '),
433
+ ...(operation.description ? { description: operation.description } : {}),
434
+ ...(operation.operationId ? { operationId: operation.operationId } : {}),
435
+ method: method.toUpperCase(),
436
+ path: `${basePathOf(document)}${path}`,
437
+ parameters: result,
438
+ ...(body ? { body } : {}),
439
+ output: {
440
+ kind: output,
441
+ ...(options.columns ? { columns: options.columns } : {}),
442
+ },
443
+ ...(options.confirm ? { confirm: options.confirm } : {}),
444
+ ...(options.examples?.length ? { examples: options.examples } : {}),
445
+ identities: options.identities?.length
446
+ ? [...options.identities]
447
+ : identitiesOf(document, operation, schemes),
448
+ ...(options.action ? { action: options.action } : {}),
449
+ };
450
+ return {
451
+ command,
452
+ explicit: Boolean(explicit?.length),
453
+ words,
454
+ fallback,
455
+ };
456
+ }
457
+ /**
458
+ * Every command the API document describes, for every caller: each documented operation that is not hidden and whose
459
+ * `x-cli` is not `false`. A derived name that two operations share falls back to the tag and the `operationId`; a name
460
+ * an `x-cli.command` gives twice keeps its first operation.
461
+ */
462
+ export function deriveAllCliCommands(document, options = {}) {
463
+ const schemes = { ...DEFAULT_IDENTITY_SCHEMES, ...options.identitySchemes };
464
+ const exclusions = options.exclude ?? [];
465
+ const operations = operationsById(document);
466
+ const collections = new Set(Object.entries(document.paths ?? {})
467
+ .filter(([, item]) => item?.get)
468
+ .map(([path]) => path));
469
+ const derived = [];
470
+ for (const [path, item] of Object.entries(document.paths ?? {}))
471
+ for (const method of METHODS) {
472
+ const operation = item?.[method];
473
+ if (!operation || excluded(exclusions, path, operation))
474
+ continue;
475
+ const entry = deriveOne(document, path, method, operation, schemes, operations, collections);
476
+ if (entry)
477
+ derived.push(entry);
478
+ }
479
+ const counts = new Map();
480
+ for (const entry of derived)
481
+ counts.set(entry.command.id, (counts.get(entry.command.id) ?? 0) + 1);
482
+ const explicitIds = new Set(derived.filter((entry) => entry.explicit).map((entry) => entry.command.id));
483
+ const taken = new Set();
484
+ const result = [];
485
+ for (const entry of derived) {
486
+ let { id } = entry.command;
487
+ if (!entry.explicit && ((counts.get(id) ?? 0) > 1 || explicitIds.has(id)))
488
+ id = entry.fallback.join(':');
489
+ if (taken.has(id))
490
+ continue;
491
+ taken.add(id);
492
+ result.push(id === entry.command.id ? entry.command : { ...entry.command, id });
493
+ }
494
+ return result.sort((a, b) => a.id.localeCompare(b.id));
495
+ }
496
+ /** The commands a caller may run: offered to its identity, and holding the action each one names. */
497
+ export function filterCliCommands(commands, caller) {
498
+ return commands.filter((command) => withheldReason(command, caller) === undefined);
499
+ }
500
+ /** Why `caller` is not offered `command`; undefined when it is. */
501
+ function withheldReason(command, caller) {
502
+ if (!command.identities.includes(caller.kind))
503
+ return 'identity';
504
+ if (command.action && !(caller.actions?.has(command.action) ?? false))
505
+ return 'action';
506
+ return undefined;
507
+ }
508
+ /** The manifest of `caller`'s commands, and of those it is not offered, with why. */
509
+ export function cliManifestOf(commands, caller) {
510
+ const identity = {
511
+ kind: caller.kind,
512
+ userId: caller.userId,
513
+ displayName: caller.displayName,
514
+ ...(caller.runId ? { runId: caller.runId } : {}),
515
+ actions: [...(caller.actions ?? [])].sort(),
516
+ };
517
+ const offered = [];
518
+ const withheld = [];
519
+ for (const command of commands) {
520
+ const reason = withheldReason(command, caller);
521
+ if (reason === undefined)
522
+ offered.push(command);
523
+ else
524
+ withheld.push({
525
+ id: command.id,
526
+ summary: command.summary,
527
+ reason,
528
+ identities: command.identities,
529
+ ...(command.action ? { action: command.action } : {}),
530
+ });
531
+ }
532
+ const etag = createHash('sha256')
533
+ .update(JSON.stringify({ identity, commands: offered, withheld }))
534
+ .digest('hex')
535
+ .slice(0, 32);
536
+ return {
537
+ version: CLI_MANIFEST_VERSION,
538
+ etag,
539
+ identity,
540
+ commands: offered,
541
+ withheld,
542
+ };
543
+ }
544
+ /** The manifest of the commands the API document describes that `caller` may run. */
545
+ export function deriveCliCommands(document, caller, options = {}) {
546
+ return cliManifestOf(deriveAllCliCommands(document, options), caller);
547
+ }
548
+ //# sourceMappingURL=derive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"derive.js","sourceRoot":"","sources":["../../../src/router/cli/derive.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export { cliManifestOf, deriveAllCliCommands, deriveCliCommands, deriveCommandWords, filterCliCommands, kebabCase, type DeriveCliCommandsOptions, } from './derive.js';
2
+ export { cliUsageOf, renderCliReference } from './reference.js';
3
+ export { createCliRouter } from './routes.js';
4
+ export { CliService, cliToken, type CliCallerResolver } from './service.js';
5
+ export { CLI_EXTENSION, CLI_IDENTITIES, CLI_MANIFEST_VERSION, cliRoute, type CliCaller, type CliChangedFilesOptions, type CliCommand, type CliDescription, type CliEnvDefault, type CliExclusion, type CliFlagOptions, type CliIdentity, type CliManifest, type CliManifestIdentity, type CliOutputKind, type CliParameter, type CliRouteExtension, type CliRouteOptions, type CliTicketUploadOptions, type CliUploadOptions, type CliWithheldCommand, } from './types.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/router/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,SAAS,EACT,KAAK,wBAAwB,GAC9B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC5E,OAAO,EACL,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,QAAQ,EACR,KAAK,SAAS,EACd,KAAK,sBAAsB,EAC3B,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,GACxB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,6 @@
1
+ export { cliManifestOf, deriveAllCliCommands, deriveCliCommands, deriveCommandWords, filterCliCommands, kebabCase, } from './derive.js';
2
+ export { cliUsageOf, renderCliReference } from './reference.js';
3
+ export { createCliRouter } from './routes.js';
4
+ export { CliService, cliToken } from './service.js';
5
+ export { CLI_EXTENSION, CLI_IDENTITIES, CLI_MANIFEST_VERSION, cliRoute, } from './types.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/router/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,SAAS,GAEV,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,QAAQ,EAA0B,MAAM,cAAc,CAAC;AAC5E,OAAO,EACL,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,QAAQ,GAkBT,MAAM,YAAY,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { CliCommand, CliDescription, CliManifest } from './types.js';
2
+ /** A command as it is typed: its words, its positional arguments, and its required flags. */
3
+ export declare function cliUsageOf(command: CliCommand, bin?: string): string;
4
+ /**
5
+ * The caller's commands as compact text an agent reads before using the CLI (`GET /api/cli/llms.txt`): how the CLI
6
+ * answers, then one line per command with its usage, summary, and the action it needs, grouped by its first word.
7
+ */
8
+ export declare function renderCliReference(manifest: CliManifest, description?: CliDescription): string;
9
+ //# sourceMappingURL=reference.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reference.d.ts","sourceRoot":"","sources":["../../../src/router/cli/reference.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAK1E,6FAA6F;AAC7F,wBAAgB,UAAU,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CA0BpE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,WAAW,EACrB,WAAW,GAAE,cAAmB,GAC/B,MAAM,CA6CR"}