@milkio/stargate-worker 1.0.0-beta.34 → 1.0.0-beta.35
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.
- package/index.d.ts +8 -0
- package/index.js +60 -65
- package/package.json +1 -1
package/index.d.ts
CHANGED
|
@@ -29,3 +29,11 @@ export declare function createStargateWorker<Generated extends {
|
|
|
29
29
|
[Partial<Generated["rejectCode"]>, null, ExecuteResultsOption] | [null, Generated["routeSchema"][Path]["types"]["result"], ExecuteResultsOption] : // stream
|
|
30
30
|
[Partial<Generated["rejectCode"]>, null, ExecuteResultsOption] | [null, AsyncGenerator<[Partial<Generated["rejectCode"]>, null] | [null, GeneratorGeneric<Generated["routeSchema"][Path]["types"]["result"]>], ExecuteResultsOption>]>;
|
|
31
31
|
}>;
|
|
32
|
+
export type MilkioFlow<T, TReturn = any, TNext = any> = {
|
|
33
|
+
emit: (flow: T) => void;
|
|
34
|
+
[Symbol.asyncIterator]: () => MilkioFlow<T>;
|
|
35
|
+
next(...[value]: [] | [TNext]): Promise<IteratorResult<T, TReturn>>;
|
|
36
|
+
return(): Promise<IteratorResult<T, TReturn>>;
|
|
37
|
+
throw(error: any): Promise<IteratorResult<T, TReturn>>;
|
|
38
|
+
};
|
|
39
|
+
export declare function createFlow<T>(): MilkioFlow<T>;
|
package/index.js
CHANGED
|
@@ -125,7 +125,7 @@ async function createStargateWorker(stargateOptions) {
|
|
|
125
125
|
});
|
|
126
126
|
}
|
|
127
127
|
if (options?.type === "stream") {
|
|
128
|
-
let
|
|
128
|
+
let flow;
|
|
129
129
|
console.log(1);
|
|
130
130
|
const handler = (event) => {
|
|
131
131
|
console.log(2, JSON.stringify(event.data));
|
|
@@ -135,20 +135,20 @@ async function createStargateWorker(stargateOptions) {
|
|
|
135
135
|
return;
|
|
136
136
|
stargateOptions.port.removeEventListener("message", handler);
|
|
137
137
|
console.log(3, event.data);
|
|
138
|
-
if (!
|
|
139
|
-
|
|
138
|
+
if (!flow) {
|
|
139
|
+
flow = createFlow();
|
|
140
140
|
if (!event.data.success)
|
|
141
141
|
resolve([event.data.error, null, { executeId }]);
|
|
142
142
|
if (event.data.success)
|
|
143
|
-
resolve([null,
|
|
143
|
+
resolve([null, flow, { executeId }]);
|
|
144
144
|
} else {
|
|
145
145
|
console.log(4, event.data);
|
|
146
146
|
if (event.data.done)
|
|
147
|
-
|
|
147
|
+
flow.return();
|
|
148
148
|
else if (event.data.success)
|
|
149
|
-
|
|
149
|
+
flow.emit(event.data.data);
|
|
150
150
|
else if (!event.data.success)
|
|
151
|
-
|
|
151
|
+
flow.throw(event.data.data);
|
|
152
152
|
}
|
|
153
153
|
};
|
|
154
154
|
stargateOptions.port.addEventListener("message", handler);
|
|
@@ -164,71 +164,66 @@ async function createStargateWorker(stargateOptions) {
|
|
|
164
164
|
};
|
|
165
165
|
return stargate;
|
|
166
166
|
}
|
|
167
|
-
function
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
167
|
+
function createFlow() {
|
|
168
|
+
let status = "pending";
|
|
169
|
+
const flows = [];
|
|
170
|
+
const iterator = {
|
|
171
|
+
emit: (flow) => {
|
|
172
|
+
if (flows.at(-1)?.blank === true) {
|
|
173
|
+
const item = flows.at(-1);
|
|
174
|
+
item.blank = false;
|
|
175
|
+
item.resolve(flow);
|
|
176
|
+
return;
|
|
176
177
|
} else {
|
|
177
|
-
|
|
178
|
+
const resolvers = Promise.withResolvers();
|
|
179
|
+
resolvers.resolve(flow);
|
|
180
|
+
flows.push({ ...resolvers, blank: false });
|
|
178
181
|
}
|
|
179
|
-
deferred = null;
|
|
180
|
-
}
|
|
181
|
-
};
|
|
182
|
-
const generator = {
|
|
183
|
-
[Symbol.asyncIterator]() {
|
|
184
|
-
return generator;
|
|
185
|
-
},
|
|
186
|
-
async next() {
|
|
187
|
-
if (finished)
|
|
188
|
-
return { value: undefined, done: true };
|
|
189
|
-
return new Promise((resolve, reject) => {
|
|
190
|
-
deferred = { resolve, reject };
|
|
191
|
-
processQueue();
|
|
192
|
-
});
|
|
193
|
-
},
|
|
194
|
-
async return(value) {
|
|
195
|
-
finished = true;
|
|
196
|
-
queue.length = 0;
|
|
197
|
-
return { value, done: true };
|
|
198
|
-
},
|
|
199
|
-
async throw(error) {
|
|
200
|
-
finished = true;
|
|
201
|
-
queue.length = 0;
|
|
202
|
-
return Promise.reject(error);
|
|
203
|
-
}
|
|
204
|
-
};
|
|
205
|
-
return {
|
|
206
|
-
generator,
|
|
207
|
-
push: (value) => {
|
|
208
|
-
if (finished)
|
|
209
|
-
return;
|
|
210
|
-
queue.push({ value });
|
|
211
|
-
processQueue();
|
|
212
182
|
},
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
183
|
+
...{
|
|
184
|
+
async next() {
|
|
185
|
+
if (status !== "pending")
|
|
186
|
+
return { done: true, value: null };
|
|
187
|
+
if (flows.length === 0) {
|
|
188
|
+
const resolvers = Promise.withResolvers();
|
|
189
|
+
flows.push({ ...resolvers, blank: true });
|
|
190
|
+
}
|
|
191
|
+
const flow = flows.at(0);
|
|
192
|
+
const result = await flow.promise;
|
|
193
|
+
flows.shift();
|
|
194
|
+
return { done: status !== "pending", value: result };
|
|
195
|
+
},
|
|
196
|
+
async return() {
|
|
197
|
+
status = "resolved";
|
|
198
|
+
for (const flow of flows) {
|
|
199
|
+
flow.blank = false;
|
|
200
|
+
flow.resolve(undefined);
|
|
201
|
+
}
|
|
202
|
+
return { done: true, value: null };
|
|
203
|
+
},
|
|
204
|
+
async throw(err) {
|
|
205
|
+
status = "rejected";
|
|
206
|
+
if (flows.length === 0) {
|
|
207
|
+
const resolvers = Promise.withResolvers();
|
|
208
|
+
flows.push({ ...resolvers, blank: true });
|
|
209
|
+
}
|
|
210
|
+
for (const flow of flows) {
|
|
211
|
+
flow.blank = false;
|
|
212
|
+
flow.reject(err);
|
|
213
|
+
}
|
|
214
|
+
return { done: true, value: null };
|
|
215
|
+
}
|
|
219
216
|
},
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
return;
|
|
223
|
-
finished = true;
|
|
224
|
-
queue.push({ error: err });
|
|
225
|
-
processQueue();
|
|
217
|
+
[Symbol.asyncIterator]() {
|
|
218
|
+
return this;
|
|
226
219
|
}
|
|
227
220
|
};
|
|
221
|
+
return iterator;
|
|
228
222
|
}
|
|
229
223
|
export {
|
|
230
|
-
createStargateWorker
|
|
224
|
+
createStargateWorker,
|
|
225
|
+
createFlow
|
|
231
226
|
};
|
|
232
227
|
|
|
233
|
-
//# debugId=
|
|
234
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi5cXHV0aWxzXFxjcmVhdGUtaWQudHMiLCAiLi5cXGluZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWwogICAgInR5cGUgSWRHZW5lcmF0b3JPcHRpb25zID0ge1xuICBsZW5ndGg/OiBudW1iZXI7XG4gIHRpbWVzdGFtcDogYm9vbGVhbjtcbiAgc2VxdWVudGlhbDogYm9vbGVhbjtcbn07XG5cbmZ1bmN0aW9uIGRlZmluZUlkR2VuZXJhdG9yKG9wdGlvbnM6IElkR2VuZXJhdG9yT3B0aW9ucykge1xuICBpZiAoIW9wdGlvbnMubGVuZ3RoKSBvcHRpb25zLmxlbmd0aCA9IDI0O1xuICBpZiAob3B0aW9ucy5sZW5ndGggPCAxKSB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIGxlbmd0aFwiKTtcbiAgaWYgKG9wdGlvbnMubGVuZ3RoID4gNjEpIHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgbGVuZ3RoXCIpO1xuICBpZiAob3B0aW9ucy50aW1lc3RhbXAgJiYgb3B0aW9ucy5sZW5ndGggPCA5KSB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIGxlbmd0aFwiKTtcbiAgbGV0IGxhc3RUaW1lID0gMDtcbiAgbGV0IGxhc3REZWNpbWFsID0gMG47XG4gIHJldHVybiB7XG4gICAgY3JlYXRlSWQoKSB7XG4gICAgICBsZXQgcmFuZExlbmd0aCA9IG9wdGlvbnMubGVuZ3RoITtcbiAgICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gICAgICBsZXQgaWQgPSBcIlwiO1xuICAgICAgaWYgKG9wdGlvbnMudGltZXN0YW1wKSB7XG4gICAgICAgIHJhbmRMZW5ndGggLT0gODtcbiAgICAgICAgaWQgPSBgJHtpZH0ke19fYmlnSW50VG9TdHJpbmcoQmlnSW50KG5vdykpLnBhZFN0YXJ0KDgsIFwiMFwiKX1gO1xuICAgICAgfVxuICAgICAgaWYgKG9wdGlvbnMuc2VxdWVudGlhbCAmJiBsYXN0VGltZSA9PT0gbm93KSB7XG4gICAgICAgIGlkID0gYCR7aWR9JHtfX2JpZ0ludFRvU3RyaW5nKCsrbGFzdERlY2ltYWwpLnBhZFN0YXJ0KDEsIFwiMFwiKX1gO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGFzdFRpbWUgPSBub3c7XG4gICAgICAgIGNvbnN0IG1pbiA9IDBuO1xuICAgICAgICBjb25zdCBtYXggPSBfX2dldE1heFZhbHVlKEJpZ0ludChyYW5kTGVuZ3RoKSk7XG4gICAgICAgIGxhc3REZWNpbWFsID0gX19zZWN1cmVSYW5kb21CaWdJbnQobWluLCBtYXgpO1xuICAgICAgICBpZCA9IGAke2lkfSR7X19iaWdJbnRUb1N0cmluZyhsYXN0RGVjaW1hbCkucGFkU3RhcnQocmFuZExlbmd0aCwgXCIwXCIpfWA7XG4gICAgICB9XG4gICAgICByZXR1cm4gaWQ7XG4gICAgfSxcbiAgICBnZXRJZFRpbWVzdGFtcChpZDogc3RyaW5nKSB7XG4gICAgICByZXR1cm4gb3B0aW9ucy50aW1lc3RhbXAgPyBOdW1iZXIoX19zdHJpbmdUb0JpZ0ludChpZC5zbGljZSgwLCA4KS5yZXBsYWNlQWxsKFwiMFwiLCBcIlwiKSkpIDogMDtcbiAgICB9LFxuICB9O1xufVxuXG5jb25zdCBFTkNPRElORyA9IFwiMDEyMzQ1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpcIjtcblxuZnVuY3Rpb24gX19zZWN1cmVSYW5kb21CaWdJbnQobWluOiBiaWdpbnQsIG1heDogYmlnaW50KTogYmlnaW50IHtcbiAgaWYgKG1pbiA+PSBtYXgpIHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgcmFuZ2VcIik7XG5cbiAgY29uc3QgcmFuZ2UgPSBtYXggLSBtaW4gKyAxbjtcbiAgY29uc3QgYnl0ZUNvdW50ID0gTWF0aC5jZWlsKE51bWJlcihCaWdJbnQocmFuZ2UudG9TdHJpbmcoMikubGVuZ3RoKSkgLyA4KTtcbiAgY29uc3QgZW50cm9weUJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkoYnl0ZUNvdW50KTtcblxuICBsZXQgcmFuZG9tVmFsdWU6IGJpZ2ludDtcbiAgZG8ge1xuICAgIGNyeXB0by5nZXRSYW5kb21WYWx1ZXMoZW50cm9weUJ5dGVzKTtcbiAgICByYW5kb21WYWx1ZSA9XG4gICAgICBCaWdJbnQoXG4gICAgICAgIGAweCR7QXJyYXkuZnJvbShlbnRyb3B5Qnl0ZXMpXG4gICAgICAgICAgLm1hcCgoYikgPT4gYi50b1N0cmluZygxNikucGFkU3RhcnQoMiwgXCIwXCIpKVxuICAgICAgICAgIC5qb2luKFwiXCIpfWAsXG4gICAgICApICUgcmFuZ2U7XG4gIH0gd2hpbGUgKHJhbmRvbVZhbHVlIDwgMG4pO1xuXG4gIHJldHVybiBtaW4gKyByYW5kb21WYWx1ZTtcbn1cblxuZnVuY3Rpb24gX19iaWdJbnRUb1N0cmluZyh2YWx1ZTogYmlnaW50KTogc3RyaW5nIHtcbiAgY29uc3QgYmFzZSA9IEJpZ0ludChFTkNPRElORy5sZW5ndGgpO1xuICBsZXQgcmVzdWx0ID0gXCJcIjtcbiAgbGV0IGN1cnJlbnQgPSB2YWx1ZTtcblxuICBpZiAoY3VycmVudCA9PT0gMG4pIHJldHVybiBFTkNPRElOR1swXTtcblxuICB3aGlsZSAoY3VycmVudCA+IDBuKSB7XG4gICAgY29uc3QgcmVtYWluZGVyID0gY3VycmVudCAlIGJhc2U7XG4gICAgcmVzdWx0ID0gRU5DT0RJTkdbTnVtYmVyKHJlbWFpbmRlcildICsgcmVzdWx0O1xuICAgIGN1cnJlbnQgPSBjdXJyZW50IC8gYmFzZTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBfX3N0cmluZ1RvQmlnSW50KHN0cjogc3RyaW5nKTogYmlnaW50IHtcbiAgY29uc3QgY2hhck1hcDogeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfSA9IHt9O1xuICBmb3IgKGxldCBpID0gMDsgaSA8IEVOQ09ESU5HLmxlbmd0aDsgaSsrKSB7XG4gICAgY2hhck1hcFtFTkNPRElOR1tpXV0gPSBpO1xuICB9XG5cbiAgY29uc3QgYmFzZSA9IEJpZ0ludChFTkNPRElORy5sZW5ndGgpO1xuICBsZXQgcmVzdWx0ID0gMG47XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBjaGFyID0gc3RyW2ldO1xuICAgIGlmICghKGNoYXIgaW4gY2hhck1hcCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBjaGFyYWN0ZXIgJyR7Y2hhcn0nIGluIGlucHV0IHN0cmluZ2ApO1xuICAgIH1cbiAgICBjb25zdCB2YWx1ZSA9IEJpZ0ludChjaGFyTWFwW2NoYXJdKTtcbiAgICByZXN1bHQgPSByZXN1bHQgKiBiYXNlICsgdmFsdWU7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBfX2dldE1heFZhbHVlKG46IGJpZ2ludCk6IGJpZ2ludCB7XG4gIHJldHVybiBCaWdJbnQoRU5DT0RJTkcubGVuZ3RoKSAqKiBuIC0gMW47XG59XG5cbmNvbnN0IGlkR2VuZXJhdG9yID0gZGVmaW5lSWRHZW5lcmF0b3IoeyBsZW5ndGg6IDI0LCB0aW1lc3RhbXA6IGZhbHNlLCBzZXF1ZW50aWFsOiBmYWxzZSB9KTtcblxuZXhwb3J0IGNvbnN0IF9fY3JlYXRlSWQgPSBpZEdlbmVyYXRvci5jcmVhdGVJZDtcbiIsCiAgICAiaW1wb3J0IHsgX19jcmVhdGVJZCB9IGZyb20gXCIuL3V0aWxzL2NyZWF0ZS1pZC50c1wiO1xuXG5leHBvcnQgdHlwZSBNaWxraW9TdGFyZ2F0ZU9wdGlvbnMgPSB7XG4gIHBvcnQ6IHtcbiAgICBwb3N0TWVzc2FnZTogKGRhdGE6IGFueSkgPT4gdm9pZDtcbiAgICBhZGRFdmVudExpc3RlbmVyOiAoZXZlbnQ6IFwibWVzc2FnZVwiLCBjYWxsYmFjazogKGV2ZW50OiB7IGRhdGE6IGFueSB9KSA9PiB2b2lkKSA9PiB2b2lkO1xuICAgIHJlbW92ZUV2ZW50TGlzdGVuZXI6IChldmVudDogXCJtZXNzYWdlXCIsIGNhbGxiYWNrOiAoZXZlbnQ6IHsgZGF0YTogYW55IH0pID0+IHZvaWQpID0+IHZvaWQ7XG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBNaXhpbjxULCBVPiA9IFUgJiBPbWl0PFQsIGtleW9mIFU+O1xuXG5leHBvcnQgdHlwZSBFeGVjdXRlT3B0aW9ucyA9IHtcbiAgcGFyYW1zPzogUmVjb3JkPGFueSwgYW55PjtcbiAgaGVhZGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIHR5cGU/OiBcImFjdGlvblwiIHwgXCJzdHJlYW1cIjtcbn07XG5cbmV4cG9ydCB0eXBlIEV4ZWN1dGVSZXN1bHRzT3B0aW9uID0geyBleGVjdXRlSWQ6IHN0cmluZyB9O1xuXG5leHBvcnQgdHlwZSBHZW5lcmF0b3JHZW5lcmljPFQ+ID0gVCBleHRlbmRzIEFzeW5jR2VuZXJhdG9yPGluZmVyIEk+ID8gSSA6IG5ldmVyO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlU3RhcmdhdGVXb3JrZXI8R2VuZXJhdGVkIGV4dGVuZHMgeyByb3V0ZVNjaGVtYTogYW55OyByZWplY3RDb2RlOiBhbnkgfT4oc3RhcmdhdGVPcHRpb25zOiBNaWxraW9TdGFyZ2F0ZU9wdGlvbnMpIHtcbiAgY29uc3QgY29ubmVjdCA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlciA9IChldmVudDogeyBkYXRhOiBhbnkgfSkgPT4ge1xuICAgICAgaWYgKGV2ZW50LmRhdGEgIT09IFwiUE9OR1wiKSByZXR1cm47XG4gICAgICBjbGVhckludGVydmFsKHRpbWVyKTtcbiAgICAgIHN0YXJnYXRlT3B0aW9ucy5wb3J0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIGhhbmRsZXIpO1xuICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICB9O1xuICAgIHN0YXJnYXRlT3B0aW9ucy5wb3J0LmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIGhhbmRsZXIpO1xuICAgIHN0YXJnYXRlT3B0aW9ucy5wb3J0LnBvc3RNZXNzYWdlKFwiUElOR1wiKTtcbiAgICBjb25zdCB0aW1lciA9IHNldEludGVydmFsKCgpID0+IHN0YXJnYXRlT3B0aW9ucy5wb3J0LnBvc3RNZXNzYWdlKFwiUElOR1wiKSwgNDIpO1xuICB9KTtcbiAgY29uc3Qgc3RhcmdhdGUgPSB7XG4gICAgYXN5bmMgZXhlY3V0ZTxQYXRoIGV4dGVuZHMga2V5b2YgR2VuZXJhdGVkW1wicm91dGVTY2hlbWFcIl0+KFxuICAgICAgcGF0aDogUGF0aCxcbiAgICAgIG9wdGlvbnM/OiBNaXhpbjxcbiAgICAgICAgRXhlY3V0ZU9wdGlvbnMsXG4gICAgICAgIHtcbiAgICAgICAgICBwYXJhbXM/OiBHZW5lcmF0ZWRbXCJyb3V0ZVNjaGVtYVwiXVtQYXRoXVtcInR5cGVzXCJdW1wicGFyYW1zXCJdO1xuICAgICAgICB9XG4gICAgICA+LFxuICAgICk6IFByb21pc2U8XG4gICAgICBHZW5lcmF0ZWRbXCJyb3V0ZVNjaGVtYVwiXVtQYXRoXVtcInR5cGVzXCJdW1wi8J+Qo1wiXSBleHRlbmRzIGJvb2xlYW5cbiAgICAgICAgPyAvLyBhY3Rpb25cbiAgICAgICAgICBbUGFydGlhbDxHZW5lcmF0ZWRbXCJyZWplY3RDb2RlXCJdPiwgbnVsbCwgRXhlY3V0ZVJlc3VsdHNPcHRpb25dIHwgW251bGwsIEdlbmVyYXRlZFtcInJvdXRlU2NoZW1hXCJdW1BhdGhdW1widHlwZXNcIl1bXCJyZXN1bHRcIl0sIEV4ZWN1dGVSZXN1bHRzT3B0aW9uXVxuICAgICAgICA6IC8vIHN0cmVhbVxuICAgICAgICAgIFtQYXJ0aWFsPEdlbmVyYXRlZFtcInJlamVjdENvZGVcIl0+LCBudWxsLCBFeGVjdXRlUmVzdWx0c09wdGlvbl0gfCBbbnVsbCwgQXN5bmNHZW5lcmF0b3I8W1BhcnRpYWw8R2VuZXJhdGVkW1wicmVqZWN0Q29kZVwiXT4sIG51bGxdIHwgW251bGwsIEdlbmVyYXRvckdlbmVyaWM8R2VuZXJhdGVkW1wicm91dGVTY2hlbWFcIl1bUGF0aF1bXCJ0eXBlc1wiXVtcInJlc3VsdFwiXT5dLCBFeGVjdXRlUmVzdWx0c09wdGlvbj5dXG4gICAgPiB7XG4gICAgICAvLyBiaW9tZS1pZ25vcmUgbGludC9zdXNwaWNpb3VzL25vQXN5bmNQcm9taXNlRXhlY3V0b3I6IDxleHBsYW5hdGlvbj5cbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGF3YWl0IGNvbm5lY3Q7XG4gICAgICAgIGNvbnN0IGV4ZWN1dGVJZCA9IF9fY3JlYXRlSWQoKTtcbiAgICAgICAgaWYgKG9wdGlvbnM/LnR5cGUgPT09IFwiYWN0aW9uXCIgfHwgIW9wdGlvbnM/LnR5cGUpIHtcbiAgICAgICAgICBjb25zdCBoYW5kbGVyID0gKGV2ZW50OiB7IGRhdGE6IGFueSB9KSA9PiB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGV2ZW50LmRhdGEgIT09IFwib2JqZWN0XCIpIHJldHVybjtcbiAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmV4ZWN1dGVJZCAhPT0gZXhlY3V0ZUlkKSByZXR1cm47XG4gICAgICAgICAgICBzdGFyZ2F0ZU9wdGlvbnMucG9ydC5yZW1vdmVFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLCBoYW5kbGVyKTtcbiAgICAgICAgICAgIGlmICghZXZlbnQuZGF0YS5zdWNjZXNzKSByZXNvbHZlKFtldmVudC5kYXRhLmVycm9yLCBudWxsLCB7IGV4ZWN1dGVJZCB9XSk7XG4gICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5zdWNjZXNzKSByZXNvbHZlKFtudWxsLCBldmVudC5kYXRhLmRhdGEsIHsgZXhlY3V0ZUlkIH1dIGFzIGFueSk7XG4gICAgICAgICAgfTtcbiAgICAgICAgICBzdGFyZ2F0ZU9wdGlvbnMucG9ydC5hZGRFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLCBoYW5kbGVyKTtcbiAgICAgICAgICBzdGFyZ2F0ZU9wdGlvbnMucG9ydC5wb3N0TWVzc2FnZSh7XG4gICAgICAgICAgICBleGVjdXRlSWQsXG4gICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgcGFyYW1zOiBvcHRpb25zPy5wYXJhbXMsXG4gICAgICAgICAgICBoZWFkZXJzOiBvcHRpb25zPy5oZWFkZXJzLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zPy50eXBlID09PSBcInN0cmVhbVwiKSB7XG4gICAgICAgICAgbGV0IGdlbmVyYXRvcjogUmV0dXJuVHlwZTx0eXBlb2YgY3JlYXRlQ29udHJvbGxhYmxlQXN5bmNHZW5lcmF0b3I+IHwgdW5kZWZpbmVkO1xuICAgICAgICAgIGNvbnNvbGUubG9nKDEpO1xuICAgICAgICAgIGNvbnN0IGhhbmRsZXIgPSAoZXZlbnQ6IHsgZGF0YTogYW55IH0pID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKDIsIEpTT04uc3RyaW5naWZ5KGV2ZW50LmRhdGEpKTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZXZlbnQuZGF0YSAhPT0gXCJvYmplY3RcIikgcmV0dXJuO1xuICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuZXhlY3V0ZUlkICE9PSBleGVjdXRlSWQpIHJldHVybjtcbiAgICAgICAgICAgIHN0YXJnYXRlT3B0aW9ucy5wb3J0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIGhhbmRsZXIpO1xuICAgICAgICAgICAgY29uc29sZS5sb2coMywgZXZlbnQuZGF0YSk7XG4gICAgICAgICAgICBpZiAoIWdlbmVyYXRvcikge1xuICAgICAgICAgICAgICBnZW5lcmF0b3IgPSBjcmVhdGVDb250cm9sbGFibGVBc3luY0dlbmVyYXRvcigpO1xuICAgICAgICAgICAgICBpZiAoIWV2ZW50LmRhdGEuc3VjY2VzcykgcmVzb2x2ZShbZXZlbnQuZGF0YS5lcnJvciwgbnVsbCwgeyBleGVjdXRlSWQgfV0pO1xuICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5zdWNjZXNzKSByZXNvbHZlKFtudWxsLCBnZW5lcmF0b3IuZ2VuZXJhdG9yLCB7IGV4ZWN1dGVJZCB9XSBhcyBhbnkpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coNCwgZXZlbnQuZGF0YSk7XG4gICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmRvbmUpIGdlbmVyYXRvci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgICBlbHNlIGlmIChldmVudC5kYXRhLnN1Y2Nlc3MpIGdlbmVyYXRvci5wdXNoKGV2ZW50LmRhdGEuZGF0YSk7XG4gICAgICAgICAgICAgIGVsc2UgaWYgKCFldmVudC5kYXRhLnN1Y2Nlc3MpIGdlbmVyYXRvci5lcnJvcihldmVudC5kYXRhLmRhdGEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgICAgc3RhcmdhdGVPcHRpb25zLnBvcnQuYWRkRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgaGFuZGxlcik7XG4gICAgICAgICAgc3RhcmdhdGVPcHRpb25zLnBvcnQucG9zdE1lc3NhZ2Uoe1xuICAgICAgICAgICAgZXhlY3V0ZUlkLFxuICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgIHBhcmFtczogb3B0aW9ucz8ucGFyYW1zLFxuICAgICAgICAgICAgaGVhZGVyczogb3B0aW9ucz8uaGVhZGVycyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSxcbiAgfTtcblxuICByZXR1cm4gc3RhcmdhdGU7XG59XG5cbnR5cGUgRGVmZXJyZWQ8VD4gPSB7XG4gIHJlc29sdmU6ICh2YWx1ZTogVCB8IFByb21pc2VMaWtlPFQ+KSA9PiB2b2lkO1xuICByZWplY3Q6IChyZWFzb24/OiBhbnkpID0+IHZvaWQ7XG59O1xuXG5mdW5jdGlvbiBjcmVhdGVDb250cm9sbGFibGVBc3luY0dlbmVyYXRvcjxUPigpOiB7XG4gIGdlbmVyYXRvcjogQXN5bmNHZW5lcmF0b3I8VD47XG4gIHB1c2g6ICh2YWx1ZTogVCkgPT4gdm9pZDtcbiAgY29tcGxldGU6IChyZXR1cm5WYWx1ZT86IFQpID0+IHZvaWQ7XG4gIGVycm9yOiAoZXJyb3I6IEVycm9yKSA9PiB2b2lkO1xufSB7XG4gIGNvbnN0IHF1ZXVlOiBBcnJheTx7IHZhbHVlPzogVDsgZG9uZT86IGJvb2xlYW47IGVycm9yPzogRXJyb3IgfT4gPSBbXTtcbiAgbGV0IGRlZmVycmVkOiBEZWZlcnJlZDxJdGVyYXRvclJlc3VsdDxUPj4gfCBudWxsID0gbnVsbDtcbiAgbGV0IGZpbmlzaGVkID0gZmFsc2U7XG5cbiAgY29uc3QgcHJvY2Vzc1F1ZXVlID0gKCkgPT4ge1xuICAgIGlmIChkZWZlcnJlZCAmJiBxdWV1ZS5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBpdGVtID0gcXVldWUuc2hpZnQoKSE7XG4gICAgICBpZiAoaXRlbS5lcnJvcikge1xuICAgICAgICBkZWZlcnJlZC5yZWplY3QoaXRlbS5lcnJvcik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkZWZlcnJlZC5yZXNvbHZlKHsgdmFsdWU6IGl0ZW0udmFsdWUhLCBkb25lOiBpdGVtLmRvbmUgfHwgZmFsc2UgfSk7XG4gICAgICB9XG4gICAgICBkZWZlcnJlZCA9IG51bGw7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGdlbmVyYXRvcjogQXN5bmNHZW5lcmF0b3I8VD4gPSB7XG4gICAgW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSgpIHtcbiAgICAgIHJldHVybiBnZW5lcmF0b3I7XG4gICAgfSxcblxuICAgIGFzeW5jIG5leHQoKTogUHJvbWlzZTxJdGVyYXRvclJlc3VsdDxUPj4ge1xuICAgICAgaWYgKGZpbmlzaGVkKSByZXR1cm4geyB2YWx1ZTogdW5kZWZpbmVkLCBkb25lOiB0cnVlIH07XG5cbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGRlZmVycmVkID0geyByZXNvbHZlLCByZWplY3QgfTtcbiAgICAgICAgcHJvY2Vzc1F1ZXVlKCk7XG4gICAgICB9KTtcbiAgICB9LFxuXG4gICAgYXN5bmMgcmV0dXJuKHZhbHVlPzogVCk6IFByb21pc2U8SXRlcmF0b3JSZXN1bHQ8VD4+IHtcbiAgICAgIGZpbmlzaGVkID0gdHJ1ZTtcbiAgICAgIHF1ZXVlLmxlbmd0aCA9IDA7XG4gICAgICByZXR1cm4geyB2YWx1ZSwgZG9uZTogdHJ1ZSB9O1xuICAgIH0sXG5cbiAgICBhc3luYyB0aHJvdyhlcnJvcj86IEVycm9yKTogUHJvbWlzZTxJdGVyYXRvclJlc3VsdDxUPj4ge1xuICAgICAgZmluaXNoZWQgPSB0cnVlO1xuICAgICAgcXVldWUubGVuZ3RoID0gMDtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChlcnJvcik7XG4gICAgfSxcbiAgfSBhcyBhbnk7XG5cbiAgcmV0dXJuIHtcbiAgICBnZW5lcmF0b3IsXG4gICAgcHVzaDogKHZhbHVlOiBUKSA9PiB7XG4gICAgICBpZiAoZmluaXNoZWQpIHJldHVybjtcbiAgICAgIHF1ZXVlLnB1c2goeyB2YWx1ZSB9KTtcbiAgICAgIHByb2Nlc3NRdWV1ZSgpO1xuICAgIH0sXG4gICAgY29tcGxldGU6ICh2YWx1ZT86IFQpID0+IHtcbiAgICAgIGlmIChmaW5pc2hlZCkgcmV0dXJuO1xuICAgICAgZmluaXNoZWQgPSB0cnVlO1xuICAgICAgcXVldWUucHVzaCh7IGRvbmU6IHRydWUsIHZhbHVlIH0pO1xuICAgICAgcHJvY2Vzc1F1ZXVlKCk7XG4gICAgfSxcbiAgICBlcnJvcjogKGVycjogRXJyb3IpID0+IHtcbiAgICAgIGlmIChmaW5pc2hlZCkgcmV0dXJuO1xuICAgICAgZmluaXNoZWQgPSB0cnVlO1xuICAgICAgcXVldWUucHVzaCh7IGVycm9yOiBlcnIgfSk7XG4gICAgICBwcm9jZXNzUXVldWUoKTtcbiAgICB9LFxuICB9O1xufVxuIgogIF0sCiAgIm1hcHBpbmdzIjogIjtBQU1BLFNBQVMsaUJBQWlCLENBQUMsU0FBNkI7QUFBQSxFQUN0RCxLQUFLLFFBQVE7QUFBQSxJQUFRLFFBQVEsU0FBUztBQUFBLEVBQ3RDLElBQUksUUFBUSxTQUFTO0FBQUEsSUFBRyxNQUFNLElBQUksTUFBTSxnQkFBZ0I7QUFBQSxFQUN4RCxJQUFJLFFBQVEsU0FBUztBQUFBLElBQUksTUFBTSxJQUFJLE1B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
|
|
228
|
+
//# debugId=C721E068E8FD011E64756E2164756E21
|
|
229
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi5cXHV0aWxzXFxjcmVhdGUtaWQudHMiLCAiLi5cXGluZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWwogICAgInR5cGUgSWRHZW5lcmF0b3JPcHRpb25zID0ge1xuICBsZW5ndGg/OiBudW1iZXI7XG4gIHRpbWVzdGFtcDogYm9vbGVhbjtcbiAgc2VxdWVudGlhbDogYm9vbGVhbjtcbn07XG5cbmZ1bmN0aW9uIGRlZmluZUlkR2VuZXJhdG9yKG9wdGlvbnM6IElkR2VuZXJhdG9yT3B0aW9ucykge1xuICBpZiAoIW9wdGlvbnMubGVuZ3RoKSBvcHRpb25zLmxlbmd0aCA9IDI0O1xuICBpZiAob3B0aW9ucy5sZW5ndGggPCAxKSB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIGxlbmd0aFwiKTtcbiAgaWYgKG9wdGlvbnMubGVuZ3RoID4gNjEpIHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgbGVuZ3RoXCIpO1xuICBpZiAob3B0aW9ucy50aW1lc3RhbXAgJiYgb3B0aW9ucy5sZW5ndGggPCA5KSB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIGxlbmd0aFwiKTtcbiAgbGV0IGxhc3RUaW1lID0gMDtcbiAgbGV0IGxhc3REZWNpbWFsID0gMG47XG4gIHJldHVybiB7XG4gICAgY3JlYXRlSWQoKSB7XG4gICAgICBsZXQgcmFuZExlbmd0aCA9IG9wdGlvbnMubGVuZ3RoITtcbiAgICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gICAgICBsZXQgaWQgPSBcIlwiO1xuICAgICAgaWYgKG9wdGlvbnMudGltZXN0YW1wKSB7XG4gICAgICAgIHJhbmRMZW5ndGggLT0gODtcbiAgICAgICAgaWQgPSBgJHtpZH0ke19fYmlnSW50VG9TdHJpbmcoQmlnSW50KG5vdykpLnBhZFN0YXJ0KDgsIFwiMFwiKX1gO1xuICAgICAgfVxuICAgICAgaWYgKG9wdGlvbnMuc2VxdWVudGlhbCAmJiBsYXN0VGltZSA9PT0gbm93KSB7XG4gICAgICAgIGlkID0gYCR7aWR9JHtfX2JpZ0ludFRvU3RyaW5nKCsrbGFzdERlY2ltYWwpLnBhZFN0YXJ0KDEsIFwiMFwiKX1gO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGFzdFRpbWUgPSBub3c7XG4gICAgICAgIGNvbnN0IG1pbiA9IDBuO1xuICAgICAgICBjb25zdCBtYXggPSBfX2dldE1heFZhbHVlKEJpZ0ludChyYW5kTGVuZ3RoKSk7XG4gICAgICAgIGxhc3REZWNpbWFsID0gX19zZWN1cmVSYW5kb21CaWdJbnQobWluLCBtYXgpO1xuICAgICAgICBpZCA9IGAke2lkfSR7X19iaWdJbnRUb1N0cmluZyhsYXN0RGVjaW1hbCkucGFkU3RhcnQocmFuZExlbmd0aCwgXCIwXCIpfWA7XG4gICAgICB9XG4gICAgICByZXR1cm4gaWQ7XG4gICAgfSxcbiAgICBnZXRJZFRpbWVzdGFtcChpZDogc3RyaW5nKSB7XG4gICAgICByZXR1cm4gb3B0aW9ucy50aW1lc3RhbXAgPyBOdW1iZXIoX19zdHJpbmdUb0JpZ0ludChpZC5zbGljZSgwLCA4KS5yZXBsYWNlQWxsKFwiMFwiLCBcIlwiKSkpIDogMDtcbiAgICB9LFxuICB9O1xufVxuXG5jb25zdCBFTkNPRElORyA9IFwiMDEyMzQ1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpcIjtcblxuZnVuY3Rpb24gX19zZWN1cmVSYW5kb21CaWdJbnQobWluOiBiaWdpbnQsIG1heDogYmlnaW50KTogYmlnaW50IHtcbiAgaWYgKG1pbiA+PSBtYXgpIHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgcmFuZ2VcIik7XG5cbiAgY29uc3QgcmFuZ2UgPSBtYXggLSBtaW4gKyAxbjtcbiAgY29uc3QgYnl0ZUNvdW50ID0gTWF0aC5jZWlsKE51bWJlcihCaWdJbnQocmFuZ2UudG9TdHJpbmcoMikubGVuZ3RoKSkgLyA4KTtcbiAgY29uc3QgZW50cm9weUJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkoYnl0ZUNvdW50KTtcblxuICBsZXQgcmFuZG9tVmFsdWU6IGJpZ2ludDtcbiAgZG8ge1xuICAgIGNyeXB0by5nZXRSYW5kb21WYWx1ZXMoZW50cm9weUJ5dGVzKTtcbiAgICByYW5kb21WYWx1ZSA9XG4gICAgICBCaWdJbnQoXG4gICAgICAgIGAweCR7QXJyYXkuZnJvbShlbnRyb3B5Qnl0ZXMpXG4gICAgICAgICAgLm1hcCgoYikgPT4gYi50b1N0cmluZygxNikucGFkU3RhcnQoMiwgXCIwXCIpKVxuICAgICAgICAgIC5qb2luKFwiXCIpfWAsXG4gICAgICApICUgcmFuZ2U7XG4gIH0gd2hpbGUgKHJhbmRvbVZhbHVlIDwgMG4pO1xuXG4gIHJldHVybiBtaW4gKyByYW5kb21WYWx1ZTtcbn1cblxuZnVuY3Rpb24gX19iaWdJbnRUb1N0cmluZyh2YWx1ZTogYmlnaW50KTogc3RyaW5nIHtcbiAgY29uc3QgYmFzZSA9IEJpZ0ludChFTkNPRElORy5sZW5ndGgpO1xuICBsZXQgcmVzdWx0ID0gXCJcIjtcbiAgbGV0IGN1cnJlbnQgPSB2YWx1ZTtcblxuICBpZiAoY3VycmVudCA9PT0gMG4pIHJldHVybiBFTkNPRElOR1swXTtcblxuICB3aGlsZSAoY3VycmVudCA+IDBuKSB7XG4gICAgY29uc3QgcmVtYWluZGVyID0gY3VycmVudCAlIGJhc2U7XG4gICAgcmVzdWx0ID0gRU5DT0RJTkdbTnVtYmVyKHJlbWFpbmRlcildICsgcmVzdWx0O1xuICAgIGN1cnJlbnQgPSBjdXJyZW50IC8gYmFzZTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBfX3N0cmluZ1RvQmlnSW50KHN0cjogc3RyaW5nKTogYmlnaW50IHtcbiAgY29uc3QgY2hhck1hcDogeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfSA9IHt9O1xuICBmb3IgKGxldCBpID0gMDsgaSA8IEVOQ09ESU5HLmxlbmd0aDsgaSsrKSB7XG4gICAgY2hhck1hcFtFTkNPRElOR1tpXV0gPSBpO1xuICB9XG5cbiAgY29uc3QgYmFzZSA9IEJpZ0ludChFTkNPRElORy5sZW5ndGgpO1xuICBsZXQgcmVzdWx0ID0gMG47XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBjaGFyID0gc3RyW2ldO1xuICAgIGlmICghKGNoYXIgaW4gY2hhck1hcCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBjaGFyYWN0ZXIgJyR7Y2hhcn0nIGluIGlucHV0IHN0cmluZ2ApO1xuICAgIH1cbiAgICBjb25zdCB2YWx1ZSA9IEJpZ0ludChjaGFyTWFwW2NoYXJdKTtcbiAgICByZXN1bHQgPSByZXN1bHQgKiBiYXNlICsgdmFsdWU7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBfX2dldE1heFZhbHVlKG46IGJpZ2ludCk6IGJpZ2ludCB7XG4gIHJldHVybiBCaWdJbnQoRU5DT0RJTkcubGVuZ3RoKSAqKiBuIC0gMW47XG59XG5cbmNvbnN0IGlkR2VuZXJhdG9yID0gZGVmaW5lSWRHZW5lcmF0b3IoeyBsZW5ndGg6IDI0LCB0aW1lc3RhbXA6IGZhbHNlLCBzZXF1ZW50aWFsOiBmYWxzZSB9KTtcblxuZXhwb3J0IGNvbnN0IF9fY3JlYXRlSWQgPSBpZEdlbmVyYXRvci5jcmVhdGVJZDtcbiIsCiAgICAiaW1wb3J0IHsgX19jcmVhdGVJZCB9IGZyb20gXCIuL3V0aWxzL2NyZWF0ZS1pZC50c1wiO1xuXG5leHBvcnQgdHlwZSBNaWxraW9TdGFyZ2F0ZU9wdGlvbnMgPSB7XG4gIHBvcnQ6IHtcbiAgICBwb3N0TWVzc2FnZTogKGRhdGE6IGFueSkgPT4gdm9pZDtcbiAgICBhZGRFdmVudExpc3RlbmVyOiAoZXZlbnQ6IFwibWVzc2FnZVwiLCBjYWxsYmFjazogKGV2ZW50OiB7IGRhdGE6IGFueSB9KSA9PiB2b2lkKSA9PiB2b2lkO1xuICAgIHJlbW92ZUV2ZW50TGlzdGVuZXI6IChldmVudDogXCJtZXNzYWdlXCIsIGNhbGxiYWNrOiAoZXZlbnQ6IHsgZGF0YTogYW55IH0pID0+IHZvaWQpID0+IHZvaWQ7XG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBNaXhpbjxULCBVPiA9IFUgJiBPbWl0PFQsIGtleW9mIFU+O1xuXG5leHBvcnQgdHlwZSBFeGVjdXRlT3B0aW9ucyA9IHtcbiAgcGFyYW1zPzogUmVjb3JkPGFueSwgYW55PjtcbiAgaGVhZGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIHR5cGU/OiBcImFjdGlvblwiIHwgXCJzdHJlYW1cIjtcbn07XG5cbmV4cG9ydCB0eXBlIEV4ZWN1dGVSZXN1bHRzT3B0aW9uID0geyBleGVjdXRlSWQ6IHN0cmluZyB9O1xuXG5leHBvcnQgdHlwZSBHZW5lcmF0b3JHZW5lcmljPFQ+ID0gVCBleHRlbmRzIEFzeW5jR2VuZXJhdG9yPGluZmVyIEk+ID8gSSA6IG5ldmVyO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlU3RhcmdhdGVXb3JrZXI8R2VuZXJhdGVkIGV4dGVuZHMgeyByb3V0ZVNjaGVtYTogYW55OyByZWplY3RDb2RlOiBhbnkgfT4oc3RhcmdhdGVPcHRpb25zOiBNaWxraW9TdGFyZ2F0ZU9wdGlvbnMpIHtcbiAgY29uc3QgY29ubmVjdCA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlciA9IChldmVudDogeyBkYXRhOiBhbnkgfSkgPT4ge1xuICAgICAgaWYgKGV2ZW50LmRhdGEgIT09IFwiUE9OR1wiKSByZXR1cm47XG4gICAgICBjbGVhckludGVydmFsKHRpbWVyKTtcbiAgICAgIHN0YXJnYXRlT3B0aW9ucy5wb3J0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIGhhbmRsZXIpO1xuICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICB9O1xuICAgIHN0YXJnYXRlT3B0aW9ucy5wb3J0LmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIGhhbmRsZXIpO1xuICAgIHN0YXJnYXRlT3B0aW9ucy5wb3J0LnBvc3RNZXNzYWdlKFwiUElOR1wiKTtcbiAgICBjb25zdCB0aW1lciA9IHNldEludGVydmFsKCgpID0+IHN0YXJnYXRlT3B0aW9ucy5wb3J0LnBvc3RNZXNzYWdlKFwiUElOR1wiKSwgNDIpO1xuICB9KTtcbiAgY29uc3Qgc3RhcmdhdGUgPSB7XG4gICAgYXN5bmMgZXhlY3V0ZTxQYXRoIGV4dGVuZHMga2V5b2YgR2VuZXJhdGVkW1wicm91dGVTY2hlbWFcIl0+KFxuICAgICAgcGF0aDogUGF0aCxcbiAgICAgIG9wdGlvbnM/OiBNaXhpbjxcbiAgICAgICAgRXhlY3V0ZU9wdGlvbnMsXG4gICAgICAgIHtcbiAgICAgICAgICBwYXJhbXM/OiBHZW5lcmF0ZWRbXCJyb3V0ZVNjaGVtYVwiXVtQYXRoXVtcInR5cGVzXCJdW1wicGFyYW1zXCJdO1xuICAgICAgICB9XG4gICAgICA+LFxuICAgICk6IFByb21pc2U8XG4gICAgICBHZW5lcmF0ZWRbXCJyb3V0ZVNjaGVtYVwiXVtQYXRoXVtcInR5cGVzXCJdW1wi8J+Qo1wiXSBleHRlbmRzIGJvb2xlYW5cbiAgICAgICAgPyAvLyBhY3Rpb25cbiAgICAgICAgICBbUGFydGlhbDxHZW5lcmF0ZWRbXCJyZWplY3RDb2RlXCJdPiwgbnVsbCwgRXhlY3V0ZVJlc3VsdHNPcHRpb25dIHwgW251bGwsIEdlbmVyYXRlZFtcInJvdXRlU2NoZW1hXCJdW1BhdGhdW1widHlwZXNcIl1bXCJyZXN1bHRcIl0sIEV4ZWN1dGVSZXN1bHRzT3B0aW9uXVxuICAgICAgICA6IC8vIHN0cmVhbVxuICAgICAgICAgIFtQYXJ0aWFsPEdlbmVyYXRlZFtcInJlamVjdENvZGVcIl0+LCBudWxsLCBFeGVjdXRlUmVzdWx0c09wdGlvbl0gfCBbbnVsbCwgQXN5bmNHZW5lcmF0b3I8W1BhcnRpYWw8R2VuZXJhdGVkW1wicmVqZWN0Q29kZVwiXT4sIG51bGxdIHwgW251bGwsIEdlbmVyYXRvckdlbmVyaWM8R2VuZXJhdGVkW1wicm91dGVTY2hlbWFcIl1bUGF0aF1bXCJ0eXBlc1wiXVtcInJlc3VsdFwiXT5dLCBFeGVjdXRlUmVzdWx0c09wdGlvbj5dXG4gICAgPiB7XG4gICAgICAvLyBiaW9tZS1pZ25vcmUgbGludC9zdXNwaWNpb3VzL25vQXN5bmNQcm9taXNlRXhlY3V0b3I6IDxleHBsYW5hdGlvbj5cbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGF3YWl0IGNvbm5lY3Q7XG4gICAgICAgIGNvbnN0IGV4ZWN1dGVJZCA9IF9fY3JlYXRlSWQoKTtcbiAgICAgICAgaWYgKG9wdGlvbnM/LnR5cGUgPT09IFwiYWN0aW9uXCIgfHwgIW9wdGlvbnM/LnR5cGUpIHtcbiAgICAgICAgICBjb25zdCBoYW5kbGVyID0gKGV2ZW50OiB7IGRhdGE6IGFueSB9KSA9PiB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGV2ZW50LmRhdGEgIT09IFwib2JqZWN0XCIpIHJldHVybjtcbiAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmV4ZWN1dGVJZCAhPT0gZXhlY3V0ZUlkKSByZXR1cm47XG4gICAgICAgICAgICBzdGFyZ2F0ZU9wdGlvbnMucG9ydC5yZW1vdmVFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLCBoYW5kbGVyKTtcbiAgICAgICAgICAgIGlmICghZXZlbnQuZGF0YS5zdWNjZXNzKSByZXNvbHZlKFtldmVudC5kYXRhLmVycm9yLCBudWxsLCB7IGV4ZWN1dGVJZCB9XSk7XG4gICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5zdWNjZXNzKSByZXNvbHZlKFtudWxsLCBldmVudC5kYXRhLmRhdGEsIHsgZXhlY3V0ZUlkIH1dIGFzIGFueSk7XG4gICAgICAgICAgfTtcbiAgICAgICAgICBzdGFyZ2F0ZU9wdGlvbnMucG9ydC5hZGRFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLCBoYW5kbGVyKTtcbiAgICAgICAgICBzdGFyZ2F0ZU9wdGlvbnMucG9ydC5wb3N0TWVzc2FnZSh7XG4gICAgICAgICAgICBleGVjdXRlSWQsXG4gICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgcGFyYW1zOiBvcHRpb25zPy5wYXJhbXMsXG4gICAgICAgICAgICBoZWFkZXJzOiBvcHRpb25zPy5oZWFkZXJzLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zPy50eXBlID09PSBcInN0cmVhbVwiKSB7XG4gICAgICAgICAgbGV0IGZsb3c6IFJldHVyblR5cGU8dHlwZW9mIGNyZWF0ZUZsb3c+IHwgdW5kZWZpbmVkO1xuICAgICAgICAgIGNvbnNvbGUubG9nKDEpO1xuICAgICAgICAgIGNvbnN0IGhhbmRsZXIgPSAoZXZlbnQ6IHsgZGF0YTogYW55IH0pID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKDIsIEpTT04uc3RyaW5naWZ5KGV2ZW50LmRhdGEpKTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZXZlbnQuZGF0YSAhPT0gXCJvYmplY3RcIikgcmV0dXJuO1xuICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuZXhlY3V0ZUlkICE9PSBleGVjdXRlSWQpIHJldHVybjtcbiAgICAgICAgICAgIHN0YXJnYXRlT3B0aW9ucy5wb3J0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIGhhbmRsZXIpO1xuICAgICAgICAgICAgY29uc29sZS5sb2coMywgZXZlbnQuZGF0YSk7XG4gICAgICAgICAgICBpZiAoIWZsb3cpIHtcbiAgICAgICAgICAgICAgZmxvdyA9IGNyZWF0ZUZsb3coKTtcbiAgICAgICAgICAgICAgaWYgKCFldmVudC5kYXRhLnN1Y2Nlc3MpIHJlc29sdmUoW2V2ZW50LmRhdGEuZXJyb3IsIG51bGwsIHsgZXhlY3V0ZUlkIH1dKTtcbiAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuc3VjY2VzcykgcmVzb2x2ZShbbnVsbCwgZmxvdywgeyBleGVjdXRlSWQgfV0gYXMgYW55KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKDQsIGV2ZW50LmRhdGEpO1xuICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5kb25lKSBmbG93LnJldHVybigpO1xuICAgICAgICAgICAgICBlbHNlIGlmIChldmVudC5kYXRhLnN1Y2Nlc3MpIGZsb3cuZW1pdChldmVudC5kYXRhLmRhdGEpO1xuICAgICAgICAgICAgICBlbHNlIGlmICghZXZlbnQuZGF0YS5zdWNjZXNzKSBmbG93LnRocm93KGV2ZW50LmRhdGEuZGF0YSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfTtcbiAgICAgICAgICBzdGFyZ2F0ZU9wdGlvbnMucG9ydC5hZGRFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLCBoYW5kbGVyKTtcbiAgICAgICAgICBzdGFyZ2F0ZU9wdGlvbnMucG9ydC5wb3N0TWVzc2FnZSh7XG4gICAgICAgICAgICBleGVjdXRlSWQsXG4gICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgcGFyYW1zOiBvcHRpb25zPy5wYXJhbXMsXG4gICAgICAgICAgICBoZWFkZXJzOiBvcHRpb25zPy5oZWFkZXJzLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9LFxuICB9O1xuXG4gIHJldHVybiBzdGFyZ2F0ZTtcbn1cblxudHlwZSBEZWZlcnJlZDxUPiA9IHtcbiAgcmVzb2x2ZTogKHZhbHVlOiBUIHwgUHJvbWlzZUxpa2U8VD4pID0+IHZvaWQ7XG4gIHJlamVjdDogKHJlYXNvbj86IGFueSkgPT4gdm9pZDtcbn07XG5cbmV4cG9ydCB0eXBlIE1pbGtpb0Zsb3c8VCwgVFJldHVybiA9IGFueSwgVE5leHQgPSBhbnk+ID0ge1xuICBlbWl0OiAoZmxvdzogVCkgPT4gdm9pZDtcbiAgW1N5bWJvbC5hc3luY0l0ZXJhdG9yXTogKCkgPT4gTWlsa2lvRmxvdzxUPjtcbiAgbmV4dCguLi5bdmFsdWVdOiBbXSB8IFtUTmV4dF0pOiBQcm9taXNlPEl0ZXJhdG9yUmVzdWx0PFQsIFRSZXR1cm4+PjtcbiAgcmV0dXJuKCk6IFByb21pc2U8SXRlcmF0b3JSZXN1bHQ8VCwgVFJldHVybj4+O1xuICB0aHJvdyhlcnJvcjogYW55KTogUHJvbWlzZTxJdGVyYXRvclJlc3VsdDxULCBUUmV0dXJuPj47XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRmxvdzxUPigpOiBNaWxraW9GbG93PFQ+IHtcbiAgbGV0IHN0YXR1czogXCJwZW5kaW5nXCIgfCBcInJlc29sdmVkXCIgfCBcInJlamVjdGVkXCIgPSBcInBlbmRpbmdcIjtcbiAgY29uc3QgZmxvd3M6IEFycmF5PHtcbiAgICBibGFuazogYm9vbGVhbjtcbiAgICBwcm9taXNlOiBQcm9taXNlPFQ+O1xuICAgIHJlc29sdmU6ICh2YWx1ZT86IFQgfCBQcm9taXNlTGlrZTxUPikgPT4gdm9pZDtcbiAgICByZWplY3Q6IChyZWFzb24/OiBhbnkpID0+IHZvaWQ7XG4gIH0+ID0gW107XG5cbiAgY29uc3QgaXRlcmF0b3IgPSB7XG4gICAgZW1pdDogKGZsb3c6IFQpID0+IHtcbiAgICAgIGlmIChmbG93cy5hdCgtMSk/LmJsYW5rID09PSB0cnVlKSB7XG4gICAgICAgIGNvbnN0IGl0ZW0gPSBmbG93cy5hdCgtMSkhO1xuICAgICAgICBpdGVtLmJsYW5rID0gZmFsc2U7XG4gICAgICAgIGl0ZW0ucmVzb2x2ZShmbG93KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgcmVzb2x2ZXJzID0gUHJvbWlzZS53aXRoUmVzb2x2ZXJzPFQ+KCk7XG4gICAgICAgIHJlc29sdmVycy5yZXNvbHZlKGZsb3cpO1xuICAgICAgICBmbG93cy5wdXNoKHsgLi4ucmVzb2x2ZXJzLCBibGFuazogZmFsc2UgfSBhcyBhbnkpO1xuICAgICAgfVxuICAgIH0sXG4gICAgLi4uKHtcbiAgICAgIGFzeW5jIG5leHQoKTogUHJvbWlzZTxJdGVyYXRvclJlc3VsdDxUPj4ge1xuICAgICAgICBpZiAoc3RhdHVzICE9PSBcInBlbmRpbmdcIikgcmV0dXJuIHsgZG9uZTogdHJ1ZSwgdmFsdWU6IG51bGwgfTtcbiAgICAgICAgaWYgKGZsb3dzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIGNvbnN0IHJlc29sdmVycyA9IFByb21pc2Uud2l0aFJlc29sdmVyczxUPigpO1xuICAgICAgICAgIGZsb3dzLnB1c2goeyAuLi5yZXNvbHZlcnMsIGJsYW5rOiB0cnVlIH0gYXMgYW55KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBmbG93ID0gZmxvd3MuYXQoMCkhO1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBmbG93LnByb21pc2U7XG4gICAgICAgIGZsb3dzLnNoaWZ0KCk7XG4gICAgICAgIHJldHVybiB7IGRvbmU6IHN0YXR1cyAhPT0gXCJwZW5kaW5nXCIsIHZhbHVlOiByZXN1bHQgfTtcbiAgICAgIH0sXG4gICAgICBhc3luYyByZXR1cm4oKTogUHJvbWlzZTxJdGVyYXRvclJlc3VsdDx2b2lkPj4ge1xuICAgICAgICBzdGF0dXMgPSBcInJlc29sdmVkXCI7XG4gICAgICAgIGZvciAoY29uc3QgZmxvdyBvZiBmbG93cykge1xuICAgICAgICAgIGZsb3cuYmxhbmsgPSBmYWxzZTtcbiAgICAgICAgICBmbG93LnJlc29sdmUodW5kZWZpbmVkKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBkb25lOiB0cnVlLCB2YWx1ZTogbnVsbCB9O1xuICAgICAgfSxcbiAgICAgIGFzeW5jIHRocm93KGVycjogYW55KTogUHJvbWlzZTxJdGVyYXRvclJlc3VsdDx2b2lkPj4ge1xuICAgICAgICBzdGF0dXMgPSBcInJlamVjdGVkXCI7XG4gICAgICAgIGlmIChmbG93cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICBjb25zdCByZXNvbHZlcnMgPSBQcm9taXNlLndpdGhSZXNvbHZlcnM8VD4oKTtcbiAgICAgICAgICBmbG93cy5wdXNoKHsgLi4ucmVzb2x2ZXJzLCBibGFuazogdHJ1ZSB9IGFzIGFueSk7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBmbG93IG9mIGZsb3dzKSB7XG4gICAgICAgICAgZmxvdy5ibGFuayA9IGZhbHNlO1xuICAgICAgICAgIGZsb3cucmVqZWN0KGVycik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgZG9uZTogdHJ1ZSwgdmFsdWU6IG51bGwgfTtcbiAgICAgIH0sXG4gICAgfSBzYXRpc2ZpZXMgQXN5bmNJdGVyYXRvcjx1bmtub3duPiksXG4gICAgW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSgpIHtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH0sXG4gIH07XG5cbiAgcmV0dXJuIGl0ZXJhdG9yIGFzIE1pbGtpb0Zsb3c8VD47XG59XG4iCiAgXSwKICAibWFwcGluZ3MiOiAiO0FBTUEsU0FBUyxpQkFBaUIsQ0FBQyxTQUE2QjtBQUFBLEVBQ3RELEtBQUssUUFBUTtBQUFBLElBQVEsUUFBUSxTQUFTO0FBQUEsRUFDdEMsSUFBSSxRQUFRLFNBQVM7QUFBQSxJQUFHLE1BQU0sSUFBSSxNQUFNLGdCQUFnQjtBQUFBLEVBQ3hELElBQUksUUFBUSxTQUFTO0FBQUEsSUFBSSxNQUFNLElBQUksTUFBTSxnQkFBZ0I7QUFBQSxFQUN6RCxJQUFJLFFBQVEsYUFBYSxRQUFRLFNBQVM7QUFBQSxJQUFHLE1BQU0sSUFBSSxNQUFNLGdCQUFnQjtBQUFBLEVBQzdFLElBQUksV0FBVztBQUFBLEVBQ2YsSUFBSSxjQUFjO0FBQUEsRUFDbEIsT0FBTztBQUFBLElBQ0wsUUFBUSxHQUFHO0FBQUEsTUFDVCxJQUFJLGFBQWEsUUFBUTtBQUFBLE1BQ3pCLE1BQU0sTUFBTSxLQUFLLElBQUk7QUFBQSxNQUNyQixJQUFJLEtBQUs7QUFBQSxNQUNULElBQUksUUFBUSxXQUFXO0FBQUEsUUFDckIsY0FBYztBQUFBLFFBQ2QsS0FBSyxHQUFHLEtBQUssaUJBQWlCLE9BQU8sR0FBRyxDQUFDLEVBQUUsU0FBUyxHQUFHLEdBQUc7QUFBQSxNQUM1RDtBQUFBLE1BQ0EsSUFBSSxRQUFRLGNBQWMsYUFBYSxLQUFLO0FBQUEsUUFDMUMsS0FBSyxHQUFHLEtBQUssbUJBQW1CLFdBQVcsRUFBRSxTQUFTLEdBQUcsR0FBRztBQUFBLE1BQzlELEVBQU87QUFBQSxRQUNMLFdBQVc7QUFBQSxRQUNYLE1BQU0sTUFB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LE9BQU8sRUFBRSxNQUFNLE1BQU0sT0FBTyxLQUFLO0FBQUE7QUFBQSxXQUU3QixNQUFLLENBQUMsS0FBeUM7QUFBQSxRQUNuRCxTQUFTO0FBQUEsUUFDVCxJQUFJLE1BQU0sV0FBVyxHQUFHO0FBQUEsVUFDdEIsTUFBTSxZQUFZLFFBQVEsY0FBaUI7QUFBQSxVQUMzQyxNQUFNLEtBQUssS0FBSyxXQUFXLE9BQU8sS0FBSyxDQUFRO0FBQUEsUUFDakQ7QUFBQSxRQUNBLFdBQVcsUUFBUSxPQUFPO0FBQUEsVUFDeEIsS0FBSyxRQUFRO0FBQUEsVUFDYixLQUFLLE9BQU8sR0FBRztBQUFBLFFBQ2pCO0FBQUEsUUFDQSxPQUFPLEVBQUUsTUFBTSxNQUFNLE9BQU8sS0FBSztBQUFBO0FBQUEsSUFFckM7QUFBQSxLQUNDLE9BQU8sY0FBYyxHQUFHO0FBQUEsTUFDdkIsT0FBTztBQUFBO0FBQUEsRUFFWDtBQUFBLEVBRUEsT0FBTztBQUFBOyIsCiAgImRlYnVnSWQiOiAiQzcyMUUwNjhFOEZEMDExRTY0NzU2RTIxNjQ3NTZFMjEiLAogICJuYW1lcyI6IFtdCn0=
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@milkio/stargate-worker","version":"1.0.0-beta.
|
|
1
|
+
{"name":"@milkio/stargate-worker","version":"1.0.0-beta.35","type":"module","module":"./index.js","types":"./index.d.ts","dependencies":{}}
|