@qwickapps/server 1.7.1 → 1.8.0

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 (259) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/dist/src/core/control-panel.js +5 -5
  3. package/dist/src/core/control-panel.js.map +1 -1
  4. package/dist/src/core/gateway.d.ts.map +1 -1
  5. package/dist/src/core/gateway.js +117 -15
  6. package/dist/src/core/gateway.js.map +1 -1
  7. package/dist/src/core/plugin-registry.d.ts +70 -0
  8. package/dist/src/core/plugin-registry.d.ts.map +1 -1
  9. package/dist/src/core/plugin-registry.js +94 -0
  10. package/dist/src/core/plugin-registry.js.map +1 -1
  11. package/dist/src/index.d.ts +1 -1
  12. package/dist/src/index.d.ts.map +1 -1
  13. package/dist/src/plugins/api-keys/api-keys-plugin.d.ts +5 -2
  14. package/dist/src/plugins/api-keys/api-keys-plugin.d.ts.map +1 -1
  15. package/dist/src/plugins/api-keys/api-keys-plugin.js +113 -19
  16. package/dist/src/plugins/api-keys/api-keys-plugin.js.map +1 -1
  17. package/dist/src/plugins/api-keys/index.d.ts +1 -5
  18. package/dist/src/plugins/api-keys/index.d.ts.map +1 -1
  19. package/dist/src/plugins/api-keys/index.js +2 -3
  20. package/dist/src/plugins/api-keys/index.js.map +1 -1
  21. package/dist/src/plugins/api-keys/stores/postgres-store.d.ts.map +1 -1
  22. package/dist/src/plugins/api-keys/stores/postgres-store.js +83 -65
  23. package/dist/src/plugins/api-keys/stores/postgres-store.js.map +1 -1
  24. package/dist/src/plugins/api-keys/types.d.ts +22 -4
  25. package/dist/src/plugins/api-keys/types.d.ts.map +1 -1
  26. package/dist/src/plugins/api-keys/types.js.map +1 -1
  27. package/dist/src/plugins/auth/index.d.ts +0 -4
  28. package/dist/src/plugins/auth/index.d.ts.map +1 -1
  29. package/dist/src/plugins/auth/index.js +2 -3
  30. package/dist/src/plugins/auth/index.js.map +1 -1
  31. package/dist/src/plugins/bans/bans-plugin.d.ts +5 -2
  32. package/dist/src/plugins/bans/bans-plugin.d.ts.map +1 -1
  33. package/dist/src/plugins/bans/bans-plugin.js +71 -25
  34. package/dist/src/plugins/bans/bans-plugin.js.map +1 -1
  35. package/dist/src/plugins/bans/index.d.ts +0 -4
  36. package/dist/src/plugins/bans/index.d.ts.map +1 -1
  37. package/dist/src/plugins/bans/index.js +2 -3
  38. package/dist/src/plugins/bans/index.js.map +1 -1
  39. package/dist/src/plugins/bans/types.d.ts +13 -6
  40. package/dist/src/plugins/bans/types.d.ts.map +1 -1
  41. package/dist/src/plugins/devices/devices-plugin.d.ts +5 -2
  42. package/dist/src/plugins/devices/devices-plugin.d.ts.map +1 -1
  43. package/dist/src/plugins/devices/devices-plugin.js +62 -26
  44. package/dist/src/plugins/devices/devices-plugin.js.map +1 -1
  45. package/dist/src/plugins/devices/index.d.ts +0 -4
  46. package/dist/src/plugins/devices/index.d.ts.map +1 -1
  47. package/dist/src/plugins/devices/index.js +2 -3
  48. package/dist/src/plugins/devices/index.js.map +1 -1
  49. package/dist/src/plugins/diagnostics-plugin.d.ts.map +1 -1
  50. package/dist/src/plugins/diagnostics-plugin.js +73 -0
  51. package/dist/src/plugins/diagnostics-plugin.js.map +1 -1
  52. package/dist/src/plugins/entitlements/entitlements-plugin.d.ts +5 -2
  53. package/dist/src/plugins/entitlements/entitlements-plugin.d.ts.map +1 -1
  54. package/dist/src/plugins/entitlements/entitlements-plugin.js +78 -41
  55. package/dist/src/plugins/entitlements/entitlements-plugin.js.map +1 -1
  56. package/dist/src/plugins/entitlements/index.d.ts +0 -4
  57. package/dist/src/plugins/entitlements/index.d.ts.map +1 -1
  58. package/dist/src/plugins/entitlements/index.js +2 -3
  59. package/dist/src/plugins/entitlements/index.js.map +1 -1
  60. package/dist/src/plugins/entitlements/types.d.ts +9 -2
  61. package/dist/src/plugins/entitlements/types.d.ts.map +1 -1
  62. package/dist/src/plugins/index.d.ts +1 -1
  63. package/dist/src/plugins/index.d.ts.map +1 -1
  64. package/dist/src/plugins/maintenance/SeedExecutor.d.ts +2 -0
  65. package/dist/src/plugins/maintenance/SeedExecutor.d.ts.map +1 -1
  66. package/dist/src/plugins/maintenance/SeedExecutor.js +6 -2
  67. package/dist/src/plugins/maintenance/SeedExecutor.js.map +1 -1
  68. package/dist/src/plugins/maintenance/SeedList.d.ts +2 -2
  69. package/dist/src/plugins/maintenance/SeedList.d.ts.map +1 -1
  70. package/dist/src/plugins/maintenance/SeedList.js +39 -14
  71. package/dist/src/plugins/maintenance/SeedList.js.map +1 -1
  72. package/dist/src/plugins/maintenance/SeedManagementPage.d.ts +1 -1
  73. package/dist/src/plugins/maintenance/SeedManagementPage.d.ts.map +1 -1
  74. package/dist/src/plugins/maintenance/SeedManagementPage.js +9 -5
  75. package/dist/src/plugins/maintenance/SeedManagementPage.js.map +1 -1
  76. package/dist/src/plugins/maintenance/seed-executor.d.ts +6 -4
  77. package/dist/src/plugins/maintenance/seed-executor.d.ts.map +1 -1
  78. package/dist/src/plugins/maintenance/seed-executor.js +53 -17
  79. package/dist/src/plugins/maintenance/seed-executor.js.map +1 -1
  80. package/dist/src/plugins/maintenance-plugin.d.ts +24 -0
  81. package/dist/src/plugins/maintenance-plugin.d.ts.map +1 -1
  82. package/dist/src/plugins/maintenance-plugin.js +222 -34
  83. package/dist/src/plugins/maintenance-plugin.js.map +1 -1
  84. package/dist/src/plugins/notifications/index.d.ts +0 -4
  85. package/dist/src/plugins/notifications/index.d.ts.map +1 -1
  86. package/dist/src/plugins/notifications/index.js +2 -3
  87. package/dist/src/plugins/notifications/index.js.map +1 -1
  88. package/dist/src/plugins/notifications/notifications-plugin.d.ts +5 -2
  89. package/dist/src/plugins/notifications/notifications-plugin.d.ts.map +1 -1
  90. package/dist/src/plugins/notifications/notifications-plugin.js +45 -13
  91. package/dist/src/plugins/notifications/notifications-plugin.js.map +1 -1
  92. package/dist/src/plugins/parental/index.d.ts +0 -4
  93. package/dist/src/plugins/parental/index.d.ts.map +1 -1
  94. package/dist/src/plugins/parental/index.js +2 -3
  95. package/dist/src/plugins/parental/index.js.map +1 -1
  96. package/dist/src/plugins/parental/parental-plugin.d.ts +5 -2
  97. package/dist/src/plugins/parental/parental-plugin.d.ts.map +1 -1
  98. package/dist/src/plugins/parental/parental-plugin.js +60 -24
  99. package/dist/src/plugins/parental/parental-plugin.js.map +1 -1
  100. package/dist/src/plugins/postgres-plugin.d.ts +12 -0
  101. package/dist/src/plugins/postgres-plugin.d.ts.map +1 -1
  102. package/dist/src/plugins/postgres-plugin.js +319 -5
  103. package/dist/src/plugins/postgres-plugin.js.map +1 -1
  104. package/dist/src/plugins/preferences/index.d.ts +0 -4
  105. package/dist/src/plugins/preferences/index.d.ts.map +1 -1
  106. package/dist/src/plugins/preferences/index.js +2 -3
  107. package/dist/src/plugins/preferences/index.js.map +1 -1
  108. package/dist/src/plugins/preferences/preferences-plugin.d.ts +5 -2
  109. package/dist/src/plugins/preferences/preferences-plugin.d.ts.map +1 -1
  110. package/dist/src/plugins/preferences/preferences-plugin.js +63 -19
  111. package/dist/src/plugins/preferences/preferences-plugin.js.map +1 -1
  112. package/dist/src/plugins/profiles/index.d.ts +0 -4
  113. package/dist/src/plugins/profiles/index.d.ts.map +1 -1
  114. package/dist/src/plugins/profiles/index.js +2 -3
  115. package/dist/src/plugins/profiles/index.js.map +1 -1
  116. package/dist/src/plugins/profiles/profiles-plugin.d.ts +5 -2
  117. package/dist/src/plugins/profiles/profiles-plugin.d.ts.map +1 -1
  118. package/dist/src/plugins/profiles/profiles-plugin.js +60 -26
  119. package/dist/src/plugins/profiles/profiles-plugin.js.map +1 -1
  120. package/dist/src/plugins/profiles/types.d.ts +9 -2
  121. package/dist/src/plugins/profiles/types.d.ts.map +1 -1
  122. package/dist/src/plugins/qwickbrain/index.d.ts +0 -4
  123. package/dist/src/plugins/qwickbrain/index.d.ts.map +1 -1
  124. package/dist/src/plugins/qwickbrain/index.js +2 -3
  125. package/dist/src/plugins/qwickbrain/index.js.map +1 -1
  126. package/dist/src/plugins/qwickbrain/qwickbrain-plugin.d.ts.map +1 -1
  127. package/dist/src/plugins/qwickbrain/qwickbrain-plugin.js +117 -0
  128. package/dist/src/plugins/qwickbrain/qwickbrain-plugin.js.map +1 -1
  129. package/dist/src/plugins/rate-limit/index.d.ts +0 -4
  130. package/dist/src/plugins/rate-limit/index.d.ts.map +1 -1
  131. package/dist/src/plugins/rate-limit/index.js +2 -3
  132. package/dist/src/plugins/rate-limit/index.js.map +1 -1
  133. package/dist/src/plugins/subscriptions/index.d.ts +0 -4
  134. package/dist/src/plugins/subscriptions/index.d.ts.map +1 -1
  135. package/dist/src/plugins/subscriptions/index.js +2 -3
  136. package/dist/src/plugins/subscriptions/index.js.map +1 -1
  137. package/dist/src/plugins/subscriptions/subscriptions-plugin.d.ts +5 -2
  138. package/dist/src/plugins/subscriptions/subscriptions-plugin.d.ts.map +1 -1
  139. package/dist/src/plugins/subscriptions/subscriptions-plugin.js +63 -29
  140. package/dist/src/plugins/subscriptions/subscriptions-plugin.js.map +1 -1
  141. package/dist/src/plugins/subscriptions/types.d.ts +8 -2
  142. package/dist/src/plugins/subscriptions/types.d.ts.map +1 -1
  143. package/dist/src/plugins/tenants/tenants-plugin.d.ts +5 -2
  144. package/dist/src/plugins/tenants/tenants-plugin.d.ts.map +1 -1
  145. package/dist/src/plugins/tenants/tenants-plugin.js +91 -58
  146. package/dist/src/plugins/tenants/tenants-plugin.js.map +1 -1
  147. package/dist/src/plugins/tenants/types.d.ts +8 -2
  148. package/dist/src/plugins/tenants/types.d.ts.map +1 -1
  149. package/dist/src/plugins/usage/index.d.ts +0 -4
  150. package/dist/src/plugins/usage/index.d.ts.map +1 -1
  151. package/dist/src/plugins/usage/index.js +2 -3
  152. package/dist/src/plugins/usage/index.js.map +1 -1
  153. package/dist/src/plugins/usage/usage-plugin.d.ts +5 -2
  154. package/dist/src/plugins/usage/usage-plugin.d.ts.map +1 -1
  155. package/dist/src/plugins/usage/usage-plugin.js +57 -23
  156. package/dist/src/plugins/usage/usage-plugin.js.map +1 -1
  157. package/dist/src/plugins/users/types.d.ts +7 -2
  158. package/dist/src/plugins/users/types.d.ts.map +1 -1
  159. package/dist/src/plugins/users/users-plugin.d.ts +5 -2
  160. package/dist/src/plugins/users/users-plugin.d.ts.map +1 -1
  161. package/dist/src/plugins/users/users-plugin.js +56 -23
  162. package/dist/src/plugins/users/users-plugin.js.map +1 -1
  163. package/dist/ui/src/components/ControlPanelApp.d.ts.map +1 -1
  164. package/dist/ui/src/components/ControlPanelApp.js +4 -3
  165. package/dist/ui/src/components/ControlPanelApp.js.map +1 -1
  166. package/dist/ui/src/dashboard/builtInWidgets.d.ts.map +1 -1
  167. package/dist/ui/src/dashboard/builtInWidgets.js +3 -1
  168. package/dist/ui/src/dashboard/builtInWidgets.js.map +1 -1
  169. package/dist/ui/src/dashboard/widgets/CMSMaintenanceWidget.d.ts.map +1 -1
  170. package/dist/ui/src/dashboard/widgets/CMSMaintenanceWidget.js +17 -4
  171. package/dist/ui/src/dashboard/widgets/CMSMaintenanceWidget.js.map +1 -1
  172. package/dist/ui/src/dashboard/widgets/CMSStatusWidget.d.ts.map +1 -1
  173. package/dist/ui/src/dashboard/widgets/CMSStatusWidget.js +5 -1
  174. package/dist/ui/src/dashboard/widgets/CMSStatusWidget.js.map +1 -1
  175. package/dist/ui/src/dashboard/widgets/CacheMaintenanceWidget.d.ts.map +1 -1
  176. package/dist/ui/src/dashboard/widgets/CacheMaintenanceWidget.js +4 -2
  177. package/dist/ui/src/dashboard/widgets/CacheMaintenanceWidget.js.map +1 -1
  178. package/dist/ui/src/dashboard/widgets/DatabaseOperationsWidget.d.ts +12 -0
  179. package/dist/ui/src/dashboard/widgets/DatabaseOperationsWidget.d.ts.map +1 -0
  180. package/dist/ui/src/dashboard/widgets/DatabaseOperationsWidget.js +174 -0
  181. package/dist/ui/src/dashboard/widgets/DatabaseOperationsWidget.js.map +1 -0
  182. package/dist/ui/src/dashboard/widgets/LogsMaintenanceWidget.d.ts.map +1 -1
  183. package/dist/ui/src/dashboard/widgets/LogsMaintenanceWidget.js +6 -3
  184. package/dist/ui/src/dashboard/widgets/LogsMaintenanceWidget.js.map +1 -1
  185. package/dist/ui/src/dashboard/widgets/SeedManagementWidget.d.ts +1 -1
  186. package/dist/ui/src/dashboard/widgets/SeedManagementWidget.d.ts.map +1 -1
  187. package/dist/ui/src/dashboard/widgets/SeedManagementWidget.js +256 -16
  188. package/dist/ui/src/dashboard/widgets/SeedManagementWidget.js.map +1 -1
  189. package/dist/ui/src/dashboard/widgets/index.d.ts +1 -0
  190. package/dist/ui/src/dashboard/widgets/index.d.ts.map +1 -1
  191. package/dist/ui/src/dashboard/widgets/index.js +1 -0
  192. package/dist/ui/src/dashboard/widgets/index.js.map +1 -1
  193. package/dist-ui/assets/index-BkGp7ZKd.js +529 -0
  194. package/dist-ui/assets/index-BkGp7ZKd.js.map +1 -0
  195. package/dist-ui/index.html +1 -1
  196. package/dist-ui-lib/index.js +3735 -3187
  197. package/dist-ui-lib/index.js.map +1 -1
  198. package/dist-ui-lib/src/dashboard/widgets/DatabaseOperationsWidget.d.ts +11 -0
  199. package/dist-ui-lib/src/dashboard/widgets/SeedManagementWidget.d.ts +1 -1
  200. package/dist-ui-lib/src/dashboard/widgets/index.d.ts +1 -0
  201. package/package.json +8 -5
  202. package/src/core/control-panel.ts +5 -5
  203. package/src/core/gateway.ts +135 -15
  204. package/src/core/plugin-registry.ts +171 -0
  205. package/src/index.ts +2 -0
  206. package/src/plugins/api-keys/api-keys-plugin.ts +121 -20
  207. package/src/plugins/api-keys/index.ts +3 -5
  208. package/src/plugins/api-keys/stores/postgres-store.ts +90 -67
  209. package/src/plugins/api-keys/types.ts +23 -4
  210. package/src/plugins/auth/index.ts +3 -5
  211. package/src/plugins/bans/bans-plugin.ts +71 -26
  212. package/src/plugins/bans/index.ts +3 -5
  213. package/src/plugins/bans/types.ts +13 -6
  214. package/src/plugins/devices/devices-plugin.ts +62 -27
  215. package/src/plugins/devices/index.ts +3 -5
  216. package/src/plugins/diagnostics-plugin.ts +77 -0
  217. package/src/plugins/entitlements/entitlements-plugin.ts +81 -43
  218. package/src/plugins/entitlements/index.ts +3 -5
  219. package/src/plugins/entitlements/types.ts +9 -2
  220. package/src/plugins/index.ts +1 -1
  221. package/src/plugins/maintenance/SeedExecutor.tsx +9 -1
  222. package/src/plugins/maintenance/SeedList.tsx +85 -38
  223. package/src/plugins/maintenance/SeedManagementPage.tsx +10 -4
  224. package/src/plugins/maintenance/seed-executor.ts +56 -17
  225. package/src/plugins/maintenance-plugin.ts +267 -36
  226. package/src/plugins/notifications/index.ts +3 -5
  227. package/src/plugins/notifications/notifications-plugin.ts +48 -19
  228. package/src/plugins/parental/index.ts +3 -5
  229. package/src/plugins/parental/parental-plugin.ts +63 -25
  230. package/src/plugins/postgres-plugin.ts +410 -5
  231. package/src/plugins/preferences/index.ts +3 -5
  232. package/src/plugins/preferences/preferences-plugin.ts +66 -20
  233. package/src/plugins/profiles/index.ts +3 -5
  234. package/src/plugins/profiles/profiles-plugin.ts +60 -27
  235. package/src/plugins/profiles/types.ts +9 -2
  236. package/src/plugins/qwickbrain/index.ts +3 -5
  237. package/src/plugins/qwickbrain/qwickbrain-plugin.ts +135 -0
  238. package/src/plugins/rate-limit/index.ts +3 -5
  239. package/src/plugins/subscriptions/index.ts +3 -5
  240. package/src/plugins/subscriptions/subscriptions-plugin.ts +63 -30
  241. package/src/plugins/subscriptions/types.ts +8 -2
  242. package/src/plugins/tenants/tenants-plugin.ts +95 -60
  243. package/src/plugins/tenants/types.ts +8 -2
  244. package/src/plugins/usage/index.ts +3 -5
  245. package/src/plugins/usage/usage-plugin.ts +60 -26
  246. package/src/plugins/users/types.ts +7 -2
  247. package/src/plugins/users/users-plugin.ts +56 -24
  248. package/ui/src/App.tsx +3 -3
  249. package/ui/src/components/ControlPanelApp.tsx +4 -3
  250. package/ui/src/dashboard/builtInWidgets.tsx +3 -0
  251. package/ui/src/dashboard/widgets/CMSMaintenanceWidget.tsx +17 -4
  252. package/ui/src/dashboard/widgets/CMSStatusWidget.tsx +5 -1
  253. package/ui/src/dashboard/widgets/CacheMaintenanceWidget.tsx +4 -2
  254. package/ui/src/dashboard/widgets/DatabaseOperationsWidget.tsx +410 -0
  255. package/ui/src/dashboard/widgets/LogsMaintenanceWidget.tsx +6 -3
  256. package/ui/src/dashboard/widgets/SeedManagementWidget.tsx +533 -49
  257. package/ui/src/dashboard/widgets/index.ts +1 -0
  258. package/dist-ui/assets/index-8y0jDGcd.js +0 -528
  259. package/dist-ui/assets/index-8y0jDGcd.js.map +0 -1
@@ -49,6 +49,85 @@ import pg from 'pg';
49
49
  const { Pool } = pg;
50
50
  // Global registry of PostgreSQL instances by name
51
51
  const instances = new Map();
52
+ /**
53
+ * Parse database connection URL to extract components
54
+ */
55
+ function parseConnectionUrl(url) {
56
+ const match = url.match(/postgresql:\/\/([^:]+):([^@]+)@([^:]+):(\d+)\/(.+)/);
57
+ if (!match) {
58
+ throw new Error('Invalid PostgreSQL connection URL format');
59
+ }
60
+ return {
61
+ user: match[1],
62
+ password: match[2],
63
+ host: match[3],
64
+ port: parseInt(match[4], 10),
65
+ database: match[5],
66
+ };
67
+ }
68
+ /**
69
+ * Helper to create an admin pool for database operations
70
+ */
71
+ function createAdminPool(config) {
72
+ return new Pool({
73
+ user: config.adminUser,
74
+ password: config.adminPassword,
75
+ host: config.host,
76
+ port: config.port,
77
+ database: config.adminDatabase || 'postgres',
78
+ max: 1,
79
+ idleTimeoutMillis: 5000,
80
+ connectionTimeoutMillis: 5000,
81
+ });
82
+ }
83
+ /**
84
+ * Ensure database user exists with password
85
+ */
86
+ async function ensureUserExists(adminPool, user, password) {
87
+ const result = await adminPool.query(`SELECT 1 FROM pg_roles WHERE rolname = $1`, [user]);
88
+ if (result.rows.length === 0) {
89
+ await adminPool.query(`CREATE USER ${user} WITH PASSWORD '${password}'`);
90
+ }
91
+ else {
92
+ await adminPool.query(`ALTER USER ${user} WITH PASSWORD '${password}'`);
93
+ }
94
+ }
95
+ /**
96
+ * Ensure database exists with correct owner
97
+ */
98
+ async function ensureDatabaseExists(adminPool, database, owner) {
99
+ const result = await adminPool.query(`SELECT 1 FROM pg_database WHERE datname = $1`, [database]);
100
+ if (result.rows.length === 0) {
101
+ await adminPool.query(`CREATE DATABASE ${database} OWNER ${owner}`);
102
+ }
103
+ }
104
+ /**
105
+ * Grant all permissions to user on database
106
+ */
107
+ async function grantPermissions(adminPool, database, user) {
108
+ const tempPool = new Pool({
109
+ user: adminPool.options.user,
110
+ password: adminPool.options.password,
111
+ host: adminPool.options.host,
112
+ port: adminPool.options.port,
113
+ database,
114
+ max: 1,
115
+ idleTimeoutMillis: 5000,
116
+ connectionTimeoutMillis: 5000,
117
+ });
118
+ try {
119
+ await tempPool.query(`
120
+ GRANT ALL ON SCHEMA public TO ${user};
121
+ GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO ${user};
122
+ GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO ${user};
123
+ ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON TABLES TO ${user};
124
+ ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON SEQUENCES TO ${user};
125
+ `);
126
+ }
127
+ finally {
128
+ await tempPool.end();
129
+ }
130
+ }
52
131
  /**
53
132
  * Get a PostgreSQL instance by name
54
133
  *
@@ -202,15 +281,250 @@ export function createPostgresPlugin(config, instanceName = 'default') {
202
281
  // Create and register the instance
203
282
  const instance = createInstance();
204
283
  instances.set(instanceName, instance);
205
- // Test connection
284
+ // Register maintenance widget FIRST (before connection attempt)
285
+ // This ensures the widget is available even if database connection fails
286
+ registry.addWidget({
287
+ id: `postgres-operations-${instanceName}`,
288
+ title: `Database Operations (${instanceName})`,
289
+ component: 'DatabaseOperationsWidget',
290
+ type: 'maintenance',
291
+ priority: 50,
292
+ showByDefault: true,
293
+ pluginId: pluginId,
294
+ });
295
+ // Three-phase initialization: connect → auto-repair → error state
296
+ // PHASE 1: Try to connect with DATABASE_URI
206
297
  try {
207
298
  await instance.query('SELECT 1');
208
- logger.debug(`PostgreSQL "${instanceName}" connected`);
299
+ logger.info(`PostgreSQL "${instanceName}" connected successfully`);
209
300
  }
210
- catch (err) {
211
- logger.error(`PostgreSQL "${instanceName}" connection failed: ${err instanceof Error ? err.message : String(err)}`);
212
- throw err;
301
+ catch (connectionError) {
302
+ const errorMsg = connectionError instanceof Error ? connectionError.message : String(connectionError);
303
+ logger.warn(`PostgreSQL "${instanceName}" connection failed: ${errorMsg}`);
304
+ // PHASE 2: Auto-repair if admin credentials provided
305
+ const shouldAutoRepair = config.adminUser &&
306
+ config.adminPassword &&
307
+ config.autoInitialize !== false &&
308
+ config.url;
309
+ if (shouldAutoRepair) {
310
+ logger.info(`Attempting auto-repair for "${instanceName}"...`);
311
+ try {
312
+ const connParams = parseConnectionUrl(config.url);
313
+ const adminPool = createAdminPool({
314
+ adminUser: config.adminUser,
315
+ adminPassword: config.adminPassword,
316
+ host: connParams.host,
317
+ port: connParams.port,
318
+ adminDatabase: config.adminDatabase,
319
+ });
320
+ try {
321
+ // Ensure user exists
322
+ logger.debug(`Ensuring user "${connParams.user}" exists...`);
323
+ await ensureUserExists(adminPool, connParams.user, connParams.password);
324
+ // Ensure database exists
325
+ logger.debug(`Ensuring database "${connParams.database}" exists...`);
326
+ await ensureDatabaseExists(adminPool, connParams.database, connParams.user);
327
+ // Grant permissions
328
+ logger.debug(`Granting permissions to "${connParams.user}" on "${connParams.database}"...`);
329
+ await grantPermissions(adminPool, connParams.database, connParams.user);
330
+ logger.info(`Auto-repair completed successfully for "${instanceName}"`);
331
+ // Try connection again after repair
332
+ await instance.query('SELECT 1');
333
+ logger.info(`PostgreSQL "${instanceName}" connected after auto-repair`);
334
+ }
335
+ finally {
336
+ await adminPool.end();
337
+ }
338
+ }
339
+ catch (repairError) {
340
+ const repairMsg = repairError instanceof Error ? repairError.message : String(repairError);
341
+ // Log error but don't throw - allow plugin to continue starting
342
+ // This ensures the widget and API routes are available for manual database initialization
343
+ logger.error(`PostgreSQL connection failed and auto-repair unsuccessful. ` +
344
+ `Original error: ${errorMsg}. Repair error: ${repairMsg}. ` +
345
+ `Use the maintenance UI to manually initialize the database.`);
346
+ }
347
+ }
348
+ else {
349
+ // PHASE 3: No auto-repair available, remain in error state
350
+ const missingConfig = [];
351
+ if (!config.adminUser)
352
+ missingConfig.push('adminUser');
353
+ if (!config.adminPassword)
354
+ missingConfig.push('adminPassword');
355
+ const hint = missingConfig.length > 0
356
+ ? ` Provide ${missingConfig.join(', ')} in config to enable auto-repair.`
357
+ : ' Set autoInitialize=true to enable auto-repair.';
358
+ // Log error but don't throw - allow plugin to continue starting
359
+ // This ensures the widget and API routes are available for manual database initialization
360
+ logger.error(`PostgreSQL connection failed: ${errorMsg}.${hint} ` +
361
+ `Use the maintenance UI to manually initialize the database.`);
362
+ }
213
363
  }
364
+ // Register API routes for database operations
365
+ registry.addRoute({
366
+ method: 'get',
367
+ path: '/status',
368
+ pluginId: pluginId,
369
+ handler: async (req, res) => {
370
+ try {
371
+ const requestedInstance = req.query.instance || 'default';
372
+ const targetInstance = instances.get(requestedInstance);
373
+ if (!targetInstance) {
374
+ return res.status(404).json({
375
+ status: 'error',
376
+ connected: false,
377
+ errorMessage: `PostgreSQL instance "${requestedInstance}" not found`,
378
+ autoInitializeEnabled: false,
379
+ adminCredentialsProvided: false,
380
+ });
381
+ }
382
+ let connParams = null;
383
+ if (config.url) {
384
+ try {
385
+ connParams = parseConnectionUrl(config.url);
386
+ }
387
+ catch (err) {
388
+ // URL parsing failed, ignore
389
+ }
390
+ }
391
+ try {
392
+ await targetInstance.query('SELECT 1');
393
+ res.json({
394
+ status: 'healthy',
395
+ connected: true,
396
+ database: connParams?.database,
397
+ user: connParams?.user,
398
+ host: connParams?.host,
399
+ port: connParams?.port,
400
+ autoInitializeEnabled: config.autoInitialize !== false,
401
+ adminCredentialsProvided: !!(config.adminUser && config.adminPassword),
402
+ });
403
+ }
404
+ catch (err) {
405
+ res.json({
406
+ status: 'error',
407
+ connected: false,
408
+ database: connParams?.database,
409
+ user: connParams?.user,
410
+ host: connParams?.host,
411
+ port: connParams?.port,
412
+ errorMessage: err instanceof Error ? err.message : String(err),
413
+ autoInitializeEnabled: config.autoInitialize !== false,
414
+ adminCredentialsProvided: !!(config.adminUser && config.adminPassword),
415
+ });
416
+ }
417
+ }
418
+ catch (err) {
419
+ res.status(500).json({
420
+ status: 'error',
421
+ connected: false,
422
+ errorMessage: err instanceof Error ? err.message : 'Unknown error',
423
+ autoInitializeEnabled: false,
424
+ adminCredentialsProvided: false,
425
+ });
426
+ }
427
+ },
428
+ });
429
+ registry.addRoute({
430
+ method: 'post',
431
+ path: '/initialize',
432
+ pluginId: pluginId,
433
+ handler: async (req, res) => {
434
+ try {
435
+ const { instance: requestedInstance, adminUser, adminPassword } = req.body;
436
+ const targetInstance = requestedInstance || 'default';
437
+ if (!instances.has(targetInstance)) {
438
+ return res.status(404).json({ message: `Instance "${targetInstance}" not found` });
439
+ }
440
+ if (!config.url) {
441
+ return res.status(400).json({ message: 'No database URL configured' });
442
+ }
443
+ const connParams = parseConnectionUrl(config.url);
444
+ const effectiveAdminUser = adminUser || config.adminUser;
445
+ const effectiveAdminPassword = adminPassword || config.adminPassword;
446
+ if (!effectiveAdminUser || !effectiveAdminPassword) {
447
+ return res.status(400).json({
448
+ message: 'Admin credentials required. Provide adminUser and adminPassword.',
449
+ });
450
+ }
451
+ const adminPool = createAdminPool({
452
+ adminUser: effectiveAdminUser,
453
+ adminPassword: effectiveAdminPassword,
454
+ host: connParams.host,
455
+ port: connParams.port,
456
+ adminDatabase: config.adminDatabase,
457
+ });
458
+ try {
459
+ await ensureUserExists(adminPool, connParams.user, connParams.password);
460
+ await ensureDatabaseExists(adminPool, connParams.database, connParams.user);
461
+ await grantPermissions(adminPool, connParams.database, connParams.user);
462
+ logger.info(`Database "${connParams.database}" initialized successfully`);
463
+ res.json({ message: `Database "${connParams.database}" initialized successfully` });
464
+ }
465
+ finally {
466
+ await adminPool.end();
467
+ }
468
+ }
469
+ catch (err) {
470
+ logger.error('Database initialization failed', { error: err });
471
+ res.status(500).json({
472
+ message: err instanceof Error ? err.message : 'Unknown error',
473
+ });
474
+ }
475
+ },
476
+ });
477
+ registry.addRoute({
478
+ method: 'post',
479
+ path: '/recreate',
480
+ pluginId: pluginId,
481
+ handler: async (req, res) => {
482
+ try {
483
+ const { instance: requestedInstance, adminUser, adminPassword } = req.body;
484
+ const targetInstance = requestedInstance || 'default';
485
+ if (!instances.has(targetInstance)) {
486
+ return res.status(404).json({ message: `Instance "${targetInstance}" not found` });
487
+ }
488
+ if (!config.url) {
489
+ return res.status(400).json({ message: 'No database URL configured' });
490
+ }
491
+ const connParams = parseConnectionUrl(config.url);
492
+ const effectiveAdminUser = adminUser || config.adminUser;
493
+ const effectiveAdminPassword = adminPassword || config.adminPassword;
494
+ if (!effectiveAdminUser || !effectiveAdminPassword) {
495
+ return res.status(400).json({
496
+ message: 'Admin credentials required. Provide adminUser and adminPassword.',
497
+ });
498
+ }
499
+ const adminPool = createAdminPool({
500
+ adminUser: effectiveAdminUser,
501
+ adminPassword: effectiveAdminPassword,
502
+ host: connParams.host,
503
+ port: connParams.port,
504
+ adminDatabase: config.adminDatabase,
505
+ });
506
+ try {
507
+ // Drop database if exists
508
+ await adminPool.query(`DROP DATABASE IF EXISTS ${connParams.database}`);
509
+ // Recreate database
510
+ await adminPool.query(`CREATE DATABASE ${connParams.database} OWNER ${connParams.user}`);
511
+ // Grant permissions
512
+ await grantPermissions(adminPool, connParams.database, connParams.user);
513
+ logger.info(`Database "${connParams.database}" recreated successfully`);
514
+ res.json({ message: `Database "${connParams.database}" recreated successfully` });
515
+ }
516
+ finally {
517
+ await adminPool.end();
518
+ }
519
+ }
520
+ catch (err) {
521
+ logger.error('Database recreation failed', { error: err });
522
+ res.status(500).json({
523
+ message: err instanceof Error ? err.message : 'Unknown error',
524
+ });
525
+ }
526
+ },
527
+ });
214
528
  // Register health check if enabled
215
529
  if (config.healthCheck !== false) {
216
530
  registry.registerHealthCheck({
@@ -1 +1 @@
1
- {"version":3,"file":"postgres-plugin.js","sourceRoot":"","sources":["../../../src/plugins/postgres-plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"postgres-plugin.js","sourceRoot":"","sources":["../../../src/plugins/postgres-plugin.ts"],"names":[],"mappings":"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"}
@@ -9,8 +9,4 @@
9
9
  export { createPreferencesPlugin, getPreferencesStore, getPreferences, updatePreferences, deletePreferences, getDefaultPreferences, } from './preferences-plugin.js';
10
10
  export type { PreferencesPluginConfig, PreferencesStore, UserPreferences, PostgresPreferencesStoreConfig, PreferencesApiConfig, } from './types.js';
11
11
  export { postgresPreferencesStore, deepMerge } from './stores/index.js';
12
- export { PreferencesStatusWidget } from './PreferencesStatusWidget.js';
13
- export type { PreferencesStatusWidgetProps } from './PreferencesStatusWidget.js';
14
- export { PreferencesManagementPage } from './PreferencesManagementPage.js';
15
- export type { PreferencesManagementPageProps } from './PreferencesManagementPage.js';
16
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/preferences/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AAGjC,YAAY,EACV,uBAAuB,EACvB,gBAAgB,EAChB,eAAe,EACf,8BAA8B,EAC9B,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,wBAAwB,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAGxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,YAAY,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AACjF,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,YAAY,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/preferences/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AAGjC,YAAY,EACV,uBAAuB,EACvB,gBAAgB,EAChB,eAAe,EACf,8BAA8B,EAC9B,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,wBAAwB,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC"}
@@ -10,7 +10,6 @@
10
10
  export { createPreferencesPlugin, getPreferencesStore, getPreferences, updatePreferences, deletePreferences, getDefaultPreferences, } from './preferences-plugin.js';
11
11
  // Stores
12
12
  export { postgresPreferencesStore, deepMerge } from './stores/index.js';
13
- // UI Components
14
- export { PreferencesStatusWidget } from './PreferencesStatusWidget.js';
15
- export { PreferencesManagementPage } from './PreferencesManagementPage.js';
13
+ // UI Components are exported from main package index (@qwickapps/server)
14
+ // Do NOT export here to avoid loading UI dependencies when importing plugins
16
15
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/preferences/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,cAAc;AACd,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AAWjC,SAAS;AACT,OAAO,EAAE,wBAAwB,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAExE,gBAAgB;AAChB,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/preferences/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,cAAc;AACd,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AAWjC,SAAS;AACT,OAAO,EAAE,wBAAwB,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAExE,yEAAyE;AACzE,6EAA6E"}
@@ -11,9 +11,12 @@
11
11
  import type { Plugin } from '../../core/plugin-registry.js';
12
12
  import type { PreferencesPluginConfig, PreferencesStore } from './types.js';
13
13
  /**
14
- * Create the Preferences plugin
14
+ * Create the Preferences plugin with smart defaults
15
+ *
16
+ * Config is optional - plugin will use defaults and get dependencies from registry.
17
+ * Gracefully handles missing dependencies with clear log messages.
15
18
  */
16
- export declare function createPreferencesPlugin(config: PreferencesPluginConfig): Plugin;
19
+ export declare function createPreferencesPlugin(config?: Partial<PreferencesPluginConfig>): Plugin;
17
20
  /**
18
21
  * Get the current preferences store instance
19
22
  */
@@ -1 +1 @@
1
- {"version":3,"file":"preferences-plugin.d.ts","sourceRoot":"","sources":["../../../../src/plugins/preferences/preferences-plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAgC,MAAM,+BAA+B,CAAC;AAC1F,OAAO,KAAK,EACV,uBAAuB,EACvB,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAuBpB;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,uBAAuB,GAAG,MAAM,CA8K/E;AAMD;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,gBAAgB,GAAG,IAAI,CAE7D;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAOrF;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACnC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAOlC;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAMxE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAE/D"}
1
+ {"version":3,"file":"preferences-plugin.d.ts","sourceRoot":"","sources":["../../../../src/plugins/preferences/preferences-plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAgC,MAAM,+BAA+B,CAAC;AAC1F,OAAO,KAAK,EACV,uBAAuB,EACvB,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAwBpB;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,GAAE,OAAO,CAAC,uBAAuB,CAAM,GAAG,MAAM,CAwN7F;AAMD;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,gBAAgB,GAAG,IAAI,CAE7D;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAOrF;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACnC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAOlC;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAMxE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAE/D"}
@@ -8,8 +8,9 @@
8
8
  *
9
9
  * Copyright (c) 2025 QwickApps.com. All rights reserved.
10
10
  */
11
- import { deepMerge } from './stores/postgres-store.js';
11
+ import { deepMerge, postgresPreferencesStore } from './stores/postgres-store.js';
12
12
  import { MAX_PREFERENCES_SIZE, MAX_NESTING_DEPTH } from './types.js';
13
+ import { hasPostgres, getPostgres } from '../postgres-plugin.js';
13
14
  /**
14
15
  * Check if an object exceeds maximum nesting depth
15
16
  */
@@ -28,16 +29,19 @@ function exceedsMaxDepth(obj, depth = 0) {
28
29
  let currentStore = null;
29
30
  let pluginDefaults = {};
30
31
  /**
31
- * Create the Preferences plugin
32
+ * Create the Preferences plugin with smart defaults
33
+ *
34
+ * Config is optional - plugin will use defaults and get dependencies from registry.
35
+ * Gracefully handles missing dependencies with clear log messages.
32
36
  */
33
- export function createPreferencesPlugin(config) {
34
- const debug = config.debug || false;
35
- // Routes are mounted under /api by the control panel, so don't include /api in prefix
36
- const apiPrefix = config.api?.prefix || '/'; // Framework adds /preferences prefix automatically
37
- const apiEnabled = config.api?.enabled !== false;
38
- function log(message, data) {
39
- if (debug) {
40
- console.log(`[PreferencesPlugin] ${message}`, data || '');
37
+ export function createPreferencesPlugin(config = {}) {
38
+ function log(message, data, isError = false) {
39
+ const prefix = '[PreferencesPlugin]';
40
+ if (isError) {
41
+ console.error(`${prefix} ${message}`, data || '');
42
+ }
43
+ else if (config.debug) {
44
+ console.log(`${prefix} ${message}`, data || '');
41
45
  }
42
46
  }
43
47
  return {
@@ -45,17 +49,55 @@ export function createPreferencesPlugin(config) {
45
49
  name: 'Preferences',
46
50
  version: '1.0.0',
47
51
  async onStart(_pluginConfig, registry) {
48
- log('Starting preferences plugin');
52
+ const logger = registry.getLogger('preferences');
49
53
  // Check for users plugin dependency
50
54
  if (!registry.hasPlugin('users')) {
51
- throw new Error('Preferences plugin requires Users plugin to be loaded first');
55
+ logger.warn('Users plugin not loaded! Preferences plugin disabled.');
56
+ registry.registerHealthCheck({
57
+ name: 'preferences-store',
58
+ type: 'custom',
59
+ check: async () => ({
60
+ healthy: false,
61
+ details: {
62
+ error: 'Users plugin not available',
63
+ state: 'disabled',
64
+ },
65
+ }),
66
+ });
67
+ return;
52
68
  }
69
+ // Check for postgres in registry
70
+ if (!hasPostgres()) {
71
+ logger.warn('No Database! Preferences plugin disabled.');
72
+ registry.registerHealthCheck({
73
+ name: 'preferences-store',
74
+ type: 'custom',
75
+ check: async () => ({
76
+ healthy: false,
77
+ details: {
78
+ error: 'PostgreSQL not available',
79
+ state: 'disabled',
80
+ },
81
+ }),
82
+ });
83
+ return;
84
+ }
85
+ // Smart defaults - get dependencies from registry
86
+ const store = config.store ?? postgresPreferencesStore({
87
+ pool: () => getPostgres().getPool(),
88
+ autoCreateTables: true,
89
+ });
90
+ const debug = config.debug ?? false;
91
+ const apiPrefix = config.api?.prefix ?? '/'; // Framework adds /preferences prefix automatically
92
+ const apiEnabled = config.api?.enabled ?? true;
93
+ const defaults = config.defaults ?? {};
94
+ log('Starting preferences plugin');
53
95
  // Initialize the store (creates tables and RLS policies if needed)
54
- await config.store.initialize();
96
+ await store.initialize();
55
97
  log('Preferences plugin migrations complete');
56
98
  // Store references for helper access
57
- currentStore = config.store;
58
- pluginDefaults = config.defaults || {};
99
+ currentStore = store;
100
+ pluginDefaults = defaults;
59
101
  // Register health check
60
102
  registry.registerHealthCheck({
61
103
  name: 'preferences-store',
@@ -86,7 +128,7 @@ export function createPreferencesPlugin(config) {
86
128
  if (!userId) {
87
129
  return res.status(401).json({ error: 'Authentication required' });
88
130
  }
89
- const stored = await config.store.get(userId);
131
+ const stored = await store.get(userId);
90
132
  // Merge with defaults (defaults as base, stored values override)
91
133
  const preferences = stored
92
134
  ? deepMerge(pluginDefaults, stored)
@@ -127,7 +169,7 @@ export function createPreferencesPlugin(config) {
127
169
  if (exceedsMaxDepth(newPreferences)) {
128
170
  return res.status(400).json({ error: 'Preferences object too deeply nested (max 10 levels)' });
129
171
  }
130
- const updated = await config.store.update(userId, newPreferences);
172
+ const updated = await store.update(userId, newPreferences);
131
173
  // Merge with defaults for response
132
174
  const preferences = deepMerge(pluginDefaults, updated);
133
175
  res.json({
@@ -153,7 +195,7 @@ export function createPreferencesPlugin(config) {
153
195
  if (!userId) {
154
196
  return res.status(401).json({ error: 'Authentication required' });
155
197
  }
156
- await config.store.delete(userId);
198
+ await store.delete(userId);
157
199
  // Return 204 No Content (idempotent - success even if no row existed)
158
200
  res.status(204).send();
159
201
  }
@@ -175,7 +217,9 @@ export function createPreferencesPlugin(config) {
175
217
  },
176
218
  async onStop() {
177
219
  log('Stopping preferences plugin');
178
- await config.store.shutdown();
220
+ if (currentStore) {
221
+ await currentStore.shutdown();
222
+ }
179
223
  currentStore = null;
180
224
  pluginDefaults = {};
181
225
  log('Preferences plugin stopped');
@@ -1 +1 @@
1
- {"version":3,"file":"preferences-plugin.js","sourceRoot":"","sources":["../../../../src/plugins/preferences/preferences-plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preferences-plugin.js","sourceRoot":"","sources":["../../../../src/plugins/preferences/preferences-plugin.ts"],"names":[],"mappings":"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"}
@@ -9,8 +9,4 @@
9
9
  export { createProfilesPlugin, getProfileStore, createProfile, getProfileById, updateProfile, deleteProfile, listUserProfiles, getDefaultProfile, setDefaultProfile, getProfilesByAgeGroup, getChildProfiles, getProfileAge, checkTimeRestrictions, getContentFilterLevel, canAccessContent, } from './profiles-plugin.js';
10
10
  export type { Profile, CreateProfileInput, UpdateProfileInput, ProfileSearchParams, ProfileListResponse, TimeRestrictionResult, ContentFilterLevel, AgeGroup, ProfileStore, ProfilesPluginConfig, ProfilesApiConfig, PostgresProfileStoreConfig, AgeThresholds, QwickBotProfileMetadata, GamingProfileMetadata, } from './types.js';
11
11
  export { postgresProfileStore } from './stores/index.js';
12
- export { ProfilesStatusWidget } from './ProfilesStatusWidget.js';
13
- export type { ProfilesStatusWidgetProps } from './ProfilesStatusWidget.js';
14
- export { ProfilesManagementPage } from './ProfilesManagementPage.js';
15
- export type { ProfilesManagementPageProps } from './ProfilesManagementPage.js';
16
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/profiles/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,cAAc,EACd,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,aAAa,EACb,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAG9B,YAAY,EACV,OAAO,EACP,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,QAAQ,EACR,YAAY,EACZ,oBAAoB,EACpB,iBAAiB,EACjB,0BAA0B,EAC1B,aAAa,EACb,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAGzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,YAAY,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,YAAY,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/profiles/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,cAAc,EACd,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,aAAa,EACb,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAG9B,YAAY,EACV,OAAO,EACP,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,QAAQ,EACR,YAAY,EACZ,oBAAoB,EACpB,iBAAiB,EACjB,0BAA0B,EAC1B,aAAa,EACb,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC"}