obsidian-dev-utils 12.0.1-beta.10 → 12.0.1-beta.12
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/dist/lib/Async.cjs +9 -7
- package/dist/lib/Async.d.ts +2 -1
- package/dist/lib/Debug.cjs +22 -9
- package/dist/lib/Debug.d.ts +6 -2
- package/dist/lib/Error.cjs +3 -3
- package/dist/lib/Error.d.ts +2 -1
- package/dist/lib/obsidian/Logger.cjs +11 -8
- package/dist/lib/obsidian/Queue.cjs +6 -5
- package/dist/lib/obsidian/Queue.d.ts +4 -2
- package/package.json +1 -1
package/dist/lib/Async.cjs
CHANGED
@@ -44,6 +44,7 @@ __export(Async_exports, {
|
|
44
44
|
module.exports = __toCommonJS(Async_exports);
|
45
45
|
var import_Debug = require('./Debug.cjs');
|
46
46
|
var import_Error = require('./Error.cjs');
|
47
|
+
const retryWithTimeoutDebugger = (0, import_Debug.getDebugger)("obsidian-dev-utils:Async:retryWithTimeout");
|
47
48
|
async function addErrorHandler(asyncFn) {
|
48
49
|
try {
|
49
50
|
await asyncFn();
|
@@ -75,8 +76,8 @@ function invokeAsyncSafely(asyncFn) {
|
|
75
76
|
function marksAsTerminateRetry(error) {
|
76
77
|
return Object.assign(error, { __terminateRetry: true });
|
77
78
|
}
|
78
|
-
async function retryWithTimeout(fn, retryOptions = {}) {
|
79
|
-
|
79
|
+
async function retryWithTimeout(fn, retryOptions = {}, stackTrace) {
|
80
|
+
stackTrace ??= (0, import_Error.getStackTrace)(1);
|
80
81
|
const DEFAULT_RETRY_OPTIONS = {
|
81
82
|
retryDelayInMilliseconds: 100,
|
82
83
|
shouldRetryOnError: false,
|
@@ -100,14 +101,15 @@ async function retryWithTimeout(fn, retryOptions = {}) {
|
|
100
101
|
}
|
101
102
|
if (isSuccess) {
|
102
103
|
if (attempt > 1) {
|
103
|
-
(
|
104
|
+
retryWithTimeoutDebugger(`Retry completed successfully after ${attempt.toString()} attempts`);
|
105
|
+
retryWithTimeoutDebugger.printStackTrace(stackTrace);
|
104
106
|
}
|
105
107
|
return;
|
106
108
|
}
|
107
|
-
(
|
108
|
-
fn
|
109
|
-
stackTrace
|
109
|
+
retryWithTimeoutDebugger(`Retry attempt ${attempt.toString()} completed unsuccessfully. Trying again in ${fullOptions.retryDelayInMilliseconds.toString()} milliseconds`, {
|
110
|
+
fn
|
110
111
|
});
|
112
|
+
retryWithTimeoutDebugger.printStackTrace(stackTrace);
|
111
113
|
await sleep(fullOptions.retryDelayInMilliseconds);
|
112
114
|
}
|
113
115
|
});
|
@@ -173,4 +175,4 @@ async function toArray(iter) {
|
|
173
175
|
timeout,
|
174
176
|
toArray
|
175
177
|
});
|
176
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL0FzeW5jLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvbiBBc3luY1xuICogQ29udGFpbnMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIGFzeW5jaHJvbm91cyBvcGVyYXRpb25zLlxuICovXG5cbmltcG9ydCB7IGdldERlYnVnZ2VyIH0gZnJvbSAnLi9EZWJ1Zy50cyc7XG5pbXBvcnQge1xuICBlbWl0QXN5bmNFcnJvckV2ZW50LFxuICBnZXRTdGFja1RyYWNlLFxuICBwcmludEVycm9yXG59IGZyb20gJy4vRXJyb3IudHMnO1xuXG4vKipcbiAqIEEgdHlwZSByZXByZXNlbnRpbmcgYSB2YWx1ZSB0aGF0IGNhbiBlaXRoZXIgYmUgYSBkaXJlY3QgdmFsdWUgb3IgYSBQcm9taXNlIHJlc29sdmluZyB0byB0aGF0IHZhbHVlLlxuICogQHR5cGVQYXJhbSBUIC0gVGhlIHR5cGUgb2YgdGhlIHZhbHVlLlxuICovXG5leHBvcnQgdHlwZSBNYXliZVByb21pc2U8VD4gPSBQcm9taXNlPFQ+IHwgVDtcblxuLyoqXG4gKiBPcHRpb25zIGZvciBjb25maWd1cmluZyB0aGUgcmV0cnkgYmVoYXZpb3IuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmV0cnlPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBhYm9ydCBzaWduYWwgdG8gY2FuY2VsIHRoZSByZXRyeSBvcGVyYXRpb24uXG4gICAqL1xuICBhYm9ydFNpZ25hbD86IEFib3J0U2lnbmFsO1xuXG4gIC8qKlxuICAgKiBUaGUgZGVsYXkgaW4gbWlsbGlzZWNvbmRzIGJldHdlZW4gcmV0cnkgYXR0ZW1wdHMuXG4gICAqL1xuICByZXRyeURlbGF5SW5NaWxsaXNlY29uZHM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcmV0cnkgdGhlIGZ1bmN0aW9uIG9uIGVycm9yLlxuICAgKi9cbiAgc2hvdWxkUmV0cnlPbkVycm9yPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIG1heGltdW0gdGltZSBpbiBtaWxsaXNlY29uZHMgdG8gd2FpdCBiZWZvcmUgZ2l2aW5nIHVwIG9uIHJldHJ5aW5nLlxuICAgKi9cbiAgdGltZW91dEluTWlsbGlzZWNvbmRzPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIEEgbWFya2VyIGludGVyZmFjZSB0byBpbmRpY2F0ZSB0aGF0IGFuIGVycm9yIHNob3VsZCB0ZXJtaW5hdGUgcmV0cnkgbG9naWMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGVybWluYXRlUmV0cnkge1xuICAvKipcbiAgICogQSBtYXJrZXIgcHJvcGVydHkgdG8gaW5kaWNhdGUgdGhhdCBhbiBlcnJvciBzaG91bGQgdGVybWluYXRlIHJldHJ5IGxvZ2ljLlxuICAgKi9cbiAgX190ZXJtaW5hdGVSZXRyeTogdHJ1ZTtcbn1cblxuLyoqXG4gKiBBZGRzIGFuIGVycm9yIGhhbmRsZXIgdG8gYSBQcm9taXNlIHRoYXQgY2F0Y2hlcyBhbnkgZXJyb3JzIGFuZCBlbWl0cyBhbiBhc3luYyBlcnJvciBldmVudC5cbiAqXG4gKiBAcGFyYW0gYXN5bmNGbiAtIFRoZSBhc3luY2hyb25vdXMgZnVuY3Rpb24gdG8gYWRkIGFuIGVycm9yIGhhbmRsZXIgdG8uXG4gKiBAcmV0dXJucyBBIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBhc3luY2hyb25vdXMgZnVuY3Rpb24gY29tcGxldGVzIG9yIGVtaXRzIGFzeW5jIGVycm9yIGV2ZW50LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYWRkRXJyb3JIYW5kbGVyKGFzeW5jRm46ICgpID0+IFByb21pc2U8dW5rbm93bj4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgdHJ5IHtcbiAgICBhd2FpdCBhc3luY0ZuKCk7XG4gIH0gY2F0Y2ggKGFzeW5jRXJyb3IpIHtcbiAgICBlbWl0QXN5bmNFcnJvckV2ZW50KGFzeW5jRXJyb3IpO1xuICB9XG59XG5cbi8qKlxuICogRmlsdGVycyBhbiBhcnJheSBhc3luY2hyb25vdXNseSwga2VlcGluZyBvbmx5IHRoZSBlbGVtZW50cyB0aGF0IHNhdGlzZnkgdGhlIHByb3ZpZGVkIHByZWRpY2F0ZSBmdW5jdGlvbi5cbiAqXG4gKiBAdHlwZVBhcmFtIFQgLSBUaGUgdHlwZSBvZiBlbGVtZW50cyBpbiB0aGUgaW5wdXQgYXJyYXkuXG4gKiBAcGFyYW0gYXJyIC0gVGhlIGFycmF5IHRvIGZpbHRlci5cbiAqIEBwYXJhbSBwcmVkaWNhdGUgLSBUaGUgcHJlZGljYXRlIGZ1bmN0aW9uIHRvIHRlc3QgZWFjaCBlbGVtZW50LlxuICogQHJldHVybnMgQSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCBhbiBhcnJheSBvZiBlbGVtZW50cyB0aGF0IHNhdGlzZnkgdGhlIHByZWRpY2F0ZSBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFzeW5jRmlsdGVyPFQ+KGFycjogVFtdLCBwcmVkaWNhdGU6ICh2YWx1ZTogVCwgaW5kZXg6IG51bWJlciwgYXJyYXk6IFRbXSkgPT4gTWF5YmVQcm9taXNlPGJvb2xlYW4+KTogUHJvbWlzZTxUW10+IHtcbiAgY29uc3QgcHJlZGljYXRlUmVzdWx0cyA9IGF3YWl0IGFzeW5jTWFwKGFyciwgcHJlZGljYXRlKTtcbiAgcmV0dXJuIGFyci5maWx0ZXIoKF8sIGluZGV4KSA9PiBwcmVkaWNhdGVSZXN1bHRzW2luZGV4XSk7XG59XG5cbi8qKlxuICogTWFwcyBvdmVyIGFuIGFycmF5IGFzeW5jaHJvbm91c2x5LCBhcHBseWluZyB0aGUgcHJvdmlkZWQgY2FsbGJhY2sgZnVuY3Rpb24gdG8gZWFjaCBlbGVtZW50LCBhbmQgdGhlbiBmbGF0dGVucyB0aGUgcmVzdWx0cyBpbnRvIGEgc2luZ2xlIGFycmF5LlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIGVsZW1lbnRzIGluIHRoZSBpbnB1dCBhcnJheS5cbiAqIEB0eXBlUGFyYW0gVSAtIFRoZSB0eXBlIG9mIGVsZW1lbnRzIGluIHRoZSBvdXRwdXQgYXJyYXkuXG4gKiBAcGFyYW0gYXJyIC0gVGhlIGFycmF5IHRvIG1hcCBvdmVyIGFuZCBmbGF0dGVuLlxuICogQHBhcmFtIGNhbGxiYWNrIC0gVGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGFwcGx5IHRvIGVhY2ggZWxlbWVudC5cbiAqIEByZXR1cm5zIEEgUHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggYSBmbGF0dGVuZWQgYXJyYXkgb2YgdGhlIHJlc3VsdHMgb2YgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXN5bmNGbGF0TWFwPFQsIFU+KGFycjogVFtdLCBjYWxsYmFjazogKHZhbHVlOiBULCBpbmRleDogbnVtYmVyLCBhcnJheTogVFtdKSA9PiBNYXliZVByb21pc2U8VVtdPik6IFByb21pc2U8VVtdPiB7XG4gIHJldHVybiAoYXdhaXQgYXN5bmNNYXAoYXJyLCBjYWxsYmFjaykpLmZsYXQoKTtcbn1cblxuLyoqXG4gKiBNYXBzIG92ZXIgYW4gYXJyYXkgYXN5bmNocm9ub3VzbHksIGFwcGx5aW5nIHRoZSBwcm92aWRlZCBjYWxsYmFjayBmdW5jdGlvbiB0byBlYWNoIGVsZW1lbnQuXG4gKlxuICogQHR5cGVQYXJhbSBUIC0gVGhlIHR5cGUgb2YgZWxlbWVudHMgaW4gdGhlIGlucHV0IGFycmF5LlxuICogQHR5cGVQYXJhbSBVIC0gVGhlIHR5cGUgb2YgZWxlbWVudHMgaW4gdGhlIG91dHB1dCBhcnJheS5cbiAqIEBwYXJhbSBhcnIgLSBUaGUgYXJyYXkgdG8gbWFwIG92ZXIuXG4gKiBAcGFyYW0gY2FsbGJhY2sgLSBUaGUgY2FsbGJhY2sgZnVuY3Rpb24gdG8gYXBwbHkgdG8gZWFjaCBlbGVtZW50LlxuICogQHJldHVybnMgQSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCBhbiBhcnJheSBvZiB0aGUgcmVzdWx0cyBvZiB0aGUgY2FsbGJhY2sgZnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhc3luY01hcDxULCBVPihhcnI6IFRbXSwgY2FsbGJhY2s6ICh2YWx1ZTogVCwgaW5kZXg6IG51bWJlciwgYXJyYXk6IFRbXSkgPT4gTWF5YmVQcm9taXNlPFU+KTogUHJvbWlzZTxVW10+IHtcbiAgcmV0dXJuIGF3YWl0IFByb21pc2UuYWxsKGFyci5tYXAoY2FsbGJhY2spKTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBhc3luY2hyb25vdXMgZnVuY3Rpb24gdG8gYSBzeW5jaHJvbm91cyBvbmUgYnkgYXV0b21hdGljYWxseSBoYW5kbGluZyB0aGUgUHJvbWlzZSByZWplY3Rpb24uXG4gKlxuICogQHR5cGVQYXJhbSBBcmdzIC0gVGhlIHR5cGVzIG9mIHRoZSBhcmd1bWVudHMgdGhlIGZ1bmN0aW9uIGFjY2VwdHMuXG4gKiBAcGFyYW0gYXN5bmNGdW5jIC0gVGhlIGFzeW5jaHJvbm91cyBmdW5jdGlvbiB0byBjb252ZXJ0LlxuICogQHJldHVybnMgQSBmdW5jdGlvbiB0aGF0IHdyYXBzIHRoZSBhc3luY2hyb25vdXMgZnVuY3Rpb24gaW4gYSBzeW5jaHJvbm91cyBpbnRlcmZhY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0QXN5bmNUb1N5bmM8QXJncyBleHRlbmRzIHVua25vd25bXT4oYXN5bmNGdW5jOiAoLi4uYXJnczogQXJncykgPT4gUHJvbWlzZTx1bmtub3duPik6ICguLi5hcmdzOiBBcmdzKSA9PiB2b2lkIHtcbiAgcmV0dXJuICguLi5hcmdzOiBBcmdzKTogdm9pZCA9PiB7XG4gICAgaW52b2tlQXN5bmNTYWZlbHkoKCkgPT4gYXN5bmNGdW5jKC4uLmFyZ3MpKTtcbiAgfTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhIHN5bmNocm9ub3VzIGZ1bmN0aW9uIHRvIGFuIGFzeW5jaHJvbm91cyBvbmUgYnkgd3JhcHBpbmcgaXQgaW4gYSBQcm9taXNlLlxuICpcbiAqIEB0eXBlUGFyYW0gQXJncyAtIFRoZSB0eXBlcyBvZiB0aGUgYXJndW1lbnRzIHRoZSBmdW5jdGlvbiBhY2NlcHRzLlxuICogQHR5cGVQYXJhbSBSZXN1bHQgLSBUaGUgdHlwZSBvZiB0aGUgZnVuY3Rpb24ncyByZXR1cm4gdmFsdWUuXG4gKiBAcGFyYW0gc3luY0ZuIC0gVGhlIHN5bmNocm9ub3VzIGZ1bmN0aW9uIHRvIGNvbnZlcnQuXG4gKiBAcmV0dXJucyBBIGZ1bmN0aW9uIHRoYXQgd3JhcHMgdGhlIHN5bmNocm9ub3VzIGZ1bmN0aW9uIGluIGFuIGFzeW5jaHJvbm91cyBpbnRlcmZhY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0U3luY1RvQXN5bmM8QXJncyBleHRlbmRzIHVua25vd25bXSwgUmVzdWx0PihzeW5jRm46ICguLi5hcmdzOiBBcmdzKSA9PiBSZXN1bHQpOiAoLi4uYXJnczogQXJncykgPT4gUHJvbWlzZTxSZXN1bHQ+IHtcbiAgcmV0dXJuICguLi5hcmdzOiBBcmdzKTogUHJvbWlzZTxSZXN1bHQ+ID0+IFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4gc3luY0ZuKC4uLmFyZ3MpKTtcbn1cblxuLyoqXG4gKiBJbnZva2VzIGEgUHJvbWlzZSBhbmQgc2FmZWx5IGhhbmRsZXMgYW55IGVycm9ycyBieSBjYXRjaGluZyB0aGVtIGFuZCBlbWl0dGluZyBhbiBhc3luYyBlcnJvciBldmVudC5cbiAqXG4gKiBAcGFyYW0gYXN5bmNGbiAtIFRoZSBhc3luY2hyb25vdXMgZnVuY3Rpb24gdG8gaW52b2tlIHNhZmVseS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGludm9rZUFzeW5jU2FmZWx5KGFzeW5jRm46ICgpID0+IFByb21pc2U8dW5rbm93bj4pOiB2b2lkIHtcbiAgdm9pZCBhZGRFcnJvckhhbmRsZXIoYXN5bmNGbik7XG59XG5cbi8qKlxuICogTWFya3MgYW4gZXJyb3IgdG8gdGVybWluYXRlIHJldHJ5IGxvZ2ljLlxuICpcbiAqIEBwYXJhbSBlcnJvciAtIFRoZSBlcnJvciB0byBtYXJrIHRvIHRlcm1pbmF0ZSByZXRyeSBsb2dpYy5cbiAqIEByZXR1cm5zIEFuIGVycm9yIHRoYXQgc2hvdWxkIHRlcm1pbmF0ZSByZXRyeSBsb2dpYy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1hcmtzQXNUZXJtaW5hdGVSZXRyeTxURXJyb3IgZXh0ZW5kcyBFcnJvcj4oZXJyb3I6IFRFcnJvcik6IFRlcm1pbmF0ZVJldHJ5ICYgVEVycm9yIHtcbiAgcmV0dXJuIE9iamVjdC5hc3NpZ24oZXJyb3IsIHsgX190ZXJtaW5hdGVSZXRyeTogdHJ1ZSB9IGFzIFRlcm1pbmF0ZVJldHJ5KTtcbn1cblxuLyoqXG4gKiBSZXRyaWVzIHRoZSBwcm92aWRlZCBmdW5jdGlvbiB1bnRpbCBpdCByZXR1cm5zIHRydWUgb3IgdGhlIHRpbWVvdXQgaXMgcmVhY2hlZC5cbiAqXG4gKiBAcGFyYW0gZm4gLSBUaGUgZnVuY3Rpb24gdG8gcmV0cnkuXG4gKiBAcGFyYW0gcmV0cnlPcHRpb25zIC0gT3B0aW9uYWwgcGFyYW1ldGVycyB0byBjb25maWd1cmUgdGhlIHJldHJ5IGJlaGF2aW9yLlxuICogQHJldHVybnMgQSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgZnVuY3Rpb24gcmV0dXJucyB0cnVlIG9yIHJlamVjdHMgd2hlbiB0aGUgdGltZW91dCBpcyByZWFjaGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmV0cnlXaXRoVGltZW91dChmbjogKCkgPT4gTWF5YmVQcm9taXNlPGJvb2xlYW4+LCByZXRyeU9wdGlvbnM6IFJldHJ5T3B0aW9ucyA9IHt9KTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHN0YWNrVHJhY2UgPSBnZXRTdGFja1RyYWNlKCk7XG4gIGNvbnN0IERFRkFVTFRfUkVUUllfT1BUSU9OUyA9IHtcbiAgICByZXRyeURlbGF5SW5NaWxsaXNlY29uZHM6IDEwMCxcbiAgICBzaG91bGRSZXRyeU9uRXJyb3I6IGZhbHNlLFxuICAgIHRpbWVvdXRJbk1pbGxpc2Vjb25kczogNTAwMFxuICB9O1xuICBjb25zdCBmdWxsT3B0aW9ucyA9IHsgLi4uREVGQVVMVF9SRVRSWV9PUFRJT05TLCAuLi5yZXRyeU9wdGlvbnMgfTtcbiAgYXdhaXQgcnVuV2l0aFRpbWVvdXQoZnVsbE9wdGlvbnMudGltZW91dEluTWlsbGlzZWNvbmRzLCBhc3luYyAoKSA9PiB7XG4gICAgbGV0IGF0dGVtcHQgPSAwO1xuICAgIGZvciAoOyA7KSB7XG4gICAgICBmdWxsT3B0aW9ucy5hYm9ydFNpZ25hbD8udGhyb3dJZkFib3J0ZWQoKTtcbiAgICAgIGF0dGVtcHQrKztcbiAgICAgIGxldCBpc1N1Y2Nlc3M6IGJvb2xlYW47XG4gICAgICB0cnkge1xuICAgICAgICBpc1N1Y2Nlc3MgPSBhd2FpdCBmbigpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaWYgKCFmdWxsT3B0aW9ucy5zaG91bGRSZXRyeU9uRXJyb3IgfHwgKGVycm9yIGFzIFBhcnRpYWw8VGVybWluYXRlUmV0cnk+KS5fX3Rlcm1pbmF0ZVJldHJ5KSB7XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICAgICAgcHJpbnRFcnJvcihlcnJvcik7XG4gICAgICAgIGlzU3VjY2VzcyA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKGlzU3VjY2Vzcykge1xuICAgICAgICBpZiAoYXR0ZW1wdCA+IDEpIHtcbiAgICAgICAgICBnZXREZWJ1Z2dlcignb2JzaWRpYW4tZGV2LXV0aWxzOkFzeW5jOnJ1bldpdGhUaW1lb3V0JykoYFJldHJ5IGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkgYWZ0ZXIgJHthdHRlbXB0LnRvU3RyaW5nKCl9IGF0dGVtcHRzYCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBnZXREZWJ1Z2dlcignb2JzaWRpYW4tZGV2LXV0aWxzOkFzeW5jOnJ1bldpdGhUaW1lb3V0JykoYFJldHJ5IGF0dGVtcHQgJHthdHRlbXB0LnRvU3RyaW5nKCl9IGNvbXBsZXRlZCB1bnN1Y2Nlc3NmdWxseS4gVHJ5aW5nIGFnYWluIGluICR7ZnVsbE9wdGlvbnMucmV0cnlEZWxheUluTWlsbGlzZWNvbmRzLnRvU3RyaW5nKCl9IG1pbGxpc2Vjb25kc2AsIHtcbiAgICAgICAgZm4sXG4gICAgICAgIHN0YWNrVHJhY2VcbiAgICAgIH0pO1xuICAgICAgYXdhaXQgc2xlZXAoZnVsbE9wdGlvbnMucmV0cnlEZWxheUluTWlsbGlzZWNvbmRzKTtcbiAgICB9XG4gIH0pO1xufVxuXG4vKipcbiAqIEV4ZWN1dGVzIGEgZnVuY3Rpb24gd2l0aCBhIHRpbWVvdXQuIElmIHRoZSBmdW5jdGlvbiBkb2VzIG5vdCBjb21wbGV0ZSB3aXRoaW4gdGhlIHNwZWNpZmllZCB0aW1lLCBpdCBpcyBjb25zaWRlcmVkIHRvIGhhdmUgdGltZWQgb3V0LlxuICpcbiAqIElmIGBERUJVRz1vYnNpZGlhbi1kZXYtdXRpbHM6QXN5bmM6cnVuV2l0aFRpbWVvdXRgIGlzIHNldCwgdGhlIGV4ZWN1dGlvbiBpcyBub3QgdGVybWluYXRlZCBhZnRlciB0aGUgdGltZW91dCBhbmQgdGhlIGZ1bmN0aW9uIGlzIGFsbG93ZWQgdG8gcnVuIGluZGVmaW5pdGVseS5cbiAqXG4gKiBAdHlwZVBhcmFtIFIgLSBUaGUgdHlwZSBvZiB0aGUgcmVzdWx0IGZyb20gdGhlIGFzeW5jaHJvbm91cyBmdW5jdGlvbi5cbiAqIEBwYXJhbSB0aW1lb3V0SW5NaWxsaXNlY29uZHMgLSBUaGUgbWF4aW11bSB0aW1lIHRvIHdhaXQgaW4gbWlsbGlzZWNvbmRzLlxuICogQHBhcmFtIGZuIC0gVGhlIGZ1bmN0aW9uIHRvIGV4ZWN1dGUuXG4gKiBAcmV0dXJucyBBIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSByZXN1bHQgb2YgdGhlIGFzeW5jaHJvbm91cyBmdW5jdGlvbiBvciByZWplY3RzIGlmIGl0IHRpbWVzIG91dC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ1bldpdGhUaW1lb3V0PFI+KHRpbWVvdXRJbk1pbGxpc2Vjb25kczogbnVtYmVyLCBmbjogKCkgPT4gTWF5YmVQcm9taXNlPFI+KTogUHJvbWlzZTxSPiB7XG4gIGxldCBpc1RpbWVkT3V0ID0gdHJ1ZTtcbiAgbGV0IHJlc3VsdDogUiA9IG51bGwgYXMgUjtcbiAgY29uc3Qgc3RhcnRUaW1lID0gcGVyZm9ybWFuY2Uubm93KCk7XG4gIGF3YWl0IFByb21pc2UucmFjZShbcnVuKCksIHRpbWVvdXQoKV0pO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVubmVjZXNzYXJ5LWNvbmRpdGlvblxuICBpZiAoaXNUaW1lZE91dCkge1xuICAgIHRocm93IG5ldyBFcnJvcignVGltZWQgb3V0Jyk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcblxuICBhc3luYyBmdW5jdGlvbiBydW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmVzdWx0ID0gYXdhaXQgZm4oKTtcbiAgICBpc1RpbWVkT3V0ID0gZmFsc2U7XG4gICAgY29uc3QgZHVyYXRpb24gPSBwZXJmb3JtYW5jZS5ub3coKSAtIHN0YXJ0VGltZTtcbiAgICBnZXREZWJ1Z2dlcignb2JzaWRpYW4tZGV2LXV0aWxzOkFzeW5jOnJ1bldpdGhUaW1lb3V0JykoYEV4ZWN1dGlvbiB0aW1lOiAke2R1cmF0aW9uLnRvU3RyaW5nKCl9IG1pbGxpc2Vjb25kc2AsIHsgZm4gfSk7XG4gIH1cblxuICBhc3luYyBmdW5jdGlvbiB0aW1lb3V0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghaXNUaW1lZE91dCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBhd2FpdCBzbGVlcCh0aW1lb3V0SW5NaWxsaXNlY29uZHMpO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktY29uZGl0aW9uXG4gICAgaWYgKCFpc1RpbWVkT3V0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGR1cmF0aW9uID0gcGVyZm9ybWFuY2Uubm93KCkgLSBzdGFydFRpbWU7XG4gICAgY29uc29sZS53YXJuKGBUaW1lZCBvdXQgaW4gJHtkdXJhdGlvbi50b1N0cmluZygpfSBtaWxsaXNlY29uZHNgLCB7IGZuIH0pO1xuICAgIGlmIChnZXREZWJ1Z2dlcignb2JzaWRpYW4tZGV2LXV0aWxzOkFzeW5jOnRpbWVvdXQnKS5lbmFibGVkKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1RoZSBleGVjdXRpb24gaXMgbm90IHRlcm1pbmF0ZWQgYmVjYXVzZSBsb2NhbFN0b3JhZ2UuZGVidWc9XFwnb2JzaWRpYW4tZGV2LXV0aWxzOkFzeW5jOnRpbWVvdXRcXCcgaXMgZW5hYmxlZC4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9kZWJ1Zy1qcy9kZWJ1Zz90YWI9cmVhZG1lLW92LWZpbGUjYnJvd3Nlci1zdXBwb3J0IGZvciBtb3JlIGluZm9ybWF0aW9uJyk7XG4gICAgICBhd2FpdCB0aW1lb3V0KCk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogRGVsYXlzIGV4ZWN1dGlvbiBmb3IgYSBzcGVjaWZpZWQgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcy5cbiAqXG4gKiBAcGFyYW0gbWlsbGlzZWNvbmRzIC0gVGhlIHRpbWUgdG8gd2FpdCBpbiBtaWxsaXNlY29uZHMuXG4gKiBAcmV0dXJucyBBIFByb21pc2UgdGhhdCByZXNvbHZlcyBhZnRlciB0aGUgc3BlY2lmaWVkIGRlbGF5LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2xlZXAobWlsbGlzZWNvbmRzOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgbWlsbGlzZWNvbmRzKSk7XG59XG5cbi8qKlxuICogUmV0dXJucyBhIFByb21pc2UgdGhhdCByZWplY3RzIGFmdGVyIHRoZSBzcGVjaWZpZWQgdGltZW91dCBwZXJpb2QuXG4gKlxuICogQHBhcmFtIHRpbWVvdXRJbk1pbGxpc2Vjb25kcyAtIFRoZSB0aW1lb3V0IHBlcmlvZCBpbiBtaWxsaXNlY29uZHMuXG4gKiBAcmV0dXJucyBBIFByb21pc2UgdGhhdCBhbHdheXMgcmVqZWN0cyB3aXRoIGEgdGltZW91dCBlcnJvci5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHRpbWVvdXQodGltZW91dEluTWlsbGlzZWNvbmRzOiBudW1iZXIpOiBQcm9taXNlPG5ldmVyPiB7XG4gIGF3YWl0IHNsZWVwKHRpbWVvdXRJbk1pbGxpc2Vjb25kcyk7XG4gIHRocm93IG5ldyBFcnJvcihgVGltZWQgb3V0IGluICR7dGltZW91dEluTWlsbGlzZWNvbmRzLnRvU3RyaW5nKCl9IG1pbGxpc2Vjb25kc2ApO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIEFzeW5jSXRlcmFibGVJdGVyYXRvciB0byBhbiBhcnJheSBieSBjb25zdW1pbmcgYWxsIGl0cyBlbGVtZW50cy5cbiAqXG4gKiBAdHlwZVBhcmFtIFQgLSBUaGUgdHlwZSBvZiBlbGVtZW50cyBwcm9kdWNlZCBieSB0aGUgQXN5bmNJdGVyYWJsZUl0ZXJhdG9yLlxuICogQHBhcmFtIGl0ZXIgLSBUaGUgQXN5bmNJdGVyYWJsZUl0ZXJhdG9yIHRvIGNvbnZlcnQuXG4gKiBAcmV0dXJucyBBIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIGFuIGFycmF5IG9mIGFsbCB0aGUgZWxlbWVudHMgaW4gdGhlIEFzeW5jSXRlcmFibGVJdGVyYXRvci5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHRvQXJyYXk8VD4oaXRlcjogQXN5bmNJdGVyYWJsZUl0ZXJhdG9yPFQ+KTogUHJvbWlzZTxUW10+IHtcbiAgY29uc3QgYXJyOiBUW10gPSBbXTtcbiAgZm9yIGF3YWl0IChjb25zdCBpdGVtIG9mIGl0ZXIpIHtcbiAgICBhcnIucHVzaChpdGVtKTtcbiAgfVxuICByZXR1cm4gYXJyO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtB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
|
178
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL0FzeW5jLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvbiBBc3luY1xuICogQ29udGFpbnMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIGFzeW5jaHJvbm91cyBvcGVyYXRpb25zLlxuICovXG5cbmltcG9ydCB7IGdldERlYnVnZ2VyIH0gZnJvbSAnLi9EZWJ1Zy50cyc7XG5pbXBvcnQge1xuICBlbWl0QXN5bmNFcnJvckV2ZW50LFxuICBnZXRTdGFja1RyYWNlLFxuICBwcmludEVycm9yXG59IGZyb20gJy4vRXJyb3IudHMnO1xuXG4vKipcbiAqIEEgdHlwZSByZXByZXNlbnRpbmcgYSB2YWx1ZSB0aGF0IGNhbiBlaXRoZXIgYmUgYSBkaXJlY3QgdmFsdWUgb3IgYSBQcm9taXNlIHJlc29sdmluZyB0byB0aGF0IHZhbHVlLlxuICogQHR5cGVQYXJhbSBUIC0gVGhlIHR5cGUgb2YgdGhlIHZhbHVlLlxuICovXG5leHBvcnQgdHlwZSBNYXliZVByb21pc2U8VD4gPSBQcm9taXNlPFQ+IHwgVDtcblxuLyoqXG4gKiBPcHRpb25zIGZvciBjb25maWd1cmluZyB0aGUgcmV0cnkgYmVoYXZpb3IuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmV0cnlPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBhYm9ydCBzaWduYWwgdG8gY2FuY2VsIHRoZSByZXRyeSBvcGVyYXRpb24uXG4gICAqL1xuICBhYm9ydFNpZ25hbD86IEFib3J0U2lnbmFsO1xuXG4gIC8qKlxuICAgKiBUaGUgZGVsYXkgaW4gbWlsbGlzZWNvbmRzIGJldHdlZW4gcmV0cnkgYXR0ZW1wdHMuXG4gICAqL1xuICByZXRyeURlbGF5SW5NaWxsaXNlY29uZHM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcmV0cnkgdGhlIGZ1bmN0aW9uIG9uIGVycm9yLlxuICAgKi9cbiAgc2hvdWxkUmV0cnlPbkVycm9yPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIG1heGltdW0gdGltZSBpbiBtaWxsaXNlY29uZHMgdG8gd2FpdCBiZWZvcmUgZ2l2aW5nIHVwIG9uIHJldHJ5aW5nLlxuICAgKi9cbiAgdGltZW91dEluTWlsbGlzZWNvbmRzPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIEEgbWFya2VyIGludGVyZmFjZSB0byBpbmRpY2F0ZSB0aGF0IGFuIGVycm9yIHNob3VsZCB0ZXJtaW5hdGUgcmV0cnkgbG9naWMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGVybWluYXRlUmV0cnkge1xuICAvKipcbiAgICogQSBtYXJrZXIgcHJvcGVydHkgdG8gaW5kaWNhdGUgdGhhdCBhbiBlcnJvciBzaG91bGQgdGVybWluYXRlIHJldHJ5IGxvZ2ljLlxuICAgKi9cbiAgX190ZXJtaW5hdGVSZXRyeTogdHJ1ZTtcbn1cblxuY29uc3QgcmV0cnlXaXRoVGltZW91dERlYnVnZ2VyID0gZ2V0RGVidWdnZXIoJ29ic2lkaWFuLWRldi11dGlsczpBc3luYzpyZXRyeVdpdGhUaW1lb3V0Jyk7XG5cbi8qKlxuICogQWRkcyBhbiBlcnJvciBoYW5kbGVyIHRvIGEgUHJvbWlzZSB0aGF0IGNhdGNoZXMgYW55IGVycm9ycyBhbmQgZW1pdHMgYW4gYXN5bmMgZXJyb3IgZXZlbnQuXG4gKlxuICogQHBhcmFtIGFzeW5jRm4gLSBUaGUgYXN5bmNocm9ub3VzIGZ1bmN0aW9uIHRvIGFkZCBhbiBlcnJvciBoYW5kbGVyIHRvLlxuICogQHJldHVybnMgQSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgYXN5bmNocm9ub3VzIGZ1bmN0aW9uIGNvbXBsZXRlcyBvciBlbWl0cyBhc3luYyBlcnJvciBldmVudC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFkZEVycm9ySGFuZGxlcihhc3luY0ZuOiAoKSA9PiBQcm9taXNlPHVua25vd24+KTogUHJvbWlzZTx2b2lkPiB7XG4gIHRyeSB7XG4gICAgYXdhaXQgYXN5bmNGbigpO1xuICB9IGNhdGNoIChhc3luY0Vycm9yKSB7XG4gICAgZW1pdEFzeW5jRXJyb3JFdmVudChhc3luY0Vycm9yKTtcbiAgfVxufVxuXG4vKipcbiAqIEZpbHRlcnMgYW4gYXJyYXkgYXN5bmNocm9ub3VzbHksIGtlZXBpbmcgb25seSB0aGUgZWxlbWVudHMgdGhhdCBzYXRpc2Z5IHRoZSBwcm92aWRlZCBwcmVkaWNhdGUgZnVuY3Rpb24uXG4gKlxuICogQHR5cGVQYXJhbSBUIC0gVGhlIHR5cGUgb2YgZWxlbWVudHMgaW4gdGhlIGlucHV0IGFycmF5LlxuICogQHBhcmFtIGFyciAtIFRoZSBhcnJheSB0byBmaWx0ZXIuXG4gKiBAcGFyYW0gcHJlZGljYXRlIC0gVGhlIHByZWRpY2F0ZSBmdW5jdGlvbiB0byB0ZXN0IGVhY2ggZWxlbWVudC5cbiAqIEByZXR1cm5zIEEgUHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggYW4gYXJyYXkgb2YgZWxlbWVudHMgdGhhdCBzYXRpc2Z5IHRoZSBwcmVkaWNhdGUgZnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhc3luY0ZpbHRlcjxUPihhcnI6IFRbXSwgcHJlZGljYXRlOiAodmFsdWU6IFQsIGluZGV4OiBudW1iZXIsIGFycmF5OiBUW10pID0+IE1heWJlUHJvbWlzZTxib29sZWFuPik6IFByb21pc2U8VFtdPiB7XG4gIGNvbnN0IHByZWRpY2F0ZVJlc3VsdHMgPSBhd2FpdCBhc3luY01hcChhcnIsIHByZWRpY2F0ZSk7XG4gIHJldHVybiBhcnIuZmlsdGVyKChfLCBpbmRleCkgPT4gcHJlZGljYXRlUmVzdWx0c1tpbmRleF0pO1xufVxuXG4vKipcbiAqIE1hcHMgb3ZlciBhbiBhcnJheSBhc3luY2hyb25vdXNseSwgYXBwbHlpbmcgdGhlIHByb3ZpZGVkIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGVhY2ggZWxlbWVudCwgYW5kIHRoZW4gZmxhdHRlbnMgdGhlIHJlc3VsdHMgaW50byBhIHNpbmdsZSBhcnJheS5cbiAqXG4gKiBAdHlwZVBhcmFtIFQgLSBUaGUgdHlwZSBvZiBlbGVtZW50cyBpbiB0aGUgaW5wdXQgYXJyYXkuXG4gKiBAdHlwZVBhcmFtIFUgLSBUaGUgdHlwZSBvZiBlbGVtZW50cyBpbiB0aGUgb3V0cHV0IGFycmF5LlxuICogQHBhcmFtIGFyciAtIFRoZSBhcnJheSB0byBtYXAgb3ZlciBhbmQgZmxhdHRlbi5cbiAqIEBwYXJhbSBjYWxsYmFjayAtIFRoZSBjYWxsYmFjayBmdW5jdGlvbiB0byBhcHBseSB0byBlYWNoIGVsZW1lbnQuXG4gKiBAcmV0dXJucyBBIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIGEgZmxhdHRlbmVkIGFycmF5IG9mIHRoZSByZXN1bHRzIG9mIHRoZSBjYWxsYmFjayBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFzeW5jRmxhdE1hcDxULCBVPihhcnI6IFRbXSwgY2FsbGJhY2s6ICh2YWx1ZTogVCwgaW5kZXg6IG51bWJlciwgYXJyYXk6IFRbXSkgPT4gTWF5YmVQcm9taXNlPFVbXT4pOiBQcm9taXNlPFVbXT4ge1xuICByZXR1cm4gKGF3YWl0IGFzeW5jTWFwKGFyciwgY2FsbGJhY2spKS5mbGF0KCk7XG59XG5cbi8qKlxuICogTWFwcyBvdmVyIGFuIGFycmF5IGFzeW5jaHJvbm91c2x5LCBhcHBseWluZyB0aGUgcHJvdmlkZWQgY2FsbGJhY2sgZnVuY3Rpb24gdG8gZWFjaCBlbGVtZW50LlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIGVsZW1lbnRzIGluIHRoZSBpbnB1dCBhcnJheS5cbiAqIEB0eXBlUGFyYW0gVSAtIFRoZSB0eXBlIG9mIGVsZW1lbnRzIGluIHRoZSBvdXRwdXQgYXJyYXkuXG4gKiBAcGFyYW0gYXJyIC0gVGhlIGFycmF5IHRvIG1hcCBvdmVyLlxuICogQHBhcmFtIGNhbGxiYWNrIC0gVGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGFwcGx5IHRvIGVhY2ggZWxlbWVudC5cbiAqIEByZXR1cm5zIEEgUHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggYW4gYXJyYXkgb2YgdGhlIHJlc3VsdHMgb2YgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXN5bmNNYXA8VCwgVT4oYXJyOiBUW10sIGNhbGxiYWNrOiAodmFsdWU6IFQsIGluZGV4OiBudW1iZXIsIGFycmF5OiBUW10pID0+IE1heWJlUHJvbWlzZTxVPik6IFByb21pc2U8VVtdPiB7XG4gIHJldHVybiBhd2FpdCBQcm9taXNlLmFsbChhcnIubWFwKGNhbGxiYWNrKSk7XG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gYXN5bmNocm9ub3VzIGZ1bmN0aW9uIHRvIGEgc3luY2hyb25vdXMgb25lIGJ5IGF1dG9tYXRpY2FsbHkgaGFuZGxpbmcgdGhlIFByb21pc2UgcmVqZWN0aW9uLlxuICpcbiAqIEB0eXBlUGFyYW0gQXJncyAtIFRoZSB0eXBlcyBvZiB0aGUgYXJndW1lbnRzIHRoZSBmdW5jdGlvbiBhY2NlcHRzLlxuICogQHBhcmFtIGFzeW5jRnVuYyAtIFRoZSBhc3luY2hyb25vdXMgZnVuY3Rpb24gdG8gY29udmVydC5cbiAqIEByZXR1cm5zIEEgZnVuY3Rpb24gdGhhdCB3cmFwcyB0aGUgYXN5bmNocm9ub3VzIGZ1bmN0aW9uIGluIGEgc3luY2hyb25vdXMgaW50ZXJmYWNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29udmVydEFzeW5jVG9TeW5jPEFyZ3MgZXh0ZW5kcyB1bmtub3duW10+KGFzeW5jRnVuYzogKC4uLmFyZ3M6IEFyZ3MpID0+IFByb21pc2U8dW5rbm93bj4pOiAoLi4uYXJnczogQXJncykgPT4gdm9pZCB7XG4gIHJldHVybiAoLi4uYXJnczogQXJncyk6IHZvaWQgPT4ge1xuICAgIGludm9rZUFzeW5jU2FmZWx5KCgpID0+IGFzeW5jRnVuYyguLi5hcmdzKSk7XG4gIH07XG59XG5cbi8qKlxuICogQ29udmVydHMgYSBzeW5jaHJvbm91cyBmdW5jdGlvbiB0byBhbiBhc3luY2hyb25vdXMgb25lIGJ5IHdyYXBwaW5nIGl0IGluIGEgUHJvbWlzZS5cbiAqXG4gKiBAdHlwZVBhcmFtIEFyZ3MgLSBUaGUgdHlwZXMgb2YgdGhlIGFyZ3VtZW50cyB0aGUgZnVuY3Rpb24gYWNjZXB0cy5cbiAqIEB0eXBlUGFyYW0gUmVzdWx0IC0gVGhlIHR5cGUgb2YgdGhlIGZ1bmN0aW9uJ3MgcmV0dXJuIHZhbHVlLlxuICogQHBhcmFtIHN5bmNGbiAtIFRoZSBzeW5jaHJvbm91cyBmdW5jdGlvbiB0byBjb252ZXJ0LlxuICogQHJldHVybnMgQSBmdW5jdGlvbiB0aGF0IHdyYXBzIHRoZSBzeW5jaHJvbm91cyBmdW5jdGlvbiBpbiBhbiBhc3luY2hyb25vdXMgaW50ZXJmYWNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29udmVydFN5bmNUb0FzeW5jPEFyZ3MgZXh0ZW5kcyB1bmtub3duW10sIFJlc3VsdD4oc3luY0ZuOiAoLi4uYXJnczogQXJncykgPT4gUmVzdWx0KTogKC4uLmFyZ3M6IEFyZ3MpID0+IFByb21pc2U8UmVzdWx0PiB7XG4gIHJldHVybiAoLi4uYXJnczogQXJncyk6IFByb21pc2U8UmVzdWx0PiA9PiBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHN5bmNGbiguLi5hcmdzKSk7XG59XG5cbi8qKlxuICogSW52b2tlcyBhIFByb21pc2UgYW5kIHNhZmVseSBoYW5kbGVzIGFueSBlcnJvcnMgYnkgY2F0Y2hpbmcgdGhlbSBhbmQgZW1pdHRpbmcgYW4gYXN5bmMgZXJyb3IgZXZlbnQuXG4gKlxuICogQHBhcmFtIGFzeW5jRm4gLSBUaGUgYXN5bmNocm9ub3VzIGZ1bmN0aW9uIHRvIGludm9rZSBzYWZlbHkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbnZva2VBc3luY1NhZmVseShhc3luY0ZuOiAoKSA9PiBQcm9taXNlPHVua25vd24+KTogdm9pZCB7XG4gIHZvaWQgYWRkRXJyb3JIYW5kbGVyKGFzeW5jRm4pO1xufVxuXG4vKipcbiAqIE1hcmtzIGFuIGVycm9yIHRvIHRlcm1pbmF0ZSByZXRyeSBsb2dpYy5cbiAqXG4gKiBAcGFyYW0gZXJyb3IgLSBUaGUgZXJyb3IgdG8gbWFyayB0byB0ZXJtaW5hdGUgcmV0cnkgbG9naWMuXG4gKiBAcmV0dXJucyBBbiBlcnJvciB0aGF0IHNob3VsZCB0ZXJtaW5hdGUgcmV0cnkgbG9naWMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYXJrc0FzVGVybWluYXRlUmV0cnk8VEVycm9yIGV4dGVuZHMgRXJyb3I+KGVycm9yOiBURXJyb3IpOiBUZXJtaW5hdGVSZXRyeSAmIFRFcnJvciB7XG4gIHJldHVybiBPYmplY3QuYXNzaWduKGVycm9yLCB7IF9fdGVybWluYXRlUmV0cnk6IHRydWUgfSBhcyBUZXJtaW5hdGVSZXRyeSk7XG59XG5cbi8qKlxuICogUmV0cmllcyB0aGUgcHJvdmlkZWQgZnVuY3Rpb24gdW50aWwgaXQgcmV0dXJucyB0cnVlIG9yIHRoZSB0aW1lb3V0IGlzIHJlYWNoZWQuXG4gKlxuICogQHBhcmFtIGZuIC0gVGhlIGZ1bmN0aW9uIHRvIHJldHJ5LlxuICogQHBhcmFtIHJldHJ5T3B0aW9ucyAtIE9wdGlvbmFsIHBhcmFtZXRlcnMgdG8gY29uZmlndXJlIHRoZSByZXRyeSBiZWhhdmlvci5cbiAqIEBwYXJhbSBzdGFja1RyYWNlIC0gT3B0aW9uYWwgc3RhY2sgdHJhY2UuXG4gKiBAcmV0dXJucyBBIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBmdW5jdGlvbiByZXR1cm5zIHRydWUgb3IgcmVqZWN0cyB3aGVuIHRoZSB0aW1lb3V0IGlzIHJlYWNoZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZXRyeVdpdGhUaW1lb3V0KGZuOiAoKSA9PiBNYXliZVByb21pc2U8Ym9vbGVhbj4sIHJldHJ5T3B0aW9uczogUmV0cnlPcHRpb25zID0ge30sIHN0YWNrVHJhY2U/OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgc3RhY2tUcmFjZSA/Pz0gZ2V0U3RhY2tUcmFjZSgxKTtcbiAgY29uc3QgREVGQVVMVF9SRVRSWV9PUFRJT05TID0ge1xuICAgIHJldHJ5RGVsYXlJbk1pbGxpc2Vjb25kczogMTAwLFxuICAgIHNob3VsZFJldHJ5T25FcnJvcjogZmFsc2UsXG4gICAgdGltZW91dEluTWlsbGlzZWNvbmRzOiA1MDAwXG4gIH07XG4gIGNvbnN0IGZ1bGxPcHRpb25zID0geyAuLi5ERUZBVUxUX1JFVFJZX09QVElPTlMsIC4uLnJldHJ5T3B0aW9ucyB9O1xuICBhd2FpdCBydW5XaXRoVGltZW91dChmdWxsT3B0aW9ucy50aW1lb3V0SW5NaWxsaXNlY29uZHMsIGFzeW5jICgpID0+IHtcbiAgICBsZXQgYXR0ZW1wdCA9IDA7XG4gICAgZm9yICg7IDspIHtcbiAgICAgIGZ1bGxPcHRpb25zLmFib3J0U2lnbmFsPy50aHJvd0lmQWJvcnRlZCgpO1xuICAgICAgYXR0ZW1wdCsrO1xuICAgICAgbGV0IGlzU3VjY2VzczogYm9vbGVhbjtcbiAgICAgIHRyeSB7XG4gICAgICAgIGlzU3VjY2VzcyA9IGF3YWl0IGZuKCk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBpZiAoIWZ1bGxPcHRpb25zLnNob3VsZFJldHJ5T25FcnJvciB8fCAoZXJyb3IgYXMgUGFydGlhbDxUZXJtaW5hdGVSZXRyeT4pLl9fdGVybWluYXRlUmV0cnkpIHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgICAgICBwcmludEVycm9yKGVycm9yKTtcbiAgICAgICAgaXNTdWNjZXNzID0gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAoaXNTdWNjZXNzKSB7XG4gICAgICAgIGlmIChhdHRlbXB0ID4gMSkge1xuICAgICAgICAgIHJldHJ5V2l0aFRpbWVvdXREZWJ1Z2dlcihgUmV0cnkgY29tcGxldGVkIHN1Y2Nlc3NmdWxseSBhZnRlciAke2F0dGVtcHQudG9TdHJpbmcoKX0gYXR0ZW1wdHNgKTtcbiAgICAgICAgICByZXRyeVdpdGhUaW1lb3V0RGVidWdnZXIucHJpbnRTdGFja1RyYWNlKHN0YWNrVHJhY2UpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgcmV0cnlXaXRoVGltZW91dERlYnVnZ2VyKGBSZXRyeSBhdHRlbXB0ICR7YXR0ZW1wdC50b1N0cmluZygpfSBjb21wbGV0ZWQgdW5zdWNjZXNzZnVsbHkuIFRyeWluZyBhZ2FpbiBpbiAke2Z1bGxPcHRpb25zLnJldHJ5RGVsYXlJbk1pbGxpc2Vjb25kcy50b1N0cmluZygpfSBtaWxsaXNlY29uZHNgLCB7XG4gICAgICAgIGZuXG4gICAgICB9KTtcbiAgICAgIHJldHJ5V2l0aFRpbWVvdXREZWJ1Z2dlci5wcmludFN0YWNrVHJhY2Uoc3RhY2tUcmFjZSk7XG4gICAgICBhd2FpdCBzbGVlcChmdWxsT3B0aW9ucy5yZXRyeURlbGF5SW5NaWxsaXNlY29uZHMpO1xuICAgIH1cbiAgfSk7XG59XG5cbi8qKlxuICogRXhlY3V0ZXMgYSBmdW5jdGlvbiB3aXRoIGEgdGltZW91dC4gSWYgdGhlIGZ1bmN0aW9uIGRvZXMgbm90IGNvbXBsZXRlIHdpdGhpbiB0aGUgc3BlY2lmaWVkIHRpbWUsIGl0IGlzIGNvbnNpZGVyZWQgdG8gaGF2ZSB0aW1lZCBvdXQuXG4gKlxuICogSWYgYERFQlVHPW9ic2lkaWFuLWRldi11dGlsczpBc3luYzpydW5XaXRoVGltZW91dGAgaXMgc2V0LCB0aGUgZXhlY3V0aW9uIGlzIG5vdCB0ZXJtaW5hdGVkIGFmdGVyIHRoZSB0aW1lb3V0IGFuZCB0aGUgZnVuY3Rpb24gaXMgYWxsb3dlZCB0byBydW4gaW5kZWZpbml0ZWx5LlxuICpcbiAqIEB0eXBlUGFyYW0gUiAtIFRoZSB0eXBlIG9mIHRoZSByZXN1bHQgZnJvbSB0aGUgYXN5bmNocm9ub3VzIGZ1bmN0aW9uLlxuICogQHBhcmFtIHRpbWVvdXRJbk1pbGxpc2Vjb25kcyAtIFRoZSBtYXhpbXVtIHRpbWUgdG8gd2FpdCBpbiBtaWxsaXNlY29uZHMuXG4gKiBAcGFyYW0gZm4gLSBUaGUgZnVuY3Rpb24gdG8gZXhlY3V0ZS5cbiAqIEByZXR1cm5zIEEgUHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIHJlc3VsdCBvZiB0aGUgYXN5bmNocm9ub3VzIGZ1bmN0aW9uIG9yIHJlamVjdHMgaWYgaXQgdGltZXMgb3V0LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcnVuV2l0aFRpbWVvdXQ8Uj4odGltZW91dEluTWlsbGlzZWNvbmRzOiBudW1iZXIsIGZuOiAoKSA9PiBNYXliZVByb21pc2U8Uj4pOiBQcm9taXNlPFI+IHtcbiAgbGV0IGlzVGltZWRPdXQgPSB0cnVlO1xuICBsZXQgcmVzdWx0OiBSID0gbnVsbCBhcyBSO1xuICBjb25zdCBzdGFydFRpbWUgPSBwZXJmb3JtYW5jZS5ub3coKTtcbiAgYXdhaXQgUHJvbWlzZS5yYWNlKFtydW4oKSwgdGltZW91dCgpXSk7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktY29uZGl0aW9uXG4gIGlmIChpc1RpbWVkT3V0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdUaW1lZCBvdXQnKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xuXG4gIGFzeW5jIGZ1bmN0aW9uIHJ1bigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXN1bHQgPSBhd2FpdCBmbigpO1xuICAgIGlzVGltZWRPdXQgPSBmYWxzZTtcbiAgICBjb25zdCBkdXJhdGlvbiA9IHBlcmZvcm1hbmNlLm5vdygpIC0gc3RhcnRUaW1lO1xuICAgIGdldERlYnVnZ2VyKCdvYnNpZGlhbi1kZXYtdXRpbHM6QXN5bmM6cnVuV2l0aFRpbWVvdXQnKShgRXhlY3V0aW9uIHRpbWU6ICR7ZHVyYXRpb24udG9TdHJpbmcoKX0gbWlsbGlzZWNvbmRzYCwgeyBmbiB9KTtcbiAgfVxuXG4gIGFzeW5jIGZ1bmN0aW9uIHRpbWVvdXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCFpc1RpbWVkT3V0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGF3YWl0IHNsZWVwKHRpbWVvdXRJbk1pbGxpc2Vjb25kcyk7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bm5lY2Vzc2FyeS1jb25kaXRpb25cbiAgICBpZiAoIWlzVGltZWRPdXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZHVyYXRpb24gPSBwZXJmb3JtYW5jZS5ub3coKSAtIHN0YXJ0VGltZTtcbiAgICBjb25zb2xlLndhcm4oYFRpbWVkIG91dCBpbiAke2R1cmF0aW9uLnRvU3RyaW5nKCl9IG1pbGxpc2Vjb25kc2AsIHsgZm4gfSk7XG4gICAgaWYgKGdldERlYnVnZ2VyKCdvYnNpZGlhbi1kZXYtdXRpbHM6QXN5bmM6dGltZW91dCcpLmVuYWJsZWQpIHtcbiAgICAgIGNvbnNvbGUud2FybignVGhlIGV4ZWN1dGlvbiBpcyBub3QgdGVybWluYXRlZCBiZWNhdXNlIGxvY2FsU3RvcmFnZS5kZWJ1Zz1cXCdvYnNpZGlhbi1kZXYtdXRpbHM6QXN5bmM6dGltZW91dFxcJyBpcyBlbmFibGVkLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2RlYnVnLWpzL2RlYnVnP3RhYj1yZWFkbWUtb3YtZmlsZSNicm93c2VyLXN1cHBvcnQgZm9yIG1vcmUgaW5mb3JtYXRpb24nKTtcbiAgICAgIGF3YWl0IHRpbWVvdXQoKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBEZWxheXMgZXhlY3V0aW9uIGZvciBhIHNwZWNpZmllZCBudW1iZXIgb2YgbWlsbGlzZWNvbmRzLlxuICpcbiAqIEBwYXJhbSBtaWxsaXNlY29uZHMgLSBUaGUgdGltZSB0byB3YWl0IGluIG1pbGxpc2Vjb25kcy5cbiAqIEByZXR1cm5zIEEgUHJvbWlzZSB0aGF0IHJlc29sdmVzIGFmdGVyIHRoZSBzcGVjaWZpZWQgZGVsYXkuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzbGVlcChtaWxsaXNlY29uZHM6IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCBtaWxsaXNlY29uZHMpKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGEgUHJvbWlzZSB0aGF0IHJlamVjdHMgYWZ0ZXIgdGhlIHNwZWNpZmllZCB0aW1lb3V0IHBlcmlvZC5cbiAqXG4gKiBAcGFyYW0gdGltZW91dEluTWlsbGlzZWNvbmRzIC0gVGhlIHRpbWVvdXQgcGVyaW9kIGluIG1pbGxpc2Vjb25kcy5cbiAqIEByZXR1cm5zIEEgUHJvbWlzZSB0aGF0IGFsd2F5cyByZWplY3RzIHdpdGggYSB0aW1lb3V0IGVycm9yLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdGltZW91dCh0aW1lb3V0SW5NaWxsaXNlY29uZHM6IG51bWJlcik6IFByb21pc2U8bmV2ZXI+IHtcbiAgYXdhaXQgc2xlZXAodGltZW91dEluTWlsbGlzZWNvbmRzKTtcbiAgdGhyb3cgbmV3IEVycm9yKGBUaW1lZCBvdXQgaW4gJHt0aW1lb3V0SW5NaWxsaXNlY29uZHMudG9TdHJpbmcoKX0gbWlsbGlzZWNvbmRzYCk7XG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gQXN5bmNJdGVyYWJsZUl0ZXJhdG9yIHRvIGFuIGFycmF5IGJ5IGNvbnN1bWluZyBhbGwgaXRzIGVsZW1lbnRzLlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIGVsZW1lbnRzIHByb2R1Y2VkIGJ5IHRoZSBBc3luY0l0ZXJhYmxlSXRlcmF0b3IuXG4gKiBAcGFyYW0gaXRlciAtIFRoZSBBc3luY0l0ZXJhYmxlSXRlcmF0b3IgdG8gY29udmVydC5cbiAqIEByZXR1cm5zIEEgUHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggYW4gYXJyYXkgb2YgYWxsIHRoZSBlbGVtZW50cyBpbiB0aGUgQXN5bmNJdGVyYWJsZUl0ZXJhdG9yLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdG9BcnJheTxUPihpdGVyOiBBc3luY0l0ZXJhYmxlSXRlcmF0b3I8VD4pOiBQcm9taXNlPFRbXT4ge1xuICBjb25zdCBhcnI6IFRbXSA9IFtdO1xuICBmb3IgYXdhaXQgKGNvbnN0IGl0ZW0gb2YgaXRlcikge1xuICAgIGFyci5wdXNoKGl0ZW0pO1xuICB9XG4gIHJldHVybiBhcnI7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0EsbUJBQTRCO0FBQzVCLG1CQUlPO0FBMkNQLE1BQU0sK0JBQTJCLDBCQUFZLDJDQUEyQztBQVF4RixlQUFzQixnQkFBZ0IsU0FBZ0Q7QUFDcEYsTUFBSTtBQUNGLFVBQU0sUUFBUTtBQUFBLEVBQ2hCLFNBQVMsWUFBWTtBQUNuQiwwQ0FBb0IsVUFBVTtBQUFBLEVBQ2hDO0FBQ0Y7QUFVQSxlQUFzQixZQUFlLEtBQVUsV0FBeUY7QUFDdEksUUFBTSxtQkFBbUIsTUFBTSxTQUFTLEtBQUssU0FBUztBQUN0RCxTQUFPLElBQUksT0FBTyxDQUFDLEdBQUcsVUFBVSxpQkFBaUIsS0FBSyxDQUFDO0FBQ3pEO0FBV0EsZUFBc0IsYUFBbUIsS0FBVSxVQUFvRjtBQUNySSxVQUFRLE1BQU0sU0FBUyxLQUFLLFFBQVEsR0FBRyxLQUFLO0FBQzlDO0FBV0EsZUFBc0IsU0FBZSxLQUFVLFVBQWtGO0FBQy9ILFNBQU8sTUFBTSxRQUFRLElBQUksSUFBSSxJQUFJLFFBQVEsQ0FBQztBQUM1QztBQVNPLFNBQVMsbUJBQTJDLFdBQXlFO0FBQ2xJLFNBQU8sSUFBSSxTQUFxQjtBQUM5QixzQkFBa0IsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDO0FBQUEsRUFDNUM7QUFDRjtBQVVPLFNBQVMsbUJBQW1ELFFBQXVFO0FBQ3hJLFNBQU8sSUFBSSxTQUFnQyxRQUFRLFFBQVEsRUFBRSxLQUFLLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQztBQUN6RjtBQU9PLFNBQVMsa0JBQWtCLFNBQXVDO0FBQ3ZFLE9BQUssZ0JBQWdCLE9BQU87QUFDOUI7QUFRTyxTQUFTLHNCQUE0QyxPQUF3QztBQUNsRyxTQUFPLE9BQU8sT0FBTyxPQUFPLEVBQUUsa0JBQWtCLEtBQUssQ0FBbUI7QUFDMUU7QUFVQSxlQUFzQixpQkFBaUIsSUFBaUMsZUFBNkIsQ0FBQyxHQUFHLFlBQW9DO0FBQzNJLHFCQUFlLDRCQUFjLENBQUM7QUFDOUIsUUFBTSx3QkFBd0I7QUFBQSxJQUM1QiwwQkFBMEI7QUFBQSxJQUMxQixvQkFBb0I7QUFBQSxJQUNwQix1QkFBdUI7QUFBQSxFQUN6QjtBQUNBLFFBQU0sY0FBYyxFQUFFLEdBQUcsdUJBQXVCLEdBQUcsYUFBYTtBQUNoRSxRQUFNLGVBQWUsWUFBWSx1QkFBdUIsWUFBWTtBQUNsRSxRQUFJLFVBQVU7QUFDZCxlQUFVO0FBQ1Isa0JBQVksYUFBYSxlQUFlO0FBQ3hDO0FBQ0EsVUFBSTtBQUNKLFVBQUk7QUFDRixvQkFBWSxNQUFNLEdBQUc7QUFBQSxNQUN2QixTQUFTLE9BQU87QUFDZCxZQUFJLENBQUMsWUFBWSxzQkFBdUIsTUFBa0Msa0JBQWtCO0FBQzFGLGdCQUFNO0FBQUEsUUFDUjtBQUNBLHFDQUFXLEtBQUs7QUFDaEIsb0JBQVk7QUFBQSxNQUNkO0FBQ0EsVUFBSSxXQUFXO0FBQ2IsWUFBSSxVQUFVLEdBQUc7QUFDZixtQ0FBeUIsc0NBQXNDLFFBQVEsU0FBUyxDQUFDLFdBQVc7QUFDNUYsbUNBQXlCLGdCQUFnQixVQUFVO0FBQUEsUUFDckQ7QUFDQTtBQUFBLE1BQ0Y7QUFFQSwrQkFBeUIsaUJBQWlCLFFBQVEsU0FBUyxDQUFDLDhDQUE4QyxZQUFZLHlCQUF5QixTQUFTLENBQUMsaUJBQWlCO0FBQUEsUUFDeEs7QUFBQSxNQUNGLENBQUM7QUFDRCwrQkFBeUIsZ0JBQWdCLFVBQVU7QUFDbkQsWUFBTSxNQUFNLFlBQVksd0JBQXdCO0FBQUEsSUFDbEQ7QUFBQSxFQUNGLENBQUM7QUFDSDtBQVlBLGVBQXNCLGVBQWtCLHVCQUErQixJQUF1QztBQUM1RyxNQUFJLGFBQWE7QUFDakIsTUFBSSxTQUFZO0FBQ2hCLFFBQU0sWUFBWSxZQUFZLElBQUk7QUFDbEMsUUFBTSxRQUFRLEtBQUssQ0FBQyxJQUFJLEdBQUdBLFNBQVEsQ0FBQyxDQUFDO0FBRXJDLE1BQUksWUFBWTtBQUNkLFVBQU0sSUFBSSxNQUFNLFdBQVc7QUFBQSxFQUM3QjtBQUNBLFNBQU87QUFFUCxpQkFBZSxNQUFxQjtBQUNsQyxhQUFTLE1BQU0sR0FBRztBQUNsQixpQkFBYTtBQUNiLFVBQU0sV0FBVyxZQUFZLElBQUksSUFBSTtBQUNyQyxrQ0FBWSx5Q0FBeUMsRUFBRSxtQkFBbUIsU0FBUyxTQUFTLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxDQUFDO0FBQUEsRUFDdEg7QUFFQSxpQkFBZUEsV0FBeUI7QUFDdEMsUUFBSSxDQUFDLFlBQVk7QUFDZjtBQUFBLElBQ0Y7QUFDQSxVQUFNLE1BQU0scUJBQXFCO0FBRWpDLFFBQUksQ0FBQyxZQUFZO0FBQ2Y7QUFBQSxJQUNGO0FBQ0EsVUFBTSxXQUFXLFlBQVksSUFBSSxJQUFJO0FBQ3JDLFlBQVEsS0FBSyxnQkFBZ0IsU0FBUyxTQUFTLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxDQUFDO0FBQ3ZFLFlBQUksMEJBQVksa0NBQWtDLEVBQUUsU0FBUztBQUMzRCxjQUFRLEtBQUsseU1BQTJNO0FBQ3hOLFlBQU1BLFNBQVE7QUFBQSxJQUNoQjtBQUFBLEVBQ0Y7QUFDRjtBQVFBLGVBQXNCLE1BQU0sY0FBcUM7QUFDL0QsUUFBTSxJQUFJLFFBQVEsQ0FBQyxZQUFZLFdBQVcsU0FBUyxZQUFZLENBQUM7QUFDbEU7QUFRQSxlQUFzQixRQUFRLHVCQUErQztBQUMzRSxRQUFNLE1BQU0scUJBQXFCO0FBQ2pDLFFBQU0sSUFBSSxNQUFNLGdCQUFnQixzQkFBc0IsU0FBUyxDQUFDLGVBQWU7QUFDakY7QUFTQSxlQUFzQixRQUFXLE1BQThDO0FBQzdFLFFBQU0sTUFBVyxDQUFDO0FBQ2xCLG1CQUFpQixRQUFRLE1BQU07QUFDN0IsUUFBSSxLQUFLLElBQUk7QUFBQSxFQUNmO0FBQ0EsU0FBTztBQUNUOyIsCiAgIm5hbWVzIjogWyJ0aW1lb3V0Il0KfQo=
|
package/dist/lib/Async.d.ts
CHANGED
@@ -108,9 +108,10 @@ export declare function marksAsTerminateRetry<TError extends Error>(error: TErro
|
|
108
108
|
*
|
109
109
|
* @param fn - The function to retry.
|
110
110
|
* @param retryOptions - Optional parameters to configure the retry behavior.
|
111
|
+
* @param stackTrace - Optional stack trace.
|
111
112
|
* @returns A Promise that resolves when the function returns true or rejects when the timeout is reached.
|
112
113
|
*/
|
113
|
-
export declare function retryWithTimeout(fn: () => MaybePromise<boolean>, retryOptions?: RetryOptions): Promise<void>;
|
114
|
+
export declare function retryWithTimeout(fn: () => MaybePromise<boolean>, retryOptions?: RetryOptions, stackTrace?: string): Promise<void>;
|
114
115
|
/**
|
115
116
|
* Executes a function with a timeout. If the function does not complete within the specified time, it is considered to have timed out.
|
116
117
|
*
|
package/dist/lib/Debug.cjs
CHANGED
@@ -43,20 +43,33 @@ module.exports = __toCommonJS(Debug_exports);
|
|
43
43
|
var import_debug = __toESM(__extractDefault(require('debug')), 1);
|
44
44
|
function getDebugger(id) {
|
45
45
|
const debugInstance = import_debug.default.default(id);
|
46
|
-
debugInstance.log =
|
46
|
+
debugInstance.log = (message, ...args) => {
|
47
|
+
logWithCaller(id, message, ...args);
|
48
|
+
};
|
49
|
+
debugInstance.printStackTrace = (stackTrace, title) => {
|
50
|
+
printStackTrace(id, stackTrace, title);
|
51
|
+
};
|
47
52
|
return debugInstance;
|
48
53
|
}
|
49
|
-
function logWithCaller(message, ...args) {
|
50
|
-
const
|
51
|
-
|
52
|
-
|
53
|
-
return stackTrace;
|
54
|
-
};
|
54
|
+
function logWithCaller(id, message, ...args) {
|
55
|
+
const CALLER_LINE_INDEX = 4;
|
56
|
+
const stackLines = new Error().stack?.split("\n") ?? [];
|
57
|
+
const callerLine = stackLines[CALLER_LINE_INDEX] ?? "";
|
55
58
|
console.debug(message, ...args);
|
56
|
-
|
59
|
+
printStackTrace(id, callerLine, "Original debug message caller");
|
60
|
+
}
|
61
|
+
function printStackTrace(id, stackTrace, title) {
|
62
|
+
if (!stackTrace) {
|
63
|
+
stackTrace = "(unavailable)";
|
64
|
+
}
|
65
|
+
if (!title) {
|
66
|
+
title = "Caller stack trace";
|
67
|
+
}
|
68
|
+
console.debug(`NotError:${id}:${title}
|
69
|
+
${stackTrace}`);
|
57
70
|
}
|
58
71
|
// Annotate the CommonJS export names for ESM import in node:
|
59
72
|
0 && (module.exports = {
|
60
73
|
getDebugger
|
61
74
|
});
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
75
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL0RlYnVnLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvbiBEZWJ1Z1xuICogQ29udGFpbnMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIGRlYnVnZ2luZy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IERlYnVnZ2VyIH0gZnJvbSAnZGVidWcnO1xuXG5pbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnO1xuXG5pbnRlcmZhY2UgRGVidWdnZXJFeCBleHRlbmRzIERlYnVnZ2VyIHtcbiAgcHJpbnRTdGFja1RyYWNlOiAoc3RhY2tUcmFjZTogc3RyaW5nLCB0aXRsZT86IHN0cmluZykgPT4gdm9pZDtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGEgZGVidWdnZXIgaW5zdGFuY2Ugd2l0aCBhIGxvZyBmdW5jdGlvbiB0aGF0IGluY2x1ZGVzIHRoZSBjYWxsZXIncyBmaWxlIG5hbWUgYW5kIGxpbmUgbnVtYmVyLlxuICpcbiAqIEBwYXJhbSBpZCAtIFRoZSBuYW1lc3BhY2UgZm9yIHRoZSBkZWJ1Z2dlciBpbnN0YW5jZS5cbiAqIEByZXR1cm5zIEEgZGVidWdnZXIgaW5zdGFuY2Ugd2l0aCBhIGxvZyBmdW5jdGlvbiB0aGF0IGluY2x1ZGVzIHRoZSBjYWxsZXIncyBmaWxlIG5hbWUgYW5kIGxpbmUgbnVtYmVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVidWdnZXIoaWQ6IHN0cmluZyk6IERlYnVnZ2VyRXgge1xuICBjb25zdCBkZWJ1Z0luc3RhbmNlID0gZGVidWcuZGVmYXVsdChpZCkgYXMgRGVidWdnZXJFeDtcbiAgZGVidWdJbnN0YW5jZS5sb2cgPSAobWVzc2FnZTogc3RyaW5nLCAuLi5hcmdzOiB1bmtub3duW10pOiB2b2lkID0+IHtcbiAgICBsb2dXaXRoQ2FsbGVyKGlkLCBtZXNzYWdlLCAuLi5hcmdzKTtcbiAgfTtcbiAgZGVidWdJbnN0YW5jZS5wcmludFN0YWNrVHJhY2UgPSAoc3RhY2tUcmFjZSwgdGl0bGUpOiB2b2lkID0+IHtcbiAgICBwcmludFN0YWNrVHJhY2UoaWQsIHN0YWNrVHJhY2UsIHRpdGxlKTtcbiAgfTtcbiAgcmV0dXJuIGRlYnVnSW5zdGFuY2U7XG59XG5cbmZ1bmN0aW9uIGxvZ1dpdGhDYWxsZXIoaWQ6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nLCAuLi5hcmdzOiB1bmtub3duW10pOiB2b2lkIHtcbiAgLyoqXG4gICAqIFRoZSBjYWxsZXIgbGluZSBpbmRleCBpcyA0IGJlY2F1c2UgdGhlIGNhbGwgc3RhY2sgaXMgYXMgZm9sbG93czpcbiAgICpcbiAgICogMDogRXJyb3JcbiAgICogMTogICAgIGF0IGxvZ1dpdGhDYWxsZXIgKD86Pzo/KVxuICAgKiAyOiAgICAgYXQgZGVidWdJbnN0YW5jZS5sb2cgKD86Pzo/KVxuICAgKiAzOiAgICAgYXQgZGVidWcgKD86Pzo/KVxuICAgKiA0OiAgICAgYXQgZnVuY3Rpb25OYW1lIChwYXRoL3RvL2NhbGxlci5qczo/Oj8pXG4gICAqL1xuICBjb25zdCBDQUxMRVJfTElORV9JTkRFWCA9IDQ7XG5cbiAgY29uc3Qgc3RhY2tMaW5lcyA9IG5ldyBFcnJvcigpLnN0YWNrPy5zcGxpdCgnXFxuJykgPz8gW107XG4gIGNvbnN0IGNhbGxlckxpbmUgPSBzdGFja0xpbmVzW0NBTExFUl9MSU5FX0lOREVYXSA/PyAnJztcbiAgY29uc29sZS5kZWJ1ZyhtZXNzYWdlLCAuLi5hcmdzKTtcbiAgcHJpbnRTdGFja1RyYWNlKGlkLCBjYWxsZXJMaW5lLCAnT3JpZ2luYWwgZGVidWcgbWVzc2FnZSBjYWxsZXInKTtcbn1cblxuZnVuY3Rpb24gcHJpbnRTdGFja1RyYWNlKGlkOiBzdHJpbmcsIHN0YWNrVHJhY2U6IHN0cmluZywgdGl0bGU/OiBzdHJpbmcpOiB2b2lkIHtcbiAgaWYgKCFzdGFja1RyYWNlKSB7XG4gICAgc3RhY2tUcmFjZSA9ICcodW5hdmFpbGFibGUpJztcbiAgfVxuICBpZiAoIXRpdGxlKSB7XG4gICAgdGl0bGUgPSAnQ2FsbGVyIHN0YWNrIHRyYWNlJztcbiAgfVxuICBjb25zb2xlLmRlYnVnKGBOb3RFcnJvcjoke2lkfToke3RpdGxlfVxcbiR7c3RhY2tUcmFjZX1gKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0EsbUJBQWtCO0FBWVgsU0FBUyxZQUFZLElBQXdCO0FBQ2xELFFBQU0sZ0JBQWdCLGFBQUFBLFFBQU0sUUFBUSxFQUFFO0FBQ3RDLGdCQUFjLE1BQU0sQ0FBQyxZQUFvQixTQUEwQjtBQUNqRSxrQkFBYyxJQUFJLFNBQVMsR0FBRyxJQUFJO0FBQUEsRUFDcEM7QUFDQSxnQkFBYyxrQkFBa0IsQ0FBQyxZQUFZLFVBQWdCO0FBQzNELG9CQUFnQixJQUFJLFlBQVksS0FBSztBQUFBLEVBQ3ZDO0FBQ0EsU0FBTztBQUNUO0FBRUEsU0FBUyxjQUFjLElBQVksWUFBb0IsTUFBdUI7QUFVNUUsUUFBTSxvQkFBb0I7QUFFMUIsUUFBTSxhQUFhLElBQUksTUFBTSxFQUFFLE9BQU8sTUFBTSxJQUFJLEtBQUssQ0FBQztBQUN0RCxRQUFNLGFBQWEsV0FBVyxpQkFBaUIsS0FBSztBQUNwRCxVQUFRLE1BQU0sU0FBUyxHQUFHLElBQUk7QUFDOUIsa0JBQWdCLElBQUksWUFBWSwrQkFBK0I7QUFDakU7QUFFQSxTQUFTLGdCQUFnQixJQUFZLFlBQW9CLE9BQXNCO0FBQzdFLE1BQUksQ0FBQyxZQUFZO0FBQ2YsaUJBQWE7QUFBQSxFQUNmO0FBQ0EsTUFBSSxDQUFDLE9BQU87QUFDVixZQUFRO0FBQUEsRUFDVjtBQUNBLFVBQVEsTUFBTSxZQUFZLEVBQUUsSUFBSSxLQUFLO0FBQUEsRUFBSyxVQUFVLEVBQUU7QUFDeEQ7IiwKICAibmFtZXMiOiBbImRlYnVnIl0KfQo=
|
package/dist/lib/Debug.d.ts
CHANGED
@@ -2,11 +2,15 @@
|
|
2
2
|
* @packageDocumentation Debug
|
3
3
|
* Contains utility functions for debugging.
|
4
4
|
*/
|
5
|
-
import
|
5
|
+
import type { Debugger } from 'debug';
|
6
|
+
interface DebuggerEx extends Debugger {
|
7
|
+
printStackTrace: (stackTrace: string, title?: string) => void;
|
8
|
+
}
|
6
9
|
/**
|
7
10
|
* Returns a debugger instance with a log function that includes the caller's file name and line number.
|
8
11
|
*
|
9
12
|
* @param id - The namespace for the debugger instance.
|
10
13
|
* @returns A debugger instance with a log function that includes the caller's file name and line number.
|
11
14
|
*/
|
12
|
-
export declare function getDebugger(id: string):
|
15
|
+
export declare function getDebugger(id: string): DebuggerEx;
|
16
|
+
export {};
|
package/dist/lib/Error.cjs
CHANGED
@@ -45,10 +45,10 @@ function emitAsyncErrorEvent(asyncError) {
|
|
45
45
|
function errorToString(error) {
|
46
46
|
return parseErrorEntries(error).map((entry) => " ".repeat(entry.level) + entry.message).join("\n");
|
47
47
|
}
|
48
|
-
function getStackTrace() {
|
48
|
+
function getStackTrace(framesToSkip = 0) {
|
49
49
|
const stack = new Error().stack ?? "";
|
50
50
|
const lines = stack.split("\n");
|
51
|
-
return lines.slice(2).join("\n");
|
51
|
+
return lines.slice(framesToSkip + 2).join("\n");
|
52
52
|
}
|
53
53
|
function printError(error) {
|
54
54
|
const entries = parseErrorEntries(error);
|
@@ -108,4 +108,4 @@ ${restStack}` });
|
|
108
108
|
registerAsyncErrorEventHandler,
|
109
109
|
throwExpression
|
110
110
|
});
|
111
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL0Vycm9yLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvbiBFcnJvclxuICogQ29udGFpbnMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIGVycm9yIGhhbmRsaW5nLlxuICovXG5cbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ2V2ZW50ZW1pdHRlcjMnO1xuXG5jb25zdCBBU1lOQ19FUlJPUl9FVkVOVCA9ICdhc3luY0Vycm9yJztcblxuY29uc3QgYXN5bmNFcnJvckV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbmFzeW5jRXJyb3JFdmVudEVtaXR0ZXIub24oQVNZTkNfRVJST1JfRVZFTlQsIGhhbmRsZUFzeW5jRXJyb3IpO1xuXG5pbnRlcmZhY2UgRXJyb3JFbnRyeSB7XG4gIGxldmVsOiBudW1iZXI7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgc2hvdWxkQ2xlYXJBbnNpU2VxdWVuY2U/
|
111
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL0Vycm9yLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvbiBFcnJvclxuICogQ29udGFpbnMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIGVycm9yIGhhbmRsaW5nLlxuICovXG5cbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ2V2ZW50ZW1pdHRlcjMnO1xuXG5jb25zdCBBU1lOQ19FUlJPUl9FVkVOVCA9ICdhc3luY0Vycm9yJztcblxuY29uc3QgYXN5bmNFcnJvckV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbmFzeW5jRXJyb3JFdmVudEVtaXR0ZXIub24oQVNZTkNfRVJST1JfRVZFTlQsIGhhbmRsZUFzeW5jRXJyb3IpO1xuXG5pbnRlcmZhY2UgRXJyb3JFbnRyeSB7XG4gIGxldmVsOiBudW1iZXI7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgc2hvdWxkQ2xlYXJBbnNpU2VxdWVuY2U/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEVtaXRzIGFuIGFzeW5jaHJvbm91cyBlcnJvciBldmVudC5cbiAqXG4gKiBAcGFyYW0gYXN5bmNFcnJvciAtIFRoZSBlcnJvciB0byBlbWl0IGFzIGFuIGFzeW5jaHJvbm91cyBlcnJvciBldmVudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVtaXRBc3luY0Vycm9yRXZlbnQoYXN5bmNFcnJvcjogdW5rbm93bik6IHZvaWQge1xuICBhc3luY0Vycm9yRXZlbnRFbWl0dGVyLmVtaXQoQVNZTkNfRVJST1JfRVZFTlQsIGFzeW5jRXJyb3IpO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIGVycm9yIHRvIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uLCBpbmNsdWRpbmcgbmVzdGVkIGNhdXNlcyB3aXRoIGluZGVudGF0aW9uLlxuICpcbiAqIEBwYXJhbSBlcnJvciAtIFRoZSBlcnJvciB0byBjb252ZXJ0IHRvIGEgc3RyaW5nLlxuICogQHJldHVybnMgVGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgZXJyb3IuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlcnJvclRvU3RyaW5nKGVycm9yOiB1bmtub3duKTogc3RyaW5nIHtcbiAgcmV0dXJuIHBhcnNlRXJyb3JFbnRyaWVzKGVycm9yKS5tYXAoKGVudHJ5KSA9PiAnICAnLnJlcGVhdChlbnRyeS5sZXZlbCkgKyBlbnRyeS5tZXNzYWdlKS5qb2luKCdcXG4nKTtcbn1cblxuLyoqXG4gKiBHZXRzIHRoZSBjdXJyZW50IHN0YWNrIHRyYWNlIGFzIGEgc3RyaW5nLCBleGNsdWRpbmcgdGhlIGN1cnJlbnQgZnVuY3Rpb24gY2FsbC5cbiAqXG4gKiBAcGFyYW0gZnJhbWVzVG9Ta2lwIC0gVGhlIG51bWJlciBvZiBmcmFtZXMgdG8gc2tpcCBpbiB0aGUgc3RhY2sgdHJhY2UuXG4gKiBAcmV0dXJucyBBIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgY3VycmVudCBzdGFjayB0cmFjZSwgZXhjbHVkaW5nIHRoZSBjdXJyZW50IGZ1bmN0aW9uIGNhbGwuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTdGFja1RyYWNlKGZyYW1lc1RvU2tpcCA9IDApOiBzdHJpbmcge1xuICBjb25zdCBzdGFjayA9IG5ldyBFcnJvcigpLnN0YWNrID8/ICcnO1xuICBjb25zdCBsaW5lcyA9IHN0YWNrLnNwbGl0KCdcXG4nKTtcbiAgcmV0dXJuIGxpbmVzLnNsaWNlKGZyYW1lc1RvU2tpcCArIDIpLmpvaW4oJ1xcbicpO1xufVxuXG4vKipcbiAqIFByaW50cyBhbiBlcnJvciB0byB0aGUgY29uc29sZSwgaW5jbHVkaW5nIG5lc3RlZCBjYXVzZXMgYW5kIG9wdGlvbmFsIEFOU0kgc2VxdWVuY2UgY2xlYXJpbmcuXG4gKlxuICogQHBhcmFtIGVycm9yIC0gVGhlIGVycm9yIHRvIHByaW50LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJpbnRFcnJvcihlcnJvcjogdW5rbm93bik6IHZvaWQge1xuICBjb25zdCBlbnRyaWVzID0gcGFyc2VFcnJvckVudHJpZXMoZXJyb3IpO1xuXG4gIGZvciAoY29uc3QgZW50cnkgb2YgZW50cmllcykge1xuICAgIGlmIChlbnRyeS5zaG91bGRDbGVhckFuc2lTZXF1ZW5jZSkge1xuICAgICAgY29uc29sZS5lcnJvcihgXFx4MWJbMG0ke2VudHJ5Lm1lc3NhZ2V9XFx4MWJbMG1gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5lcnJvcihlbnRyeS5tZXNzYWdlKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBSZWdpc3RlcnMgYW4gZXZlbnQgaGFuZGxlciBmb3IgYXN5bmNocm9ub3VzIGVycm9ycy5cbiAqXG4gKiBAcGFyYW0gaGFuZGxlciAtIFRoZSBoYW5kbGVyIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIGFuIGFzeW5jaHJvbm91cyBlcnJvciBldmVudCBvY2N1cnMuXG4gKiBAcmV0dXJucyBBIGZ1bmN0aW9uIHRvIHVucmVnaXN0ZXIgdGhlIGhhbmRsZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlckFzeW5jRXJyb3JFdmVudEhhbmRsZXIoaGFuZGxlcjogKGFzeW5jRXJyb3I6IHVua25vd24pID0+IHZvaWQpOiAoKSA9PiB2b2lkIHtcbiAgYXN5bmNFcnJvckV2ZW50RW1pdHRlci5vbihBU1lOQ19FUlJPUl9FVkVOVCwgaGFuZGxlcik7XG4gIHJldHVybiAoKSA9PiBhc3luY0Vycm9yRXZlbnRFbWl0dGVyLm9mZihBU1lOQ19FUlJPUl9FVkVOVCwgaGFuZGxlcik7XG59XG5cbi8qKlxuICogVGhyb3dzIGFuIGVycm9yIHdpdGggdGhlIHNwZWNpZmllZCBtZXNzYWdlLlxuICpcbiAqIEBwYXJhbSBlcnJvciAtIFRoZSBlcnJvciB0byB0aHJvdy5cbiAqIEByZXR1cm5zIEEgbmV2ZXItcmV0dXJuaW5nIGZ1bmN0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdGhyb3dFeHByZXNzaW9uKGVycm9yOiB1bmtub3duKTogbmV2ZXIge1xuICB0aHJvdyBlcnJvcjtcbn1cblxuLyoqXG4gKiBIYW5kbGVzIGFzeW5jaHJvbm91cyBlcnJvcnMgYnkgcHJpbnRpbmcgdGhlbS5cbiAqXG4gKiBAcGFyYW0gYXN5bmNFcnJvciAtIFRoZSBhc3luY2hyb25vdXMgZXJyb3IgdG8gaGFuZGxlLlxuICovXG5mdW5jdGlvbiBoYW5kbGVBc3luY0Vycm9yKGFzeW5jRXJyb3I6IHVua25vd24pOiB2b2lkIHtcbiAgcHJpbnRFcnJvcihuZXcgRXJyb3IoJ0FuIHVuaGFuZGxlZCBlcnJvciBvY2N1cnJlZCBleGVjdXRpbmcgYXN5bmMgb3BlcmF0aW9uJywgeyBjYXVzZTogYXN5bmNFcnJvciB9KSk7XG59XG5cbi8qKlxuICogUGFyc2VzIGFuIGVycm9yIGludG8gYW4gYXJyYXkgb2YgRXJyb3JFbnRyeSBvYmplY3RzLCBpbmNsdWRpbmcgbmVzdGVkIGNhdXNlcy5cbiAqXG4gKiBAcGFyYW0gZXJyb3IgLSBUaGUgZXJyb3IgdG8gcGFyc2UuXG4gKiBAcGFyYW0gbGV2ZWwgLSBUaGUgY3VycmVudCBpbmRlbnRhdGlvbiBsZXZlbCBmb3IgbmVzdGVkIGNhdXNlcy5cbiAqIEBwYXJhbSBlbnRyaWVzIC0gVGhlIGFycmF5IG9mIEVycm9yRW50cnkgb2JqZWN0cyB0byBwb3B1bGF0ZS5cbiAqIEByZXR1cm5zIEFuIGFycmF5IG9mIEVycm9yRW50cnkgb2JqZWN0cyByZXByZXNlbnRpbmcgdGhlIGVycm9yIGFuZCBpdHMgY2F1c2VzLlxuICovXG5mdW5jdGlvbiBwYXJzZUVycm9yRW50cmllcyhlcnJvcjogdW5rbm93biwgbGV2ZWwgPSAwLCBlbnRyaWVzOiBFcnJvckVudHJ5W10gPSBbXSk6IEVycm9yRW50cnlbXSB7XG4gIGlmIChlcnJvciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIGVudHJpZXM7XG4gIH1cblxuICBpZiAoIShlcnJvciBpbnN0YW5jZW9mIEVycm9yKSkge1xuICAgIGxldCBzdHIgPSAnJztcblxuICAgIGlmIChlcnJvciA9PT0gbnVsbCkge1xuICAgICAgc3RyID0gJyhudWxsKSc7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgZXJyb3IgPT09ICdzdHJpbmcnKSB7XG4gICAgICBzdHIgPSBlcnJvcjtcbiAgICB9IGVsc2Uge1xuICAgICAgc3RyID0gSlNPTi5zdHJpbmdpZnkoZXJyb3IpO1xuICAgIH1cblxuICAgIGVudHJpZXMucHVzaCh7IGxldmVsLCBtZXNzYWdlOiBzdHIgfSk7XG4gICAgcmV0dXJuIGVudHJpZXM7XG4gIH1cblxuICBjb25zdCB0aXRsZSA9IGAke2Vycm9yLm5hbWV9OiAke2Vycm9yLm1lc3NhZ2V9YDtcbiAgZW50cmllcy5wdXNoKHsgbGV2ZWwsIG1lc3NhZ2U6IHRpdGxlLCBzaG91bGRDbGVhckFuc2lTZXF1ZW5jZTogdHJ1ZSB9KTtcblxuICBpZiAoZXJyb3Iuc3RhY2spIHtcbiAgICBjb25zdCByZXN0U3RhY2sgPSBlcnJvci5zdGFjay5zdGFydHNXaXRoKHRpdGxlKSA/IGVycm9yLnN0YWNrLnNsaWNlKHRpdGxlLmxlbmd0aCArIDEpIDogZXJyb3Iuc3RhY2s7XG4gICAgZW50cmllcy5wdXNoKHsgbGV2ZWwsIG1lc3NhZ2U6IGBFcnJvciBzdGFjazpcXG4ke3Jlc3RTdGFja31gIH0pO1xuICB9XG5cbiAgaWYgKGVycm9yLmNhdXNlICE9PSB1bmRlZmluZWQpIHtcbiAgICBlbnRyaWVzLnB1c2goeyBsZXZlbCwgbWVzc2FnZTogJ0NhdXNlZCBieTonIH0pO1xuICAgIHBhcnNlRXJyb3JFbnRyaWVzKGVycm9yLmNhdXNlLCBsZXZlbCArIDEsIGVudHJpZXMpO1xuICB9XG5cbiAgcmV0dXJuIGVudHJpZXM7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBLDJCQUE2QjtBQUU3QixNQUFNLG9CQUFvQjtBQUUxQixNQUFNLHlCQUF5QixJQUFJLGtDQUFhO0FBQ2hELHVCQUF1QixHQUFHLG1CQUFtQixnQkFBZ0I7QUFhdEQsU0FBUyxvQkFBb0IsWUFBMkI7QUFDN0QseUJBQXVCLEtBQUssbUJBQW1CLFVBQVU7QUFDM0Q7QUFRTyxTQUFTLGNBQWMsT0FBd0I7QUFDcEQsU0FBTyxrQkFBa0IsS0FBSyxFQUFFLElBQUksQ0FBQyxVQUFVLEtBQUssT0FBTyxNQUFNLEtBQUssSUFBSSxNQUFNLE9BQU8sRUFBRSxLQUFLLElBQUk7QUFDcEc7QUFRTyxTQUFTLGNBQWMsZUFBZSxHQUFXO0FBQ3RELFFBQU0sUUFBUSxJQUFJLE1BQU0sRUFBRSxTQUFTO0FBQ25DLFFBQU0sUUFBUSxNQUFNLE1BQU0sSUFBSTtBQUM5QixTQUFPLE1BQU0sTUFBTSxlQUFlLENBQUMsRUFBRSxLQUFLLElBQUk7QUFDaEQ7QUFPTyxTQUFTLFdBQVcsT0FBc0I7QUFDL0MsUUFBTSxVQUFVLGtCQUFrQixLQUFLO0FBRXZDLGFBQVcsU0FBUyxTQUFTO0FBQzNCLFFBQUksTUFBTSx5QkFBeUI7QUFDakMsY0FBUSxNQUFNLFVBQVUsTUFBTSxPQUFPLFNBQVM7QUFBQSxJQUNoRCxPQUFPO0FBQ0wsY0FBUSxNQUFNLE1BQU0sT0FBTztBQUFBLElBQzdCO0FBQUEsRUFDRjtBQUNGO0FBUU8sU0FBUywrQkFBK0IsU0FBb0Q7QUFDakcseUJBQXVCLEdBQUcsbUJBQW1CLE9BQU87QUFDcEQsU0FBTyxNQUFNLHVCQUF1QixJQUFJLG1CQUFtQixPQUFPO0FBQ3BFO0FBUU8sU0FBUyxnQkFBZ0IsT0FBdUI7QUFDckQsUUFBTTtBQUNSO0FBT0EsU0FBUyxpQkFBaUIsWUFBMkI7QUFDbkQsYUFBVyxJQUFJLE1BQU0seURBQXlELEVBQUUsT0FBTyxXQUFXLENBQUMsQ0FBQztBQUN0RztBQVVBLFNBQVMsa0JBQWtCLE9BQWdCLFFBQVEsR0FBRyxVQUF3QixDQUFDLEdBQWlCO0FBQzlGLE1BQUksVUFBVSxRQUFXO0FBQ3ZCLFdBQU87QUFBQSxFQUNUO0FBRUEsTUFBSSxFQUFFLGlCQUFpQixRQUFRO0FBQzdCLFFBQUksTUFBTTtBQUVWLFFBQUksVUFBVSxNQUFNO0FBQ2xCLFlBQU07QUFBQSxJQUNSLFdBQVcsT0FBTyxVQUFVLFVBQVU7QUFDcEMsWUFBTTtBQUFBLElBQ1IsT0FBTztBQUNMLFlBQU0sS0FBSyxVQUFVLEtBQUs7QUFBQSxJQUM1QjtBQUVBLFlBQVEsS0FBSyxFQUFFLE9BQU8sU0FBUyxJQUFJLENBQUM7QUFDcEMsV0FBTztBQUFBLEVBQ1Q7QUFFQSxRQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksS0FBSyxNQUFNLE9BQU87QUFDN0MsVUFBUSxLQUFLLEVBQUUsT0FBTyxTQUFTLE9BQU8seUJBQXlCLEtBQUssQ0FBQztBQUVyRSxNQUFJLE1BQU0sT0FBTztBQUNmLFVBQU0sWUFBWSxNQUFNLE1BQU0sV0FBVyxLQUFLLElBQUksTUFBTSxNQUFNLE1BQU0sTUFBTSxTQUFTLENBQUMsSUFBSSxNQUFNO0FBQzlGLFlBQVEsS0FBSyxFQUFFLE9BQU8sU0FBUztBQUFBLEVBQWlCLFNBQVMsR0FBRyxDQUFDO0FBQUEsRUFDL0Q7QUFFQSxNQUFJLE1BQU0sVUFBVSxRQUFXO0FBQzdCLFlBQVEsS0FBSyxFQUFFLE9BQU8sU0FBUyxhQUFhLENBQUM7QUFDN0Msc0JBQWtCLE1BQU0sT0FBTyxRQUFRLEdBQUcsT0FBTztBQUFBLEVBQ25EO0FBRUEsU0FBTztBQUNUOyIsCiAgIm5hbWVzIjogW10KfQo=
|
package/dist/lib/Error.d.ts
CHANGED
@@ -18,9 +18,10 @@ export declare function errorToString(error: unknown): string;
|
|
18
18
|
/**
|
19
19
|
* Gets the current stack trace as a string, excluding the current function call.
|
20
20
|
*
|
21
|
+
* @param framesToSkip - The number of frames to skip in the stack trace.
|
21
22
|
* @returns A string representation of the current stack trace, excluding the current function call.
|
22
23
|
*/
|
23
|
-
export declare function getStackTrace(): string;
|
24
|
+
export declare function getStackTrace(framesToSkip?: number): string;
|
24
25
|
/**
|
25
26
|
* Prints an error to the console, including nested causes and optional ANSI sequence clearing.
|
26
27
|
*
|
@@ -32,32 +32,35 @@ __export(Logger_exports, {
|
|
32
32
|
module.exports = __toCommonJS(Logger_exports);
|
33
33
|
var import_Debug = require('../Debug.cjs');
|
34
34
|
var import_Error = require('../Error.cjs');
|
35
|
+
const invokeAsyncAndLogDebugger = (0, import_Debug.getDebugger)("obsidian-dev-utils:Logger:invokeAsyncAndLog");
|
35
36
|
async function invokeAsyncAndLog(title, fn, stackTrace) {
|
36
37
|
const timestampStart = performance.now();
|
37
|
-
|
38
|
-
|
39
|
-
}
|
40
|
-
(0, import_Debug.getDebugger)("obsidian-dev-utils:invokeAsyncAndLog")(`${title}:start`, {
|
38
|
+
stackTrace ??= (0, import_Error.getStackTrace)(1);
|
39
|
+
invokeAsyncAndLogDebugger(`${title}:start`, {
|
41
40
|
fn,
|
42
|
-
stackTrace,
|
43
41
|
timestampStart
|
44
42
|
});
|
43
|
+
invokeAsyncAndLogDebugger.printStackTrace(stackTrace);
|
45
44
|
try {
|
46
45
|
await fn();
|
47
46
|
const timestampEnd = performance.now();
|
48
|
-
(
|
47
|
+
invokeAsyncAndLogDebugger(`${title}:end`, {
|
49
48
|
duration: timestampEnd - timestampStart,
|
49
|
+
fn,
|
50
50
|
timestampEnd,
|
51
51
|
timestampStart
|
52
52
|
});
|
53
|
+
invokeAsyncAndLogDebugger.printStackTrace(stackTrace);
|
53
54
|
} catch (error) {
|
54
55
|
const timestampEnd = performance.now();
|
55
|
-
(
|
56
|
+
invokeAsyncAndLogDebugger(`${title}:error`, {
|
56
57
|
duration: timestampEnd - timestampStart,
|
57
58
|
error,
|
59
|
+
fn,
|
58
60
|
timestampEnd,
|
59
61
|
timestampStart
|
60
62
|
});
|
63
|
+
invokeAsyncAndLogDebugger.printStackTrace(stackTrace);
|
61
64
|
throw error;
|
62
65
|
}
|
63
66
|
}
|
@@ -65,4 +68,4 @@ async function invokeAsyncAndLog(title, fn, stackTrace) {
|
|
65
68
|
0 && (module.exports = {
|
66
69
|
invokeAsyncAndLog
|
67
70
|
});
|
68
|
-
//# sourceMappingURL=data:application/json;base64,
|
71
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL0xvZ2dlci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb24gTG9nZ2VyXG4gKiBDb250YWlucyB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgbG9nZ2luZyBpbiBPYnNpZGlhbi5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IE1heWJlUHJvbWlzZSB9IGZyb20gJy4uL0FzeW5jLnRzJztcblxuaW1wb3J0IHsgZ2V0RGVidWdnZXIgfSBmcm9tICcuLi9EZWJ1Zy50cyc7XG5pbXBvcnQgeyBnZXRTdGFja1RyYWNlIH0gZnJvbSAnLi4vRXJyb3IudHMnO1xuXG5jb25zdCBpbnZva2VBc3luY0FuZExvZ0RlYnVnZ2VyID0gZ2V0RGVidWdnZXIoJ29ic2lkaWFuLWRldi11dGlsczpMb2dnZXI6aW52b2tlQXN5bmNBbmRMb2cnKTtcblxuLyoqXG4gKiBJbnZva2VzIGEgZnVuY3Rpb24gYW5kIGxvZ3MgdGhlIHN0YXJ0LCBlbmQsIGFuZCBkdXJhdGlvbiBvZiB0aGUgaW52b2NhdGlvbi5cbiAqXG4gKiBAcGFyYW0gdGl0bGUgLSBUaGUgdGl0bGUgb2YgdGhlIGxvZy5cbiAqIEBwYXJhbSBmbiAtIFRoZSBmdW5jdGlvbiB0byBpbnZva2UuXG4gKiBAcGFyYW0gc3RhY2tUcmFjZSAtIE9wdGlvbmFsIHN0YWNrIHRyYWNlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaW52b2tlQXN5bmNBbmRMb2codGl0bGU6IHN0cmluZywgZm46ICgpID0+IE1heWJlUHJvbWlzZTx2b2lkPiwgc3RhY2tUcmFjZT86IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB0aW1lc3RhbXBTdGFydCA9IHBlcmZvcm1hbmNlLm5vdygpO1xuICBzdGFja1RyYWNlID8/PSBnZXRTdGFja1RyYWNlKDEpO1xuICBpbnZva2VBc3luY0FuZExvZ0RlYnVnZ2VyKGAke3RpdGxlfTpzdGFydGAsIHtcbiAgICBmbixcbiAgICB0aW1lc3RhbXBTdGFydFxuICB9KTtcbiAgaW52b2tlQXN5bmNBbmRMb2dEZWJ1Z2dlci5wcmludFN0YWNrVHJhY2Uoc3RhY2tUcmFjZSk7XG4gIHRyeSB7XG4gICAgYXdhaXQgZm4oKTtcbiAgICBjb25zdCB0aW1lc3RhbXBFbmQgPSBwZXJmb3JtYW5jZS5ub3coKTtcbiAgICBpbnZva2VBc3luY0FuZExvZ0RlYnVnZ2VyKGAke3RpdGxlfTplbmRgLCB7XG4gICAgICBkdXJhdGlvbjogdGltZXN0YW1wRW5kIC0gdGltZXN0YW1wU3RhcnQsXG4gICAgICBmbixcbiAgICAgIHRpbWVzdGFtcEVuZCxcbiAgICAgIHRpbWVzdGFtcFN0YXJ0XG4gICAgfSk7XG4gICAgaW52b2tlQXN5bmNBbmRMb2dEZWJ1Z2dlci5wcmludFN0YWNrVHJhY2Uoc3RhY2tUcmFjZSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc3QgdGltZXN0YW1wRW5kID0gcGVyZm9ybWFuY2Uubm93KCk7XG4gICAgaW52b2tlQXN5bmNBbmRMb2dEZWJ1Z2dlcihgJHt0aXRsZX06ZXJyb3JgLCB7XG4gICAgICBkdXJhdGlvbjogdGltZXN0YW1wRW5kIC0gdGltZXN0YW1wU3RhcnQsXG4gICAgICBlcnJvcixcbiAgICAgIGZuLFxuICAgICAgdGltZXN0YW1wRW5kLFxuICAgICAgdGltZXN0YW1wU3RhcnRcbiAgICB9KTtcbiAgICBpbnZva2VBc3luY0FuZExvZ0RlYnVnZ2VyLnByaW50U3RhY2tUcmFjZShzdGFja1RyYWNlKTtcblxuICAgIHRocm93IGVycm9yO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0EsbUJBQTRCO0FBQzVCLG1CQUE4QjtBQUU5QixNQUFNLGdDQUE0QiwwQkFBWSw2Q0FBNkM7QUFTM0YsZUFBc0Isa0JBQWtCLE9BQWUsSUFBOEIsWUFBb0M7QUFDdkgsUUFBTSxpQkFBaUIsWUFBWSxJQUFJO0FBQ3ZDLHFCQUFlLDRCQUFjLENBQUM7QUFDOUIsNEJBQTBCLEdBQUcsS0FBSyxVQUFVO0FBQUEsSUFDMUM7QUFBQSxJQUNBO0FBQUEsRUFDRixDQUFDO0FBQ0QsNEJBQTBCLGdCQUFnQixVQUFVO0FBQ3BELE1BQUk7QUFDRixVQUFNLEdBQUc7QUFDVCxVQUFNLGVBQWUsWUFBWSxJQUFJO0FBQ3JDLDhCQUEwQixHQUFHLEtBQUssUUFBUTtBQUFBLE1BQ3hDLFVBQVUsZUFBZTtBQUFBLE1BQ3pCO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxJQUNGLENBQUM7QUFDRCw4QkFBMEIsZ0JBQWdCLFVBQVU7QUFBQSxFQUN0RCxTQUFTLE9BQU87QUFDZCxVQUFNLGVBQWUsWUFBWSxJQUFJO0FBQ3JDLDhCQUEwQixHQUFHLEtBQUssVUFBVTtBQUFBLE1BQzFDLFVBQVUsZUFBZTtBQUFBLE1BQ3pCO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsSUFDRixDQUFDO0FBQ0QsOEJBQTBCLGdCQUFnQixVQUFVO0FBRXBELFVBQU07QUFBQSxFQUNSO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
@@ -42,13 +42,14 @@ var __process = globalThis["process"] ?? {
|
|
42
42
|
"env": {},
|
43
43
|
"platform": "android"
|
44
44
|
};
|
45
|
-
function addToQueue(app, fn, timeoutInMilliseconds) {
|
46
|
-
|
45
|
+
function addToQueue(app, fn, timeoutInMilliseconds, stackTrace) {
|
46
|
+
stackTrace ??= (0, import_Error.getStackTrace)(1);
|
47
|
+
void addToQueueAndWait(app, fn, timeoutInMilliseconds, stackTrace);
|
47
48
|
}
|
48
|
-
async function addToQueueAndWait(app, fn, timeoutInMilliseconds) {
|
49
|
+
async function addToQueueAndWait(app, fn, timeoutInMilliseconds, stackTrace) {
|
49
50
|
const DEFAULT_TIMEOUT_IN_MILLISECONDS = 6e4;
|
50
51
|
timeoutInMilliseconds ??= DEFAULT_TIMEOUT_IN_MILLISECONDS;
|
51
|
-
|
52
|
+
stackTrace ??= (0, import_Error.getStackTrace)(1);
|
52
53
|
const queue = getQueue(app).value;
|
53
54
|
queue.items.push({ fn, stackTrace, timeoutInMilliseconds });
|
54
55
|
queue.promise = queue.promise.then(() => processNextQueueItem(app));
|
@@ -75,4 +76,4 @@ async function processNextQueueItem(app) {
|
|
75
76
|
addToQueueAndWait,
|
76
77
|
flushQueue
|
77
78
|
});
|
78
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL1F1ZXVlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJ2YXIgX19wcm9jZXNzID0gZ2xvYmFsVGhpc1sncHJvY2VzcyddID8/
|
79
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL1F1ZXVlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJ2YXIgX19wcm9jZXNzID0gZ2xvYmFsVGhpc1sncHJvY2VzcyddID8/IHtcbiAgXCJjd2RcIjogKCk9PlwiL1wiLFxuICBcImVudlwiOiB7fSxcbiAgXCJwbGF0Zm9ybVwiOiBcImFuZHJvaWRcIlxufTtcbi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uIFF1ZXVlXG4gKiBDb250YWlucyB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgZW5xdWV1aW5nIGFuZCBwcm9jZXNzaW5nIGZ1bmN0aW9ucyBpbiBPYnNpZGlhbi5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEFwcCB9IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHR5cGUgeyBNYXliZVByb21pc2UgfSBmcm9tICcuLi9Bc3luYy50cyc7XG5pbXBvcnQgdHlwZSB7IFZhbHVlV3JhcHBlciB9IGZyb20gJy4vQXBwLnRzJztcblxuaW1wb3J0IHtcbiAgYWRkRXJyb3JIYW5kbGVyLFxuICBydW5XaXRoVGltZW91dFxufSBmcm9tICcuLi9Bc3luYy50cyc7XG5pbXBvcnQgeyBnZXRTdGFja1RyYWNlIH0gZnJvbSAnLi4vRXJyb3IudHMnO1xuaW1wb3J0IHsgbm9vcCB9IGZyb20gJy4uL0Z1bmN0aW9uLnRzJztcbmltcG9ydCB7IGdldE9ic2lkaWFuRGV2VXRpbHNTdGF0ZSB9IGZyb20gJy4vQXBwLnRzJztcbmltcG9ydCB7IGludm9rZUFzeW5jQW5kTG9nIH0gZnJvbSAnLi9Mb2dnZXIudHMnO1xuXG5pbnRlcmZhY2UgUXVldWUge1xuICBpdGVtczogUXVldWVJdGVtW107XG4gIHByb21pc2U6IFByb21pc2U8dm9pZD47XG59XG5cbmludGVyZmFjZSBRdWV1ZUl0ZW0ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWludmFsaWQtdm9pZC10eXBlXG4gIGZuKHRoaXM6IHZvaWQpOiBNYXliZVByb21pc2U8dm9pZD47XG4gIHN0YWNrVHJhY2U6IHN0cmluZztcbiAgdGltZW91dEluTWlsbGlzZWNvbmRzOiBudW1iZXI7XG59XG5cbi8qKlxuICogQWRkcyBhbiBhc3luY2hyb25vdXMgZnVuY3Rpb24gdG8gYmUgZXhlY3V0ZWQgYWZ0ZXIgdGhlIHByZXZpb3VzIGZ1bmN0aW9uIGNvbXBsZXRlcy5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcGxpY2F0aW9uIGluc3RhbmNlLlxuICogQHBhcmFtIGZuIC0gVGhlIGZ1bmN0aW9uIHRvIGFkZC5cbiAqIEBwYXJhbSB0aW1lb3V0SW5NaWxsaXNlY29uZHMgLSBUaGUgdGltZW91dCBpbiBtaWxsaXNlY29uZHMuXG4gKiBAcGFyYW0gc3RhY2tUcmFjZSAtIE9wdGlvbmFsIHN0YWNrIHRyYWNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRkVG9RdWV1ZShhcHA6IEFwcCwgZm46ICgpID0+IE1heWJlUHJvbWlzZTx2b2lkPiwgdGltZW91dEluTWlsbGlzZWNvbmRzPzogbnVtYmVyLCBzdGFja1RyYWNlPzogc3RyaW5nKTogdm9pZCB7XG4gIHN0YWNrVHJhY2UgPz89IGdldFN0YWNrVHJhY2UoMSk7XG4gIHZvaWQgYWRkVG9RdWV1ZUFuZFdhaXQoYXBwLCBmbiwgdGltZW91dEluTWlsbGlzZWNvbmRzLCBzdGFja1RyYWNlKTtcbn1cblxuLyoqXG4gKiBBZGRzIGFuIGFzeW5jaHJvbm91cyBmdW5jdGlvbiB0byBiZSBleGVjdXRlZCBhZnRlciB0aGUgcHJldmlvdXMgZnVuY3Rpb24gY29tcGxldGVzIGFuZCByZXR1cm5zIGEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGZ1bmN0aW9uIGNvbXBsZXRlcy5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcGxpY2F0aW9uIGluc3RhbmNlLlxuICogQHBhcmFtIGZuIC0gVGhlIGZ1bmN0aW9uIHRvIGFkZC5cbiAqIEBwYXJhbSB0aW1lb3V0SW5NaWxsaXNlY29uZHMgLSBUaGUgdGltZW91dCBpbiBtaWxsaXNlY29uZHMuXG4gKiBAcGFyYW0gc3RhY2tUcmFjZSAtIE9wdGlvbmFsIHN0YWNrIHRyYWNlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYWRkVG9RdWV1ZUFuZFdhaXQoYXBwOiBBcHAsIGZuOiAoKSA9PiBNYXliZVByb21pc2U8dm9pZD4sIHRpbWVvdXRJbk1pbGxpc2Vjb25kcz86IG51bWJlciwgc3RhY2tUcmFjZT86IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBERUZBVUxUX1RJTUVPVVRfSU5fTUlMTElTRUNPTkRTID0gNjAwMDA7XG4gIHRpbWVvdXRJbk1pbGxpc2Vjb25kcyA/Pz0gREVGQVVMVF9USU1FT1VUX0lOX01JTExJU0VDT05EUztcbiAgc3RhY2tUcmFjZSA/Pz0gZ2V0U3RhY2tUcmFjZSgxKTtcbiAgY29uc3QgcXVldWUgPSBnZXRRdWV1ZShhcHApLnZhbHVlO1xuICBxdWV1ZS5pdGVtcy5wdXNoKHsgZm4sIHN0YWNrVHJhY2UsIHRpbWVvdXRJbk1pbGxpc2Vjb25kcyB9KTtcbiAgcXVldWUucHJvbWlzZSA9IHF1ZXVlLnByb21pc2UudGhlbigoKSA9PiBwcm9jZXNzTmV4dFF1ZXVlSXRlbShhcHApKTtcbiAgYXdhaXQgcXVldWUucHJvbWlzZTtcbn1cblxuLyoqXG4gKiBGbHVzaGVzIHRoZSBxdWV1ZTtcbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcGxpY2F0aW9uIGluc3RhbmNlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmx1c2hRdWV1ZShhcHA6IEFwcCk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBhZGRUb1F1ZXVlQW5kV2FpdChhcHAsIG5vb3ApO1xufVxuXG5mdW5jdGlvbiBnZXRRdWV1ZShhcHA6IEFwcCk6IFZhbHVlV3JhcHBlcjxRdWV1ZT4ge1xuICByZXR1cm4gZ2V0T2JzaWRpYW5EZXZVdGlsc1N0YXRlKGFwcCwgJ3F1ZXVlJywgeyBpdGVtczogW10sIHByb21pc2U6IFByb21pc2UucmVzb2x2ZSgpIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBwcm9jZXNzTmV4dFF1ZXVlSXRlbShhcHA6IEFwcCk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBxdWV1ZSA9IGdldFF1ZXVlKGFwcCkudmFsdWU7XG4gIGNvbnN0IGl0ZW0gPSBxdWV1ZS5pdGVtc1swXTtcbiAgaWYgKCFpdGVtKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgYXdhaXQgYWRkRXJyb3JIYW5kbGVyKCgpID0+IHJ1bldpdGhUaW1lb3V0KGl0ZW0udGltZW91dEluTWlsbGlzZWNvbmRzLCAoKSA9PiBpbnZva2VBc3luY0FuZExvZyhwcm9jZXNzTmV4dFF1ZXVlSXRlbS5uYW1lLCBpdGVtLmZuLCBpdGVtLnN0YWNrVHJhY2UpKSk7XG4gIHF1ZXVlLml0ZW1zLnNoaWZ0KCk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWVBLG1CQUdPO0FBQ1AsbUJBQThCO0FBQzlCLHNCQUFxQjtBQUNyQixpQkFBeUM7QUFDekMsb0JBQWtDO0FBdEJsQyxJQUFJLFlBQVksV0FBVyxTQUFTLEtBQUs7QUFBQSxFQUN2QyxPQUFPLE1BQUk7QUFBQSxFQUNYLE9BQU8sQ0FBQztBQUFBLEVBQ1IsWUFBWTtBQUNkO0FBd0NPLFNBQVMsV0FBVyxLQUFVLElBQThCLHVCQUFnQyxZQUEyQjtBQUM1SCxxQkFBZSw0QkFBYyxDQUFDO0FBQzlCLE9BQUssa0JBQWtCLEtBQUssSUFBSSx1QkFBdUIsVUFBVTtBQUNuRTtBQVVBLGVBQXNCLGtCQUFrQixLQUFVLElBQThCLHVCQUFnQyxZQUFvQztBQUNsSixRQUFNLGtDQUFrQztBQUN4Qyw0QkFBMEI7QUFDMUIscUJBQWUsNEJBQWMsQ0FBQztBQUM5QixRQUFNLFFBQVEsU0FBUyxHQUFHLEVBQUU7QUFDNUIsUUFBTSxNQUFNLEtBQUssRUFBRSxJQUFJLFlBQVksc0JBQXNCLENBQUM7QUFDMUQsUUFBTSxVQUFVLE1BQU0sUUFBUSxLQUFLLE1BQU0scUJBQXFCLEdBQUcsQ0FBQztBQUNsRSxRQUFNLE1BQU07QUFDZDtBQU9BLGVBQXNCLFdBQVcsS0FBeUI7QUFDeEQsUUFBTSxrQkFBa0IsS0FBSyxvQkFBSTtBQUNuQztBQUVBLFNBQVMsU0FBUyxLQUErQjtBQUMvQyxhQUFPLHFDQUF5QixLQUFLLFNBQVMsRUFBRSxPQUFPLENBQUMsR0FBRyxTQUFTLFFBQVEsUUFBUSxFQUFFLENBQUM7QUFDekY7QUFFQSxlQUFlLHFCQUFxQixLQUF5QjtBQUMzRCxRQUFNLFFBQVEsU0FBUyxHQUFHLEVBQUU7QUFDNUIsUUFBTSxPQUFPLE1BQU0sTUFBTSxDQUFDO0FBQzFCLE1BQUksQ0FBQyxNQUFNO0FBQ1Q7QUFBQSxFQUNGO0FBRUEsWUFBTSw4QkFBZ0IsVUFBTSw2QkFBZSxLQUFLLHVCQUF1QixVQUFNLGlDQUFrQixxQkFBcUIsTUFBTSxLQUFLLElBQUksS0FBSyxVQUFVLENBQUMsQ0FBQztBQUNwSixRQUFNLE1BQU0sTUFBTTtBQUNwQjsiLAogICJuYW1lcyI6IFtdCn0K
|
@@ -10,16 +10,18 @@ import type { MaybePromise } from '../Async.ts';
|
|
10
10
|
* @param app - The Obsidian application instance.
|
11
11
|
* @param fn - The function to add.
|
12
12
|
* @param timeoutInMilliseconds - The timeout in milliseconds.
|
13
|
+
* @param stackTrace - Optional stack trace.
|
13
14
|
*/
|
14
|
-
export declare function addToQueue(app: App, fn: () => MaybePromise<void>, timeoutInMilliseconds?: number): void;
|
15
|
+
export declare function addToQueue(app: App, fn: () => MaybePromise<void>, timeoutInMilliseconds?: number, stackTrace?: string): void;
|
15
16
|
/**
|
16
17
|
* Adds an asynchronous function to be executed after the previous function completes and returns a promise that resolves when the function completes.
|
17
18
|
*
|
18
19
|
* @param app - The Obsidian application instance.
|
19
20
|
* @param fn - The function to add.
|
20
21
|
* @param timeoutInMilliseconds - The timeout in milliseconds.
|
22
|
+
* @param stackTrace - Optional stack trace.
|
21
23
|
*/
|
22
|
-
export declare function addToQueueAndWait(app: App, fn: () => MaybePromise<void>, timeoutInMilliseconds?: number): Promise<void>;
|
24
|
+
export declare function addToQueueAndWait(app: App, fn: () => MaybePromise<void>, timeoutInMilliseconds?: number, stackTrace?: string): Promise<void>;
|
23
25
|
/**
|
24
26
|
* Flushes the queue;
|
25
27
|
*
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "obsidian-dev-utils",
|
3
|
-
"version": "12.0.1-beta.
|
3
|
+
"version": "12.0.1-beta.12",
|
4
4
|
"description": "This is the collection of useful functions that you can use for your Obsidian plugin development",
|
5
5
|
"main": "./dist/lib/index.cjs",
|
6
6
|
"types": "./dist/lib/index.d.ts",
|