@blokjs/trigger-worker 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  /**
3
2
  * InMemoryAdapter - Worker adapter using in-process queues
4
3
  *
@@ -17,13 +16,11 @@
17
16
  * const adapter = new InMemoryAdapter();
18
17
  * ```
19
18
  */
20
- Object.defineProperty(exports, "__esModule", { value: true });
21
- exports.InMemoryAdapter = void 0;
22
- const uuid_1 = require("uuid");
19
+ import { v4 as uuid } from "uuid";
23
20
  /**
24
21
  * InMemoryAdapter - Simple in-process worker queue
25
22
  */
26
- class InMemoryAdapter {
23
+ export class InMemoryAdapter {
27
24
  provider = "in-memory";
28
25
  connected = false;
29
26
  jobs = new Map();
@@ -80,7 +77,7 @@ class InMemoryAdapter {
80
77
  this.stats.set(queue, { completed: 0, failed: 0 });
81
78
  }
82
79
  const job = {
83
- id: opts?.jobId || (0, uuid_1.v4)(),
80
+ id: opts?.jobId || uuid(),
84
81
  data,
85
82
  queue,
86
83
  priority: opts?.priority ?? 0,
@@ -220,5 +217,4 @@ class InMemoryAdapter {
220
217
  }
221
218
  }
222
219
  }
223
- exports.InMemoryAdapter = InMemoryAdapter;
224
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5NZW1vcnlBZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FkYXB0ZXJzL0luTWVtb3J5QWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJHOzs7QUFHSCwrQkFBa0M7QUFnQ2xDOztHQUVHO0FBQ0gsTUFBYSxlQUFlO0lBQ2xCLFFBQVEsR0FBRyxXQUFvQixDQUFDO0lBQ2pDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDbEIsSUFBSSxHQUErQixJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQzdDLFVBQVUsR0FBZ0MsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNwRCxLQUFLLEdBQXVELElBQUksR0FBRyxFQUFFLENBQUM7SUFFOUUsS0FBSyxDQUFDLE9BQU87UUFDWixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztJQUN2QixDQUFDO0lBRUQsS0FBSyxDQUFDLFVBQVU7UUFDZixzQkFBc0I7UUFDdEIsS0FBSyxNQUFNLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNsRCxTQUFTLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUMxQixJQUFJLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDckIsYUFBYSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNoQyxDQUFDO1FBQ0YsQ0FBQztRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQXlCLEVBQUUsT0FBMEM7UUFDbEYsSUFBSSxDQUFDLElB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NE5DIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBJbk1lbW9yeUFkYXB0ZXIgLSBXb3JrZXIgYWRhcHRlciB1c2luZyBpbi1wcm9jZXNzIHF1ZXVlc1xuICpcbiAqIElkZWFsIGZvcjpcbiAqIC0gRGV2ZWxvcG1lbnQgYW5kIHRlc3RpbmdcbiAqIC0gU2ltcGxlIGJhY2tncm91bmQgam9iIHByb2Nlc3NpbmdcbiAqIC0gU2luZ2xlLWluc3RhbmNlIGRlcGxveW1lbnRzXG4gKlxuICogTGltaXRhdGlvbnM6XG4gKiAtIEpvYnMgYXJlIGxvc3Qgb24gcHJvY2VzcyByZXN0YXJ0XG4gKiAtIE5vIGRpc3RyaWJ1dGVkIHByb2Nlc3NpbmdcbiAqIC0gTm8gcGVyc2lzdGVuY2VcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgYWRhcHRlciA9IG5ldyBJbk1lbW9yeUFkYXB0ZXIoKTtcbiAqIGBgYFxuICovXG5cbmltcG9ydCB0eXBlIHsgV29ya2VyVHJpZ2dlck9wdHMgfSBmcm9tIFwiQGJsb2svaGVscGVyXCI7XG5pbXBvcnQgeyB2NCBhcyB1dWlkIH0gZnJvbSBcInV1aWRcIjtcbmltcG9ydCB0eXBlIHsgV29ya2VyQWRhcHRlciwgV29ya2VySm9iLCBXb3JrZXJRdWV1ZVN0YXRzIH0gZnJvbSBcIi4uL1dvcmtlclRyaWdnZXJcIjtcblxuLyoqXG4gKiBJbnRlcm5hbCBqb2IgcmVwcmVzZW50YXRpb25cbiAqL1xuaW50ZXJmYWNlIEludGVybmFsSm9iIHtcblx0aWQ6IHN0cmluZztcblx0ZGF0YTogdW5rbm93bjtcblx0cXVldWU6IHN0cmluZztcblx0cHJpb3JpdHk6IG51bWJlcjtcblx0YXR0ZW1wdHM6IG51bWJlcjtcblx0bWF4UmV0cmllczogbnVtYmVyO1xuXHRjcmVhdGVkQXQ6IERhdGU7XG5cdGRlbGF5OiBudW1iZXI7XG5cdHRpbWVvdXQ6IG51bWJlcjtcblx0c3RhdHVzOiBcIndhaXRpbmdcIiB8IFwiYWN0aXZlXCIgfCBcImNvbXBsZXRlZFwiIHwgXCJmYWlsZWRcIiB8IFwiZGVsYXllZFwiO1xuXHRzY2hlZHVsZWRBdD86IERhdGU7XG5cdGVycm9yPzogRXJyb3I7XG59XG5cbi8qKlxuICogUXVldWUgcHJvY2Vzc29yIGVudHJ5XG4gKi9cbmludGVyZmFjZSBRdWV1ZVByb2Nlc3NvciB7XG5cdGNvbmZpZzogV29ya2VyVHJpZ2dlck9wdHM7XG5cdGhhbmRsZXI6IChqb2I6IFdvcmtlckpvYikgPT4gUHJvbWlzZTx2b2lkPjtcblx0YWN0aXZlOiBudW1iZXI7XG5cdHJ1bm5pbmc6IGJvb2xlYW47XG5cdHRpbWVyPzogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0SW50ZXJ2YWw+O1xufVxuXG4vKipcbiAqIEluTWVtb3J5QWRhcHRlciAtIFNpbXBsZSBpbi1wcm9jZXNzIHdvcmtlciBxdWV1ZVxuICovXG5leHBvcnQgY2xhc3MgSW5NZW1vcnlBZGFwdGVyIGltcGxlbWVudHMgV29ya2VyQWRhcHRlciB7XG5cdHJlYWRvbmx5IHByb3ZpZGVyID0gXCJpbi1tZW1vcnlcIiBhcyBjb25zdDtcblx0cHJpdmF0ZSBjb25uZWN0ZWQgPSBmYWxzZTtcblx0cHJpdmF0ZSBqb2JzOiBNYXA8c3RyaW5nLCBJbnRlcm5hbEpvYltdPiA9IG5ldyBNYXAoKTtcblx0cHJpdmF0ZSBwcm9jZXNzb3JzOiBNYXA8c3RyaW5nLCBRdWV1ZVByb2Nlc3Nvcj4gPSBuZXcgTWFwKCk7XG5cdHByaXZhdGUgc3RhdHM6IE1hcDxzdHJpbmcsIHsgY29tcGxldGVkOiBudW1iZXI7IGZhaWxlZDogbnVtYmVyIH0+ID0gbmV3IE1hcCgpO1xuXG5cdGFzeW5jIGNvbm5lY3QoKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0dGhpcy5jb25uZWN0ZWQgPSB0cnVlO1xuXHR9XG5cblx0YXN5bmMgZGlzY29ubmVjdCgpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHQvLyBTdG9wIGFsbCBwcm9jZXNzb3JzXG5cdFx0Zm9yIChjb25zdCBbcXVldWUsIHByb2Nlc3Nvcl0gb2YgdGhpcy5wcm9jZXNzb3JzKSB7XG5cdFx0XHRwcm9jZXNzb3IucnVubmluZyA9IGZhbHNlO1xuXHRcdFx0aWYgKHByb2Nlc3Nvci50aW1lcikge1xuXHRcdFx0XHRjbGVhckludGVydmFsKHByb2Nlc3Nvci50aW1lcik7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHRoaXMucHJvY2Vzc29ycy5jbGVhcigpO1xuXHRcdHRoaXMuam9icy5jbGVhcigpO1xuXHRcdHRoaXMuc3RhdHMuY2xlYXIoKTtcblx0XHR0aGlzLmNvbm5lY3RlZCA9IGZhbHNlO1xuXHR9XG5cblx0YXN5bmMgcHJvY2Vzcyhjb25maWc6IFdvcmtlclRyaWdnZXJPcHRzLCBoYW5kbGVyOiAoam9iOiBXb3JrZXJKb2IpID0+IFByb21pc2U8dm9pZD4pOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRpZiAoIXRoaXMuY29ubmVjdGVkKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJOb3QgY29ubmVjdGVkLiBDYWxsIGNvbm5lY3QoKSBmaXJzdC5cIik7XG5cdFx0fVxuXG5cdFx0aWYgKCF0aGlzLmpvYnMuaGFzKGNvbmZpZy5xdWV1ZSkpIHtcblx0XHRcdHRoaXMuam9icy5zZXQoY29uZmlnLnF1ZXVlLCBbXSk7XG5cdFx0fVxuXHRcdGlmICghdGhpcy5zdGF0cy5oYXMoY29uZmlnLnF1ZXVlKSkge1xuXHRcdFx0dGhpcy5zdGF0cy5zZXQoY29uZmlnLnF1ZXVlLCB7IGNvbXBsZXRlZDogMCwgZmFpbGVkOiAwIH0pO1xuXHRcdH1cblxuXHRcdGNvbnN0IHByb2Nlc3NvcjogUXVldWVQcm9jZXNzb3IgPSB7XG5cdFx0XHRjb25maWcsXG5cdFx0XHRoYW5kbGVyLFxuXHRcdFx0YWN0aXZlOiAwLFxuXHRcdFx0cnVubmluZzogdHJ1ZSxcblx0XHR9O1xuXG5cdFx0dGhpcy5wcm9jZXNzb3JzLnNldChjb25maWcucXVldWUsIHByb2Nlc3Nvcik7XG5cblx0XHQvLyBTdGFydCBwb2xsaW5nIGZvciBqb2JzXG5cdFx0cHJvY2Vzc29yLnRpbWVyID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuXHRcdFx0dGhpcy5wcm9jZXNzTmV4dChjb25maWcucXVldWUpLmNhdGNoKChlcnIpID0+IHtcblx0XHRcdFx0Y29uc29sZS5lcnJvcihgW0luTWVtb3J5QWRhcHRlcl0gRXJyb3IgcHJvY2Vzc2luZyAke2NvbmZpZy5xdWV1ZX06ICR7KGVyciBhcyBFcnJvcikubWVzc2FnZX1gKTtcblx0XHRcdH0pO1xuXHRcdH0sIDUwKTsgLy8gUG9sbCBldmVyeSA1MG1zXG5cdH1cblxuXHRhc3luYyBhZGRKb2IoXG5cdFx0cXVldWU6IHN0cmluZyxcblx0XHRkYXRhOiB1bmtub3duLFxuXHRcdG9wdHM/OiB7XG5cdFx0XHRwcmlvcml0eT86IG51bWJlcjtcblx0XHRcdGRlbGF5PzogbnVtYmVyO1xuXHRcdFx0cmV0cmllcz86IG51bWJlcjtcblx0XHRcdHRpbWVvdXQ/OiBudW1iZXI7XG5cdFx0XHRqb2JJZD86IHN0cmluZztcblx0XHR9LFxuXHQpOiBQcm9taXNlPHN0cmluZz4ge1xuXHRcdGlmICghdGhpcy5jb25uZWN0ZWQpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihcIk5vdCBjb25uZWN0ZWQuIENhbGwgY29ubmVjdCgpIGZpcnN0LlwiKTtcblx0XHR9XG5cblx0XHRpZiAoIXRoaXMuam9icy5oYXMocXVldWUpKSB7XG5cdFx0XHR0aGlzLmpvYnMuc2V0KHF1ZXVlLCBbXSk7XG5cdFx0fVxuXHRcdGlmICghdGhpcy5zdGF0cy5oYXMocXVldWUpKSB7XG5cdFx0XHR0aGlzLnN0YXRzLnNldChxdWV1ZSwgeyBjb21wbGV0ZWQ6IDAsIGZhaWxlZDogMCB9KTtcblx0XHR9XG5cblx0XHRjb25zdCBqb2I6IEludGVybmFsSm9iID0ge1xuXHRcdFx0aWQ6IG9wdHM/LmpvYklkIHx8IHV1aWQoKSxcblx0XHRcdGRhdGEsXG5cdFx0XHRxdWV1ZSxcblx0XHRcdHByaW9yaXR5OiBvcHRzPy5wcmlvcml0eSA/PyAwLFxuXHRcdFx0YXR0ZW1wdHM6IDAsXG5cdFx0XHRtYXhSZXRyaWVzOiBvcHRzPy5yZXRyaWVzID8/IDMsXG5cdFx0XHRjcmVhdGVkQXQ6IG5ldyBEYXRlKCksXG5cdFx0XHRkZWxheTogb3B0cz8uZGVsYXkgPz8gMCxcblx0XHRcdHRpbWVvdXQ6IG9wdHM/LnRpbWVvdXQgPz8gMCxcblx0XHRcdHN0YXR1czogb3B0cz8uZGVsYXkgJiYgb3B0cy5kZWxheSA+IDAgPyBcImRlbGF5ZWRcIiA6IFwid2FpdGluZ1wiLFxuXHRcdH07XG5cblx0XHRpZiAoam9iLnN0YXR1cyA9PT0gXCJkZWxheWVkXCIpIHtcblx0XHRcdGpvYi5zY2hlZHVsZWRBdCA9IG5ldyBEYXRlKERhdGUubm93KCkgKyBqb2IuZGVsYXkpO1xuXHRcdH1cblxuXHRcdGNvbnN0IGpvYnMgPSB0aGlzLmpvYnMuZ2V0KHF1ZXVlKSE7XG5cblx0XHQvLyBJbnNlcnQgc29ydGVkIGJ5IHByaW9yaXR5IChoaWdoZXIgZmlyc3QpXG5cdFx0Y29uc3QgaW5zZXJ0SWR4ID0gam9icy5maW5kSW5kZXgoKGopID0+IGouc3RhdHVzID09PSBcIndhaXRpbmdcIiAmJiBqLnByaW9yaXR5IDwgam9iLnByaW9yaXR5KTtcblx0XHRpZiAoaW5zZXJ0SWR4ID49IDApIHtcblx0XHRcdGpvYnMuc3BsaWNlKGluc2VydElkeCwgMCwgam9iKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0am9icy5wdXNoKGpvYik7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGpvYi5pZDtcblx0fVxuXG5cdGFzeW5jIHN0b3BQcm9jZXNzaW5nKHF1ZXVlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRjb25zdCBwcm9jZXNzb3IgPSB0aGlzLnByb2Nlc3NvcnMuZ2V0KHF1ZXVlKTtcblx0XHRpZiAocHJvY2Vzc29yKSB7XG5cdFx0XHRwcm9jZXNzb3IucnVubmluZyA9IGZhbHNlO1xuXHRcdFx0aWYgKHByb2Nlc3Nvci50aW1lcikge1xuXHRcdFx0XHRjbGVhckludGVydmFsKHByb2Nlc3Nvci50aW1lcik7XG5cdFx0XHR9XG5cdFx0XHR0aGlzLnByb2Nlc3NvcnMuZGVsZXRlKHF1ZXVlKTtcblx0XHR9XG5cdH1cblxuXHRpc0Nvbm5lY3RlZCgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdGhpcy5jb25uZWN0ZWQ7XG5cdH1cblxuXHRhc3luYyBoZWFsdGhDaGVjaygpOiBQcm9taXNlPGJvb2xlYW4+IHtcblx0XHRyZXR1cm4gdGhpcy5jb25uZWN0ZWQ7XG5cdH1cblxuXHRhc3luYyBnZXRRdWV1ZVN0YXRzKHF1ZXVlOiBzdHJpbmcpOiBQcm9taXNlPFdvcmtlclF1ZXVlU3RhdHM+IHtcblx0XHRjb25zdCBqb2JzID0gdGhpcy5qb2JzLmdldChxdWV1ZSkgfHwgW107XG5cdFx0Y29uc3QgcXVldWVTdGF0cyA9IHRoaXMuc3RhdHMuZ2V0KHF1ZXVlKSB8fCB7IGNvbXBsZXRlZDogMCwgZmFpbGVkOiAwIH07XG5cblx0XHRyZXR1cm4ge1xuXHRcdFx0d2FpdGluZzogam9icy5maWx0ZXIoKGopID0+IGouc3RhdHVzID09PSBcIndhaXRpbmdcIikubGVuZ3RoLFxuXHRcdFx0YWN0aXZlOiBqb2JzLmZpbHRlcigoaikgPT4gai5zdGF0dXMgPT09IFwiYWN0aXZlXCIpLmxlbmd0aCxcblx0XHRcdGNvbXBsZXRlZDogcXVldWVTdGF0cy5jb21wbGV0ZWQsXG5cdFx0XHRmYWlsZWQ6IHF1ZXVlU3RhdHMuZmFpbGVkLFxuXHRcdFx0ZGVsYXllZDogam9icy5maWx0ZXIoKGopID0+IGouc3RhdHVzID09PSBcImRlbGF5ZWRcIikubGVuZ3RoLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogUHJvY2VzcyB0aGUgbmV4dCBhdmFpbGFibGUgam9iIGZyb20gYSBxdWV1ZVxuXHQgKi9cblx0cHJpdmF0ZSBhc3luYyBwcm9jZXNzTmV4dChxdWV1ZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0Y29uc3QgcHJvY2Vzc29yID0gdGhpcy5wcm9jZXNzb3JzLmdldChxdWV1ZSk7XG5cdFx0aWYgKCFwcm9jZXNzb3IgfHwgIXByb2Nlc3Nvci5ydW5uaW5nKSByZXR1cm47XG5cblx0XHRjb25zdCBjb25jdXJyZW5jeSA9IHByb2Nlc3Nvci5jb25maWcuY29uY3VycmVuY3kgPz8gMTtcblx0XHRpZiAocHJvY2Vzc29yLmFjdGl2ZSA+PSBjb25jdXJyZW5jeSkgcmV0dXJuO1xuXG5cdFx0Y29uc3Qgam9icyA9IHRoaXMuam9icy5nZXQocXVldWUpO1xuXHRcdGlmICgham9icyB8fCBqb2JzLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuXG5cdFx0Ly8gQ2hlY2sgZm9yIGRlbGF5ZWQgam9icyB0aGF0IGFyZSByZWFkeVxuXHRcdGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG5cdFx0Zm9yIChjb25zdCBqb2Igb2Ygam9icykge1xuXHRcdFx0aWYgKGpvYi5zdGF0dXMgPT09IFwiZGVsYXllZFwiICYmIGpvYi5zY2hlZHVsZWRBdCAmJiBqb2Iuc2NoZWR1bGVkQXQuZ2V0VGltZSgpIDw9IG5vdykge1xuXHRcdFx0XHRqb2Iuc3RhdHVzID0gXCJ3YWl0aW5nXCI7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gRmluZCBuZXh0IHdhaXRpbmcgam9iXG5cdFx0Y29uc3Qgam9iSWR4ID0gam9icy5maW5kSW5kZXgoKGopID0+IGouc3RhdHVzID09PSBcIndhaXRpbmdcIik7XG5cdFx0aWYgKGpvYklkeCA8IDApIHJldHVybjtcblxuXHRcdGNvbnN0IGludGVybmFsSm9iID0gam9ic1tqb2JJZHhdO1xuXHRcdGludGVybmFsSm9iLnN0YXR1cyA9IFwiYWN0aXZlXCI7XG5cdFx0cHJvY2Vzc29yLmFjdGl2ZSsrO1xuXG5cdFx0Y29uc3Qgd29ya2VySm9iOiBXb3JrZXJKb2IgPSB7XG5cdFx0XHRpZDogaW50ZXJuYWxKb2IuaWQsXG5cdFx0XHRkYXRhOiBpbnRlcm5hbEpvYi5kYXRhLFxuXHRcdFx0aGVhZGVyczoge30sXG5cdFx0XHRxdWV1ZTogaW50ZXJuYWxKb2IucXVldWUsXG5cdFx0XHRwcmlvcml0eTogaW50ZXJuYWxKb2IucHJpb3JpdHksXG5cdFx0XHRhdHRlbXB0czogaW50ZXJuYWxKb2IuYXR0ZW1wdHMsXG5cdFx0XHRtYXhSZXRyaWVzOiBpbnRlcm5hbEpvYi5tYXhSZXRyaWVzLFxuXHRcdFx0Y3JlYXRlZEF0OiBpbnRlcm5hbEpvYi5jcmVhdGVkQXQsXG5cdFx0XHRkZWxheTogaW50ZXJuYWxKb2IuZGVsYXksXG5cdFx0XHR0aW1lb3V0OiBpbnRlcm5hbEpvYi50aW1lb3V0LFxuXHRcdFx0cmF3OiBpbnRlcm5hbEpvYixcblx0XHRcdGNvbXBsZXRlOiBhc3luYyAoKSA9PiB7XG5cdFx0XHRcdGludGVybmFsSm9iLnN0YXR1cyA9IFwiY29tcGxldGVkXCI7XG5cdFx0XHRcdGNvbnN0IGlkeCA9IGpvYnMuaW5kZXhPZihpbnRlcm5hbEpvYik7XG5cdFx0XHRcdGlmIChpZHggPj0gMCkgam9icy5zcGxpY2UoaWR4LCAxKTtcblx0XHRcdFx0Y29uc3QgcyA9IHRoaXMuc3RhdHMuZ2V0KHF1ZXVlKTtcblx0XHRcdFx0aWYgKHMpIHMuY29tcGxldGVkKys7XG5cdFx0XHR9LFxuXHRcdFx0ZmFpbDogYXN5bmMgKGVycm9yOiBFcnJvciwgcmVxdWV1ZT86IGJvb2xlYW4pID0+IHtcblx0XHRcdFx0aW50ZXJuYWxKb2IuYXR0ZW1wdHMrKztcblx0XHRcdFx0aW50ZXJuYWxKb2IuZXJyb3IgPSBlcnJvcjtcblxuXHRcdFx0XHRpZiAocmVxdWV1ZSAmJiBpbnRlcm5hbEpvYi5hdHRlbXB0cyA8IGludGVybmFsSm9iLm1heFJldHJpZXMpIHtcblx0XHRcdFx0XHQvLyBSZXF1ZXVlIHdpdGggYmFja29mZlxuXHRcdFx0XHRcdGNvbnN0IGJhY2tvZmYgPSBNYXRoLm1pbigxMDAwICogTWF0aC5wb3coMiwgaW50ZXJuYWxKb2IuYXR0ZW1wdHMpLCAzMDAwMCk7XG5cdFx0XHRcdFx0aW50ZXJuYWxKb2Iuc3RhdHVzID0gXCJkZWxheWVkXCI7XG5cdFx0XHRcdFx0aW50ZXJuYWxKb2Iuc2NoZWR1bGVkQXQgPSBuZXcgRGF0ZShEYXRlLm5vdygpICsgYmFja29mZik7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0aW50ZXJuYWxKb2Iuc3RhdHVzID0gXCJmYWlsZWRcIjtcblx0XHRcdFx0XHRjb25zdCBpZHggPSBqb2JzLmluZGV4T2YoaW50ZXJuYWxKb2IpO1xuXHRcdFx0XHRcdGlmIChpZHggPj0gMCkgam9icy5zcGxpY2UoaWR4LCAxKTtcblx0XHRcdFx0XHRjb25zdCBzID0gdGhpcy5zdGF0cy5nZXQocXVldWUpO1xuXHRcdFx0XHRcdGlmIChzKSBzLmZhaWxlZCsrO1xuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdH07XG5cblx0XHR0cnkge1xuXHRcdFx0YXdhaXQgcHJvY2Vzc29yLmhhbmRsZXIod29ya2VySm9iKTtcblx0XHR9IGNhdGNoIHtcblx0XHRcdC8vIEhhbmRsZXIgdGhyZXcgLSB0cmVhdCBhcyBmYWlsdXJlXG5cdFx0XHRpZiAoaW50ZXJuYWxKb2Iuc3RhdHVzID09PSBcImFjdGl2ZVwiKSB7XG5cdFx0XHRcdGludGVybmFsSm9iLnN0YXR1cyA9IFwiZmFpbGVkXCI7XG5cdFx0XHRcdGNvbnN0IGlkeCA9IGpvYnMuaW5kZXhPZihpbnRlcm5hbEpvYik7XG5cdFx0XHRcdGlmIChpZHggPj0gMCkgam9icy5zcGxpY2UoaWR4LCAxKTtcblx0XHRcdFx0Y29uc3QgcyA9IHRoaXMuc3RhdHMuZ2V0KHF1ZXVlKTtcblx0XHRcdFx0aWYgKHMpIHMuZmFpbGVkKys7XG5cdFx0XHR9XG5cdFx0fSBmaW5hbGx5IHtcblx0XHRcdHByb2Nlc3Nvci5hY3RpdmUtLTtcblx0XHR9XG5cdH1cbn1cbiJdfQ==
220
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5NZW1vcnlBZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FkYXB0ZXJzL0luTWVtb3J5QWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFHSCxPQUFPLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQWdDbEM7O0dBRUc7QUFDSCxNQUFNLE9BQU8sZUFBZTtJQUNsQixRQUFRLEdBQUcsV0FBb0IsQ0FBQztJQUNqQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ2xCLElBQUksR0FBK0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUM3QyxVQUFVLEdBQWdDLElBQUksR0FBRyxFQUFFLENBQUM7SUFDcEQsS0FBSyxHQUF1RCxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBRTlFLEtBQUssQ0FBQyxPQUFPO1FBQ1osSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7SUFDdkIsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVO1FBQ2Ysc0JBQXNCO1FBQ3RCLEtBQUssTUFBTSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDbEQsU0FBUyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDMUIsSUFBSSxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3JCLGFBQWEsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEMsQ0FBQztRQUNGLENBQUM7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8s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UUFDcEIsQ0FBQztJQUNGLENBQUM7Q0FDRCIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSW5NZW1vcnlBZGFwdGVyIC0gV29ya2VyIGFkYXB0ZXIgdXNpbmcgaW4tcHJvY2VzcyBxdWV1ZXNcbiAqXG4gKiBJZGVhbCBmb3I6XG4gKiAtIERldmVsb3BtZW50IGFuZCB0ZXN0aW5nXG4gKiAtIFNpbXBsZSBiYWNrZ3JvdW5kIGpvYiBwcm9jZXNzaW5nXG4gKiAtIFNpbmdsZS1pbnN0YW5jZSBkZXBsb3ltZW50c1xuICpcbiAqIExpbWl0YXRpb25zOlxuICogLSBKb2JzIGFyZSBsb3N0IG9uIHByb2Nlc3MgcmVzdGFydFxuICogLSBObyBkaXN0cmlidXRlZCBwcm9jZXNzaW5nXG4gKiAtIE5vIHBlcnNpc3RlbmNlXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGFkYXB0ZXIgPSBuZXcgSW5NZW1vcnlBZGFwdGVyKCk7XG4gKiBgYGBcbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFdvcmtlclRyaWdnZXJPcHRzIH0gZnJvbSBcIkBibG9ranMvaGVscGVyXCI7XG5pbXBvcnQgeyB2NCBhcyB1dWlkIH0gZnJvbSBcInV1aWRcIjtcbmltcG9ydCB0eXBlIHsgV29ya2VyQWRhcHRlciwgV29ya2VySm9iLCBXb3JrZXJRdWV1ZVN0YXRzIH0gZnJvbSBcIi4uL1dvcmtlclRyaWdnZXJcIjtcblxuLyoqXG4gKiBJbnRlcm5hbCBqb2IgcmVwcmVzZW50YXRpb25cbiAqL1xuaW50ZXJmYWNlIEludGVybmFsSm9iIHtcblx0aWQ6IHN0cmluZztcblx0ZGF0YTogdW5rbm93bjtcblx0cXVldWU6IHN0cmluZztcblx0cHJpb3JpdHk6IG51bWJlcjtcblx0YXR0ZW1wdHM6IG51bWJlcjtcblx0bWF4UmV0cmllczogbnVtYmVyO1xuXHRjcmVhdGVkQXQ6IERhdGU7XG5cdGRlbGF5OiBudW1iZXI7XG5cdHRpbWVvdXQ6IG51bWJlcjtcblx0c3RhdHVzOiBcIndhaXRpbmdcIiB8IFwiYWN0aXZlXCIgfCBcImNvbXBsZXRlZFwiIHwgXCJmYWlsZWRcIiB8IFwiZGVsYXllZFwiO1xuXHRzY2hlZHVsZWRBdD86IERhdGU7XG5cdGVycm9yPzogRXJyb3I7XG59XG5cbi8qKlxuICogUXVldWUgcHJvY2Vzc29yIGVudHJ5XG4gKi9cbmludGVyZmFjZSBRdWV1ZVByb2Nlc3NvciB7XG5cdGNvbmZpZzogV29ya2VyVHJpZ2dlck9wdHM7XG5cdGhhbmRsZXI6IChqb2I6IFdvcmtlckpvYikgPT4gUHJvbWlzZTx2b2lkPjtcblx0YWN0aXZlOiBudW1iZXI7XG5cdHJ1bm5pbmc6IGJvb2xlYW47XG5cdHRpbWVyPzogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0SW50ZXJ2YWw+O1xufVxuXG4vKipcbiAqIEluTWVtb3J5QWRhcHRlciAtIFNpbXBsZSBpbi1wcm9jZXNzIHdvcmtlciBxdWV1ZVxuICovXG5leHBvcnQgY2xhc3MgSW5NZW1vcnlBZGFwdGVyIGltcGxlbWVudHMgV29ya2VyQWRhcHRlciB7XG5cdHJlYWRvbmx5IHByb3ZpZGVyID0gXCJpbi1tZW1vcnlcIiBhcyBjb25zdDtcblx0cHJpdmF0ZSBjb25uZWN0ZWQgPSBmYWxzZTtcblx0cHJpdmF0ZSBqb2JzOiBNYXA8c3RyaW5nLCBJbnRlcm5hbEpvYltdPiA9IG5ldyBNYXAoKTtcblx0cHJpdmF0ZSBwcm9jZXNzb3JzOiBNYXA8c3RyaW5nLCBRdWV1ZVByb2Nlc3Nvcj4gPSBuZXcgTWFwKCk7XG5cdHByaXZhdGUgc3RhdHM6IE1hcDxzdHJpbmcsIHsgY29tcGxldGVkOiBudW1iZXI7IGZhaWxlZDogbnVtYmVyIH0+ID0gbmV3IE1hcCgpO1xuXG5cdGFzeW5jIGNvbm5lY3QoKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0dGhpcy5jb25uZWN0ZWQgPSB0cnVlO1xuXHR9XG5cblx0YXN5bmMgZGlzY29ubmVjdCgpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHQvLyBTdG9wIGFsbCBwcm9jZXNzb3JzXG5cdFx0Zm9yIChjb25zdCBbcXVldWUsIHByb2Nlc3Nvcl0gb2YgdGhpcy5wcm9jZXNzb3JzKSB7XG5cdFx0XHRwcm9jZXNzb3IucnVubmluZyA9IGZhbHNlO1xuXHRcdFx0aWYgKHByb2Nlc3Nvci50aW1lcikge1xuXHRcdFx0XHRjbGVhckludGVydmFsKHByb2Nlc3Nvci50aW1lcik7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHRoaXMucHJvY2Vzc29ycy5jbGVhcigpO1xuXHRcdHRoaXMuam9icy5jbGVhcigpO1xuXHRcdHRoaXMuc3RhdHMuY2xlYXIoKTtcblx0XHR0aGlzLmNvbm5lY3RlZCA9IGZhbHNlO1xuXHR9XG5cblx0YXN5bmMgcHJvY2Vzcyhjb25maWc6IFdvcmtlclRyaWdnZXJPcHRzLCBoYW5kbGVyOiAoam9iOiBXb3JrZXJKb2IpID0+IFByb21pc2U8dm9pZD4pOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRpZiAoIXRoaXMuY29ubmVjdGVkKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJOb3QgY29ubmVjdGVkLiBDYWxsIGNvbm5lY3QoKSBmaXJzdC5cIik7XG5cdFx0fVxuXG5cdFx0aWYgKCF0aGlzLmpvYnMuaGFzKGNvbmZpZy5xdWV1ZSkpIHtcblx0XHRcdHRoaXMuam9icy5zZXQoY29uZmlnLnF1ZXVlLCBbXSk7XG5cdFx0fVxuXHRcdGlmICghdGhpcy5zdGF0cy5oYXMoY29uZmlnLnF1ZXVlKSkge1xuXHRcdFx0dGhpcy5zdGF0cy5zZXQoY29uZmlnLnF1ZXVlLCB7IGNvbXBsZXRlZDogMCwgZmFpbGVkOiAwIH0pO1xuXHRcdH1cblxuXHRcdGNvbnN0IHByb2Nlc3NvcjogUXVldWVQcm9jZXNzb3IgPSB7XG5cdFx0XHRjb25maWcsXG5cdFx0XHRoYW5kbGVyLFxuXHRcdFx0YWN0aXZlOiAwLFxuXHRcdFx0cnVubmluZzogdHJ1ZSxcblx0XHR9O1xuXG5cdFx0dGhpcy5wcm9jZXNzb3JzLnNldChjb25maWcucXVldWUsIHByb2Nlc3Nvcik7XG5cblx0XHQvLyBTdGFydCBwb2xsaW5nIGZvciBqb2JzXG5cdFx0cHJvY2Vzc29yLnRpbWVyID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuXHRcdFx0dGhpcy5wcm9jZXNzTmV4dChjb25maWcucXVldWUpLmNhdGNoKChlcnIpID0+IHtcblx0XHRcdFx0Y29uc29sZS5lcnJvcihgW0luTWVtb3J5QWRhcHRlcl0gRXJyb3IgcHJvY2Vzc2luZyAke2NvbmZpZy5xdWV1ZX06ICR7KGVyciBhcyBFcnJvcikubWVzc2FnZX1gKTtcblx0XHRcdH0pO1xuXHRcdH0sIDUwKTsgLy8gUG9sbCBldmVyeSA1MG1zXG5cdH1cblxuXHRhc3luYyBhZGRKb2IoXG5cdFx0cXVldWU6IHN0cmluZyxcblx0XHRkYXRhOiB1bmtub3duLFxuXHRcdG9wdHM/OiB7XG5cdFx0XHRwcmlvcml0eT86IG51bWJlcjtcblx0XHRcdGRlbGF5PzogbnVtYmVyO1xuXHRcdFx0cmV0cmllcz86IG51bWJlcjtcblx0XHRcdHRpbWVvdXQ/OiBudW1iZXI7XG5cdFx0XHRqb2JJZD86IHN0cmluZztcblx0XHR9LFxuXHQpOiBQcm9taXNlPHN0cmluZz4ge1xuXHRcdGlmICghdGhpcy5jb25uZWN0ZWQpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihcIk5vdCBjb25uZWN0ZWQuIENhbGwgY29ubmVjdCgpIGZpcnN0LlwiKTtcblx0XHR9XG5cblx0XHRpZiAoIXRoaXMuam9icy5oYXMocXVldWUpKSB7XG5cdFx0XHR0aGlzLmpvYnMuc2V0KHF1ZXVlLCBbXSk7XG5cdFx0fVxuXHRcdGlmICghdGhpcy5zdGF0cy5oYXMocXVldWUpKSB7XG5cdFx0XHR0aGlzLnN0YXRzLnNldChxdWV1ZSwgeyBjb21wbGV0ZWQ6IDAsIGZhaWxlZDogMCB9KTtcblx0XHR9XG5cblx0XHRjb25zdCBqb2I6IEludGVybmFsSm9iID0ge1xuXHRcdFx0aWQ6IG9wdHM/LmpvYklkIHx8IHV1aWQoKSxcblx0XHRcdGRhdGEsXG5cdFx0XHRxdWV1ZSxcblx0XHRcdHByaW9yaXR5OiBvcHRzPy5wcmlvcml0eSA/PyAwLFxuXHRcdFx0YXR0ZW1wdHM6IDAsXG5cdFx0XHRtYXhSZXRyaWVzOiBvcHRzPy5yZXRyaWVzID8/IDMsXG5cdFx0XHRjcmVhdGVkQXQ6IG5ldyBEYXRlKCksXG5cdFx0XHRkZWxheTogb3B0cz8uZGVsYXkgPz8gMCxcblx0XHRcdHRpbWVvdXQ6IG9wdHM/LnRpbWVvdXQgPz8gMCxcblx0XHRcdHN0YXR1czogb3B0cz8uZGVsYXkgJiYgb3B0cy5kZWxheSA+IDAgPyBcImRlbGF5ZWRcIiA6IFwid2FpdGluZ1wiLFxuXHRcdH07XG5cblx0XHRpZiAoam9iLnN0YXR1cyA9PT0gXCJkZWxheWVkXCIpIHtcblx0XHRcdGpvYi5zY2hlZHVsZWRBdCA9IG5ldyBEYXRlKERhdGUubm93KCkgKyBqb2IuZGVsYXkpO1xuXHRcdH1cblxuXHRcdGNvbnN0IGpvYnMgPSB0aGlzLmpvYnMuZ2V0KHF1ZXVlKSE7XG5cblx0XHQvLyBJbnNlcnQgc29ydGVkIGJ5IHByaW9yaXR5IChoaWdoZXIgZmlyc3QpXG5cdFx0Y29uc3QgaW5zZXJ0SWR4ID0gam9icy5maW5kSW5kZXgoKGopID0+IGouc3RhdHVzID09PSBcIndhaXRpbmdcIiAmJiBqLnByaW9yaXR5IDwgam9iLnByaW9yaXR5KTtcblx0XHRpZiAoaW5zZXJ0SWR4ID49IDApIHtcblx0XHRcdGpvYnMuc3BsaWNlKGluc2VydElkeCwgMCwgam9iKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0am9icy5wdXNoKGpvYik7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGpvYi5pZDtcblx0fVxuXG5cdGFzeW5jIHN0b3BQcm9jZXNzaW5nKHF1ZXVlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRjb25zdCBwcm9jZXNzb3IgPSB0aGlzLnByb2Nlc3NvcnMuZ2V0KHF1ZXVlKTtcblx0XHRpZiAocHJvY2Vzc29yKSB7XG5cdFx0XHRwcm9jZXNzb3IucnVubmluZyA9IGZhbHNlO1xuXHRcdFx0aWYgKHByb2Nlc3Nvci50aW1lcikge1xuXHRcdFx0XHRjbGVhckludGVydmFsKHByb2Nlc3Nvci50aW1lcik7XG5cdFx0XHR9XG5cdFx0XHR0aGlzLnByb2Nlc3NvcnMuZGVsZXRlKHF1ZXVlKTtcblx0XHR9XG5cdH1cblxuXHRpc0Nvbm5lY3RlZCgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdGhpcy5jb25uZWN0ZWQ7XG5cdH1cblxuXHRhc3luYyBoZWFsdGhDaGVjaygpOiBQcm9taXNlPGJvb2xlYW4+IHtcblx0XHRyZXR1cm4gdGhpcy5jb25uZWN0ZWQ7XG5cdH1cblxuXHRhc3luYyBnZXRRdWV1ZVN0YXRzKHF1ZXVlOiBzdHJpbmcpOiBQcm9taXNlPFdvcmtlclF1ZXVlU3RhdHM+IHtcblx0XHRjb25zdCBqb2JzID0gdGhpcy5qb2JzLmdldChxdWV1ZSkgfHwgW107XG5cdFx0Y29uc3QgcXVldWVTdGF0cyA9IHRoaXMuc3RhdHMuZ2V0KHF1ZXVlKSB8fCB7IGNvbXBsZXRlZDogMCwgZmFpbGVkOiAwIH07XG5cblx0XHRyZXR1cm4ge1xuXHRcdFx0d2FpdGluZzogam9icy5maWx0ZXIoKGopID0+IGouc3RhdHVzID09PSBcIndhaXRpbmdcIikubGVuZ3RoLFxuXHRcdFx0YWN0aXZlOiBqb2JzLmZpbHRlcigoaikgPT4gai5zdGF0dXMgPT09IFwiYWN0aXZlXCIpLmxlbmd0aCxcblx0XHRcdGNvbXBsZXRlZDogcXVldWVTdGF0cy5jb21wbGV0ZWQsXG5cdFx0XHRmYWlsZWQ6IHF1ZXVlU3RhdHMuZmFpbGVkLFxuXHRcdFx0ZGVsYXllZDogam9icy5maWx0ZXIoKGopID0+IGouc3RhdHVzID09PSBcImRlbGF5ZWRcIikubGVuZ3RoLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogUHJvY2VzcyB0aGUgbmV4dCBhdmFpbGFibGUgam9iIGZyb20gYSBxdWV1ZVxuXHQgKi9cblx0cHJpdmF0ZSBhc3luYyBwcm9jZXNzTmV4dChxdWV1ZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0Y29uc3QgcHJvY2Vzc29yID0gdGhpcy5wcm9jZXNzb3JzLmdldChxdWV1ZSk7XG5cdFx0aWYgKCFwcm9jZXNzb3IgfHwgIXByb2Nlc3Nvci5ydW5uaW5nKSByZXR1cm47XG5cblx0XHRjb25zdCBjb25jdXJyZW5jeSA9IHByb2Nlc3Nvci5jb25maWcuY29uY3VycmVuY3kgPz8gMTtcblx0XHRpZiAocHJvY2Vzc29yLmFjdGl2ZSA+PSBjb25jdXJyZW5jeSkgcmV0dXJuO1xuXG5cdFx0Y29uc3Qgam9icyA9IHRoaXMuam9icy5nZXQocXVldWUpO1xuXHRcdGlmICgham9icyB8fCBqb2JzLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuXG5cdFx0Ly8gQ2hlY2sgZm9yIGRlbGF5ZWQgam9icyB0aGF0IGFyZSByZWFkeVxuXHRcdGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG5cdFx0Zm9yIChjb25zdCBqb2Igb2Ygam9icykge1xuXHRcdFx0aWYgKGpvYi5zdGF0dXMgPT09IFwiZGVsYXllZFwiICYmIGpvYi5zY2hlZHVsZWRBdCAmJiBqb2Iuc2NoZWR1bGVkQXQuZ2V0VGltZSgpIDw9IG5vdykge1xuXHRcdFx0XHRqb2Iuc3RhdHVzID0gXCJ3YWl0aW5nXCI7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gRmluZCBuZXh0IHdhaXRpbmcgam9iXG5cdFx0Y29uc3Qgam9iSWR4ID0gam9icy5maW5kSW5kZXgoKGopID0+IGouc3RhdHVzID09PSBcIndhaXRpbmdcIik7XG5cdFx0aWYgKGpvYklkeCA8IDApIHJldHVybjtcblxuXHRcdGNvbnN0IGludGVybmFsSm9iID0gam9ic1tqb2JJZHhdO1xuXHRcdGludGVybmFsSm9iLnN0YXR1cyA9IFwiYWN0aXZlXCI7XG5cdFx0cHJvY2Vzc29yLmFjdGl2ZSsrO1xuXG5cdFx0Y29uc3Qgd29ya2VySm9iOiBXb3JrZXJKb2IgPSB7XG5cdFx0XHRpZDogaW50ZXJuYWxKb2IuaWQsXG5cdFx0XHRkYXRhOiBpbnRlcm5hbEpvYi5kYXRhLFxuXHRcdFx0aGVhZGVyczoge30sXG5cdFx0XHRxdWV1ZTogaW50ZXJuYWxKb2IucXVldWUsXG5cdFx0XHRwcmlvcml0eTogaW50ZXJuYWxKb2IucHJpb3JpdHksXG5cdFx0XHRhdHRlbXB0czogaW50ZXJuYWxKb2IuYXR0ZW1wdHMsXG5cdFx0XHRtYXhSZXRyaWVzOiBpbnRlcm5hbEpvYi5tYXhSZXRyaWVzLFxuXHRcdFx0Y3JlYXRlZEF0OiBpbnRlcm5hbEpvYi5jcmVhdGVkQXQsXG5cdFx0XHRkZWxheTogaW50ZXJuYWxKb2IuZGVsYXksXG5cdFx0XHR0aW1lb3V0OiBpbnRlcm5hbEpvYi50aW1lb3V0LFxuXHRcdFx0cmF3OiBpbnRlcm5hbEpvYixcblx0XHRcdGNvbXBsZXRlOiBhc3luYyAoKSA9PiB7XG5cdFx0XHRcdGludGVybmFsSm9iLnN0YXR1cyA9IFwiY29tcGxldGVkXCI7XG5cdFx0XHRcdGNvbnN0IGlkeCA9IGpvYnMuaW5kZXhPZihpbnRlcm5hbEpvYik7XG5cdFx0XHRcdGlmIChpZHggPj0gMCkgam9icy5zcGxpY2UoaWR4LCAxKTtcblx0XHRcdFx0Y29uc3QgcyA9IHRoaXMuc3RhdHMuZ2V0KHF1ZXVlKTtcblx0XHRcdFx0aWYgKHMpIHMuY29tcGxldGVkKys7XG5cdFx0XHR9LFxuXHRcdFx0ZmFpbDogYXN5bmMgKGVycm9yOiBFcnJvciwgcmVxdWV1ZT86IGJvb2xlYW4pID0+IHtcblx0XHRcdFx0aW50ZXJuYWxKb2IuYXR0ZW1wdHMrKztcblx0XHRcdFx0aW50ZXJuYWxKb2IuZXJyb3IgPSBlcnJvcjtcblxuXHRcdFx0XHRpZiAocmVxdWV1ZSAmJiBpbnRlcm5hbEpvYi5hdHRlbXB0cyA8IGludGVybmFsSm9iLm1heFJldHJpZXMpIHtcblx0XHRcdFx0XHQvLyBSZXF1ZXVlIHdpdGggYmFja29mZlxuXHRcdFx0XHRcdGNvbnN0IGJhY2tvZmYgPSBNYXRoLm1pbigxMDAwICogTWF0aC5wb3coMiwgaW50ZXJuYWxKb2IuYXR0ZW1wdHMpLCAzMDAwMCk7XG5cdFx0XHRcdFx0aW50ZXJuYWxKb2Iuc3RhdHVzID0gXCJkZWxheWVkXCI7XG5cdFx0XHRcdFx0aW50ZXJuYWxKb2Iuc2NoZWR1bGVkQXQgPSBuZXcgRGF0ZShEYXRlLm5vdygpICsgYmFja29mZik7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0aW50ZXJuYWxKb2Iuc3RhdHVzID0gXCJmYWlsZWRcIjtcblx0XHRcdFx0XHRjb25zdCBpZHggPSBqb2JzLmluZGV4T2YoaW50ZXJuYWxKb2IpO1xuXHRcdFx0XHRcdGlmIChpZHggPj0gMCkgam9icy5zcGxpY2UoaWR4LCAxKTtcblx0XHRcdFx0XHRjb25zdCBzID0gdGhpcy5zdGF0cy5nZXQocXVldWUpO1xuXHRcdFx0XHRcdGlmIChzKSBzLmZhaWxlZCsrO1xuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdH07XG5cblx0XHR0cnkge1xuXHRcdFx0YXdhaXQgcHJvY2Vzc29yLmhhbmRsZXIod29ya2VySm9iKTtcblx0XHR9IGNhdGNoIHtcblx0XHRcdC8vIEhhbmRsZXIgdGhyZXcgLSB0cmVhdCBhcyBmYWlsdXJlXG5cdFx0XHRpZiAoaW50ZXJuYWxKb2Iuc3RhdHVzID09PSBcImFjdGl2ZVwiKSB7XG5cdFx0XHRcdGludGVybmFsSm9iLnN0YXR1cyA9IFwiZmFpbGVkXCI7XG5cdFx0XHRcdGNvbnN0IGlkeCA9IGpvYnMuaW5kZXhPZihpbnRlcm5hbEpvYik7XG5cdFx0XHRcdGlmIChpZHggPj0gMCkgam9icy5zcGxpY2UoaWR4LCAxKTtcblx0XHRcdFx0Y29uc3QgcyA9IHRoaXMuc3RhdHMuZ2V0KHF1ZXVlKTtcblx0XHRcdFx0aWYgKHMpIHMuZmFpbGVkKys7XG5cdFx0XHR9XG5cdFx0fSBmaW5hbGx5IHtcblx0XHRcdHByb2Nlc3Nvci5hY3RpdmUtLTtcblx0XHR9XG5cdH1cbn1cbiJdfQ==
@@ -0,0 +1,110 @@
1
+ /**
2
+ * NATSAdapter - NATS JetStream worker adapter for WorkerTrigger
3
+ *
4
+ * Uses NATS JetStream for persistent background job processing with:
5
+ * - Pull-based consumers with configurable concurrency
6
+ * - Server-side retry config (max_deliver)
7
+ * - Ack wait for job timeouts
8
+ * - Priority via message headers
9
+ * - Delayed job scheduling
10
+ * - Queue statistics via consumer info
11
+ *
12
+ * Requires: npm install nats
13
+ *
14
+ * Environment variables:
15
+ * - NATS_SERVERS: Comma-separated NATS server URLs (default: localhost:4222)
16
+ * - NATS_TOKEN: Authentication token (optional)
17
+ * - NATS_USER: Username for auth (optional)
18
+ * - NATS_PASS: Password for auth (optional)
19
+ * - NATS_STREAM_NAME: JetStream stream name (default: blok-worker)
20
+ */
21
+ import type { WorkerTriggerOpts } from "@blokjs/helper";
22
+ import type { WorkerAdapter, WorkerJob, WorkerQueueStats } from "../WorkerTrigger";
23
+ /**
24
+ * Tier 2 polish — compute the consumer-side hold time for a NATS message
25
+ * with an `x-delay` header. NATS JetStream stores `x-delay` as opaque
26
+ * metadata; the broker does NOT defer delivery on it. The consumer is
27
+ * responsible for honouring the delay between the message's first-publish
28
+ * timestamp and `createdMs + delay`.
29
+ *
30
+ * Returns the milliseconds to wait. Clamps to >= 0; returns 0 when the
31
+ * delay has already elapsed (the message was queued for longer than the
32
+ * delay) or when no delay was set.
33
+ *
34
+ * Exported for unit testability — the consumer message handler in
35
+ * `NATSWorkerAdapter.process()` mocks the NATS client extensively, so
36
+ * isolating the math here keeps the surface easy to verify.
37
+ */
38
+ export declare function computeXDelayHoldMs(delay: number, createdMs: number, nowMs: number): number;
39
+ /**
40
+ * NATS worker adapter configuration
41
+ */
42
+ export interface NATSWorkerConfig {
43
+ /** NATS server URLs */
44
+ servers: string[];
45
+ /** Authentication token */
46
+ token?: string;
47
+ /** Username */
48
+ user?: string;
49
+ /** Password */
50
+ pass?: string;
51
+ /** JetStream stream name (default: "blok-worker") */
52
+ streamName?: string;
53
+ }
54
+ /**
55
+ * NATSWorkerAdapter - NATS JetStream implementation of WorkerAdapter
56
+ */
57
+ export declare class NATSWorkerAdapter implements WorkerAdapter {
58
+ readonly provider: "nats";
59
+ private nc;
60
+ private js;
61
+ private jsm;
62
+ private connected;
63
+ private config;
64
+ private consumers;
65
+ private consumeIterators;
66
+ constructor(config?: Partial<NATSWorkerConfig>);
67
+ /**
68
+ * Connect to NATS and initialize JetStream
69
+ */
70
+ connect(): Promise<void>;
71
+ /**
72
+ * Disconnect from NATS
73
+ */
74
+ disconnect(): Promise<void>;
75
+ /**
76
+ * Start processing jobs from a queue
77
+ */
78
+ process(config: WorkerTriggerOpts, handler: (job: WorkerJob) => Promise<void>): Promise<void>;
79
+ /**
80
+ * Add a job to a worker queue
81
+ */
82
+ addJob(queue: string, data: unknown, opts?: {
83
+ priority?: number;
84
+ delay?: number;
85
+ retries?: number;
86
+ timeout?: number;
87
+ jobId?: string;
88
+ }): Promise<string>;
89
+ /**
90
+ * Stop processing a specific queue
91
+ */
92
+ stopProcessing(queue: string): Promise<void>;
93
+ /**
94
+ * Check if connected
95
+ */
96
+ isConnected(): boolean;
97
+ /**
98
+ * Health check
99
+ */
100
+ healthCheck(): Promise<boolean>;
101
+ /**
102
+ * Get queue statistics from JetStream consumer info
103
+ */
104
+ getQueueStats(queue: string): Promise<WorkerQueueStats>;
105
+ /**
106
+ * Ensure a JetStream stream exists with the given subjects
107
+ */
108
+ private ensureStream;
109
+ }
110
+ export default NATSWorkerAdapter;