@nocobase/app-server 0.11.1-alpha.5 → 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 @@
1
+ {"version":3,"file":"repository-document.js","sourceRoot":"","sources":["../../../src/router/openapi/repository-document.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import type { StandardSchemaV1 } from '@standard-schema/spec';
2
+ import type { OpenAPIV3_1 } from 'openapi-types';
3
+ type SchemaOrRef = OpenAPIV3_1.SchemaObject | OpenAPIV3_1.ReferenceObject;
4
+ /** Whether a schema documents what a client sends (`input`) or what the server answers (`output`). */
5
+ export type ApiSchemaDirection = 'input' | 'output';
6
+ /** A schema converted for the API document: the schema itself and the components it refers to. */
7
+ export interface ConvertedApiSchema {
8
+ readonly schema: SchemaOrRef;
9
+ readonly components: OpenAPIV3_1.ComponentsObject | undefined;
10
+ }
11
+ /**
12
+ * Convert a Standard Schema for the API document. A zod schema is converted with zod itself under the document's
13
+ * conventions (see `ApiMetadataRegistry` and the open response objects above); any other vendor goes through
14
+ * hono-openapi's converter. Either way the result's definitions are hoisted into `components.schemas` under stable
15
+ * names and every reference points there.
16
+ */
17
+ export declare function convertApiSchema(schema: StandardSchemaV1, direction: ApiSchemaDirection): Promise<ConvertedApiSchema>;
18
+ /**
19
+ * Every place in a document that refers to a schema it cannot resolve or names a component in a way that breaks the
20
+ * document: a local `$ref` whose target does not exist (such as `#/$defs/...`, which means nothing in an OpenAPI
21
+ * document), a component named by a converter (`__schema0`) rather than by its declaration, and a component name the
22
+ * OpenAPI specification does not allow. An empty list means the schemas are sound.
23
+ *
24
+ * ```ts
25
+ * expect(findApiDocumentSchemaProblems(await generateApiDocument(app, options))).toEqual([]);
26
+ * ```
27
+ */
28
+ export declare function findApiDocumentSchemaProblems(document: OpenAPIV3_1.Document): string[];
29
+ export {};
30
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/router/openapi/schema.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAWjD,KAAK,WAAW,GAAG,WAAW,CAAC,YAAY,GAAG,WAAW,CAAC,eAAe,CAAC;AAE1E,sGAAsG;AACtG,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEpD,kGAAkG;AAClG,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,gBAAgB,GAAG,SAAS,CAAC;CAC/D;AA6PD;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,gBAAgB,EACxB,SAAS,EAAE,kBAAkB,GAC5B,OAAO,CAAC,kBAAkB,CAAC,CA4B7B;AAED;;;;;;;;;GASG;AACH,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,WAAW,CAAC,QAAQ,GAC7B,MAAM,EAAE,CAoDV"}
@@ -0,0 +1,301 @@
1
+ import { createHash } from 'node:crypto';
2
+ import { resolver as honoResolver } from 'hono-openapi';
3
+ import { z } from 'zod';
4
+ import { $ZodRegistry, globalRegistry, toJSONSchema, } from 'zod/v4/core';
5
+ const componentsPrefix = '#/components/schemas/';
6
+ const generatedDefinitionName = /^__schema\d+$/;
7
+ const componentName = /^[A-Za-z0-9._-]+$/;
8
+ // The name a recursive schema without a declared `ref` gets when it is exactly what `z.json()` describes, the common
9
+ // case. Any other anonymous recursive schema is named after a hash of its content.
10
+ const jsonValueName = 'JsonValue';
11
+ function encodePointer(segment) {
12
+ return segment.replaceAll('~', '~0').replaceAll('/', '~1');
13
+ }
14
+ function decodePointer(segment) {
15
+ return segment.replaceAll('~1', '/').replaceAll('~0', '~');
16
+ }
17
+ function isZodSchema(schema) {
18
+ return '_zod' in schema;
19
+ }
20
+ /**
21
+ * zod's metadata seen through the API document's conventions: a schema whose own metadata declares `ref` is given that
22
+ * `ref` as its zod `id`, so zod extracts it into a definition of that name and every use refers to it — including a
23
+ * copy made by `.meta({ description })` or `.describe()`, which keeps its own description next to the `$ref` instead of
24
+ * overwriting the shared one. A `ref` inherited from the schema a copy was made from is not an id of the copy, and the
25
+ * `ref` key itself never reaches the emitted JSON Schema.
26
+ */
27
+ class ApiMetadataRegistry extends $ZodRegistry {
28
+ claims = new Map();
29
+ cache = new WeakMap();
30
+ get(schema) {
31
+ if (this.cache.has(schema))
32
+ return this.cache.get(schema);
33
+ const meta = this.resolve(schema);
34
+ this.cache.set(schema, meta);
35
+ return meta;
36
+ }
37
+ resolve(schema) {
38
+ const meta = globalRegistry.get(schema);
39
+ if (!meta)
40
+ return undefined;
41
+ const { ref, ...rest } = meta;
42
+ const bare = Object.keys(rest).length > 0 ? rest : undefined;
43
+ if (typeof ref !== 'string' || rest.id !== undefined)
44
+ return bare;
45
+ const parent = schema._zod.parent;
46
+ if (parent &&
47
+ globalRegistry.get(parent)?.ref === ref) {
48
+ return bare;
49
+ }
50
+ // Two different schemas declaring the same `ref` in one conversion cannot both be that definition; the first one
51
+ // seen is, the other is described inline rather than failing the whole document.
52
+ const owner = this.claims.get(ref);
53
+ if (owner && owner !== schema)
54
+ return bare;
55
+ this.claims.set(ref, schema);
56
+ return { ...rest, id: ref };
57
+ }
58
+ }
59
+ function zodJsonSchema(schema, direction) {
60
+ return toJSONSchema(schema, {
61
+ target: 'draft-2020-12',
62
+ io: direction,
63
+ unrepresentable: 'any',
64
+ cycles: 'ref',
65
+ reused: 'inline',
66
+ metadata: new ApiMetadataRegistry(),
67
+ override: ({ zodSchema, jsonSchema }) => {
68
+ const def = zodSchema._zod.def;
69
+ // A `Date` travels as an RFC 3339 string, as hono-openapi documents it.
70
+ if (def.type === 'date') {
71
+ jsonSchema.type = 'string';
72
+ jsonSchema.format = 'date-time';
73
+ }
74
+ // zod closes a plain `z.object` in output mode because parsing strips unknown keys. A response schema is a
75
+ // promise about the fields it lists, not a refusal of new ones: closing it would make every added field a
76
+ // breaking change for a strict client. Only `z.strictObject` / `.strict()` (a `never` catchall) stays closed.
77
+ if (direction === 'output' &&
78
+ def.type === 'object' &&
79
+ def.catchall === undefined &&
80
+ jsonSchema.additionalProperties === false) {
81
+ delete jsonSchema.additionalProperties;
82
+ }
83
+ },
84
+ });
85
+ }
86
+ let jsonValueCanonical;
87
+ function canonicalJsonValue() {
88
+ // `z.json()` converted on its own is a root that refers to itself as `#`.
89
+ if (jsonValueCanonical === undefined) {
90
+ const root = {
91
+ ...zodJsonSchema(z.json(), 'output'),
92
+ };
93
+ delete root.$schema;
94
+ jsonValueCanonical = canonicalize(root, '', new Set());
95
+ }
96
+ return jsonValueCanonical;
97
+ }
98
+ /** The content of a definition with its references to itself spelled `#` and those to other unnamed ones neutralized. */
99
+ function canonicalize(definition, self, anonymous) {
100
+ return JSON.stringify(definition, (key, value) => {
101
+ if (key !== '$ref' || typeof value !== 'string')
102
+ return value;
103
+ const name = definitionName(value);
104
+ if (name === self)
105
+ return '#';
106
+ if (name !== undefined && anonymous.has(name))
107
+ return '#anonymous';
108
+ return value;
109
+ });
110
+ }
111
+ function definitionName(ref) {
112
+ for (const prefix of ['#/$defs/', '#/definitions/', componentsPrefix]) {
113
+ if (ref.startsWith(prefix))
114
+ return decodePointer(ref.slice(prefix.length));
115
+ }
116
+ return undefined;
117
+ }
118
+ function nameAnonymous(canonical, taken) {
119
+ if (canonical === canonicalJsonValue() && !taken(jsonValueName))
120
+ return jsonValueName;
121
+ return `Recursive${createHash('sha256').update(canonical).digest('hex').slice(0, 8)}`;
122
+ }
123
+ function omitRef(definition) {
124
+ const rest = { ...definition };
125
+ delete rest.$ref;
126
+ return rest;
127
+ }
128
+ function rewrite(value, refFor) {
129
+ if (Array.isArray(value))
130
+ return value.map((item) => rewrite(item, refFor));
131
+ if (typeof value !== 'object' || value === null)
132
+ return value;
133
+ const result = {};
134
+ for (const [key, child] of Object.entries(value)) {
135
+ result[key] =
136
+ key === '$ref' && typeof child === 'string'
137
+ ? refFor(child)
138
+ : rewrite(child, refFor);
139
+ }
140
+ return result;
141
+ }
142
+ /**
143
+ * Turn a JSON Schema with local definitions into an OpenAPI schema whose definitions are components.
144
+ *
145
+ * - Every definition becomes a component. One with a declared name keeps it; one a converter named itself (`__schema0`,
146
+ * which would collide across routes and plugins) is named `JsonValue` when it is `z.json()` and after a hash of its
147
+ * content otherwise, so the same schema always gets the same name and different schemas never share one.
148
+ * - A declared definition that only refers to an unnamed one, as `z.json().meta({ ref })` does because the recursion
149
+ * runs through the schema it was copied from, takes the unnamed definition's content under the declared name.
150
+ * - A root that refers to itself as `#` becomes a component too, since `#` in a document is the document.
151
+ * - Every `$ref` to a definition is rewritten to `#/components/schemas/...`.
152
+ */
153
+ function hoistDefinitions(root, definitions) {
154
+ const names = new Map();
155
+ const anonymous = new Set(Object.keys(definitions).filter((name) => generatedDefinitionName.test(name)));
156
+ const declared = new Set(Object.keys(definitions).filter((name) => !anonymous.has(name)));
157
+ const used = new Set(declared);
158
+ for (const name of declared)
159
+ names.set(name, name);
160
+ const aliases = new Map();
161
+ for (const name of declared) {
162
+ const definition = definitions[name];
163
+ const target = typeof definition?.$ref === 'string'
164
+ ? definitionName(definition.$ref)
165
+ : undefined;
166
+ if (target === undefined || !anonymous.has(target) || names.has(target)) {
167
+ continue;
168
+ }
169
+ names.set(target, name);
170
+ aliases.set(name, target);
171
+ }
172
+ for (const name of anonymous) {
173
+ if (names.has(name))
174
+ continue;
175
+ const assigned = nameAnonymous(canonicalize(definitions[name], name, anonymous), (candidate) => used.has(candidate));
176
+ names.set(name, assigned);
177
+ used.add(assigned);
178
+ }
179
+ const selfReferencing = JSON.stringify(root).includes('"$ref":"#"');
180
+ let rootName;
181
+ if (selfReferencing) {
182
+ rootName = nameAnonymous(canonicalize(root, '', anonymous), (candidate) => used.has(candidate));
183
+ }
184
+ const refFor = (ref) => {
185
+ if (ref === '#' && rootName)
186
+ return `${componentsPrefix}${encodePointer(rootName)}`;
187
+ const name = definitionName(ref);
188
+ if (name === undefined)
189
+ return ref;
190
+ return `${componentsPrefix}${encodePointer(names.get(name) ?? name)}`;
191
+ };
192
+ const schemas = {};
193
+ for (const [name, definition] of Object.entries(definitions)) {
194
+ if (anonymous.has(name) && aliases.has(names.get(name)))
195
+ continue;
196
+ const target = aliases.get(name);
197
+ const content = target === undefined
198
+ ? definition
199
+ : {
200
+ ...definitions[target],
201
+ ...omitRef(definition),
202
+ };
203
+ schemas[names.get(name) ?? name] = rewrite(content, refFor);
204
+ }
205
+ let schema = rewrite(root, refFor);
206
+ if (rootName) {
207
+ schemas[rootName] = schema;
208
+ schema = { $ref: `${componentsPrefix}${encodePointer(rootName)}` };
209
+ }
210
+ return {
211
+ schema,
212
+ components: Object.keys(schemas).length > 0 ? { schemas } : undefined,
213
+ };
214
+ }
215
+ /**
216
+ * Convert a Standard Schema for the API document. A zod schema is converted with zod itself under the document's
217
+ * conventions (see `ApiMetadataRegistry` and the open response objects above); any other vendor goes through
218
+ * hono-openapi's converter. Either way the result's definitions are hoisted into `components.schemas` under stable
219
+ * names and every reference points there.
220
+ */
221
+ export async function convertApiSchema(schema, direction) {
222
+ if (isZodSchema(schema)) {
223
+ const { $defs, ...root } = zodJsonSchema(schema, direction);
224
+ delete root.$schema;
225
+ return hoistDefinitions(root, $defs ?? {});
226
+ }
227
+ const result = await honoResolver(schema, {
228
+ options: { io: direction },
229
+ }).toOpenAPISchema();
230
+ const { $defs, ...root } = result.schema;
231
+ const hoisted = hoistDefinitions(root, {
232
+ ...result.components?.schemas,
233
+ ...$defs,
234
+ });
235
+ return {
236
+ schema: hoisted.schema,
237
+ components: result.components || hoisted.components
238
+ ? { ...result.components, schemas: hoisted.components?.schemas ?? {} }
239
+ : undefined,
240
+ };
241
+ }
242
+ /**
243
+ * Every place in a document that refers to a schema it cannot resolve or names a component in a way that breaks the
244
+ * document: a local `$ref` whose target does not exist (such as `#/$defs/...`, which means nothing in an OpenAPI
245
+ * document), a component named by a converter (`__schema0`) rather than by its declaration, and a component name the
246
+ * OpenAPI specification does not allow. An empty list means the schemas are sound.
247
+ *
248
+ * ```ts
249
+ * expect(findApiDocumentSchemaProblems(await generateApiDocument(app, options))).toEqual([]);
250
+ * ```
251
+ */
252
+ export function findApiDocumentSchemaProblems(document) {
253
+ const problems = [];
254
+ const components = (document.components ?? {});
255
+ for (const [kind, entries] of Object.entries(components)) {
256
+ for (const name of Object.keys(entries ?? {})) {
257
+ if (generatedDefinitionName.test(name)) {
258
+ problems.push(`components/${kind}/${name} is a name generated by the schema converter, not a declared one.`);
259
+ }
260
+ else if (!componentName.test(name)) {
261
+ problems.push(`components/${kind}/${name} is not a valid OpenAPI component name.`);
262
+ }
263
+ }
264
+ }
265
+ const resolves = (ref) => {
266
+ if (!ref.startsWith('#/'))
267
+ return false;
268
+ let current = document;
269
+ for (const segment of ref.slice(2).split('/')) {
270
+ if (typeof current !== 'object' || current === null)
271
+ return false;
272
+ const key = decodePointer(segment);
273
+ if (!Object.prototype.hasOwnProperty.call(current, key))
274
+ return false;
275
+ current = current[key];
276
+ }
277
+ return current !== undefined;
278
+ };
279
+ const visit = (value, path) => {
280
+ if (Array.isArray(value)) {
281
+ value.forEach((item, index) => visit(item, `${path}/${index}`));
282
+ return;
283
+ }
284
+ if (typeof value !== 'object' || value === null)
285
+ return;
286
+ for (const [key, child] of Object.entries(value)) {
287
+ const childPath = `${path}/${encodePointer(key)}`;
288
+ if (key === '$ref' && typeof child === 'string') {
289
+ // A reference to another document is not this document's to resolve.
290
+ if (child.startsWith('#') && !resolves(child)) {
291
+ problems.push(`${path} refers to ${child}, which does not exist in the document.`);
292
+ }
293
+ continue;
294
+ }
295
+ visit(child, childPath);
296
+ }
297
+ };
298
+ visit(document, '#');
299
+ return problems;
300
+ }
301
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/router/openapi/schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,101 @@
1
+ import { type ServiceToken } from '@nocobase/service-provider';
2
+ import type { Context, Hono } from 'hono';
3
+ import type { OpenAPIV3_1 } from 'openapi-types';
4
+ import { type ApiDocument, type ApiDocumentFragment, type ApiDocumentInfo, type ApiForwardedRouter, type ApiForwardedRoutes, type ApiRouterSource, type ApiUndeclaredRoute } from './document.js';
5
+ /**
6
+ * Decides whether a request may read the API document and its Swagger UI. It answers `true` to allow; `false` leaves
7
+ * the decision to the other checks. It may also throw an `ApiError` to answer with a status of its own.
8
+ */
9
+ export type ApiDocsAccessCheck = (context: Context) => boolean | Promise<boolean>;
10
+ export interface ApiDocsAccess {
11
+ /** Who contributes the check, such as a plugin's package name. */
12
+ readonly name: string;
13
+ readonly check: ApiDocsAccessCheck;
14
+ }
15
+ /**
16
+ * Changes the generated document in place, after the declared routes and the fragments are in: for what only the
17
+ * assembled document can say, such as which credentials the command manifest takes.
18
+ */
19
+ export type ApiDocumentTransform = (document: ApiDocument) => void | Promise<void>;
20
+ /** A fragment, or a function that builds one each time the document is generated. */
21
+ export type ApiDocumentFragmentSource = ApiDocumentFragment | (() => ApiDocumentFragment | Promise<ApiDocumentFragment>);
22
+ export interface ApiDocsDescription {
23
+ readonly info: ApiDocumentInfo;
24
+ readonly servers?: readonly OpenAPIV3_1.ServerObject[];
25
+ }
26
+ /** What the application hands the service once its `/api` router is assembled. */
27
+ export interface ApiDocsTarget {
28
+ readonly api: Hono;
29
+ /** The document's `info` and `servers`, read when the document is generated. */
30
+ readonly describe: () => ApiDocsDescription | Promise<ApiDocsDescription>;
31
+ readonly onWarning?: (message: string) => void;
32
+ }
33
+ /**
34
+ * The application's API documentation: who may read it, what plugins add to it, and the cached document itself.
35
+ *
36
+ * - Access: `GET /api/swagger` and `GET /api/swagger/docs` are served only once at least one access check is
37
+ * registered, and only to a request one of them allows. With none registered the routes answer `404
38
+ * ROUTE_NOT_FOUND`, exactly like a path that does not exist: an application that has no way to tell who is asking
39
+ * does not publish its API. With checks registered and none allowing, they answer `401 UNAUTHENTICATED`.
40
+ * - Forwarded routes: a plugin that serves routes through a runtime dispatcher — one catch-all on `/api` that hands
41
+ * each request to a router at request time — registers each router with `addApiRouter()`, and each forwarded
42
+ * target it cannot see into with `addUndeclaredApiRoute()`. The document and `inspectApiRoutes(app)` treat the
43
+ * routers' routes exactly like routes mounted on `/api`; an undeclared route is reported and never documented.
44
+ * - Fragments: paths, components, tags and security schemes a plugin documents itself, merged after the declared
45
+ * routes.
46
+ * - Cache: the document is generated on the first request and kept until `invalidate()`, which anything that changes
47
+ * what the document describes calls — a Collection's metadata changing changes its data endpoints' schemas.
48
+ */
49
+ export declare class ApiDocsService implements ApiRouterSource {
50
+ private readonly accessChecks;
51
+ private readonly fragments;
52
+ private readonly transforms;
53
+ private readonly forwardedRouters;
54
+ private readonly undeclaredRoutes;
55
+ private target;
56
+ private cached;
57
+ /** Allow the requests `access.check` accepts to read the documentation. Returns a function that removes it. */
58
+ addAccess(access: ApiDocsAccess): () => void;
59
+ /** Merge `fragment` into the document. Returns a function that removes it. */
60
+ addFragment(fragment: ApiDocumentFragmentSource): () => void;
61
+ /** Apply `transform` to every generated document, in the order added. Returns a function that removes it. */
62
+ addTransform(transform: ApiDocumentTransform): () => void;
63
+ /**
64
+ * Requests under `prefix` are forwarded to `router` at request time, by a dispatcher the `/api` router sees only as a
65
+ * catch-all. Its routes are documented and inspected at `prefix` followed by the router's own paths, exactly like
66
+ * routes mounted on `/api`: each declares `describeRoute({...})` or `describeRoute({ hide: true })`. With `scope`,
67
+ * only routes at `prefix` + `scope` or below it are documented; one outside it is never reached, is left out of the
68
+ * document and the duplicate-route check, and is reported as undeclared. Registered
69
+ * before the application registers its routes, they also take part in the duplicate-route check at start. Returns a
70
+ * function that removes the registration.
71
+ */
72
+ addApiRouter(registration: ApiForwardedRouter): () => void;
73
+ /**
74
+ * A forwarded target the framework cannot see into, such as a plain function a dispatcher calls: it always counts as
75
+ * undeclared in `findUndeclaredApiRoutes(app)`, so the API document check fails, and it never appears in the
76
+ * document. Returns a function that removes the registration.
77
+ */
78
+ addUndeclaredApiRoute(route: ApiUndeclaredRoute): () => void;
79
+ /** What the registered dispatchers forward to, as `inspectApiRoutes()` and the document read it. */
80
+ get forwardedApiRoutes(): ApiForwardedRoutes;
81
+ private track;
82
+ /** Whether any access check is registered, which decides whether the documentation is served at all. */
83
+ hasAccessChecks(): boolean;
84
+ /** Whether one of the registered checks allows `context` to read the documentation. */
85
+ canRead(context: Context): Promise<boolean>;
86
+ /** Called by the application once its `/api` router is assembled. */
87
+ attach(target: ApiDocsTarget): void;
88
+ /** The `/api` router the document is generated from, once the application has registered its routes. */
89
+ get apiRouter(): Hono | undefined;
90
+ /** The document, generated on first use and cached until `invalidate()`. */
91
+ getDocument(): Promise<ApiDocument>;
92
+ /** Drop the cached document; the next read generates it again. */
93
+ invalidate(): void;
94
+ private generate;
95
+ }
96
+ /**
97
+ * The application's `ApiDocsService`. A plugin resolves it in its service provider's `register()` or `boot()` to add
98
+ * an access check or a fragment, or to invalidate the cached document.
99
+ */
100
+ export declare const apiDocsToken: ServiceToken<ApiDocsService>;
101
+ //# sourceMappingURL=service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/router/openapi/service.ts"],"names":[],"mappings":"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"}