@qwickapps/server 1.6.1 → 1.7.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 (1300) hide show
  1. package/CHANGELOG.md +92 -1
  2. package/README.md +159 -14
  3. package/dist/src/core/control-panel.d.ts.map +1 -0
  4. package/dist/src/core/control-panel.js +489 -0
  5. package/dist/src/core/control-panel.js.map +1 -0
  6. package/dist/src/core/gateway.d.ts.map +1 -0
  7. package/dist/src/core/gateway.js +1085 -0
  8. package/dist/src/core/gateway.js.map +1 -0
  9. package/dist/src/core/guards.d.ts.map +1 -0
  10. package/dist/src/core/guards.js.map +1 -0
  11. package/dist/src/core/health-manager.d.ts.map +1 -0
  12. package/dist/src/core/health-manager.js.map +1 -0
  13. package/dist/src/core/index.d.ts.map +1 -0
  14. package/dist/src/core/index.js.map +1 -0
  15. package/dist/src/core/logging.d.ts.map +1 -0
  16. package/dist/src/core/logging.js.map +1 -0
  17. package/dist/src/core/plugin-registry.d.ts +390 -0
  18. package/dist/src/core/plugin-registry.d.ts.map +1 -0
  19. package/dist/src/core/plugin-registry.js.map +1 -0
  20. package/dist/src/core/types.d.ts.map +1 -0
  21. package/dist/src/core/types.js.map +1 -0
  22. package/dist/src/index.d.ts +22 -0
  23. package/dist/src/index.d.ts.map +1 -0
  24. package/dist/src/index.js +55 -0
  25. package/dist/src/index.js.map +1 -0
  26. package/dist/src/plugins/api-keys/ApiKeysManagementPage.d.ts.map +1 -0
  27. package/dist/src/plugins/api-keys/ApiKeysManagementPage.js.map +1 -0
  28. package/dist/src/plugins/api-keys/ApiKeysStatusWidget.d.ts.map +1 -0
  29. package/dist/src/plugins/api-keys/ApiKeysStatusWidget.js.map +1 -0
  30. package/dist/src/plugins/api-keys/api-keys-plugin.d.ts.map +1 -0
  31. package/dist/src/plugins/api-keys/api-keys-plugin.js.map +1 -0
  32. package/dist/src/plugins/api-keys/index.d.ts.map +1 -0
  33. package/dist/src/plugins/api-keys/index.js.map +1 -0
  34. package/dist/src/plugins/api-keys/middleware/bearer-token-auth.d.ts.map +1 -0
  35. package/dist/src/plugins/api-keys/middleware/bearer-token-auth.js.map +1 -0
  36. package/dist/src/plugins/api-keys/middleware/index.d.ts.map +1 -0
  37. package/dist/src/plugins/api-keys/middleware/index.js.map +1 -0
  38. package/dist/src/plugins/api-keys/middleware/usage-logging.d.ts.map +1 -0
  39. package/dist/src/plugins/api-keys/middleware/usage-logging.js.map +1 -0
  40. package/dist/src/plugins/api-keys/stores/index.d.ts.map +1 -0
  41. package/dist/src/plugins/api-keys/stores/index.js.map +1 -0
  42. package/dist/src/plugins/api-keys/stores/plugin-scope-store.d.ts.map +1 -0
  43. package/dist/src/plugins/api-keys/stores/plugin-scope-store.js.map +1 -0
  44. package/dist/src/plugins/api-keys/stores/postgres-store.d.ts.map +1 -0
  45. package/dist/src/plugins/api-keys/stores/postgres-store.js +389 -0
  46. package/dist/src/plugins/api-keys/stores/postgres-store.js.map +1 -0
  47. package/dist/src/plugins/api-keys/stores/usage-log-store.d.ts.map +1 -0
  48. package/dist/src/plugins/api-keys/stores/usage-log-store.js.map +1 -0
  49. package/dist/src/plugins/api-keys/types.d.ts.map +1 -0
  50. package/dist/src/plugins/api-keys/types.js.map +1 -0
  51. package/dist/src/plugins/auth/AuthManagementPage.d.ts.map +1 -0
  52. package/dist/src/plugins/auth/AuthManagementPage.js.map +1 -0
  53. package/dist/src/plugins/auth/AuthStatusWidget.d.ts.map +1 -0
  54. package/dist/src/plugins/auth/AuthStatusWidget.js.map +1 -0
  55. package/dist/src/plugins/auth/adapter-wrapper.d.ts.map +1 -0
  56. package/dist/src/plugins/auth/adapter-wrapper.js.map +1 -0
  57. package/dist/src/plugins/auth/adapters/auth0-adapter.d.ts.map +1 -0
  58. package/dist/src/plugins/auth/adapters/auth0-adapter.js.map +1 -0
  59. package/dist/src/plugins/auth/adapters/basic-adapter.d.ts.map +1 -0
  60. package/dist/src/plugins/auth/adapters/basic-adapter.js.map +1 -0
  61. package/dist/src/plugins/auth/adapters/index.d.ts.map +1 -0
  62. package/dist/src/plugins/auth/adapters/index.js.map +1 -0
  63. package/dist/src/plugins/auth/adapters/supabase-adapter.d.ts.map +1 -0
  64. package/dist/src/plugins/auth/adapters/supabase-adapter.js.map +1 -0
  65. package/dist/src/plugins/auth/adapters/supertokens-adapter.d.ts.map +1 -0
  66. package/dist/src/plugins/auth/adapters/supertokens-adapter.js.map +1 -0
  67. package/dist/src/plugins/auth/auth-plugin.d.ts.map +1 -0
  68. package/dist/src/plugins/auth/auth-plugin.js +273 -0
  69. package/dist/src/plugins/auth/auth-plugin.js.map +1 -0
  70. package/dist/src/plugins/auth/config-store.d.ts.map +1 -0
  71. package/dist/src/plugins/auth/config-store.js.map +1 -0
  72. package/dist/src/plugins/auth/env-config.d.ts.map +1 -0
  73. package/dist/src/plugins/auth/env-config.js +1137 -0
  74. package/dist/src/plugins/auth/env-config.js.map +1 -0
  75. package/dist/src/plugins/auth/index.d.ts.map +1 -0
  76. package/dist/src/plugins/auth/index.js.map +1 -0
  77. package/dist/src/plugins/auth/types.d.ts.map +1 -0
  78. package/dist/src/plugins/auth/types.js.map +1 -0
  79. package/dist/src/plugins/bans/BansManagementPage.d.ts.map +1 -0
  80. package/dist/src/plugins/bans/BansManagementPage.js.map +1 -0
  81. package/dist/src/plugins/bans/BansStatusWidget.d.ts.map +1 -0
  82. package/dist/src/plugins/bans/BansStatusWidget.js.map +1 -0
  83. package/dist/src/plugins/bans/bans-plugin.d.ts.map +1 -0
  84. package/dist/src/plugins/bans/bans-plugin.js.map +1 -0
  85. package/dist/src/plugins/bans/index.d.ts +13 -0
  86. package/dist/src/plugins/bans/index.d.ts.map +1 -0
  87. package/dist/src/plugins/bans/index.js +13 -0
  88. package/dist/src/plugins/bans/index.js.map +1 -0
  89. package/dist/src/plugins/bans/stores/in-memory-store.d.ts +34 -0
  90. package/dist/src/plugins/bans/stores/in-memory-store.d.ts.map +1 -0
  91. package/dist/src/plugins/bans/stores/in-memory-store.js +97 -0
  92. package/dist/src/plugins/bans/stores/in-memory-store.js.map +1 -0
  93. package/dist/src/plugins/bans/stores/index.d.ts +8 -0
  94. package/dist/src/plugins/bans/stores/index.d.ts.map +1 -0
  95. package/dist/src/plugins/bans/stores/index.js +8 -0
  96. package/dist/src/plugins/bans/stores/index.js.map +1 -0
  97. package/dist/src/plugins/bans/stores/postgres-store.d.ts.map +1 -0
  98. package/dist/src/plugins/bans/stores/postgres-store.js.map +1 -0
  99. package/dist/src/plugins/bans/types.d.ts.map +1 -0
  100. package/dist/src/plugins/bans/types.js.map +1 -0
  101. package/dist/src/plugins/cache/CacheManagementPage.d.ts.map +1 -0
  102. package/dist/src/plugins/cache/CacheManagementPage.js.map +1 -0
  103. package/dist/src/plugins/cache/CacheStatusWidget.d.ts.map +1 -0
  104. package/dist/src/plugins/cache/CacheStatusWidget.js.map +1 -0
  105. package/dist/src/plugins/cache/index.d.ts.map +1 -0
  106. package/dist/src/plugins/cache/index.js.map +1 -0
  107. package/dist/src/plugins/cache-plugin.d.ts +249 -0
  108. package/dist/src/plugins/cache-plugin.d.ts.map +1 -0
  109. package/dist/src/plugins/cache-plugin.js +625 -0
  110. package/dist/src/plugins/cache-plugin.js.map +1 -0
  111. package/dist/src/plugins/cms/cms-plugin.d.ts.map +1 -0
  112. package/dist/src/plugins/cms/cms-plugin.js +222 -0
  113. package/dist/src/plugins/cms/cms-plugin.js.map +1 -0
  114. package/dist/src/plugins/cms/index.d.ts.map +1 -0
  115. package/dist/src/plugins/cms/index.js.map +1 -0
  116. package/dist/src/plugins/config-plugin.d.ts.map +1 -0
  117. package/dist/src/plugins/config-plugin.js.map +1 -0
  118. package/dist/src/plugins/core/index.d.ts.map +1 -0
  119. package/dist/src/plugins/core/index.js.map +1 -0
  120. package/dist/src/plugins/devices/DevicesManagementPage.d.ts.map +1 -0
  121. package/dist/src/plugins/devices/DevicesManagementPage.js.map +1 -0
  122. package/dist/src/plugins/devices/DevicesStatusWidget.d.ts.map +1 -0
  123. package/dist/src/plugins/devices/DevicesStatusWidget.js.map +1 -0
  124. package/dist/src/plugins/devices/adapters/compute-adapter.d.ts.map +1 -0
  125. package/dist/src/plugins/devices/adapters/compute-adapter.js.map +1 -0
  126. package/dist/src/plugins/devices/adapters/index.d.ts.map +1 -0
  127. package/dist/src/plugins/devices/adapters/index.js.map +1 -0
  128. package/dist/src/plugins/devices/adapters/mobile-adapter.d.ts.map +1 -0
  129. package/dist/src/plugins/devices/adapters/mobile-adapter.js.map +1 -0
  130. package/dist/src/plugins/devices/devices-plugin.d.ts.map +1 -0
  131. package/dist/src/plugins/devices/devices-plugin.js.map +1 -0
  132. package/dist/src/plugins/devices/index.d.ts.map +1 -0
  133. package/dist/src/plugins/devices/index.js.map +1 -0
  134. package/dist/src/plugins/devices/stores/index.d.ts.map +1 -0
  135. package/dist/src/plugins/devices/stores/index.js.map +1 -0
  136. package/dist/src/plugins/devices/stores/postgres-store.d.ts.map +1 -0
  137. package/dist/src/plugins/devices/stores/postgres-store.js.map +1 -0
  138. package/dist/src/plugins/devices/token-utils.d.ts.map +1 -0
  139. package/dist/src/plugins/devices/token-utils.js.map +1 -0
  140. package/dist/src/plugins/devices/types.d.ts.map +1 -0
  141. package/dist/src/plugins/devices/types.js.map +1 -0
  142. package/dist/src/plugins/diagnostics/DiagnosticsManagementPage.d.ts.map +1 -0
  143. package/dist/src/plugins/diagnostics/DiagnosticsManagementPage.js.map +1 -0
  144. package/dist/src/plugins/diagnostics/DiagnosticsStatusWidget.d.ts.map +1 -0
  145. package/dist/src/plugins/diagnostics/DiagnosticsStatusWidget.js.map +1 -0
  146. package/dist/src/plugins/diagnostics/index.d.ts.map +1 -0
  147. package/dist/src/plugins/diagnostics/index.js.map +1 -0
  148. package/dist/src/plugins/diagnostics-plugin.d.ts.map +1 -0
  149. package/dist/src/plugins/diagnostics-plugin.js.map +1 -0
  150. package/dist/src/plugins/entitlements/EntitlementsManagementPage.d.ts.map +1 -0
  151. package/dist/src/plugins/entitlements/EntitlementsManagementPage.js.map +1 -0
  152. package/dist/src/plugins/entitlements/EntitlementsStatusWidget.d.ts.map +1 -0
  153. package/dist/src/plugins/entitlements/EntitlementsStatusWidget.js.map +1 -0
  154. package/dist/src/plugins/entitlements/entitlements-plugin.d.ts.map +1 -0
  155. package/dist/src/plugins/entitlements/entitlements-plugin.js.map +1 -0
  156. package/dist/src/plugins/entitlements/index.d.ts +16 -0
  157. package/dist/src/plugins/entitlements/index.d.ts.map +1 -0
  158. package/dist/src/plugins/entitlements/index.js +19 -0
  159. package/dist/src/plugins/entitlements/index.js.map +1 -0
  160. package/dist/src/plugins/entitlements/sources/in-memory-source.d.ts +9 -0
  161. package/dist/src/plugins/entitlements/sources/in-memory-source.d.ts.map +1 -0
  162. package/dist/src/plugins/entitlements/sources/in-memory-source.js +65 -0
  163. package/dist/src/plugins/entitlements/sources/in-memory-source.js.map +1 -0
  164. package/dist/src/plugins/entitlements/sources/index.d.ts +10 -0
  165. package/dist/src/plugins/entitlements/sources/index.d.ts.map +1 -0
  166. package/dist/src/plugins/entitlements/sources/index.js +10 -0
  167. package/dist/src/plugins/entitlements/sources/index.js.map +1 -0
  168. package/dist/src/plugins/entitlements/sources/postgres-source.d.ts.map +1 -0
  169. package/dist/src/plugins/entitlements/sources/postgres-source.js.map +1 -0
  170. package/dist/src/plugins/entitlements/types.d.ts.map +1 -0
  171. package/dist/src/plugins/entitlements/types.js.map +1 -0
  172. package/dist/src/plugins/frontend-app-plugin.d.ts.map +1 -0
  173. package/dist/src/plugins/frontend-app-plugin.js.map +1 -0
  174. package/dist/src/plugins/health/HealthManagementPage.d.ts.map +1 -0
  175. package/dist/src/plugins/health/HealthManagementPage.js.map +1 -0
  176. package/dist/src/plugins/health/HealthStatusWidget.d.ts.map +1 -0
  177. package/dist/src/plugins/health/HealthStatusWidget.js.map +1 -0
  178. package/dist/src/plugins/health/index.d.ts.map +1 -0
  179. package/dist/src/plugins/health/index.js.map +1 -0
  180. package/dist/src/plugins/health-plugin.d.ts.map +1 -0
  181. package/dist/src/plugins/health-plugin.js +41 -0
  182. package/dist/src/plugins/health-plugin.js.map +1 -0
  183. package/dist/src/plugins/index.d.ts +56 -0
  184. package/dist/src/plugins/index.d.ts.map +1 -0
  185. package/dist/src/plugins/index.js +46 -0
  186. package/dist/src/plugins/index.js.map +1 -0
  187. package/dist/src/plugins/logs/LogsManagementPage.d.ts.map +1 -0
  188. package/dist/src/plugins/logs/LogsManagementPage.js.map +1 -0
  189. package/dist/src/plugins/logs/LogsStatusWidget.d.ts.map +1 -0
  190. package/dist/src/plugins/logs/LogsStatusWidget.js.map +1 -0
  191. package/dist/src/plugins/logs/index.d.ts.map +1 -0
  192. package/dist/src/plugins/logs/index.js.map +1 -0
  193. package/dist/src/plugins/logs-plugin.d.ts.map +1 -0
  194. package/dist/src/plugins/logs-plugin.js +297 -0
  195. package/dist/src/plugins/logs-plugin.js.map +1 -0
  196. package/dist/src/plugins/maintenance/MaintenanceManagementPage.d.ts.map +1 -0
  197. package/dist/src/plugins/maintenance/MaintenanceManagementPage.js.map +1 -0
  198. package/dist/src/plugins/maintenance/MaintenanceStatusWidget.d.ts.map +1 -0
  199. package/dist/src/plugins/maintenance/MaintenanceStatusWidget.js.map +1 -0
  200. package/dist/src/plugins/maintenance/SeedExecutor.d.ts.map +1 -0
  201. package/dist/src/plugins/maintenance/SeedExecutor.js.map +1 -0
  202. package/dist/src/plugins/maintenance/SeedHistory.d.ts.map +1 -0
  203. package/dist/src/plugins/maintenance/SeedHistory.js.map +1 -0
  204. package/dist/src/plugins/maintenance/SeedList.d.ts.map +1 -0
  205. package/dist/src/plugins/maintenance/SeedList.js.map +1 -0
  206. package/dist/src/plugins/maintenance/SeedManagementPage.d.ts.map +1 -0
  207. package/dist/src/plugins/maintenance/SeedManagementPage.js.map +1 -0
  208. package/dist/src/plugins/maintenance/index.d.ts.map +1 -0
  209. package/dist/src/plugins/maintenance/index.js.map +1 -0
  210. package/dist/src/plugins/maintenance/seed-executor.d.ts.map +1 -0
  211. package/dist/src/plugins/maintenance/seed-executor.js.map +1 -0
  212. package/dist/src/plugins/maintenance-plugin.d.ts.map +1 -0
  213. package/dist/src/plugins/maintenance-plugin.js +360 -0
  214. package/dist/src/plugins/maintenance-plugin.js.map +1 -0
  215. package/dist/src/plugins/notifications/NotificationsManagementPage.d.ts.map +1 -0
  216. package/dist/src/plugins/notifications/NotificationsManagementPage.js.map +1 -0
  217. package/dist/src/plugins/notifications/NotificationsStatusWidget.d.ts.map +1 -0
  218. package/dist/src/plugins/notifications/NotificationsStatusWidget.js.map +1 -0
  219. package/dist/src/plugins/notifications/index.d.ts.map +1 -0
  220. package/dist/src/plugins/notifications/index.js.map +1 -0
  221. package/dist/src/plugins/notifications/notifications-manager.d.ts.map +1 -0
  222. package/dist/src/plugins/notifications/notifications-manager.js.map +1 -0
  223. package/dist/src/plugins/notifications/notifications-plugin.d.ts.map +1 -0
  224. package/dist/src/plugins/notifications/notifications-plugin.js +338 -0
  225. package/dist/src/plugins/notifications/notifications-plugin.js.map +1 -0
  226. package/dist/src/plugins/notifications/types.d.ts.map +1 -0
  227. package/dist/src/plugins/notifications/types.js.map +1 -0
  228. package/dist/src/plugins/parental/ParentalManagementPage.d.ts.map +1 -0
  229. package/dist/src/plugins/parental/ParentalManagementPage.js.map +1 -0
  230. package/dist/src/plugins/parental/ParentalStatusWidget.d.ts.map +1 -0
  231. package/dist/src/plugins/parental/ParentalStatusWidget.js.map +1 -0
  232. package/dist/src/plugins/parental/adapters/index.d.ts.map +1 -0
  233. package/dist/src/plugins/parental/adapters/index.js.map +1 -0
  234. package/dist/src/plugins/parental/adapters/kids-adapter.d.ts.map +1 -0
  235. package/dist/src/plugins/parental/adapters/kids-adapter.js.map +1 -0
  236. package/dist/src/plugins/parental/index.d.ts.map +1 -0
  237. package/dist/src/plugins/parental/index.js.map +1 -0
  238. package/dist/src/plugins/parental/parental-plugin.d.ts.map +1 -0
  239. package/dist/src/plugins/parental/parental-plugin.js.map +1 -0
  240. package/dist/src/plugins/parental/stores/index.d.ts.map +1 -0
  241. package/dist/src/plugins/parental/stores/index.js.map +1 -0
  242. package/dist/src/plugins/parental/stores/postgres-store.d.ts.map +1 -0
  243. package/dist/src/plugins/parental/stores/postgres-store.js.map +1 -0
  244. package/dist/src/plugins/parental/types.d.ts.map +1 -0
  245. package/dist/src/plugins/parental/types.js.map +1 -0
  246. package/dist/src/plugins/postgres/PostgresManagementPage.d.ts.map +1 -0
  247. package/dist/src/plugins/postgres/PostgresManagementPage.js.map +1 -0
  248. package/dist/src/plugins/postgres/PostgresStatusWidget.d.ts.map +1 -0
  249. package/dist/src/plugins/postgres/PostgresStatusWidget.js.map +1 -0
  250. package/dist/src/plugins/postgres/index.d.ts.map +1 -0
  251. package/dist/src/plugins/postgres/index.js.map +1 -0
  252. package/dist/src/plugins/postgres-plugin.d.ts +157 -0
  253. package/dist/src/plugins/postgres-plugin.d.ts.map +1 -0
  254. package/dist/src/plugins/postgres-plugin.js +256 -0
  255. package/dist/src/plugins/postgres-plugin.js.map +1 -0
  256. package/dist/src/plugins/preferences/PreferencesManagementPage.d.ts.map +1 -0
  257. package/dist/src/plugins/preferences/PreferencesManagementPage.js.map +1 -0
  258. package/dist/src/plugins/preferences/PreferencesStatusWidget.d.ts.map +1 -0
  259. package/dist/src/plugins/preferences/PreferencesStatusWidget.js.map +1 -0
  260. package/dist/src/plugins/preferences/index.d.ts.map +1 -0
  261. package/dist/src/plugins/preferences/index.js.map +1 -0
  262. package/dist/src/plugins/preferences/preferences-plugin.d.ts.map +1 -0
  263. package/dist/src/plugins/preferences/preferences-plugin.js.map +1 -0
  264. package/dist/src/plugins/preferences/stores/index.d.ts.map +1 -0
  265. package/dist/src/plugins/preferences/stores/index.js.map +1 -0
  266. package/dist/src/plugins/preferences/stores/postgres-store.d.ts.map +1 -0
  267. package/dist/src/plugins/preferences/stores/postgres-store.js.map +1 -0
  268. package/dist/src/plugins/preferences/types.d.ts.map +1 -0
  269. package/dist/src/plugins/preferences/types.js.map +1 -0
  270. package/dist/src/plugins/profiles/ProfilesManagementPage.d.ts.map +1 -0
  271. package/dist/src/plugins/profiles/ProfilesManagementPage.js.map +1 -0
  272. package/dist/src/plugins/profiles/ProfilesStatusWidget.d.ts.map +1 -0
  273. package/dist/src/plugins/profiles/ProfilesStatusWidget.js.map +1 -0
  274. package/dist/src/plugins/profiles/index.d.ts.map +1 -0
  275. package/dist/src/plugins/profiles/index.js.map +1 -0
  276. package/dist/src/plugins/profiles/profiles-plugin.d.ts.map +1 -0
  277. package/dist/src/plugins/profiles/profiles-plugin.js.map +1 -0
  278. package/dist/src/plugins/profiles/stores/index.d.ts.map +1 -0
  279. package/dist/src/plugins/profiles/stores/index.js.map +1 -0
  280. package/dist/src/plugins/profiles/stores/postgres-store.d.ts.map +1 -0
  281. package/dist/src/plugins/profiles/stores/postgres-store.js.map +1 -0
  282. package/dist/src/plugins/profiles/types.d.ts.map +1 -0
  283. package/dist/src/plugins/profiles/types.js.map +1 -0
  284. package/dist/src/plugins/qwickbrain/QwickbrainManagementPage.d.ts.map +1 -0
  285. package/dist/src/plugins/qwickbrain/QwickbrainManagementPage.js.map +1 -0
  286. package/dist/src/plugins/qwickbrain/QwickbrainStatusWidget.d.ts.map +1 -0
  287. package/dist/src/plugins/qwickbrain/QwickbrainStatusWidget.js.map +1 -0
  288. package/dist/src/plugins/qwickbrain/index.d.ts.map +1 -0
  289. package/dist/src/plugins/qwickbrain/index.js.map +1 -0
  290. package/dist/src/plugins/qwickbrain/qwickbrain-plugin.d.ts.map +1 -0
  291. package/dist/src/plugins/qwickbrain/qwickbrain-plugin.js.map +1 -0
  292. package/dist/src/plugins/qwickbrain/types.d.ts.map +1 -0
  293. package/dist/src/plugins/qwickbrain/types.js.map +1 -0
  294. package/dist/src/plugins/rate-limit/RateLimitManagementPage.d.ts.map +1 -0
  295. package/dist/src/plugins/rate-limit/RateLimitManagementPage.js.map +1 -0
  296. package/dist/src/plugins/rate-limit/RateLimitStatusWidget.d.ts.map +1 -0
  297. package/dist/src/plugins/rate-limit/RateLimitStatusWidget.js.map +1 -0
  298. package/dist/src/plugins/rate-limit/cleanup.d.ts.map +1 -0
  299. package/dist/src/plugins/rate-limit/cleanup.js.map +1 -0
  300. package/dist/src/plugins/rate-limit/env-config.d.ts.map +1 -0
  301. package/dist/src/plugins/rate-limit/env-config.js.map +1 -0
  302. package/dist/src/plugins/rate-limit/index.d.ts.map +1 -0
  303. package/dist/src/plugins/rate-limit/index.js.map +1 -0
  304. package/dist/src/plugins/rate-limit/middleware.d.ts.map +1 -0
  305. package/dist/src/plugins/rate-limit/middleware.js.map +1 -0
  306. package/dist/src/plugins/rate-limit/rate-limit-plugin.d.ts.map +1 -0
  307. package/dist/src/plugins/rate-limit/rate-limit-plugin.js.map +1 -0
  308. package/dist/src/plugins/rate-limit/rate-limit-service.d.ts.map +1 -0
  309. package/dist/src/plugins/rate-limit/rate-limit-service.js.map +1 -0
  310. package/dist/src/plugins/rate-limit/stores/cache-store.d.ts.map +1 -0
  311. package/dist/src/plugins/rate-limit/stores/cache-store.js.map +1 -0
  312. package/dist/src/plugins/rate-limit/stores/index.d.ts.map +1 -0
  313. package/dist/src/plugins/rate-limit/stores/index.js.map +1 -0
  314. package/dist/src/plugins/rate-limit/stores/postgres-store.d.ts.map +1 -0
  315. package/dist/src/plugins/rate-limit/stores/postgres-store.js.map +1 -0
  316. package/dist/src/plugins/rate-limit/strategies/fixed-window.d.ts.map +1 -0
  317. package/dist/src/plugins/rate-limit/strategies/fixed-window.js.map +1 -0
  318. package/dist/src/plugins/rate-limit/strategies/index.d.ts.map +1 -0
  319. package/dist/src/plugins/rate-limit/strategies/index.js.map +1 -0
  320. package/dist/src/plugins/rate-limit/strategies/sliding-window.d.ts.map +1 -0
  321. package/dist/src/plugins/rate-limit/strategies/sliding-window.js.map +1 -0
  322. package/dist/src/plugins/rate-limit/strategies/token-bucket.d.ts.map +1 -0
  323. package/dist/src/plugins/rate-limit/strategies/token-bucket.js.map +1 -0
  324. package/dist/src/plugins/rate-limit/types.d.ts.map +1 -0
  325. package/dist/src/plugins/rate-limit/types.js.map +1 -0
  326. package/dist/src/plugins/subscriptions/SubscriptionsManagementPage.d.ts.map +1 -0
  327. package/dist/src/plugins/subscriptions/SubscriptionsManagementPage.js.map +1 -0
  328. package/dist/src/plugins/subscriptions/SubscriptionsStatusWidget.d.ts.map +1 -0
  329. package/dist/src/plugins/subscriptions/SubscriptionsStatusWidget.js.map +1 -0
  330. package/dist/src/plugins/subscriptions/index.d.ts.map +1 -0
  331. package/dist/src/plugins/subscriptions/index.js.map +1 -0
  332. package/dist/src/plugins/subscriptions/stores/index.d.ts.map +1 -0
  333. package/dist/src/plugins/subscriptions/stores/index.js.map +1 -0
  334. package/dist/src/plugins/subscriptions/stores/postgres-store.d.ts.map +1 -0
  335. package/dist/src/plugins/subscriptions/stores/postgres-store.js.map +1 -0
  336. package/dist/src/plugins/subscriptions/subscriptions-plugin.d.ts.map +1 -0
  337. package/dist/src/plugins/subscriptions/subscriptions-plugin.js.map +1 -0
  338. package/dist/src/plugins/subscriptions/types.d.ts.map +1 -0
  339. package/dist/src/plugins/subscriptions/types.js.map +1 -0
  340. package/dist/src/plugins/tenants/index.d.ts +12 -0
  341. package/dist/src/plugins/tenants/index.d.ts.map +1 -0
  342. package/dist/src/plugins/tenants/index.js +13 -0
  343. package/dist/src/plugins/tenants/index.js.map +1 -0
  344. package/dist/src/plugins/tenants/stores/in-memory-store.d.ts +59 -0
  345. package/dist/src/plugins/tenants/stores/in-memory-store.d.ts.map +1 -0
  346. package/dist/src/plugins/tenants/stores/in-memory-store.js +257 -0
  347. package/dist/src/plugins/tenants/stores/in-memory-store.js.map +1 -0
  348. package/dist/src/plugins/tenants/stores/index.d.ts +8 -0
  349. package/dist/src/plugins/tenants/stores/index.d.ts.map +1 -0
  350. package/dist/src/plugins/tenants/stores/index.js +8 -0
  351. package/dist/src/plugins/tenants/stores/index.js.map +1 -0
  352. package/dist/src/plugins/tenants/stores/postgres-store.d.ts +26 -0
  353. package/dist/src/plugins/tenants/stores/postgres-store.d.ts.map +1 -0
  354. package/dist/src/plugins/tenants/stores/postgres-store.js +260 -0
  355. package/dist/src/plugins/tenants/stores/postgres-store.js.map +1 -0
  356. package/dist/src/plugins/tenants/tenants-plugin.d.ts +28 -0
  357. package/dist/src/plugins/tenants/tenants-plugin.d.ts.map +1 -0
  358. package/dist/src/plugins/tenants/tenants-plugin.js +627 -0
  359. package/dist/src/plugins/tenants/tenants-plugin.js.map +1 -0
  360. package/dist/src/plugins/tenants/types.d.ts +217 -0
  361. package/dist/src/plugins/tenants/types.d.ts.map +1 -0
  362. package/dist/src/plugins/tenants/types.js +13 -0
  363. package/dist/src/plugins/tenants/types.js.map +1 -0
  364. package/dist/src/plugins/usage/UsageManagementPage.d.ts.map +1 -0
  365. package/dist/src/plugins/usage/UsageManagementPage.js.map +1 -0
  366. package/dist/src/plugins/usage/UsageStatusWidget.d.ts.map +1 -0
  367. package/dist/src/plugins/usage/UsageStatusWidget.js.map +1 -0
  368. package/dist/src/plugins/usage/index.d.ts.map +1 -0
  369. package/dist/src/plugins/usage/index.js.map +1 -0
  370. package/dist/src/plugins/usage/stores/index.d.ts.map +1 -0
  371. package/dist/src/plugins/usage/stores/index.js.map +1 -0
  372. package/dist/src/plugins/usage/stores/postgres-store.d.ts.map +1 -0
  373. package/dist/src/plugins/usage/stores/postgres-store.js.map +1 -0
  374. package/dist/src/plugins/usage/types.d.ts.map +1 -0
  375. package/dist/src/plugins/usage/types.js.map +1 -0
  376. package/dist/src/plugins/usage/usage-plugin.d.ts.map +1 -0
  377. package/dist/src/plugins/usage/usage-plugin.js.map +1 -0
  378. package/dist/src/plugins/users/UsersManagementPage.d.ts.map +1 -0
  379. package/dist/src/plugins/users/UsersManagementPage.js.map +1 -0
  380. package/dist/src/plugins/users/UsersStatusWidget.d.ts.map +1 -0
  381. package/dist/src/plugins/users/UsersStatusWidget.js.map +1 -0
  382. package/dist/src/plugins/users/index.d.ts +12 -0
  383. package/dist/src/plugins/users/index.d.ts.map +1 -0
  384. package/dist/src/plugins/users/index.js +13 -0
  385. package/dist/src/plugins/users/index.js.map +1 -0
  386. package/dist/src/plugins/users/stores/in-memory-store.d.ts +36 -0
  387. package/dist/src/plugins/users/stores/in-memory-store.d.ts.map +1 -0
  388. package/dist/src/plugins/users/stores/in-memory-store.js +122 -0
  389. package/dist/src/plugins/users/stores/in-memory-store.js.map +1 -0
  390. package/dist/src/plugins/users/stores/index.d.ts +8 -0
  391. package/dist/src/plugins/users/stores/index.d.ts.map +1 -0
  392. package/dist/src/plugins/users/stores/index.js +8 -0
  393. package/dist/src/plugins/users/stores/index.js.map +1 -0
  394. package/dist/src/plugins/users/stores/postgres-store.d.ts.map +1 -0
  395. package/dist/src/plugins/users/stores/postgres-store.js.map +1 -0
  396. package/dist/src/plugins/users/types.d.ts.map +1 -0
  397. package/dist/src/plugins/users/types.js.map +1 -0
  398. package/dist/src/plugins/users/users-plugin.d.ts.map +1 -0
  399. package/dist/src/plugins/users/users-plugin.js +525 -0
  400. package/dist/src/plugins/users/users-plugin.js.map +1 -0
  401. package/dist/ui/src/api/clientBuilder.d.ts +34 -0
  402. package/dist/ui/src/api/clientBuilder.d.ts.map +1 -0
  403. package/dist/ui/src/api/clientBuilder.js +157 -0
  404. package/dist/ui/src/api/clientBuilder.js.map +1 -0
  405. package/dist/ui/src/api/controlPanelApi.d.ts +605 -0
  406. package/dist/ui/src/api/controlPanelApi.d.ts.map +1 -0
  407. package/dist/ui/src/api/controlPanelApi.js +487 -0
  408. package/dist/ui/src/api/controlPanelApi.js.map +1 -0
  409. package/dist/ui/src/api/types.d.ts +314 -0
  410. package/dist/ui/src/api/types.d.ts.map +1 -0
  411. package/dist/ui/src/api/types.js +11 -0
  412. package/dist/ui/src/api/types.js.map +1 -0
  413. package/dist/ui/src/components/ControlPanelApp.d.ts +63 -0
  414. package/dist/ui/src/components/ControlPanelApp.d.ts.map +1 -0
  415. package/dist/ui/src/components/ControlPanelApp.js +92 -0
  416. package/dist/ui/src/components/ControlPanelApp.js.map +1 -0
  417. package/dist/ui/src/components/index.d.ts +22 -0
  418. package/dist/ui/src/components/index.d.ts.map +1 -0
  419. package/dist/ui/src/components/index.js +28 -0
  420. package/dist/ui/src/components/index.js.map +1 -0
  421. package/dist/ui/src/components/plugins/PluginConfigPanel.d.ts +66 -0
  422. package/dist/ui/src/components/plugins/PluginConfigPanel.d.ts.map +1 -0
  423. package/dist/ui/src/components/plugins/PluginConfigPanel.js +107 -0
  424. package/dist/ui/src/components/plugins/PluginConfigPanel.js.map +1 -0
  425. package/dist/ui/src/components/plugins/PluginManagementPage.d.ts +63 -0
  426. package/dist/ui/src/components/plugins/PluginManagementPage.d.ts.map +1 -0
  427. package/dist/ui/src/components/plugins/PluginManagementPage.js +41 -0
  428. package/dist/ui/src/components/plugins/PluginManagementPage.js.map +1 -0
  429. package/dist/ui/src/components/plugins/PluginStatusWidget.d.ts +52 -0
  430. package/dist/ui/src/components/plugins/PluginStatusWidget.d.ts.map +1 -0
  431. package/dist/ui/src/components/plugins/PluginStatusWidget.js +26 -0
  432. package/dist/ui/src/components/plugins/PluginStatusWidget.js.map +1 -0
  433. package/dist/ui/src/components/plugins/index.d.ts +14 -0
  434. package/dist/ui/src/components/plugins/index.d.ts.map +1 -0
  435. package/dist/ui/src/components/plugins/index.js +11 -0
  436. package/dist/ui/src/components/plugins/index.js.map +1 -0
  437. package/dist/ui/src/config/AppConfig.d.ts +8 -0
  438. package/dist/ui/src/config/AppConfig.d.ts.map +1 -0
  439. package/dist/ui/src/config/AppConfig.js +16 -0
  440. package/dist/ui/src/config/AppConfig.js.map +1 -0
  441. package/dist/ui/src/config/preferences.d.ts +17 -0
  442. package/dist/ui/src/config/preferences.d.ts.map +1 -0
  443. package/dist/ui/src/config/preferences.js +17 -0
  444. package/dist/ui/src/config/preferences.js.map +1 -0
  445. package/dist/ui/src/dashboard/DashboardWidgetRegistry.d.ts +63 -0
  446. package/dist/ui/src/dashboard/DashboardWidgetRegistry.d.ts.map +1 -0
  447. package/dist/ui/src/dashboard/DashboardWidgetRegistry.js +81 -0
  448. package/dist/ui/src/dashboard/DashboardWidgetRegistry.js.map +1 -0
  449. package/dist/ui/src/dashboard/DashboardWidgetRenderer.d.ts +9 -0
  450. package/dist/ui/src/dashboard/DashboardWidgetRenderer.d.ts.map +1 -0
  451. package/dist/ui/src/dashboard/DashboardWidgetRenderer.js +19 -0
  452. package/dist/ui/src/dashboard/DashboardWidgetRenderer.js.map +1 -0
  453. package/dist/ui/src/dashboard/PluginWidgetRenderer.d.ts +22 -0
  454. package/dist/ui/src/dashboard/PluginWidgetRenderer.d.ts.map +1 -0
  455. package/dist/ui/src/dashboard/PluginWidgetRenderer.js +74 -0
  456. package/dist/ui/src/dashboard/PluginWidgetRenderer.js.map +1 -0
  457. package/dist/ui/src/dashboard/WidgetComponentRegistry.d.ts +49 -0
  458. package/dist/ui/src/dashboard/WidgetComponentRegistry.d.ts.map +1 -0
  459. package/dist/ui/src/dashboard/WidgetComponentRegistry.js +68 -0
  460. package/dist/ui/src/dashboard/WidgetComponentRegistry.js.map +1 -0
  461. package/dist/ui/src/dashboard/builtInWidgets.d.ts +26 -0
  462. package/dist/ui/src/dashboard/builtInWidgets.d.ts.map +1 -0
  463. package/dist/ui/src/dashboard/builtInWidgets.js +57 -0
  464. package/dist/ui/src/dashboard/builtInWidgets.js.map +1 -0
  465. package/dist/ui/src/dashboard/index.d.ts +14 -0
  466. package/dist/ui/src/dashboard/index.d.ts.map +1 -0
  467. package/dist/ui/src/dashboard/index.js +19 -0
  468. package/dist/ui/src/dashboard/index.js.map +1 -0
  469. package/dist/ui/src/dashboard/widgets/AuthStatusWidget.d.ts +10 -0
  470. package/dist/ui/src/dashboard/widgets/AuthStatusWidget.d.ts.map +1 -0
  471. package/dist/ui/src/dashboard/widgets/AuthStatusWidget.js +92 -0
  472. package/dist/ui/src/dashboard/widgets/AuthStatusWidget.js.map +1 -0
  473. package/dist/ui/src/dashboard/widgets/CMSMaintenanceWidget.d.ts +9 -0
  474. package/dist/ui/src/dashboard/widgets/CMSMaintenanceWidget.d.ts.map +1 -0
  475. package/dist/ui/src/dashboard/widgets/CMSMaintenanceWidget.js +100 -0
  476. package/dist/ui/src/dashboard/widgets/CMSMaintenanceWidget.js.map +1 -0
  477. package/dist/ui/src/dashboard/widgets/CMSStatusWidget.d.ts +9 -0
  478. package/dist/ui/src/dashboard/widgets/CMSStatusWidget.d.ts.map +1 -0
  479. package/dist/ui/src/dashboard/widgets/CMSStatusWidget.js +48 -0
  480. package/dist/ui/src/dashboard/widgets/CMSStatusWidget.js.map +1 -0
  481. package/dist/ui/src/dashboard/widgets/CacheMaintenanceWidget.d.ts +11 -0
  482. package/dist/ui/src/dashboard/widgets/CacheMaintenanceWidget.d.ts.map +1 -0
  483. package/dist/ui/src/dashboard/widgets/CacheMaintenanceWidget.js +77 -0
  484. package/dist/ui/src/dashboard/widgets/CacheMaintenanceWidget.js.map +1 -0
  485. package/dist/ui/src/dashboard/widgets/DatabaseOpsWidget.d.ts +10 -0
  486. package/dist/ui/src/dashboard/widgets/DatabaseOpsWidget.d.ts.map +1 -0
  487. package/dist/ui/src/dashboard/widgets/DatabaseOpsWidget.js +14 -0
  488. package/dist/ui/src/dashboard/widgets/DatabaseOpsWidget.js.map +1 -0
  489. package/dist/ui/src/dashboard/widgets/EnvironmentConfigWidget.d.ts +10 -0
  490. package/dist/ui/src/dashboard/widgets/EnvironmentConfigWidget.d.ts.map +1 -0
  491. package/dist/ui/src/dashboard/widgets/EnvironmentConfigWidget.js +14 -0
  492. package/dist/ui/src/dashboard/widgets/EnvironmentConfigWidget.js.map +1 -0
  493. package/dist/ui/src/dashboard/widgets/IntegrationStatusWidget.d.ts +10 -0
  494. package/dist/ui/src/dashboard/widgets/IntegrationStatusWidget.d.ts.map +1 -0
  495. package/dist/ui/src/dashboard/widgets/IntegrationStatusWidget.js +64 -0
  496. package/dist/ui/src/dashboard/widgets/IntegrationStatusWidget.js.map +1 -0
  497. package/dist/ui/src/dashboard/widgets/LogsMaintenanceWidget.d.ts +11 -0
  498. package/dist/ui/src/dashboard/widgets/LogsMaintenanceWidget.d.ts.map +1 -0
  499. package/dist/ui/src/dashboard/widgets/LogsMaintenanceWidget.js +96 -0
  500. package/dist/ui/src/dashboard/widgets/LogsMaintenanceWidget.js.map +1 -0
  501. package/dist/ui/src/dashboard/widgets/NotificationsStatsWidget.d.ts +13 -0
  502. package/dist/ui/src/dashboard/widgets/NotificationsStatsWidget.d.ts.map +1 -0
  503. package/dist/ui/src/dashboard/widgets/NotificationsStatsWidget.js +71 -0
  504. package/dist/ui/src/dashboard/widgets/NotificationsStatsWidget.js.map +1 -0
  505. package/dist/ui/src/dashboard/widgets/SeedManagementWidget.d.ts +10 -0
  506. package/dist/ui/src/dashboard/widgets/SeedManagementWidget.d.ts.map +1 -0
  507. package/dist/ui/src/dashboard/widgets/SeedManagementWidget.js +55 -0
  508. package/dist/ui/src/dashboard/widgets/SeedManagementWidget.js.map +1 -0
  509. package/dist/ui/src/dashboard/widgets/ServiceControlWidget.d.ts +10 -0
  510. package/dist/ui/src/dashboard/widgets/ServiceControlWidget.d.ts.map +1 -0
  511. package/dist/ui/src/dashboard/widgets/ServiceControlWidget.js +14 -0
  512. package/dist/ui/src/dashboard/widgets/ServiceControlWidget.js.map +1 -0
  513. package/dist/ui/src/dashboard/widgets/ServiceHealthWidget.d.ts +13 -0
  514. package/dist/ui/src/dashboard/widgets/ServiceHealthWidget.d.ts.map +1 -0
  515. package/dist/ui/src/dashboard/widgets/ServiceHealthWidget.js +88 -0
  516. package/dist/ui/src/dashboard/widgets/ServiceHealthWidget.js.map +1 -0
  517. package/dist/ui/src/dashboard/widgets/index.d.ts +18 -0
  518. package/dist/ui/src/dashboard/widgets/index.d.ts.map +1 -0
  519. package/dist/ui/src/dashboard/widgets/index.js +18 -0
  520. package/dist/ui/src/dashboard/widgets/index.js.map +1 -0
  521. package/dist/ui/src/pages/AcceptInvitationPage.d.ts +29 -0
  522. package/dist/ui/src/pages/AcceptInvitationPage.d.ts.map +1 -0
  523. package/dist/ui/src/pages/AcceptInvitationPage.js +66 -0
  524. package/dist/ui/src/pages/AcceptInvitationPage.js.map +1 -0
  525. package/dist/ui/src/pages/AuthPage.d.ts +2 -0
  526. package/dist/ui/src/pages/AuthPage.d.ts.map +1 -0
  527. package/dist/ui/src/pages/AuthPage.js +357 -0
  528. package/dist/ui/src/pages/AuthPage.js.map +1 -0
  529. package/dist/ui/src/pages/DashboardPage.d.ts +2 -0
  530. package/dist/ui/src/pages/DashboardPage.d.ts.map +1 -0
  531. package/dist/ui/src/pages/DashboardPage.js +80 -0
  532. package/dist/ui/src/pages/DashboardPage.js.map +1 -0
  533. package/dist/ui/src/pages/EntitlementsPage.d.ts +18 -0
  534. package/dist/ui/src/pages/EntitlementsPage.d.ts.map +1 -0
  535. package/dist/ui/src/pages/EntitlementsPage.js +171 -0
  536. package/dist/ui/src/pages/EntitlementsPage.js.map +1 -0
  537. package/dist/ui/src/pages/LogsPage.d.ts +2 -0
  538. package/dist/ui/src/pages/LogsPage.d.ts.map +1 -0
  539. package/dist/ui/src/pages/LogsPage.js +141 -0
  540. package/dist/ui/src/pages/LogsPage.js.map +1 -0
  541. package/dist/ui/src/pages/NotFoundPage.d.ts +2 -0
  542. package/dist/ui/src/pages/NotFoundPage.d.ts.map +1 -0
  543. package/dist/ui/src/pages/NotFoundPage.js +19 -0
  544. package/dist/ui/src/pages/NotFoundPage.js.map +1 -0
  545. package/dist/ui/src/pages/PreferencesPage.d.ts +10 -0
  546. package/dist/ui/src/pages/PreferencesPage.d.ts.map +1 -0
  547. package/dist/ui/src/pages/PreferencesPage.js +139 -0
  548. package/dist/ui/src/pages/PreferencesPage.js.map +1 -0
  549. package/dist/ui/src/pages/SystemPage.d.ts +2 -0
  550. package/dist/ui/src/pages/SystemPage.d.ts.map +1 -0
  551. package/dist/ui/src/pages/SystemPage.js +143 -0
  552. package/dist/ui/src/pages/SystemPage.js.map +1 -0
  553. package/dist/ui/src/pages/UsersPage.d.ts +23 -0
  554. package/dist/ui/src/pages/UsersPage.d.ts.map +1 -0
  555. package/dist/ui/src/pages/UsersPage.js +406 -0
  556. package/dist/ui/src/pages/UsersPage.js.map +1 -0
  557. package/dist/ui/src/utils/formatters.d.ts +20 -0
  558. package/dist/ui/src/utils/formatters.d.ts.map +1 -0
  559. package/dist/ui/src/utils/formatters.js +36 -0
  560. package/dist/ui/src/utils/formatters.js.map +1 -0
  561. package/dist-ui/assets/index-8y0jDGcd.js +528 -0
  562. package/dist-ui/assets/index-8y0jDGcd.js.map +1 -0
  563. package/dist-ui/assets/index-DQED0KPI.css +1 -0
  564. package/dist-ui/index.html +2 -2
  565. package/dist-ui-lib/index.js +3109 -2774
  566. package/dist-ui-lib/index.js.map +1 -1
  567. package/dist-ui-lib/src/api/controlPanelApi.d.ts +10 -1
  568. package/dist-ui-lib/src/components/tenants/MemberInviteDialog.d.ts +21 -0
  569. package/dist-ui-lib/src/components/tenants/MemberListDialog.d.ts +31 -0
  570. package/dist-ui-lib/src/components/tenants/MemberRoleDialog.d.ts +25 -0
  571. package/dist-ui-lib/src/components/tenants/TenantCard.d.ts +29 -0
  572. package/dist-ui-lib/src/components/tenants/TenantFormDialog.d.ts +32 -0
  573. package/dist-ui-lib/src/components/tenants/index.d.ts +15 -0
  574. package/dist-ui-lib/src/dashboard/PluginWidgetRenderer.d.ts +3 -1
  575. package/dist-ui-lib/src/dashboard/widgets/CacheMaintenanceWidget.d.ts +10 -0
  576. package/dist-ui-lib/src/dashboard/widgets/DatabaseOpsWidget.d.ts +9 -0
  577. package/dist-ui-lib/src/dashboard/widgets/EnvironmentConfigWidget.d.ts +9 -0
  578. package/dist-ui-lib/src/dashboard/widgets/LogsMaintenanceWidget.d.ts +10 -0
  579. package/dist-ui-lib/src/dashboard/widgets/SeedManagementWidget.d.ts +9 -0
  580. package/dist-ui-lib/src/dashboard/widgets/ServiceControlWidget.d.ts +9 -0
  581. package/dist-ui-lib/src/dashboard/widgets/index.d.ts +6 -0
  582. package/package.json +11 -8
  583. package/src/core/control-panel.ts +6 -4
  584. package/src/core/gateway.ts +25 -2
  585. package/src/core/plugin-registry.ts +15 -2
  586. package/src/index.ts +53 -0
  587. package/src/plugins/api-keys/stores/postgres-store.ts +30 -0
  588. package/src/plugins/auth/auth-plugin.ts +4 -2
  589. package/src/plugins/auth/env-config.ts +1 -0
  590. package/src/plugins/bans/index.ts +1 -1
  591. package/src/plugins/bans/stores/in-memory-store.ts +106 -0
  592. package/src/plugins/bans/stores/index.ts +1 -0
  593. package/src/plugins/cache-plugin.test.ts +2 -2
  594. package/src/plugins/cache-plugin.ts +331 -30
  595. package/src/plugins/cms/cms-plugin.ts +3 -1
  596. package/src/plugins/entitlements/index.ts +1 -1
  597. package/src/plugins/entitlements/sources/in-memory-source.ts +76 -0
  598. package/src/plugins/entitlements/sources/index.ts +1 -0
  599. package/src/plugins/health-plugin.ts +1 -0
  600. package/src/plugins/index.ts +21 -0
  601. package/src/plugins/logs-plugin.ts +55 -1
  602. package/src/plugins/maintenance-plugin.ts +43 -0
  603. package/src/plugins/notifications/notifications-plugin.ts +1 -0
  604. package/src/plugins/postgres-plugin.test.ts +2 -2
  605. package/src/plugins/postgres-plugin.ts +20 -9
  606. package/src/plugins/tenants/index.ts +31 -0
  607. package/src/plugins/tenants/stores/in-memory-store.ts +335 -0
  608. package/src/plugins/tenants/stores/index.ts +13 -0
  609. package/src/plugins/tenants/stores/postgres-store.ts +370 -0
  610. package/src/plugins/tenants/tenants-plugin.ts +703 -0
  611. package/src/plugins/tenants/types.ts +249 -0
  612. package/src/plugins/users/index.ts +1 -1
  613. package/src/plugins/users/stores/in-memory-store.ts +140 -0
  614. package/src/plugins/users/stores/index.ts +1 -0
  615. package/src/plugins/users/users-plugin.ts +23 -0
  616. package/src/testing/index.ts +1 -0
  617. package/src/testing/pg-mem-pool.ts +33 -0
  618. package/ui/src/App.tsx +6 -1
  619. package/ui/src/api/controlPanelApi.ts +10 -1
  620. package/ui/src/components/tenants/MemberInviteDialog.tsx +139 -0
  621. package/ui/src/components/tenants/MemberListDialog.tsx +290 -0
  622. package/ui/src/components/tenants/MemberRoleDialog.tsx +133 -0
  623. package/ui/src/components/tenants/TenantCard.tsx +140 -0
  624. package/ui/src/components/tenants/TenantFormDialog.tsx +217 -0
  625. package/ui/src/components/tenants/index.ts +20 -0
  626. package/ui/src/dashboard/PluginWidgetRenderer.tsx +8 -0
  627. package/ui/src/dashboard/builtInWidgets.tsx +19 -1
  628. package/ui/src/dashboard/widgets/CacheMaintenanceWidget.tsx +195 -0
  629. package/ui/src/dashboard/widgets/DatabaseOpsWidget.tsx +29 -0
  630. package/ui/src/dashboard/widgets/EnvironmentConfigWidget.tsx +29 -0
  631. package/ui/src/dashboard/widgets/LogsMaintenanceWidget.tsx +247 -0
  632. package/ui/src/dashboard/widgets/SeedManagementWidget.tsx +128 -0
  633. package/ui/src/dashboard/widgets/ServiceControlWidget.tsx +29 -0
  634. package/ui/src/dashboard/widgets/index.ts +6 -0
  635. package/ui/src/pages/DashboardPage.tsx +2 -2
  636. package/ui/src/pages/MaintenancePage.tsx +1 -1
  637. package/ui/src/pages/TenantsManagementPage.tsx +495 -0
  638. package/dist/core/control-panel.d.ts.map +0 -1
  639. package/dist/core/control-panel.js +0 -487
  640. package/dist/core/control-panel.js.map +0 -1
  641. package/dist/core/gateway.d.ts.map +0 -1
  642. package/dist/core/gateway.js +0 -1063
  643. package/dist/core/gateway.js.map +0 -1
  644. package/dist/core/guards.d.ts.map +0 -1
  645. package/dist/core/guards.js.map +0 -1
  646. package/dist/core/health-manager.d.ts.map +0 -1
  647. package/dist/core/health-manager.js.map +0 -1
  648. package/dist/core/index.d.ts.map +0 -1
  649. package/dist/core/index.js.map +0 -1
  650. package/dist/core/logging.d.ts.map +0 -1
  651. package/dist/core/logging.js.map +0 -1
  652. package/dist/core/plugin-registry.d.ts +0 -377
  653. package/dist/core/plugin-registry.d.ts.map +0 -1
  654. package/dist/core/plugin-registry.js.map +0 -1
  655. package/dist/core/types.d.ts.map +0 -1
  656. package/dist/core/types.js.map +0 -1
  657. package/dist/index.d.ts +0 -22
  658. package/dist/index.d.ts.map +0 -1
  659. package/dist/index.js +0 -49
  660. package/dist/index.js.map +0 -1
  661. package/dist/plugins/api-keys/ApiKeysManagementPage.d.ts.map +0 -1
  662. package/dist/plugins/api-keys/ApiKeysManagementPage.js.map +0 -1
  663. package/dist/plugins/api-keys/ApiKeysStatusWidget.d.ts.map +0 -1
  664. package/dist/plugins/api-keys/ApiKeysStatusWidget.js.map +0 -1
  665. package/dist/plugins/api-keys/api-keys-plugin.d.ts.map +0 -1
  666. package/dist/plugins/api-keys/api-keys-plugin.js.map +0 -1
  667. package/dist/plugins/api-keys/index.d.ts.map +0 -1
  668. package/dist/plugins/api-keys/index.js.map +0 -1
  669. package/dist/plugins/api-keys/middleware/bearer-token-auth.d.ts.map +0 -1
  670. package/dist/plugins/api-keys/middleware/bearer-token-auth.js.map +0 -1
  671. package/dist/plugins/api-keys/middleware/index.d.ts.map +0 -1
  672. package/dist/plugins/api-keys/middleware/index.js.map +0 -1
  673. package/dist/plugins/api-keys/middleware/usage-logging.d.ts.map +0 -1
  674. package/dist/plugins/api-keys/middleware/usage-logging.js.map +0 -1
  675. package/dist/plugins/api-keys/stores/index.d.ts.map +0 -1
  676. package/dist/plugins/api-keys/stores/index.js.map +0 -1
  677. package/dist/plugins/api-keys/stores/plugin-scope-store.d.ts.map +0 -1
  678. package/dist/plugins/api-keys/stores/plugin-scope-store.js.map +0 -1
  679. package/dist/plugins/api-keys/stores/postgres-store.d.ts.map +0 -1
  680. package/dist/plugins/api-keys/stores/postgres-store.js +0 -360
  681. package/dist/plugins/api-keys/stores/postgres-store.js.map +0 -1
  682. package/dist/plugins/api-keys/stores/usage-log-store.d.ts.map +0 -1
  683. package/dist/plugins/api-keys/stores/usage-log-store.js.map +0 -1
  684. package/dist/plugins/api-keys/types.d.ts.map +0 -1
  685. package/dist/plugins/api-keys/types.js.map +0 -1
  686. package/dist/plugins/auth/AuthManagementPage.d.ts.map +0 -1
  687. package/dist/plugins/auth/AuthManagementPage.js.map +0 -1
  688. package/dist/plugins/auth/AuthStatusWidget.d.ts.map +0 -1
  689. package/dist/plugins/auth/AuthStatusWidget.js.map +0 -1
  690. package/dist/plugins/auth/adapter-wrapper.d.ts.map +0 -1
  691. package/dist/plugins/auth/adapter-wrapper.js.map +0 -1
  692. package/dist/plugins/auth/adapters/auth0-adapter.d.ts.map +0 -1
  693. package/dist/plugins/auth/adapters/auth0-adapter.js.map +0 -1
  694. package/dist/plugins/auth/adapters/basic-adapter.d.ts.map +0 -1
  695. package/dist/plugins/auth/adapters/basic-adapter.js.map +0 -1
  696. package/dist/plugins/auth/adapters/index.d.ts.map +0 -1
  697. package/dist/plugins/auth/adapters/index.js.map +0 -1
  698. package/dist/plugins/auth/adapters/supabase-adapter.d.ts.map +0 -1
  699. package/dist/plugins/auth/adapters/supabase-adapter.js.map +0 -1
  700. package/dist/plugins/auth/adapters/supertokens-adapter.d.ts.map +0 -1
  701. package/dist/plugins/auth/adapters/supertokens-adapter.js.map +0 -1
  702. package/dist/plugins/auth/auth-plugin.d.ts.map +0 -1
  703. package/dist/plugins/auth/auth-plugin.js +0 -271
  704. package/dist/plugins/auth/auth-plugin.js.map +0 -1
  705. package/dist/plugins/auth/config-store.d.ts.map +0 -1
  706. package/dist/plugins/auth/config-store.js.map +0 -1
  707. package/dist/plugins/auth/env-config.d.ts.map +0 -1
  708. package/dist/plugins/auth/env-config.js +0 -1136
  709. package/dist/plugins/auth/env-config.js.map +0 -1
  710. package/dist/plugins/auth/index.d.ts.map +0 -1
  711. package/dist/plugins/auth/index.js.map +0 -1
  712. package/dist/plugins/auth/types.d.ts.map +0 -1
  713. package/dist/plugins/auth/types.js.map +0 -1
  714. package/dist/plugins/bans/BansManagementPage.d.ts.map +0 -1
  715. package/dist/plugins/bans/BansManagementPage.js.map +0 -1
  716. package/dist/plugins/bans/BansStatusWidget.d.ts.map +0 -1
  717. package/dist/plugins/bans/BansStatusWidget.js.map +0 -1
  718. package/dist/plugins/bans/bans-plugin.d.ts.map +0 -1
  719. package/dist/plugins/bans/bans-plugin.js.map +0 -1
  720. package/dist/plugins/bans/index.d.ts +0 -13
  721. package/dist/plugins/bans/index.d.ts.map +0 -1
  722. package/dist/plugins/bans/index.js +0 -13
  723. package/dist/plugins/bans/index.js.map +0 -1
  724. package/dist/plugins/bans/stores/index.d.ts +0 -7
  725. package/dist/plugins/bans/stores/index.d.ts.map +0 -1
  726. package/dist/plugins/bans/stores/index.js +0 -7
  727. package/dist/plugins/bans/stores/index.js.map +0 -1
  728. package/dist/plugins/bans/stores/postgres-store.d.ts.map +0 -1
  729. package/dist/plugins/bans/stores/postgres-store.js.map +0 -1
  730. package/dist/plugins/bans/types.d.ts.map +0 -1
  731. package/dist/plugins/bans/types.js.map +0 -1
  732. package/dist/plugins/cache/CacheManagementPage.d.ts.map +0 -1
  733. package/dist/plugins/cache/CacheManagementPage.js.map +0 -1
  734. package/dist/plugins/cache/CacheStatusWidget.d.ts.map +0 -1
  735. package/dist/plugins/cache/CacheStatusWidget.js.map +0 -1
  736. package/dist/plugins/cache/index.d.ts.map +0 -1
  737. package/dist/plugins/cache/index.js.map +0 -1
  738. package/dist/plugins/cache-plugin.d.ts +0 -230
  739. package/dist/plugins/cache-plugin.d.ts.map +0 -1
  740. package/dist/plugins/cache-plugin.js +0 -346
  741. package/dist/plugins/cache-plugin.js.map +0 -1
  742. package/dist/plugins/cms/cms-plugin.d.ts.map +0 -1
  743. package/dist/plugins/cms/cms-plugin.js +0 -220
  744. package/dist/plugins/cms/cms-plugin.js.map +0 -1
  745. package/dist/plugins/cms/index.d.ts.map +0 -1
  746. package/dist/plugins/cms/index.js.map +0 -1
  747. package/dist/plugins/config-plugin.d.ts.map +0 -1
  748. package/dist/plugins/config-plugin.js.map +0 -1
  749. package/dist/plugins/core/index.d.ts.map +0 -1
  750. package/dist/plugins/core/index.js.map +0 -1
  751. package/dist/plugins/devices/DevicesManagementPage.d.ts.map +0 -1
  752. package/dist/plugins/devices/DevicesManagementPage.js.map +0 -1
  753. package/dist/plugins/devices/DevicesStatusWidget.d.ts.map +0 -1
  754. package/dist/plugins/devices/DevicesStatusWidget.js.map +0 -1
  755. package/dist/plugins/devices/adapters/compute-adapter.d.ts.map +0 -1
  756. package/dist/plugins/devices/adapters/compute-adapter.js.map +0 -1
  757. package/dist/plugins/devices/adapters/index.d.ts.map +0 -1
  758. package/dist/plugins/devices/adapters/index.js.map +0 -1
  759. package/dist/plugins/devices/adapters/mobile-adapter.d.ts.map +0 -1
  760. package/dist/plugins/devices/adapters/mobile-adapter.js.map +0 -1
  761. package/dist/plugins/devices/devices-plugin.d.ts.map +0 -1
  762. package/dist/plugins/devices/devices-plugin.js.map +0 -1
  763. package/dist/plugins/devices/index.d.ts.map +0 -1
  764. package/dist/plugins/devices/index.js.map +0 -1
  765. package/dist/plugins/devices/stores/index.d.ts.map +0 -1
  766. package/dist/plugins/devices/stores/index.js.map +0 -1
  767. package/dist/plugins/devices/stores/postgres-store.d.ts.map +0 -1
  768. package/dist/plugins/devices/stores/postgres-store.js.map +0 -1
  769. package/dist/plugins/devices/token-utils.d.ts.map +0 -1
  770. package/dist/plugins/devices/token-utils.js.map +0 -1
  771. package/dist/plugins/devices/types.d.ts.map +0 -1
  772. package/dist/plugins/devices/types.js.map +0 -1
  773. package/dist/plugins/diagnostics/DiagnosticsManagementPage.d.ts.map +0 -1
  774. package/dist/plugins/diagnostics/DiagnosticsManagementPage.js.map +0 -1
  775. package/dist/plugins/diagnostics/DiagnosticsStatusWidget.d.ts.map +0 -1
  776. package/dist/plugins/diagnostics/DiagnosticsStatusWidget.js.map +0 -1
  777. package/dist/plugins/diagnostics/index.d.ts.map +0 -1
  778. package/dist/plugins/diagnostics/index.js.map +0 -1
  779. package/dist/plugins/diagnostics-plugin.d.ts.map +0 -1
  780. package/dist/plugins/diagnostics-plugin.js.map +0 -1
  781. package/dist/plugins/entitlements/EntitlementsManagementPage.d.ts.map +0 -1
  782. package/dist/plugins/entitlements/EntitlementsManagementPage.js.map +0 -1
  783. package/dist/plugins/entitlements/EntitlementsStatusWidget.d.ts.map +0 -1
  784. package/dist/plugins/entitlements/EntitlementsStatusWidget.js.map +0 -1
  785. package/dist/plugins/entitlements/entitlements-plugin.d.ts.map +0 -1
  786. package/dist/plugins/entitlements/entitlements-plugin.js.map +0 -1
  787. package/dist/plugins/entitlements/index.d.ts +0 -16
  788. package/dist/plugins/entitlements/index.d.ts.map +0 -1
  789. package/dist/plugins/entitlements/index.js +0 -19
  790. package/dist/plugins/entitlements/index.js.map +0 -1
  791. package/dist/plugins/entitlements/sources/index.d.ts +0 -9
  792. package/dist/plugins/entitlements/sources/index.d.ts.map +0 -1
  793. package/dist/plugins/entitlements/sources/index.js +0 -9
  794. package/dist/plugins/entitlements/sources/index.js.map +0 -1
  795. package/dist/plugins/entitlements/sources/postgres-source.d.ts.map +0 -1
  796. package/dist/plugins/entitlements/sources/postgres-source.js.map +0 -1
  797. package/dist/plugins/entitlements/types.d.ts.map +0 -1
  798. package/dist/plugins/entitlements/types.js.map +0 -1
  799. package/dist/plugins/frontend-app-plugin.d.ts.map +0 -1
  800. package/dist/plugins/frontend-app-plugin.js.map +0 -1
  801. package/dist/plugins/health/HealthManagementPage.d.ts.map +0 -1
  802. package/dist/plugins/health/HealthManagementPage.js.map +0 -1
  803. package/dist/plugins/health/HealthStatusWidget.d.ts.map +0 -1
  804. package/dist/plugins/health/HealthStatusWidget.js.map +0 -1
  805. package/dist/plugins/health/index.d.ts.map +0 -1
  806. package/dist/plugins/health/index.js.map +0 -1
  807. package/dist/plugins/health-plugin.d.ts.map +0 -1
  808. package/dist/plugins/health-plugin.js +0 -40
  809. package/dist/plugins/health-plugin.js.map +0 -1
  810. package/dist/plugins/index.d.ts +0 -54
  811. package/dist/plugins/index.d.ts.map +0 -1
  812. package/dist/plugins/index.js +0 -44
  813. package/dist/plugins/index.js.map +0 -1
  814. package/dist/plugins/logs/LogsManagementPage.d.ts.map +0 -1
  815. package/dist/plugins/logs/LogsManagementPage.js.map +0 -1
  816. package/dist/plugins/logs/LogsStatusWidget.d.ts.map +0 -1
  817. package/dist/plugins/logs/LogsStatusWidget.js.map +0 -1
  818. package/dist/plugins/logs/index.d.ts.map +0 -1
  819. package/dist/plugins/logs/index.js.map +0 -1
  820. package/dist/plugins/logs-plugin.d.ts.map +0 -1
  821. package/dist/plugins/logs-plugin.js +0 -249
  822. package/dist/plugins/logs-plugin.js.map +0 -1
  823. package/dist/plugins/maintenance/MaintenanceManagementPage.d.ts.map +0 -1
  824. package/dist/plugins/maintenance/MaintenanceManagementPage.js.map +0 -1
  825. package/dist/plugins/maintenance/MaintenanceStatusWidget.d.ts.map +0 -1
  826. package/dist/plugins/maintenance/MaintenanceStatusWidget.js.map +0 -1
  827. package/dist/plugins/maintenance/SeedExecutor.d.ts.map +0 -1
  828. package/dist/plugins/maintenance/SeedExecutor.js.map +0 -1
  829. package/dist/plugins/maintenance/SeedHistory.d.ts.map +0 -1
  830. package/dist/plugins/maintenance/SeedHistory.js.map +0 -1
  831. package/dist/plugins/maintenance/SeedList.d.ts.map +0 -1
  832. package/dist/plugins/maintenance/SeedList.js.map +0 -1
  833. package/dist/plugins/maintenance/SeedManagementPage.d.ts.map +0 -1
  834. package/dist/plugins/maintenance/SeedManagementPage.js.map +0 -1
  835. package/dist/plugins/maintenance/index.d.ts.map +0 -1
  836. package/dist/plugins/maintenance/index.js.map +0 -1
  837. package/dist/plugins/maintenance/seed-executor.d.ts.map +0 -1
  838. package/dist/plugins/maintenance/seed-executor.js.map +0 -1
  839. package/dist/plugins/maintenance-plugin.d.ts.map +0 -1
  840. package/dist/plugins/maintenance-plugin.js +0 -321
  841. package/dist/plugins/maintenance-plugin.js.map +0 -1
  842. package/dist/plugins/notifications/NotificationsManagementPage.d.ts.map +0 -1
  843. package/dist/plugins/notifications/NotificationsManagementPage.js.map +0 -1
  844. package/dist/plugins/notifications/NotificationsStatusWidget.d.ts.map +0 -1
  845. package/dist/plugins/notifications/NotificationsStatusWidget.js.map +0 -1
  846. package/dist/plugins/notifications/index.d.ts.map +0 -1
  847. package/dist/plugins/notifications/index.js.map +0 -1
  848. package/dist/plugins/notifications/notifications-manager.d.ts.map +0 -1
  849. package/dist/plugins/notifications/notifications-manager.js.map +0 -1
  850. package/dist/plugins/notifications/notifications-plugin.d.ts.map +0 -1
  851. package/dist/plugins/notifications/notifications-plugin.js +0 -337
  852. package/dist/plugins/notifications/notifications-plugin.js.map +0 -1
  853. package/dist/plugins/notifications/types.d.ts.map +0 -1
  854. package/dist/plugins/notifications/types.js.map +0 -1
  855. package/dist/plugins/parental/ParentalManagementPage.d.ts.map +0 -1
  856. package/dist/plugins/parental/ParentalManagementPage.js.map +0 -1
  857. package/dist/plugins/parental/ParentalStatusWidget.d.ts.map +0 -1
  858. package/dist/plugins/parental/ParentalStatusWidget.js.map +0 -1
  859. package/dist/plugins/parental/adapters/index.d.ts.map +0 -1
  860. package/dist/plugins/parental/adapters/index.js.map +0 -1
  861. package/dist/plugins/parental/adapters/kids-adapter.d.ts.map +0 -1
  862. package/dist/plugins/parental/adapters/kids-adapter.js.map +0 -1
  863. package/dist/plugins/parental/index.d.ts.map +0 -1
  864. package/dist/plugins/parental/index.js.map +0 -1
  865. package/dist/plugins/parental/parental-plugin.d.ts.map +0 -1
  866. package/dist/plugins/parental/parental-plugin.js.map +0 -1
  867. package/dist/plugins/parental/stores/index.d.ts.map +0 -1
  868. package/dist/plugins/parental/stores/index.js.map +0 -1
  869. package/dist/plugins/parental/stores/postgres-store.d.ts.map +0 -1
  870. package/dist/plugins/parental/stores/postgres-store.js.map +0 -1
  871. package/dist/plugins/parental/types.d.ts.map +0 -1
  872. package/dist/plugins/parental/types.js.map +0 -1
  873. package/dist/plugins/postgres/PostgresManagementPage.d.ts.map +0 -1
  874. package/dist/plugins/postgres/PostgresManagementPage.js.map +0 -1
  875. package/dist/plugins/postgres/PostgresStatusWidget.d.ts.map +0 -1
  876. package/dist/plugins/postgres/PostgresStatusWidget.js.map +0 -1
  877. package/dist/plugins/postgres/index.d.ts.map +0 -1
  878. package/dist/plugins/postgres/index.js.map +0 -1
  879. package/dist/plugins/postgres-plugin.d.ts +0 -155
  880. package/dist/plugins/postgres-plugin.d.ts.map +0 -1
  881. package/dist/plugins/postgres-plugin.js +0 -246
  882. package/dist/plugins/postgres-plugin.js.map +0 -1
  883. package/dist/plugins/preferences/PreferencesManagementPage.d.ts.map +0 -1
  884. package/dist/plugins/preferences/PreferencesManagementPage.js.map +0 -1
  885. package/dist/plugins/preferences/PreferencesStatusWidget.d.ts.map +0 -1
  886. package/dist/plugins/preferences/PreferencesStatusWidget.js.map +0 -1
  887. package/dist/plugins/preferences/index.d.ts.map +0 -1
  888. package/dist/plugins/preferences/index.js.map +0 -1
  889. package/dist/plugins/preferences/preferences-plugin.d.ts.map +0 -1
  890. package/dist/plugins/preferences/preferences-plugin.js.map +0 -1
  891. package/dist/plugins/preferences/stores/index.d.ts.map +0 -1
  892. package/dist/plugins/preferences/stores/index.js.map +0 -1
  893. package/dist/plugins/preferences/stores/postgres-store.d.ts.map +0 -1
  894. package/dist/plugins/preferences/stores/postgres-store.js.map +0 -1
  895. package/dist/plugins/preferences/types.d.ts.map +0 -1
  896. package/dist/plugins/preferences/types.js.map +0 -1
  897. package/dist/plugins/profiles/ProfilesManagementPage.d.ts.map +0 -1
  898. package/dist/plugins/profiles/ProfilesManagementPage.js.map +0 -1
  899. package/dist/plugins/profiles/ProfilesStatusWidget.d.ts.map +0 -1
  900. package/dist/plugins/profiles/ProfilesStatusWidget.js.map +0 -1
  901. package/dist/plugins/profiles/index.d.ts.map +0 -1
  902. package/dist/plugins/profiles/index.js.map +0 -1
  903. package/dist/plugins/profiles/profiles-plugin.d.ts.map +0 -1
  904. package/dist/plugins/profiles/profiles-plugin.js.map +0 -1
  905. package/dist/plugins/profiles/stores/index.d.ts.map +0 -1
  906. package/dist/plugins/profiles/stores/index.js.map +0 -1
  907. package/dist/plugins/profiles/stores/postgres-store.d.ts.map +0 -1
  908. package/dist/plugins/profiles/stores/postgres-store.js.map +0 -1
  909. package/dist/plugins/profiles/types.d.ts.map +0 -1
  910. package/dist/plugins/profiles/types.js.map +0 -1
  911. package/dist/plugins/qwickbrain/QwickbrainManagementPage.d.ts.map +0 -1
  912. package/dist/plugins/qwickbrain/QwickbrainManagementPage.js.map +0 -1
  913. package/dist/plugins/qwickbrain/QwickbrainStatusWidget.d.ts.map +0 -1
  914. package/dist/plugins/qwickbrain/QwickbrainStatusWidget.js.map +0 -1
  915. package/dist/plugins/qwickbrain/index.d.ts.map +0 -1
  916. package/dist/plugins/qwickbrain/index.js.map +0 -1
  917. package/dist/plugins/qwickbrain/qwickbrain-plugin.d.ts.map +0 -1
  918. package/dist/plugins/qwickbrain/qwickbrain-plugin.js.map +0 -1
  919. package/dist/plugins/qwickbrain/types.d.ts.map +0 -1
  920. package/dist/plugins/qwickbrain/types.js.map +0 -1
  921. package/dist/plugins/rate-limit/RateLimitManagementPage.d.ts.map +0 -1
  922. package/dist/plugins/rate-limit/RateLimitManagementPage.js.map +0 -1
  923. package/dist/plugins/rate-limit/RateLimitStatusWidget.d.ts.map +0 -1
  924. package/dist/plugins/rate-limit/RateLimitStatusWidget.js.map +0 -1
  925. package/dist/plugins/rate-limit/cleanup.d.ts.map +0 -1
  926. package/dist/plugins/rate-limit/cleanup.js.map +0 -1
  927. package/dist/plugins/rate-limit/env-config.d.ts.map +0 -1
  928. package/dist/plugins/rate-limit/env-config.js.map +0 -1
  929. package/dist/plugins/rate-limit/index.d.ts.map +0 -1
  930. package/dist/plugins/rate-limit/index.js.map +0 -1
  931. package/dist/plugins/rate-limit/middleware.d.ts.map +0 -1
  932. package/dist/plugins/rate-limit/middleware.js.map +0 -1
  933. package/dist/plugins/rate-limit/rate-limit-plugin.d.ts.map +0 -1
  934. package/dist/plugins/rate-limit/rate-limit-plugin.js.map +0 -1
  935. package/dist/plugins/rate-limit/rate-limit-service.d.ts.map +0 -1
  936. package/dist/plugins/rate-limit/rate-limit-service.js.map +0 -1
  937. package/dist/plugins/rate-limit/stores/cache-store.d.ts.map +0 -1
  938. package/dist/plugins/rate-limit/stores/cache-store.js.map +0 -1
  939. package/dist/plugins/rate-limit/stores/index.d.ts.map +0 -1
  940. package/dist/plugins/rate-limit/stores/index.js.map +0 -1
  941. package/dist/plugins/rate-limit/stores/postgres-store.d.ts.map +0 -1
  942. package/dist/plugins/rate-limit/stores/postgres-store.js.map +0 -1
  943. package/dist/plugins/rate-limit/strategies/fixed-window.d.ts.map +0 -1
  944. package/dist/plugins/rate-limit/strategies/fixed-window.js.map +0 -1
  945. package/dist/plugins/rate-limit/strategies/index.d.ts.map +0 -1
  946. package/dist/plugins/rate-limit/strategies/index.js.map +0 -1
  947. package/dist/plugins/rate-limit/strategies/sliding-window.d.ts.map +0 -1
  948. package/dist/plugins/rate-limit/strategies/sliding-window.js.map +0 -1
  949. package/dist/plugins/rate-limit/strategies/token-bucket.d.ts.map +0 -1
  950. package/dist/plugins/rate-limit/strategies/token-bucket.js.map +0 -1
  951. package/dist/plugins/rate-limit/types.d.ts.map +0 -1
  952. package/dist/plugins/rate-limit/types.js.map +0 -1
  953. package/dist/plugins/subscriptions/SubscriptionsManagementPage.d.ts.map +0 -1
  954. package/dist/plugins/subscriptions/SubscriptionsManagementPage.js.map +0 -1
  955. package/dist/plugins/subscriptions/SubscriptionsStatusWidget.d.ts.map +0 -1
  956. package/dist/plugins/subscriptions/SubscriptionsStatusWidget.js.map +0 -1
  957. package/dist/plugins/subscriptions/index.d.ts.map +0 -1
  958. package/dist/plugins/subscriptions/index.js.map +0 -1
  959. package/dist/plugins/subscriptions/stores/index.d.ts.map +0 -1
  960. package/dist/plugins/subscriptions/stores/index.js.map +0 -1
  961. package/dist/plugins/subscriptions/stores/postgres-store.d.ts.map +0 -1
  962. package/dist/plugins/subscriptions/stores/postgres-store.js.map +0 -1
  963. package/dist/plugins/subscriptions/subscriptions-plugin.d.ts.map +0 -1
  964. package/dist/plugins/subscriptions/subscriptions-plugin.js.map +0 -1
  965. package/dist/plugins/subscriptions/types.d.ts.map +0 -1
  966. package/dist/plugins/subscriptions/types.js.map +0 -1
  967. package/dist/plugins/usage/UsageManagementPage.d.ts.map +0 -1
  968. package/dist/plugins/usage/UsageManagementPage.js.map +0 -1
  969. package/dist/plugins/usage/UsageStatusWidget.d.ts.map +0 -1
  970. package/dist/plugins/usage/UsageStatusWidget.js.map +0 -1
  971. package/dist/plugins/usage/index.d.ts.map +0 -1
  972. package/dist/plugins/usage/index.js.map +0 -1
  973. package/dist/plugins/usage/stores/index.d.ts.map +0 -1
  974. package/dist/plugins/usage/stores/index.js.map +0 -1
  975. package/dist/plugins/usage/stores/postgres-store.d.ts.map +0 -1
  976. package/dist/plugins/usage/stores/postgres-store.js.map +0 -1
  977. package/dist/plugins/usage/types.d.ts.map +0 -1
  978. package/dist/plugins/usage/types.js.map +0 -1
  979. package/dist/plugins/usage/usage-plugin.d.ts.map +0 -1
  980. package/dist/plugins/usage/usage-plugin.js.map +0 -1
  981. package/dist/plugins/users/UsersManagementPage.d.ts.map +0 -1
  982. package/dist/plugins/users/UsersManagementPage.js.map +0 -1
  983. package/dist/plugins/users/UsersStatusWidget.d.ts.map +0 -1
  984. package/dist/plugins/users/UsersStatusWidget.js.map +0 -1
  985. package/dist/plugins/users/index.d.ts +0 -12
  986. package/dist/plugins/users/index.d.ts.map +0 -1
  987. package/dist/plugins/users/index.js +0 -13
  988. package/dist/plugins/users/index.js.map +0 -1
  989. package/dist/plugins/users/stores/index.d.ts +0 -7
  990. package/dist/plugins/users/stores/index.d.ts.map +0 -1
  991. package/dist/plugins/users/stores/index.js +0 -7
  992. package/dist/plugins/users/stores/index.js.map +0 -1
  993. package/dist/plugins/users/stores/postgres-store.d.ts.map +0 -1
  994. package/dist/plugins/users/stores/postgres-store.js.map +0 -1
  995. package/dist/plugins/users/types.d.ts.map +0 -1
  996. package/dist/plugins/users/types.js.map +0 -1
  997. package/dist/plugins/users/users-plugin.d.ts.map +0 -1
  998. package/dist/plugins/users/users-plugin.js +0 -503
  999. package/dist/plugins/users/users-plugin.js.map +0 -1
  1000. package/dist-ui/assets/index-BiEHWqD3.js +0 -528
  1001. package/dist-ui/assets/index-BiEHWqD3.js.map +0 -1
  1002. package/dist-ui/assets/index-CiizQQnb.css +0 -1
  1003. /package/dist/{core → src/core}/control-panel.d.ts +0 -0
  1004. /package/dist/{core → src/core}/gateway.d.ts +0 -0
  1005. /package/dist/{core → src/core}/guards.d.ts +0 -0
  1006. /package/dist/{core → src/core}/guards.js +0 -0
  1007. /package/dist/{core → src/core}/health-manager.d.ts +0 -0
  1008. /package/dist/{core → src/core}/health-manager.js +0 -0
  1009. /package/dist/{core → src/core}/index.d.ts +0 -0
  1010. /package/dist/{core → src/core}/index.js +0 -0
  1011. /package/dist/{core → src/core}/logging.d.ts +0 -0
  1012. /package/dist/{core → src/core}/logging.js +0 -0
  1013. /package/dist/{core → src/core}/plugin-registry.js +0 -0
  1014. /package/dist/{core → src/core}/types.d.ts +0 -0
  1015. /package/dist/{core → src/core}/types.js +0 -0
  1016. /package/dist/{plugins → src/plugins}/api-keys/ApiKeysManagementPage.d.ts +0 -0
  1017. /package/dist/{plugins → src/plugins}/api-keys/ApiKeysManagementPage.js +0 -0
  1018. /package/dist/{plugins → src/plugins}/api-keys/ApiKeysStatusWidget.d.ts +0 -0
  1019. /package/dist/{plugins → src/plugins}/api-keys/ApiKeysStatusWidget.js +0 -0
  1020. /package/dist/{plugins → src/plugins}/api-keys/api-keys-plugin.d.ts +0 -0
  1021. /package/dist/{plugins → src/plugins}/api-keys/api-keys-plugin.js +0 -0
  1022. /package/dist/{plugins → src/plugins}/api-keys/index.d.ts +0 -0
  1023. /package/dist/{plugins → src/plugins}/api-keys/index.js +0 -0
  1024. /package/dist/{plugins → src/plugins}/api-keys/middleware/bearer-token-auth.d.ts +0 -0
  1025. /package/dist/{plugins → src/plugins}/api-keys/middleware/bearer-token-auth.js +0 -0
  1026. /package/dist/{plugins → src/plugins}/api-keys/middleware/index.d.ts +0 -0
  1027. /package/dist/{plugins → src/plugins}/api-keys/middleware/index.js +0 -0
  1028. /package/dist/{plugins → src/plugins}/api-keys/middleware/usage-logging.d.ts +0 -0
  1029. /package/dist/{plugins → src/plugins}/api-keys/middleware/usage-logging.js +0 -0
  1030. /package/dist/{plugins → src/plugins}/api-keys/stores/index.d.ts +0 -0
  1031. /package/dist/{plugins → src/plugins}/api-keys/stores/index.js +0 -0
  1032. /package/dist/{plugins → src/plugins}/api-keys/stores/plugin-scope-store.d.ts +0 -0
  1033. /package/dist/{plugins → src/plugins}/api-keys/stores/plugin-scope-store.js +0 -0
  1034. /package/dist/{plugins → src/plugins}/api-keys/stores/postgres-store.d.ts +0 -0
  1035. /package/dist/{plugins → src/plugins}/api-keys/stores/usage-log-store.d.ts +0 -0
  1036. /package/dist/{plugins → src/plugins}/api-keys/stores/usage-log-store.js +0 -0
  1037. /package/dist/{plugins → src/plugins}/api-keys/types.d.ts +0 -0
  1038. /package/dist/{plugins → src/plugins}/api-keys/types.js +0 -0
  1039. /package/dist/{plugins → src/plugins}/auth/AuthManagementPage.d.ts +0 -0
  1040. /package/dist/{plugins → src/plugins}/auth/AuthManagementPage.js +0 -0
  1041. /package/dist/{plugins → src/plugins}/auth/AuthStatusWidget.d.ts +0 -0
  1042. /package/dist/{plugins → src/plugins}/auth/AuthStatusWidget.js +0 -0
  1043. /package/dist/{plugins → src/plugins}/auth/adapter-wrapper.d.ts +0 -0
  1044. /package/dist/{plugins → src/plugins}/auth/adapter-wrapper.js +0 -0
  1045. /package/dist/{plugins → src/plugins}/auth/adapters/auth0-adapter.d.ts +0 -0
  1046. /package/dist/{plugins → src/plugins}/auth/adapters/auth0-adapter.js +0 -0
  1047. /package/dist/{plugins → src/plugins}/auth/adapters/basic-adapter.d.ts +0 -0
  1048. /package/dist/{plugins → src/plugins}/auth/adapters/basic-adapter.js +0 -0
  1049. /package/dist/{plugins → src/plugins}/auth/adapters/index.d.ts +0 -0
  1050. /package/dist/{plugins → src/plugins}/auth/adapters/index.js +0 -0
  1051. /package/dist/{plugins → src/plugins}/auth/adapters/supabase-adapter.d.ts +0 -0
  1052. /package/dist/{plugins → src/plugins}/auth/adapters/supabase-adapter.js +0 -0
  1053. /package/dist/{plugins → src/plugins}/auth/adapters/supertokens-adapter.d.ts +0 -0
  1054. /package/dist/{plugins → src/plugins}/auth/adapters/supertokens-adapter.js +0 -0
  1055. /package/dist/{plugins → src/plugins}/auth/auth-plugin.d.ts +0 -0
  1056. /package/dist/{plugins → src/plugins}/auth/config-store.d.ts +0 -0
  1057. /package/dist/{plugins → src/plugins}/auth/config-store.js +0 -0
  1058. /package/dist/{plugins → src/plugins}/auth/env-config.d.ts +0 -0
  1059. /package/dist/{plugins → src/plugins}/auth/index.d.ts +0 -0
  1060. /package/dist/{plugins → src/plugins}/auth/index.js +0 -0
  1061. /package/dist/{plugins → src/plugins}/auth/types.d.ts +0 -0
  1062. /package/dist/{plugins → src/plugins}/auth/types.js +0 -0
  1063. /package/dist/{plugins → src/plugins}/bans/BansManagementPage.d.ts +0 -0
  1064. /package/dist/{plugins → src/plugins}/bans/BansManagementPage.js +0 -0
  1065. /package/dist/{plugins → src/plugins}/bans/BansStatusWidget.d.ts +0 -0
  1066. /package/dist/{plugins → src/plugins}/bans/BansStatusWidget.js +0 -0
  1067. /package/dist/{plugins → src/plugins}/bans/bans-plugin.d.ts +0 -0
  1068. /package/dist/{plugins → src/plugins}/bans/bans-plugin.js +0 -0
  1069. /package/dist/{plugins → src/plugins}/bans/stores/postgres-store.d.ts +0 -0
  1070. /package/dist/{plugins → src/plugins}/bans/stores/postgres-store.js +0 -0
  1071. /package/dist/{plugins → src/plugins}/bans/types.d.ts +0 -0
  1072. /package/dist/{plugins → src/plugins}/bans/types.js +0 -0
  1073. /package/dist/{plugins → src/plugins}/cache/CacheManagementPage.d.ts +0 -0
  1074. /package/dist/{plugins → src/plugins}/cache/CacheManagementPage.js +0 -0
  1075. /package/dist/{plugins → src/plugins}/cache/CacheStatusWidget.d.ts +0 -0
  1076. /package/dist/{plugins → src/plugins}/cache/CacheStatusWidget.js +0 -0
  1077. /package/dist/{plugins → src/plugins}/cache/index.d.ts +0 -0
  1078. /package/dist/{plugins → src/plugins}/cache/index.js +0 -0
  1079. /package/dist/{plugins → src/plugins}/cms/cms-plugin.d.ts +0 -0
  1080. /package/dist/{plugins → src/plugins}/cms/index.d.ts +0 -0
  1081. /package/dist/{plugins → src/plugins}/cms/index.js +0 -0
  1082. /package/dist/{plugins → src/plugins}/config-plugin.d.ts +0 -0
  1083. /package/dist/{plugins → src/plugins}/config-plugin.js +0 -0
  1084. /package/dist/{plugins → src/plugins}/core/index.d.ts +0 -0
  1085. /package/dist/{plugins → src/plugins}/core/index.js +0 -0
  1086. /package/dist/{plugins → src/plugins}/devices/DevicesManagementPage.d.ts +0 -0
  1087. /package/dist/{plugins → src/plugins}/devices/DevicesManagementPage.js +0 -0
  1088. /package/dist/{plugins → src/plugins}/devices/DevicesStatusWidget.d.ts +0 -0
  1089. /package/dist/{plugins → src/plugins}/devices/DevicesStatusWidget.js +0 -0
  1090. /package/dist/{plugins → src/plugins}/devices/adapters/compute-adapter.d.ts +0 -0
  1091. /package/dist/{plugins → src/plugins}/devices/adapters/compute-adapter.js +0 -0
  1092. /package/dist/{plugins → src/plugins}/devices/adapters/index.d.ts +0 -0
  1093. /package/dist/{plugins → src/plugins}/devices/adapters/index.js +0 -0
  1094. /package/dist/{plugins → src/plugins}/devices/adapters/mobile-adapter.d.ts +0 -0
  1095. /package/dist/{plugins → src/plugins}/devices/adapters/mobile-adapter.js +0 -0
  1096. /package/dist/{plugins → src/plugins}/devices/devices-plugin.d.ts +0 -0
  1097. /package/dist/{plugins → src/plugins}/devices/devices-plugin.js +0 -0
  1098. /package/dist/{plugins → src/plugins}/devices/index.d.ts +0 -0
  1099. /package/dist/{plugins → src/plugins}/devices/index.js +0 -0
  1100. /package/dist/{plugins → src/plugins}/devices/stores/index.d.ts +0 -0
  1101. /package/dist/{plugins → src/plugins}/devices/stores/index.js +0 -0
  1102. /package/dist/{plugins → src/plugins}/devices/stores/postgres-store.d.ts +0 -0
  1103. /package/dist/{plugins → src/plugins}/devices/stores/postgres-store.js +0 -0
  1104. /package/dist/{plugins → src/plugins}/devices/token-utils.d.ts +0 -0
  1105. /package/dist/{plugins → src/plugins}/devices/token-utils.js +0 -0
  1106. /package/dist/{plugins → src/plugins}/devices/types.d.ts +0 -0
  1107. /package/dist/{plugins → src/plugins}/devices/types.js +0 -0
  1108. /package/dist/{plugins → src/plugins}/diagnostics/DiagnosticsManagementPage.d.ts +0 -0
  1109. /package/dist/{plugins → src/plugins}/diagnostics/DiagnosticsManagementPage.js +0 -0
  1110. /package/dist/{plugins → src/plugins}/diagnostics/DiagnosticsStatusWidget.d.ts +0 -0
  1111. /package/dist/{plugins → src/plugins}/diagnostics/DiagnosticsStatusWidget.js +0 -0
  1112. /package/dist/{plugins → src/plugins}/diagnostics/index.d.ts +0 -0
  1113. /package/dist/{plugins → src/plugins}/diagnostics/index.js +0 -0
  1114. /package/dist/{plugins → src/plugins}/diagnostics-plugin.d.ts +0 -0
  1115. /package/dist/{plugins → src/plugins}/diagnostics-plugin.js +0 -0
  1116. /package/dist/{plugins → src/plugins}/entitlements/EntitlementsManagementPage.d.ts +0 -0
  1117. /package/dist/{plugins → src/plugins}/entitlements/EntitlementsManagementPage.js +0 -0
  1118. /package/dist/{plugins → src/plugins}/entitlements/EntitlementsStatusWidget.d.ts +0 -0
  1119. /package/dist/{plugins → src/plugins}/entitlements/EntitlementsStatusWidget.js +0 -0
  1120. /package/dist/{plugins → src/plugins}/entitlements/entitlements-plugin.d.ts +0 -0
  1121. /package/dist/{plugins → src/plugins}/entitlements/entitlements-plugin.js +0 -0
  1122. /package/dist/{plugins → src/plugins}/entitlements/sources/postgres-source.d.ts +0 -0
  1123. /package/dist/{plugins → src/plugins}/entitlements/sources/postgres-source.js +0 -0
  1124. /package/dist/{plugins → src/plugins}/entitlements/types.d.ts +0 -0
  1125. /package/dist/{plugins → src/plugins}/entitlements/types.js +0 -0
  1126. /package/dist/{plugins → src/plugins}/frontend-app-plugin.d.ts +0 -0
  1127. /package/dist/{plugins → src/plugins}/frontend-app-plugin.js +0 -0
  1128. /package/dist/{plugins → src/plugins}/health/HealthManagementPage.d.ts +0 -0
  1129. /package/dist/{plugins → src/plugins}/health/HealthManagementPage.js +0 -0
  1130. /package/dist/{plugins → src/plugins}/health/HealthStatusWidget.d.ts +0 -0
  1131. /package/dist/{plugins → src/plugins}/health/HealthStatusWidget.js +0 -0
  1132. /package/dist/{plugins → src/plugins}/health/index.d.ts +0 -0
  1133. /package/dist/{plugins → src/plugins}/health/index.js +0 -0
  1134. /package/dist/{plugins → src/plugins}/health-plugin.d.ts +0 -0
  1135. /package/dist/{plugins → src/plugins}/logs/LogsManagementPage.d.ts +0 -0
  1136. /package/dist/{plugins → src/plugins}/logs/LogsManagementPage.js +0 -0
  1137. /package/dist/{plugins → src/plugins}/logs/LogsStatusWidget.d.ts +0 -0
  1138. /package/dist/{plugins → src/plugins}/logs/LogsStatusWidget.js +0 -0
  1139. /package/dist/{plugins → src/plugins}/logs/index.d.ts +0 -0
  1140. /package/dist/{plugins → src/plugins}/logs/index.js +0 -0
  1141. /package/dist/{plugins → src/plugins}/logs-plugin.d.ts +0 -0
  1142. /package/dist/{plugins → src/plugins}/maintenance/MaintenanceManagementPage.d.ts +0 -0
  1143. /package/dist/{plugins → src/plugins}/maintenance/MaintenanceManagementPage.js +0 -0
  1144. /package/dist/{plugins → src/plugins}/maintenance/MaintenanceStatusWidget.d.ts +0 -0
  1145. /package/dist/{plugins → src/plugins}/maintenance/MaintenanceStatusWidget.js +0 -0
  1146. /package/dist/{plugins → src/plugins}/maintenance/SeedExecutor.d.ts +0 -0
  1147. /package/dist/{plugins → src/plugins}/maintenance/SeedExecutor.js +0 -0
  1148. /package/dist/{plugins → src/plugins}/maintenance/SeedHistory.d.ts +0 -0
  1149. /package/dist/{plugins → src/plugins}/maintenance/SeedHistory.js +0 -0
  1150. /package/dist/{plugins → src/plugins}/maintenance/SeedList.d.ts +0 -0
  1151. /package/dist/{plugins → src/plugins}/maintenance/SeedList.js +0 -0
  1152. /package/dist/{plugins → src/plugins}/maintenance/SeedManagementPage.d.ts +0 -0
  1153. /package/dist/{plugins → src/plugins}/maintenance/SeedManagementPage.js +0 -0
  1154. /package/dist/{plugins → src/plugins}/maintenance/index.d.ts +0 -0
  1155. /package/dist/{plugins → src/plugins}/maintenance/index.js +0 -0
  1156. /package/dist/{plugins → src/plugins}/maintenance/seed-executor.d.ts +0 -0
  1157. /package/dist/{plugins → src/plugins}/maintenance/seed-executor.js +0 -0
  1158. /package/dist/{plugins → src/plugins}/maintenance-plugin.d.ts +0 -0
  1159. /package/dist/{plugins → src/plugins}/notifications/NotificationsManagementPage.d.ts +0 -0
  1160. /package/dist/{plugins → src/plugins}/notifications/NotificationsManagementPage.js +0 -0
  1161. /package/dist/{plugins → src/plugins}/notifications/NotificationsStatusWidget.d.ts +0 -0
  1162. /package/dist/{plugins → src/plugins}/notifications/NotificationsStatusWidget.js +0 -0
  1163. /package/dist/{plugins → src/plugins}/notifications/index.d.ts +0 -0
  1164. /package/dist/{plugins → src/plugins}/notifications/index.js +0 -0
  1165. /package/dist/{plugins → src/plugins}/notifications/notifications-manager.d.ts +0 -0
  1166. /package/dist/{plugins → src/plugins}/notifications/notifications-manager.js +0 -0
  1167. /package/dist/{plugins → src/plugins}/notifications/notifications-plugin.d.ts +0 -0
  1168. /package/dist/{plugins → src/plugins}/notifications/types.d.ts +0 -0
  1169. /package/dist/{plugins → src/plugins}/notifications/types.js +0 -0
  1170. /package/dist/{plugins → src/plugins}/parental/ParentalManagementPage.d.ts +0 -0
  1171. /package/dist/{plugins → src/plugins}/parental/ParentalManagementPage.js +0 -0
  1172. /package/dist/{plugins → src/plugins}/parental/ParentalStatusWidget.d.ts +0 -0
  1173. /package/dist/{plugins → src/plugins}/parental/ParentalStatusWidget.js +0 -0
  1174. /package/dist/{plugins → src/plugins}/parental/adapters/index.d.ts +0 -0
  1175. /package/dist/{plugins → src/plugins}/parental/adapters/index.js +0 -0
  1176. /package/dist/{plugins → src/plugins}/parental/adapters/kids-adapter.d.ts +0 -0
  1177. /package/dist/{plugins → src/plugins}/parental/adapters/kids-adapter.js +0 -0
  1178. /package/dist/{plugins → src/plugins}/parental/index.d.ts +0 -0
  1179. /package/dist/{plugins → src/plugins}/parental/index.js +0 -0
  1180. /package/dist/{plugins → src/plugins}/parental/parental-plugin.d.ts +0 -0
  1181. /package/dist/{plugins → src/plugins}/parental/parental-plugin.js +0 -0
  1182. /package/dist/{plugins → src/plugins}/parental/stores/index.d.ts +0 -0
  1183. /package/dist/{plugins → src/plugins}/parental/stores/index.js +0 -0
  1184. /package/dist/{plugins → src/plugins}/parental/stores/postgres-store.d.ts +0 -0
  1185. /package/dist/{plugins → src/plugins}/parental/stores/postgres-store.js +0 -0
  1186. /package/dist/{plugins → src/plugins}/parental/types.d.ts +0 -0
  1187. /package/dist/{plugins → src/plugins}/parental/types.js +0 -0
  1188. /package/dist/{plugins → src/plugins}/postgres/PostgresManagementPage.d.ts +0 -0
  1189. /package/dist/{plugins → src/plugins}/postgres/PostgresManagementPage.js +0 -0
  1190. /package/dist/{plugins → src/plugins}/postgres/PostgresStatusWidget.d.ts +0 -0
  1191. /package/dist/{plugins → src/plugins}/postgres/PostgresStatusWidget.js +0 -0
  1192. /package/dist/{plugins → src/plugins}/postgres/index.d.ts +0 -0
  1193. /package/dist/{plugins → src/plugins}/postgres/index.js +0 -0
  1194. /package/dist/{plugins → src/plugins}/preferences/PreferencesManagementPage.d.ts +0 -0
  1195. /package/dist/{plugins → src/plugins}/preferences/PreferencesManagementPage.js +0 -0
  1196. /package/dist/{plugins → src/plugins}/preferences/PreferencesStatusWidget.d.ts +0 -0
  1197. /package/dist/{plugins → src/plugins}/preferences/PreferencesStatusWidget.js +0 -0
  1198. /package/dist/{plugins → src/plugins}/preferences/index.d.ts +0 -0
  1199. /package/dist/{plugins → src/plugins}/preferences/index.js +0 -0
  1200. /package/dist/{plugins → src/plugins}/preferences/preferences-plugin.d.ts +0 -0
  1201. /package/dist/{plugins → src/plugins}/preferences/preferences-plugin.js +0 -0
  1202. /package/dist/{plugins → src/plugins}/preferences/stores/index.d.ts +0 -0
  1203. /package/dist/{plugins → src/plugins}/preferences/stores/index.js +0 -0
  1204. /package/dist/{plugins → src/plugins}/preferences/stores/postgres-store.d.ts +0 -0
  1205. /package/dist/{plugins → src/plugins}/preferences/stores/postgres-store.js +0 -0
  1206. /package/dist/{plugins → src/plugins}/preferences/types.d.ts +0 -0
  1207. /package/dist/{plugins → src/plugins}/preferences/types.js +0 -0
  1208. /package/dist/{plugins → src/plugins}/profiles/ProfilesManagementPage.d.ts +0 -0
  1209. /package/dist/{plugins → src/plugins}/profiles/ProfilesManagementPage.js +0 -0
  1210. /package/dist/{plugins → src/plugins}/profiles/ProfilesStatusWidget.d.ts +0 -0
  1211. /package/dist/{plugins → src/plugins}/profiles/ProfilesStatusWidget.js +0 -0
  1212. /package/dist/{plugins → src/plugins}/profiles/index.d.ts +0 -0
  1213. /package/dist/{plugins → src/plugins}/profiles/index.js +0 -0
  1214. /package/dist/{plugins → src/plugins}/profiles/profiles-plugin.d.ts +0 -0
  1215. /package/dist/{plugins → src/plugins}/profiles/profiles-plugin.js +0 -0
  1216. /package/dist/{plugins → src/plugins}/profiles/stores/index.d.ts +0 -0
  1217. /package/dist/{plugins → src/plugins}/profiles/stores/index.js +0 -0
  1218. /package/dist/{plugins → src/plugins}/profiles/stores/postgres-store.d.ts +0 -0
  1219. /package/dist/{plugins → src/plugins}/profiles/stores/postgres-store.js +0 -0
  1220. /package/dist/{plugins → src/plugins}/profiles/types.d.ts +0 -0
  1221. /package/dist/{plugins → src/plugins}/profiles/types.js +0 -0
  1222. /package/dist/{plugins → src/plugins}/qwickbrain/QwickbrainManagementPage.d.ts +0 -0
  1223. /package/dist/{plugins → src/plugins}/qwickbrain/QwickbrainManagementPage.js +0 -0
  1224. /package/dist/{plugins → src/plugins}/qwickbrain/QwickbrainStatusWidget.d.ts +0 -0
  1225. /package/dist/{plugins → src/plugins}/qwickbrain/QwickbrainStatusWidget.js +0 -0
  1226. /package/dist/{plugins → src/plugins}/qwickbrain/index.d.ts +0 -0
  1227. /package/dist/{plugins → src/plugins}/qwickbrain/index.js +0 -0
  1228. /package/dist/{plugins → src/plugins}/qwickbrain/qwickbrain-plugin.d.ts +0 -0
  1229. /package/dist/{plugins → src/plugins}/qwickbrain/qwickbrain-plugin.js +0 -0
  1230. /package/dist/{plugins → src/plugins}/qwickbrain/types.d.ts +0 -0
  1231. /package/dist/{plugins → src/plugins}/qwickbrain/types.js +0 -0
  1232. /package/dist/{plugins → src/plugins}/rate-limit/RateLimitManagementPage.d.ts +0 -0
  1233. /package/dist/{plugins → src/plugins}/rate-limit/RateLimitManagementPage.js +0 -0
  1234. /package/dist/{plugins → src/plugins}/rate-limit/RateLimitStatusWidget.d.ts +0 -0
  1235. /package/dist/{plugins → src/plugins}/rate-limit/RateLimitStatusWidget.js +0 -0
  1236. /package/dist/{plugins → src/plugins}/rate-limit/cleanup.d.ts +0 -0
  1237. /package/dist/{plugins → src/plugins}/rate-limit/cleanup.js +0 -0
  1238. /package/dist/{plugins → src/plugins}/rate-limit/env-config.d.ts +0 -0
  1239. /package/dist/{plugins → src/plugins}/rate-limit/env-config.js +0 -0
  1240. /package/dist/{plugins → src/plugins}/rate-limit/index.d.ts +0 -0
  1241. /package/dist/{plugins → src/plugins}/rate-limit/index.js +0 -0
  1242. /package/dist/{plugins → src/plugins}/rate-limit/middleware.d.ts +0 -0
  1243. /package/dist/{plugins → src/plugins}/rate-limit/middleware.js +0 -0
  1244. /package/dist/{plugins → src/plugins}/rate-limit/rate-limit-plugin.d.ts +0 -0
  1245. /package/dist/{plugins → src/plugins}/rate-limit/rate-limit-plugin.js +0 -0
  1246. /package/dist/{plugins → src/plugins}/rate-limit/rate-limit-service.d.ts +0 -0
  1247. /package/dist/{plugins → src/plugins}/rate-limit/rate-limit-service.js +0 -0
  1248. /package/dist/{plugins → src/plugins}/rate-limit/stores/cache-store.d.ts +0 -0
  1249. /package/dist/{plugins → src/plugins}/rate-limit/stores/cache-store.js +0 -0
  1250. /package/dist/{plugins → src/plugins}/rate-limit/stores/index.d.ts +0 -0
  1251. /package/dist/{plugins → src/plugins}/rate-limit/stores/index.js +0 -0
  1252. /package/dist/{plugins → src/plugins}/rate-limit/stores/postgres-store.d.ts +0 -0
  1253. /package/dist/{plugins → src/plugins}/rate-limit/stores/postgres-store.js +0 -0
  1254. /package/dist/{plugins → src/plugins}/rate-limit/strategies/fixed-window.d.ts +0 -0
  1255. /package/dist/{plugins → src/plugins}/rate-limit/strategies/fixed-window.js +0 -0
  1256. /package/dist/{plugins → src/plugins}/rate-limit/strategies/index.d.ts +0 -0
  1257. /package/dist/{plugins → src/plugins}/rate-limit/strategies/index.js +0 -0
  1258. /package/dist/{plugins → src/plugins}/rate-limit/strategies/sliding-window.d.ts +0 -0
  1259. /package/dist/{plugins → src/plugins}/rate-limit/strategies/sliding-window.js +0 -0
  1260. /package/dist/{plugins → src/plugins}/rate-limit/strategies/token-bucket.d.ts +0 -0
  1261. /package/dist/{plugins → src/plugins}/rate-limit/strategies/token-bucket.js +0 -0
  1262. /package/dist/{plugins → src/plugins}/rate-limit/types.d.ts +0 -0
  1263. /package/dist/{plugins → src/plugins}/rate-limit/types.js +0 -0
  1264. /package/dist/{plugins → src/plugins}/subscriptions/SubscriptionsManagementPage.d.ts +0 -0
  1265. /package/dist/{plugins → src/plugins}/subscriptions/SubscriptionsManagementPage.js +0 -0
  1266. /package/dist/{plugins → src/plugins}/subscriptions/SubscriptionsStatusWidget.d.ts +0 -0
  1267. /package/dist/{plugins → src/plugins}/subscriptions/SubscriptionsStatusWidget.js +0 -0
  1268. /package/dist/{plugins → src/plugins}/subscriptions/index.d.ts +0 -0
  1269. /package/dist/{plugins → src/plugins}/subscriptions/index.js +0 -0
  1270. /package/dist/{plugins → src/plugins}/subscriptions/stores/index.d.ts +0 -0
  1271. /package/dist/{plugins → src/plugins}/subscriptions/stores/index.js +0 -0
  1272. /package/dist/{plugins → src/plugins}/subscriptions/stores/postgres-store.d.ts +0 -0
  1273. /package/dist/{plugins → src/plugins}/subscriptions/stores/postgres-store.js +0 -0
  1274. /package/dist/{plugins → src/plugins}/subscriptions/subscriptions-plugin.d.ts +0 -0
  1275. /package/dist/{plugins → src/plugins}/subscriptions/subscriptions-plugin.js +0 -0
  1276. /package/dist/{plugins → src/plugins}/subscriptions/types.d.ts +0 -0
  1277. /package/dist/{plugins → src/plugins}/subscriptions/types.js +0 -0
  1278. /package/dist/{plugins → src/plugins}/usage/UsageManagementPage.d.ts +0 -0
  1279. /package/dist/{plugins → src/plugins}/usage/UsageManagementPage.js +0 -0
  1280. /package/dist/{plugins → src/plugins}/usage/UsageStatusWidget.d.ts +0 -0
  1281. /package/dist/{plugins → src/plugins}/usage/UsageStatusWidget.js +0 -0
  1282. /package/dist/{plugins → src/plugins}/usage/index.d.ts +0 -0
  1283. /package/dist/{plugins → src/plugins}/usage/index.js +0 -0
  1284. /package/dist/{plugins → src/plugins}/usage/stores/index.d.ts +0 -0
  1285. /package/dist/{plugins → src/plugins}/usage/stores/index.js +0 -0
  1286. /package/dist/{plugins → src/plugins}/usage/stores/postgres-store.d.ts +0 -0
  1287. /package/dist/{plugins → src/plugins}/usage/stores/postgres-store.js +0 -0
  1288. /package/dist/{plugins → src/plugins}/usage/types.d.ts +0 -0
  1289. /package/dist/{plugins → src/plugins}/usage/types.js +0 -0
  1290. /package/dist/{plugins → src/plugins}/usage/usage-plugin.d.ts +0 -0
  1291. /package/dist/{plugins → src/plugins}/usage/usage-plugin.js +0 -0
  1292. /package/dist/{plugins → src/plugins}/users/UsersManagementPage.d.ts +0 -0
  1293. /package/dist/{plugins → src/plugins}/users/UsersManagementPage.js +0 -0
  1294. /package/dist/{plugins → src/plugins}/users/UsersStatusWidget.d.ts +0 -0
  1295. /package/dist/{plugins → src/plugins}/users/UsersStatusWidget.js +0 -0
  1296. /package/dist/{plugins → src/plugins}/users/stores/postgres-store.d.ts +0 -0
  1297. /package/dist/{plugins → src/plugins}/users/stores/postgres-store.js +0 -0
  1298. /package/dist/{plugins → src/plugins}/users/types.d.ts +0 -0
  1299. /package/dist/{plugins → src/plugins}/users/types.js +0 -0
  1300. /package/dist/{plugins → src/plugins}/users/users-plugin.d.ts +0 -0
@@ -0,0 +1,1085 @@
1
+ /**
2
+ * Gateway Server for @qwickapps/server
3
+ *
4
+ * Provides a production-ready gateway pattern that:
5
+ * 1. Proxies multiple apps mounted at configurable paths
6
+ * 2. Each app runs at `/` on its own internal port
7
+ * 3. Gateway handles path rewriting automatically
8
+ * 4. Provides health and diagnostics endpoints
9
+ *
10
+ * Architecture:
11
+ * Internet → Gateway (:3000) → [Control Panel (:3001), Admin (:3002), API (:3003), ...]
12
+ *
13
+ * Port Scheme:
14
+ * - 3000: Gateway (public)
15
+ * - 3001: Control Panel
16
+ * - 3002+: Additional apps
17
+ *
18
+ * Each app is isolated and can be served from any mount path without rebuilding.
19
+ *
20
+ * Copyright (c) 2025 QwickApps.com. All rights reserved.
21
+ */
22
+ import { createControlPanel } from './control-panel.js';
23
+ import { initializeLogging, getControlPanelLogger } from './logging.js';
24
+ import { createProxyMiddleware } from 'http-proxy-middleware';
25
+ import express from 'express';
26
+ import { existsSync, readFileSync } from 'fs';
27
+ import { resolve, join, dirname } from 'path';
28
+ import { fileURLToPath } from 'url';
29
+ // Get QwickApps Server version from package.json
30
+ const __filename = fileURLToPath(import.meta.url);
31
+ const __dirname = dirname(__filename);
32
+ // Find package.json by walking up directories
33
+ // Recommended approach for libraries that work in both source and compiled contexts
34
+ function findPackageJson() {
35
+ let currentDir = __dirname;
36
+ // Walk up max 5 levels looking for the correct package.json
37
+ for (let i = 0; i < 5; i++) {
38
+ try {
39
+ const packagePath = join(currentDir, 'package.json');
40
+ if (existsSync(packagePath)) {
41
+ const pkg = JSON.parse(readFileSync(packagePath, 'utf-8'));
42
+ // Verify it's the right package
43
+ if (pkg.name === '@qwickapps/server') {
44
+ return pkg.version || '1.0.0';
45
+ }
46
+ }
47
+ }
48
+ catch {
49
+ // Continue searching
50
+ }
51
+ currentDir = join(currentDir, '..');
52
+ }
53
+ return '1.0.0';
54
+ }
55
+ const QWICKAPPS_SERVER_VERSION = findPackageJson();
56
+ /**
57
+ * Generate landing page HTML for the frontend app
58
+ */
59
+ function generateLandingPageHtml(config, controlPanelPath) {
60
+ if (!config)
61
+ return '';
62
+ const primaryColor = config.branding?.primaryColor || '#6366f1';
63
+ const links = config.links || [
64
+ { label: 'Control Panel', url: controlPanelPath },
65
+ ];
66
+ const linksHtml = links
67
+ .map((link) => `<a href="${link.url}" class="link">${link.label}</a>`)
68
+ .join('');
69
+ return `<!DOCTYPE html>
70
+ <html lang="en">
71
+ <head>
72
+ <meta charset="UTF-8">
73
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
74
+ <title>${config.title}</title>
75
+ <style>
76
+ * { margin: 0; padding: 0; box-sizing: border-box; }
77
+ body {
78
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
79
+ background: linear-gradient(135deg, #0f172a 0%, #1e293b 100%);
80
+ color: #e2e8f0;
81
+ min-height: 100vh;
82
+ display: flex;
83
+ align-items: center;
84
+ justify-content: center;
85
+ }
86
+ .container {
87
+ text-align: center;
88
+ max-width: 600px;
89
+ padding: 2rem;
90
+ }
91
+ h1 {
92
+ font-size: 2.5rem;
93
+ color: ${primaryColor};
94
+ margin-bottom: 1rem;
95
+ }
96
+ p {
97
+ font-size: 1.125rem;
98
+ color: #94a3b8;
99
+ margin-bottom: 2rem;
100
+ line-height: 1.6;
101
+ }
102
+ .links {
103
+ display: flex;
104
+ flex-wrap: wrap;
105
+ gap: 1rem;
106
+ justify-content: center;
107
+ }
108
+ .link {
109
+ display: inline-block;
110
+ padding: 0.875rem 2rem;
111
+ background: ${primaryColor};
112
+ color: white;
113
+ text-decoration: none;
114
+ border-radius: 0.5rem;
115
+ font-weight: 500;
116
+ transition: all 0.2s;
117
+ }
118
+ .link:hover {
119
+ transform: translateY(-2px);
120
+ box-shadow: 0 10px 20px rgba(0,0,0,0.3);
121
+ }
122
+ .footer {
123
+ position: fixed;
124
+ bottom: 1rem;
125
+ left: 0;
126
+ right: 0;
127
+ text-align: center;
128
+ color: #64748b;
129
+ font-size: 0.875rem;
130
+ }
131
+ .footer a {
132
+ color: ${primaryColor};
133
+ text-decoration: none;
134
+ }
135
+ </style>
136
+ </head>
137
+ <body>
138
+ <div class="container">
139
+ <h1>${config.heading || config.title}</h1>
140
+ ${config.description ? `<p>${config.description}</p>` : ''}
141
+ ${linksHtml ? `<div class="links">${linksHtml}</div>` : ''}
142
+ </div>
143
+ <div class="footer">
144
+ Powered by <a href="https://qwickapps.com" target="_blank">QwickApps</a>
145
+ </div>
146
+ </body>
147
+ </html>`;
148
+ }
149
+ /**
150
+ * Generate default landing page HTML when no frontend app is configured
151
+ */
152
+ function generateDefaultLandingPageHtml(productName, controlPanelPath, logoIconUrl) {
153
+ return `<!DOCTYPE html>
154
+ <html lang="en">
155
+ <head>
156
+ <meta charset="UTF-8">
157
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
158
+ <title>${productName}</title>
159
+ <style>
160
+ * { margin: 0; padding: 0; box-sizing: border-box; }
161
+
162
+ :root {
163
+ --primary: #6366f1;
164
+ --primary-glow: rgba(99, 102, 241, 0.4);
165
+ --success: #22c55e;
166
+ --warning: #f59e0b;
167
+ --error: #ef4444;
168
+ --bg-dark: #0a0a0f;
169
+ --bg-card: rgba(255, 255, 255, 0.03);
170
+ --text-primary: #f1f5f9;
171
+ --text-secondary: #94a3b8;
172
+ }
173
+
174
+ body {
175
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', sans-serif;
176
+ background: var(--bg-dark);
177
+ color: var(--text-primary);
178
+ min-height: 100vh;
179
+ overflow: hidden;
180
+ display: flex;
181
+ align-items: center;
182
+ justify-content: center;
183
+ }
184
+
185
+ .bg-gradient {
186
+ position: fixed;
187
+ top: 0; left: 0; right: 0; bottom: 0;
188
+ background:
189
+ radial-gradient(ellipse at 20% 20%, rgba(99, 102, 241, 0.15) 0%, transparent 50%),
190
+ radial-gradient(ellipse at 80% 80%, rgba(139, 92, 246, 0.1) 0%, transparent 50%);
191
+ animation: gradientShift 15s ease-in-out infinite;
192
+ }
193
+
194
+ @keyframes gradientShift {
195
+ 0%, 100% { opacity: 1; }
196
+ 50% { opacity: 0.8; }
197
+ }
198
+
199
+ .container {
200
+ position: relative;
201
+ z-index: 10;
202
+ text-align: center;
203
+ max-width: 500px;
204
+ padding: 3rem 2rem;
205
+ }
206
+
207
+ .logo {
208
+ width: 80px;
209
+ height: 80px;
210
+ margin: 0 auto 2rem;
211
+ display: flex;
212
+ align-items: center;
213
+ justify-content: center;
214
+ animation: logoFloat 6s ease-in-out infinite;
215
+ }
216
+
217
+ .logo.default {
218
+ background: linear-gradient(135deg, var(--primary) 0%, #8b5cf6 100%);
219
+ border-radius: 20px;
220
+ box-shadow: 0 20px 40px var(--primary-glow);
221
+ }
222
+
223
+ @keyframes logoFloat {
224
+ 0%, 100% { transform: translateY(0); }
225
+ 50% { transform: translateY(-10px); }
226
+ }
227
+
228
+ .logo svg {
229
+ width: 48px;
230
+ height: 48px;
231
+ fill: white;
232
+ }
233
+
234
+ .logo img {
235
+ width: 64px;
236
+ height: 64px;
237
+ object-fit: contain;
238
+ }
239
+
240
+ h1 {
241
+ font-size: 2.5rem;
242
+ font-weight: 700;
243
+ margin-bottom: 0.5rem;
244
+ background: linear-gradient(135deg, var(--text-primary) 0%, var(--primary) 100%);
245
+ -webkit-background-clip: text;
246
+ -webkit-text-fill-color: transparent;
247
+ background-clip: text;
248
+ }
249
+
250
+ .status-badge {
251
+ display: inline-flex;
252
+ align-items: center;
253
+ gap: 0.5rem;
254
+ padding: 0.75rem 1.5rem;
255
+ background: var(--bg-card);
256
+ border: 1px solid rgba(255, 255, 255, 0.1);
257
+ border-radius: 100px;
258
+ margin: 1.5rem 0 2rem;
259
+ backdrop-filter: blur(10px);
260
+ }
261
+
262
+ .status-dot {
263
+ width: 10px;
264
+ height: 10px;
265
+ border-radius: 50%;
266
+ background: var(--success);
267
+ box-shadow: 0 0 10px var(--success);
268
+ animation: pulse 2s ease-in-out infinite;
269
+ }
270
+
271
+ @keyframes pulse {
272
+ 0%, 100% { opacity: 1; transform: scale(1); }
273
+ 50% { opacity: 0.7; transform: scale(1.1); }
274
+ }
275
+
276
+ .status-text {
277
+ font-size: 0.95rem;
278
+ font-weight: 500;
279
+ }
280
+
281
+ .description {
282
+ color: var(--text-secondary);
283
+ font-size: 1rem;
284
+ line-height: 1.6;
285
+ margin-bottom: 2rem;
286
+ }
287
+
288
+ .links {
289
+ display: flex;
290
+ flex-wrap: wrap;
291
+ gap: 1rem;
292
+ justify-content: center;
293
+ }
294
+
295
+ .link {
296
+ display: inline-flex;
297
+ align-items: center;
298
+ gap: 0.5rem;
299
+ padding: 0.875rem 1.75rem;
300
+ background: var(--primary);
301
+ color: white;
302
+ text-decoration: none;
303
+ border-radius: 12px;
304
+ font-weight: 500;
305
+ font-size: 0.95rem;
306
+ transition: all 0.3s ease;
307
+ box-shadow: 0 4px 15px var(--primary-glow);
308
+ }
309
+
310
+ .link:hover {
311
+ transform: translateY(-2px);
312
+ box-shadow: 0 8px 25px var(--primary-glow);
313
+ }
314
+
315
+ .footer {
316
+ position: fixed;
317
+ bottom: 1.5rem;
318
+ left: 0;
319
+ right: 0;
320
+ text-align: center;
321
+ color: var(--text-secondary);
322
+ font-size: 0.85rem;
323
+ z-index: 10;
324
+ }
325
+
326
+ .footer a {
327
+ color: var(--primary);
328
+ text-decoration: none;
329
+ font-weight: 500;
330
+ }
331
+ </style>
332
+ </head>
333
+ <body>
334
+ <div class="bg-gradient"></div>
335
+
336
+ <div class="container">
337
+ ${logoIconUrl
338
+ ? `<div class="logo"><img src="${logoIconUrl}" alt="${productName} logo"></div>`
339
+ : `<div class="logo default">
340
+ <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
341
+ <path d="M12 2L2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5"/>
342
+ </svg>
343
+ </div>`}
344
+
345
+ <h1>${productName}</h1>
346
+
347
+ <div class="status-badge">
348
+ <div class="status-dot"></div>
349
+ <span class="status-text">Gateway Online</span>
350
+ </div>
351
+
352
+ <div class="links">
353
+ <a href="${controlPanelPath}" class="link">
354
+ <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
355
+ <rect x="3" y="3" width="7" height="7"></rect>
356
+ <rect x="14" y="3" width="7" height="7"></rect>
357
+ <rect x="14" y="14" width="7" height="7"></rect>
358
+ <rect x="3" y="14" width="7" height="7"></rect>
359
+ </svg>
360
+ Control Panel
361
+ </a>
362
+ </div>
363
+ </div>
364
+
365
+ <div class="footer">
366
+ Enterprise Services Powered by <a href="https://qwickapps.com" target="_blank">QwickApps Server</a> - <a href="https://github.com/qwickapps/server" target="_blank">Version ${QWICKAPPS_SERVER_VERSION}</a>
367
+ </div>
368
+ </body>
369
+ </html>`;
370
+ }
371
+ /**
372
+ * Shared CSS styles for status pages (maintenance, service unavailable)
373
+ */
374
+ const statusPageStyles = `
375
+ * { margin: 0; padding: 0; box-sizing: border-box; }
376
+
377
+ :root {
378
+ --bg-dark: #0a0a0f;
379
+ --bg-card: rgba(255, 255, 255, 0.03);
380
+ --text-primary: #f1f5f9;
381
+ --text-secondary: #94a3b8;
382
+ --border-color: rgba(255, 255, 255, 0.08);
383
+ }
384
+
385
+ body {
386
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', sans-serif;
387
+ background: var(--bg-dark);
388
+ color: var(--text-primary);
389
+ min-height: 100vh;
390
+ display: flex;
391
+ align-items: center;
392
+ justify-content: center;
393
+ overflow: hidden;
394
+ }
395
+
396
+ .bg-gradient {
397
+ position: fixed;
398
+ top: 0; left: 0; right: 0; bottom: 0;
399
+ animation: gradientShift 15s ease-in-out infinite;
400
+ }
401
+
402
+ @keyframes gradientShift {
403
+ 0%, 100% { opacity: 1; }
404
+ 50% { opacity: 0.8; }
405
+ }
406
+
407
+ .container {
408
+ position: relative;
409
+ z-index: 10;
410
+ text-align: center;
411
+ max-width: 480px;
412
+ padding: 3rem 2rem;
413
+ }
414
+
415
+ .icon-wrapper {
416
+ width: 100px;
417
+ height: 100px;
418
+ margin: 0 auto 2rem;
419
+ border-radius: 50%;
420
+ display: flex;
421
+ align-items: center;
422
+ justify-content: center;
423
+ animation: iconPulse 3s ease-in-out infinite;
424
+ }
425
+
426
+ @keyframes iconPulse {
427
+ 0%, 100% { transform: scale(1); }
428
+ 50% { transform: scale(1.05); }
429
+ }
430
+
431
+ .icon-wrapper svg {
432
+ width: 48px;
433
+ height: 48px;
434
+ }
435
+
436
+ h1 {
437
+ font-size: 2rem;
438
+ font-weight: 700;
439
+ margin-bottom: 0.75rem;
440
+ }
441
+
442
+ .subtitle {
443
+ color: var(--text-secondary);
444
+ font-size: 1.05rem;
445
+ line-height: 1.6;
446
+ margin-bottom: 2rem;
447
+ }
448
+
449
+ .status-card {
450
+ background: var(--bg-card);
451
+ border: 1px solid var(--border-color);
452
+ border-radius: 16px;
453
+ padding: 1.5rem;
454
+ margin-bottom: 2rem;
455
+ backdrop-filter: blur(10px);
456
+ }
457
+
458
+ .status-row {
459
+ display: flex;
460
+ align-items: center;
461
+ justify-content: center;
462
+ gap: 0.75rem;
463
+ color: var(--text-secondary);
464
+ font-size: 0.95rem;
465
+ }
466
+
467
+ .status-row svg {
468
+ width: 20px;
469
+ height: 20px;
470
+ flex-shrink: 0;
471
+ }
472
+
473
+ .eta-badge {
474
+ display: inline-flex;
475
+ align-items: center;
476
+ gap: 0.5rem;
477
+ padding: 0.75rem 1.25rem;
478
+ background: var(--bg-card);
479
+ border: 1px solid var(--border-color);
480
+ border-radius: 100px;
481
+ font-size: 0.9rem;
482
+ color: var(--text-secondary);
483
+ }
484
+
485
+ .actions {
486
+ display: flex;
487
+ flex-wrap: wrap;
488
+ gap: 1rem;
489
+ justify-content: center;
490
+ margin-top: 2rem;
491
+ }
492
+
493
+ .btn {
494
+ display: inline-flex;
495
+ align-items: center;
496
+ gap: 0.5rem;
497
+ padding: 0.875rem 1.5rem;
498
+ border-radius: 12px;
499
+ font-weight: 500;
500
+ font-size: 0.95rem;
501
+ text-decoration: none;
502
+ transition: all 0.3s ease;
503
+ cursor: pointer;
504
+ border: none;
505
+ }
506
+
507
+ .btn-primary {
508
+ background: var(--accent-color);
509
+ color: white;
510
+ box-shadow: 0 4px 15px var(--accent-glow);
511
+ }
512
+
513
+ .btn-primary:hover {
514
+ transform: translateY(-2px);
515
+ box-shadow: 0 8px 25px var(--accent-glow);
516
+ }
517
+
518
+ .btn-secondary {
519
+ background: var(--bg-card);
520
+ border: 1px solid var(--border-color);
521
+ color: var(--text-primary);
522
+ }
523
+
524
+ .btn-secondary:hover {
525
+ background: rgba(255, 255, 255, 0.08);
526
+ }
527
+
528
+ .footer {
529
+ position: fixed;
530
+ bottom: 1.5rem;
531
+ left: 0;
532
+ right: 0;
533
+ text-align: center;
534
+ color: var(--text-secondary);
535
+ font-size: 0.85rem;
536
+ z-index: 10;
537
+ }
538
+
539
+ @media (max-width: 480px) {
540
+ .container { padding: 2rem 1.5rem; }
541
+ h1 { font-size: 1.5rem; }
542
+ .icon-wrapper { width: 80px; height: 80px; }
543
+ .icon-wrapper svg { width: 40px; height: 40px; }
544
+ }
545
+ `;
546
+ /**
547
+ * Generate a maintenance page HTML
548
+ */
549
+ function generateMaintenancePageHtml(appName, config, productName) {
550
+ const title = config.title || 'Under Maintenance';
551
+ const message = config.message || `${appName} is currently undergoing scheduled maintenance.`;
552
+ let etaHtml = '';
553
+ if (config.expectedBackAt) {
554
+ const eta = config.expectedBackAt;
555
+ if (eta === 'soon') {
556
+ etaHtml = `
557
+ <div class="eta-badge">
558
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
559
+ <circle cx="12" cy="12" r="10"/>
560
+ <path d="M12 6v6l4 2"/>
561
+ </svg>
562
+ Back online soon
563
+ </div>`;
564
+ }
565
+ else if (eta.includes('hour') || eta.includes('minute')) {
566
+ etaHtml = `
567
+ <div class="eta-badge">
568
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
569
+ <circle cx="12" cy="12" r="10"/>
570
+ <path d="M12 6v6l4 2"/>
571
+ </svg>
572
+ Expected back in ${eta}
573
+ </div>`;
574
+ }
575
+ else {
576
+ // ISO date string
577
+ etaHtml = `
578
+ <div class="eta-badge">
579
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
580
+ <circle cx="12" cy="12" r="10"/>
581
+ <path d="M12 6v6l4 2"/>
582
+ </svg>
583
+ <span id="eta-countdown">Calculating...</span>
584
+ </div>
585
+ <script>
586
+ (function() {
587
+ const target = new Date('${eta}');
588
+ const el = document.getElementById('eta-countdown');
589
+ function update() {
590
+ const now = new Date();
591
+ const diff = target - now;
592
+ if (diff <= 0) {
593
+ el.textContent = 'Should be back now';
594
+ setTimeout(() => location.reload(), 5000);
595
+ return;
596
+ }
597
+ const hours = Math.floor(diff / 3600000);
598
+ const mins = Math.floor((diff % 3600000) / 60000);
599
+ if (hours > 0) {
600
+ el.textContent = 'Back in ' + hours + 'h ' + mins + 'm';
601
+ } else {
602
+ el.textContent = 'Back in ' + mins + ' minutes';
603
+ }
604
+ }
605
+ update();
606
+ setInterval(update, 60000);
607
+ })();
608
+ </script>`;
609
+ }
610
+ }
611
+ const contactHtml = config.contactUrl
612
+ ? `<a href="${config.contactUrl}" class="btn btn-secondary">
613
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="18" height="18">
614
+ <path d="M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z"/>
615
+ <polyline points="22,6 12,13 2,6"/>
616
+ </svg>
617
+ Contact Support
618
+ </a>`
619
+ : '';
620
+ return `<!DOCTYPE html>
621
+ <html lang="en">
622
+ <head>
623
+ <meta charset="UTF-8">
624
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
625
+ <title>${title} - ${productName}</title>
626
+ <style>
627
+ ${statusPageStyles}
628
+ :root {
629
+ --accent-color: #f59e0b;
630
+ --accent-glow: rgba(245, 158, 11, 0.3);
631
+ }
632
+ .bg-gradient {
633
+ background:
634
+ radial-gradient(ellipse at 30% 30%, rgba(245, 158, 11, 0.12) 0%, transparent 50%),
635
+ radial-gradient(ellipse at 70% 70%, rgba(234, 179, 8, 0.08) 0%, transparent 50%);
636
+ }
637
+ .icon-wrapper {
638
+ background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
639
+ box-shadow: 0 20px 40px rgba(245, 158, 11, 0.3);
640
+ }
641
+ </style>
642
+ </head>
643
+ <body>
644
+ <div class="bg-gradient"></div>
645
+
646
+ <div class="container">
647
+ <div class="icon-wrapper">
648
+ <svg viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="2">
649
+ <path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"/>
650
+ </svg>
651
+ </div>
652
+
653
+ <h1>${title}</h1>
654
+ <p class="subtitle">${message}</p>
655
+
656
+ <div class="status-card">
657
+ <div class="status-row">
658
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
659
+ <path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/>
660
+ </svg>
661
+ <span>We're performing upgrades to improve your experience</span>
662
+ </div>
663
+ </div>
664
+
665
+ ${etaHtml}
666
+
667
+ <div class="actions">
668
+ <button onclick="location.reload()" class="btn btn-primary">
669
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="18" height="18">
670
+ <path d="M23 4v6h-6"/>
671
+ <path d="M1 20v-6h6"/>
672
+ <path d="M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15"/>
673
+ </svg>
674
+ Check Again
675
+ </button>
676
+ ${contactHtml}
677
+ </div>
678
+ </div>
679
+
680
+ <div class="footer">
681
+ ${productName}
682
+ </div>
683
+ </body>
684
+ </html>`;
685
+ }
686
+ /**
687
+ * Generate a service unavailable page HTML (when proxy fails)
688
+ */
689
+ function generateServiceUnavailablePageHtml(appName, path, config, productName) {
690
+ const title = config?.title || 'Service Unavailable';
691
+ const message = config?.message || `${appName} is temporarily unavailable. Our team has been notified.`;
692
+ const showRetry = config?.showRetry !== false;
693
+ const autoRefresh = config?.autoRefresh ?? 30;
694
+ const autoRefreshScript = autoRefresh > 0
695
+ ? `<script>
696
+ let countdown = ${autoRefresh};
697
+ const el = document.getElementById('refresh-countdown');
698
+ setInterval(() => {
699
+ countdown--;
700
+ if (countdown <= 0) location.reload();
701
+ el.textContent = countdown;
702
+ }, 1000);
703
+ </script>`
704
+ : '';
705
+ const autoRefreshHtml = autoRefresh > 0
706
+ ? `<div class="status-row" style="margin-top: 1rem;">
707
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
708
+ <circle cx="12" cy="12" r="10"/>
709
+ <path d="M12 6v6l4 2"/>
710
+ </svg>
711
+ <span>Auto-refreshing in <strong id="refresh-countdown">${autoRefresh}</strong>s</span>
712
+ </div>`
713
+ : '';
714
+ const retryButtonHtml = showRetry
715
+ ? `<button onclick="location.reload()" class="btn btn-primary">
716
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="18" height="18">
717
+ <path d="M23 4v6h-6"/>
718
+ <path d="M1 20v-6h6"/>
719
+ <path d="M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15"/>
720
+ </svg>
721
+ Try Again
722
+ </button>`
723
+ : '';
724
+ return `<!DOCTYPE html>
725
+ <html lang="en">
726
+ <head>
727
+ <meta charset="UTF-8">
728
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
729
+ <title>${title} - ${productName}</title>
730
+ <style>
731
+ ${statusPageStyles}
732
+ :root {
733
+ --accent-color: #ef4444;
734
+ --accent-glow: rgba(239, 68, 68, 0.3);
735
+ }
736
+ .bg-gradient {
737
+ background:
738
+ radial-gradient(ellipse at 30% 30%, rgba(239, 68, 68, 0.1) 0%, transparent 50%),
739
+ radial-gradient(ellipse at 70% 70%, rgba(220, 38, 38, 0.08) 0%, transparent 50%);
740
+ }
741
+ .icon-wrapper {
742
+ background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
743
+ box-shadow: 0 20px 40px rgba(239, 68, 68, 0.3);
744
+ }
745
+ </style>
746
+ </head>
747
+ <body>
748
+ <div class="bg-gradient"></div>
749
+
750
+ <div class="container">
751
+ <div class="icon-wrapper">
752
+ <svg viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="2">
753
+ <circle cx="12" cy="12" r="10"/>
754
+ <line x1="12" y1="8" x2="12" y2="12"/>
755
+ <line x1="12" y1="16" x2="12.01" y2="16"/>
756
+ </svg>
757
+ </div>
758
+
759
+ <h1>${title}</h1>
760
+ <p class="subtitle">${message}</p>
761
+
762
+ <div class="status-card">
763
+ <div class="status-row">
764
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
765
+ <rect x="2" y="2" width="20" height="8" rx="2" ry="2"/>
766
+ <rect x="2" y="14" width="20" height="8" rx="2" ry="2"/>
767
+ <line x1="6" y1="6" x2="6.01" y2="6"/>
768
+ <line x1="6" y1="18" x2="6.01" y2="18"/>
769
+ </svg>
770
+ <span>The service at <code style="background: rgba(255,255,255,0.1); padding: 0.2rem 0.4rem; border-radius: 4px;">${path}</code> is not responding</span>
771
+ </div>
772
+ ${autoRefreshHtml}
773
+ </div>
774
+
775
+ <div class="actions">
776
+ ${retryButtonHtml}
777
+ <a href="/" class="btn btn-secondary">
778
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="18" height="18">
779
+ <path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/>
780
+ <polyline points="9,22 9,12 15,12 15,22"/>
781
+ </svg>
782
+ Go Home
783
+ </a>
784
+ </div>
785
+ </div>
786
+
787
+ <div class="footer">
788
+ ${productName}
789
+ </div>
790
+ ${autoRefreshScript}
791
+ </body>
792
+ </html>`;
793
+ }
794
+ /**
795
+ * Create a gateway that proxies to multiple internal services
796
+ *
797
+ * @param config - Gateway configuration
798
+ * @returns Gateway instance
799
+ *
800
+ * @example
801
+ * ```typescript
802
+ * import { createGateway } from '@qwickapps/server';
803
+ *
804
+ * const gateway = createGateway({
805
+ * productName: 'My Product',
806
+ * port: 3000,
807
+ * controlPanel: {
808
+ * path: '/cpanel',
809
+ * port: 3001,
810
+ * plugins: [...],
811
+ * },
812
+ * apps: [
813
+ * { path: '/api', source: { type: 'proxy', target: 'http://localhost:3002' } },
814
+ * { path: '/docs', source: { type: 'static', directory: './docs' } },
815
+ * ],
816
+ * });
817
+ *
818
+ * await gateway.start();
819
+ * ```
820
+ */
821
+ export function createGateway(config) {
822
+ // Initialize logging (side effect - subsystem is initialized globally)
823
+ initializeLogging({
824
+ namespace: config.productName,
825
+ ...config.logging,
826
+ });
827
+ const logger = config.logger || getControlPanelLogger('Gateway');
828
+ // Port configuration - new scheme: 3000 gateway, 3001 cpanel, 3002+ apps
829
+ const gatewayPort = config.port || parseInt(process.env.GATEWAY_PORT || process.env.PORT || '3000', 10);
830
+ const nodeEnv = process.env.NODE_ENV || 'development';
831
+ const version = config.version || process.env.npm_package_version || '1.0.0';
832
+ // Control panel configuration
833
+ const cpConfig = config.controlPanel ?? { enabled: true };
834
+ const cpEnabled = cpConfig.enabled !== false;
835
+ const cpPath = cpConfig.path || '/cpanel';
836
+ const cpPort = cpConfig.port || 3001;
837
+ // Create gateway Express app
838
+ const app = express();
839
+ let server = null;
840
+ let controlPanelInstance = null;
841
+ const mountedApps = [];
842
+ /**
843
+ * Setup proxy middleware for an app
844
+ */
845
+ const setupProxyApp = (appConfig, httpServer) => {
846
+ const { path, source, stripPrefix = true, name, maintenance, fallback } = appConfig;
847
+ if (source.type !== 'proxy')
848
+ return;
849
+ const appName = name || path.replace(/^\//, '') || 'Service';
850
+ logger.debug(`Setting up proxy: ${path} -> ${source.target}`);
851
+ // Maintenance mode middleware - intercepts all requests when enabled
852
+ if (maintenance?.enabled) {
853
+ logger.info(`Maintenance mode enabled for ${path}`);
854
+ app.use(path, (req, res, next) => {
855
+ // Check bypass paths
856
+ if (maintenance.bypassPaths?.some(bp => req.path.startsWith(bp))) {
857
+ return next();
858
+ }
859
+ const html = generateMaintenancePageHtml(appName, maintenance, config.productName);
860
+ res.status(503).type('html').send(html);
861
+ });
862
+ mountedApps.push({ path, type: 'proxy', target: source.target });
863
+ return; // Don't setup proxy when in maintenance mode
864
+ }
865
+ const proxyOptions = {
866
+ target: source.target,
867
+ changeOrigin: true,
868
+ ws: source.ws ?? false,
869
+ pathRewrite: stripPrefix ? { [`^${path}`]: '' } : undefined,
870
+ on: {
871
+ proxyReq: (proxyReq) => {
872
+ // Add X-Forwarded headers so app knows its mounted path
873
+ proxyReq.setHeader('X-Forwarded-Prefix', path);
874
+ },
875
+ error: (err, req, res) => {
876
+ logger.error(`Proxy error for ${path}`, { error: err.message });
877
+ if (res && 'writeHead' in res && !res.headersSent) {
878
+ // Check if this looks like an API request (Accept: application/json or /api/ path)
879
+ const acceptHeader = req.headers['accept'] || '';
880
+ const isApiRequest = acceptHeader.includes('application/json') || req.url?.includes('/api/');
881
+ if (isApiRequest) {
882
+ // Return JSON error for API requests
883
+ res.writeHead(503, { 'Content-Type': 'application/json' });
884
+ res.end(JSON.stringify({
885
+ error: 'Service Unavailable',
886
+ message: `The service at ${path} is currently unavailable.`,
887
+ details: nodeEnv === 'development' ? err.message : undefined,
888
+ }));
889
+ }
890
+ else {
891
+ // Return beautiful HTML page for browser requests
892
+ const html = generateServiceUnavailablePageHtml(appName, path, fallback, config.productName);
893
+ res.writeHead(503, { 'Content-Type': 'text/html' });
894
+ res.end(html);
895
+ }
896
+ }
897
+ },
898
+ },
899
+ };
900
+ const proxy = createProxyMiddleware(proxyOptions);
901
+ // Mount proxy
902
+ app.use(path, proxy);
903
+ // WebSocket upgrade handling
904
+ if (source.ws && httpServer) {
905
+ httpServer.on('upgrade', (req, socket, head) => {
906
+ if (req.url?.startsWith(path)) {
907
+ proxy.upgrade?.(req, socket, head);
908
+ }
909
+ });
910
+ }
911
+ mountedApps.push({ path, type: 'proxy', target: source.target });
912
+ };
913
+ /**
914
+ * Setup static file serving for an app
915
+ */
916
+ const setupStaticApp = (appConfig) => {
917
+ const { path, source } = appConfig;
918
+ if (source.type !== 'static')
919
+ return;
920
+ logger.debug(`Setting up static: ${path} -> ${source.directory}`);
921
+ if (!existsSync(source.directory)) {
922
+ logger.warn(`Static directory not found: ${source.directory}`);
923
+ return;
924
+ }
925
+ // Serve static files
926
+ app.use(path, express.static(source.directory, { index: false }));
927
+ // SPA fallback
928
+ if (source.spa) {
929
+ const indexPath = join(source.directory, 'index.html');
930
+ // Read and cache index.html with path rewriting
931
+ let cachedHtml = null;
932
+ const getIndexHtml = () => {
933
+ if (cachedHtml)
934
+ return cachedHtml;
935
+ let html = readFileSync(indexPath, 'utf-8');
936
+ // Rewrite asset paths for non-root mount
937
+ if (path !== '/') {
938
+ html = html.replace(/src="\/assets\//g, `src="${path}/assets/`);
939
+ html = html.replace(/href="\/assets\//g, `href="${path}/assets/`);
940
+ }
941
+ cachedHtml = html;
942
+ return html;
943
+ };
944
+ app.get(`${path}/*`, (_req, res) => {
945
+ res.type('html').send(getIndexHtml());
946
+ });
947
+ if (path !== '/') {
948
+ app.get(path, (_req, res) => {
949
+ res.type('html').send(getIndexHtml());
950
+ });
951
+ }
952
+ }
953
+ mountedApps.push({ path, type: 'static' });
954
+ };
955
+ /**
956
+ * Setup frontend app at root path
957
+ */
958
+ const setupFrontendApp = () => {
959
+ const { frontendApp, logoIconUrl } = config;
960
+ // Default landing page
961
+ if (!frontendApp) {
962
+ logger.debug('Frontend: Serving default landing page');
963
+ app.get('/', (_req, res) => {
964
+ const html = generateDefaultLandingPageHtml(config.productName, cpPath, logoIconUrl);
965
+ res.type('html').send(html);
966
+ });
967
+ return;
968
+ }
969
+ const { redirectUrl, staticPath, landingPage } = frontendApp;
970
+ // Priority 1: Redirect
971
+ if (redirectUrl) {
972
+ logger.debug(`Frontend: Redirecting / to ${redirectUrl}`);
973
+ app.get('/', (_req, res) => res.redirect(redirectUrl));
974
+ return;
975
+ }
976
+ // Priority 2: Static files
977
+ if (staticPath && existsSync(staticPath)) {
978
+ logger.debug(`Frontend: Serving static from ${staticPath}`);
979
+ app.use('/', express.static(staticPath));
980
+ app.get('/', (_req, res) => {
981
+ res.sendFile(resolve(staticPath, 'index.html'));
982
+ });
983
+ return;
984
+ }
985
+ // Priority 3: Landing page
986
+ if (landingPage) {
987
+ logger.debug('Frontend: Serving custom landing page');
988
+ app.get('/', (_req, res) => {
989
+ const html = generateLandingPageHtml(landingPage, cpPath);
990
+ res.type('html').send(html);
991
+ });
992
+ }
993
+ };
994
+ /**
995
+ * Start the gateway
996
+ */
997
+ const start = async () => {
998
+ logger.debug('Starting gateway...');
999
+ // 1. Start internal control panel if enabled
1000
+ if (cpEnabled) {
1001
+ logger.debug(`Starting control panel on port ${cpPort}...`);
1002
+ controlPanelInstance = createControlPanel({
1003
+ config: {
1004
+ productName: config.productName,
1005
+ port: cpPort,
1006
+ version,
1007
+ logoIconUrl: config.logoIconUrl,
1008
+ branding: config.branding,
1009
+ cors: config.corsOrigins ? { origins: config.corsOrigins } : undefined,
1010
+ mountPath: '/', // Control panel runs at / internally
1011
+ guard: cpConfig.guard,
1012
+ customUiPath: cpConfig.customUiPath,
1013
+ links: cpConfig.links,
1014
+ },
1015
+ plugins: cpConfig.plugins || [],
1016
+ logger,
1017
+ });
1018
+ await controlPanelInstance.start();
1019
+ logger.debug(`Control panel started on port ${cpPort}`);
1020
+ }
1021
+ // 2. Create HTTP server
1022
+ server = app.listen(gatewayPort);
1023
+ // 3. Setup mounted apps (proxy and static)
1024
+ const apps = config.apps || [];
1025
+ // Add control panel as a proxy app if enabled
1026
+ if (cpEnabled) {
1027
+ setupProxyApp({
1028
+ path: cpPath,
1029
+ source: { type: 'proxy', target: `http://localhost:${cpPort}` },
1030
+ }, server);
1031
+ }
1032
+ // Setup additional apps
1033
+ for (const appConfig of apps) {
1034
+ if (appConfig.source.type === 'proxy') {
1035
+ setupProxyApp(appConfig, server);
1036
+ }
1037
+ else {
1038
+ setupStaticApp(appConfig);
1039
+ }
1040
+ }
1041
+ // 4. Setup frontend app at root
1042
+ setupFrontendApp();
1043
+ // Log startup info
1044
+ const authInfo = cpConfig.guard?.type === 'basic'
1045
+ ? `(auth: ${cpConfig.guard.username})`
1046
+ : cpConfig.guard?.type && cpConfig.guard.type !== 'none'
1047
+ ? `(auth: ${cpConfig.guard.type})`
1048
+ : '(no auth)';
1049
+ logger.info(`${config.productName} gateway started on port ${gatewayPort} ${authInfo}`);
1050
+ // Log mounted apps
1051
+ for (const mounted of mountedApps) {
1052
+ if (mounted.type === 'proxy') {
1053
+ logger.debug(` ${mounted.path}/* -> ${mounted.target}`);
1054
+ }
1055
+ else {
1056
+ logger.debug(` ${mounted.path}/* -> [static]`);
1057
+ }
1058
+ }
1059
+ };
1060
+ /**
1061
+ * Stop the gateway
1062
+ */
1063
+ const stop = async () => {
1064
+ logger.debug('Shutting down gateway...');
1065
+ // Stop control panel
1066
+ if (controlPanelInstance) {
1067
+ await controlPanelInstance.stop();
1068
+ }
1069
+ // Stop gateway server
1070
+ if (server) {
1071
+ await new Promise((resolve) => server.close(() => resolve()));
1072
+ }
1073
+ logger.debug('Gateway shutdown complete');
1074
+ };
1075
+ return {
1076
+ app,
1077
+ server,
1078
+ controlPanel: controlPanelInstance,
1079
+ mountedApps,
1080
+ start,
1081
+ stop,
1082
+ port: gatewayPort,
1083
+ };
1084
+ }
1085
+ //# sourceMappingURL=gateway.js.map