@balena/pinejs 17.2.2-build-renovate-major-12-commander-c67451e8dcab54876a54d9ffb97f5836e9dd95c5-1 → 17.3.0-build-joshbwlng-tx-options-1a3250a4523c5496f4fd5ce45ab167270a76e47e-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.
@@ -1,16 +1,15 @@
1
1
  - commits:
2
- - subject: Update dependency commander to v12
3
- hash: c67451e8dcab54876a54d9ffb97f5836e9dd95c5
4
- body: |
5
- Update commander from 11.1.0 to 12.1.0
2
+ - subject: Add transaction timeoutMS override option
3
+ hash: 1a3250a4523c5496f4fd5ce45ab167270a76e47e
4
+ body: ""
6
5
  footer:
7
- Change-type: patch
8
- change-type: patch
9
- author: Self-hosted Renovate Bot
6
+ Change-type: minor
7
+ change-type: minor
8
+ author: Josh Bowling
10
9
  nested: []
11
- version: 17.2.2
10
+ version: 17.3.0
12
11
  title: ""
13
- date: 2024-07-03T16:44:09.644Z
12
+ date: 2024-07-08T04:06:53.807Z
14
13
  - commits:
15
14
  - subject: Update generated types abstract-sql-to-typescript v3.3.0
16
15
  hash: 22e1eb1d8b704bc85941ca3fa6838114f28fb0b6
package/CHANGELOG.md CHANGED
@@ -4,10 +4,10 @@ All notable changes to this project will be documented in this file
4
4
  automatically by Versionist. DO NOT EDIT THIS FILE MANUALLY!
5
5
  This project adheres to [Semantic Versioning](http://semver.org/).
6
6
 
7
- # v17.2.2
8
- ## (2024-07-03)
7
+ # v17.3.0
8
+ ## (2024-07-08)
9
9
 
10
- * Update dependency commander to v12 [Self-hosted Renovate Bot]
10
+ * Add transaction timeoutMS override option [Josh Bowling]
11
11
 
12
12
  # v17.2.1
13
13
  ## (2024-07-03)
package/VERSION CHANGED
@@ -1 +1 @@
1
- 17.2.2
1
+ 17.3.0
@@ -48,7 +48,9 @@ declare const alwaysExport: {
48
48
  };
49
49
  type BaseDatabase = typeof alwaysExport;
50
50
  interface TransactionFn {
51
- <T>(fn: (tx: Tx) => Resolvable<T>): Promise<T>;
51
+ <T>(fn: (tx: Tx) => Resolvable<T>, options?: {
52
+ timeoutMS?: number;
53
+ }): Promise<T>;
52
54
  (): Promise<Tx>;
53
55
  }
54
56
  export interface Database extends BaseDatabase {
@@ -67,7 +69,8 @@ declare class AutomaticClose {
67
69
  private automaticCloseTimeout;
68
70
  private automaticClose;
69
71
  private pending;
70
- constructor(tx: Tx, stackTraceErr?: Error | undefined);
72
+ private timeoutMS;
73
+ constructor(tx: Tx, stackTraceErr?: Error | undefined, timeoutMS?: number);
71
74
  incrementPending(): void;
72
75
  decrementPending(): void;
73
76
  cancelPending(): void;
@@ -75,8 +78,8 @@ declare class AutomaticClose {
75
78
  export declare abstract class Tx {
76
79
  protected readOnly: boolean;
77
80
  private closed;
78
- protected automaticClose: AutomaticClose;
79
- constructor(readOnly: boolean, stackTraceErr?: Error | AutomaticClose);
81
+ protected automaticClose: AutomaticClose | undefined;
82
+ constructor(readOnly: boolean, stackTraceErr?: Error | AutomaticClose, timeoutMS?: number);
80
83
  private closeTransaction;
81
84
  isClosed(): boolean;
82
85
  protected abstract clone(readOnly?: boolean): Tx;
@@ -159,16 +159,20 @@ class AutomaticClose {
159
159
  automaticCloseTimeout;
160
160
  automaticClose;
161
161
  pending = 0;
162
- constructor(tx, stackTraceErr) {
162
+ timeoutMS = env.db.timeoutMS;
163
+ constructor(tx, stackTraceErr, timeoutMS) {
163
164
  this.stackTraceErr = stackTraceErr;
165
+ if (timeoutMS != null && timeoutMS > 0) {
166
+ this.timeoutMS = timeoutMS;
167
+ }
164
168
  this.automaticClose = () => {
165
- console.error(`Transaction still open after ${env.db.timeoutMS}ms without an execute call.`);
169
+ console.error(`Transaction still open after ${this.timeoutMS}ms without an execute call.`);
166
170
  if (this.stackTraceErr) {
167
171
  console.error(this.stackTraceErr.stack);
168
172
  }
169
173
  void tx.rollback();
170
174
  };
171
- this.automaticCloseTimeout = setTimeout(this.automaticClose, env.db.timeoutMS);
175
+ this.automaticCloseTimeout = setTimeout(this.automaticClose, this.timeoutMS);
172
176
  }
173
177
  incrementPending() {
174
178
  if (this.pending === false) {
@@ -183,7 +187,7 @@ class AutomaticClose {
183
187
  }
184
188
  this.pending--;
185
189
  if (this.pending === 0) {
186
- this.automaticCloseTimeout = setTimeout(this.automaticClose, env.db.timeoutMS);
190
+ this.automaticCloseTimeout = setTimeout(this.automaticClose, this.timeoutMS);
187
191
  }
188
192
  else if (this.pending < 0) {
189
193
  console.error('Pending transactions is less than 0, wtf?');
@@ -199,17 +203,17 @@ class Tx {
199
203
  readOnly;
200
204
  closed = false;
201
205
  automaticClose;
202
- constructor(readOnly, stackTraceErr) {
206
+ constructor(readOnly, stackTraceErr, timeoutMS) {
203
207
  this.readOnly = readOnly;
204
208
  if (stackTraceErr instanceof AutomaticClose) {
205
209
  this.automaticClose = stackTraceErr;
206
210
  }
207
- else {
208
- this.automaticClose = new AutomaticClose(this, stackTraceErr);
211
+ else if (timeoutMS != null && timeoutMS > 0) {
212
+ this.automaticClose = new AutomaticClose(this, stackTraceErr, timeoutMS);
209
213
  }
210
214
  }
211
215
  closeTransaction(message) {
212
- this.automaticClose.cancelPending();
216
+ this.automaticClose?.cancelPending();
213
217
  const { executeSql, rollback } = getRejectedFunctions(message);
214
218
  this.executeSql = executeSql;
215
219
  this.rollback = this.end = rollback;
@@ -236,7 +240,7 @@ class Tx {
236
240
  return await this.$executeSql(sql, bindings, ...args);
237
241
  }
238
242
  async $executeSql(sql, bindings = [], ...args) {
239
- this.automaticClose.incrementPending();
243
+ this.automaticClose?.incrementPending();
240
244
  const t0 = Date.now();
241
245
  try {
242
246
  return await this._executeSql(sql, bindings, ...args);
@@ -245,7 +249,7 @@ class Tx {
245
249
  throw wrapDatabaseError(err);
246
250
  }
247
251
  finally {
248
- this.automaticClose.decrementPending();
252
+ this.automaticClose?.decrementPending();
249
253
  const queryTime = Date.now() - t0;
250
254
  exports.metrics.emit('db_query_time', {
251
255
  queryTime,
@@ -274,7 +278,7 @@ class Tx {
274
278
  this.clearListeners();
275
279
  }
276
280
  disableAutomaticClose() {
277
- this.automaticClose.cancelPending();
281
+ this.automaticClose?.cancelPending();
278
282
  }
279
283
  listeners = {
280
284
  end: [],
@@ -309,11 +313,11 @@ const getStackTraceErr = env.DEBUG
309
313
  ? () => new Error()
310
314
  : lodash_1.default.noop;
311
315
  const createTransaction = (createFunc) => {
312
- return async (fn) => {
316
+ return async (fn, options) => {
313
317
  const stackTraceErr = getStackTraceErr();
314
318
  let tx;
315
319
  try {
316
- tx = await createFunc(stackTraceErr);
320
+ tx = await createFunc(stackTraceErr, options?.timeoutMS);
317
321
  }
318
322
  catch (err) {
319
323
  throw wrapDatabaseError(err);
@@ -412,8 +416,8 @@ if (maybePg != null) {
412
416
  };
413
417
  class PostgresTx extends Tx {
414
418
  db;
415
- constructor(db, readOnly, stackTraceErr) {
416
- super(readOnly, stackTraceErr);
419
+ constructor(db, readOnly, stackTraceErr, timeoutMS) {
420
+ super(readOnly, stackTraceErr, timeoutMS);
417
421
  this.db = db;
418
422
  }
419
423
  clone(readOnly = this.readOnly) {
@@ -518,15 +522,15 @@ if (maybePg != null) {
518
522
  return {
519
523
  engine: "postgres",
520
524
  executeSql: atomicExecuteSql,
521
- transaction: createTransaction(async (stackTraceErr) => {
525
+ transaction: createTransaction(async (stackTraceErr, timeoutMS) => {
522
526
  const client = await pool.connect();
523
- const tx = new PostgresTx(client, false, stackTraceErr);
527
+ const tx = new PostgresTx(client, false, stackTraceErr, timeoutMS);
524
528
  void tx.executeSql('START TRANSACTION;');
525
529
  return tx;
526
530
  }),
527
- readTransaction: createTransaction(async (stackTraceErr) => {
531
+ readTransaction: createTransaction(async (stackTraceErr, timeoutMS) => {
528
532
  const client = await replica.connect();
529
- const tx = new PostgresTx(client, false, stackTraceErr);
533
+ const tx = new PostgresTx(client, false, stackTraceErr, timeoutMS);
530
534
  void tx.executeSql('START TRANSACTION READ ONLY;');
531
535
  return tx.asReadOnly();
532
536
  }),
@@ -563,8 +567,8 @@ if (maybeMysql != null) {
563
567
  class MySqlTx extends Tx {
564
568
  db;
565
569
  close;
566
- constructor(db, close, readOnly, stackTraceErr) {
567
- super(readOnly, stackTraceErr);
570
+ constructor(db, close, readOnly, stackTraceErr, timeoutMS) {
571
+ super(readOnly, stackTraceErr, timeoutMS);
568
572
  this.db = db;
569
573
  this.close = close;
570
574
  }
@@ -619,17 +623,17 @@ if (maybeMysql != null) {
619
623
  return {
620
624
  engine: "mysql",
621
625
  executeSql: atomicExecuteSql,
622
- transaction: createTransaction(async (stackTraceErr) => {
626
+ transaction: createTransaction(async (stackTraceErr, timeoutMS) => {
623
627
  const client = await getConnectionAsync();
624
628
  const close = () => client.release();
625
- const tx = new MySqlTx(client, close, false, stackTraceErr);
629
+ const tx = new MySqlTx(client, close, false, stackTraceErr, timeoutMS);
626
630
  void tx.executeSql('START TRANSACTION;');
627
631
  return tx;
628
632
  }),
629
- readTransaction: createTransaction(async (stackTraceErr) => {
633
+ readTransaction: createTransaction(async (stackTraceErr, timeoutMS) => {
630
634
  const client = await getConnectionAsync();
631
635
  const close = () => client.release();
632
- const tx = new MySqlTx(client, close, false, stackTraceErr);
636
+ const tx = new MySqlTx(client, close, false, stackTraceErr, timeoutMS);
633
637
  void tx.executeSql('START TRANSACTION READ ONLY;');
634
638
  return tx.asReadOnly();
635
639
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/database-layer/db.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/database-layer/db.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@balena/pinejs",
3
- "version": "17.2.2-build-renovate-major-12-commander-c67451e8dcab54876a54d9ffb97f5836e9dd95c5-1",
3
+ "version": "17.3.0-build-joshbwlng-tx-options-1a3250a4523c5496f4fd5ce45ab167270a76e47e-1",
4
4
  "main": "out/server-glue/module",
5
5
  "type": "commonjs",
6
6
  "repository": "git@github.com:balena-io/pinejs.git",
@@ -54,7 +54,7 @@
54
54
  "@types/randomstring": "^1.3.0",
55
55
  "@types/websql": "^0.0.30",
56
56
  "busboy": "^1.6.0",
57
- "commander": "^12.0.0",
57
+ "commander": "^11.1.0",
58
58
  "deep-freeze": "^0.0.1",
59
59
  "eventemitter3": "^5.0.1",
60
60
  "express-session": "^1.18.0",
@@ -146,6 +146,6 @@
146
146
  "recursive": true
147
147
  },
148
148
  "versionist": {
149
- "publishedAt": "2024-07-03T16:44:10.424Z"
149
+ "publishedAt": "2024-07-08T04:06:54.634Z"
150
150
  }
151
151
  }
@@ -17,7 +17,10 @@ export interface CodedError extends Error {
17
17
  code: number | string;
18
18
  }
19
19
 
20
- type CreateTransactionFn = (stackTraceErr?: Error) => Promise<Tx>;
20
+ type CreateTransactionFn = (
21
+ stackTraceErr?: Error,
22
+ timeoutMS?: number,
23
+ ) => Promise<Tx>;
21
24
  type CloseTransactionFn = () => void;
22
25
  export interface Row {
23
26
  [fieldName: string]: any;
@@ -85,7 +88,12 @@ const alwaysExport = {
85
88
  type BaseDatabase = typeof alwaysExport;
86
89
 
87
90
  interface TransactionFn {
88
- <T>(fn: (tx: Tx) => Resolvable<T>): Promise<T>;
91
+ <T>(
92
+ fn: (tx: Tx) => Resolvable<T>,
93
+ options?: {
94
+ timeoutMS?: number;
95
+ },
96
+ ): Promise<T>;
89
97
  (): Promise<Tx>;
90
98
  }
91
99
 
@@ -215,13 +223,18 @@ class AutomaticClose {
215
223
  private automaticCloseTimeout: ReturnType<typeof setTimeout>;
216
224
  private automaticClose: () => void;
217
225
  private pending: false | number = 0;
226
+ private timeoutMS = env.db.timeoutMS;
218
227
  constructor(
219
228
  tx: Tx,
220
229
  private stackTraceErr?: Error,
230
+ timeoutMS?: number,
221
231
  ) {
232
+ if (timeoutMS != null && timeoutMS > 0) {
233
+ this.timeoutMS = timeoutMS;
234
+ }
222
235
  this.automaticClose = () => {
223
236
  console.error(
224
- `Transaction still open after ${env.db.timeoutMS}ms without an execute call.`,
237
+ `Transaction still open after ${this.timeoutMS}ms without an execute call.`,
225
238
  );
226
239
  if (this.stackTraceErr) {
227
240
  console.error(this.stackTraceErr.stack);
@@ -230,7 +243,7 @@ class AutomaticClose {
230
243
  };
231
244
  this.automaticCloseTimeout = setTimeout(
232
245
  this.automaticClose,
233
- env.db.timeoutMS,
246
+ this.timeoutMS,
234
247
  );
235
248
  }
236
249
  public incrementPending() {
@@ -249,7 +262,7 @@ class AutomaticClose {
249
262
  if (this.pending === 0) {
250
263
  this.automaticCloseTimeout = setTimeout(
251
264
  this.automaticClose,
252
- env.db.timeoutMS,
265
+ this.timeoutMS,
253
266
  );
254
267
  } else if (this.pending < 0) {
255
268
  console.error('Pending transactions is less than 0, wtf?');
@@ -265,21 +278,23 @@ class AutomaticClose {
265
278
 
266
279
  export abstract class Tx {
267
280
  private closed = false;
268
- protected automaticClose: AutomaticClose;
281
+ protected automaticClose: AutomaticClose | undefined;
269
282
 
270
283
  constructor(
271
284
  protected readOnly: boolean,
272
285
  stackTraceErr?: Error | AutomaticClose,
286
+ timeoutMS?: number,
273
287
  ) {
274
288
  if (stackTraceErr instanceof AutomaticClose) {
275
289
  this.automaticClose = stackTraceErr;
276
- } else {
277
- this.automaticClose = new AutomaticClose(this, stackTraceErr);
290
+ } else if (timeoutMS != null && timeoutMS > 0) {
291
+ // Disable automatic closing if timeoutMS is 0
292
+ this.automaticClose = new AutomaticClose(this, stackTraceErr, timeoutMS);
278
293
  }
279
294
  }
280
295
 
281
296
  private closeTransaction(message: string): void {
282
- this.automaticClose.cancelPending();
297
+ this.automaticClose?.cancelPending();
283
298
  const { executeSql, rollback } = getRejectedFunctions(message);
284
299
  this.executeSql = executeSql;
285
300
  this.rollback = this.end = rollback;
@@ -321,7 +336,7 @@ export abstract class Tx {
321
336
  bindings: Bindings = [],
322
337
  ...args: any[]
323
338
  ): Promise<Result> {
324
- this.automaticClose.incrementPending();
339
+ this.automaticClose?.incrementPending();
325
340
 
326
341
  const t0 = Date.now();
327
342
  try {
@@ -329,7 +344,7 @@ export abstract class Tx {
329
344
  } catch (err: any) {
330
345
  throw wrapDatabaseError(err);
331
346
  } finally {
332
- this.automaticClose.decrementPending();
347
+ this.automaticClose?.decrementPending();
333
348
  const queryTime = Date.now() - t0;
334
349
  metrics.emit('db_query_time', {
335
350
  queryTime,
@@ -376,7 +391,7 @@ export abstract class Tx {
376
391
  this.clearListeners();
377
392
  }
378
393
  public disableAutomaticClose(): void {
379
- this.automaticClose.cancelPending();
394
+ this.automaticClose?.cancelPending();
380
395
  }
381
396
 
382
397
  private listeners: {
@@ -439,11 +454,16 @@ const getStackTraceErr: () => Error | undefined = env.DEBUG
439
454
  : (_.noop as () => undefined);
440
455
 
441
456
  const createTransaction = (createFunc: CreateTransactionFn): TransactionFn => {
442
- return async <T>(fn?: (tx: Tx) => Resolvable<T>): Promise<T | Tx> => {
457
+ return async <T>(
458
+ fn?: (tx: Tx) => Resolvable<T>,
459
+ options?: {
460
+ timeoutMS?: number;
461
+ },
462
+ ): Promise<T | Tx> => {
443
463
  const stackTraceErr = getStackTraceErr();
444
464
  let tx;
445
465
  try {
446
- tx = await createFunc(stackTraceErr);
466
+ tx = await createFunc(stackTraceErr, options?.timeoutMS);
447
467
  } catch (err: any) {
448
468
  throw wrapDatabaseError(err);
449
469
  }
@@ -560,8 +580,9 @@ if (maybePg != null) {
560
580
  private db: Pg.PoolClient,
561
581
  readOnly: boolean,
562
582
  stackTraceErr?: Error | AutomaticClose,
583
+ timeoutMS?: number,
563
584
  ) {
564
- super(readOnly, stackTraceErr);
585
+ super(readOnly, stackTraceErr, timeoutMS);
565
586
  }
566
587
 
567
588
  protected clone(readOnly = this.readOnly) {
@@ -689,15 +710,15 @@ if (maybePg != null) {
689
710
  return {
690
711
  engine: Engines.postgres,
691
712
  executeSql: atomicExecuteSql,
692
- transaction: createTransaction(async (stackTraceErr) => {
713
+ transaction: createTransaction(async (stackTraceErr, timeoutMS) => {
693
714
  const client = await pool.connect();
694
- const tx = new PostgresTx(client, false, stackTraceErr);
715
+ const tx = new PostgresTx(client, false, stackTraceErr, timeoutMS);
695
716
  void tx.executeSql('START TRANSACTION;');
696
717
  return tx;
697
718
  }),
698
- readTransaction: createTransaction(async (stackTraceErr) => {
719
+ readTransaction: createTransaction(async (stackTraceErr, timeoutMS) => {
699
720
  const client = await replica.connect();
700
- const tx = new PostgresTx(client, false, stackTraceErr);
721
+ const tx = new PostgresTx(client, false, stackTraceErr, timeoutMS);
701
722
  void tx.executeSql('START TRANSACTION READ ONLY;');
702
723
  return tx.asReadOnly();
703
724
  }),
@@ -747,8 +768,9 @@ if (maybeMysql != null) {
747
768
  private close: CloseTransactionFn,
748
769
  readOnly: boolean,
749
770
  stackTraceErr?: Error | AutomaticClose,
771
+ timeoutMS?: number,
750
772
  ) {
751
- super(readOnly, stackTraceErr);
773
+ super(readOnly, stackTraceErr, timeoutMS);
752
774
  }
753
775
 
754
776
  protected clone(readOnly = this.readOnly) {
@@ -810,17 +832,17 @@ if (maybeMysql != null) {
810
832
  return {
811
833
  engine: Engines.mysql,
812
834
  executeSql: atomicExecuteSql,
813
- transaction: createTransaction(async (stackTraceErr) => {
835
+ transaction: createTransaction(async (stackTraceErr, timeoutMS) => {
814
836
  const client = await getConnectionAsync();
815
837
  const close = () => client.release();
816
- const tx = new MySqlTx(client, close, false, stackTraceErr);
838
+ const tx = new MySqlTx(client, close, false, stackTraceErr, timeoutMS);
817
839
  void tx.executeSql('START TRANSACTION;');
818
840
  return tx;
819
841
  }),
820
- readTransaction: createTransaction(async (stackTraceErr) => {
842
+ readTransaction: createTransaction(async (stackTraceErr, timeoutMS) => {
821
843
  const client = await getConnectionAsync();
822
844
  const close = () => client.release();
823
- const tx = new MySqlTx(client, close, false, stackTraceErr);
845
+ const tx = new MySqlTx(client, close, false, stackTraceErr, timeoutMS);
824
846
  void tx.executeSql('START TRANSACTION READ ONLY;');
825
847
  return tx.asReadOnly();
826
848
  }),