velocious 1.0.417 → 1.0.419

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 (30) hide show
  1. package/README.md +38 -3
  2. package/build/src/database/pool/async-tracked-multi-connection.d.ts +139 -0
  3. package/build/src/database/pool/async-tracked-multi-connection.d.ts.map +1 -1
  4. package/build/src/database/pool/async-tracked-multi-connection.js +232 -92
  5. package/build/src/database/pool/base.d.ts +4 -0
  6. package/build/src/database/pool/base.d.ts.map +1 -1
  7. package/build/src/database/pool/base.js +2 -1
  8. package/build/src/database/pool/single-multi-use.d.ts.map +1 -1
  9. package/build/src/database/pool/single-multi-use.js +6 -5
  10. package/build/src/database/query/model-class-query.d.ts.map +1 -1
  11. package/build/src/database/query/model-class-query.js +113 -35
  12. package/build/src/database/query/where-combinator.d.ts +18 -0
  13. package/build/src/database/query/where-combinator.d.ts.map +1 -0
  14. package/build/src/database/query/where-combinator.js +25 -0
  15. package/build/src/frontend-model-controller.d.ts +2 -0
  16. package/build/src/frontend-model-controller.d.ts.map +1 -1
  17. package/build/src/frontend-model-controller.js +21 -1
  18. package/build/src/frontend-models/query.d.ts +6 -0
  19. package/build/src/frontend-models/query.d.ts.map +1 -1
  20. package/build/src/frontend-models/query.js +29 -43
  21. package/build/src/mailer/backends/smtp.d.ts.map +1 -1
  22. package/build/src/mailer/backends/smtp.js +11 -2
  23. package/build/src/mailer/base.d.ts +2 -2
  24. package/build/src/mailer/base.d.ts.map +1 -1
  25. package/build/src/mailer/base.js +34 -5
  26. package/build/src/utils/ransack.d.ts +32 -2
  27. package/build/src/utils/ransack.d.ts.map +1 -1
  28. package/build/src/utils/ransack.js +306 -75
  29. package/build/tsconfig.tsbuildinfo +1 -1
  30. package/package.json +1 -1
package/README.md CHANGED
@@ -219,11 +219,13 @@ class TasksMailer extends VelociousMailer {
219
219
  this.task = task
220
220
  this.user = user
221
221
  this.assignView({task, user})
222
- return this.mail({to: user.email(), subject: "New task", actionName: "newNotification"})
222
+ return this.mail({to: user.email(), subject: "New task"})
223
223
  }
224
224
  }
225
225
  ```
226
226
 
227
+ Velocious infers the action name from the mailer action method when `this.mail(...)` is called from that method. Pass `actionName` explicitly when rendering a different action template or when a shared helper should override the inferred action.
228
+
227
229
  ```ejs
228
230
  <b>Hello <%= mailer.user.name() %></b>
229
231
  <p>
@@ -251,7 +253,6 @@ resetPassword(user) {
251
253
  return this.mail({
252
254
  to: user.email(),
253
255
  subject: "Reset your password",
254
- actionName: "resetPassword",
255
256
  actionPromise: (async () => {
256
257
  this.token = await user.resetToken()
257
258
  this.assignView({user, token: this.token})
@@ -1245,6 +1246,40 @@ const frontendTasks = await FrontendTask
1245
1246
  .toArray()
1246
1247
  ```
1247
1248
 
1249
+ Simple OR predicates use Ransack's `_or_` shortcut:
1250
+
1251
+ ```js
1252
+ const matchingUsers = await User
1253
+ .ransack({email_or_reference_cont: "john"})
1254
+ .toArray()
1255
+ ```
1256
+
1257
+ Grouped Ransack hashes support `m` (`"and"` / `"or"`), `c` condition arrays, and nested `g` groups:
1258
+
1259
+ ```js
1260
+ const matchingUsers = await User
1261
+ .ransack({
1262
+ c: [
1263
+ {a: ["email"], p: "cont", v: ["jane"]}
1264
+ ],
1265
+ g: [
1266
+ {
1267
+ c: [
1268
+ {a: "reference", p: "cont", v: ["user-2"]},
1269
+ {a: "email", p: "cont", v: ["john"]}
1270
+ ],
1271
+ m: "and"
1272
+ }
1273
+ ],
1274
+ m: "or"
1275
+ })
1276
+ .limit(20)
1277
+ .offset(0)
1278
+ .toArray()
1279
+ ```
1280
+
1281
+ Frontend-model `.ransack(...)` filters run on the backend, so `count()`, `limit(...)`, `offset(...)`, and `toArray()` all share the same query scope instead of loading records into memory first.
1282
+
1248
1283
  ### Raw where clauses
1249
1284
 
1250
1285
  ```js
@@ -1407,7 +1442,7 @@ database: {
1407
1442
  }
1408
1443
  ```
1409
1444
 
1410
- `pool.max` caps live async-tracked connections for that pool. When the cap is reached, new checkouts wait until a matching checked-in connection can be handed over or capacity is freed.
1445
+ `pool.max` caps live async-tracked connections for that pool. When the cap is reached, new checkouts wait until a matching checked-in connection can be handed over or capacity is freed. The built-in debug endpoint reports each in-use connection's `checkedOutForMs`, each idle connection's `idleForMs`, and queued `pendingCheckouts[].waitingForMs` so production diagnostics can distinguish long-held checkouts from pool-capacity waits.
1411
1446
 
1412
1447
  # Websockets
1413
1448
 
@@ -2,6 +2,7 @@ export const CLOSED_CONNECTION: unique symbol;
2
2
  /**
3
3
  * @typedef {object} PendingCheckout
4
4
  * @property {import("../../configuration-types.js").DatabaseConfigurationType} databaseConfig - Resolved database configuration needed by the checkout.
5
+ * @property {number} enqueuedAt - Timestamp when the checkout started waiting.
5
6
  * @property {import("./base.js").ConnectionCheckoutOptions} options - Checkout options.
6
7
  * @property {string} reuseKey - Database configuration reuse key needed by the checkout.
7
8
  * @property {(connection: import("../drivers/base.js").default) => void} resolve - Resolves with an activated connection.
@@ -68,6 +69,14 @@ export default class VelociousDatabasePoolAsyncTrackedMultiConnection extends Ba
68
69
  * @returns {Promise<void>} - Resolves when the connection is checked in or closed.
69
70
  */
70
71
  checkin(connection: import("../drivers/base.js").default): Promise<void>;
72
+ /**
73
+ * @param {import("../drivers/base.js").default} connection - Connection being checked in.
74
+ * @param {number | undefined} id - Connection checkout id.
75
+ * @returns {void}
76
+ */
77
+ untrackConnectionInUse(connection: import("../drivers/base.js").default, id: number | undefined): void;
78
+ /** @returns {Promise<void>} - Resolves once idle reaping has been scheduled or run. */
79
+ handleCheckedInIdleConnection(): Promise<void>;
71
80
  /**
72
81
  * @param {string} reuseKey - Database configuration reuse key.
73
82
  * @param {object} [args] - Options.
@@ -91,6 +100,11 @@ export default class VelociousDatabasePoolAsyncTrackedMultiConnection extends Ba
91
100
  activateConnection(connection: import("../drivers/base.js").default, options?: import("./base.js").ConnectionCheckoutOptions): Promise<import("../drivers/base.js").default>;
92
101
  /** @returns {number | undefined} - Configured max live connections. */
93
102
  maxConnections(): number | undefined;
103
+ /**
104
+ * @param {unknown} value - Candidate max connection count.
105
+ * @returns {value is number} - Whether the value is a valid max connection count.
106
+ */
107
+ validMaxConnections(value: unknown): value is number;
94
108
  /** @returns {number} - Number of live and in-progress connections. */
95
109
  liveConnectionCount(): number;
96
110
  /** @returns {boolean} - Whether a new connection can be spawned. */
@@ -112,6 +126,21 @@ export default class VelociousDatabasePoolAsyncTrackedMultiConnection extends Ba
112
126
  drainPendingCheckouts(): Promise<void>;
113
127
  /** @returns {Promise<void>} - Resolves when pending checkouts have been drained as far as possible. */
114
128
  drainPendingCheckoutsActual(): Promise<void>;
129
+ /**
130
+ * @param {PendingCheckout} checkout - Checkout waiting for a connection.
131
+ * @returns {Promise<boolean>} - Whether an idle connection was closed to free capacity.
132
+ */
133
+ closeIdleConnectionForPendingCheckoutCapacity(checkout: PendingCheckout): Promise<boolean>;
134
+ /**
135
+ * @param {string} reuseKey - Database configuration reuse key.
136
+ * @returns {import("../drivers/base.js").default | undefined} - Matching idle connection, if present.
137
+ */
138
+ findIdleConnectionForReuseKey(reuseKey: string): import("../drivers/base.js").default | undefined;
139
+ /**
140
+ * @param {PendingCheckout} checkout - Checkout waiting for a connection.
141
+ * @returns {Promise<import("../drivers/base.js").default | undefined>} - Matching idle connection, if one can be reused.
142
+ */
143
+ idleConnectionForPendingCheckout(checkout: PendingCheckout): Promise<import("../drivers/base.js").default | undefined>;
115
144
  /**
116
145
  * @param {PendingCheckout} checkout - Checkout request to resolve.
117
146
  * @returns {Promise<void>} - Resolves when the checkout has been handled.
@@ -125,6 +154,13 @@ export default class VelociousDatabasePoolAsyncTrackedMultiConnection extends Ba
125
154
  resolvePendingCheckout(checkout: PendingCheckout, connection: import("../drivers/base.js").default): Promise<void>;
126
155
  /** @returns {Promise<boolean>} - Whether an idle connection was closed to free capacity. */
127
156
  closeOneIdleConnectionForCapacity(): Promise<boolean>;
157
+ /** @returns {import("../drivers/base.js").default} - Fallback connection, if present. */
158
+ currentFallbackConnectionOrFail(): import("../drivers/base.js").default;
159
+ /**
160
+ * @param {number} id - Checked-out connection id.
161
+ * @returns {void}
162
+ */
163
+ ensureConnectionIsInUse(id: number): void;
128
164
  /**
129
165
  * Registers a fallback connection for this pool identifier that will be used when no async context is available.
130
166
  * @param {import("../drivers/base.js").default} connection - Connection.
@@ -140,6 +176,55 @@ export default class VelociousDatabasePoolAsyncTrackedMultiConnection extends Ba
140
176
  setTestSharedConnection(connection: import("../drivers/base.js").default): void;
141
177
  /** @returns {void} */
142
178
  clearTestSharedConnection(): void;
179
+ /**
180
+ * @param {number} now - Current timestamp.
181
+ * @returns {{connections: Array<Record<string, unknown>>, seenConnections: Set<import("../drivers/base.js").default>}} - Connection snapshots and seen set.
182
+ */
183
+ debugConnectionSnapshots(now: number): {
184
+ connections: Array<Record<string, unknown>>;
185
+ seenConnections: Set<import("../drivers/base.js").default>;
186
+ };
187
+ /**
188
+ * @param {{connections: Array<Record<string, unknown>>, now: number, seenConnections: Set<import("../drivers/base.js").default>}} args - Snapshot collection state.
189
+ * @returns {void}
190
+ */
191
+ addInUseDebugConnectionSnapshots({ connections, now, seenConnections }: {
192
+ connections: Array<Record<string, unknown>>;
193
+ now: number;
194
+ seenConnections: Set<import("../drivers/base.js").default>;
195
+ }): void;
196
+ /**
197
+ * @param {{connections: Array<Record<string, unknown>>, now: number, seenConnections: Set<import("../drivers/base.js").default>}} args - Snapshot collection state.
198
+ * @returns {void}
199
+ */
200
+ addIdleDebugConnectionSnapshots({ connections, now, seenConnections }: {
201
+ connections: Array<Record<string, unknown>>;
202
+ now: number;
203
+ seenConnections: Set<import("../drivers/base.js").default>;
204
+ }): void;
205
+ /**
206
+ * @param {{connections: Array<Record<string, unknown>>, seenConnections: Set<import("../drivers/base.js").default>}} args - Snapshot collection state.
207
+ * @returns {void}
208
+ */
209
+ addFallbackDebugConnectionSnapshots({ connections, seenConnections }: {
210
+ connections: Array<Record<string, unknown>>;
211
+ seenConnections: Set<import("../drivers/base.js").default>;
212
+ }): void;
213
+ /**
214
+ * @param {{connection: import("../drivers/base.js").default | undefined, connections: Array<Record<string, unknown>>, seenConnections: Set<import("../drivers/base.js").default>, state: string}} args - Snapshot collection state.
215
+ * @returns {void}
216
+ */
217
+ addDebugConnectionSnapshotIfUnseen({ connection, connections, seenConnections, state }: {
218
+ connection: import("../drivers/base.js").default | undefined;
219
+ connections: Array<Record<string, unknown>>;
220
+ seenConnections: Set<import("../drivers/base.js").default>;
221
+ state: string;
222
+ }): void;
223
+ /**
224
+ * @param {number} now - Current timestamp.
225
+ * @returns {Array<Record<string, unknown>>} - Pending checkout snapshots.
226
+ */
227
+ pendingCheckoutDebugSnapshots(now: number): Array<Record<string, unknown>>;
143
228
  /**
144
229
  * @returns {import("../drivers/base.js").default | undefined} - The global connection.
145
230
  */
@@ -152,8 +237,15 @@ export default class VelociousDatabasePoolAsyncTrackedMultiConnection extends Ba
152
237
  clearGlobalConnectionForIdentifier(): void;
153
238
  /** @returns {number | null} - Idle timeout in milliseconds, or null when disabled. */
154
239
  idleTimeoutMillis(): number | null;
240
+ /**
241
+ * @param {unknown} value - Candidate idle timeout value.
242
+ * @returns {value is number} - Whether the value is a valid idle timeout.
243
+ */
244
+ validIdleTimeoutMillis(value: unknown): value is number;
155
245
  /** @returns {void} */
156
246
  scheduleIdleConnectionReaper(): void;
247
+ /** @returns {boolean} - Whether an idle reaper timer should be scheduled. */
248
+ hasIdleConnectionsToReap(): boolean;
157
249
  /**
158
250
  * @param {number} idleTimeoutMillis - Idle timeout in milliseconds.
159
251
  * @returns {number} - Delay before the next reap.
@@ -164,6 +256,49 @@ export default class VelociousDatabasePoolAsyncTrackedMultiConnection extends Ba
164
256
  * @returns {Promise<void>} - Resolves when complete.
165
257
  */
166
258
  reapIdleConnections(): Promise<void>;
259
+ /**
260
+ * @param {import("../drivers/base.js").default[]} expiredConnections - Connections to close.
261
+ * @returns {Promise<void>} - Resolves when closed.
262
+ */
263
+ closeExpiredIdleConnections(expiredConnections: import("../drivers/base.js").default[]): Promise<void>;
264
+ /** @returns {Promise<void>} - Resolves once in-flight connection closes settle. */
265
+ awaitInflightConnectionCloses(): Promise<void>;
266
+ /**
267
+ * @param {{idleTimeoutMillis: number, now: number}} args - Reaper classification inputs.
268
+ * @returns {{expiredConnections: import("../drivers/base.js").default[], keptConnections: import("../drivers/base.js").default[]}} - Classified idle connections.
269
+ */
270
+ classifyIdleConnectionsForReaping({ idleTimeoutMillis, now }: {
271
+ idleTimeoutMillis: number;
272
+ now: number;
273
+ }): {
274
+ expiredConnections: import("../drivers/base.js").default[];
275
+ keptConnections: import("../drivers/base.js").default[];
276
+ };
277
+ /**
278
+ * @param {{connection: import("../drivers/base.js").default, expiredConnections: import("../drivers/base.js").default[], idleTimeoutMillis: number, keptConnections: import("../drivers/base.js").default[], now: number}} args - Classification state.
279
+ * @returns {void}
280
+ */
281
+ classifyIdleConnectionForReaping({ connection, expiredConnections, idleTimeoutMillis, keptConnections, now }: {
282
+ connection: import("../drivers/base.js").default;
283
+ expiredConnections: import("../drivers/base.js").default[];
284
+ idleTimeoutMillis: number;
285
+ keptConnections: import("../drivers/base.js").default[];
286
+ now: number;
287
+ }): void;
288
+ /**
289
+ * @param {import("../drivers/base.js").default} connection - Connection to inspect.
290
+ * @returns {boolean} - Whether the connection is marked closed.
291
+ */
292
+ connectionIsClosed(connection: import("../drivers/base.js").default): boolean;
293
+ /**
294
+ * @param {{connection: import("../drivers/base.js").default, idleTimeoutMillis: number, now: number}} args - Expiry inputs.
295
+ * @returns {boolean} - Whether the idle connection expired.
296
+ */
297
+ idleConnectionExpired({ connection, idleTimeoutMillis, now }: {
298
+ connection: import("../drivers/base.js").default;
299
+ idleTimeoutMillis: number;
300
+ now: number;
301
+ }): boolean;
167
302
  /**
168
303
  * @param {import("../drivers/base.js").default} connection - Connection to inspect.
169
304
  * @returns {boolean} - Whether the connection has an open transaction.
@@ -197,6 +332,10 @@ export type PendingCheckout = {
197
332
  * - Resolved database configuration needed by the checkout.
198
333
  */
199
334
  databaseConfig: import("../../configuration-types.js").DatabaseConfigurationType;
335
+ /**
336
+ * - Timestamp when the checkout started waiting.
337
+ */
338
+ enqueuedAt: number;
200
339
  /**
201
340
  * - Checkout options.
202
341
  */
@@ -1 +1 @@
1
- {"version":3,"file":"async-tracked-multi-connection.d.ts","sourceRoot":"","sources":["../../../../src/database/pool/async-tracked-multi-connection.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"async-tracked-multi-connection.d.ts","sourceRoot":"","sources":["../../../../src/database/pool/async-tracked-multi-connection.js"],"names":[],"mappings":"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"}