@nocobase/app-server 0.11.1-alpha.5 → 2.0.0-beta.2

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 +96 -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,386 @@
1
+ import { loggingToken } from '../logging/token.js';
2
+ import { Hono } from 'hono';
3
+ import { AppConfigInvalidError, } from '../config/index.js';
4
+ import { apiErrorHandler, apiNotFoundHandler, installApiLimits, requestIdMiddleware, toApiError, RouterProvider, routerToken, } from '../router/index.js';
5
+ import { assertNoDuplicateApiRoutes, } from '../router/duplicate-routes.js';
6
+ import { createApiDocsRouter } from '../router/openapi/docs-routes.js';
7
+ import { createCliRouter } from '../router/cli/routes.js';
8
+ import { cliToken } from '../router/cli/service.js';
9
+ import { apiDocsToken } from '../router/openapi/service.js';
10
+ import { isForwardedTo, } from '../router/openapi/document.js';
11
+ import { readFile } from 'node:fs/promises';
12
+ import { normalizeBasePath, resolveAppName } from '../support/index.js';
13
+ import { ServiceContainer, ServiceProviderRegistry, } from '@nocobase/service-provider';
14
+ import { createRealtimeWebSocketHandler, registerRealtimeWebSocketRoutes, } from '../realtime/websocket.js';
15
+ import { RealtimeProvider } from '../realtime/provider.js';
16
+ import { createAppDatabaseTaskContributions, } from '../plugins/index.js';
17
+ import { resolveLocalesContribution } from '@nocobase/i18n';
18
+ import { i18nToken, registerAppLocales } from '../i18n/index.js';
19
+ import { sampleDataToken } from '../sample-data/token.js';
20
+ /**
21
+ * A composed NocoBase server application.
22
+ *
23
+ * The HTTP router is an application service, not the application itself.
24
+ * Application owns its resolved config, paths, service container and provider lifecycle,
25
+ * while fetch and websocket form its framework-neutral host boundary.
26
+ */
27
+ export class Application {
28
+ strictStartup;
29
+ runtimeLogging;
30
+ consoleLogStream;
31
+ config;
32
+ mode;
33
+ paths;
34
+ container;
35
+ fetch = async (request, env, executionContext) => {
36
+ await this.start();
37
+ return this.router.fetch(request, env, executionContext);
38
+ };
39
+ websocket;
40
+ providerRegistry = new ServiceProviderRegistry();
41
+ websocketFactory;
42
+ usesDefaultWebSocket;
43
+ serviceProvidersRegistered = false;
44
+ routesRegistered = false;
45
+ apiRouterValue;
46
+ httpMiddleware = [];
47
+ routes = [];
48
+ startPromise;
49
+ websocketHandler;
50
+ appPackageName;
51
+ /** Defaults match an application that registered no server plugins. */
52
+ databaseTaskContributionsValue = {
53
+ appPackageName: 'app',
54
+ migrations: [],
55
+ seeds: [],
56
+ };
57
+ localeContributions = [];
58
+ applicationLocales;
59
+ /** Plugins still declaring the removed `queue: { jobs }` contribution. */
60
+ queueJobPlugins = [];
61
+ constructor(options) {
62
+ this.strictStartup = options.strictStartup ?? false;
63
+ this.runtimeLogging = options.runtimeLogging;
64
+ this.consoleLogStream = options.consoleLogStream;
65
+ this.config = options.config;
66
+ this.mode = options.mode ?? 'embedded';
67
+ this.paths = options.paths;
68
+ this.container = new ServiceContainer();
69
+ this.usesDefaultWebSocket = options.websocket === undefined;
70
+ this.websocketFactory = options.websocket ?? createRealtimeWebSocketHandler;
71
+ this.websocket = async (request, env) => {
72
+ await this.start();
73
+ return this.getWebSocketHandler()(request, env);
74
+ };
75
+ this.addServiceProvider(RouterProvider);
76
+ if (this.usesDefaultWebSocket) {
77
+ this.addServiceProvider(RealtimeProvider);
78
+ }
79
+ }
80
+ get appName() {
81
+ return resolveAppName(this.config.get('app').name);
82
+ }
83
+ get publicBasePath() {
84
+ return normalizeBasePath(this.config.get('app').publicBasePath);
85
+ }
86
+ get router() {
87
+ return this.container.resolve(routerToken);
88
+ }
89
+ /**
90
+ * The router every `/api` contribution is mounted into, once the application has started and registered its routes.
91
+ * The API document is generated from it, and `inspectApiRoutes(app)` reads it.
92
+ */
93
+ get apiRouter() {
94
+ return this.apiRouterValue;
95
+ }
96
+ /**
97
+ * The routes behind runtime dispatchers that plugins registered with the API documentation service, inspected by
98
+ * `inspectApiRoutes(app)` and documented along with `apiRouter`'s own. Empty when the application has no API
99
+ * documentation service.
100
+ */
101
+ get forwardedApiRoutes() {
102
+ return this.container.has(apiDocsToken)
103
+ ? this.container.resolve(apiDocsToken).forwardedApiRoutes
104
+ : { routers: [], undeclared: [] };
105
+ }
106
+ addServiceProvider(Provider, ...args) {
107
+ this.providerRegistry.add(new Provider(this, ...args));
108
+ }
109
+ addServiceProviders(Providers) {
110
+ for (const Provider of Providers) {
111
+ this.addServiceProvider(Provider);
112
+ }
113
+ }
114
+ get databaseTaskContributions() {
115
+ return this.databaseTaskContributionsValue;
116
+ }
117
+ addServerPlugins(serverPlugins) {
118
+ this.appPackageName = serverPlugins.appPackageName;
119
+ this.databaseTaskContributionsValue =
120
+ createAppDatabaseTaskContributions(serverPlugins);
121
+ for (const plugin of serverPlugins.plugins) {
122
+ for (const Provider of plugin.definition.serviceProviders) {
123
+ this.addServiceProvider(Provider);
124
+ }
125
+ for (const routes of plugin.definition.routes) {
126
+ this.addRoutes(routes, { owner: plugin.definition.packageName });
127
+ }
128
+ if (plugin.definition.queue) {
129
+ this.queueJobPlugins.push(plugin.definition.packageName);
130
+ }
131
+ if (plugin.definition.locales) {
132
+ this.localeContributions.push({
133
+ packageName: plugin.definition.packageName,
134
+ locales: plugin.definition.locales,
135
+ });
136
+ }
137
+ }
138
+ }
139
+ addRuntimeContributions(runtime) {
140
+ this.addServerPlugins(runtime.plugins);
141
+ if (runtime.locales) {
142
+ this.addApplicationLocales(runtime.locales);
143
+ }
144
+ this.addServiceProviders(runtime.serviceProviders);
145
+ for (const routes of runtime.routes) {
146
+ this.addRoutes(routes, {
147
+ owner: this.appPackageName ?? 'the application',
148
+ });
149
+ }
150
+ }
151
+ addApplicationLocales(locales) {
152
+ this.applicationLocales = locales;
153
+ }
154
+ /**
155
+ * Adds a route contribution. `owner` names what contributed it, such as a plugin's package name, in the error that a
156
+ * duplicate API route raises at start; contributions added without one are named by their position.
157
+ */
158
+ addRoutes(routes, options = {}) {
159
+ this.assertRoutesMutable();
160
+ this.routes.push({ contribution: routes, owner: options.owner });
161
+ }
162
+ addHttpMiddleware(middleware) {
163
+ this.assertRoutesMutable();
164
+ this.httpMiddleware.push(middleware);
165
+ }
166
+ registerProviders() {
167
+ if (this.serviceProvidersRegistered) {
168
+ return;
169
+ }
170
+ this.providerRegistry.registerAll();
171
+ this.serviceProvidersRegistered = true;
172
+ if (this.usesDefaultWebSocket && this.container.has(routerToken)) {
173
+ registerRealtimeWebSocketRoutes(this.router);
174
+ }
175
+ }
176
+ start() {
177
+ this.startPromise ??= this.startServiceProviders();
178
+ return this.startPromise;
179
+ }
180
+ shutdown() {
181
+ return this.providerRegistry.shutdown();
182
+ }
183
+ getWebSocketHandler() {
184
+ this.websocketHandler ??= this.websocketFactory(this.container);
185
+ return this.websocketHandler;
186
+ }
187
+ async startServiceProviders() {
188
+ await this.validateConfig();
189
+ this.registerProviders();
190
+ this.reportQueueJobPlugins();
191
+ await this.registerLocales();
192
+ await this.providerRegistry.bootAll();
193
+ await this.registerRoutes();
194
+ await this.providerRegistry.startAll();
195
+ await this.providerRegistry.readyAll();
196
+ await this.buildSampleData();
197
+ }
198
+ /**
199
+ * Builds the sample data services registered, once every provider is ready, so that a sample may go through any
200
+ * plugin's services. A sample that fails is logged and recorded as skipped rather than failing the start.
201
+ */
202
+ async buildSampleData() {
203
+ if (!this.container.has(sampleDataToken))
204
+ return;
205
+ const result = await this.container.resolve(sampleDataToken).run();
206
+ if (result.executed.length === 0 && result.failed.length === 0)
207
+ return;
208
+ const logger = this.container.has(loggingToken)
209
+ ? this.container.resolve(loggingToken).getLogger('app')
210
+ : undefined;
211
+ for (const name of result.executed) {
212
+ if (logger)
213
+ logger.info({ sample: name }, 'Sample data built');
214
+ }
215
+ for (const { name, error } of result.failed) {
216
+ const message = `Sample data "${name}" could not be built; run "nocobase db sample" to try again.`;
217
+ if (logger)
218
+ logger.error({ err: error, sample: name }, message);
219
+ else
220
+ console.error(message, error);
221
+ }
222
+ }
223
+ /** Warns once per plugin whose `queue: { jobs }` contribution is no longer loaded. */
224
+ reportQueueJobPlugins() {
225
+ const logger = this.container.has(loggingToken)
226
+ ? this.container.resolve(loggingToken).getLogger('plugins')
227
+ : undefined;
228
+ for (const packageName of this.queueJobPlugins) {
229
+ const message = `Plugin ${packageName} declares queue.jobs, which is deprecated and ignored: Job modules are no longer discovered. Register queue handlers from a service provider's boot() through queueServiceToken, or move the work to @nocobase/jobs.`;
230
+ if (logger)
231
+ logger.warn({ packageName }, message);
232
+ else
233
+ console.warn(message);
234
+ }
235
+ }
236
+ /**
237
+ * Refuses to start on a configuration that breaks a rule its sections declare. It runs here rather than when the
238
+ * runtime is resolved, so commands that only read the configuration, such as `config init` and `config check`, still
239
+ * load it and can report what is wrong.
240
+ */
241
+ async validateConfig() {
242
+ const issues = (await this.config.validate?.()) ?? [];
243
+ if (issues.some((issue) => issue.level === 'error')) {
244
+ throw new AppConfigInvalidError(issues);
245
+ }
246
+ }
247
+ /**
248
+ * Registers each plugin's locale loaders against its package name and brings the runtime up.
249
+ *
250
+ * Only the default language is read here; another one is imported the first time a request asks for it.
251
+ */
252
+ async registerLocales() {
253
+ if (!this.container.has(i18nToken)) {
254
+ return;
255
+ }
256
+ const runtime = this.container.resolve(i18nToken);
257
+ const sources = [
258
+ ...(this.applicationLocales
259
+ ? [
260
+ {
261
+ packageName: this.appPackageName ?? '',
262
+ locales: this.applicationLocales,
263
+ },
264
+ ]
265
+ : []),
266
+ ...this.localeContributions,
267
+ ];
268
+ const contributions = await Promise.all(sources.map(async (contribution) => ({
269
+ packageName: contribution.packageName,
270
+ locales: await resolveLocalesContribution(contribution.locales),
271
+ })));
272
+ await registerAppLocales(runtime, this.appPackageName ?? '', contributions);
273
+ }
274
+ async registerRoutes() {
275
+ if (this.routesRegistered) {
276
+ return;
277
+ }
278
+ for (const middleware of this.httpMiddleware) {
279
+ await middleware.register(this.router, this);
280
+ }
281
+ // Every API contribution mounts into one router so `/api` answers errors and unknown paths in the standard error
282
+ // body. It mounts before the root contributions, whose catch-alls (the SPA's `/*`) would otherwise answer an
283
+ // unknown API path with a page.
284
+ const api = new Hono();
285
+ api.use('*', requestIdMiddleware());
286
+ // The `api` section's global limits, each installed only when configured.
287
+ installApiLimits(api, this.config.get('api'));
288
+ // The last resort: anything no router recognized is an unexpected failure, answered with an opaque 500.
289
+ api.onError((error, context) => apiErrorHandler(toApiError(error), context));
290
+ const apiRouters = [];
291
+ const roots = [];
292
+ for (const [index, { contribution, owner }] of this.routes.entries()) {
293
+ const router = await contribution.createRouter(this);
294
+ if (contribution.scope === 'api') {
295
+ apiRouters.push({
296
+ owner: owner ?? `route contribution #${index + 1}`,
297
+ router,
298
+ });
299
+ }
300
+ else
301
+ roots.push(router);
302
+ }
303
+ // The API documentation, mounted with the contributions so a plugin route under `/swagger` fails start as a
304
+ // duplicate rather than shadowing it.
305
+ const apiDocs = this.container.has(apiDocsToken)
306
+ ? this.container.resolve(apiDocsToken)
307
+ : undefined;
308
+ if (apiDocs) {
309
+ apiRouters.push({
310
+ owner: '@nocobase/app-server',
311
+ router: createApiDocsRouter(apiDocs),
312
+ });
313
+ if (this.container.has(cliToken))
314
+ apiRouters.push({
315
+ owner: '@nocobase/app-server',
316
+ router: createCliRouter(this.container.resolve(cliToken), apiDocs),
317
+ });
318
+ }
319
+ // Routers a runtime dispatcher forwards to are checked with the rest, at the paths they answer below `/api`. Only
320
+ // those registered by now, during boot, are seen; they are checked here and never mounted.
321
+ const forwardedRouters = (apiDocs?.forwardedApiRoutes.routers ?? []).map((registration) => ({
322
+ owner: registration.owner,
323
+ router: registration.router,
324
+ mount: registration.prefix.slice('/api'.length),
325
+ // A route outside the forwarded path is never reached, so it cannot shadow anything.
326
+ includes: (path) => isForwardedTo(registration, `/api${path}`),
327
+ }));
328
+ // Hono lets the first matching route win without a word, so a second contribution answering the same method and
329
+ // path would be dead code nobody notices. Checked before anything mounts, so a failed start leaves no half-built
330
+ // router behind.
331
+ assertNoDuplicateApiRoutes([...apiRouters, ...forwardedRouters]);
332
+ for (const { router } of apiRouters)
333
+ api.route('/', router);
334
+ api.all('*', apiNotFoundHandler);
335
+ this.router.route('/api', api);
336
+ for (const router of roots)
337
+ this.router.route('/', router);
338
+ this.apiRouterValue = api;
339
+ apiDocs?.attach({
340
+ api,
341
+ describe: () => this.describeApiDocument(),
342
+ onWarning: (message) => {
343
+ if (this.container.has(loggingToken)) {
344
+ this.container
345
+ .resolve(loggingToken)
346
+ .getLogger('api-docs')
347
+ .warn(message);
348
+ }
349
+ else
350
+ console.warn(message);
351
+ },
352
+ });
353
+ this.routesRegistered = true;
354
+ }
355
+ /**
356
+ * The document's title and version, from the application's `package.json` or else its name, and its server: the
357
+ * public base path the API is served under.
358
+ */
359
+ async describeApiDocument() {
360
+ let manifest = {};
361
+ try {
362
+ manifest = JSON.parse(await readFile(this.paths.root('package.json'), 'utf8'));
363
+ }
364
+ catch {
365
+ // An application assembled without a manifest, such as one in a test, is named by its configuration.
366
+ }
367
+ const text = (value) => typeof value === 'string' && value ? value : undefined;
368
+ const identity = this.config.get('app');
369
+ return {
370
+ info: {
371
+ title: text(manifest.displayName) ??
372
+ text(manifest.name) ??
373
+ this.appPackageName ??
374
+ (identity ? this.appName : 'NocoBase application'),
375
+ version: text(manifest.version) ?? '0.0.0',
376
+ },
377
+ servers: [{ url: (identity && this.publicBasePath) || '/' }],
378
+ };
379
+ }
380
+ assertRoutesMutable() {
381
+ if (this.startPromise || this.routesRegistered) {
382
+ throw new Error('Routes cannot be added after the application starts.');
383
+ }
384
+ }
385
+ }
386
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/application/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export type { CachingConfig } from '@nocobase/caching';
2
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/caching/config.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/caching/config.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ export * from './config.js';
2
+ export * from './provider.js';
3
+ export { cachingToken } from './token.js';
4
+ export type { CachingConfig } from '@nocobase/caching';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/caching/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './config.js';
2
+ export * from './provider.js';
3
+ export { cachingToken } from './token.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/caching/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { ServiceProvider } from '@nocobase/service-provider';
2
+ import type { AppPluginApplication } from '../plugins/index.js';
3
+ export declare class CachingProvider extends ServiceProvider<AppPluginApplication> {
4
+ readonly name: string;
5
+ register(): void;
6
+ shutdown(): Promise<void>;
7
+ }
8
+ //# sourceMappingURL=provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/caching/provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAIhE,qBAAa,eAAgB,SAAQ,eAAe,CAAC,oBAAoB,CAAC;IACxE,SAAgB,IAAI,EAAE,MAAM,CAAkC;IAE9C,QAAQ,IAAI,IAAI;IAKV,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAGhD"}
@@ -0,0 +1,14 @@
1
+ import { createCaching } from '@nocobase/caching';
2
+ import { ServiceProvider } from '@nocobase/service-provider';
3
+ import { cachingToken } from './token.js';
4
+ export class CachingProvider extends ServiceProvider {
5
+ name = '@nocobase/app-server/caching';
6
+ register() {
7
+ const config = this.app.config.get('caching');
8
+ this.app.container.singleton(cachingToken, () => createCaching(config));
9
+ }
10
+ async shutdown() {
11
+ await this.app.container.resolveIfCreated(cachingToken)?.dispose();
12
+ }
13
+ }
14
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/caching/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAI7D,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,OAAO,eAAgB,SAAQ,eAAqC;IACxD,IAAI,GAAW,8BAA8B,CAAC;IAE9C,QAAQ;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAgB,SAAS,CAAE,CAAC;QAC9D,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1E,CAAC;IAEe,KAAK,CAAC,QAAQ;QAC5B,MAAM,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC;IACrE,CAAC;CACF"}
@@ -0,0 +1,4 @@
1
+ import { type ServiceToken } from '@nocobase/service-provider';
2
+ import type { Caching } from '@nocobase/caching';
3
+ export declare const cachingToken: ServiceToken<Caching>;
4
+ //# sourceMappingURL=token.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../src/caching/token.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,YAAY,EAClB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEjD,eAAO,MAAM,YAAY,EAAE,YAAY,CAAC,OAAO,CACG,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { createServiceToken, } from '@nocobase/service-provider';
2
+ export const cachingToken = createServiceToken('@nocobase/caching');
3
+ //# sourceMappingURL=token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token.js","sourceRoot":"","sources":["../../src/caching/token.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,GAEnB,MAAM,4BAA4B,CAAC;AAIpC,MAAM,CAAC,MAAM,YAAY,GACvB,kBAAkB,CAAU,mBAAmB,CAAC,CAAC"}
@@ -0,0 +1,44 @@
1
+ import type { Logger } from '@nocobase/logging';
2
+ import type { ConfigLoadOptions, ConfigMap, ConfigParser, ConfigProvider } from '@nocobase/config';
3
+ import type { FileProviderOptions } from '@nocobase/config/providers/file';
4
+ import type { ConfigIssue } from './validation.js';
5
+ export interface AppConfigSource {
6
+ readonly provider: ConfigProvider;
7
+ readonly parser?: ConfigParser;
8
+ readonly options?: ConfigLoadOptions;
9
+ }
10
+ export type AppConfigFileOptions = FileProviderOptions;
11
+ export interface AppConfigChange<TValue> {
12
+ readonly previous: TValue;
13
+ readonly current: TValue;
14
+ }
15
+ export type AppConfigChangeListener<TValue> = (change: AppConfigChange<TValue>) => void | Promise<void>;
16
+ export interface AppConfigReloadResult {
17
+ readonly changedNamespaces: readonly string[];
18
+ }
19
+ export interface AppConfigAccessor {
20
+ setLogger?(logger: Pick<Logger, 'debug'>): void;
21
+ mergeDefaults(values: ConfigMap): void;
22
+ get<TValue = unknown>(key: string): TValue | undefined;
23
+ raw(): ConfigMap;
24
+ reload(): Promise<AppConfigReloadResult>;
25
+ /** Issues the sections' declared rules find; an accessor without declared rules may omit it. */
26
+ validate?(): Promise<readonly ConfigIssue[]>;
27
+ /** Values the sections publish to the browser; an accessor without declared rules may omit it. */
28
+ publicValues?(): ConfigMap;
29
+ /** Every published path in full, such as `auth.emailAndPassword.disableSignUp`. */
30
+ publicPaths?(): readonly string[];
31
+ subscribe<TValue>(namespace: string, listener: AppConfigChangeListener<TValue>): () => void;
32
+ }
33
+ /**
34
+ * The two layers an application's configuration is merged from, as read-only copies.
35
+ *
36
+ * `defaults` is what the application declares in code; `overrides` is what its own sources — configuration files and
37
+ * the environment — supply over them. The merged result can no longer tell the two apart, which is exactly what a
38
+ * check needs: a key that only ever appears in `overrides` is one the application does not know.
39
+ */
40
+ export interface AppConfigLayers {
41
+ readonly defaults: ConfigMap;
42
+ readonly overrides: ConfigMap;
43
+ }
44
+ //# sourceMappingURL=app-config-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-config-types.d.ts","sourceRoot":"","sources":["../../src/config/app-config-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EACV,iBAAiB,EACjB,SAAS,EACT,YAAY,EACZ,cAAc,EACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,OAAO,CAAC,EAAE,iBAAiB,CAAC;CACtC;AAED,MAAM,MAAM,oBAAoB,GAAG,mBAAmB,CAAC;AAEvD,MAAM,WAAW,eAAe,CAAC,MAAM;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,uBAAuB,CAAC,MAAM,IAAI,CAC5C,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,KAC5B,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE1B,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/C;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAChD,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC;IACvC,GAAG,CAAC,MAAM,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACvD,GAAG,IAAI,SAAS,CAAC;IACjB,MAAM,IAAI,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACzC,gGAAgG;IAChG,QAAQ,CAAC,IAAI,OAAO,CAAC,SAAS,WAAW,EAAE,CAAC,CAAC;IAC7C,kGAAkG;IAClG,YAAY,CAAC,IAAI,SAAS,CAAC;IAC3B,mFAAmF;IACnF,WAAW,CAAC,IAAI,SAAS,MAAM,EAAE,CAAC;IAClC,SAAS,CAAC,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,uBAAuB,CAAC,MAAM,CAAC,GACxC,MAAM,IAAI,CAAC;CACf;AAED;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;CAC/B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=app-config-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-config-types.js","sourceRoot":"","sources":["../../src/config/app-config-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,60 @@
1
+ import { type ConfigMap } from '@nocobase/config';
2
+ import type { Logger } from '@nocobase/logging';
3
+ import { type EnvironmentMapping } from '@nocobase/config/providers/env';
4
+ import type { AppConfigChangeListener, AppConfigFileOptions, AppConfigLayers, AppConfigReloadResult, AppConfigSource } from './app-config-types.js';
5
+ import type { AppPaths } from './types.js';
6
+ import type { AppConfigRules } from './define-app-config.js';
7
+ import { type ConfigIssue } from './validation.js';
8
+ export declare class AppConfig {
9
+ private readonly sources;
10
+ private readonly listeners;
11
+ private current;
12
+ private defaults;
13
+ private overrides;
14
+ private readonly sections;
15
+ private reloadPromise;
16
+ private logger?;
17
+ private loadDurationMs?;
18
+ /** Attach diagnostics after the logging configuration has been resolved. */
19
+ setLogger(logger: Pick<Logger, 'debug'>): void;
20
+ load(provider: AppConfigSource['provider'], parser?: AppConfigSource['parser'], options?: AppConfigSource['options']): this;
21
+ loadFile(filePath: string, options?: AppConfigFileOptions): this;
22
+ loadAll(): Promise<void>;
23
+ get<TValue = unknown>(key: string): TValue | undefined;
24
+ mergeDefaults(values: ConfigMap): void;
25
+ /**
26
+ * Registers the validators and public paths sections declare, as collected by `defaultAppConfigs`. A section
27
+ * registered twice keeps both sets: every validator runs and the public paths are combined.
28
+ */
29
+ defineSections(sections: ReadonlyMap<string, AppConfigRules>): void;
30
+ /**
31
+ * Adds the environment variables sections declare, as one more source above everything already loaded, and
32
+ * recomputes the configuration. Called once the sections are known, which is after the application's own sources
33
+ * were loaded; a variable an application also maps itself to the same field is harmless.
34
+ */
35
+ loadSectionEnvironment(environment: Readonly<Record<string, string | undefined>>): Promise<void>;
36
+ /** Every environment variable the sections declare, with the absolute path it sets, such as `{ AUTH_SECRET: 'auth.secret' }`. */
37
+ sectionEnvironmentVariables(): Readonly<Record<string, string>>;
38
+ /**
39
+ * Every environment variable the sections declare, with its mapping and the path made absolute, such as
40
+ * `{ AUTH_SECRET: { path: 'auth.secret', type: 'string', generate: 'secret' } }`.
41
+ */
42
+ environmentVariableMappings(): Readonly<Record<string, EnvironmentMapping>>;
43
+ /** Every issue the declared rules find in the current configuration, warnings included. Throws nothing. */
44
+ validate(): Promise<readonly ConfigIssue[]>;
45
+ /** The values sections publish to the browser, nested under their section names. */
46
+ publicValues(): ConfigMap;
47
+ /** Every published path in full, such as `auth.emailAndPassword.disableSignUp`. */
48
+ publicPaths(): readonly string[];
49
+ raw(): ConfigMap;
50
+ /** The defaults and the values the application's own sources supply, kept apart. See {@link AppConfigLayers}. */
51
+ layers(): AppConfigLayers;
52
+ subscribe<TValue>(namespace: string, listener: AppConfigChangeListener<TValue>): () => void;
53
+ reload(): Promise<AppConfigReloadResult>;
54
+ private performReload;
55
+ private loadConfig;
56
+ private requireCurrent;
57
+ }
58
+ /** Resolve deployment configuration independently of the compiled code directory. */
59
+ export declare function resolveDefaultAppConfigFile(paths: Pick<AppPaths, 'deploymentRootDir'>): string;
60
+ //# sourceMappingURL=app-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-config.d.ts","sourceRoot":"","sources":["../../src/config/app-config.ts"],"names":[],"mappings":"AAIA,OAAO,EAAU,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAI1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,gCAAgC,CAAC;AAExC,OAAO,KAAK,EACV,uBAAuB,EACvB,oBAAoB,EACpB,eAAe,EACf,qBAAqB,EACrB,eAAe,EAChB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAKL,KAAK,WAAW,EACjB,MAAM,iBAAiB,CAAC;AAEzB,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;IACjD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAGtB;IACJ,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqC;IAC9D,OAAO,CAAC,aAAa,CAA6C;IAClE,OAAO,CAAC,MAAM,CAAC,CAAwB;IACvC,OAAO,CAAC,cAAc,CAAC,CAAS;IAEhC,4EAA4E;IACrE,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAW9C,IAAI,CACT,QAAQ,EAAE,eAAe,CAAC,UAAU,CAAC,EACrC,MAAM,CAAC,EAAE,eAAe,CAAC,QAAQ,CAAC,EAClC,OAAO,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC,GACnC,IAAI;IAQA,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,oBAAyB,GAAG,IAAI;IAmB9D,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ9B,GAAG,CAAC,MAAM,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAItD,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IAU7C;;;OAGG;IACI,cAAc,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,IAAI;IAgB1E;;;;OAIG;IACU,sBAAsB,CACjC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,GACxD,OAAO,CAAC,IAAI,CAAC;IAwBhB,iIAAiI;IAC1H,2BAA2B,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAStE;;;OAGG;IACI,2BAA2B,IAAI,QAAQ,CAC5C,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CACnC;IAaD,2GAA2G;IAC9F,QAAQ,IAAI,OAAO,CAAC,SAAS,WAAW,EAAE,CAAC;IASxD,oFAAoF;IAC7E,YAAY,IAAI,SAAS;IAKhC,mFAAmF;IAC5E,WAAW,IAAI,SAAS,MAAM,EAAE;IAIhC,GAAG,IAAI,SAAS;IAIvB,iHAAiH;IAC1G,MAAM,IAAI,eAAe;IAQzB,SAAS,CAAC,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,uBAAuB,CAAC,MAAM,CAAC,GACxC,MAAM,IAAI;IASN,MAAM,IAAI,OAAO,CAAC,qBAAqB,CAAC;YAmBjC,aAAa;YAyCb,UAAU;IAWxB,OAAO,CAAC,cAAc;CAMvB;AAUD,qFAAqF;AACrF,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,mBAAmB,CAAC,GACzC,MAAM,CAIR"}