@blokjs/trigger-pubsub 1.0.0 → 1.2.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.
@@ -7,10 +7,17 @@
7
7
  * message (fan-out). When `consumerGroup` is explicitly set on the
8
8
  * workflow, all subscribers in the group compete (1 of N gets each).
9
9
  *
10
- * Replay cursors:
11
- * - `"earliest"` / unset → `$` (only new messages by default).
12
- * - `"earliest"` with explicit intent → `0` (replay full stream).
10
+ * Replay cursors (`startFrom`):
11
+ * - unset / `"latest"` → `$` (only new messages).
12
+ * - `"earliest"` → `0` (replay full retained stream).
13
13
  * - `{seq: N}` → resume from stream id `N-0`.
14
+ * - `{timestamp: ms}` → resume from id `ms-0` (time cursor).
15
+ * When the consumer group already exists, `startFrom` is applied via
16
+ * `XGROUP SETID` so a reconnect / second subscribe still repositions it.
17
+ *
18
+ * Group lifecycle: an explicit `consumerGroup` (competing-consumer) or
19
+ * `durable: true` persists the group; an auto-generated fan-out group is
20
+ * non-durable and torn down (`XGROUP DESTROY`) on unsubscribe/disconnect.
14
21
  *
15
22
  * Requires `ioredis` as a peer dependency.
16
23
  *
@@ -63,6 +70,9 @@ export class RedisStreamsPubSubAdapter {
63
70
  return;
64
71
  for (const sub of this.subscriptions.values())
65
72
  sub.stop();
73
+ // Tear down transient fan-out groups while the client is still alive.
74
+ for (const sub of this.subscriptions.values())
75
+ await sub.cleanup();
66
76
  this.subscriptions.clear();
67
77
  try {
68
78
  await this.client?.quit();
@@ -82,25 +92,47 @@ export class RedisStreamsPubSubAdapter {
82
92
  // Competing-consumer: explicit `consumerGroup` makes all subscribers
83
93
  // share work.
84
94
  const group = config.consumerGroup ?? `blok-fanout-${this.consumerName}-${stream.replace(/[^a-zA-Z0-9_]/g, "_")}`;
85
- const startId = config.startFrom === "earliest"
95
+ // An auto-generated fan-out group (no consumerGroup) that is non-durable
96
+ // is torn down when the subscription stops; an explicit consumerGroup or
97
+ // `durable: true` persists the group across (re)connects.
98
+ const transientGroup = config.consumerGroup === undefined && config.durable !== true;
99
+ const startFrom = config.startFrom;
100
+ const startId = startFrom === "earliest"
86
101
  ? "0"
87
- : config.startFrom === "latest" || config.startFrom === undefined
102
+ : startFrom === "latest" || startFrom === undefined
88
103
  ? "$"
89
- : typeof config.startFrom === "object" && "seq" in config.startFrom
90
- ? `${config.startFrom.seq}-0`
91
- : "$";
104
+ : "seq" in startFrom
105
+ ? `${startFrom.seq}-0`
106
+ : // {timestamp}: stream ids are `<ms>-<seq>`; a bare ms-0 is a valid
107
+ // id, so the group resumes from that millisecond.
108
+ `${startFrom.timestamp}-0`;
92
109
  try {
93
110
  await client.xgroup("CREATE", stream, group, startId, "MKSTREAM");
94
111
  }
95
112
  catch (err) {
96
113
  if (!/BUSYGROUP/i.test(err.message))
97
114
  throw err;
115
+ // Group already exists (reconnect / second subscribe). XGROUP CREATE
116
+ // keeps the OLD cursor, so an explicit startFrom would be silently
117
+ // ignored — reposition the existing group with SETID.
118
+ if (startFrom !== undefined)
119
+ await client.xgroup("SETID", stream, group, startId);
98
120
  }
99
121
  let stopped = false;
100
122
  const sub = {
101
123
  stop: () => {
102
124
  stopped = true;
103
125
  },
126
+ cleanup: async () => {
127
+ if (!transientGroup)
128
+ return;
129
+ try {
130
+ await client.xgroup("DESTROY", stream, group);
131
+ }
132
+ catch {
133
+ /* group already gone / connection closing */
134
+ }
135
+ },
104
136
  };
105
137
  this.subscriptions.set(`${stream}#${group}`, sub);
106
138
  void (async () => {
@@ -167,6 +199,7 @@ export class RedisStreamsPubSubAdapter {
167
199
  if (!sub)
168
200
  return;
169
201
  sub.stop();
202
+ await sub.cleanup();
170
203
  this.subscriptions.delete(subscription);
171
204
  }
172
205
  async publish(topic, payload) {
@@ -190,4 +223,4 @@ export class RedisStreamsPubSubAdapter {
190
223
  }
191
224
  }
192
225
  }
193
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVkaXNTdHJlYW1zUHViU3ViQWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hZGFwdGVycy9SZWRpc1N0cmVhbXNQdWJTdWJBZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUFHSCxPQUFPLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQXlCbEMsTUFBTSxPQUFPLHlCQUF5QjtJQUM1QixRQUFRLEdBQUcsZUFBd0IsQ0FBQztJQUM1QixNQUFNLENBQTJCO0lBQzFDLE1BQU0sR0FBdUIsSUFBSSxDQUFDO0lBQ2xDLGFBQWEsR0FBb0MsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUMzRCxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ2xCLFlBQVksR0FBRyxlQUFlLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUUzRCxZQUFZLE1BQTBDO1FBQ3JELElBQUksQ0FBQyxNQUFNLEdBQUc7WUFDYixJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsSUFBSSxXQUFXO1lBQzNELElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLElBQUksTUFBTSxFQUFFLEVBQUUsQ0FBQztZQUMzRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFFBQVEsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWM7WUFDeEQsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsSUFBSSxHQUFHLEVBQUUsRUFBRSxDQUFDO1lBQ2xFLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxJQUFJLElBQUk7WUFDaEMs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QUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQywyREFBMkQsQ0FBQyxDQUFDO1FBQ2xILE1BQU0sSUFBSSxHQUFHLE9BQU8sT0FBTyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdFLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELFdBQVc7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDdkIsQ0FBQztJQUVELEtBQUssQ0FBQyxXQUFXO1FBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPLEtBQUssQ0FBQztRQUNsRCxJQUFJLENBQUM7WUFDSixNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDdEMsT0FBTyxJQUFJLEtBQUssTUFBTSxDQUFDO1FBQ3hCLENBQUM7UUFBQyxNQUFNLENBQUM7WUFDUixPQUFPLEtBQUssQ0FBQztRQUNkLENBQUM7SUFDRixDQUFDO0NBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlZGlzU3RyZWFtc1B1YlN1YkFkYXB0ZXIg4oCUIHYwLjcgUFIgNiDigJQgUHViL1N1YiBhZGFwdGVyIGJhY2tlZCBieVxuICogUmVkaXMgU3RyZWFtcyB2aWEgYGlvcmVkaXNgLlxuICpcbiAqIFB1Yi9TdWIgdnMgV29ya2VyIHNlbWFudGljczogdGhpcyBhZGFwdGVyIHVzZXMgKipkaXN0aW5jdCBjb25zdW1lclxuICogZ3JvdXBzIHBlciBzdWJzY3JpYmVyKiogc28gbXVsdGlwbGUgc3Vic2NyaWJlcnMgZWFjaCByZWNlaXZlIGV2ZXJ5XG4gKiBtZXNzYWdlIChmYW4tb3V0KS4gV2hlbiBgY29uc3VtZXJHcm91cGAgaXMgZXhwbGljaXRseSBzZXQgb24gdGhlXG4gKiB3b3JrZmxvdywgYWxsIHN1YnNjcmliZXJzIGluIHRoZSBncm91cCBjb21wZXRlICgxIG9mIE4gZ2V0cyBlYWNoKS5cbiAqXG4gKiBSZXBsYXkgY3Vyc29yczpcbiAqICAgLSBgXCJlYXJsaWVzdFwiYCAvIHVuc2V0IOKGkiBgJGAgKG9ubHkgbmV3IG1lc3NhZ2VzIGJ5IGRlZmF1bHQpLlxuICogICAtIGBcImVhcmxpZXN0XCJgIHdpdGggZXhwbGljaXQgaW50ZW50IOKGkiBgMGAgKHJlcGxheSBmdWxsIHN0cmVhbSkuXG4gKiAgIC0gYHtzZXE6IE59YCDihpIgcmVzdW1lIGZyb20gc3RyZWFtIGlkIGBOLTBgLlxuICpcbiAqIFJlcXVpcmVzIGBpb3JlZGlzYCBhcyBhIHBlZXIgZGVwZW5kZW5jeS5cbiAqXG4gKiBFbnZpcm9ubWVudCB2YXJpYWJsZXM6XG4gKiAgIC0gYFJFRElTX0hPU1RgIChkZWZhdWx0IGBsb2NhbGhvc3RgKS5cbiAqICAgLSBgUkVESVNfUE9SVGAgKGRlZmF1bHQgYDYzNzlgKS5cbiAqICAgLSBgUkVESVNfUEFTU1dPUkRgLlxuICogICAtIGBSRURJU19EQmAuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBQdWJTdWJUcmlnZ2VyT3B0cyB9IGZyb20gXCJAYmxva2pzL2hlbHBlclwiO1xuaW1wb3J0IHsgdjQgYXMgdXVpZCB9IGZyb20gXCJ1dWlkXCI7XG5pbXBvcnQgdHlwZSB7IFB1YlN1YkFkYXB0ZXIsIFB1YlN1Yk1lc3NhZ2UgfSBmcm9tIFwiLi4vUHViU3ViVHJpZ2dlclwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlZGlzU3RyZWFtc1B1YlN1YkNvbmZpZyB7XG5cdGhvc3Q6IHN0cmluZztcblx0cG9ydDogbnVtYmVyO1xuXHRwYXNzd29yZD86IHN0cmluZztcblx0ZGI/OiBudW1iZXI7XG5cdGJsb2NrTXM6IG51bWJlcjtcblx0Y291bnQ6IG51bWJlcjtcbn1cblxuaW50ZXJmYWNlIFJlZGlzQ2xpZW50IHtcblx0eGFkZChzdHJlYW06IHN0cmluZywgLi4uYXJnczogc3RyaW5nW10pOiBQcm9taXNlPHN0cmluZz47XG5cdHhyZWFkZ3JvdXAoLi4uYXJnczogc3RyaW5nW10pOiBQcm9taXNlPEFycmF5PFtzdHJpbmcsIEFycmF5PFtzdHJpbmcsIHN0cmluZ1tdXT5dPiB8IG51bGw+O1xuXHR4Z3JvdXAoLi4uYXJnczogc3RyaW5nW10pOiBQcm9taXNlPHN0cmluZz47XG5cdHhhY2soc3RyZWFtOiBzdHJpbmcsIGdyb3VwOiBzdHJpbmcsIC4uLmlkczogc3RyaW5nW10pOiBQcm9taXNlPG51bWJlcj47XG5cdHBpbmcoKTogUHJvbWlzZTxzdHJpbmc+O1xuXHRxdWl0KCk6IFByb21pc2U8c3RyaW5nPjtcbn1cblxuaW50ZXJmYWNlIEFjdGl2ZVN1YnNjcmlwdGlvbiB7XG5cdHN0b3A6ICgpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBjbGFzcyBSZWRpc1N0cmVhbXNQdWJTdWJBZGFwdGVyIGltcGxlbWVudHMgUHViU3ViQWRhcHRlciB7XG5cdHJlYWRvbmx5IHByb3ZpZGVyID0gXCJyZWRpcy1zdHJlYW1zXCIgYXMgY29uc3Q7XG5cdHByaXZhdGUgcmVhZG9ubHkgY29uZmlnOiBSZWRpc1N0cmVhbXNQdWJTdWJDb25maWc7XG5cdHByaXZhdGUgY2xpZW50OiBSZWRpc0NsaWVudCB8IG51bGwgPSBudWxsO1xuXHRwcml2YXRlIHN1YnNjcmlwdGlvbnM6IE1hcDxzdHJpbmcsIEFjdGl2ZVN1YnNjcmlwdGlvbj4gPSBuZXcgTWFwKCk7XG5cdHByaXZhdGUgY29ubmVjdGVkID0gZmFsc2U7XG5cdHByaXZhdGUgY29uc3VtZXJOYW1lID0gYGJsb2stcHVic3ViLSR7dXVpZCgpLnNsaWNlKDAsIDgpfWA7XG5cblx0Y29uc3RydWN0b3IoY29uZmlnPzogUGFydGlhbDxSZWRpc1N0cmVhbXNQdWJTdWJDb25maWc+KSB7XG5cdFx0dGhpcy5jb25maWcgPSB7XG5cdFx0XHRob3N0OiBjb25maWc/Lmhvc3QgPz8gcHJvY2Vzcy5lbnYuUkVESVNfSE9TVCA/PyBcImxvY2FsaG9zdFwiLFxuXHRcdFx0cG9ydDogY29uZmlnPy5wb3J0ID8/IE51bWJlci5wYXJzZUludChwcm9jZXNzLmVudi5SRURJU19QT1JUID8/IFwiNjM3OVwiLCAxMCksXG5cdFx0XHRwYXNzd29yZDogY29uZmlnPy5wYXNzd29yZCA/PyBwcm9jZXNzLmVudi5SRURJU19QQVNTV09SRCxcblx0XHRcdGRiOiBjb25maWc/LmRiID8/IE51bWJlci5wYXJzZUludChwcm9jZXNzLmVudi5SRURJU19EQiA/PyBcIjBcIiwgMTApLFxuXHRcdFx0YmxvY2tNczogY29uZmlnPy5ibG9ja01zID8/IDUwMDAsXG5cdFx0XHRjb3VudDogY29uZmlnPy5jb3VudCA/PyAxMCxcblx0XHR9O1xuXHR9XG5cblx0YXN5bmMgY29ubmVjdCgpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRpZiAodGhpcy5jb25uZWN0ZWQpIHJldHVybjtcblx0XHR0cnkge1xuXHRcdFx0Ly8gYmlvbWUtaWdub3JlIGxpbnQvc3VzcGljaW91cy9ub0V4cGxpY2l0QW55OiBpb3JlZGlzIGlzIGEgcnVudGltZSBwZWVyIGRlcC5cblx0XHRcdGNvbnN0IGlvcmVkaXM6IGFueSA9IGF3YWl0IGltcG9ydChcImlvcmVkaXNcIik7XG5cdFx0XHRjb25zdCBJT1JlZGlzID0gaW9yZWRpcy5kZWZhdWx0ID8/IGlvcmVkaXMuUmVkaXMgPz8gaW9yZWRpcztcblx0XHRcdHRoaXMuY2xpZW50ID0gbmV3IElPUmVkaXMoe1xuXHRcdFx0XHRob3N0OiB0aGlzLmNvbmZpZy5ob3N0LFxuXHRcdFx0XHRwb3J0OiB0aGlzLmNvbmZpZy5wb3J0LFxuXHRcdFx0XHRwYXNzd29yZDogdGhpcy5jb25maWcucGFzc3dvcmQsXG5cdFx0XHRcdGRiOiB0aGlzLmNvbmZpZy5kYixcblx0XHRcdH0pIGFzIFJlZGlzQ2xpZW50O1xuXHRcdFx0YXdhaXQgdGhpcy5jbGllbnQucGluZygpO1xuXHRcdFx0dGhpcy5jb25uZWN0ZWQgPSB0cnVlO1xuXHRcdH0gY2F0Y2ggKGVycikge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFxuXHRcdFx0XHRgW2Jsb2tdW3B1YnN1Yi1yZWRpc10gY29ubmVjdCBmYWlsZWQ6ICR7KGVyciBhcyBFcnJvcikubWVzc2FnZX0uIEluc3RhbGwgaW9yZWRpcyBhcyBhIHBlZXIgZGVwZW5kZW5jeTogYnVuIGFkZCBpb3JlZGlzYCxcblx0XHRcdCk7XG5cdFx0fVxuXHR9XG5cblx0YXN5bmMgZGlzY29ubmVjdCgpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRpZiAoIXRoaXMuY29ubmVjdGVkKSByZXR1cm47XG5cdFx0Zm9yIChjb25zdCBzdWIgb2YgdGhpcy5zdWJzY3JpcHRpb25zLnZhbHVlcygpKSBzdWIuc3RvcCgpO1xuXHRcdHRoaXMuc3Vic2NyaXB0aW9ucy5jbGVhcigpO1xuXHRcdHRyeSB7XG5cdFx0XHRhd2FpdCB0aGlzLmNsaWVudD8ucXVpdCgpO1xuXHRcdH0gY2F0Y2gge1xuXHRcdFx0LyogaWdub3JlICovXG5cdFx0fVxuXHRcdHRoaXMuY2xpZW50ID0gbnVsbDtcblx0XHR0aGlzLmNvbm5lY3RlZCA9IGZhbHNlO1xuXHR9XG5cblx0YXN5bmMgc3Vic2NyaWJlKGNvbmZpZzogUHViU3ViVHJpZ2dlck9wdHMsIGhhbmRsZXI6IChtZXNzYWdlOiBQdWJTdWJNZXNzYWdlKSA9PiBQcm9taXNlPHZvaWQ+KTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0aWYgKCF0aGlzLmNvbm5lY3RlZCB8fCAhdGhpcy5jbGllbnQpIHRocm93IG5ldyBFcnJvcihcIltibG9rXVtwdWJzdWItcmVkaXNdIG5vdCBjb25uZWN0ZWQuIENhbGwgY29ubmVjdCgpIGZpcnN0LlwiKTtcblx0XHRjb25zdCBjbGllbnQgPSB0aGlzLmNsaWVudDtcblx0XHRjb25zdCBzdHJlYW0gPSBjb25maWcudG9waWM7XG5cdFx0Ly8gRmFuLW91dDogZWFjaCBzdWJzY3JpYmVyIGdldHMgaXRzIG93biBncm91cCAodW5pcXVlIHBlciBpbnN0YW5jZSkuXG5cdFx0Ly8gQ29tcGV0aW5nLWNvbnN1bWVyOiBleHBsaWNpdCBgY29uc3VtZXJHcm91cGAgbWFrZXMgYWxsIHN1YnNjcmliZXJzXG5cdFx0Ly8gc2hhcmUgd29yay5cblx0XHRjb25zdCBncm91cCA9IGNvbmZpZy5jb25zdW1lckdyb3VwID8/IGBibG9rLWZhbm91dC0ke3RoaXMuY29uc3VtZXJOYW1lfS0ke3N0cmVhbS5yZXBsYWNlKC9bXmEtekEtWjAtOV9dL2csIFwiX1wiKX1gO1xuXHRcdGNvbnN0IHN0YXJ0SWQgPVxuXHRcdFx0Y29uZmlnLnN0YXJ0RnJvbSA9PT0gXCJlYXJsaWVzdFwiXG5cdFx0XHRcdD8gXCIwXCJcblx0XHRcdFx0OiBjb25maWcuc3RhcnRGcm9tID09PSBcImxhdGVzdFwiIHx8IGNvbmZpZy5zdGFydEZyb20gPT09IHVuZGVmaW5lZFxuXHRcdFx0XHRcdD8gXCIkXCJcblx0XHRcdFx0XHQ6IHR5cGVvZiBjb25maWcuc3RhcnRGcm9tID09PSBcIm9iamVjdFwiICYmIFwic2VxXCIgaW4gY29uZmlnLnN0YXJ0RnJvbVxuXHRcdFx0XHRcdFx0PyBgJHtjb25maWcuc3RhcnRGcm9tLnNlcX0tMGBcblx0XHRcdFx0XHRcdDogXCIkXCI7XG5cblx0XHR0cnkge1xuXHRcdFx0YXdhaXQgY2xpZW50Lnhncm91cChcIkNSRUFURVwiLCBzdHJlYW0sIGdyb3VwLCBzdGFydElkLCBcIk1LU1RSRUFNXCIpO1xuXHRcdH0gY2F0Y2ggKGVycikge1xuXHRcdFx0aWYgKCEvQlVTWUdST1VQL2kudGVzdCgoZXJyIGFzIEVycm9yKS5tZXNzYWdlKSkgdGhyb3cgZXJyO1xuXHRcdH1cblxuXHRcdGxldCBzdG9wcGVkID0gZmFsc2U7XG5cdFx0Y29uc3Qgc3ViOiBBY3RpdmVTdWJzY3JpcHRpb24gPSB7XG5cdFx0XHRzdG9wOiAoKSA9PiB7XG5cdFx0XHRcdHN0b3BwZWQgPSB0cnVlO1xuXHRcdFx0fSxcblx0XHR9O1xuXHRcdHRoaXMuc3Vic2NyaXB0aW9ucy5zZXQoYCR7c3RyZWFtfSMke2dyb3VwfWAsIHN1Yik7XG5cblx0XHR2b2lkIChhc3luYyAoKSA9PiB7XG5cdFx0XHR3aGlsZSAoIXN0b3BwZWQpIHtcblx0XHRcdFx0bGV0IGVudHJpZXM6IEFycmF5PFtzdHJpbmcsIEFycmF5PFtzdHJpbmcsIHN0cmluZ1tdXT5dPiB8IG51bGwgPSBudWxsO1xuXHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdGVudHJpZXMgPSBhd2FpdCBjbGllbnQueHJlYWRncm91cChcblx0XHRcdFx0XHRcdFwiR1JPVVBcIixcblx0XHRcdFx0XHRcdGdyb3VwLFxuXHRcdFx0XHRcdFx0dGhpcy5jb25zdW1lck5hbWUsXG5cdFx0XHRcdFx0XHRcIkNPVU5UXCIsXG5cdFx0XHRcdFx0XHRTdHJpbmcodGhpcy5jb25maWcuY291bnQpLFxuXHRcdFx0XHRcdFx0XCJCTE9DS1wiLFxuXHRcdFx0XHRcdFx0U3RyaW5nKHRoaXMuY29uZmlnLmJsb2NrTXMpLFxuXHRcdFx0XHRcdFx0XCJTVFJFQU1TXCIsXG5cdFx0XHRcdFx0XHRzdHJlYW0sXG5cdFx0XHRcdFx0XHRcIj5cIixcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHR9IGNhdGNoIHtcblx0XHRcdFx0XHRhd2FpdCBuZXcgUHJvbWlzZSgocikgPT4gc2V0VGltZW91dChyLCAxMDAwKSk7XG5cdFx0XHRcdFx0Y29udGludWU7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKCFlbnRyaWVzKSBjb250aW51ZTtcblx0XHRcdFx0Zm9yIChjb25zdCBbLCBtc2dzXSBvZiBlbnRyaWVzKSB7XG5cdFx0XHRcdFx0Zm9yIChjb25zdCBbaWQsIGZpZWxkc10gb2YgbXNncykge1xuXHRcdFx0XHRcdFx0aWYgKHN0b3BwZWQpIGJyZWFrO1xuXHRcdFx0XHRcdFx0Y29uc3QgcGF5bG9hZCA9IHRoaXMuZmllbGRzVG9PYmplY3QoZmllbGRzKTtcblx0XHRcdFx0XHRcdGNvbnN0IGRhdGFTdHJpbmcgPSB0eXBlb2YgcGF5bG9hZC5kYXRhID09PSBcInN0cmluZ1wiID8gcGF5bG9hZC5kYXRhIDogXCJcIjtcblx0XHRcdFx0XHRcdGxldCBib2R5OiB1bmtub3duO1xuXHRcdFx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRcdFx0Ym9keSA9IGRhdGFTdHJpbmcubGVuZ3RoID4gMCA/IEpTT04ucGFyc2UoZGF0YVN0cmluZykgOiBudWxsO1xuXHRcdFx0XHRcdFx0fSBjYXRjaCB7XG5cdFx0XHRcdFx0XHRcdGJvZHkgPSBkYXRhU3RyaW5nO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0Y29uc3QgbWVzc2FnZTogUHViU3ViTWVzc2FnZSA9IHtcblx0XHRcdFx0XHRcdFx0aWQsXG5cdFx0XHRcdFx0XHRcdGJvZHksXG5cdFx0XHRcdFx0XHRcdGF0dHJpYnV0ZXM6IHBheWxvYWQsXG5cdFx0XHRcdFx0XHRcdHJhdzogeyBpZCwgZmllbGRzIH0sXG5cdFx0XHRcdFx0XHRcdHRvcGljOiBzdHJlYW0sXG5cdFx0XHRcdFx0XHRcdHN1YnNjcmlwdGlvbjogZ3JvdXAsXG5cdFx0XHRcdFx0XHRcdHB1Ymxpc2hUaW1lOiBuZXcgRGF0ZShOdW1iZXIucGFyc2VJbnQoaWQuc3BsaXQoXCItXCIpWzBdID8/IFN0cmluZyhEYXRlLm5vdygpKSwgMTApKSxcblx0XHRcdFx0XHRcdFx0YWNrOiBhc3luYyAoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0YXdhaXQgY2xpZW50LnhhY2soc3RyZWFtLCBncm91cCwgaWQpO1xuXHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHRuYWNrOiBhc3luYyAoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0LyogbGVhdmUgdW5hY2tlZCDigJQgcGlja2VkIHVwIGJ5IFhBVVRPQ0xBSU0gKi9cblx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdFx0XHRhd2FpdCBoYW5kbGVyKG1lc3NhZ2UpO1xuXHRcdFx0XHRcdFx0XHRpZiAoY29uZmlnLmFjayAhPT0gZmFsc2UpIGF3YWl0IGNsaWVudC54YWNrKHN0cmVhbSwgZ3JvdXAsIGlkKTtcblx0XHRcdFx0XHRcdH0gY2F0Y2gge1xuXHRcdFx0XHRcdFx0XHQvLyBMZWF2ZSB1bmFja2VkIOKAlCBwZW5kaW5nIGVudHJpZXMgYXJlIHZpc2libGUgaW4gWFBFTkRJTkcuXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSkoKTtcblx0fVxuXG5cdHByaXZhdGUgZmllbGRzVG9PYmplY3QoZmllbGRzOiBzdHJpbmdbXSk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuXHRcdGNvbnN0IG91dDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgZmllbGRzLmxlbmd0aDsgaSArPSAyKSBvdXRbZmllbGRzW2ldXSA9IGZpZWxkc1tpICsgMV07XG5cdFx0cmV0dXJuIG91dDtcblx0fVxuXG5cdGFzeW5jIHVuc3Vic2NyaWJlKHN1YnNjcmlwdGlvbjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0Y29uc3Qgc3ViID0gdGhpcy5zdWJzY3JpcHRpb25zLmdldChzdWJzY3JpcHRpb24pO1xuXHRcdGlmICghc3ViKSByZXR1cm47XG5cdFx0c3ViLnN0b3AoKTtcblx0XHR0aGlzLnN1YnNjcmlwdGlvbnMuZGVsZXRlKHN1YnNjcmlwdGlvbik7XG5cdH1cblxuXHRhc3luYyBwdWJsaXNoKHRvcGljOiBzdHJpbmcsIHBheWxvYWQ6IHVua25vd24pOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRpZiAoIXRoaXMuY29ubmVjdGVkIHx8ICF0aGlzLmNsaWVudCkgdGhyb3cgbmV3IEVycm9yKFwiW2Jsb2tdW3B1YnN1Yi1yZWRpc10gbm90IGNvbm5lY3RlZC4gQ2FsbCBjb25uZWN0KCkgZmlyc3QuXCIpO1xuXHRcdGNvbnN0IGJvZHkgPSB0eXBlb2YgcGF5bG9hZCA9PT0gXCJzdHJpbmdcIiA/IHBheWxvYWQgOiBKU09OLnN0cmluZ2lmeShwYXlsb2FkKTtcblx0XHRhd2FpdCB0aGlzLmNsaWVudC54YWRkKHRvcGljLCBcIipcIiwgXCJkYXRhXCIsIGJvZHkpO1xuXHR9XG5cblx0aXNDb25uZWN0ZWQoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHRoaXMuY29ubmVjdGVkO1xuXHR9XG5cblx0YXN5bmMgaGVhbHRoQ2hlY2soKTogUHJvbWlzZTxib29sZWFuPiB7XG5cdFx0aWYgKCF0aGlzLmNvbm5lY3RlZCB8fCAhdGhpcy5jbGllbnQpIHJldHVybiBmYWxzZTtcblx0XHR0cnkge1xuXHRcdFx0Y29uc3QgcG9uZyA9IGF3YWl0IHRoaXMuY2xpZW50LnBpbmcoKTtcblx0XHRcdHJldHVybiBwb25nID09PSBcIlBPTkdcIjtcblx0XHR9IGNhdGNoIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cdH1cbn1cbiJdfQ==
226
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVkaXNTdHJlYW1zUHViU3ViQWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hZGFwdGVycy9SZWRpc1N0cmVhbXNQdWJTdWJBZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNEJHO0FBR0gsT0FBTyxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUEyQmxDLE1BQU0sT0FBTyx5QkFBeUI7SUFDNUIsUUFBUSxHQUFHLGVBQXdCLENBQUM7SUFDNUIsTUFBTSxDQUEyQjtJQUMxQyxNQUFNLEdBQXVCLElBQUksQ0FBQztJQUNsQyxhQUFhLEdBQW9DLElBQUksR0FBRyxFQUFFLENBQUM7SUFDM0QsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUNsQixZQUFZLEdBQUcsZUFBZSxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFFM0QsWUFBWSxNQUEwQztRQUNyRCxJQUFJLENBQUMsTUFBTSxHQUFHO1lBQ2IsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLElBQUksV0FBVztZQUMzRCxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxJQUFJLE1BQU0sRUFBRSxFQUFFLENBQUM7WUFDM0UsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjO1lBQ3hELEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLElBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQztZQUNsRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sSUFBSSxJQUFJ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Q0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxXQUFXO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxLQUFLLENBQUMsV0FBVztRQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDbEQsSUFBSSxDQUFDO1lBQ0osTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3RDLE9BQU8sSUFBSSxLQUFLLE1BQU0sQ0FBQztRQUN4QixDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1IsT0FBTyxLQUFLLENBQUM7UUFDZCxDQUFDO0lBQ0YsQ0FBQztDQUNEIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZWRpc1N0cmVhbXNQdWJTdWJBZGFwdGVyIOKAlCB2MC43IFBSIDYg4oCUIFB1Yi9TdWIgYWRhcHRlciBiYWNrZWQgYnlcbiAqIFJlZGlzIFN0cmVhbXMgdmlhIGBpb3JlZGlzYC5cbiAqXG4gKiBQdWIvU3ViIHZzIFdvcmtlciBzZW1hbnRpY3M6IHRoaXMgYWRhcHRlciB1c2VzICoqZGlzdGluY3QgY29uc3VtZXJcbiAqIGdyb3VwcyBwZXIgc3Vic2NyaWJlcioqIHNvIG11bHRpcGxlIHN1YnNjcmliZXJzIGVhY2ggcmVjZWl2ZSBldmVyeVxuICogbWVzc2FnZSAoZmFuLW91dCkuIFdoZW4gYGNvbnN1bWVyR3JvdXBgIGlzIGV4cGxpY2l0bHkgc2V0IG9uIHRoZVxuICogd29ya2Zsb3csIGFsbCBzdWJzY3JpYmVycyBpbiB0aGUgZ3JvdXAgY29tcGV0ZSAoMSBvZiBOIGdldHMgZWFjaCkuXG4gKlxuICogUmVwbGF5IGN1cnNvcnMgKGBzdGFydEZyb21gKTpcbiAqICAgLSB1bnNldCAvIGBcImxhdGVzdFwiYCDihpIgYCRgIChvbmx5IG5ldyBtZXNzYWdlcykuXG4gKiAgIC0gYFwiZWFybGllc3RcImAg4oaSIGAwYCAocmVwbGF5IGZ1bGwgcmV0YWluZWQgc3RyZWFtKS5cbiAqICAgLSBge3NlcTogTn1gIOKGkiByZXN1bWUgZnJvbSBzdHJlYW0gaWQgYE4tMGAuXG4gKiAgIC0gYHt0aW1lc3RhbXA6IG1zfWAg4oaSIHJlc3VtZSBmcm9tIGlkIGBtcy0wYCAodGltZSBjdXJzb3IpLlxuICogV2hlbiB0aGUgY29uc3VtZXIgZ3JvdXAgYWxyZWFkeSBleGlzdHMsIGBzdGFydEZyb21gIGlzIGFwcGxpZWQgdmlhXG4gKiBgWEdST1VQIFNFVElEYCBzbyBhIHJlY29ubmVjdCAvIHNlY29uZCBzdWJzY3JpYmUgc3RpbGwgcmVwb3NpdGlvbnMgaXQuXG4gKlxuICogR3JvdXAgbGlmZWN5Y2xlOiBhbiBleHBsaWNpdCBgY29uc3VtZXJHcm91cGAgKGNvbXBldGluZy1jb25zdW1lcikgb3JcbiAqIGBkdXJhYmxlOiB0cnVlYCBwZXJzaXN0cyB0aGUgZ3JvdXA7IGFuIGF1dG8tZ2VuZXJhdGVkIGZhbi1vdXQgZ3JvdXAgaXNcbiAqIG5vbi1kdXJhYmxlIGFuZCB0b3JuIGRvd24gKGBYR1JPVVAgREVTVFJPWWApIG9uIHVuc3Vic2NyaWJlL2Rpc2Nvbm5lY3QuXG4gKlxuICogUmVxdWlyZXMgYGlvcmVkaXNgIGFzIGEgcGVlciBkZXBlbmRlbmN5LlxuICpcbiAqIEVudmlyb25tZW50IHZhcmlhYmxlczpcbiAqICAgLSBgUkVESVNfSE9TVGAgKGRlZmF1bHQgYGxvY2FsaG9zdGApLlxuICogICAtIGBSRURJU19QT1JUYCAoZGVmYXVsdCBgNjM3OWApLlxuICogICAtIGBSRURJU19QQVNTV09SRGAuXG4gKiAgIC0gYFJFRElTX0RCYC5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFB1YlN1YlRyaWdnZXJPcHRzIH0gZnJvbSBcIkBibG9ranMvaGVscGVyXCI7XG5pbXBvcnQgeyB2NCBhcyB1dWlkIH0gZnJvbSBcInV1aWRcIjtcbmltcG9ydCB0eXBlIHsgUHViU3ViQWRhcHRlciwgUHViU3ViTWVzc2FnZSB9IGZyb20gXCIuLi9QdWJTdWJUcmlnZ2VyXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVkaXNTdHJlYW1zUHViU3ViQ29uZmlnIHtcblx0aG9zdDogc3RyaW5nO1xuXHRwb3J0OiBudW1iZXI7XG5cdHBhc3N3b3JkPzogc3RyaW5nO1xuXHRkYj86IG51bWJlcjtcblx0YmxvY2tNczogbnVtYmVyO1xuXHRjb3VudDogbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgUmVkaXNDbGllbnQge1xuXHR4YWRkKHN0cmVhbTogc3RyaW5nLCAuLi5hcmdzOiBzdHJpbmdbXSk6IFByb21pc2U8c3RyaW5nPjtcblx0eHJlYWRncm91cCguLi5hcmdzOiBzdHJpbmdbXSk6IFByb21pc2U8QXJyYXk8W3N0cmluZywgQXJyYXk8W3N0cmluZywgc3RyaW5nW11dPl0+IHwgbnVsbD47XG5cdHhncm91cCguLi5hcmdzOiBzdHJpbmdbXSk6IFByb21pc2U8c3RyaW5nPjtcblx0eGFjayhzdHJlYW06IHN0cmluZywgZ3JvdXA6IHN0cmluZywgLi4uaWRzOiBzdHJpbmdbXSk6IFByb21pc2U8bnVtYmVyPjtcblx0cGluZygpOiBQcm9taXNlPHN0cmluZz47XG5cdHF1aXQoKTogUHJvbWlzZTxzdHJpbmc+O1xufVxuXG5pbnRlcmZhY2UgQWN0aXZlU3Vic2NyaXB0aW9uIHtcblx0c3RvcDogKCkgPT4gdm9pZDtcblx0LyoqIG5vbi1kdXJhYmxlIGF1dG8gZmFuLW91dCBncm91cHMgYXJlIHRvcm4gZG93biBvbiB1bnN1YnNjcmliZS9kaXNjb25uZWN0ICovXG5cdGNsZWFudXA6ICgpID0+IFByb21pc2U8dm9pZD47XG59XG5cbmV4cG9ydCBjbGFzcyBSZWRpc1N0cmVhbXNQdWJTdWJBZGFwdGVyIGltcGxlbWVudHMgUHViU3ViQWRhcHRlciB7XG5cdHJlYWRvbmx5IHByb3ZpZGVyID0gXCJyZWRpcy1zdHJlYW1zXCIgYXMgY29uc3Q7XG5cdHByaXZhdGUgcmVhZG9ubHkgY29uZmlnOiBSZWRpc1N0cmVhbXNQdWJTdWJDb25maWc7XG5cdHByaXZhdGUgY2xpZW50OiBSZWRpc0NsaWVudCB8IG51bGwgPSBudWxsO1xuXHRwcml2YXRlIHN1YnNjcmlwdGlvbnM6IE1hcDxzdHJpbmcsIEFjdGl2ZVN1YnNjcmlwdGlvbj4gPSBuZXcgTWFwKCk7XG5cdHByaXZhdGUgY29ubmVjdGVkID0gZmFsc2U7XG5cdHByaXZhdGUgY29uc3VtZXJOYW1lID0gYGJsb2stcHVic3ViLSR7dXVpZCgpLnNsaWNlKDAsIDgpfWA7XG5cblx0Y29uc3RydWN0b3IoY29uZmlnPzogUGFydGlhbDxSZWRpc1N0cmVhbXNQdWJTdWJDb25maWc+KSB7XG5cdFx0dGhpcy5jb25maWcgPSB7XG5cdFx0XHRob3N0OiBjb25maWc/Lmhvc3QgPz8gcHJvY2Vzcy5lbnYuUkVESVNfSE9TVCA/PyBcImxvY2FsaG9zdFwiLFxuXHRcdFx0cG9ydDogY29uZmlnPy5wb3J0ID8/IE51bWJlci5wYXJzZUludChwcm9jZXNzLmVudi5SRURJU19QT1JUID8/IFwiNjM3OVwiLCAxMCksXG5cdFx0XHRwYXNzd29yZDogY29uZmlnPy5wYXNzd29yZCA/PyBwcm9jZXNzLmVudi5SRURJU19QQVNTV09SRCxcblx0XHRcdGRiOiBjb25maWc/LmRiID8/IE51bWJlci5wYXJzZUludChwcm9jZXNzLmVudi5SRURJU19EQiA/PyBcIjBcIiwgMTApLFxuXHRcdFx0YmxvY2tNczogY29uZmlnPy5ibG9ja01zID8/IDUwMDAsXG5cdFx0XHRjb3VudDogY29uZmlnPy5jb3VudCA/PyAxMCxcblx0XHR9O1xuXHR9XG5cblx0YXN5bmMgY29ubmVjdCgpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRpZiAodGhpcy5jb25uZWN0ZWQpIHJldHVybjtcblx0XHR0cnkge1xuXHRcdFx0Ly8gYmlvbWUtaWdub3JlIGxpbnQvc3VzcGljaW91cy9ub0V4cGxpY2l0QW55OiBpb3JlZGlzIGlzIGEgcnVudGltZSBwZWVyIGRlcC5cblx0XHRcdGNvbnN0IGlvcmVkaXM6IGFueSA9IGF3YWl0IGltcG9ydChcImlvcmVkaXNcIik7XG5cdFx0XHRjb25zdCBJT1JlZGlzID0gaW9yZWRpcy5kZWZhdWx0ID8/IGlvcmVkaXMuUmVkaXMgPz8gaW9yZWRpcztcblx0XHRcdHRoaXMuY2xpZW50ID0gbmV3IElPUmVkaXMoe1xuXHRcdFx0XHRob3N0OiB0aGlzLmNvbmZpZy5ob3N0LFxuXHRcdFx0XHRwb3J0OiB0aGlzLmNvbmZpZy5wb3J0LFxuXHRcdFx0XHRwYXNzd29yZDogdGhpcy5jb25maWcucGFzc3dvcmQsXG5cdFx0XHRcdGRiOiB0aGlzLmNvbmZpZy5kYixcblx0XHRcdH0pIGFzIFJlZGlzQ2xpZW50O1xuXHRcdFx0YXdhaXQgdGhpcy5jbGllbnQucGluZygpO1xuXHRcdFx0dGhpcy5jb25uZWN0ZWQgPSB0cnVlO1xuXHRcdH0gY2F0Y2ggKGVycikge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFxuXHRcdFx0XHRgW2Jsb2tdW3B1YnN1Yi1yZWRpc10gY29ubmVjdCBmYWlsZWQ6ICR7KGVyciBhcyBFcnJvcikubWVzc2FnZX0uIEluc3RhbGwgaW9yZWRpcyBhcyBhIHBlZXIgZGVwZW5kZW5jeTogYnVuIGFkZCBpb3JlZGlzYCxcblx0XHRcdCk7XG5cdFx0fVxuXHR9XG5cblx0YXN5bmMgZGlzY29ubmVjdCgpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRpZiAoIXRoaXMuY29ubmVjdGVkKSByZXR1cm47XG5cdFx0Zm9yIChjb25zdCBzdWIgb2YgdGhpcy5zdWJzY3JpcHRpb25zLnZhbHVlcygpKSBzdWIuc3RvcCgpO1xuXHRcdC8vIFRlYXIgZG93biB0cmFuc2llbnQgZmFuLW91dCBncm91cHMgd2hpbGUgdGhlIGNsaWVudCBpcyBzdGlsbCBhbGl2ZS5cblx0XHRmb3IgKGNvbnN0IHN1YiBvZiB0aGlzLnN1YnNjcmlwdGlvbnMudmFsdWVzKCkpIGF3YWl0IHN1Yi5jbGVhbnVwKCk7XG5cdFx0dGhpcy5zdWJzY3JpcHRpb25zLmNsZWFyKCk7XG5cdFx0dHJ5IHtcblx0XHRcdGF3YWl0IHRoaXMuY2xpZW50Py5xdWl0KCk7XG5cdFx0fSBjYXRjaCB7XG5cdFx0XHQvKiBpZ25vcmUgKi9cblx0XHR9XG5cdFx0dGhpcy5jbGllbnQgPSBudWxsO1xuXHRcdHRoaXMuY29ubmVjdGVkID0gZmFsc2U7XG5cdH1cblxuXHRhc3luYyBzdWJzY3JpYmUoY29uZmlnOiBQdWJTdWJUcmlnZ2VyT3B0cywgaGFuZGxlcjogKG1lc3NhZ2U6IFB1YlN1Yk1lc3NhZ2UpID0+IFByb21pc2U8dm9pZD4pOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRpZiAoIXRoaXMuY29ubmVjdGVkIHx8ICF0aGlzLmNsaWVudCkgdGhyb3cgbmV3IEVycm9yKFwiW2Jsb2tdW3B1YnN1Yi1yZWRpc10gbm90IGNvbm5lY3RlZC4gQ2FsbCBjb25uZWN0KCkgZmlyc3QuXCIpO1xuXHRcdGNvbnN0IGNsaWVudCA9IHRoaXMuY2xpZW50O1xuXHRcdGNvbnN0IHN0cmVhbSA9IGNvbmZpZy50b3BpYztcblx0XHQvLyBGYW4tb3V0OiBlYWNoIHN1YnNjcmliZXIgZ2V0cyBpdHMgb3duIGdyb3VwICh1bmlxdWUgcGVyIGluc3RhbmNlKS5cblx0XHQvLyBDb21wZXRpbmctY29uc3VtZXI6IGV4cGxpY2l0IGBjb25zdW1lckdyb3VwYCBtYWtlcyBhbGwgc3Vic2NyaWJlcnNcblx0XHQvLyBzaGFyZSB3b3JrLlxuXHRcdGNvbnN0IGdyb3VwID0gY29uZmlnLmNvbnN1bWVyR3JvdXAgPz8gYGJsb2stZmFub3V0LSR7dGhpcy5jb25zdW1lck5hbWV9LSR7c3RyZWFtLnJlcGxhY2UoL1teYS16QS1aMC05X10vZywgXCJfXCIpfWA7XG5cdFx0Ly8gQW4gYXV0by1nZW5lcmF0ZWQgZmFuLW91dCBncm91cCAobm8gY29uc3VtZXJHcm91cCkgdGhhdCBpcyBub24tZHVyYWJsZVxuXHRcdC8vIGlzIHRvcm4gZG93biB3aGVuIHRoZSBzdWJzY3JpcHRpb24gc3RvcHM7IGFuIGV4cGxpY2l0IGNvbnN1bWVyR3JvdXAgb3Jcblx0XHQvLyBgZHVyYWJsZTogdHJ1ZWAgcGVyc2lzdHMgdGhlIGdyb3VwIGFjcm9zcyAocmUpY29ubmVjdHMuXG5cdFx0Y29uc3QgdHJhbnNpZW50R3JvdXAgPSBjb25maWcuY29uc3VtZXJHcm91cCA9PT0gdW5kZWZpbmVkICYmIGNvbmZpZy5kdXJhYmxlICE9PSB0cnVlO1xuXHRcdGNvbnN0IHN0YXJ0RnJvbSA9IGNvbmZpZy5zdGFydEZyb207XG5cdFx0Y29uc3Qgc3RhcnRJZCA9XG5cdFx0XHRzdGFydEZyb20gPT09IFwiZWFybGllc3RcIlxuXHRcdFx0XHQ/IFwiMFwiXG5cdFx0XHRcdDogc3RhcnRGcm9tID09PSBcImxhdGVzdFwiIHx8IHN0YXJ0RnJvbSA9PT0gdW5kZWZpbmVkXG5cdFx0XHRcdFx0PyBcIiRcIlxuXHRcdFx0XHRcdDogXCJzZXFcIiBpbiBzdGFydEZyb21cblx0XHRcdFx0XHRcdD8gYCR7c3RhcnRGcm9tLnNlcX0tMGBcblx0XHRcdFx0XHRcdDogLy8ge3RpbWVzdGFtcH06IHN0cmVhbSBpZHMgYXJlIGA8bXM+LTxzZXE+YDsgYSBiYXJlIG1zLTAgaXMgYSB2YWxpZFxuXHRcdFx0XHRcdFx0XHQvLyBpZCwgc28gdGhlIGdyb3VwIHJlc3VtZXMgZnJvbSB0aGF0IG1pbGxpc2Vjb25kLlxuXHRcdFx0XHRcdFx0XHRgJHtzdGFydEZyb20udGltZXN0YW1wfS0wYDtcblxuXHRcdHRyeSB7XG5cdFx0XHRhd2FpdCBjbGllbnQueGdyb3VwKFwiQ1JFQVRFXCIsIHN0cmVhbSwgZ3JvdXAsIHN0YXJ0SWQsIFwiTUtTVFJFQU1cIik7XG5cdFx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0XHRpZiAoIS9CVVNZR1JPVVAvaS50ZXN0KChlcnIgYXMgRXJyb3IpLm1lc3NhZ2UpKSB0aHJvdyBlcnI7XG5cdFx0XHQvLyBHcm91cCBhbHJlYWR5IGV4aXN0cyAocmVjb25uZWN0IC8gc2Vjb25kIHN1YnNjcmliZSkuIFhHUk9VUCBDUkVBVEVcblx0XHRcdC8vIGtlZXBzIHRoZSBPTEQgY3Vyc29yLCBzbyBhbiBleHBsaWNpdCBzdGFydEZyb20gd291bGQgYmUgc2lsZW50bHlcblx0XHRcdC8vIGlnbm9yZWQg4oCUIHJlcG9zaXRpb24gdGhlIGV4aXN0aW5nIGdyb3VwIHdpdGggU0VUSUQuXG5cdFx0XHRpZiAoc3RhcnRGcm9tICE9PSB1bmRlZmluZWQpIGF3YWl0IGNsaWVudC54Z3JvdXAoXCJTRVRJRFwiLCBzdHJlYW0sIGdyb3VwLCBzdGFydElkKTtcblx0XHR9XG5cblx0XHRsZXQgc3RvcHBlZCA9IGZhbHNlO1xuXHRcdGNvbnN0IHN1YjogQWN0aXZlU3Vic2NyaXB0aW9uID0ge1xuXHRcdFx0c3RvcDogKCkgPT4ge1xuXHRcdFx0XHRzdG9wcGVkID0gdHJ1ZTtcblx0XHRcdH0sXG5cdFx0XHRjbGVhbnVwOiBhc3luYyAoKSA9PiB7XG5cdFx0XHRcdGlmICghdHJhbnNpZW50R3JvdXApIHJldHVybjtcblx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRhd2FpdCBjbGllbnQueGdyb3VwKFwiREVTVFJPWVwiLCBzdHJlYW0sIGdyb3VwKTtcblx0XHRcdFx0fSBjYXRjaCB7XG5cdFx0XHRcdFx0LyogZ3JvdXAgYWxyZWFkeSBnb25lIC8gY29ubmVjdGlvbiBjbG9zaW5nICovXG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cdFx0fTtcblx0XHR0aGlzLnN1YnNjcmlwdGlvbnMuc2V0KGAke3N0cmVhbX0jJHtncm91cH1gLCBzdWIpO1xuXG5cdFx0dm9pZCAoYXN5bmMgKCkgPT4ge1xuXHRcdFx0d2hpbGUgKCFzdG9wcGVkKSB7XG5cdFx0XHRcdGxldCBlbnRyaWVzOiBBcnJheTxbc3RyaW5nLCBBcnJheTxbc3RyaW5nLCBzdHJpbmdbXV0+XT4gfCBudWxsID0gbnVsbDtcblx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRlbnRyaWVzID0gYXdhaXQgY2xpZW50LnhyZWFkZ3JvdXAoXG5cdFx0XHRcdFx0XHRcIkdST1VQXCIsXG5cdFx0XHRcdFx0XHRncm91cCxcblx0XHRcdFx0XHRcdHRoaXMuY29uc3VtZXJOYW1lLFxuXHRcdFx0XHRcdFx0XCJDT1VOVFwiLFxuXHRcdFx0XHRcdFx0U3RyaW5nKHRoaXMuY29uZmlnLmNvdW50KSxcblx0XHRcdFx0XHRcdFwiQkxPQ0tcIixcblx0XHRcdFx0XHRcdFN0cmluZyh0aGlzLmNvbmZpZy5ibG9ja01zKSxcblx0XHRcdFx0XHRcdFwiU1RSRUFNU1wiLFxuXHRcdFx0XHRcdFx0c3RyZWFtLFxuXHRcdFx0XHRcdFx0XCI+XCIsXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fSBjYXRjaCB7XG5cdFx0XHRcdFx0YXdhaXQgbmV3IFByb21pc2UoKHIpID0+IHNldFRpbWVvdXQociwgMTAwMCkpO1xuXHRcdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICghZW50cmllcykgY29udGludWU7XG5cdFx0XHRcdGZvciAoY29uc3QgWywgbXNnc10gb2YgZW50cmllcykge1xuXHRcdFx0XHRcdGZvciAoY29uc3QgW2lkLCBmaWVsZHNdIG9mIG1zZ3MpIHtcblx0XHRcdFx0XHRcdGlmIChzdG9wcGVkKSBicmVhaztcblx0XHRcdFx0XHRcdGNvbnN0IHBheWxvYWQgPSB0aGlzLmZpZWxkc1RvT2JqZWN0KGZpZWxkcyk7XG5cdFx0XHRcdFx0XHRjb25zdCBkYXRhU3RyaW5nID0gdHlwZW9mIHBheWxvYWQuZGF0YSA9PT0gXCJzdHJpbmdcIiA/IHBheWxvYWQuZGF0YSA6IFwiXCI7XG5cdFx0XHRcdFx0XHRsZXQgYm9keTogdW5rbm93bjtcblx0XHRcdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0XHRcdGJvZHkgPSBkYXRhU3RyaW5nLmxlbmd0aCA+IDAgPyBKU09OLnBhcnNlKGRhdGFTdHJpbmcpIDogbnVsbDtcblx0XHRcdFx0XHRcdH0gY2F0Y2gge1xuXHRcdFx0XHRcdFx0XHRib2R5ID0gZGF0YVN0cmluZztcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdGNvbnN0IG1lc3NhZ2U6IFB1YlN1Yk1lc3NhZ2UgPSB7XG5cdFx0XHRcdFx0XHRcdGlkLFxuXHRcdFx0XHRcdFx0XHRib2R5LFxuXHRcdFx0XHRcdFx0XHRhdHRyaWJ1dGVzOiBwYXlsb2FkLFxuXHRcdFx0XHRcdFx0XHRyYXc6IHsgaWQsIGZpZWxkcyB9LFxuXHRcdFx0XHRcdFx0XHR0b3BpYzogc3RyZWFtLFxuXHRcdFx0XHRcdFx0XHRzdWJzY3JpcHRpb246IGdyb3VwLFxuXHRcdFx0XHRcdFx0XHRwdWJsaXNoVGltZTogbmV3IERhdGUoTnVtYmVyLnBhcnNlSW50KGlkLnNwbGl0KFwiLVwiKVswXSA/PyBTdHJpbmcoRGF0ZS5ub3coKSksIDEwKSksXG5cdFx0XHRcdFx0XHRcdGFjazogYXN5bmMgKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdGF3YWl0IGNsaWVudC54YWNrKHN0cmVhbSwgZ3JvdXAsIGlkKTtcblx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0bmFjazogYXN5bmMgKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdC8qIGxlYXZlIHVuYWNrZWQg4oCUIHBpY2tlZCB1cCBieSBYQVVUT0NMQUlNICovXG5cdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRcdFx0YXdhaXQgaGFuZGxlcihtZXNzYWdlKTtcblx0XHRcdFx0XHRcdFx0aWYgKGNvbmZpZy5hY2sgIT09IGZhbHNlKSBhd2FpdCBjbGllbnQueGFjayhzdHJlYW0sIGdyb3VwLCBpZCk7XG5cdFx0XHRcdFx0XHR9IGNhdGNoIHtcblx0XHRcdFx0XHRcdFx0Ly8gTGVhdmUgdW5hY2tlZCDigJQgcGVuZGluZyBlbnRyaWVzIGFyZSB2aXNpYmxlIGluIFhQRU5ESU5HLlxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0pKCk7XG5cdH1cblxuXHRwcml2YXRlIGZpZWxkc1RvT2JqZWN0KGZpZWxkczogc3RyaW5nW10pOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcblx0XHRjb25zdCBvdXQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGZpZWxkcy5sZW5ndGg7IGkgKz0gMikgb3V0W2ZpZWxkc1tpXV0gPSBmaWVsZHNbaSArIDFdO1xuXHRcdHJldHVybiBvdXQ7XG5cdH1cblxuXHRhc3luYyB1bnN1YnNjcmliZShzdWJzY3JpcHRpb246IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuXHRcdGNvbnN0IHN1YiA9IHRoaXMuc3Vic2NyaXB0aW9ucy5nZXQoc3Vic2NyaXB0aW9uKTtcblx0XHRpZiAoIXN1YikgcmV0dXJuO1xuXHRcdHN1Yi5zdG9wKCk7XG5cdFx0YXdhaXQgc3ViLmNsZWFudXAoKTtcblx0XHR0aGlzLnN1YnNjcmlwdGlvbnMuZGVsZXRlKHN1YnNjcmlwdGlvbik7XG5cdH1cblxuXHRhc3luYyBwdWJsaXNoKHRvcGljOiBzdHJpbmcsIHBheWxvYWQ6IHVua25vd24pOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRpZiAoIXRoaXMuY29ubmVjdGVkIHx8ICF0aGlzLmNsaWVudCkgdGhyb3cgbmV3IEVycm9yKFwiW2Jsb2tdW3B1YnN1Yi1yZWRpc10gbm90IGNvbm5lY3RlZC4gQ2FsbCBjb25uZWN0KCkgZmlyc3QuXCIpO1xuXHRcdGNvbnN0IGJvZHkgPSB0eXBlb2YgcGF5bG9hZCA9PT0gXCJzdHJpbmdcIiA/IHBheWxvYWQgOiBKU09OLnN0cmluZ2lmeShwYXlsb2FkKTtcblx0XHRhd2FpdCB0aGlzLmNsaWVudC54YWRkKHRvcGljLCBcIipcIiwgXCJkYXRhXCIsIGJvZHkpO1xuXHR9XG5cblx0aXNDb25uZWN0ZWQoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHRoaXMuY29ubmVjdGVkO1xuXHR9XG5cblx0YXN5bmMgaGVhbHRoQ2hlY2soKTogUHJvbWlzZTxib29sZWFuPiB7XG5cdFx0aWYgKCF0aGlzLmNvbm5lY3RlZCB8fCAhdGhpcy5jbGllbnQpIHJldHVybiBmYWxzZTtcblx0XHR0cnkge1xuXHRcdFx0Y29uc3QgcG9uZyA9IGF3YWl0IHRoaXMuY2xpZW50LnBpbmcoKTtcblx0XHRcdHJldHVybiBwb25nID09PSBcIlBPTkdcIjtcblx0XHR9IGNhdGNoIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cdH1cbn1cbiJdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blokjs/trigger-pubsub",
3
- "version": "1.0.0",
3
+ "version": "1.2.0",
4
4
  "files": ["dist"],
5
5
  "description": "Pub/Sub trigger for Blok workflows — supports NATS (Core + JetStream), Redis Streams, Kafka, GCP Pub/Sub, AWS SNS+SQS, and Azure Service Bus.",
6
6
  "type": "module",
@@ -15,9 +15,9 @@
15
15
  "author": "Deskree Technologies Inc.",
16
16
  "license": "Apache-2.0",
17
17
  "dependencies": {
18
- "@blokjs/helper": "^1.0.0",
19
- "@blokjs/runner": "^1.0.0",
20
- "@blokjs/shared": "^1.0.0",
18
+ "@blokjs/helper": "^1.2.0",
19
+ "@blokjs/runner": "^1.2.0",
20
+ "@blokjs/shared": "^1.2.0",
21
21
  "@opentelemetry/api": "^1.9.0",
22
22
  "uuid": "^11.1.0"
23
23
  },