velocious 1.0.694 → 1.0.696

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 (57) hide show
  1. package/README.md +1 -1
  2. package/build/configuration-types.js +1 -0
  3. package/build/database/advisory-lock-runner.js +31 -0
  4. package/build/database/advisory-lock-telemetry.js +129 -0
  5. package/build/database/drivers/base.js +114 -2
  6. package/build/database/drivers/mssql/index.js +16 -0
  7. package/build/database/drivers/mysql/index.js +14 -0
  8. package/build/database/drivers/pgsql/index.js +17 -0
  9. package/build/database/drivers/sqlite/base.js +20 -0
  10. package/build/database/drivers/sqlite/index.js +33 -0
  11. package/build/database/migrations-ledger.js +96 -8
  12. package/build/database/record/index.js +28 -0
  13. package/build/src/configuration-types.d.ts +8 -0
  14. package/build/src/configuration-types.d.ts.map +1 -1
  15. package/build/src/configuration-types.js +2 -1
  16. package/build/src/database/advisory-lock-runner.d.ts +32 -0
  17. package/build/src/database/advisory-lock-runner.d.ts.map +1 -1
  18. package/build/src/database/advisory-lock-runner.js +29 -1
  19. package/build/src/database/advisory-lock-telemetry.d.ts +129 -0
  20. package/build/src/database/advisory-lock-telemetry.d.ts.map +1 -0
  21. package/build/src/database/advisory-lock-telemetry.js +122 -0
  22. package/build/src/database/drivers/base.d.ts +51 -0
  23. package/build/src/database/drivers/base.d.ts.map +1 -1
  24. package/build/src/database/drivers/base.js +104 -3
  25. package/build/src/database/drivers/mssql/index.d.ts +8 -0
  26. package/build/src/database/drivers/mssql/index.d.ts.map +1 -1
  27. package/build/src/database/drivers/mssql/index.js +13 -1
  28. package/build/src/database/drivers/mysql/index.d.ts +8 -0
  29. package/build/src/database/drivers/mysql/index.d.ts.map +1 -1
  30. package/build/src/database/drivers/mysql/index.js +13 -1
  31. package/build/src/database/drivers/pgsql/index.d.ts +8 -0
  32. package/build/src/database/drivers/pgsql/index.d.ts.map +1 -1
  33. package/build/src/database/drivers/pgsql/index.js +14 -1
  34. package/build/src/database/drivers/sqlite/base.d.ts +12 -0
  35. package/build/src/database/drivers/sqlite/base.d.ts.map +1 -1
  36. package/build/src/database/drivers/sqlite/base.js +18 -1
  37. package/build/src/database/drivers/sqlite/index.d.ts +15 -0
  38. package/build/src/database/drivers/sqlite/index.d.ts.map +1 -1
  39. package/build/src/database/drivers/sqlite/index.js +31 -1
  40. package/build/src/database/migrations-ledger.d.ts +34 -1
  41. package/build/src/database/migrations-ledger.d.ts.map +1 -1
  42. package/build/src/database/migrations-ledger.js +82 -9
  43. package/build/src/database/record/index.d.ts +54 -0
  44. package/build/src/database/record/index.d.ts.map +1 -1
  45. package/build/src/database/record/index.js +26 -1
  46. package/package.json +1 -1
  47. package/src/configuration-types.js +1 -0
  48. package/src/database/advisory-lock-runner.js +31 -0
  49. package/src/database/advisory-lock-telemetry.js +129 -0
  50. package/src/database/drivers/base.js +114 -2
  51. package/src/database/drivers/mssql/index.js +16 -0
  52. package/src/database/drivers/mysql/index.js +14 -0
  53. package/src/database/drivers/pgsql/index.js +17 -0
  54. package/src/database/drivers/sqlite/base.js +20 -0
  55. package/src/database/drivers/sqlite/index.js +33 -0
  56. package/src/database/migrations-ledger.js +96 -8
  57. package/src/database/record/index.js +28 -0
@@ -106,6 +106,34 @@ export default class AdvisoryLockRunner {
106
106
  return await this.runLockedCallback({ callback, connection, holdTimeoutMs: args.holdTimeoutMs, name });
107
107
  });
108
108
  }
109
+ /**
110
+ * Runs a callback if the advisory lock can be acquired without waiting;
111
+ * otherwise returns a `{acquired: false}` defer result instead of throwing.
112
+ *
113
+ * This is the non-throwing counterpart of `withAdvisoryLockOrFail` for hot
114
+ * paths: "holder busy, defer me" is a first-class outcome, so a contended
115
+ * lock produces zero exception traffic and — because the probe is a single
116
+ * immediate try-acquire — zero pinned connections. Callers reschedule via
117
+ * their own event-driven retry machinery. The result form is identical
118
+ * across tiers: the driver's `tryAcquireAdvisoryLock` maps per-tier (MySQL
119
+ * `GET_LOCK(name, 0)`, PostgreSQL `pg_try_advisory_lock`, SQL Server
120
+ * `sp_getapplock @LockTimeout = 0`, SQLite process-local queue, SQLite Node
121
+ * file lock), so a caller never branches on the backend.
122
+ * @template T
123
+ * @param {string} name - Lock name.
124
+ * @param {(args?: {control: import("awaitery/build/timeout.js").TimeoutControl}) => Promise<T>} callback - Callback to invoke while the lock is held.
125
+ * @param {{holdTimeoutMs?: number | null, dedicatedConnection?: boolean}} [args] - Hold timeout options.
126
+ * @returns {Promise<{acquired: true, result: T} | {acquired: false, reason: "contended", lockName: string}>} - Either the held-callback result or the defer outcome.
127
+ */
128
+ async withAdvisoryLockOrDefer(name, callback, args = {}) {
129
+ return await this.withLockConnection(args, async (connection) => {
130
+ const acquired = await connection.tryAcquireAdvisoryLock(name);
131
+ if (!acquired)
132
+ return { acquired: false, reason: "contended", lockName: name };
133
+ const result = await this.runLockedCallback({ callback, connection, holdTimeoutMs: args.holdTimeoutMs, name });
134
+ return { acquired: true, result };
135
+ });
136
+ }
109
137
  /**
110
138
  * Runs the lock holder callback and releases the lock from its owning connection.
111
139
  * @template T
@@ -202,4 +230,4 @@ export default class AdvisoryLockRunner {
202
230
  }
203
231
  }
204
232
  export { AdvisoryLockBusyError, AdvisoryLockHoldTimeoutError, AdvisoryLockTimeoutError };
205
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2aXNvcnktbG9jay1ydW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGF0YWJhc2UvYWR2aXNvcnktbG9jay1ydW5uZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sT0FBTyxFQUFFLEVBQUMsWUFBWSxFQUFDLE1BQU0sMkJBQTJCLENBQUE7QUFFL0Q7O0dBRUc7QUFDSCxNQUFNLHdCQUF5QixTQUFRLEtBQUs7SUFDMUM7Ozs7T0FJRztJQUNILFlBQVksT0FBTyxFQUFFLEVBQUMsSUFBSSxFQUFDO1FBQ3pCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUNkLElBQUksQ0FBQyxJQUFJLEdBQUcsMEJBQTBCLENBQUE7UUFDdEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUE7SUFDdEIsQ0FBQztDQUNGO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLHFCQUFzQixTQUFRLEtBQUs7SUFDdkM7Ozs7T0FJRztJQUNILFlBQVksT0FBTyxFQUFFLEVBQUMsSUFBSSxFQUFDO1FBQ3pCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUNkLElBQUksQ0FBQyxJQUFJLEdBQUcsdUJBQXVCLENBQUE7UUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUE7SUFDdEIsQ0FBQztDQUNGO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLDRCQUE2QixTQUFRLEtBQUs7SUFDOUM7Ozs7T0FJRztJQUNILFlBQVksT0FBTyxFQUFFLEVBQUMsSUFBSSxFQUFDO1FBQ3pCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUNkLElBQUksQ0FBQyxJQUFJLEdBQUcsOEJBQThCLENBQUE7UUFDMUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUE7SUFDdEIsQ0FBQztDQUNGO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxPQUFPLE9BQU8sa0JBQWtCO0lBQ3JDOzs7T0FHRztJQUNILFlBQVksRUFB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O29CQUNILE9BQU8sTUFBTSxRQUFRLENBQUMsRUFBQyxPQUFPLEVBQUMsQ0FBQyxDQUFBO2dCQUNsQyxDQUFDO3dCQUFTLENBQUM7b0JBQ1QsZUFBZSxHQUFHLElBQUksQ0FBQTtnQkFDeEIsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFBO1FBQ0osQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsZUFBZSxJQUFJLEtBQUssWUFBWSxZQUFZLEVBQUUsQ0FBQztnQkFDdEQsTUFBTSxJQUFJLDRCQUE0QixDQUFDLGlCQUFpQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsYUFBYSxJQUFJLEVBQUUsRUFBQyxJQUFJLEVBQUMsQ0FBQyxDQUFBO1lBQzdILENBQUM7WUFFRCxNQUFNLEtBQUssQ0FBQTtRQUNiLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUFFRCxPQUFPLEVBQUMscUJBQXFCLEVBQUUsNEJBQTRCLEVBQUUsd0JBQXdCLEVBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgdGltZW91dCwge1RpbWVvdXRFcnJvcn0gZnJvbSBcImF3YWl0ZXJ5L2J1aWxkL3RpbWVvdXQuanNcIlxuXG4vKipcbiAqIFRocm93biB3aGVuIGFuIGFkdmlzb3J5IGxvY2sgY291bGQgbm90IGJlIGFjcXVpcmVkIGJlZm9yZSBgdGltZW91dE1zYCBlbGFwc2VkLlxuICovXG5jbGFzcyBBZHZpc29yeUxvY2tUaW1lb3V0RXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIC8qKlxuICAgKiBSdW5zIGNvbnN0cnVjdG9yLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZSAtIEVycm9yIG1lc3NhZ2UuXG4gICAqIEBwYXJhbSB7e25hbWU6IHN0cmluZ319IGFyZ3MgLSBUaGUgYWR2aXNvcnkgbG9jayBuYW1lIHRoYXQgdGltZWQgb3V0LlxuICAgKi9cbiAgY29uc3RydWN0b3IobWVzc2FnZSwge25hbWV9KSB7XG4gICAgc3VwZXIobWVzc2FnZSlcbiAgICB0aGlzLm5hbWUgPSBcIkFkdmlzb3J5TG9ja1RpbWVvdXRFcnJvclwiXG4gICAgdGhpcy5sb2NrTmFtZSA9IG5hbWVcbiAgfVxufVxuXG4vKipcbiAqIFRocm93biB3aGVuIGB3aXRoQWR2aXNvcnlMb2NrT3JGYWlsYCBmaW5kcyB0aGUgbG9jayBhbHJlYWR5IGhlbGQuXG4gKi9cbmNsYXNzIEFkdmlzb3J5TG9ja0J1c3lFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgLyoqXG4gICAqIFJ1bnMgY29uc3RydWN0b3IuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBtZXNzYWdlIC0gRXJyb3IgbWVzc2FnZS5cbiAgICogQHBhcmFtIHt7bmFtZTogc3RyaW5nfX0gYXJncyAtIFRoZSBhZHZpc29yeSBsb2NrIG5hbWUgdGhhdCB3YXMgYWxyZWFkeSBoZWxkLlxuICAgKi9cbiAgY29uc3RydWN0b3IobWVzc2FnZSwge25hbWV9KSB7XG4gICAgc3VwZXIobWVzc2FnZSlcbiAgICB0aGlzLm5hbWUgPSBcIkFkdmlzb3J5TG9ja0J1c3lFcnJvclwiXG4gICAgdGhpcy5sb2NrTmFtZSA9IG5hbWVcbiAgfVxufVxuXG4vKipcbiAqIFRocm93biB3aGVuIGEgY2FsbGJhY2sgaG9sZHMgYW4gYWR2aXNvcnkgbG9jayBsb25nZXIgdGhhbiBgaG9sZFRpbWVvdXRNc2AuXG4gKi9cbmNsYXNzIEFkdmlzb3J5TG9ja0hvbGRUaW1lb3V0RXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIC8qKlxuICAgKiBSdW5zIGNvbnN0cnVjdG9yLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZSAtIEVycm9yIG1lc3NhZ2UuXG4gICAqIEBwYXJhbSB7e25hbWU6IHN0cmluZ319IGFyZ3MgLSBUaGUgYWR2aXNvcnkgbG9jayBuYW1lIHdob3NlIGhvbGQgdGltZWQgb3V0LlxuICAgKi9cbiAgY29uc3RydWN0b3IobWVzc2FnZSwge25hbWV9KSB7XG4gICAgc3VwZXIobWVzc2FnZSlcbiAgICB0aGlzLm5hbWUgPSBcIkFkdmlzb3J5TG9ja0hvbGRUaW1lb3V0RXJyb3JcIlxuICAgIHRoaXMubG9ja05hbWUgPSBuYW1lXG4gIH1cbn1cblxuLyoqXG4gKiBSdW5zIGFkdmlzb3J5IGxvY2tzIG9uIHRoZSBjYWxsZXIgY29ubmVjdGlvbiBieSBkZWZhdWx0LCB1c2luZyBhIGRlZGljYXRlZFxuICogbG9jayBjb25uZWN0aW9uIHdoZW4gYGRlZGljYXRlZENvbm5lY3Rpb25gIGlzIHJlcXVlc3RlZCBvciB3aGVuIGEgcG9zaXRpdmVcbiAqIGhvbGQgdGltZW91dCBuZWVkcyBzZXBhcmF0ZSBvd25lcnNoaXAuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFkdmlzb3J5TG9ja1J1bm5lciB7XG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIGFkdmlzb3J5LWxvY2sgcnVubmVyIGZvciBvbmUgbW9kZWwgZGF0YWJhc2UgaWRlbnRpZmllci5cbiAgICogQHBhcmFtIHt7Y29uZmlndXJhdGlvbjogaW1wb3J0KFwiLi4vY29uZmlndXJhdGlvbi5qc1wiKS5kZWZhdWx0LCBjb25uZWN0aW9uUHJvdmlkZXI6ICgpID0+IGltcG9ydChcIi4vZHJpdmVycy9iYXNlLmpzXCIpLmRlZmF1bHQsIGRhdGFiYXNlSWRlbnRpZmllcjogc3RyaW5nfX0gYXJncyAtIFJ1bm5lciBkZXBlbmRlbmNpZXMuXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih7Y29uZmlndXJhdGlvbiwgY29ubmVjdGlvblByb3ZpZGVyLCBkYXRhYmFzZUlkZW50aWZpZXJ9KSB7XG4gICAgdGhpcy5jb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvblxuICAgIHRoaXMuY29ubmVjdGlvblByb3ZpZGVyID0gY29ubmVjdGlvblByb3ZpZGVyXG4gICAgdGhpcy5kYXRhYmFzZUlkZW50aWZpZXIgPSBkYXRhYmFzZUlkZW50aWZpZXJcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGEgY2FsbGJhY2sgYWZ0ZXIgYWNxdWlyaW5nIHRoZSBhZHZpc29yeSBsb2NrLCB3YWl0aW5nIHVwIHRvIGB0aW1lb3V0TXNgLlxuICAgKiBXaGVuIGBkZWRpY2F0ZWRDb25uZWN0aW9uYCBpcyB0cnVlIHRoZSBsb2NrIGlzIGFjcXVpcmVkIG9uIGEgc3Bhd25lZFxuICAgKiBjb25uZWN0aW9uIHRoYXQgaXMgcmVsZWFzZWQgYWZ0ZXIgdGhlIGNhbGxiYWNrIGZpbmlzaGVzLCB3aGlsZSB0aGUgY2FsbGJhY2tcbiAgICogaXRzZWxmIHN0aWxsIHJ1bnMgYWdhaW5zdCB0aGUgY2FsbGVyL21vZGVsIGNvbm5lY3Rpb24uIFdoZW4gYSBgaG9sZFRpbWVvdXRNc2BcbiAgICogaXMgc2V0IHRoZSBjYWxsYmFjayByZWNlaXZlcyBhIGBUaW1lb3V0Q29udHJvbGAgZnJvbSBhd2FpdGVyeSBmb3IgY29vcGVyYXRpdmVcbiAgICogY2FuY2VsbGF0aW9uIChgY29udHJvbC5jaGVjaygpYCwgYGNvbnRyb2wuc2lnbmFsYCwgYGNvbnRyb2wudGltZWRPdXRgLFxuICAgKiBgY29udHJvbC5yZW1haW5pbmcoKWApOyBhIGRlZGljYXRlZCBjb25uZWN0aW9uIGlzIGFsc28gdXNlZCBzbyB0aW1lb3V0XG4gICAqIGNsZWFudXAgY2FuIHJlbGVhc2UgdGhlIGxvY2sgZXZlbiBpZiBjYWxsYmFjayBkYXRhYmFzZSB3b3JrIGlzIHN0dWNrLlxuICAgKiBAdGVtcGxhdGUgVFxuICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSAtIExvY2sgbmFtZS5cbiAgICogQHBhcmFtIHsoYXJncz86IHtjb250cm9sOiBpbXBvcnQoXCJhd2FpdGVyeS9idWlsZC90aW1lb3V0LmpzXCIpLlRpbWVvdXRDb250cm9sfSkgPT4gUHJvbWlzZTxUPn0gY2FsbGJhY2sgLSBDYWxsYmFjayB0byBpbnZva2Ugd2hpbGUgdGhlIGxvY2sgaXMgaGVsZC5cbiAgICogQHBhcmFtIHt7dGltZW91dE1zPzogbnVtYmVyIHwgbnVsbCwgaG9sZFRpbWVvdXRNcz86IG51bWJlciB8IG51bGwsIGRlZGljYXRlZENvbm5lY3Rpb24/OiBib29sZWFufX0gW2FyZ3NdIC0gTG9jayBhbmQgaG9sZCB0aW1lb3V0IG9wdGlvbnMuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPFQ+fSAtIFJlc29sdmVzIHdpdGggdGhlIGNhbGxiYWNrIHJlc3VsdC5cbiAgICovXG4gIGFzeW5jIHdpdGhBZHZpc29yeUxvY2sobmFtZSwgY2FsbGJhY2ssIGFyZ3MgPSB7fSkge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLndpdGhMb2NrQ29ubmVjdGlvbihhcmdzLCBhc3luYyAoY29ubmVjdGlvbikgPT4ge1xuICAgICAgY29uc3QgYWNxdWlyZWQgPSBhd2FpdCBjb25uZWN0aW9uLmFjcXVpcmVBZHZpc29yeUxvY2sobmFtZSwgYXJncylcblxuICAgICAgaWYgKCFhY3F1aXJlZCkge1xuICAgICAgICB0aHJvdyBuZXcgQWR2aXNvcnlMb2NrVGltZW91dEVycm9yKGBUaW1lZCBvdXQgd2FpdGluZyBmb3IgYWR2aXNvcnkgbG9jayAke0pTT04uc3RyaW5naWZ5KG5hbWUpfWAsIHtuYW1lfSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMucnVuTG9ja2VkQ2FsbGJhY2soe2NhbGxiYWNrLCBjb25uZWN0aW9uLCBob2xkVGltZW91dE1zOiBhcmdzLmhvbGRUaW1lb3V0TXMsIG5hbWV9KVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogUnVucyBhIGNhbGxiYWNrIG9ubHkgaWYgdGhlIGFkdmlzb3J5IGxvY2sgY2FuIGJlIGFjcXVpcmVkIGltbWVkaWF0ZWx5LlxuICAgKiBXaGVuIGBkZWRpY2F0ZWRDb25uZWN0aW9uYCBpcyB0cnVlIHRoZSBsb2NrIGlzIGFjcXVpcmVkIG9uIGEgc3Bhd25lZFxuICAgKiBjb25uZWN0aW9uIHRoYXQgaXMgcmVsZWFzZWQgYWZ0ZXIgdGhlIGNhbGxiYWNrIGZpbmlzaGVzLCB3aGlsZSB0aGUgY2FsbGJhY2tcbiAgICogaXRzZWxmIHN0aWxsIHJ1bnMgYWdhaW5zdCB0aGUgY2FsbGVyL21vZGVsIGNvbm5lY3Rpb24uIFdoZW4gYSBgaG9sZFRpbWVvdXRNc2BcbiAgICogaXMgc2V0IHRoZSBjYWxsYmFjayByZWNlaXZlcyBhIGBUaW1lb3V0Q29udHJvbGAgZnJvbSBhd2FpdGVyeSBmb3IgY29vcGVyYXRpdmVcbiAgICogY2FuY2VsbGF0aW9uLlxuICAgKiBAdGVtcGxhdGUgVFxuICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSAtIExvY2sgbmFtZS5cbiAgICogQHBhcmFtIHsoYXJncz86IHtjb250cm9sOiBpbXBvcnQoXCJhd2FpdGVyeS9idWlsZC90aW1lb3V0LmpzXCIpLlRpbWVvdXRDb250cm9sfSkgPT4gUHJvbWlzZTxUPn0gY2FsbGJhY2sgLSBDYWxsYmFjayB0byBpbnZva2Ugd2hpbGUgdGhlIGxvY2sgaXMgaGVsZC5cbiAgICogQHBhcmFtIHt7aG9sZFRpbWVvdXRNcz86IG51bWJlciB8IG51bGwsIGRlZGljYXRlZENvbm5lY3Rpb24/OiBib29sZWFufX0gW2FyZ3NdIC0gSG9sZCB0aW1lb3V0IG9wdGlvbnMuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPFQ+fSAtIFJlc29sdmVzIHdpdGggdGhlIGNhbGxiYWNrIHJlc3VsdC5cbiAgICovXG4gIGFzeW5jIHdpdGhBZHZpc29yeUxvY2tPckZhaWwobmFtZSwgY2FsbGJhY2ssIGFyZ3MgPSB7fSkge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLndpdGhMb2NrQ29ubmVjdGlvbihhcmdzLCBhc3luYyAoY29ubmVjdGlvbikgPT4ge1xuICAgICAgY29uc3QgYWNxdWlyZWQgPSBhd2FpdCBjb25uZWN0aW9uLnRyeUFjcXVpcmVBZHZpc29yeUxvY2sobmFtZSlcblxuICAgICAgaWYgKCFhY3F1aXJlZCkge1xuICAgICAgICB0aHJvdyBuZXcgQWR2aXNvcnlMb2NrQnVzeUVycm9yKGBBZHZpc29yeSBsb2NrICR7SlNPTi5zdHJpbmdpZnkobmFtZSl9IGlzIGFscmVhZHkgaGVsZGAsIHtuYW1lfSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMucnVuTG9ja2VkQ2FsbGJhY2soe2NhbGxiYWNrLCBjb25uZWN0aW9uLCBob2xkVGltZW91dE1zOiBhcmdzLmhvbGRUaW1lb3V0TXMsIG5hbWV9KVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogUnVucyB0aGUgbG9jayBob2xkZXIgY2FsbGJhY2sgYW5kIHJlbGVhc2VzIHRoZSBsb2NrIGZyb20gaXRzIG93bmluZyBjb25uZWN0aW9uLlxuICAgKiBAdGVtcGxhdGUgVFxuICAgKiBAcGFyYW0ge3tjYWxsYmFjazogKGFyZ3M/OiB7Y29udHJvbDogaW1wb3J0KFwiYXdhaXRlcnkvYnVpbGQvdGltZW91dC5qc1wiKS5UaW1lb3V0Q29udHJvbH0pID0+IFByb21pc2U8VD4sIGNvbm5lY3Rpb246IGltcG9ydChcIi4vZHJpdmVycy9iYXNlLmpzXCIpLmRlZmF1bHQsIGhvbGRUaW1lb3V0TXM/OiBudW1iZXIgfCBudWxsLCBuYW1lOiBzdHJpbmd9fSBhcmdzIC0gTG9ja2VkIGNhbGxiYWNrIGFyZ3MuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPFQ+fSAtIFJlc29sdmVzIHdpdGggdGhlIGNhbGxiYWNrIHJlc3VsdC5cbiAgICovXG4gIGFzeW5jIHJ1bkxvY2tlZENhbGxiYWNrKHtjYWxsYmFjaywgY29ubmVjdGlvbiwgaG9sZFRpbWVvdXRNcywgbmFtZX0pIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGF3YWl0IEFkdmlzb3J5TG9ja1J1bm5lci5ydW5XaXRoQWR2aXNvcnlMb2NrSG9sZFRpbWVvdXQobmFtZSwgY2FsbGJhY2ssIGhvbGRUaW1lb3V0TXMpXG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IGNvbm5lY3Rpb24ucmVsZWFzZUFkdmlzb3J5TG9jayhuYW1lKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGxvY2sgd29yayBvbiB0aGUgY2FsbGVyIGNvbm5lY3Rpb24gdW5sZXNzIGBkZWRpY2F0ZWRDb25uZWN0aW9uYCBpc1xuICAgKiByZXF1ZXN0ZWQgb3IgYSBwb3NpdGl2ZSBob2xkIHRpbWVvdXQgbmVlZHMgaXRzIG93biBsb2NrIGNvbm5lY3Rpb24uXG4gICAqIEB0ZW1wbGF0ZSBUXG4gICAqIEBwYXJhbSB7e2RlZGljYXRlZENvbm5lY3Rpb24/OiBib29sZWFuLCBob2xkVGltZW91dE1zPzogbnVtYmVyIHwgbnVsbH19IGFyZ3MgLSBMb2NrIGNvbm5lY3Rpb24gb3B0aW9ucy5cbiAgICogQHBhcmFtIHsoY29ubmVjdGlvbjogaW1wb3J0KFwiLi9kcml2ZXJzL2Jhc2UuanNcIikuZGVmYXVsdCkgPT4gUHJvbWlzZTxUPn0gY2FsbGJhY2sgLSBDYWxsYmFjayByZWNlaXZpbmcgdGhlIGNvbm5lY3Rpb24gdGhhdCBvd25zIHRoZSBhZHZpc29yeSBsb2NrLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxUPn0gLSBSZXNvbHZlcyB3aXRoIHRoZSBjYWxsYmFjayByZXN1bHQuXG4gICAqL1xuICBhc3luYyB3aXRoTG9ja0Nvbm5lY3Rpb24oYXJncywgY2FsbGJhY2spIHtcbiAgICBjb25zdCBob2xkVGltZW91dE1zID0gYXJncy5ob2xkVGltZW91dE1zXG5cbiAgICBpZiAoYXJncy5kZWRpY2F0ZWRDb25uZWN0aW9uIHx8IChob2xkVGltZW91dE1zICYmIGhvbGRUaW1lb3V0TXMgPiAwKSkge1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMud2l0aERlZGljYXRlZENvbm5lY3Rpb24oY2FsbGJhY2spXG4gICAgfVxuXG4gICAgcmV0dXJuIGF3YWl0IGNhbGxiYWNrKHRoaXMuY29ubmVjdGlvblByb3ZpZGVyKCkpXG4gIH1cblxuICAvKipcbiAgICogU3Bhd25zIGEgZGVkaWNhdGVkIGxvY2sgY29ubmVjdGlvbiBhbmQgY2xvc2VzIGl0IGFmdGVyIGxvY2sgd29yayBjb21wbGV0ZXNcbiAgICogd2hlbiB0aGUgc3Bhd25lZCBkcml2ZXIgb3ducyB0aGUgdW5kZXJseWluZyBwaHlzaWNhbCBjb25uZWN0aW9uLlxuICAgKiBAdGVtcGxhdGUgVFxuICAgKiBAcGFyYW0geyhjb25uZWN0aW9uOiBpbXBvcnQoXCIuL2RyaXZlcnMvYmFzZS5qc1wiKS5kZWZhdWx0KSA9PiBQcm9taXNlPFQ+fSBjYWxsYmFjayAtIENhbGxiYWNrIHRoYXQgcmVjZWl2ZXMgdGhlIGRlZGljYXRlZCBsb2NrIGNvbm5lY3Rpb24uXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPFQ+fSAtIFJlc29sdmVzIHdpdGggdGhlIGNhbGxiYWNrIHJlc3VsdC5cbiAgICovXG4gIGFzeW5jIHdpdGhEZWRpY2F0ZWRDb25uZWN0aW9uKGNhbGxiYWNrKSB7XG4gICAgY29uc3QgY29ubmVjdGlvbiA9IGF3YWl0IHRoaXMuY29uZmlndXJhdGlvbi5nZXREYXRhYmFzZVBvb2wodGhpcy5kYXRhYmFzZUlkZW50aWZpZXIpLnNwYXduQ29ubmVjdGlvbigpXG5cbiAgICAvLyBUaGUgc3Bhd25lZCBkcml2ZXIgb3ducyBpdHMgcGh5c2ljYWwgY29ubmVjdGlvbiB1bmxlc3MgaXQgYm9ycm93cyBhIHNoYXJlZCBvbmVcbiAgICAvLyB2aWEgYGdldENvbm5lY3Rpb25gLiBBbiBvd25lZCBjb25uZWN0aW9uIGxpdmVzIG91dHNpZGUgdGhlIHBvb2xzJyB0cmFja2VkIHNldHMsXG4gICAgLy8gc28gcmVnaXN0ZXIgaXQgd2hpbGUgdGhlIGxvY2sgaXMgaGVsZDogYSBzaHV0ZG93biB0aGVuIGNsb3NlcyBpdCAocmVsZWFzaW5nIHRoZVxuICAgIC8vIGxvY2spIGluc3RlYWQgb2Ygb3JwaGFuaW5nIGEgaGFsZi1vcGVuIHNlc3Npb24gdW50aWwgdGhlIERCIGB3YWl0X3RpbWVvdXRgLlxuICAgIGNvbnN0IG93bnNDb25uZWN0aW9uID0gIWNvbm5lY3Rpb24uZ2V0QXJncygpLmdldENvbm5lY3Rpb25cblxuICAgIGlmIChvd25zQ29ubmVjdGlvbikgdGhpcy5jb25maWd1cmF0aW9uLnJlZ2lzdGVyQWR2aXNvcnlMb2NrQ29ubmVjdGlvbihjb25uZWN0aW9uKVxuXG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBhd2FpdCBjYWxsYmFjayhjb25uZWN0aW9uKVxuICAgIH0gZmluYWxseSB7XG4gICAgICBpZiAob3duc0Nvbm5lY3Rpb24pIHtcbiAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uLnVucmVnaXN0ZXJBZHZpc29yeUxvY2tDb25uZWN0aW9uKGNvbm5lY3Rpb24pXG4gICAgICAgIGF3YWl0IGNvbm5lY3Rpb24uY2xvc2UoKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXdhaXQgY29ubmVjdGlvbi5yZWxlYXNlSGVsZEFkdmlzb3J5TG9ja3MoKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGBjYWxsYmFja2AsIHJlamVjdGluZyB3aXRoIGBBZHZpc29yeUxvY2tIb2xkVGltZW91dEVycm9yYCBpZiBpdCBoYXNcbiAgICogbm90IHNldHRsZWQgd2l0aGluIGBob2xkVGltZW91dE1zYC4gVGhlIGNhbGxiYWNrIGlzIG5vdCBjYW5jZWxsZWQ7IGNhbGxlcnNcbiAgICogdXNlIGEgZGVkaWNhdGVkIGFkdmlzb3J5LWxvY2sgY29ubmVjdGlvbiBzbyB0aGUgbG9jayBjYW4gc3RpbGwgYmUgcmVsZWFzZWQuXG4gICAqXG4gICAqIFRoZSBjYWxsYmFjayByZWNlaXZlcyBhIGBUaW1lb3V0Q29udHJvbGAgZnJvbSBhd2FpdGVyeSwgZW5hYmxpbmcgY29vcGVyYXRpdmVcbiAgICogY2FuY2VsbGF0aW9uIHZpYSBgY29udHJvbC5jaGVjaygpYCwgYGNvbnRyb2wuc2lnbmFsYCwgYGNvbnRyb2wudGltZWRPdXRgLFxuICAgKiBhbmQgYGNvbnRyb2wucmVtYWluaW5nKClgLlxuICAgKiBAdGVtcGxhdGUgVFxuICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSAtIExvY2sgbmFtZSAoZm9yIHRoZSBlcnJvciBtZXNzYWdlKS5cbiAgICogQHBhcmFtIHsoYXJncz86IHtjb250cm9sOiBpbXBvcnQoXCJhd2FpdGVyeS9idWlsZC90aW1lb3V0LmpzXCIpLlRpbWVvdXRDb250cm9sfSkgPT4gUHJvbWlzZTxUPn0gY2FsbGJhY2sgLSBDYWxsYmFjayBob2xkaW5nIHRoZSBsb2NrLlxuICAgKiBAcGFyYW0ge251bWJlciB8IG51bGx9IFtob2xkVGltZW91dE1zXSAtIE1heCBob2xkIHRpbWU7IGZhbHN5IGRpc2FibGVzIHRoZSB0aW1lb3V0LlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxUPn0gLSBSZXNvbHZlcyB3aXRoIHRoZSBjYWxsYmFjayByZXN1bHQuXG4gICAqL1xuICBzdGF0aWMgYXN5bmMgcnVuV2l0aEFkdmlzb3J5TG9ja0hvbGRUaW1lb3V0KG5hbWUsIGNhbGxiYWNrLCBob2xkVGltZW91dE1zKSB7XG4gICAgaWYgKCFob2xkVGltZW91dE1zIHx8IGhvbGRUaW1lb3V0TXMgPD0gMCkge1xuICAgICAgcmV0dXJuIGF3YWl0IGNhbGxiYWNrKClcbiAgICB9XG5cbiAgICBsZXQgY2FsbGJhY2tTZXR0bGVkID0gZmFsc2VcblxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYXdhaXQgdGltZW91dCh7dGltZW91dDogaG9sZFRpbWVvdXRNc30sIGFzeW5jICh7Y29udHJvbH0pID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gYXdhaXQgY2FsbGJhY2soe2NvbnRyb2x9KVxuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgIGNhbGxiYWNrU2V0dGxlZCA9IHRydWVcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgaWYgKCFjYWxsYmFja1NldHRsZWQgfHwgZXJyb3IgaW5zdGFuY2VvZiBUaW1lb3V0RXJyb3IpIHtcbiAgICAgICAgdGhyb3cgbmV3IEFkdmlzb3J5TG9ja0hvbGRUaW1lb3V0RXJyb3IoYEFkdmlzb3J5IGxvY2sgJHtKU09OLnN0cmluZ2lmeShuYW1lKX0gaGVsZCBsb25nZXIgdGhhbiAke2hvbGRUaW1lb3V0TXN9bXNgLCB7bmFtZX0pXG4gICAgICB9XG5cbiAgICAgIHRocm93IGVycm9yXG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCB7QWR2aXNvcnlMb2NrQnVzeUVycm9yLCBBZHZpc29yeUxvY2tIb2xkVGltZW91dEVycm9yLCBBZHZpc29yeUxvY2tUaW1lb3V0RXJyb3J9XG4iXX0=
233
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2aXNvcnktbG9jay1ydW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGF0YWJhc2UvYWR2aXNvcnktbG9jay1ydW5uZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sT0FBTyxFQUFFLEVBQUMsWUFBWSxFQUFDLE1BQU0sMkJBQTJCLENBQUE7QUFFL0Q7O0dBRUc7QUFDSCxNQUFNLHdCQUF5QixTQUFRLEtBQUs7SUFDMUM7Ozs7T0FJRztJQUNILFlBQVksT0FBTyxFQUFFLEVBQUMsSUFBSSxFQUFDO1FBQ3pCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUNkLElBQUksQ0FBQyxJQUFJLEdBQUcsMEJBQTBCLENBQUE7UUFDdEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUE7SUFDdEIsQ0FBQztDQUNGO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLHFCQUFzQixTQUFRLEtBQUs7SUFDdkM7Ozs7T0FJRztJQUNILFlBQVksT0FBTyxFQUFFLEVBQUMsSUFBSSxFQUFDO1FBQ3pCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUNkLElBQUksQ0FBQyxJQUFJLEdBQUcsdUJBQXVCLENBQUE7UUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUE7SUFDdEIsQ0FBQztDQUNGO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLDRCQUE2QixTQUFRLEtBQUs7SUFDOUM7Ozs7T0FJRztJQUNILFlBQVksT0FBTyxFQUFFLEVBQUMsSUFBSSxFQUFDO1FBQ3pCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUNkLElBQUksQ0FBQyxJQUFJLEdBQUcsOEJBQThCLENBQUE7UUFDMUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUE7SUFDdEIsQ0FBQztDQUNGO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxPQUFPLE9BQU8sa0JBQWtCO0lBQ3JDOzs7T0FHRztJQUNILFlBQVksRUFB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Q0FBQztJQUNILENBQUM7Q0FDRjtBQUVELE9BQU8sRUFBQyxxQkFBcUIsRUFBRSw0QkFBNEIsRUFBRSx3QkFBd0IsRUFBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCB0aW1lb3V0LCB7VGltZW91dEVycm9yfSBmcm9tIFwiYXdhaXRlcnkvYnVpbGQvdGltZW91dC5qc1wiXG5cbi8qKlxuICogVGhyb3duIHdoZW4gYW4gYWR2aXNvcnkgbG9jayBjb3VsZCBub3QgYmUgYWNxdWlyZWQgYmVmb3JlIGB0aW1lb3V0TXNgIGVsYXBzZWQuXG4gKi9cbmNsYXNzIEFkdmlzb3J5TG9ja1RpbWVvdXRFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgLyoqXG4gICAqIFJ1bnMgY29uc3RydWN0b3IuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBtZXNzYWdlIC0gRXJyb3IgbWVzc2FnZS5cbiAgICogQHBhcmFtIHt7bmFtZTogc3RyaW5nfX0gYXJncyAtIFRoZSBhZHZpc29yeSBsb2NrIG5hbWUgdGhhdCB0aW1lZCBvdXQuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlLCB7bmFtZX0pIHtcbiAgICBzdXBlcihtZXNzYWdlKVxuICAgIHRoaXMubmFtZSA9IFwiQWR2aXNvcnlMb2NrVGltZW91dEVycm9yXCJcbiAgICB0aGlzLmxvY2tOYW1lID0gbmFtZVxuICB9XG59XG5cbi8qKlxuICogVGhyb3duIHdoZW4gYHdpdGhBZHZpc29yeUxvY2tPckZhaWxgIGZpbmRzIHRoZSBsb2NrIGFscmVhZHkgaGVsZC5cbiAqL1xuY2xhc3MgQWR2aXNvcnlMb2NrQnVzeUVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAvKipcbiAgICogUnVucyBjb25zdHJ1Y3Rvci5cbiAgICogQHBhcmFtIHtzdHJpbmd9IG1lc3NhZ2UgLSBFcnJvciBtZXNzYWdlLlxuICAgKiBAcGFyYW0ge3tuYW1lOiBzdHJpbmd9fSBhcmdzIC0gVGhlIGFkdmlzb3J5IGxvY2sgbmFtZSB0aGF0IHdhcyBhbHJlYWR5IGhlbGQuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlLCB7bmFtZX0pIHtcbiAgICBzdXBlcihtZXNzYWdlKVxuICAgIHRoaXMubmFtZSA9IFwiQWR2aXNvcnlMb2NrQnVzeUVycm9yXCJcbiAgICB0aGlzLmxvY2tOYW1lID0gbmFtZVxuICB9XG59XG5cbi8qKlxuICogVGhyb3duIHdoZW4gYSBjYWxsYmFjayBob2xkcyBhbiBhZHZpc29yeSBsb2NrIGxvbmdlciB0aGFuIGBob2xkVGltZW91dE1zYC5cbiAqL1xuY2xhc3MgQWR2aXNvcnlMb2NrSG9sZFRpbWVvdXRFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgLyoqXG4gICAqIFJ1bnMgY29uc3RydWN0b3IuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBtZXNzYWdlIC0gRXJyb3IgbWVzc2FnZS5cbiAgICogQHBhcmFtIHt7bmFtZTogc3RyaW5nfX0gYXJncyAtIFRoZSBhZHZpc29yeSBsb2NrIG5hbWUgd2hvc2UgaG9sZCB0aW1lZCBvdXQuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlLCB7bmFtZX0pIHtcbiAgICBzdXBlcihtZXNzYWdlKVxuICAgIHRoaXMubmFtZSA9IFwiQWR2aXNvcnlMb2NrSG9sZFRpbWVvdXRFcnJvclwiXG4gICAgdGhpcy5sb2NrTmFtZSA9IG5hbWVcbiAgfVxufVxuXG4vKipcbiAqIFJ1bnMgYWR2aXNvcnkgbG9ja3Mgb24gdGhlIGNhbGxlciBjb25uZWN0aW9uIGJ5IGRlZmF1bHQsIHVzaW5nIGEgZGVkaWNhdGVkXG4gKiBsb2NrIGNvbm5lY3Rpb24gd2hlbiBgZGVkaWNhdGVkQ29ubmVjdGlvbmAgaXMgcmVxdWVzdGVkIG9yIHdoZW4gYSBwb3NpdGl2ZVxuICogaG9sZCB0aW1lb3V0IG5lZWRzIHNlcGFyYXRlIG93bmVyc2hpcC5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQWR2aXNvcnlMb2NrUnVubmVyIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gYWR2aXNvcnktbG9jayBydW5uZXIgZm9yIG9uZSBtb2RlbCBkYXRhYmFzZSBpZGVudGlmaWVyLlxuICAgKiBAcGFyYW0ge3tjb25maWd1cmF0aW9uOiBpbXBvcnQoXCIuLi9jb25maWd1cmF0aW9uLmpzXCIpLmRlZmF1bHQsIGNvbm5lY3Rpb25Qcm92aWRlcjogKCkgPT4gaW1wb3J0KFwiLi9kcml2ZXJzL2Jhc2UuanNcIikuZGVmYXVsdCwgZGF0YWJhc2VJZGVudGlmaWVyOiBzdHJpbmd9fSBhcmdzIC0gUnVubmVyIGRlcGVuZGVuY2llcy5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHtjb25maWd1cmF0aW9uLCBjb25uZWN0aW9uUHJvdmlkZXIsIGRhdGFiYXNlSWRlbnRpZmllcn0pIHtcbiAgICB0aGlzLmNvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uXG4gICAgdGhpcy5jb25uZWN0aW9uUHJvdmlkZXIgPSBjb25uZWN0aW9uUHJvdmlkZXJcbiAgICB0aGlzLmRhdGFiYXNlSWRlbnRpZmllciA9IGRhdGFiYXNlSWRlbnRpZmllclxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgYSBjYWxsYmFjayBhZnRlciBhY3F1aXJpbmcgdGhlIGFkdmlzb3J5IGxvY2ssIHdhaXRpbmcgdXAgdG8gYHRpbWVvdXRNc2AuXG4gICAqIFdoZW4gYGRlZGljYXRlZENvbm5lY3Rpb25gIGlzIHRydWUgdGhlIGxvY2sgaXMgYWNxdWlyZWQgb24gYSBzcGF3bmVkXG4gICAqIGNvbm5lY3Rpb24gdGhhdCBpcyByZWxlYXNlZCBhZnRlciB0aGUgY2FsbGJhY2sgZmluaXNoZXMsIHdoaWxlIHRoZSBjYWxsYmFja1xuICAgKiBpdHNlbGYgc3RpbGwgcnVucyBhZ2FpbnN0IHRoZSBjYWxsZXIvbW9kZWwgY29ubmVjdGlvbi4gV2hlbiBhIGBob2xkVGltZW91dE1zYFxuICAgKiBpcyBzZXQgdGhlIGNhbGxiYWNrIHJlY2VpdmVzIGEgYFRpbWVvdXRDb250cm9sYCBmcm9tIGF3YWl0ZXJ5IGZvciBjb29wZXJhdGl2ZVxuICAgKiBjYW5jZWxsYXRpb24gKGBjb250cm9sLmNoZWNrKClgLCBgY29udHJvbC5zaWduYWxgLCBgY29udHJvbC50aW1lZE91dGAsXG4gICAqIGBjb250cm9sLnJlbWFpbmluZygpYCk7IGEgZGVkaWNhdGVkIGNvbm5lY3Rpb24gaXMgYWxzbyB1c2VkIHNvIHRpbWVvdXRcbiAgICogY2xlYW51cCBjYW4gcmVsZWFzZSB0aGUgbG9jayBldmVuIGlmIGNhbGxiYWNrIGRhdGFiYXNlIHdvcmsgaXMgc3R1Y2suXG4gICAqIEB0ZW1wbGF0ZSBUXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIC0gTG9jayBuYW1lLlxuICAgKiBAcGFyYW0geyhhcmdzPzoge2NvbnRyb2w6IGltcG9ydChcImF3YWl0ZXJ5L2J1aWxkL3RpbWVvdXQuanNcIikuVGltZW91dENvbnRyb2x9KSA9PiBQcm9taXNlPFQ+fSBjYWxsYmFjayAtIENhbGxiYWNrIHRvIGludm9rZSB3aGlsZSB0aGUgbG9jayBpcyBoZWxkLlxuICAgKiBAcGFyYW0ge3t0aW1lb3V0TXM/OiBudW1iZXIgfCBudWxsLCBob2xkVGltZW91dE1zPzogbnVtYmVyIHwgbnVsbCwgZGVkaWNhdGVkQ29ubmVjdGlvbj86IGJvb2xlYW59fSBbYXJnc10gLSBMb2NrIGFuZCBob2xkIHRpbWVvdXQgb3B0aW9ucy5cbiAgICogQHJldHVybnMge1Byb21pc2U8VD59IC0gUmVzb2x2ZXMgd2l0aCB0aGUgY2FsbGJhY2sgcmVzdWx0LlxuICAgKi9cbiAgYXN5bmMgd2l0aEFkdmlzb3J5TG9jayhuYW1lLCBjYWxsYmFjaywgYXJncyA9IHt9KSB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMud2l0aExvY2tDb25uZWN0aW9uKGFyZ3MsIGFzeW5jIChjb25uZWN0aW9uKSA9PiB7XG4gICAgICBjb25zdCBhY3F1aXJlZCA9IGF3YWl0IGNvbm5lY3Rpb24uYWNxdWlyZUFkdmlzb3J5TG9jayhuYW1lLCBhcmdzKVxuXG4gICAgICBpZiAoIWFjcXVpcmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBBZHZpc29yeUxvY2tUaW1lb3V0RXJyb3IoYFRpbWVkIG91dCB3YWl0aW5nIGZvciBhZHZpc29yeSBsb2NrICR7SlNPTi5zdHJpbmdpZnkobmFtZSl9YCwge25hbWV9KVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5ydW5Mb2NrZWRDYWxsYmFjayh7Y2FsbGJhY2ssIGNvbm5lY3Rpb24sIGhvbGRUaW1lb3V0TXM6IGFyZ3MuaG9sZFRpbWVvdXRNcywgbmFtZX0pXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGEgY2FsbGJhY2sgb25seSBpZiB0aGUgYWR2aXNvcnkgbG9jayBjYW4gYmUgYWNxdWlyZWQgaW1tZWRpYXRlbHkuXG4gICAqIFdoZW4gYGRlZGljYXRlZENvbm5lY3Rpb25gIGlzIHRydWUgdGhlIGxvY2sgaXMgYWNxdWlyZWQgb24gYSBzcGF3bmVkXG4gICAqIGNvbm5lY3Rpb24gdGhhdCBpcyByZWxlYXNlZCBhZnRlciB0aGUgY2FsbGJhY2sgZmluaXNoZXMsIHdoaWxlIHRoZSBjYWxsYmFja1xuICAgKiBpdHNlbGYgc3RpbGwgcnVucyBhZ2FpbnN0IHRoZSBjYWxsZXIvbW9kZWwgY29ubmVjdGlvbi4gV2hlbiBhIGBob2xkVGltZW91dE1zYFxuICAgKiBpcyBzZXQgdGhlIGNhbGxiYWNrIHJlY2VpdmVzIGEgYFRpbWVvdXRDb250cm9sYCBmcm9tIGF3YWl0ZXJ5IGZvciBjb29wZXJhdGl2ZVxuICAgKiBjYW5jZWxsYXRpb24uXG4gICAqIEB0ZW1wbGF0ZSBUXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIC0gTG9jayBuYW1lLlxuICAgKiBAcGFyYW0geyhhcmdzPzoge2NvbnRyb2w6IGltcG9ydChcImF3YWl0ZXJ5L2J1aWxkL3RpbWVvdXQuanNcIikuVGltZW91dENvbnRyb2x9KSA9PiBQcm9taXNlPFQ+fSBjYWxsYmFjayAtIENhbGxiYWNrIHRvIGludm9rZSB3aGlsZSB0aGUgbG9jayBpcyBoZWxkLlxuICAgKiBAcGFyYW0ge3tob2xkVGltZW91dE1zPzogbnVtYmVyIHwgbnVsbCwgZGVkaWNhdGVkQ29ubmVjdGlvbj86IGJvb2xlYW59fSBbYXJnc10gLSBIb2xkIHRpbWVvdXQgb3B0aW9ucy5cbiAgICogQHJldHVybnMge1Byb21pc2U8VD59IC0gUmVzb2x2ZXMgd2l0aCB0aGUgY2FsbGJhY2sgcmVzdWx0LlxuICAgKi9cbiAgYXN5bmMgd2l0aEFkdmlzb3J5TG9ja09yRmFpbChuYW1lLCBjYWxsYmFjaywgYXJncyA9IHt9KSB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMud2l0aExvY2tDb25uZWN0aW9uKGFyZ3MsIGFzeW5jIChjb25uZWN0aW9uKSA9PiB7XG4gICAgICBjb25zdCBhY3F1aXJlZCA9IGF3YWl0IGNvbm5lY3Rpb24udHJ5QWNxdWlyZUFkdmlzb3J5TG9jayhuYW1lKVxuXG4gICAgICBpZiAoIWFjcXVpcmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBBZHZpc29yeUxvY2tCdXN5RXJyb3IoYEFkdmlzb3J5IGxvY2sgJHtKU09OLnN0cmluZ2lmeShuYW1lKX0gaXMgYWxyZWFkeSBoZWxkYCwge25hbWV9KVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5ydW5Mb2NrZWRDYWxsYmFjayh7Y2FsbGJhY2ssIGNvbm5lY3Rpb24sIGhvbGRUaW1lb3V0TXM6IGFyZ3MuaG9sZFRpbWVvdXRNcywgbmFtZX0pXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGEgY2FsbGJhY2sgaWYgdGhlIGFkdmlzb3J5IGxvY2sgY2FuIGJlIGFjcXVpcmVkIHdpdGhvdXQgd2FpdGluZztcbiAgICogb3RoZXJ3aXNlIHJldHVybnMgYSBge2FjcXVpcmVkOiBmYWxzZX1gIGRlZmVyIHJlc3VsdCBpbnN0ZWFkIG9mIHRocm93aW5nLlxuICAgKlxuICAgKiBUaGlzIGlzIHRoZSBub24tdGhyb3dpbmcgY291bnRlcnBhcnQgb2YgYHdpdGhBZHZpc29yeUxvY2tPckZhaWxgIGZvciBob3RcbiAgICogcGF0aHM6IFwiaG9sZGVyIGJ1c3ksIGRlZmVyIG1lXCIgaXMgYSBmaXJzdC1jbGFzcyBvdXRjb21lLCBzbyBhIGNvbnRlbmRlZFxuICAgKiBsb2NrIHByb2R1Y2VzIHplcm8gZXhjZXB0aW9uIHRyYWZmaWMgYW5kIOKAlCBiZWNhdXNlIHRoZSBwcm9iZSBpcyBhIHNpbmdsZVxuICAgKiBpbW1lZGlhdGUgdHJ5LWFjcXVpcmUg4oCUIHplcm8gcGlubmVkIGNvbm5lY3Rpb25zLiBDYWxsZXJzIHJlc2NoZWR1bGUgdmlhXG4gICAqIHRoZWlyIG93biBldmVudC1kcml2ZW4gcmV0cnkgbWFjaGluZXJ5LiBUaGUgcmVzdWx0IGZvcm0gaXMgaWRlbnRpY2FsXG4gICAqIGFjcm9zcyB0aWVyczogdGhlIGRyaXZlcidzIGB0cnlBY3F1aXJlQWR2aXNvcnlMb2NrYCBtYXBzIHBlci10aWVyIChNeVNRTFxuICAgKiBgR0VUX0xPQ0sobmFtZSwgMClgLCBQb3N0Z3JlU1FMIGBwZ190cnlfYWR2aXNvcnlfbG9ja2AsIFNRTCBTZXJ2ZXJcbiAgICogYHNwX2dldGFwcGxvY2sgQExvY2tUaW1lb3V0ID0gMGAsIFNRTGl0ZSBwcm9jZXNzLWxvY2FsIHF1ZXVlLCBTUUxpdGUgTm9kZVxuICAgKiBmaWxlIGxvY2spLCBzbyBhIGNhbGxlciBuZXZlciBicmFuY2hlcyBvbiB0aGUgYmFja2VuZC5cbiAgICogQHRlbXBsYXRlIFRcbiAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgLSBMb2NrIG5hbWUuXG4gICAqIEBwYXJhbSB7KGFyZ3M/OiB7Y29udHJvbDogaW1wb3J0KFwiYXdhaXRlcnkvYnVpbGQvdGltZW91dC5qc1wiKS5UaW1lb3V0Q29udHJvbH0pID0+IFByb21pc2U8VD59IGNhbGxiYWNrIC0gQ2FsbGJhY2sgdG8gaW52b2tlIHdoaWxlIHRoZSBsb2NrIGlzIGhlbGQuXG4gICAqIEBwYXJhbSB7e2hvbGRUaW1lb3V0TXM/OiBudW1iZXIgfCBudWxsLCBkZWRpY2F0ZWRDb25uZWN0aW9uPzogYm9vbGVhbn19IFthcmdzXSAtIEhvbGQgdGltZW91dCBvcHRpb25zLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx7YWNxdWlyZWQ6IHRydWUsIHJlc3VsdDogVH0gfCB7YWNxdWlyZWQ6IGZhbHNlLCByZWFzb246IFwiY29udGVuZGVkXCIsIGxvY2tOYW1lOiBzdHJpbmd9Pn0gLSBFaXRoZXIgdGhlIGhlbGQtY2FsbGJhY2sgcmVzdWx0IG9yIHRoZSBkZWZlciBvdXRjb21lLlxuICAgKi9cbiAgYXN5bmMgd2l0aEFkdmlzb3J5TG9ja09yRGVmZXIobmFtZSwgY2FsbGJhY2ssIGFyZ3MgPSB7fSkge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLndpdGhMb2NrQ29ubmVjdGlvbihhcmdzLCBhc3luYyAoY29ubmVjdGlvbikgPT4ge1xuICAgICAgY29uc3QgYWNxdWlyZWQgPSBhd2FpdCBjb25uZWN0aW9uLnRyeUFjcXVpcmVBZHZpc29yeUxvY2sobmFtZSlcblxuICAgICAgaWYgKCFhY3F1aXJlZCkgcmV0dXJuIHthY3F1aXJlZDogZmFsc2UsIHJlYXNvbjogXCJjb250ZW5kZWRcIiwgbG9ja05hbWU6IG5hbWV9XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMucnVuTG9ja2VkQ2FsbGJhY2soe2NhbGxiYWNrLCBjb25uZWN0aW9uLCBob2xkVGltZW91dE1zOiBhcmdzLmhvbGRUaW1lb3V0TXMsIG5hbWV9KVxuXG4gICAgICByZXR1cm4ge2FjcXVpcmVkOiB0cnVlLCByZXN1bHR9XG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIHRoZSBsb2NrIGhvbGRlciBjYWxsYmFjayBhbmQgcmVsZWFzZXMgdGhlIGxvY2sgZnJvbSBpdHMgb3duaW5nIGNvbm5lY3Rpb24uXG4gICAqIEB0ZW1wbGF0ZSBUXG4gICAqIEBwYXJhbSB7e2NhbGxiYWNrOiAoYXJncz86IHtjb250cm9sOiBpbXBvcnQoXCJhd2FpdGVyeS9idWlsZC90aW1lb3V0LmpzXCIpLlRpbWVvdXRDb250cm9sfSkgPT4gUHJvbWlzZTxUPiwgY29ubmVjdGlvbjogaW1wb3J0KFwiLi9kcml2ZXJzL2Jhc2UuanNcIikuZGVmYXVsdCwgaG9sZFRpbWVvdXRNcz86IG51bWJlciB8IG51bGwsIG5hbWU6IHN0cmluZ319IGFyZ3MgLSBMb2NrZWQgY2FsbGJhY2sgYXJncy5cbiAgICogQHJldHVybnMge1Byb21pc2U8VD59IC0gUmVzb2x2ZXMgd2l0aCB0aGUgY2FsbGJhY2sgcmVzdWx0LlxuICAgKi9cbiAgYXN5bmMgcnVuTG9ja2VkQ2FsbGJhY2soe2NhbGxiYWNrLCBjb25uZWN0aW9uLCBob2xkVGltZW91dE1zLCBuYW1lfSkge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYXdhaXQgQWR2aXNvcnlMb2NrUnVubmVyLnJ1bldpdGhBZHZpc29yeUxvY2tIb2xkVGltZW91dChuYW1lLCBjYWxsYmFjaywgaG9sZFRpbWVvdXRNcylcbiAgICB9IGZpbmFsbHkge1xuICAgICAgYXdhaXQgY29ubmVjdGlvbi5yZWxlYXNlQWR2aXNvcnlMb2NrKG5hbWUpXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgbG9jayB3b3JrIG9uIHRoZSBjYWxsZXIgY29ubmVjdGlvbiB1bmxlc3MgYGRlZGljYXRlZENvbm5lY3Rpb25gIGlzXG4gICAqIHJlcXVlc3RlZCBvciBhIHBvc2l0aXZlIGhvbGQgdGltZW91dCBuZWVkcyBpdHMgb3duIGxvY2sgY29ubmVjdGlvbi5cbiAgICogQHRlbXBsYXRlIFRcbiAgICogQHBhcmFtIHt7ZGVkaWNhdGVkQ29ubmVjdGlvbj86IGJvb2xlYW4sIGhvbGRUaW1lb3V0TXM/OiBudW1iZXIgfCBudWxsfX0gYXJncyAtIExvY2sgY29ubmVjdGlvbiBvcHRpb25zLlxuICAgKiBAcGFyYW0geyhjb25uZWN0aW9uOiBpbXBvcnQoXCIuL2RyaXZlcnMvYmFzZS5qc1wiKS5kZWZhdWx0KSA9PiBQcm9taXNlPFQ+fSBjYWxsYmFjayAtIENhbGxiYWNrIHJlY2VpdmluZyB0aGUgY29ubmVjdGlvbiB0aGF0IG93bnMgdGhlIGFkdmlzb3J5IGxvY2suXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPFQ+fSAtIFJlc29sdmVzIHdpdGggdGhlIGNhbGxiYWNrIHJlc3VsdC5cbiAgICovXG4gIGFzeW5jIHdpdGhMb2NrQ29ubmVjdGlvbihhcmdzLCBjYWxsYmFjaykge1xuICAgIGNvbnN0IGhvbGRUaW1lb3V0TXMgPSBhcmdzLmhvbGRUaW1lb3V0TXNcblxuICAgIGlmIChhcmdzLmRlZGljYXRlZENvbm5lY3Rpb24gfHwgKGhvbGRUaW1lb3V0TXMgJiYgaG9sZFRpbWVvdXRNcyA+IDApKSB7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy53aXRoRGVkaWNhdGVkQ29ubmVjdGlvbihjYWxsYmFjaylcbiAgICB9XG5cbiAgICByZXR1cm4gYXdhaXQgY2FsbGJhY2sodGhpcy5jb25uZWN0aW9uUHJvdmlkZXIoKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBTcGF3bnMgYSBkZWRpY2F0ZWQgbG9jayBjb25uZWN0aW9uIGFuZCBjbG9zZXMgaXQgYWZ0ZXIgbG9jayB3b3JrIGNvbXBsZXRlc1xuICAgKiB3aGVuIHRoZSBzcGF3bmVkIGRyaXZlciBvd25zIHRoZSB1bmRlcmx5aW5nIHBoeXNpY2FsIGNvbm5lY3Rpb24uXG4gICAqIEB0ZW1wbGF0ZSBUXG4gICAqIEBwYXJhbSB7KGNvbm5lY3Rpb246IGltcG9ydChcIi4vZHJpdmVycy9iYXNlLmpzXCIpLmRlZmF1bHQpID0+IFByb21pc2U8VD59IGNhbGxiYWNrIC0gQ2FsbGJhY2sgdGhhdCByZWNlaXZlcyB0aGUgZGVkaWNhdGVkIGxvY2sgY29ubmVjdGlvbi5cbiAgICogQHJldHVybnMge1Byb21pc2U8VD59IC0gUmVzb2x2ZXMgd2l0aCB0aGUgY2FsbGJhY2sgcmVzdWx0LlxuICAgKi9cbiAgYXN5bmMgd2l0aERlZGljYXRlZENvbm5lY3Rpb24oY2FsbGJhY2spIHtcbiAgICBjb25zdCBjb25uZWN0aW9uID0gYXdhaXQgdGhpcy5jb25maWd1cmF0aW9uLmdldERhdGFiYXNlUG9vbCh0aGlzLmRhdGFiYXNlSWRlbnRpZmllcikuc3Bhd25Db25uZWN0aW9uKClcblxuICAgIC8vIFRoZSBzcGF3bmVkIGRyaXZlciBvd25zIGl0cyBwaHlzaWNhbCBjb25uZWN0aW9uIHVubGVzcyBpdCBib3Jyb3dzIGEgc2hhcmVkIG9uZVxuICAgIC8vIHZpYSBgZ2V0Q29ubmVjdGlvbmAuIEFuIG93bmVkIGNvbm5lY3Rpb24gbGl2ZXMgb3V0c2lkZSB0aGUgcG9vbHMnIHRyYWNrZWQgc2V0cyxcbiAgICAvLyBzbyByZWdpc3RlciBpdCB3aGlsZSB0aGUgbG9jayBpcyBoZWxkOiBhIHNodXRkb3duIHRoZW4gY2xvc2VzIGl0IChyZWxlYXNpbmcgdGhlXG4gICAgLy8gbG9jaykgaW5zdGVhZCBvZiBvcnBoYW5pbmcgYSBoYWxmLW9wZW4gc2Vzc2lvbiB1bnRpbCB0aGUgREIgYHdhaXRfdGltZW91dGAuXG4gICAgY29uc3Qgb3duc0Nvbm5lY3Rpb24gPSAhY29ubmVjdGlvbi5nZXRBcmdzKCkuZ2V0Q29ubmVjdGlvblxuXG4gICAgaWYgKG93bnNDb25uZWN0aW9uKSB0aGlzLmNvbmZpZ3VyYXRpb24ucmVnaXN0ZXJBZHZpc29yeUxvY2tDb25uZWN0aW9uKGNvbm5lY3Rpb24pXG5cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGF3YWl0IGNhbGxiYWNrKGNvbm5lY3Rpb24pXG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmIChvd25zQ29ubmVjdGlvbikge1xuICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb24udW5yZWdpc3RlckFkdmlzb3J5TG9ja0Nvbm5lY3Rpb24oY29ubmVjdGlvbilcbiAgICAgICAgYXdhaXQgY29ubmVjdGlvbi5jbG9zZSgpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhd2FpdCBjb25uZWN0aW9uLnJlbGVhc2VIZWxkQWR2aXNvcnlMb2NrcygpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgYGNhbGxiYWNrYCwgcmVqZWN0aW5nIHdpdGggYEFkdmlzb3J5TG9ja0hvbGRUaW1lb3V0RXJyb3JgIGlmIGl0IGhhc1xuICAgKiBub3Qgc2V0dGxlZCB3aXRoaW4gYGhvbGRUaW1lb3V0TXNgLiBUaGUgY2FsbGJhY2sgaXMgbm90IGNhbmNlbGxlZDsgY2FsbGVyc1xuICAgKiB1c2UgYSBkZWRpY2F0ZWQgYWR2aXNvcnktbG9jayBjb25uZWN0aW9uIHNvIHRoZSBsb2NrIGNhbiBzdGlsbCBiZSByZWxlYXNlZC5cbiAgICpcbiAgICogVGhlIGNhbGxiYWNrIHJlY2VpdmVzIGEgYFRpbWVvdXRDb250cm9sYCBmcm9tIGF3YWl0ZXJ5LCBlbmFibGluZyBjb29wZXJhdGl2ZVxuICAgKiBjYW5jZWxsYXRpb24gdmlhIGBjb250cm9sLmNoZWNrKClgLCBgY29udHJvbC5zaWduYWxgLCBgY29udHJvbC50aW1lZE91dGAsXG4gICAqIGFuZCBgY29udHJvbC5yZW1haW5pbmcoKWAuXG4gICAqIEB0ZW1wbGF0ZSBUXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIC0gTG9jayBuYW1lIChmb3IgdGhlIGVycm9yIG1lc3NhZ2UpLlxuICAgKiBAcGFyYW0geyhhcmdzPzoge2NvbnRyb2w6IGltcG9ydChcImF3YWl0ZXJ5L2J1aWxkL3RpbWVvdXQuanNcIikuVGltZW91dENvbnRyb2x9KSA9PiBQcm9taXNlPFQ+fSBjYWxsYmFjayAtIENhbGxiYWNrIGhvbGRpbmcgdGhlIGxvY2suXG4gICAqIEBwYXJhbSB7bnVtYmVyIHwgbnVsbH0gW2hvbGRUaW1lb3V0TXNdIC0gTWF4IGhvbGQgdGltZTsgZmFsc3kgZGlzYWJsZXMgdGhlIHRpbWVvdXQuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPFQ+fSAtIFJlc29sdmVzIHdpdGggdGhlIGNhbGxiYWNrIHJlc3VsdC5cbiAgICovXG4gIHN0YXRpYyBhc3luYyBydW5XaXRoQWR2aXNvcnlMb2NrSG9sZFRpbWVvdXQobmFtZSwgY2FsbGJhY2ssIGhvbGRUaW1lb3V0TXMpIHtcbiAgICBpZiAoIWhvbGRUaW1lb3V0TXMgfHwgaG9sZFRpbWVvdXRNcyA8PSAwKSB7XG4gICAgICByZXR1cm4gYXdhaXQgY2FsbGJhY2soKVxuICAgIH1cblxuICAgIGxldCBjYWxsYmFja1NldHRsZWQgPSBmYWxzZVxuXG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBhd2FpdCB0aW1lb3V0KHt0aW1lb3V0OiBob2xkVGltZW91dE1zfSwgYXN5bmMgKHtjb250cm9sfSkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiBhd2FpdCBjYWxsYmFjayh7Y29udHJvbH0pXG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgY2FsbGJhY2tTZXR0bGVkID0gdHJ1ZVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBpZiAoIWNhbGxiYWNrU2V0dGxlZCB8fCBlcnJvciBpbnN0YW5jZW9mIFRpbWVvdXRFcnJvcikge1xuICAgICAgICB0aHJvdyBuZXcgQWR2aXNvcnlMb2NrSG9sZFRpbWVvdXRFcnJvcihgQWR2aXNvcnkgbG9jayAke0pTT04uc3RyaW5naWZ5KG5hbWUpfSBoZWxkIGxvbmdlciB0aGFuICR7aG9sZFRpbWVvdXRNc31tc2AsIHtuYW1lfSlcbiAgICAgIH1cblxuICAgICAgdGhyb3cgZXJyb3JcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IHtBZHZpc29yeUxvY2tCdXN5RXJyb3IsIEFkdmlzb3J5TG9ja0hvbGRUaW1lb3V0RXJyb3IsIEFkdmlzb3J5TG9ja1RpbWVvdXRFcnJvcn1cbiJdfQ==
@@ -0,0 +1,129 @@
1
+ export type AdvisoryLockTelemetryReport = {
2
+ /**
3
+ * - Which event fired.
4
+ */
5
+ event: "advisory-lock-slow-acquire" | "advisory-lock-acquire-timeout" | "advisory-lock-slow-hold";
6
+ /**
7
+ * - The contended advisory-lock name.
8
+ */
9
+ lockName: string;
10
+ /**
11
+ * - Tier that served (or refused) the acquisition: `driver-native`, `process-local`, or `file`.
12
+ */
13
+ backendTier: string;
14
+ /**
15
+ * - Measured duration of the acquire wait (or the hold).
16
+ */
17
+ durationMs: number;
18
+ /**
19
+ * - For acquire events: whether the wait eventually acquired the lock. Null for hold reports.
20
+ */
21
+ outcome: "acquired" | "timeout" | null;
22
+ /**
23
+ * - The effective acquire bound for acquire events. Null for hold reports or an unbounded wait.
24
+ */
25
+ timeoutMs: number | null;
26
+ /**
27
+ * - Process-local holder attribution when the tier can name its local holder.
28
+ */
29
+ holderId: string | null;
30
+ /**
31
+ * - Driver-native holder attribution captured at the event moment (MariaDB `IS_USED_LOCK` connection id, PostgreSQL pid, SQL Server session id, SQLite file `pid@hostname`).
32
+ */
33
+ holderConnectionId: string | null;
34
+ /**
35
+ * - Set when the best-effort holder lookup itself failed; the lookup never affects the acquisition.
36
+ */
37
+ holderLookupError: string | null;
38
+ };
39
+ export type AdvisoryLockTelemetryThresholds = {
40
+ /**
41
+ * - Report an acquire wait slower than this; `null` disables slow-acquire reports.
42
+ */
43
+ slowAcquireMs: number | null;
44
+ /**
45
+ * - Report a hold longer than this at release; `null` disables hold reports.
46
+ */
47
+ slowHoldMs: number | null;
48
+ };
49
+ /**
50
+ * Event-driven advisory-lock duration telemetry (STC-261, parent epic STC-209).
51
+ *
52
+ * A lock convoy is only fixable when it is *attributable*: which lock name was
53
+ * contended, on which backend tier, for how long, and who held it. These reports
54
+ * fire on the acquisition/release events themselves — never from a periodic
55
+ * scanner — so a contended lock in production surfaces on the framework-error
56
+ * channel with the holder identity available on that tier at that moment,
57
+ * without SSH forensics.
58
+ *
59
+ * Three events, each with its own threshold (all configurable per database via
60
+ * `advisoryLockTelemetry`, see `docs/advisory-locks.md`):
61
+ *
62
+ * - `advisory-lock-slow-acquire` — an acquire wait completed slower than
63
+ * `slowAcquireMs` (default 5000), including the eventual outcome (`acquired`
64
+ * or `timeout`).
65
+ * - `advisory-lock-acquire-timeout` — a wait exceeded its timeout. The report
66
+ * carries the holder identity available on the tier at that moment: the
67
+ * driver-native tiers attribute the holder connection (MariaDB
68
+ * `IS_USED_LOCK`, PostgreSQL `pg_locks` joined to `pg_stat_activity`, SQL
69
+ * Server `sys.dm_tran_locks` request session, SQLite Node file tier
70
+ * `owner.json` pid/hostname); the process-local tier reports the owning
71
+ * driver's `holderId`.
72
+ * - `advisory-lock-slow-hold` — a hold lasted longer than `slowHoldMs`
73
+ * (default 60000), emitted at release.
74
+ *
75
+ * Reports are emitted on `configuration.getErrorEvents()` as `framework-error`
76
+ * (plus the matching `all-error`) with `{context: "advisory-lock-telemetry",
77
+ * event, lockName, backendTier, ...}` payloads, matching the repo's "never
78
+ * swallow" rule so process-level bug reporters capture them.
79
+ *
80
+ * Holder lookups are strictly best-effort *after* the acquisition already
81
+ * settled: a failed lookup never changes the acquisition outcome and never
82
+ * throws to the caller.
83
+ */
84
+ /**
85
+ * One advisory-lock telemetry report.
86
+ * @typedef {object} AdvisoryLockTelemetryReport
87
+ * @property {"advisory-lock-slow-acquire" | "advisory-lock-acquire-timeout" | "advisory-lock-slow-hold"} event - Which event fired.
88
+ * @property {string} lockName - The contended advisory-lock name.
89
+ * @property {string} backendTier - Tier that served (or refused) the acquisition: `driver-native`, `process-local`, or `file`.
90
+ * @property {number} durationMs - Measured duration of the acquire wait (or the hold).
91
+ * @property {"acquired" | "timeout" | null} outcome - For acquire events: whether the wait eventually acquired the lock. Null for hold reports.
92
+ * @property {number | null} timeoutMs - The effective acquire bound for acquire events. Null for hold reports or an unbounded wait.
93
+ * @property {string | null} holderId - Process-local holder attribution when the tier can name its local holder.
94
+ * @property {string | null} holderConnectionId - Driver-native holder attribution captured at the event moment (MariaDB `IS_USED_LOCK` connection id, PostgreSQL pid, SQL Server session id, SQLite file `pid@hostname`).
95
+ * @property {string | null} holderLookupError - Set when the best-effort holder lookup itself failed; the lookup never affects the acquisition.
96
+ */
97
+ /**
98
+ * Resolved per-database telemetry thresholds.
99
+ * @typedef {object} AdvisoryLockTelemetryThresholds
100
+ * @property {number | null} slowAcquireMs - Report an acquire wait slower than this; `null` disables slow-acquire reports.
101
+ * @property {number | null} slowHoldMs - Report a hold longer than this at release; `null` disables hold reports.
102
+ */
103
+ /** Framework default: report an acquire wait that completed slower than this. */
104
+ export declare const DEFAULT_ADVISORY_LOCK_SLOW_ACQUIRE_MS = 5000;
105
+ /** Framework default: report a hold that outlives this at release. */
106
+ export declare const DEFAULT_ADVISORY_LOCK_SLOW_HOLD_MS: number;
107
+ /**
108
+ * Resolve the telemetry thresholds for one database configuration.
109
+ * An explicit per-database `advisoryLockTelemetry` value wins; `null` opts out
110
+ * of that report; only when neither is configured does the framework default
111
+ * apply.
112
+ * @param {import("../configuration-types.js").DatabaseConfigurationType} args - Database configuration args.
113
+ * @returns {AdvisoryLockTelemetryThresholds} - Resolved thresholds.
114
+ */
115
+ export declare function advisoryLockTelemetryThresholds(args: import("../configuration-types.js").DatabaseConfigurationType): AdvisoryLockTelemetryThresholds;
116
+ /**
117
+ * Emit one telemetry report on the framework-error channel.
118
+ *
119
+ * Mirrors the repo's framework-error emission shape (see `configuration.js`
120
+ * `_reportBeaconError`): when no listener is attached to `framework-error` or
121
+ * `all-error`, a one-line summary goes to `stderr` so a convoy is never
122
+ * completely silent. A listener failure can never break lock handling, so
123
+ * emissions are guarded.
124
+ * @param {import("../configuration.js").default} configuration - Configuration instance owning the error channel.
125
+ * @param {AdvisoryLockTelemetryReport} report - The report payload.
126
+ * @returns {void} - No return value.
127
+ */
128
+ export declare function emitAdvisoryLockTelemetryReport(configuration: import("../configuration.js").default, report: AdvisoryLockTelemetryReport): void;
129
+ //# sourceMappingURL=advisory-lock-telemetry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"advisory-lock-telemetry.d.ts","sourceRoot":"","sources":["../../../src/database/advisory-lock-telemetry.js"],"names":[],"mappings":"AAwCG,YAAkB,2BAA2B,GAC7C;;;;IAAuG,KAAK,EAAjG,4BAA4B,GAAG,+BAA+B,GAAG,yBAAyB,CACrG;;;;IAAmB,QAAQ,EAAhB,MAAM,CACjB;;;;IAAmB,WAAW,EAAnB,MAAM,CACjB;;;;IAAmB,UAAU,EAAlB,MAAM,CACjB;;;;IAA0C,OAAO,EAAtC,UAAU,GAAG,SAAS,GAAG,IAAI,CACxC;;;;IAA0B,SAAS,EAAxB,MAAM,GAAG,IAAI,CACxB;;;;IAA0B,QAAQ,EAAvB,MAAM,GAAG,IAAI,CACxB;;;;IAA0B,kBAAkB,EAAjC,MAAM,GAAG,IAAI,CACxB;;;;IAA0B,iBAAiB,EAAhC,MAAM,GAAG,IAAI,CAC1B;CAAA,CAAA;AAIE,YAAkB,+BAA+B,GACjD;;;;IAA0B,aAAa,EAA5B,MAAM,GAAG,IAAI,CACxB;;;;IAA0B,UAAU,EAAzB,MAAM,GAAG,IAAI,CAC1B;CAAA,CAAA;AAvDD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH;;;;;;;;;;;;GAYG;AAEH;;;;;GAKG;AAEH,iFAAiF;AACjF,eAAO,MAAM,qCAAqC,OAAO,CAAA;AAEzD,sEAAsE;AACtE,eAAO,MAAM,kCAAkC,QAAY,CAAA;AAE3D;;;;;;;GAOG;AACH,wBAAgB,+BAA+B,CAAC,IAAI,EAHzC,OAAO,2BAA2B,EAAE,yBAGK,GAFvC,+BAA+B,CAiB3C;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,+BAA+B,CAAC,aAAa,EAJlD,OAAO,qBAAqB,EAAE,OAIoB,EAAE,MAAM,EAH1D,2BAG0D,GAFxD,IAAI,CA4BhB"}
@@ -0,0 +1,122 @@
1
+ // @ts-check
2
+ /**
3
+ * Event-driven advisory-lock duration telemetry (STC-261, parent epic STC-209).
4
+ *
5
+ * A lock convoy is only fixable when it is *attributable*: which lock name was
6
+ * contended, on which backend tier, for how long, and who held it. These reports
7
+ * fire on the acquisition/release events themselves — never from a periodic
8
+ * scanner — so a contended lock in production surfaces on the framework-error
9
+ * channel with the holder identity available on that tier at that moment,
10
+ * without SSH forensics.
11
+ *
12
+ * Three events, each with its own threshold (all configurable per database via
13
+ * `advisoryLockTelemetry`, see `docs/advisory-locks.md`):
14
+ *
15
+ * - `advisory-lock-slow-acquire` — an acquire wait completed slower than
16
+ * `slowAcquireMs` (default 5000), including the eventual outcome (`acquired`
17
+ * or `timeout`).
18
+ * - `advisory-lock-acquire-timeout` — a wait exceeded its timeout. The report
19
+ * carries the holder identity available on the tier at that moment: the
20
+ * driver-native tiers attribute the holder connection (MariaDB
21
+ * `IS_USED_LOCK`, PostgreSQL `pg_locks` joined to `pg_stat_activity`, SQL
22
+ * Server `sys.dm_tran_locks` request session, SQLite Node file tier
23
+ * `owner.json` pid/hostname); the process-local tier reports the owning
24
+ * driver's `holderId`.
25
+ * - `advisory-lock-slow-hold` — a hold lasted longer than `slowHoldMs`
26
+ * (default 60000), emitted at release.
27
+ *
28
+ * Reports are emitted on `configuration.getErrorEvents()` as `framework-error`
29
+ * (plus the matching `all-error`) with `{context: "advisory-lock-telemetry",
30
+ * event, lockName, backendTier, ...}` payloads, matching the repo's "never
31
+ * swallow" rule so process-level bug reporters capture them.
32
+ *
33
+ * Holder lookups are strictly best-effort *after* the acquisition already
34
+ * settled: a failed lookup never changes the acquisition outcome and never
35
+ * throws to the caller.
36
+ */
37
+ /**
38
+ * One advisory-lock telemetry report.
39
+ * @typedef {object} AdvisoryLockTelemetryReport
40
+ * @property {"advisory-lock-slow-acquire" | "advisory-lock-acquire-timeout" | "advisory-lock-slow-hold"} event - Which event fired.
41
+ * @property {string} lockName - The contended advisory-lock name.
42
+ * @property {string} backendTier - Tier that served (or refused) the acquisition: `driver-native`, `process-local`, or `file`.
43
+ * @property {number} durationMs - Measured duration of the acquire wait (or the hold).
44
+ * @property {"acquired" | "timeout" | null} outcome - For acquire events: whether the wait eventually acquired the lock. Null for hold reports.
45
+ * @property {number | null} timeoutMs - The effective acquire bound for acquire events. Null for hold reports or an unbounded wait.
46
+ * @property {string | null} holderId - Process-local holder attribution when the tier can name its local holder.
47
+ * @property {string | null} holderConnectionId - Driver-native holder attribution captured at the event moment (MariaDB `IS_USED_LOCK` connection id, PostgreSQL pid, SQL Server session id, SQLite file `pid@hostname`).
48
+ * @property {string | null} holderLookupError - Set when the best-effort holder lookup itself failed; the lookup never affects the acquisition.
49
+ */
50
+ /**
51
+ * Resolved per-database telemetry thresholds.
52
+ * @typedef {object} AdvisoryLockTelemetryThresholds
53
+ * @property {number | null} slowAcquireMs - Report an acquire wait slower than this; `null` disables slow-acquire reports.
54
+ * @property {number | null} slowHoldMs - Report a hold longer than this at release; `null` disables hold reports.
55
+ */
56
+ /** Framework default: report an acquire wait that completed slower than this. */
57
+ export const DEFAULT_ADVISORY_LOCK_SLOW_ACQUIRE_MS = 5000;
58
+ /** Framework default: report a hold that outlives this at release. */
59
+ export const DEFAULT_ADVISORY_LOCK_SLOW_HOLD_MS = 60 * 1000;
60
+ /**
61
+ * Resolve the telemetry thresholds for one database configuration.
62
+ * An explicit per-database `advisoryLockTelemetry` value wins; `null` opts out
63
+ * of that report; only when neither is configured does the framework default
64
+ * apply.
65
+ * @param {import("../configuration-types.js").DatabaseConfigurationType} args - Database configuration args.
66
+ * @returns {AdvisoryLockTelemetryThresholds} - Resolved thresholds.
67
+ */
68
+ export function advisoryLockTelemetryThresholds(args) {
69
+ const configured = args?.advisoryLockTelemetry;
70
+ /** @type {AdvisoryLockTelemetryThresholds} */
71
+ const thresholds = {
72
+ slowAcquireMs: DEFAULT_ADVISORY_LOCK_SLOW_ACQUIRE_MS,
73
+ slowHoldMs: DEFAULT_ADVISORY_LOCK_SLOW_HOLD_MS
74
+ };
75
+ if (configured?.slowAcquireMs === null)
76
+ thresholds.slowAcquireMs = null;
77
+ else if (typeof configured?.slowAcquireMs === "number" && configured.slowAcquireMs >= 0)
78
+ thresholds.slowAcquireMs = configured.slowAcquireMs;
79
+ if (configured?.slowHoldMs === null)
80
+ thresholds.slowHoldMs = null;
81
+ else if (typeof configured?.slowHoldMs === "number" && configured.slowHoldMs >= 0)
82
+ thresholds.slowHoldMs = configured.slowHoldMs;
83
+ return thresholds;
84
+ }
85
+ /**
86
+ * Emit one telemetry report on the framework-error channel.
87
+ *
88
+ * Mirrors the repo's framework-error emission shape (see `configuration.js`
89
+ * `_reportBeaconError`): when no listener is attached to `framework-error` or
90
+ * `all-error`, a one-line summary goes to `stderr` so a convoy is never
91
+ * completely silent. A listener failure can never break lock handling, so
92
+ * emissions are guarded.
93
+ * @param {import("../configuration.js").default} configuration - Configuration instance owning the error channel.
94
+ * @param {AdvisoryLockTelemetryReport} report - The report payload.
95
+ * @returns {void} - No return value.
96
+ */
97
+ export function emitAdvisoryLockTelemetryReport(configuration, report) {
98
+ /** @type {import("eventemitter3").EventEmitter | undefined} */
99
+ let errorEvents;
100
+ try {
101
+ errorEvents = configuration?.getErrorEvents();
102
+ }
103
+ catch {
104
+ return; // No configuration to report through — never break lock handling.
105
+ }
106
+ if (!errorEvents)
107
+ return;
108
+ const hasListener = errorEvents.listenerCount("framework-error") > 0
109
+ || errorEvents.listenerCount("all-error") > 0;
110
+ const payload = { context: "advisory-lock-telemetry", ...report };
111
+ try {
112
+ errorEvents.emit("framework-error", payload);
113
+ errorEvents.emit("all-error", { ...payload, errorType: "framework-error" });
114
+ }
115
+ catch {
116
+ // A broken listener must never surface as a lock failure.
117
+ }
118
+ if (!hasListener) {
119
+ console.error(`[velocious advisory-lock-telemetry ${report.event}] lock=${JSON.stringify(report.lockName)} tier=${report.backendTier} durationMs=${report.durationMs}${report.outcome ? ` outcome=${report.outcome}` : ""}${report.holderConnectionId ? ` holderConnectionId=${report.holderConnectionId}` : ""}${report.holderId ? ` holderId=${report.holderId}` : ""} — subscribe via configuration.getErrorEvents().on("framework-error", …) to route these reports to your bug reporter`);
120
+ }
121
+ }
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2aXNvcnktbG9jay10ZWxlbWV0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGF0YWJhc2UvYWR2aXNvcnktbG9jay10ZWxlbWV0cnkuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0NHO0FBRUg7Ozs7Ozs7Ozs7OztHQVlHO0FBRUg7Ozs7O0dBS0c7QUFFSCxpRkFBaUY7QUFDakYsTUFBTSxDQUFDLE1BQU0scUNBQXFDLEdBQUcsSUFBSSxDQUFBO0FBRXpELHNFQUFzRTtBQUN0RSxNQUFNLENBQUMsTUFBTSxrQ0FBa0MsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFBO0FBRTNEOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLFVBQVUsK0JBQStCLENBQUMsSUFBSTtJQUNsRCxNQUFNLFVBQVUsR0FBRyxJQUFJLEVBQUUscUJBQXFCLENBQUE7SUFDOUMsOENBQThDO0lBQzlDLE1BQU0sVUFBVSxHQUFHO1FBQ2pCLGFBQWEsRUFBRSxxQ0FBcUM7UUFDcEQsVUFBVSxFQUFFLGtDQUFrQztLQUMvQyxDQUFBO0lBRUQsSUFBSSxVQUFVLEVBQUUsYUFBYSxLQUFLLElBQUk7UUFBRSxVQUFVLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQTtTQUNsRSxJQUFJLE9BQU8sVUFBVSxFQUFFLGFBQWEsS0FBSyxRQUFRLElBQUksVUFBVSxDQUFDLGFBQWEsSUFBSSxDQUFDO1FBQUUsVUFBVSxDQUFDLGFBQWEsR0FBRyxVQUFVLENBQUMsYUFBYSxDQUFBO0lBRTVJLElBQUksVUFBVSxFQUFFLFVBQVUsS0FBSyxJQUFJO1FBQUUsVUFBVSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUE7U0FDNUQsSUFBSSxPQUFPLFVBQVUsRUFBRSxVQUFVLEtBQUssUUFBUSxJQUFJLFVBQVUsQ0FBQyxVQUFVLElBQUksQ0FBQztRQUFFLFVBQVUsQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDLFVBQVUsQ0FBQTtJQUVoSSxPQUFPLFVBQVUsQ0FBQTtBQUNuQixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxNQUFNLFVBQVUsK0JBQStCLENBQUMsYUFBYSxFQUFFLE1BQU07SUFDbkUsK0RBQStEO0lBQy9ELElBQUksV0FBVyxDQUFBO0lBRWYsSUFBSSxDQUFDO1FBQ0gsV0FBVyxHQUFHLGFBQWEsRUFBRSxjQUFjLEVBQUUsQ0FBQTtJQUMvQyxDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTSxDQUFDLGtFQUFrRTtJQUMzRSxDQUFDO0lBRUQsSUFBSSxDQUFDLFdBQVc7UUFBRSxPQUFNO0lBRXhCLE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDO1dBQy9ELFdBQVcsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQy9DLE1BQU0sT0FBTyxHQUFHLEVBQUMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLEdBQUcsTUFBTSxFQUFDLENBQUE7SUFFL0QsSUFBSSxDQUFDO1FBQ0gsV0FBVyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsQ0FBQTtRQUM1QyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFDLEdBQUcsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBQyxDQUFDLENBQUE7SUFDM0UsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLDBEQUEwRDtJQUM1RCxDQUFDO0lBRUQsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2pCLE9BQU8sQ0FBQyxLQUFLLENBQUMsc0NBQXNDLE1BQU0sQ0FBQyxLQUFLLFVBQVUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFNBQVMsTUFBTSxDQUFDLFdBQVcsZUFBZSxNQUFNLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFlBQVksTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyx1QkFBdUIsTUFBTSxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxhQUFhLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxzSEFBc0gsQ0FBQyxDQUFBO0lBQ2hlLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbi8qKlxuICogRXZlbnQtZHJpdmVuIGFkdmlzb3J5LWxvY2sgZHVyYXRpb24gdGVsZW1ldHJ5IChTVEMtMjYxLCBwYXJlbnQgZXBpYyBTVEMtMjA5KS5cbiAqXG4gKiBBIGxvY2sgY29udm95IGlzIG9ubHkgZml4YWJsZSB3aGVuIGl0IGlzICphdHRyaWJ1dGFibGUqOiB3aGljaCBsb2NrIG5hbWUgd2FzXG4gKiBjb250ZW5kZWQsIG9uIHdoaWNoIGJhY2tlbmQgdGllciwgZm9yIGhvdyBsb25nLCBhbmQgd2hvIGhlbGQgaXQuIFRoZXNlIHJlcG9ydHNcbiAqIGZpcmUgb24gdGhlIGFjcXVpc2l0aW9uL3JlbGVhc2UgZXZlbnRzIHRoZW1zZWx2ZXMg4oCUIG5ldmVyIGZyb20gYSBwZXJpb2RpY1xuICogc2Nhbm5lciDigJQgc28gYSBjb250ZW5kZWQgbG9jayBpbiBwcm9kdWN0aW9uIHN1cmZhY2VzIG9uIHRoZSBmcmFtZXdvcmstZXJyb3JcbiAqIGNoYW5uZWwgd2l0aCB0aGUgaG9sZGVyIGlkZW50aXR5IGF2YWlsYWJsZSBvbiB0aGF0IHRpZXIgYXQgdGhhdCBtb21lbnQsXG4gKiB3aXRob3V0IFNTSCBmb3JlbnNpY3MuXG4gKlxuICogVGhyZWUgZXZlbnRzLCBlYWNoIHdpdGggaXRzIG93biB0aHJlc2hvbGQgKGFsbCBjb25maWd1cmFibGUgcGVyIGRhdGFiYXNlIHZpYVxuICogYGFkdmlzb3J5TG9ja1RlbGVtZXRyeWAsIHNlZSBgZG9jcy9hZHZpc29yeS1sb2Nrcy5tZGApOlxuICpcbiAqIC0gYGFkdmlzb3J5LWxvY2stc2xvdy1hY3F1aXJlYCDigJQgYW4gYWNxdWlyZSB3YWl0IGNvbXBsZXRlZCBzbG93ZXIgdGhhblxuICogICBgc2xvd0FjcXVpcmVNc2AgKGRlZmF1bHQgNTAwMCksIGluY2x1ZGluZyB0aGUgZXZlbnR1YWwgb3V0Y29tZSAoYGFjcXVpcmVkYFxuICogICBvciBgdGltZW91dGApLlxuICogLSBgYWR2aXNvcnktbG9jay1hY3F1aXJlLXRpbWVvdXRgIOKAlCBhIHdhaXQgZXhjZWVkZWQgaXRzIHRpbWVvdXQuIFRoZSByZXBvcnRcbiAqICAgY2FycmllcyB0aGUgaG9sZGVyIGlkZW50aXR5IGF2YWlsYWJsZSBvbiB0aGUgdGllciBhdCB0aGF0IG1vbWVudDogdGhlXG4gKiAgIGRyaXZlci1uYXRpdmUgdGllcnMgYXR0cmlidXRlIHRoZSBob2xkZXIgY29ubmVjdGlvbiAoTWFyaWFEQlxuICogICBgSVNfVVNFRF9MT0NLYCwgUG9zdGdyZVNRTCBgcGdfbG9ja3NgIGpvaW5lZCB0byBgcGdfc3RhdF9hY3Rpdml0eWAsIFNRTFxuICogICBTZXJ2ZXIgYHN5cy5kbV90cmFuX2xvY2tzYCByZXF1ZXN0IHNlc3Npb24sIFNRTGl0ZSBOb2RlIGZpbGUgdGllclxuICogICBgb3duZXIuanNvbmAgcGlkL2hvc3RuYW1lKTsgdGhlIHByb2Nlc3MtbG9jYWwgdGllciByZXBvcnRzIHRoZSBvd25pbmdcbiAqICAgZHJpdmVyJ3MgYGhvbGRlcklkYC5cbiAqIC0gYGFkdmlzb3J5LWxvY2stc2xvdy1ob2xkYCDigJQgYSBob2xkIGxhc3RlZCBsb25nZXIgdGhhbiBgc2xvd0hvbGRNc2BcbiAqICAgKGRlZmF1bHQgNjAwMDApLCBlbWl0dGVkIGF0IHJlbGVhc2UuXG4gKlxuICogUmVwb3J0cyBhcmUgZW1pdHRlZCBvbiBgY29uZmlndXJhdGlvbi5nZXRFcnJvckV2ZW50cygpYCBhcyBgZnJhbWV3b3JrLWVycm9yYFxuICogKHBsdXMgdGhlIG1hdGNoaW5nIGBhbGwtZXJyb3JgKSB3aXRoIGB7Y29udGV4dDogXCJhZHZpc29yeS1sb2NrLXRlbGVtZXRyeVwiLFxuICogZXZlbnQsIGxvY2tOYW1lLCBiYWNrZW5kVGllciwgLi4ufWAgcGF5bG9hZHMsIG1hdGNoaW5nIHRoZSByZXBvJ3MgXCJuZXZlclxuICogc3dhbGxvd1wiIHJ1bGUgc28gcHJvY2Vzcy1sZXZlbCBidWcgcmVwb3J0ZXJzIGNhcHR1cmUgdGhlbS5cbiAqXG4gKiBIb2xkZXIgbG9va3VwcyBhcmUgc3RyaWN0bHkgYmVzdC1lZmZvcnQgKmFmdGVyKiB0aGUgYWNxdWlzaXRpb24gYWxyZWFkeVxuICogc2V0dGxlZDogYSBmYWlsZWQgbG9va3VwIG5ldmVyIGNoYW5nZXMgdGhlIGFjcXVpc2l0aW9uIG91dGNvbWUgYW5kIG5ldmVyXG4gKiB0aHJvd3MgdG8gdGhlIGNhbGxlci5cbiAqL1xuXG4vKipcbiAqIE9uZSBhZHZpc29yeS1sb2NrIHRlbGVtZXRyeSByZXBvcnQuXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBBZHZpc29yeUxvY2tUZWxlbWV0cnlSZXBvcnRcbiAqIEBwcm9wZXJ0eSB7XCJhZHZpc29yeS1sb2NrLXNsb3ctYWNxdWlyZVwiIHwgXCJhZHZpc29yeS1sb2NrLWFjcXVpcmUtdGltZW91dFwiIHwgXCJhZHZpc29yeS1sb2NrLXNsb3ctaG9sZFwifSBldmVudCAtIFdoaWNoIGV2ZW50IGZpcmVkLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IGxvY2tOYW1lIC0gVGhlIGNvbnRlbmRlZCBhZHZpc29yeS1sb2NrIG5hbWUuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gYmFja2VuZFRpZXIgLSBUaWVyIHRoYXQgc2VydmVkIChvciByZWZ1c2VkKSB0aGUgYWNxdWlzaXRpb246IGBkcml2ZXItbmF0aXZlYCwgYHByb2Nlc3MtbG9jYWxgLCBvciBgZmlsZWAuXG4gKiBAcHJvcGVydHkge251bWJlcn0gZHVyYXRpb25NcyAtIE1lYXN1cmVkIGR1cmF0aW9uIG9mIHRoZSBhY3F1aXJlIHdhaXQgKG9yIHRoZSBob2xkKS5cbiAqIEBwcm9wZXJ0eSB7XCJhY3F1aXJlZFwiIHwgXCJ0aW1lb3V0XCIgfCBudWxsfSBvdXRjb21lIC0gRm9yIGFjcXVpcmUgZXZlbnRzOiB3aGV0aGVyIHRoZSB3YWl0IGV2ZW50dWFsbHkgYWNxdWlyZWQgdGhlIGxvY2suIE51bGwgZm9yIGhvbGQgcmVwb3J0cy5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyIHwgbnVsbH0gdGltZW91dE1zIC0gVGhlIGVmZmVjdGl2ZSBhY3F1aXJlIGJvdW5kIGZvciBhY3F1aXJlIGV2ZW50cy4gTnVsbCBmb3IgaG9sZCByZXBvcnRzIG9yIGFuIHVuYm91bmRlZCB3YWl0LlxuICogQHByb3BlcnR5IHtzdHJpbmcgfCBudWxsfSBob2xkZXJJZCAtIFByb2Nlc3MtbG9jYWwgaG9sZGVyIGF0dHJpYnV0aW9uIHdoZW4gdGhlIHRpZXIgY2FuIG5hbWUgaXRzIGxvY2FsIGhvbGRlci5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nIHwgbnVsbH0gaG9sZGVyQ29ubmVjdGlvbklkIC0gRHJpdmVyLW5hdGl2ZSBob2xkZXIgYXR0cmlidXRpb24gY2FwdHVyZWQgYXQgdGhlIGV2ZW50IG1vbWVudCAoTWFyaWFEQiBgSVNfVVNFRF9MT0NLYCBjb25uZWN0aW9uIGlkLCBQb3N0Z3JlU1FMIHBpZCwgU1FMIFNlcnZlciBzZXNzaW9uIGlkLCBTUUxpdGUgZmlsZSBgcGlkQGhvc3RuYW1lYCkuXG4gKiBAcHJvcGVydHkge3N0cmluZyB8IG51bGx9IGhvbGRlckxvb2t1cEVycm9yIC0gU2V0IHdoZW4gdGhlIGJlc3QtZWZmb3J0IGhvbGRlciBsb29rdXAgaXRzZWxmIGZhaWxlZDsgdGhlIGxvb2t1cCBuZXZlciBhZmZlY3RzIHRoZSBhY3F1aXNpdGlvbi5cbiAqL1xuXG4vKipcbiAqIFJlc29sdmVkIHBlci1kYXRhYmFzZSB0ZWxlbWV0cnkgdGhyZXNob2xkcy5cbiAqIEB0eXBlZGVmIHtvYmplY3R9IEFkdmlzb3J5TG9ja1RlbGVtZXRyeVRocmVzaG9sZHNcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyIHwgbnVsbH0gc2xvd0FjcXVpcmVNcyAtIFJlcG9ydCBhbiBhY3F1aXJlIHdhaXQgc2xvd2VyIHRoYW4gdGhpczsgYG51bGxgIGRpc2FibGVzIHNsb3ctYWNxdWlyZSByZXBvcnRzLlxuICogQHByb3BlcnR5IHtudW1iZXIgfCBudWxsfSBzbG93SG9sZE1zIC0gUmVwb3J0IGEgaG9sZCBsb25nZXIgdGhhbiB0aGlzIGF0IHJlbGVhc2U7IGBudWxsYCBkaXNhYmxlcyBob2xkIHJlcG9ydHMuXG4gKi9cblxuLyoqIEZyYW1ld29yayBkZWZhdWx0OiByZXBvcnQgYW4gYWNxdWlyZSB3YWl0IHRoYXQgY29tcGxldGVkIHNsb3dlciB0aGFuIHRoaXMuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9BRFZJU09SWV9MT0NLX1NMT1dfQUNRVUlSRV9NUyA9IDUwMDBcblxuLyoqIEZyYW1ld29yayBkZWZhdWx0OiByZXBvcnQgYSBob2xkIHRoYXQgb3V0bGl2ZXMgdGhpcyBhdCByZWxlYXNlLiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfQURWSVNPUllfTE9DS19TTE9XX0hPTERfTVMgPSA2MCAqIDEwMDBcblxuLyoqXG4gKiBSZXNvbHZlIHRoZSB0ZWxlbWV0cnkgdGhyZXNob2xkcyBmb3Igb25lIGRhdGFiYXNlIGNvbmZpZ3VyYXRpb24uXG4gKiBBbiBleHBsaWNpdCBwZXItZGF0YWJhc2UgYGFkdmlzb3J5TG9ja1RlbGVtZXRyeWAgdmFsdWUgd2luczsgYG51bGxgIG9wdHMgb3V0XG4gKiBvZiB0aGF0IHJlcG9ydDsgb25seSB3aGVuIG5laXRoZXIgaXMgY29uZmlndXJlZCBkb2VzIHRoZSBmcmFtZXdvcmsgZGVmYXVsdFxuICogYXBwbHkuXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4uL2NvbmZpZ3VyYXRpb24tdHlwZXMuanNcIikuRGF0YWJhc2VDb25maWd1cmF0aW9uVHlwZX0gYXJncyAtIERhdGFiYXNlIGNvbmZpZ3VyYXRpb24gYXJncy5cbiAqIEByZXR1cm5zIHtBZHZpc29yeUxvY2tUZWxlbWV0cnlUaHJlc2hvbGRzfSAtIFJlc29sdmVkIHRocmVzaG9sZHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZHZpc29yeUxvY2tUZWxlbWV0cnlUaHJlc2hvbGRzKGFyZ3MpIHtcbiAgY29uc3QgY29uZmlndXJlZCA9IGFyZ3M/LmFkdmlzb3J5TG9ja1RlbGVtZXRyeVxuICAvKiogQHR5cGUge0Fkdmlzb3J5TG9ja1RlbGVtZXRyeVRocmVzaG9sZHN9ICovXG4gIGNvbnN0IHRocmVzaG9sZHMgPSB7XG4gICAgc2xvd0FjcXVpcmVNczogREVGQVVMVF9BRFZJU09SWV9MT0NLX1NMT1dfQUNRVUlSRV9NUyxcbiAgICBzbG93SG9sZE1zOiBERUZBVUxUX0FEVklTT1JZX0xPQ0tfU0xPV19IT0xEX01TXG4gIH1cblxuICBpZiAoY29uZmlndXJlZD8uc2xvd0FjcXVpcmVNcyA9PT0gbnVsbCkgdGhyZXNob2xkcy5zbG93QWNxdWlyZU1zID0gbnVsbFxuICBlbHNlIGlmICh0eXBlb2YgY29uZmlndXJlZD8uc2xvd0FjcXVpcmVNcyA9PT0gXCJudW1iZXJcIiAmJiBjb25maWd1cmVkLnNsb3dBY3F1aXJlTXMgPj0gMCkgdGhyZXNob2xkcy5zbG93QWNxdWlyZU1zID0gY29uZmlndXJlZC5zbG93QWNxdWlyZU1zXG5cbiAgaWYgKGNvbmZpZ3VyZWQ/LnNsb3dIb2xkTXMgPT09IG51bGwpIHRocmVzaG9sZHMuc2xvd0hvbGRNcyA9IG51bGxcbiAgZWxzZSBpZiAodHlwZW9mIGNvbmZpZ3VyZWQ/LnNsb3dIb2xkTXMgPT09IFwibnVtYmVyXCIgJiYgY29uZmlndXJlZC5zbG93SG9sZE1zID49IDApIHRocmVzaG9sZHMuc2xvd0hvbGRNcyA9IGNvbmZpZ3VyZWQuc2xvd0hvbGRNc1xuXG4gIHJldHVybiB0aHJlc2hvbGRzXG59XG5cbi8qKlxuICogRW1pdCBvbmUgdGVsZW1ldHJ5IHJlcG9ydCBvbiB0aGUgZnJhbWV3b3JrLWVycm9yIGNoYW5uZWwuXG4gKlxuICogTWlycm9ycyB0aGUgcmVwbydzIGZyYW1ld29yay1lcnJvciBlbWlzc2lvbiBzaGFwZSAoc2VlIGBjb25maWd1cmF0aW9uLmpzYFxuICogYF9yZXBvcnRCZWFjb25FcnJvcmApOiB3aGVuIG5vIGxpc3RlbmVyIGlzIGF0dGFjaGVkIHRvIGBmcmFtZXdvcmstZXJyb3JgIG9yXG4gKiBgYWxsLWVycm9yYCwgYSBvbmUtbGluZSBzdW1tYXJ5IGdvZXMgdG8gYHN0ZGVycmAgc28gYSBjb252b3kgaXMgbmV2ZXJcbiAqIGNvbXBsZXRlbHkgc2lsZW50LiBBIGxpc3RlbmVyIGZhaWx1cmUgY2FuIG5ldmVyIGJyZWFrIGxvY2sgaGFuZGxpbmcsIHNvXG4gKiBlbWlzc2lvbnMgYXJlIGd1YXJkZWQuXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4uL2NvbmZpZ3VyYXRpb24uanNcIikuZGVmYXVsdH0gY29uZmlndXJhdGlvbiAtIENvbmZpZ3VyYXRpb24gaW5zdGFuY2Ugb3duaW5nIHRoZSBlcnJvciBjaGFubmVsLlxuICogQHBhcmFtIHtBZHZpc29yeUxvY2tUZWxlbWV0cnlSZXBvcnR9IHJlcG9ydCAtIFRoZSByZXBvcnQgcGF5bG9hZC5cbiAqIEByZXR1cm5zIHt2b2lkfSAtIE5vIHJldHVybiB2YWx1ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVtaXRBZHZpc29yeUxvY2tUZWxlbWV0cnlSZXBvcnQoY29uZmlndXJhdGlvbiwgcmVwb3J0KSB7XG4gIC8qKiBAdHlwZSB7aW1wb3J0KFwiZXZlbnRlbWl0dGVyM1wiKS5FdmVudEVtaXR0ZXIgfCB1bmRlZmluZWR9ICovXG4gIGxldCBlcnJvckV2ZW50c1xuXG4gIHRyeSB7XG4gICAgZXJyb3JFdmVudHMgPSBjb25maWd1cmF0aW9uPy5nZXRFcnJvckV2ZW50cygpXG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiAvLyBObyBjb25maWd1cmF0aW9uIHRvIHJlcG9ydCB0aHJvdWdoIOKAlCBuZXZlciBicmVhayBsb2NrIGhhbmRsaW5nLlxuICB9XG5cbiAgaWYgKCFlcnJvckV2ZW50cykgcmV0dXJuXG5cbiAgY29uc3QgaGFzTGlzdGVuZXIgPSBlcnJvckV2ZW50cy5saXN0ZW5lckNvdW50KFwiZnJhbWV3b3JrLWVycm9yXCIpID4gMFxuICAgIHx8IGVycm9yRXZlbnRzLmxpc3RlbmVyQ291bnQoXCJhbGwtZXJyb3JcIikgPiAwXG4gIGNvbnN0IHBheWxvYWQgPSB7Y29udGV4dDogXCJhZHZpc29yeS1sb2NrLXRlbGVtZXRyeVwiLCAuLi5yZXBvcnR9XG5cbiAgdHJ5IHtcbiAgICBlcnJvckV2ZW50cy5lbWl0KFwiZnJhbWV3b3JrLWVycm9yXCIsIHBheWxvYWQpXG4gICAgZXJyb3JFdmVudHMuZW1pdChcImFsbC1lcnJvclwiLCB7Li4ucGF5bG9hZCwgZXJyb3JUeXBlOiBcImZyYW1ld29yay1lcnJvclwifSlcbiAgfSBjYXRjaCB7XG4gICAgLy8gQSBicm9rZW4gbGlzdGVuZXIgbXVzdCBuZXZlciBzdXJmYWNlIGFzIGEgbG9jayBmYWlsdXJlLlxuICB9XG5cbiAgaWYgKCFoYXNMaXN0ZW5lcikge1xuICAgIGNvbnNvbGUuZXJyb3IoYFt2ZWxvY2lvdXMgYWR2aXNvcnktbG9jay10ZWxlbWV0cnkgJHtyZXBvcnQuZXZlbnR9XSBsb2NrPSR7SlNPTi5zdHJpbmdpZnkocmVwb3J0LmxvY2tOYW1lKX0gdGllcj0ke3JlcG9ydC5iYWNrZW5kVGllcn0gZHVyYXRpb25Ncz0ke3JlcG9ydC5kdXJhdGlvbk1zfSR7cmVwb3J0Lm91dGNvbWUgPyBgIG91dGNvbWU9JHtyZXBvcnQub3V0Y29tZX1gIDogXCJcIn0ke3JlcG9ydC5ob2xkZXJDb25uZWN0aW9uSWQgPyBgIGhvbGRlckNvbm5lY3Rpb25JZD0ke3JlcG9ydC5ob2xkZXJDb25uZWN0aW9uSWR9YCA6IFwiXCJ9JHtyZXBvcnQuaG9sZGVySWQgPyBgIGhvbGRlcklkPSR7cmVwb3J0LmhvbGRlcklkfWAgOiBcIlwifSDigJQgc3Vic2NyaWJlIHZpYSBjb25maWd1cmF0aW9uLmdldEVycm9yRXZlbnRzKCkub24oXCJmcmFtZXdvcmstZXJyb3JcIiwg4oCmKSB0byByb3V0ZSB0aGVzZSByZXBvcnRzIHRvIHlvdXIgYnVnIHJlcG9ydGVyYClcbiAgfVxufVxuIl19
@@ -406,6 +406,18 @@ export default class VelociousDatabaseDriversBase {
406
406
  }>;
407
407
  /** @type {Map<string, number>} */
408
408
  _heldAdvisoryLocks: Map<string, number>;
409
+ /**
410
+ * When each tracked advisory lock was first acquired, so the final release can
411
+ * report a hold that outlived `advisoryLockTelemetry.slowHoldMs`.
412
+ * @type {Map<string, number>}
413
+ */
414
+ _advisoryLockAcquiredAtByName: Map<string, number>;
415
+ /**
416
+ * Stable per-connection holder identity used by advisory-lock telemetry when
417
+ * the tier can only name local holders.
418
+ * @type {string | undefined}
419
+ */
420
+ _advisoryLockHolderId: string | undefined;
409
421
  /**
410
422
  * Exclusive operation lease installed by a single-multi-use pool.
411
423
  * @type {import("../operation-lease.js").default | undefined}
@@ -1560,5 +1572,44 @@ export default class VelociousDatabaseDriversBase {
1560
1572
  * @returns {Promise<boolean>} - Resolves to true if the lock is held by ? session.
1561
1573
  */
1562
1574
  isAdvisoryLockHeld(name: string): Promise<boolean>;
1575
+ /**
1576
+ * Which advisory-lock backend tier this connection serves (STC-210 chain
1577
+ * naming). The base driver is the driver-native tier; the SQLite drivers
1578
+ * override to `process-local` / `file`.
1579
+ * @returns {string} - Tier name reported on telemetry payloads.
1580
+ */
1581
+ advisoryLockBackendTier(): string;
1582
+ /**
1583
+ * Stable identity of this connection as a lock holder, reported on
1584
+ * telemetry payloads so a slow acquire/hold is attributable to the reporting
1585
+ * connection itself.
1586
+ * @returns {string} - Holder id.
1587
+ */
1588
+ advisoryLockHolderId(): string;
1589
+ /**
1590
+ * Best-effort identity of the connection currently holding the named lock,
1591
+ * captured on the tier that served the acquisition. The base driver has no
1592
+ * portable server-side lookup; MySQL/PostgreSQL/SQL Server/Node-SQLite
1593
+ * override with their tier's holder attribution.
1594
+ * @param {string} name - Lock name.
1595
+ * @returns {Promise<string | null>} - Holder connection identity, or null when the tier cannot attribute it.
1596
+ */
1597
+ advisoryLockHolderConnectionId(name: string): Promise<string | null>;
1598
+ /**
1599
+ * Emit one event-driven advisory-lock telemetry report (slow acquire,
1600
+ * acquire timeout with holder attribution, slow hold). The holder lookup is
1601
+ * best-effort: a failed lookup is recorded on the report and never affects
1602
+ * the acquisition that already settled.
1603
+ * @param {{event: "advisory-lock-slow-acquire" | "advisory-lock-acquire-timeout" | "advisory-lock-slow-hold", lockName: string, durationMs: number, outcome: "acquired" | "timeout" | null, timeoutMs: number | null, captureHolder?: boolean}} args - Report args.
1604
+ * @returns {Promise<void>} - Resolves after the report is emitted.
1605
+ */
1606
+ _reportAdvisoryLockTelemetry(args: {
1607
+ event: "advisory-lock-slow-acquire" | "advisory-lock-acquire-timeout" | "advisory-lock-slow-hold";
1608
+ lockName: string;
1609
+ durationMs: number;
1610
+ outcome: "acquired" | "timeout" | null;
1611
+ timeoutMs: number | null;
1612
+ captureHolder?: boolean;
1613
+ }): Promise<void>;
1563
1614
  }
1564
1615
  //# sourceMappingURL=base.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/database/drivers/base.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/database/drivers/base.js"],"names":[],"mappings":"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"}